phpUDDI Logo
LINKS  

phpUDDI Project Page

phpUDDI Code Download:
phpUDDI v. 0.3 now available
phpUDDI-0.3.zip
phpUDDI-0.3.tar.gz

UDDI.org

UDDI at OASIS

UDDI Registries:
Hewlett-Packard
IBM
Microsoft
NTT
SAP

Specifications:
UDDI
SOAP
WSDL
XML-RPC

PHP.net

phpPatterns

HiveMinds.Info

Wrox Press

Buy the book
Professional PHP Web Services:
[Book cover]

What's New?

12 May 2003: Sorry about the broken links to the code files -- they've been fixed now. (Thanks to Otto Martin for bringing this to my attention.)


Not long after Professional PHP Web Services went to press, both Lee and I underwent some major changes in our lives. Lee's currently not working full-time in Web development, and I've had some major issues to deal with as well. As a result, very little's been done with this project page or the code since January or February. Recently, I've received several emails from people telling me that they're either read the book or found phpUDDI while searching SourceForge for PHP libraries related to Web Services, so I've cleaned up the UDDI classes we wrote, added a few examples, and am making them available for download here. I hope to be able to devote more time to this project after the middle of the year, and hope in the meantime that you'll find this early version to be useful.

Thanks for your support.

What's UDDI?

UDDI stands for Universal Description, Discovery and Integration. It's a SOAP-based application developed by UDDI.org for publishing Web Services listings in a UDDI Business Registry (UBR), and for seeking out service listings by name, description, and functionality. UBRs can be public, private, or mixed. UDDI 1.0 and 2.0 support two API sets for these purposes -- the Inquiry API and the Publication API. The latest version of UDDI (3.0) supports additional APIs, including subscriptions, so that clients can "watch" for new services or changes to existing ones, and authentication. UDDI is built on and integrates well with existing Web Services technologies such as SOAP, WSDL, and XML-RPC.

What's phpUDDI?

This project began as a result of our involvement with the book, Professional PHP Web Services from Wrox Press, Ltd., in November of 2002. Our original intent was to provide a synopsis of the UDDI specs, find a good PHP library for UDDI, and demonstrate its use. However, we ran into a little problem: while there are UDDI libraries available for Perl, Java, .NET, and even Python, there was none that we were able to find for PHP. So, we decided to write our own. At present, the classes we developed for the book support the basic UDDI 1.0/2.0 Inquiry APIs, but we plan eventually to implement all client and server APIs from all 3 versions of the UDDI specification. We also intend to integrate other features (such as enhanced error-checking and command-line utilities) that might be useful to PHP developers. We are also considering making it compatible with PHP::PEAR.

phpUDDI is a set of standalone PHP classes with no external dependencies. To use them, all that's necessary is to upload the class files to your Web server, and include them in your scripts. For example, we can query the Microsoft UBR for the 50 businesses most recently listed there whose names contain the string "Acme", like so:

<?php
  require_once 'UDDI_Inquiry.class.inc';
  $my_uddi = new UDDI_Inquiry('Microsoft');
  $my_uddi->version = 2;
  $input = array(
                  'findQualifiers'=> 'sortByDateAsc',
                  'maxRows'       => 50,
                  'name'          => '%Acme%'
                );

  $result = $my_uddi->find_business( $input );
?>

We have tested the Inquiry API methods with both the Microsoft and IBM registries; they should be compatible with any UBR supporting the UDDI 2.0 spec. The methods (at least for now) return the raw SOAP response messages, which you can save to files, store in a database, process with expat or another XML parser of your choosing, etc.

phpUDDI 0.3 is now available under the GNU General Public License. If you'd like me to set up CVS for this project, email me and let me know.

We'd like to express our appreciation to Wrox Press, who allowed us to retain control over the phpUDDI code, and our editors and reviewers who told us we seemed to have a good idea and encouraged us to set up an Open Source project to further development of phpUDDI.

What are Web Services?

Web Services are basically a way for applications to communicate with one another over the Internet directly without human intervention. For example, suppose we need, as part our business, to figure the distance between different pairs of cities in North America. We can do this one our own site by storing the latitude and longitude of every incorporated municipality in the USA, Canada, and Mexico in a database, then converting the differences in latitudes and longitudes between a given pair of cities in degrees, minutes and seconds to kilometers or miles, and then using the Pythagorean Theorem to obtain the direct distance, taking into account that, say, 10° difference in longitude at 35 degrees north latitude isn't the same number of kilometers or miles as 10° difference in longitude at 40 degrees north latitude. Starting to sound a bit complicated, isn't it? Now suppose you've found out that someone else has already done this on another server. Wouldn't it be great if you could just send the names of the cities to his server and get back the distance between them, without having to store all that data and perform all those calculations yourself? Such an arrangement describes very well what a Web Service is and does.

What's PHP?

PHP is an Open Source scripting language with a myriad of function libraries especially useful for Web development. It runs on most common operating systems and is compatible with Apache, IIS and many other Web servers. The source code and executable binaries for Linux and Windows can be obtained free of charge from PHP.net.

If you're a programmer, but you've never used PHP, you'll find it similar in many ways to C, Java, JavaScript, or Perl -- but in many ways PHP is much easier to use than all of these. If you're not a programmer but are interested in learning, PHP is an excellent place to start.

Who Are These Guys?

Lee Reynolds is a long-time Perl and PHP developer who's also experienced with databases (including MySQL and PostgreSQL), as well as networking and system administration issues. He's contributed to several other Open Source efforts, and had an article on site security published by O'Reilly's online magazine in late 2002. Lee is the webmaster and chief developer for AnnasArt.com. The New Mexico native resides in Phoenix, Arizona, USA.

Jon Stephens is a site developer and technical writer who's contributed to a number of books on HTML, JavaScript, PHP, MySQL and other Web technologies from Wrox Press, as well as to several volumes in the Usable Web series from glasshaus. He is one of the founders and a co-adminstrator of HiveMinds.Info, a web developers' discussion and resource site with active members from over a dozen countries.

Along with several other members of HiveMinds, Jon had just completed material for a series of MySQL 4 Handbooks which were to be published by Wrox Press under the auspices of MySQL AB in early 2003 when Wrox' parent firm encountered financial difficulties and was acquired by J. E. Wiley & Sons. Publication of these books has been delayed pending finalisation of the sale, but hopefully it will go forward in the very near future. Jon's latest development projects include an e-commerce site for SolComm Distribution of Melbourne, Australia and HiveMinds.Net, a new extension to the current HiveMinds Project, expected to launch early in the second half of 2003. Born in the southeastern United States, Jon now resides in Brisbane, Australia with his wife, designer Sionwyn Lee. The couple have a daughter, born in April 2003.

The phpUDDI Project is hosted by
SourceForge.net Logo


This page complies with W3C's XHTML 1.0, CSS 1.0 and CSS 2.0 specifications.

Valid XHTML 1.0      Valid CSS


phpUDDI logo desgned by Sionwyn Lee.