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.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Aldrich, J., Chambers, C., Notkin, D.: Architectural Reasoning in ArchJava. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 334. Springer, Heidelberg (2002)
Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3) (1997)
Barros, T., Cansado, A., Madelaine, E., Rivera, M.: Model-checking Distributed Components: The Vercors Platform. Electr. Notes Theor. Comput. Sci. 182 (2007)
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)
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)
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)
Cardelli, L.: Types for mobile ambients. In: Proceedings 26th Annual ACM Symposium on Principles of Programming Languages, POPL (1999)
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)
Pottier, F.: A constraint-based presentation and generalization of rows. In: Symposium on Logic in Computer Science, LICS (2003)
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)
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)
Henglein, F.: Type inference with polymorphic recursion. ACM Trans. Program. Lang. Syst. 15(2), 253–289 (1993)
Roger Hindley, J.: Basic simple type theory. Cambridge University Press, New York (1997)
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)
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)
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)
Kohler, E., Morris, R., Chen, B.: Programming language optimizations for modular router configurations. In: ASPLOS (2002)
Kohler, E., Morris, R., Chen, B., Jannotti, J., Kaashoek, M.F.: The Click Modular Router. ACM Trans. Comput. Syst. 18(3) (2000)
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)
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)
Lhoussaine, C.: Type inference for a distributed π-calculus. Sci. Comput. Program. 50(1-3) (2004)
Lienhardt, M., Mezzina, C.A., Schmitt, A., Stefani, J.B.: Typing communicating component assemblages v2 (2008), http://sardes.inrialpes.fr/papers/dtv2.pdf
Lienhardt, M., Schmitt, A., Stefani, J.B.: Typing communicating component assemblages. In: GPCE 2008. ACM, New York (2008)
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)
Maffeis, S.: Sequence types for the pi-calculus. In: ITRS 2004. ENTCS, vol. 136, pp. 117–132. Elsevier, Amsterdam (2005)
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)
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)
Palsberg, J., Wand, M., O’Keefe, P.: Type inference with non-structural subtyping. Formal Aspects of Computing 9, 49–67 (1997)
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)
Reid, A., Flatt, M., Stoller, L., Lepreau, J., Eide, E.: Knit: Component Composition for Systems Software. In: OSDI 2000 (2000)
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)
Simonet, V., Pottier, F.: A constraint-based approach to guarded algebraic data types. ACM Trans. Program. Lang. Syst. 29(1), 1 (2007)
Szyperski, C.: Component Software., 2nd edn. Addison-Wesley, Reading (2002)
van Renesse, R., Birman, K., Hayden, M., Vaysburd, A., Karr, D.: Building Adaptive Systems Using Ensemble. Software – Practice and Experience 28(9) (1998)
Weirich, S.: Higher-order intensional type analysis. In: Le Métayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 98–114. Springer, Heidelberg (2002)
Yoshida, N., Hennessy, M.: Assigning types to processes. In: 15th Annual IEEE Symposium on Logic in Computer Science, LICS (2000)
Yoshida, N., Hennessy, M.: Assigning types to processes. Inf. Comput. 174(2) (2002)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 IFIP International Federation for Information Processing
About this paper
Cite this paper
Lienhardt, M., Mezzina, C.A., Schmitt, A., Stefani, JB. (2009). Typing Component-Based Communication Systems. In: Lee, D., Lopes, A., Poetzsch-Heffter, A. (eds) Formal Techniques for Distributed Systems. FMOODS FORTE 2009 2009. Lecture Notes in Computer Science, vol 5522. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02138-1_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-02138-1_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02137-4
Online ISBN: 978-3-642-02138-1
eBook Packages: Computer ScienceComputer Science (R0)