Jockey Peer Bridge Interface (PBAPI) Design

Peer Bridge

The peer bridge interface acts as an adapter framework for peer network implementations, to allow peer network implementations to be embedded in a server framework that is exposed using the standard peer interface (PI) API.

Each peer network implementation (such as JXTA, Gnutella, Jabber) normally exists as an isolated network of peers, using heterogenous protocols and divergent network abstraction APIs. The peer bridge framework allows these networks to be viewed as a single unified meta-net, with a unified API. The unified peer bridge API (PBAPI) is translated into the appropriate peer network messages and protocols by a pluggable peer network implementations.

Peer Bridge API

The first collection of classes in the PBAPI provide interfaces for a peer network implementation to register itself with the framework and provide basic network discovery and lookup.

PBNetManagerFactory Related Classes
  • Acts as a registry of peer network implementations.
  • Handle basic peer network management; addition, removal, and retrieval of peer networks.
PBNet
PBNetManager

PBNet Related Classes
  • A definition of a peer network; one instance per peer network implementation.
PBAbstractNetManager
PBNetManager

PBAbstractNetManager Related Classes
  • Establishes an identity on the peer network.
  • Provides access to discover peer network entities and communicate with them.
  • Provides default behavior for a peer network, which may be useful for derived classes.
PBNetManager
PBNetManagerFactory

PBNetManager Related Classes
  • Establishes an identity on the peer network.
  • Provides access to discover peer network entities and communicate with them.
  • Must be implemented by an object that provides an interface to a particular peer network.
PBAbstractNetManager
PBNetManagerFactory

PBAbstractDirectory Related Classes
  • Provides peer/peer group discovery.
  • Provides default behavior for discovery, which may be useful for derived classes.
PBAbstractNetManager
PBFindMarker

PBDirectory Related Classes
  • Provides peer/peer group discovery.
  • Must be implemented by an object that provides lookup/discovery functionality for a particular peer network.
PBFindMarker

PBFindMarker Related Classes
  • Serves as a marker for a query currently in progress.
  • Provides status detail for find progress.
PBDirectory
PBAbstractDirectory

PBDirectoryListener Related Classes
  • Called when peers and groups are discovered, discoveries are started, completed, or timed out.
  • Implemented by an object that expects to receive notifications from a directory.
PBDirectory

The next collection of classes implement a messaging framework for peer applications.

In this API, a messenger handles the exchange of messages with the peer network. Messengers are specific to a peer group. (For more information about peer groups, see the Domain Concepts section.)

PBMessenger
Related Classes
  • Exchanges messages (fire-and-forget, requests, replies) with the peer network.
  • Translates PBABI messages to native peer network messages
  • Provides ability to communicate with any other peer in the same network that is a member of the same group.
  • Must be implemented by an object that provides message exchange for a particular peer network.
PBAbstractMessenger
PBPeerGroup

PBAbstractMessenger Related Classes
  • Provides default behavior for message transfer, which may be useful for derived classes.
PBMessenger
PBPeerGroup

The PBAPI fully supports synchronous and asynchronous messages. Asynchronous message calls return a marker, which acts as an IOU for the message transfer. The message listener interfaces provide the mechanism for peer networks to notify the Jockey framework of the presence of new messages, requests, or responses that must be handled.

PBMessage Related Classes
  • Represents a message transmitted or received from the peer network.
  • Identifies a message as an unsolicited message, a request, or a response.
  • Must be implemented by an object that translates from PBABI standard message to a native message for a particular peer framework.
PBAbstractMessage

PBAbstractMessage Related Classes
  • Provides default behavior for message PBABI message storage, which may be useful for derived classes.
PBMessage

PBMessageReceiver Related Classes
  • Called to inform a receiver when a request or message has been received or cancelled.
  • Implemented by an object that expects to receive notifications for inbound messages.
PBMessenger

PBMessageSender Related Classes
  • Called to inform a sender when a sent message has been delivered, cancelled, or a matching response received.
  • Implemented by an object that expects to receive notifications about outbound messages.
PBMessenger

PBSendMarker Related Classes
  • Serves as a marker for a message send in progress.
  • Provides status detail for sending progress.
PBMessage

PBReceiveMarker Related Classes
  • Serves as a marker for a message being received.
  • Provides status detail for receive progress.
PBMessage

PBResponseMarker Related Classes
  • Serves as a marker for a message sent out on the peer network, and the resultant response that is expected.
  • Provides status detail for request/response progress.
PBMessage
PBSendMarker

The final set of classes in the PBAPI show the relationships between the domain objects in the peer framework.

PBPeerEntity Related Classes
  • Represents a basic entity that can present itself on a peer network.
  • Uniquely identifiable on the peer network.
  • Must be implemented by an object that translates from a PBABI peer entity to a native peer entity for a particular peer network.

PBAbstractPeerEntity Related Classes
  • Provides default behavior for a peer entity, which may be useful for derived classes.
PBPeerEntity

PBPeerGroup Related Classes
  • Represents a peer group that can present itself on a peer network.
  • Must be implemented by an object that translates from a PBABI peer group to a native peer group for a particular peer network.

PBAbstractPeerGroup Related Classes
  • Provides default behavior for a peer group, which may be useful for derived classes.
PBPeerGroup

PBPeer Related Classes
  • Represents a peer computer that can present itself on a peer network.
  • Must be implemented by an object that translates from a PBABI peer to a native peer for a particular peer network.

PBAbstractPeer Related Classes
  • Provides default behavior for a peer, which may be useful for derived classes.
PBPeerEntity


jgardner@resilientedge.com
Last modified: Wed Aug 01 12:52:59 Central Daylight Time 2001