señal

Tu empresa, cualquier empresa, necesita un sistema informático capaz de ofrecer la funcionalidad necesaria para su negocio y ser capaz de dar servicio en el día a día.  Y también, ser capaz de adaptarse a los cambios y nuevos requerimientos que irán apareciendo con toda seguridad en el futuro.

Para ello, a mi entender, su sistema informático debe estar basado en una arquitectura completa, definida siguiendo una orientación a servicios (SOA). Con una base sólida y madura, aunque estando en continua evolución de aspectos pendientes y mejoras. Entre sus características más importantes:

  • Alineada con la estructura y estrategia del Negocio de la empresa
  • Basada en la definición (y reutilización) de servicios. La exposición de servicios de negocio facilita la integración de sistemas propios o de terceros con tecnologías heterogéneas. Además, permite el desacoplamiento del consumidor y del proveedor de servicios.
  • Está basada en estándares.
  • Definida con productos estándar de mercado con una gran base instalada.

Debe permitir una fácil coexistencia con los sistemas actuales que se decida mantener sin migrar.La plataforma facilita que las aplicaciones cumplan los siguientes principios:

Principios generales a aplicar deben ser:

  • Desacoplamiento entre capas
  • Monitorización y gestión técnica y de negocio
  • Modularización, para favorecer la reutilización
  • Rendimiento adecuado
  • Escalabilidad
  • Auditabilidad y trazabilidad lógica
  • Trazabilidad técnica
  • Soporte a transaccionalidad y compensación
  • Disponibilidad 24×365
  • Soporte a mecanismos de seguridad
  • Enmascaramiento de datos

Principios SOA

  • Separación de elementos SOA: bus, repositorio y BPM
  • Interoperabilidad entre arquitecturas y plataformas
  • Capacidad de descubrimiento de servicios
  • Servicios autónomos
  • Granularidad adecuada
  • Composición de servicios
  • Servicios sin estado
  • Basado en un contrato y esquema público estándar

Grano fino y falta de un lenguaje de datos común

Una de las buenas prácticas identificadas en la integración entre aplicaciones y servicios es definir a priori un lenguaje común. ¿Qué quiere decir esto? Que antes de hacer la propia comunicación entre dos aplicaciones, dos sistemas o incluso dos empresas, lo primero que hay que hacer es definir un lenguaje común entre las mismas.

Esto puede traducirse en simplemente ponerse de acuerdo con qué entidades de negocio se intercambian y cuáles son sus campos: Por ejemplo, la entidad Cliente con los campos nombre, apellidos y documento de identificación.

Esto nos da dos ventajas claras:

  1. Toda la empresa “habla” el mismo lenguaje. Esto nos ahorra problemas de integración y también trabajo ya que se minimizan totalmente las transformaciones de los datos necesarias para pasar de una aplicación a otra ya que las dos hablan el mismo lenguaje.
  2. Se construye los servicios u operaciones de intercambio de datos con el grano justo. Normalmente, estas se suelen construir con un grano demasiado fino. Esto quiere decir que la “unidad” de intercambio de datos es de muy bajo nivel (con poca información). Tan es así, que en muchas ocasiones, para realizar una comunicación entre dos aplicaciones se necesitan varias invocaciones para enviar todos los datos.
    Con un grano grueso, que responda exactamente a las necesidades de negocio, es posible realizar el trabajo minimizando las invocaciones entre aplicaciones. Estas invocaciones se hacen a través de la red por lo que se produce un gran overhead en el transporte. Por lo tanto, es necesario minimizar este trasiego de información teniendo un grano grueso en las comunicaciones.    

Seguiremos en otros post con esto de las recomendaciones… creo que es una línea muy interesante y pretendo que también muy práctica…