Hi,

As promised, I'm typing in some more detailed
information about the definition of SOA.  I was going
to type some text from the two books related to IONA
customer experiences with SOA (mine and Enterprise
SOA) but I discovered some good information among our
SOA training materials (also based on experiences
within our customers' SOA projects), so I'm going to
be a bit lazy and just cut and paste some of that.  

I hope it provides helpful detail and formality around
the definition of services and SOA.  

Apologies for the formatting difficulties in
transfering the text from PowerPoint.

Eric


Definition of service
---------------------

A service is a package of closely related standardized
functions, which are called repeatedly in a similar
fashion, and should therefore be implemented by a
dedicated facility, which can be specialized to
perform them.

Example: Account Management
A service can be partitioned and have multiple service
functions.
 Example: Open new account

The smallest subunits within service functions are
called service primitives.
  Example: Generate next available account number


Characteristics needed to describe a service
--------------------------------------------

Service requester (“client”)
--Who/which components use or need the service?
--For the service requester, the provided service is
most important, and not how it is implemented
(principle of information and implementation hiding)

Service provider (“server”)
--Who/which components implement or provide the
service? 
--is responsible for hosting the service, and ensuring
the promised QoS
-- may charge for service usage

Qualities of Service (QoS)
-- What are the parameters that allow to distinguish
good service provisioning from bad?
-- Examples: Reliable, predictable execution, cost,
execution time, level of privacy, other guarantees

Interfaces
----------

An interface constitutes the specification of a
service, that is implemented by a certain component.
The interface defines a contract, to which the
component that implements it has to comply.

Signature of interfaces can be described using formal
languages
-- Web Services Description Language (WSDL)
-- OMG/ISO Interface Definition Language (IDL) (for
CORBA)
-- UML Object Constraint Language (OCL)
-- But also: Java, C++ headers, . . .

Type-safe interfaces sometimes introduce tight
coupling
-- Web Services don’t force you into type-safe
interfaces
-- Different message types may be acceptable to a
service


On the question of architecture [Mary Shaw]:
--------------------------------------------

Software architecture encompasses the set of
significant decisions about the organization of a
software system 
-- selection of the structural elements from which the
system is composed, and the interfaces to these
-- behavior as specified in collaborations among those
elements
-- (de)composition of these structural and behavioral
elements into a larger system
-- architectural style that guides this organization 

On the definition of architectural style
----------------------------------------

An architectural style defines a family of systems in
terms of a pattern of structural organization
[Garland/Shaw 96]

An architectural style defines:
-- a vocabulary of design elements such as components
(client, server, filter, layer,    adapter…), and
connector types (pipe, broadcast, queue,...)
-- a set of configuration rules (constraints) on how
they can be combined

Example styles in Software Architecture: Event-based,
Repository-based, virtual machines, layered

Good reference: Martin Fowler book on Enterprise
Integration Architecture – introduces notation for
architectural components of enterprise systems

Definition of SOA
-----------------

The architectural style of an application is called
service-oriented if it meets the following criteria:

It is not monolithic; common blocks of functionality
are broken out of the applications and are instead
provided by services
-- A significant part of the overall functionality is
implemented by services, which exist otherwise
independent of the application

Design elements for an SOA are:
-- Components: services (can be composites),
consumers, providers
-- Connector type: (remote) service invocations

Configuration rules for an SOA are: 
-- No strict layering (service implementations can use
other services)
-- No centralized control entity
-- Services are designed for shared use, and for use
that may not even have been anticipated at design time

Definition of service orientation
---------------------------------

Service-Orientation is an organizational principle
-- A set of principles for building large systems
-- It is not tied to any particular technology

Examples:
-- Common “horizontal” services:
  Logging, authentication/single-sign-on, systems
management, Directory lookup of services, event
notification
-- “Vertical” services, specific to your business
domain:
  Product feature search service, Address management,
Order Status Tracking Service, Truck/trailer tracking
service

As in organizations, there is always more than one way
to structure a large system

The most important question: How to decompose?
-- What is the guiding abstraction mechanism?
-- Why would one favor one decomposition for another?


and so on...

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/service-orientated-architecture/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to