- Service Provider: who publishes services to Service Registry
- Service Consumer: who finds services from Service Registry and use (or “bind” to) them
- Service Registry: where contains information for available services
- Publish: providers announce service availability to consumers via Service Registry
- Find: consumers discover available services inside Registry
- Bind: a service provider and a service consumer reached agreement, and the consumer connected to the service to consume it.
Monday, October 29, 2012
Cloud Computing Model and SOA
Recently, someone asked me that “where is cloud computing not SOA?”. It surprised me first, and then I realized people may have different ideas about what is SOA.Most people may tend to attach SOA to Enterprise Service Broker (ESB) associated solutions, or the technical mechanisms associated with following definition, with or without ESB, which is
Where the core SOA concept presented is shareable services with loosely coupling via a service registry, which is exactly the motivation for cloud computing model as well. The services provided on cloud are intended for sharing. These services are loosely coupled between the cloud service providers and the consumers, and the service binding is based on service agreement. Therefore we have the Cloud Service Conceptual Model:
A similar cloud service infrastructure, or a service platform, can be illustrated as following, where it can also be considered as a PaaS model with SaaS for the depicted service components:
The statement of "The Service Architecture of Cloud Computing is an instance of SOA" is from the conceptual level architecture perspective, based on SOA is "shareable services with loosely coupling via a service registry". There is still distance from the current stage of cloud computing implementation. For cloud computing, the shared services can be implemented in all three layers of infrastructure, platform, and software applications. The current popular effort of infrastructure consolidation, convergence, and virtualization are means to enable shared service in infrastructure layer, or named Infrastructure as a Service (IaaS).