STP/IM Component/STP Internal Model Discussion
This page aims to serve as a starting point for a discussion on the internal representation of artefacts in Eclipse STP. It is envisaged that several editors will be used separately or in coordination in order to create SOA entities and architectures. Examples of such editors include
- SCA Editor
- JBI Editor
- BPMN editor
- BPEL editor
Each editor uses its own internal (meta-)model corresponding to its underlying foundation (SCA, JBI etc).
Internal Models (e.g. SCA and JBI)
This subsection presents a very simplified and limited subset of the (meta-)models for SCA and JBI.
Consistent Representation in STP
It is desirable that there be a consistent representation of the main artefacts created or used in Eclipse STP. A Service for instance should be available to architects and developers using either editor / technology. In particular, a service appearing in the logical architecture designed with SCA should be rendered "accessible" in the JBI editor or indeed in the BPMN or BPEL editors. It should be "same service" that is used everywhere across STP. We should aim to have minimum redundancy in the design process.
There are several approaches that can be used to ensure inter-model consistency. They are outlined in the following sub-sections.
Each STP user designs / develops using their favourite editor. Transformation capabilities are offered for conversions between models as soon as a new editor is used. Several common concepts in SCA and JBI for instance can be mapped as illustrated in the figure below.
The smiley faces represent service clients. TODO: more detailed explanations.
Common Service Repository
This would imply that all services, regardless of the editor they were first created with, are available throughout Eclipse STP via a repository explorer. All editors must therefore make sure they "add" the new service to the repository. A possible disadvantage of this solution is the service interactions (e.g. orchestrations) could be lost. [Oisin, do you want to add more info here?]
Common STP Model
This would be a hybrid approach in which a common meta-model is used to hold the information that is more or less common across editors / technologies. Transformations from all individual editor models must be performed to obtain this "intermediate" representation. This approach is also similar to the service-repository approach, however it allows the addition of more information to be stored.
The figure below is a simplification of this intermediate model, showing service orchestrations as well. File:Intermediate.png
I would go for the third option. --Adrian.mos.inria.fr 11:10, 21 June 2007 (EDT)