spinner

Empecemos por el principio: ¿qué es Open Archi? ¿qué hay detrás de Open Archi? ¿Y por qué quiero hablar de Open Archi? Pues ahí va: Open Archi es una filosofía diferente, incluyente y escalable con la que podemos diseñar mejor las arquitecturas empresariales, pensando más en un modelado semántico, que en un simple diagramado.

En general se trata de una iniciativa que me gustaría compartir, para dar a conocer en qué consiste y cuáles son sus ventajas. Antes de empezar, creo que será muy útil dejar claras dos ideas clave para explicar lo que es Open Archi: las redes sociales y las Architecture Model as a Service (AMaaS)

Idea 1: Red Social <-> Software

Las redes sociales no son una tecnología en sí ni tampoco son un conjunto de ellas. Son un concepto, un paradigma. Las apoyamos con la tecnología para hacerlas efectivas y accesibles, pero son las personas quienes la conforman. Es decir, dichas redes existen, se crean y se mantienen por sí mismas (o por las personas que las conforman) y más bien nosotros les dotamos de tecnología.

¿Qué hemos aprendido de las redes sociales, en términos de la incorporación de su filosofía a nuestros desarrollos y soluciones? Probablemente no mucho. Es decir, típicamente hacemos software para una red social, pero no solemos introducir una red social en un software. Tengamos esto en mente, porque vamos a desarrollar el segundo concepto.

Estructura de una red social. Fuente: Wikipedia

Idea 2: AMaaS (Architecture Model as a Service)

Como sabemos, al momento de diseñar soluciones existen infinidad de opciones, con independencia de la tecnología que elijamos. Así, hay modelos, meta-modelos, metodologías, procedimientos, software especializados, etc. Pero… ¿Qué hay del paradigma que deberíamos considerar?. ¿Qué hay de la integración de nuestros procesos creativos con los del resto de involucrados? Y, más allá… ¿Qué hay de la colaboración para el diseño de estas soluciones?.

En efecto, ¡las redes sociales de construcción de modelos de arquitectura ya existen! Han existido siempre. Sin embargo, en mi humilde opinión, no están tan compenetradas entre sí como deberían. Debido a que dichas redes operan de manera inconexa y asincrónica no son muy hábiles al ofrecer modelos de soluciones escalables, veloces, robustos y blindados ante la vista de todos los participantes y “tomadores” de decisiones al respecto.

Para facilitar tal interacción es donde interviene el concepto de AMaaS (Architecture Model as a Service) o Modelo de Arquitectura como Servicio. Al servicio, sí, ¡pero de todos!: todos participan, todos la construyen y todos la mantienen.

Ya con esto claro…¿Qué es entonces Open-Archi?

Una vez ya sabemos esto, vamos al tema: planteo Open Archi como una propuesta de red social para la gestión de la arquitectura empresarial, que utiliza el concepto AMaaS (Modelo de Arquitectura como Servicio). Este concepto, tal como lo entiendo, incluye:

  • Base de conocimientos de los componentes arquitectónicos de la empresa
  • Integración filosófica con los principales conceptos  de modelado de arquitectura empresarial (Marco de Arquitectura basado en TOGAF y C4Model): arquitectura empresarial, de aplicaciones, de datos y tecnológica.
  • Capacidades totalmente APIficadas
  • Administración e interrelación de componentes a través de DevOps
  • Automatización de la comunicación sobre su evolución
  • Facilidad de diseño de modelos arquitectónicos
  • Construcción colaborativa
  • Orientado a las características de las piezas de arquitectura y su interrelación directa con el resto.
  • Automatización de la aplicación de reglas de negocio relacionadas con la arquitectura empresarial.

Open Archi: Cuáles son sus básicos

Las características de Open Archi son, principalmente:

1. Open CRUD. En una red social de arquitectura empresarial donde toda la comunidad es quien la mantiene. Es decir, cada aspecto de su taxonomía proviene de la comunidad (estilo WIKI), no de un grupo.

2. Usable por todos. En la construcción de software deben participar muchas personas de muchas áreas (funcional, de negocios, comercial, administrativo), no sólo técnica.

3. Omnisciencia y transversalidad. Cualquier persona debería poder “editar” o “crear” contenido. Cualquier debería poder deshacer o alterar esta edición. Con un uso continuo, la información “real” posible será revelada, pero no solo desde el punto de vista tecnológico.

4. Omnipresencia. Open Archi está presente en todo momento. La información se alimenta automática o manualmente, desde hacia open archi de forma agnóstica a un proyecto o escenario particular.

5. Facilidad de integración. Expone todas su funcionalidades a través de una capa de API para que cualquiera pueda administrar la base de conocimiento de los componentes de la arquitectura empresarial o integrarla en sus pipelines (DevOps).

6. IDE. Herramienta que integrará todas las funciones requeridas para operar con las arquitecturas empresariales, tanto desde el punto de vista gráfico como de intercambio de información y modificación del comportamiento de los modelos.

7. Diagramado. Se podrán hacer diagramas de todo tipo: de clases, de entidad relación, de flujos, de procesos, de mapas conceptuales (fishbone), etc.

8. Identidad. Cada componente es único. No pueden repetirse dos elementos del mismo tipo con el mismo nombre.

9. Uniformidad. Cada elemento de un diagrama podrá ser únicamente de uno de 4 tipos posibles: una capa, un sistema, un contenedor o un componente, todo en una relación jerárquica.

Open Archi: uso y tecnologías

¿Qué uso pueden tener estas arquitecturas y qué herramientas se emplean para desarrollarlas? Vamos punto por punto.

1. Hay un IDE que concentra todas las funcionalidades: editor de diagramas, de prototipos, APIs o motor de reglas de arquitectura.

IDE en Open Archi. Fuente: Alejandro Manuel Méndez

 

2. Es posible consumir una capa de APIs, (implementada en Java Spark Framework, y documentada en Swagger 2.0), que expone toda funcionalidad de manipulación del modelo de arquitectura. Cualquier tecnología externa podrá consultar o incluso modificar (bajo un esquema de perfiles y permisos apropiado) los modelos. Las APIs permiten el uso de RSQL, lo cual permiten hacer consultas complejas sobre todos los modelos y sus interrelaciones.

3. A través del editor de diagramas, consumiendo dichas API, se podrá obtener la representación de un modelo de arquitectura (en formato JSON), el cual construirá dinámicamente un diagrama asociado al mismo. El editor está construido usando GoJs.

Representación de un modelo de open archi. Fuente: Alejandro Manuel Méndez

 

4. Antes de guardar los modelos se ejecutará un conjunto de reglas de arquitectura, basado en JBoss Drools, que condicionan la incorporación, modificación o eliminación de elementos o relaciones entre ellos.

5. El modelo se almacena físicamente como datos en una base de datos relacional, usando PostgreSQL, accesible a través de modelo de clases Java vía Hibernate. Para quienes requieran prefieran la interacción vía SQL, también les será posible manipular la base de conocimiento de la arquitectura empresarial, con queries.

6. Bien sea vía APIs o accediendo directamente a la base de datos, será posible detectar, mediante bots de inteligencia artificial, patrones de uso, de diseño, preferencias de modelado y una cantidad de aspectos propios de la evolución arquitectónica, debido a que conviven de manera integrada aspectos técnicos, funcionales, comerciales, etc.

7. Finalmente, como toda red social, cada diagrama, componente, elemento, relación o información suscrita se podrá valorar, votar o comentar. En definitiva, podrá relacionarse como una red social, a través del estándar Open Social y la implementación de Apache Rave.

¿Cómo colaborar?

¿A que después de saber más sobre Open Archi te ha picado el gusanillo y quieres colaborar? Por supuesto, toda la tecnología subyacente  es open source, por lo que, desde luego, ¡todo el que quiera puede colaborar! Les dejo una aproximación de los primeros pasos que he dado en ese sentido, y las primeras características, que ya están disponibles. Encantado de contar con sus aportaciones!

Y recuerda… ¡Piensa en grande, pero… piensa en todos!

Imagen de portada: pexels.com

Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de BBVA Next Technologies.

Do you want to know what else we do in BBVA Next Technologies?

We use our own and third-party cookies to improve our services, offer you a pleasant experience and show users advertising related to your preferences by analyzing your browsing habits. If you continue browsing this website, we consider that you accept its use. You can change the configuration or obtain more information by accessing our cookies policy here.