In this guide we will discuss about Services of jBPM. jBPM API provides a set of very-high level services. These services help to embed the Business Process Management capabilities into our application. These services delivered a complete set of modules. These modules are as follows:
jbpm-services-api
It has only API classes and interfaces.
jbpm-kie-services
It has the core implementation of the services which do not have any framework-specific code.
CDI
CDI specific code is on top of Jbpm-kie-services
EJB-API
It provides remote capabilities to the interfaces.
EJB-IMPL
EJB specific code is on top of Jbpm-kie-services
EJB-timer
It supports the time-based operation. eg. Timer events, deadlines etc.
Bpm-services-ejb-client
Interact with services over remote ejb invocation-currently available for JBoss only.
Some important services are:
- Deployment services
- Definition services
- Process services
- Runtime Data services
- User Task services
Deployment Services
Its main responsibility is to deploy or undeploy units. It gives the information of available deployment units and their RuntimeManager instances.
Syntax to create, deploy, retrieve and get runtime manager
// Create Deployment Unit DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION); // Deploy deploymentService.deploy(deploymentUnit); // Retrieve Deployed Unit DeployedUnit deployed = deploymentService.getDeployedUnit(deploymentUnit.getIdentifier()); // Get Runtime Manager RuntimeManager manager = deployed.getRuntimeManager();
Definition Service
It is used to scan process definition that parses the process and extracts important information from it. This information provides the input to the system to inform users about what is expected. Definition Service provides information about:
- Process Definition
- Process Variable
- Service Task
- User Task
- Input and Output Information
Process Services
Process Services focused on runtime operations so use it only when there is a need to alter process instances. It is used to give access to the execution environment that allows:
- Start new process instances
- Work with existing process
Runtime Data Services
This service refers to the runtime information of Process Instances. It is used as the main source of information.
- Start Process Instances
- Execute Node Instances
User Task Services
This service is used to manage the individual user task from start to end. User Task Service allows:
- Modify Selected Properties
- Access to Task Variables
- Access to Task Attachments
- Access to Task Comments
Next Topic : Click Here