Towards predictable CORBA-based services
Today's World Wide Web provides the basis for demanding distributed services, such as online-banking, travel reservation, and stock trading - which require high predictability and quality-of-service properties such as security, end-to-end availability, dependability, and real time. The Common Object Request Broker Architecture (CORBA) is a widely-accepted, standardized open system integration framework based on distributed object technologies, which - among others - has been successfully used for implementation of open Web services. CORBA does not explicitly address quality-of-service parameters neither for its communication links nor its end systems. However efforts like the Real-Time CORBA Special interest Group (SIG) at OMG and the "pluggable protocols" proposal will ultimately lead to support of quality-of-service properties for CORBA communication links. Within this paper we are concentrating on design patterns and architectural approaches for fault-tolerant, highly available end systems. Any fault tolerance extension for CORBA components needs to trade off data abstraction and encapsulation against implementation specific knowledge about a component's internal timing behavior, resource usage and interaction patterns. These nan-functional aspects of a component are crucial for the predictable behavior of fault-tolerance mechanisms. However, in contrast to CORBA's interface definition language (IDL), which describes a component's functional interface, there is no general means to describe a component's non-functional properties. We propose the usage of aspect descriptions based on the extended Markup Language (XML) for that purpose. We describe the automatic generation of reliable CORBA services based on aspect information. Our approach relies on a number of building blocks, which provide solutions for service replication, for supervision of a service, for online replacement and for call admission and timely execution. We discuss our implementation of the "Observer" design pattern for supervision of CORBA clients and demonstrate the configuration of replicated services through a graphical user-interface. The "Composite Objects" pattern is our solution for CORBA servers with high predictability regarding timely and reliable method execution. The dependable upgrade of system components is supported through online-replacement functions. Our middleware uses commercial off-the-shelf (COTS) technology and aims at conversion of legacy applications into reliable Web-services.
corba web services fault tolerance online replacement aspect-oriented programming