6 research outputs found

    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

    A UML Profile for the Design, Quality Assessment and Deployment of Data-intensive Applications

    Get PDF
    Big Data or Data-Intensive applications (DIAs) seek to mine, manipulate, extract or otherwise exploit the potential intelligence hidden behind Big Data. However, several practitioner surveys remark that DIAs potential is still untapped because of very difficult and costly design, quality assessment and continuous refinement. To address the above shortcoming, we propose the use of a UML domain-specific modeling language or profile specifically tailored to support the design, assessment and continuous deployment of DIAs. This article illustrates our DIA-specific profile and outlines its usage in the context of DIA performance engineering and deployment. For DIA performance engineering, we rely on the Apache Hadoop technology, while for DIA deployment, we leverage the TOSCA language. We conclude that the proposed profile offers a powerful language for data-intensive software and systems modeling, quality evaluation and automated deployment of DIAs on private or public clouds

    Avaliação de sistema baseado em MapReduce para carregamento de modelos

    Get PDF
    Resumo: O sucesso do desenvolvimento de software baseado em modelos levou ao estudo e aplicação destas técnicas em situações bastante diversas, como migração de sistemas legados, que antes não eram previstas. Isto exigiu a adaptação das técnicas existentes, especialmente em relação as abordagens de armazenamento, porque os frameworks existentes não foram projetados para suportar modelos com tamanho superior a alguns megabytes, isto _e, grandes modelos. Existem alguns trabalhos que já identificaram esse problema, e propõem técnicas mais eficientes para o armazenamento de dados, como grafos, orientado a documentos. Atualmente, o uso de frameworks de processamento de dados distribuídos é uma alternativa comum para análise de dados em grande escala. Porém, estas técnicas são ainda pouco exploradas no contexto de desenvolvimento baseado em modelos. Uma abordagem bastante comum para manipulação de dados, é o MapReduce, que usa técnica baseada em programação funcional para distribuição do processamento. Este trabalho propõem uma solução para implementação e avaliação do MapReduce para o carregamento distribuído de modelos, com o objetivo de melhorar o desempenho. Para distribuir um modelo, é necessário conhecer as dependências dos seus elementos, como classes, atributos e referências, assim pode-se efetuar uma distribuição com maior independência, não comprometendo o processamento. Diferentes modelos podem exigir diferentes divisões, a maneira escolhida para distribuir os elementos é crucial para o desempenho e essas divisões podem alterar consideravelmente o tempo do processo e a quantidade me memória exigida para o mesmo. Este trabalho apresenta uma implementação que integra técnicas de MDE e MapReduce para carregar modelos de maneira distribuída. Escolhemos 4 métodos existentes para carregar e distribuir os elementos de modelos de maneira diferente, escolhemos o método Média das Referências, Média dos Tipos, Tamanho do Modelo e Uma Classe por Divisão

    Motor de transformações baseado em Mapreduce

    Get PDF
    Resumo: A busca por agilidade no processo de desenvolvimento de software tem impulsionado a crescente adoção de tecnologias, paradigmas e abordagens baseada em modelos (Model- Driven Engineering). Essas soluções mudam o foco de codificação para modelagem, onde modelos são utilizados para descrever diferentes aspectos de um sistema em diferentes níves de abstração. Uma série de linguagens, padrões e ferramentas surgiram para automatizar a construção e modificação de modelos e assim apoiar a principal operação executada neste cenário que são as transformações de modelos. A inserção de grandes modelos neste contexto evidenciou uma limitação dessa metodologia, a capacidade de tratar modelos com esta característica. Problemas de escalabilidade surgem quando modelos da ordem de milhares de elementos são utilizados em processos de desenvolvimento de software. Trabalhos recentes, visando desenvolver soluções para o problema de escalabilidade, tem explorado e focado em diferentes abordagens como armazenamento, fragmentação e persistência de modelos, porém pouco se tem visto em relação a ferramentas de transformação de modelos. Com base em trabalhos feitos em outros domínios, desenvolvemos um mecanismo de transformação de modelos executando de forma distribuída em uma nuvem. A solução consiste na adaptação de uma ferramenta de transformação de modelos para execução distribuída, através da integração com MapReduce. Duas implementações distintas arquiteturalmente são apresentadas, uma baseada em regras de transformação e outra baseada em operações de transformação de modelos. Os resultados obtidos são promissores especialmente para transformação de modelos grandes e complexos

    Towards Scalable Model Indexing

    Get PDF
    Model-Driven Engineering (MDE) is a software engineering discipline promoting models as first-class artefacts of the software lifecycle. It offers increased productivity, consistency, maintainability and reuse by using these models to generate other necessary products, such as program code or documentation. As such, persisting, accessing, manipulating, transforming and querying such models needs to be efficient, for maintaining the various benefits MDE can offer. Scalability is often identified to be a bottleneck for potential adapters of MDE, as large-scale models need to be handled seamlessly, without causing disproportionate losses in performance or limiting the ability of multiple stakeholders to work simultaneously on the same collection of large models. This work identifies the primary scalability concerns of MDE and tackles those related to the querying of large collections of models in collaborative modeling environments; it presents a novel approach whereby information contained in such models can be efficiently retrieved, orthogonally to the formats in which models are persisted. This approach, coined model indexing leverages the use of file-based version control systems for storing models, while allowing developers to efficiently query models without needing to retrieve them from remote locations or load them into memory beforehand. Empirical evidence gathered during the course of the research project is then detailed, which provides confidence that such novel tools and technologies can mitigate these specific scalability concerns; the results obtained are promising, offering large improvements in the execution time of certain classes of queries, which can be further optimized by use of caching and database indexing techniques. The architecture of the approach is also empirically validated, by virtue of integration with various state-of-the-art modeling and model management tools, and so is the correctness of the various algorithms used in this approach
    corecore