Web Services Technology Stack (WSDL and UDDI)

Slides:



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

Web Service Architecture
Web Services Components of the Transactional Web James Snell
An Introduction to Web Services Sriram Krishnan, Ph.D.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
UDDI v3.0 (Universal Description, Discovery and Integration)
General introduction to Web services and an implementation example
1 Understanding Web Services Presented By: Woodas Lai.
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.
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.
- Page 1 - VisualWorks Web Services 8/27/02 Version 1.0 Exp osin g Business Value with VisualWorks Web Services Kirk D. Blackburn Qwest Communications,
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
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.
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
UDDI Ashish Jain University of Colorado 3 October, 2001.
CSE 636 Data Integration Web Services.
2006 IEEE International Conference on Web Services ICWS 2006 Overview.
Livermore July Web Services Overview Francisco Curbera IBM T.J. Watson Research Center.
WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001.
Web services A Web service is an interface that describes a collection of operations that are network-accessible through standardized XML messaging. A.
Processing of structured documents Spring 2003, Part 6 Helena Ahonen-Myka.
SOAP, WSDL, UDDI. Service Broker Basic SOAP Message Exchange Service Consumer Service Provider http transport SOAP message WSDL describing service SOAP.
Introduction to UDDI From: OASIS, Introduction to UDDI: Important Features and Functional Concepts.
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
WSTK Development toolkit for Java Implementation of Web Services By Keping Jia.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
UDDI Overview 9/6/2000 © Copyright 2000 By Ariba, Inc., International Business Machines Corporation and Microsoft Corporation. All Rights Reserved.
1 Core Web Services Standards. 2 (Simplified) Web Service Architecture Registry 1. Service Registers PUBLISH 3. Client calls Service BIND 2. Client Request.
Cambridge, March 23 rd 2004 MobileMAN Project MobileMAN Project Web Service in Ad Hoc Network Veronica Vanni NETikos S.p.A.
UDDIe: An Extended registry for Web Services UDDIe: An Extended Registry for Web Services Ali Shaikhali, Omer F. Rana, Rashid J. Al-Ali and David W. Walker.
Web Service Addressing CS409 Application Services Even Semester 2007.
Web Services (SOAP, WSDL, and UDDI)
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
Web services sub-team report CPPA June ’02 F2F Reston, Virginia.
WSDL Tutorial Ching-Long Yeh 葉慶隆 Department of Computer Science and Engineering Tatung University
Web Services Description Language CS409 Application Services Even Semester 2007.
UDDI Jianguo Lu University of Windsor What is UDDI?  Universal Description, Discovery, and Integration  A project to encourage interoperability.
Qusay H. Mahmoud CIS* CIS* Service-Oriented Computing Qusay H. Mahmoud, Ph.D.
1 UDDI (Universal Description, Discovery, and Integration) An Overview – part II Version : Date : Pages Responsible Author : Co-Authors : Status : Confidentiality.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
1 Web Service Description Language (WSDL) 大葉大學資工系.
1 WSDL Tutorial Heather Kreger (borrowed from Peter Brittenham) Web Services Architect IBM Emerging Technologies.
WebService. Outline Overview of Web Services SOAP (messaging) WSDL (service description) UDDI (registry)
Helsinki, June 7 th 2004 IAB Meeting MobileMAN Project Web Service in Ad Hoc Network Veronica Vanni NETikos S.p.A.
A brief introduction of UDDI By Xin Huang. What is UDDI.
Copyright © 2013 Curt Hill SOAP Protocol for exchanging data and Enabling Web Services.
1 Web Services Web and Database Management System.
Kemal Baykal Rasim Ismayilov
WEB SERVICE DESCRIPTION LANGUAGE (WSDL). Introduction  WSDL is an XML language that contains information about the interface semantics and ‘administrivia’
CP3024 Lecture 10 Web Services. What are Web Services?  “encapsulated, loosely coupled, contracted software objects offered via standard protocols” ZapThink.
Web Services Part 1 -- Qinwei Zhu Part 2 – Yongqun He.
UDDI (Universal Description, Discovery and Integration) Dr. SVL Narasimham.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
Lecture VI: SOAP-based Web Service CS 4593 Cloud-Oriented Big Data and Software Engineering.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
1 G52IWS: Universal Description, Discovery and Integration (UDDI)‏ Chris Greenhalgh
WSTK Development toolkit for Java Implementation of Web Services By Keping Jia.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Sabri Kızanlık Ural Emekçi
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Introduction to Web Services
Service-Oriented Computing: Semantics, Processes, Agents
Wsdl.
Presentation transcript:

Web Services Technology Stack (WSDL and UDDI) Shahram Esmaeilsabzali (sesmaeil@mail.student.math.uwaterloo.ca)

What we will cover WSDL and its elements UDDI registries and APIs A Web service using ASP.NET and C#

Web services conceptual stack Common Internet Protocols (TCP/IP, HTTP, … ) Extensible Markup Language (XML) Simple Object Access Protocol (SOAP) Web Services Description Language (WDSL) Universal Description, Discovery and Integration (UDDI) Web Services Flow Language (WSFL, XLANG and … ) Other business rules Core Emerging

WSDL Defined in a joint effort by Ariba, IBM and Microsoft An XML format for describing Web Services interfaces as collection of ports WSDL = IDL + Binding + Service location IDL: types and operations Binding: how to access via protocol (E.g. SOAP, HTTP POST or HTTP GET) Location: Where to connect to the Web service WSDL works over multiple protocols and technologies using extensibility elements

WSDL Elements Abstract Elements: Concrete Elements: Types: Data type Definition Messages: Format of Data being communicated Operations: Description of an action Port types: set of operations Concrete Elements: Bindings: a concrete protocol and data format specification for a particular port type Ports: a single endpoint defined as combination of Binding+ Network address Services: a collection of related ports (endpoints)

WSDL Elements Relationship Abstract Reusable Elements Concrete Elements

Types Encloses data type definitions that are building blocks of exchanged messages W3C XML Schema as canonical type system Also allows type systems other than XML Schema to be added via extensibility elements

Messages Messages consist of one or more logical parts part name is a unique name among all other parts of a message Each part is associated with a type or Element Parts are a flexible mechanism for describing the logical abstract content of a message Using XML Schema as type system, WSDL uses: Element: Refers to an XML Schema element Type: Refers to an XML Schema simple or complex type

Example “ExchangeRate” C# class is exposed as an ASP.NET Web Service by simply Placing the below C# code in a .asmx file. This file is then put in a directory of an ASP.NET web application (Simple scenario)

Example

PortType Port Types are set of operations and the messages involved WSDL has four transmission primitives (operations): One-way Request-response Solicit-response Notification

One-way Operation The endpoint receives a message They are the simplest mechanism, and it is supported only by MIME protocol (HTTP based protocols are two-way)

Request-response The endpoint receives a message, and sends a correlated message input element: abstract request message output element: abstract response message fault element: optional abstract error message

Solicit-response operation The endpoint sends a message, and receives a correlated message Output: Abstract solicit request message Input: Abstract response message fault element: optional abstract error message

Notification Operation The endpoint receives a message

WSDL Elements Relationship Abstract Reusable Elements Concrete Elements

Binding A binding defines message format and protocol details for operations and messages defined by a particular portType

Ports A port defines an individual endpoint by specifying a single address for a binding. Ports are building blocks of Web services Within a Service they have the following relationships: None of ports communicate with each other (WSDL specification requirement) Several ports could implement a single portType ports can be examined by consumer for checking their desired operations

Service A service groups a set of related ports together

Example

Import element Import element allows the separation of elements in a WSDL document It is a good practice to have at least two separate WSDL documents: “Service interface definition” and “Service implementation definition” Using Import, introduces features for reusability and abstract interface definitions like object oriented programming Multiple businesses may implement and advertise the same WSDL interface and service requesters could effectively search for their desired service

Web services conceptual stack Common Internet Protocols (TCP/IP, HTTP, … ) Extensible Markup Language (XML) Simple Object Access Protocol (SOAP) Web Services Description Language (WDSL) Universal Description, Discovery and Integration (UDDI) Web Services Flow Language (WSFL, XLANG and … ) Other business rules Core Emerging

What is UDDI? UDDI defines a set of services supporting the description and discovery of: Businesses, organizations, and other Web services providers (White Pages) Web services which businesses make available (Yellow Pages) Technical interfaces which may be used to access those Web services (Green Pages) UDDI is based on a set of web standards including HTTP, XML, XML Schema, WSDL and SOAP, and is supported by many companies (HP, IBM, Microsoft and …)

What is UDDI? UDDI specification provides a platform- independent way of describing, discovering and integrating Web services using Internet UDDI Infrastructure is appropriate for both public and private Web Services-based environments UDDI data is hosted by nodes which could be collected, using replication mechanism, to form UDDI registries UDDI provides a set of APIs for inquiring and manipulating UDDI elements

UDDI core data structures All Data structures are XML based Many UDDI data structures including the four core data structures are accessed via unique identifiers that are either generated by registries or by the publisher itself UDDI core data structures support mechanisms for electronic signatures ( XML-Signature syntax )

UDDI tModel Technical models or tModels are essential UDDI elements used to represent unique concepts, constructs or metadata tModels are represented by their unique keys tModels are extensibility means for UDDI tModels are reusable entities which can be referenced by other entities like bindingTemplates The bindingTemplates referencing the same tModels are said to have the same “technical fingerprints” Their typical applications are in WSDL definition, dynamic categorization and search systems (identifierBags and CategoryBags) tModels can be used to extend existing categorization and search systems for entities

UDDI businessEntity structure Each businessEntity contains descriptive information about a business or organization and, through its contained businessService entities, information about the services that it offers. identifierBag element allows businessEntity structures to be identified according to published identifier systems (E.g. DUNS numbers), the systems themselves are registered tModels elements The categoryBag contains a predefined list of business categorization that each describes a specific business aspect of the businessEntity. Examples of categories are industry, product category or geographic regions

UDDI businessServices structure The businessService structure represents a logical service and contains descriptive information in business terms. A businessService is the logical child of a single businessEntity A businessService may be projected to other businessEntities by reference instead of containment. Projections to the same service can be made in any number of business entities. bindingTemplates is a list of technical descriptions for the Web services.

UDDI bindingTemplate Structure Technical descriptions of Web services are provided by bindingTemplate entities. The accessPoint element is an URI, typically a URL, representing the network address of the Web service being described. There are four types of accesspoints: endpoint (Network address of Web service) bindingTemplate hostingDirector WSDL Deployment tModelInstanceDetails element contains the “technical fingerprint” of the Web service. During an inquiry, interested parties can use this information to look for bindingTemplate entities that contain a specific fingerprint or partial fingerprint.

UDDI APIs UDDI APIs are programmatic tools for querying and manipulating UDDI registry data UDDI APIs are exposed as SOAP messages over HTTP or HTTPS UDDI APIs are categorized to six groups: Inquiry APIs: Locates and obtains details of UDDI data Publishing APIs: Publishes and updates UDDI data Security APIs: Requests and discards authentication data Custody transfer APIs: Transfers ownership of elements Subscription APIs: provides clients with information about changes in UDDI data Value set APIs: Checks the validity of referenced tModels

Some UDDI APIs Inquiry API Publishers API Find things find_business find_service find_binding find_tModel find_relatedBusinesses Get Details about things get_businessDetail get_serviceDetail get_bindingDetail get_tModelDetail get_operationalInfo Publishers API Save things add_publisherAssertions set_publisherAssertions save_business save_service save_binding save_tModel Delete things delete_business delete_service delete_binding delete_tModel delete_publisherAssertion Query things get_assertionStatusReport get_publisherAssertions get_registeredInfo

Example

How does it work? Service Provider Service UDDI Requester (0) Create the Web Service (5) Execute Service (SOAP) (1) Publish (WSDL) (3) Retrieve Service Description (WSDL) Service Requester UDDI (2) Find Service and Retrieve its address (UDDI) (4) Create Proxy class

Web services and Proxy classes Proxy classes are generated according to WSDL information to call the Web services on behalf of the service requesters Proxy classes hide the complexity of dealing with SOAP, XML and network protocols Once Proxy classes are generated, they are compiled (in this case to a .NET DLL file) and can be used by other programs Some proxy classes settings can be modified at run-time; so for example, if the location of a Web service is changed proxy class is not required to be regenerated

Accessing a Web Service with ASP.NET page

Web Services future Core Emerging While Web services have focused on technological foundations for implementing simple Web services, they are not sufficient for using Web services in critical business application, the following are important areas of research in Web services : Web Services Composition mechanisms for Web Services work flow and coordination comprehensive security solutions Web services transactions Common Internet Protocols (TCP/IP, HTTP, … ) Extensible Markup Language (XML) Simple Object Access Protocol (SOAP) Web Services Description Language (WDSL) Universal Description, Discovery and Integration (UDDI) Web Services Flow Language (WSFL, XLANG and …) Other business rules Core Emerging

A comparison CBD technologies WS technologies No standard format for data exchange and encoding RPC mechanisms IDL Registry information Partly platform independent and usually extremely tightly-coupled Complex transfer and conversation protocols CDB paradigm Provides solutions for wide area of applications Uniform encoding mechanism XML SOAP WSDL UDDI Platform neutral, highly loose-coupled and cross- platform technology Using easy open-standard protocols Existing WS technology is suitable for rather simple applications