An object based algebra for specifying a fault tolerant software architecture

Abstract In this paper we present an algebra of actors extended with mechanisms to model crash failures and their detection. We show how this extended algebra of actors can be successfully used to specify distributed software architectures. The main components of a software architecture can be specified following an object-oriented style and then they can be composed using asynchronous message passing or more complex interaction patterns. This formal specification can be used to show that several requirements of a software system are satisfied at the architectural level despite failures. We illustrate this process by means of a case study: the specification of a software architecture for intelligent agents which supports a fault tolerant anonymous interaction protocol.

[1]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[2]  Gianluigi Zavattaro,et al.  An Algebra of Actors , 1997, FMOODS.

[3]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[4]  Carolyn L. Talcott,et al.  Interaction Semantics for Components of Distributed Systems , 1997 .

[5]  Michael R. Genesereth,et al.  Software agents , 1994, CACM.

[6]  John F. Sowa,et al.  Logical foundations of artificial intelligence: Michael R. Genesereth and Nils J. Nilsson, (Morgan Kaufmann, Los Altos, CA, 1987); 406 + xviii pages , 1989 .

[7]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[8]  Carl Hewitt,et al.  Analyzing the Roles of Descriptions and Actions in Open Systems , 1983, AAAI.

[9]  K. V. S. Prasad Specification and Proof of a Simple Fault Tolerant System in CCS , 1984 .

[10]  Jean-Jacques Lévy,et al.  A Calculus of Mobile Agents , 1996, CONCUR.

[11]  Frank S. de Boer,et al.  Open Multi-agent Systems: Agent Communication and Integration , 1999, ATAL.

[12]  Mauro Gaspari,et al.  Concurrency and Knowledge-Level Communication in Agent Languages , 1998, Artif. Intell..

[13]  Timothy W. Finin,et al.  KQML as an agent communication language , 1994, CIKM '94.

[14]  Bertrand Meyer,et al.  Systematic concurrent object-oriented programming , 1993, CACM.

[15]  Uwe Nestmann,et al.  Unreliable Failure Detectors via Operational Semantics , 2003, ASIAN.

[16]  Roberto M. Amadio,et al.  Localities and Failures (Extended Abstract) , 1994, FSTTCS.

[17]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[18]  Marian H. Nodine,et al.  Facilitating Open Communication in Agent Systems: The InfoSleuth Infrastructure , 1997, ATAL.

[19]  Mukesh Singhal,et al.  Deadlock detection in distributed systems , 1989, Computer.

[20]  Gianluigi Zavattaro,et al.  Process Algebraic Specification of the New Asynchronous CORBA Messaging Service , 1999, ECOOP.

[21]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[22]  Enrico Motta,et al.  Symbol-Level Requirements for Agent-Level Programming , 1994, ECAI.

[23]  James Riely,et al.  Distributed processes and location failures , 2001, Theor. Comput. Sci..

[24]  Gianluigi Zavattaro,et al.  An Actor Algebra for Specifying Distributed Systems: The Hurried Philosophers Case Study , 2001, Concurrent Object-Oriented Programming and Petri Nets.

[25]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[26]  Carolyn L. Talcott,et al.  An actor rewriting theory , 1996, WRLA.

[27]  Roberto M. Amadio,et al.  An Asynchronous Model of Locality, Failure and Process Mobility , 1997, COORDINATION.

[28]  Sape Mullender,et al.  Distributed systems , 1989 .

[29]  Robin Milner,et al.  Functions as processes , 1990, Mathematical Structures in Computer Science.

[30]  Mauro Gaspari,et al.  An ACL for a Dynamic System of Agents , 2002, Comput. Intell..

[31]  Nicola Dragoni,et al.  Integrating Agent Communication Languages in Open Services Architectures , 2003 .

[32]  Sam Toueg,et al.  Unreliable failure detectors for reliable distributed systems , 1996, JACM.

[33]  Luca Simoncini,et al.  Formally Verifying Fault Tolerant System Designs , 2000, Comput. J..