060081B - De Alwis, K.D.B.C.
060286H - Malinga, A.S.
060372T - Pradeeban, K.
060527B - Weerasiri, W.A.D.D.
Dr. Srinath Perera
Dr. Sanjiva Weerawarana
Ms. Vishaka Nanayakkara
The evolvement of the computing has been a rapid action for the past few decades. During the yester decades, computers were mainly used for calculations and data entry. But currently it has really become difficult to find an area, where computing is not used. The invention and the wide spread usage of the Internet has made it possible for the users from different locations to interact and work together, increasing the usability of the computers in social networking, marketing, scientific researches, and education. As a network of networks, the Internet has been providing many services to the users over the world. Different platforms and different computers are directly and indirectly communicating among each other through the networks over the web.
Web services have become an important backbone of the computer technology. World Wide Web Consortium (W3C) defines Web Service as a software system designed to support interoperable machine-to-machine interaction over a network. Various software applications running on different platforms can interact using web services, and the reusability of the services and components of an infrastructure is increased using by using web services. Web services provide loose coupling, enhancing the reusability of the applications. Web services are used by almost all the computer users, directly or indirectly. Scientists and engineers extensively use the web services as a support for their researches.
The sequence of real world operations are generally depicted as a workflow as an abstraction of the real scenario, to facilitate further assessment or process of the given scenario. Workflows enable to capture and develop human to machine interaction. There are many tools available to compose, execute, and monitor workflows. XBaya is such a graphical workflow composition tool, which enables running pre-composed workflows or allows users composing and running their own workflows. XBaya supports various kinds of Web services registries, and it allows the user to select a web service as a component to compose a workflow. Local file system, Resource Catalogs, and Web pages, are the currently supported types of web service registries. The composed workflows can be exported to various workflow languages.
Mashup refers to a web page or application that combines data or functionality from two or more external sources to create a new service, thus providing a service which was not provided by the source services. "Mooshabaya" will export the composed workflows into Mashups, by modifying the existing XBaya workflow composer.
"Mooshabaya" targets to generate Mashups to describe the composed workflows, by modifying Xbaya Workflow Composer. 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 WSO2 Registry, which governs SOA deployments, and the composed workflows are deployed into a Mashup Server as mashups.
Workflow is a representation of a sequence of typically repeatable actions to achieve a set of desired outputs given a set of required inputs. The workflow concept was first used in describing manufacturing processes to streamline them in early 80's. After this workflow concept has made inroads to number of different fields under the names such as scientific workflows, flow control, business processes etc. With the advent of web services as a method of distributed computing and with its recent success as a feasible option to most of the business and scientific data processing requirements an interesting use case was recognized in the form of creating workflows to automate real world processes utilizing web services as data processing units. Web services experienced huge growth in recent past due to its high interoperability via standardization, enabling of value added services such as quality of service, security, etc. , proliferation of high quality infrastructure level web services middleware in the market and usage of time tested transport infrastructures such as HTTP.
With the current trend of automating business and scientific processes and surge in popularity of web services as an integral part of cooperate and scientific information infrastructure it is paramount that there are developer tools which ease the modeling , development and deployment of workflows aka. processes.
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 meta data 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.
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.
Web service Registry
In order to find services required a web service client needs to consult a special web service called service registry which then would provide the client with necessary details to talk with the web service. These details may include the web service URL, service WSDL etc. Xbaya will need to consult such a service registry in order to discover and obtain binding details of the involved services . We intend to enable XBaya with the ability of communicating with WSO2 registry which is an industry standard open source web service registry solution.
Mashup Servers provide the runtime where the exported mashups is being deployed. WSO2 mashup server is one of the prominent open source mashup servers in the field. We intend to utilize it to deploy the workflows exported as mashups by Mooshabaya.
Tuple spaces provide a powerful model for managing a distributed object system. The concept of a persistent shared memory, or so called "space" greatly contributes towards loose coupling of processes while providing the ability to synchronize and communicate efficiently in a distributed system. A tuple space is an implementation of the associative memory paradigm for parallel and distributed computing, which provides a repository of tuples that can be accessed concurrently.
Mora Middleware for Scalable Computing (M2SC)
Mooshabaya stores the messages in variables, which are the default storage element of Mashups. Optionally, it can also store them in tuples. In that scenario, the project can work collaboratively with the project bissa "Scalable and Hierarchical tuple space" to form M2SC "Mora Middleware for Scalable Computing", where the use case is a common use case shared by both Mooshabaya and Bissa. When considered collectively M2SC will be able to take decisions according to the changes in data in real time by communicating through the scalable touple spaces implementation without going back to the main server. Scalable and hierarchical tuple space infrastructure of bissa team will be used as the inter process communication medium for the Mooshabaya generated tuples, in this scenario.
Xbaya is a graphical tool which is used in composing workflows to get a set of web services to perform a useful task. Xbaya needs some engine to run the workflow it created. Currently it converts workflow data into BPEL and run it on Apache ODE engine. What we intend to do here is to introduce another engine to execute the workflow. Further xbaya needs to find and extract web service data to graw the graphical map of the workflow to be created. For that currently it uses a registry implementation called xregistry, from Indiana University itself. Again we intend to use a different registry implementation here as well.
So our main objective is to modify/rewrite xbaya, in order to generate a mashup consisting the workflow data that, xbaya created, and then run the mashup code on a mashup engine. Here we intend to use the WSO2 mashup server, which is a powerful and freely available mashup servers in the current web service domain. For the registry implementation we would implement the WSO2 registry for xbaya to work with. As new additions we intend to extend the xbaya's reach to more input sources such as RSS feeds, data services, etc.
In this project, we have to deal with two worlds, which are sometimes agree to each other and sometimes having completely opposite directives. These two are bpel and mashup. While in the conversion there are lots of advantages and drawbacks of both when we try to contract. So we would have to get the best of mashup to let the xbaya users experience a complete new and powerful set of features, etc with the mashups. Here we would experiment and explore the similarities between the web 2.0 Mashup technologies and the existing workflow technologies. This involves considerable amount of experiments and research, trying to bring the knowledge from workflow domain to Mashup domain.
Functionality of the final outcome in the project can be summarized as follows,,
* generate, execute and monitor the mashups deployed on WSO2 Mashup server
* intended on to combining and reusing the Web services, data services, RSS etc. which may be existing or new
* integrate WSO2 Registry in XBaya enables to browse and integrate services, data services etc.
* embed logic in to mashups to generate notifications about the execution progress
As a final value addition to the project we intend to merge with the project bissa, whom would be implementing a scalable tuple space. Thus our project will readily have a practical application to prove its ability and flexibility of to have multiple uses.
Here is the methodology that we are using in order to address the project objectives.
XBaya is a graphical client program for workflow composition, monitoring, and more. It provides an easy-to-use GUI for users to compose workflows from Web Services described in WSDL. The composed workflow can be exported to various workflow languages. Currently, BPEL, which is the most promising workflow language for the Web Services composition, and Jython scripts, which is convenient for workflows.
The project Mooshabaya is targetted on using on top of XBaya to generate, execute and monitor the mashups deployed on WSO2 Mashup server. Mooshabaya will use utilize some XBaya core functionalities of Xbaya to model the workflow into the mashup. And then the generated Mashup will be hosted under WSO2 Mashup server which is an open source Mashup server.
This project is intended on to combining and reusing the Web services, data services, RSS etc. which may be existing or new. So XBaya composer should be able to browse and add those kinds of feeds while composing the workflow.
Also WSO2 Registry integration to XBaya will enables to browse and integrate services, data services etc. which are deployed in WSO2 registry back-end while work-flow composition. This includes the functionalities such as authentication and authorization via XBaya to the WSO2 Registry, accessing via ATOM publishing protocol(APP), etc.
Whenever an event occurs in the workflow, a notification will be generated and published. When monitoring a workflow using XBaya, it will be subscribed to the published notifications of the Workflow. Hence, using the Pub/Sub model, the notifications generated about the execution progress by this component will be used by XBaya to monitor the workflow.
Additionally as this component may support for data manipulation through a tuple space implementation, This includes the features like enabling subscribing to a tuple space, receiving data from a tuple space, publishing data on a tuple space, unsubscribing from a tuple space etc. in the generated Mashup.
The project Mooshabaya enables to compose Mashups , execute them and monitor them via XBaya which is an open source graphical workflow composer, backed by University of Indiyana. Mooshabaya use the XBaya core functionalities to generate the mashup.
Generated mashups are deployed in the WSO2 Mashup Server back-end. XBaya communicate with WSO2 Mashup server back-end while executing and monitoring the mashups.
This project facilitates to compose Mashups graphically with Web services, Data services and input feeds like RSS.
WSO2 Registry integration to XBaya will enable to integrate the services which are published in WSO2 Registry. So while workflow composing via XBaya, it facilitates to browse, drag and drop the services from WSO2 Registry to the workflow.
Additionally this project facilitates to data manipulation via tuple space which is implemented by the project called "Bissa".
* Thomas Zangerl, "Web 2.0 mashups vs. Grid-workflows", Seminar “Grid und Web 2.0“, Winter term 2007/08
* WSO2 Mashup Server: http://wso2.org/projects/mashup
* WSO2 Registry: http://wso2.org/projects/governance-registry
* XBaya Workflow Composer: http://www.extreme.indiana.edu/xgws/xbaya/index.html