ArticlePDF Available

Design and Development of Resilient Microservices Architecture for Cloud Based Applications using Hybrid Design Patterns

Authors:
  • MEASI Institute of Information Technology

Abstract and Figures

Microservices is a notion that claims to enable the creation of large, complicated systems that must operate in an unpredictable environment. Microservices should therefore promote resiliency. This paper provides possible solutions on fault tolerant of microservices and solve the problem of frequent shutdown or restart of services through advance research on hybrid design patterns based on Agile – Iterative and Incremental approach through a process called dynamic fusion. Fusion of objects Microservices during runtime will ensure that there is no need for system restart. Though currently there are many techniques to achieve binding, still it is widely found that the microservice needs to be restarted whenever there is a new increment or iteration. This area of research is to find out all possible and feasible options of dynamic binding via a deep study on object-oriented analysis and design techniques which comes out with various possible technical solutions. This study is based on "SOLID" software design concepts in general and how they are applied to microservices difficulties specifically to dynamic fusion of atomic microservices in a complex microservices architecture on cloud. This research work would pave a way for the future programmers to understand how to achieve dynamic binding in the real dynamic fashion as per the principles of agile approach. Keywords: Microservices, Agile Iterative and Incremental approach, dynamic fusion, binding, Object Oriented Analysis, Interfaces
Content may be subject to copyright.
Design and Development of Resilient
Microservices Architecture for Cloud
Based Applications using Hybrid Design
Patterns
Mr. J. Abdul Rasheedh1
Ph.D Research Scholar,
Department of Computer Science, VISTAS, Pallavaram, Chennai, Tamilnadu, India,
abdul_rasheedh@yahoo.co.in
Dr. S. Saradha2
Research Supervisor,
Department of Computer Science, VISTAS,Pallavaram, Chennai, Tamilnadu, India,
saradha.research@gmil.com
Abstract
Microservices is a notion that claims to enable the creation of large, complicated systems that must
operate in an unpredictable environment. Microservices should therefore promote resiliency. This paper
provides possible solutions on fault tolerant of microservices and solve the problem of frequent shutdown
or restart of services through advance research on hybrid design patterns based on Agile – Iterative and
Incremental approach through a process called dynamic fusion. Fusion of objects Microservices during
runtime will ensure that there is no need for system restart. Though currently there are many techniques
to achieve binding, still it is widely found that the microservice needs to be restarted whenever there is a
new increment or iteration. This area of research is to find out all possible and feasible options of
dynamic binding via a deep study on object-oriented analysis and design techniques which comes out with
various possible technical solutions. This study is based on "SOLID" software design concepts in general
and how they are applied to microservices difficulties specifically to dynamic fusion of atomic
microservices in a complex microservices architecture on cloud. This research work would pave a way for
the future programmers to understand how to achieve dynamic binding in the real dynamic fashion as
per the principles of agile approach.
Keywords: Microservices, Agile Iterative and Incremental approach, dynamic fusion, binding, Object
Oriented Analysis, Interfaces
1. Introduction
There has been minimal study into a thorough evaluation of dynamic binding systems, notably in terms of
system failure and dependability, because previous research has concentrated on the design and implementation
of dynamic binding processes. Microservices is a phrase that has been around for a while. Dr. Peter Rodgers
invented the term "micro web services based on Simple Object Access Protocol (SOAP).
Microservices design helps huge systems to avoid monolithic applications. It allows for flexible coupling
between cooperating systems that operate independently in diverse settings while maintaining tight cohesion.
The deployment, development, and ongoing maintenance of web applications have all changed significantly
with the introduction of microservice architecture. The microservice method decays the application into
numerous independently executable software components or units that coherently interoperate to deliver specific
application functionality, as opposed to the traditional monolithic application architecture, which builds the
entire application as a single unified system. Microservice designs handles nonfunctional features such as
scalability and fault tolerance for high availability. As a result of adopting microservices, programs must be
built in such a way that they can withstand the failure of individual services. As services might fail at any time,
it's critical to be able to identify them immediately and, if feasible, restore them automatically. Microservice
applications place a high value on real-time application monitoring, which includes evaluating both technical
metrics like how many requests per second the database receives and business-relevant metrics like how many
orders per minute are processed. Monitoring can serve as an early warning system when anything goes wrong,
prompting development teams to investigate.
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
365
Scalable systems should be able to automatically respond to changing workloads via elastic capacity
management, such as that provided by cloud infrastructures. You may dynamically replicate microservices to
cloud infrastructures that are under severe strain using microservice designs. It is not essential to scale the entire
system, as a monolithic system would need. Small services are easier to install and, since they are self-
contained, are less likely to cause system faults. During the examination of total system Microservices can help
to develop resilience. Due to the independence of independent microservices, if one microservice fails (for
example, due to a non-working execution environment), it can’t prevent another microservice from operating.
As a result, all of the other microservices provide the functional concerns they represent. As a result, a failure
that affects only one microservice does not affect the functional concerns of other microservices. In systems
with other structures, the impact of a failure can be more dramatic, for example, in a monolithic system, a failure
can escalate and prevent the entire system from operating (no functional anxiety is met), or in a layered system,
a failing layer can cause all layers (transitively) to fail if it fails. As a result of the separation of functional
concerns, a microservice system may maintain objectives described by functional concerns alive even if a single
microservice fails.
A microservice also reflects one of the system's functional concerns. As a result, a microservice's complexity
and size are smaller than the total system. The creation of a (resilient) system is made easier by reducing
complexity and size. Other techniques that split a system into subsystems, like as component-based
development or layered systems, are comparable to this advantage.
The goal of this study, which is based on SOLID principles, is to eliminate dependencies so that engineers may
alter one part of the software without affecting the others. They are also meant to make designs easier to
comprehend, maintain, and extend. Finally, following these design principles helps software developers avoid
problems and create flexible, effective, and agile software. While the principles have numerous advantages,
adhering to them usually results in longer and more complicated code. This means that the design process will
take longer and development will be more complex. This extra time and effort, however, is well worth it
because it makes program maintenance, testing, and extension much easier. The principles have gained
popularity because they lead to better code in terms of readability, maintainability, design patterns, and
testability when followed correctly. In today's world, all developers should be aware of and employ these ideas.
When anything has to be added, the open-closed concept states that existing, well-tested classes will need to be
updated. On the other hand, changing classes, might cause issues or bugs. You want to expand the class rather
than modifying it. This guideline must be followed in order to write code that is easy to maintain and revise. 1.
Open for extension, which means the behavior of the class may be modified; and 2. Closed for modification,
which means the source code is fixed and cannot be altered. This study looks at agile methodology, which is a
form of project management technique that is mostly employed in software development and in which requests
and solutions emerge from the collaborative efforts of self-organizing and cross-functional teams as well as their
clients. In order to comprehend agile project management, one must first have a thorough grasp of the agile
development process.
An iterative strategy is one in which the discussion's topic, stimulus, and, in some cases, technique are modified
during the course of the research project. This method is especially beneficial for time-sensitive tasks where
numerous rounds of study aren't feasible. The goal of this study is to better understand and propose answers for
one component of the Agile-Iterative and Incremental strategy, which is object fusion without having to restart
the application or system.
The following is the structure of this paper:
The corresponding microservice survey are discussed in section 2. The proposed technique based on Hybrid
Design Patterns and agile methodology is discussed in section 3. The outcomes are detailed in section 4. The
conclusions are stated in Section 5
2. Literature Review
The suggested methodology by Rasheedh and Saradha [1] involves binding and arranging web services based on
an assessment of this competition for mobile consumers. The first addition is the introduction of the dynamic
whale optimization algorithm for the new composition framework, which allows process designers to create
processes based on process and business constraints. Second, this paper show how to implement agile
automation in virtual space using a derived micro-service architecture that may offer agility and flexibility to the
ideal automation. In addition, this paper suggest that a Queuing Deep Neural Network (QDNN) be used to
assign and update service selection probability based on the average service response time that is observed.
Mane et al. [2] recommended using a thing building framework based on microservices and small-scale
frontends to assist clients in receiving geographical data and information from IoT devices in a consistent and
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
366
acceptable manner as well as a Progressive Web Application (PWA). They present a condition in which the web
application is persistently developed by joining geospatial data, information guaranteed about from IoT sensors,
and other relating information, and they handle the procedure of part structures utilizing a solicitation design
including piece marks and other illustrative properties, similarity sharp data about the application client.
Ying et al. [3] presented a Dynamic QoS requirement for affiliations, which is currently a hypnotizing issue and
a test for examining in the domains of affiliation suggestion and construction. Yang et al. [4] investigated
SOLID difficulties with Java programming bolstered by UML outlines and dynamic execution suggestions of
program synchronization in an electronic programming environment. It implies assisting understudies in
bettering their understanding of the static structure and dynamic direct of java programs, as far as object-driven
system exams. Through quantitative and energetic assessments, the evaluation prospective outcomes of jaguar
code to look at its abundance and client endurance.
Granchelli et al.[5] show the first version of MicroART, our Architecture Recovery Tool for microservice-based
systems. MicroART, which is built on Model-Driven Engineering concepts, can build models of a microservice-
based system's software architecture that can be maintained by software architects for a variety of reasons. M3 is
a revolutionary solution for efficient and effective monitoring of applications based on multi-virtualization
(containers/VMs) multi-microservices deployed in multi-cloud settings.
Noor et al [6]. The suggested solution allows users to monitor and report on the performance of microservices
running within containers and virtual machines in real time. To meet the challenges of monitoring such
sophisticated services-based applications, the solution leverages an agent-based architecture to scale from a
centralized to a decentralized architecture. The suggested system was put to the test in a variety of situations,
with the results proving M3's usefulness in monitoring microservices in multi-virtualization multi-cloud
systems. At otto.de, one of Europe's largest e-commerce platforms.
Hasselbring and Steinacker[7] show how the qualities of microservice architectures help with scalability,
agility, and dependability. At otto.de, this article examines vertical deconstruction into self-contained systems,
proper granularity of microservices, as well as microservice coupling, integration, scalability, and monitoring.
High dependability is provided by automated quality assurance with continuous integration and deployment,
while improving agility to more than 500 live deployments each week. To facilitate seamless and speedy
integration of domain services.
Guo et al. [8] offer an interactive crossover service fusion technique based on microservice architecture. This
technique provides a comprehensive solution for speedy crossover service integration and aids in the resolution
of semantic discrepancies in service integration, hence supporting the growth of the service ecosystem. Breaking
apart a monolithic system, according to Knoche [9], takes careful planning and can have a significant influence
on performance. When breaking down a monolithic system into microservices, Knoche provides an eight-step
gradual strategy for sustaining performance. The method contains a performance simulation to assess what kind
of performance can be expected when a microservice-based architecture is implemented. Balalaie et al. [10]
discuss their experiences and lessons gained when transitioning from a service to a microservice architecture
step by step. They describe how they transitioned from a monolithic pipeline to a microservices pipeline with
discrete services that can be deployed individually. Moving from monolithic to microservices opens up the
possibility of forming many cross-functional teams to support DevOps. To analyze the "resilience" of systems in
quantitative terms, according to Strigini [11], it is required to first determine what "resilience" means, whether it
is a single quality or multiple, and which metric or measurements best characterize it. The different possible
measures for the attributes that the word designates, with their different pros and cons in terms of ease of
empirical assessment and suitability for supporting prediction and decision making. The different possible
measures for the attributes that the word designates, with their different pros and cons in terms of ease of
empirical assessment and suitability for supporting prediction and decision making. The commonality of these
ideas, metrics, and associated difficulties across other domains of engineering, as well as how learning may be
spread between them. The issues posed by the requirement to design a scalable and fault-tolerant system based
on microservices are addressed by Baboi et.al[12]. This experiment considers two types of microservices such
as simple and extended, and the proposed method shows to be novel, particularly in terms of dynamic behavior.
The implementation of microservices systems is more productive, adaptable, and cost efficient thanks to cloud-
native designs [13]. Nonetheless, Zimmermann points out that microservices are a delicate issue that is being
researched by both academics [14] and industry.
The word "microservices" was originally used in May 2011 during a workshop of Software Architects in Italy to
characterize what the attendees viewed as a similar architectural style that many of them had recently explored.
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
367
A year later, the same panel affirmed that the word "microservices" is correct. Microservices were created in
response to issues with monolithic systems or service-oriented architectures that made complexity, scalability,
and dependencies of the application under construction difficult to manage, all while employing lightweight
communication protocols [15-19].
3. Research Methodology
3.1 PROPOSED SYSTEM MODELS -Agile Iterative and incremental approach
Iterative and incremental software development is a technique for creating software that is based on a cyclical
release and upgrade pattern and a steady rise in feature additions. It is one of the Agile software development
approaches, as well as a rational unified process and extreme programming.
Agile methodology: is a type of project management process, mainly used for software development, where
demands and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and
their customers.
The Agile Process It is required for one to have a good understanding of the agile development process in order
to understand agile project management.
Iterative approach: An iterative approach is one where the content of the discussion, stimulus, or sometimes
even the methodology is adapted over the course of the research programme. This approach is particularly
useful for time-sensitive projects where there isn't scope for multiple rounds of research.
Iterative and incremental approach:
Iterative and incremental software development is a method of software development that is modelled around a
gradual increase in feature additions and a cyclical release and upgrade pattern. It is one of the methodologies of
Agile software development, rational unified process and extreme programming.
3.2 WORKFLOW OF THE PROPOSED SYSTEM
The figure 1 shows the proposed system working flow of services from Client, Interfaces, and Fusion
Application Server to Micro services. The solution is based on "SOLID" software design concepts and how they
apply to microservices issues, namely dynamic fusing of atomic microservices in complicated cloud
Microservices architecture.
In the proposed system in figure 1, shows the micro services may be bill pay, hello services etc are provided
according to the needs of the user/client by reducing their complexity and traffic time. This system provides
many services in general; also if the client needs any services then it can be created and provided by means of
workflow doc. These services can be fused together in the application server according to the user needs. This
technique is nothing but the fusion made micro services where the client meets their requirements easily without
any traffic time.
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
368
Fig 1: Telecomm microservices –Working Flow Diagram
3.3 MICROSERVICES DYNAMIC FUSION USING HYBRID DESIGN PATTERN
Fig 2: Proposed microservices Dynamic Fusion using Hybrid Design Pattern
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
369
3.3.1 This hybrid approach proposed is to have the following features
a) When a fusion happens in a mother object, the mother object undergoes a seamless transformation from
existing to a new system.
b) The transformation should be at runtime to ensure that there is no system restart.
This dynamic fusion using hybrid design pattern shown in figure 2 work on the SOLID principle.
The proposed design pattern apply the SOLID software design principles per service with this extreme
approach, where each service is totally isolated, even at the level of its codebase. Because this system don't want
to share a codebase, which will consider each microservice as a standalone application. It will have its own
interfaces, class structure, and dependencies as a result.
Each letter in the word "SOLID" represents one of the following principles:
S - Single Responsibility
O - Open/Closed
L - Liskov Substitution
I - Interface Segregation
D - Dependency Inversion
3.3.2 The Single Responsibility Principle:
The single responsibility principle states that a class should have a single reason to change.
Many people have added their own understanding of this principle, which translates to “a class should only
perform a single task”.
3.3.3 The Open/Closed Principle:
The SOLID concept of "Open/Closed" asserts that software entities should be open for extension but closed for
change. This suggested hybrid design dynamic fusion is based on this principle.
3.3.4 The Liskov Substitution Principle:
The Liskov Substitution Principle states that if objects of type T are replaced with objects of type S, when S is a
subtype of T, in a program, the program’s characteristics should not change (e.g. correctness).
3.3.5 The Interface Segregation Principle:
This principle sounds so simple, yet is so powerful:
An object should only depend on interfaces it requires and should not be enforced to implement any method (or
property) it doesn’t require.
“Breaking down” interface described behaviors allows us to improve our codes readability, testability, and
maintainability.
3.3.6 The Dependency Inversion Principle:
The principle of Dependency inversion is described as follows:
A. Higher-level modules should not depend on low-level modules. Both should depend on abstractions.
B. Abstractions should not depend on details. Details should depend on abstractions.
Interesting, right?
Again, it seems rather intuitive, nowadays, as we got used to “connecting” our components using interfaces.
However, many beginner-level developers make this mistake again and again, as (apparently) our human mind
tends to think hierarchically.
The following “bad” example is not that uncommon:
By extracting the “contract” between each of the dependent entities, we’ve decoupled each entity from its
former dependencies. A contract is now being shared between each entity and its dependency.
3.4 SCHEMATIC DESIGN OF PROPOSED SYTEM
The figure 3 displays the schematic diagram of the microservices using dynamic object binding. The system
consist of components such as SPA, Web, Commands, Service layer, Command Services Bus, Workflow docs,
web services, business services, data stores, microservices. Each session is explained in detail below:
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
370
F
Fig 3: Schematic Diagram Microservices Using Dynamic Object Binding
i) COMMANDS
It is the secret secured code which is selected/discovered by the user depending on their application what should
they do actually.
ii) COMMAND SERVICES BUS
It consists of several commands which act as the communicating link between discover, web services and
business services.
iii) WEB SERVICES
This will provide the gateway for the production of the services according to the needs of the user in the web
layer.
iv) DISCOVERY SERVICES
These services will bring the end product to the user through advertising about the services provided by the
system
v) BUSINESS SERVICES
This service works as the gateway for the enterprises. It is similar to marketing of the end product.
vi) SINGLE PAGE APPLICATION (SPA)
SPA where the service are selected by the user according to their needs.
vii) MICROSERVICES
A microservice should be deployable on its own. Our software system can be installed in its entirety, although
this is not required. While the system is functioning, services (microservices) can be added (and withdrawn). If a
microservice has dependents, they should be deployed as well (e.g. database, 3rd-Party components). Although
the complexity of microservices is significant, it may be lowered by making the services transparent, i.e.
concealing the system's codes.
3.5 ALGORITHM OF PROPOSED SYSTEM
The propose system algorithm have four different phases. They are 1) Interface 2) Base Object 3) Molecular
framework 4) Mixing engine
i. INTERFACE CLASS
It is nothing but simply a role. In other words just identifying a way or creating route or making a role to do
work is known as interface or role.
ii. IMPLEMENTATION CLASS
It is nothing but explaining how to do that work or schematic workflow of the process is known as
implementation class.
In our proposed model the implementation class is not given to user instead we identify their user needs and
provide them the end product alone this is main unique feature of the system.
Actually the figure explains that the user decides what role he has to do? After that he will start implementing
those interfaces into end product. Then the user will approach the business services man where the business
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
371
services man study about the interfaces, understand the concept of it and decide to be sale/market the end
product. Then the molecular framework will provide the legal agreement between the user and business
services. The business services sale the product through micro services platform in the web.
iii. MOLECULAR FRAMEWORK
This is the art of the architecture. It is the legal agreement or tie up details or handshakes between user/client
and business services. Mostly in the existing system if any service is to be added newly then the entire system
should be shutdown or stop the web running time. So in order to overcome this proposed system use the
methodology of micro services molecular framework in which the system run continuously without any break
during addition of any new services. There is no need to close the entire system and restart or reboot the system
again. The new service will be added along with the run time of the system. Thus it helps to expand the system
without any shutdown or loss of old data. The algorithm of the proposed system is as follows:
Phase 1: Interface
The phase one is interface in order words it is defined as roles. To start with the services first we need to identify
the role of those particular services. This roles/ interface will associate with behaviours of the client needs which
in turn result in implementation process of the service.
Step 1: Create/Identify Interfaces / Roles
Step 2: Associate Behaviours to Interface
Step 3: Provide Implementation for Interfaces/Roles
Phase 2: Base Object
The phase two is base object. In this phase according to the user role, the lookup table is created for the base
object and that object is implemented
Step 1: Create/Lookup/Retrieve the Base Object
Step 2: Set Interface to Molecules Framework
Step 3: Pass the General object and the implementation object of the set Interface to Molecule Framework.
Step 4: Retrieve the fused object from molecular framework in return.
Step 5: Cast the Object with corresponding interface Invoke the method of the interface on the retrieved fused
object.
Phase 3: Molecule Framework
The phase three molecular framework, in which the interface from the base object lookup table are accepted
such that the first object will be mother object and other will be implementation object. So it will create a
newProxyInstance object. Thus the new object will be fused to mixing engine.
Step 1: Accepts the Interface/interfaces and set the interface/interfaces in a collection.
Step 2: In the getObject object its accepts an array objects - first object will be the mother/base object and other
objects will be implementation objects.
Step 3: Creates an object of Proxy class by calling 'newProxyInstance’ method.
Step 4: Passes the class loader of the base object, the interfaces class and the objects to be fused to the MIXING
Engine.
Step 5: In return the getObject method return a fused object.
Phase 4: Mixing Engine
The final phase is mixing engine which implements the invocation handler, accepts the objects and store in the
object array using reflection method
Step 1: Mixing engine implements Invocation Handler interface of Java
Step 2: Mixing engine accepts all the objects which need to be fused and store it in an object array.
Step 3: Overrides the invoke method of the invocation Handler.
Step 4: The invoke method gets called whenever any method is called on the fused object returned by the
molecular frameworks getobject method (note: molecule framework as already passed the objects to the
invocation handler in Mixing engine).
Step 5: The invoke method searches the method called in all the objects stored in the mixing engine, based on
the availability it invoked the method using reflection process
3.6 Software Specification
Tools : Eureka server
Framework : Spring boot
Communication Tools : Spring cloud
Language : Java
Architecture : Microservices
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
372
i. SPRING BOOT
Spring Boot makes it simple to develop a Spring application, whereas Spring Cloud gives you a collection of
tools to make communication between microservices go more smoothly.
ii. EUREKA SERVER
Eureka Server is a program that keeps track of all of the client-service apps. Each Micro service will register
with Eureka, and Eureka will be aware of all client applications operating on each port and IP address.
Discovery Server is another name for Eureka Server. Eureka server usage: Eureka is a Representational State
Transfer (REST)-based service that is largely used in the AWS cloud to locate services for load balancing and
middle-tier server failover.
4. Results and Discussion
This research work presents an evaluation of eight major problems in software development where the proposed
fusion based Agile iterative model is quite a flexible method which allows changes to be made in the project
development requirements even if the initial planning has been completed than in traditional acquisition
programs. Estimating costs in a proposed Agile environment requires a more iterative, integrated, and
collaborative approach than in existing waterfall model. Contrary to the myth that Agile is an undisciplined
approach that downplays cost aspects, cost estimation is a critical activity in programs that use Agile practices.
The proposed Agile development may lead to a net decrease in total life cycle costs, especially because the
largest area of cost decrease is in sustainment. The cost estimate for integration and testing must consider the
impact of the short, frequent, integrated real-time integration and testing characteristics of Agile developments,
and determine if the costs differ from those for a traditional waterfall approach. Integrating and testing large
batches of functionality, as in traditional waterfall approaches, is inherently more complex than performing
these tasks on small batches of functionality, and developing testing techniques and detecting errors during tests
are more difficult on larger batches of software. Frequent testing also allows for earlier detection of errors, when
they are easier and less costly to fix than fixing those same errors found in tests performed at the end of
development. An Agile release deploys new capabilities in short, frequent releases (typically every 6–12
months). The degree of change and level of complexity of each release may require further consideration of
deployment costs. The proposed Agile iterative development model depends on a high degree of automated
deployment usage to deliver short, frequent releases of software effectively. Table.1 illustrates analysis of cost
benefit based on effort of 100 days average between existing waterfall model and fusion based agile iterative
model. Agile methodology works exceptionally well with Time & Materials or non-fixed funding. It may
increase stress in fixed-price scenarios. The Agile team members are interchangeable, as a result, they work
faster. There is also no need for project managers because the projects are managed by the entire team.
Major problem in software improvement
Effort(100 days average)
Existing method
(waterfall model)
Fusion
method(Agile
iterative model)
Understanding Deliverables 20 20
Understanding Existing code 20 0
Developing New Code 30 30
Testing 3 3
Integration of new code with existing code 20 19
Integration Testing 5 4
Deployment 1 1
Go Live 1 1
NO.OF DAYS 100 78
Table 1: Cost Benefit Analysis
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
373
Cost Benefit Analysis
Fig 4: Graphical representation of cost benefit analysis between waterfall and Agile iterative model
Figure.4 illustrates total number of working days with the proposed agile fusion model based on understanding
fusion takes 78 days whereas total number of working days with the existing waterfall model takes 100 days.
4.1 Performance analysis
Our study environment will imitate a whole system, including a user interface, REST API, business logic, and
database. The many functions and services in this system will be explained in the sections that follow. In Scala
[16], the main key is created automatically using the UUID Java class [17]. After that, the data will be kept in
Cassandra [18], our system storage technology of choice. For this experiment, the following gear was used: 2x
Intel NUC5i7RYH with 16GB RAM, an Intel Core i7-5557U processor, and Ubuntu Server 16.04 as the host
operating system. JMeter was ran on a computer connected to the same local network as the other devices,
which was running Windows 10 Pro with an Intel Core i54690K CPU and 16GB RAM.
4.2 Performance of CPU Usage
The CPU usage of the proposed hybrid microservice is less while compared with monolithic and Eureka-Zuul
microservice. Therefore, the memory usage will be less in the case of proposed agile microservice are illustrated
in table 2 and figure 5
Service Application Type Average CPU usage (%)
Monolithic (PostgreSQL) 53.2
Eureka-Zuul_Microservice 45.7
Proposed Agile_Microservice 42.1
Table 2: Average CPU Usage of various service applications
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
374
Fig 5: Performance comparison of Average CPU Usage
4.3 Throughput performance
The request per second of the various users from 1, 10, 20, 40, 50 are considered for this experimental research.
The throughput is evaluated in term of request done successfully per second whereas the proposed agile
microservice is 27 for 1 user case that is higher while compared with other monolithic and Eureka-Zuul
microservice as 20 and 24 respectively. Similarly, the successful throughputs are high for proposed agile
microservice compared with existing monolithic and microservice applications in the case of 10, 20, 40 and 50
are shown in table.3 and figure 6.
No of Users Monolithic
_PostgreSQL
Eureka-
Zuul_Microservice
Proposed
Agile_Microservice
1 20 24 27
10 36 39 41
20 45 47 50
40 60 65 67
50 62 66 68
Table 3: performance Comparison of Successful Throughput
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
375
Fig 6: Performance comparison of successful throughput
4.4 Performance of average error rate
The average error occurs for the various users from 1, 10, 50, 100, 200 are considered for this experimental
research. The average error rate is evaluated in term of error occurred per user whereas the proposed agile
microservice is 1% for 1 user case that is less while compared with other monolithic as 2% but in the case of
Eureka-Zuul microservice also obtained with 1%. Similarly, the average error rates are less in proposed agile
microservice compared with existing monolithic and microservice applications in the case of 10, 50, 100 and
200 are shown in table 4 and figure 7.
No of Users Monolithic
_PostgreSQL
Eureka-
Zuul_Microservice
Proposed
Agile_Microservice
1 2 1 1
10 10 8 7
50 13 12 10
100 15 13 12
200 18 15 13
Table 4: Average error rate of various service applications
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
376
Fig 7: Performance comparison of average error rate
5. Conclusion
The proposed hybrid approach allows for the creation of new microservices in a very simple way, which are
then automatically integrated into the built system. The innovative elements of this architecture are: it can scale
very easily, each new client being assigned a task by the server according to the strategy pursued. The server
handles the dynamic distribution of tasks between clients, providing a dynamic fusion to ensure that there is no
system restart as per the principles of Agile methodology. The SOLID software design principles are the code
abstractions which were used to implement our objects whether it’s classed for an object template or functions
in which had written a specific behavior of a fusion of objects without the system restart. This research will help
especially mission critical services and applications which guarantees no downtime and 24/7 support on all 365
days. If we can achieve real dynamic binding, then there won’t be any service downtime nor maintenance down
time, this way we can achieve smiles on millions of faces throughout the globe.
The total number of working days for the proposed agile fusion model based on understanding fusion takes 78
days whereas total number of working days for the existing waterfall model takes 100 days. The proposed
fusion based Agile iterative model is quite a flexible, faster, iterative method which allows changes to be made
in the project development requirements even if the initial planning has been completed than waterfall model.
The utilization of CPU and error rate in the proposed hybrid microservice is less compared to the existing
microservices. The throughput is evaluated in term of request done successfully per second whereas the
proposed agile microservice is 27 for 1 user case that is higher while compared with other monolithic and
Eureka-Zuul microservice. This research also focuses on how re-usable components can be integrated, there by
bringing a new concept called “Programming Code Inventory”, which in turn can bring smiles on every face in
the software Industry.
References
[1] Abdul Rasheedh and Dr. S. Saradha, “An Optimal Micro-Services Architecture for Runtime Dynamic Binding in Web Services Using
Hybrid Heuristic Algorithms”, International Journal of Advanced Science and Technology, Vol. 29, No. 8s, 2020, pp. 3550-3564.
[2] Mena, M., Corral, A., Iribarne, L. and Criado, J., “A progressive web application based on microservices combining geospatial data
and IoT”, IEEE access, Vol-7, pp-104577-104590.
[3] Jin, Y., Guo,W and Zhang, Y., “A time- aware dynamic service quality prediction approach for services”, Tsinghua science and
technology, 2019, Vol-25, issues-2,pp-227-238.
[4] Yang, J., Lee, Y and Chang, K.H., “Evaluations of JaguarCode: A web-based object-oriented programming environment with static
and dynamic visualization”, Journal of system and software, 2018, vol-145, pp-147-163.
[5] Giona Granchelli, Mario Cardarelli and Paolo Di Francesco, “MicroART: A Software Architecture Recovery Tool for Maintaining
Microservice-based Systems”, IEEE, 2017.
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
377
[6] Ayman Noor, Devki Nandan Jha, Karan Mitra, Prem Prakash Jayaraman, Arthur Souza and Rajiv Ranjan, “A framework for
monitoring microservice-oriented cloud applications in heterogeneous virtualization environments”, IEEE, 2019.
[7] Wilhelm Hasselbring and Guido Steinacker, “Microservice Architectures for Scalability, Agility and Reliability in E-Commerce”,
IEEE, 2017.
[8] Siying Guo, Chao Xu, Shizhan Chen, Xiao Xue, Zhiyong Feng and Shiping Chen, “Crossover Service Fusion Approach Based on
Microservice Architecture”, 2019, IEEE.
[9] Holger Knoche, “Sustaining runtime performance while incrementally modernizing transactional monolithic software towards
microservices”, In Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering, ICPE ’16, pages
121–124, New York, NY, USA, 2016. ACM.
[10] A. Balalaie, A. Heydarnoori, and P. Jamshidi, “Microservices architecture enables devops: Migration to a cloud-native architecture”,
May 2016.
[11] Strigini, L, “Fault tolerance and resilience: meanings, measures and assessment”, In: Wolter, K., Avritzer, A., Vieira, M. and van
Moorsel, A. (Eds.), Resilience Assessment and Evaluation of Computing Systems,2012, Berlin, Germany: Springer.
[12] Mihai Baboi, Adrian Iftene and Daniela Gîfu, “ Dynamic Microservices to Create Scalable and Fault Tolerance Architecture”,
International Conference on Knowledge-Based and Intelligent Information & Engineering Systems, 2019, Vol-159, pp-1035-1044.
[13] Xia, C., Zhang, Y., Wang, L, Coleman, S., and Liu, Y, “Microservice-based cloud robotics system for intelligent space”, In: Robotics
and Autonomous Systems 110, 2018, DOI: 10.1016/j.robot.2018.10.001.
[14] Bogner, J., Fritzsch, J., Wagner, S., and Zimmermann, A, “Microservices in Industry: Insights into Technologies, Characteristics, and
Software Quality”. At the 2019 IEEE International Conference on Software Architecture Workshops (ICSAW) At: Hamburg,
Germany.
[15] Akentev, E., Tchitchigin, A., Safina, L., and Mzzara, M, “Verified type checker for Jolie programming language”,2017, https://
arXiv.org/pdf/1703.05186.pdf.
[16] Černý, T., Donahoo, M.J., and Trnka, M, “Contextual understanding of microservice architecture: current and future directions”. ACM
SIGAPP Applied Computing Review, 2018, Vol-17, issues-4, pp- 29-45, DOI: 10.1145/3183628.3183631.
[17] The Scala Programming Language. https://www.scala-lang.org/. Accessed: 2017-05-19.
[18] UUID (Java Platform SE 8). https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html. Accessed: 2017-05-19.
[19] Apache Cassandra. http://cassandra.apache.org/. Accessed: 2017-05-19.
Mr. J.Abdul Rasheedh MCA in 2004 at University of Madras, Chennai and at
present working as an Assistant Professor in the P.G.Department of Computer
Science, The New College, Chennai. He is currently pursuing PhD in Computer
Science at VISTAS, Pallavaram. His Area of interest and research includes Cloud
Computing and Microservices. He has been actively taken part and presented and
published various papers in International and National Conferences in his research
area.
SCOPUS ID: https://www.scopus.com/authid/detail.uri?authorId=57220899979
ORCID ID: https://orcid.org/0000-0003-3460-290X
VIDWAN ID: https://vidwan.inflibnet.ac.in/profile/253606
Dr.S.Saradha, working as a Assistant Professor in the Department of Computer
Science, Vels Institute of Science, Technology and Advanced studies (VISTAS),
Pallavaram, Chennai. She has more than 10 years of experience in Educational
Institute. Her area of research includes Data Mining, Artificial Neural Networks,
Machine Learning, Big Data Analytics. She has published more than 17 Research
Papers in National and International journals. She is interested in writing textbooks
for the students to make them understand any concept in an easy way. She is a
recognised supervisor, guiding M.Phil and PhD scholars.
e-ISSN : 0976-5166
p-ISSN : 2231-3850
Mr. J. Abdul Rasheedh et al. / Indian Journal of Computer Science and Engineering (IJCSE)
DOI : 10.21817/indjcse/2022/v13i2/221302014
Vol. 13 No. 2 Mar-Apr 2022
378
... Scalability is the capability of a system to handle increased workloads by adding resources. Horizontal scaling (adding more instances) and vertical scaling (upgrading existing resources) are widely used strategies in scalable data pipelines [9]. ...
... o Resilience by Design: Microservices use techniques like redundancy and failover to localize and handle faults effectively, making the overall system more resilient [9]. ...
... For example, a bottleneck in one microservice could lead to downstream latency and processing delays [9]. ...
Article
Full-text available
In the era of big data and distributed computing, fault tolerance has become indispensable for building reliable and resilient data pipelines. These pipelines are crucial for processing, analyzing, and extracting insights from large datasets but are prone to failures caused by resource constraints, cascading errors, and inconsistencies in distributed systems. This paper explores fault tolerance in modern data engineering, focusing on the transition from monolithic to microservices-based architectures. By Fault Tolerance in Modern Data Engineering: Core Principles and Design Patterns for Building Reliable and Resilient Data Pipeline Architectures https://iaeme.com/Home/journal/IJCET 1812 editor@iaeme.com leveraging the modularity of microservices, organizations can enhance fault isolation, scalability, and recovery. The study reviews prominent fault-tolerant frameworks such as Apache Kafka, Flink, and Spark, evaluating their recovery mechanisms and highlighting fault-tolerant design patterns like circuit breakers, retries, and bulkhead isolation. Additionally, it examines real-world implementations from industry leaders such as Netflix and Uber. Emerging trends, including serverless architectures, AI-driven fault detection, and chaos engineering, are discussed alongside challenges such as inter-service communication failures and resource overheads. Concluding with a taxonomy of fault-tolerant strategies and future research directions, this paper serves as a comprehensive guide for designing robust and efficient data pipelines.
... Scalability is the capability of a system to handle increased workloads by adding resources. Horizontal scaling (adding more instances) and vertical scaling (upgrading existing resources) are widely used strategies in scalable data pipelines [9]. ...
... o Resilience by Design: Microservices use techniques like redundancy and failover to localize and handle faults effectively, making the overall system more resilient [9]. ...
... For example, a bottleneck in one microservice could lead to downstream latency and processing delays [9]. ...
Article
Full-text available
In the era of big data and distributed computing, fault tolerance has become indispensable for building reliable and resilient data pipelines. These pipelines are crucial for processing, analyzing, and extracting insights from large datasets but are prone to failures caused by resource constraints, cascading errors, and inconsistencies in distributed systems. This paper explores fault tolerance in modern data engineering, focusing on the transition from monolithic to microservices-based architectures. By Fault Tolerance in Modern Data Engineering: Core Principles and Design Patterns for Building Reliable and Resilient Data Pipeline Architectures https://iaeme.com/Home/journal/IJCET 1812 editor@iaeme.com leveraging the modularity of microservices, organizations can enhance fault isolation, scalability, and recovery. The study reviews prominent fault-tolerant frameworks such as Apache Kafka, Flink, and Spark, evaluating their recovery mechanisms and highlighting fault-tolerant design patterns like circuit breakers, retries, and bulkhead isolation. Additionally, it examines real-world implementations from industry leaders such as Netflix and Uber. Emerging trends, including serverless architectures, AI-driven fault detection, and chaos engineering, are discussed alongside challenges such as inter-service communication failures and resource overheads. Concluding with a taxonomy of fault-tolerant strategies and future research directions, this paper serves as a comprehensive guide for designing robust and efficient data pipelines.
... Scalability is the capability of a system to handle increased workloads by adding resources. Horizontal scaling (adding more instances) and vertical scaling (upgrading existing resources) are widely used strategies in scalable data pipelines [9]. ...
... o Resilience by Design: Microservices use techniques like redundancy and failover to localize and handle faults effectively, making the overall system more resilient [9]. ...
... For example, a bottleneck in one microservice could lead to downstream latency and processing delays [9]. ...
Article
Full-text available
In the era of big data and distributed computing, fault tolerance has become indispensable for building reliable and resilient data pipelines. These pipelines are crucial for processing, analyzing, and extracting insights from large datasets but are prone to failures caused by resource constraints, cascading errors, and inconsistencies in distributed systems. This paper explores fault tolerance in modern data engineering, focusing on the transition from monolithic to microservices-based architectures. By Fault Tolerance in Modern Data Engineering: Core Principles and Design Patterns for Building Reliable and Resilient Data Pipeline Architectures https://iaeme.com/Home/journal/IJCET 1812 editor@iaeme.com leveraging the modularity of microservices, organizations can enhance fault isolation, scalability, and recovery. The study reviews prominent fault-tolerant frameworks such as Apache Kafka, Flink, and Spark, evaluating their recovery mechanisms and highlighting fault-tolerant design patterns like circuit breakers, retries, and bulkhead isolation. Additionally, it examines real-world implementations from industry leaders such as Netflix and Uber. Emerging trends, including serverless architectures, AI-driven fault detection, and chaos engineering, are discussed alongside challenges such as inter-service communication failures and resource overheads. Concluding with a taxonomy of fault-tolerant strategies and future research directions, this paper serves as a comprehensive guide for designing robust and efficient data pipelines.
... Organizations may start by migrating specific components or functionalities to microservices while maintaining the rest of the application in its monolithic form. This approach is often referred to as the Strangler Fig pattern (Rasheedh & Saradha, 2022). The shift to microservices is not without its challenges. ...
... This approach can simplify deployment and scaling while reducing operational overhead. In advanced microservices architectures, the API Gateway can be integrated with a service mesh (e.g., Istio or Linkerd) to provide more granular control over inter-service communication, including traffic management, security, and observability (Rasheedh & Saradha, 2022). ...
... The Circuit Breaker pattern is a critical design pattern in microservices architecture that helps prevent cascading failures and improves fault tolerance. The pattern works by wrapping calls to a remote service or resource with a circuit breaker, which monitors the success or failure of the calls (Rasheedh & Saradha, 2022). If the failure rate exceeds a predefined threshold, the circuit breaker "trips," temporarily blocking further calls to the service. ...
Article
Full-text available
Microservices architecture has emerged as a pivotal approach for designing scalable and maintainable cloud-native applications. Unlike traditional monolithic architectures, microservices decompose applications into small, independently deployable services that communicate through well-defined APIs. This architectural shift enhances modularity, allowing for improved scalability, resilience, and flexibility. This paper explores the core concepts of microservices, including service decomposition, inter-service communication, and data management. It delves into key design patterns such as the API Gateway, Circuit Breaker, Service Discovery, and Strangler Fig patterns, illustrating how these patterns address common challenges in microservices architecture. The discussion emphasizes the importance of these patterns in managing service interactions, ensuring fault tolerance, and facilitating gradual migration from legacy systems. Scalability is a major focus, with an examination of horizontal scaling techniques, load balancing strategies, and elasticity in cloud environments. The paper highlights best practices for scaling microservices, including auto-scaling policies and integration with cloud platforms like AWS, Azure, and GCP. Additionally, the paper addresses challenges such as complexity management, security considerations, and testing strategies. Real-world case studies provide insights into successful implementations and lessons learned. Finally, the paper considers emerging trends and future directions in microservices architecture, emphasizing its role in advancing modern application development. This exploration offers a comprehensive understanding of how microservices architecture can be effectively employed in cloud-native applications to achieve scalability and resilience. Keywords: Microservices, Architecture, Cloud-Native Applications, Design Patterns, Scalability.
... Likewise, the architecture must ensure that the software solution is not tightly coupled. In this regard, the hexagonal architecture ( Figure 1) allows the implementation of an application structure that is easily scalable and where components are not tightly coupled to the system [12]. It promotes separation of the application by encapsulating the logic into different layers or regions defined with their responsibility, allowing for higher level isolation, stability, and control over the specific business logic. ...
... When analyzing the project's needs, a modular solution was proposed under a agonal architecture [12], shown in Figure 1. The application's core contains the bus logic implemented by different modules. ...
... When analyzing the project's needs, a modular solution was proposed under a hexagonal architecture [12], shown in Figure 1. The application's core contains the business logic implemented by different modules. ...
Article
Full-text available
There is a need to integrate advancements in biomedical, information, and communication technologies with care processes within the framework of the inpatient safety program to support effective risk management of adverse events occurring in the hospital environment and to improve inpatient safety. In this respect, this work presents the development of a software platform using the Scrum methodology and the integrated technology of the Internet of Things for monitoring and managing inpatient safety. A modular solution is developed under a hexagonal architecture, using PHP as the backend language through the Laravel framework. A MySQL database was used for the data layer, and Vue.js was used for the user interface. This work implemented an RFID-based nurse call system using Internet of Things (IoT) concepts. The system enables nurses to respond to each inpatient within a given time limit and without the inpatient or a family member having to approach the nursing station. The system also provides reports and indicators that help evaluate the quality of inpatient care and helps to take measures to improve inpatient safety during care. In addition, diet management is integrated to reduce the occurrence of adverse events. A LoRa and Wi-Fi-based IoT network was implemented using a LoRa transceiver and the ESP32 MCU, chosen for its low power consumption, low cost, and wide availability. Bidirectional communication between hardware and software is handled through an MQTT Broker. The system integrates temperature and humidity sensors and smoke sensors, among others.
... In financial use cases, real-time monitoring extends beyond infrastructure health to transaction integrity and fraud detection. AI models monitor transaction logs for patterns of fraudulent behavior, which can initiate automated reactions in the form of transaction flagging or multi-factor authentication enforcement (Rasheedh & S, 2022). With the addition of real-time monitoring and adaptive alerting, financial microservices architectures are strengthened against performance disruptions and cybersecurity attacks. ...
Article
Full-text available
The increasing reliance on microservices architecture (MSA) in financial systems has led to improved scalability, modularity, and fault tolerance. However, due to the distributed nature of microservices, cascading failures pose a significant risk to financial applications, leading to service disruptions and financial losses. This research presents a resilient microservices architecture that integrates AI-driven observability tools to predict and mitigate cascading failures in financial platforms such as Guidewire Cloud. The study explores key principles of microservices design, AI-based observability mechanisms, fault mitigation strategies, and compliance requirements. By embedding AI-powered monitoring, anomaly detection, and automated incident response, financial institutions can achieve enhanced system resilience, ensuring high availability, security, and regulatory compliance.
... Among its applications, [3] microservices help the acceptance of changes and establish an overview of virtual power plants to manage distributed energy resources. Workflows for developing more flexible microservices using an iterative approach are also emerging due to their importance [4]. This research is based on a set of investigations related to the architecture of microservices, containers, the cloud, and monolithic architecture, seeking to present the benefits of using solution-oriented microservices over monolithic architecture. ...
... Anti-patterns, also known as bad smells, are common design flaws that can be found across microservices. Understanding and preventing anti-patterns in microservices is a necessity of any company that plans on utilizing microservices [11]. This task is not as easy as it sounds, however, since certain anti-patterns occur at runtime [12] and require dynamic analysis to be discovered. ...
Article
Full-text available
In the world of microservices, companies must be able to create systems that operate in the most efficient way. To achieve this, anti-patterns must be avoided because of their detriment to the quality of the system. Some of the most troubling anti-patterns are hard to detect because of their appearance at runtime. Effectively removing anti-patterns from a system requires dynamic analysis because of the large size of microservice-based systems. While the detection of anti-patterns is helpful, being able to visualize them offers a great benefit to companies working with microservices. Seeing how the overall system is flowing and recognizing the existence of anti-patterns can help improve microservice-based systems. In this paper, a systematic mapping study was performed to find the current state of research on visualizing anti-patterns in microservices from the dynamic perspective. Several hundred papers were examined and a total of 31 were found to be relevant to the research topic. The papers, when analyzed, revealed that there are mechanisms to detect anti-patterns at runtime in microservices, and there are also mechanisms for visualizing the architecture of a microservice-based system. This study’s findings could help to identify and remove anti-patterns that occur during runtime in microservices, as well as a means of visualizing these anti-patterns.
Article
Full-text available
Microservices are software development procedure a variation of the service-oriented architecture (SOA) auxiliary style that organizes an application as an assortment of approximately coupled administrations. In SOA, having numerous highlights, for example, adaptability and money saving advantages, interoperability, programming reuse. Also, the SOA is empowering and supports the official of administrations at runtime as powerful authoritative. Testing this dynamic restricting is one of the most testing assignments in SOA. Nonetheless, powerful authoritative of administrations raises a few extra difficulties, for example, overseeing multifaceted nature in administration structures utilizing dynamic official and non-deterministic conduct in administration choice and absence of discernibleness of the source code, absence of control of the administrations, the expense of testing. To overcome these problems, we propose optimal micro-service architecture for runtime dynamic binding in web services using hybrid heuristic algorithms (OMSA-DB). The main objective of proposed model is binding and scheduling Web services based on an assessment of this competition for users on the move. The first contribution is to introduce the dynamic whale optimization algorithm for new composition framework, which allows the process designers to design processes, based on business and process constraints. Second, we illustrate the derived micro-service architecture that exists in virtual space, to realize agile automation that can provide agility and flexibility to the optimal automation. Furthermore, we propose a queuing deep neural network (QDNN) is used to assign and periodically update service selection probabilities according to monitored average service response time.
Article
Full-text available
Modern web applications combine information from different sources, such as web services, static resources or real-time sensors data. The Internet of Things (IoT) is increasingly being used in these applications to show useful, updated information. However, the information related to IoT devices is commonly displayed on dashboards for monitoring and control purposes and is not often combined with other types of data. In addition, it is important to base information on location displayed on the user context. In this paper, we propose the use of a software architecture based on microservices and micro frontends for assisting the user in friendly, seamless acquisition of geospatial data and information concerning the Internet of Things. Our solution orchestrates those microservices and a component-based ProgressiveWeb Application (PWA). The main microservice handles the creation of component configurations using a selection graph consisting of component tags and other descriptive properties, and also contextual information about the application user. To demonstrate how the proposed architecture works, we present a scenario in which the web application is dynamically built up by combining the geospatial information, the data acquired from IoT sensors and other complementary data.
Article
Full-text available
Current industry trends in enterprise architectures indicate movement from Service-Oriented Architecture (SOA) to Microservices. By understanding the key differences between these two approaches and their features, we can design a more effective Microservice architecture by avoiding SOA pitfalls. To do this, we must know why this shift is happening and how key SOA functionality is addressed by key features of the Microservice-based system. Unfortunately, Microservices do not address all SOA shortcomings. In addition, Microservices introduce new challenges. This work provides a detailed analysis of the differences between these two architectures and their features. Next, we describe both research and industry perspectives on the strengths and weaknesses of both architectural directions. Finally, we perform a systematic mapping study related to Microservice research, identifying interest and challenges in multiple categories from a range of recent research.
Article
Dynamic Quality of Service (QoS) prediction for services is currently a hot topic and a challenge for research in the fields of service recommendation and composition. Our paper addresses the problem with a Time-aWare service Quality Prediction method (named TWQP), a two-phase approach with one phase based on historical time slices and one on the current time slice. In the first phase, if the user had invoked the service in a previous time slice, the QoS value for the user calling the service on the next time slice is predicted on the basis of the historical QoS data; if the user had not invoked the service in a previous time slice, then the Covering Algorithm (CA) is applied to predict the missing values. In the second phase, we predict the missing values for the current time slice according to the results of the previous phase. A large number of experiments on a real-world dataset, WS-Dream, show that, when compared with the classical QoS prediction algorithms, our proposed method greatly improves the prediction accuracy.
Article
Cloud robotics (CR) is a red-hot branch of the burgeoning field of service robots that is centered on the benefits of integrating infrastructure and shared services via a cloud computing environment. Although it extends the computation power and information sharing capabilities of the network robots, the development and operations (DevOps) of the CR system are currently limited for enterprise-scale projects due to the heavy framework. In fact, current developed CR systems are typical distributed monomer architectures followed by a “top-down” design. As the scale of the applications gets larger, the operation and maintenance of CR systems will become a very difficult task. In this paper, a new architecture for a microservice-based cloud robotics system in intelligent space is proposed to solve the present dilemma. To enable this, we design a service management architecture based on a microservice to provide a highly efficient and flexible development/deployment mechanism. The container technology based on the docker engine is then used to functionally decompose the application into a set of collaborating services to ensure the software design methods, based on microservice, easy for implementation. Finally, a real experiment on SLAM (Simulation localization and mapping) in an intelligent space is implemented to verify the proposed architecture. Compared with traditional monomer architectures, the results show that the proposed framework is more productive, flexible and cost effective.
Conference Paper
Microservices are a promising target architecture for the modernization of monolithic software. However, breaking up a monolith into services can have a severe impact on performance, especially transactions. Therefore, careful planning of such modernizations with respect to performance is required. This is particularly true for incremental modernizations, which release partially modernized states of the application into production. In this paper, we present a simulation-based approach for sustaining runtime performance during incremental modernizations towards Microservices.