Mangrove - SOA Modeling Framework
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)