EODiSP remote Design
This page describes the design of the EODiSP remote software package. For a better understanding, it is recommended to read the EODiSP general architecture page first. Additionally, this document is best read in combination with the EODiSP remote API documentation. This page contains references to the classes described in the API documentation.
Contents
Overview
The EODiSP remote software package provides two items: A JXTA transport layer implementation for the Java extensible remote method invocation (Jeri) and a means to configure and startup the JXTA network infrastructure. The next sections discuss these two items in detail.
JXTA Transport Layer for Jeri
EODiSP remote uses the Java extensible remote method invocation (Jeri) to implement remote method calls. Jeri is an implementation of the Java Remote Method Invocation (Java RMI) programming model and provides an architecture that allows customization at different levels of the protocol stack. Please consult the Jeri documentation for more information about its architecture and design.
One of the main EODiSP requirements is to allow communication across firewalls and NAT. Jeri does not directly provide this feature. To overcome this, a new transport layer for Jeri was written based on JXTA. Implementing a transport layer for Jeri basically comes down to implementing two interfaces of the Jeri framework, namely the Endpoint and ServerEndpoint interfaces.
The classes that implement these two interfaces are JxtaEndpoint
and JxtaServerEndpoint.
The JxtaNetwork class
is a helper class that carries information about the JXTA network infrastructure.
The Jeri-JXTA transport layer doesn't provide any utility classes to configure and
startup the JXTA network infrastructure by itself. This makes the JXTA transport layer
independent of the configuration and startup of the JXTA network infrastructure.
The only configuration parameter of the JXTA transport layer is the peer group.
It needs to be set by calling the registerJeriPeerGroup(PeerGroup jeriPeerGroup)
method of the JxtaNetwork
class before any use of the JXTA transport
layer.
JXTA Network Infrastructure
Before an application can communicate with JXTA it needs to set up a JXTA network infrastructure. The EODiSP remote provides an implementation of the AppModule interface that creates a configuration of a JXTA peer and starts up the JXTA platform. Please refer to the Javadoc documentation of the RemoteAppModule class for a detailed description and the EODiSP util Javadoc for a general description of the application framework.