Proc. of Int. Conf. on Recent Trends in Information, Telecommunication and Computing, ITC
A Review on Dependency Analysis of SOA based System Pawan Kumar 1 and Ratneshwer2 1
Banaras Hindu University, Department of Computer Science,Varanasi,India Email: pawan.bhuphd@gmail.com 2 Banaras Hindu University, Department of Computer Science,Varanasi,India Email: ratneshwer@gmail.com
Abstract—This paper presents a survey of Dependency Analysis of Service Oriented Architecture (SOA) based systems. SOA presents newer aspects of dependency analysis due to its different architectural style and programming paradigm. This paper surveys the previous work taken on dependency analysis of service oriented systems. This study shows the strengths and weaknesses of current approaches and tools available for dependency analysis task in context of SOA. The main motivation of this work is to summarize the recent approaches in this field of research, identify major issue and challenges in dependency analysis of SOA based systems and motivate further research on this topic. Index Terms—Service oriented architecture, Software services, Dependency analysis
I. INTRODUCTION Dependency analysis has had its importance recognized by software engineering people. However a systematic and disciplined way to review dependency analysis work for Service Oriented Architecture (SOA) based systems has not yet been observed. This paper presents literature review of Dependency Analysis work of SOA based systems. Different research questions related to dependency analysis in SOA are identified. During the study, we observed a few review papers related to SOA and Dependency Analysis. This review paper will help to understand current situation of research in dependency analysis of SOA. In this study, standard journals related to software engineering and service oriented architecture have been selected. This literature review on dependency analysis of SOA based system is conducted according to guideline proposed by Kitchenham [1]. The main characteristic of SOA is loose coupling and service contracts. Since individual service cannot perform a complex task, composite services are required which are composed by individual services. To create composite service it becomes essential to do dependency analysis carefully. A devastating situation may occur if some dependencies among services are not identified carefully. Some SOA based systems may be real time systems. In real time system, it is inevitable to identify every dependency because any dependency may lead to catastrophic situation. Our purpose of doing this review is to reveal the issues and challenges of dependency analysis of SOA based systems. SOA presents newer aspects of dependency analysis due to its different architectural style and programming paradigm. This paper surveys the previous work taken on dependency analysis of service oriented systems. This study shows the strengths and weaknesses of current approaches and tools available DOI: 02.ITC.2014.5.11 © Association of Computer Electronics and Electrical Engineers, 2014
for dependency analysis task in context of SOA. There is similarity between service oriented development and component based development but we focus on the dependency analysis work related to software services. In this way this review work will naturally strengthen the coherency between the SOA and dependency analysis and traces a better picture of major issues, challenges and possible solutions of dependency analysis of SOA based systems. This paper is organised as follows. In section II, existing works related to review/survey of dependency analysis are mentioned briefly. In Section III, the concepts of SOA and dependency analysis are described briefly. In section IV, the research method for conducting the review is described briefly and research questions are identified. In section V and following subsections, the answer of each question is given as far as possible. In section VI, a brief discussion is given. Finally this paper is concluded in section VII. II. RELATED WORK In literature, the problem of dependency has been addressed widely but very few works has been observed regarding review work of dependency analysis. Parnas (1979) [2] pointed out the problems of having uncontrolled dependencies between software modules and introduced the concept of information hiding. One significant work found in the literature is performed by Arias et al [3]. This paper contains extensive survey of dependency analysis and gives relevant information about dependency analysis. An industrial survey of requirements interdependencies in software product release planning has been given in [4]. This paper describes the complexity of requirements interdependency analysis in relation to metrics of requirements coupling. A survey of data dependency analysis techniques for automated parallelization is given in [5]. This paper [5] discusses the dependencies that exist between statements in that program and detailing several different classes of dependence analysis techniques. Bhuyan, Prakash and Mohpatra [6] have performed a survey of regression testing of SOA based systems. This paper gives valuable information pertinent to testing in SOA, but it has not discussed about dependency analysis [6]. Motlagh [7] has done a survey of testing of SOA based system. This paper has described about testing challenges of SOA based systems. Lewis, Smith and Kontogiannis [8], in their report, outlined the SOA research agenda. It also provides detail on specific research challenges related to the maintenance and evolution of service-oriented systems. Li et al [9] have performed a survey of code based change impact analysis techniques.Bohner [52] has discussed impact of interdependency relationship among software components. The above contributions demonstrate that although various approaches of survey and literature works are available in the literature but a systematic and disciplined literature review work of dependency analysis especially in context of SOA is yet not found. The proposed work extends the above contributions further. III. SOA AND DEPENDENCY ANALYSIS The one major problem that we encountered during this work is the divisive definition of SOA and the confusion associated with the service oriented architecture and service oriented implementation. We made a general understanding of SOA based on following definition. “SOA is a design philosophy independent of any vendor, product, and technology or industry trend. SOA may be realized via web services but web services are not necessary required to implement SOA. With an SOA the application’s functionality is exposed through a collection of services. These services are independent and encapsulate both the business logic and its associated data. The services are interconnected via messages with a schema defining their format; a contract defining their interchanges and a policy defining how they should be exchanged [10].” “Service-Oriented Architecture (SOA) is a software architecture where functionality is grouped around business processes and packaged as inter operable services. SOA also describes IT infrastructure which allows different applications to exchange data with one another as they participate in business processes. These services communicate with each other by passing data from one service to another, or by coordinating an activity between two or more services [11]. Service coupling shows how much a service has dependency to other services. Since business process choreography is performed by calling services according to business process control flow, it is possible that input of a service is obtained from output of other services, and these results in coupling of two services. A request to a service is implemented through a message which is sent to service operations [12]. 70
Understanding dependencies in a SOA based system is essential to perform two functions: impact analysis (understanding which other components are affected when a component become unavailable) and software component level root cause analysis (understanding the cause of a component by looking at the other components it relies on) [13,51]. In an SOA based systems, software services depend on other software services by service providing/ receiving relationships. A service-oriented system consists of a set of services and includes various types of dependencies among them such as business processes, semantic, messages, and non-functional requirements and the underlying information models shared by these service dependencies. Discovery of dependencies among services of large distributed systems is crucial for management software. Higher dependency leads a complex system vulnerable, which results in poor understanding and a higher maintenance cost in SOA. Dependency is a relationship involving two or more services where a change of state in one or more component leads to a potential for a change of state in one or more other services. Dependency analysis involves the identification of interdependent services of a system. These interdependent services work as subsets of the system and is referred as the reduction technique. IV. RESEARCH METHOD The identification of research questions is the first step of systematic literature review (SLR). Research questions have pivotal role in literature review. Dependency analysis in any system is inevitable for checking the quality of the system. Dependency analysis helps in testing, maintaining, identifying the error of the system. It prevents chaos of the system failure. Since SOA is an active research area and it can solve a number of real problems, to solve dependency issue in SOA is essential. Complex Services may be generated using atomic services dynamically. To identify dependencies among services are essential because fault in atomic service would affect adversely the overall system. A. Research Questions Some basic questions related to dependency analysis of SOA based systems have been taken. The research questions addressed by this study are as follows: RQ1. What are the proposed definitions of dependency of SOA based system? Motivation: The first step is to understand about dependency related to SOA. RQ2. What are the available dependency solutions for SOA based System? Motivation: Obtain an overview of existing solutions so that one can build newer solution according to existing solutions. Using overviews one can highlight pros and cons of existing solutions. RQ3. What are the relative impacts of syntactic and logical dependencies on the failure proneness of SOA based system? Motivation: Obtain the reasons of failure of SOA based system due to syntactic and logical dependency. RQ4. What is the research challenges observed for dependency analysis of SOA based system? Motivation: To identify hindrance to do the work for dependency analysis of SOA. By reviewing the existing research, it becomes easy to find research challenges. RQ5. What are the available tools for dependency analysis in SOA based system? Motivation: By this question, it has been tried to identify the existence tools and their pros and cons. We have performed two fold manner of searching of research papers related to the topic i.e. sequential manner and random manner. In sequential manner, we search the papers from selected journals for certain duration. In this study, we have taken standard journals and proceeding of conferences from 2000 to 2012. SOA is a new paradigm and most of the significant works are observed after 2000. Because of this reason, journals and proceeding have been selected since 2000. The list of the selected journals and conference proceedings are given in Table I. In random searching, search has been performed at random using keyword related ‘dependency in Service Oriented Architecture’, ‘dependency management in SOA’, ‘dependency among software services’ etc. We have used Google, Live and Babylon search engine for the purpose. B. Search Strategy Aforementioned journals and proceedings have been opened manually. Researchers can be misguided by using title of research paper to select literature relevant to research questions. To go through full research
71
TABLE I. SELECTED JOURNALS AND CONFERENCE PROCEEDING Source
Acronym
Information and Software Technology IEEE Transactions on Software Engineering ACM Computing Surveys ACM Transaction on Software Engineering Methodologies Empirical Software Engineering Journal Proceeding International Conference on Software Engineering Service Oriented Computing and Application Proceeding International Conference on Service Oriented Computing Proceeding International Conference on Next Generation Web Services Practices Proceeding International Conference on Web Services IEEE Transactions on Service Computing
IST TSE ACM Sur TOSEM EMSE ICSE SOCA ICSOC ICNGWSP ICWS TSC
paper of every selected journals and conference proceeding is tedious and cumbersome task because of excessively irrelevant material. So it is wastage of time and energy. Our strategy is to go through only abstract and introduction of each paper. Using abstract and introduction it can be identified that which paper is relevant to aforementioned research questions. Relevant papers would be selected for detailed study. The abstract in which keywords ‘dependency’ and ‘service’ contains would be considered as potential research paper relevant to proposed research questions. V. OBSERVATION In this section, possible answers of aforementioned questions have been discussed. RQ1. What are the proposed definitions of Dependency of SOA based system? In the present literature, the definitions of service dependencies are given in ad-hoc manner and vary widely in concepts. The dependency is assumed as a relationship of services offering functionality to other services. Winkler et al. [14] define service dependency as “A service dependency is a directed relation between services. It is expressed as a 1: n relationship where one service (dependant) depends on one or multiple services (antecedent). A service S1 is dependent on a service S2 if the provisioning of service S1 is conditional to the provisioning of service S2, i.e. if a property of service S1 is affected by a property of S2.” Service dependency is beyond traditional poor service description, and directed by various sources such as data, resource, procedure control, utilizing techniques etc [15]. Another definition of service dependency is given in [16] as ‘A component is said to depend on a service if it (may be temporarily) needs the functionality of that service.’ Most of the definitions describe dependencies in software services at the time of service composition. A summary of the types of the dependencies, for SOA based systems, given in the literature are listed below in Table II. In SOA it is important to observe dependency at architecture level, design level and code level. A. Architecture level dependency When following architecture-driven strategies to develop large software intensive systems, the analysis of the dependencies is not a trivial task [3]. Typically, the level of detailed available for software services is limited, and as a result, dependency analysis of software services may be performed at architecture level. At architecture level, dependencies can be identified based on syntactic and semantic information available in a formal specification of software architecture and the connections among services and the constraints on their interactions. In SOA, the analysis of dependencies at architecture level is important for understanding the coordination, choreography and orchestration of services. An efficient dependency management for serviceoriented peer-to-peer architectures turns out to be indispensable for guaranteeing a stable environment in which applications are accomplished to operate in a reliable manner [22].
72
TABLE II. DEPENDENCY R ELATIONSHIP OBSERVED IN LITERATURE Types of Dependencies Design Time Dependencies Hidden Dependency
Sequential Dependency
Technical Dependency Cyclic Dependency Input/output Dependency Constraint Dependency Cause and Effect Dependency Structural Dependencies Transitive Dependency Static Dependency
Short Description Design time dependency refers to the dependency of a service as it exists after deployment but before execution. Service Dependency which cannot be identified directly by developer. It may create catastrophic situation in a critical system. Classical temporal language (CTL) such as Linear Temporal Logic (LTL), Computational Tree Logic (CTL) or calculus have been suggested as appropriate notations for expressing sequential dependencies between services. Technical dependencies between software services being developed by different developer create a need for communication and coordination between developers. Suppose there are three services s1, s2 and s3. If s1 is dependent on s2, s2 on s3 and s3 on s1, then it is cyclic dependency. It occurs when a service requires/provides data from /to another service. It occurs due to user constraint. It occurs when a service has preconditions to be satisfied based on the effect of the other services. It exists on the level of models and application executions. Assume there are three services s1,s2, and s3. If s1 is dependent on s2, s2 on s3 then s1 is dependent on s3. This dependency occurs at code level in services. It is identified at compile time of services.
Dynamic Dependency
It occurs at code level. It is identified at run time of services.
Horizontal Dependency Vertical Dependency
Dependency between atomic services. Dependency between atomic service and composite service. A price dependency exists when the price of a service depends on the price of other services. Location dependencies occur between two services that need to be executed at the same or at a different location. Two services have a resource dependency, when the availability of a resource, which is needed by one service, depends on another service.
Price Dependency Location Dependencies Resource Dependency
References Phukan[17] Leon et al. [18]
Halle et al.[19]
de Souza et al. [20] Omer and Schill [21] Omer and Schill [21] Omer and Schill [21] Omer and Schill [21] Arias et al.[3] Alda[22] Arias et al.[3], Basu et al.[13] Arias et al.[3], Basu et al.[13], Keller et al.[23] Winkler et al.[14] Winkler et al.[14] Winkler et al.[14] Winkler et al.[14] Winkler et al.[14]
B. Design level dependency Detection of inter-service dependencies at design time is crucial in order to enable effects analysis upon failure of a service inside a service composition [24]. Dependency analysis at design time provides information about which service depend on other services before they execute. If proper dependency analysis, among software services, is performed then the design level weaknesses can be easily identified and then design modifications can be made early in the design cycle and reduce the cost of development. This analysis can also be used as a measure of quality for software services that software services are an acceptable design choice. In MoDe4SLA approach [25], authors analyzed, at design time, the dependencies between different services with respect to the agreed response time and costs of the different services. Phukan [17] described design time dependency as the dependency of a process as it exists after deployment but before execution. Leon and Foss [18] have discussed hidden dependency among services. This paper has described that hidden dependency can affect system severely in critical services. Omer and Schill [21] have described input/output dependency, constraint dependency, cause and effect dependency under the category of design level dependency. This dependency plays a major role to develop quality software. At this level different modules are constructed according to the basis of core SOA principle. Individual service cannot perform a business function so composition of services is essential for business functionality. In this case composite service is fully dependent on individual services. If individual servicemalfunctions, then effect of this will reflect to the composite service.
73
C. Code level dependency Analysis of service dependencies at execution time is crucial in order to understand the effect of services in case of failure. When a service has a failure or performance degradation, all other services that depend directly or indirectly on this service might be impacted. Dynamic dependencies involve with handling unpredictable changes of runtime environment that cannot be handled using static composition techniques [21]. In order to keep system disturbance as low as possible while replacing existing services with their newer versions, engineers require an adequate illustration of how the connections and dependencies of services change in the running system [26]. The dependence discovery must be focused on capturing snapshots of dependence information relevant to each service request of concern, rather than finding statistical averages for long-term dependencies [28]. Q2. What are the available dependency analysis solutions for SOA based system? There are various approaches available for dependency analysis of SOA based system in literature. Summary of these approaches are categorised as given in Table III. TABLE III. DEPENDENCY ANALYSIS SOLUTIONS FOR SOA B ASED SYSTEM OBESERVED IN LITERATURE Dependency Analysis Solutions Graph Based Approach
Formal Modelling Approach
Quantitative Modelling Approach Artificial Intelligence Approach
References
Phukan [17], Omer and Schill [21], Alda[22], Espinha, Zaidman and Gross [26], . Egyed [27], Wang and Capretz [29], Ensel and Keller [16], Baresi et al [30], Baloch and Crespi [31], Yan, Xu and Gu [32] Yanchuk et al.[33], Winkler et al.[14] , Hasselmeyer [34] , Zhou et al.[15], Basu, Casati and Daniel [13], Bodenstaff et al [25], Zheng, Zhou and Krause [35], Brogi and Popescu [36], Kuang et al [37], Yan, Chen Liu and Lei Liu [38], Steinle et al [39], Baloch and Crespi [31], Liu, Ma and Zhao [40], Tolksdorf [41] Cataldo et al. [42] , Binkley et al. [43], Wang and Capretz [44], Tuura and Tylor [45], Wang and Capretz [29] Goehring et al.[46], Novonty et al. [28], Ai and Tang [47], Ensel [48]
On the basis of Table III, we have described dependency analysis solutions briefly in the following paragraphs: D. Graph Based Approach In an SOA based system, with a few involved services; it would be easy to understand the dependencies among services by their textual description. But as the number of involved services, in a SOA based system, increases it becomes difficult to analyze and track dependencies among services based on their textual descriptions only. To represent the dependencies among services, in an effective manner, a graphical representation is an efficient and easy to understand approach. Graph Based Approach is very powerful tool for dependency analysis for SOA based system. Significant works have been observed in Graph based service dependency analysis. Phukan [17] has discussed some of the problems inherent in the SOA service life cycle, and shows how graph based automated dependency tracking can help to analyze and alleviate these problems. Omer and Schill [21]have proposed a method of automatic composition plan based on automatic extraction of dependencies among services. These services are represented using a directed graph. Their approach utilizes existing graph traversal based algorithms to extract cyclic dependency and generate the execution plan. The graph that models the dependency has n nodes where n equals available services to form the composite service and edges represent the dependency link. The edge direction indicates the service dependency flow. Alda, in his work, [22] has represented dependencies among services in a graph like structure and shown a graphical visualization of existing dependencies between provider and consumer peer 74
services. The annotations on the edges denote dependency values that declare the importance of a dependency between provider and consumer services. Espinha, Zaidman and Gross, in their work, [26] have created a dynamically updateable time based dependency graph to visualize the run time topology of software services. Egyed [27] have discussed a scenario driven approach for dependency analysis of SOA and presented trace dependency analysis which is based on graph. Wang and Capretz [29] has identified service dependencies at inter- and intra- service levels and develop graph-based service dependency matrices. Based on the calculation of the matrices, the ripple effect that indicates dependencies and the impact of the change on the service can be analyzed and quantitatively measured. Ensel and Keller [16] have given an approach of computing dependency graph in web based architecture for retrieving and handling dependency information from various managed resources. This approach computes of dependencies between services and applications across different systems and domains, i.e., establishing a ‘global’ service dependency model and enabling system administrators to navigate through the resulting directed graph from the top to the bottom and in reverse order. Romano, Pinzger and Bouwers [49] have given an approach to build up dynamic dependency graphs of web services. These graphs are commonly weighted, where the weights indicate the number of times a particular service is invoked or a particular execution path is traversed. The information contained in these graphs can help software engineers to measure important quality attributes (e.g., analyzability and changeability) for measuring maintainability of the system under analysis. Baresi et al [30] have proposed to model service oriented architecture as graphs, represented as instances of UML class diagram and to describe their configurations by graph transformation rules. Baloch and Crespi [31] have presented a graph based approach to determine dependency relations among various services in ubiquitous environment to help better analyze the pervasive services. Yan, Xu and Gu [32] have proposed an approach to resolve the composition problem over large-scale services. They used an inverted table as index for a quick service discovery, and applied a Service Dependency Graph(SDG) and an AND/OR graph as the algorithm basis for parallel composition. E. Formal Modelling Approach The importance of formal modelling of syntactic and semantic characteristics of software systems has long been accredited. It is practicable to use mathematical foundations to capture the essential behaviour of service oriented software systems for the purpose of dependency analysis. Some major contributions of this approach are given below. Yanchuk, Ivanyukovich and Marchese, in their work [33], have proposed mathematical definitions for individual service, service-oriented environment and service-oriented application. Winkler et al.[14] have proposed an approach for analysing dependencies between services in a composition in a semiautomatic manner at design time and capturing them in a dependency model. Later they applied this model for validating negotiated Service Level Agreements and determining the effects of events such as service failure or SLA renegotiation on other services. Hasselmeyer [34] has described the need for a generic dependency management approach, identifies the key properties of dependencies as well as the requirements for dependency management schemes, describe the model derived from the requirements, and presents an implementation using the Jini connection technology. In [15], the authors describe a dependency-aware service oriented architecture (DSOA) solution to the issue of service composition that allows the service composer to compose and register a service by analyzing and designing the dependency between existing Web services. They further analyzed and designed service dependency ontology of software services. Basu, Casati and Daniel [13] identified the importance of the problem of discovering dynamic dependencies among Web services and proposed a solution for the automatic identification of traces of dependent messages, based on the correlation of messages exchanged among services. It identifies dependencies between web-services based on real time log data under the context of the HP SOA Manager system. Bodenstaff et al [25] demonstrate how to analyze Service Level Agreements (SLAs) during development phase and how to monitor these dependencies using event logs during runtime. They call this approach MoDe4SLA (monitoring dependencies for SLAs). Zheng, Zhou and Krause [35] have defined 'A Web Service Automaton' and with help of this they analysed internal and external data dependencies in web services. Brogi and Popescu [36] have presented a methodology which, given a set of service contracts, tries to construct an aggregation of such services and perform a control flow and data flow dependency analysis of an aggregated service. Yan, Chen Liu and Lei Liu [38] have given an approach to discover operation dependencies. This approach combines the semantic matching of inputs and outputs interfaces between service operations and the analysis of process cases to identify dependencies. Kuang et al [37] explain the importance of importing 75
dependencies into service discovery and introduce two types of dependency between interfaces of services. Steinle et al [39] have developed non-intrusive and scalable techniques to discover dependencies between components of a distributed system by mining logs. However, theapproaches fail to detect the direction of dependency and distinguish the direct and indirect dependencies [39]. Baloch and Crespi [31] have presented a time efficient approach to determine dependency relations among various services in ubiquitous environment to help better analyze the pervasive services. Liu, Ma and Zhao [40] have proposed an approach to identifying conversation dependency between software services to facilitate the dynamic evolution. In their approach, a business process is represented as a directed graph, and the matrix method is used to identify the execution order of activities in the business process, which determines the conversation dependency among services. Tolksdorf [41] have proposed a Dependency Markup Language to capture dependencies amongst activities and generalization/specialization among web services. F. Quantitative Modelling Approach Metrics helps in decision making and problem solving and enables the users to compute the desired property based on a defined set of statements and its mathematical formulation. Significant works have been observed in metrics based dependency analysis solutions of SOA. Cataldo et al. [42] has proposed metrics for measuring syntactic dependencies, logical dependencies and work dependencies among software services. Binkley et al. [43] have discussed quantitative approach using dependence clusters. Wang and Capretz [44] have discussed some metrics for dependency analysis in SOA such as : element entropy, dependency entropy and system entropy. The entropy value of a service represents its degree of dependency with other services [44]. Tuura and Tylor [45] has proposed a tool named ‘Ignominy’ for dependency analysis of large software. Ignominy analyses static dependency. This tool has potential for dependency analysis of SOA based system. Wang and Capretz [29] have defined some metrics measure of dependency analysis: Intra-Relation, IntraDependency, Inter-Relation, and Inter-Dependency focus on the quantity analysis of dependency while cohesion concentrates on quality analysis. G. Artificial Intelligence Approach In recent years artificial intelligence has gained popularity in every field of modern technology. Seminal works for dependency analysis in SOA based system using artificial intelligence technique are being done. Neural network, fuzzy logic, genetic algorithm based dependency solutions can be categorised under artificial intelligence technique. Goehring et al.[46] have described the development of a knowledge-based system approach to enhance program comprehension of Service Oriented Architecture (SOA) software. This approach uses rule-based methods to automate the analysis of the set of artefacts involved in building and deploying a SOA composite application. The rules codify expert knowledge to abstract information from these artefacts to facilitate program comprehension and thus assist Software Engineers as they perform system maintenance activities. Novonty et al. [28] proposes a visualization and dependency analysis framework for a Web application. Based on the deep analysis for the text feature of hyperlink, a regular expression-based linkage information extraction method is presented. Ai and Tang [47] have presented a repair genetic algorithm,namely minimal-conflict hill-climbing repair genetic algorithm, to address the Web service composition optimization problem in the presence of domain constraints and inter service dependencies and conflicts. Ensel [48] used neural networks to automatically derive dependency information by looking at pairs of systems’ behaviour over time. RQ3. What is the relative impact of syntactic and logical dependencies on the failure proneness of SOA based system? If dependencies exist between services, then developer must be aware about these dependencies so that appropriate actions should be taken in adverse conditions. When a service has a failure or performance degradation, all other services that depend directly or indirectly on this service might be impacted. It is important to understand what these dependencies are, so that management tools can display and alert users about the business impact of failures and performance degradations. Furthermore, knowledge of dependencies considerably simplifies service-level root-cause analysis that is, trying to understand the origin of a failure [13]. The knowledge of dependencies between services may further be useful for the prediction of impacts on other services due to management operations. This is of particular interest in the typical ‘repair – scenario’ where a service implementation has to be shut down temporarily: - it might be essential to know the effects on other services beforehand [48]. The analysis of dependencies on consumer peer services is 76
important for supporting the adaptation of a public service. The uncoordinated adaptation of public services potentially leads to malfunctions in the environment of depending peer services in SOA based systems [22]. An important aspect is that resource dependencies have a transitive nature. Thus, the failure of one service may not only affect the direct consumer but all other services which handle the same resource [14]. Dependency analysis is very critical for testing, maintaining and composing of services. Syntactic Dependency is a parsing scheme where we create edges between services [50]. Logical dependencies impacts more than syntactic dependencies among services. Logical dependencies play adverse role in software failure [42]. The ripple effect measure has been identified as an important method for software impact analysis models [51, 52]. A direct impact occurs when the service elements within a service are affected due to their dependency on the changing service element, while an indirect impact may happen when the service elements of dependent services are affected. System may be fail adversely because of syntactic and logical dependencies. RQ4. What is the research challenges observed for dependency analysis of SOA based system? Researchers and practitioners have been considering various aspects of dependency analysis of SOA based systems and related issues. It is required to consider these efforts for the purpose of identification of issues, challenges and problems in the field so as to be able to ascertain some important considerations that need urgent, and possibly immediate attention. This research question attempts to present, in a concise manner, the research challenges related to the topic of discussion. A careful reading of literature helps in identifying research efforts that have gone into classification of concepts and understandings regarding dependency analysis of SOA based systems. The management of work dependencies is critical in SOA based systems. The automated service dependency is a challenging problem in the administration of large distributed system. In real life the services in a composition behave differently. These differences arise, for example, because content of services is different, and they are offered by different providers. The difference in behaviour, together with the structure of the composition, makes it difficult to manage the dependencies between services [53]. Automatically analyzes service execution data to discover dynamic dependency among services is another challenge. The problem is far from trivial as it requires understanding correlations among message exchanges between services [13]. The discovery of dependencies between Web service executions in distributed environments is a challenging problem in general. Due to the wealth of possible different software and hardware infrastructures and the considerable number of different protocol specifications that can be used in a specific implementation; the dependency discovery problem comes in a variety of different flavours [13]. The number of dependencies between many involved systems can be computed, but may become very large. From an engineering viewpoint, it is often undesirable and sometime impossible to store a complete, instantiated dependency model at a single place [16]. The question where the dependency information on the managed resources comes from is another crucial issue [16]. How notions of dependencies can be related by specialization to lead to unified hierarchy [53]. It is practically unfeasible to obtain the dependency information and keep the information up-to-date manually. So it is necessary to detect accurate and up-todate operation dependencies in an automatic manner [38]. RQ5. What are the available tools for dependency analysis in SOA based system? In this section a concise summary of dependency analysis tools, in context of SOA based systems, are given. The purpose is to know the strengths and weaknesses of various tools used for congestion control. The idea is to get to know that weather existing tools are sufficient for the purpose or it is require revising the tools or proposing a new one in context of newer requirements. There are various tools available for dependency analysis like JDepend [54], DepAn [30] etc. But we focus on only those tools especially meant for dependency analysis for SOA based systems. These tools are listed in Table IV. The dependencies among services can be explored in tools such as HP OpenView SOA Manager, and the performance metrics of all the dependent services are captured. Any change in dependencies of a SOA business application on the underlying services can then be captured in a database and updated in SOA Manager [13]. sCrawler is a dependency tracking utility that tracks dependencies and presents information about them in an application-agnostic manner. It maps the design time dependency of deployed SOA artefacts in an OC4J container. It makes analysis intuitive and less time-consuming, and presents information in a well-structured manner. sCrawler extracts all the process dependencies from the Oracle Application Server and presents the 77
TABLE IV. DEPENDENCY ANALYSIS TOOLS OBESERVED IN LITERATURE Dependency Analysis Tools sCrawler JDepend DepAn ADaM SOA Dependency Analyser eDepend HP OpenView SOA Manager Serviz
References [17] [54] [60] [57] [58] [59] [13] [26]
same as graphs in a 2D graphical console. It gets information on all the deployed processes and creates a selection tree. For each leaf in the process tree, it recursively builds the dependencies. The end user need not know anything about SOA or Application Server to find the dependencies [17]. SOA Dependency Analyzer [58] is a tool for graphical visualization of the dependencies between the processes (BPEL-WS) and services (Service Bus). This tool was developed for easy and simple understanding of the dependencies between services and processes, sometimes in very complex environments SOA. It is built on Eclipse RCP (SWT) framework and to visualize the dependency graph used Eclipse GEF/ZEST framework [55, 58]. Serviz [60] is a tool that visualizes how services are activated, and how much they interact over time. It encompasses both a data collection component and the visualization component. Data collection relies on the Turmeric SOA platform, while the visualization is web-based and makes use of open source JavaScript visualization and graphing libraries. Serviz is an open-source tool and its user-interface allows system maintainers to visualize and inspect the runtime data collected from web-service based systems. By using Serviz, maintainers are presented with a topology of a running SOA system and are therefore able to analyze the system’s usage over user-defined periods of time. Spassov et al [55] have implemented a Data Dependency Analysis Tool (DDAT) to support the testing, validation and verification of both functional and non-functional behaviour of service-based applications at design time as well as at runtime. The Data Dependency Analysis Tool (DDAT) solves two tasks. Firstly, for a given set of BPEL activities, the tool finds a path that goes through all activities in the set starting from one initial activity. Secondly, it finds all control activities on the discovered path and calculates the condition that should be met in order for the process to continue execution along the path. Wang [56] has developed an impact analysis tool that allows change analysts to identify service dependencies, make changes, and to perform impact analysis. Wang has used this tool to evaluate the actual industry Web Services for service synchronization. Briand et al.[51] has described impact analysis and change management using UML diagram. DepAn[57] is a direct manipulation tool for visualization, analysis, and refactoring of dependencies in large applications. DepAn deals with direct manipulation of heterogeneous dependency information in an Eclipse RCP environment, Analysis and visualization of very large applications, Collapse child dependency into parent entities to reveal class level interactions and Import of File Systems as source of dependency information. eDepend [59] integrates a set of tools to effectively manage and control class & package dependencies. Well controlled code dependencies ensure easy maintenance and evolution of code is a graphical, interactive and real-time dependency analysis solution for Java projects in Eclipse. It integrates a rich set of tools to effectively detect, display, navigate and analyze class/package/project dependencies. VI. DISCUSSION A software service dependence analysis process consists of multiple activities that need to be carried out for achieving the desired goals. These activities may involve human elements and possibility of automation also exists. Software services dependence analysis process must be improved through learning from experiences and the knowledge resulting from the experiences must be analyzed and made use of for the purpose of improvement of the concerned process. One basic idea is to assess the organization’s current practice and improve its dependence analysis process on the basis of the competencies and experiences of the practitioners working in the organization. A major challenge is to create strategies and mechanisms for managing relevant and updated knowledge about software services dependence for the purpose of testing and configuration 78
management. It is our conjecture that most of the cost of dependency analysis process can be reduced by using a knowledge base supported by a software tool which gathers and manages the experts’ knowledge. To change software developers practices, the organization should improve the practitioners’ existing knowledge (both theoretical and practical) of its software practices. In other words, knowledge about the new services should be made available on different organizational levels. This would require to judiciously considering the various activities in a SOA based system for this purpose. Such an effort would finally aim at redefinition of software services dependency analysis processes in context of SOA. VII. CONCLUSION This work explores the literature review of various dependencies in the context of SOA based systems. We understand that the identified issues and challenges regarding the dependencies among services may help in future research in this area. This initial proposition of such a review may be purposefully used by the academician/researchers and the corresponding useful feedback may be analyzed. It calls for further extensive research oriented studies, by all concerned, for identification of newer issues and challenges. ACKNOWLEDGMENT We wish to thank UGC to give financial support as Fellowship to do this research work. We also thank to Department of Computer Science, Banaras Hindu University, Varanasi for providing infrastructure and facility for research work. REFERENCES [1] B. A. Kitchenham, “Procedures for undertaking systematic reviews,” Joint Technical Report, Computer Science Department, Keele University (TR/SE- 0401) and National ICT Australia Ltd ( 0400011T.1), 2004. [2] D. L. Parnas, “ Designing software for ease of extension and contraction,” IEEE Trans SoftwEng 5(2), 1979 pp. 128-138. [3] T. B. C. Arias, P. Spek , P. Avgeriou, “A practice-driven systematic review of dependency analysis solutions ,” Empirical Software Engineering 16(5), 2011 pp. 544-586. [4] P. Carlshamre , K. Sandahl, M. Lindvall , B. Regnell , J. N. Dag, “An industrial survey of requirements interdependencies in software product release planning,” In: Proceeding of 5th IEEE International Symposium on Requirements Engineering , Toronto, Canada, 2001 pp. 84-91. [5] J. C. Libby, K. B. Kent, “A survey of data dependence analysis techniques for automated parallelization”, In : TR07188, 2007, pp.1-34. [6] P. Bhuyan, C. P. Kashyap, D. P. Mohapatra , “A survey of regression testing in SOA,” International Journal of Computer Applications,44(19), 2012 , pp. 22-25. [7] E. S. Motlagh, “A survey of service oriented architecture systems testing,” International Journal of Software Engineering & Applications (IJSEA), 3(6), 2012 pp. 19-27. [8] G. Lewis , D. Smith , K. Kontogiannis et al, “A research agenda for maintenance & evolution of SOA-based system,” In : Proceedings of IEEE International Conference on Software Maintenance, 2007,pp. 481-484. [9] B. Li, X. Sun, H. Leung, S. Zhang , “A survey of code-based change impact analysis techniques,” Softw. Test. Verif. Reliab. doi: 10.1002/stvr.1475, 2012. [10] D. Linthicum, “Understanding service oriented architecture,” MSDN, Microsoft. http://msdn.microsoft.com/enus/library/bb833022.aspx. Accessed on 19 May 2013. [11] R. Cover, “The xml cover pages,”. http://www.oasis-open.org/cover/xml.html. Accessed on 19 May 2013. [12] A. Kazemi, A. Rostampour , P. Jamshidi, E. Nazemi, F. Shams, A. N. Azizkandi, “A genetic algorithm based approach to service identification,” In: Proceedings of IEEE World Congress on Services,Washington, DC, USA, 2011, pp. 339-346. [13] S. Basu , F. Casati , F. Daniel , “Toward web service dependency discovery for SOA management,” In: Proceedings of IEEE International Conference on Services Computing. ,doi: 10.1109/SCC.2008.45, Vol 2, 2008, pp.422-429. [14] M. Winkler, T. Springer , E. D. Trigos , A. Schill , “ Analyzing dependencies in service compositions,” In: Proceedings of the 2009 international conference on Service-oriented computing. Springer-Verlag Berlin, Heidelberg, 2011, pp 123-133. [15] J. Zhou ,D. Pakkala , J. Perala , E. Niemela , J. Riekki , M. Ylianttila , "Dependency-aware service oriented architecture and service composition,”. In: Proceedings of IEEE International Conference on Web Services. doi: 10.1109/ICWS.2007.71,2007, pp. 1146-1149.
79
[16] C. Ensel , A. Keller, “ Managing application service dependencies with XML and the resource description framework,” In: Proceedings of IEEE/IFIP International Symposium on Integrated Network Management. doi: 10.1109/INM.2001.918072, 2001 pp. 661-674. [17] S. Phukan , “sCrawler : SOA dependency tracker,” Available at http://www.oracle.com/technetwork/articles/scrawler-sandeep-phukan-085368.html., 2009, Accessed on 23rd May 2013. [18] D. C. Leon , J. A. Foss , “Hidden implementation dependency in high assurance and critical computing system,” IEEE Transactions on Software Engineering , DOI : 10.1109/TSE.2006.103 32(10),2006 pp. 790-811. [19] S. Halle , R. Villemaire , O. Cherkaoui , “ Specifying and validating data-aware temporal web service properties,” IEEE Transactions on Software Engineering 35(5), 2009, pp.669-683. [20] C. R. B. Souza , D. Redmiles , L. T. Cheng , D. Millen , J. Patterson , “How a good software practice thwarts collaboration: the multiple roles of APIs in software development,” In : Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering,2004 pp. 221 – 230. [21] A. M. Omer, A. Schill , “Dependency Based Automatic Service Composition Using Directed Graph,” In: Proceedings of Fifth International Conference on Next Generation Web Services Practices, Prague, doi: 10.1109/NWeSP.2009.20, 2009 , pp. 76-81. [22] S. Alda, “Peer group – based dependency management peer-to-peer architectures,” Proceedings of the 2005 International Conference on Databases, information systems, and peer-to-peer computing, 2005, pp.195-202. [23] A. Keller, G. Kar , “Dynamic dependencies in application service management,” In: Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, Las Vegas, NV,USA, 2000, pp. 17. [24] E. D. Trigos , “ Master thesis service dependency analysis based on process models and service level agreements,” Dissertation, Dresden University of Technology , 2009. [25] L. Bodenstaff , A. Wombacher , M. Reichert , M. C. Jaeger, “Monitoring Dependencies for SLAs: The MoDe4SLA Approach,”. Proceedings of IEEE International Conference on Services Computing, vol.1, doi: 10.1109/SCC.2008.120, 2008, pp. 21-29. [26] T. Espinha, A. Zaidman , H. G. Gross, “Understanding the runtime topology of service-oriented systems,” Proceedings of 19th Working Conference on Reverse Engineering Kingston , Ontario, Canada, 2012, pp. 187-196 . [27] A. Egyed, “A scenario-driven approach to trace dependency analysis,” In: Proceedings of IEEE Transactions on Software Engineering, doi: 10.1109/TSE.2003.1178051, 29(2), 2003 pp.116-132 . [28] P. Novotny, A. L. Wolf, B. J. Ko, S. Lee, “Discovering service dependencies in mobile ad hoc networks,” Proceedings of the Annual Conference of the International Technology Alliance,2011. [29] S. Wang , M. A. C. Capretz , “A dependency impact analysis model for web services evolution,” In: Proceedings of the IEEE International Conference on In Web Services.doi: 10.1109/ICWS.2009.62 , (2009) pp. 359-365 . [30] L. Baresi, R. Heckel, S. Thone, D. Varro, “Modeling and analysis of architectural styles based on graph transformation,”. In: Proceeddings of 6th ICSE Workshop on Component-Based Software Engineering : Automated Reasoning and Prediction, 2003, pp. 67-72. [31] R. A. Baloch and N. Crespi, “Formal model for analysis of context dependencies in ubiquitous systems,” In: Proceedings of Fifth International Conference on Digital Information Management, 2010, pp. 431-436. [32] Y. Yan, B. Xu and Z. Gu, “Automatic service composition using AND/OR graph,” In: Proceedings of 10th IEEE Conference on E-Commerce Technology and the Fifth IEEE Conference on Enterprise Computing, E-Commerce and E-Services, Washington, DC, doi: 10.1109/CECandEEE.2008.124, 2008, pp. 335-338. [33] A. Yanchuk, A. Ivanyukovich, and M. Marchese, “Towards a mathematical foundation for service-oriented applications design,” Journal of Software 1(1), 2006, pp. 32-39. [34] P. Hasselmeyer, “Managing dynamic service dependencies,”. In: Proceedings of 12th International Workshop on Distributed Systems: Operations and Management (DSCOM 2001), 2001. [35] Y. Zheng , J. Zhou and P. Krause , “Analysis of BPEL data dependencies,” In: Proceedings of 33rd IEEE EUROMICRO Conference on Software Engineering and Advanced Applications, Washington, DC, USA, 2007, pp. 351-358. [36] A. Brogi and R. Popescu, “Towards semi-automated workflow-based aggregation of web services,”. In: Proceedings of International Conferance of Service-Oriented Computing, Springer Berlin Heidelberg, 2005, pp. 214227. [37] L. Kuang, J. Wu, Y. Li, S. Deng and Z. Wu, “ Exploring dependency between interfaces in service matchmaking,” In: Proceeding of IEEE International Conference on Services Computing, doi: 10.1109/SCC.2007.60, 2007, pp. 506-513. [38] S. Yan, J. Wang , C. Liu and L. Liu, “An approach to discover dependencies between service operations,” Journal of Software, 3(9), 2008, pp.36-43. [39] M. Steinle , K. Aberer, S. Girdzijauskas and C. Lovis, “Mapping moving landscapes by mining mountains of logs: novel techniques for dependency model generation,” In: Proceedings of the 32nd international conference on Very large data bases, VLDB Endowment, 2006, pp. 1093-1102.
80
[40] M. Liu, D. Ma and Y. Zhao , “ An approach to identifying conversation dependency in service oriented system during dynamic evolution,” In: Proceedings of the 2009 ACM symposium on Applied Computing, 2009, pp. 10721073. [41] R. Tolksdorf , “A Dependency markup language for web services,” In: Web, Web-Services, and Database Systems, Springer Berlin Heidelberg, 2003, pp. 129-140. [42] M. Cataldo, A. Mockus, J. A. Roberts and J. D. Herbsleb, “Software dependencies, work dependencies, and their impact on failures,” IEEE Transactions on Software Engineering, 35(6), 2009 pp.864-878. [43] D. Binkley, M. Harman, Y. Hassoun, S. Islam and Z. Li, “Assessing the impact of global variables on program dependence and dependence clusters,” Journal of Systems and Software, 83(1), 2010 , pp.96-107. [44] S. Wang and M. A. Capretz, “Dependency and entropy based impact analysis for service-oriented system evolution,” In: Proceedings of the 2011 IEEE/WIC/ACM International Conferences on Web Intelligence and Intelligent Agent Technology, Vol 1, 2011, pp. 412-417. [45] L. A. Tuura and L. Taylor, “Ignominy: a tool for software dependency and metric analysis with examples from large HEP packages,” In: Proceedings of Computing in High Energy and Nuclear Physics, 2001 available at http://www.ihep.ac.cn/~chep01/paper/8-024.pdf ,accessed on April 8, 2013. [46] G. Goehring, T. Reichherzer, E. Sheikh, D. Snider, N. Wilde et al., “A knowledge-based system approach for extracting abstractions from service oriented architecture artifacts,” International Journal of Advanced Research in Artificial Intelligence, 2(3), 2013, pp. 44-52 . [47] L. Ai and M. Tang, “QoS-based web service composition accommodating inter-service dependencies using minimal-conflict hill-climbing repair genetic algorithm,” In: Proceedings of IEEE Fourth International Conference on eScience, doi: 10.1109/eScience.2008.110, 2008, pp. 119-126 . [48] C. Ensel, “Automated generation of dependency models for service management,” In: Proceedings of Workshop of the OpenView University Association (OVUA’99), Bologna, Italy, 1999. [49] D. Romano, M. Pinzger and E. Bouwers, “Extracting dynamic dependencies between web services using vector clocks,” In: Proceeding of IEEE International Conference on Service-Oriented Computing and Applications, 2011, pp. 1-8. [50] R. Cohen and M. Elhadad, “ Syntactic dependency parsers for biomedical-NLP,” In: Proceedings of American Medical Informatics Association Annual Symposium, 2012 , p. 121. [51] L.C. Briand, Y. Labiche and L. Sullivan, “Impact analysis and change management of UML models,” In: Proceedings of IEEE International Conference on Software Maintenance, 2003,pp. 256-265. [52] S. A. Bohner, “Software change impacts-an evolving perspective,” In: Proceedings of IEEE International Conference on Software Maintenance, pp. 263-272. [53] L. Bodenstaff, A. Wombacher, R. Wieringa, M.C. Jaeger and M. Reichert, “Monitoring service compositions in MoDe4SLA: design of validation,” ICEIS 2009 - Proceedings of the 11th International Conference on Enterprise Information Systems, Volume SAIC, Milan, Italy, May 6-10, 2009, pp. 114-121 [54] JDepend. http://clarkware.com/software/JDepend.html [55] I. SpassovI, V. Pavlov, A. D. Petrova and S. Ilieva, “DDAT: data dependency analysis tool for web service business processes,” In: Proceedings of International Conference of Computational Science and Its Applications(ICCSA), Springer Berlin Heidelberg 2011, pp. 232-243. [56] S. Wang, “A dependency based impact analysis framework for service-oriented system evolution,” Dissertation, University of Western Ontario, Canada, 2010. [57] “ADaM - Automated Dependency analysis Manager”. Available at http://www.3di-ltd.co.uk/adam.html . Accessed on 24th May 2013. [58] “SOA Dependency Analyzer 1.0.” available at http://code.google.com/p/bpel-esb-dependency-analyzer/. accessed on 24th May 2013. [59] “eDepend Graphical Dependency Analysis Tool 3.5.0,” . Available at http://marketplace.eclipse.org/content/edepend-graphical-dependency-analysis-tool#.UZ8JImciV98. Accessed on 24th May 2013 [60] L. Carver, “DepAn: a dependency analysis tool,” Available at http://google-opensource.blogspot.in/2008/09/depandependency-analysis-tool.html.Accessed on 24th May 2013.
81