LinkProtocol instances are Components of the MTS and have access to all MTS Services, as well as Node-level Services. They are also Service Providers and may define protocol-specific services in the MTS Service Broker.
If no LinkProtocols are loaded, the LinkProtocolFactory will create a LoopbackLinkProtocol and an RMILinkProtocol.
A number of useful link protocols have an RPC-like structure, which has been captured in the abstract class
RPCLinkProtocol. Many of the instantiated protocols extend this class and only need to define a few protocol-specific methods.
This protocol handles intra-Node traffic. It’s effectively a direct call from the DestinationLink to the MessageDeliverer.
This sublass of RPCLinkProtocol provides the default implementation for handling inter-Node traffic, by using RMI calls to remote objects of type MT (implemented by MTImpl).
This subclass of RMILinkProtocol uses ssl encryption for the RMI communication by overriding RMILinkProtocol’s getSocketFactory method.
This subclass of RMILinkProtocol pre-serializes Message into byte arrays by overriding RMILinkProtocol’s doForwarding method. It defines a new kind of MTImpl, which will handle the deserialization on the server side, and creates these new server objects by overriding RMILinkProtocol’s make MTImpl method.
This subclass of RPCLinkProtocol sends Messages via CORBA instead of RMI.
HTTPLinkProtocol and HTTPSLinkProtocol
This subclass of RPCLinkProtocol sends Messages through servlets, using either http or https.
More current protocol list
The following lists the latest protocols available in Cougaar, as of version 12.4:
- CORBA – see
- HTTP / HTTPS – see
- RMI – see
- Stream – using the file system, for testing purposes
- XMPP (i.e. Jabber)
- DTN – not available as Open Source. Only available within US Government projects