Beruflich Dokumente
Kultur Dokumente
,
t' ={max (t
yi
) (f or synchronized merge)
min (t
yi
) (f or single merge)
a' = {
, (f or synchronized merge)
1 -
(f or single merge)
Since these formulas are straightforward for a parallel pattern with synchronized merge, we will
only explain how these formulas are generated for a parallel pattern with single merge. In a
parallel pattern with single merge (1 out of n pattern in [12]), the first finished branch will trigger
the subsequent task of the parallel pattern and the results of other branches are ignored [12]. All
the tasks in the pattern are executed; therefore, the cost should be the sum of the cost of each
branch. The execution time of the pattern is the execution time of the first finished branch,
i.e., the shortest execution time. The circumstance when the pattern being unavailable will only
happen when all the branches are unavailable, the probability of which is
, . Therefore, the
availability of the pattern should be 1 -
.
When a parallel pattern is replaced by a vertex, the incoming arc of the vertex is from the vertex
where the parallel pattern splits (i.e., the start point) and the outgoing arc of the vertex goes to the
vertex where the parallel pattern merges (i.e., the end point). The connection ways of both the
incoming arc and the outgoing arc are sequential connections.
Processing of a Parallel Pattern
The processing of a parallel pattern is through function ParaProcessing (para_list). The input of the
function is a list of vertices (v
1
. . . v
n
) in a parallel pattern. The QoS of the pattern is calculated
based on (10), (11), and (12). The QoS and ID information of the pattern are stored in vertex v1.
The connection ways are changed to sequential for both the incoming arc and the outgoing arc of
v
1
. Then, vertices v
2
. . . v
n
are removed from the service graph.
3.1.3 CONDITIONAL PATTERN
In general, there are two types of conditional patterns: structured and unstructured. The QoS of a
structured conditional pattern can be calculated according to (1) and (2). In unstructured
conditional patterns, two or more paths can share the same tasks before they join together.
The conditional structures will be processed along with the processing of the service graph.
Specifically, sequential, parallel, and loop patterns will be removed from a service graph first.
There are only conditional patterns left in the service graph. We transform the service graph into a
rooted tree. The QoS of the web service composition is the QoS of the tree, which can be
calculated as the probability weighted sum of the QoS of the branches. By the above-mentioned
method, the problem of the existence of unstructured conditional patterns can be solved and the
QoS of the web service composition can be computed.
3.1.4 LOOP PATTERN
QoS Calculation for a Loop Pattern
We will study how the QoS of the loop pattern is computed when vertex v
1
is the entry point. The
QoS calculation method is the same when other vertices are the entry points. We only use one
incoming arc to indicate the entry point of the loop and ignore all the other incoming arcs.
Doing this does not affect the QoS computation result. This is because the QoS of a loop pattern is
affected by the position of an entry point, i.e., the point where a loop starts, but not by the
transition probabilities of the incoming arcs of the entry point, i.e., p
I
, which indicates the
possibility of entering the loop and has nothing to do with the repeating of the loop (which is
determined by p
i
) or the jumping out of the loop (which is determined by p'). That is also to say
that only the transition probabilities within a loop (i.e., p
i
) and the transition probabilities of
jumping out of a loop (i.e., p') are needed to compute the probability for each possible execution
branch of a loop pattern.
Based on the discussion above, the loop pattern is QoS equivalent to the loop pattern in Fig. 6
when vertex v
1
is the entry point. Next, we will discuss the QoS calculation for it.
The transition probability from v
i
to v
i+1
is p
i
. The loop is left from v
i
at a probability pO
ij
. There
is
(i [1,n]),.If vertex v
i
(i [1,n]),. is just an internal vertex of the loop, i.e.,
deg
+
v
i
= 1, then pO
ij
= 0 (j [1,m]) , The cost, execution time, and availability of v
i
is c
i
, t
i
, and a
i
,
respectively.
After it has been executed for l (l [0,+oo)) times, the loop will be left from v
i
(i [1, n]) to its
adjacent vertex that does not belong to the loop. Based on this description, the loop pattern can be
transformed into an equivalent graph but without the loop. The combination of vertices v
1
; v
2
; . . . ;
and v
n
, (the part within the dashed ellipse) is equivalent to one time of execution of the loop in Fig.
8. After the combination of vertices has been executed for l (l [0,+oo)) times, finally, the loop
will transfer from vertex v
i
(i [1, n]) to its adjacent vertex according to the probability pO
ij
(j
[1,m
i
]). The probability for the combination of vertices to be executed for l (l [0,+oo)) times and
transferring from vertex v
1
to its adjacent vertex is transferring from vertex v
k
(k [2, n]) to its
adjacent vertex . Therefore, statistically, the cost (c0), the execution time (t0), and availability (a0)
generated by all the vertices within the loop pattern are as follows:
The loop pattern in Fig. 8 can be replaced by one vertex v
0
in Fig. 10. The calculation for the
transition probability, cost, execution time, and availability of vertex v0 is based on (13),
(14), (15), and (16), respectively. Formulas (13), (14), (15), and (16) are general formulas
for all types of loop patterns.
Processing of a Loop Pattern
At each entry point v
i
, a loop pattern is replaced by a vertex v
'
i
through function LoopProcessing
(loop_list). The input of the function is the vertices of a loop pattern. The QoS of the pattern is
calculated based on (14), (15), and (16). The QoS and ID information of the pattern are stored in
v'
i
. The incoming arc for v'
i
is the incoming arc for v
i
. The outgoing arcs for v0i are the outgoing
arcs of the loop pattern. The transition probabilities are recalculated according to (13) for all the
outgoing arcs of v'
i
. Then, the incoming arc of v
i
is removed from the service graph. The vertices
in the loop will be removed after there is no incoming arc for the loop.
3.2 METHOD DESCRIPTION
The method in is adopted to detect single entry single exit (SESE) regions in a graph. Since
sequential, parallel patterns, structured conditional patterns, and structured loop patterns are all
SESE regions, they can be detected and removed by the methods.
In an SESE region containing MEME loops, depth-first search (DFS) method is used to explore
the region. An entry of a loop can be discovered by finding the back edge, the tail of which is an
entry point of the loop. At each entry point of a loop, the processing method for loop patterns in
Section 3.1.4 is applied. By doing so, MEME loops can be removed. After all the basic
composition patterns are removed, the service graph contains only unstructured conditional
patterns. Algorithm 1 is designed to transform the acyclic service graph into a tree, the branches of
which are the paths of the service graph. By computing the QoS and probability of each branch of
the tree, the QoS and probability of the web service composition can be obtained,
and consequently, the QoS of the web service composition can be computed (which is the
probability weighted sum of the QoS of the paths).
3.2.1 Algorithm 1. Algorithm for Transforming an Acyclic Graph into a Rooted Tree.
Algorithm Description
Function DfsVstAcyclcGrph transforms an acyclic graph into a tree. To distinguish nodes in a
graph with nodes in a tree, node is called vertex in a graph and is stilled called node in a tree.
DfsVstAcyclcGrph is recursively run for each UNVISITED vertex (line 14). First, a tree node will
be generated for the current vertex and added to the tree (lines 2 to 3). If it is the last vertex of the
graph, then one path is generated by backtracking from the leaf node (the tree node for current
vertex) to the root of the tree (lines 4 to 6). During the exploration of the successors of current
vertex (lines 7 to 14), if the successor is a joint vertex of two conditional branches (line 8), the
subtree rooted at the tree node of this successor vertex will be copied as the subtree rooted at the
tree node of the current vertex (line 9). If an original node is a leaf node of the tree, a copy of it
will also be a leaf node. Therefore, another path is obtained by backtracking the copied leaf node
through to the root of the tree (lines 10 to 12). When all the paths of the input graph are generated,
the QoS of the composite service will be calculated (lines 15 to 16).
3.2.2 Algorithm 2. Algorithm for Decreasing Deviation.
3.3 SYSTEM DESIGN
3.3.1 Introduction
The Unified Modeling Language (UML) is a visual modeling language used to specify, visualize,
construct and document a software intensive system. The embedded real-time software systems
encountered in applications such as telecommunications, school systems, aerospace, and defense
typically tends to be large and extremely complex. It is crucial in such systems that the software is
designed with a sound architecture. A good architecture not only simplifies construction of the
initial system, but also, readily accommodates changes forced by a steady stream of new
requirements.
The UML represents a collection of best engineering practices that have proven successful in the
modeling of large and complex systems. The UML is a very important part of developing object
oriented software and the software development process. The UML uses mostly graphical
notations to express the design of software projects. Using the UML helps project teams
communicate, explore potential designs, and validate the architectural design of the software.
The primary goals in the design of the UML are: Provide users with a ready-to-use, expressive
visual modeling language so they can develop and exchange meaningful models. Provide
extensibility and specialization mechanisms to extend the core concepts. Be independent of
particular programming languages and development processes. Provide a formal basis for
understanding the modeling language. Encourage the growth of the OO tools market. Support
higher-level development concepts such as collaborations, frameworks, patterns and components.
Integrate best practices.
3.3.2 Use Case Diagram
Create Service Graph
Sequential Pattern
Parallel Pattern
Conditional Pattern
User
Loop Pattern
3.3.3 Activity Diagram
Activity Diagram for Create Service Graph
Retrieve S as set of
component services
Retrieve T as set of transitions
in a composite service
Retrieve P set of transition
probabilities between two services
Compute V set
of vertices
Compute A is the
arcs of the Graph
Compute delta
representing connections
Activity Diagram for Sequential Pattern
Retrieve transition probability
of the incoming arcs
Retrieve transition probability
of the outgoing arcs
Calculate incoming and outgoing
transition probability
Calculate cost, execution
time, and availability
Process the
sequential pattern
Activity Diagram for Parallel Pattern
Split arcs for transition
probabilities
Compute parallel incoming and
outgoing transition probability
Compute cost, execution time and
availability for parallel pattern
Process parallel
pattern
Activity Diagram for Conditional Pattern
Compute QoS of a structured
conditional pattern
Process the
service graph
Remove sequential,
parallel, and loop patterns
Transform the service
graph into a rooted tree
Calculate probability weighted
sum of the branches
Activity Diagram for Loop Pattern
Retrieve vertices
which are entry points
Compute only one incoming arc to
indicate the entry point of the loop
Compute transition
probabilities within a loop
Compute transition probabilities
of jumping out of a loop
Process Loop with input
as vertices of loop pattern
3.3.4 Sequence Diagrams
Sequence Diagram for Create Service Graph
: User
: ServiceGraph
1: RetrieveS( )
2: RetrieveT( )
3: RetrieveP( )
4: ComputeV( )
5: ComputeA( )
6: ComputeDelta( )
Sequence Diagram for Sequential Pattern
: User
: SequentialPattern
1: RetrieveTPIncomingArcs( )
2: RetrieveTPOutgoingArcs( )
3: CalculateIOTP( )
4: CalculateCostTimeAvailability( )
5: ProcessSequential( )
Sequence Diagram for Parallel Pattern
: User
: ParallelPattern
1: SplitArcs( )
2: ComputParellelIOTP( )
3: ComputeCostTimeAvailabilityParallel( )
4: ProcessParallelPattern( )
Sequence Diagram for Conditional Pattern
: User
: ConditionalPattern
1: ComputeStructuredPattern( )
2: ProcessServiceGraph( )
3: RemoveSequentialParallelLoopPatterns( )
4: TransformServiceGraph( )
5: CalculateProbabilityWeightedSum( )
Sequence Diagram for Loop Pattern
: User
: LoopPattern
1: RetrieveEntryPoints( )
2: ComputeIncomingArc( )
3: ComputeTPLoop( )
4: ComputeTPJumpingLoop( )
5: ProcessLoopPattern( )
3.3.5 Collaboration Diagrams
Collaboration Diagram for Create Service Graph
Collaboration Diagram for Sequential Pattern
: User
: ServiceGraph
1: RetrieveS( )
2: RetrieveT( )
3: RetrieveP( )
4: ComputeV( )
5: ComputeA( )
6: ComputeDelta( )
: User
: SequentialPattern
1: RetrieveTPIncomingArcs( )
2: RetrieveTPOutgoingArcs( )
3: CalculateIOTP( )
4: CalculateCostTimeAvailability( )
5: ProcessSequential( )
Collaboration Diagram for Parallel Pattern
Collaboration Diagram for Conditional Pattern
Collaboration Diagram for Loop Pattern
: User : ParallelPattern
1: SplitArcs( )
2: ComputParellelIOTP( )
3: ComputeCostTimeAvailabilityParallel( )
4: ProcessParallelPattern( )
: User
: ConditionalPattern
1: ComputeStructuredPattern( )
2: ProcessServiceGraph( )
3: RemoveSequentialParallelLoopPatterns( )
4: TransformServiceGraph( )
5: CalculateProbabilityWeightedSum( )
: User
: LoopPattern
1: RetrieveEntryPoints( )
2: ComputeIncomingArc( )
3: ComputeTPLoop( )
4: ComputeTPJumpingLoop( )
5: ProcessLoopPattern( )
3.3.6 Class Diagram
4. EXPERIMENTAL RESULTS
5. CONCLUSION
In this project, we present a systematic QoS analysis approachthat is able to provide
comprehensive QoS information for acomposite service even with the existence of
complexcomposition structures such as unstructured conditionalpatterns and MEME loop patterns.
The QoS informationgenerated by the proposed QoS analysis approach includesnot only the QoS
of the web service composition but also theQoS and probability of the execution paths.In this
work, the QoS of a web service composition iscalculated based on the assumption that each task
has afixed QoS. The QoS of each task is more likely to be aprobability distribution in reality. For
future research, wewill study QoS calculation method for a composite servicewith component QoS
modeled as general QoS probabilitydistributions. It would be even challenging to estimate
theprobability distributions for services with short life cycle orless frequent use.
6. BIBLIOGRAPHY
[1] D. Ardagna and B. Pernici, Adaptive Service Composition in Flexible Processes, IEEE
Trans. Software Eng., vol. 33, no. 6, pp. 369-384, June 2007.
[2] M. Dumas, L. Garca-Ban uelos, A. Polyvyanyy, Y. Yang, and L. Zhang, Aggregate Quality
of Service Computation for Composite Services, Proc. Intl Conf. Service Oriented Computing
(ICSOC 10), pp. 213-227, 2010.
[3] J. Vanhatalo, H. Vo lzer, and J. Koehler, The Refined Process Structure Tree, Proc. Sixth
Intl Conf. Business Process Management (BPM 08), 2008.
[4] Q. Yu and A. Bouguettaya, Framework for Web Service Query Algebra and Optimization,
ACM Trans. Web, vol. 2, no. 1, pp. 1- 35, 2008.
[5] H. Zheng, J. Yang, and W. Zhao, QoS Analysis and Service Selection for Composite
Services, Proc. IEEE Intl Conf. Services Computing (SCC 10), pp. 122-129, 2010.
[6] M. Alrifai, D. Skoutas, and T. Risse, Selecting Skyline Services for QoS-Based Web Service
Composition, Proc. 19th Intl Conf. World Wide Web (WWW 10), pp. 11-20, 2010.
[7] M. Alrifai and T. Risse, Combining Global Optimization with Local Selection for Efficient
QoS-Aware Service Composition, Proc. 18th Intl Conf. World Wide Web (WWW 09), pp. 881-
890, 2009.
[8] A.D. Belegundu and T.R. Chandrupatla, Optimization Concepts and Applications in
Engineering, second ed. Cambridge Univ. Press, 2011.
[9] E. Al-Masri and Q.H. Mahmoud, Discovering the Best Web Service, Proc. 16th Intl Conf.
World Wide Web (WWW 07), pp. 1257-1258, 2007.
[10] V. Cardellini, E. Casalicchio, V. Grassi, F.L. Presti, and R. Mirandola, QoS-Driven Runtime
Adaptation of Service Oriented Architectures, Proc. Seventh Joint Meeting European Software
Eng. Conf. and ACM SIGSOFT Symp. Foundations of Software Eng. (ESEC/ SIGSOFT FSE
09), pp. 131-140, 2009.
[11] K.-J. Lin, J. Zhang, Y. Zhai, and B. Xu, The Design and Implementation of Service Process
Reconfiguration with End-to- End QoS Constraints in SOA, Service Oriented Computing and
Applications, vol. 4, no. 3, pp. 157-168, 2010.
[12] O. Moser, F. Rosenberg, and S. Dustdar, Non-Intrusive Monitoring and Service Adaptation
for WS-BPEL, Proc. 17th Intl Conf. World Wide Web (WWW 08), pp. 815-824, 2008.