liferay european symposium 2011 - building complete workflow solutions
DESCRIPTION
This presentation was given at the Liferay European Symposium 2011 at Frankfurt am Main, Germany.Aperte Workflow is an Open Source BPM-class solution delivering capability to quickly and easily implements business process in the enterprise. Aperte Workflow combines in a unique way agile BPM engines with rich user interface and state-of-the art integration with external applications. This combination allows to create BPM/Workflow solutions in the spirit of SOA.TRANSCRIPT
Building complete workflow solutions with LiferayTomek LipskiChief of R&D, BlueSoft, Poland
@tomeklipski
Agenda
•BlueSoft – 60 second introduction
•Aperte Workflow – more than just BPM
•Choosing right tools
• The frontend – focus on usability and user experience
• The platform – where modularity is #1 goal
• The backend – BPM engine, persistence, integration
•How do these tools combine into a complete workflow solution
• The process
• Automated steps
• Human tasks
• Other mechanisms
•Seeing the benefits
•Demo and Q&A
BlueSoft
Who are we?•One of the largest independent software vendors in Poland
•Mostly Java-based solutions
•Largest enterprise integration team in Poland
•We support biggest companies in Poland: telecoms, financial, logistic, etc.
BlueSoft as a Liferay partner•We use Liferay as a platform for our solutions since 2006
•We became Liferay Service Partner in 2011
•In 2011, we have released some of our Liferay based products under GNU LGPL
Aperte Workflow
More than just BPM•Built on top of a compilation of Open Source frameworks and libraries
•Business processes built from reusable components
•Multiple BPM implementations supported
•Liferay 6.0 as a base
•Plugin mechanism backed by OSGi stack
•Enterprise integration ready
•Rich User Interface
Aperte Workflow is available under GNU Lesser GPL:
https://github.com/bluesoft-rnd/aperte-workflow-core
Choosing right tools
Prefer Open Source where possible• Access to source codes
• Stable and clean relashionship with tools’ vendors
• Open Source communities provide great aid and feedback
Use existing tools, try not to create new ones• Existing tools/frameworks/libraries are
constantly verified and tested by their users
• They provide features you might never think of
• It is easier and safer for potential users to learn and use a solution based on components they are already familiar with
… but when no good tool exists,
do not hesitate to develop one!
The frontend
Liferay - enhances user experience• Any application can be functionally
divided into portlets
• Introduce new portlets and features
• Out of the box features
Rich User Interface is provided by • Pluggable controls („widgets” and „actions”)
• No HTML/CSS/JavaScript hassle in most cases
• Great for plugins – management, development, etc.
• Security and control
• We can use JSR-223 scripting languages too (Scala, Clojure, Jython, JRuby, etc.)
The platform
OSGi service platform• Industry standard for modularity
• Ready to use and complete plugin system
• Classloader safety for plugins
Plugins deliver over 90% of the solution• Widgets and actions
• Automated steps
• Process definitions
• Internationalization (I18N)
• Custom mechanisms
• And many more...
The backend
Common BPM API• jBPM4, jBPM5, Activiti, Aris, …
• Pick your favorite BPM implementation
Mule ESB as an embedded OSGi plugin• Powerful and flexible MuleClient is available for other plugins
• Simple Mule services can be deployed as Aperte Workflow OSGi plugins
• Put your processes in the Cloud with Mule iON
Persistence is provided by Hibernate/JPA• Data model can be extended by plugins using JPA API
annotations
• Hibernate makes us slightly more RDBMS vendor indepenent
The process
Standard BPM API•The process flow is controlled by currently deployed BPM engine
•Every implementation of BPM interface fulfills simple API with basic operations
•Human tasks, process state, process history, etc. are all available to other compenents/plugins
•Process data available outside of BPM implementation
•Aperte Workflow grants the reusability of components applied in process – on every level possible
Automated steps
Modular and reusable•Automated steps are provided and invoked as OSGi plugins
•Each OSGi plugin has seperate classloader, which resolves most of the dependency conflicts
•The output from automated step can be used to guide process execution
Sample automated steps:
• Invoke Drools rule• Generate a document from
process data • Invoke Web Service using Axis
• Use MuleClient to invoke Web Service
• Use MuleClient to invoke internal Mule service operating on JMS
Human tasks
A GUI that meets business requirements•Aperte Workflow provides dedicated Liferay portlets for human tasks management
•User interface is composed from widgets and action buttons provided as plugins
•Widgets can perform different roles:
• Arrange other widgets
• Provide generic operations on process data
• Integrate with external systems (e.g. LDAP or ECM)
•Action buttons allow the user to make a decision in a process
•Process decision can require additional UI logic
Sample widgets & buttons
CMIS WIDGET
Access an ECM folder using CMIS(Alfresco, Nuxeo, Sharepoint, ...)
PROCESS DATA WIDGET
Universal forms, capable of displaying and editing process instance’s attributes.
USERDATA WIDGET
Select a user for a dedicated role from differnt source (e.g. LDAP or Liferay)
SUPPLIER WIDGET
Custom widget dedicated for a procurement process in a large company
COMMENTS ACTION BUTTONA button that requires an explanation of user’s decision.User provided input is stored as a comment.
(...)
PROCESS HISTORY WIDGET
Widget displaying process history entries
TABSHEET WIDGET
Widget arranging its subwidgets in tabs.
Other mechanisms
Build any features you require•The Aperte Workflow manages plugins and connects them to its API
•The plugins can be used to provide process components
•Other mechanisms can be introduced, for example:
EMAIL CAPTURE
Start process instance or propagate its execution when certain email is received.
PROCESS STATE NOTIFICATION
Notify task owner or any other recipient that a certain process instance has entered designated process step.
REST API
Provide access to Aperte Workflow’s API using REST.
(...)
Seeing the benefits
More than BPM•No need to construct yet another application around your BPM
•Use a set of pre-built features and plugins
•Build only processes and plugins you need
Construct processes from reusable components•Simple, process-agnostic plugins
•Provide any feature you require
•Maintain control over your implementedprocesses
Well-known, open technologies•Stable foundation for any solution
•Existing user base and communities
•It is easy to learn and use Aperte Workflow
Demo
Questions & Answers
http://www.bluesoft.net.pl/aperte-workflow
https://demo.aperteworkflow.org/
https://github.com/bluesoft-rnd/aperte-workflow-core
http://www.bluesoft.net.pl
More information: