1. Book Author: Nicolai M. Josuttis
Chapter Two: SOA
IT-Slideshares http://it-slideshares.blogspot.com/
2. 2.1 Definitions of SOA
SOA is a paradigm
(style, perspective, concept, representation or philosophy)
that leads to a value system for large distributed systems
with different owners.
SOA is NOT a concrete tool or framework.
SOAs comprise loosely coupled, highly interoperable
application services.
A SOA is independent of development technology (such as
Java and .NET)
The software components become very reusable because
the interface is defined in a standards-compliant manner.
3. 2.1.1 SOA is a Paradigm
SOA is not a concrete architecture: it is something that
leads to a concrete architecture.
SOA might call it a
style, paradigm, concept, perspective, philosophy, or
representation.
You can't buy SOA. There is no tool or recipe you can
use to make everything work.
You must make specific decisions that are appropriate
for your circumstances.
4. 2.1.2 SOA Improves flexibility
The key reason for using SOA is that it should help you in
your business
A critical factor for business success these days is keeping
time to market share. E.g.
You can rant and rave all you want about software quality (or
lack thereof), but the marketing guys run the world, and they
want market share now . . . period, end of discussion. My job
is to deliver on time, on budget, with the "appropriate" quality
metrics.
Flexibility has a lot to do with clear
organization, roles, processes, and so on. Therefore, SOA
has to deal with all these aspects.
5. 2.2 SOA Drivers: Distributed Sys
Distributed Systems: SOA is well-suited
Different Owners:
The OASIS SOA Reference Model's definition of SOA
continues by stating that those distributed capabilities
"may be under the control of different ownership
domains.
SOA includes practices and processes that are based
on the fact that networks of distributed systems are
not controlled by single owner.
6. 2.2.2 SOA Drivers:Different Owners
you have to compromise with others, and you have
to accept that different priorities and solutions
exist
7. 2.2.3 SOA Drivers: Heterogeneity
Large systems use different platforms, different programming languages (and
programming paradigms), and even different middleware. They are
heterogeneous. Similar to "agile" methods of software development, which
accept that requirements change instead of trying to fight against those
changes, SOA just accepts that there is heterogeneity in large systems
8. 2.3 SOA Concepts
Services
The goal of SOA is to structure large distributed systems based on the
abstractions of business rules and functions.
A service is an IT representation of some business functionality
at this level of abstraction, platform-specific details don't matter.
Thus, platforms can be heterogeneous.
Interoperability
for SOA, high interoperability is the beginning, not the end.
Loose coupling: Minimizing dependencies, boost scalability. SOA has
goals. And remember, SOA is only a paradigm, not a recipe.
Flexibility
Scalability
Fault tolerance
9. 2.4 SOA Ingredients
You can’t buy SOA.
Need the right degree of centralization, set up corresponding processes, projects.
Infrastructure
The infrastructure of a SOA landscape is called an enterprise service bus (ESB).
The key feature of the ESB is that it enables you to call services between heterogeneous systems. Its
responsibilities include data transformation, (intelligent) routing, dealing with security and
reliability, service management, monitoring, and logging.
Architecture
OASIS SOA Reference Model Definition of SOA
Web Service-based architectures and technologies are specific and concrete. While the concepts in the
Reference Model apply to such systems, Web Services are too solution specific to be part of a general
reference model.
Processes
Business Process Modeling (BPM)
Model-Drive Software Development (MDSD)
Governance
Set up the right process to establish SOA in your organization
Finding the right people who are able to combine all the different SOA ingredients,
SOA competence center deals with infrastructure, architecture, processes …
Understanding Governance, management support, doing the right homework are key success factors
10. 2.5 SOA Is NOT a Silver Bullet
SOA is the ideal solution for very special
circumstances: heterogeneous distributed systems
with different owners.
But there's a price to pay for dealing with
heterogeneity and different owners, and providing
flexibility, scalability, and fault tolerance.
If you have everything under control (i.e., a
homogenous system and/or no different owners), SOA
might be pointlessly expensive for you.
11. 2.6 SOA is Not a Specific Technology
SOA is the paradigm; Web Services are one possible
way to realize the infrastructure by using a specific
implementation strategy.
Web Services are emerging as the de facto standard for
SOA implementations.
Web Services might help provide the
infrastructure, but you will still have to construct the
architecture, and set up all the complicated processes.
Web Services standard is not mature.
SOA with other technologies (CORBA, MQ, TIBCO
…etc)
12. 2.7 SOA Versus Distributed Objects
The idea was to enable remote access to objects of
external systems.
Distributed Objects approach was having one general
business object model spanning distributed systems
which may be hard to organize, too much
centralization, and too many dependencies.
With SOA, data is exchanged between different
systems, and each system operates on its local
(redundant) copy with its own local methods and
procedures. Unlike with distributed objects, this
approach decouples the systems and lets them scale.
13. 2.8 SOA Terminology
A provider is a system that implements a service (a
business functionality) so that other systems can call
it.
A consumer (requestor) is a system that calls a service
(uses a provided service).
If you want to use a generic term for both the provider
and the consumer, you can use the term participant.
14. 2.9 Summary
SOA is an architectural paradigm for dealing with business processes distributed over a
large landscape of existing and new heterogeneous systems that are under the control of
different owners.
The key technical concepts of SOA are services, interoperability, and loose coupling.
The key ingredients of SOA are infrastructure, architecture, and processes (including the
meta-process of establishing SOA, governance).
The key success factors for SOA are understanding, governance, management
support, and doing your homework.
SOA is neither a specific technology nor a silver bullet. There are places where SOA is
appropriate and places where it is not.
Web Services are one possible way of realizing the infrastructure aspects of SOA. Using
Web Services is often recommended because it seems to be becoming established as the
standard technology.
IT-Slideshares http://it-slideshares.blogspot.com/