Saturday, June 20, 2009

Graphical representation generation for a WS-BPEL business process


This blog post is focused on one of my project I contributed to during my internship. This post will also be helpful on who are interested in SVG (Scalable Vector Graphics), BPEL (Business Process Execution Language) and BPM (Business Process Management).

WS-BPEL (Web Services Business Process Execution Language) is XML based programming language used for develop business and scientific work-flows.
It can be used to define Abstract and Executable business processes. Work-flows, implemented in WS-BPEL exchange information by using Web service interfaces.

As previously mentioned WS-BPEL is a XML based language, it does not define a graphical representation for the process or provide any particular design methodology for processes. So there is no any standard graphical notation for WS-BPEL. But most persons find visual notations easier to learn and apply, perhaps because they process visual information more efficiently than textual information, which led some vendors to define their own graphical notations.
The Business Process Modeling Notation (BPMN) is a standardized graphical notation for drawing business processes in a work-flow.

My project was to design and develop a software component that extrapolate the necessary information for displaying a WS-BPEL work-flow instance as an SVG representation. Before get-in to the design phase I researched on the following key-areas.

  • Familiarizing with WS-BPEL language, with the existing BPEL-supporting software and with the Web Service stack
  • Familiarizing with the SVG libraries and features
  • Analyzing the previously done BPMN work-flow and BPEL work-flow viewers and understanding its design and functionalities
  • Analyzing how the BPEL process engine can capture instance-related information in terms of work-flow status

The project was targeted on WSO2-BPS and Apache-ODE which are open source Java-based BPEL engines, released under Apache License 2.0.

I used Apache Batik libraries for manipulate SVG documents.
SVG is a XML-based specification to describe two-dimensional vector graphics. SVG is also well-suited to smart phones and mobile devices. All major modern web browsers except Microsoft Internet Explorer support and render SVG markup directly. To view SVG files in Internet Explorer, users have to download and install a browser plug-in.

Final outcome is similar to something like this.



This post is still to be completed and more information on design, the source repository locations and some original screen-shots will be published soon.

7 comments:

Mariusz said...

Hello, is there possibility to obtain sources of converting library?

Denis Weerasiri said...

@Mariusz,Hello, The source is available here
https://wso2.org/repos/wso2/trunk/carbon-components/bpel/org.wso2.carbon.bpel.ui/src/main/java/org/wso2/carbon/bpel/ui/bpel2svg/
Cheers.

Mariusz said...

Thanks

Denis Weerasiri said...

New source is available at https://wso2.org/repos/wso2/trunk/carbon/components/bpel/org.wso2.carbon.bpel.ui/src/main/java/org/wso2/carbon/bpel/ui/bpel2svg/

jh.kkwon said...

Hello. Is it possible to get the sources? It seems like the links are not working...

Denis Weerasiri said...

Latest source code can be found at https://svn.wso2.org/repos/wso2/carbon/platform/trunk/components/business-processes/bpel/org.wso2.carbon.bpel.ui/src/main/java/org/wso2/carbon/bpel/ui/bpel2svg/latest/

jh.kkwon said...

Thanks.