1 / 43

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

holden
Download Presentation

Web Service Challenges

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 WebService Challenges

  2. How would you define UDDI: A “meta service” for locating web services by enabling robust queries against rich metadata

  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. An organization needs to create 400 electronic relationships with partners, each with its own standards and protocols BroaderB2B A small business wants to be “plugged in” to every marketplace in the world, but doesn’t know how Smarter Search A B2B marketplace cannot get catalog data for relevant suppliers in its industry, along with connections to shippers, insurers, etc. Easier Aggregation What Problems Do We Solve? Describe Services Discover Services IntegrateThemTogether Provide a standards-based profile for all electronic services that are provided. Includes web sites, other electronic resources Publish for Accessibility Web Service Visibility

  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 Publish and Discover Services: UDDI Formal Service Descriptions: WSDL Service Interactions: SOAP Universal Data Format: XML Ubiquitous Communications: Internet Broad Industry Support, Simple Process

  8. 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 Again What is UDDI?

  9. 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. Base UDDI Architecture

  10. UDDI Nodes 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.

  11. UDDI Registries 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.

  12. Technical Models (tModels) 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.

  13. Technical Models (tModels) 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.

  14. Technical Models (tModels) 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.

  15. Technical Models (tModels) 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.

  16. Technical Models (tModels) 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.

  17. 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 UDDI v1 Implementation

  18. 4. Marketplaces, search engines, and business apps query the registry to discover services at other companies 2. 5. BusinessRegistrations Businesses populate the registry with descriptions of the services they support Business uses this data to facilitate easier integration with each other over the Web 3. UBR assigns a programmatically unique identifier to each service and business registration How UDDI v1 Works 1. SW companies, standards bodies, and programmers populate the registry with descriptions of different types of services UDDI BusinessRegistry Segrvice Type Reistrations

  19. UDDI Registry Entries • Standards Bodies, Agencies, Programmers, Publishers register specifications for their Service Types • 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 • Peer registry nodes (websites) • Information registeredwith any node • Registrations replicatedon a daily basis • Complete set of“registered” recordsavailable at all nodes • Common set ofSOAP APIs supportedby all nodes • Compliance enforced by business contract • All technologies applied • Interoperability verified constantly Developers Applications Marketplaces End Users IBM queries other UDDI.org HP (planned) other Microsoft

  24. 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 Service Type Registration

  25. XML document Created by end-user company (or on their behalf) Can have multiple service listings Can have multiple taxonomy listings Contact Contact Phone Address Email Phone Address Email keyedReference keyedReference keyedReference keyedReference tModelKey keyName keyValue tModelKey keyName keyValue tModelKey keyName keyValue tModelKey keyName keyValue Business Registration businessEntity businessKey name URL description contacts businessServices identifierBag categoryBag businessService businessService serviceKey tModelKey Name Description BindingTemplates Key Name Description BindingTemplates

  26. Peter Smythe businessEntity 872-6891 4281 King’s Blvd, Sydney, NSW Peter@harbourmetals.co.au TB993… Harbour Metals www.harbourmetals.co.au “Serving Inner Sydney Harbour for … contacts businessServices identifierBag categoryBag businessService businessService 23T701e54683nf… Online catalog “Website where you can … BindingTemplates Key Name Description BindingTemplates BindingTemplate keyedReference keyedReference 5E2D412E5-44EE-… http://www.sydneynet/harbour… tModelInstanceDetails EE123… NAICS 02417 DFE-2B… DUNS 45231 tModelInstanceInfo 4453D6FC-223C-3ED0… http://www.rosetta.net/catalogPIP tModelKeys Example of a Registration

  27. 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 Registry APIs (SOAP Messages)

  28. Now look at that again:Registry Operation queries • Peer nodes (websites) • Companies registerwith any node • Registrations replicatedon a daily basis • Complete set of“registered” recordsavailable at all nodes • Common set ofSOAP APIs supportedby all nodes • Compliance enforced bybusiness contract IBM Ariba other UDDI.org other Microsoft

  29. The programmer’s API Implementation Here is the deal! • 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.

  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? <?xml version='1.0' encoding='UTF-8'?> <Envelope xmlns='http://schemas.xmlsoap.org/soap/envelope/'> <Body>…</Body> </Envelope> The contents of the <Body> element can be any query from the uddi schema. For example, the following query, when placed inside the <Body> of the SOAP envelope returns the details on Microsoft: <find_business generic="1.0" xmlns="urn:uddi-org:api"> <name>Microsoft</name> </find_business>

  33. How Do You Post the XML? From a JScript file or HTML page the XMLHTTP control provided by MSXML can be used as follows: 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 <businessInfo> 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"> <businessInfos> <businessInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3"> <name>Microsoft Corporation</name> <description xml:lang="en">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 </description> <serviceInfos> <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="8BF2F51F-8ED4-43FE-B665-38D8205D1333"> <name>Electronic Business Integration Services</name> </serviceInfo> <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> <name>UDDI Web Services</name> </serviceInfo> </serviceInfos> </businessInfo> </businessInfos> </businessList>

  35. How how to drill in and get information about one specific service For example, let’s drill in on the UDDI Web Service. You can take the businessKey from the above results and use <find_service> to look up a service by name: <find_service generic='1.0' xmlns='urn:uddi-org:api' businessKey='0076B468-EB27-42E5-AC09-9955CFF462A3'> <name>UDDI Web Services</name> </find_service> This returns the information about this service: <serviceList generic="1.0" operator="Microsoft Corporation" truncated="false" xmlns="urn:uddi-org:api"> <serviceInfos> <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> <name>UDDI Web Services</name> </serviceInfo> </serviceInfos> </serviceList>

  36. Then you can use the serviceKey to get the details about this particular service: <get_serviceDetail generic='1.0' xmlns='urn:uddi-org:api'> <serviceKey>D2BC296A-723B-4C45-9ED4-494F9E53F1D1</serviceKey> </get_serviceDetail> This returns the following <bindingTemplates>: <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"> <name>UDDI Web Services</name> <description xml:lang="en">UDDI SOAP/XML message-based programmatic web service interfaces.</description> <bindingTemplate bindingKey="A9CAFBE4-11C6-4BFE-90F5-595970D3DE24" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> <description xml:lang="en">Production UDDI server, Inquiry interface</description> <accessPoint URLType="http">http://uddi.microsoft.com/inquire</accessPoint> <tModelInstanceDetails> <tModelInstanceInfo tModelKey="uuid:4CD7E4BC-648B-426D-9936-443EAAC8AE23"> <description xml:lang="en">UDDI SOAP Inquiry Interface</description> </tModelInstanceInfo> </tModelInstanceDetails> </bindingTemplate> <categoryBag> <keyedReference keyName="KEYWORD" keyValue="API" tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4"></keyedReference> <keyedReference keyName="KEYWORD" keyValue="SOAP" tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4"></keyedReference> <keyedReference keyName="KEYWORD" keyValue="XML" tModelKey="uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4"></keyedReference> </categoryBag> </businessService> </serviceDetail>

  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)

  38. Practical Examples of UDDI registries https://uddi.ibm.com/beta/registry.html

  39. Practical Example from IBMhttp://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. Code fragment to Find a business in the UDDI registry FindBusinessExample.java BusinessList bl = proxy.find_business("S", null, 0); 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. 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 More Information

More Related