CLOUD COMPUTING

CLOUD COMPUTING COMO ARQUITECTURA SOA

Arquitectura SOA, o Service Oriented Architecture, en español se traduce como Arquitectura Orientada a Servicios, es un framework de arquitectura de desarrollo e implementación de sistemas de información interoperables y con orientación a servicios, guiado por estándares y procedimientos internacionalmente aceptados, lo que permite a la organización unir los objetivos organizacionales con la infraestructura tecnológica con la finalidad de mejorar los resultados operacionales, la transversalidad de los servicios y la disponibilidad de la información para los procesos.

Castillo Jaime[1] define que una arquitectura SOA es un estilo de arquitectura de software que permite la construcción de software distribuido que cumple con determinadas características. Provee soluciones a las necesidades organizaciones actuales, tales como la integración de múltiples sistemas de información desarrollados en distintas tecnologías, y un enfoque basado en los procesos propios del negocio, con lo que busca reducir las incompatibilidades entre los objetivos organizaciones y el área de TI.

Esta arquitectura se caracteriza por:

  • Las características del sistema se orientan hacia las necesidades de la organización, y tiene en cuenta la transversalidad e interoperabilidad de los procesos, datos o servicios.
  • Orientado a Servicios, no a un proveedor o a un software en particular. Esto permite que se puedan sustituir elementos del sistema, sin interrumpir o alterar el servicio.
  • Permite la desagregación de los servicios en pequeños elementos, con lo cual se busca poder recomponer nuevos servicios a la medida de las necesidades de cada operación.
  • Gran capacidad para la adaptación al entorno, flexibilidad y reutilización de los servicios, de forma simple y estandarizada.

Las características de una Arquitectura SOA concordantes con un modelo de Cloud Computing, según lo descrito por Arévalo Navarro[2] son:

  • Los modelos de negocio tienden a la tercerización, entregando aspectos técnicos específicos y servicios a proveedores expertos.
  • Facilidad para implementar modelos de colaboración (entre distintas unidades de negocio de la organización, socios o proveedores), tanto a nivel de datos, desarrollo de software o infraestructura.
  • Posibilidad de remplazar, migrar o ajustar elementos del sistema sin interrumpir la operatividad del servicio.
  • La arquitectura, diseño, y lenguaje de programación de un sistema de información son transparentes para el usuario final, ya que el nivel de abstracción está a nivel del servicio o funcionalidad del sistema.

[1] CASTILLO JAIME, Oswaldo Augusto. Planteamiento de un modelo basado en la arquitectura SOA en el gobierno de TI de las empresas de contact center. Trabajo de grado Magíster en Gobierno de Tecnologías de Información. Lima: Universidad Nacional Mayor de San Marcos., 2017., p. 43-44.

[2] ARÉVALO NAVARRO, José Manuel. Cloud Computing: fundamentos, diseño y arquitectura aplicados a un caso de estudio. Trabajo de grado Máster Oficial en Tecnologías de la Información y Sistemas Informáticos. Madrid: Universidad Rey Juan Carlos., 2011., p. 14-18.

INGENIERÍA Y SERVICIOS IT

SISTEMA HEREDADO

Un sistema heredado (o sistema legacy) es un sistema informático (equipos informáticos o aplicaciones) que ha quedado anticuado pero que sigue siendo utilizado por el usuario (generalmente, una organización o empresa) y no se quiere o no se puede reemplazar o actualizar de forma sencilla.

Las compañías gastan mucho dinero en sistemas informáticos y, para obtener un beneficio de esa inversión, el software o el hardware debe utilizarse varios años. El tiempo de vida de los sistemas informáticos es muy variable, pero muchos sistemas grandes se pueden llegar a utilizar hasta más de 20 años. Muchos de estos sistemas antiguos aún son importantes para sus respectivos negocios, es decir, las empresas cuentan con los servicios suministrados por estos sistemas y cualquier fallo en estos servicios tendría un efecto serio en el funcionamiento de la organización. Estos sistemas antiguos reciben el nombre de sistemas heredados.

Lo habitual es que los sistemas heredados, los que ya suponen un problema para una empresa u organización por la dificultad para sustituirlos, no sean los mismos sistemas que originalmente se empezaron a utilizar en la empresa. Muchos factores externos e internos, como el estado de las economías nacional e internacional, los mercados cambiantes, los cambios en las leyes, los cambios de administración o la reorganización estructural, conducen a que los negocios experimenten cambios continuos. Estos cambios generan o modifican los requerimientos del sistema de información, por lo que éste va sufriendo cambios conforme cambian los negocios. Por esta razón, los sistemas heredados incorporan un gran número de actualizaciones hechas a lo largo de su vida útil. Muchas personas diferentes pueden haber estado involucradas en la realización de estas modificaciones a lo largo del tiempo, y es inusual para cualquier usuario o administrador del sistema tener un conocimiento completo del mismo, sobre todo cuando éste tiene una cierta envergadura , esto sin tener en cuenta la inversión horas/hombre requerida para capacitar a los trabajadores del área de sistemas para familiarizarlos con el mismo y sean capaces de mantenerlo (entre 2 y cuatro años ) .

Riesgos de la migración de un sistema heredado
Los sistemas heredados son considerados potencialmente problemáticos por numerosos ingenieros de software por diversos motivos. Dichos sistemas a menudo operan en ordenadores obsoletos y lentos, cuyo mantenimiento tiene elevados costes y son difíciles de actualizar por falta de componentes adecuados o de mantenimiento.

Los negocios por lo general reemplazan sus equipos y maquinaria con sistemas más modernos. Sin embargo, desechar un sistema informático y reemplazarlo con hardware y software moderno conduce a riesgos de negocio significativos. Reemplazar un sistema heredado es una estrategia de negocios arriesgada por varias razones:

Rara vez existe una especificación completa de los sistemas heredados. Si existe una especificación, no es probable que tenga los detalles de todos los cambios hechos en el sistema. Por lo tanto, no existe ninguna forma directa de especificar un nuevo sistema que sea funcionalmente idéntico al sistema que se utiliza.
Los procesos de negocios y las formas en que los sistemas heredados operan a menudo están intrincadamente entrelazados. Estos procesos se diseñaron para aprovechar los servicios del software y evitar sus debilidades. Si el sistema se reemplaza, estos procesos también tendrán que cambiar, con costos y consecuencias impredecibles.
Las reglas de negocio importantes están contenidas en el software y no suelen estar anotadas en ningún documento de la empresa. Una regla de negocio es una restricción que aparece en algunas funciones del negocio y romper esa restricción puede tener consecuencias impredecibles para éste. Por ejemplo, las reglas para valorar el riesgo de la aplicación de una política de una compañía de seguros pueden estar contemplados en su software. Si a estas reglas no se les da mantenimiento, la compañía puede aceptar políticas de riesgo altas que conduzcan a costosas reclamaciones.
El desarrollo de nuevo software es por sí mismo arriesgado, ya que pueden existir problemas inesperados. Puede ser, por ejemplo, que no se entregue a tiempo con el precio previsto.
Costes de mantenimiento de un sistema heredado
Seguir utilizando los sistemas heredados evita los mencionados riesgos del reemplazo, pero hacer cambios al sistema existente en vez de cambiarlo por uno más moderno puede ser más costoso puesto que éste es cada vez más viejo. Las razones de este coste de mantenimiento de sistemas que ya tienen una cierta antigüedad son:

Las diversas partes del sistema pueden haber sido implementadas por diferentes equipos. Por lo tanto, existen estilos de programación no consistentes a lo largo del sistema.
Parte del sistema o todo él pudo implementarse utilizando un lenguaje de programación que ahora es obsoleto. Es difícil encontrar personal que tenga conocimiento de estos lenguajes de programación, por lo que se requiere consultoría externa costosa para dar mantenimiento al sistema.
A menudo, la documentación del sistema no es adecuada y no está actualizada. En algunos casos, la única documentación existente es el código fuente del sistema. En los casos más graves el código fuente pudo haberse perdido y sólo está disponible la versión ejecutable del sistema.
Por lo general, muchos años de mantenimiento dañan la estructura del sistema, haciéndola cada vez más difícil de comprender. Tal vez se agregaron nuevos programas que interactúan con otras partes del sistema de una forma adyacente.
El sistema se pudo optimizar para la utilización del espacio o para la velocidad de ejecución más que para comprenderlo del todo. Esto provoca dificultades importantes a los programadores que conocen las técnicas modernas de ingeniería de software pero no conocen los trucos de programación utilizados por quienes desarrollaron el sistema original (quienes probablemente desconocían los conceptos de la ingeniería de software actual).
Los datos procesados por el sistema se conservan en diferentes archivos que pueden tener estructuras o formatos incompatibles. Puede existir duplicación de datos y los datos mismos pueden no estar actualizados, ser imprecisos o estar incompletos.
Alternativas
Los negocios que tienen sistemas informáticos anticuados se enfrentan a un dilema fundamental. Si continúan utilizando los sistemas heredados y realizan los cambios requeridos, sus costos se incrementarán de forma inevitable. Si deciden reemplazar sus sistemas heredados con nuevos sistemas, esto tendrá un coste y puede ocurrir que los nuevos sistemas no provean apoyo efectivo al negocio como lo hacen los sistemas heredados.

Mantener el sistema heredado
Muchos negocios están buscando técnicas de ingeniería de software que prolonguen el tiempo de vida de los sistemas heredados y que reduzcan los costos de seguir utilizando estos sistemas.

La Arquitectura Orientada a Servicios (SOA)
Una solución a este tipo de casuísticas tan complejas podría ser la implementación de una arquitectura orientada a servicios o SOA (por sus siglas en inglés), donde las aplicaciones de los sistemas heredados podrían ser publicadas como servicios. El carácter modular de una SOA, también hace que sea fácil poder adaptarse a los cambios de mercado con la simple creación o publicación de servicios sin tener que depender de una macro-estructura tan compleja. Aun así habría que tener en cuenta los posibles riesgos que entraña.

Solución monolítica
Otra solución a los sistemas heredados puede ser la aplicación de un sistema integrado y monolítico que reemplace los sistemas legados, con procesos de negocio estándares para los diferentes requerimientos de la organización. Algunas de las soluciones monolíticas más famosas son la implementación de sistemas ERP.