COMPADRES- COMPonents and Aspects for Distributed, Real-time, and Embedded Systems


Collaborative research with the Jiazzi group at the University of Utah

This research project is developing new software engineering techniques and tools to design, develop and configure distributed, real-time, and embedded (DRE) middleware and applications.

DRE systems frequently have to satisfy complex, non-functional requirements (e.g., performance, predictability, concurrency and memory constraints) that result in cross-cutting concerns. Also, DRE systems must be configurable for different scenarios, enabling lower cost and shorter time of development and deployment. Component-Based Software Development (CBSD) and Aspect-Oriented Programming (AOP) are two orthogonal paradigms that hold promise in improving dramatically the modularity and configurability of DRE systems in order to overcome the current limitations. Therefore, the research lead to an improved understanding of:

  1. How cross-cutting concerns can be modularized within DRE middleware, and
  2. How CBSD and AOP interact with typical real-time requirements and scale to support DRE middleware
  3. How aspects may be defined for reuse across software systems. It also seeks to achieve expressive power through the integration of components and aspects.

The proposed programming model supports aspect definition and application at the component level: aspects are constructed through new compositional forms, and conversely, aspects introduce functionality at the level of component definitions and interconnections. The model allows developers to manage complexity in new ways:
  1. by allowing flexible middleware configuration,
  2. by supporting both component-like encapsulation and controlled exposure to aspects, and
  3. by providing sound type checking of middleware configurations.

Furthermore, the new techniques are being validated through the development of new, modular, and highly configurable DRE middleware for Real-Time Java.

The knowledge that comes from this research will drive progress in DRE systems development and enable more effective techniques for modularizing concerns across application and middleware boundaries. Also, the resulting technologies and tools will be useful for designing and building embedded and real-time software systems, as well as software systems in general.

Both component systems and middleware have become popular commercially; the technology being developed in this research project will demonstrate how future component systems and middleware should evolve.

Tools


This collaborative project, located at University of California, Irvine and at the University of Utah, is developing and extending the following tools:
  1. RTZen is an Real-Time Java (RTSJ) implementation of the Real-Time CORBA specification.
  2. Jiazzi is a Java-based language and tool for component definition and linking based on units.
  3. ZEN-kit is a graphical tool that allows custom configuration of RTZen for embedded systems.
This material is based upon work supported by the National Science Foundation under Grant No. 0410218.
Disclaimer: Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Project Software
RTZen
ZEN-kit Eclipse plug-in