nikaTeleco5Junio

Tras comentar el resumen de la clase anterior pasamos a seguir con el tema último de la asignatura. =**T3.4 Acceso remoto a objetos: SOAP**=

La forma de acceder a un objeto va ser la siguiente: vamos a crear una especie de copia local del objeto pero se maneja de forma remota. Se crea un xml lo mandas sobre http y recibes la respuesta sobre http. También podemos tenerlo como un módulo de una pagina web. SOAP puede tener por debajo muchos trasportes diferentes. SERVIDOR:

code use SOAP::Transport::HTTP;

SOAP::Transport::HTTP::CGI -> dispatch_to('Eval') -> handle;

package Eval;

sub test{ return "Test"; }

sub do { my $class = shift; my @sumandos = @_; return $sumandos[0]+$sumandos[1]; }

code Le decimos que el transporte es sobre http y el modulo se va a hacer sobre un modulo CGI. handle le dice que maneje las peticiones. Esas funciones están definidas en el paquete Eval. Una función devuelve una cadena. La otra quita del array de argumentos el primer elemento. Coge el array por defecto porque no le especificamos ninguno. @ es el resto de argumentos que son los sumandos y devuelve el resultado. Esto es el servidor SOAP. Cuando reciba una petición llama a esas funciones.

CLIENTE: code use SOAP::Lite; my @sumandos = @ARGV; my $service = SOAP::Lite->uri('http://geneura.ugr.es/Eval')->proxy('http://geneura.ugr.es/~jmerelo/asignaturas/AAP/code/perl/SOAPeval.cgi'); my $result = $service->do(@sumandos) -> result; print "Resultado es $result\n";

code Es un programa que descarga SOAP::Lite, carga los argumentos, declara el servicio. La primera dirección es donde se encuentra el programa. Luego declaramos un URI con el espacio de nombres con el que vamos a trabajar el cual en principio no es importante y podemos poner el que queramos. Lo que si es importante es el recurso. Luego, los diferentes apartados en el espacio de nombres pasan a ser directorios.

Nos ponemos a buscar algun SOAP público y con el ejercicio de autoevaluacion. Tras ver el de Alexfh terminamos el tema, vimos los libros chulos de la bibliografía y Pachus preguntó el motivo de los animales en las portadas de los libros de informática xD.

C’est fini!