Fundamentals of Web Programming a



Similar documents
Chapter 6 Registering and Discovering. Web Serv vices: Web services

T320 E-business technologies: foundations and practice

Agents and Web Services

Introduction to UDDI: Important Features and Functional Concepts

Web Services Development In a Java Environment

Consuming, Providing & Publishing WS

XIII. Service Oriented Computing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Web services with WebSphere Studio: Deploy and publish

4. Concepts and Technologies for B2C, B2E, and B2B Transaction

WSDL Example (Interface) WSDL Example (Implementation) Universal Description, Discovery and Integration. UDDI Usage

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Interoperable Provisioning in a Distributed World

Fundamentals of Web Programming a

Research on the Model of Enterprise Application Integration with Web Services

Combining SAWSDL, OWL DL and UDDI for Semantically Enhanced Web Service Discovery

Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems

WEB SERVICES. Definition: Web service is a programmable application component that s accessible through standard Web protocols.

HP Operations Orchestration Software

WEB SERVICES. Revised 9/29/2015

Oracle Service Bus Examples and Tutorials

Introduction to Web services architecture

Server based signature service. Overview

Web Services. Mark Volkmann Partner Object Computing, Inc. What Are Web Services?

Web Services Technologies

What is a Web service?

STUDY ON IMPROVING WEB SECURITY USING SAML TOKEN

Web services can convert your existing applications into web applications.

Flexible Identity Federation

Getting started with API testing

Introduction to OGC Web Services

Supply Chain Management Sample Application Architecture

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

Service Oriented Architecture

Distributed Embedded Systems

Virtual Credit Card Processing System

Grid Computing. Web Services. Explanation (2) Explanation. Grid Computing Fall 2006 Paul A. Farrell 9/12/2006

XML Processing and Web Services. Chapter 17

IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide

Introduction into Web Services (WS)

An Oracle White Paper June RESTful Web Services for the Oracle Database Cloud - Multitenant Edition

WebSphere Portal Server and Web Services Whitepaper

ISM/ISC Middleware Module

Secure Authentication and Session. State Management for Web Services

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER

Mutual Fund Web Service Developer Guide

What Is NetBeans? Free and open-source based > Open source since June, 2000 > Large community of users and developers

GSiB: PSE Infrastructure for Dynamic Service-oriented Grid Applications

Integrating Siebel CRM 8 with Oracle Applications

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

HP Operations Orchestration Software

ICE Trade Vault. Public User & Technology Guide June 6, 2014

Building Web Services with Apache Axis2

How To Create A C++ Web Service

Oracle Service Bus. User Guide 10g Release 3 Maintenance Pack 1 (10.3.1) June 2009

vcloud Air Platform Programmer's Guide

Sample Usage of TAXII

Acknowledgments. p. 55

GENERIC DATA ACCESS AND INTEGRATION SERVICE FOR DISTRIBUTED COMPUTING ENVIRONMENT

Web services (WS) Outline. Intro on Middleware SOAP, HTTP binding WSDL UDDI Development tools References

C05 Discovery of Enterprise zsystems Assets for API Management

ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:

Siena Web Services. A Solution To Personal Computing With Established Desktop Programs Exploiting Web Technologies

Web Services Implementation: The Beta Phase of EPA Network Nodes

Introduction to SAML

CONTRACT MODEL IPONZ DESIGN SERVICE VERSION 2. Author: Foster Moore Date: 20 September 2011 Document Version: 1.7

StreamServe Persuasion SP4 Service Broker

Integrating with BarTender Integration Builder

Web Services Strategy

Internationalization and Web Services

Developing Java Web Services

SAML Security Option White Paper

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

Cross-domain Identity Management System for Cloud Environment

Oracle Enterprise Manager

PlayReady App Creation Tutorial

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

SOA REFERENCE ARCHITECTURE

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

KMx Enterprise: Integration Overview for Member Account Synchronization and Single Signon

Avoiding Web Services Chaos with WebSphere Service Registry and Repository

Integrating VMware Horizon Workspace and VMware Horizon View TECHNICAL WHITE PAPER

UDDI Executive White Paper November 14, 2001

Oracle Universal Content Management

IT Exam Training online / Bootcamp

A Dynamic, Runtime-Extensible, Client-Managed Service Framework

Transcription:

Fundamentals of Web Programming a Universal Description, Discovery, and Integration Teodor Rus rus@cs.uiowa.edu The University of Iowa, Department of Computer Science a Copyright 2009 Teodor Rus. These slides have been developed by Teodor Rus using material published by Google, Tutorial Point, A Self Learning Center, http://www.tutorialspoint.com/index.htm They are copyrighted materials and may not be used in other course settings outside of the University of Iowa in their current form or modified form without the express written permission of the copyright holder. During this course, students are prohibited from selling notes to or being paid for taking notes by any person or commercial firm without the express written permission of the copyright holder. Introduction System Software. Copyright Teodor Rus p.1/47

Contents UDDI HOME UDDI Overview UDDI Elements UDDI Architecture UDDI Data Model UDDI Interfaces UDDI Usage Example UDDI with WSDL UDDI Implementations UDDI Specifications UDDI Summary Introduction System Software. Copyright Teodor Rus p.2/47

UDDI Home UDDI is a standard of the Organization for the Advancement of Structured Information Standards (OASIS) The Home Page of the UDDI is http://uddi.xml.org/uddi-org UDDI is an XML-based standard for describing, publishing, and finding Web services. UDDI stands for Universal Description, Discovery and Integration. In this tutorial we will learn what is UDDI and Why and How to use it. Introduction System Software. Copyright Teodor Rus p.3/47

UDDI Overview UDDI is an XML-based standard for describing, publishing, and finding Web services. UDDI stands for Universal Description, Discovery and Integration. UDDI is a specification for a distributed registry of Web services. UDDI is platform independent, open framework. UDDI can communicate via SOAP, CORBA, Java RMI Protocol. UDDI uses WSDL to describe interfaces to web services. UDDI is seen with SOAP and WSDL as one of the three foundation standards of web services. UDDI is an open industry initiative enabling businesses to discover each other and define how they interact over the Internet. Introduction System Software. Copyright Teodor Rus p.4/47

UDDI Architecture UDDI has two parts: Part 1: a registry of all a web service s metadata including a pointer to the WSDL description of a service. Part 2: a set of WSDL port type definitions for manipulating and searching that registry. Introduction System Software. Copyright Teodor Rus p.5/47

History of UDDI UDDI 1.0 was originally announced by Microsoft, IBM, and Ariba in September 2000. Since the initial announcement, the UDDI initiative has grown to include more than 300 companies including Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle, SAP, and Sun. On May 2001, Microsoft and IBM launched the first UDDI operator sites and turned the UDDI registry live. On June 2001, UDDI announced Version 2.0. Currently UDDI is sponsored by Organization for the Advancement of Structured Information Standards (OASIS). Introduction System Software. Copyright Teodor Rus p.6/47

Partner Interface Processes PIPs are XML based interfaces that enable two trading partners to exchange data. Dozens of PIPs already exist. Few are listed here: PIP2A2 : Enables a partner to query another for product information. PIP3A2 : Enables a partner to query the price and availability of specific products. PIP3A4 : Enables a partner to submit an electronic purchase order and receive acknowledgment of the order. PIP3A3 : Enables a partner to transfer the contents of an electronic shopping cart. PIP3B4 : Enables a partner to query status on a specific shipment. Introduction System Software. Copyright Teodor Rus p.7/47

Private UDDI Registries As an alternative to using the public federated network of UDDI registries available on the Internet. Companies or industry groups may choose to implement their own private UDDI registries. These exclusive services would be designed for the sole purpose of allowing members of the company or of the industry group to share and advertise services amongst themselves. Note: The one thing that ties all registries together is a common web services API for publishing and locating businesses and services advertised within the UDDI registry. Introduction System Software. Copyright Teodor Rus p.8/47

UDDI Elements A business or company can register three types of information into a UDDI registry. This information is contained into three elements of UDDIs, which are: 1. White pages, 2. Yellow pages, 3. Green pages. Introduction System Software. Copyright Teodor Rus p.9/47

White Pages UDDI white pages category contains: Basic information about the Company and its business. Basic contact information including business name, address, contact phone number etc. A unique identifier for the company tax ID. This information allows others to discover your web service based upon your business identification. Introduction System Software. Copyright Teodor Rus p.10/47

Yellow Pages UDDI yellow pages category contains: More details about the company, and includes descriptions of the kind of electronic capabilities the company can offer to anyone who wants to do business with it. It uses commonly accepted industrial categorization schemes, industry codes, product codes, business identification codes and the like to make it easier for companies to search through the listings and find exactly what they want. Introduction System Software. Copyright Teodor Rus p.11/47

Green Pages UDDI green pages contain technical information about a web service. This includes: The various interfaces; The URL locations; Discovery information and similar data required to find and run the Web service. Note: UDDI is not restricted to describing web services based on SOAP. Rather, UDDI can be used to describe any service, from a single web page or email address all the way up to SOAP, CORBA, and Java RMI services. Introduction System Software. Copyright Teodor Rus p.12/47

UDDI Technical Architecture The UDDI technical architecture consists of three parts: 1. UDDI data model: this is an XML Schema for describing businesses and web services. The data model is described in detail in the "UDDI Data Model" section. 2. UDDI API Specification: this is a specification of API for searching and publishing UDDI data. 3. UDDI cloud services: this consists of operator sites that provide implementations of the UDDI specification and synchronize all data on a scheduled basis. Introduction System Software. Copyright Teodor Rus p.13/47

UDDI Architecture Figure 1 describes UDDI technical architecture: UDDI specifications UDDI Schema Replication Replication UBR Node Node Node Figure 1: UDDI Technical Architecture Note: UBR stands for UDDI Business Registry Introduction System Software. Copyright Teodor Rus p.14/47

UBR The UDDI Business Registry (UBR), (also known as the Public Cloud) is a conceptually single system built from multiple nodes that has their data synchronized through replication. Introduction System Software. Copyright Teodor Rus p.15/47

The Cloud The current cloud services provide a logically centralized, but physically distributed, directory. This means that data submitted to one root node will automatically be replicated across all the other root nodes. Currently, data replication occurs every 24 hours. UDDI cloud services are currently provided by Microsoft and IBM. Note: Ariba had originally planned to offer an operator as well, but has since backed away from the commitment. Additional operators from other companies, including Hewlett-Packard, are planned for the near future. It is also possible to set up private UDDI registries. For example, a large company may set up its own private UDDI registry for registering all internal web services. As these registries are not automatically synchronized with the root UDDI nodes, they are not considered part of the UDDI cloud. Introduction System Software. Copyright Teodor Rus p.16/47

UDDI Interfaces A registry is no use without a way to access it. The UDDI standard version 2.0 specifies two interfaces for service consumers and service providers to interact with the registry. 1. Service consumers use Inquiry Interface to find services; 2. Service providers use Publisher Interface to list services. Note: the core of the UDDI interfaces is the UDDI XML Schema definitions. These provide the fundamental UDDI data types through which all the information flows. Introduction System Software. Copyright Teodor Rus p.17/47

The Publisher Interface The Publisher interface defines sixteen operations for a service provider managing its entries in the UDDI registry: 1. get authtoken: retrieves an authorization token. All of the Publisher interface operations require that a valid authorization token be submitted with the request. 2. discard authtoken: tells the UDDI registry to no longer accept a given authorization token. This step is equivalent to logging out of the system. 3. save business: creates or updates a business entity s information contained in the UDDI registry. Introduction System Software. Copyright Teodor Rus p.18/47

More Publisher Interfaces 4. save service: creates or updates information about the web services that a business entity provides. 5. save binding: creates or updates the technical information about a web service s implementation. 6. save tmodel: creates or updates the registration of abstract concepts managed by the UDDI registry. 7. delete business: removes the given business entities from the UDDI registry completely. 8. delete service: removes the given web services from the UDDI registry completely. 9. delete binding: removes the given web service technical details from the UDDI registry. 10. delete tmodel: removes the specified tmodels from the UDDI registry. Introduction System Software. Copyright Teodor Rus p.19/47

More Publisher Interfaces 11. get registeredinfo: returns a summary of everything the UDDI registry is currently keeping track of for the user, including all businesses, all services, and all tmodels. 12. set publisherassertions: manages all of the tracked relationship assertions associated with an individual publisher account. 13. add publisherassertions: causes one or more publisherassertions to be added to an individual publisher s assertion collection. 14. delete publisherassertions: causes one or more publisherassertion elements to be removed from a publisher s assertion collection. 15. get assertionstatusreport: provides administrative support for determining the status of publisher assertions. 16. get publisherassertions: obtains the full set of publisher assertions that is associated with an individual publisher account. Introduction System Software. Copyright Teodor Rus p.20/47

The Inquiry Interface The inquiry interface defines ten operations for searching the UDDI registry and retrieving details about specific registrations: 1. find binding: returns a list of web services that match a particular set of criteria based on the technical binding information. 2. find business: returns a list of business entities that match a particular set of criteria. 3. find ltservice: returns a list of web services that match a particular set of criteria. 4. find tmodel: returns a list of tmodels that match a particular set of criteria. Introduction System Software. Copyright Teodor Rus p.21/47

More Inquiry Interfaces 5. get bindingdetail: returns the complete registration information for a particular web service binding template. 6. get businessdetail: returns the registration information for a business entity, including all services that entity provides. 7. get businessdetailext: returns the complete registration information for a business entity. 8. get servicedetail: returns the complete registration information for a web service. 9. get tmodeldetail: returns the complete registration information for a tmodel. 10. find relatedbusinesses: discovers businesses that have been related via the uddi-org:relationships model. Introduction System Software. Copyright Teodor Rus p.22/47

UDDI Usage Examples Consider that a company XYZ wants to register its contact information, service description, and online service access information with UDDI. The following steps are necessary: 1. Choose an operator with which to work. Each operator has different terms and conditions for authorizing access to its replica of the registry. 2. Build or otherwise obtain a UDDI client, such as those provided by the operators. 3. Obtain an authentication token from the operator. 4. Register information about the business. Include as much information as might be helpful to those searching for matches. Introduction System Software. Copyright Teodor Rus p.23/47

More Steps 5. Release the authentication token. 6. Use the inquiry APIs to test the retrieval of the information, including binding template information, to ensure that someone who obtains it can use it successfully to interact with your service. 7. Fill in the tmodel information in case someone wants to search for a given service and find this business as one of service providers. 8. Update the information as necessary to reflect changing business contact information and new service details, obtaining and releasing a new authentication token from the operator each time. Whenever you need to update or to modify the data you ve registered, you have to go back to the operator with which you entered the data. Introduction System Software. Copyright Teodor Rus p.24/47

Example The following examples show how the XYZ Company would register its information and how a distributor interested in carrying the XYZ s product line might find information about how to contact the company and place an order, using the XYZ.com Web services. Introduction System Software. Copyright Teodor Rus p.25/47

Creating Registry After obtaining an authentication token from one of the operators (Microsoft, for example) the XYZ.com developers decide what information to publish to the registry and use one of the UDDI tools provided by Microsoft. Note: if necessary, the developers can also write a Java, C#, or VB.NET program to generate the appropriate SOAP messages. Introduction System Software. Copyright Teodor Rus p.26/47

Here is an example POST /save_business HTTP/1.1 Host: www.xyz.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "save_business" <?xml version="1.0" encoding="utf-8"?> <Envelope xmlns="http://schemas/xmlsoap.org/soap/envelope/"> <Body> <save_business generic="2.0" xmlns="urn:uddi-org:api_v2"> <businesskey=""> </businesskey> <name> XYZ, Pvt Ltd. </name> <description> Company is involved in giving Stat-of-the-art... </description> <identifierbag>... </identifierbag>... </save_business> </Body> </Envelope> Introduction System Software. Copyright Teodor Rus p.27/47

Comments This example illustrates a SOAP message requesting to register a UDDI business entity for XYZ Company. The key element is blank because the operator automatically generates the UUID key for the data structure. Most fields are omitted for the sake of showing a simple example. Company XYZ can always execute another save business operation to add to the basic information required to create a business entity. Introduction System Software. Copyright Teodor Rus p.28/47

Retrieving Information After XYZ Company has updated its UDDI entry with the relevant information, companies that want to become XYZ distributors can look up contact information in the UDDI registry and obtain the service descriptions and the access points for the two Web services that XYZ.com publishes for online order entry: 1. pre-season bulk orders and 2. in-season restocking orders. Introduction System Software. Copyright Teodor Rus p.29/47

Scenario This example illustrates a sample SOAP request to obtain business detail information about the XYZ Company. Once one knows the UUID, or key, for the specific business that s been registered, one can use it in the get businessdetail API to return specific information about that business. The code for retrieving information follows. Introduction System Software. Copyright Teodor Rus p.30/47

Retrieving code POST /get_businessdetail HTTP/1.1 Host: www.xyz.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "get_businessdetail" <?xml version="1.0" encoding="utf-8"?> <Envelope xmlns="http://schemas/xmlsoap.org/soap/envelope/"> <Body> <get_businessdetail generic="2.0" xmlns="urn:uddi-org:api_v2"> <businesskey="c90d731d-772hsh-4130-9de3-5303371170c2"> </businesskey> </get_businessdetail> </Body> </Envelope> Introduction System Software. Copyright Teodor Rus p.31/47

UDDI with WSDL The UDDI data model defines a generic structure for storing information about a business and the Web services it publishes. The UDDI data model is completely extensible, including several repeating sequence structures of information. However, WSDL is used to describe the interface of a web service. WSDL is represented in UDDI using a combination of businessservice, bindingtemplate, and tmodel information. Introduction System Software. Copyright Teodor Rus p.32/47

Registration As with any service registered in UDDIs: Generic information about the service is stored in the businessservice data structure; Information specific to how and where the service is accessed is stored in one or more associated bindingtemplate structures. Each bindingtemplate structure includes an element that contains the network address of the service and has associated with it one or more tmodel structures that describe and uniquely identify the service. Introduction System Software. Copyright Teodor Rus p.33/47

Specifics When UDDI is used to store WSDL information, or pointers to WSDL files, the tmodel should be referred to by convention as type wsdlspec, meaning that the overviewdoc element is clearly identified as pointing to a WSDL service interface definition. For UDDI, WSDL contents are split into two major elements: the interface file and the implementation file. The Hertz reservation system web service provides a concrete example of how UDDI and WSDL work together. The <tmodel> for this web service follows: Introduction System Software. Copyright Teodor Rus p.34/47

Hertz reservation <tmodel authorizedname="..." operator="..." tmodelkey="..."> <name>hertzreserveservice</name> <description xml:lang="en"> WSDL description of the Hertz reservation service interface </description> <overviewdoc> <description xml:lang="en"> WSDL source document. </description> <overviewurl> http://mach3.ebphost.net/wsdl/hertz_reserve.wsdl </overviewurl> </overviewdoc> <categorybag> <keyedreference tmodelkey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" keyname="uddi-org:types" keyvalue="wsdlspec"/> </categorybag> </tmodel> Introduction System Software. Copyright Teodor Rus p.35/47

Facts 1. The overviewurl element gives the URL to where the service interface definition WSDL file can be found. This allows humans and UDDI/WSDL aware tooling to locate the service interface definition. 2. The purpose of the keyedreference element in the categorybag is to make sure that this tmodel is categorized as a WSDL specification document. Introduction System Software. Copyright Teodor Rus p.36/47

UDDI Implementation A number of UDDI implementations are currently available. These implementations make it easier to search or publish UDDI data, without getting mired in the complexities of the UDDI API. A brief synopsis of the main UDDI implementations available follows. Introduction System Software. Copyright Teodor Rus p.37/47

Java Implementations There are two UDDI implementations for Java. UDDI4J (UDDI for Java): UDDI4J was originally created by IBM. In January 2001, IBM turned over the code to its own open source site. UDDI4J is a Java class library that provides an API to interact with a UDDI. juddi: juddi is an open source Java implementation of a UDDI registry and a toolkit for accessing UDDI services. Introduction System Software. Copyright Teodor Rus p.38/47

Other Implementations Perl Implementation: UDDI::Lite : provides a basic UDDI client for inquiry and publishing. Ruby Implementation: UDDI4r: provides a basic UDDI client for inquiry and publishing. Python Implementation: UDDI4Py: UDDI4Py is a Python package that allows the sending of requests to and processing of responses from the UDDI Version 2 APIs. Introduction System Software. Copyright Teodor Rus p.39/47

UDDI Specifications The UDDI project also defines a set of XML Schema definitions that describe the data formats used by the various specification APIs. These documents are all available for download at www.uddi.org. The current version of all specification groups is Version 2.0. Introduction System Software. Copyright Teodor Rus p.40/47

Specification Documents The specifications include: UDDI Replication UDDI Operators UDDI Programmer s API UDDI Data Structures Introduction System Software. Copyright Teodor Rus p.41/47

UDDI Replications This document describes the data replication processes and interfaces to which a registry operator must conform to achieve data replication between sites. This specification is not a programmer s API; it defines the replication mechanism used among UBR nodes. Introduction System Software. Copyright Teodor Rus p.42/47

UDDI Operators This document outlines the behavior and operational parameters required by UDDI node operators. This specification defines data management requirements to which operators must adhere. Introduction System Software. Copyright Teodor Rus p.43/47

UDDI Programmer s API This specification defines a set of functions that all UDDI registries support for inquiring about services hosted in a registry and for publishing information about a business or a service to a registry. This specification defines a series of SOAP messages containing XML documents that a UDDI registry accepts, parses, and responds to. This specification, along with the UDDI XML API schema and the UDDI Data Structure specification, makes up a complete programming interface to a UDDI registry. Introduction System Software. Copyright Teodor Rus p.44/47

UDDI Data Structures This specification covers the specifics of the XML structures contained within the SOAP messages defined by the UDDI Programmer s API. This specification defines five core data structures and their relationships to one another. The UDDI XML API schema is not contained in a specification; rather, it is stored as an XML Schema document that defines the structure and data types of the UDDI data structures. Introduction System Software. Copyright Teodor Rus p.45/47

UDDI Summary This tutorial has taught us what is UDDI and what are its elements. We have seen complete architecture and data model of UDDI. We have learned about two UDDI interfaces: Publisher s Interface and Enquiry Interface. You have also learned how you can register and search for web services with UDDI. The next step is to learn about SOAP, WSDL and Web Services. Introduction System Software. Copyright Teodor Rus p.46/47

SOAP, WSDL: Summary SOAP is a simple XML-based protocol that allows applications to exchange information over HTTP. WSDL is the standard format for describing a web service in XML format. WSDL is an integral part of UDDI Web services can convert your applications into web-applications. Introduction System Software. Copyright Teodor Rus p.47/47