Project DescriptionManifold is a coordination language for orchestration of the communications among independent, cooperating processes in a massively parallel or distributed application. Coordination models and languages close the conceptual gap between the cooperation model used by the constituent parts of an application and the lower-level communication model used in its implementation. Coordination-based methods provide a clean separation between individual software components and their interactions within their overall software organization. This separation, together with the higher-level abstractions offered by coordination models and languages, improve software productivity, enhance maintainability, advocate modularity, promote reusability, and lead to software organizations and architectures that are more tractable and more amenable to verification and global analysis.
Coordination is relevant in design, development, debugging, maintenance, and reuse of all complex concurrent and distributed systems. Specifically, coordination becomes paramount in the context of open systems, systems with mobile entities, and dynamically re-configurable evolving systems. Moreover, coordination models and languages focus on such key issues in Component Based Software Engineering as specification, interaction, and dynamic composition of components. See What Do You Mean, Coordination? for an easy-to-read introduction to the field of coordination.
The fundamental principle underlying Manifold is the complete
separation of computation from communication.
Specifically, this separation manifests itself as
exogenous coordination in
Manifold. Exogenous coordination means "coordination from
outside" and applies to models and systems wherein the actions that
coordinate an entity with others are performed by primitives that are
outside of that entity itself.
Exogenous coordination leads to more flexible software made out of more re-usable components, and supports open systems. The work in this project also concentrates on the study and the development of practically useful coordination patterns and protocols in various real-life applications. Furthermore, the framework for a visual programming environment for Manifold, called Visifold, was developed in the context of this project at CWI.
The formal (operational) semantics of Manifold and its underlying mathematical model were developed at CWI within project group COMPONENT-BASED MODELS AND SOFTWARE ARCHITECTURES. Manifold has been successfully used in a number of real applications in areas such as numerical computing, constraint satisfaction, distributed genetic algorithms, and computational fluid dynamics.
Manifold is currently being used by the software company Adaptive Planet as an integral part of their Designer product: an environment for development and deployment of component based systems on local, distributed, as well as mobile platforms.
Contact person (email): Farhad Arbab
Coordination Models and Languages.
Dynamic Process Composition and Communication Patterns in Irregularly Structured Applications.
Distributed evolutionary optimization in Manifold: Rosenbrack's function case study.
Coordinating electronic commerce activities in Manifold.
Distributed Splitting of Constraint Satisfaction Problems.
List of supported platforms
People involved:dr. Ir. F. Arbab
drs. C.L. Blom
drs. C.T.H. Everaars
Formal Models and Semantics of Manifold:dr. Ir. F. Arbab
prof. dr. J. W. de Bakker
dr. M. Bonsangue
dr. J. J. M. M. Rutten
Former members of the Manifold group:dr. P. Bouvry
dr. A. Fagot
drs. M.A. Guravage
drs. P.J.W. ten Hagen
dr. I. Herman
dr. Kim Korner
dr. George Papadopoulos
dr. Eric P.B.M. Rutten
ir. P. Spilling
Links to other SitesPVM : Parallel Virtual Machine
SARA's HPCN services
Cluster Software Engineering ->
Theme Coordination Languages ->