Before you start
This tutorial explains the Uniform Description and Discovery Interface, or UDDI. UDDI specifies a registry of web services and other corporate information and is intended to provide a way to discover new web services to use, and under ideal circumstances, automate their use.
This tutorial assumes that you are familiar with the general concepts of web services, as well as SOAP. Knowledge of WSDL is also helpful, but the tutorial does review the general concepts.
To follow along with the code in the last section, you should be familiar with Java, but the concepts, like the rest of the tutorial, apply to any programming language.
This tutorial series teaches the basic concepts of web services by following the exploits of the fictional newspaper, The Daily Moon, as the staff uses web services to create a workflow system to increase productivity in the midst of much change.
Part 1 explained the basic concepts behind web services and showed how to use SOAP, the specification that underlies most of what is to come, connecting the classifieds department with the Content Management System.
Part 2 takes things a step further, explaining how to use Web Services Description Language (WSDL) to define the messages produced at expected by web service, enabling the team to more easily create services and the clients that connect to them.
Part 3 finds the team with a number of services in place and a desire to locate them easily. In response, Universal Description, Discovery and Integration (UDDI) provides a searchable registry of available services at a way to publicize their own services to others.
Parts 4 and 5, WS-Security and WS-Policy, finds the team with a goal of securing the paper's services and the changes the teams need to make in order to access those newly secured services.
Interoperability is the key word in Part 6, as services from several different implementations must be accessed from a single system. Part six covers the requirements and tests involved in WS-I certification.
Finally, Part 7 shows how to use Business Process Execution Language (WS-BPEL) to create complex applications from individual services.
Now let's look at what this tutorial covers in a bit more detail.
Part 1of this series introduced you to web services and emphasized the importance of SOAP. We did this through the exploits of a Classifieds department of the fictional Daily Moon newspaper. In Part 2 of this series, the Classifieds Department decided to create a web service of their own, documenting its use with Web Services Description Language (WSDL). Here in Part 3, the paper's publisher has decided to go all out on web services, and has mandated the use of a UDDI registry to keep track of all available services.
In the course of this tutorial, you will learn:
- What UDDI is
- What UDDI is for
- The structure of UDDI data
- How to effectively represent WSDL using UDDI
- Operations you can perform on UDDI data
- Interacting with a UDDI registry using Java
In order to follow along with the code for this tutorial, you will need to have the following software available:
Apache Geronimo or another UDDI implementation. In order to follow along with the code, you will need access to a UDDI registry. To that end, it isn't important what type of registry you use, as UDDI is fundamentally a web service and should be accessible from any platform or language, to any platform or language. That said, the Apache Geronimo application server, which is also the basis for IBM's WebSphere Community Edition, and which we have been using in Parts 1 and 2 of this series, has Apache's UDDI registry implementation, jUDDI, pre-installed and configured as part of a standard install. You can download Apache Geronimo from Apache.org. For more information on installing Geronimo, see Part 1 of this series.
UDDI4J -- To access the registry, this tutorial demonstrates the use of the UDDI4J project, which provides a pretty close integration between UDDI concepts and Java code. You can download UDDI4J from Sourceforge.net.
Apache Axis2 or another SOAP implementation -- You can create SOAP messages by hand, and you can interpret them by hand, but it's much easier to have an implementation handy. You will be using Apache Axis2, which contains implementations of various SOAP-related APIs to make your life significantly easier. You can download Apache Axis2 from Apache.org. This tutorial uses version 0.94, but later versions should work.
Java 2 Standard Edition version 1.4.x-- All of these tools are Java-based, as are the services and clients you'll build in this tutorial. You can download the J2SE SDK from the Sun Developer Network. Geronimo will not run properly with Java 1.5.
You'll also need a Web browser and a text editor, but I'm sure you already have those. If you like, you can also use an IDE such as Eclipse, but because we're focusing on the technologies rather than tools, we'll just be using a text editor and the command line to edit our files and compile them.