1UDDI::Lite(3)         User Contributed Perl Documentation        UDDI::Lite(3)
2
3
4

NAME

6       UDDI::Lite - Library for UDDI clients in Perl
7

SYNOPSIS

9         use UDDI::Lite;
10         print UDDI::Lite
11           -> proxy('http://uddi.microsoft.com/inquire')
12           -> find_business(name => 'old')
13           -> result
14           -> businessInfos->businessInfo->serviceInfos->serviceInfo->name;
15
16       The same code with autodispatch:
17
18         use UDDI::Lite +autodispatch =>
19           proxy => 'http://uddi.microsoft.com/inquire'
20         ;
21
22         print find_business(name => 'old')
23           -> businessInfos->businessInfo->serviceInfos->serviceInfo->name;
24
25       Or with importing:
26
27         use UDDI::Lite
28           'UDDI::Lite' => [':inquiry'],
29           proxy => 'http://uddi.microsoft.com/inquire'
30         ;
31
32         print find_business(name => 'old')
33           -> businessInfos->businessInfo->serviceInfos->serviceInfo->name;
34
35       Publishing API:
36
37         use UDDI::Lite
38           import => ['UDDI::Data'],
39           import => ['UDDI::Lite'],
40           proxy => "https://some.server.com/endpoint_fot_publishing_API";
41
42         my $auth = get_authToken({userID => 'USERID', cred => 'CRED'})->authInfo;
43         my $busent = with businessEntity =>
44           name("Contoso Manufacturing"),
45           description("We make components for business"),
46           businessKey(''),
47           businessServices with businessService =>
48             name("Buy components"),
49             description("Bindings for buying our components"),
50             serviceKey(''),
51             bindingTemplates with bindingTemplate =>
52               description("BASDA invoices over HTTP post"),
53               accessPoint('http://www.contoso.com/buy.asp'),
54               bindingKey(''),
55               tModelInstanceDetails with tModelInstanceInfo =>
56                 description('some tModel'),
57                 tModelKey('UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4')
58         ;
59         print save_business($auth, $busent)->businessEntity->businessKey;
60

DESCRIPTION

62       UDDI::Lite for Perl is a collection of Perl modules which provides a
63       simple and lightweight interface to the Universal Description,
64       Discovery and Integration (UDDI) server.
65
66       To learn more about UDDI, visit http://www.uddi.org/.
67
68       The main features of the library are:
69
70       •  Supports both inquiry and publishing API
71
72       •  Builded on top of SOAP::Lite module, hence inherited syntax and
73          features
74
75       •  Supports easy-to-use interface with convenient access to
76          (sub)elements and attributes
77
78       •  Supports HTTPS protocol
79
80       •  Supports SMTP protocol
81
82       •  Supports Basic/Digest server authentication
83

OVERVIEW OF CLASSES AND PACKAGES

85       This table should give you a quick overview of the classes provided by
86       the library.
87
88        UDDI::Lite.pm
89        -- UDDI::Lite         -- Main class provides all logic
90        -- UDDI::Data         -- Provides extensions for serialization architecture
91        -- UDDI::Serializer   -- Serializes data structures to UDDI/SOAP package
92        -- UDDI::Deserializer -- Deserializes result into objects
93        -- UDDI::SOM          -- Provides access to deserialized object tree
94
95   UDDI::Lite
96       All methods that UDDI::Lite gives you access to can be used for both
97       setting and retrieving values. If you provide no parameters, you'll get
98       current value, and if you'll provide parameter(s), new value will be
99       assigned and method will return object (if not stated something else).
100       This is suitable for stacking these calls like:
101
102         $uddi = UDDI::Lite
103           -> on_debug(sub{print@_})
104           -> proxy('http://uddi.microsoft.com/inquire')
105         ;
106
107       Order is insignificant and you may call new() method first. If you
108       don't do it, UDDI::Lite will do it for you. However, new() method gives
109       you additional syntax:
110
111         $uddi = new UDDI::Lite
112           on_debug => sub {print@_},
113           proxy => 'http://uddi.microsoft.com/inquire'
114         ;
115
116       new() accepts hash with method names and values, and will call
117       appropriate method with passed value.
118
119       Since new() is optional it won't be mentioned anymore.
120
121       Other available methods inherited from SOAP::Lite and most usable are:
122
123       proxy()
124           Shortcut for "transport->proxy()". This lets you specify an
125           endpoint and also loads the required module at the same time. It is
126           required for dispatching SOAP calls. The name of the module will be
127           defined depending on the protocol specific for the endpoint.
128           SOAP::Lite will do the rest work.
129
130       on_fault()
131           Lets you specify handler for on_fault event. Default behavior is
132           die on transport error and does nothing on others. You can change
133           this behavior globally or locally, for particular object.
134
135       on_debug()
136           Lets you specify handler for on_debug event. Default behavior is do
137           nothing. Use +trace/+debug option for UDDI::Lite instead.
138
139       To change to UDDI Version 2, use the following pragma:
140
141         use UDDI::Lite uddiversion => 2;
142
143   UDDI::Data
144       You can use this class if you want to specify value and name for UDDI
145       elements.  For example, "UDDI::Data->name('businessInfo')->value(123)"
146       will be serialized to "<businessInfo>123</businessInfo>", as well as
147       "UDDI::Data-"name(businessInfo => 123)>.
148
149       If you want to provide names for your parameters you can either specify
150
151         find_business(name => 'old')
152
153       or do it with UDDI::Data:
154
155         find_business(UDDI::Data->name(name => 'old'))
156
157       Later has some advantages: it'll work on any level, so you can do:
158
159         find_business(UDDI::Data->name(name => UDDI::Data->name(subname => 'old')))
160
161       and also you can create arrays with this syntax:
162
163         find_business(UDDI::Data->name(name =>
164           [UDDI::Data->name(subname1 => 'name1'),
165            UDDI::Data->name(subname2 => 'name2')]))
166
167       will be serialized into:
168
169         <find_business xmlns="urn:uddi-org:api" generic="1.0">
170           <name>
171             <subname1>name1</subname1>
172             <subname2>name2</subname2>
173           </name>
174         </find_business>
175
176       For standard elements more convenient syntax is available:
177
178         find_business(
179           findQualifiers(findQualifier('sortByNameAsc',
180                                        'caseSensitiveMatch')),
181           name('M')
182         )
183
184       and
185
186         find_business(
187           findQualifiers([findQualifier('sortByNameAsc'),
188                           findQualifier('caseSensitiveMatch')]),
189           name('M')
190         )
191
192       both will generate:
193
194         <SOAP-ENV:Envelope
195           xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
196           <SOAP-ENV:Body>
197             <find_business xmlns="urn:uddi-org:api" generic="1.0">
198               <findQualifiers>
199                 <findQualifier>sortByNameAsc</findQualifier>
200                 <findQualifier>caseSensitiveMatch</findQualifier>
201               </findQualifiers>
202               <name>M</name>
203             </find_business>
204           </SOAP-ENV:Body>
205         </SOAP-ENV:Envelope>
206
207       You can use ANY valid combinations (according to "UDDI Programmer's API
208       Specification"). If you try to generate something unusual, like
209       "name(name('myname'))", you'll get:
210
211         Don't know what to do with 'name' and 'name' elements ....
212
213       If you REALLY need to do it, use "UDDI::Data" syntax described above.
214
215       As special case you can pass hash as the first parameter of method call
216       and values of this hash will be added as attributes to top element:
217
218         find_business({maxRows => 10}, UDDI::Data->name(name => old))
219
220       gives you
221
222         <find_business xmlns="urn:uddi-org:api" generic="1.0" maxRows="10">
223           ....
224         </find_business>
225
226       You can also pass back parameters exactly as you get it from method
227       call (like you probably want to do with authInfo).
228
229       You can get access to attributes and elements through the same
230       interface:
231
232         my $list = find_business(name => old);
233         my $bis = $list->businessInfos;
234         for ($bis->businessInfo) {
235           my $s = $_->serviceInfos->serviceInfo;
236           print $s->name,        # element
237                 $s->businessKey, # attribute
238                 "\n";
239         }
240
241       To match advantages provided by "with" operator available in other
242       languages (like VB) we provide similar functionality that adds you
243       flexibility:
244
245           with findQualifiers =>
246             findQualifier => 'sortByNameAsc',
247             findQualifier => 'caseSensitiveMatch'
248
249       is the same as:
250
251           with(findQualifiers =>
252             findQualifier('sortByNameAsc'),
253             findQualifier('caseSensitiveMatch'),
254           )
255
256       and:
257
258           findQualifiers->with(
259             findQualifier('sortByNameAsc'),
260             findQualifier('caseSensitiveMatch'),
261           )
262
263       will all generate the same code as mentioned above:
264
265           findQualifiers(findQualifier('sortByNameAsc',
266                                        'caseSensitiveMatch')),
267
268       Advantage of "with" syntax is the you can specify both attributes and
269       elements through the same interface. First argument is element where
270       all other elements and attributes will be attached. Provided examples
271       and tests cover different syntaxes.
272
273   AUTODISPATCHING
274       UDDI::Lite provides autodispatching feature that lets you create code
275       that looks similar for local and remote access.
276
277       For example:
278
279         use UDDI::Lite +autodispatch =>
280           proxy => 'http://uddi.microsoft.com/inquire';
281
282       tells autodispatch all UDDI calls to
283       'http://uddi.microsoft.com/inquire'. All subsequent calls can look
284       like:
285
286         find_business(name => 'old');
287         find_business(UDDI::Data->name(name => 'old'));
288         find_business(name('old'));
289

BUGS AND LIMITATIONS

291       •   Interface is still subject to change.
292
293       •   Though HTTPS/SSL is supported you should specify it yourself (with
294           "proxy" or "endpoint") for publishing API calls.
295

AVAILABILITY

297       For now UDDI::Lite is distributed as part of SOAP::Lite package.  You
298       can download it from ( http://soaplite.com/ ) or from CPAN (
299       http://search.cpan.org/search?dist=SOAP-Lite ).
300

SEE ALSO

302       SOAP::Lite ( http://search.cpan.org/search?dist=SOAP-Lite ) UDDI (
303       http://search.cpan.org/search?dist=UDDI )
304
306       Copyright (C) 2000-2004 Paul Kulchenko. All rights reserved.
307
308       This library is free software; you can redistribute it and/or modify it
309       under the same terms as Perl itself.
310

AUTHOR

312       Paul Kulchenko (paulclinger@yahoo.com)
313
314
315
316perl v5.32.1                      2021-01-27                     UDDI::Lite(3)
Impressum