Группа авторов

Cloud Computing Solutions


Скачать книгу

In the case of stateless server, a client doesn’t need to first establish a communication to the server; instead, the server views a client request as an autonomous transaction and responds to the client.

      Cloud computing uses a stateless server due to some of the following obvious reasons:

       If the server node fails due to some technical faults or natural disaster, it will create a considerable overhead because of maintenance of the state of all the connections.

       If a stateless server goes down, the clients won’t be affected because no data or no information from the client’s side will be lost.

       The clients need not be concerned about all the states of the server; if a client gets a response to a request, that indicates the server is running and quite capable of handling a request.

       A stateless server is more advantageous than a connection-oriented service. In the connection-oriented service, the states of all the connections have to be stored and that will take up space in the memory. So, the stateless server is also memory efficient.

      The common example of a stateless server is a web server. The web server need not keep the history and states of the past interactions with client; it just responds to the HTTP (Hypertext Transfer Protocol) request made by the clients. HTTP is basically a request-response application protocol which is used to communicate between the web servers and the clients, i.e., a web browser. Web browsers are also stateless; neither the clients nor the web browsers need to reserve the state of the server; they just send the requests and wait for the reply from the web server.

      The following subsections deal with the service-oriented architecture (SOA), the need for SOA in cloud computing, its characteristics, and combining the strategy of SOA and cloud architecture.

       3.2.1 Service-Oriented Architecture (SOA)

      Cloud computing environment has basic characteristics like self-service provisioning, pay as-go, elasticity, and on-demand usage. The main concept behind the cloud architecture is its of modular framework-based approach which makes cloud so popular. A component-based and modular-based approach of cloud architecture enables the cloud characteristics. What lies under the cloud framework or cloud flexibility is the modular approach of service-oriented architecture (SOA). So, this subsection presents a basic overview of service-oriented architecture.

      Jothy Rosenberg and Arthur Mateos have defined SOA as follows [10]:

       “A flexible set of design principles used during the phases of systems development and integration. A deployed SOA-based architecture provides a loosely coupled suite of services that can be used in multiple business domains. SOA separates functions into distinct units, or services, which developers make accessible over a network (usually the internet) in order to allow users to combine and reuse them in the production of applications. These services, and their corresponding consumers, communicate with each other by passing data in a well-defined, shared format (usually XML), or by coordinating an activity between two or more services.”

      Service-oriented architecture is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. Service is a mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description [11]. In a service-oriented architecture environment, end-users request an IT service (or an integrated collection of such services) at the desired functional, quality and capacity level, and receive it either at the time requested or at a specified later time. Service discovery, brokering, and reliability are important, and services are usually designed to interoperate, as are the composites made of services. In the service-oriented architecture approach, service-based solutions are the major vehicle for delivery of information and other IT-assisted functions at both individual and organizational levels, e.g., software applications, web-based services, personal and business computing.

      Consider an example to understand the application of SOA and also get an idea of how SOA and cloud computing are combined to provide services to customers. Let’s take a corporate travel reservation system which requires the SOA approach and SaaS service. A corporate travel reservation system is required to fulfill requests for reservations with multiple airlines and hotels for corporate employees traveling on business trips. An approach for design of travel reservations solution for use by corporate business travelers based on service-oriented architecture, software as a service, and cloud computing paradigms can be taken as an example of cloud. Here a single copy of software can be made available to consumers on demand as a shared service accessible over remote network location and charged on subscription or pay-per-use basis. The term SaaS denotes application software provided in such a way [12].

       3.2.2 SOA Characterization

      The main features and key characteristics of SOA are described below so that the readers can easily understand the real use of SOA in cloud computing and why the SOA characteristics are combined with cloud architecture.

       Black-box component concept in SOA: The main feature of black box is reusability of existing business applications. When the developers are mounting new applications, they feel free to reuse the advantages of existing applications; black box is simply adding adapter to them. The service consumers don’t really need to be on familiar terms with the details of what is going on inside each component. SOA hides the underlying structure and the complexity.

       Loose coupling: Previously, in traditional structure, the different software components are extremely dependent on each other and that makes the applications more complex and time-consuming. A bit change on one component makes lots of changes in others. So, to make the applications more feasible to the customers, the components of SOA have been made loosely coupled, which is the independent modular approach which makes the developer feel free to keep the software modules together and reuse them according to the needs of the user. Loosely coupled components can interchange the data between them after processing. One component does its task and passes the data to another neighboring component which carries out the job and either keeps the data or passes on the data accordingly. You might be a bit confused regarding the software module. What is a software module? How is it used? How can it be reused? However, we will consider an example so that we can understand the concept of software module. Software module is nothing but a collection of coding. If users want to access resources from their service provider, they make a request to the provider. The provider handles the request and gives permission. So, there is a need for authentication and authorization. This is done with a coding component. This code can be done in an application-specific or independent coding way. The latter is more useful because we can use this type of independent coding as a software module and with some modification of this coding module we are able to reuse that component.

       Service-oriented architecture: SOA supports an environment where different components are arranged in such a way that SOA is able to deliver a business service. While designing SOA service, developers incorporate some service-level agreements (SLA) so that a standard platform can be built for business management. This is called business process management (BPM). BPM is highly required to maintain the alignment of business service.

       3.2.3 Life Cycle of Services in SOA

      Now we are moving on to the life cycle of services in SOA. A service life cycle is required to understand the sequential activities, processes and the physical and computing resources necessary for designing, building, developing, deploying and finally executing and delivering the services that make up SOA.