Service Oriented Architecture
Service Oriented Architecture
Oriented
Architecture
Lecture 4
SOA
Service-oriented architecture (SOA) is a
style of software design where services
are provided to the other components by
application components, through a
communication protocol over a network.
The basic principles of service-oriented
architecture are independent of vendors,
products and technologies.
SOA
SOA Stack
As you can see in the preceding diagram, there are two
main layers of the SOA: a service consumer layer and a service
provider layer. The service consumer layer is the point at which all
the consumers, such as human consumers and other service
consumers, interact with the SOA. The provider layer is the point
where all services are defined within the SOA.
In the preceding diagram, the Enterprise Service Bus (ESB) provides
communication by a common communication protocol, or
communication bus, which has connections between the consumers
and providers. In SOA architecture, database storage is shared
between all services.
SOA has more dependent ESBs. The ESBs implement a
communication system between mutually interacting software
applications with microservices. It also uses faster messaging
mechanisms.
Services components
Services are units of logic that run in a network
Business Process – e.g. email, quote, insurance
policy etc
Technical Task – Hitting a database, building a
GUI, providing data sockets
Accessing another service – In runtime, another
application can be accessed and many kinds of
requestors can be served [ webapps, data call,
REST APIs ]
When SOA?
SOA implies a style of development that focuses on the
business as a whole and on modularity and reuse. SOA is not
for only new code, though. You might migrate existing
applications in the following cases: The applications are
monolithic, combining the logic of the user interface,
business processing, and data access such that update of
one kind of logic requires your company to test multiple
kinds of behavior.
The applications are hard to understand because their logic
is monolithic and was repeatedly patched rather than
rewritten as requirements changed. Updates take extra time
as developers try to decipher the logic; and as the
complexity grows, additional errors accompany the
updates.
The application inventory has duplicate logic. Requests for
change are disruptive, requiring changes in several places.
Services Stack
1. Integration – Flow of
activities, e.g. insurance
policy processing
2. Business Svcs – Validation,
Logic, Communication to
WebApps
3. Data Access Svcs – DB
queries, Message Queues,
Reporting
4. Loose Coupling
Business Implications of SOA
https://blogs.oracle.com/reynolds/components-of-a-
service-oriented-architecture
Benefits of SOA
Think of how life used to be within an IT department. You had all
this legacy technology and often bulky equipment for software,
hardware, and networking. Remember how hard it was to make
a change to any of the three? An SOA is designed to make
change easier and simpler.
Easy-to-configure components: Service-oriented architecture
make your business processes run smoothly.
Flexibility to assemble these different services and mix-and-
match any way you see fit: This flexibility allows IT to better meet
business needs
Service reuse and reconfiguration: When a service needs to be
updated or changed, rather than starting completely from
scratch, developers can simply reconfigure the way the services
are deployed.
Amazon
In order to fully understand the positive impact SOA can have on the
business, let’s take a look at a high-profile example of SOA
transformation in recent years with the story of Amazon.
Amazon started as a book retailer, and has grown to become a goliath
in everything from retail and cloud computing to streaming television
shows and movies. But in 2002, CEO Jeff Bezos sent forth a mandate
broken down as follows:
All data and functionality needs to be exposed through service
interfaces
No other methods of process communication are permitted
All services must be developed with the outside world in mind
This was the groundwork that led to the creation of Amazon Web
Services; an early decision that every single function of Amazon’s code
base must be an exposed service. Total game changer and one of SOAs
greatest success stories.