data center

Veo en esta página de IBM una lista bastante interesante sobre los principios que tiene que contemplar una arquitectura empresarial, centrada especialmente en el sector financiero.

Como hay que empezar por el principio, no está demás recordar la definición de “principio” que hace esta propia página:

Los principios son definiciones de alto nivel de valores fundamentales que guían el proceso de la toma de decisiones en I.T, sirviendo de base para la arquitectura, el desarrollo de políticas y estándares.

Los 21 principios están divididos en cuatro categorías (General, Información, Aplicación y Tecnología). Pasémolos por el punto de vista de SOA:

General

1.- Alineación entre IT y negocio

Empezamos bien, esto es el fundamento de SOA, que debe ser una iniciativa impulsada por negocio entre otras cosas para ellos e IT hablemos el mismo vocabulario.

2.- Beneficio máximo al menor coste y riesgo

La mejor manera de hacer esto es con la reutilización de las lógicas ya programadas (menos coste) y probadas (menos riesgo). La reutilización, es un no de los tres valores más importantes de SOA (junto a la Autonomía y la capacidad de ser descubierto del servicio).

3.- Continuidad del negocio

Aquí SOA da una de cal y otra de arena. Tenemos una dependencia de unos servicios sobre otros, siendo más complicado desplegar una solución completa basada en SOA en la que pueden intervenir decenas de servicios, procesos de negocio, servicios de decisión basados en reglas de negocio, etc. etc. Cada uno de estos elementos puede tener un propietario distinto y con un ciclo de vida independiente.

Sin embargo, gracias a la Autonomía y Abstracción de los servicios (tienen un fuerte control sobre su entorno de ejecución y mantienen los detalles de implementación ocultos al exterior) unido a su bajo acoplamiento nos permiten desplegarlos en diferentes máquinas y configuraciones haciendo posible un entorno de alta disponibilidad.

4.- Seguimiento de estándares y políticas

SOA no tiene por qué seguir una implementación técnica en concreto. Sin embargo, si tomamos como modelo la más extendida (la basada en web services), está claro que existen unos estándares ampliamente reconocidos y extendidos.

5.- Adopción de las mejores prácticas del mercado

SOA tiene la suficiente madurez para que estas mejores prácticas existan y se conozcan. Modestamente, espero que con este blog, contribuya a su conocimiento.

Información

6.- Tratar la información como activos

Uno de los principios de SOA son los contratos estandarizados de los servicios. Esto quiere decir que se debe tener un lenguaje común que tratan todos los servicios den un mismo dominio (plasmados en su contrato).

Con esto nos evitamos transformaciones de datos innecesarias en la invocación entre estos servicios pero también ponemos de manifiesto que la existencia de un modelo de datos a nivel de servicio es una de las primeras necesidades que debemos tener en cuenta.

7.- Información compartida

En la línea del punto anterior. Al estandarizar los contratos de los servicios estamos creando un modelo de datos que nos posibilita compartir información a través de toda la empresa o dominio con el que estemos trabajando.

8.- Información accesible

A través de los servicios, toda la organización tiene disponible acceder no sólo a la lógica de negocio si no que también a los datos de la empresa. Se acabaron los silos o las islas de datos dentro de la organización.

9.- Terminología y definiciones de datos comunes

Lo mismo que he tratado de explicar en los puntos 6 y 7. SOA es también un vocabulario común para la empresa.

10.- Seguridad de la información

Si la información de la empresa está “encapsulada” por los servicios, tenemos un punto de acceso único para los datos críticos de la empresa. En este punto podremos garantizar la integridad, disponibilidad, confidencialidad y autenticidad de los mismos.

Aplicación

11.- Independencia de la tecnología

El principio de Autonomía de SOA consagra precisamente esto. Además está claramente separado el contrato del servicio con su implementación. Podremos por ejemplo, cambiar el lenguaje con el que está escrito el servicio (incluso el sistema operativo sobre el que se ejecuta) sin que el cliente ni siquiera se de cuenta.

12.- Aplicaciones fáciles de usar

La tecnología debe ser transparente para el usuario. Aunque lógicamente el usuario trabaja directamente con los frontales (interfaces) está claro que tener una capa de servicios con el nivel de Abstracción adecuados, contribuye y mucho, a independizarnos de la tecnología subyacente (será más transparente que nunca).

14.- Reutilización y simplicidad

Sobre la reutilización en SOA no hay mucho más que decir, es una de sus características distintivas.

Sobre la simplicidad, podremos hablar del protocolo de comunicación sobre el que se implementa por ejemplo. En el caso de los web services o REST por poner dos casos ¿hay algo más simple que el uso de una “lingua franca” que habla todo el mundo con independencia del lenguaje, plataforma o sistema operativo?

15.- Convergencia con la arquitectura empresarial

SOA promueve la existencia y divulgación del “Esquema SOA”. Entre otros aspectos, este esquema debe ocuparse de:

  • Servicios de negocio
  • Requisitos para la descripción de los servicios
  • Métricas de rendimiento de los servicios
  • Estándares de interoperabilidad
  • Esquemas de datos
  • Políticas
  • Requisitos de clasificación y localización de servicios
  • Diseño de la estructura SOA: mapa de arquitectura
  • Plan de acción
  • Esquema global de la organización o modelo de procesos de la misma

16.- La arquitectura empresarial también aplica a las aplicaciones externas

El paradigma que proporciona SOA es una de las mejores formas de integrar lo heterogéneo.

17.- Interfaces de bajo acoplamiento

Otro de los puntos fuertes de SOA, el único acoplamiento con el cliente es el contrato.

18.- Adherencia a los dominios funcionales

Esto también es una característica de SOA. No sólo los servicios forman parte de un mismo contexto funcional si no que todos ellos hablan el mismo lenguaje (contratos estandarizados).

Tecnología

19.- Cambios basados en requerimientos

Los cambios en las aplicaciones y la tecnología son implementados sólo para responder a necesidades de negocio.

Precisamente SOA aboga por equipos mixtos entre Negocio y Tecnología para hablar el mismo idioma y crear servicios que tengan sentido para el negocio, para responder a necesidades concretas.

20.- Control de la diversidad técnica y proveedores

La diversidad técnica y de proveedores hay que asumirla, está ahí y no va a desaparecer. Sin embargo, con SOA, podemos dar una interfaz común (una envoltura) y estándar que hace posible por ejemplo diseñar nuevos servicios de alto nivel a partir de otros servicios de diferentes proveedores y con tecnología variopinta.

21.- Interoperabilidad

Otro de los puntos fuertes de SOA, al menos con una implementación estándar como puede ser web services.

En resumen, creo que SOA se ajusta muy bien a las necesidades de la arquitectura empresarial del sector financiero. Evidentemente, aplicar SOA no es fácil en una gran organización pero sin duda, si se hace bien, compensa con creces.

Anuncios