You are on page 1of 9

MICRO-SERVICE ARCHITECTURE 1

Summary

As an experienced computer scientist at Universal Systems and Networks, I am providing

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.

Brief History of Computing

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

comparison of different generations of computers is given below:

i. First Generation Computers

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

ii. Second Generation Computers

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.

iii. Third Generation Computer

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

than the previous generations of computers. Some examples of third-generation computers

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.

iv. Fourth Generation Computers

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

(Mahoney & Haigh, 2011).

v. Fifth Generation Computers

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

computers with more user-friendly interfaces as compared to previous generations. Its

disadvantages include its requirements for low-level languages.

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

utilizes two strategies to distinguish significant nonfunctional quality characteristics of the

framework (e.g., execution, steadfastness, security, wellbeing) and explain framework

necessities: the Quality Property Workshop and the Crucial Workshop (Zhang, Muccini, & Li,

2010).

Plan engineering by creating compositional structures and coordination procedures that

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

presentation, security, and wellbeing of constant frameworks (Jain et al., 2014).

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

field (Ebrom, Glotzbach, & Mccoy, 2013). 

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

(Shahin, Liang, & Babar, 2014).

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

business problems. It ensures flexibility in the system to improve business capabilities.


MICRO-SERVICE ARCHITECTURE 8

References

Aspray, W. (2016). Paticipation in computing: Springer.


Bosch, J. (2010). Architecture challenges for software ecosystems. Paper presented at the Proceedings of
the Fourth European Conference on Software Architecture: Companion Volume.
Ebrom, M. P., Glotzbach, M. E., & Mccoy, R. A. (2013). Software architecture system with embedded
virtual router: Google Patents.
Falessi, D., Cantone, G., Sarcia, S. A., Calavaro, G., Subiaco, P., & D'Amore, C. (2010). Peaceful
coexistence: Agile developer perspectives on software architecture. IEEE Software, 27(2), 23-25.
Jain, S. D., Jiang, N., Caldwell, G. L., Ramsay, D. A., Giacobbe, G. B., & Veeraraghavan, V. (2014).
Enterprise social networking software architecture: Google Patents.
Li, Z., Liang, P., & Avgeriou, P. (2013). Application of knowledge-based approaches in software
architecture: A systematic mapping study. Information and Software Technology, 55(5), 777-794.
Mahoney, M. S., & Haigh, T. (2011). Histories of computing: Harvard University Press.
Medved, J., Varga, R., Tkacik, A., & Gray, K. (2014). Opendaylight: Towards a model-driven sdn controller
architecture. Paper presented at the Proceeding of IEEE International Symposium on a World of
Wireless, Mobile and Multimedia Networks 2014.
Metropolis, N. (2014). History of computing in the twentieth century: Elsevier.
O'Regan, G. (2016). Introduction to the history of computing: a computing history primer: Springer.
Oussalah, M., Bhat, F., Challis, K., & Schnier, T. (2013). A software architecture for Twitter collection,
search and geolocation services. Knowledge-Based Systems, 37, 105-120.
Satyanarayanan, M. (2015). A brief history of cloud offload: A personal journey from odyssey through
cyber foraging to cloudlets. GetMobile: Mobile Computing and Communications, 18(4), 19-23.
Schäfer, J. (2010). A Brief History of Computing.
Shahin, M., Liang, P., & Babar, M. A. (2014). A systematic review of software architecture visualization
techniques. Journal of Systems and Software, 94, 161-185.
Siddique, N., & Adeli, H. (2016). Brief history of natural sciences for nature-inspired computing in
engineering. Journal of Civil Engineering and Management, 22(3), 287-301.
Vogel, O., Arnold, I., Chughtai, A., & Kehrer, T. (2011). Software architecture: a comprehensive
framework and guide for practitioners: Springer Science & Business Media.
Wilkinson, P. (2016). A brief history of serious games Entertainment computing and serious games (pp.
17-41): Springer.
Zhang, P., Muccini, H., & Li, B. (2010). A classification and comparison of model checking software
architecture techniques. Journal of Systems and Software, 83(5), 723-744.
MICRO-SERVICE ARCHITECTURE 9

You might also like