The Source for Java Technology Collaboration


ji3 - Java Internet Indirection Infrastructure

Internet Indirection Infrastructure (i3) offers a rendezvous-based communication abstraction. i3 ease the deployment of services like multicast, anycast, and mobility.
i3 works like this: "instead of explicitly sending a packet to a destination, each packet is associated with an identifier; this identifier is then used by the receiver to obtain delivery of the packet".
Basic i3: A host R that inserts a trigger (id, R) in the i3 infrastructure to receive all packets packets with identifier id.

Basic i3: A host R that inserts a trigger (id, R) in the i3 infrastructure to receive all packets packets with identifier id.

Project features

This project is intended to be a Java port of Internet Indirection Infrastructure using J2EE? technologies. Internet Indirection Infrastructure is an abstraction which can be compared to JavaSpaces. It is used Springframework and its bean configuration facilities to start-up the whole application. Communication is done by using JMS and Client - Server via Web Services.

ji3 project focuses on Internet Indirection Infrastructure and it is mainly a port of i3 to java. Main goals of the project will be implement i3 in java in order to test its performances and also create Client APIs for i3 in order to write an application that will use i3 multicast facilities.

No efforts are spent in developing code which is not core for the project: the way Chord nodes talk one each other is not the core of ji3, so JMS is used to be guaranteed that communication layer works fine.

Once Chord Ring is created, AOP advices intercept node's communications and let messages be analysed by i3's "business logic". i3 Client API will be implemented as a web service to separate i3 "framework" from applications using i3.

In the project every module is implemented as a service which is instantiated by a container and everything is wired up by Springframework. Common services are a Web server and Servlet Engine (I used Jetty) a JMS Server (UberMQ), a service that analyzes computer network adapters (which is intended to use also UPnP to find and communicate with routers devices to be used in a P2P environment) and a service that talks with a registry in order to find the first node of the Chord Ring. Of course there is also an overlay module which is my Chord implementation and in the end there is i3 implementation.

I tried to implement some design patterns like Strategy to be able to change underlying implementations: so maybe my Chord implementation can be changed with Open Chord.

Documentation

Here is some theoretical documentation about Chord and Internet Indirection Infrastructure:

You can download Chord implementation specification here (PDF - 186KB) or i3 documentation here (PDF - 307KB) or browse ji3 project API here

-- theBaz - 16 Feb 2006

Topic Ji3Project . { Edit | Ref-By | Printable | Diffs r3 < r2 < r1 | More }
 XML java.net RSS

Revision r3 - 18 Feb 2006 - 20:11:19 - Main.thebaz
Parents: WebHome