ralf.schaub

2 Posts

Business Problem

Many customers have requested to have a process identifier returned after process start. Ideally this would be the process instance id, with which the respective instance can be found. This blog explains how to model and implement the synchronous process start leveraging a new feature in SAP NetWeaver BPM 7.3 EHP 1.

Process Model

The process start event in SAP NetWeaver BPM is an asynchronous web service call which does not return a response. In order to change this, one needs to enhance the process model to enable the response to the caller application which instantiates the process instances. The snippet from the process model below indicates how to model such a synchronous resonse.

SynchronsousProcessStart_01.PNG

As one can see, after the process start event the process flow is split into two parts. The regular process flow and the return of the response to the caller application through a message end event. Please note: the message end event must not be terminating as this would also terminate the just created process instance.

Web Service Definition

Of course, in order to return the response, you have to define a WSDL file which accomodates both the request and the response. For both BPMN event artifacts you also have to define a trigger referencing the respective WSDL file. The WSDL file itself looks like this:

SynchronsousProcessStart_02.PNG

The screenshot shows, that the WSDL file has both an input message of type startProcess as well as an output message of type startProcessResponse1. While startProcess defines the attributes which are handed over to the process, startProcessResponse1 contains in our example just one string field, which returns the process instance-ID.

SynchronsousProcessStart_03.PNG

The last remaining part is to map the response message to the output event in the process flow. This is where the new feature of SAP NetWeaver BPM 7.3.1. comes into play. The mapping editor provides now access to the process-instance-id. It can be mapped into the response message and provided back to the caller application.

SynchronsousProcessStart_04.PNG

Please note: Beside the start event also the intermediate message event can make use of the process-instance-ID in the mapping dialog.

Summary

SAP NetWeaver BPM 7.3.1 provides this new feature to access the process instance-id at runtime. With this, scenarios like synchronous process start can be modelled and easily implemented. The caller receives the process instance-id after successfully instantiating the process instance with a reference that is valid throughout the lifecycle of the process instance.

Through this, the caller application can maintain a reference to the process instance for easier identification or for later message correlation.

In high-volume scenarios this mechanism can also be an option to ensure delivery of the message from the caller perspective to the process server and a successfull process instantiation.

SAP NetWeaver BPM 7.3, EhP1 is currently in ramp-up and will be general available soon.

Overview

As market adoption and requirements towards SAP NetWeaver BPM (BPM) increase, we decided mid of 2011 to investigate  how much load a BPM system can handle on a certain platform. The project was run as a joint project between International IBM and SAP Competency Centre (ISICC) and SAP AG (BPM development) jointly in Germany.

The comprehensive project results are available as a case study document published on the IBM Techdocs library. Find below a summary of the main aspects around this. I recommend further reading inside of the actual case study document.

System Landscape

ISICC was able to provide a powerful IBM Power 750 Express system with 32 POWER7 CPU-cores. The system was separated into 5 logical partitions to accomodate a SAP NetWeaver BPM cluster landscape. The additional three partitions accomodated a SAP WebDispatcher, JEE mock-server for web service call simulation and the load generator client.

System Landscape

Business Process Scenario and KPIs

In order to test and measure the throughput we used a three-step approval scenario which is typical in many back-office processes. The KPIs to be achieved were:

  • Number of task instances per hour: 46,000
  • Number of process instances per day: 100,000     

According to the SAP NetWeaver BPM sizing guide number of task instances are the decisive factor in these considerations.

Business Scenario - Three Step Approval

SAP NetWeaver BPM Process Model: Three-Step Approval

Test Execution

The performance tests were conducted in two different variants:

  • BPM Ad-hoc Usage
  • BPM Business Day Simulation

BPM Ad-hoc Usage implements the load test for each concurrent user individually with log-in, task search, task completion and log-off.

BPM Business Day Simulation implements the load test for each user as a simulation of the entire business day with log-in at the beginning, continous processing of incoming task instances and only logging-off at the end of the test.

Further details on the test variants are detailed out in the case study.

Test Results - Throughput

In summary the following throughput was achieved:

BPM Business Day Simulation:

  • Task Instances per hour:   111,672
  • Process Inst. per hour:   37,223
  • CPU utilization:  71 %
  • Response Time:   0.26 sec
  • In-progress Rate:   < 0.1 %
  • SAPS / task rating:  0.54

BPM Ad-Hoc Usage

  • Task Instances per hour:   49,996
  • Process Inst. per hour:   16,665
  • CPU utilization:  84 %
  • Response Time:   0.24 sec
  • In-progress Rate:  0.14 %
  • SAP / task rating:   1.39 

The tests show that SAP NetWeaver BPM is capable of running high-volume scenarios in an efficient and robust manner. Further details on the test results, setup and configuration can be read from the publication of the joint case study.

The document also provides in depth information on scalability of SAP NetWeaver, comparison of IBM POWER7 vs. IBM POWER6 system and other interesting technical research.

Happy Reading!

 

All the best for 2012,

Ralf Schaub