Web Services - Concepts, Architecture and Applications Part 7: Service Discovery (UDDI) Gustavo Alonso and Cesare Pautasso Computer Science Department.

Slides:



Advertisements
Similar presentations
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Advertisements

Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
UDDI v3.0 (Universal Description, Discovery and Integration)
General introduction to Web services and an implementation example
1 Understanding Web Services Presented By: Woodas Lai.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
1 UDDI Jong-Ha Jung 07/28. 2 INDEX INDEX What is UDDI? What is UDDI? Appearance of UDDI Appearance of UDDI Why UDDI? Why UDDI? Analogy with Telephone.
UDDI, Discovery and Web Services Registries. Introduction To facilitate e-commerce, companies needed a way to locate one another and exchange information.
Web Services Technology Stack (WSDL and UDDI)
T NAF & XML UDDI Sasu Tarkoma and Pekka Nikander Helsinki Institute for Information Technology.
Web Services: UDDI. What is UDDI? UDDI = The Universal Description, Discovery, and Integration A central element of the group of standards that comprise.
UDDI Overview Copyright © by Accenture, Ariba, Inc., Commerce One, Inc., Fujitsu Limited, Hewlett-Packard Company, i2 Technologies, Inc., Intel.
UDDI Overview Web Services Registry SOA Enabler. What Is UDDI? Universal Description, Discovery, and Integration Protocols for web services registry Public.
Distributed components
- Page 1 - VisualWorks Web Services 8/27/02 Version 1.0 Exp osin g Business Value with VisualWorks Web Services Kirk D. Blackburn Qwest Communications,
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
A New Computing Paradigm. Overview of Web Services Over 66 percent of respondents to a 2001 InfoWorld magazine poll agreed that "Web services are likely.
UDDI Ashish Jain University of Colorado 3 October, 2001.
Presentation 9: UDDI - Universel Description, Discovery & Integration.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
1 WS Technologies I UDDI Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration IMT- Institutions.
In Introduction to Web Services
Introduction to UDDI From: OASIS, Introduction to UDDI: Important Features and Functional Concepts.
WSTK Development toolkit for Java Implementation of Web Services By Keping Jia.
Discovering E-Services Using UDDI in SELF-SERV Quan Z. Sheng, Boualem Benatallah, Rayan Stephan, Eileen Oi-Yan Mak, Yan Q. Zhu School of Computer Science.
UDDI Overview 9/6/2000 © Copyright 2000 By Ariba, Inc., International Business Machines Corporation and Microsoft Corporation. All Rights Reserved.
Cambridge, March 23 rd 2004 MobileMAN Project MobileMAN Project Web Service in Ad Hoc Network Veronica Vanni NETikos S.p.A.
UDDIe: An Extended registry for Web Services UDDIe: An Extended Registry for Web Services Ali Shaikhali, Omer F. Rana, Rashid J. Al-Ali and David W. Walker.
Web Service Addressing CS409 Application Services Even Semester 2007.
Creating and Registering Mobile E-services Using Java, UDDI, and WSDL Chris Peltz Carollyn Carson
Web Services (SOAP, WSDL, and UDDI)
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
Web Services (SOAP, WSDL, UDDI) SNU OOPSLA Lab. October 2005.
1 Universal Description, Discovery, and Integration (UDDI) 大葉大學資工系.
UDDI Jianguo Lu University of Windsor What is UDDI?  Universal Description, Discovery, and Integration  A project to encourage interoperability.
Qusay H. Mahmoud CIS* CIS* Service-Oriented Computing Qusay H. Mahmoud, Ph.D.
Based on the paper “Myths around Web Services” by Gustavo Alonso Web Services & Myths Around it Debashis Roy Deepa Saha.
UDDI Update Bob Sutor Director IBM e-business Standards Strategy.
1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
The Exchange Network Node Mentoring Workshop Universal Description, Discovery, and Integration Registry David Dundua February 28, 2005.
WebService. Outline Overview of Web Services SOAP (messaging) WSDL (service description) UDDI (registry)
Helsinki, June 7 th 2004 IAB Meeting MobileMAN Project Web Service in Ad Hoc Network Veronica Vanni NETikos S.p.A.
A brief introduction of UDDI By Xin Huang. What is UDDI.
- Page 1 - VisualWorks Web Services 8/27/02 Version 1.0 Exp osin g Business Value with VisualWorks Web Services Kirk D. Blackburn Qwest Communications,
Kemal Baykal Rasim Ismayilov
CSIT 220 (Blum)1 Remote Procedure Calls Based on Chapter 38 in Computer Networks and Internets, Comer.
WEB SERVICE DESCRIPTION LANGUAGE (WSDL). Introduction  WSDL is an XML language that contains information about the interface semantics and ‘administrivia’
CP3024 Lecture 10 Web Services. What are Web Services?  “encapsulated, loosely coupled, contracted software objects offered via standard protocols” ZapThink.
1 1 ECHO Extended Services February 15, Agenda Review of Extended Services Policy and Governance ECHO’s Service Domain Model How to…
Metadata By N.Gopinath AP/CSE Metadata and it’s role in the lifecycle. The collection, maintenance, and deployment of metadata Metadata and tool integration.
Web Services Part 1 -- Qinwei Zhu Part 2 – Yongqun He.
Web Services An Introduction Copyright © Curt Hill.
UDDI (Universal Description, Discovery and Integration) Dr. SVL Narasimham.
Lecture VI: SOAP-based Web Service CS 4593 Cloud-Oriented Big Data and Software Engineering.
1 G52IWS: Universal Description, Discovery and Integration (UDDI)‏ Chris Greenhalgh
WSTK Development toolkit for Java Implementation of Web Services By Keping Jia.
DISCO/UDDI -Ketan Reddy Peddabachi. Agenda Web Service Disco UDDI Disco Vs UDDI.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
Sabri Kızanlık Ural Emekçi
Implementing a service-oriented architecture using SOAP
Wsdl.
WEB SERVICES DAVIDE ZERBINO.
WEB SERVICES From Chapter 19, Distributed Systems
XML and Web Services (II/2546)
Presentation transcript:

Web Services - Concepts, Architecture and Applications Part 7: Service Discovery (UDDI) Gustavo Alonso and Cesare Pautasso Computer Science Department ETH Zürich

©ETH ZürichPart 7: UDDI 2 Basic problems to solve o How to make the service invocation part of the language in a more or less transparent manner. ÞDon’t forget this important aspect: whatever you design, others will have to program and use it o How to exchange data between machines that might use different representations for different data types. This involves two aspects: Þdata type formats (e.g., byte orders in different architectures) Þdata structures (need to be flattened and the reconstructed) o How to find the service one actually wants among a potentially large collection of services and servers. ÞThe goal is that the client does not necessarily need to know where the server resides or even which server provides the service. o How to deal with errors in the service invocation in a more or less elegant manner: Þserver is down, Þcommunication is down, Þserver busy, Þduplicated requests...

©ETH ZürichPart 7: UDDI 3 What is UDDI? o UDDI stands for Universal Description Discovery and Integration. o The objective is to define a standard for enterprises to dynamically discover and invoke Web services o The UDDI specification is probably the one that has undergone most changes. The latest version is version 3 (February 2005): Þversion 1 defined the basis for a business service registry Þversion 2 adapted the working of the registry to SOAP and WSDL Þversion 3 redefines the role and purpose of UDDI registries, emphasizes the role of private implementations, and deals with the problem of interaction across private and public UDDI registries o Originally, UDDI was conceived as a “Universal Business Registry” similar to search engines (e.g., Google) which will be used as the main mechanism to find electronic services provided by companies worldwide. This triggered a significant amount of activity around very advanced and complex scenarios (Semantic Web, dynamic binding to partners, runtime/automatic partner selection, etc.) o Nowadays UDDI is far more pragmatic and recognizes the realities of B2B interactions: it presents itself as the “infrastructure for Web services”, meaning the same role as a name and directory service (i.e., binder in RPC) but applied to Web services and mostly used in constrained environments (internally within a company or among a predefined set of business partners)

©ETH ZürichPart 7: UDDI 4 Role of UDDI o Services offered through the Internet to other companies require much more information that a typical middleware service o In many middleware and EAI efforts, the same people develop the service and the application using the service o This is obviously no longer the case and, therefore, using a service requires much more information that is typically available for internal company services o This documentation has three aspects: Þbasic information Þcategorization Þtechnical data

©ETH ZürichPart 7: UDDI 5 UDDI data model o An entry in an UDDI registry is an XML document composed of different elements (labelled as such in XML), the most important ones being: ÞbusinessEntity: is a description of the organization that provides the service. ÞbusinessService: a list of all the Web services offered by the business entity. ÞbindingTemplate: describes the technical aspects of the service being offered. ÞtModel: (“technical model”) is a generic element that can be used to store additional information about the service, typically additional technical information on how to use the service, conditions for use, guarantees, etc. o Together, these elements are used to provide: Þwhite pages information: data about the service provider (name, address, contact person, etc.) Þyellow pages information: classification of services based on existing (non- electronic) standards like the UNSPSC (Universal Standard Products and Services Classification) or ISO 3166 Country Codes Þgreen pages information: technical information on how to use each one of the services offered, including pointers to WSDL descriptions of the services (which do not reside in the UDDI registry)

©ETH ZürichPart 7: UDDI 6 Business entity o The generic white and yellow pages information about a service provider is stored in the businessEntity, which contains the following data: Þeach businessEntity has a businessKey ÞdiscoveryURLs: a list of URLs that point to alternate, file based service discovery mechanisms. ÞName: (textual information) ÞBusiness description: (textual information) ÞContacts: (textual information) ÞbusinessServices: a list of services provided by the businessEntity ÞidentifierBag: a list of external identifiers ÞcategoryBag: a list of business categories (e.g., industry, product category, geographic region) o The businessEntity does not need to be the company. It is meant to represent any entity that provides services: it can be a department, a group of people, a server, a set of servers, and so on.

©ETH ZürichPart 7: UDDI 7 Business service o The services provided by a business entity are described in business terms using businessService elements. A businessService element can describe a single Web service or a group of related Web services (all of them offered by the same businessEntity) o A businessEntity can have several businessServices but a businessService belongs to one businessEntity o The businessService can actually be provided by a different businessEntity than the one where the element is found. This is called projection and allows to include services provided by other organizations as part of the own services o It contains: Þa serviceKey that uniquely identifies the service and the businessEntity (not necessarily the same as where the businessService is found) Þname: as before Þdescription: as before ÞcategoryBag: as before ÞbindingTemplates: a list to all the bindingTemplates for the service with the technical information on how to access and use the service

©ETH ZürichPart 7: UDDI 8 Binding template o A binding template contains the technical information associated with a particular service. It contains the following information: ÞbindingKey ÞserviceKey Þdescription ÞaccessPoint: the network address of the service being provided (typically an URL but it can be anything as this field is a string: e.g., an address or even a telephone number) ÞtModels: a list of entries corresponding to tModels associated with this particular binding. The list includes references to the tModels, documents describing these tModels, short descriptions, etc. ÞcategoryBag: additional information about the service and its binding (e.g., whether it is a test binding, or on production, etc) o A businessService can have several bindingTemplates but a binding Template has only one businessService o The binding template can be best seen as a folder where all the technical information of a service is put together

©ETH ZürichPart 7: UDDI 9 tModel (technical model) o A tModel is a generic container of information where designers can write any technical information associated with the use of a Web service: Þthe actual interface and protocol used, including a pointer to the WSDL description Þdescription of the business protocol and conversations supported by the service o A tModel is a document with a short description of the technical information and a pointer to the actual information. It contains: ÞtModelKey Þname Þdescription ÞoverviewDoc: (with an overviewURL and useType that indicate where to find the information and its format, e.g., “text” or “wsdldescription”) ÞidentifierBag ÞcategoryBag o A tModel can point to other tModels and eventually different forms of tModels will be standardized (tModel for WSDL services, tModels for EDI based services, etc.)

©ETH ZürichPart 7: UDDI 10 BusinessEntity businessKey, name, contact, description, identifiers, categories BusinessEntity Summary of the UDDI data modelBusinessService serviceKey, businessKey, name description, categories BusinessService serviceKey, businessKey, name description, categories BindingTemplate bindingKey, serviceKey, description, categories, access point BindingTemplate bindingKey, serviceKey, description, categories, access point tModel name, description, overview document, url pointer to WSDL tModel WSDL Document External Web Service Interface Description (located at the service provider) provider) WSDL Document External Web Service Interface Description (located at the service provider) provider)

©ETH ZürichPart 7: UDDI 11 Interaction with an UDDI registry

©ETH ZürichPart 7: UDDI 12 UDDI, SOAP and WSDL

©ETH ZürichPart 7: UDDI 13 UDDI interfaces o The UDDI specification provides a number of Application Program Interfaces (APIs) that provide access to an UDDI system: ÞUDDI Inquiry: to locate and find details about entries in an UDDI registry. Support a number of patterns (browsing, drill-down) ÞUDDI Publication: to publish and modify information in an UDDI registry. All operations in this API are atomic in the transactional sense ÞUDDI Security: for access control to the UDDI registry (token based) ÞUDDI Subscription: allows clients to subscribe to changes of information in the UDDI registry (the changes can be scoped in the subscription request) ÞUDDI Replication: how to perform replication of information across nodes in an UDDI registry ÞUDDI Custody and Ownership transfer: to change the owner (publisher) of information and ship custody from one node to another within an UDDI registry o UDDI also provides a set of APIs for clients of an UDDI system: ÞUDDI Subscription Listener: the client side of the subscription API ÞUDDI Value Set: used to validate the information provided to an UDDI registry

©ETH ZürichPart 7: UDDI 14 UDDI inquiry API o Search and lookup entries in a registry. o This API is freely available, no client authentication is required. o Errors are reported as SOAP Faults o Browse functions search the registry based on keywords and return summary lists with overview information (key, name and description) about matching businesses or services. o Find qualifiers are used to sort the results and to control the keyword matching: toggle between AND/OR, case sensitive/insensitive, use of wildcards and categories. o To minimize the number of requests, find queries can be nested o Drill-down functions are used to fetch the specific UDDI data structures about particular entries given their key, returned by the Browse functions Browse functions find_business find_relatedBusinesses find_service find_binding find_tModel Drill down functions get_businessDetail get_operationalInfo get_serviceDetail get_bindingDetail get_tModelDetail UDDI Version 3.0 Specification, 19 July 2002

©ETH ZürichPart 7: UDDI 15 UDDI publishing and security API o Publish, update and delete information contained in a UDDI registry o The publishing API requires user authentication using a session token and typically uses SOAP over HTTPS o The registry performs access control for all publishing functions: information about the entries can only be edited by the owner o Category information and keyed references associated to the entries are validated before accepting new information into the registry o Deletion functions are used to remove entries identified by their key from the registry. Removing a business will remove all services associated with it. o The same publishing functions are used both to add new information or replace existing information, depending on whether a valid key is passed or not. o When adding new entries, keys are usually automatically generated by the registry Security Session Management functions get_authToken, discard_authToken Publishing functions Deletion functions save_business delete_business save_service delete_service save_binding delete_binding save_tModel delete_tModel

©ETH ZürichPart 7: UDDI 16 Hype and reality o There are a few universal UDDI registries in operation (maintained by IBM, Microsoft, SAP, NTT, etc) o These registries are very visible and often the first thing one sees of Web services o Unfortunately, these registries are still very small and most of the entries in them do not work or do not correspond to any real service o This has been a source of criticism to Web services in general. The criticism has not been entirely undeserved but it is often misguided: what was there to criticize was not UDDI itself but the use that has been made of it and the hype around dynamic Web services o UDDI is rather useful if seen as supporting infrastructure for Web services in well defined and constrained environments (i.e., without public access and where there is a context that provides the missing information) o Most of the UDDI registries in place today are private registries operating inside companies (recall that the widest use of Web services today is for conventional EAI) or maintained by a set of companies in a private manner o UDDI has now become the accepted way to document Web services and supply the information missing in WSDL descriptions

©ETH ZürichPart 7: UDDI 17 Summary UDDI o The UDDI specification is fairly complete and encompasses many aspects of an UDDI registry from its use to its distribution across several nodes and the consistency of the data in a distributed registry. o Most UDDI registries are private and typically serve as the source of documentation for integration efforts based on Web services. o UDDI registries are not necessarily intended as the final repository of the information pertaining Web services. Even in the “universal” version of the repository, the idea is to standardize basic functions and then build proprietary tools that exploit the basic repository. That way it is possible to both tailor the design and maintain the necessary compatibility across repositories. o While being the most visible part of the efforts around Web services, UDDI is perhaps the least critical due to the complexities of B2B interactions (establishing trust, contracts, legal constrains and procedures, etc.). The ultimate goal is, of course, full automation, but until that happens a long list of problems needs to be resolved and much more standardization is necessary.

©ETH ZürichPart 7: UDDI 18 References o Specifications: o UDDI Business Registry (UBR) nodes: IBM Homepage: Inquiry API: Publish API: Microsoft Homepage: Inquiry API: Publish API : SAP Homepage: Inquiry API : Publish API : NTT Homepage: Inquiry API : Publish API :