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.
2. 70
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].
3. 71
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
4. 72
TABLE I. SELECTED JOURNALS AND CONFERENCE PROCEEDING
Source Acronym
Information and Software Technology IST
IEEE Transactions on Software Engineering TSE
ACM Computing Surveys ACM Sur
ACM Transaction on Software Engineering
Methodologies
TOSEM
Empirical Software Engineering Journal EMSE
Proceeding International Conference on Software
Engineering
ICSE
Service Oriented Computing and Application SOCA
Proceeding International Conference on Service
Oriented Computing
ICSOC
Proceeding International Conference on Next
Generation Web Services Practices
ICNGWSP
Proceeding International Conference on Web
Services
ICWS
IEEE Transactions on Service Computing 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 service-
oriented 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].
5. 73
TABLE II. DEPENDENCY RELATIONSHIP OBSERVED IN LITERATURE
Types of Dependencies
Short Description
References
Design Time Dependencies
Design time dependency refers to the dependency of a service
as it exists after deployment but before execution.
Phukan[17]
Hidden Dependency
Service Dependency which cannot be identified directly by
developer. It may create catastrophic situation in a critical
system.
Leon et al. [18]
Sequential Dependency
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.
Halle et al.[19]
Technical Dependency
Technical dependencies between software services being
developed by different developer create a need for
communication and coordination between developers.
de Souza et al. [20]
Cyclic Dependency
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.
Omer and Schill [21]
Input/output Dependency
It occurs when a service requires/provides data from /to another
service.
Omer and Schill [21]
Constraint Dependency It occurs due to user constraint. Omer and Schill [21]
Cause and Effect Dependency
It occurs when a service has preconditions to be satisfied based
on the effect of the other services.
Omer and Schill [21]
Structural Dependencies It exists on the level of models and application executions. Arias et al.[3]
Transitive Dependency
Assume there are three services s1,s2, and s3. If s1 is dependent
on s2, s2 on s3 then s1 is dependent on s3.
Alda[22]
Static Dependency
This dependency occurs at code level in services. It is identified
at compile time of services.
Arias et al.[3], Basu et
al.[13]
Dynamic Dependency It occurs at code level. It is identified at run time of services.
Arias et al.[3], Basu et
al.[13], Keller et al.[23]
Horizontal Dependency Dependency between atomic services. Winkler et al.[14]
Vertical Dependency Dependency between atomic service and composite service. Winkler et al.[14]
Price Dependency
A price dependency exists when the price of a service depends
on the price of other services.
Winkler et al.[14]
Location Dependencies
Location dependencies occur between two services that need to
be executed at the same or at a different location.
Winkler et al.[14]
Resource Dependency
Two services have a resource dependency, when the availability
of a resource, which is needed by one service, depends on
another service.
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.
6. 74
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 BASED SYSTEM OBESERVED IN LITERATURE
Dependency
Analysis
Solutions
References
Graph Based
Approach
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]
Formal Modelling
Approach
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]
Quantitative
Modelling
Approach
Cataldo et al. [42] , Binkley et al. [43], Wang
and Capretz [44], Tuura and Tylor [45], Wang
and Capretz [29]
Artificial
Intelligence
Approach
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
7. 75
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 semi-
automatic 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
8. 76
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, Intra-
Dependency, 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
9. 77
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-to-
date 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
10. 78
TABLE IV. DEPENDENCY ANALYSIS TOOLS OBESERVED IN LITERATURE
Dependency Analysis Tools References
sCrawler [17]
JDepend [54]
DepAn [60]
ADaM [57]
SOA Dependency Analyser [58]
eDepend [59]
HP OpenView SOA Manager [13]
Serviz [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
11. 79
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 : TR07-
188, 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/en-
us/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.
12. 80
[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. 1-
7.
[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. 214-
227.
[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.
13. 81
[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. 1072-
1073.
[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/depan-
dependency-analysis-tool.html.Accessed on 24th May 2013.