‘Future is now – but its not evenly distributed’
I stumbled across that quote from Adam Bien few times in the past. In my opinion it contains much truth and applies not only to the core technologies Adam deals with, but also to other business areas and technology compositions. Just think about it and I am sure you’ll find one, e.g. anything related to the cloud trend.
The adoption for cloud computing has increased a lot over the last years. Following the cloud movement providers and software vendors have learned to build enterprise-ready services, that allow enterprise customers to swap out responsibilities to third parties and use resources of different kind on-demand. The market grows rapidly and consists of three major areas – Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). The blurry lines between these sections and the amount of solutions arising require a detailed look into individual services.
This article unveils the power of services already available today, giving you the opportunity to run individual human centric business processes in the cloud by combining BPM with PaaS. You can take this article as a receipt for building an enterprise ready BPM PaaS based on the agito BPMO Foundation for the SAP HANA Cloud – an application certified for integration with the SAP HANA Cloud Platform based on Activiti. The first half of the article explains the term BPM-PaaS in theory, while the second half demonstrates the use of the BPM-PaaS practically (including three videos).
Helix of Software Development
BPM systems can solve individual business requirements in a structured way and BPMN is their established standard for describing the process flow. While a process flow is only the top, plenty of other layers below the process must be handled when creating runnable BPM applications – techies call them persistence, user interfaces, business logic and integration layers. Enterprise customers on the other side have an increased demand for extensible solutions, that allow flexible process implementations to adapt changing business needs very quickly. Although they only want to solve their business requirements, customer have to spend a lot of money into technical details again and again – guided and implemented by architects, designers and developers. Many customers also do not see software development as their core business, but they have to find their way through the helix of software production processes when dealing with BPM implementations.
This applies especially when customers run more than one application with BPM and even more when it then comes to change management. The result (mostly in the mid and long term) then is the exact opposite of the major BPM commitments – improve Business-IT alignment and fast reaction to business changes. This fact at the same time increases efforts enormously and is the main reason, why BPM solutions often feel too static and heavyweight. That negative trend can of course be influenced by the organization, but must be foreseen and worked against from the beginning by a proactive management.
BPM in the Cloud = BPM PaaS ?
Imagine a BPM system, which allows customers to focus on business requirements instead of all the recurring technical boilerplate, which is responsible for the negative impact mentioned before. Such a system fulfills this need by harmonizing BPM applications (I will show you what that means below). Selling an BPM system as cloud solution can of course be done on infrastructure level, e.g. by putting an existing comprehensive BPM suite into a data center of an IaaS provider, where it leverages the cloud advantages on a low level (hardware setup, monitoring, hardware scaling). However an BPM approach starting with such IaaS solutions (which have not been designed for the cloud) will not abstract any of the technical overhead in BPM applications. They will force you to deal with the same heavyweight development processes described earlier.
And as pure SaaS solution? In the field of BPM an SaaS solution comes with the dilemma of forcing customers to solve requirements within hard boundaries and proprietary ways. But BPM application often contain much individual requirements. Process developers will most likely not have a chance to solve specific requirements in the way and with tools, they know best. And if you want to solve complex enterprise requirements, you won’t be freed from hiring talented developers. So its always a good idea, to use a system that will not squeeze developers / consultants into fixed boundaries. SaaS solutions can be a good chance to increase the consciousness for BPM, but will limit the extension and integration capabilities significantly.
An ideal environment for lightweight BPM systems in the cloud are PaaS providers. Their runtime platform can often execute web applications based on open standards and also serves all the common (and of course powerful) advantages like resource elasticity or on demand license models. At the same time its open standards based nature (e.g. Java) allows a software vendor of a BPM system to abstract plenty of technical requirements, while not hiding them completely. For customers this means, that they receive a extremely lightweight development- and also runtime-platform – both following the best of breed principle: Build production-ready BPM applications in a business oriented fashion easily and always be able to extend them using standard development approaches available across the Java cosmos, e.g. for integration purposes that always have a very individual characteristic.
Having such a BPM PaaS ready is the base for continuous process optimization (and isn’t that what customers want to reach with BPM): Lower the entry barrier to implement also small business cases, adapt and implement business needs quickly, and last but not least decrease the efforts when adapting process changes. A harmonized approach makes enhanced reporting and analyzing even easier.
BPM PaaS could also be considered as the foundation for Business Process-as-a-Service (BPaaS), an extension of SaaS. The term BPaaS gets more and more attention recently and describes the offering of predefined business processes in the cloud on a pay-per-use-base, e.g. Human-Resources-as-a-Service. Service Providers could leverage BPM PaaS to offer individual BPaaS services, but must work hard on their limit of customization possibilities as these business processes are always going to be sold as ready-to-use software. At least individual integration scenarios will be hard to solve.
BPM PaaS – Core Characteristics:
- Model Processes using BPMN
- Harmonize BPM applications
- Simplify and standardize the approach for building, maintaining and running individual BPM applications
- Create solutions in a business oriented fashion
- Extend applications leveraging the Java Cosmos
- Based on open standards
- Run Business Process Applications on-demand
- Platform as a Service
- Enterprise environment based on state of the art and open industry standards
- Web Application Provisioning
- Integration of Identity Management for Human Task Management
- on premise Backend System Integration
- Elasticity: Obtain resources as your business requires it – additional or less.
- Multi Tenancy: Isolate applications between organisation units.
- Fair and flexible licensing: pay-per-use or subscription-based.
- Platform as a Service
Let’s check if all of this is available today with agito BPMO Foundation on SAP HANA Cloud: A combination of agito BPMO – the BPM application framework from agito – and SAP HANA Cloud – the Platform as a Service (PaaS) offering from SAP. The following sections also contain videos demonstrating these characteristics to get a concrete understanding how a BPM PaaS feels like.
While PaaS only gives you the platform for running individual BPM applications, you still need to build and deploy them before. These points outline the solutions involved during this procedure:
- Build business applications in standard Eclipse for Java EE.
- Activiti Designer for modeling processes with BPMN.
- agito BPMO Development Tools for harmonizing applications.
- Deploy and start business applications in the SAP HANA Cloud.
- Run business applications in the Web Browser.
Model Processes using BPMN with Activiti
agito BPMO Foundation contains the Activiti Engine for process execution. For those who have not heard about Activiti yet: It is the open source project for BPM (started back in May 2010) and its heart is a scalable and extremely lightweight process engine, that executes processes modelled in BPMN 2.0. This process engine is seamlessly integrated into the product agito BPMO and runs the BPMN Models that are deployed along with BPM applications. Of course agito is offering full support for the Activiti Engine as part of the product agito BPMO.
This video demonstrates the modeling part [05:12 min].
Harmonize BPM applications with agito BPMO
agito BPMO decreases efforts for creating BPM applications significantly by focusing on business requirements and abstracting lots of recurring technical boilerplate from customers (but not hiding them completely). It’s an BPM framework, that uses standard java technologies to create executable BPM applications. As such it harmonizes many aspects of applications, e.g.
- One business object model (BPMO) for maintaining common business requirements.
- Transparent transactional persistence using a global domain model.
- Dynamic and extensible web-based user interfaces based on the model.
- Type-safe Business API for accessing BPMOs from the Java Cosmos and implementing individual requirements.
- Central entry for starting business processes and also for administration of business applications.
- Lightweight project layout at design time.
For a full list have a look at the Features of agito BPMO.
To get agito BPMO right: A Business Process Managed Object (BPMO) allows you to define all requirements in a central place or start implementing individual routines from this place right away. Its the BPMO that ensures consistency on all the data in your process, because it is the entry for any client accessing your BPM application:
- User Interfaces, e.g. Work on data of tasks
- Process Engine: e.g. Automated Service Tasks for Backend communication
- Middleware, e.g. Asynchronous integration across processes or backend systems
But what does a BPMO really solve: As a rule of thumb we often say, that the BPMO model solves all requirements that are not part of a process model based on BPMN. It distinguishes clearly between static and dynamic requirements (the following enumeration outlines only a few topics):
- Static Requirements are implemented in the BPMO model directly.
- Data Structures: Fields and hierarchies (also nested with an unlimited depth)
- Labels and Descriptions (of course with multi-language support)
- Control States: At which process step are which fields required, editable or visible.
- Static Validation Logic: Field Lengths, Numeric Constraints, Date Boundaries, etc.
- Access Control: Give only specific users/groups access to BPMOs
- Dynamic Requirements are defined in the BPMO and implemented in pure Java.
- Control States: E.g. Field A is required/editable/visible when Field B contains ‘foo’.
- Validation Logic: E.g. Field ‘Zip Code’ must have a specific length depending on a field ‘Country’.
- Activation Logic: E.g. Fields ‘Credit Card’, ‘Expiration Date’ etc. get active based on the value of field ‘Payment Type’.
- Calculations and Derivations
- Actions: Any operation, that can be executed on a BPMO, e.g. create purchase order.
- Access Controls depending on the business content.
- User Interface Layouts: Present the application in another way then the default.
This video demonstrates the harmonization part [11:28 min]
Run Business Process Applications on-demand with SAP HANA Cloud.
As mentioned before SAP HANA Cloud is the PaaS offering from SAP, which enables customers to develop, deploy and use Java applications in a cloud environment. It is certified at the latest industry cloud standards and operated by SAP. The platform supports the complete lifecycle of building and deploying cloud-based enterprise business applications, extensions, and services. SAP HANA Cloud platform also facilitates integration scenarios with your on-premise landscape. To understand the platform more in detail your can refer to the SAP HANA Cloud Platform Community. I also recommend reading this Blog from Ralf Schaub for getting the distinction of the Java Development Use Case in SAP HANA.
“Virgo from EclipseRT is a completely module-based Java application server that is designed to run enterprise Java applications with a high degree of flexibility and reliability. It offers a simple yet comprehensive platform to develop, deploy, and service enterprise Java applications.” – http://eclipse.org/virgo/
Combining such a PaaS with agito BPMO is exactly what we understand as BPM PaaS and what we are offering with agito BPMO Foundation for SAP HANA Cloud: Business focused, state of the art, robust and extensible.
End users of a BPM PaaS can be classified into Process EndUsers (Business), Administrators (IT) and Developers (IT, Consultants). agito BPMO in combination with SAP HANA offers web based solutions for all of them:
- BPMO Center: Manage your business processes, e.g. tasks handling and process starting.
- BPMO Console: Administrate your business applications and processes.
- SAP HANA Cloud Cockpit: Central Point for managing running your cloud applications and platform resources.
Multi Tenancy in agito BPMO allow a very flexible isolation between organisation units.
A feature in SAP HANA Cloud you must know is the Connectivity Service, that allows you to integrate on-premise systems. Refer to the official Documentation for details. The SPML Identity Provider in agito BPMO – an out-of-the-box feature – uses this service to integrate on-premise Identity Management for Human Task Management, e.g. user or group assignment in tasks.
This video demonstrates the run part [05:16 min]