Abstracting Services in a Heterogeneous Environment

  • Salah Sadou
  • Gautier Koscielny
  • Hafedh Mili
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2218)


Applications often use objects that they do not create. In general, these objects belong to an execution environment and are used for some services (server objects). This makes applications strongly dependent on these objects and make them vulnerable to any modifications to these objects

In this paper, we present a solution to this problem through the service group concept. A service group is an intermediary between the applications and the server objects. A service group is defined by the administrator of the shared services, for the entire set of client applications. A service group embodies a collection of signatures corresponding to the provided services and maintains the required associations between these signatures and the actual implementations of these services by the server objects. The client applications access the services through service groups, and are no longer directly related to servers, thus becoming more independent and better protected from modifications to the server objects. The service group will not only make it possible to pool disparate services in order to structure execution environment, but also to construct new services by composing existing ones


Distributed objects Dynamic reuse Disparate services Environment structuring Service compatibility Service group 


  1. 1.
    P. A. Bernstein. An architecture for distributed system services. Technical Report CRL 93/6, Digital Equipment Corporation, Cambridge Research Lab, March 1993.Google Scholar
  2. 2.
    A. P. Black and M. P. Immel. Encapsulating Plurality. In O. Nierstrasz, editor, Proceedings of the ECOOP’ 93 European Conference on Object-oriented Programming, LNCS 707, pages 57–79, Kaiserslautern, Germany, July 1993. Springer-Verlag.Google Scholar
  3. 3.
    E. Blake and S. Cook. On Including Part Hierarchies in Object-Oriented Languages, with an Implementation in Smalltalk. In ECOOP’87, pages 41–50, 1987.Google Scholar
  4. 4.
    W. Brookes and J. Indulska. A type management system for open distributed processing. Technical Report 285, Department of Computer Science, Queensland U., Brisbane QLD (Australia), February 1994.Google Scholar
  5. 5.
    D. Buchs and N. Guelfi. A formal specification framework for object-oriented distributed systems. IEEE Transactions on Software Engineering, 26(7):635–652, 2000.CrossRefGoogle Scholar
  6. 6.
    L. Cardelli and P. Wegner. On Understanding Types, Data Abstraction, and Polymorphism. ACM Computing Surveys, 17(4):471–522, December 1985.CrossRefGoogle Scholar
  7. 7.
    D. Caromel. Toward a method of object-oriented concurrent programming. Communications of the ACM, 36(9):90–102, September 1993.CrossRefGoogle Scholar
  8. 8.
    E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Addison Wesley, 1995.Google Scholar
  9. 9.
    R. Guerraoui, B. Garbinato, and K. Mazouni. Garf: A tool for programming reliable distributed applications. IEEE Concurrency, 5(4):32–39, 1997.CrossRefGoogle Scholar
  10. 10.
    R. Guerraoui and S. André. Software-based replication for fault tolerance. IEEE Computer, 30(4):68–74, April 1997. 11. R. Helm, I. Holland, and D. Gangopadhyay. Contracts: Specifying Behavioral Compositions in Object-Oriented Systems. In N. Meyrowitz, editor, Conference on Object-Oriented Programming, Systems, Languages, and Applications/European Conference on Object Oriented Programming (OOPSLA/ECOOP’90), ACM SIGPLAN Notices, pages 169–180, October 1990.Google Scholar
  11. 12.
    IONA and Isis. An Introduction to Orbix+Isis. Technical report, IONA Technologies Ltd, November 1995.Google Scholar
  12. 13.
    ITU/ISO. Reference model of open distributed processing — part 2: Foundations, 1995. ISO/IEC 10746-2, ITU-T Rec. X.902.Google Scholar
  13. 14.
    G. Koscielny and S. Sadou. Type de service générique pour la réutilisation de composants. In Jacques Malenfant and Roger Rousseau, editors, langages et modèles à objets (LMO’99), pages 115–130. Hermès Science Publications, 1999.Google Scholar
  14. 15.
    B. B. Kristensen and K. Østerbye. Roles: Conceptual abstraction theory and practical language issues. Theory and Practice of Object Sytems, 2(3):143–160, 1996.CrossRefGoogle Scholar
  15. 16.
    D. Lea. Objects in groups. Technical report, SUNY Oswego, 1993.Google Scholar
  16. 17.
    S. Maffeis. Run-Time Support for Object-Oriented Distributed Programming. PhD thesis, University of Zurich, February 1995.Google Scholar
  17. 18.
    J. McAffer. Meta-Level Programming with CodA. In W. Olthoff, editor, European Conference on Object Oriented Programming (ECOOP’95), Lecture Notes in Computer Science, pages 190–214. Springer-Verlag, aug 1995.Google Scholar
  18. 19.
  19. 20.
    M. Muenke, W. Lamersdorf, B. O. Christiansen, and K. Mueller-Jones. Type management: A key to software reuse in open distributed systems. In EDOC’97, Gold Coast, AUSTRALIA, 1997.Google Scholar
  20. 21.
  21. 22.
    R. Monson-Haefel. Enterprise JavaBeans, 2nd Edition. March 2000, O’Reilly & Associates, INC.Google Scholar
  22. 23.
    OMG. CORBAservices: Common Object Services Specification, chapter Trading Object Service Specification. Object Management Group, Inc. Publications, March 1997. 97-12-23.Google Scholar
  23. 24.
    E. Oskiewicz and N. Edwards. A model for interface groups. Technical Report APM.1002.01, ANSA, Architecture Projects Management Limited, Cambridge, UK, May 1994.Google Scholar
  24. 25.
    S. Sadou, G. Koscielny, P. Frison, and J-M. Inglebert. Groupes pour la coopération entre activités. Technical report, Valoria/Orcade, Université de Bretagne Sud, December 1999. sadou/groop/rapport/rapport.html.Google Scholar
  25. 26.
    K. Shimizu, M. Maekawa, and J. Hamano. Hierarchical Object Groups in distributed Operating Systems. In IEEE Computer Society and Technical Committee on Distributed Processing, editors, The 14th International Conference on Distributed Computing Systems, pages 18–24, San Jose, California, June 1988. IEEE, Computer Society Press.Google Scholar
  26. 27.
    N. Singh and M. A. Gisi. Coordinating distributed objects with declarative interfaces. In Paolo Ciancarini and Chris Hankin, editors, Coordination Languages and Models (Coordination’96), number 1061 in Lecture Notes in Computer Science, pages 368–385. Springer, 1996.Google Scholar
  27. 28.
    A. M. Zaremski and J. M. Wing. Specification matching of software components. ACM Transactions on Software Engineering and Methodology, 6(4):333–369, October 1997.CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2001

Authors and Affiliations

  • Salah Sadou
    • 1
  • Gautier Koscielny
    • 2
  • Hafedh Mili
    • 3
  1. 1.Valoria Lab.Université de Bretagne SudFrance
  2. 2.LIFL Lab.U.S.T. LilleFrance
  3. 3.Département d’informatiqueUniversité du Québec à MontréalCanada

Personalised recommendations