2,351 research outputs found

    Real-Time Context-Aware Microservice Architecture for Predictive Analytics and Smart Decision-Making

    Get PDF
    The impressive evolution of the Internet of Things and the great amount of data flowing through the systems provide us with an inspiring scenario for Big Data analytics and advantageous real-time context-aware predictions and smart decision-making. However, this requires a scalable system for constant streaming processing, also provided with the ability of decision-making and action taking based on the performed predictions. This paper aims at proposing a scalable architecture to provide real-time context-aware actions based on predictive streaming processing of data as an evolution of a previously provided event-driven service-oriented architecture which already permitted the context-aware detection and notification of relevant data. For this purpose, we have defined and implemented a microservice-based architecture which provides real-time context-aware actions based on predictive streaming processing of data. As a result, our architecture has been enhanced twofold: on the one hand, the architecture has been supplied with reliable predictions through the use of predictive analytics and complex event processing techniques, which permit the notification of relevant context-aware information ahead of time. On the other, it has been refactored towards a microservice architecture pattern, highly improving its maintenance and evolution. The architecture performance has been evaluated with an air quality case study

    Microservice Transition and its Granularity Problem: A Systematic Mapping Study

    Get PDF
    Microservices have gained wide recognition and acceptance in software industries as an emerging architectural style for autonomic, scalable, and more reliable computing. The transition to microservices has been highly motivated by the need for better alignment of technical design decisions with improving value potentials of architectures. Despite microservices' popularity, research still lacks disciplined understanding of transition and consensus on the principles and activities underlying "micro-ing" architectures. In this paper, we report on a systematic mapping study that consolidates various views, approaches and activities that commonly assist in the transition to microservices. The study aims to provide a better understanding of the transition; it also contributes a working definition of the transition and technical activities underlying it. We term the transition and technical activities leading to microservice architectures as microservitization. We then shed light on a fundamental problem of microservitization: microservice granularity and reasoning about its adaptation as first-class entities. This study reviews state-of-the-art and -practice related to reasoning about microservice granularity; it reviews modelling approaches, aspects considered, guidelines and processes used to reason about microservice granularity. This study identifies opportunities for future research and development related to reasoning about microservice granularity.Comment: 36 pages including references, 6 figures, and 3 table

    Domain Objects and Microservices for Systems Development: a roadmap

    Full text link
    This paper discusses a roadmap to investigate Domain Objects being an adequate formalism to capture the peculiarity of microservice architecture, and to support Software development since the early stages. It provides a survey of both Microservices and Domain Objects, and it discusses plans and reflections on how to investigate whether a modeling approach suited to adaptable service-based components can also be applied with success to the microservice scenario

    Microservice Architecture Suitability for Contemporary Software Development

    Get PDF
    The objective of the thesis was to assess how well microservice architecture suits contemporary software development. Assessment is done through both technical and organizational lens’. The purpose was to implement a microservice for a customer of Futurice. The customer required a solution which would enable customer’s in-house service to integrate to a 3rd party service. The bachelor thesis is primarily a case study. Conclusions are based on observations during the project as well as literature sources. Microservice architecture provides solutions issues commonly identified in large projects. Incrementally adopting new technologies, maintaining, scaling and quick development cycle is easier to achieve with microservice architecture, than with monolithic architecture. Microservice architecture makes testing more complicated and introduces complexity to system operations. To make full use of microservice architecture, organizations must be able to answer the challenges it presents. Despite added complexity, microservice architecture overall provides relief to issues identified in web application development. It should be a default choice for medium to large projects. For smaller projects, it is be advised to assess the benefits and trade-offs of microservices case by case.Opinnäytetyön tavoite oli selvittää mikropalveluarkkitehtuurin soveltuvuus nykyaikaiseen sovellusten kehitykseen kehittäjäkokemus ja organisaatio huomioiden. Tarkoitus oli toteuttaa Futurice Oy:n asiakkaalle mikropalvelu helpottamaan asiakkaan sisäisen ja kolmannen osapuolen palvelun välistä integraatiota. Opinnäytetyö on ensisijaisesti tapaustutkimus. Päätelmät nojautuvat asiakastyössä tehtyihin havaintoihin sekä kirjallisuuslähteisiin. Mikropalveluarkkitehtuuri helpottaa erityisesti suurten projektien tyypillisiä ongelmia. Uusien teknologioiden asteittainen käyttöönotto, ohjelmiston ylläpidettävyys, skaalautuvuus ja nopea kehityssykli on helpompi saavuttaa mikropalveluarkkitehtuurilla, kuin monoliittisella arkkitehtuurilla. Mikropalveluarkkitehtuuri hankaloittaa testausta ja luo monimutkaisuutta. Saadakseen kaiken hyödyn irti mikropalveluista organisaatioiden on pystyttävä vastaamaan sen tuomiin haasteisiin. Tuomistaan haasteista huolimatta mikropalveluarkkitehtuuri helpottaa verkkopalveluiden kehittämisessä ilmeneviä ongelmia. Se on lähtökohtaisesti suositeltava arkkitehtuuri keskikokoisille ja suurille verkkopalveluille. Pienempien palveluiden kohdalla on hyvä arvioida tapauskohtaisesti, onko projekti tarpeeksi laaja, jotta se hyötyy mikropalveluarkkitehtuurin tuomista hyödyistä
    corecore