Orchestration Designer and Runtime
The Orchestration Designer and Runtime component is responsible for allowing users to model multiple manufacturing workflows to orchestrate the various assets available within a collaborative framework.
To support the objectives of ZDMP a tool needs to be created and then used that allows the orchestration of various ZDMP assets (components, sub-components or zApps) and other services.
The Orchestration Designer is a visual online reactive canvas allowing a business process designer to pull in existing models from a library representing the virtualised manufacturing assets. Each asset may support additional properties that can be defined. The defined workflow can consist of sub workflows and be saved and versioned within the storage as (eg BPMN 2.0) model definitions.
The Orchestration Runtime is based on open source BPMN engine Camunda and provides a “super layer” on top of it to manage process instances, user tasks, service to service communication, and the NodeJS Code Generator upgraded from the vf-OS project.
|Latest Release (v1.0.0)||N/A Download source and use docker compose.|
|X Open API Spec||Link|
|Generation date of this content||01 April 2021|
The following images are illustrative screen shots of the component.
|Company Name||ZDMP Acronym||Website||Logo|
|Information Catalyst for Enterprise||ICE||www.informationcatalyst.com|
|IPR Link||Process Designer|
|Price||[For determination at end of project]|
|Licence||[For determination at end of project]|
|Volume license||[For determination at end of project]|
The following diagram shows the position of this component in the ZDMP architecture.
Figure 1: Position of Component in ZDMP Architecture
Create standard BPMN diagrams to describe business process using a web editor
Connect internal ZDMP services together to support business process operations, along with other services published in ZDMP Marketplace
Create tasks that must be done by humans, describing their inputs and outputs
Start/Stop/Troubleshoot business process instances
Provide inputs for awaiting tasks
The Orchestration Designer and Runtime offers the following features:
BPMN browser-based designer: Full BPMN designer that provides the user all tools needed to design a business process:
User task integrated into the user system.
Exclusive, inclusive, parallel gateways with condition expressions
Service tasks with inputs/outputs definition mapping
Zoom, align, distribute elements.
Real time error validation
Export to BPMN format
Process explorer with diagram preview
NodeJS Code Generator: Used to convert the BPMN diagrams to fully performant NodeJS code. This gives superior performance for service-to-service communication processes
Integrated with Camunda Engine: Powered by Camunda, the open source BPMN Engine, tweaked to get the most out of business process execution
Keycloak: The Orchestration Runtime is integrated with the Portal and the Secure Authentication and Authorisation components
REST API: This facilitates access to the Camunda Engine. It provides methods to:
Suspend / resume / delete processes
Start / suspend / resume / delete individual processes instances
Execute the completion of user tasks
Retrieve a wide variety of information for processes, process instances and user tasks
Process Control Dashboard: This is a UI for the management of business processes. The UI displays a list of active processes that are owned by the current user. The user can suspend / resume / delete processes, as well as start / suspend / resume / delete individual process instances. There is a facility to view the current status of a process instance via a BPMN view interface
Task Dashboard: This is a UI for the management of user tasks and supports human input as part of the business process. The UI displays a list of active tasks assigned to the current user. The user can execute the task by following the instructions (optional) and entering the information required in the task form. When the task has been completed, the process engine automatically resumes its operation with the information entered by the user
Integrated with ICE Service Repository: User can drag and drop a service from the repository and include its functionality inside the business diagram
Support for send/receive tasks: This kind of service tasks work in pairs and allow a fire-and-listen message flow scenario
User tasks form editor: This is a web-based user task forms designer, so users can customize the appearance of forms at runtime, adding/removing fields and choosing validations.
The Orchestration Designer and Runtime has the following system requirements:
Associated ZDMP services
The Orchestration Designer and Runtime can be installed using the following steps:
Download the latest source code from ZDMP repository .
Under command line, while being in the same folder than the docker-compose.yml file, run docker-compose up.
Open browser and point to http://localhost:8079 .
Use UNfirstname.lastname@example.org PW=test, when asked for credentials.
How to use
- The first-time the user opens the application; the welcome screen lets the user choose whether to create a new process or open an existing one. It is also possible to import a .BPMN file
Figure 2 Welcome Screen
- > The process is created / opened, and the main window opens, with the palette at the left, the canvas at the centre, and the properties panel at the right
Figure 3: Main screen
Design a process
When selecting the start element (the empty circle), the user can then select from the popup window the type of element to attach, whether it is a task (square), an event (circle) or a gateway (diamond)
It is also possible to attach elements by dragging and dropping from the palette
After selecting an element, it is possible to move it to another place by simply dragging it
The zoom can be increased/decreased by pressing Ctrl while moving the mouse wheel
The auto save feature takes care of persisting the changes while the user creates the diagram
Figure 4: Designing a process
- Automatic validation
Whilst the user designs a process, there might appear red markers around the elements, indicating that there are missing required parameters
The elements must be properly configured, otherwise the list of errors (at the bottom) appears in red, showing the number of errors
It is also possible to open the error list, by clicking on it, so it provides a better description of each error
Once the problem is solved, the error automatically disappears
Figure 5: List of errors at the bottom
- Connecting services from the marketplace
When adding a service task, the Marketplace Browser automatically opens, letting the user to choose between any available service
In the Marketplace Browser, each service describes its behaviour, so the user can choose the one that adjust to the user’s needs
After selecting the service, it is added to the diagram, and validation errors appear indicating any required input or parameter to configure the service
Figure 6: Marketplace browser
- Code Generator / XML View
At any time, pressing the Code tab, the user can see the auto generated NodeJS code that represents the process flow
User tasks and long timers are skipped, since these elements would stop the calling process when running the generated code
The XML view shows the full XML structure of the process
Figure 7: Code generated
- User tasks management
When adding a service task, the properties panel shows the additional properties supported by this type of element
Among others, the user can select the assignee of the task, so when in runtime, the task is automatically assigned to that user, when the process instance reaches that element
The user can also select an existing form, previously created using the Forms Editor
The User Tasks main panel can be used in runtime to claim and complete tasks
Figure 8: Properties panel for user task
- Publishing a process for Runtime
Once the process has been designed, the publish action makes it available for the process engine
Only processes without errors (totally validated) can be published
After they have been published, the Process Control Panel can be used to manage process instances
Figure 9: Publish action
- Process Control Panel
Used for managing the start, resume, and stop process instances
All processes published from the Process Designer appear here
User can get metrics about each process, number of instances and possible problem
Let us assume the following process is created in the Process Designer:
Figure 10: Simple Product Order Process
When the User published the process, it gets deployed to the Camunda Engine, and the details are displayed in the Control Panel, as shown below. At this point there are no running instances of the process.
Figure 11: Process published to Camunda Engine
The User has a number of actions available for each deployed process:
Figure 12: Actions for deployed Process
Deployed Process Actions:
Start Process Instance: This starts an instance of the process in the Camunda Engine
View Process Designer: This navigates to the Process Designer and automatically loads the BPMN process
Manage Process Instances: This navigates to the Process Instance List and is only available if at least one instance has been started/deleted/completed
Suspend Process: This marks the process as suspended and is only available if the process is currently active. It prevents any new instances being started
Resume Process: This marks the process as active and is only available if the process is currently suspended
Delete Process: This deletes the process in the Camunda Engine and is only available if no instances are currently running
Redeploy Process: This redeploys the process in the Camunda Engine and is only available if no instances are currently running
When the User starts an instance, then the Process List table gets updated and the User can navigate to view the instance details.
Figure 13: Actions for started Instance
When the User selects the ‘Manage Process Instances’ action, user is navigated to the Process Instance List. This displays status information on the active/deleted/completed instances of this process.
Figure 14: Process Instance List
The User has a number of actions available for each instance:
Figure 15: Process Instance Actions
Process Instance Actions:
Start Process Instance: This starts an instance of the process in the Camunda Engine
View Process Instance: This displays the current status of the process instance
View Process Instance Activity: This displays the activity history of the instance in chronological order
View Process Instance Variables: This displays the variables and their values currently available for this instance
Suspend Process Instance: This marks the process instance as suspended and is only available if the process instance is currently active
Resume Process Instance: This marks the process instance as active and is only available if the process instance is currently suspended
Delete Process Instance: This deletes the process instance and terminates its execution in the Camunda Engine
When the User selects the ‘View Process Instance’ action, user is navigated to the following page. It displays the process in a BPMN format and shows the current status of the process instance.
Figure 16: View Process Instance Status
Information is available for each of the User Tasks by clicking on the ‘User Task’ element.
Figure 17: View User Task information
Used for managing the tasks assigned to the specific User
All tasks assigned the User appear here, whether they are active/deleted/completed
User can execute active tasks, as well as view completed tasks and deleted tasks (tasks that were active when the process instance was deleted)
Figure 18: List of Tasks assigned to the current User
When the user selects the ‘Start Task’ action user is navigated to the Task Form page, where the details of the task are displayed & where the User enters information required to complete the task.
Figure 19: Task Form