[MOBY-dev] perl async services
José María Fernández González
jmfernandez at cnio.es
Thu Aug 7 16:48:31 UTC 2008
Hi Eddie,
although the example shows only one service, you are not restricted to only
one. About GetResourceProperty, GetMultipleResourceProperties and
ImmediateResourceTermination, they are document/literal SOAP services based on
WSRF specifications. If your service code is inheriting from
MOBY::Async::SimpleServer, then you do not have to implement them, because
MOBY::Async::SimpleServer takes care of them.
The way MOBY::Async libraries work are the next:
* They have been built on top of WSRF::Lite libraries, so they reuse as much
routines as possible. That's the reason why Perl modules containing
asynchronous services implementations must inherit from
MOBY::Async::SimpleServer (typical 'use base qw(MOBY::Async::SimpleServer);'
sentence).
* Asynchronous services creators/coders only have to write the corresponding
job routines as they were creating a synchronous MOBY service. All the job
ticket generation, job management, job result status & storage, etc... work is
handled either by WSRF::Lite or MOBY::Async::SimpleServer, and in most of
cases only depends on job Id. As job routines are passed on job creation, they
must be either functions passed by reference to the job creation statement or
being anonymous functions assigned to a variable, used as input parameter for
the job creation statement.
For those of you interested on, the ticket, state, results, etc...
information is stored in /tmp. This point should be more configurable, and we
will fix it on September.
I have attached an untested example of two asynchronous services using the
same dispatcher and module.
Best Regards from Málaga,
José María (on behalf José Manuel and myself)
Edward Kawas wrote:
> Hi,
>
> I have a quick question to whomever has developed async services in perl
> using the MOBY::Async/WSRF modules. Is it true that there is a strict one
> dispatcher file to one service?
>
> For instance, the documentation for the module MOBY::Async has the following
> dispatcher.cgi example:
>
> dispatcher.cgi
>
> #!/usr/bin/perl
> BEGIN { @INC = ("/path/to/my/libs", @INC); }
> use strict;
> use SOAP::Transport::HTTP;
> use MOBY::Async::WSRF;
> use HelloWorld;
>
> my $server = new SOAP::Transport::HTTP::CGI;
> $server->serializer(WSRF::Serializer->new);
> $server->deserializer(WSRF::Deserializer->new);
> $server->on_action(sub{});
> $server->dispatch_with({
> $WSRF::Constants::MOBY.'#sayHello' => 'HelloWorld',
> $WSRF::Constants::MOBY.'#sayHello_submit' => 'HelloWorld',
> ->
> $WSRF::Constants::WSRPW.'/GetResourceProperty/GetResourcePropertyRequest' =>
> 'HelloWorld',
> ->
> $WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourceP
> ropertiesRequest' => 'HelloWorld',
> -> $WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest'
> => 'HelloWorld',
> });
> $server->handle();
>
> Notice the lines prefixed with '->' hard code GetResourceProperty, etc map
> to a specific service. Is there any way around this?
>
> Thanks,
>
> Eddie
>
>
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
José María Fernández González
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinformática
Biología Estructural y Biocomputación Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncológicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fernández Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electrónico, y en su caso los ficheros adjuntos, pueden contener información protegida para el uso exclusivo de su destinatario. Se prohíbe la distribución, reproducción o cualquier otro tipo de transmisión por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: two-async-MOBY-test.cgi.pl
Type: application/x-perl
Size: 980 bytes
Desc: not available
URL: <http://lists.open-bio.org/pipermail/moby-dev/attachments/20080807/914c3f57/attachment-0002.pl>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TwoAsyncService.pm
Type: application/x-perl
Size: 2276 bytes
Desc: not available
URL: <http://lists.open-bio.org/pipermail/moby-dev/attachments/20080807/914c3f57/attachment-0003.pl>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: two-async-MOBY-test.cgi
URL: <http://lists.open-bio.org/pipermail/moby-dev/attachments/20080807/914c3f57/attachment.ksh>
More information about the MOBY-dev
mailing list