ZEN Tutorial

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 3

Tutorial ZEN Project

The ZEN project aims to provide an open-source implementation of highly configurable low foot-print CORBA ORB implementation using Java and the Real-time Specification for Java. The flexible configuration is achieved by making the ORB architecture pluggable, thus allowing multiple implementations of ORB components, e.g., Buffer Allocators, CDR Message Parsers, IOR Parsers and Portable Object Adapters (POA) to be customizable and loadable on demand. The remaining core portion of the ORB is called the ZEN Kernel which is minimal as features that are not needed are not loaded during initialization. The figures below visually contrast the architectures of a Monolithic (a single piece) ORB implementation and the Micro (micro as in the micro-kernel pattern) ORB implementation of ZEN.

A Monolithic ORB Architecture

ZEN Micro ORB Architecture

ZEN Portable Object Adapter Component


One of my principle contribution to ZEN has been the design and implementation of the ZEN Micro POA. A brief overview of the functionalities of a POA refer to "POA Overview", Pyarali Ifran and Schmidt C. Douglas. Most important observation about a POA is that its Quality of Service (Q.o.S) provided by a POA can be controlled using policies provided to it at initialization. In ZEN, we have decomposed the POA along these policy lines. One can consider this similar to coming up with building blocks in a Lego toy. Based on the type of toy needed, we custom build the POA, not using the unnecessary pieces. This approach leads to a minimalist size for the POA (footprint). The mechanism for implementing this is similar to that of a policy driven approach. Based on the policies specified during the initialization of the POA, the mechanisms that implement the policies are associated with the POA. This approach thus eliminates the need to load all the mechanisms required for all the policies, which is a naive approach. This is achieved using a POA creation factory that creates the mechanisms for the policies.

The figure on the left shows the various policies of the POA and the different possible mechanisms for the different policies. The figure on the right shows how we have decomposed the POA along policy lines to have a minimal POA core and pluggable and loadable strategies. This approach considerably reduces the footprint of ZEN's POA. The figure summarizes the contributions to ZEN, All my publications relating to ZEN, can be obtained from here. My other contributions to ZEN include:

Thread pool implementation based on the Half-Sync/Half-Asych design pattern Designed and implemented the Acceptor and Connector components in ZEN for request demultiplexing Developed Collocation optimization strategies needed for real-time systems Implemented Active Demultiplexing strategy for request demultiplexing in the ORB: ensures O(1) worst case time bound

You might also like