República de Cuba
Universidad de las Ciencias Informáticas Facultad 2
Título: Plataforma de Gestión de los Servicios Telemáticos en GNU\Linux.
Módulo DNS.
Trabajo de Diploma para optar por el título de Ingeniero en Ciencias Informáticas
Autor: Jorge Luis Gualdarrama Reyes
Tutor: Ing. Ramón Alexander Anglada Martínez
Junio del 2009.
“Realmente, no me estoy preocupando de destruir Microsoft. Eso será solamente un efecto colateral”
Linus Torvalds
Dedicatoria
I
Dedicatoria
Agradecimientos
II
Agradecimientos
Resumen
III
Resumen.
La industria del software ha sido sin dudas la fuente de riquezas para las grandes compañías que desde su surgimiento han optado por la comercialización del software de forma privativa. Pero esta situación ha ido cambiando en las últimas 2 décadas, impulsado en gran medida por el uso de programas que no se atan a este tipo de restricciones impuestas por los fabricantes de estos productos.
La mayoría de los sistemas informáticos usados por las empresas cubanas, las instituciones académicas y usuarios en general están sujetos a licencias propietarias, es por ello que surgió la necesidad de buscar una alternativa para en un futuro cercano disminuir esta total dependencia. En este sentido el país ha optado por la utilización de software libre, una de las vías que es fiable económicamente para países subdesarrollados. Para lograr este propósito el primer paso será migrar la infraestructura de red del país que en su mayoría usa software propietario. En este sentido se presenta un problema mayor, el personal encargado de administrar estas redes no esta lo suficientemente capacitado para migrar los servicios que se brindan a un sistema operativo GNU\Linux.
El fundamento de este trabajo surge precisamente, como una solución a la problemática antes mencionada y se pretende resolver desarrollando una aplicación de escritorio que gestione de manera cómoda e intuitiva uno de los servicios telemáticos más usados en una red. Esta aplicación será capaz de facilitar la configuración y administración del servicio de nombre de dominio (DNS) al administrador de red, evitando el engorroso proceso al cual actualmente se tienen que enfrentar. Se adaptará fácilmente a los escenarios más variados que puedan encontrarse en un determinado tipo de red y tendrá una interfaz gráfica que le permitirá competir con los sistemas de su tipo más desarrollados.
Índice
IV
Índice
Resumen. ... III
Introducción. ... 1
Capítulo 1: Fundamentación Teórica. ... 4
1.1 Introducción. ... 4
1.2 Servicios. ... 4
1.3 Servicios Telemáticos. ... 4
1.4 Soluciones existentes en el Mundo. ... 5
1.4.1 En sistemas operativos Windows. ... 5
1.4.2 En sistemas operativos GNU\Linux. ... 8
SuSE Linux Enterprise Server. ... 8
Red Hat Enterprise Linux 5 Server ... 9
Webmin ... 10
1.5. Metodologías y Herramientas Utilizadas. ... 10
1.5.1. Proceso Unificado de Desarrollo de Software (RUP) ... 11
1.5.2. Lenguaje de Modelado Unificado (UML) ... 13
1.5.3. Notación para el Modelado del Negocio (IDEF0) ... 13
1.5.4. Herramienta de Modelado ... 14
1.5.5. Lenguaje de Programación (Python)... 15
1.5.6. Entorno de Desarrollo Integrado (Eclipse). ... 16
1.5.7. Interfaces Gráficas. ... 16
1.6 Conclusiones. ... 19
Capítulo 2: Características del Sistema. ... 20
2.1. Introducción. ... 20
2.2. Objeto de Estudio. ... 20
2.2.1. Definición del Problema. ... 20
2.2.2. Objeto de Automatización. ... 20
2.2.3. Información que se maneja... 21
2.3. Propuesta del sistema. ... 21
2.4. Modelo del Negocio. ... 21
2.4.1 Descripción detallada de los procesos de negocio. ... 22
2.5 Especificación de los requisitos de software... 24
2.5.1 Requerimientos funcionales. ... 24
2.6 Requisitos no funcionales. ... 25
2.7 Modelo del Sistema. ... 27
2.7.1. Actores del Sistema. ... 27
2.7.2 Diagramas de Casos de Usos del Sistema. ... 27
2.7.3 Descripción de Casos de Uso del Sistema. ... 27
2.8 Conclusiones. ... 47
Capítulo 3: Análisis y Diseño. ... 48
3.1. Introducción. ... 48
3.2. Modelo de Análisis. ... 48
3.2.1. Clases del Análisis. ... 48
3.3. Modelo de Diseño. ... 53
3.3.1. Diagramas de Clases del Diseño. ... 55
3.4 Conclusiones. ... 59
Índice
V
Capítulo 4: Implementación del Sistema y Prueba. ... 60
4.1. Introducción. ... 60
4.2 Modelo de Despliegue. ... 60
4.3 Diagrama de Componentes. ... 60
4.4 Modelo de Prueba. ... 64
4.4 Conclusiones. ... 71
Capítulo 5: Estudio de Factibilidad. ... 72
5.1. Introducción. ... 72
5.2. Planificación... 72
5.2.1 Cálculo de Puntos de Casos de Uso sin ajustar. ... 72
5.2.2. Cálculo de Puntos de Casos de Uso ajustados. ... 74
5.2.3 Calcular esfuerzo de FT Implementación. ... 76
5.3 Conclusiones. ... 78
RECOMENDACIONES ... 80
Bibliografía ... 81
Anexos ... 83
Anexo 1: Diagramas de Interacción. ... 83
Introducción
1
Introducción.
En un inicio el software se distribuía junto con los pocos computadores que existían en el mundo, y tanto los clientes como los desarrolladores de estas se encargaban de arreglar errores y agregar funcionalidades necesarias. Esto no se compraba ni se vendía, simplemente se entregaba, pasando al dominio público, y el verdadero negocio estaba en los costosos ordenadores, era solo algo necesario para hacerlos funcionar y así darles un valor útil.
Ya a principios de la década del 70, se dejó de lado la práctica de entregar el código fuente cuando se solicitaba, o bien se exigía la firma de un acuerdo de no divulgación. Las grandes empresas decidieron convertir los programas informáticos en un producto comercial y prohibir su libre copia y modificación.
Actualmente, una buena parte del producto informático que se usa diariamente en muchos lugares es privativo: este no se compra, solamente se licencia el derecho de uso bajo ciertas condiciones y los costos de patentes dependen de variables como:
La cantidad de ordenadores en los cuales se instala el programa.
La cantidad de clientes que acceden a un servidor.
La capacidad de cómputo de cada computador en que se instala el producto.
La cantidad de usuarios de cada máquina.
La duración de validez de la licencia.
Muchos de los programadores de todo el mundo se unieron en un esfuerzo cooperativo para en la década del 80 revertir esta situación, sin dudas el que más se destacó en este sentido fue Richard Stallman que en 1984 crea el proyecto GNU, el cual pretendía crear un sistema operativo libre para todos; En 1985 Stallman crea la Free Software Fundation (FSF o Fundación para el Software Libre), para proveer soporte legales, logísticos y financieros al proyecto GNU. Para asegurar que el software GNU permaneciera libre, el proyecto debía ser liberado bajo una licencia diseñada para garantizar esos derechos al tiempo que evitase restricciones posteriores de los mismos, esto se conoció como
“copyleft” y esta contenida en la Licencia General Pública de GNU (GPL).
Muchas personas todavía en el mundo piensan que el software libre es sinónimo de gratuito, lo cual es totalmente erróneo porque para que este sea libre solo debe cumplir con las siguientes libertades:
ejecutar el programa sea cual sea nuestro propósito, estudiar su funcionamiento y adaptarlo a las necesidades propias, redistribuir copias y ayudar al resto, mejorarlo y luego publicarlo para el bien de los demás.
Puesto que el software libre permite el libre uso, modificación y redistribución, es una alternativa para los países del tercer mundo para los cuales el costo del software no libre es a veces prohibido.
Introducción
2
También es sencillo modificarlo localmente, lo que permite que sean posibles los esfuerzos de traducción a idiomas que no son necesariamente rentables comercialmente.Sin duda alguna, el uso de programas libres es sustentable en Cuba a partir de las ventajas que tiene con respecto a los de tipos propietarios. Por esto, su aplicación como plataforma informática de trabajo adquiere una relevante significación que puede reflejarse en el ámbito político como una vía de solución a países subdesarrollados al no tener que pagar las costosas patentes impuestas por los propietarios, y su desarrollo de forma colectiva y cooperativa fomenta su carácter público y el beneficio de toda la comunidad. En el aspecto económico su utilización no implica gastos considerables porque la mayoría de sus distribuciones y programas asociados se pueden descargar gratuitamente de internet, y no necesitan un gran soporte de hardware por lo que garantiza su explotación con un mínimo de recursos. (1)
Dentro de la estrategia de migración por la cual Cuba ha optado, hay algunas instituciones que impulsan este desarrollo tecnológico, entre ellas están el Ministerio de la Informática y las Comunicaciones (MIC), dentro de esta la Oficina para la Seguridad de la Redes Informáticas (OSRI) y la Universidad de las Ciencias Informáticas (UCI). En este proceso se han encontrado trabas, una de ellas ha surgido en la migración de los servicios telemáticos en una red, que actualmente el montaje se hace a través de terminales o consolas que carecen de una interfaz gráfica o de aplicaciones que no permiten brindar todas las funcionalidades que se desean. Otro de los problemas más comunes es la poca preparación del personal informático que poseen en temas como la administración de redes en sistemas operativos GNU\Linux.
Ante esta situación se plantea el siguiente problema científico: ¿Cómo mejorar la gestión del servicio de DNS en sistemas operativos GNU\Linux? En vistas a resolver el problema planteado, el objeto de estudio de la siguiente investigación es: Procesos que garantizan la administración de los servicios telemáticos. Donde se define como campo de acción: Procesos que garantizan la administración del servicio de DNS.
Planteándose como objetivo general: Desarrollar una aplicación de escritorio, que permita administrar el Servicio de Nombres de Dominio (DNS) en sistemas operativos GNU\Linux.
Para dar cumplimiento al objetivo de la investigación, se llevaron a cabo las siguientes tareas:
Caracterizar el proceso actual de la prestación de estos servicios telemáticos.
Estudio de las metodologías y herramientas informáticas que existen para utilizar la mejor propuesta en la construcción del software.
Describir las funcionalidades que va a tener el producto final.
Elaborar un mecanismo eficiente que permita la gestión de estos servicios en cualquier tipo de red.
Introducción
3
Comparar las características del nuevo sistema con relación a otros sistemas que se hayan desarrollado.
Para una mejor organización y un mejor entendimiento del documento se encuentra estructurado el contenido con una breve explicación de sus partes en resumen, introducción, 5 capítulos de contenido, conclusiones, recomendaciones, bibliografía, anexos y glosario.
Capítulo 1, “Fundamentación Teórica”, incluye un estado del arte de las soluciones que existen en el mundo de la problemática abordada, además se definen técnicas, metodologías y herramientas a utilizar para un mejor desarrollo del software.
Capítulo 2, “Características del Sistema”, se define una propuesta del sistema, especificándose los requisitos de la herramienta, los cuales ayudan a desarrollar los casos de uso basándose en la metodología del RUP.
Capítulo 3, “Análisis y Diseño del Sistema”, se define como continúa el desarrollo del sistema llevándose acabo el análisis y diseño del mismo.
Capitulo 4, “Implementación y Prueba”, se llevan a cabo el desarrollo del Diagrama de despliegue, y los diagrama de componentes.
Capítulo 5 “Estudio de Factibilidad”, se determina el costo del sistema, así como el tiempo que es necesario invertir para la realización del mismo.
Capítulo 1: Fundamentación Teórica
4
Capítulo 1: Fundamentación Teórica.
1.1 Introducción.
En el presente capítulo se trataran temas relacionados a la prestación de los servicios telemáticos que brindará el software tratado. Se estudiarán los sistemas informáticos existentes en el mundo que se refieran al tema tratado, para lograr el desarrollo de un producto competitivo a nivel mundial. Además se analizarán herramientas, metodologías de desarrollo y lenguajes de modelado que se darán como propuesta para el desarrollo del sistema.
1.2 Servicios.
Los servicios son actividades identificables, intangibles y perecederas que son el resultado de esfuerzos humanos o mecánicos que producen un hecho, un desempeño o un esfuerzo que implican generalmente la participación del cliente y que no es posible poseer físicamente, ni transportarlos o almacenarlos, pero que pueden ser ofrecidos en renta o a la venta; por tanto, pueden ser el objeto principal de una transacción ideada para satisfacer las necesidades o deseos de los clientes.
1.3 Servicios Telemáticos.
Los servicios telemáticos permiten acceder a los servicios propios de la Sociedad de la Información a través de una red de telecomunicaciones pública o privada, garantizando un flujo continuo y recíproco de información entre emisores y receptores.
Son servicios que utilizan generalmente técnicas de procesamiento de la información en forma remota, combinando el empleo de ordenadores y redes de comunicaciones. Permiten que el usuario desde su ordenador o terminal inteligente reciba o envíe información pública o privada que reside en ordenadores conectados a la red de comunicaciones o efectúe operaciones tales como la consulta y descarga de ficheros, reservas y transacciones comerciales o bancarias. Se soportan en servicios de transmisión de datos, sobre los que añaden valor o utilidad al cliente final. (2)
Capítulo 1: Fundamentación Teórica
5
1.4 Soluciones existentes en el Mundo.En esta sección se abordaran las soluciones informáticas que existen en el mundo para realizar la gestión de los servidores de red y que son utilizadas en las redes del país. Estos sistemas se han venido desarrollando principalmente integrados a sistemas operativos, aunque también existen soluciones independientes muy competitivas que se abordarán también con el objetivo de estudiar sus funcionalidades y usarlas para un mejor desempeño de nuestro propio producto.
1.4.1 En sistemas operativos Windows.
Microsoft Windows NT Server
Microsoft Windows NT Server es un sistema operativo diseñado para su uso en servidores de red de área local (LAN). Ofrece la potencia, la manejabilidad y la capacidad de ampliación de Windows NT en una plataforma de servidor e incluye características, como la administración centralizada de la seguridad y tolerancia a fallos más avanzada, que hacen de él un sistema operativo idóneo para servidores de red.
Windows NT Server es a la vez un sistema operativo para computadoras (ordenadores) personales y un sistema operativo para red. Puesto que incorpora funciones de red, las redes de Windows NT Server se integran de forma óptima con el sistema operativo básico, facilitando el uso y la administración de las funciones.
Puede ejecutarse en sistemas basados en procesadores Intel x86, RISC y DEC Alpha, ofreciendo al usuario mayor libertad a la hora de elegir sus sistemas informáticos. Es ampliable a sistemas de multiproceso simétrico, lo que permite incorporar procesadores adicionales cuando se desee aumentar el rendimiento.
Incluye los siguientes servicios:
Capacidad de controlador de dominio.
Perfiles de usuarios centralizados.
Replicación de directorio
Servicio de Acceso Remoto (RAS)
Servicios para Macintosh
Dynamic Host Configuration Protocol (DHCP) y Windows Internet Named Services (WINS).
Capítulo 1: Fundamentación Teórica
6
En grandes entornos de redes, Windows NT Server da soporte a los siguientes entornos de computación: Server de bases de datos
Servers de mensajería.
Servers de archivos y de impresión.
Servers de comunicaciones.
Servers WEB.
Soporte a múltiples plataformas:
Intel 80386, 80486, Pentium y procesadores futuros.
PowerPC.
MIPS.
DEC Alpha AXP.
Computadoras con simple o múltiple procesador (SMP). (3)
Microsoft Windows Server 2003
Windows Server 2003 es un sistema operativo de la familia Windows de la marca Microsoft para servidores que salió al mercado en el año 2003. Está basada en tecnología NT y su versión del núcleo NT es la 5.2. Es un sistema operativo de propósitos múltiples capaz de manejar una gran gama de funciones de servidor, en base a sus necesidades, tanto de manera centralizada como distribuida.
Algunas de estas funciones del servidor son:
Servidor de archivos e impresión.
Servidor Web y aplicaciones Web.
Servidor de correo.
Terminal Server.
Servidor de acceso remoto/Red privada virtual (VPN).
Servicio de directorio, Sistema de dominio (DNS), y servidor DHCP.
Capítulo 1: Fundamentación Teórica
7
Servidor de transmisión de multimedia en tiempo real (Streaming).
Servidor de infraestructura para aplicaciones de negocios en línea (tales como planificación de recursos de una empresa y software de administración de relaciones con el cliente).
Microsoft Windows Server 2003 ofrece más rapidez, fiabilidad, escalabilidad y disponibilidad que Microsoft Windows NT Server, siendo además mucho más fácil de gestionar. Puede ser implementado y gestionado en menos tiempo, con un esfuerzo menor, complejidad reducida y un coste total de propiedad inferior.
Permite a los clientes ser más productivos.
Está construido sobre la robustez y fiabilidad de Microsoft Windows 2000 Server.
Es el Sistema Operativo Windows más rápido, fiable y seguro que jamás haya existido.
Ventajas con versiones anteriores
Como servidor de ficheros es de un 100% a un 139% más rápido que Windows 2000 Server y un 200% más que Windows NT Server 4.0.
Como servidor de impresión, es un 135% más eficiente que Windows NT Server 4.0.
Como servidor web es de un 100% a un 165% más rápido que Windows 2000 Server.
Las características mejoradas del Directorio Activo permiten realizar tareas más fácilmente, entre las que destacan la habilidad de renombrar dominios, la posibilidad de redefinir el esquema y una replicación más eficiente.
Ofrece la mejor conectividad, facilitando al máximo la configuración de enlaces entre delegaciones, acceso inalámbrico seguro y acceso remoto a aplicaciones a través de los Terminal Services, así como en su integración mejorada con dispositivos y aplicaciones. (4)
Aunque estas plataformas son idóneas para el trabajo con redes por la amplia gama de servicios que ofrece y la comodidad con que se administran, son muy costosas y se necesita de una gran inversión de capital para el mantenimiento de sus actualizaciones, lo cual es una opción desechable para países como Cuba, que poseen una economía de escasos ingresos. Además poseen la desventaja de
Capítulo 1: Fundamentación Teórica
8
imponer muchas restricciones al comprador, entre ellas están la de no proporcionar su código fuente para posibles mejoras y correcciones del software.1.4.2 En sistemas operativos GNU\Linux.
SuSE Linux Enterprise Server.
SuSE Linux Enterprise Server es uno de los sistemas operativos para servidor líderes en el campo de la implementación profesional para entornos informáticos heterogéneos de cualquier tamaño y estructura. Está disponible para las principales plataformas de hardware: desde procesadores AMD e Intel de 32 y 64 bits hasta mainframes, pasando por toda la gama eServer de IBM. Un único sistema operativo para servidor con una base de código Linux uniforme.
Campos de aplicación.
SuSE Linux Enterprise Server incorpora todos los servicios de servidor y redes relevantes para la empresa: desde servicios de ficheros, impresión, web y seguridad, hasta soluciones de aplicaciones y middleware como son bases de datos, gestión empresarial integrada (ERP) y almacenamiento. El producto integra también soporte para soluciones informáticas de alta disponibilidad y alto rendimiento.
Ventajas
Reducción masiva de costes.
SuSE Linux Enterprise Server elimina los costes derivados de las licencias de acceso de clientes o de acceso a Internet. Asimismo, gracias a la consolidación de servidores evitará recursos y cursos de formación innecesarios. Por supuesto, la consolidación puede tener lugar de forma flexible y paulatina y con la suficiente planificación.
Mayor seguridad de inversión gracias al mantenimiento del sistema y al código fuente abierto.
Los servicios de soporte, actualizaciones y mantenimiento del software se han unificado en el SuSE Linux Maintenance Programm. Esto le permite beneficiarse de un servicio completo procedente de una sola fuente y, por ejemplo, acordar el mantenimiento "perpetuo" de sus sistemas, asegurando así su infraestructura informática al 100%. Le proporcionamos también el código fuente del sistema operativo, lo que le garantiza una total independencia con respecto a fabricantes.
Mayor escalabilidad y estabilidad.
Capítulo 1: Fundamentación Teórica
9
Para que implemente SuSE Linux Enterprise Server donde y como quiera: el producto incluye equilibrio de red, alta disponibilidad y posibilidad de clustering, y soporta 32 CPUs, 64 GB RAM y 600 discos duros en hardware basado en x86.Administración eficaz.
Mantenimiento y administración remotos de forma segura, independientemente de donde se encuentren los ordenadores. SuSE Linux Enterprise Server le permite automatizar los procesos de administración e incorpora para ello todas las herramientas necesarias.
A pesar de las ventajas que ofrece SuSE Linux Enterprise Server no es una buena opción para su implantación en Cuba, por estar desarrollado por una compañía como Novell que a consecuencia del bloqueo económico le imposibilitaría al país recibir asistencia técnica. También esta es una solución no genérica debido a que las funcionalidades que brindan están estrechamente ligadas al uso de este tipo de distribución Linux. (5)
Red Hat Enterprise Linux 5 Server
Red Hat Enterprise Linux está disponible en dos versiones para servidores. La versión básica Red Hat Enterprise Linux Server está diseñada para implantaciones en redes de pequeño tamaño, mientras que Red Hat Enterprise Linux Advanced Platform está diseñado para escenarios más grandes, proporcionándoles el entorno más rentable, flexible y escalable. Ambas versiones comparten la misma base tecnológica, y ambas incorporan un amplio conjunto de aplicaciones de servidor de código abierto y prestaciones de virtualización.
Red Hat Enterprise Linux es compatible con las siguientes arquitecturas de sistemas:
Intel y AMD x86/x86-64
Intel Itanium2
IBM POWER
IBM z-Series y S/390
Proporciona un completo conjunto complementario de aplicaciones de servicios de red, como por ejemplo DHCP, DNS, cortafuegos, así como servicios de servidor de archivos y de impresión a clientes Microsoft Windows, con integración de Directorio Activo. En cuanto a seguridad la incorporación de SELinux Troubleshooter, un analizador dotado de una interfaz gráfica de usuario que ayuda a los administradores en la toma de decisiones en caso de alertas de seguridad, facilita considerablemente
Capítulo 1: Fundamentación Teórica
10
el uso.Este es uno de los sistemas operativos de red más competitivos del mercado mundial, incluso restándole seguidores a los productos desarrollados por la Microsoft, pero debido a que es comercial en sus versiones posteriores a Red Hat Linux 9.0 no debe ser una opción a tener en cuenta por países en vías de desarrollo. (6)
Webmin
Es una herramienta de configuración de sistemas accesible vía web para OpenSolaris, GNU/Linux y otros sistemas Unix. Con él se pueden configurar aspectos internos de muchos sistemas operativos, como usuarios, cuotas de espacio, servicios, archivos de configuración, apagado del equipo, etcétera, así como modificar y controlar muchas aplicaciones de código abierto, como el servidor web Apache, PHP, MySQL, DNS, Samba, DHCP, entre otros.
Está construido a partir de módulos, los cuales tienen una interfaz a los archivos de configuración y el servidor Webmin. Esto hace fácil la adición de nuevas funcionalidades sin mucho esfuerzo. Debido al diseño modular de Webmin, es posible para cualquier interesado escribir extensiones para configuración de escritorio. Incluye un servidor web hecho en Perl, para que lo único que necesites tener instalado sea un navegador HTML que soporte tablas y formularios.
La licencia inicial no es exactamente GPL (está liberado bajo Licencia BSD), pero Webmin en su versión free es de libre distribución, siempre y cuando no se modifique (hay que enviar las modificaciones a su autor).
Está compuesto por un servidor simple y un número de programas CGI que directamente ponen al día archivos de sistema. El servidor web y todos los programas CGI son escritos en la versión 5 Perl, y no usan ningún módulo no estándar Perl.
1.5. Metodologías y Herramientas Utilizadas.
En el desarrollo de todo sistema informático es de vital importancia la selección de las herramientas a utilizar, paso que garantizará, de realizarse correctamente, un óptimo desempeño del sistema. Para el desarrollo del sistema al cual se refiere este documento, la selección se realizó teniendo en cuenta la infraestructura de la red informática nacional y el desarrollo que ha alcanzado el software libre en Cuba y el mundo.
Capítulo 1: Fundamentación Teórica
11
1.5.1. Proceso Unificado de Desarrollo de Software (RUP)El Proceso Unificado es un marco genérico que puede especializarse para una gran variedad de proyectos de software, para diferentes áreas de aplicación, diferentes tipos de organización, diferentes niveles de aptitud y diferentes tamaños de proyectos. Esta
metodología de desarrollo utiliza el lenguaje de modelado UML para especificar, visualizar, construir y documentar los artefactos que el mismo genera. (7)
RUP divide en 4 fases el desarrollo del software, las cuales terminan con sus hitos correspondientes:
Inicio: En esta etapa se determina la visión del proyecto.
Elaboración: El objetivo de esta etapa es determinar la arquitectura óptima para el desarrollo del ciclo de vida del proyecto.
Construcción: El objetivo es llegar a obtener la capacidad operacional inicial.
Transmisión: El objetivo es llegar a obtener la liberación del proyecto.
Esta metodología también cuenta con flujos de trabajo, los cuales son:
Modelamiento del negocio: Describe los procesos de negocio, identificando quiénes participan y las actividades que requieren automatización.
Requerimientos: Define qué es lo que el sistema debe hacer, para lo cual se identifican las funcionalidades requeridas y las restricciones que se imponen.
Análisis y diseño: Describe cómo el sistema será realizado a partir de la funcionalidad prevista y las restricciones impuestas (requerimientos), por lo que indica con precisión lo que se debe programar.
Implementación: Define cómo se organizan las clases y objetos en componentes, cuáles nodos se utilizarán y la ubicación en ellos de los componentes y la estructura de capas de la aplicación.
Prueba (Testeo): Busca los defectos a los largo del ciclo de vida.
Instalación: Libera versiones y paquetes del producto y realiza actividades (empaque, instalación, asistencia a usuarios, etc.) para entregar el software a los usuarios finales.
Administración del proyecto: Involucra actividades con las que se busca producir un producto que satisfaga las necesidades de los clientes.
Administración de configuración y cambios: Describe cómo controlar los elementos producidos por todos los integrantes del equipo de proyecto en cuanto a: utilización/actualización concurrente de elementos, control de versiones, etc.
Ambiente: Contiene actividades que describen los procesos y herramientas que soportarán el equipo de trabajo del proyecto.
Capítulo 1: Fundamentación Teórica
12
Los verdaderos aspectos definitorios del Proceso Unificado se resumen en 3 frases claves: Dirigido por Casos de Uso, Centrado en la Arquitectura e Iterativo e Incremental. Esto es lo que hace único al Proceso Unificado.Dirigido por Casos de Uso.
El proceso de desarrollo sigue una trayectoria que avanza a través de los flujos de trabajo generados por los casos de uso. Estos especifican y diseñan el principio de cada iteración, y son la fuente mediante la cual los ingenieros de pruebas construyen los casos de prueba. Los casos de uso describen la funcionalidad total del sistema, pensada en términos de la importancia que tiene la misma para el usuario (no solamente la funcionalidad en si).
Centrado en la Arquitectura.
La arquitectura y los casos de uso son procesos que se desarrollan en paralelo, ya que los casos de uso guían la arquitectura del sistema y esta influye en la selección de los casos de uso, pues se desea una arquitectura viable a la hora de implementar los casos de uso. La arquitectura involucra los elementos más significativos del sistema y está influenciada entre otros por las plataformas de software, los sistemas operativos, los sistemas de gestión de base de datos, además de otros como sistemas heredados y requerimientos no funcionales.
Iterativo e Incremental.
Se recomienda dividir el proyecto en ciclos o iteraciones a través de cada una de las fases por las que se transita, dentro de las cuales se realizan varias iteraciones en un número variable según el proyecto. La terminación de cada fase ocurre en el hito correspondiente a cada una, donde se evalúa que se hayan cumplido los objetivos de la fase en cuestión.
Otros de los beneficios de la iteración:
Reduce el coste del riesgo al coste de un solo incremento.
Menos riesgo de no sacar el producto al mercado en fecha.
Acelera el ritmo de desarrollo.
Las necesidades del usuario y correspondientes requisitos no se definen completamente al principio. Se requieren iteraciones sucesivas.
Capítulo 1: Fundamentación Teórica
13
1.5.2. Lenguaje de Modelado Unificado (UML)UML (Unified Modeling Language) es un lenguaje de modelado gráfico que permite modelar, construir y documentar los elementos que forman un sistema de software. Este permite modelar artefactos conceptuales como lo son procesos de negocio y funciones de sistema, además de artefactos concretos como lo son escribir clases en un lenguaje determinado, esquemas de bases de datos y componentes de software reusables.
UML es un lenguaje para especificar y no un método o un proceso. Aunque es flexible y permite aplicarse en una gran variedad de metodologías de desarrollo, no especifica en sí cual se debe de utilizar. (8)
Para modelar, UML utiliza diagramas que se pueden clasificar en dos tipos: diagramas de estructura que comprenden los diagrama de clases, diagrama de componentes, diagrama de objetos, diagrama de despliegue y diagrama de paquetes; y los diagramas de comportamiento entre los que se encuentran diagrama de actividades, diagrama de casos de uso, diagrama de estados, diagrama de secuencia, diagrama de colaboración, entre otros.
UML es el lenguaje de modelado que utiliza RUP, y es un estándar internacional de la OMG (Object Managment Group por sus siglas en inglés o Grupo de administración de objetos en español).
1.5.3. Notación para el Modelado del Negocio (IDEF0)
IDEF0 es una técnica de modelación concebida para representar de manera estructurada y jerárquica las actividades que conforman un sistema o empresa, y los objetos o datos que soportan la interacción de esas actividades.
La semántica de utilización de estos elementos gráficos es la siguiente:
Actividad: Se representa con un cuadro, indica una función, proceso o transformación.
Entrada: Se representa con una flecha entrando por el lado izquierdo de la actividad, indica los materiales o informaciones que se transformarán en la actividad para obtener la salida.
Salida: Se representa con una flecha saliendo del lado derecho de la actividad, indica los objetos o informaciones producidos por la ocurrencia de la actividad.
Control: Se representa con una flecha entrando por la parte superior, indica las regulaciones que determinan si una actividad se realiza o no. ejemplo: normas, guías, reglas, políticas, etc.
Sujeto: Se representa con una flecha entrando por la parte inferior, indica los recursos que ejecutan una actividad, ejemplo: personas, maquinarias, etc.
Capítulo 1: Fundamentación Teórica
14
Permite representar el proceso cronológicamente, así como la cadena de valor de la empresa. Es una notación simple que cualquier empleado puede usar para describir qué hace en el negocio. Involucrar a los empleados de la organización en la modelación del negocio permite ahorrar tiempo simultaneando el trabajo en varias áreas, así como obtener un modelo más fiel ya que ha sido elaborado por sus protagonistas. Permite incorporar en el flujo los datos que entran y salen de las actividades, así como las reglas del negocio y los actores, todo en la misma vista. Permite descomponer una actividad como un proceso a su vez. Permite descubrir problemas de organización en el negocio que deben ser arreglados.1.5.4. Herramienta de Modelado
Visual Paradigm es la herramienta CASE de modelación visual propuesta. “Las Herramientas CASE (de su siglas en inglés: Computer Aided Software Engineering; en español: Ingeniería de Software Asistida por Ordenador) son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en términos de tiempo y de dinero.
Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costes, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras.”
La herramienta Visual Paradigm está diseñada para una amplia gama de usuarios, incluyendo Ingenieros de Software, Analistas de Sistemas, Analistas de Negocios y Arquitectos de Sistemas que estén interesados en la creación de grandes sistemas de software de manera confiable a través de la POO. Las transiciones del análisis al diseño, y de este a la implementación, están adecuadamente integradas dentro de la herramienta CASE, de manera que reduce significativamente los esfuerzos de todas las etapas del ciclo de desarrollo de software.
Visual Paradigm ofrece:
Diseño centrado en casos de uso y enfocado al negocio, lo cual permite generar un software de mayor calidad.
Uso de un lenguaje estándar común a todo el equipo de desarrollo que facilita la comunicación.
Capacidades de ingeniería directa (en su versión profesional) e inversa.
Modelo y código que permanece sincronizado en todo el ciclo de desarrollo.
Disponibilidad de múltiples versiones, para cada necesidad.
Disponibilidad de integrarse en los principales IDE (Integrated Development Environment).Capítulo 1: Fundamentación Teórica
15
Disponibilidad en múltiples plataformas.
Generación de código fuente en varios lenguajes de programación.El sistema que se propone será desarrollado con las técnicas de POO, apoyándose en RUP y Visual Paradigm y usando como notación el lenguaje UML, que es la base del funcionamiento visual de RUP.
1.5.5. Lenguaje de Programación (Python).
En el mundo de la programación se plantea que no existe un mejor lenguaje de programación, el uso de uno u otro lenguaje lo determina el tiempo para desarrollar la aplicación, las funcionalidades que va a tener, el escenario de aplicación de la misma, entre otros factores que influyen. Basado en esto, se tuvo en cuenta las características que aportaban varios lenguajes de programación como son:
C++
Lenguaje Orientado a Objetos basado en clases.
Aceptación en múltiples plataformas (compatibilidad).
Chequeo estático de tipos con lagunas (void).
Gestión de memoria manual (programador).
Compilación a código nativo (eficiencia).
Java
Lenguaje Orientado Objetos basado en clases. Chequeo estático de tipos parcial (chequeo dinámico en ocasiones).
Gestión de memoria automática.
Compilación basada en máquina abstracta (eficiencia).
Gran aceptación académica e industrial. (9) Perl
Lenguaje imperativo interpretado sin chequeo de tipos.
Desarrollo de prototipos (sintaxis críptica).
Facilidad para tratamiento de cadenas, expresiones regulares, etc.
A pesar de las ventajas que nos proporcionaban estos que se mencionaron, la propuesta a utilizar es Python por ser un lenguaje interpretado, orientado a objetos y que permite mantener de forma sencilla interacción con el sistema operativo, además resulta muy adecuado para manipular archivos de texto.
Este lenguaje presenta una serie de ventajas que lo hacen muy atractivo, tanto para su uso profesional
Capítulo 1: Fundamentación Teórica
16
como para el aprendizaje de la programación, entre las que destacan: Es muy “expresivo”, es decir, los programas son muy compacto, un programa en Python suele ser bastante más corto que su equivalente en lenguajes como C, por muchos es considerado un lenguaje de programación de muy alto nivel.
Es muy legible, la sintaxis es muy elegante y permite la escritura de programas cuya lectura resulta fácil, en comparación con otros lenguajes.
Puede usarse como lenguaje imperativo procedimental o como lenguaje orientado a objeto.
Incorpora módulos, excepciones, tipado dinámico, tipos de datos dinámicos de muy alto nivel, y clases.
Desarrollo más rápido: Puedes escribir un programa, salvarlo y ejecutarlo. En un lenguaje compilado tienes que pasar por los pasos de compilar y ligar el software, lo cual puede ser un proceso lento.
Es Open Source, lo cual significa que su código fuente es completamente libre, cualquier persona puede usarlo, modificarlo a gusto, aprender de él, implementarlo y por supuesto contribuir al proyecto.
Al igual que la mayoría de los lenguajes interpretados mas utilizados, es multiplataforma, es decir, funciona bajo Linux, Microsoft Windows, Mac OS y demás sistemas operativos. (10)
1.5.6. Entorno de Desarrollo Integrado (Eclipse).
El proyecto
EasyEclipse
empaqueta el entorno de desarrolloEclipse
junto con una cuidada selección de "plugins" Open Source para obtener un IDE final excepcionalmente bueno para el desarrollo de aplicaciones en PHP, Python, Ruby y por supuesto Java, con todos los plugins ya instalados y configurados para que el desarrollador final sólo tenga que preocuparse del código de su aplicación y no de afinar su IDE. Es un potente editor, compilador y depurador, incorpora multitud de plugins para actualizar y completar el funcionamiento del IDE y es multiplataforma al estar desarrollado en Java.(11)
1.5.7. Interfaces Gráficas.
Existen varias librerías que implementan interfaces gráficas de usuario (GUI) en Python, las principales son:
Capítulo 1: Fundamentación Teórica
17
TkInter: Basada en las librerías gráficas TK/TCL, interface preinstalada con Python, es la generalmente recomendada para proyectos triviales y/o de aprendizaje.
WxPython: Basada en WxWidgets (una librería multiplataforma C/C++), y sería la interface por defecto si no hubiese existido tk en primer lugar.
PyQT: basado en la librería C++ QT (KDE).
PyGTK: basado en la librería C GTK (GNOME).
Características comunes
Tamaño aproximado (instalador windows desarrollo): 15MB (excepto tkinter que viene preinstalado).
Huella en memoria (footprint) de hello-word (“Hola Mundo”) en windows: aproximadamente 20MB, excepto tkinter que es la mitad.
TkInter Ventajas:
Preinstalado con Python en casi todas las plataformas.
Relativamente simple y fácil de aprender (recomendado para "aprendices").
Desventajas:
Pocos elementos gráficos (sin listados, arboles, etc.).
Limitado control del comportamiento de la interface (recomendado para proyectos "triviales").
Lento (dibuja cada botón, etiqueta, menú, etc.).
WxPython Ventajas:
Rápido y de Apariencia nativa (diseñado para utilizar funciones nativas de cada plataforma).
Independencia: no esta orientado a ningún entorno, ni QT ni GTK, hay una capa mas que agrega un grado de libertad adicional.
Soporta las características comunes de Windows, y las emula en linux cuando no se pueden hacer nativamente (y viceversa).
Desventajas:
Relativamente más complejo de aprender.
Al tener un desarrollo bastante rápido y sostenido, se liberan versiones frecuentemente, lo que en la práctica le confiere cierto nivel de "volatilidad" y problemas de compatibilidad si se deben
Capítulo 1: Fundamentación Teórica
18
mantener varias versiones de wx para el mismo código. Inestable y difícil de debuggear.
PyQt Ventajas:
Flexible y potente control del comportamiento de la interface. Posee un mecanismo de conexión de señales y eventos simple.
Rápido y de apariencia nativa (las últimas versiones utilizan funciones nativas en Windows).
Se puede separar el diseño de la interface, pero usa un "compilador" pyuic para crear las clases Python.
Arquitectura opcional para Modelo/Vista para las tablas, listas y árboles.
Desventajas:
Relativamente más complejo de aprender.
No hay mucha documentación específica a Python, ya que es lenguaje en si no es demasiado considerado.
PyGTK Ventajas:
Completo conjunto de elementos gráficos (listados, arboles, grillas, etc.).
Flexible y potente control del comportamiento de la interface.
Enlace con PyOrbit para programar aplicaciones en GNOME.
Es estable, y los mensajes de error son correctos.
Desventajas:
Relativamente más complejo de aprender.
Relativamente lento en Windows (dibuja cada botón, etiqueta, menú, etc.) lo que le da una apariencia "extraña" (aunque es parecido a Windows).
En Windows, es la librería que tiene más dependencias y se instalan por separado. (12)
Basado en las ventajas y desventajas que presentan cada una de las librerías gráficas, en las funcionalidades que va a tener el sistema y las necesidades del equipo de desarrollo se utilizará la herramienta QTDesigner que utiliza como base la librería gráfica de QT, que ha sido transportada a diversas plataformas, lo que permite que el código generado por el QTDesigner pueda ser utilizado en diversas plataformas. Es una herramienta para el desarrollo de formularios y presentaciones gráficas
Capítulo 1: Fundamentación Teórica
19
para las aplicaciones. Provee características muy poderosas como la previsualización de la interfaz, soporte para widgets y un editor de propiedades bastante poderoso. Permite acelerar el desarrollo de interfaces de alto rendimiento, a la vez que proporciona una forma fácil de diseñar interfaces gráficas de usuario avanzadas generando el código fuente para las mismas, lo que permite al desarrollador ajustarlo a sus necesidades. Además, el QT funciona sólo o asociándose a algunos entornos de desarrollo integrado como Eclipse.
1.6 Conclusiones.
En este capítulo se trataron algunos conceptos en relación al tema, y se abordaron las diferentes soluciones que se han implementado en el mundo para la gestión de servidores de red. Se seleccionó el UML como lenguaje de modelado, RUP como metodología de desarrollo, la técnica IDEF0 como notación para el modelado del negocio, Visual Paradigm como herramienta case a utilizar, Python como lenguaje de programación, EasyEclipse como entorno de desarrollo integrado y como herramienta para el diseño de las interfaces QTDesigner, que esta basado en las librerías gráficas QT.
Capítulo 2: Características del Sistema
20
Capítulo 2: Características del Sistema.
2.1. Introducción.
Este capítulo está dedicado a conocer con una mayor claridad todos los procesos que intervienen en el negocio. Aquí se describe, para una mayor comprensión, todos los procesos y la manera en que se desarrollan en la actualidad, se exponen los requisitos funcionales del sistema, el diagrama de casos de usos del sistema, la descripción de los casos de usos del sistema y un prototipo de interfaz de usuario para cada caso crítico.
2.2. Objeto de Estudio.
2.2.1. Definición del Problema.
Actualmente, Cuba cuenta con numerosas empresas, instituciones académicas y otros organismos que están migrando toda la infraestructura de red a software libre como parte de una estrategia aprobada por el consejo de ministros en el año 2002. En este proceso el primer paso sería migrar todos los servidores de red privados de cada una de las instituciones que brindan los servicios básicos de la red, pero para ello surgen los siguientes inconvenientes:
La gestión de estos servidores se hace utilizando programas tan eficientes como el Windows Server 2003, pero que están amparados bajo licencias privativas.
Las características del hardware de estos servidores que tienen instalado estas soluciones de pago no es lo mas óptimo, por lo que las prestaciones de los servicios carecen de rendimiento en cuanto a velocidad.
El personal encargado de administrar estas redes en muchos casos es inexperto, y no tienen la suficiente preparación como para hacer el cambio de plataforma en los servidores de red y que esto sea transparente al usuario al que se brinda el servicio.
Producto de esta situación es que surge el problema científico: ¿Cómo mejorar la gestión del servicio de DNS en sistemas operativos GNU\Linux?, para así facilitar la gestión de estos servidores con una solución propia, basada en las libertades que ofrece el software libre y que no constituya un problema de ninguna índole para llevar a cabo la migración en el lugar que se implemente.
2.2.2. Objeto de Automatización.
Con la realización del sistema se pretende automatizar el siguiente proceso:
Capítulo 2: Características del Sistema
21
Servicio de Nombre de Dominio (DNS): La automatización de este proceso permitirá registrar los servidores o las PC clientes del dominio en la base de datos del DNS, gestionar zonas especificando el servidor DNS que tendrá autoridad en la zona, definir servidores DNS que cumplan la función de reenviadores para agilizar las consultas hacia nombres externos del dominio mejorando así el rendimiento de los servidores DNS locales. Realizar búsquedas de forma eficiente en la base de datos del DNS para resolver nombres de dominio o direcciones IP realizadas por los usuarios del dominio en el que este situado el servidor DNS, así como realizar copias de información (transferencias de zona) de un servidor maestro a uno esclavo en un en un espacio de nombre determinado para evitar que se afecte el funcionamiento normal de la red cuando el servidor maestro deje de funcionar.2.2.3. Información que se maneja.
La información que se maneja en el sistema está relacionada con las bases de datos centralizadas del servicio de red: Servicio de Nombres de Dominio (DNS), que guardan en sus ficheros de configuración, ejemplo de estos son:
Para el Servicio Nombres de Dominio: Datos de Registros de Recursos, Zonas, Reenviadores, Vistas, Listas de Control de Acceso, Sugerencias Raíz.
2.3. Propuesta del sistema.
La propuesta del sistema es una aplicación de escritorio, que permita gestionar de forma local o remota el Servicio de Nombres de Dominio (DNS). Esta aplicación debe permitir administrar de una forma eficiente estos servicios de red y contará con una interfaz capaz de realizar modificaciones en los archivos de configuración del servicio instalado.
2.4. Modelo del Negocio.
El Modelo de Negocio es uno de los primeros pasos que se realizan para el desarrollo de un software, mediante esta técnica podemos comprender los procesos que se realizan en la organización, además el objetivo del modelado del negocio es describir los procesos (existentes u observados) con el propósito de comprenderlos.
Capítulo 2: Características del Sistema
22
2.4.1 Descripción detallada de los procesos de negocio.Para el modelado del negocio se hará uso de IDEF0, por su facilidad para lograr un entendimiento común entre desarrolladores y clientes en la representación de los procesos fundamentales. Como resultado del estudio realizado en el negocio, se definió un proceso general nombrado: Gestionar Servidor, que aprovechando las características de IDEF0 se puede desglosar en 3 procesos que son instalar el servidor, configurar el servidor e integrar el servicio instalado a otros ya existentes en la red.
A continuación se muestra los procesos del negocio modelados con IDEF0.
Figura 1: Proceso Gestionar Servidor.
Capítulo 2: Características del Sistema
23
Figura 2: Proceso Configurar Servidor.Crear Ficheros de la Base de Datos del Servicio: Este proceso recibe como entrada una completa instalación del servicio y crea los ficheros que van a contener la información relacionada con el servicio que se este gestionando por el administrador de red. La creación de estos ficheros se hace haciendo uso de los comandos para el trabajo con ficheros y teniendo en cuenta los permisos de los mismos. La salida del proceso puede ser la creación de los ficheros, o en caso contrario ocurre un proceso de retroalimentación que permite realizar de nuevo la actividad.
Agregar Entrada al Fichero: Este proceso puede establecer una secuencia con el proceso anterior de la creación de los ficheros, o puede tener directamente como entrada el proceso de instalación.
Haciendo uso de las opciones de configuración específicas de cada servicio el administrador de red en este proceso agrega una o varias entradas en los ficheros de configuración del servicio.
Ejemplo de Entradas para el Servicio DNS:
Registro de Recurso
Zona
Vista
Capítulo 2: Características del Sistema
24
Lista de Control de Acceso
Reenviador
Salvar Fichero de Configuración: Secuencialmente al proceso de agregar o modificar entrada al fichero el administrador de red salva la configuración del mismo, haciendo uso de los comandos de edición de archivos y se obtendrá como salida el fichero salvado.
Reiniciar Servicio: El proceso recibe como entrada un fichero salvado, y el administrador de red con la ejecución de esta actividad comprobará si las modificaciones realizadas tienen el resultado esperado.
Si no se produce ningún error en la ejecución de este proceso el servicio quedará correctamente configurado, en caso contrario se hará una acción de retroalimentación con el proceso modificar entrada del fichero debido a que la configuración es incorrecta.
Modificar Entrada al Fichero: Este proceso recibe como entrada una acción de retroalimentación cuando se produce un error en el reinicio del servicio, o directamente tiene como entrada la culminación del proceso de instalación. Con la realización de la actividad se modificará una o varias entradas existentes en los ficheros de configuración del servicio, guiándonos por las opciones de configuración de cada servicio en específico.
2.5 Especificación de los requisitos de software.
2.5.1 Requerimientos funcionales.
Los requerimientos funcionales son aquellos requisitos que, desde el punto de vista de las necesidades del usuario, debe cumplir el sistema y que están fuertemente ligados a las opciones del programa.
Para cumplir con los objetivos propuestos se prevé que el sistema tenga las siguientes funcionalidades:
Módulo Servicio de Nombres de Dominio (DNS).
R1. Gestionar Zona.
R1.1. Adicionar Zona.
R1.2. Modificar Zona.
R1.3. Eliminar Zona.
R1.4 Listar Zona.
R2. Gestionar Registro de Recurso.
R2.1. Adicionar Registro de Recurso.
Capítulo 2: Características del Sistema
25
R2.2. Modificar Registro de Recurso.R2.3. Eliminar Registro de Recurso.
R2.4 Listar Registro de Recurso.
R3. Gestionar Reenviador.
R3.1. Adicionar Reenviador.
R3.2. Modificar Reenviador.
R3.3. Eliminar Reenviador.
R3.3. Listar Reenviador.
R4. Gestionar Vistas.
R4.1. Adicionar Vistas.
R4.2. Modificar Vistas.
R4.3. Eliminar Vistas.
R4.4. Listar Vistas.
R5. Gestionar Lista de Control de Acceso (ACL).
R5.1. Adicionar ACL.
R5.2. Modificar ACL.
R5.3. Eliminar ACL.
R5.4. Listar ACL.
R6. Buscar Zona.
R7. Buscar Registro Recurso.
R8. Buscar Reenviador.
R9. Buscar Vistas.
R10. Buscar ACL.
2.6 Requisitos no funcionales.
“Los requerimientos no funcionales son propiedades o cualidades que el producto debe tener. Estas propiedades se ven como las características que hacen al producto atractivo, usable, rápido o confiable.”
Apariencia o Interfaz Externa: La interfaz debe tener un diseño sencillo y agradable, permitiendo la utilización del sistema por cualquier personal sin mucha experiencia. No se debe sobrecargar la aplicación con muchas imágenes y gráficos para acelerar la velocidad de respuesta del sistema; por lo
Capítulo 2: Características del Sistema
26
tendrán iconos sencillos que representen claramente la operación a realizar.Usabilidad: Garantizar un acceso fácil y rápido a los usuarios. El sistema podrá ser usado por cualquier persona que posea conocimientos básicos en la administración de servicios telemáticos, se le pedirán los requerimientos mínimos necesarios para gestionar los servidores. La aplicación contará con un manual para su uso, donde se explicará detalladamente las funcionalidades del software para garantizar la eficiente gestión de los servicios telemáticos.
Rendimiento: Garantizar tiempos de respuestas generalmente rápidos al igual que la velocidad de procesamiento de la información. La aplicación debe ser capaz de realizar consultas a las base de datos de los servicios utilizados en el menor tiempo posible, para así evitar la saturación de la red.
Soporte: Se requiere que el sistema cuente con la documentación apropiada para agilizar la instalación, configuración y administración de los servicios telemáticos eficientemente. Se brindarán cursos de capacitación al personal que utilizará el software en caso de ser necesario.
Portabilidad: Se realizará una versión del software que solo permita instalarse sobre una distribución GNU\Linux, pero que se pueda administrar sobre plataformas Windows y GNU\Linux, garantizando con ello la portabilidad del producto.
Seguridad: Garantizar que la información sensible solo pueda ser vista por los usuarios con el nivel de acceso autorizado para ello. Garantizar que las funcionalidades del sistema se muestren de acuerdo al nivel de usuario que esté activo. El sistema debe contar con protección contra acciones no autorizadas o que puedan afectar la integridad de los datos.
Políticos-culturales: Emplear en la aplicación distintos idiomas aprovechando las posibilidades que nos brinda el lenguaje de programación Python que incluye módulos y clases específicas para el desarrollo de un producto multicultural. Contar con logotipos e imágenes que se encuentren en correspondencia con el carácter científico y profesional del tema.
Legales: La aplicación se realizará utilizando herramientas de software libre, pero será un producto propio de la UCI que podrá comercializarse en un futuro.
Confiabilidad: Validar la captación de datos en el caso de los administradores de red al inscribirse para evitar entradas inadecuadas.
Software: Los ordenadores donde se valla a ejecutar la aplicación necesitan tener instalado una distribución de GNU\Linux. Además debe poseer los paquetes, librerías y dependencias mínimas necesarias que van a hacer usadas por la aplicación.
Hardware: PC servidor: 10 GB disco duro, microprocesador superior a 1.0 GHz, 256 MB mínimo de RAM.
Capítulo 2: Características del Sistema
27
2.7 Modelo del Sistema.Este epígrafe contiene el Modelo del Sistema, donde se muestran los diagramas de casos de uso del sistema, que constituyen la representación gráfica de los procesos y su interacción con los actores.
También se expone la descripción detallada de los casos de uso, que contribuye a profundizar en la comprensión del los mismos.
2.7.1. Actores del Sistema.
Actor Descripción
Administrador de Red Es el encargado de la gestión del servicio DNS a través de la aplicación.
Tabla 1: Descripción de los actores del sistema.
2.7.2 Diagramas de Casos de Usos del Sistema.
Tabla 2: Diagrama CU del Módulo DNS.
2.7.3 Descripción de Casos de Uso del Sistema.
Tabla 3: Descripción del CU: Gestionar Zona.
Caso de Uso: Gestionar Zona.
DIAGRAMA DE CASOS DE USO DEL SISTEMA
Capítulo 2: Características del Sistema
28
Actores: Administrador de Red.(inicia)Resumen: El caso de uso se inicia cuando el Administrador de Red entra en el sistema para adicionar, modificar y eliminar una Zona.
Precondiciones: Para eliminar, modificar debe existir al menos una Zona.
Referencias RF-1, RF-6 Prioridad Crítico.
Flujo Normal de Eventos
Acción del Actor Respuesta del Sistema
1. El Administrador de Red selecciona la opción “Gestionar Zona”.
2. El sistema muestra una interfaz “Gestionar Zona”.
. 3. El sistema brinda las siguientes opciones:
3.1 Nueva Zona (ir a la sección Adicionar Zona).
3.2 Modificar Zona (ir a la sección Modificar Zona).
3.3 Eliminar Zona (ir a la sección Eliminar Zona).
3.4 Listar Zona (ir a la sección Listar Zona).
Sección “Adicionar Zona”.
Acción del Actor Respuesta del Sistema
4. El Administrador de Red selecciona la opción “Nueva Zona”.
5. El sistema muestra una interfaz “Adicionar”
solicitando la información necesaria para adicionar una zona.
5.1 Nombre de la zona.
5.2 Tipo de servidor de la zona.
5.3 Ruta del fichero de que guarda los datos de la zona.
5.4 Servidores autorizados para la actualización dinámica.
5.5 Políticas de actualización en la zona.
5.6 Servidores autorizados para la replicación de la zona.
Capítulo 2: Características del Sistema
29
5.7 Notificación.6. El Administrador de Red introduce los datos para la confección de la zona y selecciona la opción “Aceptar”.
7. El sistema verifica que los datos introducidos estén correctos y que no existe la zona.
Flujos Alternos 7a “Existe la Zona”
Acción del Actor Respuesta del Sistema
7a.1 El sistema detecta que existe la zona que se quiere insertar y muestra un mensaje indicando el error.
Sección “Modificar Zona”.
Acción del Actor Respuesta del Sistema
4. El Administrador de Red introduce los criterios de búsqueda y selecciona la opción
“Buscar”.
Criterios de Búsquedas:
4.1 Nombre de la zona.
4.2 Tipo de servidor de la zona.
4.3 Ruta del fichero que guarda los datos de la zona.
4.4 Servidores autorizados para la actualización dinámica.
4.5 Políticas de actualización en la zona.
4.6 Servidores autorizados para la replicación de la zona.
4.7 Notificación.
5. El sistema muestra un listado con las zonas existentes que coinciden con los criterios de búsquedas introducidos por el administrador de red.
6. El Administrador de Red selecciona la zona y la opción “Modificar Zona”.
7. El sistema muestra una interfaz “Modificar”
con todos los campos que se pueden modificar:
7.1 Nombre de la zona.
7.2 Tipo de servidor de la zona.
7.3 Ruta del fichero que guarda los datos de la zona.
Capítulo 2: Características del Sistema
30
7.4 Servidores autorizados para laactualización dinámica.
7.5 Políticas de actualización en la zona.
7.6 Servidores autorizados para la replicación de la zona.
7.7 Notificación.
8. El actor modifica los datos deseados y selecciona la opción “Aceptar”.
9. El sistema comprueba que los datos estén correctos y retorna a la página “Gestionar Zona”.
Flujos Alternos 8a “Cancelar”
Acción del Actor Respuesta del Sistema
8a.1 El Administrador de Red selecciona la opción “Cancelar”.
8a.2 El sistema retorna a la interfaz “Gestionar Zona”.
Sección “Eliminar Zona”.
Acción del Actor Respuesta del Sistema
4. El Administrador de Red introduce los criterios de búsqueda y selecciona la opción
“Buscar”.
Criterios de Búsquedas:
4.1 Nombre de la zona.
4.2 Tipo de servidor de la zona.
4.3 Ruta del fichero que guarda los datos de la zona.
4.4 Servidores autorizados para la actualización dinámica.
4.5 Políticas de actualización en la zona.
4.6 Servidores autorizados para la replicación de la zona.
4.7 Notificación.
5. El sistema muestra un listado con las zonas existentes que coinciden con los criterios de búsquedas introducidos por el administrador de red.
6. El Administrador de Red selecciona la zona que desea eliminar y la opción
“Eliminar Zona”.
7. El sistema muestra un mensaje de confirmación.
Capítulo 2: Características del Sistema
31
8. El Administrador de Red selecciona laopción “Aceptar”.
9. El sistema elimina la zona.
Flujos Alternos 8a “Cancelar”
Acción del Actor Respuesta del Sistema
8a.1 El Administrador de Red selecciona la opción “Cancelar”.
8a.2 El sistema cierra el mensaje.
Sección “Listar Zona”.
Acción del Actor Respuesta del Sistema
4. El Administrador de Red introduce los criterio de búsqueda y selecciona opción
“Buscar”.
Criterios de Búsquedas:
4.1 Nombre de la zona.
4.2 Tipo de servidor de la zona.
4.3 Ruta del fichero que guarda los datos de la zona.
4.4 Servidores autorizados para la actualización dinámica.
4.5 Políticas de actualización en la zona.
4.6 Servidores autorizados para la replicación de la zona.
4.7 Notificación.
5. El sistema muestra un listado con las zonas existentes que coinciden con los criterios de búsquedas introducidos por el administrador de red.
Tabla 4: Descripción del CU: Gestionar Registro Recurso.
Caso de Uso: Gestionar Registro Recurso.
Actores: Administrador de Red.(inicia)
Resumen: El caso de uso se inicia cuando el Administrador de Red entra en el sistema para adicionar, modificar y eliminar un Registro de Recurso.
Precondiciones: Para eliminar, modificar debe existir al menos un Registro Recurso.
Referencias RF-2, RF-7
Capítulo 2: Características del Sistema
32
Prioridad Crítico.Flujo Normal de Eventos
Acción del Actor Respuesta del Sistema
1. El Administrador de Red selecciona la opción “Gestionar Registro Recurso”.
2. El sistema muestra una interfaz “Gestionar Registro Recurso”.
. 3. El sistema brinda las siguientes opciones:
3.1 Nuevo registro recurso (ir a la sección Adicionar Registro Recurso).
3.2 Modificar registro recurso (ir a la sección Modificar Registro Recurso).
3.3 Eliminar registro recurso (ir a la sección Eliminar Registro Recurso).
3.4 Listar registro recurso (ir a la sección Listar Registro Recurso).
Sección “Adicionar Registro Recurso”.
Acción del Actor Respuesta del Sistema
4. El Administrador de Red selecciona la opción “Nuevo Registro Recurso”.
5. El sistema muestra una interfaz “Adicionar”
solicitando la información necesaria para adicionar un registro recurso.
5.1 Parámetros del registro SOA.
5.2 Propietario del registro.
5.3 Tiempo de vida.
5.4 Clase.
5.5 Tipo de registro.
5.6 Datos del registro recurso.
6. El Administrador de Red introduce los datos para la confección de la registro recurso y selecciona la opción “Aceptar”.
7. El sistema verifica que los datos introducidos estén correctos y que no existe el registro recurso.
Flujos Alternos 7a “Existe el Registro Recurso”
Acción del Actor Respuesta del Sistema
7a.1 El sistema detecta que existe el registro recurso que se quiere adicionar y muestra un