EBPM is an open source project proposed under the Eclipse SOA Top-Level Project, in accordance with the Eclipse Development Process. Everyone is invited to join the project and to provide their feedback using the eBPM forum.
At present, the OSGi technology appears to be the best answer to the demand of stable, modular and easily extensible solutions according to the SOA guidelines. On the other hand, OSGi really misses a central concept of a BPM platform that enables to describe the integration process in terms of OSGi services orchestration. The eBPM aims at the realization of a complete BPM solution for OSGi. The project will also provide also provide UI and runtime supports, to be able to deploy and manage OSGi services, in declarative way leveraging the capabilities of OSGi declarative services. In eBPM will propose two approach to realize a BPM Solution for OSGi:
- Providing a BPM Gateway Bundle into the OSGi container that is able to realize the orchestration of other services.
- Embedding the OSGi runtime in an external BPM Engine, and extending this to be able to use the services provided by the container.
The eBPM project will focus on providing both runtime, and support tools to realize a complete BPM solution based on OSGi For the runtime part the eBPM project will provide:
- A core framework (eBPM Core framework ) to develop, configure and manage OSGi services based on messaging paradigm. The core framework will be built on top of Equinox runtime project.
- A set of standard connectivity ( SOAP, JMS etc.. ) and business services built on top of eBPM core framework. For connectivity service one of the project goals is to collaborate with ECF runtime project and with Swordfish based connectors.
- Orchestration of OSGi services in the core framework, through one or more bundles (BPMGateway).
- Extensions towards the Apache ODE engine so as to be able to embed Equinox and eBPM core services in the BPEL engine.
- A metadata model to have a persistent model for eBPM projects.
The project will provide support and deployment tools for the configuration of services for the eBPM core framework and a monitoring ui perspective to manage runtime information, so that the proposal does not aim to replace or substitute existing OSGi development tools ( PDE ).
The proposal does not aim at providing process development tools and SOA metamodel, but it will use and extend existing Eclipse projects like Eclipse BPMN Modeler, Eclipse BPEL Editor and STP intermediate model ( now Mangrove project ). eBPM will focus on code generation capabilities.
The following schemes illustrate the proposed architectural runtime services that will be implemented.
When we need an external BPM Engine like BPEL, the runtime part will become:
- eBPM Core Framework: Set of bundles, that leverage the capabilities of OSGi Declarative Services, to provide a common way to define/develop OSGi services.eBPM core framework will provide a way to realize OSGi Services based on the messaging paradigm that use the OSGi Event Admin Service to communicate with each others.
- eBPM Deployment Service: Bundle that will provide an OSGi Service, that will look for service configuration file and will publish OSGi services using facilities offered by DS and DS Component Factories.
- BPM Gateway API: The bundle defining the interface for BPM Gateway implementations.
- BPM Gateway Process Engine: The bundle containing an implementation of the API based on an open source process engine ( for example jbpm )
- Standard Connectors and Services: Bundles that provide common connectivity, and business services (SOAP, JMS, File System, FTP, TCP with pluggable applicative protocol implementations, Quartz, XSLT Transformation service, Groovy, JDBC, XSD Validation )
- eBPM Monitoring Services: The set of bundle that will leverage information from runtime and store into a relational database.
The relational model used by eBPM to store monitoring information. Basically this will be based on the STP Intermediate Model.Eclipse IDE Plugins ( Extensions to Eclipse IDE )
- eBPM Project Wizard Tool: Eclipse Plugin to create an eBPM project.
- eBPM Service Editor: visual tool for the configurations of OSGi service descriptor. This service descriptor file will be used by eBPM Core Service Framework, to register OSGi services into the runtime.This will not replace PDE tool, as itís intended as a tool to create eBPM service descriptor to be used by eBPM Deployment Service.
- BPMN to BPM Gateway Process Engine Bundle: Based on Eclipse STP IM ( Mangrove ) it produces process definitions to be used by BPM Gateway default implementation ( jbpm ) bundle.
- BPMN to BPEL: Based on Eclipse STP IM ( Mangrove ), it produces BPEL processes with using the models realized by means of Eclipse BPMN Designer. The processes are then completed through the BPEL Designer.
- Deploy Tools: Utility Tools integrated in Eclipse, that allow to deploy an eBPM project to the runtimes.
- Eclipse BPMN Editor Extension: Extension to the eclipse bpmn editor to support the drag and drop of OSGi service definitions into the diagram.
- Eclipse BPEL Editor Extension: Extension to the eclipse bpel editor o support the drag and drop of OSGi service definitions into bpel diagram.
- Eclipse eBPM Support Tools: Some support plugins ( menu contributions, preference page ), to help to work with eBPM.
- Monitor and Management Perspective/View: Eclipse plugins to provide a view with the list of processes, process instances, and status information
- OSGi Extension for the BPEL Runtime: extensions enabling the BPEL runtime to orchestrate OSGi services. It will be initially released for Apache ODE.
Relation with other Eclipse Projects
The eBPM project will leverage technologies and work in collaboration with the following projects:
- Eclipse STP IM
- Eclipse BPEL Designer
- Eclipse BPMN Modeler
- Eclipse Swordfish
- Eclipse Equinox
- Eclipse ECF
- Eclipse Gemini
Everyone is invited to express their concern or opinion about the above-proposed eBPM project and to offer their support to its development using the newsgroup. Our intention is to start developing the project directly in the source repository of Eclipse, just from the the incubation phase. Below is a preliminary list of the developers directly involved in the project. Any design or development contribution is welcome.
- Andrea Zoppello, Engineering (proposed as project lead)
- Gianfranco Boccalon, Engineering
- Luca Rossato, Engineering
- Antonella Miele, Engineering
- Luca Barozzi, Engineering
- Daniela Butano, Independent
- Oliver Wolf, SOPERA
- Dave Carver, Intalio
- Oisin Hurley, independent
The following companies have shown their interest in this project. Key contacts listed.
- Alain Boulze, INRIA
- Adrian Mos, INRIA
- Oliver Wolf, SOPERA
- Ricco Deutscher, SOPERA
2010-07 release of Release Candidate of eBPM
2010-08 release of 0.7 version of eBPM