Hypersonic: Model Analysis and Checking in the Cloud

Context: Modeling tools are traditionally delivered as monolithic desktop applications, optionally extended by plug-ins or special purpose central servers. This delivery model suffers from several drawbacks, ranging from poor scalability to dicult maintenance and the proliferation of \shelfware". Objective: In this paper we investigate the conceptual and technical feasibility of a new software architecture for modeling tools, where certain advanced features are factored out of the client and moved towards the Cloud. With this approach we plan to address the above mentioned drawbacks of existing modeling tools. Method: We base our approach on RESTful Web services. Using features implemented in the existing Model Analysis and Checking (MACH) tool, we create a RESTful Web service API oering model analysis facilities. We refer to it as the Hypersonic API. We provide a proof of concept implementation for the Hypersonic API using model clone detection as our example case. We also implement a sample Web application as a client for these Web services. Results: Our initial experiments with Hypersonic demonstrate the viability of our approach. By applying standards such as REST and JSON in combination with Prolog as an implementation language, we are able to transform MACH from a command line tool into the rst Web-based model clone detection service with remarkably little eort.

[1]  Jesús García Molina,et al.  Querying large models efficiently , 2014, Inf. Softw. Technol..

[2]  Dániel Varró,et al.  IncQuery-D: incremental graph search in the cloud , 2013, BigMDE '13.

[3]  Dick Hardt,et al.  The OAuth 2.0 Authorization Framework , 2012, RFC.

[4]  F. Pfenning Theory and Practice of Logic Programming , 2014 .

[5]  Tim Bray,et al.  The JavaScript Object Notation (JSON) Data Interchange Format , 2014, RFC.

[6]  Jordi Cabot,et al.  Combining Model-Driven Engineering and Cloud Computing , 2010, ECMFA 2010.

[7]  Harald Störrle Towards clone detection in UML domain models , 2010, ECSA '10.

[8]  Tom Schrijvers,et al.  Under Consideration for Publication in Theory and Practice of Logic Programming Swi-prolog , 2022 .

[9]  P. Mell,et al.  The NIST Definition of Cloud Computing , 2011 .

[10]  Mehrdad Sabetzadeh,et al.  Matching and Merging of Statecharts Specifications , 2007, 29th International Conference on Software Engineering (ICSE'07).

[11]  Marcos Didonet Del Fabro,et al.  Transforming Very Large Models in the Cloud: a Research Roadmap , 2012 .

[12]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[13]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[14]  Jonas Helming,et al.  EMFStore: a model repository for EMF models , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[15]  Jesús Sánchez Cuadrado,et al.  Morsa: a scalable approach for persisting and accessing large models , 2011, MODELS'11.

[16]  Marie-Pierre Gervais,et al.  Model Bus: Towards the Interoperability of Modelling Tools , 2003, MDAFA.

[17]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[18]  Udo Kelter,et al.  A Generic Difference Algorithm for UML Models , 2005, Software Engineering.

[19]  Dániel Varró,et al.  A research roadmap towards achieving scalability in model driven engineering , 2013, BigMDE '13.

[20]  Harald Störrle,et al.  MQ-2 A Tool for Prolog-based Model Querying , 2012, ECMFA 2012.

[21]  Zhiyi Ma,et al.  Detecting Duplications in Sequence Diagrams Based on Suffix Trees , 2006, 2006 13th Asia Pacific Software Engineering Conference (APSEC'06).

[22]  Harald Störrle,et al.  The Requirements Editor RED , 2014, ECMFA 2014.