Why Service Orientation Is Important for Cloud Computing Models
Services are important for cloud computing from both an infrastructure and an application perspective. When you have some background on how to take a service-oriented approach to designing technology systems, you can begin to see the relationship between this approach and cloud computing.
Service orientation permeates the cloud, and the cloud serves as an environment that can host other services (either at a technical or a business level). Therefore, cloud vendors need to think about the architecture of their platforms so they can support different business models.
Here are two different scenarios that a cloud provider may have to deal with:
Cloud providers built the cloud infrastructure on well-designed services with clearly defined black-box interfaces. These black-box services allow the cloud to scale. In order to execute this approach, the cloud infrastructure needs to be service-oriented.
Companies building applications designed for the cloud tend to build them out as services, which makes it easier for customers and partners to use them. For example, SaaS (Software as a Service) providers need an ecosystem of partners that provides either complementary components or full applications that are important to sustaining and growing their businesses. Following a service-oriented approach is a prerequisite for partners desiring to build economically on these platforms.
Infrastructure as a Service (IaaS)
The IaaS (Infrastructure as a Service) layer offers storage and computing resources that developers and IT organizations can use to deliver custom business solutions. A cloud provider wants the provisioning capability associated with the IaaS to be designed as a modular service with published interfaces so it can be used for many different situations.
Say you have a group of applications that you want to run in a public cloud because you want capacity on demand. You sign up with an IaaS provider. Via your web browser, you can buy this capacity and start running your applications on the service. While you’re running the application, the service provisions hardware to run it and then de-provisions the virtualized servers when you’re done.
As a user of this capacity provisioning service, you don’t need to know how the provider is making the service happen; it’s a black box to you. If the cloud weren’t service-oriented, you’d have to figure out how to provision your application to the environment. With the cloud, you can use a single provisioning service.
Platform as a Service (PaaS)
The PaaS (Platform as a Service) layer offers development environments to create cloud-ready business applications. This model is offered as a set of black-box services that enables developers to build applications on top of the computing infrastructure. This might include developer tools that are offered as a service to build services, or even data access and database services, or even billing services.
In these situations, the principles of service orientation (such as loose coupling and reusability) are applied to IT infrastructure components that are delivered as cloud services to PaaS users. Developers in your organization may locate the platform services they need by referring to a service catalog.
Software as a Service (SaaS)
With SaaS (Software as a Service), the provider hosts the software for you so that you don’t need to install it, manage it, or buy hardware for it. All you have to do is connect to it and use it.
For example, you might use CRM as a service or accounting as a service. Many of these providers have created their services in a modular way to enable scalability (because you’re using these services along with perhaps thousands of other clients). A services-oriented approach allows the provider, for example, to swap out functionality easily.
In all these models, companies will use a set of well-defined services that they can access through interfaces. Companies can leverage these services in many different ways, depending on the problems they’re trying to resolve.
Companies benefit from service orientation and the cloud because both of these approaches place a priority on understanding what the business needs, when it needs it, and how efficiently and cost-effectively the business can be served.
Business Process as a Service (BPaaS)
With BPaaS (Business Process as a Service), the service provider creates a set of commonly used processes that can be connected to other environments, including IaaS and SaaS. A service provider or a developer could use a BPaaS to design a business process.
An example of a business process might be a way for a retailer to include a shipping service as part of the e-commerce system. Because these services are written independently, adding new business processes to either serve a different constituent or automate a new business initiate becomes easier.