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.
Similar content being viewed by others
Notes
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.
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.
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.
Recall from Sect. 3.2 that a ca implementation has a synchronization point for each boundary node occurring in one of its transitions.
One can model stateless services with singleton automata.
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.
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.
At the time of writing, CalcService was hosted at http://mathertel.de/AJAXEngine/S01_AsyncSamples/CalcService.asmx by Matthias Hertel.
Machine with Intel Q6600 quad core processor at 2.4 GHz and 8 gb of memory running Fedora Linux.
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.
All material necessary to reconstruct this case study, as well as the generated code, are available at: http://reo.project.cwi.nl.
References
Arbab F (2004) Reo: a channel-based coordination model for component composition. Math Struct Comput Sci 14(3):329–366. doi:10.1017/S0960129504004153
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
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
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
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
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
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
Blechmann T, Klein J, Klüppelholz S Vereofy V1.1—user manual. Technical University of Dresden
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
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
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
Changizi B (2014) Model based analysis of business process models. Ph.D. Thesis, Leiden University (2014, expected). (in preparation)
Changizi B, Kokash N, Arbab F (2010) A unified toolset for business process model formalization. In: Preproceedings of FESCA 2010
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
Fielding R (2000) Architectural styles and the design of network-based software architectures. PhD Thesis, University of California, Irvine
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
Izadi M (2011) Model checking of component connectors. Ph.D. thesis, Leiden University http://hdl.handle.net/1887/18189
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
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
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
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
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
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
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
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
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
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
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
Peltz C (2003) Web services orchestration and choreography. Computer 36(10):46–52. doi:10.1109/MC.2003.1236471
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
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
Simple Object Access Protocol (2000) http://www.w3.org/2000/xp/Group/
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
Vajjhala S, Fialli J (2006) The java architecture for XML binding (JAXB) 2.0
Web services business process execution language (2007) http://docs.oasis-open.org/wsbpel/2.0/
Web Service Description Language (2001) http://www.w3.org/TR/wsdl
Web Service Choreography Interface (2002) http://www.w3.org/TR/wsci
Web Services Choreography Description Language (2005) http://www.w3.org/TR/ws-cdl-10/
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
Author information
Authors and Affiliations
Corresponding author
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
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11761-013-0147-1