6 research outputs found

    Exploring maintainability and performance in Ballerina Microservices

    Get PDF
    Microservices architecture currently is the industry norm for creating applications since it allows teams to focus on individual services related to specific business functionalities, reducing the overall application complexity and improving its maintainability. However, microservices architecture has liabilities regarding service integration, communication, governance, and data management. To solve these liabilities, the industry and academic community have focused on creating new frameworks and solutions. More recently, the focus changed to creating new programming languages focused on microservices. This study aims to investigate the effects of language-oriented approaches in developing microservices. The work focuses on Ballerina, a programming language created to simplify the creation and integration of microservices. From the literature’s analysis, Ballerina demonstrates the ability to be more beneficial than the most common implementations of microservices that use more common frameworks. To further investigate these statements, an experience based on the migration of existing microservices developed in Java with the use of the framework Spring Boot was conducted. This experience used a migration strategy created based on the language’s specificities. The resulting Ballerina microservice is compared with its original counterpart. The experience focused on analyzing both solutions in terms of maintainability and performance. Therefore, the Goals, Questions, Metrics (GQM) approach was used to obtain metrics for the mentioned quality attributes. From the obtained results, it was concluded that the Ballerina solution presents differences from the Spring Boot solution, being superior regarding maintainability and inferior in performance.A arquitetura baseada em microserviços atualmente é dentro da indústria considerada a norma para a criação de aplicações. A arquitetura baseada em microserviços apresenta diversas vantagens, como a possibilidade de distribuir as diferentes funcionalidades da aplicação por diversas equipas, possibilitando também o desenvolvimento dos seus serviços em linguagens de programação diferentes. Esta modularização traduz-se num acréscimo à independência das equipas, possibilitando a implementação dos seus próprios processos de trabalho como também reduz a complexidade total da aplicação, aumentando a sua manutenibilidade. Contudo, a arquitetura baseada em microserviços, dado o aumento na sua utilização, deu origem a novas questões e preocupações para as equipas de desenvolvimento e para as organizações. As equipas de desenvolvimento encontraram dificuldades na integração e comunicação dos seus serviços, principalmente quando estes eram desenvolvidos em linguagens de programação bastante divergentes. Apesar da modularidade e desacoplamento dos serviços, começou a ser detetada uma grande dependência com metodologias de implantação do código, onde o sucesso de microserviços encontrava-se fortemente dependente do uso de contentores e sistemas de orquestração. As organizações identificaram um aumento nos seus custos devido ao aumento de processos, armazenamento em servidores e de software para suporte às diversas equipas. Estas dificuldades advêm do facto de as linguagens de programação habitualmente usadas para a criação de microserviços não terem sido edificadas com o objetivo de suportar microserviços bem como não salvaguardam algumas das preocupações identificadas anteriormente. De forma a combater estas dificuldades, a indústria e a comunidade académica incidiram as suas investigações em novas frameworks e soluções. Recentemente, dado o novo foco na otimização para o "desenvolvimento", surgiram novas linguagens de programação orientadas a microserviços. Este estudo tem como objetivo investigar os efeitos da utilização de linguagens de programação orientadas a microserviços e subsequentemente a análise do seu impacto relativamente a atributos de qualidade relevantes para os mesmos. O foco deste estudo incidirá na linguagem de programação Ballerina, uma linguagem de programação criada com o intuito de facilitar a criação de serviços resilientes capazes de se integrarem e orquestrarem através de pontos de saída distribuídos. Foi realizada uma investigação à literatura existente sobre microserviços e sobre Ballerina, com especial atenção na literatura referente à utilização de Ballerina em microserviços. Esta investigação objetivou a identificação dos atributos de qualidade relevantes, de onde se precisou a manutenibilidade e a performance como sendo os atributos a avaliar. Derivada da análise da literatura, quando confrontada com implementações de linguagens de programação mais tradicionais, Ballerina demonstra a capacidade de proporcionar benefícios aquando da sua utilização em microserviços. Ballerina apresenta vantagens tais como o suporte nativo para a utilização de contentores, suporte a DevOps e funcionalidades focadas na segurança e resiliência das aplicações. De forma a aferir estas afirmações, foi efetuada uma experiência controlada baseada na migração de microserviços desenvolvidos na linguagem de programação Java com recurso à framework Spring Boot para a linguagem Ballerina. Para a realização desta experiência, primeiramente foi escolhido um projeto base do qual se realizaria a migração. O projeto a migrar teria de cumprir alguns requisitos, tais como: ser open-source, ter atividade recente e um número significativo de microserviços. Com base nestes requisitos, foi selecionado o projeto Lakeside Mutual, um projeto sobre uma companhia de seguros fictícia, desenvolvido com o propósito de demonstrar a utilização de padrões sobre APIs e design orientado ao domínio. Seguidamente, foi desenhada uma estratégia de migração com base nas especificidades da linguagem. Dada a implementação da estratégia, foi edificado um serviço em Ballerina à semelhança do original implementado em Java, mantendo todos os seus atributos e funcionalidades. As soluções foram comparadas em termos de manutenibilidade e performance, em que para tal foi utilizada a abordagem Goal, Question, Metrics (GQM) de forma a obter métricas para os atributos de qualidade previamente mencionados. Em termos de manutenibilidade, foram analisados os números de linhas de código existentes e a complexidade calculada através dos níveis de indentação dado que Ballerina ainda não suporta ferramentas como o Sonarqube. Relativamente à performance, foi desenhado e implementado um plano de testes com um número variado de utilizadores virtuais que executavam um conjunto de pedidos REST. Dos resultados obtidos, foi concluído que existem diferenças notáveis entre ambas as soluções. A solução em Ballerina apresenta melhores resultados do que a solução em Spring Boot relativamente à manutenibilidade. Contudo, relativamente à performance, a solução em Spring Boot demonstra obter melhores resultados

    Establishing model-to-model interoperability in an engineering workflow

    Get PDF
    The modeling tools available for engineering design and analysis are traditionally created in isolation with features and capabilities geared toward a particular domain, that is, that many traditional engineering modeling tools are isolated, unable to readily connect to or be integrated into a larger tool set. With the advent of cloud computing and the success of delivering applications built using a microservices architecture, a more modern approach would allow an engineering design application to be composed of smaller independently developed and contributed applications within an environment capable of executing those applications without modification to the environment. This is somewhat analogous to an application store with one main difference. In the engineering design and analysis case, the goal is to enable the coupling of the applications together to perform higher level analysis, whereas in the application store, most applications are used independently. This work introduces an Application Coupling Interface (ACI), for declaring the semantics of the application programming interfaces (APIs) of a modeled subsystem, a central repository providing access to curated web enabled engineered subsystems via ACIs and an extension of an existing cloud enabled engineering modeling/design environment to incorporate a new messaging system capable of autonomously orchestrating the execution and exchange of data between the subsystems. Together, these components provide the basis for an extensible analysis and design platform that accelerates discovery and innovation through the promotion of contribution and reuse of web enabled engineering models

    Data Spaces

    Get PDF
    This open access book aims to educate data space designers to understand what is required to create a successful data space. It explores cutting-edge theory, technologies, methodologies, and best practices for data spaces for both industrial and personal data and provides the reader with a basis for understanding the design, deployment, and future directions of data spaces. The book captures the early lessons and experience in creating data spaces. It arranges these contributions into three parts covering design, deployment, and future directions respectively. The first part explores the design space of data spaces. The single chapters detail the organisational design for data spaces, data platforms, data governance federated learning, personal data sharing, data marketplaces, and hybrid artificial intelligence for data spaces. The second part describes the use of data spaces within real-world deployments. Its chapters are co-authored with industry experts and include case studies of data spaces in sectors including industry 4.0, food safety, FinTech, health care, and energy. The third and final part details future directions for data spaces, including challenges and opportunities for common European data spaces and privacy-preserving techniques for trustworthy data sharing. The book is of interest to two primary audiences: first, researchers interested in data management and data sharing, and second, practitioners and industry experts engaged in data-driven systems where the sharing and exchange of data within an ecosystem are critical

    Data Spaces

    Get PDF
    This open access book aims to educate data space designers to understand what is required to create a successful data space. It explores cutting-edge theory, technologies, methodologies, and best practices for data spaces for both industrial and personal data and provides the reader with a basis for understanding the design, deployment, and future directions of data spaces. The book captures the early lessons and experience in creating data spaces. It arranges these contributions into three parts covering design, deployment, and future directions respectively. The first part explores the design space of data spaces. The single chapters detail the organisational design for data spaces, data platforms, data governance federated learning, personal data sharing, data marketplaces, and hybrid artificial intelligence for data spaces. The second part describes the use of data spaces within real-world deployments. Its chapters are co-authored with industry experts and include case studies of data spaces in sectors including industry 4.0, food safety, FinTech, health care, and energy. The third and final part details future directions for data spaces, including challenges and opportunities for common European data spaces and privacy-preserving techniques for trustworthy data sharing. The book is of interest to two primary audiences: first, researchers interested in data management and data sharing, and second, practitioners and industry experts engaged in data-driven systems where the sharing and exchange of data within an ecosystem are critical

    Digital Theatre: A "Live" and Mediated Art Form Expanding Perceptions of Body, Place, and Community

    Get PDF
    This work discusses Digital Theatre, a type of performance which utilizes both "live" actors and co-present audiences along with digital media to create a hybrid art form revitalizing theatre for contemporary audiences. This work surveys a wide range of digital performances (with "live" and digital elements, limited interactivity/participation and spoken words) and identifies the group collectively as Digital Theatre, an art form with the flexibility and reach of digital data and the sense of community found in "live" theatre. I offer performance examples from Mark Reaney, David Saltz, Troika Ranch, Gertrude Stein Repertory Theatre, Flying Karamazov Brothers, Talking Birds, Yacov Sharir, Studio Z, George Coates Performance Group, and ArtGrid. (The technologies utilized in performances include: video-conferencing, media projection, MIDI control, motion capture, VR animation, and AI). Rather than looking at these productions as isolated events, I identify them as a movement and link the use of digital techniques to continuing theatrical tradition of utilizing new technologies on the stage. The work ties many of the aesthetic choices explored in theatrical past by the likes of Piscator, Svoboda, Craig, and in Bauhaus and Futurist movements. While it retains the essential qualities of public human connection and imaginative thought central to theatre, Digital Theatre can cause theatrical roles to merge as it extends the performer's body, expands our concept of place, and creates new models of global community
    corecore