archivo

Archivos diarios: febrero 26, 2010

Lo más cómodo es tender hacia el desarrollo de sistemas de información que sean islas, es decir, sistemas totalmente independientes y autosuficientes a nivel de información, que contienen en su modelo de datos todo aquello que necesitan para su funcionamiento. Es decir, en estos sistemas no se depende de ningún otro, por lo que no hay que estar pendiente de si varía el modelo de datos de otra aplicación, si deja de funcionar un determinado servicio o si hay que estudiar cómo encajar esta pieza junto con otras.

Pero claro, un modelo de sistemas de esas características tiene también importantes carencias, entre las que destaca la dificultad de mantener coherente información sobre un mismo concepto almacenada y gestionada en sistemas distintos, la dificultad de realizar consultas que afecten a más de un sistemas de información que gestionan un mismo concepto, la no reutilización tanto a nivel de modelo de datos como de código de soluciones que resuelven exáctamente la misma funcionalidad, etc…

En este artículo me voy a centrar en dos tipos de informaciones, la de terceros y la de usuarios, que son muy frecuentes en la mayor parte de sistemas de información y que también como sucede en muchos casos, se gestionan de manera independiente en los mismos.

Los terceros son como el nombre indica terceras personas físicas o jurídicas que están vinculadas a información que se gestiona en un determinado sistema de información. Si no existe un modelo único de terceros, conocer el estado de las actuaciones o la suma de la información que se tiene recopilado sobre uno concreto, implicará la consulta a multitud de sistemas, en ocasiones, un esfuerzo importante y todo ello sin que existan excesivas garantías para obtener dicha información, ya que lo mismo la información del tercero no es coherente entre sistemas y por tanto no se puede localizar alguna información (por ejemplo número de NIF o CIF referidos a un mismo tercero que no son iguales en alguno de los sistemas), bien falta algún atributo importante para identificarlo unívocamente, etc…

A lo anterior hay que sumar el esfuerzo de mantener y desarrollar modelos de datos y pantallas para gestionar dicha información, que además tendrá en la mayor parte de los casos relación con otra, como por ejemplo, información de las provincias y municipios, ya que será interesante en muchas ocasiones tener almacenada al dirección o direcciones de contacto de los terceros.

En mi organización, siendo conscientes de este problema se ha desarrollado un modelo único de terceros con el objetivo de obtener una visión global de los mismos, por lo que los nuevos sistemas que se están implementando hacen uso de ese módulo horizontal, que se va ampliando en función de información asociada a terceros que pueda ser de interés tenerla disponible de forma transversal.

Tardaremos bastante en conseguir que todos los terceros estén en un mismo sitio, ya que contamos con un gran número de sistemas de información que habría que migrar a este nuevo modelo y esto además de ser costoso, requiere su tiempo e incrustarlo dentro de la planificación y prioridades individuales de cada uno de ellos, no obstante, todo lo nuevo estamos intentando que siga este modelo y tarde o temprano empezaremos a notar buenos resultados a nivel general independientemente de que a nivel del proyecto se noten ya, al no tener que invertir esfuerzo en modelar e implementar la funcionalidad de gestión de terceros.

Con los usuarios pasa algo parecido y además provoca que si alguno de ellos tiene que trabajar con distintos sistemas de información, al final tenga que mantener una maraña de información de nombres de usuario y palabras de paso que atentará contra la seguridad (ya que en muchos casos se recurirá a anotarlos en algún medio físico) y que tendrá asociado un coste de gestión (reseteo de claves, recordatorio de nombres de usuario, etc…). Si la autenticación es con certificado digital se simplificará la necesidad de que el usuario requiera recordar tantos usuarios y claves, pero por detrás los sistemas, si no existe un modelo unificado de gestión de usuarios, tendrán que seguir gestionando los mismos, con el coste de gestión inherente a esta situación y con los costes de desarrollo que ha tenido modelarlo en cada sistema.

La solución para este caso es similar a la que se ha buscado para el caso de terceros, es decir, un módulo que puede ser común a todos los sistemas en los que se mantiene dicha información y que garantizará una gestión única de usuarios (independientemente de que los perfiles de acceso se mantengan en cada sistema) y una visión coherente de los mismos. Como en los terceros, los nuevos sistemas se están implementando haciendo uso de este módulo y traerá bastante tiempo tener la mayoría de los sistemas haciendo uso de él, pero también como en el caso anterior, tardará más o tardará menos, pero terminaremos beneficiándonos de la decisión de tener un modelo unificado de gestión de usuarios.