An Automatic Computing Model Based on SOA
1Junyu Lin,
2Huiqiang Wang,
3Fei Yin,
4Hongwu Lv
1,Computer Science and Technology College Harbin Engineering University Harbin, China
[email protected],
*2,
Computer Science and Technology College Harbin Engineering University Harbin, China ,
[email protected],
3,4,
Computer Science and Technology College Harbin Engineering University Harbin, China
[email protected], [email protected]
Abstract
A service-oriented autonomic computing model is proposed by service-oriented architecture technology. In this model, the computing environment as well as autonomic element is designed in details. Moreover, services loading, a key issue of autonomic computing is improved to deal with inconsistencies of service reference and behaviors. The experimental results show that our works reduce the average transaction response time of web servers, increase the average throughput and enhance the service throughout rate.
Keywords
: Autonomic Computing, Soa, Autonomic Unit, Service Queue Load, Consistency1. Introduction
With rapid development of computing and networking technology, the characters of computer systems seem to be large-scale, distributed and heterogeneous. The cost of system management and maintenance increases significantly[1]. To solve the problem, IBM first put forward the concept of autonomic computing. In the current distributed systems, multi-agent interaction, as a necessary prerequisite for self-management, is the core issues of autonomic computing. Gerald Tesauro and David M. Chess designed a Multi-Agent autonomic computing system[2]. However, it didn’t do further researches on the joint solution for agents. And Badr Y and Maamar Z designed a SOA Grid [3], but the prototype’s characteristics lead to service process binding on specific areas. In addition, Martin P built a simply autonomous Web services environment (AWSE)[4]. However, how to load additional services, how to avoid the loading process consistency conflict with the existing services and other problems have not been studied and solved.
Thus, this paper presents an autonomic computing system model based on service-oriented architecture (SOA)[5]. In the architecture, autonomic computing environment[6] is researched to meet the requirements for distributed, loosely coupled, highly dynamic, clustering and other features of autonomic computing systems. Then the internal control mechanism of autonomic computing unit based on web service was discussed. Finally, the paper focused on how to solve service sequence to load consistency.
2. Background
Autonomic computing is a new concept proposed in October 2001 by IBM. It is a technology for distributed systems to implement with minimal human intervention (Self-managing) [7]. It is expected to solve the cost and management issues about increasingly complex computing environment. The basic features of autonomic computing system include configuring, recovering, self-optimizing, and self-protection [8]. The realization of self-management almostly relies on autonomic compute unit which is the base of systems. For each autonomic compute unit, it consists of an autonomic manager, one or more managed resources, sensors and effectors composition. Furthermore, self-management devices can be divide into 4 steps: Monitor (M), Analyze (A), Plan (P) and Execute (E). All these parts share one knowledge base (Knowledge). And each managed resource provides standard interfaces (sensors, effectors) to autonomic manager to be governed. A generic autonomic computing unit is shown in Figure 1.
Figure 1. General structure of automatic computing modules
3. Autonomic computer system model SOA-based
3.1. Autonomic computing system environment model of SOA
Service-Oriented Architecture (SOA) is a kind of effective architecture used for the development of distributed systems. The SOA-based system/applications are built by a number of web service interfaces that are loosely coupled and with unified standards. And their most prominent feature is the loose coupling of services with good adaptability in rapidly changing computing environment.
The design of SOA autonomic computing environment does not only considered the interoperability among autonomic computing units and the interoperability between autonomic computing units and computing environments, but also considered the necessary of public services in autonomic computing system [9]. Only if meeting these two requirements, the autonomic computing units can have efficient self-perception in the complex computing environment and improve self-management skills. This SOA autonomic computing environment designed has two client nodes: a client with autonomic computing unit and the other with the solution center. The autonomic computing client is a sub-autonomic computing system, which consists of one or more autonomic computing units. The knowledgebase of each unit includes autonomic behaviors library, autonomic function library, and autonomic component library. Autonomic behaviors library and function libraries are atomic web services with specific functions, and component is a service sequence with the form of collections of custom web service. Solution Center is responsible for the management of services, resources and transferring security, which is composed of service registry module, resource management server and secure server. Service registry module provides available information of autonomic unit existing in the environment, facilitating other autonomic units to find. Resources manager saves all address information of resources in the environment to use. Secure servers provide the necessary security services for autonomic computing environment, including authentication and rights management. For the coordination of the various nodes in efficient and reliable manner, transfer systems and file transfer systems are also needed to prepared to facilitate the communicate among distributed nodes and the environment deployment.
3.2. Design autonomic control loop based on web service
For SOA-based autonomic unit control loop, there are some special requirements. According to the changes of environment appropriate plans were developed and used to adapt to the new state of the environment. Autonomic unit control loop consists of three service steps: perception of services, analyzing services, applying services. In the general, autonomic unit includes the four steps: monitoring, analysis, planning and implementation. In this paper, we divide it into three aspects: system sense, state analysis, and application execution. In other words, the two processes of analysis and planning are merged into one. Difference lies on the re-division of self-management domain[10]. Autonomic control loop SOA-based is combined by each element of service. Each type of service
interface and method are the same, but the specific implementation changes according to different needs. Each service independently forms a module, and each module contains specific functions to achieve functions. SOA based autonomic unit control loop is shown in Figure 2. First, the sensor function of the perception service modules completes the information collection of resources, environment, strategy and other information[11]. The information collected form sensing information queue by the service modules. Then, in the analysis services module, information filtering functions and analysis functions do preliminary information filtering and analyzes environment parameters. The result of this process is submitted to service queue[12]. Finally, the service information queue will be transferred to the application service module. Service transform functions output service parameters. The management resources of autonomic unit apply these parameters to loaded appropriate service to change the states of managed resources to achieve system self-management.
Figure 2. Web service-based autonomy unit flow diagram
3.3. Guarantee of consistency of the loading services queue
Consistency is a key issue to be settled in dynamic configuration process. For the SOA-based autonomic computing systems, each node has its own service queue to complete their business functions. However, there are invisible reference relationships to the managers within the service queue[13]. When the managed resources load new service queue, it must ensure that these reference relationships are not destroyed. If inserting new queue into any position of the current service queue without limitation, reference relationship will be changed. It will lead services to fail, so the service queue loading must ensure consistency of services. Specifically, consistency issues include service reference consistency, service behavior consistency. The former refers to the reference each among the various services in queue. If lacking a sound mechanism to ensure service reference information to update timely, consistency problems of service reference will be existed widely. For example, replacing a running server will lead to abnormality. The latter means that service behavior will impact the system's state. Any interrupt of behaviors might cause system in an inconsistent state. For example, any termination during I/O operations may cause errors in file system.
To guarantee consistency, the concept of transaction is lead into our method, which is a combination of one or more services with a specific functions sequence to complete specific behaviors, owing a strong convergent in function and structure. The beginning and end of the transaction is consistent, but in the process is an inconsistent state. Transaction has the following integrity constraints:
Definition 1: Transaction Atomicity Constraint (TAC): transaction execution progression must be atomic.
Definition 2: Transaction Closing Constraint (TCC): Once started the transaction, it cannot add new behavior units to behavior sequences.
Definition 3: Transaction Behavior Consistency (TBC): TBC = TAC ∧ TCC.
By the above definition, the new service queue loading cannot be inserted into the running transactions. It requires to be executed after the transaction finishing. Resolving the issue of service consistency should be done during inserting. The special reference relationship in the service queue stored in the data structure stores the reference information that is reference registry. Loading the new service queue involves registry updates, including deleting the old reference and adding new references. To avoid inconsistency problems, deleting and adding a reference is defined as the connection redirection which have operations atomic. Otherwise, if the reference is deleted and the new references don’t added, it will cause exception about referring inconsistent. Service queue loading process diagram is shown in Figure 3.
Figure 3. Loading service queue diagram
To load service queue and guarantee the consistency of service, the entities of services (service sequences, transactions and services) are defined.
Definition 4: The service entity is a two-tuple SSid,SPRIORITY. Sid is the uniquely identifier to
identify the service. Its data format is triplesSidSsqid,Sstid,Ssid .Ssqid and Sstid specifies the
relationships between transactions and belonged service sequence. SPRIORITY shows the priority of the
service.
Definition 5: The transaction entity is a triple: ST STid,STPRIORITY, STENTITIES .STid and PRIORITY
ST are similar with definition 4 except that the ID and priority are for transaction case.
ENTITIES
ST is the collection of all services that transaction contains. That
means STENTITIES{e|e&s,sServicesQ: (SidSstidSTid)}. The collection means that all
identity of service elementsSTid in the current service queue contains current transaction entitySTstid.
Definition 6: The service queue is a five-tuple:
te ServiceQuo SQ ServiceQ SQ SQ
SQ id, PRIORITY , STATE, Center . SQid and SQPROIORITY are the
identity and priority of the service queue. ServicesQ is the collection of transactions contained in service queue and services, ServicesQ{ST1,ST2,ST3,...STn,S1,S2,S3...Sn} . SQSTATE means the operating state of service queue. The value of it are enumerated type constants(ready,running, stopped). ServiceQuoteCenter is the service reference registry, which is a collection stored mapping between all the entities in the service queue. It means
), , ( | ) ( : {f a b a b teCenter
ServiceQuo aServiceQ bServiceQ} Service queue loading algorithm is shown in Figure. 4:
Figure 4. Service loading process algorithm
In the algorithm, the status parameters of service queue is determined firstly, and if the value of
SQstate is ready or running, then do following operations. During the loading process, analyzing the
independence and priority of insertion point should be do at first. Moreover, according to the above-mentioned TAC principle, the insertion point neither belongs to a transaction nor is an end of a transaction node. In addition, the service doesn’t load operation until the priority of inserted services is higher than that of running service.
Finally, package the operation of deleting and inserting ofServiceQuoteCenter using locking mechanism to ensure atomicity of the update process and service reference consistency.
4. Experiments and Analysis
To analyze the performance of SOA-based autonomic computing system, we do some experiments about quality of service in a distributed computing applications. These experiments designed are on the use of Load-Runner which tests service press of each autonomic computing node in environment. By comparing application within autonomic computing environment and without it, we can gain the differences in service availability, average response time and server throughput. The service loading algorithm reference implementations impact the consistency of guarantee services.
4.1. Experimental environment
Experimental environment uses LAN network and a B/S multi-state simulation PC. The Solution Center deployed on PC0. Online air ticket booking systems (HP Web Site Demo) deploy on PC1, PC2 and PC3. Customers can access different Web site to complete the booking features. In Figure 7, PC0, PC1 and PC3 form together this SOA autonomic computing environment. PC0 is SOA service solution
center of autonomic computing systems and take responsibility for arrangement the system resources and self-management strategies. Web Service autonomic computing control loop is deployed on PC1 and PC3 nodes. The following optimize rules are added to knowledge library of autonomic computing in the PC1 and PC3: 1. If currently the number of simultaneous users instances is more than 50, then set the connections number of the database server connection pool to be maximum to provide maximum server capacity; 2. If currently the number of simultaneous users instances is less than 50, then set the connections to be the half maximum to save system resources. Also, to verify the effectiveness of service queue loading algorithm, service queue loading algorithm deployed in PC3 nodes and PC1 doesn’t change to show contrast. PC2 is a common server without autonomic computing control loop.
4.2. Experimental procedure
Experimental procedures include: recording the script, creation of test scenario and analyzing experimental data. Recording the script consists of logging affair L_A, action affairs T_A, T_B, T_C, cancellation affairs E_A five affairs. Login and logout affairs run in the life cycle only once by each virtual user. The action affairs are a matter of iterative affairs, which means transactions repeats times. To simulate the real application server, different user demand for different types of transaction. In the iterative process set T_A, T_B, T_C by 20%, 60%, 20% to executed. Test script recording should include the appropriate load and concurrent nodes collection setting up, in order to fully test the server's ability to provide services. There are 100 virtual users in the experimental and set node collection when the virtual users complete log transaction to action transaction. When the number of virtual users of nodes collection reaches 20% of the total amount, the system simultaneously add pressure to test the server quality. Experimental designed refers to three loading stages: Every 15 seconds increase 10 virtual users connecting at the stages of booster. At the pressure increasing stages, all virtual users simultaneously access to servers. In the releasing pressure stage, every 30 seconds 20 virtual users close connections. Three stages obey with the law that is the slow pressurization, high pressure last and rapidly depressurization. This method may reflect the servers’ test scenarios in various load pressure.
Service differences in the system that whether deployment of SOA autonomic computing environment can be gotten. Reference conformance of service loading algorithm and system service also can be gotten.
4.3. Experimental results and analysis
Autonomic computing environment servers based on SOA is more suitable than ordinary unit for transaction concurrency and load dynamically to generated autonomic computing server. Autonomic computing unit load can timely adjust to environmental changes. For example: When many users connect the SOA autonomic computing environment server, the system dynamically configures database connection pool to be maximum number of connections and optimize the service request queue to accommodate multi-user concurrent access. By stress testing, the three server service performance data summarize as below in Figure 5.
Figure 5 shows the performance comparison of the data service server. SOA autonomy computing environment servers provide better service than the server without autonomy computing environment. Service queue loading algorithms are not affected system throughput and the service respond clicks, but can significantly improve the adoption rate of the transaction server. By specific analysis, SOA autonomy computing environment servers provide the average throughput of services 102,708 Byte / s and total throughput 44,678,189 Byte. 48.949% and 48.608% is higher than the non-load SOA. The three transactions (begin transaction, action transaction, end transaction) analyze specifically. The servers with SOA autonomy computing environment has lower transaction the average of response time than the servers without SOA. It indicates that the former can faster response the user needs. The two the services with SOA autonomy computing environment indicate that there are small differences in service performance data, such as total throughput were 44,678,150 Byte and 44,678,189 Byte. However, there are significant differences on the adoption rate on the transaction. The server with service queue load algorithm increase by 10 percentage points and 9 percentage points on services
adoption rate than without SOA, at initial and action transaction stage. The method improves the stability of the system. Authentication service queue loading algorithm can effectively improve failure of service response, which is resulted in service consistency in the loading process.
Figure 5. Performance comparison of system services
Average of transaction response time is an important quality of service server. The average of transaction response time service indicates that whether the servers have fast processing power. It directly determines the customers’ satisfaction of the quality of service. In the experiment transaction are divided by functions into T_Init, T_Action, T_End three categories. In Figure 6, L means the experimental data that is with SOA autonomy computing environment server; UL means the experimental data that is without SOA autonomy computing environment server. The average transaction response time of T_Action_L is 172.141 seconds. It of T_Action_UL is 264.399 seconds. While, the average transaction response time T_End_L is one third of T_End_UL. Comprehensively analysis, the servers with SOA autonomy computing environment save 40% the total average transaction response time than the servers without SOA. Experiments show that servers with SOA autonomy computing environment significantly reduced transaction response time and improved the quality of service.
Figure 6. Comparison on the average of transaction response time
Throughput means the amount of data that the clients can get from the server per unit time. Throughput directly affects the servers’ affordability of the load and determines the availability of high-quality simultaneous access to services. In Figure 7 LOAD_SOAA means the processed data of servers, which is equipment with SOA autonomic computing environment. The UNLOAD_SOAA is not equipment with SOA. LOAD_SOAA’s average is 102708.48Byte. The maximum of LOAD_SOAA is 256897.125Byte.UNLOAD_SOAA’s average is 68955.005Byte. The maximum of UNLOAD_SOAA is 190938.875Byte.The SOA methods increase 48.949% and 34.544% to the UNSOA.
Figure 7. Throughout comparison
5. Conclusion and future work
This paper introduces the autonomic computing and service-oriented architecture relevant theoretical background. Then, an autonomic computing system based on SOA is designed and implemented. Introduction of transaction mechanism in the process of the service loading is used to solve the inconsistency problem between service reference and services behaviors. Finally, the experiment of load pressure on the server can show the conclusion: the server with SOA autonomic computing environment save about 40% of the average transaction response time than the server without SOA, improve the average throughput of 49%. The improved service loading process improves service adoption rate of 10%. This study provides a practice of combination of service-oriented technology and autonomic computing to improve the QoS. However, this method also has some defects, which still needs human intervention to complete the initial service configuration of the autonomic unit. An efficient autonomic computing system must not only have the self-management capabilities, but also have the ability to be self-deployed. In future work, the research will focus on how to implement the model to enhance autonomy and dynamic scalability of the autonomic computing environment.
6. Acknowledgment
This work is supported by the National Natural Science Foundation of China under Grant Nos. 60973027; the Special Fund for Basic Scientific Research of Central Colleges under Grant No. HEUCF100601; The Heilongjiang provincial education department’s science and technology research projects under Grant No.12513053.
7. References
[1] Patterson D, Brown A, “Recovery Oriented Computing (ROC): Motivation, definition, Techniques, and case studies”, Computer Science Technical Report UCB//CSD-02-1175 U.C.Berkley, 2002.
[2] Gerald Tesauro, David M, “A Multi-Agent Systems Approach to Autonomic Computing”, Proceedings of the Third International Joint Conference on Autonomous Agents and Multi agent Systems, IEEE Computer Society , Washington, Vol.1, pp. 464-471, 2004.
[3] Badr Y, Maamar Z, “Autonomic service oriented grid to enhance E- learning experiences”, Proceedings of the Third IEEE International Conference on Digital Ecosystems and Technologies, pp.649-654, 2009.
[4] Martin P. Powley W, “The WSDM of Autonomic Computing: Experiences in Implementing Autonomic Web Services”, Proc ICSE 2007 Workshops: International Workshop on Software Engineering for Adaptive and Self-Managing Systems, pp. 9-9, 2007.
[5] A. M. Riad, Q. F. Hassan , “Service-Oriented Architecture ??A New Alternative to Traditional Integration Methods in B2B Applications”, JCIT: Journal of Convergence Information Technology, Vol. 3, No. 1, pp ~ 41, 2008.
[6] Li Dequan, Wang Ying, Xiong Anyuan, Ma Tinghua, “High Performance Computing Model for Processing Meteorological Data in Cluster System”, JCIT: Journal of Convergence Information Technology, Vol. 6, No. 4, pp. 92 ~ 98, 2011.
[7] Kephart J, Chess D. “The vision of autonomic computing”, Computer(S 0018-9162), Vol.36, pp. 41-50, 2003.
[8] Mazeiar S, Ladan T, “Autonomic computing: emerging trends and open problems”, Proceedings of the 2005 workshop on Design and evolution of autonomic application software, DEAS’05, Vol.30, pp. 1-7, 2005.
[9] ZHAN Haijun, SHI Zhongzhi, “Software Engineering for Autonomic Computing”. mini microsystem, Vol.27, No. 6, pp.1077-1082, 2006.
[10]Sterritt R, Parashar M, Tianfield H, Unland R, “A Concise Introduction to Autonomic Computing”, Advanced Engineering Informatics, Vol.19, No.3, pp.181-187, 2005.
[11]B B Madana, G P Katerina, K Vaidyanathan, K S, Trivedi, “A Method for Modeling and Quantifying The Security Attributes of Intrusion Tolerant Systems”, Performance Evaluation, Vol.56, 167–186, 2004.
[12]M C. Huebscher, J A. McCann, “A survey of Autonomic Computing—Degrees, Models, and Applications”, ACM Computing Surveys (CSUR),Vol.40, No. 3, pp.1-28, 2008.
[13]Matthias Baldauf, Schahram Dustdar, Florian Rosenberg, “A survey on context-aware systems. International Journal of Ad Hoc and Ubiquitous Computing archive”, Vol.2, No.4, pp.263-277, 2007.