2011/09/28
28 Sep, 2011

Business Process Hosting in the Cloud

  • Denis Weerasiri
  • PhD Student - WSO2

Introduction

This article discusses some concerns of hosting business processes in the cloud. First we’ll discuss the concept of multi-tenancy and a multi-tenancy architecture for business process executions. Then we’ll move on to our main topic of hosting business processes in cloud and the concerns wrapped around it.

WSO2 Stratos BPS is a WS-BPEL compliant business process run-time PaaS whose architecture supports multi-tenancy in the cloud. So the users can host the enterprise-level WS-BPEL business processes in WSO2 Stratos BPS and manage them.

Contents

A bit of Terminology

Before we start, let’s look into the meanings of some words.

  • Vendor - Cloud infrastructure/platform provider
  • Client - The one who request resources from Vendor and deploy the services
  • User - Consumers of the service hosted by Client

Multi-tenancy

What’s multi-tenancy?

Multi-tenancy is a virtualization technique which enables a single instance of a particular software to serve for many organizations or users (let’s call them tenants from now on) without allocating instances for each of those tenants. Still the tenants see as if they have their own set of allocated resources.

One general example is Google Email(GMail) service which is consumed by various users and they have their own email box, contact list etc.

In a more technical perspective, multi-tenancy is a popular virtualization mechanism in cloud computing environments.

Let’s talk about what’s meant by “virtualization”.

Virtualization

Virtualization is a key aspect in a cloud computing environment. When it comes to IaaS, PaaS, and SaaS the virtualization have different facets.

We can see IaaS as the virtualization of underlying hardware. So the users can demand certain amounts of hardware resources from an IaaS vendor. The IaaS vendor provides and maintains the resources like physical memory, database, processing-power as a Service based on that demand.
eg -

  • Amazon EC2 instances

In a PaaS, a particular software platform is virtualized. So the users can deploy and run their applications without interfering each other on the running platform which is provided by the PaaS vendor.
eg -

  • WSO2 Stratos

In a SaaS, a particular application is virtualized among its users.
eg -

  • Salesforce
  • GMail

Goals?

Few common goals of multi-tenancy are as follows

  • Sharing - Multi-tenancy allows sharing a common set of resources among many tenants, so the need to maintaining separate allocated resources for each tenants is mitigated.
  • Isolation - This means, the tenants are not interfered by the activities of other tenants. This can have several facets like data isolation, performance isolation etc. [1]
  • Scaling - Multi-tenancy enables scaling the resources by running multiple instances of it. Load balancing and auto scaling also come into the picture here.

Importance

Multi-tenancy means a much fine-grained resource sharing mechanism compared to virtual machines, which are another popular virtualization mechanism in the cloud space. If we use virtual machines(VM) to virtualize a server, then per each tenant, we need to create a new VM and there’s a fixed allocation of resources for the VM.

eg - Assume each tenant requires an X amount of units. So each VM requires X units of pre-allocated resources. To maintain 100 tenants, a server with at-least 100X units of resources is required.

But in a real cloud computing environment, all the tenants don’t consume all the allocated resource at once. As a result, in a multi-tenant environment, the same set of tenants can be deployed with in a server with 100X units of resources, assuming that all the tenants don’t consume its whole allocated resources at a time.

Another great advantage of multi-tenancy over VMs in PaaS and SaaS is, it incurs less maintenance and operational overhead as the platform or the application is hosted in one place. However, this is not the case when it comes to real production setups. But even in such an environment, multi-tenant PaaS and SaaS have the mentioned advantages to some extent.

What’s in it for business processes?

So we discussed multi-tenancy and some of its pros. Now we are going to discuss its relevance to Business Processes running on a Cloud. Here, the cloud means the PaaS where the business processes are deployed.

Multi-tenancy for business processes enables hosting them in a cloud by taking sharing, isolation and scaling into consideration. So a use-case of multi-tenanted business processes is that they can be used to improve resource sharing among multiple departments in private clouds. Another use-case would be sharing business processes across multiple tenants with the proper granularity of isolation and scaling.

WSO2 Stratos BPS is a WS-BPEL compliant business process run-time PaaS whose architecture supports multi-tenancy in the cloud. So the users can host the enterprise level WS-BPEL business processes in WSO2 Stratos BPS tenants and manage them.

Refer for more on “WSO2 BPS Multi-tenancy Architecture” [2].


Hosting Business Processes in the Cloud

In the previous section, we talked about multi-tenancy. One advantage of multi-tenancy is it enables hosting business processes in cloud with isolation, sharing and scaling.

Advantages?

Some advantages of hosting business processes in the cloud are

  • Enables users to deploy the business processes which run on-premise business process run-time environments like WSO2 BPS. So the users can deploy the existing business processes, manage and monitor them securely in the cloud in the same way they would do on-premise.
  • Scalability - On demand scaling business processes within a set of nodes such that it can maintain the run-time of state-full business processes.
  • Tenants can ignore the burden of maintaining a business process run-time infrastructure. They can host their processes in cloud and only focus on maintaining the business-process logic.
  • Cost-effective way to deploy business processes with the means of pay-per-use.

Concerns when choosing the correct PaaS solution?

So we talked about the plus side of hosting business processes in cloud. But on the other hand, before moving to a cloud-based solution, it’s essential to consider

  • how critical the business processes to the organization are
  • whether the security provided by the cloud platform is enough
  • what’s the expected usage pattern and scalability requirement for the process
  • whether the cloud vendor provides other functionalities to monitor, manage the deploy business processes
  • the other services like billing, metering, logging etc.

At the end, the most feasible solution would be to host the business process in a private cloud environment rather than the public cloud.

In the next section, we dig deep in-to some of those considerations. We discuss aspects like throttling, security, billing, metering, logging and tooling etc. All of the considerations discussed in next sections apply to any general PaaS evaluation.

QoS

1. Security

When it comes to cloud computing, most people are concerned about security and data privacy of the applications being deployed. This concern also applies to business processes as well. Business process platform provider has to support business process and mechanisms to secure communication with other parties.

Some other concerns related to security would be data isolation, identity management etc.
Refer “Security Challenges in the Cloud”, an OT article for more information on how WSO2 Stratos solves the security challenges.

2. Throttling

Throttling is a very important aspect from the PaaS vendors perspective as it enables governing of how users are allowed to consume the business processes. In a more elaborated way, throttling manages and monitors how the resources are consumed by users. So a PaaS vendor can use throttling to enable a multi-tenant PaaS with billing capabilities.

Refer “Throttling in a cloud computing environment”, an OT article for more information on how throttling works in WSO2 Stratos.

Billing, Metering, Logging and Business intelligence for Business Processes

If we consider the traditional life cycle of “Business Process Management”, continuous monitoring, optimization should be an integral parts of a BPM solution. One way of realizing this requirement is with billing, metering, logging etc.

But these may not actually fill the missing parts in Business Intelligence. Additionally we have to consider proper mechanisms to generate real-time business intelligence as well.

1. Billing and Metering

A PaaS provider is interested in the amount of resources provided for each tenant. On the other hand, PaaS consumer (tenants) is also interested in the amount of the resources they consume. So usage metering and billing have become an integral component of a PaaS whether it’s in public or private cloud.

Refer “Metering, Throttling and Billing in StratosLive”, an OT article for more information on how usage metering and billing work in WSO2 Stratos.

2. Logging

This is another important aspect from a PaaS provider’s and Paas Consumer’s point of view. One use-case is a PaaS provider has to continually analyze the logs in order to check on malicious activities and respond to them quickly. PaaS consumers (tenants) are also interested in logging as the logs are required to analyze the previous activities, debug the running services and data warehousing etc.

Tooling support

Once a business process is modeled, the composition phase starts. As business logic tends to change frequently, this composition phase in not a one-time thing. So having a graphical tooling platform to support business process composition simplifies the development and makes it more agile to the changing business needs.

Note - WSO2 Carbon Studio provides the tooling support for implementing business processes using WS-BPEL 2.0 and WS-BPEL 1.1. WSO2 Carbon Studio BPEL Editor provides end-to-end graphical tooling support to compose a WS-BPEL process from scratch.

As the WSO2 BPS team, we all develop our WS-BPEL processes via this tool and also contribute to this editor by providing new features and bug-fixes.
Refer the issue-tracker for BPEL editor from here.

Screen-shot of the BPEL Editor in WSO2 Carbon Studio 1.0.13.


Important Links

  1. WSO2 Business Process Server
  2. WSO2 Business Process Server as a Service

References

  • [1] - Afkham Azeez, Srinath Perera, Dimuthu Gamage, Ruwan Linton, Prabath Siriwardana, Dimuthu Leelaratne, Sanjiva Weerawarana, Paul Fremantle, Multi-Tenant SOA Middleware for Cloud Computing 3rd International Conference on Cloud Computing, Florida, 2010
  • [2] - Milinda Pathirage, Srinath Perera, Sanjiva Weerawarana, Indika Kumara, A Multi-tenant Architecture for Business Process Execution, 9th International Conference on Web Services (ICWS), 2011

Author

Denis Weerasiri, Senior Software Engineer, WSO2 Inc.

 

About Author

  • Denis Weerasiri
  • PhD Student
  • UNSW