Communications of the ACM
Coordination languages and their significance
Communications of the ACM
Introduction to the Special Issue on Software Architecture
IEEE Transactions on Software Engineering - Special issue on software architecture
Understanding ActiveX and OLE: a guide for developers and managers
Understanding ActiveX and OLE: a guide for developers and managers
A formal basis for architectural connection
ACM Transactions on Software Engineering and Methodology (TOSEM)
A process algebraic view of Linda coordination primitives
Theoretical Computer Science - Special issue: theoretical aspects of coordination languages
Foundations of component-based systems
Foundations of component-based systems
Comparing three semantics for Linda-like languages
Theoretical Computer Science
A Calculus of Communicating Systems
A Calculus of Communicating Systems
On the expressiveness of coordination via shared dataspaces
Science of Computer Programming - Special issue on coordination languages and architectures
Infinite types for distributed object interfaces
Proceedings of the IFIP TC6/WG6.1 Third International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS)
Coordination as Comstrainted Interaction (Extended Abstract)
COORDINATION '96 Proceedings of the First International Conference on Coordination Languages and Models
Termination analysis of business process workflows
Proceedings of the 5th International Workshop on Enhanced Web Service Technologies
Hi-index | 0.00 |
Nowadays, tuple spaces have turned out to be one of the most fundamental abstractions for coordinating communicating agents. Some models, as Linda, were presented as a set of inter-agent communication primitives which can virtually be added to any programming language. These models have the advantage of capturing both communication and synchronization in a natural and simple way. In this paper, we analyze the use of Linda to specify the interactive behavior of software components. We first introduce a process algebra for Linda and we define a notion of process compatibility that ensures the safe composition of components. This definition of compatibility takes into account the state of a global store (tuple space), which gives relevant information about the current execution of the system. Indeed, a Linda-based computation is characterized by the store's evolution, so that the set of tuples included into the store governs each computation step. In particular, we prove that compatibility implies successful computation (i.e. without deadlock). We also argue that Linda features some advantages with respect to similar proposals in the context of dynamic compatibility checking. In this context, the success of the composition of a pair of agents in presence of a suitable store can be useful to condition the acceptance of a given component into an open running system. In order to extend our approach to complex systems, where constructing a system involves more than two components, we propose the use of distributed tuple spaces as the glue to join components.