4 Architecting IoT Cloud
221
• Existing Monolithic App – Your current monolithic application is experiencing
issues that could be resolved by breaking the application into multiple microservices.
It is worth pointing out that software community skeptics consider microservices
a simple brand remodeling of service-oriented architecture (SOA). Initial records
regarding the use of distributed services as a means of software architecture can
be dated back to the 1980s. However, SOA was not officially named until the mid1990s when the Gartner Group labeled and adopted the new trend, popularizing it
globally.
SOA was not able to address many issues created by monolithic architecture, and
in many aspects, SOA is a monolith. Although it is comprised of multiple services,
SOA is still primarily course-grained with high levels of interdependency. In SOA
architecture, there are several software components that provide services to other
components through a pre-defined communications protocol. In SOA, each module
can function both as a provider of services and as a consumer of services. Enterprise
service bus (ESB) is a form of integration architecture used within SOA that enables
communication through a shared communication bus made up of various pointto-point consumer and provider connections. Additionally, all services in the SOA
are able to share data storage. Figure 4.32 illustrates an example of SOA and ESB
architecture [29].
Microservice architecture and SOA have several similarities as well as differences that make them unique. Both architectures contain services with a specific
responsibility; therefore, service development can take place in several technology
stacks, offering technological diversity to development teams. In both architectures,
service development can be divided among multiple teams; however, all teams
should understand the ESB integration in SOA which is not the case in microservice
architecture [29].
Fig. 4.32 Service-oriented
architecture and enterprise
service bus (ESB)
Service
consumer
)
B
S
E
(
s
u
b
e
c
i
v
r
e
s
e
s
i
r
p
r
e
t
n
E
Service
consumer
Service
provider
Service
provider
Service
provider
221
• Existing Monolithic App – Your current monolithic application is experiencing
issues that could be resolved by breaking the application into multiple microservices.
It is worth pointing out that software community skeptics consider microservices
a simple brand remodeling of service-oriented architecture (SOA). Initial records
regarding the use of distributed services as a means of software architecture can
be dated back to the 1980s. However, SOA was not officially named until the mid1990s when the Gartner Group labeled and adopted the new trend, popularizing it
globally.
SOA was not able to address many issues created by monolithic architecture, and
in many aspects, SOA is a monolith. Although it is comprised of multiple services,
SOA is still primarily course-grained with high levels of interdependency. In SOA
architecture, there are several software components that provide services to other
components through a pre-defined communications protocol. In SOA, each module
can function both as a provider of services and as a consumer of services. Enterprise
service bus (ESB) is a form of integration architecture used within SOA that enables
communication through a shared communication bus made up of various pointto-point consumer and provider connections. Additionally, all services in the SOA
are able to share data storage. Figure 4.32 illustrates an example of SOA and ESB
architecture [29].
Microservice architecture and SOA have several similarities as well as differences that make them unique. Both architectures contain services with a specific
responsibility; therefore, service development can take place in several technology
stacks, offering technological diversity to development teams. In both architectures,
service development can be divided among multiple teams; however, all teams
should understand the ESB integration in SOA which is not the case in microservice
architecture [29].
Fig. 4.32 Service-oriented
architecture and enterprise
service bus (ESB)
Service
consumer
)
B
S
E
(
s
u
b
e
c
i
v
r
e
s
e
s
i
r
p
r
e
t
n
E
Service
consumer
Service
provider
Service
provider
Service
provider
