Fine-grain Componentization of Middleware

Research Experience>>

 Middleware Specialization Techniques | Simplifying programming model for Real-time Systems | Model-Driven QoS Evaluation Approaches | Quality Assurances Approaches for Middleware Configuration Validation


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 (foot-print). 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 

The figure below summarizes my contributions to the ZEN project.

Publications

Raymond Klefstad, Arvind S. Krishna and Douglas C. Schmidt Design of a ModularCORBA Portable Object Adapter for Distributed Real-time Embedded Systems.Proceedings of the International Symposium on Distributed Objects and Applications Irvine, CA, October 2002.

This paper discusses the design and performance of ZENs portable object adapter (POA) which is an important component in a CORBA object request broker (ORB). This paper makes the following three contributions to the study of middleware for memory-constrained DRE applications. First, it presents three alternative designs of the CORBA POA. Second, it explains how design patterns can be applied to improve the quality and performance of POA implementations. Finally, it presents empirical measurements based on the ZEN ORB showing how memory footprint can be reduced significantly while throughput is comparable to a conventional ORB implementation.

Arvind S. Krishna, Douglas C. Schmidt, Krishna Raman and Douglas C. Schmidt Enhancing Real-time CORBA predictability and Scalability, International Symposium on Distributed Objects and Applications (DOA), Catania, Sicily, November 2003

This paper provides the following contributions to the study of QoS-enabled middleware for DRE applications. First, we outline key Real-time CORBA implementation challenges within the ORB Core, focusing on efficient buffer allocation and collocation strategies. Second, we describe how these challenges have been addressed in ZEN, which is an implementation of Real-time CORBA that runs atop RTSJ platforms. Third, we describe how RTSJ features, such as scoped memory and no-heap real-time threads, can be applied in a real-time ORB Core to enhance the predictability of DRE applications using Real-time CORBA and the RTSJ. Our results show that carefully applied optimization strategies can enable RTSJ-based Real-time CORBA ORBs to achieve effective QoS support for a range of DRE applications.