Typing Component-Based Communication Systems

  • Michael Lienhardt
  • Claudio Antares Mezzina
  • Alan Schmitt
  • Jean-Bernard Stefani
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5522)

Abstract

Building complex component-based software systems, for instance communication systems based on the Click, Coyote, Appia, or Dream frameworks, can lead to subtle assemblage errors. We present a novel type system and type inference algorithm that prevent interconnection and message-handling errors when assembling component-based communication systems. These errors are typically not captured by classical type systems of host programming languages such as Java or ML. We have implemented our approach by extending the architecture description language (ADL) toolset used by the Dream framework, and used it to check Dream-based communication systems.

References

  1. 1.
    Aldrich, J., Chambers, C., Notkin, D.: Architectural Reasoning in ArchJava. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 334. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3) (1997)Google Scholar
  3. 3.
    Barros, T., Cansado, A., Madelaine, E., Rivera, M.: Model-checking Distributed Components: The Vercors Platform. Electr. Notes Theor. Comput. Sci. 182 (2007)Google Scholar
  4. 4.
    Bensalem, S., Bozga, M., Sifakis, J., Nguyen, T.H.: Compositional Verification for Component-Based Systems and Application. In: Cha, S(S.), Choi, J.-Y., Kim, M., Lee, I., Viswanathan, M. (eds.) ATVA 2008. LNCS, vol. 5311. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. 5.
    Bhatti, N.T., Hiltunen, M.A., Schlichting, R.D., Chiu, W.: Coyote: A system for constructing fine-grain configurable communication services. ACM Trans. Comput. Syst. 16(4) (1998)Google Scholar
  6. 6.
    Bruneton, E., Coupaye, T., Leclercq, M., Quema, V., Stefani, J.B.: The Fractal Component Model and its Support in Java. Software - Practice and Experience 36(11-12) (2006)Google Scholar
  7. 7.
    Cardelli, L.: Types for mobile ambients. In: Proceedings 26th Annual ACM Symposium on Principles of Programming Languages, POPL (1999)Google Scholar
  8. 8.
    Carrez, C., Fantechi, A., Najm, E.: Behaviour contracts for a sound assembly of components. In: König, H., Heiner, M., Wolisz, A. (eds.) FORTE 2003. LNCS, vol. 2767. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    Pottier, F.: A constraint-based presentation and generalization of rows. In: Symposium on Logic in Computer Science, LICS (2003)Google Scholar
  10. 10.
    Conchon, S., Pottier, F.: JOIN(X): Constraint-Based Type Inference for the Join-Calculus. In: Sands, D. (ed.) ESOP 2001. LNCS, vol. 2028, pp. 221–236. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  11. 11.
    Fahndrich, M., Aiken, M., Hawblitzel, C., Hodson, O., Hunt, G., Larus, J., Levi, S.: Language Support for Fast and Reliable Message-based Communication in Singularity OS. In: 1st EuroSys Conference. ACM, New York (2006)Google Scholar
  12. 12.
    Henglein, F.: Type inference with polymorphic recursion. ACM Trans. Program. Lang. Syst. 15(2), 253–289 (1993)CrossRefGoogle Scholar
  13. 13.
    Roger Hindley, J.: Basic simple type theory. Cambridge University Press, New York (1997)CrossRefMATHGoogle Scholar
  14. 14.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: 35th ACM Symposium on Principles of Programming Languages (POPL 2008). ACM, New York (2008)Google Scholar
  15. 15.
    Issarny, V., Bidan, C., Saridakis, T.: Achieving Middleware Customization in a Configuration-Based Development Environment : Experience with the Aster Prototype. In: 4th Int. Conf. on Configurable Distributed Systems (1998)Google Scholar
  16. 16.
    Joolia, A., Batista, T., Coulson, G., Gomes, A.: Mapping ADL Specifications to an Efficient and Reconfigurable Runtime Component Platform. In: WICSA 2005. IEEE Computer Society, Los Alamitos (2005)Google Scholar
  17. 17.
    Kohler, E., Morris, R., Chen, B.: Programming language optimizations for modular router configurations. In: ASPLOS (2002)Google Scholar
  18. 18.
    Kohler, E., Morris, R., Chen, B., Jannotti, J., Kaashoek, M.F.: The Click Modular Router. ACM Trans. Comput. Syst. 18(3) (2000)Google Scholar
  19. 19.
    Leclercq, M., Ozcan, A.E., Quema, V., Stefani, J.B.: Supporting heterogeneous architecture descriptions in an extensible toolset. In: 29th Int. Conf. on Soft. Eng. (ICSE). IEEE Computer Society, Los Alamitos (2007)Google Scholar
  20. 20.
    Leclercq, M., Quema, V., Stefani, J.B.: DREAM: A Component Framework for the Construction of Resource-Aware, Configurable MOMs. IEEE Distributed Systems Online 6(9) (2005)Google Scholar
  21. 21.
    Lhoussaine, C.: Type inference for a distributed π-calculus. Sci. Comput. Program. 50(1-3) (2004)Google Scholar
  22. 22.
    Lienhardt, M., Mezzina, C.A., Schmitt, A., Stefani, J.B.: Typing communicating component assemblages v2 (2008), http://sardes.inrialpes.fr/papers/dtv2.pdf
  23. 23.
    Lienhardt, M., Schmitt, A., Stefani, J.B.: Typing communicating component assemblages. In: GPCE 2008. ACM, New York (2008)Google Scholar
  24. 24.
    Liu, X., Kreitz, C., van Renesse, R., Hickey, J., Hayden, M., Birman, K., Constable, R.: Building Reliable, High-Performance Communication Systems from Components. In: ACM Symposium on Operating Systems Principles (1999)Google Scholar
  25. 25.
    Maffeis, S.: Sequence types for the pi-calculus. In: ITRS 2004. ENTCS, vol. 136, pp. 117–132. Elsevier, Amsterdam (2005)Google Scholar
  26. 26.
    Makholm, H., Wells, J.B.: Instant polymorphic type systems for mobile process calculi: Just add reduction rules and close. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 389–407. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  27. 27.
    Miranda, H., Pinto, A.S., Rodrigues, L.: Appia: A flexible protocol kernel supporting multiple coordinated channels. In: ICDCS 2001. IEEE Computer Society, Los Alamitos (2001)Google Scholar
  28. 28.
    Palsberg, J., Wand, M., O’Keefe, P.: Type inference with non-structural subtyping. Formal Aspects of Computing 9, 49–67 (1997)CrossRefMATHGoogle Scholar
  29. 29.
    Pierce, B., Turner, D.: Pict: A programming language based on the pi-calculus. In: Plotkin, G., Stirling, C., Tofte, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner, MIT Press, Cambridge (2000)Google Scholar
  30. 30.
    Reid, A., Flatt, M., Stoller, L., Lepreau, J., Eide, E.: Knit: Component Composition for Systems Software. In: OSDI 2000 (2000)Google Scholar
  31. 31.
    Rémy, D.: Type inference for records in a natural extension of ML. In: Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, Cambridge (1993)Google Scholar
  32. 32.
    Simonet, V., Pottier, F.: A constraint-based approach to guarded algebraic data types. ACM Trans. Program. Lang. Syst. 29(1), 1 (2007)CrossRefGoogle Scholar
  33. 33.
    Szyperski, C.: Component Software., 2nd edn. Addison-Wesley, Reading (2002)MATHGoogle Scholar
  34. 34.
    van Renesse, R., Birman, K., Hayden, M., Vaysburd, A., Karr, D.: Building Adaptive Systems Using Ensemble. Software – Practice and Experience 28(9) (1998)Google Scholar
  35. 35.
    Weirich, S.: Higher-order intensional type analysis. In: Le Métayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 98–114. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  36. 36.
    Yoshida, N., Hennessy, M.: Assigning types to processes. In: 15th Annual IEEE Symposium on Logic in Computer Science, LICS (2000)Google Scholar
  37. 37.
    Yoshida, N., Hennessy, M.: Assigning types to processes. Inf. Comput. 174(2) (2002)Google Scholar
  38. 38.
    Yoshida, N., Vasconcelos, V.: Language primitives and type discipline for structured communication-based programming revisited: Two systems for higher-order session communication. Electr. Notes Theor. Comput. Sci. 171(4) (2007)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2009

Authors and Affiliations

  • Michael Lienhardt
    • 1
  • Claudio Antares Mezzina
    • 1
  • Alan Schmitt
    • 1
  • Jean-Bernard Stefani
    • 1
  1. 1.INRIAFrance

Personalised recommendations