Pipe Binding Protocol

The PBP is used by applications and services to communicate with each other. A pipe is a virtual communication channel between two endpoints described via a pipe advertisement. Pipes have two ends: the input pipe end (receiving end) and the output pipe end (sending end). The PBP is layered on the endpoint protocol to access a variety of transport protocols, such as HTTP, TCP/IP, and TLS Transport. There are currently three different types of pipes:

Unicast

Unicast, insecure, and unreliable. This type of pipe is used for sending one-to-one messages.

UnicastSecure

Unicast and secure (using TLS). Data is encrypted using the TLS protocol.

Propagate

Broadcast pipe. This pipe is used for sending one to many messages. Any peers listening on a PropagateType pipe may receive messages sent to that pipe.

The pipe type is defined in the associated pipe advertisement. A pipe can be viewed as an abstract named message queue, supporting create, open/resolve (bind), close (unbind), delete, send, and receive operations.

Actual pipe implementations may differ, but all compliant implementations use PBP to bind the pipe ends to physical peer endpoints.

A reliable transport is optional. Multiple binding query messages may be sent. Zero, one, or multiple responses may be received.

The pipe resolver message contains the fields in Example 17-8.

Example 17-8. Pipe resolver message schema

<xs:element name="PipeResolver" type="jxta:PipeResolver"/> <xs:complexType ...

Get JXTA in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.