114 research outputs found
Introduction to Microservice API Patterns (MAP)
The Microservice API Patterns (MAP) language and supporting website premiered under this name at Microservices 2019. MAP distills proven, platform- and technology-independent solutions to recurring (micro-)service design and interface specification problems such as finding well-fitting service granularities, rightsizing message representations, and managing the evolution of APIs and their implementations. In this paper, we motivate the need for such a pattern language, outline the language organization and present two exemplary patterns describing alternative options for representing nested data. We also identify future research and development directions
Microservices: Granularity vs. Performance
Microservice Architectures (MA) have the potential to increase the agility of
software development. In an era where businesses require software applications
to evolve to support software emerging requirements, particularly for Internet
of Things (IoT) applications, we examine the issue of microservice granularity
and explore its effect upon application latency. Two approaches to microservice
deployment are simulated; the first with microservices in a single container,
and the second with microservices partitioned across separate containers. We
observed a neglibible increase in service latency for the multiple container
deployment over a single container.Comment: 6 pages, conferenc
Insights into Software Development Approaches: Mining Q&A Repositories
Context: Software practitioners adopt approaches like DevOps, Scrum, and
Waterfall for high-quality software development. However, limited research has
been conducted on exploring software development approaches concerning
practitioners discussions on Q&A forums. Objective: We conducted an empirical
study to analyze developers discussions on Q&A forums to gain insights into
software development approaches in practice. Method: We analyzed 13,903
developers posts across Stack Overflow (SO), Software Engineering Stack
Exchange (SESE), and Project Management Stack Exchange (PMSE) forums. A mixed
method approach, consisting of the topic modeling technique (i.e., Latent
Dirichlet Allocation (LDA)) and qualitative analysis, is used to identify
frequently discussed topics of software development approaches, trends
(popular, difficult topics), and the challenges faced by practitioners in
adopting different software development approaches. Findings: We identified 15
frequently mentioned software development approaches topics on Q&A sites and
observed an increase in trends for the top-3 most difficult topics requiring
more attention. Finally, our study identified 49 challenges faced by
practitioners while deploying various software development approaches, and we
subsequently created a thematic map to represent these findings. Conclusions:
The study findings serve as a useful resource for practitioners to overcome
challenges, stay informed about current trends, and ultimately improve the
quality of software products they develop
Enabling Community Health Care with Microservices
Microservice architectures (MA) are composed of
loosely coupled, course-grained services that emphasise resilience and autonomy, enabling more scalable applications to be developed. Such architectures are more tolerant of changing demands from users and enterprises, in response to emerging technologies and their associated influences upon human interaction and behaviour. This article looks at microservices in the Internet of Things (IoT) through the lens of agency, and using an example in the community health care domain explores how a complex application scenario (both in terms of software and hardware interactions) might be modelled
Model-Driven Development for Spring Boot Microservices
As microservices become more and more common, there is more interest in optimizing their development, making it faster, reducing the complexity and making it less error and bug prone. This work aims to explore how Model-driven Engineering (MDE) can be used to aid microservices’ development, especially Java microservices using Spring Boot. Firstly, this work starts by presenting its context, with a brief introduction to MDE and microservices, and how MDE can be used to facilitate microservices’ development. Then the State of the Art presents MDE base technologies and MDE-based solutions that can be used to develop microservices. Furthermore, a value analysis was also done, to explore the benefits of using MDE, and to define its value proposition. Lastly, a case study was elaborated following three different approaches, traditional development, DSL-based approach, and MDE-based tool approach, which were then compared by code quality and time required for development of the microservices. This work is especially interesting for someone who wants to develop Java microservices and wants to explore the different approaches and technologies to do so, namely by using MDE.À medida que os microserviços se tornam cada vez mais comuns, há mais interesse em otimizar seu desenvolvimento, otimizando o tempo de desenvolvimento, reduzindo a complexidade e tornando-o menos sujeito a erros e bugs. Este trabalho tem como objetivo explorar como é que Model-driven Engineering (MDE) pode ser usado para auxiliar o desenvolvimento de microserviços, especialmente microserviços Java usando Spring Boot. Em primeiro lugar, este trabalho começa apresentando seu contexto, com uma breve introdução ao MDE e microserviços, e explicando como é que MDE pode ser usado para facilitar o desenvolvimento de microserviços. Em seguida é apresentado o Estado da Arte, que apresenta tecnologias base de MDE e soluções baseadas em MDE (ferramentas), que podem ser utilizadas para desenvolver microserviços. Além disso, também foi feita uma análise de valor para explorar os benefÃcios do uso de MDE, e para definir sua proposta de valor. Por fim, foi elaborado um caso de estudo através de três abordagens diferentes, desenvolvimento tradicional, abordagem baseada em DSL, e abordagem utilizando uma ferramenta baseada em MDE, que foram então comparadas através da qualidade do código e pelo tempo necessário para o desenvolvimento dos microserviços. Este trabalho é especialmente interessante para quem quer desenvolver microsserviços Java e quer explorar as diferentes abordagens e tecnologias para o fazer, nomeadamente através da utilização de MDE
- …