Proyecto Fin de Carrera Ingeniera Tcnica en Informtica

  • Slides: 25
Download presentation
Proyecto Fin de Carrera Ingeniería Técnica en Informática de Sistemas Gestión del Directorio Activo

Proyecto Fin de Carrera Ingeniería Técnica en Informática de Sistemas Gestión del Directorio Activo Alumno: David Montero Gamero Director: Germán Rigau Claramunt Junio 2009 - FISS

Índice �Introducción �Objetivos del Proyecto �Método de Trabajo �Funcionalidades �Diseño Arquitectónico �Tecnología Empleada �Diseño

Índice �Introducción �Objetivos del Proyecto �Método de Trabajo �Funcionalidades �Diseño Arquitectónico �Tecnología Empleada �Diseño �Ejemplo de caso de uso: Mover Carpeta de Usuario �Implementación �Pruebas �Gestión del Proyecto �Conclusiones �Demo 29 de Junio de 2009 Gestión del Directorio Activo 2

Introducción �Origen del proyecto: prácticas en la empresa Ibermática Tecnología y Conocimiento (verano 2008).

Introducción �Origen del proyecto: prácticas en la empresa Ibermática Tecnología y Conocimiento (verano 2008). �Antecedentes: Directorio Activo ¿Qué es? base de datos implementada por Microsoft para almacenar todos los objetos que componen su estructura, como pueden ser, usuarios, grupos, servidores, puestos, etc. ¿ Qué es el CAU? �Objetivo: desarrollar una aplicación que gestionará el Directorio Activo del banco sin que el CAU acceda a los servidores. �¿Cómo se hacia antes? Antes de la creación de esta aplicación, el agente del CAU se validaba en los servidores del cliente como administrador de dominio y realizaba modificaciones directamente en el Directorio Activo. 29 de Junio de 2009 Gestión del Directorio Activo 3

Objetivos del Proyecto �Que el CAU realice una serie de tareas sin tener que

Objetivos del Proyecto �Que el CAU realice una serie de tareas sin tener que acceder directamente a los servidores ni tener que validarse como administradores. � Ganar agilidad y rapidez, y garantizar la seguridad del DA y de los servidores. �Que el acceso y la utilización de la aplicación sean muy intuitivos. Estructura de ventanas sencilla. �Implementar seguridad a la aplicación. Accesos restringidos. �Crear un registro con todos los pasos llevados a cabo por el usuario CAU, para llevar un control de las gestiones realizadas. 29 de Junio de 2009 Gestión del Directorio Activo 4

Método de Trabajo �Método de desarrollo de software: Proceso Unificado de Desarrollo (PUD) �Dirigido

Método de Trabajo �Método de desarrollo de software: Proceso Unificado de Desarrollo (PUD) �Dirigido por casos de uso �Centrado en la arquitectura �Iterativo e incremental �Fases de cada iteración �Implementación �Pruebas �Organización del trabajo: �Trabajo de desarrollo (3 iteraciones). �Reuniones con el director del proyecto, con el cliente y con la empresa. �Seguir plan de contingencia y planificación temporal para evitar problemas. 29 de Junio de 2009 Gestión del Directorio Activo 5

Funcionalidades: Casos de Uso 29 de Junio de 2009 Gestión del Directorio Activo 6

Funcionalidades: Casos de Uso 29 de Junio de 2009 Gestión del Directorio Activo 6

Funcionalidades Gestionar Usuario: � Alta de usuario � Deshabilitar usuario � Eliminar usuario �

Funcionalidades Gestionar Usuario: � Alta de usuario � Deshabilitar usuario � Eliminar usuario � Desbloquear usuario � Reiniciar contraseña � Obtener datos usuario � Modificar datos usuario � Agregar/Eliminar usuario a grupo � Mover Usuario 29 de Junio de 2009 Gestión del Directorio Activo Gestionar Carpeta Usuario: � Crear carpeta de usuario � Eliminar carpeta usuario � Mover carpeta usuario Gestionar Grupo: � Alta de grupo � Eliminar grupo � Agregar/Eliminar grupo Gestionar Puesto: � Deshabilitar puesto � Eliminar puesto � Mover puesto 7

Diseño Arquitectónico Arquitectura de 3 capas Aplicación Cliente/Servidor 29 de Junio de 2009 Gestión

Diseño Arquitectónico Arquitectura de 3 capas Aplicación Cliente/Servidor 29 de Junio de 2009 Gestión del Directorio Activo 8

Diseño Arquitectónico �Elección Tecnológica: �No ha habido elección tecnológica. �Diseño de 3 capas: �

Diseño Arquitectónico �Elección Tecnológica: �No ha habido elección tecnológica. �Diseño de 3 capas: � Capa de Presentación: Visual Basic � Capa de Dominio: Visual Basic � Capa de Base de Datos: Directorio Activo de Windows 2003 Server. � Mediante consultas SQL 29 de Junio de 2009 Gestión del Directorio Activo 9

Tecnología Empleada q q q Capa de Presentación n Diseño de Ventanas: distribución, botones,

Tecnología Empleada q q q Capa de Presentación n Diseño de Ventanas: distribución, botones, colores, fuentes, etc. n Software: Visual Basic Studio 6. 0 Professional y Skin. Border PRO Capa de Gestión de Datos: Directorio Activo de Windows Server 2003 Capa de Dominio: Visual Basic Studio 6. 0 Professional. 29 de Junio de 2009 Gestión del Directorio Activo 10

Diseño q Capa de Dominio n Casos de Uso Reales (demostración) n Pseudocódigo (memoria)

Diseño q Capa de Dominio n Casos de Uso Reales (demostración) n Pseudocódigo (memoria) n Clases de Diseño q Como se ha mencionado en la memoria las clases con las que trabaja la aplicación son las que contempla el Directorio Activo de Windows Server 2003. Y lo que refleja la memoria no es más que una simplificación de la realidad, ya que el número de atributos de cada clase que existe en el DA es muy extenso. 29 de Junio de 2009 Gestión del Directorio Activo 11

Diseño n Visión simplificada de los objetos que contempla el Directorio Activo . 29

Diseño n Visión simplificada de los objetos que contempla el Directorio Activo . 29 de Junio de 2009 Gestión del Directorio Activo 12

Caso de Uso: Mover Carpeta Usuario q Captura de Requisitos n q Mediante este

Caso de Uso: Mover Carpeta Usuario q Captura de Requisitos n q Mediante este caso de uso, se permite mover la Carpeta de un usuario de un servidor de datos a otro. Análisis 29 de Junio de 2009 Gestión del Directorio Activo 13

Caso de Uso: Mover Carpeta Usuario Name: Elegir. Origen. Carpeta(id. Carpeta): origen Responsabilities: Permite

Caso de Uso: Mover Carpeta Usuario Name: Elegir. Origen. Carpeta(id. Carpeta): origen Responsabilities: Permite seleccionar el origen de la carpeta. Preconditions: La carpeta existe en la ubicación seleccionada. Postconditions: Se almacena en la variable origen la ubicación origen de la carpeta. Salida: Name: Seleccionar. Destino. Carpeta(id. Carpeta): destino Responsabilities: Permite seleccionar el origen de la carpeta Preconditions: Ubicación destino válida, es decir, que no exista otra carpeta con el mismo identificador en la ubicación destino. Postconditions: Se almacena en la variable destino la ubicación destino de la carpeta. Salida: Name: Mover. Carpeta(id. Carpeta, origen, destino): info Responsabilities: Permite mover la carpeta Preconditions: Ubicación destino válida, es decir, que no exista otra carpeta con el mismo identificador en la ubicación destino. Postconditions: Se mueve la carpeta y su contenido del origen al destino, comprueba si el usuario asociado a la carpeta ha sido movido de Unidad Organizativa y si ahora pertenece a Oficinas agregará en la ficha de seguridad un usuario que se encarga de hacer las copias de seguridad. También se encargará de eliminar la carpeta origen. Salida: 29 de Junio de 2009 Gestión del Directorio Activo 14

Caso de Uso: Mover Carpeta Usuario q Diseño If usuario existe = true then

Caso de Uso: Mover Carpeta Usuario q Diseño If usuario existe = true then If carpeta existe en la ubicación origen then If existe otra carpeta perteneciente a ese usuario en el destino then Indicar que ya existe una carpeta para ese usuario en el destino Else If op = SSCC a Oficinas then Mover carpeta origen a backup oficinas Mover carpeta de backup oficinas a servidor oficinas Eliminar carpeta origen Elseif op = Oficinas a SSCC then Mover carpeta backup origen a destino Mover carpeta de backup destino a servidor destino Eliminar carpeta origen 29 de Junio de 2009 Gestión del Directorio Activo 15

Caso de Uso: Mover Carpeta Usuario Elseif op = Oficinas a Oficinas then Mover

Caso de Uso: Mover Carpeta Usuario Elseif op = Oficinas a Oficinas then Mover carpeta de backup origen a backup destino Mover carpeta de backup destino a servidor destino Eliminar carpeta en backup origen Eliminar carpeta servidor origen Elseif op = SSCC a SSCC then Mover carpeta de origen a destino End if Asignar Permisos en la carpeta End if Else Indicar que no existe la carpeta Show Inicio End if Else Indicar que el usuario no existe Show Inicio End if 29 de Junio de 2009 Gestión del Directorio Activo 16

Implementación //Caso de uso Desbloquear Usuario. Código Formulario: If Gestor. Usuario. User. Exists(str. User)

Implementación //Caso de uso Desbloquear Usuario. Código Formulario: If Gestor. Usuario. User. Exists(str. User) Then Gestor. Usuario. Desbloquear str. User //Aquí llamamos al modulo de código Else Msg. Box "El usuario no existe", 0, "Admin. Tool" //Comunicación con el usuario End If //Caso de uso Desbloquear Usuario. Código Módulo: Sub Desbloquear(By. Val user) Set objuser = Get. User(user) If objuser. Is. Account. Locked = True Then objuser. Is. Account. Locked = False objuser. Set. Info Msg. Box "Cuenta desbloqueada", 0, "Admin. Tool" Else Msgbox”La cuenta ya estaba desbloqueada”… 29 de Junio de 2009 Gestión del Directorio Activo 17

Implementación Conexión al Controlador de Dominio: Set obj. SWbem. Locator = Create. Object ("Wbem.

Implementación Conexión al Controlador de Dominio: Set obj. SWbem. Locator = Create. Object ("Wbem. Scripting. SWbem. Locator") Set obj. WMIService = obj. SWbem. Locator. Connect. Server(Inicio. str. Computer, "rootdirectoryLDAP", Inicio. USUARIO_AUTH, Inicio. PASSWORD_AUTH) Ejemplo de Consulta SQL: Set col. Items = obj. WMIService. Exec. Query("SELECT * FROM ds_user WHERE ds_samaccountname= '" & str. User & "'", "WQL", wbem. Flag. Return. Immediately + wbem. Flag. Forward. Only) Llamada a la función Registrar Evento : Log. Event EVENT_ERROR, vb. Tab & "Error al desbloquear la cuenta del usuario " & str. User 29 de Junio de 2009 Gestión del Directorio Activo 18

Pruebas Unitarias: funcionamiento de un módulo de código Pruebas de integración: fase del testeo

Pruebas Unitarias: funcionamiento de un módulo de código Pruebas de integración: fase del testeo de software en la cual módulos individuales de software son combinados y testeados como un grupo. Pruebas de validación: ¿Es esto lo que el cliente quiere? Pruebas del sistema: periodo de pruebas en real 29 de Junio de 2009 Gestión del Directorio Activo 19

Gestión: Planificación Temporal – Diagrama de Gantt La planificación temporal constó de 8 fases:

Gestión: Planificación Temporal – Diagrama de Gantt La planificación temporal constó de 8 fases: Fase 1: DOP Fase 2: Captura de requisitos Fase 3: Análisis Fase 4: Diseño Fase 5: Primera iteración + Pruebas Fase 6: Segunda iteración + Pruebas Fase 7: Tercera iteración + Memoria Fase 8: Presentación pública 29 de Junio de 2009 Gestión del Directorio Activo 20

Gestión: Planificación Temporal – Diagrama de Gantt 29 de Junio de 2009 Gestión del

Gestión: Planificación Temporal – Diagrama de Gantt 29 de Junio de 2009 Gestión del Directorio Activo 21

Horas Planificadas vs Horas Reales Horas Planificadas 180 172 Horas Reales 54 59 44

Horas Planificadas vs Horas Reales Horas Planificadas 180 172 Horas Reales 54 59 44 36 18 3 3 Dop 11 Captura de requisitos 29 de Junio de 2009 18 9 Análisis 18 22 15 Diseño 24 9 Primera Iteración Segunda Iteración Gestión del Directorio Activo Tercera Iteración 9 Presentación Total 22

Relación de Procesos Formativas 18% Tacticas 27% 29 de Junio de 2009 Operativas 55%

Relación de Procesos Formativas 18% Tacticas 27% 29 de Junio de 2009 Operativas 55% Gestión del Directorio Activo 23

Conclusiones n n Gestión del Proyecto: q Dificultad para la estimación temporal de las

Conclusiones n n Gestión del Proyecto: q Dificultad para la estimación temporal de las fases del proyecto (horas de trabajo) q Mala estimación del coste de la tercera iteración (Memoria): 44 horas en lugar de las 24 planificadas Desarrollo de la Aplicación: q Implementación modular. q Gran importancia del análisis y diseño para facilitar la implementación. Aportación: q Experiencia en el desarrollo completo de una aplicación: n Paso por todas fases: captura de requerimientos implementación n Trato con clientes reales y por lo tanto con problemas reales. q Descubrimiento del desarrollo de software (organización, creación y programación) Valoraciones Personales: q Uno de los motivos de la elección de este proyecto fue la asignatura de Ingeniería del Software. q Principal dificultad: escasa experiencia en la programación de aplicaciones “grandes”. q Experiencia enriquecedora y satisfactoria. 29 de Junio de 2009 Gestión del Directorio Activo 24

Introducción Directorio Activo 29 de Junio de 2009 Gestión del Directorio Activo Catálogo global

Introducción Directorio Activo 29 de Junio de 2009 Gestión del Directorio Activo Catálogo global del DA