Full text
Proyecto Fin de Carrera Ingeniería Informática Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos MEMORIA Autor: Mariola Valiente Clavero Director: Ignacio Vilalta Esteban Ponente: Sergio Ilarri Artigas Departamento de Informática e Ingeniería de Sistemas Centro Politécnico Superior Universidad de Zaragoza Edificio Ada Byron C/ María de Luna, 1 50018 Zaragoza Diciembre 2010
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos AGRADECIMIENTOS A mi familia, a cada uno de ellos por la confianza que han depositado en mí y por todo lo que han hecho para que haya podido llegar hasta aquí. A mi novio, Carlos, por la comprensión que ha tenido a lo largo de la duración del proyecto y porque siempre tuvo palabras de ánimo. A mi director, Ignacio, por enseñarme a enfrentarme a un proyecto real y haber estado siempre disponible para resolver cualquier tipo de duda. Sin olvidarme de mi ponente, Sergio, por la ayuda prestada y por la paciencia que ha tenido conmigo en todo momento.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos Resumen El Departamento de Recursos Humanos de la empresa Comex grupo Ibérica le solicitó al proyectando realizar un sistema de información seguro para automatizar alguna de las tareas que hasta la fecha se venían desarrollando manualmente, como por ejemplo: gestión de las ofertas, administración de los candidatos (datos personales, laborales, conocimientos, etc.) e inserción de los mismos en las bases de datos de la empresa en caso de ser contratados, seguimiento de las diferentes entrevistas realizadas durante el proceso de selección, etc. Hasta la realización de este proyecto, este trabajo tenía dificultades. Por una parte, era necesario trabajar con datos utilizados en varias aplicaciones y, por otra parte, aunque este trabajo requería manejar datos confidenciales de la empresa, no se utilizaba la seguridad necesaria para lograr la integridad de los mismos. Como parte del proyecto fin de carrera se ha analizado, diseñado e implementado una herramienta de gestión de recursos humanos que permite al correspondiente departamento realizar su trabajo de forma eficiente. Para conseguir la integridad y confidencialidad de los datos que utiliza dicha aplicación se ha desarrollado un módulo de seguridad basado en certificados digitales. Para interactuar con los datos maestros de la empresa se ha desarrollado un servicio Web seguro y reutilizable. La herramienta de gestión de recursos ha sido desarrollada como una aplicación Web para permitir el acceso a través de Internet. Se ha utilizado una arquitectura orientada a objetos y se ha implementado en la plataforma .NET de Microsoft. Para su correcto funcionamiento debe interaccionar con los servicios Web desarrollados, los cuales le permiten interactuar con datos de la empresa externos a la propia aplicación. Esta herramienta tiene tres módulos principales: Gestión de Ofertas, Gestión de Candidatos y Gestión de Entrevistas. El módulo de Gestión de Ofertas permite a los responsables del Departamento de Recursos Humanos crear nuevas ofertas recogiendo información relativa al puesto de trabajo, la tecnología a utilizar y asignar las preguntas que se van a formular durante una entrevista de la oferta. El módulo de Gestión de Candidatos permite administrar la información personal de los candidatos que hay para cubrir un puesto vacante, así como sus conocimientos y experiencias profesionales. El módulo de Gestión de Entrevistas permite, a partir de una oferta ya cerrada y un candidato, gestionar toda la información que se obtenga durante una entrevista de selección. Para el desarrollo del módulo de seguridad, se ha utilizado una arquitectura orientada a servicios. Este módulo está basado en el actual estándar WS-Security para la gestión de roles en base a un sistema PKI (Public Key Infrastructure). De esta forma el acceso a la herramienta de gestión de recursos se controlará mediante certificados, una serie de directivas de seguridad y a través de una interfaz de servicios Web, aportando por tanto un módulo reutilizable y fácilmente adaptable a otros entornos. Actualmente el sistema de información desarrollado en este proyecto está siendo utilizado por los responsables de forma satisfactoria. Gracias a las aportaciones que ofrece, los miembros del Departamento de Recursos Humanos pueden realizar las tareas que venían desarrollando hasta la fecha de forma más eficiente y segura.
TABLA DE CONTENIDOS I TABLA DE CONTENIDOS CAPÍTULO 1. INTRODUCCIÓN ................................................................................. 3 1.1.- MOTIVACIÓN ................................................................................................ 3 1.2.- COMEX GRUPO IBÉRICA ................................................................................. 3 1.3.- MÉTODOS Y TÉCNICAS UTILIZADAS ................................................................ 4 1.4.- ESTRUCTURA DEL DOCUMENTO ...................................................................... 4 CAPÍTULO 2. ANÁLISIS DEL PROBLEMA .................................................................... 6 2.1.- CAPTURA DE REQUISITOS .............................................................................. 6 2.1.1.- Gestión y seguimiento de las ofertas ....................................................... 6 2.1.2.- Gestión de candidatos ........................................................................... 6 2.1.3.- Gestión de entrevistas y las valoraciones ................................................. 6 2.1.4.- Gestión de las comunicaciones entre empresa y candidatos ....................... 7 2.1.5.- Gestión de alertas de la aplicación .......................................................... 7 2.1.6.- Administración de preguntas fijas y parámetros de la aplicación ................. 7 2.1.7.- Módulos de búsqueda de candidatos y ofertas .......................................... 7 2.1.8.- Almacenamiento de logs ........................................................................ 7 2.1.9.- Administración de usuarios .................................................................... 7 2.1.10.- Seguridad .......................................................................................... 7 2.1.11.- Relaciones con el módulo de gestión de datos Maestros ........................... 8 2.2.- DETERMINACIÓN DEL ALCANCE DEL SISTEMA .................................................. 8 2.3.- ANÁLISIS DE SUBSISTEMAS ........................................................................... 9 2.3.1.- Identificación de subsistemas ................................................................. 9 2.3.2.- Conexión entre los subsistemas .............................................................. 9 CAPÍTULO 3. DISEÑO DEL SISTEMA ........................................................................11 3.1.- DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA ............................................11 3.2.- CICLO DE VIDA FUNCIONAL DEL SISTEMA .......................................................11 3.2.1.- Gestión de ofertas ................................................................................12 3.2.2.- Gestión de los candidatos .....................................................................13 3.2.3.- Gestión de las entrevistas .....................................................................13 3.2.4.- Módulos de búsqueda ...........................................................................13 3.3.- DISEÑO LÓGICO DE LA APLICACIÓN ...............................................................14 3.3.1.- DAL (Data Access Layer) ......................................................................14 3.3.2.- IDAL (Interfaz Data Access Layer) .........................................................14 3.3.3.- Model .................................................................................................15
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos TABLA DE CONTENIDOS II 3.3.4.- BLL (Business Logic Layer) ....................................................................15 3.3.5.- Capa de presentación ...........................................................................15 3.4.- DISEÑO LÓGICO DEL MÓDULO DE SEGURIDAD ................................................15 CAPÍTULO 4. CONSTRUCCIÓN DEL SISTEMA ............................................................17 4.1.- TECNOLOGÍAS EMPLEADAS ............................................................................17 4.1.1.- C# .....................................................................................................17 4.1.2.- JavaScript ...........................................................................................17 4.1.3.- AJAX (Asynchronous JavaScript And XML) ...............................................17 4.2.- IMPLEMENTACIÓN DEL SISTEMA ....................................................................18 4.2.1.- Implementación de la aplicación ............................................................18 4.2.2.- Implementación del Servicio de Identificación .........................................22 4.2.3.- Implementación del servicio de gestión de datos Maestros ........................26 CAPÍTULO 5. GESTIÓN DEL PROYECTO ...................................................................28 5.1.- CICLO DE VIDA DEL DESARROLLO DEL PROYECTO ...........................................28 5.2.- SELECCIÓN DE LA METODOLOGÍA DE DESARROLLO .........................................29 5.3.- HERRAMIENTAS UTILIZADAS .........................................................................29 5.4.- PLANIFICACIÓN INICIAL Y PLANIFICACIÓN FINAL ............................................30 CAPÍTULO 6. CONCLUSIONES ................................................................................32 6.1.- CONCLUSIONES A NIVEL TÉCNICO .................................................................32 6.2.- CONCLUSIONES A NIVEL PERSONAL ...............................................................33 6.3.- TRABAJO FUTURO .........................................................................................33 BIBLIOGRAFÍA .....................................................................................................34
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 1.- INTRODUCCIÓN 2 TABLA DE FIGURAS Fig. 2.1.- Diagrama de Componentes de los subsistemas ...........................................10 Fig. 3.1.- Arquitectura de tres capas .......................................................................11 Fig. 3.2.- Diagrama de Estructuras. Diseño de subsistemas .......................................12 Fig. 3.3.- Diagrama de capas lógicas del sistema ......................................................14 Fig. 3.4.- Diagrama de Actividades: proceso de identificación .....................................16 Fig. 4.1.- Menú de la aplicación ..............................................................................18 Fig. 4.2.- Interfaz del buscador de candidatos ..........................................................19 Fig. 4.3.- Interfaz de alta de candidato ....................................................................20 Fig. 4.4.- Interfaz de alta de oferta .........................................................................21 Fig. 4.5.- Interfaz de alta de preguntas ...................................................................22 Fig. 4.6.- Interfaz de alta de usuarios .....................................................................23 Fig. 4.7.- Control criptográfico ...............................................................................24 Fig. 4.8.- Excepción. No se puede recuperar la clave de descifrado .............................25 Fig. 4.9.- Métodos servicio Web de gestión de datos Maestros ....................................27 Fig. 5.1.- Ciclo de vida evolutivo.............................................................................28 Fig. 5.2.- Distribución de horas iniciales ..................................................................30 Fig. 5.3.- Distribución de horas finales ....................................................................30
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 1.- INTRODUCCIÓN 3 CAPÍTULO 1. INTRODUCCIÓN En la actualidad, existe un gran interés por los sistemas de información orientados a la gestión de tareas administrativas. Por lo general, todos estos sistemas necesitan información que podrá ser suministrada por bases de datos u otros sistemas. Un sistema de información se define como: estudio que trata la inserción y el uso de la tecnología de la información en las organizaciones, instituciones, y la sociedad en general [1]. 1.1.- MOTIVACIÓN El presente proyecto fin de carrera se enmarca dentro del contexto de trabajo de la empresa Comex Grupo Ibérica [2]. La empresa, dentro de su plan de mejora de procesos de desarrollo, está incrementando considerablemente el número de personas involucradas en los mismos. Estos procesos son gestionados por el Departamento de Recursos Humanos el cual, hasta el momento, los venía realizando de forma manual. El hecho de que cada vez haya más personas altamente cualificadas para un menor número de puestos de trabajo hace que los procesos de selección sean una labor cada vez más difícil, por lo que la empresa requiere una herramienta Web que permita gestionar de forma eficiente las diferentes ofertas de empleo que se han hecho públicas, así como las posibles personas candidatas para cubrir las respectivas vacantes. Para dar solución a este problema, en este proyecto fin de carrera se ha desarrollado un sistema de información que permite gestionar las ofertas y manejar información de los candidatos (datos personales, laborales, conocimientos, etc.), así como el seguimiento de las diferentes entrevistas realizadas a éstos durante el proceso de selección. Además, las personas finalmente seleccionadas para cubrir los distintos puestos de trabajo pasarán a formar parte del personal de la empresa, por lo que también se ha desarrollado e implementado un servicio Web seguro para la inserción de dichas personas en las bases de datos que existen actualmente en Comex. Aparte de este sistema, al cual nos referiremos a lo largo de la memoria como herramienta de gestión de recursos, se ha desarrollado un módulo de seguridad basado en los estándares actuales de tecnología Web, para restringir el acceso a la aplicación. 1.2.- COMEX GRUPO IBÉRICA El Proyecto Fin de Carrera se va a llevar a cabo gracias a la colaboración de Comex Grupo Ibérica con el Centro Politécnico Superior. A la finalización del mismo, quedará en disposición de la empresa para su puesta en funcionamiento, mejorando así el proceso que se estaba realizando hasta la fecha. Comex Grupo Ibérica, cuenta con tres líneas de negocio, Comex Integración, Comex Sistemas y Comex Gestión. Cada una desarrolla su actividad específica,
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 1.- INTRODUCCIÓN 4 consultoría y servicios, infraestructura y desarrollo de producto respectivamente, en el ámbito de las tecnologías de la información. De estas tres líneas de negocio este proyecto se centra en la línea Comex Integración, siendo sus tareas principales, entre otras, las que a continuación se detallan: Desarrollo de portales Web (Internet, Intranet, Extranet) Implantación y Configuración de Productos Líderes Asistencia técnica y software Factory Desarrollo de soluciones a medida Desarrollo de productos Integración de sistemas Actualmente Comex Grupo Ibérica posee el certificado CMMI de nivel 2 de calidad. Lo que se consigue con este nivel es que en los proyectos de la organización haya una gestión de los requisitos y que los procesos estén planeados, ejecutados, medidos, controlados y documentados. 1.3.- MÉTODOS Y TÉCNICAS UTILIZADAS Para el desarrollo del proyecto se ha utilizado la metodología Métrica V.3 [17], la cual ha facilitado la generación de la documentación del proyecto y ofrece una visión unificada y flexible de cada uno de los procesos realizados. Dos puntos a destacar de esta metodología son el „Plan de Aseguramiento de la Calidad‟ (Anexo G) y el „Plan de Gestión de Configuraciones‟ (Anexo H). El primero proporciona un marco común de referencia para la definición y puesta en marcha de planes específicos de aseguramiento de calidad aplicables a este proyecto mientras que el segundo se encarga de mantener la integridad de los productos que se obtendrán durante el ciclo de vida del desarrollo. La plataforma .NET [4,5] ha sido la tecnología usada para la implementación del sistema. La aplicación sigue una arquitectura Orientada a Objetos [12] y los módulos de identificación y gestión de Maestros una arquitectura Orientada a Servicios [13] basada en el actual estándar WS-Security [14] para gestionar los roles en base a un sistema PKI [15]. 1.4.- ESTRUCTURA DEL DOCUMENTO El presente documento tiene como objetivo presentar el trabajo desarrollado a lo largo del Proyecto Fin de Carrera. Antes de profundizar en el mismo, se muestra una introducción que permite al lector contextualizar el problema en torno al cual se desarrolla (Capítulo 1). Los capítulos centrales (Capítulos 2, 3 y 4) detallan el análisis, especificando la funcionalidad del sistema, el diseño planteado para cumplir los objetivos que se fijan al inicio del proyecto, y la construcción del diseño planteado.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 3.- DISEÑO DEL SISTEMA 11 CAPÍTULO 3. DISEÑO DEL SISTEMA Este capítulo se centra en el diseño del sistema desarrollado en el proyecto a partir de las especificaciones dadas en el apartado de análisis del problema. Este capítulo es una visión simplificada de cada una de las secciones que se detallan en el Anexo C, „Diseño del Sistema de Información‟. 3.1.- DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA La arquitectura a utilizar en el desarrollo de este proyecto será una arquitectura de tres niveles: cliente, servidor de aplicación y servidor de datos. La figura 3.1 muestra la distribución de una arquitectura en tres capas. Fig. 3.1.- Arquitectura de tres capas Se puede considerar una cuarta capa de servicios, la cual englobaría las llamadas a los diferentes servicios Web detectados: gestión de datos Maestros y Módulo de Seguridad. 3.2.- CICLO DE VIDA FUNCIONAL DEL SISTEMA En este punto se quiere reflejar el ciclo de vida que realizará un responsable del Departamento de Recursos Humanos desde que elabora una oferta hasta la contratación de un candidato y su correspondiente integración en las bases de datos de la empresa. La figura 3.2 muestra un diagrama de estructura de alto nivel, en el que aparecen los módulos que forman el sistema a construir.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 3.- DISEÑO DEL SISTEMA 12 Aplicación Gestión de Recursos Identificación Alta Oferta Alta Candidato Búsqueda Candidatos por Criterio Búsqueda Candidatos por Oferta Búsqueda de Ofertas Gestión de Alertas Administraci ón Gestión Oferta Alta Pregunta Copiar Oferta Copiar Pregunta Gestión Experiencia Gestión Conocimiento Gestión Entrevista oferta oferta oferta preguntas oferta preguntas conocimiento experiencia entervista Gestión Candidato Datos candidato Alta Entevista Datos Candidato Fig. 3.2.- Diagrama de Estructuras. Diseño de subsistemas A continuación se explicará paso a paso el proceso que podrá seguir el responsable de recursos humanos cuando utilice la aplicación. Una persona que se conecte al sistema podrá gestionar las ofertas, candidatos, entrevistas y módulos de búsqueda como se describe en los siguientes apartados. 3.2.1.- Gestión de ofertas 1. La primera tarea a realizar será gestionar las ofertas. Se deberá crear una nueva oferta, la cual recogerá la información relativa al puesto y salario de la misma. También se podrá copiar la oferta a partir de una existente. 2. El siguiente paso será crear las preguntas asociadas a la oferta. Para ello se podrán crear desde cero, asignar las preguntas que son fijas a todas las ofertas o copiar las preguntas de una oferta ya existente. 3. Una vez finalizada la oferta se deberá publicar, es decir, cerrar explícitamente, indicando así que ya no se van a hacer modificaciones sobre la misma, y ya se podrá empezar a operar con ella.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 3.- DISEÑO DEL SISTEMA 13 3.2.2.- Gestión de los candidatos 1. Para dar de alta un nuevo candidato será necesario conocer información personal del mismo, como su nombre, teléfono, situación laboral, etc. 2. Una vez dado de alta el candidato, se podrán crear conocimientos y experiencias laborales del mismo indicando tecnologías y fechas de los mismos. 3. A partir de un candidato y una oferta se podrá hacer una asociación entre ellos por medio de una entrevista. 3.2.3.- Gestión de las entrevistas 1. Cada entrevista lleva asociado un estado („Finalista‟, „Eliminado‟, etc.), de manera que, al asociar un candidato a una oferta, el estado de dicha entrevista es „Entrevistar‟. 2. Cuando se proceda a realizar la reunión física con el candidato, o una vez esta haya finalizado, se podrá acceder a la modificación de la entrevista. 3. La entrevista mostrará todas las preguntas asociadas a la oferta que trata, junto con la posibilidad de hacer anotaciones referentes a las respuestas dadas, así como valoraciones a las mismas. 4. Junto al estado, se podrán registrar resultados de la reunión (como pretensiones laborales del candidato), se podrán asociar nuevos conocimientos del candidato descubiertos durante el proceso de selección, etc. 5. Una vez realizadas todas las valoraciones cuantitativas (valoración técnica de las preguntas formuladas y valoración personal del entrevistador), la aplicación calculará la media de ambas, para posteriores ponderaciones del candidato. 6. Desde la propia entrevista se podrá indicar que el candidato ha sido contratado. Automáticamente será borrado de la base de datos de la aplicación tanto el candidato como su información asociada (conocimientos, ofertas, entrevistas, etc.), y se insertará en la base de datos Maestra de la empresa por medio del servicio Web que se ha de implementar para tal efecto. 3.2.4.- Módulos de búsqueda 1. Una vez dados de alta los escenarios necesarios de la aplicación, se podrá acceder a los módulos de búsqueda. 2. Dos módulos permitirán buscar candidatos por criterios y ofertas, respectivamente. 3. Como resultado de la búsqueda se mostrarán todos los candidatos que cumplan con dichos criterios. 4. Para cada uno de los candidatos se mostrará la posibilidad de ver sus datos, modificarlos, realizar una entrevista con él o ponerse en contacto vía correo electrónico o mensaje de texto. 5. Un tercer módulo permitirá buscar ofertas creadas desde la aplicación.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 3.- DISEÑO DEL SISTEMA 14 6. Como resultado de esta búsqueda se mostrarán todas las ofertas que cumplan los criterios, junto con la posibilidad de modificar sus datos o sus preguntas asociadas. 3.3.- DISEÑO LÓGICO DE LA APLICACIÓN En esta tarea se divide de forma lógica el Sistema de Información en subsistemas de diseño, como muestra la figura 3.3, con el fin de reducir la complejidad y facilitar el mantenimiento. Fig. 3.3.- Diagrama de capas lógicas del sistema 3.3.1.- DAL (Data Access Layer) Capa de gestión de datos, la cual se comunica con el SGBD para consultar, modificar y/o borrar datos de las diferentes bases de datos. El sistema utilizará dos bases de datos. Por una parte se podrá acceder a los datos Maestros de la empresa donde se encuentra toda la información relativa a clientes, contactos, empleados, etc. Por otra parte se desarrollará una base de datos propia para la herramienta de gestión de recursos. Esta base de datos contendrá información referente a las ofertas, candidatos, entrevistas, preguntas, conocimientos, etc. La representación física y las relaciones entre las tablas de ambas bases de datos serán referenciadas en los apartados C6.1 („Diseño del modelo físico de datos‟) y C6.2 („Especificación de los caminos de acceso a los datos‟) del Anexo C. 3.3.2.- IDAL (Interfaz Data Access Layer) Se trata de una interfaz que permite conocer las funciones a través de las cuales se puede acceder a las bases de datos de la capa anterior. Posee una especificación detallada de cada método, que facilita su entendimiento a personas ajenas al proyecto y permite la reutilización de estas funciones en sucesivas versiones.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 3.- DISEÑO DEL SISTEMA 15 3.3.3.- Model Este modelo recoge la especificación detallada de cada uno de los objetos que serán utilizados en la capa de negocio. Se detallarán sus constructores, atributos y operaciones de lectura/escritura. En el apartado C4 („Diseño de clases del sistema‟) se puede ver el diagrama de clases UML del sistema. 3.3.4.- BLL (Business Logic Layer) En esta capa es donde se lleva a cabo la mayor parte de la funcionalidad del sistema. Para conseguirlo necesitará comunicarse tanto con la capa de presentación como con la capa de datos de la siguiente forma: De la capa de presentación se obtendrán los datos introducidos por el usuario y tras su procesamiento se le devolverá el resultado. Realizará las comunicaciones necesarias con la capa de gestión de datos para conseguir aquella información necesaria para solventar las peticiones del usuario. Realizará las operaciones que requieran un procesado de datos. Por último, será la encargada de la invocación de los servicios Web que proporcionan funcionalidad a la aplicación. Como se puede ver, la lógica de negocio es la capa que más funcionalidad tiene de todo el Sistema. 3.3.5.- Capa de presentación Es la encargada de mostrar la información devuelta por la capa de lógica de negocio. Es la única capa que interactúa con el cliente, es decir, éste trabajará continuamente con ella (introducir datos, dar de alta, etc.) olvidándose de la funcionalidad interna. 3.4.- DISEÑO LÓGICO DEL MÓDULO DE SEGURIDAD Esta tarea sirve para entender el análisis y diseño que se ha realizado en el módulo de seguridad. Para su comprensión se mostrará el diagrama de actividades representado en la figura 3.4.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 3.- DISEÑO DEL SISTEMA 16 Fig. 3.4.- Diagrama de Actividades: proceso de identificación 1. La primera tarea que el usuario deberá realizar será identificarse en el sistema. 2. A continuación se codificará en formato MD5 [16] la contraseña introducida. 3. El siguiente paso será cifrar las credenciales (nombre de usuario y contraseña codificada) con la clave pública de un certificado digital propio del usuario. 4. Una vez cifrados los datos, será el momento de firmarlos. Para ello se dispondrá de otro par de claves. En este caso se utilizará la clave privada para firmar las credenciales. 5. Tras haber realizado los pasos anteriores, se invocará al servicio Web que deberá validar la firma. Para conseguir este propósito utilizará la clave pública del certificado utilizado para firmar. 6. Antes de validar los datos del usuario, será necesario descifrar las credenciales. Para ello se utilizará la clave privada del certificado utilizado para cifrar. 7. Por último será necesario validar el usuario. En caso de que no tenga los privilegios necesarios, el sistema volverá a pedir los datos de acceso.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 4.- CONSTRUCCIÓN DEL SISTEMA 17 CAPÍTULO 4. CONSTRUCCIÓN DEL SISTEMA En este capítulo se plantea una posible alternativa para la implementación y despliegue de los procesos de negocio construidos. Para poder comprender de forma completa este capítulo será aconsejable haberse leído el Anexo B, „Diseño del Sistema de Información‟. La información que aparecerá a lo largo de este capítulo, estará ampliamente detallada en el Anexo D, „Construcción del Sistema de Información‟. 4.1.- TECNOLOGÍAS EMPLEADAS Se ha desarrollado un cliente ligero, es decir, el grueso de la aplicación recae en el lado del servidor, liberando así al cliente. La mayor parte del sistema ha sido implementado utilizando el lenguaje de programación C# [3,10], pero también se ha utilizado JavaScript [9] y AJAX [7,8] para ciertas tareas concretas. 4.1.1.- C# C# es un lenguaje orientado a objetos creado como uno de los lenguajes de implementación pertenecientes a la plataforma .NET de Microsoft. La decisión de utilizar este lenguaje fue tomada por la empresa por dos motivos; por una parte la empresa es partner de Microsoft y por otra los subsistemas internos de la empresa estaban construidos con el mismo lenguaje, lo que facilitaba el rediseño de los mismos en caso de que fuera necesario para acceder al nuevo servicio Web de gestión de datos Maestros. 4.1.2.- JavaScript JavaScript es un lenguaje orientado a objetos de programación interpretado, es decir, que no requiere compilación. Este lenguaje se ha utilizado para hacer las comprobaciones necesarias cuando el usuario introduzca los datos. Por ejemplo cuando un usuario introdujera un código postal que no tiene cinco caracteres, el sistema mostraría un mensaje de advertencia. 4.1.3.- AJAX (Asynchronous JavaScript And XML) AJAX (JavaScript asíncrono y XML) es una técnica de desarrollo Web para crear aplicaciones interactivas. Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 4.- CONSTRUCCIÓN DEL SISTEMA 18 4.2.- IMPLEMENTACIÓN DEL SISTEMA Tras el análisis y el diseño del sistema, este apartado mostrará la solución una vez implementada. Por una parte se mostrará la herramienta de gestión de recursos y por otra el módulo de seguridad. Se utilizarán imágenes reales de las interfaces de ambas aplicaciones para facilitar el entendimiento del sistema 4.2.1.- Implementación de la aplicación Este punto muestra algunas de las tareas que se pueden realizar con la herramienta de gestión de recursos. En el anexo E („Manual de usuario‟) se muestra su funcionalidad mientras que en el anexo F („Manual de instalación‟) se muestra el proceso a seguir para ponerlo en producción. Todos los datos que aparecen en las figuras son datos ficticios, ya que el proyectando firmó un contrato de confidencialidad con la empresa que le impide mostrar datos reales. A continuación se muestra el menú principal, que posee ocho enlaces y que está presente en todas las pantallas de la aplicación: Fig. 4.1.- Menú de la aplicación Buscador: búsqueda de candidatos introduciendo una serie de criterios de búsqueda. Candidatos oferta: búsqueda de candidatos asociados a una oferta. Ofertas: búsqueda de ofertas por nombre o descripción. Alta candidato: creación de un nuevo candidato. Alta oferta: creación de una nueva oferta. Alertas: notificaciones al administrador acerca de pagos que debe realizar la empresa por el programa de „Recomendación de empleados‟. Administración: gestión de parámetros de la aplicación y preguntas fijas de las ofertas. Usuarios: creación de nuevos usuarios. BUSCADORES Los buscadores están divididos en cuatro secciones: criterios de búsqueda, botón para efectuar la misma, resultados obtenidos y acciones a realizar sobre los resultados obtenidos. Ninguno de los criterios de búsqueda es obligatorio. En caso de que se dejen todos en blanco, la aplicación muestra todos los resultados registrados en la aplicación. Uno de los tres interfaces de la búsqueda es el que aparece en la figura 4.2.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 4.- CONSTRUCCIÓN DEL SISTEMA 19 Fig. 4.2.- Interfaz del buscador de candidatos Como resultado de la búsqueda se muestra un listado con todos los registros (candidatos en caso de los dos primeros buscadores y ofertas en caso del buscador de ofertas), la información más relevante de cada uno de ellos y una serie de acciones que se pueden efectuar sobre los mismos (visualización, eliminación, modificación, etc.). ALTA DE UN CANDIDATO Como su propio nombre indica, esta sección permite crear un nuevo candidato, partiendo de la creación de su información personal, para posteriormente poder insertar información acerca de sus conocimientos, experiencias o entrevistas realizadas. La pantalla que se muestra en primer lugar es la que aparece en la figura 4.3.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 4.- CONSTRUCCIÓN DEL SISTEMA 20 Fig. 4.3.- Interfaz de alta de candidato Una vez dada de alta la información personal de un candidato se puede dar de alta el resto de la información del mismo, como sus conocimientos, entrevistas y experiencias profesionales. ALTA DE OFERTA Desde la quinta opción del menú principal de la aplicación se accede a la sección de „Alta de Ofertas‟. Para dar de alta una nueva oferta se muestra la figura 4.4.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 4.- CONSTRUCCIÓN DEL SISTEMA 27 Fig. 4.9.- Métodos servicio Web de gestión de datos Maestros
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 5.- GESTIÓN DEL PROYECTO 28 CAPÍTULO 5. GESTIÓN DEL PROYECTO En este capítulo se va a detallar la metodología seguida para el control de las fases y tareas del trabajo del proyecto. Para ello se ha utilizado el apoyo de distintas herramientas a las cuales se hará referencia. De todo ello, se mostrará una visión simplificada que se puede encontrar más detallada en el Anexo J, „Gestión del Proyecto‟. 5.1.- CICLO DE VIDA DEL DESARROLLO DEL PROYECTO El ciclo de vida escogido ha sido el evolutivo. El objetivo es vencer las limitaciones del modelo de ciclo de vida en cascada, motivadas por la deficiente realimentación entre sus fases. Dentro de este ciclo de vida existen dos posibilidades, como son: Prototipo evolutivo: cuyo objetivo es poner un sistema a disposición de los usuarios. El proceso comienza con unos requisitos claros. Prototipo experimental: cuyo objetivo consiste en validar o identificar los requisitos del sistema. El proceso comienza con unos requisitos poco claros. En este proyecto se sigue la opción del prototipo evolutivo, como se puede observar en la figura 5.1 por diversas razones que se detallarán a continuación: Fig. 5.1.- Ciclo de vida evolutivo Sus características son: Debe usarse en sistemas en los que no es posible, inicialmente, desarrollar la especificación, como es el caso de las interfaces de usuario. Se basa en técnicas que permiten obtener de forma rápida versiones del sistema. La verificación es imposible por no existir especificación. La validación demuestra de forma subjetiva la adecuación del sistema. También se tienen en cuenta los problemas derivados de este ciclo de vida, para intentar evitarlos:
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 5.- GESTIÓN DEL PROYECTO 29 - Los procesos de gestión existentes presuponen que el modelo de desarrollo es en cascada. - Los cambios continuos provocan la destrucción de la estructura del sistema, encareciendo el posterior mantenimiento. - El tiempo de vida de los sistemas desarrollados con esta técnica será necesariamente corto, haciendo esto que sea necesario contar con un grupo de especialistas. 5.2.- SELECCIÓN DE LA METODOLOGÍA DE DESARROLLO En este apartado se destaca la metodología a seguir a lo largo del proyecto, la cual ha permitido llevar un orden adecuado de las tareas para facilitar la elaboración del mismo. La elección ha sido la metodología Métrica v3 [17] que, siendo muy extensa para cubrir sistemas de tamaño reducido, es flexible y abierta a la hora de definir los documentos que deben salir de cada fase. Esta metodología no sólo facilita la generación de la documentación del proyecto mientras se realiza cada una de las tareas de desarrollo, sino que también ofrece una visión unificada, clara, ampliable y flexible de cada uno de los procesos realizados. Como esta metodología es muy extensa, se realizará un estudio de la misma para poder ajustarla a las necesidades del proyecto. Este punto se explica con más detalle en el Anexo A, „Documento de Objetivos del Proyecto‟. 5.3.- HERRAMIENTAS UTILIZADAS A lo largo del proyecto se han utilizado distintas herramientas para facilitar las tareas de gestión del proyecto, siendo las más importantes las siguientes: Microsoft Office Word 2003: Utilizado en la elaboración de los documentos a entregar a la finalización del proyecto. Microsoft Office Excel 2003: Utilizado en la captura de requisitos y en el control de tiempo utilizado en el desarrollo por parte del proyectando. Microsoft Office Visio 2003: Utilizado para la construcción de los diferentes diagramas incorporados a lo largo de la memoria. Microsoft Office PowerPoint 2003: Utilizado para la elaboración de la presentación del proyecto una vez concluido. Poseidón for UML: Al igual que Visio, utilizado en la construcción de algunos diagramas. [11] Adobe Acrobat 7.0 Professional: Establece el formato de los documentos a entregar.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 5.- GESTIÓN DEL PROYECTO 30 5.4.- PLANIFICACIÓN INICIAL Y PLANIFICACIÓN FINAL A continuación se muestran dos diagramas en los que se puede observar el tiempo empleado en cada una de las fases del desarrollo: Fig. 5.2.- Distribución de horas iniciales Fig. 5.3.- Distribución de horas finales La fase de Gestión del Proyecto hace mención a todas las tareas de gestión sin incluir el desarrollo de la memoria, ya que durará a lo largo de toda la vida del proyecto.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 5.- GESTIÓN DEL PROYECTO 31 Tanto por ciento del tiempo de cada fase Planificación Original Planificación Final % Días % Días Gestión del Proyecto 15,28 20 15,73 25 Análisis del Sistema de Información 16,36 22 16,85 27 Diseño del Sistema de Información 17,38 24 20,78 33 Construcción del Sistema de Información 42,03 58 44,94 72 Aceptación e Implantación del Sistema de Información 8,91 12 1,68 3 Una vez observados todos estos datos queda demostrado que no hay excesos en los tiempos de cada una de las fases, sino que queda repartido el tiempo según su envergadura a la hora del desarrollo del proyecto, dando mayor énfasis a las etapas de desarrollo “puro”, como son: análisis, diseño y construcción. El resultado ha sido más que aceptable, ya que no ha aparecido demasiada desviación en cuanto a las fases del proyecto. El único punto destacable sería la aceptación e implantación del sistema de información. Esto ha sido debido a que durante la etapa de construcción ya se hicieron pruebas de implantación, es decir, se publicó la aplicación para posteriormente ponerla a prueba en un servidor IIS (Internet Information Server).
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 6.- CONCLUSIONES 32 CAPÍTULO 6. CONCLUSIONES Este capítulo muestra una reflexión del trabajo que se ha llevado a cabo a lo largo de todo el proyecto, extrayendo las conclusiones que se obtienen después de haber conseguido los resultados que al comienzo se planteaban como objetivos. Además de lo anterior, es en este capítulo donde se plasma una visión de las dificultades encontradas a lo largo de todo el desarrollo. 6.1.- CONCLUSIONES A NIVEL TÉCNICO Los objetivos planteados en el análisis del proyecto han sido cubiertos. En estos momentos se dispone de una aplicación que permite realizar las siguientes tareas: Tareas relativas a la seguridad Codificación de la contraseña de acceso en formato MD5. Cifrado de las credenciales de acceso con la clave pública de un certificado emitido para la persona que se intente autentificar. Firma de las credenciales cifradas con la clave privada de un segundo certificado para comprobar la autenticidad del emisor. Validación de la firma con la clave pública del certificado utilizado para firmar las credenciales. Descifrado de las credenciales con la clave privada del certificado utilizado para cifrarlas. Validación del usuario. Alta nuevos usuarios. Tareas relativas a las actividades del Departamento de Recursos Humanos Realización de ofertas y gestión de sus preguntas asociadas. Gestión de los candidatos, sus conocimientos y experiencias. Seguimiento de las entrevistas y de las valoraciones de las mismas. Contratación de candidatos e inserción de los mismos en bases de datos externas a la aplicación por medio de servicios Web. Gestión de medios de comunicación entre la empresa y los candidatos, como son mensajes de texto y correos electrónicos. Administración de parámetros y preguntas fijas.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos 6.- CONCLUSIONES 33 6.2.- CONCLUSIONES A NIVEL PERSONAL El proyecto me ha supuesto un gran enriquecimiento técnico, lo que me ha permitido formarme en las más novedosas tecnologías utilizadas por la empresa. Además de implementar soluciones con las que no estaba familiarizada, en algunos puntos del proyecto ha sido necesario evaluar diversas herramientas para concluir cuál de ellas se ajustaba mejor a las tareas a realizar. Este punto se centra más en el proceso de gestión, ya que la empresa impuso la tecnología de desarrollo. En algunas fases del proyecto ha sido necesario contrastar diversas fuentes de información para sacar conclusiones de la flexibilidad proporcionada por una tecnología o lenguaje dado, y decidir si se adecuaba a los requerimientos del proyecto. Un ejemplo de esto sería el utilizar JavaScript. En definitiva, el proyecto ha hecho que consiguiera desarrollar habilidades, como dar soluciones a problemas que aparecen en el transcurso de un proyecto real, que “a priori” no se dan en trabajos desarrollados en la formación universitaria. Gracias al trabajo realizado y a los conocimientos adquiridos a la hora de elaborar el proyecto, es una gran satisfacción comprobar el interés que la empresa ha mostrado por mi trabajo. Es por ello que ésta me contrataró para que pudiera continuar con las diferentes versiones del sistema y la realización de nuevos proyectos. 6.3.- TRABAJO FUTURO Esta aplicación es una primera versión de lo que se quiere llegar a conseguir. Se dividió en diversas fases, ya que de no haber sido así se habría excedido la carga correspondiente a un proyecto fin de carrera. Actualmente se está trabajando en dos ampliaciones del sistema. Por una parte, debido a la utilidad del módulo de seguridad, los responsables de la empresa le han propuesto al proyectando su integración en otras aplicaciones. Por otra parte, se está trabajando en la comunicación del servicio Web de Gestión de Maestros con varias de las herramientas utilizadas en el área de gestión de la empresa y que utilizaban la misma información pero repetida en cada una de las aplicaciones. De esta forma se conseguirá centralizar la información en una única base de datos.
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos L.- CIERRE DEL PROYECTO 34 BIBLIOGRAFÍA [1] Sistema de Información [Último acceso 09/11/2010]. URL: http://es.wikipedia.org/wiki/Sistema_de_información [2] Página Web Comex grupo Ibérica [Último acceso 09/11/2010]. URL: http://www.grupocomex.com [3] Ejemplos de código en ASP.NET C# [Último acceso 09/11/2010]. URL: http://www.codeproject.com/ URL: http://www.solocodigo.com/ [4] Professional ASP.NET 2.0. Authors Bill Evjen, Scott Hanselman, Farhan Muchammad, Srinivasa Sivakumar y Devin Rader Published by Wiley Publishing, Inc. Indianapolis URL: http://www.wiley.com [5] Información sobre la tecnología de Microsoft [Último acceso 09/11/2010]. URL: http://msdn.microsoft.com/es-es/default.aspx [6] Enterprise Library [Último acceso 09/11/2010]. URL: http://msdn.microsoft.com/en-us/library/cc467894.aspx [7] ASP.NET AJAX [Último acceso 09/11/2010]. URL: http://www.asp.net/ajax/ [8] ASP.NET AJAX Control Toolkit [Último acceso 09/11/2010]. URL: http://www.asp.net/ajax/ajaxcontroltoolkit/samples/ [9] Manual JavaScript [Último acceso 09/11/2010]. URL: http://www.webestilo.com/javascript/ [10] Manual C# [Último acceso 09/11/2010]. URL: http://www.canalvisualbasic.net/temarios/manual_c_sharp.asp [11] Poseidon for UML [Último acceso 09/11/2010]. URL: http://www.gentleware.com/ [12] Programación Orientada a Objetos [Último acceso 09/11/2010].
Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos L.- CIERRE DEL PROYECTO 35 URL: http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos [13] Arquitectura Orientada a Servicios [Último acceso 09/11/2010]. URL: http://es.wikipedia.org/wiki/SOA [14] WS-Security [Último acceso 09/11/2010]. URL: http://es.wikipedia.org/wiki/WS-Security [15] Sistema PKI [Último acceso 09/11/2010]. URL: http://es.wikipedia.org/wiki/PKI [16] Algoritmo de reducción criptográfico MD5 [Último acceso 09/11/2010]. URL: http://es.wikipedia.org/wiki/MD5 [17] Métrica V3 [Último acceso 09/11/2010] URL: http://www.csi.map.es/csi/metrica3/index.html [18] WSE 3.0 [Último acceso 09/11/2010] URL: http://msdn.microsoft.com/en-us/library/ms977317.aspx [19] Certificado X.509 [Último acceso 09/11/2010] URL: http://es.wikipedia.org/wiki/X.509 [20] Transport Layer Security [Último acceso 09/11/2010] URL: http://es.wikipedia.org/wiki/Transport_Layer_Security