[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