Automated Extraction of Abstract Behavioural Models from JMS Applications

  • Elvira Albert
  • Bjarte M. Østvold
  • José Miguel Rojas
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7437)

Abstract

Distributed systems are hard to program, understand and analyze. Two key sources of complexity are the many possible behaviors of a system, arising from the parallel execution of its distributed nodes, and the handling of asynchronous messages exchanged between nodes. We show how to systematically construct executable models of publish/subscribe systems based on the Java Messaging Service (JMS). These models, written in the Abstract Behavioural Specification (ABS) language, capture the essentials of the messaging behavior of the original Java systems, and eliminate details not related to distribution and messages. We report on jms2abs, a tool that automatically extracts ABS models from the bytecode of JMS systems. Since the extracted models are formal and executable, they allow us to reason about the modeled JMS systems by means of tools built specifically for the modeling language. For example, we have succeeded to apply simulation, termination and resource analysis tools developed for ABS to, respectively, execute, prove termination and infer the resource consumption of the original JMS applications.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Albert, E., Arenas, P., Genaim, S., Gómez-Zamalloa, M., Puebla, G.: Cost Analysis of Concurrent OO Programs. In: Yang, H. (ed.) APLAS 2011. LNCS, vol. 7078, pp. 238–254. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  2. 2.
    Albert, E., Arenas, P., Genaim, S., Puebla, G., Zanardini, D.: Cost Analysis of Object-Oriented Bytecode Programs. Theor. Comput. Sci. 413 (January 2012)Google Scholar
  3. 3.
    Albert, E., Genaim, S., Gómez-Zamalloa, M., Johnsen, E.B., Schlatte, R., Lizeth Tapia Tarifa, S.: Simulating Concurrent Behaviors with Worst-Case Cost Bounds. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 353–368. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  4. 4.
    Appel, A.W.: SSA is functional programming. SIGPLAN Not. 33, 17–20 (1998)CrossRefGoogle Scholar
  5. 5.
    Armstrong, J., Virding, R., Wistrom, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice Hall (1996)Google Scholar
  6. 6.
    Baldoni, R., Beraldi, R., Tucci Piergiovanni, S., Virgillito, A.: On the modelling of publish/subscribe communication systems. Concurr. Comput.: Pract. Exper. 17, 1471–1495 (2005)CrossRefGoogle Scholar
  7. 7.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: All About Maude - A High-Performance Logical Framework. LNCS, vol. 4350. Springer, Heidelberg (2007)MATHGoogle Scholar
  8. 8.
    de Boer, F.S., Clarke, D., Johnsen, E.B.: A Complete Guide to the Future. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 316–330. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 9.
    Eugster, P., Felber, P., Guerraoui, R., Kermarrec, A.: The many faces of publish/subscribe. ACM Comput. Surv. 35, 114–131 (2003)CrossRefGoogle Scholar
  10. 10.
    Garlan, D., Khersonsky, S., Kim, J.S.: Model Checking Publish-Subscribe Systems. In: Ball, T., Rajamani, S.K. (eds.) SPIN 2003. LNCS, vol. 2648, pp. 166–180. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  11. 11.
    Gómez-Zamalloa, M., Albert, E., Puebla, G.: Decompilation of Java Bytecode to Prolog by Partial Evaluation. Information and Software Technology 51, 1409–1427 (2009)CrossRefGoogle Scholar
  12. 12.
    Haller, P., Sommers, F.: Actors in Scala: Concurrent programming for the multi-core era. Artima, PrePrint edition (March 2011)Google Scholar
  13. 13.
    Hapner, M., Burridge, R., Sharma, R., Fialli, J., Stout, K.: Java Message Service Specification. Sun Microsystems, Inc., Version 1.1 (April 2002)Google Scholar
  14. 14.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: A Core Language for Abstract Behavioral Specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  15. 15.
    Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. Software and Systems Modeling 6(1), 35–58 (2007)Google Scholar
  16. 16.
    Katsumata, S.-Y., Ohori, A.: Proof-Directed De-compilation of Low-Level Code. In: Sands, D. (ed.) ESOP 2001. LNCS, vol. 2028, pp. 352–366. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  17. 17.
    Otto, C., Brockschmidt, M., von Essen, C., Giesl, J.: Automated Termination Analysis of Java Bytecode by Term Rewriting. In: RTA 2010. LIPIcs, vol. 6 (2010)Google Scholar
  18. 18.
    HATS Project. Report on Resource Guarantees, Deliv. 4.2 of project FP7-231620 (HATS) (March 2011), http://www.cse.chalmers.se/research/hats/sites/default/files/Deliverable42.pdf
  19. 19.
    Richards, M., Monson-Haefel, R., Chappell, D.A.: Java Message Service - Creating Distributed Enterprise Applications, 2nd edn. O’Reilly (2009)Google Scholar
  20. 20.
    Schäfer, J., Poetzsch-Heffter, A.: JCoBox: Generalizing Active Objects to Concurrent Components. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 275–299. Springer, Heidelberg (2010)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Elvira Albert
    • 1
  • Bjarte M. Østvold
    • 2
  • José Miguel Rojas
    • 3
  1. 1.Complutense University of MadridSpain
  2. 2.Norwegian Computing CenterNorway
  3. 3.Technical University of MadridSpain

Personalised recommendations