Transcript Slide 1

Service Oriented Architecture
Building SOA-based Enterprise Solutions
Part 2
Adomas Svirskas
Vilnius University
October 2005
Agenda
• Towards SOA realisation
• SOA-oriented analysis and design
• Identification, specification and realisation
of services
SOA is…
• … “about bridging the gap between
business and IT through a set of businessaligned IT services using a set of design
principles, patterns, and techniques”. [1]
• … going mainstream: “Gartner predicts
that by 2008, more than 60 percent of
enterprises will use SOA as a "guiding
principle" when creating mission-critical
applications and processes”. (ZDNet)
SOA is...
…a new approach to developing applications [2]
What Is Important?
• When planning to build an SOA solution the
following aspects are important:
– Perception of the SOA modelling and design as an
inter-disciplinary practice cutting through the ObjectOriented Analysis and Design (OOAD), Enterprise
Architecture (EA) frameworks, and Business Process
Modeling (BPM) [3]
– Knowing the activities necessary for the analysis and
design required to build SOA-based solutions
What else is Important?
• When implementing an SOA solution the
following aspects are important:
– Understanding of interrelationships between
services, components and objects
– Understanding of the role of enterprise-scale
components
– Understanding of asynchronous nature of
interactions
SOA vs. OOAD, EA and BPM
SOAD and its ingredients: OOAD, BPM, and EA [3]
SOA vs. OOAD/CBD, EA and BPM
• OOAD focus is on class-level design thus
the level of abstraction is too low for
business service modelling
• Associations such as inheritance result in
tight coupling and too much of
dependency between the parties
• OOAD is the right approach for design of
service realisation
The Layers of Design
The layers of design [3], [4]
Flexibility through Loose Coupling
• Contrary to the Object and Component Oriented
Development (OOD and CBD) the SOA is about
linking resources on demand in value nets
• Value net example: A travel agency is allowed
access into an airline reservation system and
coordinates it with a rental car agency and hotel
chain, updating their records and sending the
itinerary to your electronic organizer
• Key: Deferral of the choice of which service
provider to opt for at a given point in time (loose
coupling)
Scalability Through Asynchronous
Behavior and Queuing [4]
• It makes sense to design the services to
be asynchronous:
– Reducing the time a service waits for a
response
– Allowing the provider to service multiple
clients efficiently
• Message queue is used to decouple a
service façade from the service to deal
with very high load (TPM approach)
SOA Architectural Principles
SOA solution consists of a set of business-aligned IT services that
collectively fulfill an organization's business processes and goals.
One can choreograph these services into composite applications and
invoke them through standard protocols. [1]
SOA Modelling
• “Raising of abstraction into the business domain
taking the whole IT landscape into account”
(Grady Booch)
• Identification, specification and realisation of
services
• Modelling of the flows and composition of the
services
• Planning of deployment, monitoring,
management, and governance of the services
Architectural Template for SOA
An abstract view of SOA depicts it as a partially layered
architecture of composite services. [1]
Operational Systems Layer [1]
• Consists of existing custom built
applications, otherwise called legacy
systems and older object-oriented system
implementations, as well as business
intelligence applications
• The composite layered architecture of an
SOA can leverage existing systems and
integrate them using service-oriented
integration techniques
Enterprise Components Layer [1]
• The layer of enterprise components that
are responsible for realizing functionality
and maintaining the QoS of the exposed
services
• As enterprise-scale assets, they are
responsible for ensuring conformance to
SLAs through the application of
architectural best practices
Services Layer [1]
• The services the business chooses to fund
and expose reside in this layer
• They can be discovered or be statically
bound and then invoked, or possibly,
choreographed into a composite service
• The enterprise components provide
service realization at runtime using the
functionality provided by their interfaces
Business Process
Composition/Choreography Layer
• Compositions and choreographies of
services exposed in Layer 3 are defined in
this layer
• Services are bundled into a flow through
orchestration or choreography, and thus
act together as a single application
• These applications support specific use
cases and business processes
Choreography vs. Orchestration [5]
Access or Presentation Layer [1]
• SOA attempts to decouple the user interface
from the components, and ultimately needs to
provide an end-to-end solution from an access
channel to a service or composition of services.
• There is an increasing convergence of
standards, such as Web Services for Remote
Portlets Version 2.0 and other technologies, that
seek to leverage Web services at the application
interface or presentation level
Integration (ESB)
• This layer enables the integration of services
through the introduction of a reliable set of
capabilities, such as intelligent routing, protocol
mediation, and other transformation
mechanisms, often described as the Enterprise
Service Bus (ESB)
• Web Services Description Language (WSDL)
specifies a binding, which implies a location
where the service is provided. On the other
hand, an ESB provides a location independent
mechanism for integration.
Quality of Service (QoS)
• This layer provides the capabilities
required to monitor, manage, and maintain
QoS such as security, performance, and
availability
• This is a background process through
sense-and-respond mechanisms and tools
that monitor the health of SOA applications
References
• [1] Arsanjani, A. Service-oriented modeling and architecture. 2004.
http://www-128.ibm.com/developerworks/webservices/library/wssoa-design1/
• [2] Carges, M. Taking SOA from "Pilot to Production" with Service
Infrastructure
http://www.infoworld.com/event/soa/InfoWorld_SOA_Mark_Carges.p
pt
• [3] Zimmerman, O. et al. Elements of Service-Oriented Analysis and
Design. 2004. http://www128.ibm.com/developerworks/webservices/library/ws-soad1/
• [4] Brown, A. et al. Using Service-Oriented Architecture and
Component-Based Development to Build Web Service Applications
• [5] Booth, D. 2005. From Web Services to the Semantic Web: Global
Data Reuse, http://www.w3.org/2005/Talks/0110-dboothsemweb/slide14-0.html