Unit 1
Unit 1
INTRODUCTION TO SOA
Contents
Introduction to services
Fundamentals to SOA
Definition to SOA
Common characteristics of contemporary SOA
Common misperceptions about SOA
Common tangible benefits of SOA
Common pitfalls of adopting SOA
The Evolution of SOA: from XML to Web
services to SOA
9. The continuing evolution of SOA
10.Comparing SOA with N-tier architecture: The
roots of SOA
1.
2.
3.
4.
5.
6.
7.
8.
1. What is Services?
Service is
component of distinctive functional meaning
that typically encapsulate a high-level
business concept
Lego block
Service contains
Contract message type def, contraint,
description (comment)
Interface set of operations
Implementation Logic and data
2. Fundamentals of SOA
Logic required to solve a large
problem can be better constructed,
carried out, and managed if it is
decomposed into a collection of
smaller, related pieces.
Each of these pieces addresses a
concern or a specific part of the
problem.
key aspects:
1. Loose coupling - minimizes dependencies and only retain an
awareness of each other.
2. Service contract - agreement, as defined collectively by one
or more service descriptions and related documents.
3. Autonomy - Services have control over the logic they
encapsulate.
4. Abstraction - services hide logic from the outside world.
5. Reusability Logic is divided into services with the intention of
promoting reuse.
6. Composability - Collections of services can be coordinated and
assembled to form composite services.
7. Statelessness - Services minimize retaining information
specific to an activity.
8. Discoverability- Services are designed to be outwardly
descriptive so that they can be found and assessed via
available discovery mechanisms.
SUMMARY OF KEY
POINTS
SOA and service-orientation are
implementation-agnostic paradigms
that can be realized with any suitable
technology platform.
Our primitive SOA model represents a
mainstream variation of SOA based
solely on Web services and common
service-orientation principles.
"SOA" implies the primitive SOA model.
3. Definition of SOA
Gartner- A style of multi-tier computing
that helps organizations share logic and
data among multiple applications and
usage modes
IBM - An Application Architecture within
which all functions are defined as
independent services with well-defined
invokable interfaces which can be called
in defined sequences to form business
processes
Summary
SOA represents a model in which functionality is
decomposed into small, distinct units (services), which
can be distributed over a network and can be
combined together and reused to create business
applications.
Solutions that use a service-oriented approach are
intended to satisfy business or mission goals that
include:
quality requirements such as easy and flexible integration
with legacy systems (interoperability),
streamlined business processes (maintainability),
reduced costs (modifiability),
agility to handle rapidly changing business processes
(extensibility).
4. Common characteristics of
contemporary SOA
Major software vendors are continually
building new Web services specifications and
building increasingly powerful XML and Web
services support into current technology
platforms.
The result is an extended variation of serviceoriented architecture we refer to as
contemporary SOA
Contemporary SOA builds upon the primitive
SOA model by leveraging industry and
technology advancements to further its
original ideals
5. COMMON
MISPERCEPTIONS ABOUT SOA
6. COMMON TANGIBLE
BENEFITS OF SOA
6.7 "Best-of-breed"
alternatives
IT departments are frequently required
to push back and limit or even reject
requests to alter or expand upon existing
automation solutions.
Because SOA establishes a vendorneutral communications framework, it
frees IT departments from being chained
to a single proprietary development
and/or middleware platform.
7. COMMON PITFALLS OF
ADOPTING SOA
SUMMARY OF KEY
POINTS
Many of the pitfalls relate to a limited
understanding of what SOA is and what is
required to fully incorporate and standardize
service-orientation.
A transition plan is the best weapon against the
obstacles that tend to face organizations when
migrating toward SOA.
Staying in touch with commercial and
standards-related developments is an
important part of keeping an existing SOA
aligned with future developments.
SUMMARY OF KEY
POINTS
The core XML technology set has become a common part
of distributed Internet architecture. It now also provides a
foundation data representation and data management
layer for SOA.
The first-generation Web services architecture grew out of
the development of three key standards: WSDL, SOAP, and
UDDI. While UDDI is still an optional discovery mechanism
for most environments, WSDL and SOAP have become core
technologies that build upon the XML layer to define the
fundamental communications framework for SOA.
Though contemporary SOA has been shaped by the
emergence and industry-wide acceptance of XML and Web
services, the arrival of SOA introduces changes to the
manner in which XML and Web services have been
traditionally applied.
A Comparison of Standards
Organizations
Vendor alliances
Forming an alliance allows vendors to
join forces in order to attain common
goals. Generally, the lifespan of an
alliance is centered around the
development cycle of a particular
specification.
Choosing a standards
organization
Vendors have market-driven goals fueled
by pressures to deliver product releases
that meet customer demands and match
or outdo what the competition is offering
(or planning to offer).
Given that the W3C relies on a longer
standards development process, it is
tempting for vendors to submit their
standards to OASIS instead.
SUMMARY OF KEY
POINTS
The W3C's contributions to advancing the World Wide
Web cannot be understated. In the SOA arena, its
role
has been primarily as a standards body responsible
for specifications that provide core and generic
functionality.
OASIS evolved from an SGML standards organization
to one focused almost exclusively on eBusiness
specifications. Its overall goal is to support the
creation of standards targeted at specific industries
and to foster trade and commerce between
eBusiness-enabled enterprises.
10.1 Application
architecture
Application architecture is to an
application development team what a
blueprint is to a team of construction
workers.
Enterprise architecture is common for a
master specification to be created,
providing a high-level overview of all
forms of heterogeneity that exist within an
enterprise, as well as a definition of the
supporting infrastructure.
SOA
Service-oriented architecture spans both
enterprise and application architecture domains.
The benefit potential offered by SOA can only be
truly realized when applied across multiple
solution environments.
SOA belongs in those areas that have the most
to gain from the features and characteristics it
introduces.
An SOA can refer to an application architecture
or the approach used to standardize technical
architecture across the enterprise.
Application logic
Client-server environments place the
majority of application logic into the client
software. This results in a monolithic
executable that controls the user
experience, as well as the back-end
resources.
Any piece of software capable of
exchanging SOAP messages according to
required service contracts can be
classified as a service requestor.
Application processing
Because most client-server application logic
resides in the client component, the client
workstation is responsible for the bulk of the
processing. The 80/20 ratio often is used as a
rule of thumb, with the database server
typically performing twenty percent of the work.
Processing in SOA is highly distributed. Each
service has an explicit functional boundary and
related resource requirements. In modeling a
technical service-oriented architecture, you
have many choices as to how you can position
and deploy services.
Technology
The emergence of client-server applications
promoted the use of 4GL programming
languages, such as Visual Basic and
PowerBuilder.
The technology landscape of SOA, though, has
become increasingly diverse. In addition to the
standard set of Web technologies (HTML, CSS,
HTTP, etc.) contemporary SOA brings with it
the absolute requirement that an XML data
representation architecture be established,
along with a SOAP messaging framework, and
a service architecture comprised of the everexpanding Web services platform.
Security
Besides the storage and management of
data and the business rules embedded in
stored procedures and triggers, the one
other part of client-server architecture that
frequently is centralized at the server level
is security.
In SOA Security becomes a significant
complexity directly relational to the degree
of security measures required. Multiple
technologies are typically involved, many of
which comprise the WS-Security framework
Administration
Because each client housed the application
code, each update to the application
required a redistribution of the client
software to all workstations. In larger
environments, this resulted in a highly
burdensome administration process.
Once SOAs evolve to a state where services
are reused and become part of multiple
service compositions, the management of
server resources and service interfaces can
require powerful administration tools,
including the use of a private registry.
Application logic
Traditional distributed applications consist of a
series of components that reside on one or
more application servers. Components are
designed with varying degrees of functional
granularity, depending on the tasks they
execute, and to what extent they are considered
reusable by other tasks or applications.
Contemporary SOAs still employ and rely on
components. However, the entire modeling
approach now takes into consideration the
creation of services that encapsulate some or all
of these components. These services are
designed according to service-orientation
principles and are strategically positioned to
expose specific sets of functionality
Application processing
Distributed Internet architecture promotes
the use of proprietary communication
protocols, such as DCOM and vendor
implementations of CORBA for remote
data exchange.
SOA, on the other hand, relies on
message-based communication. This
involves the serialization, transmission,
and deserialization of SOAP messages
containing XML document payloads.
Technology
Because many current distributed applications use XML
and Web services, there may be little difference
between the technology behind these solutions and
those based on SOA.
One clear distinction, though, is that a contemporary
SOA will most likely be built upon XML data
representation and the Web services technology
platform.
Beyond a core set of Internet technologies and the use
of components, there is no governance of the
technology used by traditional Internet applications.
Thus XML and Web services are optional for distributed
Internet architecture but not for contemporary SOA.
Security
To ensure the safe transportation of information and
the recognition of user credentials, while preserving
the original security context, traditional security
architectures incorporate approaches such as
delegation and impersonation.
SOA- Relying heavily on the extensions and
concepts established by the WS-Security framework,
the security models used within SOA emphasize the
placement of security logic onto the messaging
level. SOAP messages provide header blocks in
which security logic can be stored.
Administration
Maintaining component-based applications
involves keeping track of individual component
instances, tracing local and remote communication
problems, monitoring server resource demands,
and, of course, the standard database
administration tasks.
Enterprise-level SOAs typically require additional
runtime administration. Problems with messaging
frameworks (especially when working with
asynchronous exchange patterns) can more easily
go undetected than with RPC-based data
exchanges.