Rule Service has three core components:
- Rule WEBUI for design/test simple rule/ process rule
- Rule Engine for executing simple rule
- Process Engine for executing Process rule
Rule engine delegate invoking of rule to OpenL Tablets. OpenL Tablets let user define rule via xls, so it is very friendly for customers without rich technical background. Open Tablets has four components such as:
- Rule Runtime
- Web Studio
- Web Service
- Rule Repository
Currently, we just used Rule Runtime of OpenL Tablets, Other Components will be implemented by eBaoCloud.
We will expose the Rule Execution via restful endpoint.
Rule Engine only handles the simple rule.
Process engine aims to combine multiple simple rules. When a process rule start, some simple rule nodes are executed automatically. Process engine evaluate the branch and choose next simple rule node to run. Finally, one data in process context will be used as process rule result.
Currently, we used apache activity as process engine. Process rule is converted to process definition and deploy to process engine.
The designer aims to get a rule definition.
For simple rule, we can use rule designer for defining rule conditions/result/data or accept xls which edited offline. We recommend user to edit simple rule via MS-Office in local machine according to the Openl Tablets guide and then upload the xls via WEBUI.
For process rule, user should use rule Designer with drag and drop. we use draw2d to implement rule editor.