Tuesday, 17 November 2009

Preparing for SCDJWS Part 8: UDDI

Share
Last point of Section 3 of SCDJWS exam objectives states:
Describe the basic functions provided by the UDDI Publish and Inquiry APIs to interact with a UDDI business registry.
And today I will write some words about UDDI.

UDDI overview

UDDI (Universal Description, Discovery and Integration) is a platform-independent XML-based registry standard for businesses worldwide to list themselves on the Internet. The standard is supported by OASIS. It defines how businesses may publish service listings and discover each other. The ultimate goal of UDDI was to enable automatic Web Services composition.

Communication to UDDI registry is based on SOAP. UDDI provides access to WSDL documents of Web Services registered in its directory.

Basically the UDDI business registration consists of three components:
  • White Pages - address, contact, and known identifiers
  • Yellow Pages - industrial categorizations based on standard taxonomies
  • Green Pages - technical information about services exposed by the business
All is managed by using the UDDI Publish and Inquiry.

UDDI API

UDDI API is divided into 3 main groups (there are more groups): Inquiry API, Security Policy API, and Publication API. The names are pretty self descriptive.

Exam states that you have to know only Inqury and Publication APIs, but Security Policy API is strongly linked with Piblication API and that is why I write about it.

Inquiry API

The Inquiry API uses the browse-and-drill-down pattern. There are functions used to browse the directory find_xxx and functions get_xxx used to retrieve full registered details for the corresponding instance (by passing the key returned by the relevant find_xxx function).

Here they are:
  • find_binding used to locate bindings within or across one or more registered businessServices. Returns a bindingDetail structure.
  • find_business used to locate information about one or more businesses. Returns a businessList structure.
  • find_relatedBusinesses used to locate information about businessEntity registrations that are related to a specific business entity whose key is passed in the inquiry.
  • find_service used to locate specific services within registered business entities. Returns a serviceList structure.
  • find_tModel used to locate one or more tModel information structures. Returns a tModelList structure.
  • get_bindingDetail used to get bindingTemplate information suitable for making service requests. Returns a bindingDetail structure.
  • get_businessDetail used to get the businessEntity information for one or more businesses or organizations. Returns a businessDetail structure.
  • get_operationalInfo used to retrieve operational information pertaining to one or more entities in the registry. Returns an operationalInfos structure.
  • get_serviceDetail used to get full details for a given set of registered businessService data. Returns a serviceDetail structure.
  • get_tModelDetail used to get full details for a given set of registered tModel data. Returns a tModelDetail structure.
Security Policy API

The security API includes the following API calls:
  • discard_authToken used to inform a node that a previously obtained authentication token is no longer required and should be considered invalid if used after this message is received.
  • get_authToken used to request an authentication token in the form of an authInfo element from a UDDI node. An authInfo element MAY be required when using the API calls.
Registries that serve multiple publishers and registries that restrict who can publish in them typically require authInfo for Publication API calls. Also, a UDDI node may provide an alternative (external) mechanism for obtaining authInfo elements.

Publication API

If current UDDI node requires authentication then all Publication API methods expect authentication token as a first argument. Otherwise the authInfo may be skipped.
  • add_publisherAssertions used to add relationship assertions to the existing set of assertions.
  • delete_binding used to remove an existing bindingTemplate from the registry.
  • delete_business used to delete existing businessEntity information from the registry.
  • delete_publisherAssertions used to delete specific publisher assertions from the assertion collection controlled by a particular publisher. Deleting assertions from the assertion collection affects the visibility of business relationships. Deleting an assertion causes any relationships based on that assertion to become incomplete.
  • delete_service used to delete an existing businessService from the registry.
  • delete_tModel used to hide existing information about a tModel. Any tModel hidden in this way is still usable for reference purposes and accessible via the get_tModelDetail API, but is hidden from find_tModel result sets. There is no specified way to delete a tModel.
  • get_assertionStatusReport used to get a status report containing publisher assertions and status information. This report is useful to help an administrator manage publisher assertions. Returns an assertionStatusReport that includes the status of all assertions made involving any businessEntity controlled by the requesting publisher.
  • get_publisherAssertions used to get a list of publisher assertions that are controlled by an individual publisher. Returns a publisherAssertions structure containing all publisher assertions associated with a specific publisher.
  • get_registeredInfo used to request an abbreviated list of businesses and tModels currently managed by a given publisher.
  • save_binding used to register new bindingTemplate information or to update existing bindingTemplate information. Use this to control information about technical capabilities exposed by a registered business.
  • save_business used to register new businessEntity information or update existing businessEntity information. Use this to control the full set of information about the entire business, including its businessService and bindingTemplate structures. This API has the broadest effect of all of the save_xxx APIs.

  • save_service used to register or update complete information about a businessService.
  • save_tModel used to register or update information about a tModel.
  • set_publisherAssertions used to save the complete set of publisher assertions for an individual publisher. Replaces any existing assertions, and causes any old assertions that are not reasserted to be removed from the registry.
Summary

As exam objective does talk about only basic functions I didn't cover here: Custody and Ownership Transfer API (enables any nodes of a registry to cooperatively transfer custody of one or more businessEntity or tModel structures from one node to another, as well as allowing the transfer of ownership of these structures from one publisher to another), Subscription API (optional API, allows clients to subscribe for information on changes made in a UDDI registry), Value Set API (optional API, allows validation of values).

For more information on UDDI API visit UDDI 3.0.2 spec available at OASIS: http://www.uddi.org/pubs/uddi_v3.htm.

I have covered now 3 of 12 sections of exam objectives... Still a long way ahead...

Cheers,
Łukasz

2 comments:

vitamin c said...

If you are looking for getting started with preparing for SCDJWS certification then its very normal that you will be stuck on the material required for it. SCDJWS in nature is very vast in its scope.

digital certificate said...

Security is always important for sensitive and secrete information transfer over internet.So i feel for that Security Policy API is really very very important