556. Publishing and
Discovery Using UDDI and Java
Rev. 1.4
This module develops techniques for Web-service publishing and
discovery, specifically using the Universal Description, Discovery and
Integration (UDDI) 2.0 APIs and the Java API for XML Registries (JAXR)
1.0. The relatively specific problem of
Web-service publishing and discovery is first put in the broader context of Web
registries, which manage a wide range of information types and instances. Students learn UDDI concepts, architecture
and API in depth, and then move on to JAXR, both as an API for UDDI and an
information-management model in its own right, with mappings also to ebXML
repositories.
The UDDI information model is considered in some depth, especially
the “tModel” as a means of defining taxonomies for classification by different
criteria, such as business type or geographical location. Then students learn the UDDI inquiry and
publishing APIs, at a summary level and also by sending specific SOAP messages
to UDDI registries and viewing the SOAP responses. Both local and remote/public repositories are queried in hands-on
exercises, and students learn to publish service descriptors and locations
using a local UDDI registry.
Then the JAXR is brought into play.
JAXR has its own information model, which is meant to adapt to both UDDI
and ebXML, so there is some mapping to be understood; it is a thick, rather than thin, wrapper over the UDDI API. JAXR tools of various types are built,
including console applications that perform scripted replication tasks, a
simple “yellow pages” business browser, and a graphical administration console
that allows the user to associate technical specifications with a registered
Web service. Students wrap up with exercises
focusing on the original problem:
publishing and discovering a deployed SOAP-based Web service.
LEARNING OBJECTIVES
·
Understand the basic UDDI information model.
·
Understand the use of a tModel as a "technical
fingerprint" for service classification.
·
Understand the use of a tModel in defining a taxonomy
for classification or identification of businesses, services, or other tModels.
·
Understand the UDDI inquiry and publishing APIs.
·
Query a UDDI registry using raw SOAP messages.
·
Publish a limited set of service information to UDDI
using SOAP.
·
Understand the JAXR information model and how it maps
to UDDI's model.
·
Understand the refinements JAXR brings to the problem
of object classification.
·
Query a UDDI registry using Java and JAXR.
·
Publish a Web service via the JAXR to a UDDI registry.
·
Write a client that can discover a needed Web service
by running UDDI queries based on desired tModels for WSDL-described
functionality.
·
Build scriptable and interactive tools for UDDI
administrative tasks, such as interactive update of service details, replication,
and client-side browsing.
Duration: 2 days.
Prerequisites:
·
Experience in Java Programming, including
object-oriented Java and the Java streams model, is required. Object Innovations Course 103, “Java
Programming,” is excellent preparation.
·
Experience with XML is required to work with UDDI in
depth. Object Innovations Module 501,
“Introduction to XML,” is excellent preparation.
·
Some understanding of XML Schema will be helpful, but
is not strictly necessary. Prior study
of Object Innovations Module 504,
“Introduction to XML Schema,” would be helpful.
·
Some understanding of the Web services architecture,
including the role of SOAP in Web-service messaging, will be helpful. Prior study of Object Innovations Module
551, “Overview of Java Web Services,” is recommended.
1. The
UDDI Information Model
Motivation for Service Discovery
Information Models
Naming, Directory and Trading Services
UDDI.org
UDDI, SOAP and WSDL
The UDDI Information Model
The tModel
The businessEntity
The businessService
The bindingTemplate
2. Classification
and Identification
Classification
The keyedReference
The categoryBag
The UDDI Types Taxonomy
Core tModels
Core Taxonomies
Identification
The identifierBag
Core Identification Schemes
3. Publishing
and Inquiry APIs
UDDI as a Web Service
Operator Sites
The Publishing API
Authentication
Versioning
Error Handling
Deleting Objects
Publisher Assertions
The Inquiry API
White, Yellow and Green Pages
Working with WSDL
UDDI and WSDL: Overlaps and
Mismatches
4. The
JAXR Information Model
The Java API for XML Registries (JAXR)
The JAXR Information Model
UDDI and ebXML Bindings
Mapping JAXR to UDDI
Multiple Mappings for tModel
The RegistryObject
The Concept
Organization, BusinessService and ServiceBinding
Technical Specification
Classification
Internal and External Taxonomies
Identification
5. The
JAXR Provider
The JAXR Provider Model
The JAXR Provider Architecture
Capability Levels
ConnectionFactory and Connection
Making a Connection
RegistryService and BusinessQueryManager
Working with BulkResponse
Browsing by Classification
6. Publishing
Web Services
The BusinessLifeCycleManager
Authentication
Creating Registry Objects
Replicating UDDI Information
Publishing a Web Service
Working with Keys
Managing Identifiers, Classifications, and Specifications
Partial Commits
UDDI Administration with JAXR
Discovering a Web Service
Appendix A. Learning Resources
Appendix B. Quick Reference:
W3C and Web-Services Namespaces
Appendix C. Basics of XML and XML Schema
Appendix D. The Simple Object Access Protocol
System Requirements
This module can be presented on Windows or Linux systems. The J2SE 1.4.1 SDK and the JWSDP 1.1 are
required – both are free downloadables available for either platform. Hardware requirements are moderate, as the
JWSDP server consumes a lot of resources.
A minimal system for this module would have a Pentium 500MHz or
equivalent CPU, 256 meg of RAM and at least 500 megabytes of free disk space
for tools installation and lab software.
Faster processors and greater memory availability will produce
noticeable improvements in performance.
An Internet connection is required, as many of the exercises use a
public UDDI registry available using SOAP and HTTP.