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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Albert, E., Arenas, P., Genaim, S., Puebla, G., Zanardini, D.: Cost Analysis of Object-Oriented Bytecode Programs. Theor. Comput. Sci. 413 (January 2012)
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)
Appel, A.W.: SSA is functional programming. SIGPLAN Not. 33, 17–20 (1998)
Armstrong, J., Virding, R., Wistrom, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice Hall (1996)
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)
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)
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)
Eugster, P., Felber, P., Guerraoui, R., Kermarrec, A.: The many faces of publish/subscribe. ACM Comput. Surv. 35, 114–131 (2003)
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)
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)
Haller, P., Sommers, F.: Actors in Scala: Concurrent programming for the multi-core era. Artima, PrePrint edition (March 2011)
Hapner, M., Burridge, R., Sharma, R., Fialli, J., Stout, K.: Java Message Service Specification. Sun Microsystems, Inc., Version 1.1 (April 2002)
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)
Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. Software and Systems Modeling 6(1), 35–58 (2007)
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)
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)
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
Richards, M., Monson-Haefel, R., Chappell, D.A.: Java Message Service - Creating Distributed Enterprise Applications, 2nd edn. O’Reilly (2009)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Albert, E., Østvold, B.M., Rojas, J.M. (2012). Automated Extraction of Abstract Behavioural Models from JMS Applications. In: Stoelinga, M., Pinger, R. (eds) Formal Methods for Industrial Critical Systems. FMICS 2012. Lecture Notes in Computer Science, vol 7437. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32469-7_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-32469-7_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-32468-0
Online ISBN: 978-3-642-32469-7
eBook Packages: Computer ScienceComputer Science (R0)