Here at Ricston, we have been asked to investigate the feasibility of migrating a complex process implemented in Intalio BPMS to Bonita Open Solution. A key point in this potential migration is that the process interacts with various external systems by way of Web Services.
Intalio BPMS provides good design-time tools to make the construction of Web Service calls as simple as possible. For example, you can map process data to the Web Service’s operation parameters visually (pretty much like how you would do in BOS to map process variables to message fields). Now in our case the Intalio process to migrate has dozens of Web Service calls across different Web Services. BOS community edition makes construction of Web Service calls a somewhat time consuming process. For instance, to consume a Web Service using the Web Service Client connector we have to handcraft the SOAP request. Essentially, this amounts to performing part of the marshalling yourself!! Having a large number of Web Services to consume makes the task even more daunting. We needed an easier way to consume Web Services from a Bonita process. This is why we developed the WSDL To Bonita Connector Plugin.
The WSDL to Bonita Connector Plugin is an Apache CXF plugin which generates Web Service BOS connectors from a WSDL file. These connectors ask you for the required Web Service operation parameters and take care of the marshalling and unmarshalling process. Using this tool is very easy:
- First download and install Apache CXF 2.5.x.
- Grab the wsdl-to-bonita-connector-plugin release.
- From the release’s lib folder, drop cxf-wsdl2bonitaconnector-[version].jar and bonita-server-[version].jar in CXF’s lib directory.
- From the release’s bin folder, drop the wsdl2bonitaconnector script in CXF’s bin directory.
- Run wsdl2bonitaconnector as follows: ./wsdl2bonitaconnector [wsdl]. For example:
The command produces an output folder in the current directory. The folder contains the Web Service connector packaged as a JAR plus the connector source code.
- From Bonita Studio, import the generated JAR as a connector. The connectors then appear under the Web Services category.
As seen in the screenshot below, a connector is generated for each Web Service operation. Let us know if you have ideas to make this plugin better, and remember, have fun with Bonita! 🙂