Skip to main content

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




Comments

Popular posts from this blog

Convert an InputStream to XML

For that we can use DocumentBuilder class in java. By using the method parse(InputStream) ; A new DOM Document object will return. InputStream input; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder parser = factory.newDocumentBuilder(); Document dc= parser.parse(input); In the above code segment,by using the created Document object,the corresponding XML file for the inputStream can be accessed. References: http://www.w3schools.com/dom/dom_intro.asp http:// download.oracle.com/javase/1.4.2/docs/api/javax/xml/parsers/DocumentBuilder.html

CORS support from WSO2 API Manager 2.0.0

Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources  on a web page to be requested from another domain outside the domain from which the first restricted resource was served. For example, an HTML page of a web application served from http://domain-a.com makes an <img src >  request for a different domain as 'domain-b.com' to get an image via an API request.  For security reasons, browsers restrict cross-origin HTTP requests initiated from within scripts as in above example and only allows to make HTTP requests to its own domain. To avoid this limitation modern browsers have been used CORS standard to allow cross domain requests. Modern browsers use CORS in an API container - such as  XMLHttpRequest  or Fetch - to mitigate risks of cross-origin HTTP requests.Thing to  note is it's not only sufficient that the browsers handle client side of cross-origin sharing,but also the servers from which these resources getting need to handl

[WSO2 AM] APIStore User Signup as an approval process

In previous versions of WSO2 APIManager before 1.6.0, it was allowed any user who's accessible the running APIStore come and register to the app.But there will be requirement like,without allowing any user to signup by him/her self alone,first get an approve by a privileged user and then allow to complete app registration.Same requirement can be apply to application creation and subscription creation as well.To fulfill that,we have introduced workflow extension support for  WSO2 APIManager  and you can find the introductory post on this feature from my previous blog post on " workflow-extentions-with-wso2-am-160 " . From this blog-post,I'll explain how to achieve simple workflow integration with default shipped resources with  WSO2 APIManager 1.6.0 and WSO2 Business Process Server 3.1.0 with targeting "user-signup" process. Steps First download the WSO2 APIManager 1.6.0[AM] binary pack from product download page . Extract it and navigate to