Model-Driven Configuration and Deployment of Component Middleware Publish/Subscribe Services
Lecture Notes in Computer Science
Quality of service (QoS)-enabled publish/subscribe services are available in component middleware platforms, such as the CORBA Component Model (CCM). Today, however, these platforms lack a simple and intuitive way to integrate publish/subscribe service configurations and deployments. This paper illustrates how generative model-driven techniques and tools can automate many service configuration and deployment tasks associated with integrating publish/subscribe services into QoS-enabled
... based systems. We evaluate these techniques in the context of a real-time avionics mission computing problem involving a system with over 50 components. Our evaluation finds that an automated model-driven configuration of a reusable component middleware framework not only significantly reduces handwritten code and but also simultaneously achieves high reusability and composability of CCM components. Emerging trends. To reduce the complexity of designing robust, efficient, and scalable distributed real-time and embedded (DRE) software systems, developers increasingly rely on middleware , which is software that resides between applications and lower-level run-time infrastructure, such as operating systems, network protocol stacks, and hardware. Middleware isolates DRE applications from lower-level infrastructure complexities, such as heterogeneous platforms and error-prone network programming mechanisms. It also enforces essential end-to-end quality of service (QoS) properties, such as low latency and bounded jitter; fault propagation/recovery across distribution boundaries; authentication and authorization; and weight, power consumption, and memory footprint constraints. Over the past decade, middleware has evolved to support the creation of applications via composition of reusable and flexible software components . Components are implementation/integration units with precisely-defined interfaces that can be installed in application server run-time environments. Examples of conventional commercial-off-the-shelf (COTS) component middleware include the CORBA Component Model (CCM)  and Java 2 Enterprise Edition (J2EE) . Component middleware generally supports two models for component interaction: (1) a request-response communication model, in which a component invokes a point-to-point operation on another component, and (2) an event-based communication model, in which a component transmits arbitrarily-defined messages, called events, to other components . Event-based communication models are particularly relevant for large-scale DRE systems 1 (such as avionics This work was sponsored in part by grants from NSF ITR CCR-0312859, Siemens, and DARPA/AFRL contract #F33615-03-C-4112 1 In this context, systems include the OS/hardware/network, middleware, and applications. mission computing [6, 7] , distributed audio/video processing [8, 9] , and distributed interactive simulations [10, 11] ) since they help reduce software dependencies and enhance system composability and evolution. In particular, the publish/subscribe architecture  of event-based communication allows application components to interact anonymously and asynchronously  . The publish/subscribe communication model defines the following three software roles: -Publishers generate events to be transmitted. Depending on the architecture design and implementation, publishers may need to describe the events they generate a priori. -Subscribers receive events via hook operations. Subscribers also may need to declare the events they receive a priori. -Event channels accept events from publishers and deliver events to subscribers. Event channels perform event filtering and routing, QoS enforcement, and fault management. In distributed systems, event channels propagate events across distribution domains to remote subscribers.