Explore chapters and articles related to this topic
The Role of Artificial Intelligence for Network Automation and Security
Published in Mazin Gilbert, Artificial Intelligence for Autonomous Networks, 2018
Helping to drive reusability in AI and to lower the barrier to entry are great goals that the community has been thriving for years. One key breakthrough is the advent of microservices. A microservice, an evolution of a service-oriented architecture, is a software architectural style in which large applications are composed from small, loosely coupled services with independent life cycles. This term has been popularized by thought leaders such as Martin Fowler [32] who have suggested that the goal of such a service design is to build systems using a collection of smaller common core components that have strong public APIs. This results in several benefits, including (a) ease of deployment of new capabilities, (b) ease of maintenance and upgrades, (c) ease of decommissioning, and (d) being agnostic to the programming languages used. A deeper dive into microservices will be presented in Chapter 7.
Achieving Scalability in the 5G-Enabled Internet of Things
Published in Yulei Wu, Haojun Huang, Cheng-Xiang Wang, Yi Pan, 5G-Enabled Internet of Things, 2019
Fuchun Joseph Lin, David de la Bastida
Micro services are a software development architectural style that structures an application as a collection of loosely coupled services. In a micro services architecture, services are fine-grained and the protocols are lightweight. The benefit of decomposing an application into different smaller services is that it improves modularity and makes the application easier to understand, develop, and test and more resilient to architecture erosion. It also parallelizes development by enabling small autonomous teams to develop, deploy and scale their respective services independently. Furthermore, it allows the architecture of an individual service to emerge through continuous refactoring.
Virtual earth cloud: a multi-cloud framework for enabling geosciences digital ecosystems
Published in International Journal of Digital Earth, 2023
Mattia Santoro, Paolo Mazzetti, Stefano Nativi
Microservices deal specifically with how an application is structured internally; the National Institute of Standards and Technology (NIST) (Karmel, Chandramouli, and Iorga 2016) defines a microservice as ‘a basic element that results from the architectural decomposition of an application’s components into loosely coupled patterns consisting of self-contained services that communicate with each other using a standard communications protocol and a set of well-defined APIs, independent of any vendor, product or technology’. Microservices can be described as a way of structuring a Web application into loosely coupled, independently deployable components that communicate over the web utilizing lightweight interfaces (Santoro et al. 2019; Karmel, Chandramouli, and Iorga 2016; Newman 2015).
Flexible simulation of traffic with microservices, agents & REST
Published in International Journal of Parallel, Emergent and Distributed Systems, 2023
Martynas Jagutis, Seán Russell, Rem Collier
A clear understanding of the relationship between Agents and Microservices Architecture is critical to the approach advocated in this paper. Recent experience in industry has shown that the use of microservices can be a powerful approach to building distributed systems that scale. The ability to build and deploy microservices independently make it easier to scale parts of the application as needed. The combination of microservices with agents was first explored in bespoke applications built for the IoT domain [52,53]. An approach to this combination of ideas was presented as an architectural style called Multi-Agent MicroServices (MAMS) [25]. The ASTRA agent programming language [26,27] was used to implement and deploy a prototype of the MAMS approach [29]. More recently, the MAMS approach has been used in the development of a semantic web service composition system [54] as well as a group planning system [55].
Architecting Microservices: Practical Opportunities and Challenges
Published in Journal of Computer Information Systems, 2020
Saša Baškarada, Vivian Nguyen, Andy Koronios
One of the most recent architectural trends, microservices (see Table 1), has been proposed as a potential solution to the abovementioned problem.5–7 The term “microservices” was reportedly first discussed at a workshop of software architects near Venice in May 2011.8 While there is arguably still no precise definition, in contrast to monolithic software architectures, microservices are small applications (generally less than a couple of thousand lines of code) with a single responsibility (a functional, non-functional, or cross-functional requirement) that can be independently deployed, scaled, and tested.9 They support agility since they can be independently developed and modified using different programming languages and product stacks.10 Some of the more popular technologies used for implementing and deploying microservice include Docker, Node.js, MySQL, PostgreSQL, Java, MongoDB, and PHP.11 A microservice architecture has been described as a “distributed application where all its modules are microservices”.2