Mangrove - SOA Modeling Framework
The Mangrove - SOA Modeling Framework project is a proposed open source project under the Eclipse SOA top-level project.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send all feedback to the Mangrove forum.
Note that in this proposal, the long name "Mangrove - SOA Modeling Framework" is sometimes used in a shorter form ("Mangrove" or "SOA Modeling Framework").
The Eclipse SOA Tools Platform project contains tools for designing, building, configuring and deploying SOA applications. The current STP Intermediate Model component bridges different existing Eclipse STP editors (such as BPMN and SCA) through a common SOA metamodel defined using EMF. Users can transport SOA artifacts between editors by invoking transformations to and from the Intermediate Model instance. This ensures that elements such as services and processes are shared across the different perspectives of various SOA stakeholders, thus minimizing duplication and the risk for errors when building complex SOA systems.
The aim of this proposal is to extend the scope of the existing STP-IM component to better editor coverage while at the same time ensuring a seamless experience by reducing the need for manual transformations. In addition the proposal aims at providing functionality for connecting SOA editors to runtime projects and components in order to bridge the gap between SOA design and runtime.
Scope and Description
The Mangrove - SOA Modeling Framework project will focus on integrating existing and upcoming Eclipse projects related to SOA editors, runtime and deployment tools. In addition, Mangrove will add support for integration with monitoring projects (in particular the upcoming eBAM proposed project) and repositories (in particular the upcoming repository project proposal). It takes the existing Intermediate Model component from STP and extends it to a project in its own right with extended responsibilities and scope. It primarily targets the existing Eclipse STP project and the upcoming Eclipse SOA TLP.
The proposal does not aim at providing a runtime project (Swordfish is the main runtime envisaged by the SOA TLP), or a runtime monitoring tool (the new eBAM proposal seems an excellent candidate for this), however it will transport information to and from such projects. Mangrove does not envisage the creation of live views of SOA systems but rather the enablement of efficient utilization of a large variety of tools and editors for building SOA systems.
The purpose of the SOA Modeling Framework proposal is to create a project that can serve as a central Eclipse SOA modeling container useful for a wide variety of existing and upcoming SOA editors, runtime and platforms. By employing a simple and easily extendable SOA metamodel as its core, Mangrove will provide a consistent, always-in-sync representation of common SOA artifacts in an Eclipse workspace. Additionally, by providing connectivity to runtime projects and SOA repositories, the Mangrove instance will be kept in sync with evolutions of these artifacts at runtime, updating properties such as QoS parameters in its model.
The following are a simplified list of the envisaged functionalities:
- Transformations between different Eclipse Editors
- Keeping a synchronized version of SOA artifacts within a SOA-oriented workspace using a builder-type approach
- Updating model information in SOA editors with runtime data (from monitoring)
- Feeding model information to deployment tools (potentially using SCA as format) and runtime tools (useful for interpreting monitoring data).
- Obtaining information from SOA repositories (such as lists of services or governance information)
The following functional areas will comprise the SOA Modeling Framework. Each area is comprised of one or more Eclipse plug-ins and is an integral part of the proposed project.
- Core - the Core EMF-based Metamodel and API (initial existing code in STP-IM): contains the SOA elements and their inter-relations, enabling the storing of distilled SOA elements used by different editors and tools. This is defined using the Eclipse Modeling Framework.
- Branches - the Transformation Plug-ins (initial existing code in STP-IM): contain the logic required to move and convert information between editors, tools and the core metamodel instance.
- Phloem - the Builder (tentative initial contribution in STP-IM bugzilla) ensures the constant updating of SOA artifacts in the core as well as in the corresponding editors and tools (e.g. when saving a diagram, update the appropriate artifacts in the core while also enabling the update of the corresponding artifact in related editors or tools).
- Leaves - the Editor Extensions (initial existing code in STP-IM), extensions and improvements to editors and tools for adding Mangrove-specific functionality at design time (e.g. views allowing the enrichment of certain SOA elements in the core or configuration menus for customizing the amount of information to be moved to/from the core).
- Roots - the Runtime Connections: for moving information to and from runtime tools and repositories when needed in order to have a "living" core, providing a good reality snapshot. This can be useful when diagrams are out of sync or when aggregated monitoring information is required to update graphical elements. Also for generating deployment information in a common format.
The initial code contribution will be the currently existing STP Intermediate Model component.
We do not foresee any legal issue as the proposed project is actually an evolution of the already established EPL-based STP-Intermediate Model component and all further code contributions will be performed following the regular Eclipse legal process. The entire initial contribution is already in Galileo.
The following individuals are proposed as initial committers to the project:
- Adrian Mos, INRIA (lead) - STP-IM component committer
- Andrea Zoppello, Engineering - STP-IM component committer
- Gianfranco Boccalon, Engineering
- Luca Rossato, Engineering
- Luca Barozzi, Engineering
- Fy Ravoajanahary, INRIA
- Juan Cadavid, INRIA
The following Architecture Council members will mentor this project:
The following individuals, organisations, companies and projects have expressed interest in this project:
- Stéphane Drapeau, Obeo
- Oisín Hurley, Progress Software
- Oliver Wolf, SOPERA
- Vincent Zurczak, EBM WebSourcing
- Antoine Toulmé, Intalio
- Marc Dutoo, OpenWide
- Paul Brebner, NICTA
We will continue to integrate all mature contributions in the Eclipse release train, in sync with the container project, as is already the case with the STP Intermediate Model. We target Helios in 2010.
- EclipseCON 2010: Integration of outstanding bugzilla contributions in the code-base (in particular the initial top-down builder and additional transformations). This will be done following the regular Eclipse processes.
- Eclipse Summit Europe 2010: Significantly improved builder (2-way updates). Graphical Editor for the Mangrove core instance. Outline View. Integration with QoS data sources in a standard way. Preferences pane to control behavior of Mangrove. Initial deployment support for SOA TLP targets. Initial integration with service repositories. Initial integration with model repository.
- EclipseCON 2011: Extended implementation of the above.
Changes to this Document
|23-October-2009||Initial draft created, in time for ESE09|
|04-November-2009||Second draft following ESE09 and feedback from the SOA IWG|
|20-November-2009||Name chosen following contest within the Eclipse STP community|
|03-December-2009||Third draft following additional feedback from the Eclipse STP community|
|10-December-2009||Final draft sent to EMO for consideration|
|18-December-2009||Updated proposal to follow formatting rules defined by the EMO. Added mentors and project scheduling sections.|
|07-January-2010||Clarified the scope and the role of functional areas following suggestions from the Eclipse Foundation.|