Lightning Active Node Engine - An Active Network User Service Platform
by Sami Lehtonen
There is a strong trend towards wireless networking and smaller terminal devices. The advent of various wireless terminals such as PDAs, mobile phones, or similar handheld equipment, will result in greater and greater volumes of Internet traffic. The key issues are support for seamless roaming, security and content adaptation.
Lightning Active Node Engine (LANE) is an active network platform developed at VTT Technical Research Centre of Finland. It is based on a decoupled active node architecture which separates the active applications from non-active IP-related routing. This decoupling was used in former active network projects Caspian and MAO.
The LANE architecture is depicted in the Figure. Decoupling is implemented by dividing the Active Node into an Active Router and an Active Server.
The Internet lacks a number of services relevant to mobile users such as automatic conversion proxies, dynamic firewalls etc. Active Networking or programmable networks can answer these service requirements. However, this raises some fundamental implementation issues on Active Nodes.
These issues have been addressed in the system design of LANE, which is based on the Application Layer Active Networking (ALAN) concept. The work is divided between the two parts, the Active Router (AR) and the Active Server (AS). The routing in the Active Router is dynamically configurable, and all time- or processor-consuming activities (or Active Services) are located and executed in the Active Server.
The Active Server handles the creation, execution and management of active services. All active services are on-the-fly deployable Java binaries. For security reasons, users can only reference services by name. Active services are designed and implemented for the users rather than for the servers. As a proof of concept we have implemented dynamic Mobile IP support for our Active Server framework.
Services needed by mobile users can be located anywhere in the network, follow the user, and balance server loads. In our system, we designed an entity called the User Agent. This entity is created by the Active Server according to the users profile, which is located in a user profile database. There are User Agents with different privilege levels for different purposes (or users). The security of the design is ensured with separately implemented User Agent classes. These classes implement only the interfaces that are granted for a particular user.
The User Agent represents the user on a particular Active Server. All services for the user at that Active Server are managed by the User Agent, and the user might have his/her User Agent instantiated in several Active Servers around the network. This makes it possible to move services from one Active Server to another, balancing the load between Active Servers. If the user then moves away, abandoning the User Agent, the removal of the User Agent removes all services for the user at that Active Server.
In our system, the services are mainly implemented as atomic, meaning that a single service instance serves only one user. We have followed a strict design principle, namely, there are multiple services for a user and multiple users at a server.
The research group included Kimmo Ahola, Mikko Alutoin, Markus Aroharju, Arto Juhola, Titta Koskinen, Sami Lehtonen, Marko Lyijynen, Sami Pönkänen, and Pertti Raatikainen.
Future work will consist of implementing load-balancing between User Agents located in different Active Servers. We will implement a method to transfer the state of a User Agent and its services to another Active Server (when a Mobile Node moves to another foreign network). Furthermore, implementing other useful services will prove the design of our concept.
Sami Lehtonen, VTT
Tel: +358 9456 7240