A compositional approach to superimposition
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Design and validation of computer protocols
Design and validation of computer protocols
Reasoning about meta level activities in open distributed systems
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
A Language Framework for Multi-Object Coordination
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Modular Description and Verification of Concurrent Objects
OBPDC '95 Selected papers from the Workshop, on Object-Based Parallel and Distributed Computation
Abstracting Object Interactions Using Composition Filters
ECOOP '93 Proceedings of the Workshop on Object-Based Distributed Programming
TOOLS '97 Proceedings of the Technology of Object-Oriented Languages and Systems - Tools-25
Constraint-based structuring of network protocols
Distributed Computing
Hi-index | 0.00 |
The complexity of protocols supporting distributed applications has to modular techniques to design protocols. The object-oriented programming paradigm provides a number of concepts to enable modularity and reuse. For example, languages such as Java and C++ have been extended with synchronization primitives to modularize code. In this paper, we propose a framework with tools that compliment such language extensions to enable compositional development of protocols. We advocate a two-staged design process: In the first stage, the designer develops code for a set of component protocols, each performing a specific subtask of the protocol. The second stage involves composing the subtasks to obtain the protocol for the entire problem. The composition is done with respect to a set of constraints that describe the interactions between the subtasks. We identify several composition patterns, each implementing a specific type of interaction. For each pattern, we describe the code required for its implementation and the transformations to embed this code into the component protocols. The toolset has been implemented using Java as the underlying development language.