PDF de programación - Módulo SOAP::Lite - Una forma sencilla de generar servicios web

Imágen de pdf Módulo SOAP::Lite - Una forma sencilla de generar servicios web

Módulo SOAP::Lite - Una forma sencilla de generar servicios webgráfica de visualizaciones

Publicado el 6 de Junio del 2019
581 visualizaciones desde el 6 de Junio del 2019
1,3 MB
24 paginas
Creado hace 15a (02/06/2008)
Iván López Rodríguez alu3194

SOAP::Lite es una colección de módulos
que proveen una interfaz sencilla para
trabajar con SOAP.
Implementa tanto las funciones del
servidor como del cliente. Por lo tanto,
usándolo, se pueden hacer aplicaciones
cliente/servidor completas.
El código necesario es mínimo y
fácilmente entendible.

Es un protocolo que define cómo dos
procesos en diferentes máquinas
pueden comunicarse por medio de
intercambio de datos XML.
Es independiente de la plataforma y el
lenguaje. Podríamos comunicar un
programa hecho en Java corriendo
sobre Windows con uno en Perl
corriendo sobre Unix.

Al permitir el intercambio de mensajes
entre procesos distintos SOAP puede
ser usado para:
› Hacer llamadas a procedimientos remotos

Aprovechar la potencia de otro ordenador
Acceso a datos remotos (BBDD)

› Construir aplicaciones a base de pequeñas

piezas (reutilización).

› Servicios web (temperatura, cambio de

divisas, e-Administración…)

Los archivos fuentes que creemos
deben de ubicarse en la carpeta
destinada a almacenar los ficheros CGI
en un servidor web.
Los archivos cliente pueden ser
ejecutados en cualquier directorio, en
cualquier máquina.

Servidor:

#!C:\perl\bin\perl.exe

use SOAP::Transport::HTTP;

SOAP::Transport::HTTP::CGI

-> dispatch_to('Servidor')
-> handle;

package Servidor;
sub temperatura {

return "La temperatura actual es de 23 grados";

}

Cliente:

#!C:\perl\bin\perl.exe

use SOAP::Lite;

print "Se llama al servicio.\n";

my $respuesta = SOAP::Lite

-> uri('http://localhost:81/Servidor')
-> proxy('http://localhost:81/cgi-bin/servidor.pl')
-> temperatura
-> result;

print "La respuesta del servidor es: $respuesta \n"

Ejecución:

C:\Documents and Settings\ivan\pp2>perl Cliente1.pl
Se llama al servicio.
La respuesta del servidor es: La temperatura actual
es de 23 grados

Servidor:

#!C:\perl\bin\perl.exe

use SOAP::Transport::HTTP;

SOAP::Transport::HTTP::CGI

-> dispatch_to('Servidor')
-> handle;

package Servidor;
sub sumador {

my $class = shift;
my ($a,$b) = @_;
return $a+$b;

}

Cliente:

#!C:\perl\bin\perl.exe

use SOAP::Lite;

print "Se llama al servicio:\n";

my $respuesta = SOAP::Lite

-> uri('http://vaio:81/Servidor')
-> proxy('http://vaio:81/cgi-bin/servidor.pl')
-> sumador(3,4)
-> result;

print "La suma de 3 y 4 es: $respuesta \n"

Ejecución:

C:\Documents and Settings\ivan\pp2>perl Cliente2.pl
Se llama al servicio.
La suma de 3 y 4 es: 7

Gracias a esta característica podemos
realizar llamadas remotas como si las
hubiésemos definido localmente.

#!C:\perl\bin\perl.exe

use SOAP::Lite +autodispatch =>

uri => 'http://vaio:81/Servidor',
proxy => 'http://vaio:81/cgi-bin/servidor.pl';

print "La suma de 3 y 4 es ".sumador(4,3)." y su resta
".restador(4,3)." \n"

Con esta característica, la reutilización
de funciones es absolutamente trivial.

C:\Documents and Settings\ivan\pp2>perl Cliente3.pl

La suma de 4 y 3 es 7 y su resta 1

Se ha visto como se pueden
intercambiar cadenas de caracteres y
escalares.
También es posible pasar arrays. arrays
de arrays, hashes…
Éstos tipos de datos pueden ser usados
para devolver consultas sobre BBDD.
Una de las aplicaciones más
importantes de los servicios web.

sub maximo {

my $class = shift;
my $puntero = shift;
my @array = @$puntero;
my $respuesta = $array[0];
foreach my $valor (@array) {

if ($valor > $respuesta) {

$respuesta = $valor;

}

}
return $respuesta;

}

#!C:\perl\bin\perl.exe

use SOAP::Lite +autodispatch =>

uri => 'http://vaio:81/Servidor',
proxy => 'http://vaio:81/cgi-bin/servidor.pl';

my @array = (1,2,3,5,4);
print "El maximo es: ".maximo(\@array)." \n";

Servidor

sub complejo {



my $class = shift;
my $puntero = shift;
my %estructura = %$puntero;
$estructura{result} = ${$estructura{a}}[0] +

${$estructura{b}}[2];

}

return %estructura;

Cliente

sub complejo {



my $class = shift;
my $puntero = shift;
my %estructura = %$puntero;
$estructura{result} = ${$estructura{a}}[0] +

${$estructura{b}}[2];

}

return %estructura;

Ejecución

Antes $VAR1 = {
'a' => [1, 2, 3 ],
'b' => [4, 5, 6],
'result' => 0
};
y despues $VAR1 = {
'a' => [1, 2, 3 ],
'b' => [4, 5, 6],
'result' => 7
};

Servidor I

sub conecta {

$db="test";
$host="localhost";
$port="3306";
$userid="root";
$passwd="";
$connectionInfo="DBI:mysql:database=$db;$host:$port
";

# Realizamos la conexión a la base de datos
$dbh = DBI-
>connect($connectionInfo,$userid,$passwd);

#Sentencia SQL
$query = "SELECT Nombre FROM cliente";

Servidor II

# Primero hay que "preparar" el query
$sth = $dbh->prepare($query);

# Ejecutamos el query
$sth->execute();

$sth->bind_columns(undef, \$nombre);

# Recorremos los resultados obtenidos de la base de datos
my @respuesta;
while($sth->fetch()) {

push (@respuesta,$nombre);

}

Cliente

my $puntero = &conecta; # Nos conectamos con la BD
my @array = @$puntero;
print "Nombre de los clientes\n";
print "=======================\n\n";
foreach my $valor (@array) {

print "$valor\n";

}

Ejecución

C:\Documents and Settings\ivan\pp2>perl Cliente5.pl

Nombre de los clientes
=======================

Ana
Esther
Gustavo
Ivan

Usando este módulo se pueden
desplegar servicios web de forma
rápida y eficaz.
A la hora de desarrollar la aplicaciones
cliente se ha hecho énfasis en ocultar la
complejidad y hacerlo transparente al
usuario.
El módulo se puedes descargar de
CPAN aquí.
  • Links de descarga
http://lwp-l.com/pdf16053

Comentarios de: Módulo SOAP::Lite - Una forma sencilla de generar servicios web (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad