Enterprise Architect de Sparx Systems es una herramienta que permite fácilmente crear un inventario de elementos que representen objetos del mundo real, bien sean estos componentes de una aplicación, componentes de una infraestructura tecnológica, procesos de una compañía, actores, etc.
Adicionalmente, Enterprise Architect permite crear relaciones entre dichos objetos para luego poder crear diagramas, los cuales representan diferentes puntos de vista de la interrelación que tienen los objetos. Estos diagramas pueden ser diagramas de componentes, donde se representan las diferentes piezas de software que componen una solución; diagramas de infraestructura, donde se representan las diferentes piezas de infraestructura tecnológica y sus dependencias; diagramas de secuencia, donde se muestra de manera temporal las interacciones entre diferentes componentes y la forma en que envían o reciben información. En general, cualquier diagrama de UML o del dominio de Archimate o de TOGAF.
Todo lo anterior suena muy bien, pero se debe partir siempre de una estructura bien documentada de elementos (nodos, componentes, aplicaciones, dispositivos, etc) con la que no siempre se cuenta en Enterprise Architect. Es decir, es necesario que nuestro repositorio de EA cuente con la lista previamente cargada de los componentes que queremos utilizar en nuestros diagramas.
Para ello hay básicamente las siguientes estrategias:
- Ir creando elementos por demanda: es la opción más usada, en la que a medida que creas diagramas, vas creando elementos nuevos en tu diagrama según los necesites. Aunque es la estrategia en la que avanzas más rápido al principio, con el paso del tiempo tu repositorio se llena de elementos repetidos, en diferentes carpetas de diferentes diagramas y vas perdiendo el objetivo de tener un repositorio de elementos únicos que sean reutilizados en varios diagramas y el concepto de trazabilidad se desvanece totalmente.
- Crear manualmente los elementos antes de diagramar: con esta opción, creas una estructura de paquetes y vas agregando uno a uno los objetos de acuerdo a su naturaleza y a la organización que les quieras dar para que sean fáciles de ubicar por el resto del equipo de trabajo. Es una opción ideal pensando en la mantenibilidad del modelo, pero hacerlo de manera manual va a ser un poco tedioso debido a la cantidad de clicks que requiere Enterprise Architect en este proceso. De esta forma será más fácil reutilizar los objetos y garantizar la trazabilidad de los mismos a lo largo del tiempo.
- Cargar los elementos por CSV: Si cuentas con información tabulada y organizada en excel, por ejemplo, listas de servidores con IP, sistema operativo, espacio en disco, etc; o listas de componentes de aplicación; listas de requerimientos o historias de usuario; lo más fácil es hacer cargas masivas de esta información convirtiendo los archivos de excel a formato CSV y creando especificaciones de intercambio (CSV Exchange specification) en Enterprise Architect para facilitar la carga de los objetos. Lo que manualmente podría tardar horas, ahora será cuestión de esperar un par de minutos.
- Utilizar un mecanismo automático de sincronización: normalmente, si tienes una fuente externa de información (como un archivo de Excel), desde el momento en que lo importas a Enterprise Architect vas a tener dos fuentes oficiales de información: el archivo de Excel y ahora los elementos del modelo que representan cada una de las filas del Excel. Cuando la información de la fuente original (Excel) cambia, se requeriría una actualización de la información en el repositorio de EA, que normalmente suele ser tediosa y requiere varios pasos que deben ejecutarse en el orden perfecto para garantizar que no se pierda ninguna información previa en nuestros datos. Para resolver este problema existen herramientas de sincronización donde se define la fuente de datos externa pero también la periodicidad con la que queremos que dicha información se sincronice, sin afectar las ubicaciones y estructura de paquetes del repositorio. Esta opción es la más óptima y aunque tiene un pequeño esfuerzo de configuración inicial, es en la que se delega por completo la tarea de tener los repositorios sincronizados con fuentes externas a piezas de software automatizadas.
Actualmente existen para Enterprise Architect una serie de productos de sincronización de fuentes externas, de la línea "ArqueHUB Integration" cuyas principales características incluyen:
- Sincronizan elementos de Enterprise Architect con fuentes externas de información, donde cada uno de los ítems retornados por la fuente externa corresponde a un único objeto de Enterprise Architect que tiene sincronizadas algunas de sus propiedades básicas (nombre, notas, estado, alias, etc) y tag values específicos. Todo esto parametrizable según la necesidad.
- La hora en la que se ejecuta la sincronización es parametrizable, al igual que la frecuencia de sincronización. Por defecto los objetos se sincronizan a las 7pm cada 24h, pero pueden ser modificadas las horas y también la regularidad, de acuerdo a condiciones específicas del entorno.
- Los objetos pueden ser organizados automáticamente en paquetes dentro del modelo, de acuerdo a alguna de sus propiedades. Por ejemplo, si los objetos sincronizados son servidores y uno de sus tag values contiene el sistema operativo del servidor, pueden crearse paquetes por sistema operativo donde todos los servidores del mismo sistema operativo quedarán agrupados dentro del mismo paquete. Incluso se pueden crear varios niveles de paquetes basado en diferentes propiedades del elemento.
- La parametrización de un objeto sobre una fuente externa se hace de manera visual en un diagrama dispuesto para tal fin. Es relativamente sencilla de hacer y se configura una sola vez. Su ejecución se realiza en los tiempos indicados, del lado del servidor, sin intervención manual para cada ejecución, como cuando se usan otras estrategias.
Ahora bien, dependiendo de cuál sea la fuente externa de información, la suite de ArqueHUB provee diferentes módulos que permiten conectar a la fuente externa para extraer la información y mantenerla sincronizada. Actualmente los módulos ArqueHUB Integration existentes son:
- Database Integration: Permite conectarse a una base de datos externa, ejecutar una consulta SQL y por cada fila que retorne la consulta, se creará un elemento en Enterprise Architect que se mantendrá sincronizado en futuros ciclos de sincronización.
- Excel Integration: Permite abrir un archivo de Excel (XLS, XLSC o CSV), en una hoja específica y por cada fila del excel, se creará un elemento en Enterprise Architect que se mantendrá sincronizado en futuros ciclos de sincronización.
- Azure Cloud Integration: Permite conectarse a un ambiente de Azure Cloud y extraer el catálogo de recursos de todos los tipos, creando para cada uno de ellos un elemento de Enterprise Architect que se mantendrá sincronizado en futuros ciclos de sincronización.
- AWS Integration: Permite conectarse a un ambiente de Amazon Web Services y extraer el catálogo de recursos de todos los tipos, creando para cada uno de ellos un elemento de Enterprise Architect que se mantendrá sincronizado en futuros ciclos de sincronización.
- Microfocus UCMDB Integration: Permite conectarse a los reportes de Microfocus UCMDB y extraer el catálogo de CIs y relaciones, creando para cada CI un elemento de Enterprise Architect que se mantendrá sincronizado en futuros ciclos de sincronización, así como las relaciones que existan entre los diferentes CI.
- Microsoft Graph Integration: Permite conectarse a la API de Microsoft Graph para extraer la información, como registros de aplicación y roles los cuales serán representados por elementos de Enterprise Architect que se mantendrán sincronizados en cada ciclo de sincronización.