SOFA (component system)
# SOFA (component system)

SOFA 2 is a component system developed by Distributed Systems Research Group at Charles University in Prague. It provides many advanced features: ADL-based design, behavior specification and verification based on behavior protocols, software connectors supporting different communication styles and providing transparent distribution of applications. SOFA 2 can be used not only for modeling component-based applications but also as a complete framework supporting all the stages of an application lifecycle from development to execution.

## SOFA 2 basis

The SOFA 2 system includes a component model, repository of components, runtime environment and tool support.

### Component Model

SOFA 2 component model is defined by means of its meta-model which captures core concepts and states relation among them.

### Repository

SOFA 2 provides a repository of a components which is automatically generated from the meta-model.

### Tool support

* Cushion - is a text-based tool which allows development of SOFA 2 applications and manipulation with a repository
* SOFA IDE - is a graphical tool (plugin for Eclipse)
* MConsole - is a plugin for Eclipse (as well as a standalone application) monitoring and maintaining SOFA 2 runtime environment

## SOFA application lifecycle

* application design
* component development, adaptation
* application assembly
* application deployment
* application execution - monitoring, maintaining
