Components, objects, and contracts
Proceedings of the 2007 conference on Specification and verification of component-based systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering
A reduced complexity design pattern for distributed hierarchical command and control system
Proceedings of the 1st ACM/IEEE International Conference on Cyber-Physical Systems
A framework for reasoning on component composition
FMCO'09 Proceedings of the 8th international conference on Formal methods for components and objects
First class futures: specification and implementation of update strategies
Euro-Par 2010 Proceedings of the 2010 conference on Parallel processing
A dynamic binding strategy for multiple inheritance and asynchronously communicating objects
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
A dynamic class construct for asynchronous concurrent objects
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
A system for compositional verification of asynchronous objects
Science of Computer Programming
Hi-index | 0.00 |
Distributed systems are often modeled by objects that run concurrently, each with its own processor, and communicate by synchronous remote method calls. This may be satisfactory for tightly coupled systems, but in the distributed setting synchronous external calls seem less satisfactory; at best resulting in inefficient use of processor capacity, at worst resulting in deadlock. Furthermore, it is difficult to combine active and passive behavior in concurrent objects. This paper proposes a solution to these problems by means of asynchronous method calls and conditional processor release points. Although at the cost of additional internal non-determinism in the objects, this approach seems attractive in asynchronous or unreliable environments. The concepts are integrated in a small object-oriented language with an operational semantics defined in rewriting logic, and illustrated by an example of a peer-to-peer network.