Web Services Registries and UDDI INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Slides:



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

INTRODUCTION A WEB SERVICE is an application that accepts requests from other systems across the Internet or an Intranet, mediated by lightweight, vendor-neutral.
An Introduction to Web Services Sriram Krishnan, Ph.D.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
UDDI v3.0 (Universal Description, Discovery and Integration)
1 Understanding Web Services Presented By: Woodas Lai.
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.
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.
- 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,
WEB 312 Integrating Applications With UDDI Services Andy Milligan Program Manager UDDI Services, Windows Server Microsoft Corporation.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Web Services - Concepts, Architecture and Applications Part 7: Service Discovery (UDDI) Gustavo Alonso and Cesare Pautasso Computer Science Department.
Representation and Management of Data on the Web
UDDI Ashish Jain University of Colorado 3 October, 2001.
Livermore July Web Services Overview Francisco Curbera IBM T.J. Watson Research Center.
1 WS Technologies I UDDI Roberto Bruni Dipartimento di Informatica Università di Pisa Models and Languages for Coordination and Orchestration IMT- Institutions.
WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001.
SOAP, WSDL, UDDI. Service Broker Basic SOAP Message Exchange Service Consumer Service Provider http transport SOAP message WSDL describing service SOAP.
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.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
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.
Web Services (SOAP, WSDL, and UDDI)
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
1 Universal Description, Discovery, and Integration (UDDI) 大葉大學資工系.
Session I Part II: WS Standards Umesh Bellur IIT Bombay umesh[at]it.iitb.ac.in.
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.
1 Web Services Representation and Management of Data on the Web.
IBM Software Group ® WSRP-UDDI Straw Man Richard Jacob WSRP-PFB SC.
1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality.
1 Web Service Description Language (WSDL) 大葉大學資工系.
1 WSDL Tutorial Heather Kreger (borrowed from Peter Brittenham) Web Services Architect IBM Emerging Technologies.
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.
1 Web Services Web and Database Management System.
Service provider service requestor application object (client) application object (service provider) SOAP-based middleware SOAP messages exchanged on top.
- 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
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.
Web Services Part 1 -- Qinwei Zhu Part 2 – Yongqun He.
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: Web Services Description Language (WSDL) Chris Greenhalgh
IBM Software Group ® WSRP-UDDI Straw Man Richard Jacob WSRP-PFB SC.
1 G52IWS: Universal Description, Discovery and Integration (UDDI)‏ Chris Greenhalgh
WSTK Development toolkit for Java Implementation of Web Services By Keping Jia.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Service Discovery: UDDI COMP6017 Topics on Web Services Dr Nicholas Gibbins –
UDDI (Universal Description,Discovery and Integration) By S.NAGARJUNA M.Tech-C.S.E.
INFS3204/ M51 INFS 3204/7204 Service-Oriented Architecture Dr Heng Tao SHEN ITEE, UQ Semester 2, M5: Web Service basics.
Sabri Kızanlık Ural Emekçi
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
System Directory for Document Sharing (SDDS)
Chris Peiris CSSE ASP.NET UDDI Browser Chris Peiris CSSE
Wsdl.
Presentation transcript:

Web Services Registries and UDDI INFOSYS290-3 Web Services: Concepts, Design and Implementation

Agenda UDDI V3 Spec –Data structures –Standard APIs Mapping WSDL to UDDI Tools –.NET APIs for searching for services in UDDI –Systinet for publishing services to UDDI Extending UDDI for More Robust Information

Why Do We Need a Web Services Registry Web services are valuable because of standardized payloads and transport definitions –The value is creating a web service that is used by many clients Can’t happen unless the services are advertised to multiple consumers

What Does UDDI Contain? Businesses and other service providers Services they expose Bindings (locations) of those services Interfaces supported by those services

UDDI Entities businessEntity – provider of service businessService – collection of related services bindingTemplate - information necessary to use tModel - “reusable concept” such as –Interface –Protocol used by web services –Category publisherAssertion - relationship that business entity has with another businessEntity Subscription – request to be informed of particular changes

Core UDDI Entities businessService Interface tModel bindingTemplate businessEntity bindingTemplate Interface tModel

Design Principles Keys as unique identifiers –Publisher assigned (new in V3) –Or generated by registry Containment and references –Keys inside elements are either contained entities or references to other entities Collections –Simple structure (e.g. name) just listed multiple times –Complex structure has container element (e.g. contacts on business) Optional attributes –Empty not omitted –<keyedReference tModelKey=”uddi:uddi.org:ubr:categorization:iso3166” keyName=”” – keyValue=”US-CA”/>

businessEntity Structure

businessEntity Identifying Elements Uniquely identified by businessKey attribute discoveryURLs – y:sales:53 Returns XML document of type businessEntity – name –Multiple names to do languages or abbreviations – – – 日本生花店 – ニッポンセイカテン – NIPPON FLOWERS – NF –..... – description –Multiple descriptions potentially in multiple languages with xml:lang

businessEntity contacts <

businessEntity Identifiers and Categories Optional IdentifierBag – <keyedReference tModelKey=”uddi:uddi.org:ubr:identifier:dnb.com :d-u-n-s” keyName=”SAP AG” keyValue=” ” /> – Optional CategoryBag – <keyedReference tModelKey=”uddi:uddi.org:ubr:categorization:iso3166” keyName=”California, USA” – keyValue=”US-CA” /> –

UDDI Keyed References tModelKey – –Required reference to tModel representing the identifier system (e.g. company identifier codes, geographical categories) keyName –Optional description of the identifier keyValue –Required identifier within the overall system

Keyed Reference Groups <keyedReference tModelKey=”uddi:uddi.org:ubr:categorizatio n:wgs84:latitude” keyName=”WGS 84 Latitude” keyValue=” ” /> <keyedReference tModelKey=”uddi:uddi.org:ubr:categorizati on:wgs84:longitude” keyName=”WGS 84 Longitude” keyValue=” ” />

businessService

Uniquely identified by optional serviceKey attribute –Supplied by UDDI if not supplied by publisher Optional descriptions Optional categorizations in categoryBag One or more bindingTemplates Optional digital signature

bindingTemplates

bindingTemplate Uniquely identified by optional bindingKey attribute Optional serviceKey identifies service that contains this bindingTemplate descriptions accessPoint - network address (URL) hostingRedirector – deprecated categoryBag – e.g. can indicate that given template if status of “test” or production” tModelInstanceDetails -

tModelInstance Details

overviewDoc

tModels The “technical fingerprint” –tModel’s define unique identifiers for interfaces and interface specifications –Once tModel is published service advertises compliance with the spec represented by including the correct tModelKey Value sets –Categorization hierarchies –E.g. categoryBag and identifierBag have references to tModels with the system of values Find qualifiers –find_business uddi:uddi.org:findqualifier:sortbydateasc

tModel Structure

Exactly one non-empty name Zero or more descriptions Zero or more overviewDocs –useType=text –useType=wsdlInterface identifierBag –Contains tModelKey which uniquely identifies tModel (inconsistent?) –Other logical identifiers categoryBag –list of categories that describe specific aspects of the tModel

UDDI Keys Domain keys –uddi:acmewidgets.com UUID keys –uddi:4CD7E4BC-648B-426D EAAC8AE23 Derived keys –uddi:tempuri.com:fish:buyingservice Key generator keys –Uddi:acmewidgets.com:keygenerator

UDDI Standard APIs

UDDI APIs Inquiry Publication Subscription Security Custody Transfer Replication

Inquiry API Patterns Browse –find_xx Drill-down –Use browse then drill-down –get_xx Invocation –Use browse and drilldown and get bindingTemplate –Invoke from bindingTemplate

Inquiry API Functions find_binding find_business find_relatedBusinesses find_service find_tModel get_bindingDetail get_businessDetail get_operationalInfo get_serviceDetail get_tModelDetail

find_binding

find_business

Find_business example uddi:uddi.org:findqualifier:approximatematc h uddi:uddi.org:findqualifier:combinecategory bags

find_service

find_tModel

find_tModel Example uddi:uddi.org:findqualifier:caseinsensitivemat ch uddi:uddi.org:findqualifier:approximat ematch rosetta%

Combined Searches uddi:uddi.org:findqualifier:sortbynameasc uddi:uddi.org:sortorder:uts-10 uddi:uddi.org:findqualifier:orallkeys uddi:some.specific.example:tmodelkey uddi:uddi.org:findqualifier:approximatematch uddi:uddi.org:findqualifier:caseinsensitivematch uddi:uddi.org:sortorder:uts-10 Rosetta%

Publication API save_binding save_business save_service save_tModel Delete_xx Xx_publisherAssertions

UDDI Tools

UDDI Registries UBR –Microsoft Uddi.microsoft.com –IBM –SAP –NTT Systinet –

Searching for Web Services

Publishing a Web Service

Connecting to UDDI with.NET public UddiConnection InitializeConnection() { string szInquiry = " string szPublish = " string szExtension = " string szUsername = null; string szPassword = null; UddiConnection oConnection = null; try { oConnect = new UddiConnection(szInquiry, szPublish, szExtension, szUsername, szPassword); System.Net.IWebProxy oProxy = System.Net.WebProxy(" oConnect.AutoGetAuthToken = true; oConnect.HttpClient.Proxy = oProxy; GetAuthToken oGetToken = new GetAuthToken(szUsername, szPassword); oConnect.AuthInfo = oGetToken.Send(oConnect); } catch(InvalidUrlPassedException oUddiEx) { // Insert exception-handling code. return null; } catch(UddiException oUddiEx) { // Insert exception-handling code. return null; } return oConnect; }

Finding Businesses with.NET using Microsoft.Uddi; try { // Create a connection to the UDDI node that is to be accessed. UddiConnection myConn = new UddiConnection (" // Create an object to find a business. FindBusiness fb = new FindBusiness("Fabrikam"); // Send the prepared FindBusiness request over the connection. BusinessList bizList = fb.Send(myConn); // Report the summary result. Console.WriteLine("Found " + bizList.BusinessInfos.Count + " businesses"); } catch (Microsoft.Uddi.UddiException e) { Console.WriteLine("UDDI error: " + e.Message); } catch (Exception gen) { Console.WriteLine("General exception: {0}", gen.Message); }

Publishing with.NET UddiConnection myConn = new UddiConnection(InquireTextbox.Text,PublishTextBox.Text); myConn.AuthenticationMode = AuthenticationMode.UddiAuthentication; myConn.Username = UserTextbox.Text; myConn.Password = PasswordTextbox.Text; // Create a named business entity. BusinessEntity myBiz = new BusinessEntity(BusinessNameTextbox.Text); // Use business entity to create an object to save a business. SaveBusiness sb = new SaveBusiness(myBiz); // Send the prepared save business request. BusinessDetail savedBiz = sb.Send(myConn); ReturnBiz.Text= savedBiz.BusinessEntities[0].Names[0].Text; ReturnKey.Text=savedBiz.BusinessEntities[0].BusinessKey;

Finding Services with.NET try { UddiConnection conn = new UddiConnection(" FindService fs = new FindService(“holdem odds”); ServiceList servList = fs.Send(conn); // Display the service name and unique identifying key. foreach (ServiceInfo servInfo in servList.ServiceInfos) { MessageBox.Show("Service: " + servInfo.Names[0].Text + " " + servInfo.ServiceKey); } catch (Microsoft.Uddi.UddiException ex) { MessageBox.Show("UDDI Exception: " + ex.Message); } catch (Exception gen) { MessageBox.Show("General Exception: " + gen.Message); }

Finding Bindings and Connecting //servicekey= xxxx; Tmodelkey=xxxx; Microsoft.Uddi.Inquire.Url = “uddi.microsoft.com”; bindingSearcher = new Microsoft.Uddi.FindBinding(); //bindingSearcher.ServiceKey=servicekey; bindingSearcher.TModelKeys.Add(tmodelkey); Microsoft.Uddi.BindingDetail details = bindingSearcher.Send(); string[] urllist=new string[details.BindingTemplates.Count]; for(int x=0;x<details.BindingTemplates.Count;x++) { if(details.BindingTemplates[x].AccessPoint.URLType==Microsoft.U ddi.Api.URL Type.Http|| details.BindingTemplates[x].AccessPoint.URLType==Microsoft.Uddi.Api.URLType.Https) { localhost.pokerodds po = new localhost.pokerodds(); po.Url = accessPoint; percentage = po.AfterFlopDraw(14 }

Mapping WSDL to UDDI UDDI technote (V2.0 in August 2003) regarding –How to take about WSDL objects and store them in UDDI equivalents –Enables queries on WSDL constituents (portTypes, operations, ports)

Overview

Wsdl:portType->uddi:tModel WSDLUDDI portTypetModel (categorized as portType) Namespace of portTypekeyedReference in categoryBag Local name of portTypetModel Name Location of WSDL Document overviewURL

portType->tModel StockQuotePortType <keyedReference tModelKey="uuid:d01987d1-ab2e be2-2a66eb99d824" keyName="portType namespace" keyValue=" /> <keyedReference tModelKey="uuid:6e090afa-33e5-36eb-81b7- 1ca18373f457" keyName="WSDL type" keyValue="portType" />

WSDL Binding to UDDI tModel WSDLUDDI bindingtModel (categorized as binding and wsdlSpec) Namespace of bindingkeyedReference in categoryBag Local name of bindingtModel Name Location of WSDL Document overviewURL portType reference and protocol references keyedReferences in category bag

StockQuoteSoapBinding <keyedReference tModelKey="uuid:d01987d1-ab2e be2-2a66eb99d824" keyName="binding namespace" keyValue=" /> <keyedReference tModelKey="uuid:6e090afa-33e5-36eb-81b7-1ca18373f457" keyName="WSDL type" keyValue="binding" /> <keyedReference tModelKey="uuid:082b d8-303c-b332-f24a6d53e38e" keyName="portType reference" keyValue="uuid:e8cf b35-865f-94a7322e40c3" /> <keyedReference tModelKey="uuid:4dc d9-aecd-33c57dc3a865" keyName="SOAP protocol" keyValue= "uuid:aa de df3-a5c075d64a0e" /> <keyedReference tModelKey="uuid:e5c e4-37bf d04b35c0099" keyName="HTTP transport" keyValue=" uuid:68DE9E80-AD09-469D-8A BFBC36" /> <keyedReference tModelKey="uuid:c1acf26d d70-39b756e62ab4" keyName="uddi-org:types" keyValue="wsdlSpec" />

WSDL Service to UDDI Business Service WSDLUDDI ServicebusinessService (categorized as service) Namespace of ServicekeyedReference in categoryBag Local Name of ServicekeyedReference in categoryBag; optionally also the name of the service

WSDL Port to UDDI bindingTemplate WSDLUDDI portbindingTemplate Namespace Captured in keyedReference of the containing businessService Local name of port instanceParms of the tModelInstanceInfo relating to the tModel for the binding Binding implemented by port tModelInstanceInfo with tModelKey of the tModel corresponding to the binding portType implemented by port tModelInstanceInfo with tModelKey of the tModel corresponding to the portType

Business Service and Binding Templates <businessService serviceKey="102b114a-52e0-4af4-a da543d4" businessKey="1e65ea29-4e0f d352d7b10368"> Stock Quote Service <bindingTemplate bindingKey="f793c521-0daf-434c e32da232e74" serviceKey="102b114a-52e0-4af4-a da543d4"> <tModelInstanceInfo tModelKey="uuid: f4a5-4ba5-b8d0-32ab388dadda"> The wsdl:binding that this wsdl:port implements. The instanceParms specifies the port local name. StockQuotePort <tModelInstanceInfo tModelKey="uuid:e8cf b35-865f-94a7322e40c3"> The wsdl:portType that this wsdl:port implements.

… and category bags for same <keyedReference tModelKey="uuid:6e090afa-33e5-36eb-81b7-1ca18373f457" keyName="WSDL type" keyValue="service" /> <keyedReference tModelKey="uuid:d01987d1-ab2e be2-2a66eb99d824" keyName="service namespace" keyValue=" /> <keyedReference tModelKey="uuid:2ec bec-c9dbefcaccf6" keyName="service local name" keyValue="StockQuoteService" />

Extending the Registry Categorization of tModels can be used to provide –Versioning of interfaces –QoS information on bindingTemplates

Versioning of tModels StockQuotePortType <keyedReference tModelKey="uddi:uddi.org:versioning:minor-version" keyName="Minor Version" keyValue="1"/>

QoS Information on BindingTemplates Stock Quote Service This is the reference to the tModel that will have all of the QOS related categories attached. This points to the tModel that has the reference to the web service endpoint that allows detailed retrieval of information

The tModel with the QoS Information – QoS Information for Stock Quote Service – – 10Mbps" />

Specs “Using WSDL in a UDDI Registry, Version 2.0.2” – spec/doc/tn/uddi-spec-tc-tn-wsdl-v htm

Articles.NET UDDI –Web Services Journal, “Microsoft UDDI SDK 2.0”, con.com/webservices/article.cfm?id=544 –MSDN, “Using UDDI at Run Time, Part I”, us/dnuddi/html/runtimeuddi1.asp - uses UDDI to query for other services for redundancy us/dnuddi/html/runtimeuddi1.asp –MSDN, “Using UDDI and Run Time, Part II”, us/dnuddi/html/runtimeuddi2.asp - uses UDDI to register service and then to query for instances of services supporting given tModel us/dnuddi/html/runtimeuddi2.asp Extending UDDI –UDDI as an Extended Web Services Registry: Versioning, quality of service, and more”, Blum Web Services Journal, June 2004, – “Extending UDDI with robust Web services information”, Blum html