Docstoc

SOA Introduction Service Oriented Architecture An

Document Sample
SOA Introduction Service Oriented Architecture An Powered By Docstoc
					Service Oriented
Architecture
An Introduction




Arnon Rotem-Gal-Oz
Biometrics Line Development
Manager
What is Software Architecture
What is Architecture
Formal Definition
 IEEE 1471-2000
      Software architecture is the fundamental
      organization of a system, embodied in its
      components, their relationships to each other and
      the environment, and the principles governing its
      design and evolution




                                              IEEE 1471-2000
What is Software Architecture

   collection of the fundamental decisions about a software
    product/solution designed to meet the project‘s quality
    attributes

   Includes the main components, their main attributes, and their
    collaboration

   expressed in several levels of abstraction (depending on the
    project's size).

   Architecture is communicated from multiple viewpoints
Quality
Attributes
 How Architecture
                             Stakeholders




                               Quality
                                            Constraints
                              Attributes


              Principles

Community
                              Architect                     Architecture
experience
              Patterns &
             Anti-patterns
                                                   Key

                                                         people

                                                         A “deliverable”
                                                         Produce
                             Technology                  Is an input
What is a Service (1)




    HMM..



    A facility supplying some public demand
    the work performed by one that serves HELP, USE,
     BENEFIT

                                              Merriam-Webster
What is a Service (2)
   In economics and marketing, a service is the non-
    material equivalent of a good. Service provision has
    been defined as an economic activity that does not
    result in ownership, and this is what differentiates it
    from providing physical goods.
   It is claimed to be a process that creates benefits by
    facilitating either a change in customers, a change
    in their physical possessions, or a change in their
    intangible assets.




                                        en.wikipedia.org/wiki/Service
What is a service (3)
   A Windows Service?
       RPC Locator, EventLog, DHCP Client,


   Software Service?
       Distribution Service, Alert Service
       Security Service, Log Service


   Business Service?
       Common Operational Picture, Navigation
       Accounts Receivable, Customers
SOA isn’t a solution to
world hunger
Nor is it:
 A specific Technology


   The Ultimate answer to reuse

   A New name for EAI

   A New way to do RPC
Big SOA
Analyze the business
    ASB           BLT

                 AFT                 TGI                  FRY

                                                                        ECP
    HDL
                                                   SWG
                              DRW                                             MFP



                                                                              WCP
                      QYD                  DLY             SKD

                                                   DLY
                                                                       XPS
    WIU

                                                                                KYF
          XOI           ZIS          CUI                       WKD

                                                   WHR
   ASB                                                                                GEX
            RMO                                                               JIA
                                           HCO



                BST            VUH           KFC         AJT     FQA           DKE
Big SOA
Identify Business Areas
    ASB           BLT

                 AFT                 TGI                  FRY


    Navigation
    HDL
                                                    Alerts
                                                   SWG
                                                                        ECP


                              DRW                                             MFP



                                                                              WCP
                      QYD                  DLY             SKD

                                                   DLY
                                                                       XPS
    WIU

                                                                                KYF
          XOI           ZIS          CUI                       WKD

                                                   WHR
   ASB
          COP
            RMO
                                           HCO
                                                         Protectors           JIA     GEX




                BST            VUH           KFC         AJT     FQA           DKE
Big SOA
Map to software




                         Prot.

                                      COP

                          "Network"

                  Nav.

                                       Alerts
Little SOA
   Architectural Style

   For building distributed systems

   Loosely coupled components

   Our focus from here onward…
           Adheres        Policy     governed by
             to

           Binds to      End Point       Exposes

                          Serves

 Service
           Understands   Contracts   implements       Service
Consumer

                         describes
                                                                Key

                                                                      Component

       Sends/Receives    Messages    Sends/Receives                   Relation
The Architecture Part
   Design Time Binding
The Architecture Part
   Late Binding
Services and Systems
A service is a program you interact with
 via message exchanges

A system is a set of deployed services
 cooperating in a given task
                            A Service edge
                             is a natural
                             boundary



Warning: Remoting and other RPCs trick us into thinking th
there is no substantial difference between a local and a rem
     object. In fact, they hide the presence of the network.
Services are Autonomous
sd Autonomous Serv ices

         User                         Journal Subscription System                                  Publisher X



                                 «service»                   «service»                             «service»
                                 Proposals                   Customer                              Proposals
            User


                   1.0
                   getProforma
                                       1.1
                                       getCustomerDiscount

                                                 1.2




                                                           1.3
                                                           getDiscountRate

                                                                    1.4


                          1.5




                                                           Waiting on external resources
                                                           do we really know how long will it take?
                                                           Not to mention that getting the information
                                                           only when needed makes Service
                                                           interaction very RPC-like (but that's another
                                                           problem)
sd Activ eServ ice

              User                              Journal Subscription System                                Publisher X



                                               «service»               «service»                      «service»
                                               Proposals               Customer                       Proposals
                     User




                                          loop Activ e Class polls external resources

                                                   1.0 getCustomerDiscounts


                                                              1.1


                                                                       1.2 getDiscounts


                                                                              1.3




                            2.0 ProduceProforma
                                                                         note that now we are getting all the dicount rates in
                                    2.1                                  one call (less messages) to generate even less traffic
                                                                         the contracts can be made to include only changes
                                                                         from timestamp supplied in the request
Policies




 The fact that I can, doesn’t mean I will.
Policy Illustrated
 Organization A                                         Organization B
                                  Policy

                        Runtime contract
              1. Supports X.509 Cert or Kerberos ST for AuthN
      Buyer Service Supports UTF-8, UTF-16, SOAPSeller Service
                  2.                               1.2, 1.1
                                     …
                                     Design time Contract

                  Policy              1. You’ll send a PO
                                                 Policy
                                 2. I’ll send a confirmation
                                                …


                                 Runtime Contract
       Local Service                              Local Service
                             1. Use X.509 Cert for AuthN
                                2. Use UTF-8, SOAP 1.2
                                          …

                                             Adopted from Clemens Vasters
Endpoint
It’s all about the
Message, baby!
Messages
travel in
no man’s land!
               Messages
                   Get
   Is he
              Retransmitted
Idempotent?
               Messages
                Arrive
               More than
                 once
 Idempotence
     Idempotent Means It’s OK to Arrive Multiple Times
         As Long as the Request Is Processed at Least Once, the Correct
          Stuff Occurs
     In Today’s Internet, You Must Design Your Requests to Be
      Idempotent




                            Naturally Idempotent        Idempotent
Not Idempotent              Sweeping the Floor          Baking a Cake
Withdrawing        Idempotent                           Starting from
$1 Billion         If Haven’t Yet Done                  the Shopping
                   Withdrawal #XYZ                      List (If Money
Not Idempotent     for $1 Billion,                      Doesn’t Matter)
Baking a Cake      Then Withdraw
Starting from      $1 Billion and         Naturally Idempotent
Ingredients        Label as #XYZ          Read Record “X”      Pat Helland
Message Exchange Patterns
Request/Reply


        VS


        Request/Reaction
Decoupled Invocation Pattern
Service
Contract
Keep Data and state private
   Big SOA is about business alignment

   Little SOA is an Architectural Style
       Autonomous Coarse Grained
        Components
       Message based Interactions
       Run-Time configuration
What’s next
   SOA Structural Patterns
   SOA Interaction Patterns
   UI Interaction Patterns
   Service Composition Patterns
   Contract Anti-patterns
   Service Anti-patterns
   SOA Performance Anti-Patterns

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:16
posted:5/28/2012
language:English
pages:37