From layer to layer — object-oriented protocol refinement in kannel

  • Kari Granō
  • Jukka Paakki
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1282)


The refinement of communication in protocol engineering is studied by analyzing the relation between a peer-to-peer communication scheme and its service-level counterpart, a characteristic that is well-known in practice but rarely studied in detail. It is shown how an abstract protocol can be developed towards a concrete implementation by gradually refining the abstract messages and the involved state machines, moving systematically from layer to layer over the subject application. The characteristics of the refinement are formalized, and an example is given showing how the method can be applied in practical protocol development. The object-oriented language Kannel is introduced as an advanced tool for protocol engineering providing special support for the refinement technique.


Service Interface State Automaton Finite State Automaton Refinement Mechanism Input Message 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AhU72]
    A.V. Aho, J.D. Ullman: The Theory of Parsing, Translation and Compiling. Volume I:Parsing. Prentice-Hall, 1972.Google Scholar
  2. [Bac88]
    R.J.R. Back: A Calculus of Refinements for Program Derivations. Acta Informatica 25, 1988, 593–624.CrossRefGoogle Scholar
  3. [BeH89]
    F. Belina, D. Hogrefe: The CCITT Specification and Description Language SDL. Computer Networks and ISDN Systems 16, 4, 1989, 311–341.CrossRefGoogle Scholar
  4. [BoB87]
    T. Bolognesi, E. Brinksma: Introduction to the ISO Specification Language LOTOS. Computer Networks and ISDN Systems 14, 1, 1987, 25–59.CrossRefGoogle Scholar
  5. [BuD87]
    S. Budkowski, P. Dembinski: An Introduction to ESTELLE: A Specification Language for Distributed Systems. Computer Networks and ISDN Systems 14, 1, 1987, 3–23.CrossRefGoogle Scholar
  6. [CHB92]
    D. Coleman, F. Hayes, S. Bear: Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design. IEEE Transactions on Software Engineering 18, 1, 1992, 9–18.CrossRefGoogle Scholar
  7. [Cus91]
    E. Cusack: Refinement, Conformance and Inheritance. Formal Aspects of Computing 3, 1991, 129–141.CrossRefGoogle Scholar
  8. [Fæ092]
    O. Faergemand, A. Olsen: Introduction to SDL-92. Computer Networks and ISDN Systems 26, 1994, 1143–1167.CrossRefGoogle Scholar
  9. [Gre86]
    P.E. Green, Jr.: Protocol Conversion. IEEE Transactions on Communications 34, 3, 1986, 257–268.CrossRefGoogle Scholar
  10. [GHJ95]
    K. Granö, J. Harju, T. Järvinen, T. Larikka, J. Paakki: Object-Oriented Protocol Design and Reuse in Kannel. In: Proc. 21st EUROMICRO Conf. on the Design of Hardware/Software Systems (EUROMICRO'95), Como, Italy, 1995. IEEE Computer Society Press, 1995, 465–472.Google Scholar
  11. [GHP94]
    K. Granö, J. Harju, J. Paakki, T. Järvinen: Proposal for a Protocol Engineering Language. Technical Reports TR-6, Department of Computer Science and Information Systems, University of Jyväskylä, 1994.Google Scholar
  12. [HaG96]
    D. Harel, E. Gery: Executable Object Modeling with Statecharts. In: Proc. 18th International Conf. on Software Engineering (ICSE-18), Berlin, Germany, 1996. IEEE Computer Society Press, 1996, 246–257.Google Scholar
  13. [Har87]
    D. Harel: Statecharts: A Visual Approach to Complex Systems. Science of Computer Programming 8, 1987, 231–274.CrossRefGoogle Scholar
  14. [Jon89]
    B. Jonsson: On Decomposing and Refining Specifications of Distributed Systems. In: Stepwise Refinement of Distributed Systems. Lecture Notes in Computer Science 430, Springer-Verlag, 1989, 361–385.Google Scholar
  15. [Lam93]
    J. Lamping: Typing the Specialization Interface. In: Proc. OOPSLA'93, Washington, DC. ACM SIGPLAN Notices 28, 10, 1993, 201–214.Google Scholar
  16. [McM93]
    J.D. McGregor, D.M. Dyer: A Note on Inheritance and State Machines. ACM SIGPLAN Notices 18, 4, 1993, 61–69.Google Scholar
  17. [Mey92]
    B. Meyer: Eiffel — The Language. Prentice-Hall, 1992.Google Scholar
  18. [SOM93]
    C. Szyperski, S. Omohundro, S. Murer: Engineering a Programming Language: The Type and Class System of Sather. In: J. Gutknecht (ed.): Programming Languages and System Architectures. Lecture Notes in Computer Science 782, Springer-Verlag, 1993, 208–227.Google Scholar
  19. [Ste90]
    D. Steedman: ASNA — Tutorial & Reference. Technology Appraisals Ltd., 1990.Google Scholar
  20. [Tha94]
    S.R. Thatté: Automated Synthesis of Interface Adapters for Reusable Classes. In: Conf. Record 21 st ACM SIGACT-SIGPLAN Symp. on Principles of Programming Languages (POPL'94), Portland, Oregon, 1994, 174–187.Google Scholar
  21. [WeZ88]
    P. Wegner, S.B. Zdonik: Inheritance as an Incremental Modification Mechanism or What Like Is and Isn't Like. In: Proc. Second European Conf. on Object-Oriented Programming (ECOOP'88), Oslo, Norway, 1988. Lecture Notes in Computer Science 322, Springer-Verlag, 1988, 55–77.Google Scholar
  22. [YeS94]
    D.M. Yellin, R.E. Strom: Interfaces, Protocols, and the Semi-Automatic Construction of Software Adaptors. In: Proc. OOPSLA'94, Portland, Oregon. ACM SIGPLAN Notices 29, 10, 1994, 176–190.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Kari Granō
    • 1
  • Jukka Paakki
    • 1
  1. 1.Department of Computer ScienceUniversity of HelsinkiFinland

Personalised recommendations