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.
- 1 Abstract
- 2 Description
- 3 About the Participants
- 4 Current work
- 5 To-do's
- 6 Future Work
- 7 Links
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
My name is Juan Cadavid and I’m from Medellín, Colombia, South America. I’m 23 years old and I’m senior Computer Science student at EAFIT University here in Medellín. The main areas of interest are enterprise information systems, business process management, software engineering and architecture, model engineering, service-oriented architecture and web technologies. My senior degree project, which is almost 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.