Adeptia BPM Server offers enterprise
class capabilities that are required for mission-critical,
highly demanding production environments. These capabilities
ensure that BPM Server can seamlessly scale from small to
high performance situations, offer high degree of reliability
and recovery from unforeseen conditions.
Scalability
BPM Server offers scalability and high performance by a
combination of three distinct features in the product.
- Clustering: Adeptia BPM
Server supports distributed execution by clustering of multiple
nodes that run in parallel on separate servers for load
balancing and failover capability. This allows for scalability
both in terms of processing large data volumes as well as
large number of concurrent transactions.
To enable clustering, Adeptia BPM Server is installed on
a set of servers that would act as nodes in a cluster. A
cluster in fact represents multiple instances of the “application
layer”, each running on a separate server while they
all share one back-end data layer represented by the database.
The presentation layer also runs from one server.
To create a cluster, a “network of nodes” is
created. One node acts as a primary and the others as secondary
nodes. As process flows are triggered, they are distributed
to the nodes of the cluster for execution.
A simple round-robin algorithm is used for distribution
of jobs in the cluster. A complete process flow is assigned
to a node for execution thus ensuring that every activity
in that flow is run from that one node.
- Processing of bulk data:
Adeptia BPM Server supports processing of both single-record
messages as well as bulk data in the form of multiple-record
data files. The Parser and Mapping engine have highly scalable
performance so the BPM Server can scale up to handling hundreds
of megabytes of data files that may contain hundreds of
thousands of records. BPM Server splits the incoming bulk
data into sets of smaller chunks (say 500MB can be split
into 20 sets of 25MB each) and then processes them in parallel.
This capability allows BPM Server to offer speed and throughput
that compares with dedicated hardware appliance-type of
solutions.
Reliability
BPM Server offers reliable and robust performance due to
the following capabilities of the product.
- Clustering: The clustering
feature as described above not only provides scalability
but also offers a high degree of redundancy and fail-over.
A cluster of a “network of nodes” is created.
One node acts as a primary and the others as secondary nodes.
As process flows are triggered, they are distributed to
the nodes of the cluster for execution. If any secondary
node goes down in the cluster, it is taken out of the “available
list” and the process flow execution jobs are distributed
to other nodes in the cluster. If the primary node goes
down, a secondary node is automatically assigned to be the
new primary node, allowing process execution to proceed
smoothly.
- Load Management: A Job Queue
Manager ensures that the BPM Server has capability to handle
sudden surge in triggered transactions. Every time a process
flow is triggered (either by a real-time event or scheduler)
the run-time instance of the flow is automatically placed
in the Job Queue. The queue processor ensures that only
a pre-defined number of concurrent transactions are running
at a time. This allows any number of the triggered flows
to be queued and await execution as currently running transactions
are completed. This ensures that a spike in triggered flows
does not overwhelm and bring down the system leading to
highly reliable and predictable performance in volatile
environments.
Recovery
BPM Server has a feature called Automated
Transaction Recovery that enables recovery of process flows
that may have failed due to a system failure. While designing
process flows, users may mark certain states in the flow as
“sync points”. At a sync point the process engine
persists a copy of all runtime state information in a relational
database. If an unexpected down event occurs, such as hardware
or software failure, the server or a node in a cluster may
go down. When that server and so the BPM Server is restarted,
the process engine automatically checks for process flows
that were interrupted and recovers these transactions from
the sync point. The process flow execution proceeds as if
no interruption had occurred.
|