Janos Architecture

Mailing Lists   
Related Work   
Flux Projects   

Conceptually, there are three basic parts to Janos: Moab (our "NodeOS"), the JanosVM (a Java runtime that supports processes), and ANTSR (our "EE").

In reality, Janos is composed from five distinct software components. At the lowest level is the OSKit, building on that, is the second component, Moab, which provides NodeOS interfaces. The JanosVM, our third component, provides a Java run-time with our process and resource management augmentations. The fourth component is a Java NodeOS which provides NodeOS interfaces and abstractions (with some changes) to Java-based EEs. Building on this layer is the fifth component, ANTSR.

While not supporting complete mix-and-match, subsets of the Janos components should be useful. For example, the OSKit+Moab provides a nice, pure-C NodeOS that supports CPU and networking controls. The JanosVM coupled with the Java NodeOS interfaces should provide a suitable run-time for other Java-based EEs. All componets are Open Source and available for download from our software page.

  • OSKit: The OSKit is a separate Flux project. It is being enhanced and modified in support of Janos.

  • Moab: The Janos NodeOS layer is built on our OSKit. The NodeOS API has been defined by the Active Networks NodeOS Working Group. The NodeOS provides low-level services like threading, synchronization, and network access. The Janos security framework, based on the Flask model, will be implemented mostly at this level.

  • JanosVM: The JanosVM is a resource-aware, multi-heap Java Virtual Machine. It can be tailored to and take advantage of the Moab abstractions, resource and security interfaces.

  • Java NodeOS: The Java NodeOS is an implementation of the NodeOS abstractions and services in Java. It refines the interface for Java, eliminating non-Java abstractions (such as address spaces), and adding support for Java-isms (such as Classes).

    There are two "back-end" implementations of the Java NodeOS. The first is written purely in Java and will run on any JVM. The second acts as a thin layer around the Moab NodeOS API. Both are available in v1.1.0 and later releases of the libraries.

  • ANTSR: A port of ANTS to the Janos Java NodeOS. This port restructures the internals of ANTS to take advantage of the services provided by the NodeOS. Existing ANTS protocols should work with only minor modifications on our system. ANTS2.0 is based on ANTSR.

Our paper, Janos: A Java-oriented OS for Active Networks provides more details on the architecture of Janos.

[ Network Testbed ] [ Alchemy/Knit ] [ STP ] [ Janos ] [ OSKit ]
Flux Research Group / School of Computing / University of Utah

Problems? Contact the Janos Web Admin.
Last updated April 30, 2004.