Combining Virtualization Technologies in SOA ...

2 downloads 182 Views 581KB Size Report
Dec 6, 2013 - management of SOA-applications so as to achieve high quality .... A service virtualization software correlates the captured data into a virtual.
3RD INTERNATIONAL CONFERENCE ON APPLICATION OF INFORMATION AND COMMUNICATION TECHNOLOGY AND STATISTICS IN ECONOMY AND EDUCATION (ICAICTSEE – 2013), DECEMBER 6-7TH, 2013, UNWE, SOFIA, BULGARIA

Combining Virtualization Technologies in SOA-applications Mihail Radev1, Yanka Alexandrova2 1 University

of Economics - Varna, 77 Kniaz Boris I Str., 9000 Varna, Bulgaria [email protected]

2 University

of Economics - Varna, 77 Kniaz Boris I Str., 9000 Varna, Bulgaria [email protected]

Abstract. The paper examines possible aspects of applying virtualization technologies during the processes of development, testing, implementation and management of SOA-applications so as to achieve high quality software, shorter release cycles and easier modification and adaptation. The virtualization aspects examined are service virtualization, virtual services and abstract layer of virtual services. The authors point at the main advantages of each of the examined technologies during development and maintenance processes connected to SOA-applications. The comparative analysis of these three technologies concludes with recommendations about the collaborative application of all three aspects of virtualization in order to combine the benefits of each virtualization technology. Keywords. Virtualization, Service Oriented Architecture, virtual services, SOAapplications.

1. Introduction Current SOA application developers are facing many challenges and have to deal with a great number of problems, such as complicated project management, high pressure for short release cycle, increased demand for better software quality, different kinds of constraints and limitations. The purpose of this report is to analyze and compare different virtualization technologies in order to discover their benefits and limitations regarding SOA applications development and eventually to propose recommendations for their collaborative implementation.

2. Virtualization methods and technologies A major part of problems developers experience are due to different kind of limitations and obstacles, such as unavailable or with limited access operational systems, hard to simulate complex systems, scheduling conflicts, constantly changing requirements, and so on. A recent research, made from Coleman Parkes and Computer Associates[3]amongst 501 professionals in software development area in North America and Europe, reveals some of the major challenges, software developers have to face: increased demand for new software release (average 6.4 per year); higher requirements for more and better functionality; shorter release cycles (from 3 to 5 months per version) and strict budget limitations. At the same time respondents point out the main obstacles in software development and testing process. These include - undeveloped applications (marked as a significant challenge by 61% from

56

3RD INTERNATIONAL CONFERENCE ON APPLICATION OF INFORMATION AND COMMUNICATION TECHNOLOGY AND STATISTICS IN ECONOMY AND EDUCATION (ICAICTSEE – 2013), DECEMBER 6-7TH, 2013, UNWE, SOFIA, BULGARIA

American and 39% from European software developers), limited or no access to third-party systems and databases, corporative mainframes and additional license costs associated with using outside resources only for testing and development purposes. The cited research results show negative tendencies for those companies which use conventional approach in development, integration and testing. Although it is not stated specifically, these results are also relevant to SOA applications development as this area is characterized with elaborate production environment, complicated team collaboration and complex government. We think that a significant part from the mentioned limitations and challenges could be overcome through using virtualization in different aspects. These aspects include: 1. Server virtualization (classic or hardware virtualization). From SOA point of view this virtualization aspect could be viewed as a service producer virtualization. 2. Service virtualization – modelling service communication and behavior. 3. Abstract layer of virtual services allowing one service implementation to be represented by several virtual services. Server virtualization Server virtualization helps to achieve consolidation of physical servers, lower maintenance costs and TCO. From software producers’ point of view there are additional and more important advantages following server virtualization such as opportunities for application testing in different operational environments, server resource clustering, providing availability and reliability of services, government and control of services’ load and system restore. Due to the nature of the current SOA applications and inconsistent resource load, one of the main advantages of server virtualization is connected with the possibility of dynamic resource allocation. Service Virtualization Service Virtualization is a practice of “capturing and simulating the behavior, data and performance characteristics of dependent systems and deploying a Virtual Service that represents the dependent system without any constraints, thus allowing software to be developed and delivered faster with lower costs and higher reliability”[4].We have to say that the term “service virtualization” does not refer only to virtualization of web services, but also includes virtualization of all resources used in composite application development as service, data, mainframes, service bus, etc. Server virtualization gives a good number of advantages but is applicable only to under allocated systems. As mentioned before the main part of constraints and problems are due to over allocated resources, which are hard to simulate through hardware virtualization or are unavailable in development in testing phases. The main differences between server and service virtualization could be summarized in the following comparative table (see table 1).

57

3RD INTERNATIONAL CONFERENCE ON APPLICATION OF INFORMATION AND COMMUNICATION TECHNOLOGY AND STATISTICS IN ECONOMY AND EDUCATION (ICAICTSEE – 2013), DECEMBER 6-7TH, 2013, UNWE, SOFIA, BULGARIA

Table 1. Comparison of server and service virtualization. Server virtualization Service virtualization Increased usage of under allocated systems. Virtual image of accessible systems.

Decreased usage of over allocated systems. Access to systems, which cannot be virtualized by server virtualization. Goal: Simulation of system’s behavior and communication. Uses virtual services

Goal: virtualization of the whole system. Uses virtual machines

The comparison reveals that service virtualization could be used in cases where server virtualization is not applicable, e.g. when dealing with over allocated or inaccessible resources. This leads to the conclusion that the two types of virtualization are not interchangeable, but complementary. Virtualization of a service is a process of creating a virtual service which consists of instructions for simulation of a communication between systems. The process typically involves three main phases[4]: 1. Capture. A software component, called “listener” records messages and data exchanged between the application under development and the system which is being simulated. 2. Model. A service virtualization software correlates the captured data into a virtual service that may simulate a credible conversation of requests and responses. 3. Simulate. The deployed virtual service (VS) is used as a stand-in for the simulated system. VS will respond in a more predictable manner than the “real” system giving the appropriate data according to user requests. The idea of simulating external systems is not new and has been widely adopted in process of development of complex, distributed and heterogenic applications. The traditional approach for simulation includes creating a “mock” software application, programmed to return certain data as a response to requests. The main disadvantage of this approach, however, is the narrow scope of possible answers generated from the prototype. This is caused by the limited scenarios of conversation situations coded in software prototype. In order to imitate broader set of communication scenarios developers have to put in significant efforts commeasurable with efforts needed to develop a new system. Another drawback of this conventional simulation approach is the impossibility to use it at the development and testing processes which may lead eventually to a later discovery or ignoring serious mistakes or omissions. The service virtualization approach could help avoid the aforementioned problems through providing plausible environment in development and testing, automation of the process of simulation of external systems, facilitation of parallel team work and dynamic virtual service government through processing of exceptions and adapting VS model. Abstract layer of virtual services. The term “virtual service” used in this virtualization method has rather different meaning compared to the previous virtualization technique. Virtual service here plays the role of intermediate between the real implementation of a service and service consumers. Consumers interact with a virtual service with alike, but not exactly the same interface as that of the “real” service. The virtual service’s interface may define attributes, descriptions and requirements, determined by different service contract in respect of service consumers’ needs and requirements. The interaction between service consumers and producers is carried out in abstract layer which is responsible for synchronization of virtual services interfaces,

58

3RD INTERNATIONAL CONFERENCE ON APPLICATION OF INFORMATION AND COMMUNICATION TECHNOLOGY AND STATISTICS IN ECONOMY AND EDUCATION (ICAICTSEE – 2013), DECEMBER 6-7TH, 2013, UNWE, SOFIA, BULGARIA

transformation if needed, integration with other infrastructures and policy-based changes. Virtual services form the abstract layer that has different addresses from the real service implementation, which allows modifications in service producer to be made without affecting service consumers (see fig.1).

Fig.1. Abstract layer with virtual services[2] Virtual services in abstract layer give several advantages in the process of development of SOA applications such as[2]: · Service versioning. The loose coupling, achieved in virtual services, allows changes to be made in the abstract layer without impact on the service consumers. This permits different versions of one service to exist simultaneously. Representation of different service versions as virtual services is a more efficient approach compared to implementing service versions as different service implementations help minimizing the government and development efforts and increase service reuse which is one of the basic SOA principles. · Service replacement and termination. The migration to new service producer or termination of services could be eased significantly if the needed transformations are made in abstract layer rather than in service consumers. · Introducing new standards or their versions. There is a constantly increasing number of standards in web service domain. Every new standard, subset or standard version requires certain transformations to be made both to producers’ and consumers’ side. With virtual services the introduction and implementation of new standards could be carried out in the abstract layer thus avoiding changes and transformations in service consumers or producers; · Migration to new technology. Composite applications are dynamic and constantly evolve as a response to changes in external and internal for the

59

3RD INTERNATIONAL CONFERENCE ON APPLICATION OF INFORMATION AND COMMUNICATION TECHNOLOGY AND STATISTICS IN ECONOMY AND EDUCATION (ICAICTSEE – 2013), DECEMBER 6-7TH, 2013, UNWE, SOFIA, BULGARIA

company factors as legal regulations, requirements from partners (customers, suppliers, distributors) and others. These changes demand new technologies to be implemented and this requires a complete service makeover. This could be avoided if new technology implementation is made in the abstract layer; · Adapting to requirements of different service consumers. In order to achieve good service reusability developers must meet the requirements of broad set of users who probably use different identification or security methods. The abstract layer could manage these requirements and perform the needed transformations and monitoring of services without changes in their implementation. · Integration of different SOA technologies. Web services can be deployed using different technologies and protocols as Java Message Service (JMS), IBM WebSphere MQ, Representational State Transfer (REST, REST full), SOAP, SMTP (Simple Mail Transfer Protocol), and so on. The collaboration between these technologies and protocols requires significant efforts, which could be realized in the abstract layer thus contributing to increased service reusability and eased development and government. The abstract layer of virtual services permits to achieve agile and secure SOA applications and a higher degree of service reusability. The virtualization of services, however, is not limited only to providing an interface for interacting with the real service. To fulfill at a maximum level the opportunities of this virtualization concept the abstract layer has to carry out integration and synchronization functions as well as the needed service policies and transformations.

3. Comparison and collaborative implementation of Virtualization methods. The aspects of virtualization presented give a clear advantage in building composite applications. It should be noted that despite the specifics, these three aspects of virtualization are not mutually exclusive and may advantageously be used in combination, taking into account the possibilities and limitations thereof, the main ones are shown in Table 2. Table 2. Comparison of the three virtualization methods. Server virtualization

Service virtualization

Virtualization of:

Resources

Service behavior

Limitations

Could not be implemented on over allocated or unavailable resources Increased resources’ usability coefficient; High economic effectiveness;

Implementation only in development and testing phases

Advantages

Short time for development and testing; Reduced costs; Better software quality.

60

Abstract layer of virtual services Interaction between service producer and consumer -

Agility and security of applications; Increased service usability; Loose coupling between producers and consumers.

3RD INTERNATIONAL CONFERENCE ON APPLICATION OF INFORMATION AND COMMUNICATION TECHNOLOGY AND STATISTICS IN ECONOMY AND EDUCATION (ICAICTSEE – 2013), DECEMBER 6-7TH, 2013, UNWE, SOFIA, BULGARIA

4. Conclusion The comparison of benefits and limitations of virtualization aspects, presented in table 2 gives us the ground to propose the following recommendations regarding collaborative use of virtualization methods: · First, use of virtual services at the stages of development and testing of SOAapplications. The implementation of such technologies can be gradual starting from strategically important for the company applications. The most significant limitation of this aspect of virtualization is its application only in the development, modification and testing, but as these are key steps in the process of building applications and given the dynamics of SOA- applications , we believe that the virtualization services are essential for quality and the functionality of the composite applications; · •Second, use of virtual services and abstraction layer for all applications, regardless of their scope , number of implemented services and users . Building abstraction layer should be laid at the stage of defining the requirements for the new application and is a top priority for developers. The use of virtual services contributes to a high degree of realization of the two basic principles of SOA - Reusable Services and independence between consumers and providers of services that ultimately allow the construction of adaptive and functional applications. Collaborative use of the three aspects of virtualization allows multiplication of the positive effects of server virtualization, virtualization services and abstraction layer of services. Server virtualization is a priority in the construction of all kinds of applications and companies have very rich experience in its use. In SOA- applications this method of virtualization could be also successfully applied to all resources, suppliers or consumers of services. However, we believe that the combination of the other two aspects of virtualization would have the greatest effect precisely on creating SOA- applications since both approaches apply methods of abstraction and reuse of services. Combining virtualization services and abstraction layer can be implemented as a virtualization of behavior of services from the abstract layer. Virtualization services could be deployed on the basis of captured communication (exchanges of messages) between the virtual services from the abstract services rather than the real service implementation. This combined approach will allow for multiple versions of one real service to be simulated using a broader set of communication scenarios. Examined aspects of virtualization provide a number of advantages for building SOAapplications such as optimizing the use of resources, shortening the deadlines for development, quality improvement, easier and flexible service management, increase the degree of utilization of services and independence of consumers and service providers and others. We believe that the three methods could be used together in the process of building and operating of SOA- applications thus combining most of the opportunities offered by virtualization.

References 1. 2.

3. 4.

Ariola, W., C.Dunlop, Sevice Virtualization Business Drivers, Parasoft 2013, available at http://www.parasoft.com/servicevirtualization, [accessed 1.12.2013] CISCO Systems, Service Virtualization: Managing Change in a Service-Oriented Architecture. available at: http://www.cisco.com/en/US/prod/collateral/ contnetw/ps5719/ps7314/prod_white_ paper0900aecd806693c2 .html [accessed on 31.13.2013] Coleman Parkes, 2012. North America Study: The Business Benefits of Service Virtualization - Free Report, available at http://servicevirtualization.com/study [accessed 20.11.2013] Michelsen, J. & English, J., Service Virtualization: Reality Is Overrated, Apress 2012

61

Suggest Documents