Designing Concurrent and Distributed Control Systems

By: A. Aarsten, D. Brugali, G. Menga
Published in: CACM, Oct. 1996
Pages: 50-58

Summary: Summary of G++, a pattern language for concurrent and distributed control systems, and an application in computer-integrated manufacturing.

Category: Concurrent Systems, Distributed Systems

Pattern: Visibility and Communication between Control Modules

Contains: Visibility and Communication between Control Modules [Aarsten+95],

Pattern: Objects and Concurrency

Contains: Categorize Objects for Concurrency [Aarsten+95],

Pattern: Client/Server/Service

Contains: Client/Server/Service [Aarsten+95],

Pattern: From Prototype to Reality

To ensure a seamless evolution from simulation to final implementation, maintain two versions of each object, the prototype and the reality object. When moving from simulation to reality, replace the prototype object with the reality object. Ensure consistent transition by having the implementations inherit from a common base class that defines their interface.

Pattern: Distribution of Control Modules

Contains: Distribution of Control Modules [Aarsten+95],

Pattern: Remote Control

In a simulation, the control of a peripheral device uses variables and events. In reality, this is not the case. Make the data for accessing the peripheral state virtual by using a proxy. Create a class to encapsulate external events. Overload the method to broadcast logical events with a new method that takes an event as a parameter.