Deploying process applications in IBM Business Process Manager V8

A business process developer designs an application based on certain assumptions. The application can be developed using either one of the IBM® Business Process Manager tools - IBM Integration Designer or Process Designer. When the application is ready, it can be deployed from either tool to Process Server. This tutorial describes the options for installing, deploying, and managing process applications. The process application life cycle includes installing, administering, and un-deploying versions of the application. This content is part of the IBM Business Process Management Journal.

Share:

Ashok Iyengar (ashoki@us.ibm.com), Executive IT Specialist, IBM China

Ashok Iyengar photoAshok Iyengar is a member of IBM for Software Services for WebSphere (ISSW). He has worked extensively with the IBM Business Process Management platform doing proof of concepts, pilots, and architecture design. Currently his focus is on the cloud, specializing in Platform as a Service (PaaS). He helps customers deploy patterns on IBM PureApplication Systems and IBM SmartCloud.


developerWorks Contributing author
        level

Pedro Busko (pedro.busko@atech.com), BPM Architect, Ascendant Technology, an AVNET Company

Photo of Pedro BuskoPedro Busko is a BPM Architect with more than 12 years of IT experience, with the past 5 years focused on Business Process Management and Service-Oriented Architecture with IBM technologies. He is certified in most of the BPM and SOA WebSphere products. His experience includes technical mentoring, experience in all phases of a project life cycle, including architecture, team lead, solution implementation, development, infrastructure setup, and delivery.



12 December 2012

About this tutorial

This tutorial shows you how to install or deploy process applications and manage them. The process application life cycle includes installing, administering, and un-deploying snapshots. Although versioning considerations are also part of the life cycle, they are not covered in this tutorial.

When developing processes, you can take full advantage of the iterative approach supported by the tools within Process Designer. Similarly, using IBM Integration Designer (hereafter called Integration Designer), you can synchronize and deploy to Process Center or choose to export the application files and install it on Process Server.

Objectives

Try the Workflow service

Create long-running, stateful workflows that orchestrate tasks and services with synchronous or asynchronous event-driven interactions with the Workflow service from Bluemix. Try it for free!

In this tutorial, you will learn how to:

  • Deploy a process application from Process Designer.
  • Install a process application from Integration Designer.
  • Work with offline process servers.

Prerequisites

You need to be familiar with business processes.

System requirements

Though we are using IBM Business Process Manager (BPM) V8 stack to illustrate the steps, the content is applicable to IBM BPM V7.5.1.

Duration

The estimated time to complete the tutorial is 3 hours.

IBM BPM environment types

A typical IBM BPM topology includes four environment types that support the development, staging, and eventual installation of process applications. Some enterprises choose to not set up a staging environment, sometimes called "pre-production". We do not recommend merging the test and staging environments. Table 1 shows a description of the most used environments.

Table 1. Characteristics of BPM environments
Environment Description
Development Build and refine process applications in IBM Process Designer. Create process models and implement the steps in those models using Process Designer. Using the Inspector, demonstrate development progress in playback sessions so that you can quickly evaluate and refine the prototype. Using the Process Center console, install the process applications on test process servers.
Test Using the Process Center console, install process applications on the Process Server in the test environment to implement formal quality assurance tests. You can use the Inspector and the IBM BPM Process Portal to help verify and resolve issues.
Staging After all issues reported from formal testing are resolved, the process applications are installed on a staging Process Server which looks similar to the production environment. You should test and resolve all issues in the staging environment before moving the applications to production.
Production After all issues reported from formal testing are resolved, use the Process Center console to install process applications on the Process Server in the production environment. You can use the Process Inspector in Process Designer or the standalone inspector in Process Server to investigate and resolve any issues reported in the production environment.

Some enterprises do not allow deployment from Process Center to a Process Server in production. Consequently, the production server will be in offline mode. In this case, you will create the offline installation package and use the scripted deployment procedure. Offline production process servers are the recommended configuration. It prevents the periodic heartbeat to Process Center, thereby reducing the database load.

In Part 3 of the tutorial, where we talk about creating offline servers via the Process Center Console, you will notice that there are the four environment types listed: Development, Test, Stage, and Production as shown in Figure 1. These original definitions contained in 99Local.xml can be customized to suit your topology by modifying 100Custom.xml. This is defined and administered by the BPM System Administrator.

Figure 1. Built-in server environment types
Built-in server environment types

To test, install, or administer a process application snapshot that contains IBM BPM Advanced content or an IBM Business Monitor model, the user or group must belong to the Configurator, Operator, and Deployer administrative security roles. If not currently assigned to all of these roles, use the Users and Groups option in the Integrated Solutions Console to modify the user or group roles.

One of the assumptions we have made in this tutorial is that there is only one Process Center, clustered or otherwise, in the IBM BPM environment.

Process development

Using IBM BPM Standard Edition, developers can easily create process applications in Process Designer and run them directly from the repository. There is no notion of deploying for standard content in the Standard Edition. In IBM BPM Advanced Edition, developers can develop process applications using either Process Designer or Integration Designer, or both.

Therefore, there are three categories of process applications that development teams typically create:

  1. Pure BPMN applications developed in Process Designer.
  2. Pure BPEL applications developed in Integration Designer.
  3. BPMN application developed in Process Designer utilizing an Advanced Integration Service (AIS) that is created in Integration Designer.

Process application implies that it is a Process Center dependent application. There is a fourth kind of application that you can create in Integration Designer, which is the classic WebSphere Process Server, SCA, and BPEL application.

Note:

"Deploy" usually refers to installing the application to a local Process Center. "Install" is used more to describe the installation of an application to Process Server.

Consequently, there are different ways of deploying or installing these applications on the server which we have attempted to capture in Table 2. The "Environment" row in Table 2 is our recommendation and not a product constraint. For completeness, we list the classic BPEL and SCA type of application.

Table 2. Process application deployment modes
Application Interactive via Process Center Interactive export Scripted Tool
BPMN apps Yes Yes Yes Process Designer
BPEL apps Yes Yes Integration Designer
BPMN/BPEL/AIS apps Yes* Yes Process Designer /Integration Designer
EnvironmentDev, TestTestStage, ProdTool
Classic BPEL/SCA apps Yes Yes Integration Designer

The asterisk (*) in Table 1 denotes that it should be used in Integration Designer's Unit Test Environment (UTE) during development before pushing to the Process Center repository.

This tutorial has three parts:

Part 1 talks about Integration Designer.

Part 2 talks about Process Designer.

Part 3 deals with offline servers.


Part 1: Deploying from Integration Designer

Integration Designer is used to develop classic integration centric applications using Service Component Architecture (SCA), BPEL plus WebSphere Adapter technology, and process applications that are dependent on Process Center. There are two options for deploying applications developed using Integration Designer: using the Export function or synching with Process Center.

A process developer thinks about various things when designing the application and makes certain assumptions before deciding to create a classic BPEL app or make it part of a process app. These decisions affect deployment.

Interactive using the Export function

Classic BPEL or SCA applications developed in Integration Designer that do not contain an Advanced Integration Service (AIS) can be exported as an EAR file, and then deployed via the Integrated Solutions Console also known as the WebSphere Administrative Console.

As noted earlier, this should be used when deploying to the UTE before the content is integrated with Process Center. If you use this approach, you will not get the benefits of concurrent authoring, versioning, and so on that you get when synching up with Process Center.

The assumption is that you have a project in Integration Designer that you want to deploy. The remaining steps are as follows:

  1. Right-mouse click on the Integration Project and choose Export...
  2. From under the Java EE folder, choose EAR file as shown in Figure 2.
    Figure 2. Export process application project as EAR file
    Export process application project as EAR file
  3. Enter the destination path. The recommendation is to not export the source files, as shown in Figure 3.
    Figure 3. Specify project and server runtime
    Specify project and server runtime

    The exported EAR file is given to the BPM System Administrator for deployment. This task is done via the Integrated Solutions Console (ISC) commonly referred to as the WebSphere Administrative Console.

    After bringing up the ISC in a web browser, the user with administrative rights logs in.

  4. In the navigation pane, go to Applications > New Application:
    1. Click New Enterprise Application as shown in Figure 4.
      Figure 4. Install a new enterprise application
      Install a new enterprise application
  5. Choose the EAR file that the process developer provided.
  6. In Figure 5, choose Fast Path. You do have the option to choose Detailed, which will show all the installation options.
    Figure 5. Choose the installation path
    Choose the installation path
  7. If the process application is using JAX-WS, check the box to Deploy Web services; otherwise, click Next.
  8. Remember to map the modules to the servers. In a clustered environment, choose the module, select the AppTarget cluster and the Web servers, click Apply, and then click Next.
  9. On the Summary screen, click Finish.
  10. After the application is successfully installed, click Save to save the changes to the master configuration.
  11. Go to Applications > Application Types > WebSphere enterprise applications:
    1. Select the process application and click Start to start the application as shown in Figure 6.
      Figure 6. Start the application
      Start the application

      After these steps, the application is available for use.

    2. Process applications developed in Integration Designer that contain an Advanced Integration Service (AIS), can also be exported as an EAR file, and then deployed via the Integrated Solutions Console. An AIS implies that this application is synched up with the Process Center, meaning that these apps will use the BPM repository and the versioning feature that Process Center provides. The difference here is that it is exported as an integration module and imported as an SCA module.
  12. Export the application as integration modules and libraries, which are found in the Business Integration folder as shown in Figure 7.
    Figure 7. Export process application module as Integration module
    Export process application module as Integration module
  13. When choosing how to export the content, choose Files for server deployment as shown in Figure 8.
    Figure 8. Select the content to export
    Select the content to export
  14. You may choose to change the EAR file name or accept the default. Specify the destination path and then click Finish as shown in Figure 9.
    Figure 9. Specify file name and target directory
    Specify file name and target directory

Tip:

The J2EE exported EAR file is named <PROJECT_NAME>app.ear. The business integration module exported EAR file is named <PROJECT_NAME>.ear.

Synch up with Process Center

As noted before, this exported EAR file is given to the BPM System Administrator who can use the Integrated Solutions Console to install the same. The developer can choose to deploy the EAR file interactively, via Process Center. You have to synchronize with Process Center first, and then deploy to the server.

  1. In Integration Designer, open the Process Center perspective via the main Window menu, Window > Open Perspective > Process Center, as shown in Figure 10.
    Figure 10. Open Process Center perspective in Integration Designer
    Open Process Center perspective in Integration Designer
  2. Enter the URL, user name, and password to log into Process Center.
  3. Use an existing application or preferably, create a new process application. We created a new application named "STPPC" to identify it as the process container.
    1. Open the application by clicking the link to Open in workspace. Select all components to open.
  4. Back in the navigation pane in Integration Designer, highlight the original process application project, right-mouse click and select Associate with Process Center.
    1. You are asked to associate all project components. Select the relevant projects.
    2. Make sure the process application or toolkit that will contain the projects is the one you want. In this example, it is "STPPC".
    3. Click Finish as shown in Figure 11.
      Figure 11. Associate projects with Process Application
      Associate projects with Process Application

Scripted deployment

You can also deploy applications created in Integration Designer non-interactively by using WebSphere scripts. There are numerous commands in these scripts, also known as the "wsadmin" scripting. For more information about the various commands, see Commands (wsadmin scripting).

If you use the install command, no prompts for the input are displayed. The default values are instead used to install the EAR file. An example is shown below:

  1. In a command window, navigate to the <BPM_HOME>/bin folder and enter wsadmin (or wsadmin.sh on Unix systems).
    1. Enter the credentials of the user with administrative privileges.
    2. Enter the following wsadmin command to install the EAR file. The parameters in brackets are optional. This example shows that the EAR file will be installed on two servers:
      $AdminApp install D:/dw/STP.ear {-appname STP -target WebSphere:cell=Cell1,
       node=Node1,server=server1+WebSphere:cell=Cell2,node=Node2,server=server2}
    3. After the application is installed, remember to save the configuration with this command: $AdminConfig.save().
    4. Close the wsadmin prompt by typing exit.

Part 2: Deploying from Process Designer

Process Designer is used to develop human centric process using BPMN. You can deploy the processes to online server interactively by using Process Center.

Interactive using the Process Center

You can easily deploy BPMN process applications or snapshots developed in Process Designer from the Process Center. The assumption is that you have a project in Process Designer that you want to deploy and that a Process Server environment has been defined. The remaining steps are as follows:

  1. Go to the Process Center perspective and click on the process application.
  2. Make sure you are in the Snapshots view. Highlight the most recent snapshot and click on Install as shown in Figure 12.
    Figure 12. Choose snapshot to install
    Choose snapshot to install
  3. Select the appropriate server. A check mark is displayed on the far right. Then click Install.
    1. Figure 13 shows two servers. We chose the server, myTest, which has a status of connected, meaning that it is online. The other server, Test PS, is an offline server. Offline servers are discussed in Part 3.
      Figure 13. Choose the server
      Choose the server

Tip:

Notice that the Export option is against a connected server. You can either export the process application as an IBM BPM .twx file or as a BPMN 2.0 .zip file.

  1. There are two ways to configure the IBM BPM Process Server to connect to Process Center:
    • During the installation of Process Server. Figure 14 shows the configuration screen during the installation process.
    • Editing the 100custom.xml file of Process Server. This file is found in this folder:
      <BPM_HOME>/profiles/<PROFILE_NAME>/config/cells/<CELL_NAME>
       /nodes/<NODE_NAME>/servers/<SERVER_NAME>/process-server/config

      For example:
      <server merge="mergeChildren">
         <repository-server-url merge="replace">http://tpad.encinitas.ibm.com:9089/
          ProcessCenter</repository-server-url>
         <repository-server-interval merge="replace">10</repository-server-interval>
      </server>

      For detailed instructions, see Customize the settings by Process Server to connect to Process Center.

      Figure 14. Process Server configuration
      Process Server configuration

Part 3: Offline Process Servers

We recommend that Process Servers in production to be offline so that deployments can be controlled and closely monitored. Offline deployment is a two-step process. If you want to install a snapshot to a Process Server that is not currently connected to the Process Center server (an offline server), you have to create an installation package, extract it, and transfer it to the offline server. Then, use administrative commands on the server to install the package.

Create an offline Process Server

Before you can deploy to an offline Process Server, it has to exist. This is easily done in Process Designer.

  1. In Process Designer, click the Servers tab.
    1. Click the link in the right pane to Add a New Offline Server.
    2. In the pop-up screen, enter the Server Name and choose the Environment Type for identification.
    3. Click Create as shown in Figure 15.
      Figure 15. Create an offline server
      Create an offline server

This section describes the three most common commands pertaining to offline deployment. These commands are used both on the Process Center server as well as Process Server. For more information, see Installing snapshots on offline process servers.

  • BPMCreateOfflinePackage: This command creates an installation package for a process application snapshot on the Process Center server. If you want to install a snapshot on an offline Process Server, use this command in connected mode from a Process Center server to create an installation package of a snapshot. This package is stored in the database. You can extract the package to a zip file with the BPMExtractOfflinePackage command, and then install the zip file on the offline Process Server with the BPMInstallOfflinePackage command.
  • BPMExtractOfflinePackage: This command extracts the process application snapshot installation package from Process Center. If you want to install a snapshot on an offline Process Server, use the BPMExtractOfflinePackage command in connected mode from a Process Center server to extract the installation package to a file. You can then install the extracted file on the offline Process Server.
  • BPMInstallOfflinePackage: This command installs a process application snapshot from a Process Center to an offline Process Server that is not currently connected to the Process Center. Use this command in connected mode from Process Server to install a process application snapshot installation package on Process Server. The installation package must already be created and extracted on the server. After this command is complete, the installed snapshot is active.

    Note: You can also use the installProcessAppPackage command to perform this task.

Deploying to an offline Process Server

When you install on an offline server, you must make the necessary provisions in the installation package. See Table 3 to understand the options when migrating BPMN instances in Process Designer.

Table 3. BPMN application migration options
Online migration option Offline migration option Description
Leave running instances on current version of the snapshot Leave The instances currently running continue to completion using the previously installed version of the snapshot.
Migrate running instances to new version of the snapshot Migrate Currently running instances are migrated to the new snapshot you are installing. Wherever the running instances are in the flow of the process, the new version is implemented for the next item or step.
Delete running instances of current version of the snapshot Delete The instances currently running are immediately stopped and do not continue to completion. All records of the running instances are removed from the process server.
Note: This option is not available for Process Servers in production environments.

Create an offline package from Process Center

As mentioned earlier, this is done using WebSphere scripts, namely "wsadmin". Following are sample commands that you can use:

  1. In a command window, navigate to the <BPM_HOME>/bin folder and enter wsadmin(or wsadmin.sh on Unix systems).
    1. Enter the credentials of the user with administrative privileges.
    2. Enter the following command to list all the available process applications:
      $AdminTask BPMShowProcessApplication {-containerAcronym STPPC}

      Figure 16 shows the output from the command.

      Figure 16. BPMShowProcessApplication command output
      BPMShowProcessApplication command output
    3. Enter this command to create the offline package that will be deployed:
      $AdminTask BPMCreateOfflinePackage {-containerAcronym STPPC 
       -containerSnapShotAcronym 040401 –containerTrackAcronym Main 
       –serverName TestPS}
    4. This command extracts the file that will be deployed from the package:
      $AdminTask BPMExtractOfflinePackage {-containerAcronym STPPC 
       -containerSnapShotAcronym 040401 –containerTrackAcronym Main 
       –serverName TestPS –outputFile /IBM/BPM/STP.zip}
    5. Close the wsadmin prompt by typing exit.

Tip:

Installation packages are available in the Process Center server as long as the selected offline server exists. If you remove the offline server, the installation packages for that server are also deleted.

Install offline package into Process Server

To complete the installation of the extracted file, you have to again use "wsadmin". This command needs to be run as tw_admin or as a member of the tw_admins group. It installs the application on the referenced Process Server.

The command refers to the extracted file from the earlier step:

$AdminTask BPMInstallOfflinePackage {-inputFile /IBM/BPM/STP.zip}

Post-installation steps

There are a few things to be done after installing an application. For example, setting environment variables or establishing runtime participant groups or creating the required data sources.

For more information, see Completing post-installation tasks. The most common things that need to be done after moving or deploying to the test, staging, or production environment are:

  1. Set BPM environment variables: In some cases, the correct value for a particular environment (such as test or production) might not be known during the process design. In those cases, you need to provide the value after installing the process application in the new environment.
  2. Establish runtime participant groups: After a process application is installed in a new server environment (such as test or production), there might be a need to add or remove users in the participant groups for that application. For example, users that exist in the test environment might not have been available in the development environment because the LDAP server could be different.
  3. Create data sources: In some cases, the database being used in the new environment (such as test or production), might be different. In this case, you have to create or update the data sources in the Integrated Solutions Console.
  4. Verify Web Services endpoints: In production, the Web Services might be different. If that is the case, you have to verify that the proper Web Service endpoints are configured when you move to the new environment (such as test or production).
  5. Make sure security policies are created: If the process application uses security certificates for either secure Web Services or Single Sign On (SSO), you have to make sure the proper certificates are installed in the new environment (such as test or production). This ensures that you do not run into any security credential issues.
  6. Ensure all URLs are still valid: In case web site URLs are used in the process application, you have to ensure these URLs are still valid. In most cases, these are addressed via environment variables.

Release and installment strategy

To ensure the process applications that you implement and install meet the quality standards of your organization, consider defining a "release and installment strategy". When you have identified the goals and requirements for release and installment of new and updated process applications, you can automate the processes required to approve and launch the programs.

For example, you might want to route a process to several different managers across different reporting structures in your organization. Only after each manager signs off on the new or updated process can it be installed in your production environment and rolled out to end users. You can create and implement the steps involved in such a review in IBM BPM Advanced to ensure that all corporate guidelines have been satisfied and that you have the required signatures. The final step in the review might be notification to the IT team that the approved process application is ready for installation.

While process applications can be deployed in the ways described above, enterprises need a release and installment strategy. Someone or some group should assume the Application Release Manager role also known as the "Release Manager", who is responsible for releasing a new process application into production.

Additionally, a group or person is responsible for the governance of the process apps. This is the "Governor" role and is key in governing who deploys what and when and if it will affect existing applications or not.

All this is made easier by the fact that IBM BPM V8 has built-in support for governance. You can define governance processes using BPMN models. For more information, see Applying governance to the installation of a process application.

Migration

Installing a brand new application is simple, but what if you are installing a snapshot? You have to consider how to handle running business process definition (BPD) instances.

When you install on a connected process server and the installation process discovers running instances, you are prompted for how you want to handle them. Those were described in Table 3. When you install on an offline server, you must make the necessary provisions in the installation package.

Roles and access

Table 4 shows the default roles defined in the product and additional suggested roles specific to an enterprise.

Table 4. Default roles from IBM BPM
Role Can do Cannot do Comments
Configurator
  • Deploy applications
  • Change or Create Resources like JDBC DS
  • Regenerate plug-in
  • Re-synchronize
  • Change services like Security policies and Bindings
  • Restart servers
System Management team
Deployer
  • Deployment capabilities
  • Read only access to resources (data sources), services (security policies and bindings)
  • Plug-in generation capability
  • Restart servers
BPM team
Operator
  • Deployment capabilities
  • Read only access to resources (data sources), services (security policies and bindings)
  • Re-synchronize
  • Restart servers
  • Plug-in generation capability
BPM team
Monitor
  • Deployment capabilities
  • Read only access to resources (data sources), services (security policies and bindings)
  • Plug-in generation capability
  • Re-synchronize
  • Restart servers
System Management team
Release Manager
(BPM Technical E)
  • Deployment capabilities
  • Read only access to resources (data sources), services (security policies and bindings)
  • Plug-in generation capability
  • Re-synchronize
  • Restart servers
System Management team
Governor
  • Deployment capabilities
  • Read only access to resources (data sources), services (security policies and bindings)
  • Plug-in generation capability
  • Re-synchronize
  • Restart servers
System Management team
Administrator
(BPM System Administrator)

  • All the functions
  • Plug-in generation capability
  • Re-synchronize
  • Restart servers
BPM team

Conclusion

Process developers using Process Designer or IBM Integration Designer can deploy their applications either interactively or manually via scripts. The key is to have the proper roles and authorizations set up so that you can control and monitor who deploys what and where. Deploying a brand new application is much simpler than having to deploy an application that already exists in Process Server. An offline Process Server is another feature that BPM administrators need to manage carefully. This tutorial described different deployment strategies that you can use with IBM BPM V8.

Acknowledgments

The authors would like to thank Mukul Tuteja for his help in reviewing this tutorial.

Resources

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Business process management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Business process management
ArticleID=850735
ArticleTitle=Deploying process applications in IBM Business Process Manager V8
publish-date=12122012