Web Service Challenges Who provides web services? How are they implemented? Where are they provided? What is their behavior? Is an application compatible?

Slides:



Advertisements
Similar presentations
Web services B. Pernici (alcuni lucidi sono tratti dalla presentazione di Leymann al VLDB 2001)
Advertisements

B2B standards REGNET INTEGRATION EAI B2B EAI ? A2A ? IAI ? B2B ? Set of processes and technologies dealing with the structural integration of software.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Overview Environment for Internet database connectivity
Web Service Architecture
INTRODUCTION A WEB SERVICE is an application that accepts requests from other systems across the Internet or an Intranet, mediated by lightweight, vendor-neutral.
Siebel Web Services Siebel Web Services March, From
Intesar G Ali IT DepartmentPalestinian Land Authority Web services Prepared by: Intesar Ali IT Department PLA August 2010.
Web Services Components of the Transactional Web James Snell
CSE 6331 © Leonidas Fegaras Web Services1 Web Services (adapted from Erdogan Dogdu's presentation) Leonidas Fegaras.
Web Services Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
UDDI v3.0 (Universal Description, Discovery and Integration)
General introduction to Web services and an implementation example
1 Understanding Web Services Presented By: Woodas Lai.
Web Services (Nuts and Bolts) ITEC 625 Web Development Fall 2006 Reference: Building Web Services with Java (Making sense of XML, SOAP, WSDL, and UDDI),
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
WEB SERVICES DAVIDE ZERBINO.
1 UDDI Jong-Ha Jung 07/28. 2 INDEX INDEX What is UDDI? What is UDDI? Appearance of UDDI Appearance of UDDI Why UDDI? Why UDDI? Analogy with Telephone.
UDDI, Discovery and Web Services Registries. Introduction To facilitate e-commerce, companies needed a way to locate one another and exchange information.
Web Services Technology Stack (WSDL and UDDI)
T NAF & XML UDDI Sasu Tarkoma and Pekka Nikander Helsinki Institute for Information Technology.
Web Services: UDDI. What is UDDI? UDDI = The Universal Description, Discovery, and Integration A central element of the group of standards that comprise.
UDDI Overview Copyright © by Accenture, Ariba, Inc., Commerce One, Inc., Fujitsu Limited, Hewlett-Packard Company, i2 Technologies, Inc., Intel.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
A New Computing Paradigm. Overview of Web Services Over 66 percent of respondents to a 2001 InfoWorld magazine poll agreed that "Web services are likely.
UDDI Ashish Jain University of Colorado 3 October, 2001.
Presentation 9: UDDI - Universel Description, Discovery & Integration.
Livermore July Web Services Overview Francisco Curbera IBM T.J. Watson Research Center.
Secure Systems Research Group - FAU Web Services Standards Presented by Keiko Hashizume.
Introduction to UDDI From: OASIS, Introduction to UDDI: Important Features and Functional Concepts.
WSTK Development toolkit for Java Implementation of Web Services By Keping Jia.
Discovering E-Services Using UDDI in SELF-SERV Quan Z. Sheng, Boualem Benatallah, Rayan Stephan, Eileen Oi-Yan Mak, Yan Q. Zhu School of Computer Science.
UDDI Overview 9/6/2000 © Copyright 2000 By Ariba, Inc., International Business Machines Corporation and Microsoft Corporation. All Rights Reserved.
Web Service Addressing CS409 Application Services Even Semester 2007.
Creating and Registering Mobile E-services Using Java, UDDI, and WSDL Chris Peltz Carollyn Carson
Web Services (SOAP, WSDL, and UDDI)
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
WSDL Tutorial Ching-Long Yeh 葉慶隆 Department of Computer Science and Engineering Tatung University
1 Universal Description, Discovery, and Integration (UDDI) 大葉大學資工系.
Dr. Bhavani Thuraisingham October 2006 Trustworthy Semantic Webs Lecture #16: Web Services and Security.
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
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.
UDDI Universal Description, Discovery & Integration By C.Madhumathi, II MCA ‘B’ sec, Bharathidasan University, Tiruchirappalli.
UDDI Update Bob Sutor Director IBM e-business Standards Strategy.
1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Chapter 10 Intro to SOAP and WSDL. Objectives By study in the chapter, you will be able to: Describe what is SOAP Exam the rules for creating a SOAP document.
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.
Enterprise Computing: Web Services
Kemal Baykal Rasim Ismayilov
WEB SERVICE DESCRIPTION LANGUAGE (WSDL). Introduction  WSDL is an XML language that contains information about the interface semantics and ‘administrivia’
Web Services An Introduction Copyright © Curt Hill.
UDDI (Universal Description, Discovery and Integration) Dr. SVL Narasimham.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
1 G52IWS: Universal Description, Discovery and Integration (UDDI)‏ Chris Greenhalgh
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
Service Discovery: UDDI COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Java Web Services Orca Knowledge Center – Web Service key concepts.
Sabri Kızanlık Ural Emekçi
Wsdl.
WEB SERVICES DAVIDE ZERBINO.
XML and Web Services (II/2546)
Presentation transcript:

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

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

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

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

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

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

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

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

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.

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

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

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)

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)

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)

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)

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)

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

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.

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

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

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

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

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

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

businessEntity businessKey name URL description contacts businessServices identifierBag categoryBag Phone Address Contact businessService Key Name Description BindingTemplates Phone Address 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

Example of a Registration businessEntity TB993… Harbour Metals Serving Inner Sydney Harbour for … contacts businessServices identifierBag categoryBag Kings Blvd, Sydney, NSW Peter Smythe businessService Key Name Description BindingTemplates businessService 23T701e54683nf… Online catalog Website where you can … BindingTemplates BindingTemplate 5E2D412E5-44EE-… tModelInstanceDetails tModelInstanceInfo 4453D6FC-223C-3ED0… keyedReference DFE-2B… DUNS keyedReference EE123… NAICS tModelKeys

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

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

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: 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!

The four core types of data structures that are specified by the UDDI API Schema and their relationships are shown here

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

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

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

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-AC CFF462A3" serviceKey="8BF2F51F-8ED4-43FE-B665-38D8205D1333"> Electronic Business Integration Services <serviceInfo businessKey="0076B468-EB27-42E5-AC CFF462A3" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> UDDI Web Services

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-AC CFF462A3'> 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-AC CFF462A3" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> UDDI Web Services

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-AC CFF462A3" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> UDDI Web Services UDDI SOAP/XML message-based programmatic web service interfaces. <bindingTemplate bindingKey="A9CAFBE4-11C6-4BFE-90F D3DE24" serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> Production UDDI server, Inquiry interface 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">

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

Practical Examples of UDDI registries

Practical Example from IBM UDDIProxy proxy = new UDDIProxy(); proxy.setInquiryURL(" testregistry/inquiryapi"); proxy.setPublishURL(" testregistry/protect/publishapi"); Code fragment for creating a UDDIProxy

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

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

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

More Information UDDI Resources – – – –Public discussions and mailing lists at For Developers SOAP/Web Services SDK msdn.microsoft.com/xml/general/soap1and2.asp Visual Basic UDDI SDK IBM AlphaWorks Web Services Toolkit