Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

24
Servicios Web CI-2413 Desarrollo de aplicaciones para Internet

Transcript of Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Page 1: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Servicios Web

CI-2413 Desarrollo de aplicaciones para Internet

Page 2: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Servicios Web

A través de los años ha habido varios intentos de lograr interoperabilidad entre computadores en redes. Sin embargo este objetivo ha sido elusivo.

Han existido estándares como CORBA, DCOM y RPC.

Los Servicios Web son una evolución o modernización de los viejos conceptos de interoperabilidad.

Page 3: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

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 electrónico en el que se pueda pensar.

Page 4: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Servicios Web

El intercambio de datos en el Web, típicamente ocurre vía TCP el puerto 80, utilizando el POST del protocolo HTTP.

Los servicios Web operan básicamente 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.

Page 5: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Servicios Web

Sobre el intercambio de datos, también se necesita información que describa la interfaz (o la Interfaz de Programas de Aplicación - 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 descripción, y la norma WSDL (Web Service Description Language) es la que permitirá esto.

Page 6: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Servicios Web

Sobre el componente anterior, hay información 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).

Page 7: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Servicios Web

Ambos componentes, el de descripción y el de descubrimiento son simplemente XML, gobernadas por un formato particular que habilita a la información relevante ser encontrada para todos los servicios Web en Internet.

Page 8: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

XML-RPC

(Componente de empaque) Es una norma muy simple, ya que sus 1500

palabras, comparadas con las más de 11000 de SOAP, hacen que sea fácil de utilizar.

XML-RPC significa eXtensible Markup Language – Remote Procedure Calls, o en castellano, llamados a procedimientos remotos XML.

Page 9: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

XML-RPC

Ejemplo de comunicación (cliente): POST /InterfazXMLRPC HTTP/1.0

User-Agent: ECCI XML-RPC Client 1.0Host: xmlrpc.ecci.ucr.ac.crContent-type: text/xmlContent-length: 195<?xml version="1.0"?><methodCall><methodName>forums.getNumTodaysThreads</methodName><params><param><value><string>PHP Development</string></value></param></params></methodCall>

Page 10: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

XML-RPC

Ejemplo de comunicación (servidor): HTTP/1.1 200 OK

Connection: closeContent-Length: 148content-Type: text/xmlDate: Tue, Oct 7 2003 15:59:04 GMTServer: ECCI XML-RPC Server 1.0<?xml version="1.0"?><methodResponse><params><param><value><int>42</int></value></param></params></methodResponse>

Page 11: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

XML-RPC, ejemplo: int A + int B

Código 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();

Page 12: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

XML-RPC, ejemplo: int A + int B

Código 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)));

Page 13: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

XWT

XWT es XML Windowing Toolkit. Permite crear aplicaciones remotas, o sea que corren en un servidor. La interfaz gráfica 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, instalación, actualización y desinstalación del software.

Page 14: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

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 aplicación la pueden probar antes de comprometer recursos a la configuración y el desarrollo.

Page 15: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

XWT

Page 16: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

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.

Page 17: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

SOAP

SOAP (Simple Access Object Protocol) es protocolo XML para intercambio de información estructurada.

Con PHP 5, podemos tener Clientes y Servidores SOAP nativos (extensión C y no biblioteca PHP).

Page 18: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Ejemplos Avanzados de Pear::SOAP

http://de.tikiwiki.org/xref-head/nav.html?lib/pear/SOAP/example/disco_server.php.source.html

Page 19: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Lista de ejemplos

Visual Studio .NET XML Windowing Toolkit (http://www.xwt.org) Las páginas mismas con lenguajes que tienen apoyo

a XML-RPC y SOAP. Aplicaciones en campos específicos como

OpenArchives (http://www.openarchives.org), Jabber (http://www.jabber.org)

Servicios como Portal de Búsqueda Google

Page 20: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Documentos

http://w3schools.com Computer. Vol. 36, Nº 10. Octubre del 2003. http://pear.php.net/manual/en/

package.webservices.xml-rpc.php http://www.zend.com/php5/articles/php5-

SOAP.php http://www.php.net/manual/en/ref.soap.php

Page 21: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

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.php/1602051

Page 22: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Conclusiones

Internet es un conjunto de protocolos. Así nació y así sigue siendo. Incluso cada día se agregan nuevos protocolos a este conjunto.

El desarrollo de aplicaciones para Internet no es la simple creación de páginas interactivas. Existe una gran gama de aplicaciones que se pueden crear.

Page 23: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Conclusiones

La tendencia es la creación de aplicaciones en capas con una o varias tecnologías 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.

Page 24: Servicios Web CI-2413 Desarrollo de aplicaciones para Internet.

Conclusiones

Hay alternativas para las tecnologías propietarias mayores que dominan el mercado. Por ejemplo: una combinación de XWT con PHP por medio de XML-RPC, podría reemplazar una aplicación de Visual Studio .NET, aligerando el costo de las licencias.