Google Summer of Code 2008 Proposal
AJAX based Monitoring & Management Console for Apache ODE
Milinda Lakmal Pathirage
AJAX based Monitoring & Management Console for Apache ODE
Apache ODE (Orchestration Director Engine) is work-flow engine which executes business processes written following the WS-BPEL standard. It supports composition of web services by choreographing or orchestrating service interactions.
The users of this kind of work-flow engines need an easy way to deploy, select, inspect, and correct processes and related endpoints. So some kind of a graphical administration interface is a major requirement which will increase the usability as well as popularity of the work-flow engine we are concerning. Currently Apache ODE only support Web Services based management API, but it lacks support of graphical administration interface.
AJAX based Monitoring & Management Console for Apache ODE is a project aimed at implementing Ajax based web application that expose monitoring and management capabilities support by Apache ODE BPEL engine and integrate it with ODE's Axis2 deployment.
This will enable users to gain full advantage of the ODE, by making deploying BPEL deployment bundles easier, allowing them to monitor running process models, instances, engine status, and providing easy to use interface to suspend/resume and start/retire process instances and models.
1. Ajax based Monitoring and Management Console for Apache ODE which embed into ODE's Axis2 deployment.
2. Appropriate documentation to guarantee the continuation of the project.
3. Set of test cases which make sure the functionality of the web application.
4. Complete online tutorial which shows how to use the Monitoring & Management Console.
Apache ODE is a BPEL engine that executes business processes described in WS-BPEL standard by orchestrating existing Web Services. ODE talks to web services, sending and receiving messages, handling data manipulation and error recovery as described by the process definition. ODE supports both long and short living process executions to orchestrate all the services that are part of the application we are interested.
When it comes to production level deployments of ODE, users have to check which business processes are currently deployed, running and completed instances and their status, number of processes, number of active processes, number of messages sent/received and more. Also users must be provided with facilities to deploy/undeploy BPEL deployment bundles, start/retire process models and suspend/resume process instances.
Currently ODE has a complete management API which consists of Process Management and Instance Management interfaces and these two interfaces are available as web services on the Axis2-based distribution. Lack of easy to use graphical interface is a major disadvantage when it comes to production level deployments and decreases the value of features provided by ODE.
AJAX based Monitoring and Management Console will provide Axis2-based ODE users with easy to use web based management and monitoring console which has following features:
- Landing page which provides an overview of the engine that executes BPEL processes and list of system properties.
- Deployment section which provides facilities to deploy BPEL deployment bundles, undeploy deployed processes, monitor deployed processes, and inspect deployment logs.
- Processes section which list process models, process instances with some metrics and support filters to filter the processes list by using a wide range of properties and functions..
- Process section will also enable users to start/retire currently available process models and suspend/resume currently available process instances directly through the management and monitoring console interface.
- Process instance explorer (displays the process model either graphically or in XML and shows highlights the current navigation step, variable inspector)
- Display some metrics about number of instances, number of active instances, number of messages sent and received, and etc.
Also this management and monitoring console will include authentication and authorization support. Based on the authorization details and user levels functionality is provided by console will be changed. In the initial implementation only admin and normal user level are handled by authorization. Administrator will be able to enable/disable functionalities normal users. Handling authorization levels will be implemented as further improvements after finishing the initial stage of the project.
Usability is a major issue, when implementing Web based management and monitoring console. If the design is bad and user feels very uncomfortable with the way he interacts with the system, there is no value in it. So, in the first place I have to consider about the design of the graphical user interface and how we are going to provide different kind of functionalities in a better way that makes users life easier.
Also when considering AJAX based web application, we have to find the right balance between server side technologies and client side technologies which we are going to use.
Therefore as the first phase of the project, I plan to talk with ODE developers and design the user interface prototype first with small set of features. And after we finalize the design, I plan to discuss and figure out by doing some prototypes, what is best server side technology we are going to use for the final implementation.
With the starting of initial stage implementation, I plan to start creating requirements and specification document for Management and monitoring console which will help in future development and examine the project status.
And the second phase I'll implement the project by adhering to the design came up in the first phase and work with community to get more feedback about the web application.
In the final phase I'll fix the bugs reported during usage of the web application and prepare required documentation for the project.
April 15th to May 25th
Google has included nearly 1 1/2 months for community bonding in GSOC 2008. The main idea behind this is to give more time for students to become familiar with their mentoring organizations behavior, processes and get to know about the project. Even though I have good experience with Web Services related things and AJAX, I don't have enough experience with Apache ODE and WS-BPEL. This period will be used to getting familiar with WS-BPEL and Apache ODE, writing few samples using Apache ODE, and getting familiar with Management API.
Discussing the design of the Web UI, technologies going to use in the server side (lift web framework, Struts) and client side (jQuery, Protoype). Implementing simple prototype, get community feedback on design issues and implementation issues.
Writing requirements and specification document using gathered information.
May 25th to 10th June
Implement the landing page and part of the deployment details section and gather community feedback.
In this period of time I’ll mainly focused on getting feedback about design, usability and features required in landing page deployment section which are not implemented or have to improve.
Adding gathered information to requirements and specification document.
June 11th to July 6th
Design and Implement processes section and finish implementing deployment section of the management and monitoring console.
Gather and analyze community suggestions and comments about currently implemented features. Update requirements and specification document to reflect changed requirements and overall design of the web application.
July 7th to July 31st
Implementing process instance explorer and releasing milestone 1 of the management and monitoring console for Apache ODE.
This milestone 1 release will help me to gather feedback about missing requirements, usability issues and bugs in the web application.
August 1st to August 10th
Fix bugs discovered after Milestone 1 release and finishing documentation for the project. This documentation will ensure the continuation of the project.
August 10th to August 18th
Writing tutorial on Management and Monitoring console and fix bugs discovered during this period.
I am a final year student of the Computer Science and Engineering Department at University of Moratuwa, Sri Lanka. I have been working with Web Services related technologies for almost 1 ½ years. I have worked in Apache Axis2 WSDL2C (Java) project (Code Generation Tool for Apache Axis2/C) for about 6 months and I was accepted as an Apache committer in January 2007 for that contribution. I am actively working with Axis2/C and Rampart/C projects since September 2006.
I have implemented WS-Trust specification for Rampart/C and currently working on implementing PKCS12 Key Store support for Rampart/C, WS-Federation specification implementation for Rampart/C and Axis2/C. have implemented parts of the WS-Security Policy for Axis2/C Neethi module.
I am very interested in Open source development and Web Designing. I hope my past experience with Web Services, Axis2, Axis2/C, Rampart/C and Ajax based web application development will help me to make this project successful.
[htttp://www.cse.mrt.ac.lk Computer Science and Engineering Department, University of Moratuwa, Sri Lanka]