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");
$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.