Cuando yo era un niño de 14 años, mi padre era tan ignorante, que yo no soportaba estar cerca del viejo. Pero cuando cumplí 21 años, quedé atónito de cuanto había aprendido el viejo en 7 años.

Mark Twain

Servicios Web XML o Web Services
Una Experiencia Concreta
José Enrique González Cornejo
25 de Julio 2003

Introducción

Los primeros servicios Web XML o Web Services, y el SOAP han sido programados e introducidos a BancoEstado por DocIRS, en el marco del proyecto Plataforma Tecnológica MyPE. Esta tecnología fue implantada conjuntamente con la Gerencia de Pequeña Empresa, con el soporte de la Gerencia de Informática del mismo Banco y la asesoría de Microsoft Chile. El propósito ha sido comenzar una secuencia de soluciones tecnológicas que requiere la institución, fundamentalmente en el ámbito de la atención y transmisión remota de las sucursales. A continuación presentamos una síntesis basada en la solución implantada en el Banco, que nos permitirá expresar la utilidad de esta nueva filosofÍa2.


Ver Ejemplo Servicio DocIRS:
Ingresa fecha o número y devuelve texto correspondiente

Los Servicios WEB XML o Web Services representan un salto cualitativo en el uso de la Web. Su puesta en funcionamiento tendrá un fuerte impacto en la disminución de costos, calidad, descongestión y rapidez de los sistemas informáticos, dado que un servicio Web XML es una aplicación capaz de ofrecer datos o servicios de procesamiento a otras aplicaciones informáticas... Es decir, El World Wide Web ha pasado de ser un medio para la publicación de información y contenidos, a convertirse en una plataforma para el diseño y desarrollo de aplicaciones informáticas distribuidas.

Modelo Web Services versus Modelo Tradicional Web

 

Modelo Web Services versus Modelo Tradicional Web

 

I. Servicios Web XML o Web Services

Web Services es una aplicación computacional determinada por un identificador3 cuyas interfaces públicas y conexiones están definidas y descritas usando XML. Su definición puede ser reconocida por otros sistemas o softwares. Estos sistemas pueden interactuar con el Web Services de una manera predeterminada por su definición, usando XML contenidos en mensajes transportados por los protocolos Internet.

La utilidad del Web Services es que cumplen una funcionalidad especifica en el ámbito de Internet. Los protocolos que soportan los Web Services se comunican normalmente por el puerto 80, y basándose en HTTP. Esto hace que se pueda acceder a ellos de igual modo que se hace en una página web.

La diferencia entre una página web y un Web Service, es que la página la visita cualquier individuo interesado, mientras que el servicio sólo lo visitan programas que lo requieren. De modo, que el conjunto de Web Services en Internet es una World Wide Web paralela, de carácter no humano, sino cibernético.

En efecto, en el modelo de aplicación web "clásico", la interacción comienza y termina en dos puntos claramente definidos: la petición del usuario y la respuesta de la aplicación informática. Por tanto son sólo dos los "interlocutores" que participan en este proceso. En cada intercambio de información que se produce, la aplicación informática debe "construir" una página resultado en formato HTML para presentar la información al usuario.

Es decir, que los Web Services permiten que diversas aplicaciones compartan información y que además invoquen funciones de otras aplicaciones independientemente de cómo se hayan creado estas aplicaciones, cuál sea el sistema operativo o la plataforma en que se ejecutan y cuáles los dispositivos utilizados para obtener acceso a ellas. Aunque los servicios del Web Services y los XML son independientes entre sí, pueden vincularse y formar un grupo de colaboración para realizar una tarea determinada.

Con esto se afirma que World Wide Web ha pasado de ser un medio para la publicación de información y contenidos, a convertirse en una plataforma para el diseño y desarrollo de aplicaciones informáticas distribuidas

El explorador o HiperDocumento©2003 de DocIRS se ha convertido en un "cliente universal" que facilita el desarrollo de aplicaciones y la adopción de nuevas soluciones tecnológicas, al reducir los costos de mantenimiento.

 

II. XML, base de los Web Services

El XML Es un metalenguaje, dado que todo paquete XML describe en forma universal cualquier tipo de archivo. Es decir permite contener su léxico propio, sintaxis, semántica y pragmática, desligando la información del formato con que fue creada. En efecto, XML transforma completamente la creación y el uso de software, revolucionando la comunicación entre aplicaciones o entre equipos, dado que ofrece un formato de datos universal, que permite adaptar o transformar fácilmente la información y transmitirla con estructura.

XML es una generalización más exacta y precisa que el HTLM. En efecto el HTML es un lenguaje que describe una pagina Web desde un archivo plano, incorporando marcas (o tag`s) bajo una sintaxis predeterminada4.

HTML = Texto + Marcas + Sintaxis Predeterminada

Sin embargo, en XML – que también es un archivo de texto plano - se marca TODO. Cualquier información transmitida por un XML está perfectamente estructurada, las marcas no son fijas, sino variables según el subformato5. Es decir, todo se transforma a un componente compuesta por componentes que se abren y cierran por marcas, que permite transmitir toda la información concerniente.

XML = Texto + Marcas + Sintaxis según contenido y contexto a comunicar

XML estructura la información en un árbol. Es decir, un paquete de datos o un documento cualquiera, el XML lo referencia en contenido, forma y localización como una componente, que a su vez esta formado de componentes, y así sucesivamente. Cada componente podría tener texto y/o más componentes.

Los árboles son un recurso antiguo de las estructuras de datos no lineales. Se utilizan para representar datos con una relación jerárquica entre sus elementos. Sin embargo, lo novedoso de los paquetes de datos XML es que es pueden ser más que arboles binarios, son explícitos y comunicados mediante archivos planos o por segmentos de memoria.

Ejemplo XML

estructura de arbol

...
<ENTRADA>
<CLIENTE>
   <MANTILLA_RUT>15586122</MANTILLA_RUT>
   <DIG_RUT>3</DIG_RUT>
   <ID_SOLICITUD>3145</ID_SOLICITUD>
   <TIP_CLI__BCC>1</TIP_CLI__BCC>
   <COD_OFICNA>251</COD_OFICNA>
   <NOM_RAZ_SOC>nombre</NOM_RAZ_SOC>
   <APE_CAR_PAR>apellido</APE_CAR_PAR>
   <APE_CAR_MAR>apellido</APE_CAR_MAR>
   <COD_EJECUTI>ZUNIGA REYES NELSON SAMUEL</COD_EJECUTI>
   <FEC_ASIG_EJE>20030628</FEC_ASIG_EJE>
  <EST_CLIEN>1</EST_CLIEN>
  <FEC_EST_CLIE>20030628</FEC_EST_CLIE>
  <FEC_ING_CLIE>19970719</FEC_ING_CLIE>
  <COD_SEGMEN>FBCOC</COD_SEGMEN>
  <COD_GIRO>0085</COD_GIRO>
  <COD_CATEGO>03</COD_CATEGO>
  <COD_SECTOR>024</COD_SECTOR>
  <IND_PART_SOC>0</IND_PART_SOC>
  <NUM_PROGRA>E411</NUM_PROGRA>
  <COD_ESTAFI>E</COD_ESTAFI>
  <IND_SEXO>M</IND_SEXO>
  <CODIGO_NAC>1</CODIGO_NAC>
  <FEC_NACIMIE>01/02/1980</FEC_NACIMIE>
  <EST_CIVIL>2</EST_CIVIL>
  <NIV_EDUCIO>005</NIV_EDUCIO>
....

  </CLIENTE>
</ENTRADA>
...

 

El XML se completa mediante una "hoja de estilo", que es una descripción de cómo debe verse una información en un determinado medio. A un mismo documento XML se le pueden aplicar distintas hojas de estilo según convenga. Por ejemplo usando una hoja de estilo por cada medio en la que se debe representar la información6.

El XML sirve para que múltiples programas interpreten correcta y definidamente cualquier tipo de dato. Es decir, XML sirve para que algunos programas conversen entre ellos sin intervención humana, sino también implica facilitar la arquitectura de procesos distribuidos. Los Servicios Web son un caso particular de esta arquitectura y XML es su lenguaje base.

III. El lenguaje DOM sobre <XML>

Especial mención se debe hacer sobre un potente lenguaje (especialmente javascript) que permite operar eficazmente los XML: XML DOM (Document Object Model ). El cual es 100% orientado al objeto y compatible con todos los browser. A saber; IE: Internet Explorer, F: Firefox, O: Opera, Crome,  W3C: World Wide Web Consortium (Internet Standard)

  • DOM XML define una manera estándar para acceder y manipular documentos XML.

  • DOM presenta un documento XML como una estructura de árbol.

  • Conocer el DOM XML es una necesidad para cualquier persona que trabaje con XML.

"The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."

 

IV. Los Protocolos

Por convención los Web Services se invocan en Internet por medio de protocolos estándar basados en XML. En nuestro caso, se utiliza SOAP7 que opera sobre .Net de Microsoft8. Sin embargo, para configurar un Webservice existen decenas de protocolos y lenguajes en Linux, Apache y PHP que son muy potentes y que se encuentran a disposición en forma gratuita o con licencia de bajísimo costo. Lo importante es ponerse de acuerdo entre el que Produce y Consume,  empaquetar el XML bajo el los métodos  y protocolo acordado.

Con respecto a SOAP (Protocolo de acceso a objetos simple, Simple Object Access Protocol) es un lenguaje de mensajería basada en XML, estandarizados por el consorcio W3C, que especifican todas las reglas necesarias para ubicar servicios Web XML, integrarlos en aplicaciones y establecer la comunicación entre ellos.

SOAP es una herramienta compleja, pero está diseñado para ser sencillo y transparente al usuario. Entrega un soporte completo y minucioso de todo tipo de servicios web. Por ejemplo con SOAP se entrega enteramente el eficiente Servicio Web de Google.

 

Notas

  1. SOAP (Simple Object Access Protocol) es un protocolo liviano para el intercambio de la información en un ambiente descentralizado, distribuido, basado en HTTP y XML.
  2. Que la solución haya sido desarrollada sobre plataforma Microsoft Punto NET, no excluye la utilidad que tiene Web Services para Linux (Perl y PHP)
  3. Específicamente URI (Uniform Resource Identifiers)
  4. Las marcas sirven para estructurar la información. Separar el título del contenido, cuerpo, ..
  5. También llamados bloques, nodos, tag´s
  6. Existen actualmente dos lenguajes de hojas de estilo: CSS (Cascading Style) y XSL (eXtended StyleSheet Language)
  7. Hoy en día existen dos grandes tendencias: XML-RPC y SOAP. Los cuales son incompatibles.
  8. .NET Framework es un componente del sistema operativo Microsoft Windows® que proporciona el modelo de programación para crear, implementar y utilizar aplicaciones basadas en Web, aplicaciones para dispositivos inteligentes y servicios Web XML.