Transformation of BPMN/BPEL to SCA models for STP
This page is intended as a follow-up of this GSoC project. Below you will find the abstract and project proposal, as well as details on current work, to-do's and future work.
The mission of the SOA Tools Platform (STP) project is to build frameworks and exemplary extensible tools that enable the design, configuration, assembly, deployment, monitoring, and management of software designed around a Service Oriented Architecture (SOA). The project is guided by the values of transparency, extensibility, vendor neutrality, community collaboration, agile development, and standards-based innovation. STP is a natural complement to other Eclipse projects, such as the Web Tools Platform and Data Tools Platform, and reuses, as appropriate, components from these projects.
The projects’ current components portray implementations for different standard modeling notations an expert could use to model and build an SOA system. Some of these are BPMN (business process modeling notation), BPEL (Business Process Execution Language) , SCA (service component architecture) and EID (Enterprise Integration Design). Having model mappings between these notations would enable the user to model a business process and transform it to obtain an executable process model and an architecture of service components that supports that process. As a bridge between these modeling notations and its editors, the STP Intermediate Model was created. In this way, we're accomplishing the basic three tenets described in the "MDA Manifesto" [Booch, Brown & Rumbaugh, 2004]:
-Direct Representation: The business analyst gets empowered to model his problem in his own language, business processes. -Automation: This model doesn't become just plain old documentation, but instead it's the artifact that forms the basis for the construction of the software application, which is automated by tools such as the one to be built in this project. -Open Standards: We're working with several standards such as BPEL, BPMN and SCA, owned respectively by Oasis, OMG and Open SOA, all of which are well-recognized industry standards organizations.
The goal of this project is to leverage and extend the existing STP Intermediate Model (STP-IM) in order to provide better support for transformations between process editors (BPMN and BPEL) and architecture editors (SCA in particular, potentially EID as well). The contribution would be of great importance to SOA developers and would therefore be an important incentive for the community adoption of the Eclipse STP.
Beyond the common marketing buzzword, SOA (Service-Oriented Architecture) as a strategy to develop enterprise information systems has a promise of value that can’t be ignored in any circle around the IT industry, including open source communities. As such, the Eclipse members went on to assure the leadership of the community in software engineering, and created the STP (SOA Tools Platform) project, a platform whose primary goal is to provide a starting place for the development of tools and frameworks to support the complete lifecycle of SOA solutions (design, configuration, assembly, deployment, monitoring, and management). The project is divided in several components, each covering a specific stage of the SOA lifecycle. One of them is the STP-BPMN editor, a GMF-based graphical model editor where the user (typically, a business analyst) can model his/her business processes as a starting point for an SOA solution. After that, the user can build an architecture of service components with the SCA (Service Component Architecture) Composite editor, another GMF-based graphical model editor. They can also make their business processes executable, by creating a BPEL model/document that runs on a BPEL engine. In order to make this possible, the STP team has created the STP Intermediate Model, to provide seamless integration between these components. Personal Motivation My senior project degree is an idea which a convergence of several disciplines that I like, such as BPM (Business Process Modeling/Management), SOA (Service-Oriented Architecture) and MDSD (Model-Driven Software Development). These emerging approaches with its supporting technologies are a big appeal to me, and I think it adds special value to the IT industry at the service of Enterprise Information Systems. Besides that, open source software development has always attracted me, and I’d be honored to have this opportunity to join a community of a big name such as Eclipse.
To improve the integration of the several modeling notations supported in STP in order to increase its usability, effectiveness and the value it adds to its users.
- Extend the current STP Intermediate Metamodel (STP-IM) to increase the completeness of a SOA design across the several editors.
- Write model transformations from STP-IM to the other modeling notations and vice-versa to achieve seamless, automatic integration.
- Create tests and sample scenarios to prove the effectiveness of the current implementation of STP-IM and its ongoing improvements.
STP Intermediate Model
The project will start with a concept analysis of the current definition of the metamodel and the elements already identified on it, as well as the code generated for the project committed on the Eclipse repository (mostly EMF-generated APIs), at the same time that the existing documentation is revised. After this, design and propose ways to improve it adding new elements or modifying current ones creatively as it becomes necessary.
Transformations from and to STP-IM
Current work is undergoing for the following transformations:
- SCA <–> IM (INRIA)
- BPMN –> IM (Engineering)
- IM –> BPEL (Engineering)
- IM –> JBI (Engineering)
- IM –> Database (Engineering)
These transformations are being developed using the Java EMF-generated APIs. Collaborating with other team members, they will be studied and tested, especially the first three, and they will be improved and any bugs or missing mappings that they might have will be fixed. New transformations to the EID (Enterprise Integration Designer) modeling notation will be included, time permitting.
Tests and Sample Scenarios
Several real life cases will be implemented to test the project components, both for documentation purposes and as a showcase for STP and the possibilities brought by the STP Intermediate Model. In the BPMN editor, we will model some businesses process from sources such as MIT’s business process handbook. This will also suggest a context to create SCA models of composite applications supporting these processes, first manually and then as the result of the transformation. We will test the resulting SCA models with SCA runtimes such as Apache Tuscany and others determined by the STP team. Also, we will test the resulting BPEL models with BPEL engines such as Apache ODE. The same goes for transformations from and to EID modeling notation. Full-featured demonstrations will be created to help spread the word on the project, suitable for events such as EclipseCON and Eclipse Summit.
Extend the Eclipse wiki (Eclipsepedia – http://wiki.eclipse.org) technical documentation on STP-IM involving the supported transformations and uses cases. The main target of this documentation is the STP team, both from IM and other components, so they can realize the integration possibilities the model brings.
The project will rely on the constant communication of the main developer (me) with his mentor, Adrian Mos from INRIA (France), as well as other committers from the STP project. There will be active participation on the project’s mailing lists and newsgroups.
The phase of getting familiar to the current implementation of the STP-IM and the related components (analysis and design) will be carried out along the “Community Bonding Period” (April 14th to May 26th). Actual coding (implementation and testing) will be carried out in the official program dates (May 26th to August 11th).
The resulting code of the project will be committed to the STP project module of the Eclipse repository, in the IM component, and released under the Eclipse Public License once the IP process is cleared out.
Time permitting, this project will also feature transformations from and to the EID modeling notation. If not, it will be an advised future work task. Other plug-ins from the STP project are expected to take advantage of the integration possibilities of STP-IM. The most common case, and probably the first integration exercise, would be the feature of adding Service Bindings to activities in a BPMN diagram, which would aggregate completeness to the model for later development stages of SOA solutions. Other integration scenarios include the SCA Composite Designer, with a feature to create a Composite model from a STP-IM instance; as well as adding round-trip engineering to reflect changes on said instance. Later work could include bringing the model transformation efforts to later stages of development, and thus extending the integration and automation capabilities to other components of STP such as STP Service Creation (STP-SC) and the runtime environments the team uses/recommends. In this way, we could fill the gaps and thus fulfill the MDA promise of going from a computation-independent model (a BPMN diagram) towards SOA-based deployable applications.
About the Participants
Juan Cadavid is from Medellín, Colombia, South America. He's 23 years old and he's a senior Computer Science student at EAFIT University in Medellín. His main areas of interest are enterprise information systems, business process management, software engineering and architecture, model engineering, service-oriented architecture and web technologies. His senior degree project, which has already been finished, is entitled “A Proposal for a Model Mapping from a Computation Independent Model (CIM) to a Platform Independent Model (PIM)”, building a model transformation from a BPMN model to a SCA model using a model transformation engine called Operational QVT, part of the Eclipse M2M sub-project.
A first issue to be solved was to give an up-close look to STP-IM, the current plug-ins and the functionality provided to an end-user. Documentation about these two topics was written in the Eclipse wiki.
There were some existing transformations, but they were implemented using an imperative approach, using the EMF-generated Java interfaces. This is very straightforward for the transformation developer; however future changes and additional upcoming transformations would make all of the work to become hard to mantain; therefore a declarative approach to model transformations was needed. Using ATL as an engine for this, we're also ensuring standards compliance (OMG's MOF Query/Views/Transformations).
The first transformation developed with this approach is BPMN to IM.
STP Use Cases
As the main objective of the component states it, STP-IM aims to bridge several model editors, by providing model transformations between them. In order to understand the transformation that give the most value to the user, and therefore establish a set of priorities for the STP-IM team.
An unique STP-IM instance as the core for every STP project
The STP-IM has adopted the file paradigm as a way to create models; this means, every model is persisted with a file, whether it has the .bpmn, .sca or any other extension. In the case of STP-IM, this file extension is .im. However, in order to serve as an integration bridge, there can't be multiple instances of the IM, since having the different modeled concepts split in several files would break the integrity of the transformed models. Therefore a single instance of STP-IM is required.
Currently the idea of STP-IM transformations as a builder is being explored as a prototype. In it, we're trying to come up with a model where each change in an STP project triggers a transformation to an unique IM instance in the project. The transformations will work both to create a new IM instance and to refine the existing one, and will embed ATL as the transformation engine.
Transformations from and to SCA. These have been implemented under an imperative approach and will be soon developed with ATL.
IM outline view
This is about the idea of having a workbench view to offer a view of the unique IM instance per project, where the user can see the automatically reflected changes while using the different editors; However, we could reuse some of the code at the org.eclipse.stp.im.editor plug-in.
User Assistance: Cheatsheets
One of the benefits the end user will gain from the integration provided by STP-IM transformations is the assistance on creating new models relevant to the SOA development lifecycle. Eclipse cheatsheets provides a great way to develop interactive help.
A cheat sheet to create SCA models from a BPMN model will be created on the first place.
Here are some links to the written documentation.
- STP Intermediate Model wiki page
- STP Intermediate Model Builder
- Documentation of the existing IM model transformations
- Usage scenarios identified for the STP project. They will provide the integration opportunities for future IM work.
Getting the source
It has been stipulated between the student and the mentor to provide the source as bugzilla patches. The contributions for the Google Summer of Code program are:
STP Intermediate Model Builder
More information on here.
- Declarative transformation from BPMN to IM using ATL
- Declarative transformation from SCA to IM using ATL
- Declarative transformation from IM to SCA using ATL
More information on here.