Overview based on corporate development experience using J2EE and IBM BPM 7.0 and 7.5.This article, as we hope, and the following, will give an understanding of what business customers expect from using IBM BPM (Business Process Management) platforms and what they get as a result.
On the other hand, what developers get is the simplification or complication of work.')
Introduction
Getting to know IBM BPM will start with a short preface. First, let's write that IBM BPM is a generic name that combines a range of IBM products from the WebSphere line of business process management.
The main ones are (see Figure 2):
- WAS (WebSphere Application Server) - J2EE Application Server, the underlying software platform.
- An ESB (WebSphere Enterprise Service Bus) is an enterprise data bus that hosts all business logic services.
- Process Server (WebSphere Process Server) is the platform itself for executing business processes in version 7.0. And in version 7.5, besides the Process Server itself there is also an engine from Lombardi. About their comparison will be in the following articles.
What tasks BPM helps to solve?Over the past few years, we have implemented various types of projects using BPM, mainly in the banking sector.
Based on experience, you can describe the main advantages of using ready-made solutions from IBM as compared to writing “your own solutions”:
- Visual modeling and execution of business processes.
- A set of ready-made components for building flexible business processes: conditions, parallel branches, expectations, events, etc.
- User interaction for performing manual actions (Human Tasks)
- Flexibility in reconfiguring business processes.
- Manageability of business processes. It is provided with built-in tools, for example, such a utility as Process Choreographer, which allows you to monitor running instances of a business process, change their state, and, if necessary, manually change data or even the progress of a specific instance.
- Transactional support for business tasks.
- Support for versioned business processes.
- Stability of work. It is provided by the appropriate configuration of servers in the form of a cluster with load balancing (load balancing). Minimal idle time is guaranteed by configuring the cluster with all the active nodes.
- Productivity. The organization of the BPM platform in the form of a cluster gives a good scalability of the system, by adding new servers to the system as cluster nodes.
Architecture
Architecturally, the interaction of the main components of BPM can be represented quite simply, see Figure 3:
1. WebSphere Process Server:- Contains simulated business processes as templates
- Runs business process instances based on simulated templates.
- Instances of business processes at the input accept data objects (Business Objects) and perform the underlying business logic, while they can access various services through the ESB.
2. WebSphere Enterprise Service Bus:- Contains business logic services that provide the required unified level of access to the required systems and databases.
- ESB Services perform the processing and transformation of the input and obtaining the required output data for solving specific tasks.
- ESB Services can access both external and internal systems and databases.
- ESB Services, for executing the required business logic, can use either ready-made WebSphere ESB components or those created by developers, for example, using Java.
DevelopmentThe main development is carried out in
WebSphere Integration Developer (WID) - since version 7.5, it is already
Designer . WID is designed based on Eclipse and allows you to create business processes and ESB services, and write and debug code, for example, in Java.
Additionally, you can use some other tools from IBM, such as:
- WebSphere Modeler for preliminary modeling of business processes.
- Portlet Factory for creating visual Portlets.
- IBM Process Designer is a BPMN process development environment that replaces Lombardi Teamworks.
Visual partIBM BPM offers 3 main options for building the visual part of systems for working with business processes, see Figure 5:
- Use another solution from IBM - WebSphere Portal. Developers can create portlets for this portal, using part of the already “ready” functionality, such as integration with Process Server, ready task management controls (Task List), etc.
This option is most appropriate for building a “single corporate portal”, in which all the workplaces of the company's users will be implemented. - Use WebSphere Business Space. This IBM solution is part of Process Server and is a web application with a set of ready-made widgets for managing business processes. To add new functionality, you can either configure “standard widgets” or create new ones.
This option is convenient for a quick start at the beginning of working with BPM, but it has a number of limitations and shortcomings in actual operation, such as: slow work of JavaScript in Internet Explorer, design of forms only in the form of widgets, etc. - Use the Process Sever external interface (API). The visual part can be developed in any language, framework, platform, and integration with BPM can be implemented through the connection of the ready and accessible API of the Process Server itself.
This option is most appropriate when adding new forms for managing business processes in the already developed system of the company with a custom graphical interface.

Conclusion
As a conclusion, I would like to write under what basic conditions, from our point of view, the use of IBM BPM is the most effective:
- Using IBM BPM as a unified platform for automating company business processes. Note: partial use of BPM can result in large overhead for both deployment and support of the platform itself.
- Creation and development of a corporate data bus (ESB) of a company for hosting business logic services. An important aspect of building an ESB with a service-oriented architecture (SOA).
- The presence of highly qualified system administrators who can both deploy and support BPM platform with the necessary level of scalability, resiliency and security.
- Availability of highly skilled developers and architects of Java and J2EE. Unfortunately or fortunately, BPM cannot solve all the company's business problems by simply configuring or using ready-made components. Therefore, Java developers are needed to create high-performance and reliable solutions with the required functionality and in the required time frame.