Friday, June 15, 2007

Disco And UDDI

Web service Publishing means enabling a Web service user (consumer) to locate the web service description and instructing the consumer how they should interact with the Web service. The process of locating and interrogating Web service description is called the discovery process. There are two ways for the discovery of Web services, DISCO and UDDI.

Discovery with DISCO

In the past, most consumers found out about new Web Services (and their endpoint addresses) by browsing the Web, receiving an e-mail, or by word-of-mouth. But now you can publish a deployed Web Service using DISCO, you simply need to create a .disco file and place it in the vroot along with the other service-related configuration files.Or if you want to make discovery extremly simple for the counsumers, you can create a default web page of your website and place the url of the .disco file on it or place a like to redirect the users to the location of .disco file.

Web Services Discovery Tool (Disco.exe)

There are currently two methods available for discovering the DISCO document. One is a command-line client called disco.exe and the other is the Add Web Reference feature in Visual Studio® .NET.
Both methods generate .disco, .wsdl and .discomap files on the consumer's machine.

The following command line simply takes the URL of the DISCO document to discover.

disco.exe /out:< directory name > < web service path like- http://webservicehost/webservice/service.disco >

Now use another command-line utility called wsdl.exe that can generate Web Service proxies(.cs/.vb) from WSDL documents or the .discomap files generated by disco.exe. You can run it like so:

wsdl.exe /l:CS /out: < path of .cs file > < resuls.discomap >

Now you can use these .cs/.vb proxy classes in your code just like other source files.

Discovery with UDDI

The Universal Discovery, Description, and Integration (UDDI) project provides a global directory of Web Services. UDDI enables consumers to search and locate Web services if the consumer is not aware of the exact location of the service or the owner of the service. UDDI is for Web services like Google is for Web pages. UDDI allows us to easily find Web services based on a centralized and globally available registry of businesses which are accessible over the Internet. If you have a Web service and if you wish to publish it with UDDI then you need to visit the UDDI web site and register your service there.
Microsoft and IBM (who, with Ariba, are jointly developing UDDI) both have operating sites up and running today at and, respectively.



vijay said...


When I add web reference in visual studio it creates .datasource file and file along with the .wsdl and xsd files. I don't find these files generated with disco.exe. is there any cath for this.. pls help..

sanjay saini said...

Hello Vijay,

Disco.exe utility only generates .wsdl, .xsd, .disco, and .discomap files. So there is no catch. I dont know why do you want other files as you can create client proxy classes with these files using wsdl.exe utility


vijay said...

Thanks Sanjay... Actually I could create proxy .. but was just curious about those files.

Anyways.. Thanks very much for the big help... :)

vijay said...

Sanjay.. I just want to clarify this.. so you say that no matter what changes we make to the web service the .datasource files are unchanged. And if they are changed also.. the proxy class generation would take care of it ?

sanjay saini said... will regenerate when you regenerate proxy class. By the I know they are used in windows application for providing drag-drop support to the UI control for data applications they are not used. I guess you are trying to add web reference in windows application.

vijay said...

No Sanjay.. I am adding web reference in a web application. Thanks again for clarifying this..