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
- 8 Getting the source
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
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.
Getting the source
__ please enter __