SUBSISTEMA DE ADMINISTRACIÓN INFORMÁTICA PARA SISTEMAS
DE APLICACIONES DISTRIBUIDAS
Wilson Alba Cal
Rasiel Aponcio Borges
Adilén Sánchez Ramírez
Universidad de las Ciencias Informáticas, Ciudad de La Habana, Cuba Resumen
El auge del desarrollo de aplicaciones de software en el mundo, junto a la evolución de la tecnología y las redes de comunicación para el intercambio de información, han traído como consecuencia el surgimiento de nuevos escenarios para la implementación de aplicaciones distribuidas. El presente artículo hace una exploración de los principales conceptos involucrados en el desarrollo de aplicaciones distribuidas. Se describe una alternativa de software genérica para la gestión de las configuraciones necesarias para garantizar la seguridad y las comunicaciones necesarias en sistemas de este tipo; y su aplicación práctica a través de la implementación de un Subsistema de Administración Informática como parte de un sistema real de aplicaciones distribuidas actualmente en explotación.
Palabras clave: Administración informática,aplicaciones distribuidas, configuración.
Abstract
The rise of software application development in the world, with the evolution of technology and communication networks for information exchange, has resulted in the emergence of new scenarios for deploying distributed applications. We describe a generic alternative for managing software configurations to ensure the necessary security and communications in such systems and their practical application through the implementation of an Informatics Management Subsystem as part of a real distributed applications system, currently in operation.
1. Introducción
El auge del desarrollo de aplicaciones de software en el mundo, junto a la evolución de la tecnología y las redes de comunicación para el intercambio de información, han traído como consecuencia el surgimiento de nuevos escenarios para la implementación de aplicaciones distribuidas.
Las aplicaciones distribuidas son aquellas que poseen distintos componentes, los cuales se ejecutan en entornos separados pero normalmente interrelacionados a través de una red.
Existen varios aspectos que son imprescindibles considerar para el desarrollo de sistemas de aplicaciones distribuidas: las comunicaciones, importantes para el intercambio constante de información entre aplicaciones; y la seguridad, vital para la integridad de los datos y control de acceso a las aplicaciones.
La seguridad de un sistema puede definirse de varias formas: roles asignados a usuarios, puntos de acceso permitidos, permisos de ejecución de las aplicaciones y la validación local del software. Las especificidades de cada una varían con cada sistema y deberán quedar registradas como configuraciones del mismo.
Para cualquier sistema de aplicaciones de escritorio distribuidas estas configuraciones deben establecerse y probablemente ser sometidas a cambios en el futuro en dependencia de las necesidades del mismo.
1.1.Aplicaciones distribuidas
Las aplicaciones distribuidas son aquellas que poseen distintos componentes, los cuales se ejecutan en entornos separados pero normalmente interrelacionados a través de una red. Pueden tener varios niveles en cuanto a la distribución de sus componentes, siendo el más común el de dos niveles: cliente-servidor.
El modelo cliente-servidor posee varios componentes importantes:
- Servidor: programa que se ejecuta en una computadora conectada a la red en espera de las peticiones que realizarán los clientes.
- Cliente: programa que ejecuta el usuario de la aplicación y hace peticiones al servidor a través de la red.
- Protocolo de comunicación: define el tipo de mensajes que se intercambian entre el cliente y el servidor.
- Formato de los mensajes: define una estructura común para los mensajes que se intercambian entre el cliente y el servidor.
implementada como un sistema distribuido en caso de que el escenario donde se vaya a emplear lo requiera.
1.2.Seguridad
La seguridad informática, como aspecto esencial en todo sistema, se evidencia en los entornos de aplicaciones distribuidas de manera particular, siempre tributando a la protección de la información, ya sean programas o datos, para que sea utilizada solamente de la forma en que fue concebido su acceso y/o modificación.
A pesar de que un sistema informático completamente seguro es un concepto utópico, se dedican grandes esfuerzos y recursos a garantizar, en la medida de lo posible, la integridad, confidencialidad, disponibilidad y no repudio de la información, constituyendo estas cuatro las características fundamentales que debe tener un sistema seguro.
Para mitigar al máximo los riesgos a los que está expuesta la información de un sistema informático se deben tomar varias medidas como son:
- Restringir el acceso del personal no autorizado a los programas y archivos.
- Controlar que las modificaciones de los programas y archivos sean hechas solamente por las personas autorizadas.
- Asegurar que la información trasmitida llegue íntegra y únicamente al destinatario designado.
- Estructurar a los usuarios según una jerarquía informática, con diferentes niveles de permisos.
- Actualizar constantemente las contraseñas de acceso al sistema informático.
Algunas de las alternativas concretas que permiten implementar estas medidas de seguridad sobre sistemas de aplicaciones de escritorio distribuidas son:
- Crear usuarios del sistema con permisos jerárquicos basados en roles.
- Establecer los puntos o estaciones de trabajo desde los que se permite el acceso a las aplicaciones y la información del sistema.
- Definir permisos de ejecución para aplicaciones específicas según el puesto de trabajo. - Validar la aplicación en cada puesto de trabajo mediante un registro en el ordenador local.
1.3.Comunicaciones
La comunicación entre aplicaciones es una característica importante de los sistemas de aplicaciones distribuidas. Estas se relacionan entre sí por el envío de mensajes a través de la red a la que se encuentran conectadas. La forma en que se establecen estas comunicaciones varía en dependencia de varios factores como:
- La relación funcional que se establece entre ambos extremos de la comunicación. - La arquitectura de red establecida según la topología de la red implementada.
1.4.Administración
Todo sistema de aplicaciones flexible, debe permitir que sus configuraciones puedan ser modificadas, ya sean de seguridad, comunicaciones u otras. Por tanto, es necesaria una aplicación de Administración Informática que permita gestionar las configuraciones de seguridad y comunicaciones del sistema de aplicaciones distribuidas.
2. Contenido
2.1.Subsistema de Administración Informática
Los subsistemas de administración informática se encargan de gestionar las configuraciones del sistema. Son responsables de la gestión de usuarios que acceden al sistema, puertos por donde se comunican las aplicaciones y puntos donde se ejecutan las mismas. Una aplicación de administración informática configura parámetros generales en el sistema y maneja la activación de las aplicaciones en los diferentes puntos. A continuación se muestra un modelo de domino del Subsistema de Administración Informática.
Fig. 1. Modelo de Domino.
Administrador: Persona encargada de realizar todas las acciones del Subsistema Administración Informática.
Usuario: Persona que interactúa con las aplicaciones informáticas. Su nivel de acceso al sistema depende del rol que le sea asignado.
Punto: Estación de trabajo (computadora), en la que se ejecuta una aplicación.
Puerto: Interfaz a nivel de software por la cual diferentes tipos de datos pueden ser enviados y recibidos, o sea, permite la transmisión de datos entre las diferentes computadoras donde se ejecutan aplicaciones.
Parámetro general: Conjunto de parámetros de funcionamiento del sistema. Definen las reglas para un correcto funcionamiento.
Activación: Validar localmente la copia de la aplicación, para verificar su legitimidad. En este proceso se verifica el permiso de ejecución de una aplicación en un punto de trabajo determinado.
2.2.Aplicación práctica
índices de violencia del país, la creación del Sistema de Gestión de Emergencias de Seguridad Ciudadana 171 (SIGESC-171), como un sistema automatizado de gestión de emergencias que sería el soporte informático de los centros de gestión de emergencias del país. Este estaba compuesto por varios módulos desplegados de forma distribuida que debían interactuar entre ellos. Por este motivo se procedió a la implementación de un Subsistema de Administración Informática acorde a las necesidades del sistema.
2.3.Tecnologías utilizadas
La implementación del Subsistema de Administración Informática se puede llevar a cabo en casi cualquier tecnología, para materializar la solución en el SIGESC-171 se utilizó Rational Unified Process RUP (Kruchten, 2000) como la metodología de desarrollo de software que mejor se adaptó a las necesidades del sistema.
Además se utilizó Visual Paradigm para UML como herramienta CASE (Fisher, 1988) porque es sencillo e intuitivo. Es una herramienta profesional, multiplataforma que posee una gran capacidad de generación de código e ingeniería inversa en gran variedad de lenguajes de programación, se integra fácilmente con distintos IDE, posee facilidades para especificaciones de casos de uso sin necesidad de usar ningún otro editor externo y genera documentación y reportes en formatos universales como PDF y JPEG.
El Lenguaje Unificado de Modelado UML 2.1 fue utilizado como lenguaje de modelado visual que soporta el ciclo de vida completo del desarrollo de software.
La solución se implementó usando Windows como sistema operativo sobre el cual se ejecutará el subsistema y .NET Framework como plataforma de desarrollo, siendo esta la que mejor utiliza las posibilidades y recursos de este sistema operativo. “El Framework .NET es un abarcador y consistente modelo de programación para la construcción de aplicaciones que poseen una experiencia de usuario visualmente impresionante, comunicación segura y sin fallos, y la capacidad para modelar un rango amplio de procesos de negocio.” (Microsoft, 2009). Se utilizó el lenguaje de programación C#, líder dentro de esta plataforma y que aprovecha a fondo las ventajas de la programación orientada a objetos. C# es un lenguaje de programación de uso general sencillo, con seguridad de tipos, que “ofrece a los desarrolladores herramientas eficaces centradas en código y compatibilidad de lenguajes para crear aplicaciones web y cliente completas y conectadas en .NET Framework.” (Microsoft, 2009).
2.4.Descripción de la solución
diferentes subsistemas en un sistema distribuido se comunican a través de puertos específicos, los cuáles son configurados para cada aplicación. El subsistema de Administración Informática se encarga de configurar las aplicaciones en los puntos, esta funcionalidad está estrechamente relacionada con la seguridad del sistema debido a que se establecen los permisos de ejecución a una aplicación en un determinado punto. La activación inicialmente verifica el permiso de ejecución de una aplicación en un punto de trabajo determinado. Luego se registran localmente un conjunto de datos identificativos del puesto de trabajo que van a impedir que se puedan ejecutar copias de la aplicación hechas ilegalmente desde otros puntos de acceso.
Después de una fase de captura de requisitos hecha en varios centros de emergencias de Venezuela fueron analizadas las características de seguridad y comunicaciones que debía tener el sistema. Teniendo en cuenta que este debía cumplir con una alta seguridad y control de acceso a la información manipulada, un intercambio grande de datos entre las aplicaciones y gran flexibilidad en cuanto a la configuración del sistema; fueron identificados un conjunto de requisitos funcionales Tabla 1, a partir de los cuales se confeccionaron los correspondientes casos de uso. Estos últimos se representaron en diagramas y en conjunto con sus descripciones en detalles conformaron el modelo de casos de uso. Para lograr una mayor organización, estos fueron agrupados por paquetes según sus funcionalidades.
Tabla 1. Requisitos funcionales.
Requisitos Funcionales
Registrar Parámetros Generales del Sistema. Gestionar Usuarios.
Modificar Contraseña. Gestionar Puntos.
Configurar Aplicación en Punto. Configurar Puertos. Activar Aplicación.
2.5.Diseño del Subsistema
Fig. 2. Diagrama de Paquetes de Clases del Diseño.
2.6.Arquitectura Base
La organización arquitectónica que se propone para la implementación del subsistema es basada en capas (Martin y otros, 2002) específicamente tres capas. Esto posibilita el desarrollo paralelo, la robustez de la aplicación, el mantenimiento y soporte, una mayor flexibilidad y alta escalabilidad. En el Subsistema de Administración Informática se identificaron las capas:
- Capa Interfaz: Está dividida en dos grupos de funcionalidades: “Interfaces de Usuario (UI)” y “Acciones”. Las “Interfaces de Usuario” presentan información a los usuarios y acepta entradas para usarlas en el sistema. Las “Acciones” encapsulan peticiones que se le hacen al negocio.
- Capa Negocio: Es el núcleo del módulo porque encapsula la lógica de implementación fundamental para la automatización de los procesos del negocio en cuestión.
- Capa Acceso a Datos: Encapsula la lógica de implementación necesaria para gestionar los datos utilizados en uno o varios procesos de negocio y abstraer así la forma en que los datos persisten o son obtenidos.
Fig. 3. Organización en Capas.
2.7.Acceso a Datos
La Capa de Acceso a Datos (CAD) permite gestionar los datos utilizados en los procesos de negocio y abstraerse de la forma en que estos persisten o son obtenidos. La CAD de un subsistema se encuentra ligada al gestor de bases de datos y framework de persistencia que se utilice. Actualmente se encuentra implementado el acceso a datos en dos frameworks de persistencias diferentes (NHibernate y iBATIS.NET), lo que posibilita que el subsistema pueda persistir los datos en gestores libres como PostgresSQL y propietarios como Oracle 10g. El diseño del subsistema posibilita cambiar de framework de persistencia afectando solamente la CAD, sin tener que modificar ninguna de las capas superiores, lo que amplía el espectro de gestores que soporta el subsistema. Además la implementación de la CAD en iBATIS.NET soporta más de diez gestores de base de datos relacionales.
3. Conclusiones
El Subsistema de Administración Informática diseñado se encarga de gestionar las configuraciones necesarias para garantizar la seguridad y las comunicaciones de cualquier sistema de aplicaciones de escritorio distribuidas, estableciendo los usuarios del sistema, los puntos de acceso y ejecución de las aplicaciones, los puertos de comunicación y otros parámetros generales.
Por su arquitectura en capas y flexible diseño de clases, su acceso a datos permite ser implementado sobre diferentes gestores de bases de datos y frameworks de persistencia, con afectaciones mínimas en el resto de los componentes que lo integran.
Referencias
Couloris, G., Dollimore, J. y Kindberg, T. Distributed systems, concepts and design (3rd edition). Harlow, England : Adison-Wesley, 2001.
Fisher, Alan S., Teknowledge Inc., Palo Alto, CA. CASE (Computer Aided Software Engineering): Using Software Development Tools. New York : John Wiley & Sons, Inc., 1988. Kruchten, Philippe. The Rational Unified Process: An Introduction, Second Edition, 2nd edition. s.l. : Addison-Wesley Longman Publishing Co., Inc., 2000.
Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, Randy Stafford. Patterns of Enterprise Application Architecture. s.l.: Addison Wesley, 2002.
Microsoft. What is Microsoft .NET Framework? Consultado: 2009. Disponible en: http://www.microsoft.com/NET/.
Microsoft. Visual C#. Consultado: 2009. Disponible en: http://msdn.microsoft.com/es-es/vcsharp/default.aspx.
Correspondencia Ing. Wilson Alba Cal Ing. Rasiel Aponcio Borges Ing. Adilén Sánchez Ramírez
Universidad de las Ciencias Informáticas, Carretera a San Antonio de los Baños, Km 2 ½, Rpto Torrens, Boyeros, Ciudad de La Habana, Cuba.
Código Postal: 10 800