Mangrove - SOA Modeling Framework

The project has been created.

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").

Background

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)

Functional Areas

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.

Initial Contribution

The initial code contribution will be the currently existing STP Intermediate Model component.

Legal Issues

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.

Committers

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

Mentors

The following Architecture Council members will mentor this project:

Interested Parties

The following individuals, organisations, companies and projects have expressed interest in this project:

Project Scheduling

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.

Milestones:

  • 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

Date Change
23-October-2009 Initial draft created, in time for ESE’09
04-November-2009 Second draft following ESE’09 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.