Dynamic Service Discovery Workshop on Web of Services for Enterprise Computing Kinga Dziembowski02.27.2007
PresentationAgenda • 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
Kinga Dziembowski email@example.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
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
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.
Discovery problem • Discovery (observation), observing or finding something unknown to one's culture [Wikipedia]
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
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
How does this story translates to the SOA ? • Assumptions: • Stable infrastructure • Services deployed stay deployed • End point URLs once established stay operational • Non operational services consist of business lost for enterprise • Consumer operates in a static environment Publish Discover Service Registry Bind/Invoke Service Service Consumer Provider • Commercial world comprises the “core” environment. Here, the Service Discovery triangle paradigm works quite well.
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
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
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
Dynamic Discovery Pattern Use Cases • Mobile Service Clients • - Such clients plug into existing systems and need to discover where the needed Services Providers are in the current environment. • 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. • 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. • 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.
Service Provider Service Provider Service Provider Discovery Use Case - Mobile Service Client
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
Dynamic Discovery Pattern Service Type Registry/Metadata Service Instance Registry/Metadata Metadata Discover Service Type Discover Service Instance Discover Service Type Publish Service Instance Publish Service Type Discover Discovery Bind/Invoke Service Provider Service Consumer
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 at design time and never changes 1………. 2.………. 3………. 4.………. Para-dynamic part – values established post design time 5………. 6.………. Dynamic part - Instance values established at run time
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
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 ?
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
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
Info • Kinga Dziembowski mailto:firstname.lastname@example.org • Gestalt-LLC - http://www.gestalt-llc.com/ • Terms: • NCES – Net Centric Enterprise Services • GIG – Global Information Grid • DISA – Defense Information Systems Agency
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
Consumers and Providers P2 P1 C5 C22 P9 P3 C2 P4 C4 P10 P5 C1 P11
Global Discovery Engine P2 R P1 C5 C22 P9 P3 C2 P4 C4 P10 P5 C1 P11
R R Grouping of services and consumers P1 C22 P2 C5 C2 R R P4 P9 P5 P10 C4 P3 COI (Communities Of Interest ) R P11 C1
R Query Discovery Engines organizations peer-to-peer federated hierarchical
R R R R R Peer-to-peer
Query R R R R R R Federated
R R R R R R R R Hierarchical
How does it work? R C1 P1 R P3 C3 R C2 P4 P2 P5
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