Advertisement

Practical Interruptible Conversations

Distributed Dynamic Verification with Session Types and Python
  • Raymond Hu
  • Rumyana Neykova
  • Nobuko Yoshida
  • Romain Demangeon
  • Kohei Honda
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8174)

Abstract

The rigorous and comprehensive verification of communication-based software is an important engineering challenge in distributed systems. Drawn from our industrial collaborations [33,28] on Scribble, a choreography description language based on multiparty session types, this paper proposes a dynamic verification framework for structured interruptible conversation programming. We first present our extension of Scribble to support the specification of asynchronously interruptible conversations. We then implement a concise API for conversation programming with interrupts in Python that enables session types properties to be dynamically verified for distributed processes. Our framework ensures the global safety of a system in the presence of asynchronous interrupts through independent runtime monitoring of each endpoint, checking the conformance of the local execution trace to the specified protocol. The usability of our framework for describing and verifying choreographic communications has been tested by integration into the large scientific cyberinfrastructure developed by the Ocean Observatories Initiative. Asynchronous interrupts have proven expressive enough to represent and verify their main classes of communication patterns, including asynchronous streaming and various timeout-based protocols, without requiring additional synchronisation mechanisms. Benchmarks show conversation programming and monitoring can be realised with little overhead.

Keywords

Sequence Diagram Local Protocol Session Type Runtime Monitoring Global Safety 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to aspectj. SIGPLAN Not 40(10), 345–364 (2005)CrossRefGoogle Scholar
  2. 2.
    Advanced Message Queuing protocols (AMQP) homepage, http://jira.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol
  3. 3.
    Ancona, D., Drossopoulou, S., Mascardi, V.: Automatic generation of self-monitoring mass from multiparty global session types in Jason. In: Baldoni, M., Dennis, L., Mascardi, V., Vasconcelos, W. (eds.) DALT 2012. LNCS, vol. 7784, pp. 76–95. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  4. 4.
    Avgustinov, P., Tibble, J., de Moor, O.: Making trace monitors feasible. SIGPLAN Not 42(10), 589–608 (2007)CrossRefGoogle Scholar
  5. 5.
    Baresi, L., Ghezzi, C., Guinea, S.: Smart monitors for composed services. In: ICSOC 2004, pp. 193–202 (2004)Google Scholar
  6. 6.
    Bettini, L., Coppo, M., D’Antoni, L., De Luca, M., Dezani-Ciancaglini, M., Yoshida, N.: Global progress in dynamically interleaved multiparty sessions. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 418–433. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  7. 7.
    Bocchi, L., Chen, T.-C., Demangeon, R., Honda, K., Yoshida, N.: Monitoring networks through multiparty session types. In: Beyer, D., Boreale, M. (eds.) FORTE 2013 and FMOODS 2013. LNCS, vol. 7892, pp. 50–65. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  8. 8.
    Cambronero, M.-E., et al.: Validation and verification of web services choreographies by using timed automata. J. Log. Algebr. Program. 80(1), 25–49 (2011)CrossRefMATHGoogle Scholar
  9. 9.
    Capecchi, S., Giachino, E., Yoshida, N.: Global escape in multiparty session. In: FSTTCS 2010. LIPICS, vol. 8, pp. 338–351 (2010)Google Scholar
  10. 10.
    Carbone, M.: Session-based choreography with exceptions. Electr. Notes Theor. Comput. Sci. 241, 35–55 (2009)CrossRefGoogle Scholar
  11. 11.
    Carbone, M., Honda, K., Yoshida, N.: Structured interactional exceptions in session types. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 402–417. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. 12.
  13. 13.
    Deniélou, P.-M., Yoshida, N.: Multiparty session types meet communicating automata. In: Seidl, H. (ed.) ESOP 2012. LNCS, vol. 7211, pp. 194–213. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  14. 14.
    Gan, Y., et al.: Runtime monitoring of web service conversations. In: CASCON 2007, pp. 42–57. ACM (2007)Google Scholar
  15. 15.
    Ghezzi, C., Guinea, S.: Run-time monitoring in service-oriented architectures. In: Test and Analysis of Web Services, pp. 237–264. Springer (2007)Google Scholar
  16. 16.
    Hallé, S., Bultan, T., Hughes, G., Alkhalaf, M., Villemaire, R.: Runtime verification of web service interface contracts. Computer 43(3), 59–66 (2010)CrossRefGoogle Scholar
  17. 17.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty Asynchronous Session Types. In: POPL 2008, pp. 273–284. ACM (2008)Google Scholar
  18. 18.
    Hu, R., Kouzapas, D., Pernet, O., Yoshida, N., Honda, K.: Type-safe eventful sessions in java. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 329–353. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  19. 19.
  20. 20.
  21. 21.
    Krüger, I.H., Meisinger, M., Menarini, M.: Runtime verification of interactions: from mscs to aspects. In: Sokolsky, O., Taşıran, S. (eds.) RV 2007. LNCS, vol. 4839, pp. 63–74. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  22. 22.
    Krüger, I.H., Meisinger, M., Menarini, M.: Interaction-based runtime verification for systems of systems integration. J. Log. Comput. 20(3), 725–742 (2010)CrossRefGoogle Scholar
  23. 23.
  24. 24.
    Li, Z., Han, J., Jin, Y.: Pattern-based specification and validation of web services interaction properties. In: Benatallah, B., Casati, F., Traverso, P. (eds.) ICSOC 2005. LNCS, vol. 3826, pp. 73–86. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  25. 25.
    Li, Z., Jin, Y., Han, J.: A runtime monitoring and validation framework for web service interactions. In: ASWEC 2006. IEEE (2006)Google Scholar
  26. 26.
    Minsky, N.H., Ungureanu, V.: Law-governed interaction: a coordination and control mechanism for heterogeneous distributed systems. TOSEM 9, 273–305 (2000)CrossRefGoogle Scholar
  27. 27.
    Ng, N., Yoshida, N., Honda, K.: Multiparty Session C: Safe Parallel Programming with Message Optimisation. In: Furia, C.A., Nanz, S. (eds.) TOOLS 2012. LNCS, vol. 7304, pp. 202–218. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  28. 28.
    Ocean Observatories Initative, http://www.oceanobservatories.org/
  29. 29.
  30. 30.
  31. 31.
  32. 32.
    Salaün, G.: Analysis and verification of service interaction protocols - a brief survey. In: TAV-WEB. EPTCS, vol. 35, pp. 75–86 (2010)Google Scholar
  33. 33.
    JBoss Savara Project, http://www.jboss.org/savara
  34. 34.
    Scribble Project homepage, http://www.scribble.org
  35. 35.
    Full version of this paper, http://www.doc.ic.ac.uk/~rn710/mon
  36. 36.
    Zhang, W., Serban, C., Minsky, N.: Establishing global properties of multi-agent systems via local laws. In: Weyns, D., Van Dyke Parunak, H., Michel, F. (eds.) E4MAS 2006. LNCS (LNAI), vol. 4389, pp. 170–183. Springer, Heidelberg (2007)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Raymond Hu
    • 1
  • Rumyana Neykova
    • 1
  • Nobuko Yoshida
    • 1
  • Romain Demangeon
    • 1
  • Kohei Honda
    • 2
  1. 1.Imperial College LondonUK
  2. 2.Queen MaryUniversity of LondonUK

Personalised recommendations