woensdag 23 november 2011

SOA in the Cloud

To name a few buzzwords, the Cloud and SOA are the ones that keep buzzing in ICT land. You'll hear sales pitches like "The Cloud is the future" and "Cloud Computing is a revolution that will define IT in the next decade" and "Only with Service-Oriented Architecture (SOA), organizations will reach the cloud".

What is the Cloud?

When we talk about "the Cloud" we are actually talking about Cloud computing. Currently, most companies and organizations maintain their own IT infrastructure. Wouldn't it be great if your organization could rent a piece of infrastructure such that the responsibility of its maintenance shifts to the side of the lessor or provider. This is especially significant when loads fluctuate and high peaks are reached. In such cases the infrastructure can be easily scaled up on demand (at least that's the general idea) without your IT-department having to take action.

Exactly this is what the whole concept of Cloud computing is all about supplying everything as a service even infrastructure. It doesn't end here as also the platform can be delivered as a service and even applications can be delivered as a service. These three delivery models form the pillars of the Cloud. Companies like Google, Amazon and the likes are already offering such services. Do you use Gmail or Google docs? Congratulations, then you've reached the Cloud!

Let's reiterate these delivery models as well as their characteristics:
1) Infrastructure as a Service (IaaS) – the raw computing and networking resources
2) Platform as a Service (PaaS) – services for developers to build new applications and services
3) Software as a Service (SaaS) – applications and business tasks rendered as services
Taken together, these are often referred to as the SPI stack as described by the National Institute of Standards and Technology (NIST).

NIST also hands us the following definition of Cloud computing:
'Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three delivery models, and four deployment models.'

Let's skip the deployment models for now. Does this definition makes sense to you?

What is SOA?

It's not easy to catch the essence of SOA in a few lines. There are many good and not so good descriptions to be found in literature. Unfortunately, there are a myriad of answers to the question "what is SOA". I'll give it a shot and give you my view on SOA. SOA is all about integrating a set of highly heterogeneous systems resulting into new governing systems and applications. It is an architecture based on solid principles and methodologies for creating software as a set of services that can cooperate. If we can expose the power of legacy systems as services then we can reuse that power as part of a (business) process. SOA is not a ready-made solution, it is an architecture and as such it takes time and effort to design and develop a system based on SOA.

SOA in the Cloud

As the Cloud is just a bunch of services, SOA is well suited for plugging all these nice services together. SOA also provides the means to seamlessly integrate internal and external services (Cloud) allowing for new configurations. SOA works best when it is perfectly aligned with the business. Currently we see that Business Process Modeling (BPM) is becoming more important in the SOA world as BPM is ideal for higher level, more ‘business’-oriented processes that can easily be shared with the business people.

As the cloud sees everything as a service let's introduce Business Process Management (BPM) as a Service (BPMaaS). Peter Fringar provides an exellent description of BPaaS:
[ BPM services represent the highest level in the Cloud services hierarchy. BPaaS provides the complete endto-end business process management needed for the creation and follow-on management of unique business processes. What’s the difference between SaaS and BPMaaS? There’s much more with BPMaaS. With SaaS offerings, a company is buying “same-old” packaged software (though initially configurable), and the “much more” goes far beyond canned “business software as usual” being put online. It goes on to creating unique business processes designed for unique and specific purposes to link together multi-company value delivery systems that in the past weren’t feasible or economical to join together. Call them “collaborative, situational business processes” if you like. Fortunately, those “canned SaaS applications” can become “participants” in unique end-toend business processes that deliver business innovation on demand to create competitive
advantage. ]

Geen opmerkingen:

Een reactie posten