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

Springer Science and Business Media LLC - Tập 8 - Trang 277-297 - 2013
Sung-Shik T. Q. Jongmans1, Francesco Santini1, Mahdi Sargolzaei2, Farhad Arbab1, Hamideh Afsarmanesh2
1Centrum Wiskunde and Informatica, Amsterdam, The Netherlands
2University of Amsterdam, Amsterdam, The Netherlands

Tóm tắt

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.

Tài liệu tham khảo

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