Microservice Architecture: A Comprehensive Report (MIS603)

Verified

Added on  2022/08/18

|13
|3252
|14
Report
AI Summary
This report provides a comprehensive overview of microservice architecture, starting with a survey of the history of computing, from early counting systems to the development of modern computers and software. It traces the evolution of software development, highlighting the symbiotic relationship between computing power and software capability. The report then examines the present state of computing, including the continued relevance of client-server architecture and the increasing complexity of software systems. It defines software architecture and its importance for contemporary enterprises, discussing different types of software architecture like client-server, monolithic, and microservices. The core of the report focuses on microservice architecture, explaining its characteristics, advantages, and challenges. It emphasizes its role in agile development and the use of protocols like REST for communication between services, concluding with an overview of its significance in modern software development.
tabler-icon-diamond-filled.svg

Contribute Materials

Your contribution can guide someone’s learning journey. Share your documents today.
Document Page
Running head: MICROSERVICE ARCHITECTURE
Microservice Architecture
Name of the Student
Name of the University
Author Note
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
1MICROSERVICE ARCHITECTURE
Table of Contents
Introduction:....................................................................................................................................2
Survey of History of Computing:....................................................................................................2
Present System of Computing:........................................................................................................4
Software Architecture:.....................................................................................................................6
Importance of Software Architecture to Contemporary Enterprise:............................................7
Microservice Architecture:..........................................................................................................8
Conclusion:......................................................................................................................................8
References:....................................................................................................................................10
Document Page
2MICROSERVICE ARCHITECTURE
Introduction:
The microservices are considered as some specific software development technique
which is a variant of service-oriented architecture structural style (Alshuqayran, Ali & Evans,
2016). There is no particular type of definition of the microservices. The description of the
microservices has been evolved with time. There are some specific characteristics which are
associated with the microservice architecture. The services which execute within the
microservice architecture are the processes which communicate over the network by using the
HTTP protocol (Daud & Suhaili, 2016). Also, these services in the microservice architecture can
be deployed independently. The microservice architecture is mainly adopted for serverless
computing, cloud-native applications, and for the lightweight container deployment.
In this aspect, this paper will provide brief information regarding continuing the use of
microservices. To provide brief information regarding the microservice, a survey will be done
regarding the history of computing. In this aspect, it will be explained how the present
information system is different from the various generation of technology from a fundamental
perspective. A brief explanation of the software architecture will also be provided in this context.
Survey of History of Computing:
Computing is one of the important aspects of the current generations, but it has a brief
history. In the early times, the concept of computing was not very much broad. In that time,
computing generally referred to the counting process. From this perspective, abacuses were the
first computing systems which were used in the 300 B.C, in Babylon (Feldmann et al., 2017)and
that is presently known as Iraq. From there, the first gear-driven counting tool was the
calculating clock of Schickard that was invented in 1623. After some few years calculator was
Document Page
3MICROSERVICE ARCHITECTURE
invented and it was one of the advanced computing devices of that time. A calculator was able to
subtract, add, divide and multiply, and it is still used in the present time.
Following that, the major invention was the binary numbering system which created the
new chapter of electronic computers. IBM used this binary numbering system for making it
available for the more widespread use. During World War II, IBM developed a mechanical
computer system which was the first modern computer (Den Hartigh et al., 2016), and from this
point, a new era of computing is started.
Hewlett-Packard, which was another important organisation that developed its first
computer system in 1966. This system was acting as a controller for different types of
instruments in 1966. The first personal computer systems were rolled out in 1975, and it was the
MITS Altair computer (O’Regan, 2018). After that, the modern era of computer systems was
started.
Software development is another important perspective of computing. History of
software development started in the mid 19th century. The first-ever computer program was
written by the Augusta Ada King, Countess of Lovelace who worked on the analytical engine.
This program can be seen from the basis of modern-day calculators (Kissane, 2017).
Imaginations were one of the important factors that time which helped in the development of
computing architecture and the software system which will be running on the top of it. While the
computers and the software systems of the 19th century are compared with today’s computer
system, it appears quite primitive. With time both of the hardware systems and the capability of
the software has been evolved, which truly defines the symbolic relationship among these two.
Over time as the capability of the software systems has been increased, it demanded more
resources and computing power. The upgraded hardware and the architecture provided these
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
4MICROSERVICE ARCHITECTURE
resources to the software systems. The increased amount of computing power was required for
increased software capability, which has been successfully achieved. There is a virtuous cycle
between both software capability and computing power (Jarvenpaa & Mao, 2017). This cycle
defines that as the computing power increases it open the chances for the better capability of the
software.
In 1960s adoption of the computer system is started in large business scales. In that time,
the computers were mainly used for transaction processing and for preparing reports from that
transaction. At that time, most of the software development procedure followed the waterfall
model. The waterfall model was quite popular at that time as it suited most of the requirements
(Kramer, 2018). Through the use of waterfall design, the modular design of the software system
was achieved. Also, at that time, the client-server architecture was developed. In this
architecture, there was a server which was responsible for serving all the clients. This model is
quite simple. Here, first, the client makes a request to the server and server provide resources to
the client as per request. In this architecture, the client does not need to perform any
computational work; instead, the server does the job for clients.
Present System of Computing:
Previously a brief discussion has been made regarding the computing history and
regarding software development. The previous discussion has found that there is a virtuous cycle
between computing power and the capability of the software. Considering the history of
computing in this part, a brief focus will be given on the present computing procedure. There are
two important concepts from the past which remained the same for the present computing. The
virtuous cycle is still there between software capability and computing power (Mammela &
Anttonen, 2017). Another concept is that the software should be organised as per the
Document Page
5MICROSERVICE ARCHITECTURE
architecture, that is considered well. Apart from that, the client-server architecture is still used in
the current computing systems, but there are several alternatives for the client-server
architecture. The modern computing started from the minicomputers which replaced the
mainframe computers for the organisations. The minicomputers progressed towards desktop
computer systems, and in further it converted into laptops. In the early 2000s, the mobile phone
was introduced to the market and further the tablet computers were also developed.
Progression of the computer systems was mainly focused into two areas which were cost
reduction and miniaturisation. So, as the new generation computing systems were introduced,
they were lighter and cheaper while they provided more computing power. This was not only
about computing power, but the software capability has also been progressed throughout time.
For example, in early days, people used SMS services as messaging methods while in the present
time, much more rich text messaging application services are used (Vijayakumar, Manikandan &
Parthasarathy, 2018). Thus, it completely justifies the virtuous cycle that has been identified
previously. As a result, software systems have become more complex in nature. With the
complexity, the programming languages have also been evolved, which helped the programmer
to focus more on the functions rather than underlying machine management.
It has been also assessed that a software system has different types of components. The
main two components of the software systems are the data components and the functional
components (Chhabra, 2017). In the present time, there are several components that need to be
fulfilled by a software system to be perfect in the market. Thus from the above-discussed
perspective, the present generation of computing is fundamentally different from the previous
generation of computing systems. Still, there are some important areas which are same as the
previous generation of computing systems.
Document Page
6MICROSERVICE ARCHITECTURE
Software Architecture:
The software architecture defines that it is a fundamental structure of the software
systems and discipline for development of the software systems. This fundamental structure of
the software architecture includes elements of the software, relations among them, and it also
includes both relations and the elements. The architecture of the software can be considered as a
metaphor. The architecture of the software can be considered as a blueprint for the software
development project (Sommerville et al., 2019). It will lay out the required tasks that must be
performed by the design teams.
The framework of a software architecture captures practices, principles and the
conventions for the architectural description established within a particular application domain
and stakeholder communities (Di Nitto et al., 2016). The software framework is considered as an
abstraction. In this abstraction, the software is capable of providing generic functionality that can
be changed selectively. Through the software framework, a standard way can be achieved for
building and deploying applications.
With time, the approach of software development has taken an engineering and rigid
approach to construction. However, this created several problems where the software system
failed to meet the actual requirement. For these, better ways for software development has been
identified through the IS discipline, which was the agile development methodology
(Abrahamsson et al., 2017). There is an important relationship among the component-based
software architecture and the agile principle. The development team of agile is focused on
peoples rather than focusing on the software development process. The main relationship
between agile and component-based architecture is that there will be a number of teams which
will be dedicated to software development.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
7MICROSERVICE ARCHITECTURE
Importance of Software Architecture to Contemporary Enterprise:
It has been assessed that the software architecture is one of the important concepts for the
contemporary enterprise. The software architecture is important as it promotes software reuse
and helps to ensure the efficiency in both the perspective of development and execution. There is
mainly six types of major software architecture which are important for the organisations. These
software architectures are the client-server, monolithic, service-oriented architecture, layering
and stack, software as a service and microservice architecture. There are mainly three main
important areas due to which the software architecture is very much important. Firstly, the
software architecture act as a basis of communication which is important for contemporary
enterprises (Wolff, 2016). In this aspect, it can be considered as a plan of the system, and it is
important for understanding the communication among the stakeholders. The software
architecture is also crucial as it helps to take the earliest decisions. For the software development
project, making proper and early decisions is important. Proper software architecture can help to
make the decisions as early as possible, which carries huge importance on the rest of the project.
Transferability of the model is another important aspect that is provided by the software
architecture. In this aspect, software architecture defines the software model and how it will be
functioning. By having the model, it can be reused for other software (Capilla et al., 2016). The
codes used in this case can be also be reused. In an over perspective, the software architecture
will be defining the problems that can be encountered at the time of implementation. It also helps
the software development team to make effective decisions for the software development
process. For this reason software, architecture is important to contemporary organisations.
Document Page
8MICROSERVICE ARCHITECTURE
Microservice Architecture:
The microservice architecture is one of the important architecture that is used for
software development purposes. The microservice architecture is a variant of on the SOA. This is
due to the reason that it structures the software system as a collection of services (Nadareishvili
et al., 2016). This services can be considered as loosely coupled modules which provide the
advantage of reuse and provides parallel development. Also, the applications developed on the
microservice architecture are easy to test and enables an update to the service to be deployed by
their own. One of the main advantages that are provided by the microservice architecture is that
it lends itself towards agile development, which includes continuous deployment and releases.
For communication among the services, protocols are facilitated. REST protocol is one of the
important protocol that is used in the microservice architecture (Combs et al., 2019). The
microservice architecture is considered as one of the best ways for software development, but
there are several issues with this architecture. The first issue with the microservice architecture is
the information barrier. The information barrier occurs due to the use of a reverse proxy. The
cost of latency is another issue with the microservice architecture. Lastly, there is complexity
with the development activities that is another issue with the microservice architecture.
Conclusion:
From the above discussion, it can be concluded that software architecture is one of the
important criteria for the software development process. Regarding software development, this
paper has mainly focused on microservices architecture. In this discussion, a survey has been
done regarding the history of computing, and it is thoroughly explained how the present
information systems are different compared with the past computing systems. In this discussion,
several types of software architecture have been identified. In this case, there was a total of six
Document Page
9MICROSERVICE ARCHITECTURE
important software architecture which includes the monolithic architecture, layering and stack
architecture, software as a service architecture, client-server architecture, service-oriented
architecture and the microservices architecture. This report was mainly focused on microservices
architecture. In this discussion, it has been determined that microservices architecture is a variant
of on the SOA, and due to this, it can be described as a collection of services. Also, it is assessed
that the REST protocol is an important protocol of microservices architecture. Also, various
other discussion has been also made regarding microservices architecture.
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
10MICROSERVICE ARCHITECTURE
References:
Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2017). Agile software development
methods: Review and analysis. arXiv preprint arXiv:1709.08439.
Alshuqayran, N., Ali, N., & Evans, R. (2016, November). A systematic mapping study in
microservice architecture. In 2016 IEEE 9th International Conference on Service-
Oriented Computing and Applications (SOCA) (pp. 44-51). IEEE.
Capilla, R., Jansen, A., Tang, A., Avgeriou, P., & Babar, M. A. (2016). 10 years of software
architecture knowledge management: Practice and future. Journal of Systems and
Software, 116, 191-205.
Chhabra, J. K. (2017). Improving modular structure of software system using structural and
lexical dependency. Information and Software Technology, 82, 96-120.
Combs, C., Ade, C., Buchanan, S., & Bemben, D. (2019). Relationships Between Circulating
MicroRNA and Muscular Performance Responses to a 30 Day Bed Rest Protocol: 1488:
Board# 250 May 30 9: 30 AM-11: 00 AM. Medicine & Science in Sports &
Exercise, 51(6), 407.
Daud, M. A., & Suhaili, W. S. H. (2016, November). Internet of things (IoT) with CoAP and
HTTP protocol: A study on which protocol suits IoT in terms of performance.
In International Conference on Computational Intelligence in Information System (pp.
165-174). Springer, Cham.
Document Page
11MICROSERVICE ARCHITECTURE
Den Hartigh, E., Ortt, J. R., Van de Kaa, G., & Stolwijk, C. C. (2016). Platform control during
battles for market dominance: The case of Apple versus IBM in the early personal
computer industry. Technovation, 48, 4-12.
Di Nitto, E., Jamshidi, P., Guerriero, M., Spais, I., & Tamburri, D. A. (2016, July). A software
architecture framework for quality-aware DevOps. In Proceedings of the 2nd
International Workshop on Quality-Aware DevOps (pp. 12-17).
Feldmann, J., Stegmaier, M., Gruhler, N., Ríos, C., Bhaskaran, H., Wright, C. D., & Pernice, W.
H. P. (2017). Calculating with light using a chip-scale all-optical abacus. Nature
communications, 8(1), 1-8.
Jarvenpaa, S. L., & Mao, J. Y. (2017). Operational capabilities development in mediated
offshore software services models. In Outsourcing and offshoring business services (pp.
239-279). Palgrave Macmillan, Cham.
Kissane, B. (2017). Learning with calculators: Doing more with less. Australian Mathematics
Teacher, The, 73(1), 3.
Kramer, M. (2018). Best practices in systems development lifecycle: An analyses based on the
waterfall model. Review of Business & Finance Studies, 9(1), 77-84.
Mammela, A., & Anttonen, A. (2017). Why will computing power need particular attention in
future wireless devices?. IEEE Circuits and Systems Magazine, 17(1), 12-26.
Nadareishvili, I., Mitra, R., McLarty, M., & Amundsen, M. (2016). Microservice architecture:
aligning principles, practices, and culture. " O'Reilly Media, Inc.".
Document Page
12MICROSERVICE ARCHITECTURE
O’Regan, G. (2018). Personal and Home Computers. In The Innovation in Computing
Companion (pp. 217-220). Springer, Cham.
Sommerville, I., Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (2019). Edition:
Software Engineering. Instructor.
Vijayakumar, D., Manikandan, S., & Parthasarathy, K. (2018). ISAY: SMS Service Using
ARM. Applied Science Reports, 21(3), 74-78.
Wolff, E. (2016). Microservices: flexible software architecture. Addison-Wesley Professional.
chevron_up_icon
1 out of 13
circle_padding
hide_on_mobile
zoom_out_icon
logo.png

Your All-in-One AI-Powered Toolkit for Academic Success.

Available 24*7 on WhatsApp / Email

[object Object]