Business Process Management (BPM) best practices often suggests that the BPM solution not be the system of record. In particular, the business data required for the Digital Business Solution should exist in other data stores outside of the persistence store being used by the BPM engine itself. Business data that is used and or created during the execution of a business process should exist and be maintained in one or more external data stores (e.g. RDBMS, NoSQL, etc...). Therefore to simplify and accelerate the development of enterprise scale Digital Business Solutions, Alfresco Process Services (Alfresco’s Enterprise Edition of the Activiti Community Edition (Open Source)) provides an important and valuable component called "Data Models" which is the focus of this blog.
Please note that I’ll be using the acronym APS throughout this post to refer to Alfresco Process Services.
Business Data Integration in BPM solutions
If you haven’t read this blog post (a bit old, but still very relevant) Storing data in automated business processes :: AirQuill & More on Orchestration Data :: AirQuill already, you must read it first (especially the first blog) before you go into my next section. This is a great post explaining why storing data outside of process engine tables is so important!
Integration options available in APS
Good news is, APS provides a variety of options for customers to do the business data integration. Listing down below all the data integration options that are available when implementing business processes using Activiti engine:
- BPMN Service Task Component
- Custom Java Logic wired into the process using listeners such as Execution Listener, Event Listener, Task Listener etc
- Execute Custom SQL
- REST Task Component (APS/Enterprise Only Feature)
- Data Model Component (APS/Enterprise Only Feature)
Since the purpose of this blog is to go through the Data Model component, I’ll only be focussing on the 5th item in the above list. Please checkout Activiti User Guide , Activiti Custom SQL User Guide, Alfresco Documentation | Alfresco Documentation and Alfresco Process Services Blogs for more about the other 4 options.
Advantages of Data Model over other alternatives
Given below are some of the pain points we hear from business process modelers, analysts, developers, etc quite often.
- Systems in my organization are so difficult to integrate into our processes.
- Data modeling capabilities in our existing BPM platform is highly technical and have got a steep learning curve.
- As an analyst/modeler, I would love to have some features in the product that allow me to model my SoR (System of Records) data model in the process platform.
- Our organization has very mature and well defined REST APIs around all our IT systems. However as a business analyst/process modeler, mapping REST API requests and responses are too technical a job for me!
- We have well defined and re-usable web services based on standards like SOAP, POX etc in our organization. We wish our BPM system has inbuilt capabilities that allow us to write re-usable and business friendly components over these web services.
- We have been using Activiti community version for a long time. We have a lot of reusable Java code that allow us to integrate our processes with our IT systems. In order to understand those external system integration we often have to dig into the Java source code associated with the process. When moving from community to enterprise, it would be really nice if we can visually represent those data structures in the BPMN modeler and have direct integration of those components to other process components such as forms, rules etc.
- As a business person, when I review a BPMN diagram I see a lot of service tasks with hidden Java logic in it. Every time when I do this, I have to go to a developer to understand the java components and to find out the input and output fields of those components. This makes me look stupid!
- We are an organization with a lot of old school two tier applications (client->database) with no APIs. We need our business processes to talk directly to our application databases!
- We use Alfresco Content Services as our System of Records for documents. What are the integration capabilities of APS with Alfresco Content Services.
Data Model is the component that can address all the above mentioned concerns/pain points in an elegant, simple and user friendly fashion without the complexities of similar components that is normally found in other large BPM vendor products.
Enough of overview and description and let’s see it in action.
Data Model Demo
The crux of the blog is in the following video which I recorded to demonstrate the various capabilities of the Data Model component
Let me summarize the post highlighting the key features of Data Models:
- Data Models allow you to separate the data integration from business process modeling, In other words, process modeling is made easy with Data Models where it allows you to hide the implementation complexity from process models.
- Data Models are integrated with all other modeling components such as forms, decision tables etc available in APS thereby reducing the time to market of your business process solutions.
- Data Models allow you build re-usable domain entity objects/components which in-turn can be reused in a uniform way across multiple processes.
- Data Model is a business friendly integration alternative available in APS.
If you are new to the APS, this post will help you get started with it - Installing Alfresco Process Services Trial using an Installer
If you are new to the Data Model component, I highly recommend you to first read a couple of other posts which are given below, before trying out the demo I used in this post.
- Data Models | Alfresco Documentation
- Custom Data Models | Alfresco Documentation
- Developer Series - Custom Data Models
The complete source code associated with the above video presentation along with a detailed readme file is available at https://github.com/cijujoseph/activiti-examples/tree/master/activiti-custom-data-model-sample
I'll be creating more data model examples in the coming months! Stay tuned...