Upload
garciafjgs
View
158
Download
2
Embed Size (px)
Citation preview
MedLine-Ed Bennett Equipo Alef 2013
Master diseño y desarrollo de aplicaciones web Itinerario Java
UNED
1. Requisitos previos 2. Seguridad 3. Manual de usuario 4. Análisis 5. Diseño 6. Implementación 7. Pruebas 8. Problemas encontrados 9. Componentes del equipo
ÍNDICE
1. Requisitos previos
Para empezar esta segunda parte es necesario tener
instalado Xampp, con los contenido:
• el servidor HTTP Apache,
• el gestor de BBDD relacional, multihilo y multiusuario
MySQL,
• el servidor contenedor de servlets Tomcat,
También es necesario familiarizarse con los servlets, jsp,
JavaBeans, XML, el conector/J.
2. Seguridad • Se ha realizado un estudio previo de la
seguridad en Tomcat que se adjunta en: pero por ser necesario crear un almacen de claves no se ha implementado al trabajar en localhost
• Se ha incluido la encriptación con MD5 de
las claves de acceso a la BBDD.
3. Manual de usuario. • Descarga del software: aquí.
• Se ha confeccionado un manual de usuario para que
los usuarios sepan cómo manejar la aplicación.
• Para probar hay que arrancar primero el Xampp (solo el Apache y el MySqL).
• A continuación se puede ejecutar desde eclipse la
aplicación. Ver video
4. Análisis El equipo realiza un análisis del documento de
requerimientos para realizar una especificación de requerimientos funcionales.
También se realiza el reparto de tareas entre los distintos miembros del equipo.
Del análisis también se deduce el flujo de tareas de la aplicación que hemos seguido en el Diseño
5. Diseño ● Seguimos el diseño de una BBDD con
modelo vista controlador siguiendo el diagrama UML. y diseñando el siguiente diagrama de mockups como interfaz gráfica para el cliente.
● Al final el beans HealthTopics.java incluye todas las clases y métodos de búsqueda para MedLineBennett y las búsquedas mistas, quedando solo un beans Bennett.java para las busquedas en EdBennett.
6. Implementación
6.1. Archivo web.xml 6.2. Archivo index.jsp y menu.jsp 6.3. Modelo vista controlador 6.4. Encapsulado de las clases, beans 6.5. Encriptación 6.6. Base de datos 6.7. Subida de archivos al servidor 6.8. Búsquedas 6.9. Templates 6.10. Control de errores 6.11. Control de sesión
6.1. Archivo web.xml
Es el archivo de despliegue de la aplicación en el que destacamos las siguientes etiquetas: <servlets> uno para cada servlet, los
<servlets-mappinp> son los alias del servlet, cada servlet puede tener varios.
l<welcome-file-list> donde estan los archivos de inicio de la aplicación, en nuestro caso index.jsp.
6.2. Archivo index y menu
El archivo index.jsp contiene un <form> que recoge el valor de los parámetros “nombre de usuario” y “contraseña” introducidos y los envía al servlet Login_action.java.
Recibe de los servlets Login_action.java y de CerrarSesion.java los valores de la variable estado y en función del valor de la misma da un mensaje correspondiente.
6.3. Modelo Vista Controlador Los archivos .jsp son las vistas de la aplicación donde, como puede ver en el enlace, ver modelo vista - controlador, se recibe la información del usuario y se transmite al servlet o a otro jsp.
La ejecución se realiza en el servlet y se devuelve al jsp para su presentación al usuario.
6.4. Encapsulado de las clases, beans Inicialmente se iba a cargar el XML en la
MySQL mediante parseo pero esta opción se dejo solo para la tabla Ed Bennett. Por ese motivo se creó un beans por cada una de las tablas de la base de datos que han quedado en la version 0.9.
En la versión definitiva 1.0 se ha creado la clase HealthTopics.java que contiene todas las clases, los atributos y los métodos para los tres tipos de búsqueda
6.5. Encriptación La encriptación de las claves para acceder a
la aplicación se ha realizado con MD5.
Los usuarios y las claves se han alojado en una tabla dentro de la base de datos.
El acceso a la base de datos se hace por medio de una clave genérica incluida en el código (bean BBDD.java, línea 47)
6.6. Bases de datos En la base de datos MySqL se almacena la
BBDD medlinebennet.sql con las siguiente tablas:
- Bennet: Contiene los datos del archivo .csv con la tabla EdBennet
- Usuarios: En sus campos aparecen los usuarios y sus claves encriptadas con el método MD5
6.7. Subida de archivos al servidor • Se realiza mediante los archivos
importar.jsp y su correspondiente controlador UploadFile.java
• Se utiliza un parámetro para controlar el
tamaño máximo del archivo así como el servlet ambos incluidos y referenciados, respectivamente en el archivo web.xml
• Ver más
6.8. Búsquedas
6.8.1. Busquedas en XML. Se lleva a cabo con los archivos MedLineView.jsp y
MedLineSearch.java 6.8.2. Busquedas en Base de Datos Se encarga a los archivos BennettView.jsp y
BennettSearch.java 6.8.3. Busquedas mixtas Se llevan a cabo con los archivos mixView.jsp MixSearch.java Llaman a los beans HealthTopics.java y Bennett.java Ver más
6.9. Templates
Se introducen para poner las imágenes y archivos comunes comunes a las vistas, entre ellos destacamos
Además se utilizan las librerias JSTL para cambiar las referencias a los scriplets en:
index.jsp, medLineView.jsp, mixView.jsp, bennetView.jsp
Ver más
6.10. Control de errores
El control de errores se realiza mediante:
● error.jsp.- Captura los errores en las vistas
● MyerrorHandler.java.- Captura los errores durante la carga del XML
ver más
6.11. Control de sesión
Se utiliza para este cometido el archivo verifyAcces.jsp de forma que no se puede acceder a la aplicación desde los archivos mixView.jsp, bennetView.jsp, medLineView.jsp, index.jsp, importar.jsp si antes realizar un inicio de sesión.
ver más sobre control de sesión
7. Pruebas y bases de datos Se incluyen los ficheros de prueba: ● testUpload.jsp con la finalidad de comprobar
la carga subida de archivos al servidor ● el archivo medlinecompleta.xml contiene los
datos en xml que se usa en las búsquedas MedLine y las búsquedas mixtas.
● se incluye una base de datos medlinebennett.sql con las tablas EdBennet y la tabla de usuarios con las claves encriptadas en MD5 para comprobar el funcionamiento
8. Problemas encontrados y mejoras
En el acta nº 85 correspondiente a la reunión nº 20 del trabajo se decide cambiar para realizar las busquedas de MedLine contra el XML
Una nueva clase generada mediante el XSD usando JAXB (HealthTopics.java) y un JSP de prueba (testjaxb.jsp) para que el equipo vea cómo se ejecuta una consulta contra XML utilizando JAXB.
Finalmente el grupo decide hacer las búsquedas contra el XML en vez de con mySQL por motivos de eficiencia para el usuario.