[MOBY] [MOBY-l] rundown of the use of UDDI, WSDL, SOAP, etc. in Moby
Mark Wilkinson
markw at illuminae.com
Fri Dec 19 14:58:30 UTC 2003
Hi Michael,
It's hard to answer your question given the code below, since you don't
actually access a service anywhere in that code :-)
For a variety of historical and other reasons, MOBY-S does not use UDDI
as its registry - we have our own registry system called MOBY Central.
There are people in the project who are considering whether it is
practical/possible/desirable to port MOBY Central over to an underlying
UDDI registry API, but that is not a high priority.
MOBY-S does use WSDL... sort of... If you pursued your code for the next
5 or 6 lines you would make a call to retrieveService($ServiceInstance),
and this returns a WSDL-compatible document which can be used to make
client-side stubs to connect to the service. This document, however,
*does not* describe the actual message structure, since this cannot be
predicted a priori (there is a lot of discussion about this in various
places - just browse through the docs). As such, it is not a 100% valid
WSDL document, but it can be consumed by WSDL parsers - certainly
SOAP::Lite happily consumes it, and I believe the Java libraries also do
(Martin? Heiko?) in order to create objects representing SOAP
connections.
the next line in your code would be $s = MOBY::Service->new($wsdl);
where you use the WSDL from the retrieveService call to create a service
connection, and then $s->execute(...input data here...)
M
On Thu, 2003-12-18 at 16:58, Michael Jensen wrote:
> These perl modules have been great for not having to mess with
> theunderlying protocols like SOAP. One question I have is where does
> UDDIand WSDL fit in (if at all) and exactly where and when are they
> beingused, say for instance I am using this script for finding all
> theservices:
>
> useMOBY::Client::Central;
> my $Central = MOBY::Client::Central->new();
> my $types = $Central->retrieveServiceTypes();
> print "Description of types of services\n\n";
> foreach my $type (keys %{ $types} ) {
> print "Type: ", $type, " Description: ", $$types{$type}, "\n";
> my ($ServiceInstances, $RegObject)
> =$Central->findService(serviceType => $type);
> next if (not $ServiceInstances);
> foreach my $ServiceInstance (@{ $ServiceInstances } ){
> print "\t", $ServiceInstance->name;
> print " (", $ServiceInstance->authority, ")";
> print "\n\t", $ServiceInstance->description, "\n";
> }
> }
>
> (Found
> at:http://www.pasteur.fr/%7Eletondal/biomoby/biomoby-tutorial-perl-sol.html)
>
> Any resources, explanations, etc. would be greatly appreciated.
> Thanks!
>
> -Michael
> mdjgf8 at mizzou.edu
>
> ______________________________________________________________________
> _______________________________________________
> moby-l mailing list
> moby-l at biomoby.org
> http://biomoby.org/mailman/listinfo/moby-l
--
Mark Wilkinson <markw at illuminae.com>
Illuminae
More information about the moby-l
mailing list