Analysing Mailboxes of Asynchronous Communicating Components

Asynchronous communications are prominent in distributed and mobile systems. Often concurrent systems consider an abstract point of view with synchronous communications. However it seems more realistic and finer to consider asynchronous communicating systems, since it provides a more primitive communication protocol and maximize the concurrency. Several languages and models have been defined using this communication mode: agent, actor, mobile computation, and so on. Here we reconsider a previous component model with full data types and synchronous communications with an asynchronous flavour. The dynamic behaviour of a component is represented as a structured symbolic transition system with mailboxes. We also present an algorithm devoted to an analysis of the dynamic behaviour of the system. This algorithm decides if the system has bound mailboxes and computes the reachable mailbox contents of the system. The component model and the algorithm are illustrated on a flight system reservation.

[1]  Denis Caromel,et al.  Toward a method of object-oriented concurrent programming , 1993, CACM.

[2]  Jean-Claude Royer,et al.  Specification of Mixed Systems in KORRIGAN with the Support of a UML-Inspired Graphical Notation , 2001, FASE.

[3]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[4]  J. Katwijk Ada: Moving Towards 2000 , 1992, Lecture Notes in Computer Science.

[5]  Jean-Claude Royer,et al.  Formal specification of mixed components with Korrigan , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[6]  Jacques Cohen,et al.  Concurrent object-oriented programming , 1993, CACM.

[7]  Nancy A. Lynch,et al.  Distributed Computing: Models and Methods , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[8]  Jean-Claude Royer,et al.  Mixed formal specifications with PVS , 2002, Proceedings 16th International Parallel and Distributed Processing Symposium.

[9]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[10]  J. Royer Formal specification and temporal proof techniques for mixed systems , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[11]  Edmund M. Clarke,et al.  Verification Tools for Finite-State Concurrent Systems , 1993, REX School/Symposium.

[12]  Carl Hewitt,et al.  Concurrent Programming Using Actors: Exploiting large-Scale Parallelism , 1985, FSTTCS.

[13]  W. emmerich,et al.  Component technologies: Java beans, COM, CORBA, RMI, EJB and the CORBA component model , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[14]  Jean-Claude Royer,et al.  From Informal Requirements to COOP: A Concurrent Automata Approach , 1999, World Congress on Formal Methods.

[15]  Tommy Thorne,et al.  Programming languages for mobile code , 1997, CSUR.

[16]  Wolfgang Emmerich,et al.  Deadlock detection in distributed object systems , 2001, FSE 2001.

[17]  Michael Jackson,et al.  Distributed Feature Composition: A Virtual Architecture for Telecommunications Services , 1998, IEEE Trans. Software Eng..

[18]  Pierre America,et al.  ECOOP'91 European Conference on Object-Oriented Programming , 1991, Lecture Notes in Computer Science.

[19]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[20]  Jean-Claude Royer The GAT Approach to Specifying Mixed Systems , 2003, Informatica.

[21]  Iso. Lotos,et al.  A Formal Description Technique Based on the Temporal Ordering of Observational Behaviour , 1985 .

[22]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[23]  Greg Lindstrom,et al.  Programming with Python , 2005, IT Professional.

[24]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[25]  Jakob Rehof,et al.  Conformance Checking for Models of Asynchronous Message Passing Software , 2002, CAV.

[26]  Nicholas R. Jennings Agent-Oriented Software Engineering , 1999, MAAMAW.

[27]  Michael Jackson,et al.  A component-based approach to telecommunication software , 1998, IEEE Software.

[28]  Michael Wooldridge,et al.  Agent-Oriented Software Engineering: The State of the Art , 2009, AOSE.

[29]  Denis Caromel,et al.  Object-Based Concurrency: Ten Language Features to Achieve Reuse , 1993, TOOLS.

[30]  Mehmet Aksit,et al.  Software Architectures and Component Technology , 2001 .

[31]  Wolfgang Emmerich Distributed component technologies and their software engineering implications , 2002, ICSE '02.

[32]  André Arnold,et al.  Finite transition systems , 1994 .

[33]  Paola Inverardi,et al.  Static checking of system behaviors using derived component assumptions , 2000, TSEM.

[34]  Wolfgang Emmerich,et al.  Component technologies: Java Beans, COM, CORBA, RMI, EJB and the CORBA Component Model , 2001, ESEC/FSE-9.

[35]  Oscar Nierstrasz,et al.  APPLICATIONS = COMPONENTS + SCRIPTS A tour of Piccola , 2001 .

[36]  David Garlan,et al.  Specifying and Analyzing Dynamic Software Architectures , 1998, FASE.

[37]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[38]  Jean-Claude Royer,et al.  Concurrency and Data Types: A Specification Method: An Example with LOTOS , 1998, WADT.

[39]  Jean-Claude Royer,et al.  A Translation of UML Components into Formal Specifications , 2003 .