Dynamic Service Discovery

Document Sample
Dynamic Service Discovery Powered By Docstoc
					                    Dynamic Service Discovery




Workshop on Web of Services for Enterprise Computing



Kinga Dziembowski
02.27.2007
Presentation Agenda


• Bio and company background
• The problem of Services Discovery in a commercial environment
• The problem of Services Discovery for US military environment
–What needs to be discovered?
• An approach
– Dynamic Discovery
– Service Type and Service Instance
– Dynamic Discovery pattern architectures
• Interoperability problem – should Dynamic Service Discovery be
an infrastructure resident service?
• Summary




                                                                   2
Kinga Dziembowski
edziembowski@gestalt-llc.com


  • Bluestone - Application Server Company
  • HP
   – HP Web Service Platform (AS, SOAP Server, UDDI Server)
      • SOAP server
         – Apache Cocoon contributor
      • WSMF – Web Services Management Framework
         – Spec, reference implementation
         – End-to-end integration of TIBCO environment with OpenView using
           WSMF and then WSDM
      • WSDM – OASIS standard
         – Spec reference implementation
         – Apache Committer - muse, wsrf, pubsub
  • Gestalt
   – ARCES – Applied Research for Computing Enterprise Services


                                                                             3
Gestalt-LLC Overview


Gestalt-LLC - http://www.gestalt-llc.com/

• Is an international professional services firm
• Provides business consulting and technology solutions to the
Defense and Energy markets
• Develops practical yet innovative solutions that drive competitive
advantage in complex decision environments
• ARCES project:
– is sponsored by Electronic System Center ESC
– is a research on SOA in DoD Net-Centric vision (NCES,GIG)
– uses Modeling techniques – CPN, Extend, Opnet




                                                                       4
My position


Service Discovery in the dynamic and transient nature of
a highly distributed and mobile enterprise, such as the
US military, requires a much more dynamic concept of
Service Discovery than what is currently handled by
most commercial Service-Oriented Architecture
implementations.




                                                           5
  Discovery problem




Discovery (observation), observing or finding something unknown to
one's culture [Wikipedia]
                                                                     6
Service Discovery – dry cleaner story




                                        7
Service Discovery – dry cleaner story




                                        8
  What are the consumer needs?


  • Figure out if the functionality (Service) s/he needs
  exists.
  • Find enough information to “interface” with the Service
  • Use this same “interface” all the time
  • Be able to access the Service at any time
  • Be able to access the Service from any place
  • Be notified of any change which violates basic needs




Consumer needs to find the Service satisfying his/her requirements -
Service Discovery process will help
                                                                       9
Discovery in a Stable Environment


• The problem of Services Discovery in a commercial
environment
– The infrastructure in which the service customers and providers
operate is stable.
– Service Discovery is concerned about
   • Service Type
   • Service End point URL




                                                                    10
  How does this story translates to the SOA ?

  • Assumptions:
   – Stable infrastructure
   – Services deployed stay
   deployed
   – End point URLs once           Discover                 Publish
   established stay                           Service
   operational                                Registry
   – Non operational services
   consist of business lost for
   enterprise
   – Consumer operates in a
   static environment                         Bind/Invoke
                                  Service                      Service
                                  Consumer                     Provider

Commercial world comprises the “core” environment. Here, the Service
Discovery triangle paradigm works quite well.
                                                                      11
Dynamic Environment


• The problem of Services Discovery for US military
environment
–Commercial world comprises the “core” environment in which the well known
Service Discovery triangle paradigm works quite well
–In the highly distributed and mobile world of the military, the space in which
Web Services and web technologies operates is much more complex




                                                                                  12
 Dynamic nature of consumer and provider

  • Core
   –The “core” is static, stable, has known
   behaviors, is established, and is always
   connected. Services are assumed to be
   operational 24x7.
  • Edge
   –The “edge” is dynamic, transient, and
   sometimes disconnected; you cannot
   assume that the Service is available at any
   point of time.
  • Consumer environment changes
   – he needs to adapt to the environment
  • Provider environment changes
   – he needs to adapt to the environment
In the highly distributed and mobile world of the military, the space in
which web technologies operates is much more complex
                                                                           13
  Something is missing


  • Even with my dry cleaner story I could not satisfy my Discovery
  need using static registry – telephone book
  • At the first Web Service maturity level, the simplistic assumptions
  that the Web Services operate in a static world were OK
  • It is time to move to the next maturity level and address dynamic
  nature of the Web Services Instances
  • The canonical Service Discovery paradigm is not enough for
  dynamic environments
  • Additional runtime Dynamic Service Discovery is needed
   – Service Instances are of main concern
   – Service Instance presence and availability are needed


Service Instance, presence and availability is needed for Dynamic Service
Discovery
                                                                          14
Dynamic Discovery Pattern Use Cases

1. Mobile Service Clients
   - Such clients plug into existing systems and need to discover where the needed
   Services Providers are in the current environment.
2. Mobile Services Providers
   – The Service Instance is moving from point to point on the network. What is important
   for this use case is the ability for the client to invoke a specific Service Instance – the
   state associated with the Service Instance matters.
3. Changing Service Instance population – (transient services).
   - The goal for Service Discovery is to find what Service Instances are currently
   available, it is not important to find a specific Instance, any Instance of a particular
   service type will satisfy the consumer need.
4. Instance federation
   – In this use case multiple Services Instances spread resource responsibilities. The
   population of the Instances is static or slowly changing (“the core”). Service Discovery
   is concerned with finding the Service Instance with the appropriate context. Each
   Instance context changes.



                                                                                              15
Discovery Use Case - Mobile Service Client

                                     Service
                                     Provider


               Service
               Provider




                          Service
                          Provider




                                                16
Discovery Use Case - Mobile Service Providers




                                                17
Dynamic Discovery Pattern


Initial Discovery Pattern
–Repository for Service Type and Service Instance metadata
–Discovery Engine that fronts metadata repository
–Services publish Service Instance metadata to repository;
update as metadata changes
–Clients query discovery engine
–Extension to existing design-time discovery mechanisms




                                                             18
Dynamic Discovery Pattern
             Service Type                  Service Instance
             Registry/Metadata             Registry/Metadata


                                   Metadata



                     Discover             Discover
                    Service Type       Service Instance
      Discover                                        Publish
     Service Type                         Publish Service Instance
                                        Service Type


             Discover
                           Discovery

                             Bind/Invoke          Service
      Service
      Consumer                                    Provider
                                                                     19
What needs to be discovered?


• Service Type
  – Established at design time
  – Can be uniquely identified
  – Consists of
     • Interface definition
     • Semantic information
     • Metadata definition       (context)
                                             Static part – values established
                     1……….
                                             at design time and never
                     2.……….                  changes
                        3……….                Para-dynamic part – values
                        4.……….               established post design time

                     5……….                   Dynamic part - Instance values
                     6.……….                  established at run time


                                                                            20
  What needs to be discovered?


  • Service Instance
   – Running Instance of Service defined by Service Type
   – Implementation of semantic and syntactic contract defined by Service
   Type
   – Establishes dynamic metadata values defined by Service Type
   – What consumer actually interacts with
   – Can be uniquely identified
   – Updates its context document when the dynamic metadata values
   changes




Service Instance is independently managed entity, can appear and
disappear, has its own dynamic metadata values
                                                                            21
Interoperability problem


• What are the minimal responsibilities of Service Instance to
participate in Dynamic Service Discovery?
• Should we define Web Service as implementing several Interfaces
–Business interface (the functionality which defines the Service)
–Discoverable interface (set of operations, properties, capabilities needed to
Discover service in interoperable way)
–Management Interface (set of operations, properties, capabilities needed to
Manage service in interoperable way)
• Should we query Web Service to learn what are its capabilities and
use this dynamic knowledge to interact with it appropriately?
• Should Dynamic Service Discovery be an infrastructure resident
service – ESB ?




                                                                                 22
Summary



• Dynamic and transient nature of a highly distributed
and mobile enterprise, such as the US military, requires
run time Service Instances discovery
Discoverable Services
• Service Type describes the Service
• Service Instance is implementation of the Service Type
• Service Instance has dynamic context
• Metadata context needs to be part of the contract -
Service Type Definition (wsdl?)
• Service Instance Presence and Availability

                                                           23
  Conclusions




  • Dynamic Service Discovery problem needs to be
  solved in global, systematic way
  • Develop supporting standards, architectures, reference
  implementations
  • Provide design patterns, recommendations and best
  practices




If this problem is not solved at the architecture and standards level, the
main benefit of SOA – INTEROPERABILIRY- will be compromised or lost
                                                                        24
Info


Kinga Dziembowski mailto:edziembowski@gestalt-llc.com
Gestalt-LLC - http://www.gestalt-llc.com/

Terms:
NCES – Net Centric Enterprise Services
GIG – Global Information Grid
DISA – Defense Information Systems Agency




                                                        25
Questions? Feedback




                      26
Parking




          27
The 5 W’s in SOA world

Who does discovery?
Machine vs. Human
What is being discovered?
Service Definitions
Service Instances
Service Endpoints
Where is the searching done - what is the scope of the search?
Global/Public
Enterprise
COI
Application
Why is discovery being performed?
What problems does discovery solve?
When is discovery performed?
Design-time vs. Run-time

                                                                 28
Consumers and Providers



                                  P2



            P1                               C5
                  C22

                                                   P9
                             P3

       C2

                 P4
                                  C4
                                                  P10


            P5
                        C1             P11



                                                        29
Global Discovery Engine



                        R         P2



             P1                              C5

                  C22

                                                   P9
                             P3

        C2

                  P4
                                  C4
                                                  P10


             P5
                        C1             P11



                                                        30
Grouping of services and consumers




          P1
               C22         R
                                          P2
                                               C5
     C2
 R                                    R
                 P4                                       P9

          P5

                                          C4        P10


                           P3
COI                   R
(Communities
Of Interest )                         R
                                P11

                      C1

                                                          31
Discovery Engines organizations

    peer-to-peer                  federated

        R
                                     Q
                                     u
                                     er
                                     y




                   hierarchical
Peer-to-peer



                       R




               R           R




                           R

                   R
Federated

                Query




     R

                                R




                            R
            R           R
                R
Hierarchical


                       R




               R               R




     R             R       R       R
               R
How does it work?


                          R
                     C1       P1




                                        R
                                   C3            P3
           R
      C2
                                                  P4
                P2                          P5
Implementation Demo




                      37
Summary


• Dynamic and transient nature of a highly distributed and mobile
enterprise, such as the US military, requires run time Service
Instances discovery
• Service Type describes the Service
• Service Instance is implementation of the Service Type
• Service Instance has dynamic context
• Meta Data context needs to be part of the contract - Service Type
Definition (wsdl?)
• Service Instance context changes over time – Dynamic Service
Discovery needs to be notified
• Dynamic Service Discovery is similar to query search – as a result
we get hitlist of Service Instances context documents
• Service consumer select the document from the hitlist and invoke
the Service Business interface



                                                                       38