The Jockey API introduces several domain entities. The primary entities that Jockey works with are Meta-Nets, Networks, Groups, Peers, Applications, Services, Users and Rules. This document describes each item and their relationship to each other.
Contains: (0...n) Networks
Description: Meta-Net refers to the set of all networks accessible from a Jockey client. Unlike the Internet, which is bound by the IP protocol, a Meta-Net binds networks from an application perspective through a common API.
Contains: (0...n) Groups, (0...n) Peers
Description: A Network refers to a set of nodes that communicate with a well-known protocol. Examples of networks are: the Web (HTTP), the JXTA-Net (JXTA), the Gnutella-Net (Gnutella protocol), etc.
Created / Destroyed by: A network is created when a new networking protocol is designed and a Peer Bridge between Jockey and that network is built.
Contains: (0n) Peers, (0...n) Rules, (0...n) Groups
Description: A Group is a logical association of Peers. Groups may contain additional groups. The attributes for associating peers together are completely subjective. For example, a group can be comprised of peers in the same geographic vicinity, or groups could be comprised of peers that have a similar interest. A group can else enforce rules on the peers that join it. A group lives as long as one member remains in the group.
Created / Destroyed by: A Group is created by an application or service. It is destroyed when all peers leave the group.
Contains: (0...n) Services, (0...n)Applications
Description: A peer, or a peer engine is the hub of communication to networks on a computing device. The peer pulls together resources including peer participants (services and applications) and networks. The Jockey hub has a unique identifier. This identifier is then related to the proprietary identifier that is used on each network (JXTA PeerID, etc.)
Created / Destroyed by: A peer is created when a Jockey is installed on a machine. Only one instance of Jockey can reside on a machine at once.
Description: A Service is a named, executable piece of code. A service will typically act like a function call in that it is invoked by name and optionally will have an argument list and return a result. Typically, services are components of an application. In addition, services may be shared by multiple applications, both locally and remotely. We also differentiate between Application Services and System Services. Jockey only deals with Application Services. System Services are those offered by peer frameworks to provide the necessary functionality to adhere to their specification. As an example, JXTA will have system services that carry out the mandatory services that it needs to meet the specification (Pipe Services, Advertisement Services, etc.). These System Services are internal to the peer framework and are out of scope of the Jockey API.
Created by / Destroyed by: Services must first be deployed to a service provider. After deployment, the service provider can activate them (instantiate) or an invocation to the service can instantiate and execute it. The destruction of a service happens when it is un-installed.
Description: An application is a software process. Applications may utilize services or they may utilize peer networks. One could say, “My application uses Jockey”. This would mean that it makes some call(s) into the Jockey API either to utilize a peer network, invoke a service or both.
Created by / Destroyed by: Applications are created by application programmers and launched and closed by users.
Description: A rule is constraint that is placed on a group. For instance, a rule could be created to determine how “joining” a group should happen. Can any member grant another user privilege to join the group? Is there one administrator that grants privilege? Does a vote occur? Another example is in defining mandatory services for peers. Often it is necessary for each peer in a group to implement a specific service. In other cases it is necessary for just one member to implement a service. Either way, the group should be able to define a rule for such activities.
Created by / Destroyed by: A rule is created by an application or a service. Rules can only be defined before the group is created and peers join.
Description: A user is a person that uses an application that leverages Jockey. A user is given an ID that becomes their Jockey identifier. This ID is then related to one or more other identifiers, which may include e-mail addresses, or instant message identifiers. By default a Jockey implementation defaults the user to “anonymous”. A user must explicitly identify them selves if they wish to be known on the network.
Created by / Destroyed by: A user is created by an application or a service.