You are on page 1of 17

Web Services & UDDI

Web services are distributed components that communicate


using standard protocols such as Simple Object Access
Protocol (SOAP) and HTTP.
Web services exposes callable API functions, better known
as Web Methods over the Internet.
Web services publish details of their interface using XML
vocabulary called Web Services Description Language(WSDL).

WSDL describes the interface for the Web service.


WSDL is an XML-based vocabulary that describes the set
of SOAP messages that a Web service supports.
Every Web service has an associated WSDL file that
documents the Web methods including their arguments
and return types.

Generates a proxy class that can be used by the Web


service consumers for communicating with the Web
service.
.NET also provides a default service description screen that
summarizes the WSDL information in a readable format.
Automatic generation of XML based WSDL.
Avoids handling SOAP responses and requests.

The proxy class assembles the requests and responses


in the correct format.
Web services are stateless.
Web services are platform and language agnostic.

Universal Description, Discovery and Integration (UDDI)


is a specification for building distributed databases that
enable interested parties to discover each others
Web services.
Provides easy discovery, sharing, and reuse of Web
services and other programmable resources.

In step 1 , Invocation Pattern using the UDDI Registry it is shown


how a business publishes services to the UDDI registry.
In step 2, a client looks up the service in the registry and receives
service binding information.
Finally in step 3, the client then uses the binding information to invoke
the service. The UDDI APIs are SOAP based for interoperability
reasons.
Here, three APIs specified in the UDDI v3 specification, Security,
Publication and Inquiry, are used.

APIs defined by UDDI:


UDDI_Security_PortType, defines the API to obtain a security token. With a valid security
token a publisher can publish to the registry. A security token can be used for the entire
session.
UDDI_Publication_PortType, defines the API to publish business and service information to
the UDDI registry.
UDDI_Inquiry_PortType, defines the API to query the UDDI registry. Typically this API does
not require a security token.
UDDI_CustodyTransfer_PortType, this API can be used to transfer the custody of a business
from one UDDI node to another.
UDDI_Subscription_PortType, defines the API to register for updates on a particular
business of service.
UDDI_SubscriptionListener_PortType, defines the API a client must implement to receive
subscription notifications from a UDDI node.
UDDI_Replication_PortType, defines the API to replicate registry data between UDDI nodes.
UDDI_ValueSetValidation_PortType, by nodes to allow external providers of value set
validation. Web services to assess whether keyedReferences or keyedReferenceGroups are
valid.
UDDI_ValueSetCaching_PortType, UDDI nodes may perform validation of publisher
references themselves using the cached values obtained from such a Web service.

Conceptually, a business can register three types of information into a UDDI


registry. The specification does not call out these types specifically, but they
provide a good summary of what UDDI can store for a business:
White pages---Basic contact information and identifiers about a company,
including business name, address, contact information, and unique identifiers
such as D-U-N-S numbers or tax IDs. This information allows others to discover
your web service based upon your business identification.
Yellow pages---Information that describes a web service using different
categorizations (taxonomies). This information allows others to discover your web
service based upon its categorization (such as being in the manufacturing or car
sales business).
Green pages---Technical information that describes the behaviors and supported
functions of a web service hosted by your business. This information includes
pointers to the grouping information of web services and where the web services
are located.

The Universal Description, Discovery and Integration (UDDI)


protocol is one of the major building blocks required for successful
Web services.
UDDI creates a standard interoperable platform that enables
companies and applications to quickly, easily, and dynamically find
and use Web services over the Internet (or Intranet).
UDDI also allows operational registries to be maintained for
different purposes in different contexts.
UDDI is a cross-industry effort driven by major platform and
software providers, as well as marketplace operators and ebusiness leaders within the OASIS standards consortium
UDDI is a Web-baseddistributeddirectorythat enables businesses
to list themselves on the Internet (or Intranet) and discover each
other, similar to a traditional phone books yellow and white pages.
The UDDI registry is both a white pages business directory and a
technical specifications library. The Registry is designed to store
information about Businesses and Services and it holds references
to detailed documentation.

UDDI sites publish a pair of SOAP-based APIs :


Inquiry API
Publisher API .
UDDI services enables companies to run their own
private UDDI service for use on the corporate
intranet or extranet.

UDDI Services helps companies organize and


catalog programmatic resources.
The four core entities that you need to model when
developing UDDI services are:
Provide
Service
Binding
tModel

Provider: Information about the


entity who offers a service

tModel: Descriptions of
specifications for services.

0n
Service: Descriptive information
about a particular family of
technical offerings
0n

Binding: Technical information


about a service entry point

Bindings contains
references to tModels.
These references declare
the interface specifications
for a service.
0n

Microsoft.Uddi.Inquire.Url = url;
Microsoft.Uddi.Inquire.AuthenticationMode =
Microsoft.Uddi.AuthenticationMode.UddiAuthentication;
FindService fs = new FindService();
if (businessKey != String.Empty)
Microsoft.Uddi.Inquire.Url = url;
Microsoft.Uddi.Inquire.AuthenticationMode =
Microsoft.Uddi.AuthenticationMode.UddiAuthentication;
fs.BusinessKey = businessKey;
fs.FindQualifiers = _qualifiers;
if (_tTModelKeys.Count > 0)
fs.TModelKeys = _tTModelKeys;
String temp = service == String.Empty ? "%" : service;
fs.Names.Add(temp.Trim());

try
{
ServiceList svlist = fs.Send();
if (svlist == null)
return null;
List<SVInfo> list = new List<SVInfo>();
foreach (ServiceInfo si in svlist.ServiceInfos)
{
SVInfo s;
s.name = si.Name;
s.key = si.ServiceKey;
s.businesskey = si.BusinessKey;
GetBusinessDetail gbd = new GetBusinessDetail();
gbd.BusinessKeys.Add(si.BusinessKey);
BusinessDetail be = gbd.Send();
s.businessname = be.BusinessEntities[0].Names[0].Text;
GetServiceDetail gsd = new GetServiceDetail();
gsd.ServiceKeys.Add(si.ServiceKey);
ServiceDetail sd = gsd.Send();
s.accesspoint = sd.BusinessServices[0].BindingTemplates[0].AccessPoint.Text;
list.Add(s);
}
return list;
}
catch (Exception)
{
return null;
throw;
}

http://www.codeproject.com/Articles/34187/Publish-a-WSDL-toa-UDDI-Server

You might also like