WSO2 Business Process Server
by Milinda Lakmal
This is an effort to tell you about what WSO2 Business Process Server(BPS) is, WSO2 BPS’ history and the future of WSO2 BPS.
Introduction
WSO2 BPS is a business process execution environment which supports WS-BPEL based business processes. WSO2 BPS enables WS-BPEL based service orchestration in Service Oriented Architectures(SOAs). WSO2 BPS is powered by Apache ODE and built on top of WSO2 Carbon framework.
History
WSO2 was well known in the SOA world for it’s Enterprise Service Bus, Web Services Application Server(Now known as WSO2 Application Server) and Data Services Server. WSO2 had most of the products need to implement Service Oriented Architectures. But the WSO2 product platform lacked a product that can used to achieve following tasks in a SOA based solution.
- Business process from services and human activities span across the organizations
- Complex services from other less complex services from heterogeneous environments
- Application integration flows from various applications
In late 2008, We started WSO2 BPS project to provide users with a product that can facilitate the above requirements.
WSO2 BPS fulfill the need we had for a standard based service orchestration product. Because WSO2’s main focus is on Web Services and related technologies, we decided to develop “Business Process Server” product based on Apache ODE. Integration of Apache ODE to WSO2 platform was easier, because of the WSO2 Carbon(OSGi based Componentized SOA platform) project WSO2 had started couple of month before the start of BPS project.
Why WSO2 BPS not Apache ODE?
Apache ODE is one of the best BPEL engines out there and it’s the best open source BPEL engine. There are lot of functionalities and features provided by WSO2 Carbon platform and we couldn’t take the advantage of them if we run Apache ODE as standalone server. Because of that we decided to come up with our own Apache ODE integration layer and plug ODE engine into WSO2 Carbon. The beauty of the Apache ODE architecture made the integration task very easy.
Apache ODE had two integration layers, one for Web Services based transport and other for JBI based transport. Web Services based transport was implemented on top of Apache Axis2. Because WSO2 Carbon’s core is also developed on top of Axis2, it was lot easier to plug Apache ODE into Carbon and we were able to reuse part of the existing integration layer too.
Utilizing features offered by WSO2 Carbon platform, we were able to implement feature rich management console for Apache ODE and were able to provide quality of service features for services exposed by BPEL processes based on WS-* support in WSO2 Carbon. In addition to above we implemented part of the clustering support for WSO2 BPS, which lets you synchronized process store across cluster nodes.
Thanks to the WSO2 Carbon’s componentized architecture we can now easily add BPEL support into any of our products. For example, customers can easily add BPEL support in to WSO2 ESB by installing BPEL feature in to WSO2 ESB. Eclipse P2 based feature management model enabled the this capability in WSO2 Carbon platform.
Apart from all the above features and advantages over standalone Apache ODE deployment, the latest feature addition to WSO2 BPS is the multi-tenant capability.
Future of WSO2 BPS
We added Human Task support to WSO2 BPS in the first quarter of 2010 and it was not that successful due to lack of tooling and lack of support from underlying platform. Currently we are working on multi-tenanted Human Task implementation for WSO2 BPS with Eclipse based tooling support and a new tasks management UI based on “Perspectives for WSO2 Carbon UI”.
The next planned feature for WSO2 BPS is the “Business Process Governance” based on process archive concept we are going to introduce in to the WSO2 BPS release after the next release and this will be based on WSO2 Governance Registry improvements to support “Processes” as first class governing artifact.
And also, we are planning to improve current multi-tenancy support in WSO2 BPS with elastic load balancing, advance fail-over and recovery support and native multi-tenancy for Apache ODE which will allows us to partition process instance data across different data sources for high scalability.