31 research outputs found

    Improving memory efficiency for processing large-scale models

    Get PDF
    International audienceScalability is a main obstacle for applying Model-Driven Engineering to reverse engineering, or to any other activity manipulating large models. Existing solutions to persist and query large models are currently ine cient and strongly linked to memory availability. In this paper, we propose a memory unload strategy for Neo4EMF, a persistence layer built on top of the Eclipse Modeling Framework and based on a Neo4j database backend. Our solution allows us to partially unload a model during the execution of a query by using a periodical dirty saving mechanism and transparent reloading. Our experiments show that this approach enables to query large models in a restricted amount of memory with an acceptable performance

    Performance analysis of persistence technologies for cloud repositories of models

    Get PDF
    The growing adoption of Model Driven Development (MDD) in companies during last decade arises some model interchange problems. Companies need support to interchange models and reuse parts of them for developing new projects. Traditional tools for model edition and model interchange have different performance issues related to the models storage. There are mainly two styles to organize the persistence of models into repositories: a complex and large model or a large amount of small models. This last approach is common in companies that generate software from models. In this paper, we analyse performance properties of different persistence technologies to store small/medium-scale models, the analysis results should be considered in the design of model repositories in the cloud. With this aim, we have designed and developed a generic architecture to evaluate each persistence technology under similar situations

    Map-Based Transparent Persistence for Very Large Models

    Get PDF
    International audienceThe progressive industrial adoption of Model-Driven Engineering (MDE) is fostering the development of large tool ecosystems like the Eclipse Modeling project. These tools are built on top of a set of base technologies that have been primarily designed for small-scale scenarios, where models are manually developed. In particular, efficient runtime manipulation for large-scale models is an under-studied problem and this is hampering the application of MDE to several industrial scenarios.In this paper we introduce and evaluate a map-based persistence model for MDE tools. We use this model to build a transparent persistence layer for modeling tools, on top of a map-based database engine. The layer can be plugged into the Eclipse Modeling Framework, lowering execution times and memory consumption levels of other existing approaches. Empirical tests are performed based on a typical industrial scenario, model-driven reverse engineering, where very large software models originate from the analysis of massive code bases. The layer is freely distributed and can be immediately used for enhancing the scalability of any existing Eclipse Modeling tool

    A framework for domain-specific modeling on graph databases

    Full text link
    La complexité du logiciel augmente tout le temps: les systèmes deviennent plus grands et plus complexes. La modélisation est un élément central de génie logicielle pour relever les défis de la complexité. Cependant, un défi majeur auquel est confronté le développement de logiciels axés sur les modèles est l'évolutivité des outils de modélisation avec une taille croissante de modèles. Certaines initiatives ont commencé à explorer la modélisation tout en stockant des modèles dans une base de données de graphes. Dans cette thèse, nous présentons NMF, un framework pour créer et éditer des modèles dans une base de données Neo4j élevée à l'abstraction du langage de modélisation.Software complexity increases all the time: systems become larger and more complex. Modeling is a central part of software engineering to tackle challenges of complexity. However, a prominent challenge model-driven software development is facing is scalability of modeling tools with a growing size of models. Some initiatives started exploring modeling while storing models in a graph database. In this thesis, we present NMF, a framework to create and edit MDE models in a Neo4j database lifted to the abstraction of the modeling language

    Partial loading of XMI models

    Get PDF
    XML Metadata Interchange (XMI) is an OMG-standardised model exchange format, which is natively supported by the Eclipse Modeling Framework (EMF) and the majority of the modelling and model management languages and tools. Whilst XMI is widely supported, the XMI parser provided by EMF is inefficient in some cases where models are readonly (such as input models for model query, model-to-model transformation, etc) as it always requires loading the entire model into memory. In this paper we present a novel algorithm, and a prototype implementation (SmartSAX), which is capable of partially loading models persisted in XMI. SmartSAX oérs improved performance, in terms of loading time and memory footprint, over the default EMF XMI parser. We describe the algorithm in detail, and present benchmarking results that demonstrate the substantial improvements of the prototype implementation over the XMI parser provided by EMF

    EMF-REST: Generation of RESTful APIs from Models

    Get PDF
    In the last years, RESTful Web services have become more and more popular as a lightweight solution to connect remote systems in distributed and Cloud-based architectures. However, being an architectural style rather than a specification or standard, the proper design of RESTful Web services is not trivial since developers have to deal with a plethora of recommendations and best practices. Model-Driven Engineering (MDE) emphasizes the use of models and model transformations to raise the level of abstraction and semi-automate the development of software. In this paper we present an approach that leverages on MDE techniques to generate RESTful services. The approach, called EMF-REST, takes EMF data models as input and generates Web APIs following the REST principles and relying on well-known libraries and standards, thus facilitating its comprehension and maintainability. Additionally, EMF-REST integrates model and Web-specific features to provide model validation and security capabilities, respectively, to the generated API. For Web developers, our approach brings more agility to the Web development process by providing ready-to-run-and-test Web APIs out of data models. Also, our approach provides MDE practitioners the basis to develop Cloud-based modeling solutions as well as enhanced collaborative support

    Partial Loading of Repository-Based Models through Static Analysis

    Get PDF
    As the size of software and system models grows, scalability issues in the current generation of model management languages (e.g. transformation, validation) and their supporting tooling become more prominent. To address this challenge, execution engines of model management programs need to become more efficient in their use of system resources. This paper presents an approach for partial loading of large models that reside in graph-database-backed model repositories. This approach leverages sophisticated static analysis of model management programs and auto-generation of graph (Cypher) queries to load only relevant model elements instead of naively loading the entire models into memory. Our experimental evaluation shows that our approach enables model management programs to process larger models, faster, and with a reduced memory footprint compared to the state of the art

    Decentralized Model Persistence for Distributed Computing

    Get PDF
    International audienceThe necessity of manipulating very large amounts of data and the wide availability of computational resources on the Cloud is boosting the popularity of distributed computing in industry. The applicability of model-driven engineering in such scenarios is hampered today by the lack of an efficient model-persistence framework for distributed computing. In this paper we present NeoEMF/HBase, a persistence backend for the Eclipse Modeling Framework (EMF) built on top of the Apache HBase data store. Model distribution is hidden from client applications , that are transparently provided with the model elements they navigate. Access to remote model elements is decentralized, avoiding the bottleneck of a single access point. The persistence model is based on key-value stores that allow for efficient on-demand model persistence

    Mogwaï: a Framework to Handle Complex Queries on Large Models

    Get PDF
    International audienceWhile Model Driven Engineering is gaining more industrial interest, scalability issues when managing large models have become a major problem in current modeling frameworks. Scalable model persistence has been achieved by using NoSQL backends for model storage, but existing modeling framework APIs have not evolved accordingly, limiting NoSQL query performance benefits. In this paper we present the Mogwaï a scalable and efficient model query framework based on a direct translation of OCL queries to Gremlin, a query language supported by several NoSQL databases. Generated Gremlin expressions are computed inside the database itself, bypassing limitations of existing framework APIs and improving overall performance, as confirmed by our experimental results showing an improvement of execution time up to a factor of 20 and a reduction of the memory overhead up to a factor of 75 for large models

    Inkrementelle Aktualisierungstechniken für Modelle und ihre Datenbankrepräsentation

    Get PDF
    Modellgetriebene Software-Entwicklung (engl. Model Driven Software Development) steht für die Entwicklung von Software auf der Basis von Modellen. Diese stehen im Entwicklungsprozess auf einer Stufe mit Quelltext, der aus den Modellen generiert werden kann. Um die Arbeit im Team effizient zu ermöglichen, ist eine Synchronisierung der zu bearbeitenden Modelle nach einer Änderung zwischen allen Mitgliedern zwingend notwendig. Bei der Nutzung von Datenbanken zur Speicherung der Modelle ergeben sich dabei jedoch Probleme, da eine generierte Persistenzschicht häufig nur eine vollständige Ersetzung von bereits geladenen Elementen unterstützt. Eine Lösungsmöglichkeit ist die Detektion von Änderungen und die anschließende, inkrementelle Aktualisierung. Hierfür stehen bereits vorhandene Techniken zur Verfügung, welche kombiniert werden können. Im Rahmen dieser Arbeit sollten verschiedene Ansätze gefunden und anhand von Metriken bewertet werden. Eine Lösung des Problems ist die Kombination von aktiven Datenbanksystemen zur Änderungserkennung mit einer Persistenzschicht zur inkrementellen Aktualisierung einzelner Modellelemente. Bei der Untersuchung von UML-Modellen durchschnittlicher Größe (ca. 400 Elemente) ergibt sich bereits eine 25-fache Beschleunigung im Vergleich mit nicht-inkrementellen Methoden
    corecore