La
interconectividad entre las empresa Guatemaltecas cada vez se hace más necesaria.
Los bancos necesitan comunicarse, intercambiar datos de clientes, datos de
cuentas, publicar cambio de monedas, etc. Las Escuelas también necesitan
integrarse haciendo el proceso de inscripción o tramitación de documentos más
rápidos. Las Empresas gubernamentales poseen también esa necesidad de
intercambiar datos, por ejemplo con la SAT (Superintendencia de Administración
Tributaria), con bancos, con entidades externas, etc. No cabe duda que esa
agilidad e integración será grandemente codiciada por muchas empresas
Guatemaltecas y como consecuencia la adopción de SOA proliferará. Sin embargo,
la adopción de SOA no es un proyecto de semanas o meses, sino de años.
Involucra la creación de varios proyectos, roles y la cooperación entre IT y el
área de negocio.
La adopción de SOA trae como beneficio el cambio de
paradigma que las grandes industrias de tecnología de la información han
adoptado por varios años: Cliente/Servidor. SOA está llamando la atención de
varias empresas por la alta agilidad y la reducción de costos que provee
mediante servicios fuertemente reutilizables, desacoplados y gobernados con el
fin de adaptarse a los cambios exigidos por el entorno en que se encuentran y
poder competir fuertemente. Sin embargo, aún en Korea y Europa grandes compañías
han fracasado en la adopción trayendo consigo grandes pérdidas económicas con
un retorno de inversión nulo. La adopción de SOA está empezando y cada vez más
empresas están involucrándose en la adopción de SOA para poder enfrentar los
cambios que el mercado exige haciendo uso de agilidad empresarial, pero muchas
de estas empresas que han intentado adoptar SOA han fracasado en el intento.
SOA es un concepto relativamente nuevo por lo que cada
ves más estándares, roles, herramientas y protocolos están surgiendo y a la vez
modificando esta arquitectura, haciendo su adopción difícil.
¿QUE ES SOA?
Antes de nada conviene aclarar qué es realmente SOA, ya que en muchas ocasiones
se confunde con una tecnología o producto software, y nada más lejos de la realidad. Hay decenas de
definiciones distintas de SOA en la Web y aunque la mayoría de ellas son
acertadas, unas son más completas que otras. Hay que entender que SOA es un concepto
de diseño de arquitectura que trata de alinear a las TI con el propio negocio
de la organización. Y para esto, sugiere la creación de servicios y
funcionalidades de negocio fácilmente reutilizables. Estos servicios deben ser
flexibles, seguros y lo más importante de todo, con una arquitectura basada en
estándares. SOA intenta integrar las TI con el negocio para que las soluciones
que aporte sean lo más cercanas a los requisitos de negocio que se intenten cubrir,
y dejen de ser soluciones departamentales que cubran o resuelvan solo
parcialmente parte de las necesidades existentes sin tener una visión de la
globalidad del proceso.
SOA es la evolución del modelo de programación orientado a componentes,
ya que SOA agrega herramientas de computación distribuida a estas tecnologías
que hemos venido utilizando por años. Podríamos decir que el cambio más grande
es filosófico: en lugar de pensar en el diseño de aplicaciones individuales
para resolver problemas específicos, SOA ve el software como un patrón que
soporta todo el proceso del negocio. Cada elemento de un servicio es un
componente que puede ser utilizado muchas veces a través de muchas funciones y
procesos dentro y fuera de la empresa. Los servicios se pueden actualizar y
escalar conforme sea requerido, o se pueden cambiar a una librería de terceros,
sin afectar la operación del negocio.
Que SOA es una gran idea es indudable y también lo es que la expectativa
que ha despertado entre las empresas, los consultores y los medios
especializados es enorme, la más grande que ha habido en IT en muchos años. Es
natural en cierto modo que sea así porque SOA cumple con un viejo anhelo de IT
que es poder crear nuevos sistemas a partir de componentes preexistentes que se
reutilizan. En cierto modo esta idea es obvia: todas las industrias hacen esto;
cuando una empresa electrónica crea por ejemplo un nuevo equipo de audio, o
cuando una automotriz diseña un nuevo modelo de automóvil no diseñan desde cero
todos sus componentes; reutilizan muchos componentes y partes de los modelos ya
existentes. Sin embargo en IT esto no se pudo lograr hasta ahora debido en gran
medida a la falta de estándares universalmente aceptados. Es justamente la
existencia de un cuerpo de estándares que todos los proveedores de la industria
aceptan lo que permitió el desarrollo de SOA. SOA es entonces una forma de
diseñar sistemas en la que las diferentes funciones se implementan en la forma
de componentes débilmente acoplados denominados servicios. Los servicios se
comportan como cajas negras en el sentido de que su implementación interna
queda completamente oculta para quien los consume. Un servicio podría estar
implementado en JEE, en .NET, en Cobol/CICS, en SQL, etc., sin que el
consumidor ni siquiera se entere. La forma de utilizarlo es completamente
independiente de la implementación. Esta idea de aplicaciones como servicios
alineadas a los procesos del negocio no es nueva, solamente que en esfuerzos
anteriores se requería mucho esfuerzo para integrar las aplicaciones
heterogéneas.
SOA es un paradigma cuyo objetivo principal es
aportar agilidad a la organización, de tal forma que esta pueda responder más
rápidamente ante los cambios del mercado (por ejemplo, para lanzar un nuevo
producto antes que los competidores).
Aunque las iniciativas SOA normalmente se
abordan desde el punto de vista tecnológico, SOA no es una tecnología, sino un
enfoque o manera de hacer las cosas que aporta grandes beneficios al negocio.
De forma simplificada, SOA consiste en crear elementos software discretos,
modulares y reutilizables llamados servicios.
Los servicios se convierten en recursos,
accesibles de una forma estándar desde las aplicaciones y sistemas de la
organización. De esta forma, para automatizar un proceso de negocio bastará con
llamar a un conjunto de servicios en determinado orden (orquestación).
En muchas ocasiones se confunde con una tecnología o producto software, y
nada más lejos de la realidad. Hay decenas de definiciones distintas de SOA en
la Web y aunque la mayoría de ellas son acertadas, unas son más completas que
otras.
Hay que entender que SOA es un concepto de diseño de arquitectura que
trata de alinear a las TI con el propio negocio de la organización. Y para
esto, sugiere la creación de servicios y funcionalidades de negocio fácilmente
reutilizables. Estos servicios deben ser flexibles, seguros y lo más importante
de todo, con una arquitectura basada en estándares.
En el caso de SOA, los componentes reutilizables a crear son servicios de
aplicación con significado propio, flexibles, débilmente acoplados y altamente
interoperables sobre estándares tecnológicos abiertos.
En definitiva, SOA, a diferencia de otras soluciones de integración no se
limita al uso de una herramienta o "plataforma de herramientas" para
integrar aplicaciones, sino que sugiere una arquitectura ágil, escalable y
completamente distribuida por toda la organización. En las arquitecturas SOA
entre otras muchas funcionalidades, pero
no se reduce a la integración de éstas dentro de una localización concreta,
sino que va mas allá, va a los procesos de las organizaciones, a la
gobernabilidad, al uso de tecnología estándar, a la integración en entornos
distribuidos.
BENEFICIOS SOA PARA IT
- Mayor interoperabilidad entre las aplicaciones internas existentes, las aplicaciones externas y las futuras aplicaciones.
- Mayor reutilización de los sistemas de información de la empresa y de sus componentes mediante su conversión a servicios.
- Menores costos de mantenimiento al evitar que las capacidades de negocio (componentes de software) que sean duplicadas o se superpongan se consoliden en una pequeña cantidad de servicios compartidos.
- Reutilización, el código se implementa una sola vez y puede ser invocado desde aplicaciones distintas.
- Homologación, al reutilizar un servicio se homologan funciones que son soportadas por el mismo servicio, proporcionando ya sea una misma lógica de negocio o interfaz.
- Administración, tener identificados los servicios ayuda a mantener un inventario de los mismos, permitiendo una identificación rápida de aquéllos que son necesarios para implementar una función o proceso de negocio específico.
- La simplificación del desarrollo de soluciones mediante la utilización de estándares de la industria y capacidades comunes de industrialización.
- Alinear y acercar las áreas de tecnología y negocio.
- Reducir los costos y el tiempo de desarrollo—Los servicios SOA pueden reutilizarse fácilmente y pueden convertirse en nuevas aplicaciones compuestas
- Reducir los costos de mantenimiento, los servicios reutilizables reducen el grado de complejidad interna de los servicios de IT
- Aumentar la calidad de los servicios, una mayor reutilización de servicios crea servicios de mejor calidad en múltiples ciclos de prueba de diferentes consumidores de servicios
- Reducir los costos de integración, los servicios estandarizados pueden trabajar en conjunto, permitiendo que las aplicaciones dispares se conecten con rapidez y facilidad
- Reducir el riesgo, menos servicios reutilizables brindan mayor control sobre las políticas gubernamentales de IT y corporativas, y reducen el riesgo general relacionado con el cumplimiento.
- menor coste total de propiedad
- Repotenciación de los sistemas legados.
- Conectividad, los sistemas son más fáciles de conectar entre sí.
- Reducción de tamaño de proyectos
- Alta escalabilidad, los servicios pueden ser clusterizados o movidos entre servidores más rápidamente.
- Reutilización real de los programas y mejora en tiempos de respuesta al negocio o “time to market”.
- Minimiza la dependencia técnica
- Facilita la tercerización de proyectos, los proveedores se adaptarán más rápidamente a los proyectos de la organización.
- Permite altos niveles de crecimiento a costos más bajos y los usuarios, realmente, pueden hacerse cargo de las definiciones de los procesos que lideran.
- Es posible exponer cualquier fuente de datos existente como.
- El manejo del conocimiento atomizado y la encapsulación de éste en servicios permiten una mantención y un dinamismo únicos, mejorando el time to market.
- Es posible atomizar la lógica y exponerla para que sea utilizada por otras aplicaciones en prácticamente cualquier plataforma tecnológica o ubicación geográfica.
- Capacidad de Descubrimiento. Los servicios pueden exponer descripciones que permiten a otras aplicaciones y servicios localizarlos y determinar de forma automática la interfaz.
BENEFICIOS SOA PARA EL
NEGOCIO
- Procesos comerciales más ágiles que permiten la implementación en menor tiempo de los cambios requeridos en los procesos de negocio de la empresa.
- Mejor visibilidad del negocio al exponer como servicios las capacidades comerciales de la empresa para su integración y optimización en los procesos comerciales y en los portales de información que apoyan la toma de decisiones.
- EL TCO final de soluciones implementadas bajo esta plataforma, en el mediano y largo plazo, es drásticamente más bajo que el de una solución tradicional.
- Documentación, el usuario de negocio documenta tanto sus procesos como sus reglas de negocio.
- Se genera un inventario de procesos de negocio junto con las relaciones que tienen con las reglas de negocio y a los servicios de las aplicaciones que ayudan a su implementación.
- Al contar con un inventario es posible hacer una mejor planeación arquitectónica, al poder analizar el impacto que tendrán futuras integraciones de nuevas aplicaciones o nuevos procesos de negocio.
- Información en tiempo real, al contar con monitoreo de los KPIs se genera información bajo demanda que puede ser utilizada para la toma de decisiones relacionadas con los procesos.
- Agilidad para habilitar rápidamente soluciones innovadoras y para adaptarse a cambios en el mercado cuando ocurran.
- Flexibilidad para reducir los tiempos y costos de implantación, y para contar con una arquitectura ágil que permita la evolución, cambio y crecimiento del negocio.
- Rapidez para llegar primero al mercado antes que la competencia y crecer la participación de mercado.
- Obtener mejor visibilidad de la información a través de toda su organización.
- Optimice sus procesos de negocios.
- Tasas internas del retorno sobre la inversión de hasta el 100%.
- Ahorro en TCO (Total Cost of Ownership) de los componentes de software y de las aplicaciones construidas utilizando estos componentes.
- Capacidad de reutilizar y potenciar otras aplicaciones informáticas como ERP's, CRM's, etc.
- Mejora en los tiempos de realización de cambios en procesos.
- Facilidad para evolucionar a modelos de negocios basados en tercerización.
- Facilidad para abordar modelos de negocios basados en colaboración con otros entes (socios, proveedores).
- Poder para reemplazar elementos de la capa aplicativa SOA sin disrupción en el proceso de negocio.
- Facilidad para la integración de tecnologías disímiles.
- Agilidad para habilitar rápidamente soluciones innovadoras y para adaptarse a cambios en el mercado cuando ocurran.
- Aislar los sistemas frente a cambios generados por otras partes de la organización (protección de las inversiones realizadas).
Excelente contenido
ResponderEliminarGracias Amigos! Es un grano de arena con el cual contribuyo a la comunidad Oracle!
ResponderEliminarBuen artículo, me encuentro en un proyecto SOA por lo que puedo mencionarte que el enfoque es correcto
ResponderEliminar:)
¡Que bueno que te gustó rickymax! Gracias por leer mis articulos.
ResponderEliminar