Introduction to Ensemble
The purpose of Ensemble is to enable you to develop, configure, deploy, and manage Ensemble productions. This chapter introduces productions and some of the basic Ensemble terminology. It contains the following sections:
Introduction to Ensemble Productions
The purpose of Ensemble is to enable you to develop, configure, deploy, and manage Ensemble productions.
An Ensemble production integrates multiple, disparate software systems. A production includes elements that communicate with these external systems, as well as elements that perform processing that is internal to the production.
The elements in a production are known as business hosts. Ensemble has three kinds of business hosts, with different purposes as follows:
Business services accept requests from entities outside the production and relay them to host classes inside Ensemble for processing and fulfillment.
Business processes accept requests from host classes within the production — business services or business processes — and either process the requests or relay them to other host classes inside Ensemble for processing.
Business operations accept requests from host classes inside Ensemble — business services or business processes — and either process the requests or relay them to entities outside Ensemble for processing.
The following figure provides a conceptual overview of a production and business hosts.
Business hosts communicate with each other via Ensemble messages. All Ensemble messages are stored in the Ensemble message warehouse and can be seen via the Management Portal.
In most cases (but not all), a business service has an associated inbound adapter. The role of an inbound adapter is to accept input from entities external to the production. Similarly, a business operation usually has an associated outbound adapter. The role of an outbound adapter is to send output to entities external to the production. Ensemble provides a large set of adapters to handle different technologies. For example, you use a different adapter for files than you do for FTP. It is also possible to define your own adapters.
The following figure shows an actual production, as seen in the Management Portal:
This view shows all the connections to and from one business host, Demo.Loan.FindRateDecisionProcessBPL. Note that this view does not display adapters because these are incorporated into the business service and business operation definitions.
An Ensemble production typically includes a large number of settings. Settings are configurable values that control the behavior of a production. Settings can affect a production in many ways. For example, a setting can specify:
The TCP port on which a business service should listen.
How frequently to check for new input.
The external data source name (DSN) to use.
The SSL configuration to use when connecting to an external entity.
How long to stay connected.
And so on.
An important feature of Ensemble is that a system administrator can modify settings while a production is running. The changes take effect immediately. The following shows an example of the web page that the system administrator uses to make such changes:
The production and its business hosts have settings provided by Ensemble; they correspond to properties of the production and business host classes. You can define additional settings in exactly the same way, by defining your own subclasses of Ensemble classes. You can also remove settings so that the corresponding properties are hardcoded and not configurable.
Message Flow in a Production
An Ensemble production typically processes incoming events as follows:
An inbound adapter receives an incoming event, transforms it into an Ensemble message object, and passes it to its associated business service.
The business service creates a follow-on request message, and passes this new message to a business process or business operation within Ensemble.
A business process that receives a request message executes a predefined set of activities, in sequence or in parallel. These activities may include sending follow-on messages to other business hosts. Business processes are also responsible for most or all of the business logic in the production. The next chapter provides more detail.
A business operation encapsulates the capabilities of a resource outside Ensemble, usually an external software application. The business operation transforms properties of the Ensemble request message object into a format usable by the external application API.
An outbound adapter manages the details of communicating with a specific external system or application from within Ensemble. It transmits the API call to the external entity.
The response from the external system or application can trigger a cascade of response messages back to the external entity that started the flow of events. Details depend on the design choices made by the production developers.
As a demonstration, the following figure shows a trace of a set of related messages, which Ensemble sent in response to an initial message (in this case sent by the Ensemble testing service rather than an exterior source):
The processing can also include workflow, which makes it possible to incorporate human interaction into automated business processes. Uses of workflow within the enterprise might include order entry, order fulfillment, contract approval, or help desk activities. The chapter “Other Ensemble Options” provides more information.
Ensemble and Caché
Ensemble is built on top of Caché — that is, an Ensemble installation contains a complete installation of Caché.
Caché is a full-featured database system; it includes all the features needed for running mission-critical applications (including journaling, backup and recovery, and system administration tools). To help reduce operating costs, Caché is designed to require significantly less database administration than other database products.
For Ensemble, the Management Portal includes all the options that are present in a Caché installation, as well as additional menus that are specific to Ensemble.
Ensemble uses the security tools provided in Caché. Caché provides a complete security model that includes authentication, authorization, auditing, and database encryption. Additional tools provide secure communications to and from external entities.
Caché (and therefore Ensemble) also provides several built-in, general-purpose programming languages that can be used to create class definitions and routines. This means that Ensemble productions can provide highly customized behavior.
For an introduction to Caché, see Introduction to Caché.
Data Persistence and Recovery
In the event of a planned or unplanned shutdown, Ensemble provides a high degree of recoverability. That is, when the system is restarted, it can resume execution with little to no interruption in service. The degree of recovery depends on several factors: the robustness of the external applications; implementation details of the various business services, business processes, and business operations, and the nature of the outage itself.
In addition to storing the production definition and all supporting code and data, Ensemble stores runtime production data to aid in recovery of the system if some sort of breakdown should occur. This runtime data includes the following:
State information related to long-running business processes, which may take days or weeks to complete. That is, stopping and starting a production does not interfere with this processing.
Business rule log entries.
The Event Log.
All this data is persistent across system outages.
Typically, you purge data at periodic intervals, as described in Managing Ensemble.