QoS-aware management of monotonic service orchestrations


We study QoS-aware management of service orchestrations, specifically for orchestrations having a data-dependent workflow. Our study supports multi-dimensional QoS. To capture uncertainty in performance and QoS, we provide support for probabilistic QoS. Under the above assumptions, orchestrations may be non-monotonic with respect to QoS, meaning that strictly improving the QoS of a service may strictly decrease the end-to-end QoS of the orchestration, an embarrassing feature for QoS-aware 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 contract-based approach to QoS-aware 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 QoS-enhanced 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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10


  1. 1.

    Involved services include all services that can potentially be requested by the composite service. For example, if the composite service involves an if-then-else branch, only one branch will actually be executed, but both are involved in the composite service.

  2. 2.

    A dioid is a semi-ring with idempotent addition.

  3. 3.


  4. 4.

    The schedulers introduced for probabilistic automata by Lynch and Segala [45] are a special case of daemon.

  5. 5.

    Thanks are due to Bernard Delyon who pointed this reference to us.

  6. 6.


  7. 7.

    Since QoS values may be partially ordered, this choice could be non-deterministic.

  8. 8.

    Described in the documentation at URL: http://orc.csres.utexas.edu/.


  1. 1.

    van der Aalst WMP (1997) Verification of workflow nets. In: ICATPN, pp 407–426

    Google Scholar 

  2. 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

    Article  Google Scholar 

  3. 3.

    van der Aalst WMP, van Hee KM (2002) Workflow management: models, methods, and systems. MIT Press, Cambridge

    Google Scholar 

  4. 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

    Article  Google Scholar 

  5. 5.

    Abundo M, Cardellini V, Presti FL (2011) Optimal admission control for a QoS-aware service-oriented system. In: ServiceWave, pp 179–190

    Google Scholar 

  6. 6.

    Bensoussan A (1992) Stochastic control of partially observable systems. Cambridge University Press, Cambridge

    Google Scholar 

  7. 7.

    Alrifai M, Risse T (2009) Combining global optimization with local selection for efficient QoS-aware service composition. In: WWW, pp 881–890

    Google Scholar 

  8. 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

    Google Scholar 

  9. 9.

    Ardagna D, Giunta G, Ingraffia N, Mirandola R, Pernici B (2006) QoS-driven 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

    Google Scholar 

  10. 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

    Google Scholar 

  11. 11.

    Bistarelli S, Montanari U, Rossi F, Santini F (2010) Unicast and multicast QoS routing with soft-constraint logic programming. ACM Trans Comput Log 12(1):5:1–5:48

    Article  MathSciNet  Google Scholar 

  12. 12.

    Bistarelli S, Santini F (2009) A nonmonotonic soft concurrent constraint language for SLA negotiation. Electron Notes Theor Comput Sci 236:147–162

    Article  Google Scholar 

  13. 13.

    Bistarelli S, Santini F (2009) Soft constraints for quality aspects in service oriented architectures. In: Young researchers workshop on service-oriented computing, pp 51–65

    Google Scholar 

  14. 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

    Google Scholar 

  15. 15.

    Buscemi MG, Montanari U (2007) CC-Pi: a constraint-based 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

    Google Scholar 

  16. 16.

    Buscemi MG, Montanari U (2011) QoS negotiation in service composition. J Log Algebr Program 80(1):13–24

    Article  MATH  MathSciNet  Google Scholar 

  17. 17.

    Calinescu R, Grunske L, Kwiatkowska M, Mirandola R, Tamburrelli G (2011) Dynamic QoS management and optimization in service-based systems. IEEE Trans Softw Eng 37(3):387–409

    Article  Google Scholar 

  18. 18.

    Cardellini V, Casalicchio E, Grassi V, Presti FL (2010) Adaptive management of composite services under percentile-based service level agreements. In: ICSOC 2010. Lecture notes in computer science, vol 6470, pp 381–395

    Google Scholar 

  19. 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

    Google Scholar 

  20. 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

    Article  Google Scholar 

  21. 21.

    Cook WR, Patwardhan S, Misra J (2006) Workflow patterns in Orc. In: Coordination, pp 82–96

    Google Scholar 

  22. 22.

    Esparza J, Römer S, Vogler W (2002) An improvement of McMillan’s unfolding algorithm. Form Methods Syst Des 20(3):285–310

    Article  MATH  Google Scholar 

  23. 23.

    Baccelli F, Cohen G, Olsder GJ, Quadrat J-P (1992) Synchronization and linearity. Wiley series in probability and mathematical statistics. Wiley, New York

    Google Scholar 

  24. 24.

    Hwang SY, Wang H, Srivastava J, Paul RA (2004) A probabilistic QoS model and computation framework for web services-based workflows. In: ER, pp 596–609

    Google Scholar 

  25. 25.

    Hwang SY, Wang H, Tang J, Srivastava J (2007) A probabilistic approach to modeling and estimating the QoS of web-services-based workflows. Inf Sci 177(23):5484–5503

    Article  MATH  Google Scholar 

  26. 26.

    Kattepur A (2011) Importance sampling of probabilistic contracts in web services. In: Kappel G, Maamar Z, Motahari-Nezhad HR (eds) ICSOC. Lecture notes in computer science, vol 7084. Springer, Berlin, pp 557–565

    Google Scholar 

  27. 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. 28.

    Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes C, Loingtier MJ, Irwin J (1997) Aspect-oriented programming. In: ECOOP. Springer, Berlin

    Google Scholar 

  29. 29.

    Kiselev I (2002) Aspect-oriented programming with AspectJ. Sams, Indianapolis

    Google Scholar 

  30. 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)

    Google Scholar 

  31. 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

    Article  Google Scholar 

  32. 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

    Google Scholar 

  33. 33.

    Misra J, Cook WR (2006) Computation orchestration: a basis for wide-area computing. Softw Syst Model. doi:10.1007/s10270-006-0012-1

    Google Scholar 

  34. 34.

    Shaked M, Shanthikumar JG (1994) Stochastic orders and their applications. Academic Press, New York

    Google Scholar 

  35. 35.

    Shaked M, Shanthikumar JG (2007) Stochastic orders. Springer, Berlin

    Google Scholar 

  36. 36.

    Murata T (1989) Petri nets: properties, analysis and applications. In: Proceedings of the IEEE, vol 77, pp 541–580

    Google Scholar 

  37. 37.

    Nicola R, Ferrari G, Montanari U, Pugliese R, Tuosto E (2005) A process calculus for QoS-aware 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

    Google Scholar 

  38. 38.

    OASIS (2007) Web services business process execution language version 2.0. http://docs.oasisopen.org/wsbpel/2.0/wsbpel-v2.0.pdf

  39. 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

    Google Scholar 

  40. 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. 41.

    Rosario S, Benveniste, A, Jard, C (2009) A theory of QoS for web service orchestrations. Research report RR-6951, INRIA. Available from http://hal.inria.fr/inria-00391592/PDF/RR-6951.pdf

  42. 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

    Google Scholar 

  43. 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) WS-FM. Lecture notes in computer science, vol. 4937. Springer, Berlin, pp 154–168

    Google Scholar 

  44. 44.

    Sato N, Trivedi KS (2007) Stochastic modeling of composite web services for closed-form 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

    Google Scholar 

  45. 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

    Google Scholar 

  46. 46.

    Kamae T, Krengel U, O’Brien GL (1977) Stochastic inequalities on partially ordered spaces. Ann Probab 5(6):899–912

    Article  MATH  MathSciNet  Google Scholar 

  47. 47.

    Saaty TL (1990) How to make a decision: the analytic hierarchy process. Eur J Oper Res 48(2):9–26

    Article  MATH  Google Scholar 

  48. 48.

    Yu Q, Bouguettaya A (2008) Framework for web service query algebra and optimization. ACM Trans Web 2(1)

  49. 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

    Google Scholar 

  50. 50.

    Zeng L, Benatallah B, Dumas M, Kalagnanam J, Sheng QZ (2003) Quality driven web services composition. In: WWW, pp 411–421

    Google Scholar 

  51. 51.

    Zeng L, Benatallah B, Ngu AHH, Dumas M, Kalagnanam J, Chang H (2004) QoS-aware middleware for web services composition. IEEE Trans Softw Eng 30(5):311–327

    Article  Google Scholar 

  52. 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

    Article  Google Scholar 

  53. 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, Motahari-Nezhad H (eds) Service-oriented computing, Lecture notes in computer science, vol 7084. Springer, Berlin, pp 47–61

    Google Scholar 

Download references


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 (ANR-06-MDCA-005) and the project CREATE ActivDoc.

Author information



Corresponding author

Correspondence to Albert Benveniste.

Additional information

This work started when S. Rosario was with U.T. Austin.


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):

$$\begin{aligned} E_\omega\bigl(\kappa\bigl(\mathcal{N}',\omega\bigr), \mathcal{N}'\bigr) \geq E_\omega\bigl(\kappa\bigl( \mathcal{N}',\omega\bigr),\mathcal{N}\bigr). \end{aligned}$$

By (21) applied with \(\kappa=\kappa(\mathcal{N}',\omega)\), we get that

$$\begin{aligned} E_\omega\bigl(\kappa\bigl(\mathcal{N}',\omega\bigr), \mathcal{N}\bigr) \geq E_\omega\bigl(\kappa(\mathcal{N},\omega), \mathcal{N}\bigr) \end{aligned}$$

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

$$\begin{aligned} &\kappa^\dagger\ \mbox{cannot get selected by~Procedure~{1}, but } \\ &\quad E_\omega\bigl(\kappa^\dagger,\mathcal{N}\bigr) \geq E_\omega\bigl(\kappa(\mathcal{N},\omega),\mathcal{N}\bigr)\ \mbox{does not hold.} \end{aligned}$$

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:

$$\begin{aligned} \bigvee_{t\in\kappa^\dagger}q_t \leq& \biggl(\bigvee _{p'\in{{}^{\bullet\!}{t}}}q_{p'} \biggr) \oplus\xi '_t(\omega), \end{aligned}$$
$$\begin{aligned} \xi_t(\omega) \leq& \xi'_t(\omega). \end{aligned}$$

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

$$\begin{aligned} E_\omega\bigl(\kappa\bigl(\mathcal{N}',\omega\bigr), \mathcal{N}'\bigr) = E_\omega\bigl(\kappa^\dagger, \mathcal{N}'\bigr) = E_\omega\bigl(\kappa^\dagger, \mathcal{N}\bigr). \end{aligned}$$

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 end-to-end 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 )\),

$$\begin{aligned} E_\omega(\kappa,\mathcal{N}) \geq E_\omega\bigl(\kappa( \mathcal{N},\omega),\mathcal{N}\bigr) \end{aligned}$$

must hold if \(|\{t \in\kappa(\mathcal{N},\omega)\}|\leq m-1\).

Induction argument

Consider the OrchNet \(\mathcal{N}\), where the actually occurring configuration \(\kappa(\mathcal{N},\omega)\) has m transitions and let

$$\emptyset=\kappa_0(\omega)\prec\kappa_1(\omega ) (= \kappa)\prec\cdots \prec\kappa_{M(\omega)}(\omega)=\kappa(\mathcal{N} ,\omega) $$

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 end-to-end 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}$$


    $$\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}$$

    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 2c 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

$$\begin{aligned} \xi_{t_1}(\omega)\oplus\xi'_{t^*}(\omega) > \mathbf {Q}^*(\omega) \end{aligned}$$

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 end-to-end 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

$$\begin{aligned} &\mbox{there exists a pair $(\mathcal{N},\mathcal{N}')$ of OrchNets such that} \\ &\quad \mathcal{N}\geq\mathcal{N}' \mbox{ and } \mathbf{P} \bigl\{\omega\in\varOmega\mid E_\omega(\mathcal{N})<E_\omega(\mathcal{N}') \bigr\} >0 . \end{aligned}$$

To prove the theorem it is enough to prove that (35) implies:

$$\begin{aligned} &\mbox{there exists $\mathcal{N}_{o},\mathcal{N}'_{o}$ such that $\mathcal{N}_{o}\geq\mathcal{N}'_{o}$,} \\ &\quad \mbox{but } E(\mathcal{N}_o) \geq ^sE(\mathcal{N}'_o) \mbox{ does not hold} \end{aligned}$$

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}') \}\):

$$\mathcal{N}'_o(\omega) = \mbox{if}\ \omega\in \varOmega_o\ \mbox{then}\ \mathcal{N}'(\omega )\ \mbox{else}\ \mathcal{N}(\omega). $$

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:

$$\begin{aligned} & \bigl[\forall\omega\in\varOmega\ \Rightarrow\ E_\omega( \mathcal{N}_o)\leq E_\omega\bigl(\mathcal{N}'_o \bigr) \bigr]\quad \mbox{and} \\ &\quad \bigl[\mathbf{P} \bigl\{\omega\in\varOmega\mid E_\omega(\mathcal{N}_o)<E_\omega\bigl( \mathcal{N}'_o\bigr) \bigr\} >0 \bigr] \end{aligned}$$

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, QoS-based 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 QoS-based 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”, security-pruning selects the first “high” publication; or if the expression halts after publishing only “low” publications, then security-pruning 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 QoS-aware 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:

$$ x\lhd X=x \quad \textrm{for any pair}\ (x,X) $$

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).

Fig. 11

Competition operator and bestSLandRT for composite (security level, response time) QoS domain

The competition operator compete unzips the list of considered-but-not-selected 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. 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. 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 non-negative 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 order-theoretical ⋁ operator dictated by the partial order.

    Fig. 12

    QoS declaration for the TravelAgent2 example

  3. 3.

    Site Enhancement with QoS: Services, called “sites” in Orc, which are involved in the QoS of the orchestration are enhanced to be QoS-aware. QoS parameters are passed and returned by QoS-aware 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 site-independent manner. However, for other QoS domains, such as cost, the site’s participation is required to compute the QoS parameters for a call.

  4. 4.

    QoS Weaving: QoS-awareness 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. QoS-aware 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 end-to-end QoS for each value published from the orchestration.

These are the essential steps to constructing a QoS-aware 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 domain-independence 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 object-oriented 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 QoS-weaved output of the TravelAgent2 orchestration from Sect. 1 is provided with the original orchestration implementation in normal text and the QoS-weaving added code . Increments to the compound QoS domain Cost and ResponseTime are accumulated as the orchestration progresses. The QoS-weaved code is available on the Orc site at URL: http://orc.csres.utexas.edu/papers/qos-aware.shtml, from where it can be run.

Fig. 13

Weaved TravelAgent2 orchestration (part 1 of 2). code is added by QoS weaving

Fig. 14

Weaved TravelAgent2 orchestration (part 2 of 2). code is added by QoS weaving

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Benveniste, A., Jard, C., Kattepur, A. et al. QoS-aware management of monotonic service orchestrations. Form Methods Syst Des 44, 1–43 (2014). https://doi.org/10.1007/s10703-013-0191-7

Download citation


  • Web services
  • QoS
  • Algebra
  • Probabilistic models