Automated Extraction of Abstract Behavioural Models from JMS Applications
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.
KeywordsVirtual Machine Automate Extraction Cost Center Intermediate Representation Abstract Data Type
Unable to display preview. Download preview PDF.
- 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
- 5.Armstrong, J., Virding, R., Wistrom, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice Hall (1996)Google Scholar
- 12.Haller, P., Sommers, F.: Actors in Scala: Concurrent programming for the multi-core era. Artima, PrePrint edition (March 2011)Google Scholar
- 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
- 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
- 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.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.Richards, M., Monson-Haefel, R., Chappell, D.A.: Java Message Service - Creating Distributed Enterprise Applications, 2nd edn. O’Reilly (2009)Google Scholar