Formal Aspects of Computing

, Volume 25, Issue 6, pp 833–846 | Cite as

Reasoning about orchestrations of web services using partial correctness

  • Alan Stewart
  • Joaquim Gabarro
  • Anthony Keenan
Open Access
Original Article


A service is a remote computational facility which is made available for general use by means of a wide-area network. Several types of service arise in practice: stateless services, shared state services and services with states which are customised for individual users. A service-based orchestration is a multi-threaded computation which invokes remote services in order to deliver results back to a user (publication). In this paper a means of specifying services and reasoning about the correctness of orchestrations over stateless services is presented. As web services are potentially unreliable the termination of even finite orchestrations cannot be guaranteed. For this reason a partial-correctness powerdomain approach is proposed to capture the semantics of recursive orchestrations.


World Wide Web Service Specification Orchestration Orc Partial correctness Pre-orders Fixed-points Powerdomains 


  1. BvW.
    Back R-J, von Wright J (1998) Refinement calculus: a systematic introduction. Springer, New YorkCrossRefzbMATHGoogle Scholar
  2. Bk09.
    Back R-J (2009) Invariant based programming: basic approach and teaching experiences. Form Asp Comp 21(3): 227–244CrossRefzbMATHGoogle Scholar
  3. BBGGS07.
    Baresi L, Bianculli D, Ghezzi C, Guinea S, Spoletini P (2007) Validation of web service compositions. IET Softw 1(6): 219–232CrossRefGoogle Scholar
  4. Dij76.
    Dijkstra EW (1976) A discipline of programming. Prentice-Hall, Englewood CliffszbMATHGoogle Scholar
  5. [DLSZ06.
    Dong JS, Liu Y, Sun J, Zhang X (2006) Verification of computation orchestration via timed automata. In: Liu Z, He J (eds) Formal methods and software engineering. LNCS, vol 4260, pp 226–245Google Scholar
  6. GS90.
    Gunter CA, Scott DS (1990) Semantic domains, In: van Leeuvan J (ed) Handbook of theoretical computer science: formal models and semantics. Elsevier. pp 633–674Google Scholar
  7. Heh84a.
    Hehner ECR (1984) Predicative programming part I. Commun ACM 27(2): 134–143MathSciNetCrossRefzbMATHGoogle Scholar
  8. Heh84b.
    Hehner ECR (1984) Predicative programming part II. Commun ACM 27(2): 144–151MathSciNetCrossRefzbMATHGoogle Scholar
  9. Hoa69.
    Hoare CAR (1969) An axiomatic basis for computer programming. Commun ACM 12(10): 576–580CrossRefzbMATHGoogle Scholar
  10. Hoa85.
    Hoare CAR (1985) Programs are predicates. In: Hoare CAR, Shepherdson JC (eds) Mathematical logic and programming languages. Prentice-Hall, pp 141–155Google Scholar
  11. Hoa85.
    Hoare CAR (1985) Communicating sequential processes. Prentice HallGoogle Scholar
  12. HH98.
    Hoare CAR, He J (1998) Unifying theories of programming. Prentice HallGoogle Scholar
  13. HMM04.
    Hoare CAR, Menzel G, Misra J (2004) A tree semantics of an orchestration language. In: Broy M (ed) Proc of the NATO Advanced Study Institute, Engineering Theories of Software Intensive Systems. NATO ASI Series Marktoberdorf, GermanyGoogle Scholar
  14. KCM06.
    Kitchin D, Cook WR, Misra J (2006) A language for task orchestration and its semantic properties. In: Baier C, Hermanns H (eds) Proc of the international conference on concurrency theory (CONCUR). LNCS, vol 4137, pp 477–491Google Scholar
  15. Kit09.
    Kitchin D, Quark A, Cook W, Misra J (2009) The Orc programming language. Proceedings of FMOODS/FORTE. LNCS, vol 5522, pp 1–25. SpringerGoogle Scholar
  16. KPM08.
    Kitchin D, Powell E, Misra J (2008) Simulation using orchestration. In: Meseguer J, Rou G (eds) Proceedings of the 12th international conference on algebraic methodology and software technology 2008. LNCS, vol 5140, pp 2–15Google Scholar
  17. LZH10.
    Li Q, Zhu H, He J (2010) A denotational semantical model for Orc language. In: Cavalcanti A, Deharbe D, Gaudel M-C, Woodcock J (eds) Theoretical aspects of computing. ICTAC 2010. LNCS, vol 6255, pp 106–120Google Scholar
  18. NS10.
    Njima NM, Sanders JW (2010) Specification-oriented orchestration. In: Proceedings of the 2010 international conference on communications and mobile computing, vol 01. IEEE, pp 550–554Google Scholar
  19. Mis04.
    Misra J (2004) Computation orchestration: a basis for a wide-area computing. In: M Broy (ed) Proceedings of the NATO Advanced Study Institute, Engineering Theories of Software Intensive Systems. NATO ASI Series Marktoberdorf, GermanyGoogle Scholar
  20. MC07.
    Misra J, Cook WR (2007) Computation orchestration: a basis for wide-area computing. J Softw Syst Model 6(1): 83–110CrossRefGoogle Scholar
  21. Nel89.
    Nelson G (1989) A generalization of Dijkstra’s calculus:. ACM Trans Program Lang Syst 11: 517–561CrossRefGoogle Scholar
  22. SGC06.
    Stewart A, Gabarró J, Clint M, Harmer T, Kilpatrick P, Perrott R (2006) Managing grid computations: an Orc-based approach. In: Guo M et al (eds) Parallel and distributed processing and applications (ISPA 2006). LNCS, vol 4330, pp 278–291Google Scholar
  23. VW08.
    Vardoulakis D, Wand M (2008) A compositional trace semantics for Orc. In: Coordination models and languages. LNCS, vol 5052. Springer, pp 331–346Google Scholar
  24. WKCM08.
    Wehrman I, Kitchin D, Cook WR, Misra J (2008) A timed semantics of Orc. Theor Comput Sci 402: 234–248MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© British Computer Society 2011

Authors and Affiliations

  1. 1.School of EEE & Computer ScienceThe Queen’s University of BelfastBelfastNorthern Ireland, UK
  2. 2.Dep. LSIUniversitat Politècnica de CatalunyaBarcelonaSpain

Personalised recommendations