After playing with flowable for couple week I realized that it is possible to create full production
quality applications without coding anything for workflow in JAVA. It is possible to use just EL.
What is needed for flowable to achieve this is to have number of service beans in the
spring context. They would not be application specific.
The rest in workflow can be done by using just EL.
There are few things need to be added as service beans accessible from EL.
- One bean is endpoint builder for REST endpoints
- Another bean is like a library bean for EL
to call log function from EL expression, to encrypt/decrypt from EL,
to call multiple functions from one EL expression, to create different collections from EL, etc
- A service bean to call REST endpoint (created by 1.) from EL expression
- JSON bean to do JSON parse/encode functions from EL
additional (optional) service bean for handling JMS endpoints, and one more for sending JMS messages.
And workflow engine have one JMS queue for receiving JSON commands and replying to ReplyTo Queue specified by caller.
(Same set of commands as in REST)
After flowable has these features,
One can install flowable as a single product, then give it to workflow developers who would use modeler, task apps.
flowable by itself would be installed once, started once. And developers would just use it via web to write
they applications using flowable-modeler and EL expressions using those beans I mentioned before.
What do you this of this approach?