JAAA Jxta Aplication Adapter and Architecture


Sven Hohlfeld

Software requirements specification

JAAA Architecure

Version 0.1








Sven Hohlfeld (sourceforge alias: wunderkind)



Egg or hen?

Sven Hohlfeld

EMail wunderkind@users.sourceforge.net

  1. Purpose

The purpose of JAAA1 is to provide an easy and safe way (near "plug and play") for existing and future Java Applications to connect to JXTA2 peer two peer network. Thereby the application can leverage its features into JXTA network.

Main target are:

  1. JAAA perspective

JAAA provides some kind of easy configurable gateway/proxy to JXTA peer two peer network. It runs on top of a JXTA peer. It acts as an intermediary between JXTA peer two peer network and the specific Java application. The core JAAA will exactly be a JXTA application. There will be an other part that is fully configurable and communicates with the core. JAAA will be usefull for java application developers that are interested in diving quickly and easily into the peer two peer world of jxta without a total refactoring of their existing non peer two peer non JXTA application. Furthermore system administrators can profit from JAAA in two ways: First in leveraging the power of existing applications into fully blown JXTA peer two peer applications and second in adding remote control functionality into the applications their users run within ther network via JAAA/JXTA power. Finally some users of java applications might get an interest in moving their application into JXTA. Imagine a code shared, a picture displayed on desktops of friends while drawing or something else you can imagine!

  1. JAAA architecure

Core JAAA runs as a normal JXTA application. It ensures connection to JXTA, establish a special Peer Group and route the events to other JAAA users for this application. The representation of the JAAA core is fully configurable i.e. That the represenation of JAAA to the JXTA peer two peer network ist configurable. For example the user can define, what name the application shall have to the JXTA network and what kind of JXTA peer group will be used.

The other part of JAAA is a component that acts as an intermediary between JAAA core and the existing application. Its architecture will be similiar to a reactor: The existing application will send commands to it and it will route this command to JAAA core. That means that the existing Java application will only deal with this JAAA reactor directly - not with JAAA core.

JAAA reactor will implement two mechanisms to incorporate the planed behaviour of the existing Java application within JXTA peer two peer network. One that pushes values into the reactor straight from the existing Java application and one that pulls values out of the objects of the existing Java application directly into the reactor. The first method will requiere code manipulation of the existing Java application. It will be the more traditional approach in connecting one existing Java application with the JXTA peer two peer network. The requiered code manipulation of the existing Java application is the reason for implementing this function later into JAAA than the second method: the Pull method.

Implementation of Pull method for the JAAA reactor is most important to reach the main goal of JAAA: Plug and Play mechanism How will JAAA reactor do that? JAAA reactor tries to load predefined (configurable) classes of the existing Java application via reflection and decoration mechanisms. This establishes the necessary runtime for the JAAA reactor. JAAA reactor will use this runtime to communicate with JAAA core.

  1. Product overview

Referring documents

SRS of JAAA core

SRS of JAAA reactor