Using the TrustME Tool Suite for Automatic Component Protocol Adaptation
The deployment of component oriented software approaches gains increasing importance in the computational sciences. Not only the promised increase of reuse makes components attractive, but also the possibilities of integrating different stand-alone programs into a distributed application. Middleware platforms facilitate the development of distributed applications by providing services and infrastructure. Component developers can thus benefit from a common standard to shape components towards and application designers from using pre-fabricated software components and shared platform services. Although such platforms claim to achieve fast and flexible development of distributed systems, they fall short in key requirements to reliability and interoperability in loosely coupled distributed systems. For example, many interoperability errors remain undetected during development and the adaptation and integration of of third-party components still requires major effort and cost. Partly this problem can be alleviated by the use of formal approaches to automatic interoperability checks and component adaptation. Our Reliable Architecture Description Language (RADL) is aimed at precisely this problem. In this paper we present key aspects of RADL used to specify component-based, compositional views of distributed applications. RADL involves a rich component model, enabling protocol information to be contained in interfaces. We focus on protocol-based notions of interoperability and adaptation, important for the construction of distributed systems with loosely coupled components.
Keywordscomponent protocol specifications automatic component adaptation parameterised contracts architectural description languages distributed middleware platforms
- 1.Robert J. Allen. A Formal Approach to Software Architecture. Ph.D. thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, PE, USA, May 1997.Google Scholar
- 2.Jan Bosch. Composition through superimposition. In Wolfgang Weck, Jan Bosch, and Clemens Szyperski, editors, Proceedings of the First International Workshop on Component-Oriented Programming (WCOP’96). Turku Centre for Computer Science, September 1996.Google Scholar
- 3.Jan Bosch. Design and Use of Software Architectures-Adopting and evolving a product-line approach. Addison-Wesley, Reading, MA, USA, 2000.Google Scholar
- 4.Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, USA, 1995.Google Scholar
- 5.Jun Han. Temporal logic based specification of component interaction protocols. In Proccedings of the 2nd Workshop of Object Interoperability at ECOOP 2000, Cannes, France, June 12.-16. 2000.Google Scholar
- 6.C. A. R. Hoare. Communicating Sequential Processes. Prentice/Hall, 1985.Google Scholar
- 7.Gerald J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall, Englewood Cliffs, NJ, USA, 1991.Google Scholar
- 8.G. Kiczales. Aspect-oriented programming. ACM Computing Surveys, 28(4):154–154, December 1996.Google Scholar
- 9.D.C. Luckham, J.J. Kenney, L.M. Augustin, J. Vera, D. Bryan, and W. Mann. Specification and analysis of system architecture using rapide. IEEE Transactions on Software Engineering, 21(4):336–355, Apr 1995.Google Scholar
- 10.J. Magee, N. Dulay, S. Eisenbach, and J. Kramer. Specifying distributed software architectures. Lecture Notes in Computer Science, 989:137–155, 1995.Google Scholar
- 11.Nenad Medvidovic and Richard N. Taylor. A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering, 26(1):70–93, Janurary 2000.Google Scholar
- 12.Bertrand Meyer. Applying “design by contract”. IEEE Computer, 25(10):40–51, October 1992.Google Scholar
- 13.M. Migliardi and V. Sunderam. PVM emulation in the harness metacomputing system: A plug-in based approach. In J. J. Dongarra, E. Luque, and Tomas Margalef, editors, Proc. of the 6th European PVM/MPI Users’ Group Meeting, Barcelona, Spain September 26-29, 1999, volume 1697 of Lecture Notes in Computer Science, pages 117–124. Springer-Verlag, Berlin, Germany, 1999.Google Scholar
- 14.R. Milner. The pi calculus and its applications. In Joxan Jaffar, editor, Proc. of the 1998 Joint International Conference and Symposium on Logic Programming (JICSLP-98), pages 3–4, Cambridge, June 15-19 1998. MIT Press, Cambridge, MA, USA.Google Scholar
- 15.Oscar Nierstrasz. Regular types for active objects. In Proc. of the 8th ACM Conf, on Object-Oriented Programming Systems, Languages and Applications (OOPSLA-93), volume 28, 10 of A CM SIGPLAN Notices, pages 1–15, October 1993.Google Scholar
- 16.Object Management Group. The CORBA homepage. http://www.corba.org.
- 17.Iman Poernomo, Ralf Reussner, and Heinz Schmidt. The TrustME language site. Web site, DSTC, 2001. Available at http://www.csse.monash.edu.au/dsse/trustme.
- 18.Ralf H. Reussner. Parametrisierte Verträge zur Protokolladaption bei Software-Komponenten. Logos Verlag, Berlin, 2001.Google Scholar
- 19.Heinz Schmidt. Compatibility of interoperable objects. In Information Systems Interoperability, pages 143–199. Research Studies Press, Taunton, England, 1998.Google Scholar
- 20.Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. ACM Press, Addison-Wesley, Reading, MA, USA, 1998.Google Scholar