Skip to main content

A Formal Framework for Specifying and Verifying Microservices Based Process Flows

  • Conference paper
  • First Online:
Software Engineering and Formal Methods (SEFM 2017)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10729))

Included in the following conference series:

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 107.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Conductor2Pn has been released as open-source software. It is available for download at: https://bitbucket.org/seresearch_unimi/conductor2pn.

References

  1. Lewis, J., Fowler, M.: Microservices: a definition of this new architectural term, March 2014. https://martinfowler.com/articles/microservices.html

  2. 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

    Chapter  Google Scholar 

  3. 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

    Chapter  Google Scholar 

  4. Netflix, Inc.: Conductor. https://netflix.github.io/conductor/. Accessed June 2017

  5. The Netflix Tech Blog: Netflix conductor: a microservices orchestrator. https://medium.com/netflix-techblog/netflix-conductor-a-microservices-orchestrator-2e8d4771bf40, December 2016

  6. Ghezzi, C., Morasca, S., Pezzè, M.: Validating timing requirements for time basic net specifications. J. Syst. Softw. 27, 97–117 (1994)

    Article  Google Scholar 

  7. Peterson, J.L.: Petri nets. ACM Comput. Surv. 9(3), 223–252 (1977). https://doi.org/10.1145/356698.356702

    Article  MATH  Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. 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

    Chapter  Google Scholar 

  11. Gurevich, Y.: Sequential abstract-state machines capture sequential algorithms. ACM Trans. Comput. Logic 1(1), 77–111 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  12. 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)

    Article  Google Scholar 

  13. 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)

    Article  Google Scholar 

  14. 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

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. Uber Technologies, Inc.: https://www.uber.com/. Accessed June 2017

  18. 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

  19. Amazon Simple Queue Service: https://aws.amazon.com/sqs/. Accessed June 2017

  20. Alur, R., Courcoubetis, C., Dill, D.: Model-checking in dense real-time. Inf. Comput. 104(1), 2–34 (1993)

    Article  MathSciNet  MATH  Google Scholar 

  21. 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)

    Google Scholar 

  22. Peltz, C.: Web services orchestration and choreography. Computer 36(10), 46–52 (2003)

    Article  Google Scholar 

  23. 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

    Chapter  Google Scholar 

  24. 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

  25. 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

    Chapter  Google Scholar 

  26. 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

    Chapter  Google Scholar 

  27. 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

    Article  Google Scholar 

  28. 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

    Article  MathSciNet  MATH  Google Scholar 

  29. 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

    Article  Google Scholar 

  30. 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

    Chapter  Google Scholar 

  31. 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

    Chapter  Google Scholar 

  32. Marsan, M.A., Balbo, G., Conte, G., Donatelli, S., Franceschinis, G.: Modelling with Generalized Stochastic Petri Nets, 1st edn. Wiley, New York (1994)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Matteo Camilli .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics