CPAM, A Protocol for Software Composition

  • Laurence Melloul
  • Dorothea Beringer
  • Neal Sample
  • Gio Wiederhold
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1626)


Software composition is critical for building large-scale applications. In this paper, we consider the composition of components that are methods offered by heterogeneous, autonomous and distributed computational software modules made available by external sources. The objective is to compose these methods and build new applications while preserving the autonomy of the software modules. This would decrease the time and cost needed for producing and maintaining the added functionality. In the following, we describe a high-level protocol that enables software composition. CPAM, CHAIMS Protocol for Autonomous Megamodules, may be used on top of various distribution systems. It offers additional features for supporting module heterogeneity and preserving module autonomy, and also implements several optimization concepts such as cost estimation of methods and partial extraction of results.


Software Module Procedure Call Enterprise Resource Planning System Method Invocation Partial Extraction 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    G. Wiederhold, P. Wegner and S. Ceri: "Towards Megaprogramming: A Paradigm for Component-Based Programming"; Communications of the ACM, 1992(11): p89–99CrossRefGoogle Scholar
  2. 2.
    J. Siegel: "CORBA fundamentals and programming"; Wiley New York, 1996Google Scholar
  3. 3.
    C. Szyperski: "Component Software: Beyond Object-Oriented Programming"; Addison-Wesley and ACM-Press New York, 1997Google Scholar
  4. 4.
    W. Rosenberry, D. Kenney and G. Fisher: "Understanding DCE"; OReilly, 1994Google Scholar
  5. 5.
    D. Platt: "The Essence of COM and ActiveX"; Prentice-Hall, 1997Google Scholar
  6. 6.
    R. Van Renesse and K. Birman: "Protocol Composition in Horus"; TR95-1505, 1995Google Scholar
  7. 7.
    J. Jannink, S. Pichai, D. Verheijen and G. Wiederhold: "Encapsulation and Composition of Ontologies"; submittedGoogle Scholar
  8. 8.
    "Information Processing — Open Systems Interconnection — Specification of Abstract Syntax Notation One" and "Specification of Basic Encoding Rules for Abstract Syntax Notation One", International Organization for Standardization and International Electrotechnical Committee, International Standards 8824 and 8825, 1987Google Scholar
  9. 9.
    L. Perrochon, G. Wiederhold and R. Burback: "A compiler for Composition: CHAIMS"; Fifth International Symposium on Assessment of Software Tools and Technologies (SAST ‵97), Pittsburgh, June 3—5, 1997Google Scholar
  10. 10.
    N. Sample, D. Beringer, L. Melloul and G. Wiederhold: “CLAM: Composition Language for Autonomous Megamodules”; Third Int'l Conference on Coordination Models and Languages, COORD‵99, Amsterdam, April 26—28, 1999Google Scholar
  11. 11.
    D. Beringer, C. Tornabene, P. Jain and G. Wiederhold: "A Language and System for Composing Autonomous, Heterogeneous and Distributed Megamodules"; DEXA International Workshop on Large-Scale Software Composition, August 28, 1998, Vienna AustriaGoogle Scholar
  12. 12.
    Birell, A.D. and B.J. Nelso: "Implementing Remote Procedure Calls"; ACM Transactions on Computer Systems, 1984. 2(1): p. 39–59CrossRefGoogle Scholar
  13. 13.
    ISO, "ISO Remote Procedure Call Specification", ISO/IEC CD 11578 N6561, 1991Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Laurence Melloul
    • 1
  • Dorothea Beringer
    • 1
  • Neal Sample
    • 1
  • Gio Wiederhold
    • 1
  1. 1.Computer Science DepartmentStanford UniversityStanfordUSA

Personalised recommendations