[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