ActivePerl Documentation
|
NAMEUDDI::Lite - Library for UDDI clients in Perl
SUPPORTED PLATFORMS
SYNOPSIS
use UDDI::Lite;
print UDDI::Lite
-> proxy('http://test.uddi.microsoft.com/inquire')
-> find_business(name => 'old')
-> result
-> businessInfos->businessInfo->serviceInfos->serviceInfo->name;
The same code with autodispatch:
use UDDI::Lite +autodispatch =>
proxy => 'http://test.uddi.microsoft.com/inquire'
;
print find_business(name => 'old')
-> businessInfos->businessInfo->serviceInfos->serviceInfo->name;
Or with importing:
use UDDI::Lite
'UDDI::Lite' => [':inquire'],
proxy => 'http://test.uddi.microsoft.com/inquire'
;
print find_business(name => 'old')
-> businessInfos->businessInfo->serviceInfos->serviceInfo->name;
DESCRIPTIONUDDI::Lite for Perl is a collection of Perl modules which provides a simple and lightweight interface to the Universal Description, Discovery and Integration (UDDI) server. To learn more about UDDI, visit http://www.uddi.org/. The main features of the library are:
OVERVIEW OF CLASSES AND PACKAGESThis table should give you a quick overview of the classes provided by the library. UDDI::Lite.pm -- UDDI::Lite -- Main class provides all logic -- UDDI::Data -- Provides extensions for serialization architecture -- UDDI::Serializer -- Serializes data structures to UDDI/SOAP package -- UDDI::Deserializer -- Deserializes result into objects -- UDDI::SOM -- Provides access to deserialized object tree
UDDI::LiteAll methods that UDDI::Lite gives you access to can be used for both setting and retrieving values. If you provide no parameters, you'll get current value, and if you'll provide parameter(s), new value will be assigned and method will return object (if not stated something else). This is suitable for stacking these calls like:
$uddi = UDDI::Lite
-> on_debug(sub{print@_})
-> proxy('http://test.uddi.microsoft.com/inquire')
;
Order is insignificant and you may call
$uddi = new UDDI::Lite
on_debug => sub {print@_},
proxy => 'http://test.uddi.microsoft.com/inquire'
;
Since Other available methods inherited from SOAP::Lite and most usable are:
UDDI::DataYou can use this class if you want to specify value and name for UDDI
elements.
For example, If you want to provide names for your parameters you can either specify find_business(name => 'old') or do it with UDDI::Data: find_business(UDDI::Data->name(name => 'old')) Later has some advantages: it'll work on any level, so you can do: find_business(UDDI::Data->name(name => UDDI::Data->name(subname => 'old'))) and also you can create arrays with this syntax:
find_business(UDDI::Data->name(name =>
[UDDI::Data->name(subname1 => 'name1'),
UDDI::Data->name(subname2 => 'name2')]))
will be serialized into:
<find_business xmlns="urn:uddi-org:api" generic="1.0">
<name>
<subname1>name1</subname1>
<subname2>name2</subname2>
</name>
</find_business>
For standard elements more convinient syntax is available:
find_business(
findQualifiers(findQualifier('sortByNameAsc',
'caseSensitiveMatch')),
name('M')
)
and
find_business(
findQualifiers([findQualifier('sortByNameAsc'),
findQualifier('caseSensitiveMatch')]),
name('M')
)
both will generate:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<find_business xmlns="urn:uddi-org:api" generic="1.0">
<findQualifiers>
<findQualifier>sortByNameAsc</findQualifier>
<findQualifier>caseSensitiveMatch</findQualifier>
</findQualifiers>
<name>M</name>
</find_business>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
You can use ANY valid combinations (according to ``UDDI Programmer's
API Specification''). If you try to generate something unusual, like
Don't know what to do with 'name' and 'name' elements .... If you REALLY need to do it, use As special case you can pass hash as the first parameter of method call and values of this hash will be added as attributes to top element:
find_business({maxRows => 10}, UDDI::Data->name(name => old))
gives you
<find_business xmlns="urn:uddi-org:api" generic="1.0" maxRows="10">
....
</find_business>
You can also pass back parameters exactly as you get it from method call (like you probably want to do with authInfo). You can get access to attributes and elements through the same interface:
my $list = find_business(name => old);
my $bis = $list->businessInfos;
for ($bis->businessInfo) {
my $s = $_->serviceInfos->serviceInfo;
print $s->name, # element
$s->businessKey, # attribute
"\n";
}
AUTODISPATCHINGUDDI::Lite provides autodispatching feature that lets you create code that looks similar for local and remote access. For example:
use UDDI::Lite +autodispatch =>
proxy => 'http://test.uddi.microsoft.com/inquire';
tells autodispatch all UDDI calls to 'http://test.uddi.microsoft.com/inquire'. All subsequent calls can look like:
find_business(name => 'old');
find_business(UDDI::Data->name(name => 'old'));
find_business(name('old'));
BUGS AND LIMITATIONS
AVAILABILITYFor now UDDI::Lite is distributed as part of SOAP::Lite package that you can download from ( http://geocities.com/paulclinger/soap.html ) or from CPAN ( http://search.cpan.org/search?dist=SOAP-Lite ).
SEE ALSOthe SOAP::Lite manpage ( http://search.cpan.org/search?dist=SOAP-Lite ) UDDI ( http://search.cpan.org/search?dist=UDDI )
COPYRIGHTCopyright (C) 2000 Paul Kulchenko. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHORPaul Kulchenko (paulclinger@yahoo.com)
|