Process Engine Architecture/Components - FileNet Web Services

This topic provides an overview of the architecture, components, functional expansions, and communications of the Process Engine, within the context of the FileNet Web Services web application and ActiveX clients..

Process Engine Architecture - FileNet Web Services

The following figure illustrates the Process Engine architecture and its interfaces. Although you can set up your environment with multiple Process Engines, for simplicity this figure illustrates a single Primary Process Engine configuration.

Process Engine Architecture


Basic Process Components

The Process Engine consists of the following related components:

FileNet Web Services

FileNet Web Services provide a web services automation layer between an Active Server-based Process application (via PJAC for FileNet Web Services) and a client (via the Microsoft Internet Information Server [IIS]). To access an ASP-hosted application in a web browser on the client, a user logs into the web server and either launches a workflow or participates in an already-running workflow. Client HTTP requests that do not require interaction with the Process Engine via a Java applet/application are passed through an active MS IIS session to the FileNet Web Services and PJAC for FileNet Web Services components, which send them via the Process Java APIs and the JiGlue COM Bridge to the ASP-hosted application. For a description of what happens when a client uses a Process Java applet or application, see Client-side JavaScript and Process Applets below.

If a JavaScript object on the client requests an IDM object from FileNet Image Services or Content Services, FileNet Web Services retrieves the object via Remote Procedure Calls (RPCs) for return via MS IIS to the client.

The first time the client accesses FileNet Web Services, the software forces an automatic download of the Process Java APIs, the Process applets, the client-side JavaScript, and the JRE.

PJAC for FileNet Web Services

The Process Java Applets Connectivity (PJAC) component combines Java and an interface to the ASP-hosted application and the automation layer of FileNet Web Services. In the context of FileNet Web Services, PJAC provides integration and connectivity between FileNet Web Services and the Process Engine (alternatively, PJAC may be used to provide connectivity in a stand-alone configuration where you are not using a FileNet web application). PJAC is installed by running the PJAC installer on the web server.

The PJAC installer installs the following subcomponents (as shown in the figure) for FileNet Web Services:

A number of PJAC versions may be provided with your installation. Each PJAC version (on the web server) provides connectivity and integration between a specific version of the Process Engine and a specific FileNet Web Services version. For example, PJAC for FileNet Web Services 2.0.1 provides integration/connectivity between Process Engine 2.0.1 and FileNet Web Services 3.3. Or PJAC may be installed in stand-alone mode where you are not using a FileNet web application and simply require connectivity to the Process Engine. For additional information, see Process Java Applets Connectivity (PJAC).

Note PJAC for FileNet Web Services also provides shared ASP, JavaScript, etc., files which may be referenced by a custom ASP-hosted Process application. For additional information, see PJAC Files Referenced By Process Applications.

Process Integration Services

Process Integration Services serve requests from a Java application or applet (via the Process Java APIs) to enable the Java applet/application to access IDM objects from FileNet Image Services or Content Services repositories. The Process Integration Services module manages these requests and implements the JNI methods that provide the bridge to the IDM COM objects.

Client-side JavaScript and Process Applets

The client web browser uses either a cached client-side JavaScript object (in an active MS IIS session) to invoke an Active Server Page (ASP) on the web server, or the browser starts a Process Java applet/application that sends the workflow request via RMI to the Process Engine router that directs RMI communication to the Process Engine. If a Java applet/application requires IDM objects from a FileNet Image Services or Content Services repository, it sends the request to Process Integration Services on the web server.

Process Engine Router

The Process Engine Router (on the web server) is used to route and access objects and services to the Process Engine. The interface to Process Engine Java API methods is accomplished through the router via the RMI protocol (see Communication Protocols). A Process Engine Router can route to more than one Process Engine and you may install a Process Engine Router anywhere you need to interface to a Process Engine. If there are multiple Process Engines in your environment, the Process Engine Router will route the request to the appropriate Process Engine. Typically, the Process Engine Router is installed on the web server, where it acts as an RMI server (see Communication Protocols) to route workflow event process requests to the Pooled Process Manager (PPM) on the Process Engine.

When a Step Processor application makes a workflow-related request, the Process Engine Router (on the web server) receives the request and routes it via RMI to the PPM. The PPM responds to the API call by either starting a Process Engine process or allocating the request to an existing process.

Process Java APIs

The runtime Process Java API classes are provided in the pw.jar file, which is included with the Process Development Environment. The pw.jar file also contains the Process client classes, Task Manager classes, third party classes [e.g., for Xerces], etc. The pw.jar file should reside on the Process Engine (if there is more than Process Engine server, the file should reside on every Process Engine in your environment) and also, if used, each Process Analyzer, Process Simulator, etc.).

Process applications for the Process Engine with FileNet Web Services require the JRE on the web server, the Process Engine (on the Primary Process Engine and on each Additional Process Engine), and on each client machine (the JRE is automatically downloaded the first time the client accesses FileNet Web Services).

In addition to the runtime Process Java API classes, a number of other API classes and files that relate to Process Engine operations are provided in .jar files with your installation. These include:

If you are developing a COM-based application, you will need to use the JiGlue COM Bridge (allows you to make COM-based calls equivalent to native Java statements) in order to use the Process Java APIs.

For more information, see Using Process Java API Classes and the Process API samples provided with your installation.

Process Component Integrator

The Process Component Integrator is a service (runs on the web server) that supports the import of simple Java components and interfaces. Once imported, the components and interfaces are available to Process Engine workflows. The Process Component Integrator may be used in the development of a custom Process work performer. The Component Integrator contains the following modules:

For additional information, see Building a Component Integrator-based Work Performer.

FileNet Process Engine

The Process Engine (formerly called "FileNet Web Services") is the FileNet component that allows users to create, modify, and manage business processes (workflows) implemented by applications, enterprise users, or external users (such as partners and customers). For the FileNet Image Manager, the Process Engine is currently supported on MS Windows 2000 and the following Unix platforms: Solaris, HP-UX, and AIX.

The Process Engine consists of the following subcomponents (as shown in the figure):

Process Services (including PPM)

The Pooled Process Manager (PPM) on the Process Engine manages workflow requests that it receives from a Process Engine Router. The PPM either starts a Process Engine process (VWJ process) for the request, or it allocates the request to an existing process. The PPM will balance the load between VWJ processes; that is, if the existing VWJ process is busy, the PPM will start another process. Note that in a multiserver configuration, the PPM on each Process Engine server must be running.

Process Analyzer Connector

The optional Process Analyzer provides a way to easily generate chart-based reports based on statistical information gathered from the Process Engine. The Process Analyzer Connector provides the interface between the Process Engine and the Process Analyzer Engine. This Connector provides event, process, resource, and XML configuration data to the Data Collector on the Process Analyzer Engine. The Process Analysis Data Collector, in turn, stores this data in a SQL Server data warehouse on the Process Analyzer Engine. For additional information, see Process Analyzer User Guide and Process Analyzer Configuration and Administration.

Rules Engine Integration

Integration with the iLog Rules Engine is accomplished via workflow definitions. The workflow definitions contain calls to rule sets defined with the iLog Rules Editor on the Rules Engine client. The VWRules shared library on the Process Engine provides the interface with the FileNet-provided Rules daemon on the iLog Rules Engine. For additional information, see Using Rules Engine.

JiGlue COM Bridge

The JiGlue COM Bridge acts as a translation layer between the Process Java APIs and COM. The JiGlue COM Bridge provides the ability to instantiate COM objects using the Process Java APIs. Using the JiGlue COM Bridge you can make COM calls that are equivalent to native Java statements. For additional information, see Developing for COM Overview.

FileNet Functional Expansions and Add-on Components

The following FileNet functional expansions and add-on components are optionally available as additional features to enhance current Process Engine with FileNet Web Services capabilities and functionality:

Process Engine Communication Protocols

As indicated in the above figure, communication between Process Engine subcomponents, other FileNet Image Manager components and other applications is accomplished via one or more of the following communication protocols: