Web Services Registries and UDDI [email protected] INFOSYS290-3 Web Services: Concepts, Design and...

60
Web Services Registries and UDDI [email protected] INFOSYS290-3 Web Services: Concepts, Design and Implementation

Transcript of Web Services Registries and UDDI [email protected] INFOSYS290-3 Web Services: Concepts, Design and...

Page 1: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Web Services Registriesand UDDI

[email protected]

INFOSYS290-3 Web Services: Concepts, Design and Implementation

Page 2: Web Services Registries and UDDI ablum@good.com 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

Page 3: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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

Page 4: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

What Does UDDI Contain?

• Businesses and other service providers

• Services they expose

• Bindings (locations) of those services

• Interfaces supported by those services

Page 5: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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

Page 6: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Core UDDI Entities

businessService

businessService

Interface tModelbindingTemplate

bindingTemplate

businessEntity

bindingTemplateInterface tModel

Page 7: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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”/>

Page 8: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

businessEntity Structure

Page 9: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

businessEntity Identifying Elements• Uniquely identified by businessKey attribute• discoveryURLs

– <discoveryURL useType=”businessEntity”>http://www.example.com?businessKey=uddi:example.com:registry:sales:53</discoveryURL>

• Returns XML document of type businessEntity– <discoveryURL useType=”homepage”>

    http://www.acmewidgets.com</discoveryURL>• name

– Multiple names to do languages or abbreviations– <businessEntity . . . >–   ........–   <name xml:lang="ja">日本生花店 </name>–   <name xml:lang="ja">ニッポンセイカテン </name>–   <name xml:lang="en">NIPPON FLOWERS </name>–   <name xml:lang="en">NF</name>–   .....– </businessEntity>

• description– Multiple descriptions potentially in multiple languages with xml:lang

Page 10: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

businessEntity contacts

<

Page 11: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

businessEntity Identifiers and Categories

• Optional IdentifierBag– <identifierBag>

    <keyedReference      tModelKey=”uddi:uddi.org:ubr:identifier:dnb.com:d-u-n-s”      keyName=”SAP AG”

•         keyValue=”31-626-8655” />– </identifierBag>

• Optional CategoryBag– <categoryBag>

   <keyedReference    tModelKey=”uddi:uddi.org:ubr:categorization:iso3166”    keyName=”California, USA”

–     keyValue=”US-CA” />– </categoryBag>

Page 12: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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

Page 13: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Keyed Reference Groups• <keyedReferenceGroup

tModelKey=”uddi:uddi.org:ubr:categorizationGroup:wgs84” >    <keyedReference        tModelKey=”uddi:uddi.org:ubr:categorization:wgs84:latitude”        keyName=”WGS 84 Latitude”

•         keyValue=”+49.682700” />•      <keyedReference

         tModelKey=”uddi:uddi.org:ubr:categorization:wgs84:longitude”         keyName=”WGS 84 Longitude”

•          keyValue=”+008.295200” />• </keyedReferenceGroup>

Page 14: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

businessService

Page 15: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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

Page 16: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

bindingTemplates

Page 17: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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 -

Page 18: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

tModelInstance Details

Page 19: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

overviewDoc

Page 20: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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

Page 21: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

tModel Structure

Page 22: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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

Page 23: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

UDDI Keys

• Domain keys– uddi:acmewidgets.com

• UUID keys– uddi:4CD7E4BC-648B-426D-9936-

443EAAC8AE23

• Derived keys– uddi:tempuri.com:fish:buyingservice

• Key generator keys– Uddi:acmewidgets.com:keygenerator

Page 24: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

UDDI Standard APIs

Page 25: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

UDDI APIs

• Inquiry

• Publication

• Subscription

• Security

• Custody Transfer

• Replication

Page 26: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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

Page 27: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Inquiry API Functions

• find_binding

• find_business

• find_relatedBusinesses

• find_service

• find_tModel

• get_bindingDetail

• get_businessDetail

• get_operationalInfo

• get_serviceDetail

• get_tModelDetail

Page 28: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

find_binding

Page 29: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

find_business

Page 30: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Find_business example• <find_business xmlns="urn:uddi-org:api_v3">

  <findQualifiers>    <findQualifier>       uddi:uddi.org:findqualifier:approximatematch    </findQualifier>    <findQualifier>       uddi:uddi.org:findqualifier:combinecategorybags    </findQualifier>  </findQualifiers>  <categoryBag>    <keyedReference keyValue="34.10.%"        tModelKey="uddi:uddi.org:ubr:categorization:unspsc"/>  </categoryBag></find_business>

Page 31: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

find_service

Page 32: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

find_tModel

Page 33: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

find_tModel Example

<find_tModel xmlns="urn:uddi-org:api_v3">  <findQualifiers>    <findQualifier>

uddi:uddi.org:findqualifier:caseinsensitivematch    </findQualifier>    <findQualifier>       uddi:uddi.org:findqualifier:approximatematch    </findQualifier>  </findQualifiers>  <name>rosetta%</name></find_tModel>

Page 34: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Combined Searches<find_business xmlns="urn:uddi-org:api_v3">

  <findQualifiers>    <findQualifier>       uddi:uddi.org:findqualifier:sortbynameasc    </findQualifier>    <findQualifier>       uddi:uddi.org:sortorder:uts-10    </findQualifier>    <findQualifier>       uddi:uddi.org:findqualifier:orallkeys    </findQualifier>  </findQualifiers>  <!--find businesses that have bindings that reference       this fixed tModel -->  <tModelBag>    <tModelKey>uddi:some.specific.example:tmodelkey</tModelKey>  </tModelBag>  <!--OR one of the RosettaNet tModels -->  <find_tModel xmlns="urn:uddi-org:api_v3">    <findQualifiers>      <findQualifier>         uddi:uddi.org:findqualifier:approximatematch      </findQualifier>      <findQualifier>         uddi:uddi.org:findqualifier:caseinsensitivematch      </findQualifier>      <findQualifier>         uddi:uddi.org:sortorder:uts-10      </findQualifier>    </findQualifiers>    <name>Rosetta%</name>  </find_tModel></find_business>

Page 35: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Publication API

• save_binding

• save_business

• save_service

• save_tModel

• Delete_xx

• Xx_publisherAssertions

Page 36: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

UDDI Tools

Page 37: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

UDDI Registries

• UBR– Microsoft

• Uddi.microsoft.com

– IBM• https://uddi.ibm.com/ubr/registry.html

– SAP– NTT

• Systinet– http://www.systinet.com/uddi/web

Page 38: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Searching for Web Services

Page 39: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Publishing a Web Service

Page 40: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Connecting to UDDI with .NETpublic UddiConnection InitializeConnection() {

string szInquiry = "http://test.uddi.microsoft.com/inquire"; string szPublish = "https://test.uddi.microsoft.com/publish"; string szExtension = "http://test.uddi.microsoft.com/extension.asmx"; 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("http://someproxy:80",true); 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;

}

Page 41: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Finding Businesses with .NETusing Microsoft.Uddi;

try {

// Create a connection to the UDDI node that is to be accessed.UddiConnection myConn = new UddiConnection("http://test.uddi.microsoft.com/inquire");

// 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);

}

Page 42: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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;

Page 43: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Finding Services with .NETtry {

UddiConnection conn = new UddiConnection("http://localhost/uddi/inquire.asmx");

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); }

Page 44: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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.Uddi.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

}}

Page 45: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

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)

Page 46: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Overview

Page 47: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Wsdl:portType->uddi:tModel

WSDL UDDI

portType tModel (categorized as portType)

Namespace of portType keyedReference in categoryBag

Local name of portType tModel Name

Location of WSDL Document

overviewURL

Page 48: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

portType->tModel• <tModel tModelKey="uuid:e8cf1163-8234-4b35-865f-94a7322e40c3" >•     <name>•          StockQuotePortType•     </name>•     <overviewDoc>•          <overviewURL>•              http://location/sample.wsdl•          <overviewURL>•     <overviewDoc>•     <categoryBag>•          <keyedReference •              tModelKey="uuid:d01987d1-ab2e-3013-9be2-2a66eb99d824"•          keyName="portType namespace" •              keyValue="http://example.com/stockquote/" />•          <keyedReference •              tModelKey="uuid:6e090afa-33e5-36eb-81b7-

1ca18373f457"•          keyName="WSDL type" •              keyValue="portType" />•     </categoryBag>• </tModel>

Page 49: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

WSDL Binding to UDDI tModel

WSDL UDDI

binding tModel (categorized as binding and wsdlSpec)

Namespace of binding keyedReference in categoryBag

Local name of binding tModel Name

Location of WSDL Document

overviewURL

portType reference and protocol references

keyedReferences in category bag

Page 50: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

• <tModel tModelKey="uuid:49662926-f4a5-4ba5-b8d0-32ab388dadda">• <name>StockQuoteSoapBinding</name>•     <overviewDoc>•          <overviewURL>•              http://location/sample.wsdl•          </overviewURL>•     </overviewDoc>•     <categoryBag>•          <keyedReference •              tModelKey="uuid:d01987d1-ab2e-3013-9be2-2a66eb99d824"•           keyName="binding namespace" •              keyValue="http://example.com/stockquote/" />•          <keyedReference •              tModelKey="uuid:6e090afa-33e5-36eb-81b7-1ca18373f457"•           keyName="WSDL type" •              keyValue="binding" />•          <keyedReference •              tModelKey="uuid:082b0851-25d8-303c-b332-f24a6d53e38e" •           keyName="portType reference"•              keyValue="uuid:e8cf1163-8234-4b35-865f-94a7322e40c3" />•          <keyedReference •              tModelKey="uuid:4dc74177-7806-34d9-aecd-33c57dc3a865" •           keyName="SOAP protocol"•              keyValue= "uuid:aa254698-93de-3870-8df3-a5c075d64a0e" />•          <keyedReference •              tModelKey="uuid:e5c43936-86e4-37bf-8196-1d04b35c0099" •           keyName="HTTP transport"•              keyValue=" uuid:68DE9E80-AD09-469D-8A37-088422BFBC36" />•          <keyedReference •              tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" •           keyName="uddi-org:types"•              keyValue="wsdlSpec" />•     </categoryBag>• </tModel>

Page 51: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

WSDL Service to UDDI Business Service

WSDL UDDI

Service businessService (categorized as service)

Namespace of Service keyedReference in categoryBag

Local Name of Service keyedReference in categoryBag; optionally also the name of the service

Page 52: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

WSDL Port to UDDI bindingTemplate

WSDL UDDI

port bindingTemplate

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 

Page 53: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Business Service and Binding Templates• <businessService

•          serviceKey="102b114a-52e0-4af4-a292-02700da543d4" •          businessKey="1e65ea29-4e0f-4807-8098-d352d7b10368">•     <name>Stock Quote Service</name>•     <bindingTemplates>•          <bindingTemplate •              bindingKey="f793c521-0daf-434c-8700-0e32da232e74" •              serviceKey="102b114a-52e0-4af4-a292-02700da543d4">•              <accessPoint URLType="http">•                  http://location/sample•              </accessPoint>•              <tModelInstanceDetails>•                  <tModelInstanceInfo •                       tModelKey="uuid:49662926-f4a5-4ba5-b8d0-32ab388dadda">•                       <description xml:lang="en">•                           The wsdl:binding that this wsdl:port implements. The instanceParms

specifies the port local name.•                       </description>•                       <instanceDetails>•                           <instanceParms>StockQuotePort</instanceParms>•                       </instanceDetails>•                  </tModelInstanceInfo>•                  <tModelInstanceInfo •                       tModelKey="uuid:e8cf1163-8234-4b35-865f-94a7322e40c3">•                       <description xml:lang="en">•                           The wsdl:portType that this wsdl:port implements.•                       </description>•                  </tModelInstanceInfo>•              </tModelInstanceDetails>•          </bindingTemplate>•     </bindingTemplates>•    

Page 54: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

… and category bags for same• <categoryBag>•     <keyedReference •              tModelKey="uuid:6e090afa-33e5-36eb-81b7-1ca18373f457"•           keyName="WSDL type"•              keyValue="service" />•     <keyedReference •              tModelKey="uuid:d01987d1-ab2e-3013-9be2-2a66eb99d824"•           keyName="service namespace" •              keyValue="http://example.com/stockquote/" />•     <keyedReference •              tModelKey="uuid:2ec65201-9109-3919-9bec-c9dbefcaccf6"•           keyName="service local name"•              keyValue="StockQuoteService" />• </categoryBag>• </businessService>

Page 55: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Extending the Registry

• Categorization of tModels can be used to provide– Versioning of interfaces– QoS information on bindingTemplates

Page 56: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Versioning of tModels<tModel tModelKey="uddi:mycompany.com:stockquoteporttype">

<name>StockQuotePortType</name> <overviewDoc> <overviewURL> http://location/sample.wsdl <overviewURL> <overviewDoc> <categoryBag> <keyedReference tModelKey="uddi:uddi.org:versioning:major-version" keyName="Major Version" keyValue="2"/> <keyedReference tModelKey="uddi:uddi.org:versioning:minor-version" keyName="Minor Version" keyValue="1"/> <keyedReference tModelKey="uddi:uddi.org:versioning:revision-number" keyName="Revision Number" keyValue="Build 1241"/> <keyedReference tModelKey="uddi:uddi.org:versioning:milestone" keyName="Milestone" keyValue="latest-revision"/> <keyedReference tModelKey="uddi:uddi.org:versioning:versioning-component" keyName="Versioning Component" keyValue="StockQuoteSampleComponent"/> <keyedReference tModelKey="uddi:uddi-org:xml:namespace" keyName="portType namespace" keyValue="http://example.com/stockquote/"/> <keyedReference tModelKey="uddi:uddi-org:wsdl:types" keyName="WSDL type" keyValue="portType"/> </categoryBag>

</tModel>

Page 57: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

QoS Information on BindingTemplates

<businessService serviceKey="uddi:mycompany.com:StockQuoteService" businessKey="uddi:mycompany.com:business> <name>Stock Quote Service</name> <bindingTemplates> <bindingTemplate bindingKey="uddi:mycompany.com:StockQuoteService:primaryBinding" serviceKey="uddi:mycompany.com:StockQuoteService"> <accessPoint URLType="http">http://location/sample </accessPoint> <tModelInstanceDetails>

<tModelInstanceInfo tModelKey="uddi:mycompany.com:StockQuoteService:PrimaryBinding:QoSInformation">

<description xml:lang="en"> This is the reference to the tModel that will have all of the QOS related categories attached. </description> </tModelInstanceInfo> <tModelInstanceInfo

tModelKey="uddi:mycompany.com:StockQuoteService:Primary Binding:QoSDetail">

<description xml:lang="en"> This points to the tModel that has the reference to the web

service endpoint that allows detailed retrieval of information </description> </tModelInstanceInfo>

</tModelInstanceDetails> </bindingTemplate> </bindingTemplates>

</businessService>

Page 58: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

The tModel with the QoS Information

• <tModel tModelKey="mycompany.com:StockQuoteService: PrimaryBinding:QoSInformation"" > – <name> QoS Information for Stock Quote Service

</name> <overviewDoc> • <overviewURL> http://<URL describing schema of QoS attributes> <overviewURL>

– <overviewDoc> • <categoryBag>

– <keyedReference tModelKey="uddi:uddi.org:QoS:ResponseTime" keyName="Average ResponseTime" keyValue="fast" /> <keyedReference tModelKey="uddi:uddi.org:QoS:Throughput" keyName="Average Throughput" keyValue=">10Mbps" /> <keyedReference tModelKey="uddi:uddi.org:QoS:Reliability" keyName="Average Reliability" keyValue="99.9%" />

• </categoryBag> • </tModel>

Page 59: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Specs

• “Using WSDL in a UDDI Registry, Version 2.0.2”– http://www.oasis-open.org/committees/uddi-

spec/doc/tn/uddi-spec-tc-tn-wsdl-v202-20040631.htm

Page 60: Web Services Registries and UDDI ablum@good.com INFOSYS290-3 Web Services: Concepts, Design and Implementation.

Articles• .NET UDDI

– Web Services Journal, “Microsoft UDDI SDK 2.0”, http://www.sys-con.com/webservices/article.cfm?id=544

– MSDN, “Using UDDI at Run Time, Part I”, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnuddi/html/runtimeuddi1.asp - uses UDDI to query for other services for redundancy

– MSDN, “Using UDDI and Run Time, Part II”, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnuddi/html/runtimeuddi2.asp - uses UDDI to register service and then to query for instances of services supporting given tModel

• Extending UDDI– UDDI as an Extended Web Services Registry: Versioning, quality of service, and

more”, Blum• Web Services Journal, June 2004, http://www.sys-con.com/story/?storyid

=45102&DE=1– “Extending UDDI with robust Web services information”, Blum

• http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci952129,00.html