Thursday, September 24, 2020

BPM Overview Part-3

 Business process Composer

BPM Studio
Business process Workspace

PAM
Process Asset Manager is the link between Business process Composer and BPM Studio.

Human-centric activities 
User 
Management
Group
FYI
Initiator
Complex

Gateway
XOR
OR
AND
Complex

Automated activities
Service
Send 
Receive

Subprocess activities
Call activity
embedded subprocess

Events
Support asynchronous communication with other processes, error handling, and flow logic
None
Message
Timer
Error
Signal

Catch Event
Throw Event

Service: Synchronous system interaction
Send, Receive: Asynchronous interaction
User: Human step managed by human workflow engine
Manual: Not managed by a workflow engine
Rules: Managed by business rules engine
"Script: Used for running scripts,  A typical script task initializes a data object or defines a 
branching expression"
Call: Invokes a reusable subprocess 

Exclusive OR (XOR) gateway:
Only one branch is taken.
It may or may not use a merge.

Parallel (AND) gateway:
All output paths are taken.
It is used for merging unconditional parallel paths only.

inclusive OR gateway
An inclusive OR gateway is a decision in which there is more than one possible outcome. 
Represented by  
It is usually followed by a corresponding merging inclusive OR gateway.
Outgoing paths of an inclusive gateway can have a default path as well.

what does complex gateway means?
When any two complete, kill the third and proceed to grant security clearance step.
activationCount == 1
inclusive with complex gateway
It splits and join together.

Complex Gateway
A complex gateway is a decision in which more advanced definitions of behavior can be defined.
Represented by 

Data Object
Data objects are variables that are used to store information.

business objects
All business objects are represented by XML schema

Data objects have four different scopes:
Activity data objects (arguments)
Process data objects
Subprocess data objects
Project data objects

Project Data Object
Process Data Object

Process data can be modified using the Data Associations editor.

Script Task
The script task is used to change the values of data objects in your process. 
it performs a custom assignment. 
"The script task is used when you want to change the value of data objects in 
your business process "
or when you must change the values of data objects outside another flow object. 

Service tasks:
Invoke synchronous services
Message events:
Invoke asynchronous services
Send and receive tasks:
Invoke asynchronous services

BPMN Events

"A BPMN event is something that happens during the course of a process that affects its sequence or 
timing of activities."
Events can be caused by external triggers, such as when:
A message arrives
An exception is caught
Certain time conditions are satisfied

Events can also: 
End a process
Generate a message
Publish a signal
Lead to errors being thrown

Types Of Event
Events can occur at the:
Beginning: Start events
End: End events 
Middle: Intermediate events

They are of two basic types:
Throw: Produced by the process
End events and some intermediate events
Catch: Consumed by the process
Start events and some intermediate events

All events are displayed with a circle symbol.

Catch Event (start event)
Start None
Start Signal
Start Timer
Start Message
Catch None
Catch Message
CatchTtimer
Catch Error
Catch Signal



Throw Event (end event)
End None 
End Message
End Error
End Signal
End Terminate
Throw None
Throw Message
Throw Signal


Catch Events
Wait for specific conditions to occur in the middle of a process
Block specific conditions that occur in the middle of a process
Catch timer: 
Is a delay mechanism
Is based on a specific date and time or on a recurring interval
Catch message:
Receives a message
Is used for request-response and receive-reply scenarios
Is equivalent to a BPEL receive

Throw Events
Throw event: Throws a signal
Process execution continues after a throw event.
Throw message: Sends a message to another participant or process
It is used for request-response and receive-reply scenarios.
It is equivalent to a BPEL send.
Throw signal: Publishes or broadcasts a signal

Start Event Types
A start event listens to external signals and creates a new process instance.
Multiple start events can be used to trigger a process.

The common start events are:
None: Not associated with a particular trigger
Message: Triggered by the arrival of a message
Timer: Triggered based on a schedule
Signal: Triggered based on the arrival of a broadcast signal 

None Start
A none start event is usually used to start a main process by a process participant and is followed by an initiator task–type user activity.
Subprocesses must always start with a none start event.
None start events can be converted into other start types from the context menu.

Message Start
A process is triggered by the arrival of a message:
With a known source and type
Which could be from:
Another BPMN process
A BPEL process
An adapter event
An external web-service client

Signal Start
The sender is unknown in this case and the signal start event listens on a well-known topic.
Browse for events specified in the Business Catalog.

Timer Start
Is used to trigger the start of a process instance based on some schedule 
Can be one of the following: 
A fixed time stamp
A time cycle (for example, every two minutes)
A period (for example, every Wednesday)

Is configured on the Implementation tab

End Events

An end event signifies the end of the process path and is generated by the process on completion. 
End events cannot have an outgoing sequence flow.
Multiple end events are possible. 
In normal cases, the process completes only when all paths are completed.
Types of end events:
None: Normal completion
Message: Sends a message before completion 
Signal: Publishes a signal before completion
Error: Throws an error before completion
Terminate: Is used to end a process abruptly(suddenly, unexpectedly)

None End
None end events do not throw a trigger.
In a subprocess, you must use a none start event, but you can use any type of end event.
When using a none end event in a subprocess (no triggers), 
the control passes to the subsequent step in the main process after the subprocess ends.

Message End
Used to throw a message at the end of a process
Always used with either a message start event or message catch event

Signal End Event
A signal end broadcasts a signal to unknown receivers.

An error end is:
Used to propagate exceptions from the subprocess to the parent process up the hierarchy
Meaningless outside the context of a subprocess

A terminate end:
Is used to end a process abruptly
Does not generate a result of any kind

Intermediate Events: Overview
Intermediate events occur between the start and the end events. They can be classified in two ways:
By their relationship with the process:
Catch: Consumed by the process
Throw: Produced by the process
By their relationship with the process flow:
Normal flow events: Occur within the typical flow of your process
Boundary events: Trigger an interruption in your process

A process flow can have multiple intermediate events.

Boundary Events
Are associated with flow objects and can be configured to interrupt their usual behavior
Behave similar to sequence flows in that they are used to determine the path a process takes between flow objects 
Can be divided into two types:
Interrupting: The flow that the boundary events define can return directly to the main process flow.
Non interrupting: The flow that the boundary events define cannot return directly to the main process flow.

Different Types of Intermediate Events
Message throw and catch: 
Send and receive messages with external processes.
You cannot use the message throw event to invoke a process that is initiated with a message receive task.
A signal throw broadcasts a message to all the processes across processes and within a process.
Timer catch:
Creates delays and configures deadlines 
Triggers additional activities after an elapsed time
Error catch:
Handles an error that occurs within your process flow
Must be used on a boundary event

Boundary Catch Events
You can attach timer, error, signal, and message catch events to the boundary of a task or sub-process.
Boundary catch events can listen to internal and external triggers.
If a boundary event is triggered, the process flows through the event’s outgoing path.
Boundary catch events can be configured as interrupting or non-interrupting.

Timer Events: Overview
Timer events enable you to control the flow of your process by using a time condition.
You can use timer events for:
Creating a delay before running an activity
Configuring a deadline for an activity or a process
Triggering additional activities after an elapsed time
Starting a process
Triggering a process periodically
You can configure timers by using a:
Specific date and time
Relative time
Period

Using a Timer Event to Block and Delay
You can add a delay to the process flow by adding an intermediate timer catch event. 
"When the token arrives at the timer event, it waits for the amount of time specified in the timer event 
before moving to the next activity."

Using a Timer Event to Set a Deadline
You can use an interrupting timer catch event to set a deadline for an activity.
"If the activity is still running when the timer event fires, the token will quit the activity and move to
 the flow that the timer event defines."

Signal Events: Overview
Signal events provide loosely-coupled interactions between processes.
Only the processes configured to listen to that signal react to that signal.
Signal events enable you to broadcast a message to all the processes in a BPM project. 
A BPMN process can trigger a mediator or BPEL process with a signal event.
A mediator or BPEL process can trigger a BPMN process with a signal event.
BPM uses Oracle Event Delivery Network (EDN) to send and receive signals.

Event Delivery Network: Introduction
Event Delivery Network (EDN) coordinates events within the SOA Suite service infrastructure.
EDN is available to all composites running in the SCA container (within the same JVM).
The EDN runs within every SOA instance. 
The EDN provides a true publish-subscribe abstraction.
It supports a fully declarative approach and does not require explicit wiring between components
leading to truly decoupled applications.

Oracle SOA Suite provides two implementations of the EDN:
EDN-DB: Uses an Oracle database as a back-end store and depends on Oracle-specific features
EDN-JMS: Uses a generic JMS queue as a back-end store

Broadcasting and Receiving a Signal Event
Broadcast a signal event.
Broadcast from a throw intermediate signal event.
Broadcast from a signal end event. 
The process that broadcasts the message has no information about the receivers. 
Receive a signal event.
In a BPMN process, you can receive a signal only in a signal start event in another process.
The reacting process has no information about the broadcasting process.
You might add or remove processes that react to a signal without impacting the process that broadcasts the signal.

"The events you use to broadcast a signal contain a payload that you can use to send information to all the
 processes configured to react to this specific signal. "
To assign values to the payload in the event, you must configure the signal throw event data association. 
This data association enables you to pass the relevant data stored in the process and project data objects to the event.
When the corresponding processes receive the signal, they must obtain the data in the event using another data association. 
This data association defines which data objects store the data in the event received in the signal start event.

Event-Based Gateway 
An event-based gateway:
Is used for conditional branching based on alternative incoming events
May be one of several types of events
The first event to trigger it wins.
Can be used as an exclusive gateway
The process flow is decided based on an event rather than data-specific conditions.
Is composed of:
The event-based gateway
Two or more target events
You can start a process with an event-based gateway.
This is similar to multiple start events.
However, it does not accept data input from another process.

The event-based gateway enables you to anticipate the possibility that several types of events may occur at a specific point in your process.
It is similar to the exclusive gateway, but instead of choosing a path based on expressions, the event-based gateway chooses a path based on the occurrence of an event within your process.
The target events can be:
Message catch events: When initiating a process using a message catch event, the process must be invoked using a message throw event. You cannot mix message events and receive tasks within the same event-based gateway.
Timer catch events: Generally, only one timer event is used following an event-based gateway.
Receive task: You can use the receive task to initiate a process instance following an event-based gateway. However, the process must be invoked from a send task within the calling process.

Subprocess
There are three types of subprocesses:
Embedded (or inline) subprocess:
Resides within the parent process in a single swim lane
Can be collapsed and expanded
Reusable subprocess:
Is defined and stored outside the parent process
Can be called by multiple processes
Event subprocess:
Is a special type of inline subprocess
Is not attached to the main process flow 
Can be triggered from anywhere within the process or invoked externally

Embedded (or inline) subprocess:
"They have access to the process data objects of the parent process, but also have the capability of
 scoping data objects at their own (subprocess) scope. "
Subprocess data objects are not visible outside the subprocess.
Embedded subprocesses must use a single none start event. 
There are no similar restrictions on the end event. 
There can be multiple end events of different types.

Embedded subprocesses can also be set up to execute in either a loop or a multi-instance pattern.
"These two patterns conform to the while or do-while (do-until) programming pattern 
(for “loop”) and the for or for-each programming pattern (for “multi-instance”). "
The multi-instance pattern can also be set to either sequential or parallel.

Reusable Subprocess
Characteristics of a reusable subprocess:
Defined and stored outside of the parent process
Can be started only by using a call activity
Can use only a none start event
Cannot use the Initiator user task
Is started by selecting the Reusable Process type in the BPMN Process Wizard
Does not have access to the parent process data objects
Instead, it has input and output arguments defined as part of the subprocess.
Call activity maps to these.

A reusable subprocess differs from an embedded subprocess in that it is, in many respects, an independent process. 
•It can have multiple swim lanes, for instance.
•Although it does have a parent-child relationship with a calling process, it is defined and stored outside the parent process. 
•It is created by selecting New > Process from the BPM Navigator menu and selecting the Reusable Process type. 
•A reusable subprocess can be started only from a call activity, 
which is a specialized service type activity, whose only purpose is invoking reusable subprocesses. 
Consequently, it must use a none start event and cannot use an Initiator user task (that is, a user cannot initiate the process).
"•After selecting the Reusable Process type for your new process, the Process Wizard displays a new tab 
that enables you to define input and output arguments for the subprocess. "
•From the Implementation tab of the call activity, you select the reusable process that you want to call and then use the Data Associations editor to map process data objects to the input arguments of the reusable process and map output arguments back to your process data objects.

event subprocess 
The event subprocess is contained within a process or a subprocess. 
Marked with a dotted line boundary and triggered by a start event
Does not have incoming or outgoing sequence flows
Can be collapsed or expanded—when collapsed, it has the marker of the start event
Types of start events for event subprocess:
Message, error, timer, signal
The event subprocess has access to the data of its parent scope.

Message start events
Message start events create a web-service interface for the process.

Process Interactions
BPMN processes can interact with each other, with a BPEL process, and with other services. 

General types of interactions that might occur:
Request-reply (synchronous)
One-way
One-way operation followed by an asynchronous callback
Combination of one-way operations and asynchronous callbacks

In an Oracle BPM process, these can be achieved through the use of:
Messages, which provide one-to-one interaction between processes
Signals (discussed in the lesson titled “Handling Exceptions in the BPM Process”), which enable loosely-coupled interactions between processes

"Request-reply conversation: This is usually used when the invoked process is synchronous.
 In a BPMN context, this type of conversation is usually accomplished by using a service or call activity (a specialized service activity for calling reusable subprocesses). "
One-way interaction: This is frequently referred to as “fire and forget.”
One-way operation followed by an asynchronous callback: This is similar to fire and forget, except that the other process does reply at some undetermined later time. The main process makes the request, then moves on, stopping to wait at a receive point for the expected reply if it has not yet arrived.
Combination of one-way operations and asynchronous callbacks: This is essentially a conversation between two processes.

A message is a one-to-one interaction between processes.
The calling process sends a message by using:
Send activity
Message throw event
End event
Intermediate event
"Either of these can be used to initiate a new process instance if the receiving end of the message is a 
message start event"

Exchange Type (four options).
Define Interface
Use Interface
Process Call
Service Call

Define Interface: This is the default conversation. You define the operation that will be exposed to other processes here in this window.
•Use Interface: In this case, you would select an existing interface that appears in your Business Catalog. 
•Process Call: Use this type to invoke another process in your BPM project.
•Service Call: Use this type to invoke a service in your BPM project.


No comments:

Post a Comment

SOA Overview Part-1

  Middleware It provides a mechanism for the process to interact with other processes running on multiple network machines. Advantages...