La misión de SOA como facilitadora de eficiencia en el negocio es fundamental y centra su foco sobre la necesidad de crear componentes proveedores de funcionalidades que soporten la operación de procesos de negocio clave de la compañía, y que podrían ofrecerse como servicios más amplios, a socios de negocio en un escenario colaborativo o a clientes finales.
La orientación hacia los servicios es una tendencia que puede traer beneficios reales para IT y para el negocio en general. La arquitectura orientada a servicios (SOA), promete guiar a las organizaciones hacia una arquitectura simplificada y estandarizada, permitiendo mayor flexibilidad e interoperabilidad, llevando a una mayor integración entre las soluciones de IT, los procesos de negocio y los usuarios, y como resultado de esto, conducir hacia una organización mas ágil y eficiente.
SOA no es un producto que puede adquirirse directamente de un proveedor de tecnología. SOA es un estilo de arquitectura, y como tal, tiene las cualidades, requerimientos y riesgos inherentes a cualquier otro tipo de arquitectura. Aún cuando SOA no es un producto tecnológico, numerosas herramientas tecnológicas le proveen una infraestructura propicia que facilita su implementación: desde la creación de componentes con orientación a servicio y componentes encargados de asegurar el aprovisionamiento y el correcto funcionamiento de éstos, hasta el modelado de procesos de negocio complejos con herramientas BPM (Business Process Management).
| 
| "SOA no es un producto que pueda adquirirse directamente de un proveedor de tecnología". |
SOA se examina como una arquitectura a la que se evoluciona y no como una arquitectura que se adopta inmediatamente. Desde esta perspectiva, SOA está enmarcado por un conjunto de conceptos, prácticas, y componentes tecnológicos que deben adoptarse en todo el proceso de desarrollo de una solución.
La Arquitectura Orientada a Servicios (SOA) puede definirse como una arquitectura de software para la construcción de aplicaciones que implementan procesos de negocio o servicios, mediante el uso de un conjunto de componentes, orquestados para brindar un nivel de servicio bien definido. El propósito de esta arquitectura es mejorar las capacidades de la organización, maximizando la agilidad del negocio y disminuyendo el costo de desarrollo y de las operaciones de IT.
La adopción de la metodología SOA no implica deshacerse de las aplicaciones existentes. SOA permite a las organizaciones apalancarse en activos existentes para responder adecuadamente a los cambios exigidos por el negocio. Las aplicaciones existentes podrían ser convertidas en servicios mediante la inclusión de adaptadores, o los servicios podrían ser creados a partir de código de dichas aplicaciones.
En SOA, tanto los procesos de negocio, como la infraestructura IT, se tratan como componentes que pueden ser reutilizados y combinados para soportar las prioridades cambiantes de los negocios. Cuando IT responde rápidamente a los cambios internos y externos, el negocio es alentado a optimizar sus procesos. Cuando estos procesos son optimizados continuamente, el impacto cumulativo puede ser grande, redundando en menores costos, respuestas más rápidas y mejores resultados.
Para mejorar en flexibilidad, las operaciones de negocio de una organización deben considerarse como una colección de funciones y procesos, a partir de los cuales se busca identificar aquellos procesos que representan aspectos diferenciadores frente a los competidores y que son parte de la identidad del negocio. Estos procesos ‘core’ serían candidatos a convertirse en servicios que podrían a su vez formar parte de una composición de servicios mas amplia, diseñada como respuesta a las condiciones cambiantes del negocio y a las necesidades y exigencias de los clientes. La flexibilidad y agilidad obtenida con este modelo permitiría obtener una ventaja competitiva en el mercado.
Para llegar a este punto de flexibilidad, muchas organizaciones han partido de la reconstrucción empresarial, en esta tendencia, los silos verticales desarrollados para soportar unidades de negocio son transformados en flujos de negocio integrados horizontalmente, donde varias líneas de negocio comparten procesos que anteriormente eran de uso exclusivo de cada línea.
Otra tendencia ha consistido en la especialización de las empresas sobre sus procesos ‘core’, focalizándose en estos y contratando otros procesos secundarios a empresas especializadas en ellos. De esta manera las organizaciones se diferencian de sus competidores creando servicios alrededor de sus productos y convirtiéndose en proveedores de servicios más que en vendedores de productos.
"La integración entre IT y las unidades de negocio es necesaria para una implementación exitosa y permitir que la toma de decisiones del negocio sea soportada por la tecnología en vez de verse restringida por ésta" |
Ambas tendencias llevan hacia una integración débilmente acoplada dentro y entre las empresas, conduciendo a una industria de servicios que pueden ser alineados y re-alineados según sea requerido. Una de las claves para esta integración depende de la interacción cercana entre IT y las unidades de negocio. Esta integración es necesaria para la implementación exitosa de SOA y permite que la toma de decisiones del negocio sea soportada por la tecnología en vez de verse restringida por ésta.
Para la creación de servicios se deben tener bien identificados los procesos de negocio, definir un roadmap para la construcción de estos servicios, y adoptar desde el inicio un esquema de gobierno para prevenir la degradación de los componentes del sistema.
Desde una perspectiva SOA, un proceso de negocio incluye gente, servicios de negocio (los cuales involucran aplicaciones de software), adaptadores (que permiten exponer funciones de negocio como servicios Web), y alguna clase de procesos de administración para controlar el flujo de trabajo entre las partes mencionadas (supervisor/workflow). Un proceso de negocio complejo puede constituirse de varios procesos de negocio de menor granularidad.
La construcción de servicios basados en estándares es importante ya que permite una independencia tecnológica de los proveedores de software. En el ámbito SOA, esta independencia es alentada por el compromiso de estandarización existente entre los mayores proveedores de software como BEA, IBM, Oracle, SAP y Microsoft.
Web
services y SOA están posicionadas para impactar la forma en que los
negocios llevan a cabo la gestión de procesos de negocio (Business
Process Management - BPM). SOA
crea un conjunto de componentes, que puede brindar un servicio de
negocios bastante complejo que debe proveer niveles de servicio
aceptables. Para ese fin, la arquitectura debe contar con componentes
que aseguren un nivel de servicio del que se puede depender. El nivel
de servicio sería verificable desde las herramientas BPM.
BPM
puede apoyar a los ejecutivos de alto nivel brindándoles una
perspectiva de la salud y una lectura estratégica del negocio,
permitiéndoles mejorar sus análisis sobre los proceso de negocio,
simplificando la forma en que pueden monitorear los sistemas IT que los
soportan. Una implementación SOA tiene la característica de relacionar
los costos de IT a procesos específicos del negocio, para cuantificar
esta relación, los servicios son vinculados a indicadores y métricas
específicas del negocio, información que puede ser consultada desde
herramientas BPM o BAM.
BAM,
Business Activity Monitoring, es un método para analizar los procesos
de negocio examinando las actividades que se ejecutan en los sistemas
IT que soportan estos procesos. BAM permite monitorear los procesos a
partir de pocos datos procesados en vivo, facilitando la toma de
decisiones de corto plazo en vez de la planeación de largo plazo
posible con otras herramientas de inteligencia de negocio. En BAM, se
configura un programa cuyo único propósito es ‘estudiar’ una función
específica de IT, o conjunto de funciones, que soportan un proceso de
negocio específico. De la información tomada en el proceso, los
gerentes del negocio pueden adquirir una visión de las operaciones y
tomar decisiones de acuerdo a esta visión.
La
implementación de SOA no es recomendable en todos los escenarios.
Cuando se cuenta con un ambiente IT homogéneo y cuando es crítico
contar con respuestas en tiempo casi real, SOA puede no ser la mejor
opción, ya que los beneficios en flexibilidad se verían opacados por
posibles efectos negativos sobre el desempeño.
"El acercamiento a SOA sin plan y sin supervisión puede garantizar el fracaso de la iniciativa" |
La
adopción de SOA trae consigo unos beneficios claros para IT como la
reducción en el mantenimiento y el menor tiempo de salida a mercado de
las aplicaciones, pero el acercamiento a SOA sin plan y sin supervisión
puede garantizar el fracaso de la iniciativa.
Tradicionalmente las prioridades de las cuales se parte para adoptar SOA son:
· Incrementar la reutilización de código de software
· Acelerar el tiempo de desarrollo
· Implementar nuevos productos de forma mas rápida
· Crear interfaces mas robustas y con mejor compatibilidad
· Facilitar la interoperabilidad e integración con otros socios de negocio
Para
evaluar SOA se debe escoger un proyecto relativamente de corto alcance
donde se puedan probar los méritos de SOA y luego construir desde ahí
incrementalmente.
Se
debe comprender la esencia de lo que la compañía hace, en términos de
procesos, y llevar este conocimiento a los servicios de negocio 'core'
que definen el negocio. La estructura SOA requiere que se piense desde la perspectiva de la reutilización.
Una
vez se tiene un mapa de la compañía como un conjunto de potenciales
servicios, se puede elegir un punto de partida, identificando un
proceso de negocio clave y llevándolo a construcción con una
metodología top-down.
Para esto se seguirían los pasos:
· Descubrir y recopilar los procesos de negocio
· Simular y optimizar el proceso de negocio
· Definir métricas necesarias para poder medir el rendimiento del proceso
· Construir el servicio basándose en estándares
SOA
implica pensamiento creativo sobre los procesos de negocio y mediciones
posteriores sobre estos procesos para verificar su efectividad. Se
requiere cooperación y colaboración entre las distintas áreas de la
empresa para identificar apropiadamente los procesos de negocio clave y
para su posterior optimización y refinación. Los arquitectos de
software deben contar con amplio conocimiento de los procesos de
negocio de la compañía, ya que serán ellos el puente principal entre IT
y los gerentes de línea.
"Los servicios de negocio se convierten, incrementalmente, en los entregables fundamentales de IT" |
Es
importante asegurar que la presión por cumplir cronogramas inmediatos
no sea tan rígida como para impedir que los servicios sean
desarrollados en el contexto de las mejores prácticas. Los servicios de
negocio se convierten, incrementalmente, en los entregables
fundamentales de IT.
En un sentido amplio, SOA representa un proceso de maduración de los servicios Web y las tecnologías de integración.
En SOA se entiende que los sistemas de misión crítica construidos en
sistemas distribuidos deben proveer ciertas garantías, deben asegurar
que las peticiones de servicio sean enrutadas correctamente y que sean
atendidas en un tiempo aceptable, cumpliendo, de ser necesario, con
unos niveles de servicio pactados con anterioridad.
Los
esfuerzos que deben hacerse para lograr un SOA administrado y seguro
son grandes y en algunos casos todavía en fase de estandarización. Sin
embargo, SOA se encuentra actualmente en una etapa propicia para su
adopción.
No
se debe pretender una migración a SOA de un momento a otro, debe
hacerse como un procedimiento por fases, como cualquier otro plan de
migración a gran escala de IT. SOA es una visión, no un proyecto, y sus
prácticas y estándares deberían empezar a aplicarse en proyectos que de
todas maneras deben hacerse, enmarcándolos ahora en un contexto de
orientación a servicios.