Está en la página 1de 24

Servicios Web

CI-2413 Desarrollo de aplicaciones


para Internet
Servicios Web
A travs de los aos ha habido varios
intentos de lograr interoperabilidad entre
computadores en redes. Sin embargo este
objetivo ha sido elusivo.
Han existido estndares como CORBA,
DCOM y RPC.
Los Servicios Web son una evolucin o
modernizacin de los viejos conceptos de
interoperabilidad.
Servicios Web
Los servicios Web son intercambio de datos
entre un servidor y un cliente, utilizando una
norma de formato XML para "empacar"
solicitudes y datos de tal manera que ambos
sistemas puedan "entenderse". El servidor y
el cliente pueden ambos ser servidores Web,
o cualquier otro aparato electrnico en el que
se pueda pensar.
Servicios Web
El intercambio de datos en el Web, tpicamente
ocurre va TCP el puerto 80, utilizando el POST del
protocolo HTTP.
Los servicios Web operan bsicamente de la misma
manera que operan los navegadores Web. La
diferencia es que en vez de HTML se trasiega
XML.
O sea, los servicios Web se encuentran disponibles
en cualquier lugar de Internet, de la misma manera
que lo hacen los navegadores, incluso pasando por
firewalls.
Servicios Web
Sobre el intercambio de datos, tambin se necesita
informacin que describa la interfaz (o la Interfaz
de Programas de Aplicacin - API). Esto hace que
el servicio Web sea til al resto de Internet,
permitiendo as otros desarrolladores crear
programas que pueden acceder sus servicios Web.
Esto lo llamamos el componente de descripcin, y
la norma WSDL (Web Service Description
Language) es la que permitir esto.
Servicios Web
Sobre el componente anterior, hay
informacin que describe la naturaleza del
servicios mismo, de tal manera que pueda ser
categorizado y encontrado en sitios que
ofrezcan directorios de servicios Web. Esta
es la capa de descubrimiento, la cual es
tratada por la norma UDDI (Universal
Description, Discovery and Integration).
Servicios Web
Ambos componentes, el de descripcin y el
de descubrimiento son simplemente XML,
gobernadas por un formato particular que
habilita a la informacin relevante ser
encontrada para todos los servicios Web en
Internet.
XML-RPC
(Componente de empaque)
Es una norma muy simple, ya que sus 1500
palabras, comparadas con las ms de 11000
de SOAP, hacen que sea fcil de utilizar.
XML-RPC significa eXtensible Markup
Language Remote Procedure Calls, o en
castellano, llamados a procedimientos
remotos XML.
XML-RPC
Ejemplo de comunicacin (cliente):
POST /InterfazXMLRPC HTTP/1.0
User-Agent: ECCI XML-RPC Client 1.0
Host: xmlrpc.ecci.ucr.ac.cr
Content-type: text/xml
Content-length: 195
<?xml version="1.0"?>
<methodCall>
<methodName>forums.getNumTodaysThreads</methodName>
<params>
<param><value><string>PHP Development</string></value></param>
</params>
</methodCall>
XML-RPC
Ejemplo de comunicacin (servidor):
HTTP/1.1 200 OK
Connection: close
Content-Length: 148
content-Type: text/xml
Date: Tue, Oct 7 2003 15:59:04 GMT
Server: ECCI XML-RPC Server 1.0
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><int>42</int></value>
</param>
</params>
</methodResponse>
XML-RPC, ejemplo: int A + int
B
Cdigo del cliente:
include("xmlrpc.inc");

$a=new xmlrpcval($_POST['a'], "int");
$b=new xmlrpcval($_POST['b'], "int");

$f=new xmlrpcmsg('matematica.suma', array($a, $b));

$c=new xmlrpc_client("/~bsolano/xml-rpc/servidor.php", "localhost", 80);
$c->setDebug(0);

$r=$c->send($f);
if (!$r) { die("send failed"); }
$v=$r->value();

echo "La suma da: " . $v->scalarval();
XML-RPC, ejemplo: int A + int
B
Cdigo del servidor:
include("xmlrpc.inc");
include("xmlrpcs.inc");

function suma($params) {
$a=$params->getParam(0);
$b=$params->getParam(1);

$c = $a->scalarval() + $b->scalarval();

return new xmlrpcresp(new xmlrpcval($c));
}

$suma_sig=array(array($xmlrpcInt, $xmlrpcInt, $xmlrpcInt));

$suma_doc='Suma dos enteros A y B.';

$s=new xmlrpc_server( array( "matematica.suma" =>
array("function" => "suma",
"signature" => $suma_sig,
"docstring" => $suma_doc)));
XWT
XWT es XML Windowing Toolkit. Permite crear
aplicaciones remotas, o sea que corren en un
servidor. La interfaz grfica es proyectada en
cualquier computadora en Internet.
Esto es til para:
Usuarios muy volubles: Cualquier persona que utiliza
muchas computadoras.
Ambientes de clientes livianos: El usuario necesita
hardware de bajo costo, y se libera del monitoreo de
seguridad, parcheo, instalacin, actualizacin y
desinstalacin del software.
XWT
Esto es til para:
Software como un servicio: ASPs pueden
trascender las limitaciones de HTML y
alquilar aplicaciones con interfaces de usuario
ricas. Los clientes interesados en comprar y
hospedar la aplicacin la pueden probar antes de
comprometer recursos a la configuracin y el
desarrollo.
XWT
Ejemplos de XWT
Se pueden encontrar varios ejemplos de
XWT en http://www.xwt.org/demos.html.
Se puede ver un ejemplo de XWT utilizado
para crear un juego en
http://www.xwt.org/tutorial.html.
SOAP
SOAP (Simple Access Object Protocol) es
protocolo XML para intercambio de
informacin estructurada.
Con PHP 5, podemos tener Clientes y
Servidores SOAP nativos (extensin C y no
biblioteca PHP).
Ejemplos Avanzados de
Pear::SOAP
http://de.tikiwiki.org/xref-
head/nav.html?lib/pear/SOAP/example/disco
_server.php.source.html
Lista de ejemplos
Visual Studio .NET
XML Windowing Toolkit (http://www.xwt.org)
Las pginas mismas con lenguajes que tienen apoyo
a XML-RPC y SOAP.
Aplicaciones en campos especficos como
OpenArchives (http://www.openarchives.org),
Jabber (http://www.jabber.org)
Servicios como Portal de Bsqueda Google
Documentos
http://w3schools.com
Computer. Vol. 36, N 10. Octubre del 2003.
http://pear.php.net/manual/en/package.webse
rvices.xml-rpc.php
http://www.zend.com/php5/articles/php5-
SOAP.php
http://www.php.net/manual/en/ref.soap.php
Documentos
http://web-services.bankhacker.com/
http://www.revista.unam.mx/vol.3/num1/art3
/
http://pixelated-
dreams.com/blog/archive/000040.html
http://www.developer.com/services/article.ph
p/1602051
Conclusiones
Internet es un conjunto de protocolos. As
naci y as sigue siendo. Incluso cada da se
agregan nuevos protocolos a este conjunto.
El desarrollo de aplicaciones para Internet no
es la simple creacin de pginas interactivas.
Existe una gran gama de aplicaciones que se
pueden crear.
Conclusiones
La tendencia es la creacin de aplicaciones
en capas con una o varias tecnologas que se
comunican por medio de protocolos como
SOAP o XML-RPC.
A partir del concepto de desarrollo en capas
nace el concepto de Servicio Web.
Conclusiones
Hay alternativas para las tecnologas
propietarias mayores que dominan el
mercado. Por ejemplo: una combinacin de
XWT con PHP por medio de XML-RPC,
podra reemplazar una aplicacin de Visual
Studio .NET, aligerando el costo de las
licencias.