Chapter 6 Service Orientation Design

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 32

1/25/2019 1

 a design paradigm comprised of a specific set of


design principles that, when applied in the
design process, results in service-oriented
solution logic
 Service-oriented solution logic: is an application
that employs services as the primary building
blocks

1/25/2019 2
Figure 4.1 Three individuals, each capable of providing a distinct service.

1/25/2019 source SOA Systems Inc. 3


Figure 4.2 A company that employs these three people can compose their capabilities to carry out its business.

1/25/2019 source SOA Systems Inc. 4


Compare:
Service to object/Class
Capabilities to Methods

Figure 4.3 Much like a human, an automated service can provide multiple capabilities.

1/25/2019 source SOA Systems Inc. 5


 Uses the theory of: “Separation of Concerns”
 A larger problem is more effectively solved
when decomposed into a set of smaller
problems or concerns

1/25/2019 6
 Partition the solution logic into capabilities
 Each capability is designed to solve an
individual concern
 Related capabilities can be grouped into
units of solution logic or services
 Service oriented solution logic is comprised
of services

1/25/2019 7
 Service standard contract
 Service loose coupling
 Service abstraction
 Service reusability
 Service autonomy (self governance)
 Service discoverability
 Service composability

1/25/2019 8
 Service express their capabilities via a service
contract
 Service contract should be standardized to
ensure that the endpoints established by
services are consistent, reliable, and governable

1/25/2019 9
 “Services within the same service inventory are in compliance with the same
contract design standards."
 Services use service contract to

 Express their purpose


 Express their capabilities
 Use formal, standardized service contracts
 Focus on the areas of

 Functional expression
 Data representation
 Policy
Source: Thomas Erl
 Ensure consistent expression of service
purpose and capabilities
 Standardized to support service reusability
and interoperability
 Can have technical and non-technical
information about service
 We emphasize on technical contract
 Required whenever two programs need to
connect
Figure 5.1 The fundamental role of this principle is to ensure the consistent expression of service capabilities and
the overall purpose of the service as defined by the parent service context.

Copyright SOA Systems Inc.


 A service description document(s) that
provides technical constraints and
requirements as well as any semantic
information the service owner wishes to
make public
 Can consists of a group of service description
documents, each of which describe a part of
the service
 Service contracts provide three types of
information
 Functional definition
 Data types definition
 Policies definition
Figure 5.2 Possible service description documents that can comprise a contract for a service implemented as a
Web service. The subset of these documents that establishes the technical interface for the service can
be considered the technical service contract.

Copyright SOA Systems Inc.


 WSDL definition: define functional
capabilities (functional expression)
 XML schema language: define the data
model for message exchanged via web
service (data representation)
 WS-Policy language: define policy
assertions and attached to various parts of
WSDL (policies)
<operation name = “Multiply”>
<input message=“tns:NumbersMessage”/>
<output message=“tns:ResultMessage”/>
</operation>
 Standardization of service functional expression
 Standardization of service data representation
 Standardization of service policies
Figure 5.6 Specific constructs within common Web service description documents that are affected by functional
expression design standards.

Copyright SOA Systems Inc.


The manner in which service contracts are designed directly affects the extent to which some of the most
important service-orientation principles can be realized.

Copyright SOA Systems Inc.


 Coupling: connection or relationship between
two things
 Loosing coupling: reduce the level of
dependency
 Service loose coupling: reduce the
dependencies between services in their design,
evolution, and implementation while still
guaranteeing baseline interoperability

1/25/2019 21
 “Service contracts impose low consumer
coupling requirements and are themselves
decoupled from their surrounding
environment."
 Create specific types of relationships
within and outside of service boundaries
with a constant emphasis on reducing
(“loosening”) dependencies between

 Service contract
 Service implementation
 Service consumers

Source: Thomas Erl


 Hide as much of the underlying details of the
service as possible
 Enable and preserve service loose coupling

1/25/2019 23
 “Service contracts only contain essential information and information about services
is limited to what is published in service contracts”
 Avoid unnecessary service information, meta-data.
 Hide as much of the underlying details of a service as possible.

 Enables and preserves the loosely coupled


relationships
 Plays a significant role in the positioning and
design of service compositions Source: Thomas Erl
The Service Loose Coupling and Service Abstraction principles share a common dynamic
in that the application of each supports the other.

1/25/2019 25
 Services are enterprise resources that can be
reused for multi-purpose logic
 Reusability is a core part of typical service
analysis and design
 Reusability forms the basis for service
models

1/25/2019 26
 “Services contain and express agnostic logic and can be positioned as reusable
enterprise resources."
 Reusable services have the following characteristics:

 Defined by an agnostic functional context


 Logic is highly generic
 Has a generic and extensible contract
 Can be accessed concurrently

Source: Thomas Erl


 Services need to have a significant degree of
control over its environment and resources
 Service autonomy increases its reliability and
behavior predictability

1/25/2019 28
 "Services exercise a high level of control over their underlying runtime execution
environment."
 Represents the ability of a service to carry out its logic independently of outside
influences
 To achieve this, services must be more isolated
 Primary benefits

 Increased reliability
 Behavioral predictability

Source: Thomas Erl


 Service need to be easily identified and understood
when opportunities for reuse present themselves
 "Services are supplemented with communicative meta
data by which they can be effectively discovered and
interpreted."
 Service contracts contain appropriate meta data for
discovery which also communicates purpose and
capabilities to humans
 Store meta data in a service registry or profile
documents
1/25/2019 30
 Services are expected to be composed
effectively to form a complex solution logic

1/25/2019 31
While the principles on the right-hand side want to add specific physical characteristics to the service
design, the principles on the left act as regulators to ensure that these characteristics are implemented
in a coordinated and appropriate manner.
1/25/2019 32

You might also like