Skip to main content
Log in

Orchestrating web services using Reo: from circuits and behaviors to automatically generated code

  • Special Issue Paper
  • Published:
Service Oriented Computing and Applications Aims and scope Submit manuscript

Abstract

We present a compositional construction of web services, using Reo and constraint automata as the main “glue” ingredients. Reo is a graphical and exogenous coordination language based on channels. We propose a framework that, taking as input the behavioral description of services (as constraint automata), their WSDL interfaces, and the description of their interaction in Reo, generates all the necessary Java code to orchestrate the services in practice. For each web service, we automatically generate a proxy that manages the communication between this service and the Reo circuit. Although we focus on web services, we can compose different kinds of service-oriented and component technologies at the same time (e.g., CORBA, RPC, WCF), by generating different proxies and connecting them to the same coordinator.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

Notes

  1. The issue of whether the final translation from an automaton to Java code preserves that automaton’s semantics is important to address, but orthogonal and beyond the scope of this work.

  2. However, channels do not necessarily have both a source end and a sink end: They can also have two source ends or two sink ends.

  3. http://reo.project.cwi.nl.

  4. http://www.stringtemplate.org.

  5. To combat the state space explosion problem resulting from large numbers of \(\mathsf{{fifo}}\) s (which quickly makes code generation intractable otherwise), we apply an optimization technique called circuit splitting. Informally, this technique splits a circuit into subcircuits while ensuring that this splitting preserves the semantics of the original circuit. The splitting is done by (i) removing all the \(\mathsf{{fifo}}\)  channels, (ii) then generating code for the resulting unconnected subcircuits and the removed \(\mathsf{{fifo}}\)  channels individually (instead of for the whole circuit at once), and (iii) finally gluing all the generated code together. The basic principle underlying this technique is that \(\mathsf{{fifo}}\)  channels break synchrony: They naturally divide a circuit into independent subcircuits that execute synchronously, while communication between those subcircuits occurs only through asynchronous \(\mathsf{{fifo}}\)  channels. This means that different subcircuits do not need to communicate directly with each other and can proceed independently. See [19, 21, 30] for (formal) details.

    Fig. 3
    figure 3

    Architecture of CircCG  

  6. Recall from Sect. 3.2 that a ca implementation has a synchronization point for each boundary node occurring in one of its transitions.

  7. One can model stateless services with singleton automata.

  8. http://jax-ws.java.net.

  9. http://ws-i.org/Profiles/BasicProfile-1.2.html.

  10. http://w3.org/TR/xmlschema-2/#built-in-datatypes.

  11. Although we acknowledge that only few stateful ws providers publish machine-processable wsbss , we also observe that providers currently have only little incentive to do so, because none of the mainstream composition platforms exploit such (semi-)formal behavioral specifications, and it indeed seems to be a waste of effort to write and publish them. Only by developing composition platforms that use wsbss effectively, one may convince ws providers to publish such specifications. In anticipation of this, we are currently studying how to ease writing ca-based wsbss using a graphical interface.

  12. The gui implementation of OrchCG works slightly differently, mainly for reasons of user-friendliness: We wanted to support adding representations of wss directly to the Reo diagram containing the orchestrator circuit instead of forcing users to separate them into distinct files. While this changes the architecture of OrchCG a bit, it does not alter things from a conceptual perspective.

  13. At the time of writing, CalcService was hosted at http://mathertel.de/AJAXEngine/S01_AsyncSamples/CalcService.asmx by Matthias Hertel.

  14. Machine with Intel Q6600 quad core processor at 2.4 GHz and 8 gb of memory running Fedora Linux.

  15. All material used for running the tests reported on in this subsection, as well as the measurement data sets, are available at: http://reo.project.cwi.nl.

  16. All material necessary to reconstruct this case study, as well as the generated code, are available at: http://reo.project.cwi.nl.

References

  1. Arbab F (2004) Reo: a channel-based coordination model for component composition. Math Struct Comput Sci 14(3):329–366. doi:10.1017/S0960129504004153

    Article  MATH  MathSciNet  Google Scholar 

  2. Arbab F (2006) Composition of interacting computations. In: Goldin D, Smolka S, Wegner P (eds) Interactive computation, pp 277–321. Springer, Berlin. doi:10.1007/3-540-34874-3_12

  3. Arbab F (2011) Puff, the magic protocol. In: Agha G, Danvy O, Meseguer J (eds) Talcott Festschrift, LNCS, vol 7000, pp 169–206. Springer, Berlin. doi:10.1007/978-3-642-24933-4_9

  4. Arbab F, Santini F (2013) Preference and similarity-based behavioral discovery of services. In: ter Beek M, Lohmann N (eds) Proceedings of WS-FM 2012, LNCS, vol 7843, pp 118–133. Springer, Berlin. doi:10.1007/978-3-642-38230-7_8

  5. Baier C, Blechmann T, Klein J, Klüppelholz S (2009) A uniform framework for modeling and verifying components and connectors. In: Field J, Vasconcelos V (eds) Proceedings of COORDINATION 2009, LNCS, vol 5521, pp 247–267. Springer, Berlin. doi:10.1007/978-3-642-02053-7_13

  6. Baier C, Sirjani M, Arbab F, Rutten J (2006) Modeling component connectors in Reo by constraint automata. Sci Comput Program 61(2):75–113. doi:10.1016/j.scico.2005.10.008

    Article  MATH  MathSciNet  Google Scholar 

  7. ter Beek M, Bucchiarone A, Gnesi S (2007) Web service composition approaches: from industrial standards to formal methods. In: Galizia S, Emig C, Martens A, Roman D, Wombacher A (eds) Proceedings of ICIW 2007, pp 224–233. IEEE doi:10.1109/ICIW.2007.71

  8. Blechmann T, Klein J, Klüppelholz S Vereofy V1.1—user manual. Technical University of Dresden

  9. Boreale M, Bruni R, de Nicola R, Loreti M (2008) Sessions and pipelines for structured service programming. In: Barthe G, de Boer F (eds) Proceedings of FMOODS 2008, LNCS, vol 5051, pp 19–38. Springer, Berlin. doi:10.1007/978-3-540-68863-1_3

  10. Büchi R (1962) Symposium on decision problems: on a decision method in restricted second order arithmetic. Stud Logic Found Math 44:1–11. doi:10.1016/S0049-237X(09)70564-6

    Article  Google Scholar 

  11. Cesari L, Pugliese R, Tiezzi F (2010) A tool for rapid development of WS-BPEL applications. ACM SIGAPP Appl Comput Rev 11(1):27–40. doi:10.1145/1869687.1869690

    Article  Google Scholar 

  12. Changizi B (2014) Model based analysis of business process models. Ph.D. Thesis, Leiden University (2014, expected). (in preparation)

  13. Changizi B, Kokash N, Arbab F (2010) A unified toolset for business process model formalization. In: Preproceedings of FESCA 2010

  14. Decker G, Kopp O, Leymann F, Pfitzner K, Weske M (2008) Modeling service choreographies using BPMN and BPEL4Chor. In: Bellahsène Z, Léonard M (eds) Proceedings of CAiSE 2008, LNCS, vol 5074, pp 79–93. Springer, Berlin. doi:10.1007/978-3-540-69534-9_6

  15. Fielding R (2000) Architectural styles and the design of network-based software architectures. PhD Thesis, University of California, Irvine

  16. Hull R, Benedikt M, Christophides V, Su J (2003) E-services: a look behind the curtain. In: Beeri C, Milo T, Neven F (eds) Proceedings of PODS 2003, pp 1–14. ACM. doi:10.1145/773153.773154

  17. Izadi M (2011) Model checking of component connectors. Ph.D. thesis, Leiden University http://hdl.handle.net/1887/18189

  18. Jongmans SS, Arbab F (2012) Overview of thirty semantic formalisms for Reo. Sci Ann Comput Sci 22(1):201–251. doi:10.7561/SACS.2012.1.201

    Article  MathSciNet  Google Scholar 

  19. Jongmans SS, Arbab F (2013) Global consensus through local synchronization. In: Canal C, Villari M (eds) Proceedings of FOCLASA 2013, CCIS, vol 393, pp 174–188. Springer

  20. Jongmans SS, Arbab F (2013) Modularizing and specifying protocols among threads. In: Gay S, Kelly P (eds) Proceedings of PLACES 2012, EPTCS, vol 109, pp 34–45. CoRR. doi:10.4204/EPTCS.109.6

  21. Jongmans SS, Clarke D, Proença J (2012) A procedure for splitting processes and its application to coordination. In: Kokash N, Ravara A (eds) Proceedings of FOCLASA 2012, EPTCS, vol 91, pp 79–96. CoRR. doi:10.4204/EPTCS.91.6

  22. Kokash N, Krause C, de Vink E (2012) Reo+mCRL2: a framework for model-checking dataflow in service compositions. Formal Aspects Comput 24(2):187–216. doi:10.1007/s00165-011-0191-6

    Article  MATH  Google Scholar 

  23. Meng S, Arbab F (2007) Web services choreography and orchestration in Reo and constraint automata. In: Ricci A, Angerer B, Schumacher M (eds) Proceedings of SAC 2007, pp 346–353. ACM. doi:10.1145/1244002.1244085

  24. Meng S (2009) Arbab F QoS-driven service selection and composition using quantitative constraint automata. Fundamenta Informaticae 95(1):103–128. doi:10.3233/FI-2009-144

    MATH  MathSciNet  Google Scholar 

  25. Meng S, Arbab F (2010) A model for web service coordination in long-running transactions. In: Bai X, Li Y (eds) Proceedings of SOSE 2010, pp 121–128. IEEE. doi:10.1109/SOSE.2010.51

  26. Montesi F, Guidi C, Lucchi R, Zavattaro G (2007) JOLIE: a java orchestration language interpreter engine. In: Boella G, Dastani M, Omicini A, van der Torre L (eds) Proceedings of CoOrg 2006, ENTCS, vol 181, pp 19–33. Elsevier, Amsterdam. doi:10.1016/j.entcs.2007.01.051

  27. Parr T (2004) Enforcing strict model-view separation in template engines. In: Feldman S, Uretsky M, Najork M, Wills C (eds) Proceedings of WWW 2004, pp 224–233. ACM. doi:10.1145/988672.988703

  28. Pautasso C (2009) RESTful web service composition with BPEL for REST. Data Knowl Eng 68(9):851–866. doi:10.1016/j.datak.2009.02.016

    Google Scholar 

  29. Peltz C (2003) Web services orchestration and choreography. Computer 36(10):46–52. doi:10.1109/MC.2003.1236471

    Article  Google Scholar 

  30. Proença J, Clarke D, Vink, de, E, Arbab F (2011) Decoupled execution of synchronous coordination models via behavioural automata. In: Mousavi MR, Ravara A (eds) Proceedings of FOCLASA 2011, EPTCS, vol 58, pp 65–79. CoRR. doi:10.4204/EPTCS.58.5

  31. Sargolzaei M, Santini F, Arbab F, Afsarmanesh H (2013) A tool for behaviour-based discovery of approximately matching web services. In: Hierons R, Merayo M, Bravetti M (eds) Proceedings of SEFM 2013, LNCS, vol 8137, pp 152–166. Springer, Berlin. doi:10.1007/978-3-642-40561-7_11

  32. Simple Object Access Protocol (2000) http://www.w3.org/2000/xp/Group/

  33. Talcott C, Sirjani M (2011) Ren S comparing three coordination models: Reo, ARC, and PBRD. Sci Comput Program 76(1):3–22. doi:10.1016/j.scico.2009.11.006

    Article  MATH  Google Scholar 

  34. Vajjhala S, Fialli J (2006) The java architecture for XML binding (JAXB) 2.0

  35. Web services business process execution language (2007) http://docs.oasis-open.org/wsbpel/2.0/

  36. Web Service Description Language (2001) http://www.w3.org/TR/wsdl

  37. Web Service Choreography Interface (2002) http://www.w3.org/TR/wsci

  38. Web Services Choreography Description Language (2005) http://www.w3.org/TR/ws-cdl-10/

  39. Zhang J, Chung JY, Chang C, Kim S (2004) WS-Net: a petri-net based specification model for web services. In: Zhang LJ, Jain H, Liu L (eds) Proceedings of ICWS 2004, pp 420–427. IEEE. doi:10.1109/ICWS.2004.1314766

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sung-Shik T. Q. Jongmans.

Additional information

On this paper, the work of the co-authors affiliated to the University of Amsterdam is partially supported by the FP7 project GLONET, funded by the European Commission.

This work was carried out during the second author’s tenure of the ERCIM “Alain Bensoussan” Fellowship Programme. This Programme is supported by the Marie Curie Co-funding of Regional, National and International Programmes (COFUND) of the European Commission.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Jongmans, SS.T.Q., Santini, F., Sargolzaei, M. et al. Orchestrating web services using Reo: from circuits and behaviors to automatically generated code. SOCA 8, 277–297 (2014). https://doi.org/10.1007/s11761-013-0147-1

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11761-013-0147-1

Keywords

Navigation