Automatic component protocol adaptation with the CoConut/J tool suite

While industrial middleware platforms such as CORBA, EJB, or .NET facilitate the development of distributed applications by providing certain infra-structural services required in many distributed systems (such as name services, remote method calls, parameter marshalling, etc.), these industrial platforms fail to support the development of distributed systems with independent components. In particular, their component models do not provide sufficient information for component interoperability checks or automated component adaptation. Especially when considering the personal and institutional separation between component developer and component vendor as one of the prerequisites of an independent component market, finding automatically as many component interoperability errors as possible is crucial. Hence, it is of practical concern that component interfaces not only model the correct way of calling the single methods but also the valid sequences of method calls. Likewise, practice clearly shows that component reuse usually requires component adaptation. This directly shows that only detecting incompatibilities is of limited use, but advocates for techniques of automated component adaptation.In this paper we describe algorithms and tools for specifying and analysing component interfaces in order to check interoperability and to generate adapted component interfaces automatically. Therefore, we introduce the concept of parameterised contracts and a new component interface model.

[1]  S C Kleene,et al.  Representation of Events in Nerve Nets and Finite Automata , 1951 .

[2]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[3]  Ralf H. Reussner An Enhanced Model for Component Interfaces to Support Automatic and Dynamic Adaption , 2000 .

[4]  B. Randell,et al.  Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7-11 Oct. 1968, Brussels, Scientific Affairs Division, NATO , 1969 .

[5]  Oscar Nierstrasz,et al.  Regular types for active objects , 1993, OOPSLA '93.

[6]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[7]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[8]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[9]  Gerard J. Holzmann,et al.  Design and validation of computer protocols , 1991 .

[10]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[11]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[12]  Daniel M. Yellin,et al.  Protocol specifications and component adaptors , 1997, TOPL.

[13]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[14]  Gregor von Bochmann,et al.  Experience with Formal Specifications Using an Extended State Transition Model , 1982, IEEE Trans. Commun..

[15]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[16]  J. Bosch Composition through Superimposition , 1996 .

[17]  C. A. Petri Fundamentals of a Theory of Asynchronous Information Flow , 1962, IFIP Congress.

[18]  Kees M. van Hee,et al.  Component-based software architectures: a framework based on inheritance of behavior , 2002, Sci. Comput. Program..

[19]  Bertrand Meyer,et al.  Object-oriented software construction (2nd ed.) , 1997 .

[20]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[21]  Svend Frølund,et al.  Quality-of-service specification in distributed object systems , 1998, Distributed Syst. Eng..

[22]  Jun Han Temporal Logic Based Specification of Component Interaction Protocols , 2000 .

[23]  Ralf H. Reussner Enhanced component interfaces to support dynamic adaption and extension , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[24]  Ralf H. Reussner Parametrisierte Verträge zur Protokolladaption bei Software-Komponenten , 2001 .

[25]  Bart Wydaeghe. Pacosuite Component Composition Based on Composition Patterns and Usage Scenarios , 2001 .

[26]  Oscar Nierstrasz Proceedings of the 7th European Conference on Object-Oriented Programming , 1993 .

[27]  Antonio Vallecillo,et al.  New Issues in Object Interoperability , 2000, ECOOP Workshops.

[28]  Jeannette M. Wing,et al.  Specification matching of software components , 1997 .

[29]  Vaidy S. Sunderam,et al.  PVM Emulation in the Harness Metacomputing System: A Plug-in Based Approach , 1999, PVM/MPI.

[30]  Antonio Vallecillo,et al.  Object Interoperability , 1999, ECOOP Workshops.

[31]  Bernd J. Krämer,et al.  Synchronization Constraints in Object Interfaces , 1998 .

[32]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[33]  Wolfgang Reisig Petri Nets: An Introduction , 1985, EATCS Monographs on Theoretical Computer Science.

[34]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[35]  M. W. Shields An Introduction to Automata Theory , 1988 .

[36]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[37]  Bernd J. Krämer,et al.  Types and modules for net specifications , 1987 .

[38]  Ralf H. Reussner,et al.  Generating Adapters for Concurrent Component Protocol Synchronisation , 2002, FMOODS.

[39]  Vaidy S. Sunderam,et al.  PVM: A Framework for Parallel Distributed Computing , 1990, Concurr. Pract. Exp..

[40]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .