Cloud Computing and Service Oriented Architecture (SOA) are two complementary concepts that can be used independently or in agreement. Previously we wrote elaborately about Service Oriented Architecture (SOA) and this website, at current situation is directly related to Cloud Computing. Now, we will integrate two parts – Cloud Computing and Relationship with Service Oriented Architecture.
Cloud Computing and Relationship with Service Oriented Architecture : The Concept
Service Oriented Architecture is a paradigm of design intended for creation of logical units of solution that are individually molded to be collectively and repetitively used to support the implementation of specific strategic objectives and benefits associated with service oriented computing. The logic decisive designed in accordance with service orientation can be qualified with the concept – “Service-oriented” and units of service-oriented logic are referred as “services”. The reason behind this article on Cloud Computing and Relationship with Service Oriented Architecture is to make this concept clear to the users, developers and obviously the new service providers.
- Standardized service contract : Services belonging to the same group are in accordance with the same contractual standards.
- Abstraction of the service : Service contracts only contain essential information and information relating to the services which are limited to what is published in the service contracts.
- Re-usability of the service : Services contain and express a logical “agnostic” attitude and can be positioned among reusable enterprise resources.
- Autonomy of the service : The services that exert a high level of control along their execution environment level down.
- Modularity of the service : Services must be assembled regardless of size and complexity of their composition.
Cloud Computing and Relationship with Service Oriented Architecture : Apply the Concepts
Service Oriented Architecture is a flexible set of design principles that guide the process of development and integration of software systems. The use of this method involves the realization and the externalization of functionality through a set of inter-operable services that may reside in different systems and / or administrative domains. The service is intended as a software component that encapsulates the logical operations those are required to deliver for a given business functionality.
In a typical scenario, the service provider is responsible for implementing the service and defines a service description service discovery agency, concretely realized through a register or a repository such as UDDI (Universal Description Discovery and Integration). This component allows the availability of the service. The service client queries the service, discovery agency retrieve the service description of interest in order to report (bind) the service implementation. The concept of loosely bound (loose coupling) is of fundamental importance in the context of SOA as it identifies a fundamental characteristic. Adherence to this principle prevents the that communication takes place by direct reference, but rather suggests a logical message exchange over the definition of appropriate protocols, thus ensuring the autonomy of involved services.
The use of Service Oriented Architecture ultimately allows to develop distributed software systems dynamically by assembling the services of variable size. In a dynamic scenario of continuous change of organizational boundaries and processes of business enterprises the flexibility provided by Service Oriented Architecture has particular advantages, allowing the user to quickly adapt to the needs. The reuse of services in different application contexts allows the development of software systems making more agile, while the principles of autonomy and weak binding limit interference between components, reducing the maintenance costs and the complexity of the system. Service Oriented Architecture defines an architecture that abstracts from specific choices in terms of protocols and technologies. WSDL – Web Service Definition Language is for defining service descriptions and SOAP – Simple Object Access Protocol is for the transport of message. It important to note that the substantial difference exists between the concepts of Service Oriented Architecture and Web Services. The web service is a concrete implementation of a generic service-oriented architectural model, where Service Oriented Architecture represents a particular instance. As a result, there is possible existence of web services that do not adhere fully to the specific principles of Service Oriented Architecture.
From an architectural point of view, in cloud computing, SOA shares with the central role in regard to service orientation. A clear definition of the existing border between the two models can be highlighted, however, by stating the differences between them. SOA identifies the idea of service as a principle of design of the system. Cloud computing places the concept of service to a higher level of generality and abstraction, in particular it identifies the relationship between the user and the generic computational resource of interest; thus assuming a connotation of an economic nature. In this context, the software is only a subset of the total domain.
The principle of service-oriented-computing evolves then towards the idea of “computing-as-a-service” – applications, platforms, networking, storage and computing devices are offered as services. The different nature of the two entities can conceptualize Cloud Computing as the platform, on which it is possible but not necessary to develop software systems by adhering to the principles of SOA. In this regard, the web services are a possible proposal. Decoupling the application of the two concepts is evident, for example taking the opportunity to develop applications in cloud computing (SaaS) with a monolithic design, as it is possible to engineer a software system from a service-oriented in a stranger to the cloud.
Cloud Computing and SOA are therefore two complementary concepts that can be used independently or in agreement. The integration of services is, however, a critical factor in the cloud, involving both infrastructure and internal applications with relationship with external resources. SOA allows to deal effectively with these problems by defining the design principles for systems, such as composition, reuse, consistency and defining standards for the interfaces of the components.