Wednesday, July 29, 2009

The project Mooshabaya (මූෂාභය) - Brings the knowledge from workflow domain to Mashup domain


The idea for the project "Mooshabaya" was emergerged as a final year project, coordinated by the department of Computer Science and Engineering, University of Moratuwa.
The project "Mooshabaya" targets to generate Mashups to describe the composed workflows, by modifying XBaya Workflow Composer.
XBaya addresses the above mentioned issue regarding to the modeling of workflows based on web services. It is a graphical client program for workflow composition and monitoring. It provides an easy-to-use GUI for users to compose workflows from Web Services described in WSDL. It helps the developer to build a graphical representation of the workflow. To facilitate the execution phase of the workflow XBaya also enables the developer to insert the concrete deployment details such as end point URLs present in WSDLs to the workflow model metadata as well. To actually make it executable in real world this workflow model has to be converted in to an executable format which can be deployed within an existing workflow execution engine. BPEL is such executable workflow language which can be run inside a WS-BPEL compliant workflow engine. BPEL has been standardized by OASIS standard body. Currently conversion to BPEL from the XBaya workflow model is present where the converted workflow can be deployed in BPEL engines such Apache ODE.
XBaya currently exports the composed workflows into BPEL and Jython. Though Mooshabaya focuses and uses XBaya as its workflow composer, it can easily be generalized to be compatible to any other workflow composer. Mooshabaya will find the services from a service Registry, which governs SOA deployments, and the composed workflows are deployed into a Mashup Server as mashups.

Let's take a look at on what a mashup is. A mashup is a web application that combines data or functionality from two or more sources to create a new service. It enables fast and easy integration of services and data sources using open API s. This enables the realization of workflows in yet another format and which seems to be very promising due to the proliferation of web services and mashup enabled services on the Internet, a classical example being highly popular Google Maps. Currently there is no mechanism to export XBaya workflow models to mashups which we feel is a significant shortcoming. So we intend to fill this void by extending the XBaya export mechanism to include mashup exports. Also to facilitate monitoring of the workflow during its execution we intend to introduce event notification facility in the generated mashup codes.

How a simple mashup looks like.
Here is a simple mashup that will invoke a partner service "AdderService" and return the result inside "invokeFunctionProcessService" operation.

/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
this.serviceName = "FunctionProcess";
this.documentation = "Invoke AdderService" ;
system.include("AdderService.js");

invokeFunctionProcessService.inputTypes={"param0" : "Number", "param1" : "Number"};
invokeFunctionProcessService.outputTypes="Number";

function invokeFunctionProcessService(param0, param1)
{
var adderServiceResponse = AdderService.add(param0, param1);
return adderServiceResponse;
}


So this approach enables to create workflows and business process (like BPEL processes) using in simple javascript.

Things to be figured out - Still, we do not have a clear image on how the mashup domain and the mashup technologies would fit in to the existing workflow domain. So still we are not sure about the actual functional requirements of this project.
We are still in the initial stage of this project. So in future we'll bring you more information in a more official way.

Link - http://mooshabaya.sourceforge.net/
IRC channel - ##m2sc on freenode


Project Members - De Alwis, K.D.B.C.
Malinga, A.S.
Pradeeban, K.
Weerasiri, W.A.D.D.

External Mentors - Dr. Srinath Perera
Dr. Sanjiva Weerawarana
Internal Mentors - Mrs. Vishaka Nanayakkara