The drinking philosophers problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
A distributed algorithm to implement n-party rendezvous
Proc. of the seventh conference on Foundations of software technology and theoretical computer science
Parallel program design: a foundation
Parallel program design: a foundation
Process Synchronization: Design and Performance Evaluation of Distributed Algorithms
IEEE Transactions on Software Engineering
Communication and concurrency
Implementing and evaluating an eventually-serializable data service
PODC '98 Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing
Compiling IOA without Global Synchronization
NCA '04 Proceedings of the Network Computing and Applications, Third IEEE International Symposium
An order-based algorithm for implementing multiparty synchronization: Research Articles
Concurrency and Computation: Practice & Experience
Modeling Heterogeneous Real-time Components in BIP
SEFM '06 Proceedings of the Fourth IEEE International Conference on Software Engineering and Formal Methods
Distributed Semantics and Implementation for Systems with Interaction and Priority
FORTE '08 Proceedings of the 28th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
Systematic correct construction of self-stabilizing systems: a case study
SSS'10 Proceedings of the 12th international conference on Stabilization, safety, and security of distributed systems
A formal approach for incremental construction with an application to autonomous robotic systems
SC'11 Proceedings of the 10th international conference on Software composition
Automated distributed implementation of component-based models with priorities
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
Automated addition of fault recovery to cyber-physical component-based models
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
Rigorous system design: the BIP approach
MEMICS'11 Proceedings of the 7th international conference on Mathematical and Engineering Methods in Computer Science
Knowledge-Based distributed conflict resolution for multiparty interactions and priorities
FMOODS'12/FORTE'12 Proceedings of the 14th joint IFIP WG 6.1 international conference and Proceedings of the 32nd IFIP WG 6.1 international conference on Formal Techniques for Distributed Systems
Rigorous design of robot software: A formal component-based approach
Robotics and Autonomous Systems
Optimized distributed implementation of multiparty interactions with observation
Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions
metroII: A design environment for cyber-physical systems
ACM Transactions on Embedded Computing Systems (TECS) - Special section on ESTIMedia'12, LCTES'11, rigorous embedded systems design, and multiprocessor system-on-chip for cyber-physical systems
State-of-the-art tools and techniques for quantitative modeling and analysis of embedded systems
DATE '12 Proceedings of the Conference on Design, Automation and Test in Europe
Hi-index | 0.00 |
Although distributed systems are widely used nowadays, their implementation and deployment is still a time-consuming, error-prone, and hardly predictive task. In this paper, we propose a methodology for producing automatically efficient and correct-by-construction distributed implementations by starting from a high-level model of the application software in BIP. BIP (Behavior, Interaction, Priority) is a component-based framework with formal semantics that rely on multi-party interactions for synchronizing components. Our methodology transforms arbitrary BIP models into Send/Receive BIP models, directly implementable on distributed execution platforms. The transformation consists of (1) breaking atomicity of actions in atomic components by replacing strong synchronizations with asynchronous Send/Receive interactions; (2) inserting several distributed controllers that coordinate execution of interactions according to a user-defined partition, and (3) augmenting the model with a distributed algorithm for handling conflicts between controllers preserving observational equivalence to the initial models. Currently, it is possible to generate from Send/Receive models stand-alone C++ implementations using either TCP sockets for conventional communication, or MPI implementation, for deployment on multi-core platforms. This method is fully implemented. We report concrete results obtained under different scenarios.