martes, 28 de abril de 2009

IN73N.01 TECNOLOGÍA DE LA INFORMACIÓN II

Principales ventajas y desventajas de la arquitectura de Web Services

La arquitectura de Web Services fue concebida desde una perspectiva muy distinta al tradicional manejo de los sistemas de información como propiedad, el cual trajo consigo grandes cantidades de datos imposibles de escalar, no modulares, complejos y de conocimiento netamente tácito.

Son precisamente la modularidad, escalabilidad y apertura algunas de las grandes ventajas de los Web Services sobre las arquitecturas tradicionales. Los Web Services y en particular la arquitectura orientada a servicios (SOA) representan hoy por hoy un esquema de centralización de procesos y lógica de negocio, que antiguamente podía encontrarse en cualquier lugar, desde una pequeña porción de código hasta en un sistema complejo desconocido por todos. Tener un catálogo de servicios estandar y seguro usando Web Services tipo SOAP o RESTful, reduce los costos de mantenibilidad del software y hace más fácil el acceso a la información desde cualquier área organizacional debido a su bajo acoplamiento y alta cohesión. Es fácil crear un Web Service que ejecute un nuevo proceso de negocio y de hecho es posible orquestar diferentes procesos en uno sólo, que encapsule el core del negocio y que no afecte a otros entes que ya hacían uso de los servicios actuales.


Hoy en día incluso es posible hacer uso de Enterprise Service Bus, para centralizar los catálogos de servicios y monitorear el comportamiento de los mismos desde un sólo lugar, haciendo las veces de middleware y orquestador.

Inicialmente fue una desventaja la cantidad de programación requerida para la construcción de servicios, grandes cantidades de información representadas en formato XML (SOAP envelopes o mensajes SOAP) y se comprometió el desempeño de las aplicaciones debido a los procesos de serialización y deserealización de objetos al navegar en la red. Sin embargo, hoy en día con la aparición de nuevos estándares como RESTful, se simplifica la construcción de servicios y se causa menos overhead network.


Desafíos al migrar a una arquitectura de Web Services

La curva de aprendizaje siempre es un problema cuando se migra a nueva arquitectura o tecnología y los requerimientos de inversión en capacitación de personal de TI se vuelven trascendentales para que estos proyectos sean exitosos. La falta de agilidad en este aspecto lleva consigo el retraso en la iniciación o finalización de proyectos o la necesidad de contratación de arquitectos especialistas en el diseño y centralización de servicios.

La infraestructura de hardware también es un punto a considerar en la migración, debido a que la información
del core del negocio estará accesible en la red, por lo que se hace necesario disponibilizar dicha información (alto Uptime de servicio y SLAs) y tener tolerancia a fallos. Por la misma razón, también se requiere invertir en seguridad, debido a que los datos serán accesibles por cualquier persona.

Todo lo anterior lleva consigo a un cambio en el modelo operacional de la compañía, pasando de un esquema de coordinación a un esquema de unificación, donde se requiere estandarizar todos los procesos de negocio, que al estar centralizados, pueden ser usados por toda la compañía. Se pierde la gestión autónoma de las áreas y las estructuras y aplicaciones de TI ya no se diseñan por consenso de pequeñas unidades.

Apoyo de los Web Services a las "organizaciones electrónicas"
  • Construir en los sistemas existentes requiere organización, definición y documentación. Los sistemas con los que ya funciona la compañía son los primeros que deben migrarse a la nueva arquitectura y debe hacerse de la mejor manera: documentado los flujos del servicio, entradas, salidas, faults o excepciones. Es necesario hacerlo paulatinamente, centrandose en módulos importantes y disponibilizándolos a los clientes (internos o externos) hasta completar todo el sistema.

  • Comenzar por el borde. El soporte a ventas y clientes es un ejemplo claro de comenzar por los bordes, para finalizar con la migración de actividades más centrales como la producción. Es importante disponibilizar los servicios creados para que los cliente comiencen a usarlos, como es el caso de Dell que creó efectividad operacional en la cadena de proveedores cambiando el canal de comunicación y hablando un mismo lenguaje con todos.

  • Crear una terminología compartida y estándar es fundamental en la construcción de un catálogo de servicios. Las entradas y salidas, la representación de errores y el formato en que la información viajará a través de la red debe ser consistente y estándar. Esto es de cierto modo simple, ya que el uso de SOAP y XML obliga a la estandarización del envío de información, pero todavía sería necesario trabajar en el nombramiento y manejo de dicha información, como los nombres de variables y otros.