Three phases can be differentiated in the lifecycle of a model developed with the help of Infinity Process Platform:
In the modeling phase the modeler defines the business processes and the developer equips this business process model with the necessary applications. The deployer then collects the results of the first phase and makes them available in a runtime environment, which includes other components such as those falling into categories of back-end systems or application servers. In the third phase, the system is productively used by the end-user and maintained by the administrator.
This section focuses on the second phase - the deployment phase. Deployment means preparing parts of a runtime environment for production. In the previous sections, we have explained what makes up this environment. The components of the Infinity Process Platform runtime environment can be divided into the following categories:
In the following sections, the deployment tasks are discussed.
A deployed model can run in two different modes so that the execution of processes in Infinity Process Platform can be performed via an EJB application server (remote mode) or without it (Spring local mode). The differentiation between the Spring local mode and the remote mode has practical relevance only for two runtime components: the Infinity Process Platform clients and the Infinity Process Platform Web component. Since they are client-side components, they must be configured in one way if there is remote communication between distributed components and in another way if all objects live in the local Java Virtual Machine.
Infinity Process Platform Engine exposes a set of services that can be used by the Infinity Process Platform clients to operate the process engine. The clients retrieve the corresponding set of services from a specific service factory, depending on the operating mode. The operating mode is defined by the Client.ServiceFactory property in the carnot.properties file. For details on using Infinity properties, refer to chapter Client Side Properties.
In Spring local mode, all objects in the Infinity Process Platform runtime applications communicate live in the local Java Virtual Machine. No application server is necessary in this mode. The local JVM interfaces with the audit trail database via JDBC.
This does not mean, however, that your beans implementing applications and data integrated in your process model cannot run on an application server. The following figure illustrates a scenario with the Infinity Process Platform Engine running in Spring local mode and integrated applications running on an application server.
To operate in the Spring local mode, the clients must set the Client.ServiceFactory property in carnot.properties to the value org.eclipse.stardust.engine.api.spring.SpringServiceFactory.
Figure: Use of Infinity Process Platform Engine in Local Mode
When operating in a non-managed environment, the configuration parameters must also contain connection information to the audit trail database, such as the JDBC driver to use, the database URL, the user name and password of the user making the connection, the XA datasource class, the datasource bean and in some cases (e.g. Derby, DB2) the instance, host and port of the database.
In remote or EJB mode, Infinity Process Platform clients communicate remotely with the Infinity Process Platform Process Engine running within an application server. The following figure illustrates this scenario:
Figure: Use of Infinity Process Platform Engine in Remote Mode
To operate in the remote mode, the clients must set the Client.ServiceFactory property in the carnot.properties file to the value of org.eclipse.stardust.engine.api.ejb2.RemoteServiceFactory.
Users can operate the Infinity Process Platform Engine via different GUI interfaces. Different types of such interfaces are available:
All of them can run in local or remote mode. The use of the local desktop application requires at least a deployment of a Infinity Process Platform client and a database component if the desktop application runs in Spring local mode. A Web browser-based desktop requires an Infinity Process Platform database and a Infinity Process Platform Web component. For remote mode, the Infinity Process Platform EJB component must also be deployed to an application server in both cases. An embedding application uses the process functionality of a Infinity Process Platform client in the same manner.