jueves, 21 de noviembre de 2013

Web Services

Por qué los Web Services son hoy tan importantes

     Hagamos un poco de historia. En los primeros computadores corría un solo programa a la vez, pero en la medida que en un mismo computador podían correr varios programas al mismo tiempo, surgió la necesidad de contar con mecanismo de comunicación entre ellos, esto se llamó comunicación Task to Task y, este mecanismo a evolucionado debido que los computadores conforman redes. Por tanto, esta comunicación debe poder efectuarse entre un programa X, que corre en el computador Alfa, y otro programa Y, que corre en el computador Beta.

     Para que esta comunicación funcione, primero debe existir un medio de comunicación entre el computador Alfa y el computador Beta; esto hoy esta resuelto con la Internet. Y segundo, el programa X debe saber conversar con el programa X. Para que esto ocurra el programador a cargo de X debe conocer de Y. A su vez el programador a cargo de Y  debe conocer de X, por lo menos en los que se refiere al intercambio de datos. Esto hace que si no hay acuerdo entre el programador de X y el programador de Y, no hay comunicación posible.
     La magia de los Web Services está en que el programador de X puede crear un Web Service para transferir datos sin necesidad de conocer al programador Y, ni a los programas que éste tiene a cargo.  De modo que quien quiera recibir los datos solo necesita usar el Web Service y punto. Esto significa que pueden existir transferencias de datos entre distintas aplicaciones –programas- que funcionan en varios computadores, con distintos sistemas operativos, y que pertenezcan a diferentes empresas o instituciones.
     A modo de ejemplo, si Ud. Ha despachado un material vía Federal Express y quiere conocer el estado de su despacho, esta empresa pone a su disposición un Web Service.

Definiciones
     El término Web Services describe una forma estandarizada de integrar aplicaciones WEB mediante el uso de XML, SOAP, WSDL y UDDI sobre los protocolos de la Internet. XML es usado para describir los datos, SOAP se ocupa para la transferencia de los datos, WSDL se emplea para describir los servicios disponibles y UDDI se ocupa para conocer cuales son los servicios disponibles. Uno de los usos principales es permitir la comunicación entre las empresas y entre las empresas y sus clientes. Los Web Services permiten a las organizaciones intercambiar datos sin necesidad de conocer los detalles de sus respectivos Sistemas de Información.
     A diferencia de los modelos Cliente/Servidor, tales como un servidor de paginas Web, los Web Services no proveen al usuario una interfaz gráfica (GUI). En vez de ello, los Web Services comparten la lógica del negocio, los datos y los procesos, por medio de una interfaz de programas a través de la red. Es decir conectan programas, por tanto son programas que no interactúan directamente con los usuarios. Los desarrolladores pueden por consiguiente agregar a los Web Services la interfaz para usuarios, por ejemplo mediante una pagina Web o un programa ejecutable, tal de entregarle a los usuarios un funcionalidad específica que provee un determinado Web Service.
     Los Web Services permiten a distintas aplicaciones, de diferentes orígenes, comunicarse entre ellos sin necesidad de escribir programas costosos, esto porque la comunicación se hace con XML. Los Web Services no están ligados a ningún Sistema Operativo o Lenguaje de Programación. Por ejemplo, un programa escrito en Java puede conversar con otro escrito en Pearl; Aplicaciones Windows puede conversar con aplicaciones Unix. Por otra parte los Web Services no necesitan usar browsers (Explorer) ni el lenguaje de especificación HTML.
     El modelo de computación distribuida de los Web Services permite la comunicación de aplicación a aplicación. Por ejemplo, la aplicación que procesa las órdenes de compra se puede comunicar con el sistema de inventarios, tal que este último le puede informar a la aplicación de compras cuales ítems deben comprarse por estar bajo su nivel mínimo. Dado el nivel integración que proveen para las aplicaciones, Los Web Services han crecido en popularidad y han comenzado a mejorar los procesos de negocios. De hecho, algunos postulan que los Web Services están generando la próxima evolución de la Web.

Tecnología Web Services
Los Web Services están  construidos con varias tecnologías que trabajan conjuntamente con los estándares que están emergiendo para asegurar la seguridad y operatibilidad, de modo de hacer realidad que el uso combinado de varios Web Services, independiente de la o las empresas que los proveen, este garantizado. A continuación se describen brevemente los estándares que están ocupando los Web Services.

XML
Abreviación de Extensible Markup Language. El XML es una especificación desarrollada por W3C[1]. Permite a los desarrolladores crear sus propios tags[2], que les permiten habilitar definiciones, transmiciones, validaciones, e interpretación de los datos entre aplicaciones y entre organizaciones.

SOAP
Abreviación de Simple Object Access Protocol , es un protocolo de mensajería construido en XML que se usa para codificar información de los requerimientos de los Web Services y para responder los mensajes “antes��? de enviarlos por la red. Los mensajes SOAP son independientes de los sistemas operativos y pueden ser transportados por los protocolos que funcionan en la Internet, como ser: SMTP, MIME y HTTP.

WSDL
Abreviación de Web Services Description Language, es un lenguaje especificado en XML que se ocupa para definir los Web Service como colecciones de punto de comunicación capaces de intercambiar mensajes. El WSDL es parte integral de UDDI y parte del registro global de XML, en otras palabras es un estándar de uso público (no se requiere pagar licencias ni royalties para usarlo).

UDDI
Abreviación de Universal Description, Discovery and Integration. Es un directorio distribuido que opera en la Web  que permite a las empresas publicar sus Web Services, para que otras empresas conozcan y utilicen los Web Services que publican, opera de manera análoga a las páginas amarillas.

2 comentarios:

  1. Juan Milton Chambi Mendoza7 de diciembre de 2013, 5:03

    Veo la necesidad de información sobre servicios REST, ya que actualmente las estadísticas muestran que este tipo de servicio web es uno de los más utilizados a nivel mundial, sobre SOAP, y bueno, aclarar un poco sobre la arquitectura SOA que domina ambos tipos de protocolos. Muchas Gracias.

    ResponderEliminar
  2. Las arquitecturas orientadas a servicios (SOA) no son nuevas y existen desde hace ya bastante tiempo. Surgen por la necesidad de las aplicaciones de comunicarse entre ellas para intercambiar información y colaborar. Una evolucion de los web services son los servicios REST Algunas de sus características son que emplean el protocolo HTTP y sus diferentes métodos (GET, POST, DELETE y PUT, etc.) asignando a cada uno de ellos una operación de las denominadas CRUD (create -> PUT/POST, retrieve -> GET, update -> PUT/POST, delete -> DELETE). Pueden devolver datos en cualquier formato pero normalmente se emplea JSON o XML, les recomiendo leer sobre JSON

    ResponderEliminar