A design pattern based approach to generating synchronization adaptors from annotated IDL

Middleware forms such as CORBA and DCOM provide standard component interfaces, interaction protocols and communication services to support interoperability of object-oriented applications operating in heterogeneous and distributed environments. General-purpose services and facilities foster re-use and help reduce development costs. Yet the degree of automation of the software development process is limited to the generation of skeleton and stub code from component interface specifications given in a common interface definition language (IDL). This is mainly due to the fact that the expressiveness of current IDLs is limited to the specification of type and operation signatures. Important properties of crucial components of security-, safety-critical or reactive applications such as object behavior, timing or synchronization constraints cannot be documented formally, let alone checked automatically. In this paper, we continue developing solutions for adding specifications of semantic properties to component interfaces and automatically synthesizing code that instruments corresponding semantic checks. Independently from the concrete syntax and semantics of such specification elements, we present a collection of design patterns that allow the designer to seamlessly integrate the synthesized code with the code frames generated by standard IDL compilers. We study these approaches along the concrete example of extending CORBA IDL with synchronization constraints and we evaluate several implementations, solely based on standardized features of the CORBA standard.

[1]  Douglas C. Schmidt,et al.  The design and performance of a real-time CORBA event service , 1997, OOPSLA '97.

[2]  Victor Fay Wolfe,et al.  Real-time Method Invocations in Distributed Environments , 1995 .

[3]  Dan Harkey,et al.  Client/Server programming with Java and Corba , 1997 .

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

[5]  Robert Englander Developing Java Beans , 1997 .

[6]  J. Davenport Editor , 1960 .

[7]  Akinori Yonezawa,et al.  Inheritance and Synchronization in Concurrent OOP , 1987, ECOOP.

[8]  Vladimir I. Zadorozhny Towards an integrated CORBA/RAISE Semantic Interoperable Environment , 1997 .

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

[10]  Jon Sigel,et al.  CORBA Fundamentals and Programming , 1996 .

[11]  Douglas C. Schmidt,et al.  The design of the TAO real-time object request broker , 1998, Comput. Commun..

[12]  Aniruddha S. Gokhale,et al.  Measuring and Optimizing CORBA Latency and Scalability Over High-Speed Networks , 1998, IEEE Trans. Computers.

[13]  John A. Zinky,et al.  Architectural Support for Quality of Service for CORBA Objects , 1997, Theory Pract. Object Syst..

[14]  David Harel,et al.  Executable object modeling with statecharts , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[15]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[16]  Steve Vinoski,et al.  CORBA: integrating diverse applications within distributed heterogeneous environments , 1997, IEEE Commun. Mag..