Project Description

Manifold 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.
Thus in Manifold:

  • computation processes know nothing about their own communication with other processes, and
  • coordinator processes manage the communications among a set of processes, but know nothing about the computation they carry out.
  • 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

    Key publications

    Coordination Models and Languages.
    G. A. Papadopoulos and F. Arbab.
    Advances in Computers, vol. 46, Academic Press, 1998.

    Dynamic Process Composition and Communication Patterns in Irregularly Structured Applications.
    K. Everaars, F. Arbab, and B. Koren.
    Concurrency: Practice and Experience, John Wiley & Sons, Ltd., vol. 12, pp. 157-174, 2000.

    Distributed evolutionary optimization in Manifold: Rosenbrack's function case study.
    Pascal Bouvry, Farhad Arbab, and Franciszek Seredynski.
    Information Science, vol. 122, pp. 141-159, 2000.

    Coordinating electronic commerce activities in Manifold.
    G. A. Papadopoulos and F. Arbab.
    Netnomics, Baltzer Science Publishers, 2 (2000) 2, pp. 101-116.

    Distributed Splitting of Constraint Satisfaction Problems.
    F. Arbab and E. Monfroy.
    Proceedings of Coordination 2000, Lecture Notes in Computer Science, Springer, 2000.

    Papers available

    List of supported platforms

    • IBM SP1/SP2
    • IBM AIX
    • HP-Unix
    • SGI IRIX
    • SUN OS
    • LINUX

    People involved:

    o dr. Ir. F. Arbab
    o drs. C.L. Blom
    o F.J. Burger
    o drs. C.T.H. Everaars

    Formal Models and Semantics of Manifold:

    o dr. Ir. F. Arbab
    o prof. dr. J. W. de Bakker
    o dr. M. Bonsangue
    o dr. J. J. M. M. Rutten

    Former members of the Manifold group:

    o dr. P. Bouvry
    o dr. A. Fagot
    o drs. M.A. Guravage
    o drs. P.J.W. ten Hagen
    o dr. I. Herman
    o dr. Kim Korner
    o dr. George Papadopoulos
    o dr. Eric P.B.M. Rutten
    o ir. P. Spilling
    o Sylvie Thiebaux

    Links to other Sites

    o PVM : Parallel Virtual Machine
    o SARA's HPCN services


    o CWI ->
    o Cluster Software Engineering ->
    o Theme Coordination Languages ->