11. What is SOA?
• Service-Oriented Architecture (SOA) is an architectural
style that supports service-orientation. Service-
orientation is a way of thinking in terms of services
• A service is a function that is well-defined, self-
contained, and does not depend on the context or state
of other services
• A service-oriented architecture is essentially a collection
of services. These services communicate with each other
• There are two roles in SOA: a service provider and a
service consumer
12. SOA in plain english
Consumer Applications House
Bridge Services Infrastructure
Provider Components City
13. The four tenets of SOA
• Boundaries are explicit
• Services are autonomous
• Services share schema and contract, not class
• Service compatibility is based on policy
Don Box, Microsoft
14. Boundaries are explicit
• A boundary represents the border between a
service’s public interface and its internal,
private implementation
• A service's boundary is published by means of
WSDL and may include assertions dictating the
expectations of a given service
15. Services are autonomous
• Services are entities that are independently
deployed, versioned, and managed
16. Services share schema and
contract, not class
• A service's contract is generally defined using WSDL
or BPEL for aggregations of services. Service's
contract defines the behavior of the service itself
• Schema defines the structure and content of the
messages
• Classes combine behavior and data (messages) into a
single programming-language or platform-specific
construct. Services communicating using XML
schema-based messages are agnostic to both
programming languages and platforms, ensuring
broader levels of interoperability
17. Service compatibility is based
on policy
• It is not possible to communicate some requirements for
service interaction in WSDL alone
• Policy expressions can be used to separate structural
compatibility (what is communicated) from semantic
compatibility (how or to whom a message is communicated)
• Policy expressions provide a configurable set of interoperable
semantics governing the behavior and expectations of a given
service
e.g. A government security service may require a policy
enforcing a specific service level (Passport photos meeting
established criteria must be cross-checked against a terrorist
identification system)
18. What are microservices?
“The microservice architectural style is
an approach to developing a single
application as a suite of small services,
each running in its own process and
communicating with lightweight
mechanisms, often an HTTP resource
API”
Martin Fowler, ThoughtWorks
21. SOA vs Microservices (1)
SOA four tenets:
• Boundaries are explicit
• Services are autonomous
• Services share schema and contract, not class
Microservices does’t expose schema and contract. Each
services communicate with lightweight mechanisms
(often an HTTP resource API)
• Service compatibility is based on policy
22. SOA vs Microservices (2)
Microservices must be independently
deployable by fully automated
deployment machinery, whereas SOA
services are often implemented in
deployment monoliths
Torsten Winterberg, Oracle ACE Director