Professional Documents
Culture Documents
(Computer Science, Technology and Applications) Frederik L. Sørensen (Editor) - Enterprise Architecture and Service-Oriented Architecture (2020)
(Computer Science, Technology and Applications) Frederik L. Sørensen (Editor) - Enterprise Architecture and Service-Oriented Architecture (2020)
ENTERPRISE ARCHITECTURE
AND SERVICE-ORIENTED
ARCHITECTURE
No part of this digital document may be reproduced, stored in a retrieval system or transmitted in any form or
by any means. The publisher has taken reasonable care in the preparation of this digital document, but makes no
expressed or implied warranty of any kind and assumes no responsibility for any errors or omissions. No
liability is assumed for incidental or consequential damages in connection with or arising out of information
contained herein. This digital document is sold with the clear understanding that the publisher is not engaged in
rendering legal, medical or any other professional services.
COMPUTER SCIENCE, TECHNOLOGY
AND APPLICATIONS
ENTERPRISE ARCHITECTURE
AND SERVICE-ORIENTED
ARCHITECTURE
FREDERIK L. SØRENSEN
EDITOR
Copyright © 2020 by Nova Science Publishers, Inc.
All rights reserved. No part of this book may be reproduced, stored in a retrieval system or transmitted
in any form or by any means: electronic, electrostatic, magnetic, tape, mechanical photocopying,
recording or otherwise without the written permission of the Publisher.
We have partnered with Copyright Clearance Center to make it easy for you to obtain permissions to
reuse content from this publication. Simply navigate to this publication’s page on Nova’s website and
locate the “Get Permission” button below the title description. This button is linked directly to the
title’s permission page on copyright.com. Alternatively, you can visit copyright.com and search by
title, ISBN, or ISSN.
For further questions about using the service on copyright.com, please contact:
Copyright Clearance Center
Phone: +1-(978) 750-8400 Fax: +1-(978) 750-4470 E-mail: info@copyright.com.
Independent verification should be sought for any data, advice or recommendations contained in this
book. In addition, no responsibility is assumed by the Publisher for any injury and/or damage to
persons or property arising from any methods, products, instructions, ideas or otherwise contained in
this publication.
This publication is designed to provide accurate and authoritative information with regard to the subject
matter covered herein. It is sold with the clear understanding that the Publisher is not engaged in
rendering legal or any other professional services. If legal or any other expert assistance is required, the
services of a competent person should be sought. FROM A DECLARATION OF PARTICIPANTS
JOINTLY ADOPTED BY A COMMITTEE OF THE AMERICAN BAR ASSOCIATION AND A
COMMITTEE OF PUBLISHERS.
Additional color graphics may be available in the e-book version of this book.
ISBN:
Preface vii
Chapter 1 Enterprise Architecture Alignment 1
Peter Filet, Rogier van de Wetering
and Stef Joosten
Chapter 2 Enterprise Architecture Knowledge
Transfer and Organizational Empowerment 41
Klaus Østergaard and Torben Tambo
Chapter 3 Application of SOA with Cloud Computing 75
Farrukh Arslan
Chapter 4 Microservice Architecture 99
Nikolay Mladenov
Index 115
PREFACE
Chapter 1
ABSTRACT
*
Corresponding Author’s E-mail: Rogier.vandewetering@ou.nl.
2 Peter Filet, Rogier van de Wetering and Stef Joosten
INTRODUCTION
THEORETICAL BACKGROUND
EA Literature
Alignment Heuristics
METHODS
Design Science
Formalized EA model;
Formalized rule model;
Alignment quality model.
The lower part Figure 1 shows the Design Science Research Methodo-
logy process model (Peffers, Tuunanen, Rothenberger, & Chatterjee,
2007).
This current research explores the possibility of creating a practical,
applicable environment to support automated, rule-based monitoring
consistency and coherence between elements within an EA model. The
practical research method that supports the creation of an innovative
solution to a real-world problem is the Design Science method (Gregor &
Hevner, 2013; Hevner & Chatterjee, 2010).
The Design Science research method is a novel approach within the
field of Information Systems because it combines focus on the creation of
an IT artifact with a high priority on maintaining the relevance of IS
research in the application domain (Hevner & Chatterjee, 2010). The
research activities for the Design Science method are described in a
conceptual framework and follow a set of guidelines to conduct and
evaluate Design Science research, as mentioned in (Hevner & Chatterjee,
2010; Venable, Pries-Heje, & Baskerville, 2014). The Design Science
process consists of six steps, as shown in the lower part of Figure 1.
Alignment Calculation
#𝑣𝑖𝑜𝑙𝑎𝑡𝑖𝑜𝑛𝑠
𝑅𝑢𝑙𝑒𝐴𝑙𝑖𝑔𝑛𝑚𝑒𝑛𝑡% = 1 −
𝑀𝑎𝑥𝑉𝑎𝑙𝑢𝑒 (#𝑝𝑎𝑖𝑟𝑠 𝑖𝑛 𝑎𝑛𝑡𝑒𝑐𝑒𝑑𝑒𝑛𝑡; 1)
∑ 𝑅𝑢𝑙𝑒𝐴𝑙𝑖𝑔𝑛𝑚𝑒𝑛𝑡% 𝑤𝑖𝑡ℎ𝑖𝑛 𝑄𝐹
𝑄𝐹𝑎𝑙𝑖𝑔𝑛𝑚𝑒𝑛𝑡% =
#𝑟𝑢𝑙𝑒𝑠 𝑤𝑖𝑡ℎ𝑖𝑛 𝑄𝐹
If no rules exist within a quality factor (#rules within QF equals 0), the
QFalignment% for that quality factor is undefined, which implicitly
increases the relative contribution of other quality factors to the overall
alignment, as shown in the formula below.
12 Peter Filet, Rogier van de Wetering and Stef Joosten
∑(𝑄𝐹𝑎𝑙𝑖𝑔𝑛𝑚𝑒𝑛𝑡% ∗ 𝑄𝐹𝑐𝑜𝑛𝑡𝑟𝑖𝑏𝑢𝑡𝑖𝑜𝑛%)
𝑂𝑣𝑒𝑟𝑎𝑙𝑙 𝐴𝑙𝑖𝑔𝑛𝑚𝑒𝑛𝑡% =
∑(𝑄𝐹𝑐𝑜𝑛𝑡𝑟𝑖𝑏𝑢𝑡𝑖𝑜𝑛%)
Case Studies
1
ArchiMate model, publicly available on https://github.com/archimatetool/ArchiModels.
14 Peter Filet, Rogier van de Wetering and Stef Joosten
Research Environment
The EA models (except the MOD-NL model) are imported into the
Archi3 tool, so they are stored in a format that can be imported into
Ampersand by the compiler. The MOD-NL model was supplied in Excel
format. This data is imported into Ampersand using Ampersand’s Excel
importer functionality.
2
EU reference architecture model, publicly available on https://joinup.ec.europa.eu/
node/99464.
3
Archi is a free and open source modelling tool to create ArchiMate models and sketches.
Available from https://www.archimatetool.com.
Enterprise Architecture Alignment 15
1 a
(1, a)
2 b
(2, c)
c
3 (3, c)
d
4 (4, d)
e
5 (5, e)
Totality relation r:
Each atom in concept X must be related to an atom in concept Y
All rules specified in ADL are obliged to follow ADL grammar which
has its foundation in Relation Algebra. Therefore, a successful compilation
of an ADL script ensures a syntactically correct specification of a rule,
respecting the Design Science rigor cycle. Needless to say that for a rule to
Enterprise Architecture Alignment 19
Relation
source target
ArchiObject
isA
Element
(e.g. BusinessProcess, Tekst
ApplicationService, etc.)
naam
Archimate relation
(e.g. realizes, usedBy, access, etc.)
RESULTS
DISCUSSION
4
RuleSpeak® was developed in 1996 by Ronald G. Ross. Info can be found at
www.rulespeak.com. It is also a topic in the Rule Based Design course that is part of the
Business Process Management & IT education program by the Open University
(Wedemeijer, Joosten, Michels, & Woude, 2014b).
24 Peter Filet, Rogier van de Wetering and Stef Joosten
Longitudinal Comparison
The alignment measurement for each of the EA models lacks a point of
reference to be able to interpret and evaluate the absolute results. A
Enterprise Architecture Alignment 25
Ampersand
Ampersand is an open-source project used in academic research
projects, academic studies, and business application environments. The
primary area of application is the implementation of business rules guiding
the rule-driven generation of information systems. During the development
and execution phase of this research, no indication is found that could
diminish the reliability of the results.
Limitations
Ampersand
Numerical computations are not (yet) possible within Ampersand.
Numerical and date computations might be useful for alignment heuristics
that relate to organization-specific circumstances. The Ampersand
ArchiMate extension, used to import EA models in ArchiMate format, is a
relatively new extension of Ampersand's functionality. Some issues arose
during design and development. However, these issues were all
appropriately solved. There is no indication that prior issues influence the
validity of the results.
FUTURE RESEARCH
CONCLUSION
REFERENCES
Saat, J., Franke, U., Lagerstrom, R., & Ekstedt, M. (2010). Enterprise
Architecture Meta Models for IT/Business Alignment Situations. 14-23.
doi:10.1109/edoc.2010.17.
Sousa, P., Pereira, C. M., & Marques, J. A. (2004). Enterprise Architecture
Alignment heuristics. Microsoft Architects journal, 4 (October
2004), 6.
Steenbergen, M. v. (2011). Maturity and Effectiveness of Enterprise
Architecture. (PhD). Universiteit Utrecht.
The Open Group. (2011). The Open Group Architecture Framework
version 9.1. Retrieved from https://pubs.opengroup.org/architecture/
togaf91-doc/arch/
The Open Group. (2016). ArchiMate 3.0 Specification. Retrieved from
https://pubs.opengroup.org/architecture/archimate3-doc/
Van de Wetering, R. (2019). Dynamic Enterprise Architecture
Capabilities: Conceptualization and Validation. Paper presented at the
Business Information Systems, Seville, Spain.
Van de Wetering, R., Mikalef, P., & Pateli, A. (2017). A strategic
alignment model IT flexibility and Dynamic capabilities: Toward an
assessment tool. Paper presented at the 25th European Conference on
Information Systems (ECIS), Guimarães, Portugal.
Venable, J., Pries-Heje, J., & Baskerville, R. (2014). FEDS: a Framework
for Evaluation in Design Science Research. European Journal of
Information Systems, 25(1), 77-89. doi:10.1057/ejis.2014.36.
Walraven, P., Van de Wetering, R., Helms, R., Versendaal, J., & Caniëls,
M. (2018). Co-evolutionary IS-alignment: a Complex Adaptive
Systems Perspective. Paper presented at the 12th Mediterranean
Conference on Information Systems, Corfu, Greece.
Wedemeijer, L., Joosten, S. M. M., Michels, G., & Woude, J. C. S. P. v. d.
(2014a). Cursusboek Ontwerpen met bedrijfsregels (1st ed.). Heerlen:
Open Universiteit.
Wedemeijer, L., Joosten, S. M. M., Michels, G., & Woude, J. C. S. P. v. d.
(2014b). Werkboek Ontwerpen met bedrijfsregels (1st ed.). Heerlen:
Open Universiteit.
Enterprise Architecture Alignment 33
Wegmann, A., Balabko, P., Lê, L. S., Regev, G., & Rychkova, I. (2005). A
method and tool for Business-IT Alignment in Enterprise Architecture.
Paper presented at the CAiSE'05 Forum, Porto, Portugal.
BIOGRAPHICAL SKETCHES
Peter W. Filet
Stef Joosten
Professional Appointments:
Chapter 2
ABSTRACT
INTRODUCTION
METHODOLOGY
THEORETICAL BACKGROUND
Learning Principles
Systematics of EA Learning
Each of the KSAs has 12 sub-areas. To illustrate the principles, but not
reproduce more than necessary, area 9 is composed of these sub-areas:
Enterprise Architecture Knowledge Transfer … 51
Interesting is the use of common terms that for the broadest range of
technology and business professionals of modern enterprises is
recognizable or can be used in the instructional situation for bridging
between students’ founding knowledge and the desired knowledge.
Summer School
Portfolio management
Investment planning
Agile methods
IT infrastructure
Business strategy
Business and digital transformation
Top level management interaction
Decision making and organizational behavior theory
Visual and representational methods
Reporting, analytics and big data approaches
Municipal Training
Business consultant 42
CEO 4
CIO 13
Citizens services manager 18
IT and digitalisation consultant 67
IT Architect 33
Operations specialists 26
Project and program manager 34
237
Certification Training
Impact Analysis
2014
2015
2016
2017
2018
2019
Critical View
Senior IT professionals
Business development officers
Business architects
CONCLUSION
REFERENCES
BIOGRAPHICAL SKETCHES
Klaus Østergaaard
Torben Tambo
Chapter 3
APPLICATION OF SOA
WITH CLOUD COMPUTING
Farrukh Arslan*
School of Electrical and Computer Engineering, Purdue University,
West Lafayette, IN, US
ABSTRACT
One of the challenging jobs for software engineers today is keeping
up with the rapid changes in technology. An important update in
technology is that the software will involve service-oriented architectures
(SOAs) with some norm of cloud computing technology. As more and
more services are available on the Internet and nearly every day, we
discover new opportunities to connect these services to create SOAs.
These SOAs will require less custom software in organizations, but will
likely demand more creativity in the selection and assembly of services.
This is a natural evolution of software technology and will be explained
in this chapter. The evolutions brought by these technologies will require
both a basic grasp of the technologies and an effective way to deal with
how these changes will affect the people who build and use the systems
*
Corresponding Author’s E-mail: farslan@purdue.edu.
76 Farrukh Arslan
INTRODUCTION
Atomic Service
Composite Service
Loosely Coupled
This is a design concept where the internal workings of one service are
not “known” to another service. All that needs to be known is the external
behavior of the service. This way, the underlying programming of service
can be modified and, as long as external behavior has not changed,
anything that uses that service continues to function as expected. This is
similar to the concept of information hiding that has been used in computer
science for a long time.
So, what exactly does a service-oriented architecture look like? Let’s
start with a service provider. Any given service provider could provide
multiple services. Multiple services are represented in Figure 2 by the
small circles. Services are code—running on an underlying computer
system—that provide computing as well as access and updates to stored
data.
CLOUD COMPUTING
Types of Clouds
This is the data center or, in some cases, the data centers. Pricing is
often based on the resources used.
bus (ESB), which is often used in SOAs. Toward the end of the section, the
analyses are combined into a force field analysis of SOAs using Web
services. This analysis shows many driving forces for adopting an SOA. It
also shows that, over time, many technical restraining forces will diminish
and the remaining restraining forces will be typical business and design
issues. One early integration technique was for an organization to adopt
enterprise-wide software. This worked sometimes. When it did, however,
usually it was successful only for a short period. The obvious appeal of
adopting standard software is that everyone uses the same software. This
means that the entire organization uses the same data definitions,
semantics, and formats for exchanging data. Often, this worked best for
organizations that were small and were putting a new set of systems in
place. Nevertheless, standardizing systems software often runs into
problems, too. There are long-term restraining forces, such as mergers and
acquisitions, that can come into play. Even a new, small organization can
acquire another organization that uses an entirely different system, and
integration problems begin.
This approach has a mergers and acquisitions restraining force for a
similar reason as seen in trying to establish standard data element
definitions. The other organization can easily use different software. It is
also common in larger organizations that some departments have different
software needs. It is rare that you can find “one size fits all” software.
Another downside is that adopting a complete set of software systems from
a single vendor makes your organization dependent on that single vendor.
As soon as you move away from that vendor’s products, you might be back
into common integration issues. For organizations that have existing
systems, adopting standard software can mean a mass conversion to the
new software. This is often problematic and should be seen as a restraining
force. Finally, it is often the case that the product doesn’t provide all the
functionality that is needed. Of course, every example has a
counterexample. There are some industries where mergers and acquisitions
are commonplace. You will see organizations in those industries adopting
common, industry-wide software packages so that it will be easier for one
organization to be acquired or merged with another organization. So,
86 Farrukh Arslan
mergers and acquisitions can also be a driving force. The 1990s saw the
introduction of object request brokers (ORBs). The two best-known ORBs
were the Object Management Group’s Common Object Request Broker
Architecture (CORBA) specification and Microsoft’s Distributed Common
Object Model (DCOM). (CORBA is still around in various forms. DCOM
is now a part of Microsoft’s .NET.). ORBs are middleware that is one way
to exchange data among two or more systems. These systems could be
from multiple vendors. In fact, an ORB could be one way to integrate
systems from two organizations when a merger or acquisition occurred. An
ORB hides the complexity of the communication between two or more
systems. They provide a means for applications to communicate with each
other.
The original specifications for CORBA and DCOM, however, dealt
with how to get data from one place to another. There were no specific
requirements for the format of the data transmitted in the messages. The
restraining forces related to data for an ORB are:
Perception, in this case, might well be the reality. The very nature of
creating interoperable, networked resources means that there could be a
negative impact on operational systems when requests come in through an
ORB. Many operational systems have not been designed to receive
indeterminate or unexpected processing requests. These requests
sometimes can have a negative impact on the performance of those
systems. So, the effect on operations systems can be a restraining force if
up-to-the-moment processing of those requests is needed. An enterprise
data warehouse EDW is one of the oldest and most successful ways to
integrate and consolidate data from multiple systems. Commonly, it
involves extracting data from existing systems and loading it into a single,
central location to form an EDW. Using an EDW can be complementary to
using ORB or Web services. the easier exchange of data as a driving force
is replaced with easier access to enterprise-wide data. This data is loaded
from existing systems using various techniques that extract, transform, and
load (ETL) the data in the EDW. Using ETL techniques means there is
usually less impact on operational systems because the extracts of data
from these systems could be done at a time convenient for the operational
system. This minimal impact on operational systems is a significant
driving force. Easier access to enterprise-wide data also allows the use of
business intelligence (BI)/analytics software to find patterns or new
business opportunities based on a wealth of data that could be stored in an
EDW. Most of the restraining forces are issues with the semantics or
meaning of the data and the standardization of data definitions. Not
surprisingly, these issues are similar to those involved with attempts at
adopting standard data elements when existing data definitions are
different.
Over time, however, these restraining forces have become weaker for
two reasons:
As a result, the transform and load portion could fail or the wrong
portion of the record could be inappropriately transformed and loaded into
the EDW, resulting in essentially a corrupted EDW. This brittleness
problem is being addressed by the tagged record structure of XML or
name/value pairs. The tagged structure significantly reduces the chance of
corrupting the data in the EDW and also presents the opportunity to reduce
maintenance costs related to ETL programs. So, as a restraining force, the
brittleness of fixed records will be reduced. Many of the restraining forces
will be reduced because of efforts related to industry-standard semantic
vocabularies and Web services.
Internal system B at the right expects a tagged XML format but expects the
tags to be different. For example, instead of the tag <name> in system A,
system B expects the data to be tagged with <customer>. The tags for
phone and postal code data also are different. Finally, system C expects a
fixed record format. This fixed-format is shown at the bottom in Figure 6.
This section provides force field analyses for adopting two types of
cloud providers: software as a service (SaaS) and platform as a service
(PaaS). Towards the end, the analyses will be combined with the analysis
of service-oriented architectures (SOAs). It will be shown that using cloud
computing generally increases the number of technical driving forces for
adopting an SOA. Cloud computing also increases the strength of some of
the existing technical driving forces for adopting an SOA. Some of the
forces affecting the adoption of SaaS are similar to adopting any software
94 Farrukh Arslan
package. There are restraining forces such as the service that might not do
everything that is needed and you may feel uncomfortable depending on a
particular service. It would be reasonable to be concerned whether the
service provider will keep up with new features or capabilities needed for
effective use of a CRM service, for example. Also, conversion to a new
system, whether in the cloud or not, can be a restraining force. The first
one is security. Security is often one of the biggest concerns when
considering a move to a cloud provider. Security is a driving force as well.
The reality is that major cloud providers might be more secure than a data
center run by your organization. Cloud providers can hire the best security
people because security is so important and the security provided is usually
cutting edge. Cloud providers certainly can be targets for security attacks,
but all this really does keep the security as high as possible. Since the data
centers for major cloud providers are so big, they can keep equipment and
software up to date because of economies of scale. Availability or uptime
of service and the Internet is similar to security. Just like security, cloud
providers have the equipment and expertise to maximize availability and
Internet availability will continue to improve. Both security and
availability of restraining forces will diminish over time, effectively
increasing security and availability as driving forces for the adoption of
SaaS like a CRM service. Mergers and acquisitions might be a restraining
force if the organizations use different services or a system for something
like CRM. On the other hand, organizations might use the same service.
Another option is that some industries may quickly move to common
semantic vocabulary, making a merger or acquisition less of a restraining
force. In fact, related diminishing restraining forces, such as different
semantics in data sources, semantic translation, and standards are still
evolving. These are all related to standards.
A new driving force is the lower initial investment in software and
hardware since SaaS does not require the same upfront investment as a
data center. With SaaS, such costs are paid for on an incremental basis as
an ongoing cost (another driving force). Also, services with a SaaS cloud
provider usually have application programming interfaces (APIs) as well
as applications. Both make it easier for exchanging data. The applications
Application of SOA with Cloud Computing 95
and APIs mean that data from the service can be accessed/updated from a
mobile device as well as systems running in your data center. At one point,
the organization decided to store its enterprise data in the cloud instead of
in a data warehouse. The organization built the new data store using a PaaS
provider. Storing data in the cloud accommodated storage needs changing
over time as well as changing the use/analysis of the data over time. Cloud
computing provides such elasticity. This way, an organization only pays
for what it uses. With cloud computing, it is not necessary for an
organization to invest in the hardware and software needed to handle peak
use. Let’s assume a database management system was used in the cloud
and that organization wrote custom software around the database
management system. Also, assume the PaaS provider has business
intelligence (BI)/analytics software that works with the database
management system. The organization saw remarkable growth in the
amount of data it maintains. To handle that amount of data, it chose a big
data solution offered by a PaaS provider. Big data is a somewhat fuzzy
term that refers to large and complicated data sets that may not be easily
managed by traditional database management systems. A big data solution
offered by a PaaS provider might be a NoSQL database management
system. There are a variety of NoSQL database management systems on
the market. Most are designed to work with big data. The driving forces
include easier access to enterprise-wide data, reduced maintenance costs,
reduced brittleness using tags or name/value pairs, minimal effect on
operational systems, and the use of BI/analytics. Just as in adopting a SaaS,
there are driving forces of the lower initial investment in software and
hardware and ongoing cost on an incremental basis. The PaaS cloud
provider manages the hardware and provides the software.
Figure 8 shows the cloud computing providers for the CRM service
and the big data store. The CRM service is from a public SaaS cloud
provider. The big data store along with the BI/analytics uses a virtual
private PaaS cloud provider. The remaining internal systems are the same
The PaaS includes tools to help develop, manage, and analyze the data in
big data stores. It provides an enterprise service bus (ESB) that is
optimized for the big data store and the BI/analytics software. The Internet
96 Farrukh Arslan
store. So, the restraining forces for adopting an enterprise data warehouse
have been reworded for storing big data: deciding what data to store and
delays in getting data to the data store. Two business issues have been
added: dependence on cloud-based services and conversions to use cloud-
based services. A legal issue was added concerning contractual issues with
the cloud provider. There is a new possible design restraint of Internet
speed. Security and availability (uptime) are both diminishing restraining
forces and driving forces, as described for both SaaS and PaaS earlier in
this chapter. In addition to security and availability (uptime), other new
driving forces related to cloud computing are a lower initial investment in
software and hardware, ongoing cost on an incremental basis, and the
possibility of using a standard semantic vocabulary. Some of the driving
forces related to SOAs are likely made stronger with cloud computing;
they are reduced development time, reduced maintenance costs,
availability of external services, and the availability of applications and
APIs for easier exchange of data. Over time, the remaining restraining
forces will be typical business, legal, and design issues. Adding cloud
computing generally increases the number of technical driving forces for
adopting a service-oriented architecture. Cloud computing also increases
the strength of some of the existing technical driving forces for adopting an
SOA.
CONCLUSION
This chapter used force field analysis to show how various forces drive
or restrain the adoption of services from two representatives SaaS and
PaaS cloud providers. The SaaS cloud provider was a CRM service and the
PaaS cloud provider had a platform supporting big data and BI/analytics.
The major finding of this analysis is that using cloud computing generally
increases the number of technical driving forces for adopting an SOA.
Cloud computing also increases the strength of some of the existing
technical driving forces for adopting an SOA.
98 Farrukh Arslan
REFERENCES
Chapter 4
MICROSERVICE ARCHITECTURE
Nikolay Mladenov
Bulgaria
ABSTRACT
Corresponding Author’s E-mail: mladenov1@hotmail.com.
100 Nikolay Mladenov
1. INTRODUCTION
If we compare the SOA with the earlier architectures, we will see that
20 years ago, the earlier architectures were strictly monolithic, which
means that they consisted of one single monolithic application. The
monolithic architecture was good to relatively small-sized applications.
Their logic was very tightly coupled, that is, if one function or method was
changed in the code, there was a significant chance that it would affect the
other parts of the application too. So if new developers started working and
developing, they first needed to understand how all parts of the built
software worked together.
Around the year of 2000 with the further development of the networks,
developers started developing loosely coupled and distributed applications,
so the applications were split into logical units and pieces called services,
and the services could exchange data over the improved networks. This
architecture was called service-oriented architecture (SOA).
Microservice Architecture 101
The key advantage of the SOA over the other software architectures
was that it applied internationally agreed principles in developing software.
Thus, the SOA did not suffer from incompatibilities arising from the
technology evolution and from the enormous variety of software vendors
with their different proprietary technologies.
Another key advantage of the SOA and its successors was the use of
the web service protocols as a central point for building the ways how the
services communicate with each other, as well as with the other
components of the applications. Still, the services in the SOA should not be
always web services, but the web services fit very well to the SOA
principles and goals.
However, the logical pieces were still quite large and often incorrectly
used and some vendors used proprietary tight coupling again. In the earlier
SOA applications, business logic was separated from data access providing
methods to fetch lists of data or to implement logic. Such systems were
still tightly coupled and thus, distributed computing and distributed logic
along with tight coupling, made things rather worse than better, so these
SOAs started losing popularity. Additionally, the communication between
the components was mostly done via the heavyweight XML language. The
web services required a considerable amount of processing and hardware
resources to transfer the data of an application built on the SOA principles
and this hindered communications between services.
Around the year of 2010, the term microservices came up with their
simplicity in the SOA implementation of decoupled applications.
Microservices make the front end of the applications become independent
from the data sources and they may fetch data from different sources and
from other completely separated services. One microservice may provide a
list of required data, while another one may provide access to the data by
using other interfaces at the cost of lower use of hardware and network
resources. The Microservice Architecture appeared as an improved SOA,
which kept all the advantages of the earlier SOA along with the SOA
improvements, such as the benefits from the introduction of the lightweight
RESTful web services. REST (Representational State Transfer) is an
architectural style of a web service architecture that transfers
102 Nikolay Mladenov
parallel to the old ones and to submit the new version to the caller. There
are various versioning schemes. All the versioning schemes will need at
least one service registry, one caller and different versions of the
microservices to be built in order to choose which service should become
operative. For example, one service may have more than one instances
with more than one different versions. In this case, the caller will request
only one specific version of this service and it will be returned by the
service registry. If there are more than one services that match the request,
load balancing logic is needed to be applied, so that the requests can be
distributed over all available microservices. Load balancing will enable the
service registry to return the different versions of one microservice. The
choice made by the load balancing may be a random one or according to
some logic applied in the source code of the application. The load
balancing may be implemented with a random function that randomly
returns the appropriate candidate on a random basis.
Handling dependency hell for different versions may require more
logic to the service registry for management of semantic versions. To
query the registry for various versions of one microservice, additional
methods may implement the logic needed to return the required service
according to its version. The route for the appropriate version of the
service will be called from the service registry. If a microservice with a
suitable version is not matched, then an error status “not found” will be
returned. Additional JSON or XML information data may be returned too.
Testing should create different instances of the services with different
versions and different ports, so that the microservices will be checked if
they don’t interfere with each other. The versioning shows how the service
registry clears another issue with the dependency hell and proves that the
pretty simple logic of the microservices generates a lot of flexibility and
power to the built application.
If a microservice shuts down itself with no chance to deregister,
various issues may come up. In this case additional rules should be
implemented, so that every service deregister itself on its own from the
service registry. For example, if a service is not working for ten seconds, it
Microservice Architecture 107
and responses into JSON data and message interchange formats, as well as
protection against cross-site request forgery and similar attacks. The PUT
action will be invoked by the service registry and another method will set
the interval for the service’s signal. Good practice is also if the
microservice doesn’t use a fixed port, but should randomly choose one.
Deregistering microservices will happen when they are terminated.
The service’s start and end may differ according to its environments, such
as the type of the operating systems where the application resides and
operates. Deregistering a microservice may become a very complicated
process because it should contain all options and exceptions when the
microservice ends. On one hand, the microservice may shut down correctly
after returning the response, as it was mentioned above. On the other hand,
it may fail and then its timeout will help it expire. The DELETE action will
be invoked by the service registry and another method will set the interval
for the service cleanup. However, the cleanup event may cause exceptions
and they should be handled too accordingly. For example, pressing
CTRL+C or killing the process manually may terminate the service and
should be processed by the cleanup event. Testing it will update the service
registry with the manual termination of the process and its exception. Other
cases with exceptions and time intervals may also be added and they will
depend on the operating system and the application requirements.
One of the approaches to add the logic is to implement the
microservice logic from a data source such as a file or a table from a
database server. The most important principle is the separation between
logic, data and view, so that they can be easily updated or changed. The
class for every service will get populated with the data from the data
source and its methods will make transfer of the data according to the
defined routes in the service logic. Most of the logic will request the data
from the data sources and insert it in data structures, which then can be
used by the presentation layer of the application. Testing the logic with
many scenarios will return the data according to the requests in the route.
The next stage in building the microservices architecture is to integrate
every service in the application.
Microservice Architecture 109
dependency between the caller and the receiving service. Queues are a
common way to accomplish that and their basic principle of operation is
very simple. Basically queues provide a way to handle messages between
microservices in asynchronous an orderly ways. A queue may also serve as
an intermediary microservice between the application and another service.
The message can be published to the queue and the messages will
accumulate in the queue. Several messages may enter the queue instantly
without failures and finally everything will end up on the queue. When
another microservice requests the messages, it then can consume the
messages from this queue and later finishes its operation orderly,
acknowledging to other microservices that it received all the messages
successfully and without any loss. Thus, the messages will be removed
safely from the queue. There are several queuing systems available, such
as the ones used on the AWS, Google Cloud etc. They use the RabbitMQ
as a widely known queuing framework and it may be used, so that
resources can be published and consumed. Its advantage is that it can be
installed and used on all popular and widely used operating systems,
RabbitMQ is one of the most widely used and reliable message
brokers. It can be used to receive messages from web forms, other services
etc. RabbitMQ will require a library which can communicate with it. The
Amqplib library is one example for a library dependency needed to the
RabbitMQ operations. Adding a message to RabbitMQ queue will be
implemented by a method. The method will use a channel to communicate
and the messages will reach the queue and stay until they are received by
the waiting service. The messages should be formatted as JSON or XML
according to the requirements of the implemented RabbitMQ queue.
The posted messages to the queue will be consumed by the
corresponding microservice. The consumer microservice creates a safe
channel to the RabbitMQ too and it may start consuming the messages
from the queue. Next, it parse them from the JSON format to strings and
finally, it will acknowledge the receipt from the queue and add the entries
to the database or to a file.
The major benefit from the asynchronous communication is that the
microservices should not rely on the caller responding quickly or at all.
114 Nikolay Mladenov
CONCLUSION
REFERENCES
competencies, 42, 45, 48, 49, 50, 59, 60, 61, enterprise architecture, v, vii, viii, 1, 2, 29,
65, 66, 67 30, 31, 32, 33, 34, 35, 39, 40, 41, 42, 44,
complexity, viii, 1, 5, 71, 86, 90 46, 48, 50, 52, 55, 56, 57, 60, 61, 64, 65,
computing, vii, ix, 75, 76, 78, 80, 81, 84, 93, 66, 67, 68, 69, 70, 71, 73, 74
95, 96, 97, 99, 110 environment, 10, 25, 26, 27, 80, 82, 83
conceptualization, 34 environments, viii, 25, 39, 41, 108
conference, 36, 69, 70 evolution, ix, 99, 101, 102
cost, 80, 81, 93, 94, 97, 101 execution, 25, 44, 49
curriculum, 45, 65 external relations, 47
cybersecurity, 60 extracts, 87, 88
D F
data center, 80, 82, 84, 94 fault tolerance, 84, 100, 109, 112, 114
data collection, 45, 61 financial, viii, 22, 41, 61
data set, 12, 95 flexibility, 32, 35, 36, 38, 39, 106
data structure, 104, 108, 112 force, 49, 84, 85, 86, 88, 92, 93, 94, 97
database, 21, 46, 81, 82, 84, 95, 104, 105, foundations, viii, 29, 42
108, 112, 113
database management, 81, 82, 84, 95
G
decision makers, viii, 41
Department of Defense, 49
Germany, 34, 36, 37, 64, 65, 66
distributed applications, 100
governance, 47, 55, 56, 57, 72, 73, 79
distributed computing, 101
guidelines, 10, 12, 23, 25, 54, 56
distribution, vii, 1, 3
guiding principles, 44
E H
economies of scale, 94
health, 36, 67
education, 23, 49, 68
health care, 67
educational opportunities, 49, 67
health information, 36
educational programs, 42
history, 102
employees, 43, 54
host, 82, 103
empowerment, 43, 52, 63
human, 35, 46, 49, 61, 67
engineering, 29, 52, 64, 68, 70
enterprise architect, v, vii, viii, 1, 2, 4, 29,
30, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, I
44, 45, 46, 48, 49, 50, 52, 55, 56, 57, 58,
59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, improvements, 28, 101
71, 73, 74 independence, 82
individuals, 42, 44
Index 117
industry, 49, 52, 67, 82, 85, 86, 87, 88, 90, microservices, vii, ix, x, 99, 100, 101, 102,
92 103, 104, 105, 106, 107, 108, 109, 110,
information exchange, 34, 37 112, 113, 114
information processing, 36 mobile device, 95, 102
information technology, 2, 67 modelling, 14, 30, 31
infrastructure, vii, viii, 1, 3, 5, 13, 14, 36, models, vii, viii, 2, 4, 7, 11, 12, 14, 15, 16,
37, 46, 53, 57, 81, 82, 84, 104, 111 19, 24, 25, 26, 27, 28, 31, 46, 57, 63, 64,
integration, 31, 84, 85, 93, 109 65, 68, 72
intelligence, 87, 95
interface, 77, 107
N
interoperability, 14, 47
interrelations, 3, 5, 6, 46
natural evolution, ix, 75
issues, 26, 49, 54, 56, 76, 82, 85, 87, 88, 92,
networking, 38, 83, 103
93, 97, 106, 111
numerical computations, 20
L O
landscape, 12, 35, 48
obstruction, 72
languages, 4
operating system, 84, 108, 113
leadership, 49, 51
operations, 87, 112, 113
learning, 42, 44, 45, 48, 49, 50, 51, 55, 57,
opportunities, viii, ix, 41, 48, 61, 75, 87
58, 59, 61, 62, 63, 64, 65, 66, 67, 68
organizational behavior, 53
learning culture, 49
organizational learning, 42, 63, 64
learning outcomes, 58
learning process, 44, 48, 51, 58, 62
P
M participants, 44, 45, 52, 53, 54, 56, 57, 60,
61
management, viii, 6, 17, 21, 22, 26, 31, 41,
pharmaceutical, 52
43, 47, 49, 51, 52, 53, 54, 57, 60, 61, 65,
platform, 71, 84, 93, 97
66, 68, 70, 71, 72, 73, 74, 81, 84, 95,
portfolio, 47, 54, 61
104, 106
portfolio management, 47, 61
manufacturing companies, 52
potential benefits, vii, ix, 76
mathematical methods, 68
principles, 4, 44, 49, 50, 101
measurement, 11, 20, 24, 26, 28, 30, 47, 58
professional development, 61, 68
Mediterranean, 32, 36, 38
professionals, 4, 51, 52, 54, 58, 61
messages, 86, 91, 92, 110, 113
programming, 31, 78, 81, 84, 88, 94, 105
methodology, 43, 44, 47, 48, 56, 62
programming languages, 105
microservice architecture, v, vii, ix, 99, 100,
project, 15, 25, 29, 43, 54, 61
101, 105, 114
protocols, 92, 96, 100, 101, 102, 104, 109
118 Index