Professional Documents
Culture Documents
Summary
this briefing document to the consulting client for continuing the use of micro-services. In this
document, I will provide a brief history of computing and explain why and how the present
contemporary suite of information systems are fundamentally different to the various generations
of technology and its use throughout the ages, I will also provide an overview of software
architecture in which I will discuss the definition and framework for what a software architecture
is and why it is important to the contemporary enterprise. In the end, will provide a summary of
the main types of software architecture with a conclusion to support my document findings.
In 1880, the government of the US faced a serious census problem when it was not able
to calculate the accurate population of the US as it grew so large due to urbanization. The
government wanted to find out a way to solve this problem and thus the computer was developed
to address the serious concerns not for just sending an email. In the 1880s, punch-card based
computers were developed that took an entire room. Due to technological advancements and
evolution in the computing world, we are now able to carry our smartphones and laptops
anywhere with us and these are more powerful, faster and reliable than the previous generations
of computers (Satyanarayanan, 2015). In 1936, Alan Turing presented an idea of a machine that
is capable of doing any computational activity, which sets the foundation for modern computers.
In the following year, J.V. Atanasoff tried to develop the first computer but it was without any
cam and gears. In 1941, Atanasoff along with his student developed a computer that could solve
mathematical problems and it was the first time, a computer was able to store memory in it
(Wilkinson, 2016).
MICRO-SERVICE ARCHITECTURE 2
In 1943, John Mauchly and J. Presper Eckert, who is also known as the grandfathers of
modern computers, designed the first computer which could be used by enterprises and
governments. In 1953, the first computer language was developed by Grace Hopper and in 1958,
Jack Kilby and Robert Noyce invented a computer chip. During the 19 th century, many computer
scientists and developers worked and invented new applications, computer models, languages
and software which revolutionized the world of technology and computing. Due to their hard
work, we are now able to use modern computers which can be fitted in the palms of our hands
and we can perform numerous functions simultaneously in a shorter period (Siddique & Adeli,
2016).
To explain how and why the present contemporary suite of information systems are
fundamentally different from the various generations of technology and its use throughout the
ages, we need to compare the different generations of computers. And for that purpose, a
The first-generation computer was designed in 1946 and remained till 1959. J. Eckert and J.
Mauchly developed the first computer with an electronic calculator and it was known as ENIAC.
Some of the first generation computers also include IBM-701 and EDVAC. There were some
advantages of these computers including its structure that used vacuum tubes and these
computers were able to calculate the numbers in milliseconds. It also had some disadvantages
including its size which was very huge and its weight which was around 30 tones. First-
generation computers were also expensive and unreliable due to vacuum tubes which could get
heat up and cause short circuits or burning in these computers (Aspray, 2016).
MICRO-SERVICE ARCHITECTURE 3
Second-generation computers were introduced in 1959 till 2965 and were made of transistors
instead of vacuum tubes. Some examples of second-generation computers include IBM 7094 and
Honeywell 400. The advantages of the second-generation computer include its smaller size as
compared to first-generation computers and it required less electricity (Schäfer, 2010). It wasn’t
much expensive as the first generation computer was and it had better speed and portability as
compared to the first generation computer. Its disadvantages include its exclusivity, meaning it
could only be used for specific purposes and a proper cooling system was required to cool it
down.
Third generation computer was designed in 1965 till 1971 and it was based on integrated
circuits or computer chips. These chips contained several transistors which were smaller in size
include PDP-8 and ICL 2900. The advantages of third-generation computers include its
inexpensiveness as compared to previous generations which were much expensive and improved
performance with big storage capacity (Metropolis, 2014). It was used as an operating system
that was better able to manage the resources and could perform multiple tasks at a time. Some of
the disadvantages of third-generation computers include maintaining the chips of this computer
and it required air conditioning to avoid any system failure due to heat.
Fourth-generation computers were introduced in 1971 and they remained in use till 1980.
These computers used microprocessors and Graphics User Interface (GUI) was offered to the
MICRO-SERVICE ARCHITECTURE 4
users. Some of the examples include IBM 4341 and DEC 10. Its advantages include fast
computation, smaller size, and no heat was generated from these computers as compared to the
previous generations. Also, it didn’t require high maintenance and could use all types of
languages to operate. Its advantages include the complexity of microprocessor design and
fabrication and the requirement of air condition and advanced technology to make the chips
Fifth-generation computers were introduced in 1980 and they remain till today. These are based
on artificial intelligence and aim to respond to language input that was able to learn new things
itself (O'Regan, 2016). Examples of fifth-generation computers include desktop, laptop, and
ultra-book. Its advantages include more reliability, availability of different sizes and it provides
Software Architecture
Software architecture is a computing system that depicts the system for the understanding
of how are software system will behave. It is a blueprint that is served for the project and the
system, it provides the work assignments that have to be implemented by the project
implementation team and the designers (Vogel, Arnold, Chughtai, & Kehrer, 2011). This
architecture is the basic carrier of the system qualities like the modifiability, performance, and
security. These things cannot be achieved without a clear architectural vision. Software
Architecture is a prototype for the early analysis to make sure that it will approach an acceptable
MICRO-SERVICE ARCHITECTURE 5
system. One benefit of an effective architecture is that you can identify design risks that can be
mitigated quite early in the development process (Oussalah, Bhat, Challis, & Schnier, 2013).
The SEI has a scope of demonstrated techniques and practices that can assist associations
with utilizing programming design to construct and create frameworks that meet their business
and mission goals. These strategies and practices, which are applied at various phases of the
development life cycle, have advanced with the appearance of agile and scrum development
(Falessi et al., 2010). Catch compositionally huge prerequisites by dissecting the business
drivers, framework setting, and factors that framework partners consider basic to progress. It
necessities: the Quality Property Workshop and the Crucial Workshop (Zhang, Muccini, & Li,
2010).
fulfill prerequisites. Our Characteristic Driven Structure strategy helps associations iteratively
plan compelling designs. Assess the engineering by deciding its capacity to help the quality traits
that meet an association's matter of fact and mission objectives. Our Engineering Tradeoff
Investigation Technique (ATAM) and steady structure survey rehearse assist associations with
increasing early and continuous knowledge into their product models (Zhang et al., 2010).
Record the design in adequate detail and an effectively available structure to encourage
correspondence with engineers and different partners and to help examine. Our Perspectives and
Past methodology catch numerous designs, each tending to the worries of specific partners. The
SEI likewise built up the Engineering Investigation and Structure Language (AADL), an area
MICRO-SERVICE ARCHITECTURE 6
explicit design displaying language utilized for security basic frameworks, and the Open Source
AADL Instrument Condition (OSATE). AADL and OSATE are utilized to break down the
There are a couple of activities which the architecture performs and are necessary for the
organization to complete the work on time efficiently. Major the framework used these days in
the industry is the micro-services framework. As it is computed with both the user end services
and the developer end services. Micro-services are quite famous these days and it is an emerging
The term micro-service Architecture is boosted over the last couple of years to elaborate
a specific way of designing the software applications as a complete suite of the independently
deployable services. These are so powerful that big telecom companies are using these services.
In the micro-service architectural style, a single application is developed with a suite of small
services that are interlinked with each other using the dependencies, which are running in its
processes and having a very lightweight communication medium to communicate, often with
HTTP APIs (Li, Liang, & Avgeriou, 2013). In micro-services, there are REST Controllers to surf
through that specific location or the index. This is a very fast way of communication. Each
controller has its REST requests such as GET, POST, PUT and DELETE. With these controllers,
you can achieve almost everything. Let me dig a bit deep into the micro-service style. It has a
monolithic application style which means it is a single unit. Enterprise applications are often
built in the three important parts. It is comprised of a client-side user interface which is mostly
web-based. It means it will have a website etc. It will have a server-side application that is
managing all the requests and the processes and it will have a database management system on
MICRO-SERVICE ARCHITECTURE 7
which the entire structure is based. An example of this is building micro-services using Java
For the user side, it will have web pages that can be made using the Vaadin in the java for
the server-side spring-boot and spring cloud will perfectly fit in and for the database
management system, MongoDB is highly and widely used in the industry. This server-side
application is a monolith application and it will handle all the HTTP requests, retrieve, and
update, insert the data from the database and it will execute the domain logic. It will also
populate and select the HTML views to be transferred over the browser (Bosch, 2010). This
application is a single logical executable. Every time a new change is done in the service it has to
be built and deployed using the newer version of it. All the components in the micro-service are
the services. It is composed of APIs and libraries etc. It is to keep in mind that the micro-services
are the products, not the projects. These are the services one can have. It can be centralized and
decentralized both. The plus point of this is that it makes the infrastructure autonomous. It gives
continuous Delivery and continuous integration (Medved, Varga, Tkacik, & Gray, 2014).
Conclusion
Taking into consideration the benefits of micro-service architecture and its delivery, it is
concluded that this technology takes a slow and steady approach in its implementation. Micro-
service architecture enhances business productivity and keeps things simple to avoid complex
References