Abstract
The microservices architectural style is changing the way in which software is perceived, conceived and designed. Thus, there is a call for techniques and tools supporting the problem of specifying and verifying communication behavior of microservice systems. We present a formal semantics based on Petri nets for microservices based process flows specified using the Conductor orchestration language: a JSON-based domain specific language designed by Netflix, Inc. We give a formal semantics in terms of a translation from Conductor specifications into Time Basic Petri net models, i.e., Petri nets supporting the definition of temporal constraints. The Petri net model can be used for computer aided verification purposes by means of well-known techniques implemented by powerful, off-the-shelf model checking tools.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Conductor2Pn has been released as open-source software. It is available for download at: https://bitbucket.org/seresearch_unimi/conductor2pn.
References
Lewis, J., Fowler, M.: Microservices: a definition of this new architectural term, March 2014. https://martinfowler.com/articles/microservices.html
Dragoni, N., Giallorenzo, S., Lafuente, A.L., Mazzara, M., Montesi, F., Mustafin, R., Safina, L.: Microservices: yesterday, today, and tomorrow. In: Mazzara, M., Meyer, B. (eds.) Present and Ulterior Software Engineering, pp. 195–216. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67425-4_12
Mazzara, M., Govoni, S.: A case study of web services orchestration. In: Jacquet, J.-M., Picco, G.P. (eds.) COORDINATION 2005. LNCS, vol. 3454, pp. 1–16. Springer, Heidelberg (2005). https://doi.org/10.1007/11417019_1
Netflix, Inc.: Conductor. https://netflix.github.io/conductor/. Accessed June 2017
The Netflix Tech Blog: Netflix conductor: a microservices orchestrator. https://medium.com/netflix-techblog/netflix-conductor-a-microservices-orchestrator-2e8d4771bf40, December 2016
Ghezzi, C., Morasca, S., Pezzè, M.: Validating timing requirements for time basic net specifications. J. Syst. Softw. 27, 97–117 (1994)
Peterson, J.L.: Petri nets. ACM Comput. Surv. 9(3), 223–252 (1977). https://doi.org/10.1145/356698.356702
Bellettini, C., Capra, L.: Reachability analysis of time basic Petri nets: a time coverage approach. In: Proceedings of the 2011 13th Internationl Symposium on Symbolic and Numeric Algorithms for Scientific Computing, Series, SYNASC 2011, pp. 110–117. IEEE Computer Society, Washington, DC (2011)
Camilli, M.: Petri nets state space analysis in the cloud. In: Proceedings of the 2012 International Conference on Software Engineering, Series ICSE 2012, Piscataway, NJ, USA, pp. 1638–1640. IEEE Press (2012)
Bengtsson, J., Yi, W.: Timed automata: semantics, algorithms and tools. In: Desel, J., Reisig, W., Rozenberg, G. (eds.) ACPN 2003. LNCS, vol. 3098, pp. 87–124. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-27755-2_3
Gurevich, Y.: Sequential abstract-state machines capture sequential algorithms. ACM Trans. Comput. Logic 1(1), 77–111 (2000)
Lee, W.J., Cha, S.D., Kwon, Y.R.: Integration and analysis of use cases using modular Petri nets in requirements engineering. IEEE Trans. Softw. Eng. 24(12), 1115–1130 (1998)
Iglesia, D.G.D.L., Weyns, D.: MAPE-K formal templates to rigorously design behaviors for self-adaptive systems. ACM Trans. Auton. Adapt. Syst. 10(3), 15:1–15:31 (2015)
Camilli, M., Bellettini, C., Capra, L., Monga, M.: Coverability analysis of time basic Petri nets with non-urgent behavior. In: Davenport, J.H., Negru, V., Ida, T., Jebelean, T., Petcu, D., Watt, S.M., Zaharie, D. (eds.) 18th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, SYNASC 2016, Timisoara, Romania, 24–27 September 2016, pp. 165–172. IEEE Computer Society (2016). https://doi.org/10.1109/SYNASC.2016.036
Alur, R., Courcoubetis, C., Dill, D.: Model-checking for real-time systems. In: Proceedings of the Fifth Annual IEEE Symposium on Logic in Computer Science, June 1990, pp. 414–425 (1990)
Camilli, M., Gargantini, A., Scandurra, P.: Specifying and verifying real-time self-adaptive systems. In: 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE), November 2015, pp. 303–313 (2015)
Uber Technologies, Inc.: https://www.uber.com/. Accessed June 2017
Merkel, D.: Docker: lightweight Linux containers for consistent development and deployment. Linux J. 2014(239) (2014). http://dl.acm.org/citation.cfm?id=2600239.2600241
Amazon Simple Queue Service: https://aws.amazon.com/sqs/. Accessed June 2017
Alur, R., Courcoubetis, C., Dill, D.: Model-checking in dense real-time. Inf. Comput. 104(1), 2–34 (1993)
Camilli, M., Bellettini, C., Capra, L., Monga, M.: CTL model checking in the cloud using MapReduce. In: 16th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, September 2014, pp. 333–340 (2014)
Peltz, C.: Web services orchestration and choreography. Computer 36(10), 46–52 (2003)
Caires, L., Pfenning, F.: Session types as intuitionistic linear propositions. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 222–236. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15375-4_16. http://dl.acm.org/citation.cfm?id=1887654.1887670
Wadler, P.: Propositions as sessions. In: Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming, Series, ICFP 2012, pp. 273–286. ACM, New York (2012). http://doi.acm.org/10.1145/2364527.2364568
Caires, L., Pérez, J.A.: Multiparty session types within a canonical binary theory, and beyond. In: Albert, E., Lanese, I. (eds.) FORTE 2016. LNCS, vol. 9688, pp. 74–95. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-39570-8_6
Hinz, S., Schmidt, K., Stahl, C.: Transforming BPEL to Petri nets. In: van der Aalst, W.M.P., Benatallah, B., Casati, F., Curbera, F. (eds.) BPM 2005. LNCS, vol. 3649, pp. 220–235. Springer, Heidelberg (2005). https://doi.org/10.1007/11538394_15
Lohmann, N., Massuthe, P., Stahl, C., Weinberg, D.: Analyzing interacting WS-BPEL processes using flexible model generation. Data Knowl. Eng. 64(1), 38–54 (2008). https://doi.org/10.1016/j.datak.2007.06.006
Ouyang, C., Verbeek, E., van der Aalst, W.M.P., Breutel, S., Dumas, M., ter Hofstede, A.H.M.: Formal semantics and analysis of control flow in WS-BPEL. Sci. Comput. Program. 67(2), 162–198 (2007). https://doi.org/10.1016/j.scico.2007.03.002
Montesi, F., Guidi, C., Lucchi, R., Zavattaro, G.: JOLIE a Java orchestration language interpreter engine. Electr. Notes Theor. Comput. Sci. 181, 19–33 (2007). https://doi.org/10.1016/j.entcs.2007.01.051
Bellettini, C., Camilli, M., Capra, L., Monga, M.: MaRDiGraS: simplified building of reachability graphs on large clusters. In: Abdulla, P.A., Potapov, I. (eds.) RP 2013. LNCS, vol. 8169, pp. 83–95. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-41036-9_9
Camilli, M., Gargantini, A., Scandurra, P., Bellettini, C.: Event-based runtime verification of temporal properties using time basic Petri nets. In: Barrett, C., Davies, M., Kahsai, T. (eds.) NFM 2017. LNCS, vol. 10227, pp. 115–130. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-57288-8_8
Marsan, M.A., Balbo, G., Conte, G., Donatelli, S., Franceschinis, G.: Modelling with Generalized Stochastic Petri Nets, 1st edn. Wiley, New York (1994)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
Cite this paper
Camilli, M., Bellettini, C., Capra, L., Monga, M. (2018). A Formal Framework for Specifying and Verifying Microservices Based Process Flows. In: Cerone, A., Roveri, M. (eds) Software Engineering and Formal Methods. SEFM 2017. Lecture Notes in Computer Science(), vol 10729. Springer, Cham. https://doi.org/10.1007/978-3-319-74781-1_14
Download citation
DOI: https://doi.org/10.1007/978-3-319-74781-1_14
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-74780-4
Online ISBN: 978-3-319-74781-1
eBook Packages: Computer ScienceComputer Science (R0)