Monday, December 30, 2013

Workflow Extentions with WSO2 AM 1.6.0

This is a major requirement raised by many WSO2 API Manager users many times and finally it was introduced with latest WSO2 APIManager 1.6.0 release.It's the ability of plugin workflow extensions in to APIManager major functionalities. As the first cut,we have introduced workflow extension support for below three major functionalities;
  • User Signup
  • API Subscription 
  • Application Creation
By default,APIM binary pack is shipped with a java workflow executor and a web service executor to trigger workflow processes on above three functions and that executor can be defined and configurable via api-manager.xml file.If you wish to add your own workflow executor on each above three processes,that also possible.What you have to do is write your own custom executor and integrate it to WSO2 APIM pack via a configuration change in api-manager.xml file.For more information,please refer 
http://docs.wso2.org/display/AM160/Adding+Workflow+Extensions.

Addition to providing ability to plug workflow executors to above three functions,with this release we are shifting three BPELs and three human tasks to use with default  web-service executors mentioned above.To try that,download WSO2 AM 1.6.0 and navigate to {AM_Home}/business-processes and refer readme.txt of it.To deploy these provided BPELs and human tasks you need to download WSO2 BPS [which provides a complete web-based graphical console to deploy, manage and view business processes].Generally the flow of usage of each of these BPEL is that;
  1. A user will trigger a one of above functional request [For eg: a user tries to signup to APIStore ] from APStore UI and that function request will be result with pending status until that request complete its workflow process.

  2. It needed to configure api-manager.xml with the default web-service workflow executor   for each above functions and it needed to give the ws endpoints as the deployed bpel     endpoints in WSO2 BPS.Such that,once a workflow request execute from APIStore UI as in 1),then the configured ws workflow executor will be executed  and will trigger a business         process instance in WSO2 BPS side based on deploed BPELs.
    Deployed BPELs in WSO2 BPS


    Created business process instances in WSO2 BPS
  3. From that business process instance, a human task also will be created and to continue this process further,a permitted human interaction require to approve/reject the triggered task request.
  4. Once the permitted human being,approve/reject the triggered workflow request [for eg: a user signup request],then that human response will be pass to APIM workflow callback endpoint and the APIM database tables will be updated accordingly based on workflow   response.
You can get better idea,on usage of above BPELs,if you follow the above mentioned readme.txt inside APIM binary pack.

For above 3rd  step in the BPEL flow,we have introduced a new web-application UI called 'workflow-admin' [https://ip:port/wotkflow-admin] in APIM binary pack.From this web application,it will basically list down the pending tasks,which needed to get approved/rejected by permitted users groups[admin users].A permitted user can login to this web application and view the pending tasks and assign to him/her and proceed with approving/rejecting that request and complete that human interaction needed task.


NOTE :By default workflow-admin web application allows only users with admin role to be login to that web application,as the default shifting three human tasks in APIM has written as allowing the users having 'admin' roles to be approve/reject the created human tasks.

Workflow-admin webapp UI




No comments:

Post a Comment