|
Por Evelio Martínez Martínez y José Martín
Olguín Espinoza Publicado en la Revista RED , Mayo, Junio de 2004.
Introducción Las necesidades y aplicaciones de
negocios del mundo de hoy requieren de un conjunto de componentes distribuidos
cada vez más complejos a través de las redes de telecomunicaciones. Aunque la
complejidad estriba en el software/hardware que ponen a funcionar a esos
componentes, todo esto va enfocado a facilitar a los usuarios sus diversas
actividades diarias.
El simple hecho de hacer una reservación en una línea área
requiere de una serie de procedimientos en los que se ven involucrados estos
componentes distribuidos. Por ejemplo, para verificar la disponibilidad de las
líneas aéreas en un viaje de México a Egipto, así como la verificación de la
tarjeta de crédito, hospedaje en un hotel y la renta de un vehículo. Como en
este tipo de itinerarios pueden intervenir varias líneas aéreas con distintas
bases de datos, plataformas y arquitecturas de software/hardware, vuelve más
complejo el proceso en una simple reservación aérea. Una solución este tipo de
necesidades son los Servicios Web (Web Services en inglés).
Qué son
los Servicios Web Los servicios web (SW) son colecciones de funciones u
objetos distribuidos que son presentados como una sola entidad la cual es
anunciada en la red para ser usada por otros programas. Son componentes de
software que permiten a los usuarios utilizar aplicaciones de negocio que
compartan datos con otros programas modulares, vía la dorsal de Internet.
Los servicios web son aplicaciones independientes, autocontenidas y
modulares independientemente de la plataforma, que puede ser fácilmente
publicadas, localizadas e invocadas mediante protocolos web estándar basados en
XML, como SOAP, WDSL o UDDI. Para hacer realidad esta tecnología, se requiere de
tres entidades participantes: Los Proveedores de Servicios, los Agentes y los
Solicitantes. El Proveedor anuncia sus servicios con un Agente, cuando un
Solicitante busca en un Agente un servicio, encuentra al Proveedor y establece
el enlace para hacer uso de los servicios [ver figura 1].
FIGURA 1. Arquitectura
orientada a servicios
El objetivo final de los servicios web es la creación de
directorios en línea que puedan ser localizados de un modo sencillo con un alto
nivel de fiabilidad. XML es utilizado para etiquetar los datos, SOAP es usado
para transferir los datos, WDSL es utilizado para describir los servicios
disponibles y UDDI es usado para listar qué servicios están disponibles.
A diferencia de los modelos tradicionales cliente/servidor, tales como
el sistema de servidores de páginas web, los servicios web no proveen al usuario
con una interfase gráfica. Los servicios web en vez de eso comparten lógica de
negocios, procesos y datos a través de una interfase programática a través de la
red. Los servicios web permiten que diferentes aplicaciones de diferentes
fuentes puedan comunicarse entre sí.
El consorcio de tecnologías web, W3C
(http://www.w3c.org/), define a los servicios web como un sistema de software
identificado por un URI, cuyas interfaces públicas y enlaces están definidos y
descritos usando XML. Su definición puede ser descubierta por otros sistemas de
software. Estos sistemas pueden interactuar con el servicio Web de la manera
preestablecida en su definición, usando mensajes basados en XML y transportados
por los protocolos de Internet.
Para simplificar la definición, podemos
usar la analogía de un servicio web con una biblioteca de funciones que un
proveedor ofrece. Esta biblioteca por sí sola no genera un valor completo, se
utiliza en conjunto con otros componentes para crear aplicaciones completas.
Siguiendo con la analogía, si se quisiera crear un software ERP, entonces
podríamos contratar con diferentes proveedores un SW de manejo de inventario, un
SW de control de producción, un SW de planeación de compras; los interconectamos
y listo, ya tenemos nuestro ERP. Claro, para que esto funcione deben existir
estándares que nos permitan asegurar las operaciones mínimas que deben proveer
los SW anteriormente mencionados.
Los servicios web publican una
interfaz con todos los servicios que ofrecen, y cuando son invocados por los
clientes, se ejecutan en su propia infraestructura (CPUs, DBMS, etc.),
retornando sólo el resultado del procesamiento, es por esto que las aplicaciones
construidas con servicios web caen dentro de la definición de aplicaciones
distribuidas. |
XML como presentador principal de los servicios
web El XML es una tecnología que permite estructurar documentos
(metalenguaje) para darle significado a su contenido. Esto se logra mediante el
uso de etiquetas tipo HTML, pero definidas especialmente para el dominio de una
aplicación en particular. El XML es un lenguaje en el cual cada desarrollador
puede definir su propio conjunto de etiquetas y su principal objetivo, a
diferencia de HTML, no es el despliegue del documento, sino la estructura y el
significado de su contenido. Por ejemplo, un archivo XML utilizado para
representar información de una biblioteca podría ser de la siguiente forma:

Las aplicaciones que hagan uso de estos archivos debe tener
una manera de asegurarse que los archivos XML estén bien formados, es decir, que
estén construidos de acuerdo a una serie de reglas previamente definidas. Esto
se logra comparando el archivo XML contra una definición formal en la cual se
declaran las etiquetas, parámetros y relación de jerarquía que habrá entre
ellas. Existen varias formas de establecer esta declaración formal, las más
utilizadas son los DTD y los Esquemas XML (XMLSchema), que son lenguajes
preestablecidos con los cuales se pueden definir las reglas de construcción de
los documentos XML.
Con el XML se pretende lograr la plena portabilidad
de la información que circule en Internet, ya que cualquier documento podrá ser
interpretado si se tiene acceso a su definición formal (DTD o XMLSchema). Esto
permite que se puedan construir aplicaciones que intercambien datos entre
plataformas propietarias mediante el uso de componentes de software que
traduzcan del formato de datos propietario a una definición XML y viceversa.
FIGURA 2. Relación entre
tecnologías de creación de documentos
XML es un lenguaje que está transformando completamente la
creación y el uso del software. Así como las tecnologías web ya conocidas (HTML,
PHP, Java, Perl,..) revolucionaron la comunicación entre usuarios y
aplicaciones. XML está revolucionando la comunicación entre aplicaciones y
equipos, pues ofrece un formato de datos universal, pues permite adaptar o
transformar fácilmente la información. XML es la base de los servicios web, ya
que es un lenguaje genérico con el que se puede describir cualquier tipo de
archivo. XML, es hoy en día un formato universal que lo están adoptando multitud
de programadores y que puede abarcar cualquier caso de intercambio de
información.
La idea básica es que con XML sea posible codificar
información en un documento de texto que no sólo contenga datos sino que también
contiene información que describe el significado de los mismos en una forma
estructurada y legible para el ser humano.
Muchos desarrolladores están
encontrando muchas bondades en XML, tal es el caso particular de Cisco Systems,
quien utiliza XML en la interfase de los servicios de telefonía IP que ofrece,
tales como servicios empresariales, inventarios, catálogos, lista de horarios de
vuelos, agendas, etc..
Aplicaciones de servicios web El Internet está
transformándose así mismo como medio de información, no sólo para intercambiar
ideas, sino también para ofrecer servicios. Muchos de esos
servicios/aplicaciones de la actualidad utilizan la potencialidad de los
servicios web. Quizás, algunas de ellas, Usted las utiliza a diario. Tal es el
caso del sistema centralizado de autentificación (conocido como Passport) de
usuarios de Microsoft. Este sistema de autentificación es utilizado como un
componente común para varios de los servicios .net, tales como el mensajero
instantáneo, sistema de correo, grupos, tiendas de compras, etc. El sitio,
Yahoo.com, tiene un sistema de autentificación similar que les da acceso seguro
a todos sus servicios a sus usuarios. Una aplicación más compleja, ya que
involucra el acceso a información de varias entidades son las agencias
expendedoras de boletos de avión, hoteles y renta de autos tales como
Expedia.com, Travelocity.com, Orbitz.com y Cheaptickets.com, sólo por nombrar
algunas. El manejar tres diferentes tipos de productos (o más) como uno sólo, no
se lograría sin las bondades y beneficios de los servicios web. El acceso a tres
tipos diferentes de sistemas representa un reto extremo para los servicios web.
Una aplicación de los SW muy deseable en nuestro país sería contar con este tipo
de componentes ofrecidos por parte de las dependencias gubernamentales, tales
como el Sistema de Administración Tributaria (SAT), el cual podría ofrecer un SW
para el pago de impuestos y consulta de estados de cuenta, de esta forma, las
empresas podrían conectar directamente sus aplicaciones contables a los sistemas
del SAT. Lo mismo podría ocurrir con los trámites del IMSS, los sistemas de
nómina de las empresas podrían conectarse directamente a un SW del IMSS para
hacer los movimientos de los trabajadores y los pagos correspondientes sin
necesidad de tener que recapturar los datos en los sistemas del IMSS tal y como
sucede hoy en día. Lo mismo se podría hacer para el Infonavit. El INEGI podría
ofrecer servicios de información geográfica y estadística en línea, lista para
ser integrada en los sistemas de cómputo de empresas de estudios de mercado, en
los sistemas catastrales municipales, etc.
FIGURA 3. áreas del
personal que las compañías tienen planeado contratar en el 2004
Otras aplicaciones donde se utilizan los servicios web son:
La transferencia electrónica entre bancos, inversión en línea en las bolsas de
valores, (e.g. etrade.com y Ameritrade.com). En general, según un estudio de
Infoworld (http://www.infoworld.com/), las aplicaciones de los servicios web se
centran en cinco áreas principales: comercio electrónico negocio a negocio y
negocio a consumidor, cadenas de suministros, CRMs y ERPs.
FIGURA 4. Principales
obstáculos para la adopción de Servicios Web
Tendencias y conclusiones La firma consultora
Gartner Inc. (http://www.gartner.com/). señalo recientemente que los servicios
web causarán un fuerte impacto en el mercado de servicios profesionales de las
tecnologías de información. Según Gartner, el mercado mundial de servicios
profesionales crecerá de los $56 mil millones de dólares que registró en el 2003
?que representaban el 6 por ciento de la industria de la tecnología?, hasta los
$283 mil millones de dólares en el 2007. Este incremento será el resultado de
utilizar los servicios web en lugar del esquema tradicional.
Los
estándares jugarán un papel muy importante en el éxito de la tecnología. El
mayor reto al que se enfrentan los servicios web es la seguridad. En los
ecosistemas de negocios, los desarrolladores necesitan una arquitectura de
seguridad extremo a extremo de manera fortuita para generar círculos de
confianza entre las compañías involucradas. Cabe resaltar que usando servicios
web, la seguridad de una empresa puede verse comprometida. La ausencia de
estándares de seguridad es un obstáculo para la adopción de la tecnología. Un
hecho claro es que los servicios web basados en XML son aceptados
universalmente. Pero la situación del resto de los protocolos involucrados es
muy distinta. La mayor parte de ellos se encuentra en desarrollo y pueden ser
objeto de cambios. Esa es la principal razón por la que las compañías están
esperando a que estos protocolos sean más universales antes de implementar los
servicios web en su ambiente de negocios.
Los autores, Evelio Martínez y J. Martín Olguín son docentes de
tiempo completo en la Facultad de Ciencias (Ensenada) y en la Facultad de
Ingeniería (Mexicali) de la Universidad Autónoma de Baja California (UABC)
respectivamente. Se les puede contactar en los correos electrónicos:
evelio[at]uabc.mx y molguin[at]uabc.mx.
| CORBA |
Common Object Request Broker Architecture, Arquitectura de
agentes de peticiones de objetos común |
| CRM |
Customer Relationship Management, Administración de
relaciones al cliente |
| DBMS |
Data Base Management System, sistema de administración de
base de datos |
| DCOM |
Distributed Component Object Model, modelo objetos de
componentes distibuidos |
| DTD |
Data Type Definition, definición de tipos de datos |
| ERP |
Enterprise Resource Planning, Planeación de recursos
empresarial |
| HTML |
HyperText Markup Language, lenguaje de etiquetas de
hipertexto |
| RCP |
Remote Procedure Call, llamada a procedimiento
remoto |
| RMI |
Remote Method Invocation, Invocación remota de
métodos |
| SGML |
Standard Generalized Markup Language, lenguaje de etiquetas
estándar generalizado |
| SOAP |
Simple Object Access Protocol, protocolo de acceso a objetos
simples |
| UDDI |
Universal Description, Discovery and Integration,
descubrimiento e integración de descripciones universales |
| URI |
Uniform Resource Identifier, identificador uniforme de
recursos |
| W3C |
World Wide Web Consortium, consorcio del www |
| WDSL |
Web Service Description Language, lenguaje de descripción de
servicios web |
| XHTML |
Extensible HyperText Markup Language, lenguaje de etiquetas
de hipertexto extensible |
| XML |
Extensible Markup Language, Lenguaje de Marcado
Extensible |
|