Jockey Peer Interface (PI) Design

Peer Interface (PI) API

The peer interface (PI) API is intended to provide an application developer with a view into a peer network. This API is as minimal as possible, since it is provided as an interface between an application running as a process and the Jockey engine, which runs as a separate process, once per machine. Implementations of The PI API must perform the interprocess communication (IPC) between the application and engine. The initial implementation will perform the IPC by implementing the PI API as a shared library or DLL, which can be invoked from multiple applications, but will make calls upon a single instance of the Jockey engine.

The first section of the API provides calls for the application to begin a new peer session, end an existing peer session, and query for status of the peer network and the peer identity.

PeerPlatform Related Classes
  • Primary entry point for an application.
  • Allow users to create and end application sessions.
  • Allow addition and removal of identities and permission sets.
PlatformInfo

PlatformInfo Related Classes
  • Provide information about peer networks installed and/or active.
  • Provide status information about engine.
PeerPlatform

DeviceDescriptor Related Classes
  • Provide information about the hardware, network connectivity, and identification of a peer machine.
PeerToken

PeerToken Related Classes
  • Describe a specific instance of a peer computing device.
  • Act as a shallow identifying token for a peer reachable through the peer network.
DeviceDescriptor

AppDescriptor Related Classes
  • Provide information about a peer enabled software application.
PeerPlatform

Authority Related Classes
  • Represents an entity which may have some specific permissions on the peer network.
  • Provides a security context for an application, either based on the application itself, the person using the application, or the current role of the application.
Credential

Credential Related Classes
  • Act as a piece of identifying information about an authority.
Authority

The objects depicted below provide an interface for a user application to launch searches of the peer network, in order to find neighboring peers, peer groups, and services.

PeerGroupToken Related Classes
  • Describe a specific instance of a peer network group.
  • Act as a shallow identifying token for a real peer group known to the peer network implementation.
PeerGroupToken
PeerGroupDescriptor
PeerNetwork

PeerGroupDescriptor Related Classes
  • Provide identifying information about a peer group.
PeerGroupToken
PeerNetwork

PeerNetwork Related Classes
  • Uniquely identify a peer network implementation for application purposes.

PeerNetworkBrowser Related Classes
  • Enable an application to locate other peers and groups
  • Enable an application to perform group actions (create, delete, join, leave).

PeerNetworkListener Related Classes
  • Called when peers and groups are discovered, discoveries are started, completed, or time out.
  • Implemented by an application that expects to receive notifications from a directory.
PeerNetworkBrowser

FindMarker Related Classes
  • Serves as a marker for a query currently in progress.
  • Provides status detail for find progress.
PeerNetworkBrowser

The next set of objects enable an application to communicate with other applications through the peer network.

The communications subset of the PI API simplifies network communications for applications which desire to do the most common application messaging. The message handling system scopes all messages by peer network group; the application must go through extra steps to communicate with other applications outside of the application's current group.

This portions of the API relies on some assumptions about the communications available from the peer network. These assumptions are:

A peer network that does not support network groups can be supported, if these assumptions can be met by a global (unassigned) group.

MessageBroker
Related Classes
  • Exchanges messages (fire-and-forget, requests, replies) with the peer network.
  • Provides ability to communicate with any other peer in the same network that is a member of the same group.
MessageListener

MessageListener Related Classes
  • Called to inform a receiver when a request or message has been received or cancelled.
  • Called to inform a sender when a sent message has been delivered, cancelled, or a matching response received.
  • Implemented by an application that expects to receive notifications about messages.

PeerMessage Related Classes
  • Represents a message transmitted or received from the peer network.
  • Identifies a message as an unsolicited message, a request, or a response.

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

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

ResponseMarker 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.
PeerMessage
SendMarker


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