Abstract
We study QoSaware management of service orchestrations, specifically for orchestrations having a datadependent workflow. Our study supports multidimensional QoS. To capture uncertainty in performance and QoS, we provide support for probabilistic QoS. Under the above assumptions, orchestrations may be nonmonotonic with respect to QoS, meaning that strictly improving the QoS of a service may strictly decrease the endtoend QoS of the orchestration, an embarrassing feature for QoSaware management. We study monotonicity and provide sufficient conditions for it. We then propose a comprehensive theory and methodology for monotonic orchestrations. Generic QoS composition rules are developed via a QoS Calculus, also capturing best service binding—service discovery, however, is not within the scope of this work.
Monotonicity provides the rationale for a contractbased approach to QoSaware management. Although function and QoS cannot be separated in the design of complex orchestrations, we show that our framework supports separation of concerns by allowing the development of function and QoS separately and then “weaving” them together to derive the QoSenhanced orchestration. Our approach is implemented on top of the Orc script language for specifying service orchestrations.
This is a preview of subscription content, log in to check access.
Notes
 1.
Involved services include all services that can potentially be requested by the composite service. For example, if the composite service involves an ifthenelse branch, only one branch will actually be executed, but both are involved in the composite service.
 2.
A dioid is a semiring with idempotent addition.
 3.
 4.
The schedulers introduced for probabilistic automata by Lynch and Segala [45] are a special case of daemon.
 5.
Thanks are due to Bernard Delyon who pointed this reference to us.
 6.
 7.
Since QoS values may be partially ordered, this choice could be nondeterministic.
 8.
Described in the documentation at URL: http://orc.csres.utexas.edu/.
References
 1.
van der Aalst WMP (1997) Verification of workflow nets. In: ICATPN, pp 407–426
 2.
van der Aalst WMP (1998) The application of Petri nets to workflow management. J Circuits Syst Comput 8(1):21–66. citeseer.ist.psu.edu/vanderaalst98application.html
 3.
van der Aalst WMP, van Hee KM (2002) Workflow management: models, methods, and systems. MIT Press, Cambridge
 4.
van der Aalst WMP, ter Hofstede AHM, Kiepuszewski B, Barros AP (2003) Workflow patterns. Distrib Parallel Databases 14(1):5–51. doi:10.1023/A:1022883727209
 5.
Abundo M, Cardellini V, Presti FL (2011) Optimal admission control for a QoSaware serviceoriented system. In: ServiceWave, pp 179–190
 6.
Bensoussan A (1992) Stochastic control of partially observable systems. Cambridge University Press, Cambridge
 7.
Alrifai M, Risse T (2009) Combining global optimization with local selection for efficient QoSaware service composition. In: WWW, pp 881–890
 8.
Ardagna D, Ghezzi C, Mirandola R (2008) Model driven QoS analyses of composed web services. In: Mähönen P, Pohl K, Priol T (eds) ServiceWave. Lecture notes in computer science, vol 5377. Springer, Berlin, pp 299–311
 9.
Ardagna D, Giunta G, Ingraffia N, Mirandola R, Pernici B (2006) QoSdriven web services selection in autonomic grid environments. In: Meersman R, Tari Z (eds) OTM conferences. Lecture notes in computer science, vol 4276. Springer, Berlin, pp 1273–1289
 10.
Ardagna D, Pernici B (2005) Global and local QoS guarantee in web service selection. In: Bussler C, Haller A (eds) Business process management workshops, vol 3812, pp 32–46
 11.
Bistarelli S, Montanari U, Rossi F, Santini F (2010) Unicast and multicast QoS routing with softconstraint logic programming. ACM Trans Comput Log 12(1):5:1–5:48
 12.
Bistarelli S, Santini F (2009) A nonmonotonic soft concurrent constraint language for SLA negotiation. Electron Notes Theor Comput Sci 236:147–162
 13.
Bistarelli S, Santini F (2009) Soft constraints for quality aspects in service oriented architectures. In: Young researchers workshop on serviceoriented computing, pp 51–65
 14.
Bouillard A, Rosario S, Benveniste A, Haar S (2009) Monotonicity in service orchestrations. In: Franceschinis G, Wolf K (eds) Petri nets. Lecture notes in computer science, vol 5606. Springer, Berlin, pp 263–282
 15.
Buscemi MG, Montanari U (2007) CCPi: a constraintbased language for specifying service level agreements. In: Proceedings of the 16th European conference on programming, ESOP’07. Springer, Berlin, pp 18–32. http://dl.acm.org/citation.cfm?id=1762174.1762179
 16.
Buscemi MG, Montanari U (2011) QoS negotiation in service composition. J Log Algebr Program 80(1):13–24
 17.
Calinescu R, Grunske L, Kwiatkowska M, Mirandola R, Tamburrelli G (2011) Dynamic QoS management and optimization in servicebased systems. IEEE Trans Softw Eng 37(3):387–409
 18.
Cardellini V, Casalicchio E, Grassi V, Presti FL (2010) Adaptive management of composite services under percentilebased service level agreements. In: ICSOC 2010. Lecture notes in computer science, vol 6470, pp 381–395
 19.
Cardoso J, Sheth AP, Miller JA (2002) Workflow quality of service. In: Kosanke K, Jochem R, Nell JG, Bas AO (eds) ICEIMT, IFIP conference proceedings, vol 236. Kluwer, Dordrecht, pp 303–311
 20.
Cardoso J, Sheth AP, Miller JA, Arnold J, Kochut K (2004) Quality of service for workflows and web service processes. J Web Semant 1(3):281–308
 21.
Cook WR, Patwardhan S, Misra J (2006) Workflow patterns in Orc. In: Coordination, pp 82–96
 22.
Esparza J, Römer S, Vogler W (2002) An improvement of McMillan’s unfolding algorithm. Form Methods Syst Des 20(3):285–310
 23.
Baccelli F, Cohen G, Olsder GJ, Quadrat JP (1992) Synchronization and linearity. Wiley series in probability and mathematical statistics. Wiley, New York
 24.
Hwang SY, Wang H, Srivastava J, Paul RA (2004) A probabilistic QoS model and computation framework for web servicesbased workflows. In: ER, pp 596–609
 25.
Hwang SY, Wang H, Tang J, Srivastava J (2007) A probabilistic approach to modeling and estimating the QoS of webservicesbased workflows. Inf Sci 177(23):5484–5503
 26.
Kattepur A (2011) Importance sampling of probabilistic contracts in web services. In: Kappel G, Maamar Z, MotahariNezhad HR (eds) ICSOC. Lecture notes in computer science, vol 7084. Springer, Berlin, pp 557–565
 27.
Keller A, Ludwig H (2003) The WSLA framework: specifying and monitoring service level agreements for web services. J Netw Syst Manag 11(1)
 28.
Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes C, Loingtier MJ, Irwin J (1997) Aspectoriented programming. In: ECOOP. Springer, Berlin
 29.
Kiselev I (2002) Aspectoriented programming with AspectJ. Sams, Indianapolis
 30.
Kitchin D, Cook WR, Misra J (2006) A language for task orchestration and its semantic properties. In: Proceedings of the international conference on concurrency theory (CONCUR)
 31.
Marsan MA, Balbo G, Bobbio A, Chiola G, Conte G, Cumani A (1989) The effect of execution policies on the semantics and analysis of stochastic Petri nets. IEEE Trans Softw Eng 15(7):832–846
 32.
Menascé DA, Casalicchio E, Dubey VK (2008) A heuristic approach to optimal service selection in service oriented architectures. In: Avritzer A, Weyuker EJ, Woodside CM (eds) WOSP. ACM, New York, pp 13–24
 33.
Misra J, Cook WR (2006) Computation orchestration: a basis for widearea computing. Softw Syst Model. doi:10.1007/s1027000600121
 34.
Shaked M, Shanthikumar JG (1994) Stochastic orders and their applications. Academic Press, New York
 35.
Shaked M, Shanthikumar JG (2007) Stochastic orders. Springer, Berlin
 36.
Murata T (1989) Petri nets: properties, analysis and applications. In: Proceedings of the IEEE, vol 77, pp 541–580
 37.
Nicola R, Ferrari G, Montanari U, Pugliese R, Tuosto E (2005) A process calculus for QoSaware applications. In: Jacquet JM, Picco GP (eds) Coordination models and languages. Lecture notes in computer science, vol 3454. Springer, Berlin, pp 33–48. doi:10.1007/11417019_3
 38.
OASIS (2007) Web services business process execution language version 2.0. http://docs.oasisopen.org/wsbpel/2.0/wsbpelv2.0.pdf
 39.
Rosario S, Benveniste A, Haar S, Jard C (2007) Probabilistic QoS and soft contracts for transaction based web services. In: ICWS. IEEE Computer Society, Los Alamitos, pp 126–133
 40.
Rosario S, Benveniste A, Haar S, Jard C (2008) Probabilistic QoS and soft contracts for transaction based web services orchestrations. IEEE Trans Service Comput 1(4)
 41.
Rosario S, Benveniste, A, Jard, C (2009) A theory of QoS for web service orchestrations. Research report RR6951, INRIA. Available from http://hal.inria.fr/inria00391592/PDF/RR6951.pdf
 42.
Rosario S, Benveniste A, Jard C (2009) Flexible probabilistic QoS management of transaction based web services orchestrations. In: ICWS. IEEE, New York, pp 107–114
 43.
Rosario S, Kitchin D, Benveniste A, Cook WR, Haar S, Jard C (2007) Event structure semantics of orc. In: Dumas M, Heckel R (eds) WSFM. Lecture notes in computer science, vol. 4937. Springer, Berlin, pp 154–168
 44.
Sato N, Trivedi KS (2007) Stochastic modeling of composite web services for closedform analysis of their performance and reliability bottlenecks. In: Krämer BJ, Lin KJ, Narasimhan P (eds) ICSOC. Lecture notes in computer science, vol 4749. Springer, Berlin, pp 107–118
 45.
Segala R, Lynch NA (1994) Probabilistic simulations for probabilistic processes. In: Jonsson B, Parrow J (eds) CONCUR. Lecture notes in computer science, vol 836. Springer, Berlin, pp 481–496
 46.
Kamae T, Krengel U, O’Brien GL (1977) Stochastic inequalities on partially ordered spaces. Ann Probab 5(6):899–912
 47.
Saaty TL (1990) How to make a decision: the analytic hierarchy process. Eur J Oper Res 48(2):9–26
 48.
Yu Q, Bouguettaya A (2008) Framework for web service query algebra and optimization. ACM Trans Web 2(1)
 49.
Yu T, Lin KJ (2005) Service selection algorithms for composing complex services with multiple QoS constraints. In: Benatallah B, Casati F, Traverso P (eds) ICSOC. Lecture notes in computer science, vol 3826. Springer, Berlin, pp 130–143
 50.
Zeng L, Benatallah B, Dumas M, Kalagnanam J, Sheng QZ (2003) Quality driven web services composition. In: WWW, pp 411–421
 51.
Zeng L, Benatallah B, Ngu AHH, Dumas M, Kalagnanam J, Chang H (2004) QoSaware middleware for web services composition. IEEE Trans Softw Eng 30(5):311–327
 52.
Zeng L, Ngu AHH, Benatallah B, Podorozhny RM, Lei H (2008) Dynamic composition and optimization of web services. Distrib Parallel Databases 24(1–3):45–72
 53.
Zheng H, Yang J, Zhao W, Bouguettaya A (2011) QoS analysis for web service compositions based on probabilistic QoS. In: Kappel G, Maamar Z, MotahariNezhad H (eds) Serviceoriented computing, Lecture notes in computer science, vol 7084. Springer, Berlin, pp 47–61
Acknowledgements
The authors would like to thank Jayadev Misra and William R. Cook for fruitful discussions regarding Orc. Further thanks to the two anonymous referees for providing us with constructive comments and suggestions that have been incorporated in the revised version. This work was partially funded by the INRIA Associated Team grant FOSSA, the ANR national research program DocFlow (ANR06MDCA005) and the project CREATE ActivDoc.
Author information
Affiliations
Corresponding author
Additional information
This work started when S. Rosario was with U.T. Austin.
Appendices
Appendix A: Proofs
A.1 Proof of Theorem 2
Throughout the proof, we fix an arbitrary value ω for the daemon. We first prove the sufficiency of condition (21). Let \(\mathcal{N}'\) be such that \(\mathcal{N}'\geq\mathcal{N}\). Since operators ⊕ and ◁ are both monotonic, see Definition 1, we have, by Procedure 2 and formulas (17) and (18):
By (21) applied with \(\kappa=\kappa(\mathcal{N}',\omega)\), we get that
holds. This proves the sufficiency of condition (21).
We prove necessity by contradiction. Let \((\mathcal{N},\omega,\kappa^{\dagger})\) be a triple violating condition (21), in that
Now consider the OrchNet net \(\mathcal{N}'=(N,V,Q',Q_{\rm init})\) where the family Q′ is such that, ∀t∈κ ^{†}, \(\xi'_{t}(\omega)=\xi_{t}(\omega)\) holds, and ∀t∉κ ^{†}, using (5) together with the assumption that \((\mathbb{D},\leq)\) is an upper lattice, we can inductively select \(\xi'_{t}(\omega)\) such that the following two inequalities hold:
Condition (30) expresses that \(\mathcal{N}'\geq\mathcal{N}\). By Procedure 1 defining QoS policy, (29) implies that configuration κ ^{†} can win all competitions arising in step 3 of QoS policy, \(\kappa(\mathcal{N}',\omega)=\kappa^{\dagger}\) holds, and thus
However, \(E_{\omega}(\kappa^{\dagger},\mathcal{N}) \geq E_{\omega}(\kappa(\mathcal{N},\omega),\mathcal{N})\) does not hold, which violates monotonicity.
A.2 Proof of Theorem 3, sufficiency
Let φ _{ N } be the net morphism mapping U _{ N } onto N and let \(\mathcal{N}\) be any OrchNet built on U _{ N }. We prove that condition (21) of Theorem 2 holds for \(\mathcal{N}\) by induction on the number of transitions in the maximal configuration \(\kappa(\mathcal{N},\omega)\) that actually occurs. The base case is when it has only one transition. Clearly this transition has minimal QoS increment and any other maximal configuration has a greater endtoend QoS value.
Induction hypothesis
Condition (21) of Theorem 2 holds for any maximal occurring configuration with m−1 transitions (m>1). Formally, for an OrchNet \(\mathcal{N}, \forall\omega\in\varOmega, \forall\kappa\in\mathcal{V} (N )\),
must hold if \(\{t \in\kappa(\mathcal{N},\omega)\}\leq m1\).
Induction argument
Consider the OrchNet \(\mathcal{N}\), where the actually occurring configuration \(\kappa(\mathcal{N},\omega)\) has m transitions and let
be the increasing chain of configurations leading to \(\kappa(\mathcal{N},\omega)\) under QoS policy, see (3.2)—to shorten the notations, we write simply κ instead of κ _{1}(ω) subsequently in the proof. We assume that M(ω)≤m. Let t be the unique transition such that t∈κ _{1}(ω) and set \(\widehat{t}=\{t\}\cup t^{\bullet}\). Let κ′ be any other maximal configuration of \(\mathcal{N}\). Then two cases can occur.

t∈κ′: In this case, comparing the endtoend QoS of \(\kappa(\mathcal{N},\omega)\) and κ′ reduces to comparing
$$E_{\omega}\bigl(\kappa(\mathcal{N},\omega) \setminus\widehat{t}, \mathcal{N}^\kappa\bigr) \mbox{ and } E_{\omega }\bigl( \kappa' \setminus \widehat{t}, \mathcal{N}^\kappa\bigr) $$where \(\mathcal{N}^{\kappa}\) is the future of κ in \(\mathcal{N}=(N,V,A,Q,Q_{\rm init})\), obtained by replacing N by N ^{κ}, restricting V, A, and Q to N ^{κ}, and replacing \(Q_{\rm init}\) by \(E_{\omega}(\kappa,\mathcal{N})\), the QoS cost of executing configuration κ.
Since \(\kappa(\mathcal{N},\omega) \setminus \widehat{t}\) is the actually occurring configuration in the future \(\mathcal{N}^{\kappa}\) of transition t, using our induction hypothesis, then
$$E_{\omega}\bigl(\kappa' \setminus\widehat{t}, \mathcal{N}^\kappa\bigr) \geq E_{\omega}\bigl(\kappa(\mathcal{N}, \omega) \setminus\widehat {t},\mathcal{N}^\kappa\bigr) $$holds, which implies
$$E_{\omega}\bigl(\kappa',\mathcal{N}\bigr) \ \geq\ E_{\omega}\bigl(\kappa(\mathcal{N},\omega),\mathcal{N}\bigr). $$ 
t∉κ′: Then there must exist a transition t′∈κ′ such that t and t′ differ and belong to the same cluster c. Hence, φ _{ N }(t)^{•}=φ _{ N }(t′)^{•} follows from the structural condition of Theorem 3. The futures \(\mathcal{N}^{\kappa}\) and \(\mathcal{N}^{\kappa'}\) thus are isomorphic: they only differ in the initial colors of their places. If Q _{ init } and \(Q'_{init}\) are the initial QoS values for the futures \(\mathcal{N}^{\kappa}\) and \(\mathcal{N}^{\kappa '}\), then \(Q_{init} \leq Q'_{init}\) holds (since ξ _{ t }≤ξ _{ t′}, t ^{•} has QoS lesser than t′^{•} by monotonicity of ⊕). On the other hand,
$$\begin{aligned} E_{\omega}\bigl(\kappa(\mathcal{N},\omega),\mathcal{N}\bigr)\ =& E_{\omega}\bigl(\kappa(\mathcal{N},\omega) \setminus\widehat {t}, \mathcal{N}^\kappa\bigr) \end{aligned}$$(32)and
$$\begin{aligned} E_{\omega}\bigl(\kappa',\mathcal{N}\bigr)\ = E_{\omega} \bigl(\kappa' \setminus\widehat{t'}, \mathcal{N}^{\kappa'}\bigr). \end{aligned}$$Now, since \(\mathcal{N}^{\kappa'}\) and \(\mathcal{N}^{\kappa}\) possess identical underlying nets and \(\mathcal{N}^{\kappa'} \geq\mathcal{N}^{\kappa}\), then we get
$$\begin{aligned} E_{\omega}\bigl(\kappa' \setminus\widehat{t'}, \mathcal{N}^{\kappa'}\bigr) \geq& E_{\omega}\bigl(\kappa' \setminus\widehat{t'},\mathcal{N} ^{\kappa}\bigr). \end{aligned}$$(33)Finally, applying the induction hypothesis to (32) and using (33) yields \(E_{\omega}(\kappa',\mathcal{N}) \geq E_{\omega}(\kappa(\mathcal{N},\omega),\mathcal{N})\).
This proves that condition (21) of Theorem 2 holds and finishes the proof of the theorem.
A.3 Proof of Theorem 3, necessity
We will show that when the structural condition of Theorem 3 is not satisfied by N, Orchnet \(\mathcal{N}_{N}\) can violate condition (21) of Theorem 2, the necessary condition for monotonicity.
Let c be any cluster in U _{ N } that violates the structural condition of Theorem 3. Since N is sound, all transitions in c are reachable from the initial place and so there are transitions t _{1},t _{2}∈c such that ^{•} t _{1}∩^{•} t _{2}≠∅, ^{•} φ(t _{1})∩^{•} φ(t _{2})≠∅ and φ(t _{1})^{•}≠φ(t _{2})^{•}.
Define \([t]=\lceil t\rceil\setminus\widehat{t}\) and κ=[t _{1}]∪[t _{2}]. κ is a configuration. Since \(t_{1}^{\bullet}\ne t_{2}^{\bullet}\), without loss of generality, we assume that there is a place \(p\in t_{1}^{\bullet}\) such that \(p\notin t_{2}^{\bullet}\). Let t ^{∗} be a transition in \(\mathcal{N}^{\kappa}\) such that t ^{∗}∈p ^{•}. Such a transition must exist since p can not be a maximal place: φ(p) can not be a maximal place in N which has a unique maximal place. Now, consider the Orchnet \(\mathcal{N}'>\mathcal{N}\) obtained as follows: using repeatedly condition (5) for operator ⊕ in Definition 1, \(\xi'_{t_{1}}(\omega)=\xi_{t_{1}}(\omega), \xi'_{t_{2}}(\omega) \geq\xi_{t_{1}}(\omega) \), and, for all other \(t\in\mathbf{c}, \xi'_{t}(\omega) \geq \xi'_{t_{2}}(\omega)\). For all remaining transitions of \(\mathcal{N}'\), with the exception of t ^{∗}, the QoS increments are the same as that in \(\mathcal{N}\) and thus are finite for ω. Finally, select \(\xi'_{t^{*}}(\omega)\) such that
where \(\mathbf{Q}^{*}(\omega)\in\mathbb{D}\) will be chosen later—here we used the additional condition of Theorem 3 regarding \(\mathbb{D}\), together with condition (5) for operator ⊕ in Definition 1. Transition t _{1} has a minimal QoS increment among all transitions in cluster c. It can therefore win the competition, thus giving raise to an actually occurring configuration \(\kappa(\mathcal{N}',\omega)\). Select Q ^{∗}(ω) equal to the maximal value of the endtoend QoS of the set K of all maximal configurations κ that do not include t _{1} (e.g., when t _{2} fires instead of t _{1}). By (34), since t ^{∗} is in the future of t _{1}, we thus have \(E_{\omega}(\kappa(\mathcal{N}',\omega),\mathcal{N}')\) \(\geq \xi_{t_{1}}(\omega)\oplus\xi'_{t^{*}}(\omega) > \mathbf{Q}^{*}(\omega) \geq E_{\omega}(\kappa,\mathcal{N}')\) for any configuration κ and, therefore, \(\mathcal{N}'\) violates the condition (21) of Theorem 2.
A.4 Proof of Theorem 5
The proof is by contradiction. Assume that
To prove the theorem it is enough to prove that (35) implies:
To this end, set \(\mathcal{N}_{o}=\mathcal{N}\) and define \(\mathcal {N}'_{o}\) as follows, where Ω _{ o } denotes the set \(\{\,\omega\in \varOmega\mid E_{\omega}(\mathcal{N})<E_{\omega}(\mathcal{N}') \}\):
Note that \(\mathcal{N}_{o}\geq\mathcal{N}'_{o}\geq\mathcal{N}'\) by construction. On the other hand, we have \(E_{\omega}(\mathcal{N}_{o})<E_{\omega}(\mathcal{N}'_{o})\) for ω∈Ω _{ o }, and \(E_{\omega}(\mathcal{N}_{o})=E_{\omega}(\mathcal{N}'_{o})\) for \(\omega\not\in\varOmega_{o}\). By (35), we have P(Ω _{ o })>0. Consequently, we get:
which implies that \(E(\mathcal{N}_{o}) \geq ^{s}E(\mathcal{N}'_{o})\) does not hold.
Appendix B: Implementation in Orc
An implementation of a QoS management facility is a large undertaking, involving the creation of mechanisms for service identification, QoS criteria definition, SLA negotiation, QoS measurement, alerts, reports, QoSbased reconfiguration, and so forth. In this section, we narrow our focus to several aspects of these mechanisms that are impacted by this paper’s view of QoS for service orchestrations.
In particular, we illustrate some aspects of our implementation in Orc. We first explain how Orc is upgraded to offer the QoSbased pruning operator (27) in the form of a new bestQ operator. Then, we exhibit the implementation of several QoS domains with their QoS operators. Finally, we illustrate how the QoS weaving is performed for the TravelAgent2 orchestration from Sect. 1.
B.1 Enhancing Orc with bestQ functions
Recall that the Orc pruning combinator g < x < f selects the first publication from an expression f, and terminates further execution of that expression. In this case, first is in the sense of the real time ordering of publications. However, this mechanism can be extended to various QoS domains. For example, in our exemplar security level with values “high” and “low”, securitypruning selects the first “high” publication; or if the expression halts after publishing only “low” publications, then securitypruning selects the first one. This selection process may impact other QoS values, such as response time or cost, since several values are considered before the “winner” is selected.
This QoSaware selection process is performed by a bestQ function, for various domains Q. The bestQ function implements Step 3 of Procedure 1.
The simplest cases for the competition function are domains where evaluation of “looser” alternatives does not affect the resultant QoS. Security level (without considering cost or response time) is an example of such a domain. In these cases, the competition function is trivial:
and bestQ is simply max.
Figure 11 shows an Orc implementation of the competition operator and bestSLandRT for a more complex domain: a compound security level–response time QoS domain. In this domain, the QoS values are represented as pairs of (security level, response time), following Eq. (3).
The competition operator compete unzips the list of consideredbutnotselected values’ pairs into a pair of lists, takes the second of these lists (the list of response times), and performs a response time domain join on that list with the “winner” value’s response time prepended. The response time domain join is the maximum of the response times of all values considered, which is used to set the response time of the QoS value resulting from the compete.
The bestSLandRT function immediately publishes the first “high” security level value it receives, if any. In this case, the response time component of the result is that of the first “high” value received, under the assumption that bestSLandRT is receiving values in order of increasing response time. If bestSLandRT receives only “low” security level values, then it returns the pair containing “low” and the response time domain join of all received values (maximum response time), since bestSLandRT had to wait for all responses to determine that there was no “high” security response.
In other domains, the competition operator and bestQ function would involve a different set of considered values, according to the specifics of the particular criteria for “best”, as determined by the application.
B.2 QoS weaving
QoS weaving consists of the steps needed to enhance functional Orc specifications with QoS.

1.
Orchestration Definition: Starting from the specification of the orchestration, we construct a conventional Orc program. At this point, the program corresponds only to the functional requirements of the specification, and does not include any explicit QoS awareness.

2.
QoS Declaration: Based on the QoS requirements of the specification, appropriate QoS domains are selected. For each QoS domain, the operators leq , min, max, oPlus, join, and compete, are defined, along with the zero constant for the QoS domain.
Refer to Fig. 12 for an example of QoS operator definitions for the Response time and Cost QoS domains, and the composite Cost and response time domain. These definitions make use of Orc library functions,^{Footnote 8} such as cfold which is a normal list fold operation for a commutative operator. The Response time domain’s underlying set is nonnegative integers. The Cost domain uses integers as its underlying set. Note that in Sect. 2.2, the Cost domain needed multisets to preserve the lattice semantics used in the development of the theory. The Orc implementation can bypass this obligation by defining a join operation that is different from a pure ordertheoretical ⋁ operator dictated by the partial order.

3.
Site Enhancement with QoS: Services, called “sites” in Orc, which are involved in the QoS of the orchestration are enhanced to be QoSaware. QoS parameters are passed and returned by QoSaware site calls. For some domains, generic QoS measurement logic can be instantiated. For example, call–return response time can be measured and the resultant QoS parameters computed appropriately in a siteindependent manner. However, for other QoS domains, such as cost, the site’s participation is required to compute the QoS parameters for a call.

4.
QoS Weaving: QoSawareness is “woven” into the orchestration by program transformations. This is a mechanical process that can be automated. A basic sketch of a few representative transformations are presented here. Program values corresponding to the OrchNet tokens are augmented into (value, QoS) pairs, as discussed in Sect. 3.2. QoSaware Orc site calls are rewritten to join the QoS parameters carried by their arguments, and to increment the QoS parameters of their returns. Program operations that select one QoS value from a set are rewritten to use bestQ and competition operators as appropriate.
The transformed program’s publications carry QoS parameters indicating the endtoend QoS for each value published from the orchestration.
These are the essential steps to constructing a QoSaware Orc program. There are many enhancements suggested by engineering concerns, such as:

Automation of the weaving process described above.

Accommodation of additional QoS domains, and more complex QoS values. For example, adding an error bound domain or accommodating multiple units of cost.

Some QoS domainindependence for certain sites. For example, joining multiple QoS parameters without depending on the specific types of the parameters.
These are implemented by straightforward applications of objectoriented software engineering. Implementations of these enhancements are omitted here as unnecessary to demonstrate the contributions of the current work.
B.3 TravelAgent2 example
In Figs. 13 and 14, the QoSweaved output of the TravelAgent2 orchestration from Sect. 1 is provided with the original orchestration implementation in normal text and the QoSweaving added code . Increments to the compound QoS domain Cost and ResponseTime are accumulated as the orchestration progresses. The QoSweaved code is available on the Orc site at URL: http://orc.csres.utexas.edu/papers/qosaware.shtml, from where it can be run.
Rights and permissions
About this article
Cite this article
Benveniste, A., Jard, C., Kattepur, A. et al. QoSaware management of monotonic service orchestrations. Form Methods Syst Des 44, 1–43 (2014). https://doi.org/10.1007/s1070301301917
Published:
Issue Date:
Keywords
 Web services
 QoS
 Algebra
 Probabilistic models