This Article 
 Bibliographic References 
 Add to: 
Adding Roles to CORBA Objects
March 2003 (vol. 29 no. 3)
pp. 242-260

Abstract—Traditional IDLs were defined for describing the services that objects offer, but not those services they require from other objects, nor the relative order in which they expect their methods to be called. Some of the existing proposals try to add protocol information to object interfaces, but most of them fail to do so in a modular way. In this paper we propose an extension of the CORBA IDL that uses a sugared subset of the polyadic π-calculus for describing object service protocols, based on the concept of roles. Roles allow the modular specification of the observable behavior of CORBA objects, reducing the complexity of the compatibility tests. Our main aim is the automated checking of protocol interoperability between CORBA objects in open component-based environments, using similar techniques to those used in software architecture description and analysis. In addition, our proposal permits the study of substitutability between CORBA objects, as well as the realization of dynamic compatibility tests during their runtime execution.

[1] M. Aksit et al., "Abstracting Inter-Object Communications Using Composition Filters," in Object-Based Distributed Programming, Lecture Notes in Computer Science, Vol. 791, Springer Verlag, New York, 1993, pp. 152-184.
[2] R. Allen and D. Garlan, "A Formal Basis for Architectural Connection," ACM Trans. Software Eng. and Methodology, July 1997.
[3] R. Allen, D. Garlan, and J. Ivers, “Formal Modeling and Analysis of the HLA Component Integration Standard,” Proc. Sixth ACM SIGSOFT Symp. Foundations of Software Eng., pp. 70-79, Nov. 1998.
[4] S. Baker, CORBA Distributed Objects Using Orbix, Addison-Wesley, Harlow, England, 1997.
[5] R. Bastide and O. Sy, “Towards Components that Plug AND Play,” Proc. European Conf. Object-Oriented Programming, Workshop Object Interoperability (WOI'00), A. Vallecillo, J. Hernandez, and J.M. Troya, eds., pp. 3-12, June 2000.
[6] R. Bastide, O. Sy, and P. Palanque, “Formal Specification and Prototyping of CORBA Systems,” Proc. 13th European Conf. Object-Oriented Programming (ECOOP'99), pp. 474-494, 1999.
[7] A. Bracciali, A. Brogi, and C. Canal, “Dynamically Adapting the Behaviour of Software Components,” Proc. Fifth Int'l Conf. Coordination Models and Languages—(Coordination'02), F. Arbab and C. Talcott, eds., pp. 88-95, 2002.
[8] C. Canal, L. Fuentes, E. Pimentel, J.M. Troya, and A. Vallecillo, “Extending CORBA Interfaces with Protocols,” The Computer J., vol. 44, no. 5, pp. 448-462, Oct. 2001.
[9] C. Canal, E. Pimentel, and J.M. Troya, “Specification and Refinement of Dynamic Software Architectures,” Software Architecture, pp. 107-125, P. Donohoe, ed., 1999.
[10] C. Canal, E. Pimentel, and J.M. Troya, “Compatibility and Inheritance in Software Architectures,” Science of Computer Programming, vol. 41, pp 105–138, 2001.
[11] I. Cho, J. McGregor, and L. Krause, “A Protocol-Based Approach to Specifying Interoperability between Objects,” Proc. 10th Int'l Conf. Modelling Techniques and Tools for Computer Performance Evaluation (TOOLS'98), pp. 84-96, 1998.
[12] D. Compare, P. Inverardi, and A.L. Wolf, “Uncovering Architectural Mismatch in Component Behavior,” Science of Computer Programming, vol. 33, no. 2, pp. 101-131, Feb. 1999.
[13] L. Feijs, “Modelling Microsoft COM Usingπ-Calculus,” Proc. Formal Methods Europe (FME'99), pp. 1343–1363, Sept. 1999.
[14] D. Garlan et al., "Architectural Mismatch: Why Reuse is So Hard", IEEE Software, Nov. 1995, pp. 17-26.
[15] M. Gaspari and G. Zabattaro, “A Process Algebraic Specification of the New Asynchronous CORBA Messaging Service,” Proc. 13th European Conf. Object-Oriented Programming, pp. 495-518, 1999.
[16] J. Goguen, D. Nguyen, J. Meseguer, Luqi, D. Zhang, and V. Berzins, “Software Component Search,” J. Systems Integration, vol. 6, pp. 93-134, Sept. 1996.
[17] J. Han, “Semantic and Usage Packaging for Software Components,” Proc. European Conf. Object-Oriented Programming, Workshop Object Interoperability (WOI'99), A. Vallecillo, J. Hernandez, and J. M. Troya, eds., pp. 25-34, June 1999.
[18] P. Henderson, “Formal Models of Process Components,” Proc. Sixth European Software Eng. Conf., FoCBS Workshop, pp. 131-140, Sept. 1997.
[19] K. Honda, V. Vasconcelos, and M. Kubo, “Language Primitives and Type Disciplines for Structured Communication-Based Programming,” Proc. European Symp. Programming (ESOP '98), pp. 122-138, 1998.
[20] R. Joshi, N. Vivekananda, and D.J. Ram, “Message Filters for Object-Oriented Systems,” Software-Practice and Experience, vol. 17, no. 6, pp. 677-699, 1997.
[21] D. Lea, “Interface-Based Protocol Specification of Open Systems Using PSL,” Proc. Ninth European Conf. Object-Oriented Programming (ECOOP'95), 1995.
[22] Foundations of Component-Based Systems. G.T. Leavens and M. Sitaraman, eds., Cambridge Univ. Press, 2000.
[23] D.C. Luckham,J.J. Kenney,L.M. Augustin,J. Vera,D. Bryan,, and W. Mann,“Specification and analysis of system architecture usingRapide,” IEEE Transactions on Software Engineering, vol. 21, no. 4, pp. 336-355, Apr. 1995.
[24] J. Magee, J. Kramer, and D. Giannakopoulou, “Behaviour Analysis of Software Architectures,” Software Architecture, pp. 35-49, 1999.
[25] N. Medvidovic, P. Oreizy, J.E. Robbins, and R.N. Taylor, “Using Object-Oriented Typing to Support Architectural Design in the C2 Style,” Proc. ACM SIGSOFT '96: Fourth Symp. Foundations Software of Eng. (FSE4), pp. 24-32, Oct. 1996.
[26] R. Milner, “The Polyadicπ-Calculus: A Tutorial,” Logic and Algebra of Specification, pp. 203-246, 1993.
[27] R. Milner, J. Parrow, and D. Walker, “A Calculus of Mobile Processes,” Information and Computation, vol. 100, pp. 1-77, 1992.
[28] O. Nierstasz, “Regular Types for Active Objects,” Object-Oriented Software Composition, New York: Prentice Hall, pp. 99-121, 1995.
[29] A. Olafsson and D. Bryan, “On the Need for Required Interfaces of Components,” Special Issues in Object-Oriented Programming, Workshop Reader of ECOOP'96, pp. 159-165, 1996.
[30] OMG, The CORBA Component Model. Object Management Group, June 1999.
[31] OMG, The C ommon Object Request Broker: Architecture and Specification, 2.4 ed. Object Management Group, Nov. 2000, formalcorbaiiop.htm.
[32] OMG, The CORBA Event Service Specification. Object Management Group, Jan. 2000.
[33] OMG, The CORBA Transaction Service Specification. Object Management Group, May 2000.
[34] D. Sangiorgi, “A Theory of Bisimulation for theπ-Calculus,” Technical Report ECS-LFCS-93-270, Univ. of Edinburgh, June 1993.
[35] M. Shaw, R. DeLine, D.V. Klein, T.L. Ross, D.M. Young, and G. Zelesnik, "Abstractions for Software Architecture and Tools to Support Them," IEEE Trans. Software Eng., Apr. 1995.
[36] J.P. Sousa and D. Garlan, “Formal Modeling of the Enterprise JavaBeans Component Integration Framework,” Proc. Formal Methods Europe, pp. 1281-1300, 1999.
[37] C. Szyperski, Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1997.
[38] Proc. ECOOP'99 Workshop Object Interoperability, A. Vallecillo, J. Hernandez, and J.M. Troya, eds., June 1999.
[39] B. Victor, “A Verification Tool for the Polyadicπ-Calculus,” Master's thesis, Uppsala Univ. (Sweden), May 1994.
[40] K.C. Wallnau, S.A. Hissam, and R.C. Seacord, Building Systems from Commercial Components. Addison-Wesley, 2002.
[41] D.M. Yellin and R.E. Strom, “Protocol Specifications and Component Adapters,” ACM Trans. Programming Languages and Systems, vol. 19, no. 2, pp. 292–333, 1997.
[42] A.M. Zaremski and J.M. Wing, ”Specification Matching of Software Components,” ACM Trans. Software Eng. and Methodology, vol. 6, no. 4, pp. 333–369, Oct. 1997

Index Terms:
Interface definition languages, software components, component-based software development, protocols, compatibility and substitutability of components.
Carlos Canal, Lidia Fuentes, Ernesto Pimentel, José M. Troya, Antonio Vallecillo, "Adding Roles to CORBA Objects," IEEE Transactions on Software Engineering, vol. 29, no. 3, pp. 242-260, March 2003, doi:10.1109/TSE.2003.1183935
Usage of this product signifies your acceptance of the Terms of Use.