34
DISCO UDDI -Sandeep Gadde

DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

Embed Size (px)

Citation preview

Page 1: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

DISCO UDDI

-Sandeep Gadde

Page 2: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONTENTS: Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO UDDI Repository UDDI Binding Information UDDI Programmer’s API UDDI - Lite

Page 3: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

WEB SERVICES

Web services are automated information services that are conducted over the Internet, using standardized technologies and formats/protocols that simplify the exchange and integration of large amounts of data over the Internet.

Web services platform elements are SOAP, UDDI, WSDL.

Web services use XML to code and decode data, SOAP to transport data.

Page 4: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT..

Web Services basically uses HTTP and SOAP to make business data available on the web and executes remote function calls.

Page 5: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

SAMPLE WEBSERVICE namespace WebService1

{[WebService(Namespace = "http://tempuri.org/")]public class Service1 : System.Web.Services.WebService{

[WebMethod] public string HelloWorld() { return "Hello World"; }

[WebMethod] public int add(int a, int b) { return a+b; } }

}

Page 6: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

DISCO

Web Services discovery is the process of locating and interrogating web service descriptions, which is a preliminary step for accessing a web service.

Discovery file is an XML document with a .disco extension and holds the Web Services information.

Page 7: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

SAMPLE DISCO FILE

Service1.disco

<disco:discovery

xmlns:disco="http://schemas.xmlsoap.org/disco/"

xmlns:scl="http://schemas.xmlsoap.org/disco/scl/">

<!-- reference to other DISCO document -->

<disco: discoveryRef ref="related-services/default.disco"/>

<!-- reference to WSDL and documentation -->

<scl:contractRef ref=“Service1.asmx?wsdl“ docRef=“Service1.asmx"/>

</disco:discovery>

\MyService (root dir) Service1.asmx web.config Service1.disco \bin simpleMath.dll complexMath.dll

Page 8: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

DISCO CLIENT UTILITIES There are 2 types of client utilities to discover a

WebService.- disco.exe tool

- Add web ref feature in visual studio.net

disco.exe tool is a command line utility provided by microsoft sdk and it is used as follows.

c:\>disco.exe

http://localhost:85635/MyService/service1.disco

Page 9: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT..

An output file with name results.discomap is created that contains information about web services discovered at specified URL.

It also downloads all the .disco and .wsdl documents that were discovered.

Wsdl.exe is the utility to generated web service proxies from WSDL documents or the .discomap files generated by disco.exe .

Page 10: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT..

results.discomap<?xml version="1.0" encoding="utf-8"?><DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Results> <DiscoveryClientResult referenceType= "System.Web.Services.Discovery.ContractReference" url="http://localhost/MyService/Service1.asmx?wsdl" filename=“Service1.wsdl"/> <DiscoveryClientResult referenceType= "System.Web.Services.Discovery.DiscoveryDocumentReference" url="http://localhost/MyService/related-services/default.disco" filename="default.disco" /> </Results></DiscoveryClientResultsFile>

Page 11: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT.. Add web reference feature in visual

studio.net

Page 12: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT..

Page 13: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT..

Page 14: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

DISCO REDIRECTS

Disco Redirects help to redirect to disco file, if the user doesn’t know the exact address of the disco file.

Disco provide hints in the default page of root directory If the root's default page is an HTML document, you can

use the LINK tag to redirect the client to the .disco file:<HTML>

<HEAD>

<link type='text/xml' rel='alternate' href=‘Sample1.disco'/>

</HEAD>

•••

</HTML>

Page 15: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT..

If the root's default page is an XML document, you can use the xml-stylesheet processing instruction to accomplish the same thing:<?xml-stylesheet type="text/xml" alternate="yes" href=“Service1.disco"?>

Page 16: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

DYNAMIC DISCOVERY

Dynamic discovery is discovering web services dynamically

To enable dynamic discovery, a .vsdisco file like the one shown here must be placed in the desired root.<dynamicDiscovery xmlns="urn:schemas-dynamicdiscovery:disco.2000-03-17“ />

Requests for .vsdisco files are handled bySystem.WebServices.Discovery.DiscoveryRequestHandler namespace, which dynamically generates a DISCO document based on the resources found in the target root directory.

Page 17: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

UDDI

Universal Description, Discovery and Integration (UDDI) is a specification for building distributed databases that enable interested parties to “discover” each other’s Web services.

Provides easy discovery, sharing, and reuse of Web services and other programmable resources.

Page 18: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

UDDI AS A BETTER DISCO

UDDI goes beyond DISCO by defining how to interact with a full-fledged Web Service information repository.

UDDI specification consists of a programmer’s API along with an XML schema definition of supporting data structures and messages.

Page 19: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

UDDI REPOSITORY

UDDI repositories contain information about businesses, services, and service bindings as well as additional metadata for categorization purposes.

UDDI uses white pages, yellow pages, and green pages to organize information

Page 20: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT..

White pages include business name, contact info. Yellow pages include categories based on

standard taxonomies. Green pages include the technical specifications

and references.

Page 21: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

UDDI BINDING INFORMATION

UDDI registry contains 4 main types of information: Business, Services, Binding Templates and tModels.

Business-Name, Contact Info, Technical Info of the service. Service-Technical/Business descriptions & categorizations. Each service also exposes binding template info that

describes how to connect to and communicate with the given service.

Page 22: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

UDDI PROGRAMMER’S API

UDDI Programmer’s API is divided as Inquiry API and Publishing API.

Inquiry API: Provides operations for retrieving information from the registry.

Publishing API: Provides operations for publishing information to the registry.

Page 23: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

INQUIRY APIName Description

Find_business This locates information about one or more businesses.

Find_service This locates services within a registered businessEntity.

Find_binding This locates bindings within a registered businessService.

Get_businessDetail This gets businessEntity information for one or more businesses.

Get_business DetailExt This gets extended businessEntity information.

Get_serviceDetail This gets full details for a set of registered businessServices.

Get_bindingDetail This gets bindingTemplate information for making service requests.

Get_tModelDetail This gets details for a set of registered tModels.

Page 24: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

<FIND_BUSINESS> EXAMPLE

The following code illustrates how to perform a business lookup by the company's name.

<?xml version='1.0' encoding='utf-8'?>

<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>

<s:Body>

<find_business generic="1.0" xmlns="urn:uddi-org:api">

<name>XXX</name>

</find_business>

</s:Body>

</s:Envelope>

Page 25: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT.. The result of the find_business operation is the info about its

services<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <businessList generic="1.0" truncated="false" operator=“XXX" xmlns="urn:uddi-org:api"> <businessInfos> <businessInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3">

<name>XXX</name> <description xml:lang="en">Empowering people through great software...</description>

<serviceInfos> <serviceInfo businessKey="0076B468-EB27-42E5-AC09-9955CFF462A3"

serviceKey="D2BC296A-723B-4C45-9ED4-494F9E53F1D1"> <name>UDDI Web Services</name> </serviceInfo>

</serviceInfos> </businessInfo>

………… </businessInfos>

</businessList> </s:Body> </s:Envelope> .

Page 26: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

PUBLISHING APIName Description

get_authToken Requests an authentication token from an operator site.

get_registeredInfo Requests information currently managed by the user.

save_business Registers/updates a businessEntity.

save_service Registers/updates a businessService.

save_binding Registers/updates a bindingTemplate.

save_tModel Registers/updates a tModel.

delete_business Deletes a businessEntity from the registry.

delete_service Deletes a businessService from the registry.

delete_binding Deletes a bindingTemplate from the registry.

delete_tModel Deletes a tModel from the registry.

discard_authToken Discards an existing authentication token.

Page 27: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

<SAVE_BUSINESS> EXAMPLE <?xml version='1.0' encoding='utf-8'?>

<s:Envelope xmlns:s= 'http://schemas.xmlsoap.org/soap/envelope/'>

<s:Body>

<save_business generic="1.0" xmlns="urn:uddi-org:api">

<!-- retrieved from get_authToken API -->

<authinfo>fd3c7a44-118f-413a-a2e3-473a35379993 </authinfo>

<businessEntity businessKey="ee3be846-d828-4a38-a5e4-3c33f931d122">

<name>Developmentor</name>

<description>Services the developer by... </description>

<businessServices>

<!-- service descriptions go here -->

</businessServices>

</businessEntity>

</save_business>

</s:Body>

</s:Envelope>

Page 28: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

UDDI-LITE

Microsoft has come up with UDDI-Lite recently, a compromise between DISCO and UDDI.

The idea behind this sample was to provide a centralized web service repository that would be easy to maintain, and would integrate with all of the existing .NET DISCO-based tools.

Page 29: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT..

To implement UDDI-Lite-Web Services are stored in SQL Server DB.-ASP.NET front end to register and unregister Web Services.

When client requests .vsdisco file, it automatically generates information stored in SQL Server by mapping requests using System.Web.UI.PageHandlerFactory class.

Page 30: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONT..

Page 31: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

SAMPLE CODE TO IMPLEMENT UDDI-LITE <%@ page language="C#" contenttype="text/xml" enablesessionstate="false" %>

<%@ import namespace="System.Data" %>

<%@ import namespace="System.Data.SqlClient" %>

<% Response.ContentType = "text/xml"; %> <disco:discovery xmlns:disco="http://schemas.xmlsoap.org/disco/" xmlns:scl="http://schemas.xmlsoap.org/disco/scl/">

<% SqlConnection conn = new SqlConnection("data source=localhost;initial catalog=uddilite;user id=sa;pwd="); conn.Open();

try

{

SqlCommand cmd = new SqlCommand("select contract, documentation from contracts");

cmd.Connection = conn;

IDataReader reader = null;

reader = cmd.ExecuteReader();

while (reader.Read())

{

%>

<scl:contractRef ref="<%= reader[0].ToString() %>

" docRef="<%= reader[1].ToString() %>" />

<% }

}

finally

{

conn.Close();

}

%>

</disco:discovery>

Page 32: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

CONCLUSION

DISCO is ultimately limited by the type and depth of the information that it provides.

Microsoft has been heavily involved in the development of UDDI, which is receiving a lot of attention.

The bottom line is that DISCO works today and it can help us to get more out of .NET Web Services with little effort. For the future, look for UDDI developments.

Page 33: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

REFERENCES

http://msdn.microsoft.com/en-us/magazine/cc302073.aspx

http://www.cs.odu.edu/~mukka/cs795sum10.net/Lecturenotes/day4/wsuddi.ppt

http://uddi.xml.org/uddi-org

Page 34: DISCO UDDI -Sandeep Gadde. C ONTENTS : Web Services What is DISCO? Disco Client Utilities Disco Redirects Dynamic Discovery UDDI UDDI as a better DISCO

THANK YOU