Cloud and industry, Part 1
PaaS best practices and patterns
Concepts for cloud-enabled industry solution practices, patterns, and models
This content is part # of # in the series: Cloud and industry, Part 1
This content is part of the series:Cloud and industry, Part 1
Stay tuned for additional content in this series.
Cloud computing enhances business agility through consumable services for infrastructures, platforms, and applications. It can be loosely defined as using scalable computing resources provided as a service from outside a company's environment on a pay-per-use basis. A company only uses and pays for what it needs. It can access any of the resources that live in the "cloud" at any time and from anywhere across the Internet and not worry about maintenance behind the scenes. However, enterprises often struggle with how cloud computing services can be aligned within traditional industry solutions.
To meet the goals of successful cloud computing enablement for both customers and internal organizations, enterprises must reconsider how they involve their business models. This article series turns underlying cloud principles into practical industry scenarios. This first article presents three models, Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS), and discusses how PaaS in particular can help to deliver industry solutions. Figure 1 shows layered cloud computing with the three models.
Figure 1. Layered cloud computing as a service for industry solutions
The IaaS model provides the basic infrastructure, especially the required hardware and bandwidth resource, to the customer of the industry solutions. The customer must handle configuration of the platform and application, such as installation of the operation system and required software components. Industry solutions that utilize IaaS have the same development, test, and release management as any traditional delivery method, but they can fully exploit the advantages of cloud computing, including backup of the solutions and full usage of hardware resources.
The PaaS model offers the basic infrastructure and platform to deploy applications. The customer does not need to configure the platform or take care of reserving hardware resources. The PaaS model usually provides APIs to develop, test, and deploy industry solutions. This model is very useful for long-tail applications. Traditionally, according to the Pareto principle or 80-20 rule, about 80 percent of revenues are obtained by about 20 percent of products or solutions. The remaining large number of solutions only contribute a small amount of revenue. But for the long-tail industry arena, more and more revenue is derived from the long-tail solutions. One example is the telecom industry. Figure 2 depicts the long tail of telecom services.
Figure 2. Long tail of telecom services
To attract and serve an expanded customer base, telecom service providers are pursuing services and solutions that target the long tail. As a result, services and solutions will become more focused and personalized and based on reusable components in many combinations. You can easily use the PaaS model to develop these long-tail solutions by reusing many components. It is the trade-off model between complexity for the provider and flexibility for the customer.
The SaaS model provides different customers with the functionality of applications that are completely hosted in the cloud, but customers have limited flexibility. Through the SaaS model, the time to market of the industry solution is very short.
With the use of any of the three models of cloud computing, industry solutions can gain the benefit of cloud computing and also obtain the benefits of the delivery model, such as shorter time to market and the reuse of components.
PaaS in depth
The PaaS model is one particular approach for software suppliers who want to focus primarily on the software development cycle and the monetization of new applications, thus bypassing the investment in and maintenance of the underlying infrastructure and services for application design, development, testing, deployment, and hosting.
PaaS systems are generally hosted, web-based application-development platforms, providing end-to-end or, in some cases, partial environments for developing full programs online. Developers can build on the functionalities of an existing SaaS or develop new web applications, and users don't need to worry about developing, hosting, updating, or maintaining applications or storing data.
Business process is the center of an enterprise IT system, and in conventional Business Process Management (BPM)-driven enterprises, always involves bundles of software and managing IT infrastructures to tackle both business-oriented process modeling and IT-centric process development, deployment, and monitoring responsibilities. The key to improving the efficiency of commercial routines—thus leading to business innovations—is to separate the IT concerns from business analysis for certain business processes. A PaaS-enabled online platform with process in the center is one way to provide such business transformation.
For industrial solution-based BPM applications, the acceleration of solution construction cycles can be hindered by unmanageable complexity. Therefore, to maximize the benefits of a process-centered PaaS model, a library with customizable industry solution patterns can be prebuilt in PaaS together with ready-made deployable virtual machine templates. The hosting PaaS itself can be hardened as a box (appliance) with a web-based administration console exposed as solely an access portal for security control and client-side customization submissions.
We designed CloudLand, a process-centric PaaS framework, to meet the requirements of an enterprise industry solution. Features include:
- Codeless development of Web 2.0-based developer workspace to off-premise development and implementation
- Hardened appliance apt to customization
- The building of industry solution patterns
- Lifecycle management
- BPM multi-tenancy
Based on the proposed PaaS framework, we developed several cloud-enabled industry solutions addressing different industrial requirements, including:
- Cloud-enabled self-service telecommunications service delivery platform: To support personalized long-tail applications in an open, developer community and public cloud based on telecommunication services such as location-based service (LBS), Short Message Service (SMS), Multimedia Messaging Service (MMS), Third Party Call, and Converge Communication Services.
- Cloud-enabled integrated information framework: For chemical and petroleum supporting a Key Performance Indicator (KPI) process and composite business service, value chain integration, and enterprise SaaS in a private and hybrid cloud.
- Cloud-enabled healthcare solution: For electronic healthcare record-based applications in a hybrid and private cloud.
- Cloud-enabled financial market data solution: For a hybrid cloud.
The PaaS model
From the business perspective, a general PaaS solution hosted in the public cloud involves the following scenarios:
- All platform and applications are contained in the one environment owned by one vendor.
- The applications are developed mostly from scratch within a formalized programming model.
- The services (for example, database and web application server) provided by the vendors are common and stable.
- When designing the whole cloud service environment, the business model roles are stable from the beginning.
- There is no industry-specific service or application in the platform so that the platform is easy to design and manage.
When the PaaS model is moved to the enterprise in an industry-specific context, more complexity and requirements are introduced. The usual challenges for such PaaS solutions include:
- Private or hybrid cloud mode: Such industry solutions are always hosted in a private cloud within an enterprise shared by several branches or organization units; or in a hybrid cloud in cases of partial IT system outsourcing or complex supply chain.
- Openness: Integration with existing internal or external systems.
- Industry-specific IT standards, application, and services.
- Uncertainty of business model and roles involved: Industry-specific user group with diverse user behavior models and system usage patterns, such as curve of system workload, type of task requirements for resources, and system capabilities.
- Time to establish the solutions: Few enterprises have enough time to construct a brand new IT infrastructure from scratch, which involves rapid set up of the cloud environment to replace the old system and integration with existing systems for the continuity of their businesses. So time to do deployment and management becomes a critical factor to mitigate the hesitation in considering a PaaS solution.
- Various applications and user types: An entire industrial solution contains applications across multiple business lines developed and owned by different user groups (individual user or organization user).
- Most of the enterprise users are non-IT professionals who are intimidated by leveraging complex programming models such as Java, Web 2.0, and web services to do development, deployment, and management of applications and systems.
- Specific business requirements are pushed from business stakeholders and customers, such as shorter time to market for competency, support of business agility through rapid modification of the process or business logic, and fast scaling of the enterprise system.
Test and development clouds might also be part of the PaaS framework, but generally such solutions do not need to touch the industry contents.
From the technology perspective, BPM, service-oriented architecture (SOA), and cloud computing can all be combined to render BPM capabilities in a PaaS model. BPM with cloud computing is the way to deliver a process and associated events, human tasks, or database access.
Best practices and patterns
The architecture of industry solutions and the use of PaaS in it varies according to the enterprise or solution-specific application scenario, business model, and enterprise architecture. Integration patterns with industry solutions also vary accordingly. These patterns are summarized below and considered in the architecture of a business process-centric PaaS framework.
- PaaS in an industry solution: This pattern imposes within an industry solution with an embedded PaaS; in other words, PaaS becomes a part of an industry solution, such as a cloud-enabled integrated information framework for the chemical and petroleum industry. In such a pattern, only parts of the components or functionalities are exposed as PaaS services, while the rest of the industry solution is not hosted in the cloud.
- PaaS on an industry solution: This pattern serves those industries that tend to host value-added services in PaaS on the boundary of their industry solutions. The whole system could function without PaaS with its core functionalities and infrastructures maintained in a non-cloud environment. The PaaS-enabled, value-added parts are a test bed for future business growth points. An illustrative example here is the cloud-enabled self-service telecommunications service delivery platform that helps users quickly build from scratch the value-added applications that leverage telecommunication services.
- PaaS of an industry solution: In this pattern, both the PaaS and industry solution are bundled in the same cloud environment. The solution is purely an industry-specific PaaS. A typical example for it is the cloud-enabled financial market data solution. The purpose of the solution is to provide a customizable financial market data hub based on PaaS. PaaS enables the whole business model of the enterprise as an independent node in the ecosystem of the specific industry.
Figure 3 depicts the architecture of a business process-centric PaaS framework for industry solutions to support all three of the above integration patterns.
Figure 3. Architecture of business process-centric PaaS framework for industry solutions
As Figure 3 shows, the proposed PaaS framework includes the following core components:
- Core virtual images that can be automatically provisioned into a cloud infrastructure as a deployable runtime platform. These images can be instantiated as base middleware for running business processes such as process servers, event servers, or rule servers. Depending on the implemented patterns of the framework, the deployed runtime platform might become a whole industry solution or part of an industry solution; or it can interact with a solution.
- An off-premise programming model with supporting development tools that form the codeless developer workspace. The framework's built-in workspace capabilities include tools used for the editing of business processes, mashup user interfaces, business events, and business rules.
- A self-service management portal for service management used to manage three kinds of in-concern services: industry-specific services, PaaS-generated services, and external services.
- BPM multi-tenancy management for both definition and enforcement of multi-tenancy for all BPM-relevant artifacts.
There are also variability points for extension exposed from the PaaS framework:
- Extension points for self-made virtual images to serve for specialized industry solution requirements that can be easily plugged into our framework's virtual image libraries.
- Extension points for self-defined off-premise development tools, which are out of framework built-in capabilities, but are required for individual solution developments. The codeless developer workspace is apt to have extended tools configured.
- Extension points for industry-specific services registration catering to different industries and external services for third party calls.
In building a cloud infrastructure, other considerations include infrastructure resource management and capacity planning. The resources managed in the PaaS framework are provided in the form of virtual machines and associated resources. The management of resources lies in the management of virtual resources.
In industry solutions, the different roles of service providers require different functions and qualities or resource scales. All these can be obtained easily by adjusting the virtual resources on the cloud infrastructure. Furthermore, certain industry services might raise more requirements on resources during business growth to increase the quality of services. Framework built-in virtual templates provide topologies such as a standalone application server and cluster for both normal and larger system throughput. Business users only need to specify service quality options in the service management portal. The corresponding virtual system resources will be automatically associated to satisfy the service quality requirement.
Furthermore, in order to implement resource management and scaling, capacity planning is provided to cater to different user roles. Industrial service providers and business partners can define constraints on resources for initial resource allocation and determine the upper limit for potential growth in future. They can also define the policies to describe the conditions for resource extension and recovery. For example, when the virtual resources used by certain users reach a predefined threshold, cloud infrastructure extends the virtual machine resources by allocating more memory and disk space or by adding more nodes into the cluster to balance workload. Conversely, when the usage of a virtual system is lower than the predefined threshold for a certain time, idle nodes are removed or memory is drawn back.
Cloud computing connects industry solution systems and devices within the cloud computing environment. The PaaS framework, in particular, was introduced, and you learned about the requirements, architecture patterns, and implementation technologies for enabling cloud computing into industry solutions. Based on the framework, the next two articles in this series will discuss how these cloud computing capabilities can be applied to the chemical and petroleum and telecommunications domains.
- "Cloud, SaaS, Hosting and Other Off-Premises Computing Models" (registration required), (Gartner, July 2008)
- IBM® WebSphere® CloudBurst Appliance information center
- IBM Tivoli® Service Automation Manager information center
- "Mapping Clouds of SOA- and Business-related Events for an Enterprise Cockpit in a Java-based Environment," (Daniel Jobst and Gerald Preissler, 2006)
- Find cloud developer resources on developerWorks.