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.