What are the differences between long-running process and micro-flows? when do you use each of them?
We use long running process only in the following conditions:
- If your process requires more than one transaction.
- If your process will need to stop at any point and wait for external input, either in the form of an event or a human task.
- If you have elements in your process that you would like to run in parallel.
We use short running process in the following conditions:
- A Microflow is a process that is contained within a single transaction.
- Because it runs automatically from start to finish, it is ideal for situations where the user is expecting an immediate response.
- Example of a Microflow would be a database query.
- Microflows cannot be used for processes involving human tasks.
- If you have a short series of steps to model and want them executed very quickly in the runtime environment, use a Microflows.
Performance: short running processes offer great performance; so, where ever feasible one should use short running processes.
What is Human Task?
A human task is a unit of work that involves a person. Examples would be an review process, in which a manager must provide final approval, or when a follow-up telephone call with a client is required.
The definition of a human task includes the following information:
- who can perform the task
- what needs to be done
- what happens when the task takes too long
- how the task will be done
What are different implementation mechanisms or subcategories of Human Tasks?
Stand-alone: A stand-alone task exists independently of a process, and implements human interaction as a service that can be wired to any other component.
There are two instances in particular when you should model your human task as a stand-alone task:
- The task provides just another service.
- You intend to replace the stand-alone task at a later stage and do not want to change the component to which it is wired.
Inline: An inline human task is a piece of a larger BPEL process that must be performed by a person.
You should model your process with an inline task when:
You need information from the process logic to run the human task. Although information from the process can also be modeled into the input for a human task, the main reason to use an inline human task is because they have direct access to the process context without the need to explicitly model the required information into the input message.
You want to define authorization rights on specific activities.
What are different types of Human Tasks?
To-do task - a service schedules a piece of work for a person to perform.
Invocation task - a person uses a service.
Collaboration task - one person assigns work to another person.
Administration task - a person is granted administrative powers over an activity or process.
How do you handle faults or exceptions in BPEL process?
Here are some of your options for dealing with faults that are available in the BPEL process editor:
- Use a terminate activity to stop the execution of a process or an activity so someone can step in and make necessary repairs.
- Use a reply activity with a fault name associated with it so it will respond with a fault.
- Use a throw activity to signal an internal fault.
- Use a fault handler to catch a fault and attempt to deal with it.
- Use compensation to roll back or undo a process or an activity that has failed after committal.
What is Compensation?
Compensation is the means by which operations in a process that have successfully completed can be undone to return the system to a consistent state if an error occurs.
You can compensate a BPEL process in two ways:
- Save the properties of the individual parts of a process so that they can be restored if the process cannot be committed and must be rolled back (compensation pairs).
- Use a compensation handler to return a failed process to a balanced state after a fault is thrown when the parent activity has already been committed.
What are Escalations?
If a task is overdue it needs to be escalated. Use escalation properties to define when a task must be completed and the actions to take if deadlines are missed. There are three possible states for which an escalation can be configured:
Ready- When a human task is in a ready state, it is waiting to be claimed. You can configure an escalation to trigger if it sits unclaimed for too long.
Claimed- If a staff member has claimed a task, but takes longer than the specified period of time to complete it, an escalation is triggered and another staff member is notified, for example, the manager of the claimant.
Subtask started- A subtask is an additional unit of work that is split out from a parent task. If the subtask fails to complete within a specified period of time, the parent task is escalated and indicates that it is still waiting on the subtask.
How do you enter the input data required by the process?
We can enter the input data required by the process by using the Business Process Choreography Explorer. It is access using Web Browser.
What is rule group? How do you implement rule groups?
A business rule is a condition that must be satisfied when a business activity is being performed. A rule can enforce a business policy, make a decision, or infer new data from existing data.