104 research outputs found

    Vers une description évolutive et une exploration efficace des concepts et des artefacts d'architecture microservices

    Get PDF
    RÉSUMÉ : L'adoption de l'architecture Microservices (MSA) pour la conception de systèmes logiciels est une tendance en industrie et en recherche. De nature compositionnelle et distribuée, les systèmes basés sur l'architecture Microservices sont composés de services ayant une responsabilité restreinte et bien définie, visant un isolement complet dans une perspective de non-partage de ressources. Les systèmes basés sur des microservices sont souvent classés comme de systèmes « Cloud-Native ». L'adoption de l'architecture Microservices représente un changement de paradigme technologique et managérial comportant des défis, notamment : la taille, la portée et le nombre de services, et leurs interopérabilité et réutilisation. Outre ces défis, la compréhension, l'adoption et l'implémentation des principes fondamentaux de ce style architectural sont des challenges qui impactent la conception d'architectures microservices efficaces et cohérentes. En effet, l'absence d'un large consensus sur certains principes et termes clés de cette architecture mènent à sa mauvaise compréhension et par conséquent à des implémentations incorrectes. Cette absence de consensus est une manifestation concrète de l'immaturité de cette architecture qui mène à des défis lors de la formalisation des connaissances. Également, il manque une méthode uniforme capable de supporter les concepteurs lors de la modélisation des microservices, notamment dans l'agencement des différentes composantes. À cela s'ajoute l'absence de modèles conceptuels pouvant guider les ingénieurs dans les premières phases de conception de ces systèmes. Plusieurs approches ont été utilisées pour la modélisation d'architectures microservices, tels que : formelle et informelle, manuelle et automatique et toutes les combinaisons de ces quatre, mais ces approches ne répondent pas à tous les défis rencontrés par les concepteurs. Pour faciliter la modélisation des microservices et rendre le processus plus efficace, il est nécessaire de développer des approches de conception et de représentation alternatives. Dans cette perspective, nous proposons une approche ontologique capable de répondre autant aux défis de conception que de représentation des architectures microservices. Dans ce mémoire, nous vous présentons nos résultats de recherche dont la principale contribution est une ontologie du domaine des architectures Microservices définie en suivant les principes de logique de description et formalisée en utilisant le langage « Web Ontology Language » (OWL), une technologie clé du Web sémantique. À cette ontologie nous avons donné le nom d'« Ontology of Microservices Architecture Concepts » (OMSAC). OMSAC contient suffisamment de vocabulaire pour décrire les concepts qui définissent l'architecture Microservices et pour représenter les différents artefacts composant ces architectures. Sa structure permet une évolution rapide et est capable de prendre en charge les enjeux liés à l'immaturité actuelle de ces architectures. En tant que technologie d'intelligence artificielle (IA), les ontologies possèdent des capacités de raisonnement avancées auxquelles il est possible d'ajouter d'autres technologies pour les étendre et ainsi répondre à différents besoins. Avec cet objectif, nous avons utilisé OMSAC conjointement avec des techniques d'apprentissage machine pour modéliser et analyser des architectures microservices afin de calculer le degré de similitude entre différents microservices appartenant à différents systèmes. Ce cas d'utilisation d'OMSAC constitue une contribution supplémentaire de notre recherche et renforce les perspectives de recherche dans l'assistance, l'outillage et l'automatisation de la modélisation des architectures microservices. Cette contribution montre également la pertinence de la recherche de mécanismes permettant de faire de l'analytique avancée sur les modèles d'architectures. Dans des travaux de recherche futurs, nous nous intéresserons au développent de ces mécanismes, et planifions la conception d'un assistant intelligent capable de projeter des architectures microservices basées sur les meilleures pratiques et favorisant la réutilisation de microservices existants. Également, nous souhaitons développer un langage dédié afin d'abstraire les syntaxes d'OWL et du langage de requête SPARQL pour faciliter l'utilisation d'OMSAC par les concepteurs, ingénieurs et programmeurs qui ne sont pas familiers avec ces technologies du Web sémantique. -- Mot(s) clé(s) en français : Architectures microservices, ontologies, modélisation de systèmes logiciels, apprentissage automatique. -- ABSTRACT : The use of Microservices Architecture (MSA) for designing software systems has become a trend in industry and research. Adopting MSA represents a technological and managerial shift with challenges including the size, scope, number, interoperability and reuse of microservices, modelling using multi-viewpoints, as well as the adequate understanding, adoption, and implementation of fundamental principles of the Microservices Architecture. Adequately undertaking these challenges is mandatory for designing effective MSA-based systems. In this thesis, we explored an ontological representation of the knowledge concerning the Microservices Architecture domain. This representation is capable of addressing MSA understanding and modelling challenges. As a result of this research, we propose the Ontology of Microservices Architecture Concepts (OMSAC), which is a domain ontology containing enough vocabulary to describe MSA concepts and artifacts and in a form to allow fast evolution and advanced analytical capabilities. -- Mot(s) clé(s) en anglais : Microservices Architecture, Ontologies, Conceptual modelling, machine learning

    La arquitectura de software basada en microservicios: Una revisión sistemática de la literatura

    Get PDF
    El estilo de arquitectura de software basado en microservicios se ha ido convirtiendo en un tema de interés debido a los múltiples beneficios que otorga a las organizaciones que lo adoptan para el desarrollo de sus sistemas de software. Este estilo propone desarrollar la aplicación como un conjunto de pequeños servicios, cada uno ejecutándose independientemente y comunicándose entre sí. El presente artículo busca identificar patrones, buenas prácticas y técnicas relacionadas con la arquitectura de software basada en microservicios. Para la identificación de los elementos mencionados se realizó una revisión sistemática de la literatura en las bases de datos reconocidas. De un total de 394 artículos revisados, se identificaron 24 artículos que hacen referencia a la arquitectura basada en microservicios y sus elementos. Luego de realizar una revisión sistemática de la literatura se pudo identificar 8 patrones en los cuales se destaca la contenerización de servicios y la descomposición de monolitos, 1 técnica relacionada a la migración de aplicaciones monolíticas a microservicios y 4 buenas prácticas destacadas las cuales pertenecen a DevOps.Trabajo de investigaciónLIMAEscuela Profesional de Ingeniería de SistemasIngeniería de Softwar

    Addressing Energy Efficiency in System Design: A Journey FromArchitecture to Operation

    Get PDF
    Digital-transformation initiatives have led to major efficiencies and cost savings but at the cost of consuming nearly 10 percent of the world’s electricity. Energy consumption research has increased datacentre, network, and hardware efficiency, but a neglected aspect of energy research has been the energy consumption of the software applications that underpin digital transformation. To date, software architects have lacked the knowledge, guidance, and tools to allow them to understand the energy properties of their systems. The research reported in this thesis begins to address this situation by developing practical knowledge, techniques, and tools to allow software architects to play their part in controlling the energy consumption of our modern digital world. The work commences with an investigation into formal architectural description languages, through a literature review and a case study, resulting in two research contributions, namely a comprehensive systematic survey of architecture description languages from 1991 to 2015, and a case study of practical ADL use at scale in industry. The second part of the research investigates how to assist architects in prioritising energy efficiency through a study of how experienced architects focus their attention for maximum effectiveness, which leads to the development of a model to guide architecture practitioners, which is validated and refined through a large survey of practising software architects. The research contribution is a refined and validated model for architectural effort prioritisation. The third aspect of the research examines the energy-related guidance available to architects and having found little generally applicable advice, analyses a significant industrial case study to understand how leading-edge practitioners addressed energy efficiency, contributing a set of three energy-related architectural principles, which can be used to guide architects in improving application energy efficiency. Finally, we consider the practical problem of understanding the runtime energy properties of a system, and designed a novel approach to estimate the energy consumption of execution scenarios via application execution tracing and a cost-based energy model. We created a proof of concept implementation of the approach and validated its consistency and correctness through practical testing. The contribution of this work was twofold, namely the design of a practical system for allocating energy to application execution scenarios, and a tested, open-source, proof-of-concept implementation of the system. Hence, the result of this work is six distinct contributions to knowledge in the area of ADLs (the survey and practical case study), architectural practice (the prioritisation model and the architectural principles for energy efficiency) and application energy efficiency (the design of the energy allocation system and the proof-of-concept implementation), which collectively can help architects to treat energy efficiency as a first class architectural concern in their work

    Mining Architectural Information: A Systematic Mapping Study

    Full text link
    Context: Mining Software Repositories (MSR) has become an essential activity in software development. Mining architectural information to support architecting activities, such as architecture understanding and recovery, has received a significant attention in recent years. However, there is an absence of a comprehensive understanding of the state of research on mining architectural information. Objective: This work aims to identify, analyze, and synthesize the literature on mining architectural information in software repositories in terms of architectural information and sources mined, architecting activities supported, approaches and tools used, and challenges faced. Method: A Systematic Mapping Study (SMS) has been conducted on the literature published between January 2006 and November 2021. Results: Of the 79 primary studies finally selected, 8 categories of architectural information have been mined, among which architectural description is the most mined architectural information; 12 architecting activities can be supported by the mined architectural information, among which architecture understanding is the most supported activity; 81 approaches and 52 tools were proposed and employed in mining architectural information; and 4 types of challenges in mining architectural information were identified. Conclusions: This SMS provides researchers with promising future directions and help practitioners be aware of what approaches and tools can be used to mine what architectural information from what sources to support various architecting activities.Comment: 68 pages, 5 images, 15 tables, Manuscript submitted to a Journal (2022

    Microservice security: a systematic literature review

    Get PDF
    International audienceMicroservices is an emerging paradigm for developing distributed systems. With their widespread adoption, more and more work investigated the relation between microservices and security. Alas, the literature on this subject does not form a well-defined corpus : it is spread over many venues and composed of contributions mainly addressing specific scenarios or needs. In this work, we conduct a systematic review of the field, gathering 290 relevant publications—at the time of writing, the largest curated dataset on the topic. We analyse our dataset along two lines: (a) quantitatively, through publication metadata, which allows us to chart publication outlets, communities, approaches, and tackled issues; (b) qualitatively, through 20 research questions used to provide an aggregated overview of the literature and to spot gaps left open. We summarise our analyses in the conclusion in the form of a call for action to address the main open challenges
    • …
    corecore