The first version of the Enterprise Collaboration Architecture has been published by the Object Management Groupin 2001. The vision of the is to simplify the development of component based and services oriented systems by providing a modeling framework aligned with the model-driven architecture of the Object Management Group. The ECA thus provides a modeling framework for technology neutral business process design followed by implementation mappings onto the chosen architecture and technologies. It requires bi-directional traceability across the specification, implementation and operation. The ECA specifies a set of UML models used to model different aspects of the system and a set of viewpoints addressing different concerns.
The Component Collaboration Architecture provides a recursive decomposition and assembly of logical parts or process roles. These represent abstract role players which are ultimately mapped onto physical system components. ECA thus separates process roles from the physical process components realizing these roles.
The business process model defines the business processes across levels of granularity using compound task diagrams. A compound task coordinates lower level activities to perform a higher level activity. Process roles can be defined for activities. ECA defines the following three process roles
Responsible party
Performer
Artifact
The ECA does not require the formal specification of services contracts for performers, but in most cases this would be encouraged.
the Enterprise view : The enterprise view specifies the CCA, the processes, business entities and their relationships, the events leading to actions in a technology neutral way.
the Computational view : The computations specification gets as inputs the enterprise specification and a set of mapping patterns and produces the computational specification.
the Information view : The information view gets as inputs the entity specifications, relationships and a set of mapping patterns and generates the information specification.
the Engineering view : The engineering view specifies abstract technology decisions like which components are to be network accessible, where messaging is to be used as integration channel and how entities are to be mapped onto persistent storage without specifying the concrete technologies to be used.
the Technology view : The technology view specifies the mapping onto technologies like the component hosts, concrete middleware providers, concrete persistence providers.