Overview:
In essence, the CBA prototype consists of a fully functional componentised IPv4 network stack and the ancillary supporting infrastructure. The network stack is implemented as a set of software components. A component typically is a well-defined unit such as a protocol e.g. TCP is a single component. These components are then deployed as an OSGi based application within an application server (Spring DM Server).
The CBA network components (ARP, IP, TCP, UDP,…) have been ported from the JNode operating system. These OSGi components are then grouped into an application instance for deployment within the SpringDM [spring-09] application server. These application instances are entirely isolated and self-contained from each other in the application server allowing for multiple network stack instances to co-exist in isolation – in other words multiple network stacks running independently. The underlying network medium “ethernet” is provided by using Extensible Messaging and Presence Protocol (XMPP) as a network network overlay across which the stacks can communicate.
The CBA network stack applications function as completely independent and isolated virtual nodes. Further components (e.g. traffic generators) can be added into the OSGi applications which then use the CBA stack to perform the inter-node network communication.
Java New Operating system Design Effort (JNode) [jnode-09] is an open-source project to create a Java platform operating system. The project has taken the unique direction of creating all the software in java itself, with the exception of some assembly language to boot and load the system. JNode has an entirely java based Internet Protocol, version 4 (IPv4) network stack which has been proven in the field.
The OSGi framework [All07] is a module system for Java that implements a complete and dynamic component model, something that does not exist in standalone Java Virtual Machine (JVM) environments. Applications or components (coming in the form of bundles for deployment) can be remotely installed, started, stopped, updated and uninstalled without requiring a reboot; management of Java packages/classes is specified in great detail. Life cycle management is done via APIs which allow for remote downloading of management policies. The service registry allows bundles to detect the addition of new services, or the removal of services, and adapt accordingly.
License
LGPL : http://www.gnu.org/licenses/lgpl.html
The reason behind the selection of the LGPL license is based primarily on the code base that has been ported from the JNode project. The JNode project uses the LGPL license. All modified source code must remain under this license and it is efficient to keep additional source code contributed by WIT under the same license as they may be intermixed within the same organisational packages.
This license has also facilitated the fostering of partnership with the JNode project for future development and cooperation. The JNode project can import code updates from the WIT code base and vice versa in order to progress network protocol functionality.
The LGPL license will apply to all users of the code base. This also includes the partners within 4WARD as the LGPL already applies to existing (modified) code from the JNode project.
Availability
The source code for the CBA prototype is contained under the url of the readme file: https://www2.tssg.org/4WARD/opensource/README.txt
At this location a set of jar files for the protoytpe are stored in the directory. All that’s provided here is either 4WARD written code or code which has been modified from the JNode open source project.
org.tssg.actions.ping-sources-1.0.0.jar
org.tssg.bootstrap.agent-sources-1.0.0.jar
org.tssg.bootstrap.api-sources-1.0.0.jar
org.tssg.bootstrap.driver-sources-1.0.0.jar
org.tssg.config.dao-sources-1.0.0.jar
org.tssg.config.stack-sources-1.0.0.jar
org.tssg.driver.net.idrive-sources-1.0.0.jar
org.tssg.org.jnode.driver.net.loopback-sources-1.0.0.jar
org.tssg.org.jnode.net.arp-sources-1.0.0.jar
org.tssg.org.jnode.net.ethernet-sources-1.0.0.jar
org.tssg.org.jnode.net.ipv4-sources-1.0.0.jar
org.tssg.org.jnode.net.ipv4.config-sources-1.0.0.jar
org.tssg.org.jnode.net.ipv4.icmp-sources-1.0.0.jar
org.tssg.org.jnode.net.ipv4.layer-sources-1.0.0.jar
org.tssg.org.jnode.net.ipv4.resolver-sources-1.0.0.jar
org.tssg.org.jnode.net.ipv4.tcp-sources-1.0.0.jar
org.tssg.org.jnode.net.ipv4.udp-sources-1.0.0.jar
org.tssg.org.jnode.net.support-sources-1.0.0.jar
org.tssg.socket.tcp-sources-1.0.0.jar
org.tssg.socket.udp-sources-1.0.0.jar
org.tssg.support.jnode-sources-1.0.0.jar
org.tssg.transport.im-sources-1.0.0.jar
org.tssg.transport.im.configmanager-sources-1.0.0.jar
org.tssg.transport.im.logger-sources-1.0.0.jar
References:
[jnode-09] JNode Open Source Project. 2009. url: http://www.jnode.org.
[All07] OSGi Alliance. OSGi Service Platform, Core Specification, Release 4, Version 4.1.
OSGi Alliance, 2007. isbn: 9789079350018.
[spring-09] SpringDM – OSGi based Application Server. 2009. url: http://www.springsource. com/products/dmserver
4WARD Partners Involved:
WP2: WIT (TSSG) – Sole Generator of code-base.
CBA lead Patsy Phelan commented on today’s release “Awesome”.