Download presentation
Presentation is loading. Please wait.
Published byBranden Kendle Modified over 10 years ago
1
Web Service Challenges Who provides web services? How are they implemented? Where are they provided? What is their behavior? Is an application compatible? Searching and indexing are do not work today how to find the right services at the right time? we need solutions designed for tools and apps our expectations have been lowered by the Internet experience today
2
A meta service for locating web services by enabling robust queries against rich metadata How would you define UDDI:
3
What is UDDI? Universal Description Discovery and Integration Industry-wide initiative supporting web services Specifications Schemas for service description Schemas for business (service implementers) description Developed on industry standards (XML, HTTP, TCP/IP, SOAP) Applies equally to XML and non-XML web services Implementation Public web service registry and development resources
4
Industry-Wide Project Support All major technology providers Global corporations Strong resource and product commitment Roadmap for transition to standards body Unprecedented collaboration XML and Web Services recognized as core standards Competition on services built on a common model Technology, platform, and development language neutral
5
What Problems Do We Solve? An organization needs to create 400 electronic relationships with partners, each with its own standards and protocols Broader B2B A small business wants to be plugged in to every marketplace in the world, but doesnt know how SmarterSearch A B2B marketplace cannot get catalog data for relevant suppliers in its industry, along with connections to shippers, insurers, etc. EasierAggregation Describe Services Discover Services Integrate Them Together Provide a standards-based profile for all electronic services that are provided. Includes web sites, other electronic resources Web Service Visibility Publish for Accessibility
6
How did this come about? Naturally evolved –Ariba and IBM collaboration around B2B –IBM and Microsoft collaboration around XML and SOAP –Microsoft and Ariba collaboration around BizTalk and cXML 6 months, ~50 meetings
7
Foundation for Web Services Ubiquitous Communications: Internet Universal Data Format:XML Service Interactions:SOAP Formal Service Descriptions:WSDL Broad Industry Support, Simple Process Publish and Discover Services:UDDI
8
Again What is UDDI? A project to speed interoperability and adoption for web services –Standards-based specifications for service description and discovery –Shared operation of a business registry on the web Partnership among industry and business leaders Universal Description, Discovery, and Integration
9
Base UDDI Architecture A UDDI information model is composed of instances of the following entity types: · businessEntity: Describes a business or other organization that typically provides Web services. · businessService: Describes a collection of related Web services offered by an organization described by a businessEntity. · bindingTemplate: Describes the technical information necessary to use a particular Web service. · tModel: Describes a technical model representing a reusable concept, such as a Web service type, a protocol used by Web services, or a category system. · publisherAssertion: Describes, in the view of one businessEntity, the relationship that the businessEntity has with another businessEntity · subscription: Describes a standing request to keep track of changes to the entities described by the subscription.
10
AThe set of Web services supporting at least one of the Node API sets is referred to as a UDDI node. A UDDI node has these defining characteristics: 1. A UDDI node supports interaction with UDDI data through one or more UDDI API sets 2. A UDDI node is a member of exactly one UDDI registry. 3. A UDDI node conceptually has access to and manipulates a complete logical copy of the UDDI data managed by the registry of which it is a part. Moreover, it is this data which is manipulated by any query and publish APIs supported by the node. Typically, UDDI replication occurs between UDDI nodes which reside on different systems in order to manifest this logical copy in the node. The physical realization of a UDDI node is not mandated by this specification. UDDI Nodes
11
One or more UDDI nodes may be combined to form a UDDI Registry. A UDDI Registry has these defining characteristics. 1.A registry is comprised of one or more UDDI nodes. 2.The nodes of a registry collectively manage a well-defined set of UDDI data. Typically, this is supported by the use of UDDI replication between the nodes in the registry which reside on different systems. 3.A registry MUST make a policy decision for each policy decision point. It MAY choose to delegate policy decisions to nodes. See Chapter 9 Policy for details. P.S The physical realization of a UDDI Registry is not mandated by this specification. UDDI Registries
12
Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework. tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures. Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior tModels can be used to promote the interoperability between software systems. A UDDI tModel simply contains the addresses where those documents can be found. A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel. Technical Models (tModels)
13
Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework. tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures. Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior tModels can be used to promote the interoperability between software systems. A UDDI tModel simply contains the addresses where those documents can be found. A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel. Technical Models (tModels)
14
Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework. tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures. Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior tModels can be used to promote the interoperability between software systems. A UDDI tModel simply contains the addresses where those documents can be found. A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel. Technical Models (tModels)
15
Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework. tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures. Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior tModels can be used to promote the interoperability between software systems. A UDDI tModel simply contains the addresses where those documents can be found. A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel. Technical Models (tModels)
16
Technical Models, or tModels for short, are used in UDDI to represent unique concepts or constructs which provide a structure that allows re-use and, thus, standardization within a software framework. tModels exist outside the parent-child containment relationships between the businessEntity, businessService and bindingTemplate structures. Examples of tModels that enable the interoperability of Web services include those based on Web Service Description Language (WSDL), XML Schema Definition (XSD), and other documents that outline and specify the contract and behavior tModels can be used to promote the interoperability between software systems. A UDDI tModel simply contains the addresses where those documents can be found. A tModel, however, contains more than just URLs; it also stores metadata about the technical documents and an entity key that identifies that tModel. Technical Models (tModels)
17
UDDI v1 Implementation UDDI Business Registry Programmatic descriptions of web services Programmatic descriptions of businesses and the services they support Programming model, schema, and platform agnostic Uses XML, HTTP, and SOAP Free on the Internet Manufacturers Flower Shops Marketplaces
18
How UDDI v1 Works UDDI Business Registry 3.3. UBR assigns a programmatically unique identifier to each service and business registration Marketplaces, search engines, and business apps query the registry to discover services at other companies 4.4. Segrvice Type Reistrations SW companies, standards bodies, and programmers populate the registry with descriptions of different types of services 1.1. Business Registrations Businesses populate the registry with descriptions of the services they support 2.2. Business uses this data to facilitate easier integration with each other over the Web 5.5.
19
UDDI Registry Entries Standards Bodies, Agencies, Programmers, Publishers register specifications for their Service Types Standards Bodies, Agencies, Programmers, Publishers register specifications for their Service Types Service providers register precise information about themselves and their Web services Service providers register precise information about themselves and their Web services
20
Business name General business description – Any number of languages Contact info – Names, phone numbers, fax numbers, web sites, etc. Known identifiers – List of unique identifiers for a business D-U-N-S, Thomas, domain name, stock ticker symbol, other
21
Business categories – 3 base taxonomies in V1 Industry: NAICS (Industry codes - US Govt.) Product/Services: UNSPSC (ECCMA) Location: Geographical taxonomy (ISO 3166) …easy extension in upcoming releases
22
New set of information businesses use to describe how to do e-commerce with them – Nested model Business process (functional) Service specifications (technical) Binding information (implementation) – Programming/platform/ implementation agnostic – Services can also be categorized
23
Public Registry Operation IBM HP (planned) Microsoft other Peer registry nodes (websites) Information registered with any node Registrations replicated on a daily basis Complete set of registered records available at all nodes Common set of SOAP APIs supported by all nodes Compliance enforced by business contract All technologies applied – Interoperability verified constantly UDDI.org queries Applications Marketplaces End Users Developers
24
Service Type Registration Pointer to the namespace where service type is described – What programmers read to understand how to use the service Identifier for who published the service Identifier for the service type registration – called a tModelKey – Used as a signature by web sites that implement those services
25
businessEntity businessKey name URL description contacts businessServices identifierBag categoryBag Phone Address Email Contact businessService Key Name Description BindingTemplates Phone Address Email Contact businessService serviceKey tModelKey Name Description BindingTemplates keyedReference tModelKey keyName keyValue keyedReference tModelKey keyName keyValue keyedReference tModelKey keyName keyValue keyedReference tModelKey keyName keyValue Business Registration XML document Created by end-user company (or on their behalf) Can have multiple service listings Can have multiple taxonomy listings
26
Example of a Registration businessEntity TB993… Harbour Metals www.harbourmetals.co.au Serving Inner Sydney Harbour for … contacts businessServices identifierBag categoryBag 872-6891 4281 Kings Blvd, Sydney, NSW Peter@harbourmetals.co.au Peter Smythe businessService Key Name Description BindingTemplates businessService 23T701e54683nf… Online catalog Website where you can … BindingTemplates BindingTemplate 5E2D412E5-44EE-… http://www.sydneynet/harbour… tModelInstanceDetails tModelInstanceInfo 4453D6FC-223C-3ED0… http://www.rosetta.net/catalogPIP keyedReference DFE-2B… DUNS 45231 keyedReference EE123… NAICS 02417 tModelKeys
27
Registry APIs (SOAP Messages) Inquiry API – Find things find_business find_service find_binding find_tModel – Get Details about things get_businessDetail get_serviceDetail get_bindingDetail get_tModelDetail Publishers API – Save things save_business save_service save_binding save_tModel – Delete things delete_business delete_service delete_binding delete_tModel – security… get_authToken discard_authToken
28
IBM Ariba Microsoft other Now look at that again:Registry Operation Peer nodes (websites) Companies register with any node Registrations replicated on a daily basis Complete set of registered records available at all nodes Common set of SOAP APIs supported by all nodes Compliance enforced by business contract UDDI.org queries
29
The programmers API Implementation The Universal Description, Discovery, and Integration (UDDI) Service is up and running at Microsoft, IBM, and Ariba. This is an online Web Service that you can use from your applications to dynamically discover other online services, all neatly packaged in a simple XML interface. Following are the three URLs: http://uddi.microsoft.com/inquire http://uddi.ariba.com/UDDIProcessor.aw/ad/process http://www-3.ibm.com/services/uddi/inquiryapi These are the UDDI entry points for INQUIRIES. The entry points for updates are different and are typically HTTPS addresses for security reasons. Here is the deal!
30
The four core types of data structures that are specified by the UDDI API Schema and their relationships are shown here
31
businessEntity Structure Each businessEntity entity contains descriptive information about a business or organization and, through its contained businessService entities, information about the services that it offers
32
What XML Do You POST? … The contents of the element can be any query from the uddi schema. For example, the following query, when placed inside the of the SOAP envelope returns the details on Microsoft: Microsoft
33
From a JScript file or HTML page the XMLHTTP control provided by MSXML can be used as follows: How Do You Post the XML? http = new ActiveXObject("Microsoft.XMLHTTP"); http.open("POST", url, false); http.setRequestHeader("Accept","text/xml"); http.setRequestHeader("Cache-Control","no-cache"); http.setRequestHeader("SOAPAction",'""'); http.send(msg);
34
What Do You Get Back? In this case you get a detailed listing of elements currently registered for Microsoft, which includes information about the UDDI service itself. <businessList generic="1.0" operator="Microsoft Corporation" truncated="false" xmlns="urn:uddi-org:api"> Microsoft Corporation Empowering people through great software - any time, any place and on any device is Microsofts vision. As the worldwide leader in software for personal and business computing, we strive to produce innovative products and services that meet our customer's <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="8BF2F51F-8ED4-43FE-B665-38D8205D1333"> Electronic Business Integration Services <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> UDDI Web Services
35
How how to drill in and get information about one specific service For example, lets drill in on the UDDI Web Service. You can take the businessKey from the above results and use to look up a service by name: <find_service generic='1.0' xmlns='urn:uddi-org:api' businessKey='0076B468-EB27-42E5-AC09-9955CFF462A3'> UDDI Web Services This returns the information about this service: <serviceList generic="1.0" operator="Microsoft Corporation" truncated="false" xmlns="urn:uddi-org:api"> <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> UDDI Web Services
36
Then you can use the serviceKey to get the details about this particular service: D2BC296A-723B-4C45-9ED4-494F9E53F1D1 This returns the following : <serviceDetail generic="1.0" operator="Microsoft Corporation" truncated="false" xmlns="urn:uddi-org:api"> <businessService businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> UDDI Web Services UDDI SOAP/XML message-based programmatic web service interfaces. <bindingTemplate bindingKey="A9CAFBE4-11C6-4BFE-90F5-595970D3DE24" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> Production UDDI server, Inquiry interface http://uddi.microsoft.com/inquire UDDI SOAP Inquiry Interface <keyedReference keyName="KEYWORD" keyValue="API" tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4"> <keyedReference keyName="KEYWORD" keyValue="SOAP" tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4"> <keyedReference keyName="KEYWORD" keyValue="XML" tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4">
37
This diagram illustrates several models of registry interaction enabled by the UDDI 3 specification. Through mechanisms like publish/subscribe and replication among peer nodes, information in UDDI servers can be fully public, semiprivate, or fully private. (Source: uddi.org)uddi.org
38
https://uddi.ibm.com/beta/registry.html Practical Examples of UDDI registries
39
Practical Example from IBM http://www-106.ibm.com/developerworks/library/ws-uddi4j.html http://www-106.ibm.com/developerworks/library/ws-uddi4j.html UDDIProxy proxy = new UDDIProxy(); proxy.setInquiryURL("http://www-3.ibm.com/services/uddi/ testregistry/inquiryapi"); proxy.setPublishURL("https://www-3.ibm.com/services/uddi/ testregistry/protect/publishapi"); Code fragment for creating a UDDIProxy
40
FindBusinessExample.java BusinessList bl = proxy.find_business("S", null, 0); Code fragment to Find a business in the UDDI registry Once we have the list of businesses that match our search criteria, this code iterates through the list and prints the names of all the businesses that match: Vector businessInfoVector = bl.getBusinessInfos().getBusinessInfoVector(); for (int i = 0; i < businessInfoVector.size(); i++) { BusinessInfo businessInfo = (BusinessInfo)businessInfoVector.elementAt(i); System.out.println(businessInfo.getNameString()); }
41
Publish a business listing SaveBusinessExample.javaUDDIProxysetPublishURL AuthToken token = proxy.get_authToken("userid", "password"); The next step is to defining the business name Vector entities = new Vector(); BusinessEntity be = new BusinessEntity(""); be.setName("Sample business"); entities.addElement(be); BusinessDetail bd = proxy.save_business(token.getAuthInfoString(), entities); To verify that our data was published to the registry successfully, print the data we received from the save_business method Vector businessEntities = bd.getBusinessEntityVector(); BusinessEntity returnedBusinessEntity = (BusinessEntity)(businessEntities.elementAt(0)); System.out.println("Returned businessKey:" + returnedBusinessEntity.getBusinessKey());
42
Unpublish (delete) a business listing DeleteBusinessExample.javaBusinessEntity BusinessList bl = proxy.find_business("Sample business", null, 0); Now that I have the list of businesses that match, I'll attempt to delete each one Vector businessInfoVector = bl.getBusinessInfos().getBusinessInfoVector(); for (int i = 0; i < businessInfoVector.size(); i++) { BusinessInfo bi = (BusinessInfo)businessInfoVector.elementAt(i); System.out.println("Found business key:" + bi.getBusinessKey()); DispositionReport dr = proxy.delete_business(token.getAuthInfoString(), bi.getBusinessKey()); if (dr.success()) { System.out.println("Business successfully deleted"); } Else // handle error case
43
More Information UDDI Resources –http://www.uddi.org –http://uddi.microsoft.com –http://www-3.ibm.com/services/uddi –Public discussions and mailing lists at www.yahoogroups.com For Developers SOAP/Web Services SDK msdn.microsoft.com/xml/general/soap1and2.asp Visual Basic UDDI SDK www.microsoft.com/downloads/release.asp?ReleaseID=24822 IBM AlphaWorks Web Services Toolkit http://www.alphaworks.ibm.com/tech/webservicestoolkit
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.