• No se han encontrado resultados

Desarrollo de un sistema para administración de viajes misioneros usando tecnología Open Source

N/A
N/A
Protected

Academic year: 2020

Share "Desarrollo de un sistema para administración de viajes misioneros usando tecnología Open Source"

Copied!
107
0
0

Texto completo

(1)DESARROLLO DE UN SISTEMA PARA ADMINISTRACION DE VIAJES MISIONEROS USANDO TECNOLOGIA OPEN SOURCE. LUIS ALFREDO BETANCOURT MALDONADO. UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERIA DE SISTEMAS BOGOTA 2004.

(2) DESARROLLO DE UN SISTEMA PARA ADMINISTRACION DE VIAJES MISIONEROS USANDO TECNOLOGIA OPEN SOURCE. LUIS ALFREDO BETANCOURT MALDONADO. Proyecto de Grado presentado como requisito para optar al título de Ingeniero de Sistemas. Modalidad TESIS DIRIGIDA. Asesor JUAN PABLO QUIROGA Ingeniero de Sistemas y Computación. UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERIA DE SISTEMAS BOGOTA 2004.

(3) A Dios por ser mi razón de ser, a quien debo mi vida.. A mis padres por su amor, entrega, paciencia, guía.. A mi hermano, mi mejor compañero.. A mi tio y mis tres hermanitos,. por su apoyo y ayuda incondicional. Los amo.

(4) AGRADECIMIENTOS. Juan Pablo Quiroga Ingeniera de Sistemas, Universidad de los Andes. Director de tesis.. Gabriel Reyes Líder de misiones, Iglesia la Biblia Dice.. Facultad de Ingeniería de Sistemas Universidad de los Andes.. A la universidad y los profesores del área de desarrollo de software de la facultad de Ingeniería de Sistemas de la Universidad de los Andes por su apoyo incondicional y la oportunidad brindada para la realización de este trabajo.. 4.

(5) TABLA DE CONTENIDO. INTRODUCCION 1. CONTEXTO. 11. 1.1.. 11. DEFINICIÓN DEL PROBLEMA. 1.1.1.. PRESENTACIÓN DE LA EMPRESA. 11. 1.1.2.. IDENTIFICACIÓN DEL PROBLEMA. 12. 1.2.. OBJETIVOS. 14. 1.2.1.. OBJETIVO GENERAL. 14. 1.2.2.. OBJETIVOS ESPECÍFICOS. 14. 1.3.. JUSTIFICACIÓN. 15. 1.4.. IMPACTO Y VIABILIDAD. 16. 2. MARCO TEÓRICO. 18. 2.1.. PLATAFORMA DE DESARROLLO. 18. 2.1.1. HERRAMIENTAS DE DESARROLLO. 18. 2.1.2. SERVIDOR WEB. 19. 2.1.3. INTERNET. 21. 2.1.3.1. GENERALIDADES DE INTERNET. 21. 2.1.3.2. SISTEMAS DE INFORMACIÓN EN INTERNET. 22. 2.1.4. APLICACIONES WEB. 24. 2.2. MODELO DEL PROCESO DEL SOFTWARE. 26. 2.2.1. MODELO EN CASCADA. 26. 2.2.2. MODELO INCREMENTAL. 27. 2.3. BASES DE DATOS. 32. 2.3.1. COMPONENTES PRINCIPALES. 32. 2.3.2. VENTAJAS EN EL USO DE BASES DE DATOS. 33. 2.3.3. TIPOS DE MODELOS DE DATOS. 33. 5.

(6) 2.3.4. BASES DE DATOS DISTRIBUIDAS. 36. 2.3.5. TENDENCIAS FUTURAS. 36. 2.3.6. ALGUNAS BASES DE DATOS. 36. 2.4. PROGRAMACIÓN WEB. 38. 2.4.1. JAVASCRIPT. 38. 2.4.2. JAVA SERVER PAGES (JSP). 39. 2.5.5. CONTENIDO DE UN ENTERPRISE BEAN. 44. 2.5.6. WEB COMPONENTS. 45. 2.5.7. SERVLETS. 45. 2.5.8. JSP. 46. 3. METODOLOGÍA PARA EL DESARROLLO DEL PROYECTO. 48. 3.1. FASES EN LA ELABORACION DEL PROYECTO. 48. 3.1.1. FASE I. LECTURA Y ANÁLISIS DE INFORMACIÓN. 48. 3.1.2. FASE II - ANÁLISIS Y DISEÑO. 48. 3.1.3. FASE III.- IMPLEMENTACIÓN Y PRUEBAS. 49. 4. DESARROLLO DEL SISTEMA. 51. 5. PRUEBAS Y ESTADO FINAL DEL SISTEMA. 100. 6. CONCLUSIONES. 102. 8. BIBLIOGRAFÍA. 105. ANEXOS. 94. 6.

(7) LISTA DE FIGURAS Pág.. Figura 1.. Esquema de interacción de documentos Web. 25. Figura 2.. Modelo en cascada. 26. Figura 3.. Modelo Incremental. 27. Figura 4.. Metodología Extreme Programing. 30. Figura 5.. Modelos de implementación de J2EE. 42. Figura 6.. Arquitectura J2EE. 45. Figura 7.. Arquitectura Eclipse. 47. 7.

(8) LISTA DE ANEXOS. Pág.. Anexo A.. Descripción de las tablas de la base de datos del sistema. 8. 105.

(9) INTRODUCCIÓN. En la actualidad las organizaciones se han visto afectadas por las denominadas Sociedades de la Información, en las cuales el tratamiento y procesamiento de datos ha ido adquiriendo mayor importancia debido al valor agregado que éste representa para las organizaciones como aditivo en su proceso competitivo y desempeño económico, estableciendo sistemas eficientes y eficaces en el manejo de información.. La manera en que las tecnologías de la información han ido evolucionando, y como éstas manipulan los datos para que se acoplen de forma óptima con las expectativas de los clientes, ya sea durante el procesamiento, almacenamiento o transmisión, se constituye en un punto clave dentro de la estructura organizativa.. El crecimiento explosivo en el desarrollo de aplicaciones Web ha obligado que cada vez mas las instituciones, empresas y el comercio en general se vean en la necesidad de usar la red de redes para administrar información haciendo uso de servidores, bases de datos y tecnología que pueda ser aplicada para generar contenido dinámico que permita acceder en tiempo real a información de interés para los usuarios del sistema. Un agravante que se debe tener en cuenta son los altos costos de adquisición, desarrollo y administración de aplicaciones Web que generan una barrera para que pequeñas empresas, que desean ser parte del cambio tecnológico, no puedan acceder a los beneficios de este tipo de tecnología.. El desarrollo del proyecto ha sido ejecutado en gran parte por la necesidad de estas pequeñas empresas, con pocos recursos para adquisición de nuevas tecnologías de información y como un intento de lograr generar un aplicación que cumpla con los estándares exigidos por la arquitectura Web pero haciendo uso de. 9.

(10) proyectos de investigación abiertos que permitan una aplicación Web con un costo financiero mínimo.. Tecnología J2EE en base al lenguaje de programación Java, bases de datos libres como MySQL, herramientas de implementación libre como Hibernate y proyectos de investigación para desarrollo de software como Eclipse hacen parte de la propuesta que se desarrolla en el trabajo de grado que se presenta en este documento.. Dentro de este contexto, se realiza un proyecto de investigación y desarrollo de software como trabajo de grado. En éste documento se pretende hacer una presentación general del problema específico de una empresa que desea administrar la información correspondiente a un sistema de viajes que se realiza por todo el territorio nacional, para la cual se desarrolla un software que cumpla con las características mencionadas. El proyecto de grado esta basado en los requerimientos y especificaciones que se generan en esta empresa, generando una aplicación Web que brinde una solución efectiva a sus necesidades de administración de información haciendo uso de tecnología abierta que no genere un alto costo para la empresa pero si un valor agregado en la adquisición del software que se desea implementar y que se desarrolla como tesis de grado.. 10.

(11) 1. CONTEXTO. 1.1. DEFINICIÓN DEL PROBLEMA. 1.1.1. Presentación de la Empresa La Iglesia la “Biblia Dice” es una institución creada en Octubre de 1982 con el objeto de. conformar una comunidad cristiana que muestre con sus vidas la. verdad de la Palabra de Dios e impacte a aquellos que no la conocen.. VISION LOCAL Movilizarnos para el avance del reino de Dios, perfeccionando a los santos y fieles, capacitándolos para hacer discípulos del Señor Jesucristo Hasta lo ultimo de la tierra.. VISION NACIONAL Establecer iglesias modelos en ciudades principales haciendo discípulos de Cristo, capaces de llevar fruto que permanezca en Colombia y el mundo entero.. RAZON SOCIAL: IGLESIA LA BIBLIA DICE. PASTOR Y ENCARGADO: Ing. Rodolfo Garrido. COORDINADOR DEL PROYECTO Sr. Gabriel Reyes.. DIRECCIÓN: Diagonal 111 Num. 53-02. Barrio San Nicolás. Bogota – Colombia. 11.

(12) 1.1.2. Identificación del Problema La Biblia Dice de Colombia lleva más de dos décadas llegando a diferentes lugares en el territorio colombiano con el fin de mostrar a otros la Palabra de Dios. El trabajo de viajar a otros territorios del país implica la movilización de personal perteneciente al ministerio de misiones con el fin de hacer presencia en entre las familias a las cuales se esta llegando.. La coordinación de los viajes misioneros, termino que se usa para referirse al traslado de personal de la iglesia a otro territorio ha ido generando a lo largo de los años una serie de procesos estandarizados que permiten administrar de forma efectiva el trabajo que se esta realizando en cada una de las obras, termino que se usa para referirse a las ciudades o pueblos en los cuales se tiene presencia.. El trabajo de organización, coordinación, control y administración general de los viajes misioneros en la actualidad se hace de manera personal por medio de reuniones y documentos que las personas involucradas deben llenar para lograr llevar un control de las tareas que se están llevando acabo en cada una de las obras.. Debido al crecimiento que ha tenido la iglesia en estos últimos años y al aumento explosivo del numero de obras a las cuales se esta llegando en el territorio colombiano, el manejo de las tareas administrativas del ministerio de misiones tiene una necesidad imperativa de automatizar sus procesos y lograr obtener de forma dinámica y en tiempo real información que permita lograr una toma de decisiones efectiva en las tareas que se deben programas a futuro.. Adicionalmente se debe tener en cuenta los mas de 100 miembros que posee el ministerio que hacen una tarea casi titánica la realización de calendarios de viaje, administración del material a usar en los diferentes viajes misioneros, coordinación de las tareas asignadas y mantenimiento de la información de la situación actual. 12.

(13) de las obras en Colombia por medio de la consulta y generación de reportes que permitan generar un valor agregado a la misión y visión de la iglesia.. El registro y mantenimiento de la información del ministerio de misiones en la actualidad se realiza a mano y no se hace uso de ningún sistema de información o computacional. Como consecuencia se tiene un proceso de administración lento, que solo depende de recursos humanos, donde los costos y el tiempo invertido son altos comparados con la implementación de un sistema que agilice estas tareas administrativas y donde los errores tienen un alto grado de frecuencia.. La interacción de la información a través de la Web representa disminución de tiempo y costos, a saber: tiempo de la persona encargada a determinado proceso, ahorro de papel ya que ahora se obtiene la información en pantalla y si el usuario la quiere o la necesita impresa este papel no será suministrado por la institución, costos en el traslado de un usuario desde su casa o lugar de trabajo a la Institución para realizar consultas de información ó cualquier actividad incluida dentro de la funcionalidad de la Web, entre otros.. Por las presentes razones nace la necesidad de realizar una aplicación Web que logre cubrir las necesidades de los requerimientos expresados por el ministerio de misiones. La institución en la actualidad no posee los recursos económicos para realizar una inversión en tecnología, por lo cual se hace imperativo que la aplicación sea realizada sin ningún costo o en su defecto con un costo de financiamiento mínimo. Es así que el presente trabajo de grado busca hacer uso de herramientas de investigación de código abierto (Open Source) que logren el propósito de minimizar los costos e implementar una arquitectura basada en J2EE que permita desarrollar una aplicación Web que cumpla con los estándares exigidos en el mercado actual. Las herramientas de desarrollo que se proponen para la realización de la aplicación son: •. Eclipse: Entorno de desarrollo para aplicaciones en base al lenguaje de programación Java.. 13.

(14) •. MySQL: Base de datos libre para usos investigativos y desarrollo de bases de datos pequeñas.. •. J2EE: Java 2 Enterprise Edition. Arquitectura para el desarrollo de aplicaciones Web que integra un servidor de aplicaciones, una base de datos y una interfaz Web como parte de su arquitectura.. •. Tomcat: Servidor gratuito para desarrollo de aplicaciones sencillas que cumple con las especificaciones exigidas para implementación de una arquitectura J2EE [7].. 1.2. OBJETIVOS. 1.2.1. Objetivo General Este proyecto tiene como objetivo la creación de un sistema Web de terminal que se utilizará para manejar, controlar, almacenar y organizar el funcionamiento de un ministerio que se dedica a viajes misioneros, dentro de una iglesia que funciona como organización establecida, llamada la "Biblia Dice". En resumen se busca que el sistema que se va a realizar sirva para optimizar el funcionamiento del ministerio de misiones al interior de la organización de la "Biblia Dice", logrando una mayor automatización del manejo de las obras, y viajes que se realizan a las mismas, así como de la comunicación que se da entre el ministerio de misiones y las diferentes obras en el territorio colombiano. 1.2.2. Objetivos Específicos El ministerio se encarga del manejo de viajes a diferentes lugares del territorio colombiano, en donde se hace un trabajo personal con diferentes familias e individuos en las ciudades donde se llega. El objetivo del software es mantener un control de los viajes que se realiza, la forma en que se realizan, quienes lo realizan y datos adicionales como fechas, horas de reunión de los diferentes lugares, entre muchas otras funciones. Se desea adicionalmente mantener un control de los materiales que se usan dentro del ministerio, materiales que se deben enviar a. 14.

(15) diferentes lugares de Colombia, en donde se encuentran las diferentes iglesias que hacen parte de "La Biblia Dice", iglesias que reciben el nombre de "obras" al interior de la organización. Una función adicional que se desea cubrir es la comunicación entre diferentes obras adicionalmente de la comunicación al interior del ministerio de misiones.. Los objetivos específicos incluyen: •. Comunicación efectiva y rápida entre las diferentes iglesias u obras que hacen parte de la organización.. •. Comunicación rápida entre los miembros que hacen parte del ministerio de misiones en la iglesia principal.. •. Comunicación efectiva y rápida de los materiales que necesitan las diferentes obras.. •. Análisis rápido y exacto de la situación en la que se encuentran las diferentes obras que maneja el ministerio d emisiones de la Iglesia.. •. Control automático del inventario que posee el ministerio de misiones.. •. Automatización en la asignación de tareas y calendarios que se usan en el ministerio.. •. Control rápido y efectivo de los viajes que se realizan a las diferentes obras.. •. Control efectivo en la plantación que se realiza en el ministerio.. •. Administración del personal que pertenece al ministerio de misiones de la organización.. •. Administración general del ministerio de misiones permitiendo que los usuarios tengan acceso haciendo uso de Internet.. •. Automatización de los procesos administrativos que se realizan en el ministerio de misiones.. 1.3. JUSTIFICACIÓN El desarrollo de la aplicación Web se hace imperativo para generar una solución efectiva para la administración del ministerio de misiones cumpliendo logrando exigido por el avance tecnológico.. 15.

(16) No. se. puede. ignorar. los. grandes. beneficios. que. proporcionan. las. telecomunicaciones y el uso de Internet en nuestro medio, lo cual ha llevado a que cada vez mas organizaciones busquen un alto desarrollo y utilización de los sistemas de información en línea para incrementar su cobertura y mejorar los servicios ofrecidos a la comunidad en general. Adicionalmente los beneficios generados por la aplicación Web evitarán pérdida de información debido a procesos manuales, mantenimiento persistente de los procesos haciendo uso de las herramientas específicas y obtención en tiempo real de datos que permitan una toma de decisiones efectivas. Hay que tener en cuenta que éste proceso implica transformaciones de pensamiento, presenta inconvenientes dados por la resistencia al cambio por parte de personas que temen a la innovación por ser de generaciones diferentes o por creer que dichas innovaciones implican un desplazamiento laboral para ellos. Además,. actualmente no toda la población presenta el mismo grado de. incorporación a Internet lo cual implica que puede variar el grado de complejidad de aprendizaje para los diferentes usuarios.. En cada una de las etapas del proyecto se establecen los adecuados controles en cuanto a la seguridad informática, dando así un alto grado de confiabilidad.. 1.4.. IMPACTO Y VIABILIDAD. El proyecto representa para cualquier organización aseguramiento en la calidad y prestación de su servicio, estableciendo una mayor cobertura en la divulgación de sus planes, en la facilitación de sus procesos administrativos como viajes misioneros, registro de materiales, asignación de tareas especificas, consulta e ingreso de datos de importancia para la toma de decisiones, proceso de elaboración e calendarios para viajes haciendo uso del personal involucrado en el ministerio, entre otros, estableciendo un acceso a la información a cada uno de los usuarios según su rol dentro de la organización.. 16.

(17) Involucra también una reducción de costos y tiempos en el desarrollo de procesos que exigen una disponibilidad de recurso humano y materiales, que representa optimización de recursos, por lo cual la aplicación Web reducirá tanto en tramitología de documentos como en la incomodidad del desplazamiento de personal, aun de los usuarios para registrar datos de interés para la organización, debido a que todos estos procesos se llevarán acabo de manera interactiva, siempre estableciendo un alto grado de confiabilidad tanto para los usuarios como para la institución.. Para la empresa desarrolladora se constituye en solución factible que garantiza la satisfacción de las expectativas de un segmento muy importante de sus clientes y el cumplimiento de la misión que viene cumpliendo desde hace más de veinte años.. Es importante también señalar que este proceso es viable debido al compromiso e interés de la empresa de suministrar la información que sea pertinente para el desarrollo del trabajo de grado, así como del espacio y los recursos que sean necesarios. De igual forma el respaldo de las directivas garantiza que la labor que se va a desarrollar contribuirá realmente a la solución de la problemática planteada.. 17.

(18) 2. MARCO TEÓRICO. 2.1. PLATAFORMA DE DESARROLLO. 2.1.1 Herramientas de Desarrollo •. J2SE. JAVA 2 SDK, Standard Edition (J2SE) [3] es un entorno de desarrollo para crear aplicaciones, applets y componentes utilizando el lenguaje de programación Java Incluye herramientas útiles para desarrollar y probar programas escritos en el lenguaje de programación Java y que se ejecutan en la plataforma Java. Estas herramientas están diseñadas para que se utilicen desde la línea de comandos. Excepto en el caso del visualizador de applets, estas herramientas no proporcionan una interfaz gráfica de usuario.. La documentación incluida de la plataforma Java 2 contiene especificaciones API, descripciones de funciones, guías de desarrollador, páginas de referencia de utilidades y herramientas de SDK, demostraciones y enlaces con información relacionada.. Java 2 Platform, Standard Edition es la tecnología básica para muchos estilos diferentes de desarrollo de software, incluidos applets y aplicaciones clientes y aplicaciones de servidores individuales. Representa la base de la cual se derivan las tecnologías Java 2 Platform, Micro Edítion (J2ME) y es el motor que optimiza las implementaciones de Java 2 Plattorm, Enterprise Edition J2EE. •. JRE. Java Runhme Environment (JRE) [3] es el entorno mínimo para ejecutar programas Java 2. Incluye la JVM y la API. Está incluida en el J2SE aunque puede descargarse e instalarse separadamente. En aquellos sistemas donde se vayan a ejecutar programas Java, pero no compilados, el JRE es suficiente.. 18.

(19) El JRE incluye el Java Plug-in, que es el “añadido” que necesitan los navegadores (Explorer o Netscape) para poder ejecutar programas Java 2. Es decir que instalando el JRE se tiene soporte completo Java2, tanto para aplicaciones normales (denominadas “standalone”) como para Applets (programas Java que se ejecutan en una página Web, cuando esta es accedida desde un navegador). 2.1.2 Servidor Web •. TOMCAT. Tomcat es un contenedor de Servlets con un entorno JSP [2]. Un contenedor de Servlets es un shell de ejecución que maneja e invoca servlets por cuenta del usuario.. Se pueden dividir los contenedores de Servlets en: 1. Contenedores de Servlets Stand-alone (Independientes). Estos son una parte integral del servidor web. Este es el caso cuando usando un servidor web basado en Java, por ejemplo, el contenedor de servlets es parte de JavaWebServer (actualmente sustituido por iPlanet). Este el modo por defecto usado por Tomcat. Sin embargo, la mayoría de los servidores, no están basados en Java. 2. Contenedores de Servlets dentro-de-Proceso. El contenedor Servlet es una combinación de un plugin para el servidor web y una implementación de contenedor Java. El plugin del servidor web abre una JVM (Máquina Virtual Java) dentro del espacio de direcciones del servidor web y permite que el contenedor Java se ejecute en él. Si una cierta petición debería ejecutar un servlet, el plugin toma el control sobre la petición y lo pasa al contenedor Java (usando JNI). Un contenedor de este tipo es adecuado para servidores multithread de un sólo proceso y proporciona un buen rendimiento pero está limitado en escalabilidad 3. Contenedores de Servlets fuera-de-proceso.. 19.

(20) El contenedor Servlet [2] es una combinación de un plugin para el servidor web y una implementación de contenedor Java que se ejecuta en una JVM fuera del servidor web. El plugin del servidor web y el JVM del contenedor Java se comunican usando algún mecanismo IPC (normalmente sockets TCP/IP). Si una cierta petición debería ejecutar un servlet, el plugin toma el control sobre la petición y lo pasa al contenedor Java (usando IPCs). El tiempo de respuesta en este tipo de contenedores no es tan bueno como el anterior, pero obtiene mejores rendimientos en otras cosas (escalabilidad, estabilidad, etc.).. Tomcat puede utilizarse como un contenedor solitario (principalmente para desarrollo y depuración) o como plugin para un servidor web existente (actualmente se soporan los servidores Apache, IIS y Netscape).. Dentro de los distintos motores existentes para extender las características adicionales de Java 2 probablemente uno de los proyectos de código abierto liderado por la Apache Software Foundation en el cual se ha desarrollado el servidor Jakarta-Tomcat, el cual no es más que un servidor de aplicaciones basado en Java y creado para ejecutar servlets y páginas JSP, siendo la implementación oficial de referencia de las especificaciones Servlet 2.3 y JavaServer Pages 1.2. con la ventaja adicional de ser gratuito.. En el servidor tomcat contiene dos ficheros xml que son los que almacenan la configuración, y reciben el nombre de server.xml y web.xml, el primero se encarga de especificar la configuración global de Tomcat mientras que el segundo se encarga de recoger aquellos parámetros que son opcionales.. Tomcat carece de algunas características funcionales importantes como son: - Velocidad: Tomcat es mucho más lento que Apache. - Configuración: Tomcat no es configurable en muchos de sus aspectos.. 20.

(21) - Robustez: Tomcat no está pensado como servidor web sino como motor de JSP y servlet por tanto no se debe sustituir un servidor web por Tomcat. •. APACHE. Apache es un servidor web, que permite el alojamiento de páginas web en una máquina específica.. Esta herramienta tiene varias funciones tales como: permitir a los usuarios tener sus propias páginas web, restricción a determinados sitios web, conexiones seguras a través de SSL, configuración de módulos de programación.. 2.1.3 INTERNET. 2.1.3.1. Generalidades de Internet. El Internet, algunas veces llamado simplemente "La Red", es un sistema mundial de redes de computadoras, un conjunto integrado por las diferentes redes de cada país del mundo, por medio del cual un usuario en cualquier computadora puede, en caso de contar con los permisos apropiados, accesar información de otra computadora y poder tener inclusive comunicación directa con otros usuarios en otras computadoras.. Fue concebido por la agencia de nombre ARPA [8] (Advanced Research Projects Agency) del gobierno de los Estados Unidos en el año de 1969 y se le conocía inicialmente como ARPANET. El propósito original fue crear una red que permitiera a los investigadores en un Campus poder comunicarse a través de los sistemas de cómputo con investigadores en otras Universidades.. Hoy en día, el Internet es un medio de comunicación público, cooperativo y autosuficiente en términos económicos, accesible a cientos de millones de gentes. 21.

(22) en el mundo entero. Físicamente, el Internet usa parte del total de recursos actualmente existentes en las redes de telecomunicaciones. Técnicamente, lo que distingue al Internet es el uso del protocolo de comunicación llamado TCP/IP (Transmission Control Protocol/Internet Protocol).. Para muchos usuarios del Internet, el correo electrónico (e-mail) ha reemplazado prácticamente al servicio postal para breves mensajes por escrito. El correo electrónico es la aplicación de mayor uso en la red. También se pueden realizar conversaciones "en vivo" con otros usuarios en otras localidades usando el IRC (Internet Relay Chat). Más recientemente, el software y hardware para telefonía en Internet permite conversaciones de voz en línea. 2.1.3.2. Sistemas de Información en Internet. Un sistema de Información puede definirse de diferentes formas, entre las cuales se encuentra: - Conjunto ordenado de componentes o elementos interrelacionados, interdependientes e interactuantes que tienen por finalidad el logro de objetivos determinados. - Conjunto de elementos que interaccionan entre si, orientados a la consecución de un objetivo común. Un sistema está situado en un entorno o ambiento con el que interactúa, recibe entradas y produce salidas. - Conjunto de entidades que se relacionan e interactúan, en un contexto dado, en post de un objetivo final predefinido, brindando apoyo a las actividades realizadas en una empresa o negocio.. En conclusión, un sistema de información es un conjunto de componentes interrelacionados que permiten capturar, procesar, almacenar y distribuir la información para apoyar la toma de decisiones y el control en una entidad o. 22.

(23) institución. Vale la pena resaltar que este no puede operar por sí mismo. Para eso se hace necesaria la presencia de un equipo de cómputo que contenga hardware necesario y también de recurso humano, el cual está formado por las personas que utilizan el sistema.. Un sistema de información realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida de información.. Entrada de Información: Es el proceso mediante el cual el Sistema de Información toma los datos que requiere para procesar la información. Las entradas pueden ser manuales o automáticas. Las manuales son aquellas que se proporcionan en forma directa por el usuario, mientras que las automáticas son datos o información que provienen o son tomados de otros sistemas o módulos.. Las unidades típicas de entrada de datos a las computadoras son las terminales, las cintas magnéticas, las unidades de diskette, los códigos de barras, los escáners, la voz, los monitores sensibles al tacto, el teclado y el mouse, entre otras.. Almacenamiento de información: El almacenamiento es una de las actividades o capacidades más importantes que tiene una computadora, ya que a través de esta propiedad el sistema puede recordar la información guardada en la sección o proceso anterior. Esta información suele ser almacenada en estructuras de información denominadas archivos.. Procesamiento de información: Es la capacidad del Sistema de Información para efectuar cálculos de acuerdo con una secuencia de operaciones preestablecida. Estos cálculos pueden efectuarse con datos introducidos recientemente en el sistema o bien con datos que están almacenados. Esta característica de los sistemas permite la transformación de datos fuente en información que puede ser utilizada para la toma de decisiones.. 23.

(24) Salida de Información: La salida es la capacidad de un Sistema de Información para llevar la información procesada o bien datos de entrada al exterior. Las unidades típicas de salida son las impresoras, terminales, diskettes, cintas magnéticas, la voz, los graficadores y los plotters, entre otros. Es importante aclarar que la salida de un Sistema de Información puede constituir la entrada a otro Sistema de Información o módulo.. Por otro lado, existen diferentes aspectos que deben tenerse en cuenta al momento de pensar en la implantación de Sistemas de Información Internet, ya que estos se caracterizan principalmente por su constante crecimiento y evolución.. Internet es un medio de propagación de información en el cual día a día todo cambia. No es lógico pensar en un sistema de información para Internet bajo un enfoque clásico y estático ya que por sus mismas características, este nunca llega a ser un producto definitivo.. Es por esto que al ver las diferentes metodologías que han sido planteadas y utilizadas en el desarrollo de sistemas de información se puede ver el Proceso Unificado como un soporte para el desarrollo e implantación de aplicaciones en Internet debido a sus características.. 2.1.4 Aplicaciones Web La idea fundamental es que los navegadores, browsers, presentan documentos escritos en HTML [2] que han obtenido de un servidor Web. Estos documentos HTML habitualmente presentan información de forma estática, sin más posibilidad de interacción con ellos.. El modo de crear los documentos HTML ha variado a lo largo de la corta vida de las tecnologías Web pasando desde las primeras páginas escritas en HTML almacenadas en un fichero en el servidor Web hasta aquellas que se generan al. 24.

(25) vuelo como respuesta a una acción del cliente y cuyo contenido varía según las circunstancias.. Además, el modo de generar páginas dinámicas ha evolucionado, desde la utilización del CGI ,Common Gateway Interface, hasta los servlets pasando por tecnologías tipo JavaServer Pages. Todas estas tecnologías se encuadran dentro de aquellas conocidas como Server Side, ya que se ejecutan en el servidor web.. Otro aspecto que completa el panorama son las inclusiones del lado del cliente, Client Side, que se refieren a las posibilidades de que las páginas lleven incrustado código que se ejecuta en el cliente, como por ejemplo JavaScript y programas Java.. El esquema general de la situación se puede ver en la. figura 2, donde se. muestran cada tipo de tecnología involucrada en la generación e interacción de documentos Web.. Figura 1. Esquema de interacción de documentos Web. [1]. 25.

(26) 2.2 MODELO DEL PROCESO DEL SOFTWARE. 2.2.1 Modelo en Cascada Es el más básico de todos los modelos de ciclo de vida y de hecho sirve de base para otros modelos[2]. Fue originalmente documentado por Royce en el año 1970. El modelo de cascada ve el desarrollo como una secuencia simple de fases (como se muestra en la figura) en donde cada fase tiene un conjunto de metas bien definidas y las actividades entre cualquier fase contribuye a satisfacer las metas de las fases subsiguientes.. Figura 2. Modelo en cascada. [1] Algunos principios básicos del Modelo en Cascada son: - Plan de proyecto antes de embarcarse en él. - Definición del comportamiento externo del sistema deseado. - Documentación de los resultados de cada actividad. - Diseño del sistema previo a la codificación. - Prueba del sistema antes de su construcción.. Características del Modelo en Cascada: - Presenta el ciclo de desarrollo de software. - Tiene una secuencia ordenada.. 26.

(27) - Una etapa previa es la entrada del siguiente proceso.. 2.2.2 Modelo Incremental El modelo incremental combina elementos del modelo en cascada (aplicados repetidamente) con la filosofía interactiva de construcción de prototipos. Como muestra la Figura. el modelo incremental aplica secuencias lineales de forma. escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un «incremento» del software.. Es clave entender que el modelo incremental entrega el software en partes pequeñas, pero utilizables, llamadas «incrementos».[1] En general, cada incremento se construye sobre aquél que ya ha sido entregado.. Cuando se utiliza un modelo incremental, el primer incremento a menudo es un producto esencial. Es decir, se afrontan requisitos básicos, pero muchas funciones suplementarias (algunas conocidas, otras no) quedan sin extraer. El cliente utiliza el producto central (o sufre la revisión detallada). Como un resultado de utilización y/o de evaluación, se desarrolla un plan para el incremento siguiente. El plan afronta la modificación del producto central a fin de cumplir mejor las necesidades del cliente y la entrega de funciones, y características adicionales. Este proceso se repite siguiendo la entrega de cada incremento, hasta que se elabore el producto completo.. El modelo de proceso incremental, como la construcción de prototipos y otros enfoques evolutivos, es iterativo por naturaleza. Pero a diferencia de la construcción de prototipos, el modelo incremental se centra en La entrega de un producto operacional con cada incremento. Los primeros incrementos son versiones «incompletas» del producto final, pero proporcionan al usuario la funcionalidad que precisa y también una plataforma para la evaluación.. 27.

(28) El desarrollo incremental es particularmente útil cuando la dotación de personal no esta disponible para una implementación completa en la fecha límite que se haya establecido para el proyecto. Los primeros incrementos se pueden implementar con menos personas.. Figura 3. Modelo Incremental Ingeniería de Sistemas / Información. Análisis. Incremento 1. Diseño. Código. Entrega del 1er Incremento. Prueba. Incremento 2. Análisis. Diseño. Código. Entrega del 2o Incremento. Prueba. Incremento 3. Análisis. Diseño. Código. Prueba. Entrega del 3er Incremento. Incremento 4. Análisis. Diseño. Código. Prueba Entrega del 4o Incremento. Tiempo de Calendario. 2.2.3 Xtreme Programing (XP) La metodología XP [8] es exitosa porque enfatiza la satisfacción del cliente y promueve el trabajo en equipo.. En XP, las actividades improductivas han sido eliminadas para reducir costos y frustraciones.. 28.

(29) Esta metodología ha sido diseñada para solucionar el eterno problema del desarrollo de software por encargo: entregar el resultado que el cliente necesita a tiempo. La metodología XP es exitosa porque enfatiza la satisfacción del cliente y promueve el trabajo en equipo.. En XP, las actividades improductivas han sido eliminadas para reducir costos y frustraciones.. Esta metodología ha sido diseñada para solucionar el eterno problema del desarrollo de software por encargo: entregar el resultado que el cliente necesita a tiempo.. 2.2.3.1. Caracteristicas. El desarrollo bajo XP tiene características que lo distinguen claramente de otras metodologías: •. Los diseñadores y programadores se comunican efectivamente con el cliente y entre ellos mismos. •. Los diseños del software se mantienen sencillos y libres de complejidad o pretensiones excesivas.. •. Se obtiene retroalimentación de usuarios y clientes desde el primer día gracias a las baterías de pruebas. •. El software es liberado en entregas frecuentes tan pronto como sea posible. •. Los cambios se implementan rápidamente tal y como fueron sugeridos.. •. Las. metas. en. características,. tiempos. y. costos. son reajustadas. permanentemente en función del avance real obtenido.. Es una de las metodologías de desarrollo de software más exitosas en la actualidad utilizadas para proyectos de corto plazo, corto equipo y cuyo plazo de entrega era ayer. La metodología consiste en una programación rápida o extrema,. 29.

(30) cuya particularidad es tener como parte del equipo, al usuario final, pues es uno de los requisitos para llegar al éxito del proyecto.. [8] Figura 4: Metodología Extreme Programing. 2.2.3.2. Metodología:. La metodología se basa en: o Pruebas Unitarias: se basa en las pruebas realizadas a los principales procesos, de tal manera que adelantándonos en algo hacia el futuro, podamos hacer pruebas de las fallas que pudieran ocurrir. Es como si nos adelantáramos a obtener los posibles errores.. o Refabricación: se basa en la reutilización de código, para lo cual se crean patrones o modelos estándares, siendo más flexible al cambio. o Programación en pares: una particularidad de esta metodología es que propone la programación en pares, la cual consiste en que dos desarrolladores participen en un proyecto en una misma estación de trabajo. Cada miembro lleva a cabo la acción que el otro no está haciendo en ese momento. Es como el chofer y el copiloto: mientras uno conduce, el otro consulta el mapa.. 30.

(31) 2.2.3.3. ¿Qué es lo que propone XP?. o Empieza en pequeño y añade funcionalidad con retroalimentación continua o El manejo del cambio se convierte en parte sustantiva del proceso o El costo del cambio no depende de la fase o etapa o No introduce funcionalidades antes que sean necesarias o El cliente o el usuario se convierte en miembro del equipo 2.2.3.4. Derechos del Cliente. o Decidir que se implementa o Saber el estado real y el progreso del proyecto o Añadir, cambiar o quitar requerimientos en cualquier momento o Obtener lo máximo de cada semana de trabajo o Obtener un sistema funcionando cada 3 o 4 meses. 2.2.3.5. Derechos del Desarrollador. o Decidir como se implementan los procesos o Crear el sistema con la mejor calidad posible o Pedir al cliente en cualquier momento aclaraciones de los requerimientos o Estimar el esfuerzo para implementar el sistema o Cambiar los requerimientos en base a nuevos descubrimientos. Lo fundamental en este tipo de metodología es: o La comunicación, entre los usuarios y los desarrolladores o La simplicidad, al desarrollar y codificar los módulos del sistema o La retroalimentación, concreta y frecuente del equipo de desarrollo, el cliente y los usuarios finales. 31.

(32) 2.3 BASES DE DATOS. Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular.. Las bases de datos proporcionan la infraestructura requerida para los sistemas de apoyo a la toma de decisiones y para los sistemas de información estratégicos, ya que estos sistemas explotan la información contenida en las bases de datos de la organización para apoyar el proceso de toma de decisiones o para lograr ventajas competitivas. Por este motivo es importante conocer la forma en que están estructuradas las bases de datos y su manejo.. 2.3.1 Componentes Principales •. Datos. Los datos son la Base de Datos propiamente dicha.. •. Hardware. El hardware se refiere a los dispositivos de almacenamiento en donde reside la base de datos, así como a los dispositivos periféricos (unidad de control, canales de comunicación, etc.) necesarios para su uso.. •. Software. Está constituido por un conjunto de programas que se conoce como Sistema Manejador de Base de Datos (DMBS: Data Base Management. System).. Este. sistema. maneja. todas las solicitudes. formuladas por los usuarios a la base de datos. •. Usuarios. Existen tres clases de usuarios relacionados con una Base de Datos: 1. El programador de aplicaciones, quien crea programas de aplicación que utilizan la base de datos. 2. El usuario final, quien accesa la Base de Datos por medio de un lenguaje de consulta o de programas de aplicación.. 32.

(33) 3. El administrador de la Base de Datos (DBA: Data Base Administrator), quien se encarga del control general del Sistema de Base de Datos. 2.3.2 Ventajas en el uso de Bases de Datos •. Globalización de la información. Permite a los diferentes usuarios considerar la información como un recurso corporativo que carece de dueños específicos.. •. Eliminación de información redundante, duplicada.. •. Eliminación de información inconsistente. Si el sistema esta desarrollado a través de archivos convencionales, dicha cancelación deberá operarse tanto en el archivo de facturas del Sistema de Control de Cobranza como en el archivo de facturas del Sistema de Comisiones.. •. Permite compartir información. Varios sistemas o usuarios pueden utilizar una misma entidad.. •. Permite mantener la integridad en la información. Solo se almacena la información correcta.. •. Independencia de datos. La independencia de datos implica un divorcio entre programas y datos; es decir, se pueden hacer cambios a la información que contiene la base de datos o tener acceso a la base de datos de diferente manera, sin hace cambios en las aplicaciones o en los programas.. 2.3.3 Tipos de Modelos de Datos Existen fundamentalmente tres alternativas disponibles para diseñar las bases de datos: el modelo jerárquico, el modelo de red y el modelo relacional.. 33.

(34) •. El modelo jerárquico: La forma de esquematizar la información se realiza a través de representaciones jerárquicas o relaciones de padre/hijo, de manera similar a la estructura de un árbol. Así, el modelo jerárquico puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos.. En el primer tipo se dice que existe una relación de uno a uno si el padre de la estructura de información tiene un solo hijo y viceversa, si el hijo tiene solamente un padre. En el segundo tipo se dice que la relación es de uno a muchos si el padre tiene más de un hijo, aunque cada hijo tenga un solo padre.. Inconveniente del modelo jerárquico Relación maestro-alumno, donde un maestro tiene varios alumnos, pero un alumno también tiene varios maestros, uno para cada clase. En este caso, si la información estuviera representada en forma jerárquica donde el padre es el maestro y el alumno es el hijo, la información del alumno tendrá que duplicarse para cada uno de los maestros.. Otra dificultad que presenta el modelo jerárquico de representación de datos es respecto a las bajas. En este caso, si se desea dar de baja a un padre, esto necesariamente implicará dar de baja a todos y cada uno de los hijos que dependen de este padre. •. El modelo de red: El modelo de red evita esta redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector, que en este caso pueden ser las calificaciones que obtuvieron los alumnos de cada profesor.. La dificultad surge al manejar las conexiones o ligas entre los registros y sus correspondientes registros conectores.. 34.

(35) •. El modelo relacional: Se está empleando con más frecuencia en la práctica, debido el rápido entendimiento por parte de los usuarios que no tienen conocimientos profundos sobre Sistemas de Bases de Datos y a las ventajas que ofrece sobre los dos modelos anteriores.. En este modelo toda la información se representa a través de arreglos bidimensionales o tablas. Estas operaciones básicas son: o Seleccionar renglones de alguna tabla (SELECT) o Seleccionar columnas de alguna tabla (PROJECT) o Unir o juntar información de varias tablas (JOIN). Es importante mencionar que la mayoría de los paquetes que manejan bases de datos disponibles en el mercado poseen las instrucciones SELECT, PROJECT Y JOIN con diferentes nombres y modalidades.. Una base de datos relacional debe cumplir con las siguientes características (Modelo ACID – Atomicity, consistency, Isolation, Durability) -. Atomicidad: La atomicidad de una transacción garantiza que todas sus acciones sean realizadas o ninguna sea ejecutada.. -. Consistencia: La consistencia garantiza que las reglas que hayan sido declaradas para una transacción sean cumplidas.. -. Aislamiento: Esto garantiza que las transacciones que se estén realizando en el sistema sean invisibles a todos los usuarios hasta que estas hayan sido declaradas finales. El aislamiento garantiza que los usuarios del sistema no observen estos cambios intermedios hasta que sea finalizada la última acción de actualización.. -. Durabilidad: La durabilidad de una transacción garantiza que al instante en el que se finaliza la transacción esta perdure a pesar de otras. 35.

(36) consecuencias, esto es, si el disco duro falla, el sistema aún será capaz de recordar todas la transacciones que han sido realizadas en el sistema. 2.3.4 Bases de Datos Distribuidas Son las Bases de Datos que no están almacenadas totalmente en un solo lugar físico, (esta. segmentada) y. comunicaciones. a. través. se comunican. de. una. red. de. por. medio. de enlaces. computadoras. de. distribuidas. geográficamente.. 2.3.5 Tendencias Futuras La explotación efectiva de la información dará ventaja competitiva a las organizaciones.. Las bases de datos orientadas a objetos empleadas para diseño y manufactura asistida por computadora CAD/CAM serán utilizados a un mismo nivel que las Bases se Datos relacionales de la actualidad.. Los lenguajes de consulta (SQL) permitirán el uso del lenguaje natural para solicitar información de la Base de Datos, haciendo más rápido y fácil su manejo. 2.3.6 Algunas Bases de Datos SQL, INFORMIX, ORACLE, DBASE, IV, FOXPRO, FOXBASE, PARADOS, ACCES, APPROACH, POSTGRESQL. 2.3.7 MySQL MySQL es un sistema gestor de bases de datos SQL, que permite la gestión de los datos usando un lenguaje de consulta estructurado. Esto significa que a partir de una oración, MySQL llevará a cabo una determinada acción sobre la base de datos.. 36.

(37) 2.3.8 Hibernate Al trabajar con programación orientada a objetos y bases de datos relacionales, es fácil observar que estos dos paradigmas son diferentes. El modelo relacional trata con relaciones, y conjuntos (es muy matemático por naturaleza). Sin embargo, el paradigma orientado a objetos trata con objetos, sus atributos y asociaciones de unos con otros. Al momento de hacer persistir los objetos utilizando una base de datos relacional se observa que: hay una desaveniencia entre estos dos paradigmas, la también llamada diferencia objeto-relacional. Un mapeador objetorelacional nos ayuda a evitar esta diferencia.. Si se tienen objetos que hacer parte de una aplicación y algunas veces se alcanza el punto donde se quiere que sean persistentes, normalmente se abre conexión JDBC, se crea una sentencia SQL y se copian todos los valores de las propiedades sobre la selección. Esto es fácil para un objeto pequeño pero considerar esto para objetos con muchas propiedades puede ser una tarea dificultosa. Adicionalmente se suma el problema de las asociaciones en donde un objeto puede llegara. tener conflictos en el momento de hacer persistir la. aplicación en la base de datos.. Se han realizado estudios que demuestran que el 35% del código de una aplicación se produce para mepear datos entre la aplicación y la base de datos.. Un ORM básicamente intenta el trabajo de dar persistencia a los objetos de un modelos de orientado a objetos. Con Hibernate, sólo se debe definir una vez la forma en que las clases se mapean a tablas, que propiedad se mapea a qué columna, que clase se mapea a qué tabla, etc. Después de esto, se pueden tomar los objetos y utilizarlos dentro de la aplicación.. Hibernate es el mapeador objeto-relacional de código abierto más maduro y más completo que hay ahora. Se utiliza muy ampliamente y se desarrolla activamente.. 37.

(38) Hibernate también soporta una de las mayores comunidades de Open Source que se encuentra en el mercado. 2.4 PROGRAMACIÓN WEB. 2.4.1 JavaScript Javascript no es un lenguaje de programación propiamente dicho. Es un lenguaje script u orientado a documento, como pueden ser los lenguajes de macros que tienen muchos procesadores de texto. Trabaja siempre del lado del cliente porque es el navegador el que soporta la carga de procesamiento. Permite interactuar con el navegador de manera dinámica y eficaz, proporcionando a las páginas Web dinamismo y vida. Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el lenguaje de programación del lado del cliente más utilizado.. No es posible desarrollar programas basándose en JavaScript, sin embargo, una aplicación escrita en JavaScript puede ser incrustada en un documento HTML proporcionando un mecanismo para la detección y tratamiento de eventos, como clicks del ratón o validación de entradas realizadas en forms.. JavaScript es sensible a mayúsculas y minúsculas todos los elementos de JavaScript deben reverenciarse cómo se definieron: no es lo mismo “Salto” que “salto”, La etiqueta utilizada para la inclusión de este código es:. <Script Language = “JavaScript”> … </Script>. Un documento puede tener cualquier número de etiquetas Script, las cuales a su vez pueden contener cualquier número de sentencias JavaScript.. 38.

(39) Aunque JavaScript y Java tienen algunas similitudes, tienen también diferencias fundamentales. JavaScript soporta la mayoría de constructores de flujo de control básico y sintaxis de expresiones. En contraste con el sistema de clases definidas en tiempo de compilación en Java, Javascript trabaja en base a un simple sistema en tiempo de ejecución, el cual permite el uso de enteros, dobles, booleanos y cadenas. JavaScript soporta un sistema simple de objetos basado en instancias (no en clases), que provee capacidades significativas. 2.4.2 Java Server Pages (JSP) Las JSP son una solución que permite en la creación de contenido dinámico, haciendo más fácil y más rápido construir aplicaciones Web. Inicialmente se genera código fuente Java para todo el archivo JSP, se compila el código y ejecuta el archivo JSP como si fuera un servlet.. Entre las características de las JSP se pueden encontrar: - Velocidad y Escalabilidad: Las JSP no son interpretadas sino compiladas y cargadas en la memoria del servidor la primera vez que se les llama, así que para las siguientes llamadas, el tiempo de respuesta es mucho más corto debido a que simplemente son ejecutadas. - Plataforma y Servidor Independiente: JSP se adhiere a la arquitectura de la filosofía Java. En lugar de ser soportada por una única plataforma o proveedor, esta tecnología puede ser ejecutada en cualquier servidor Web y es soportada por una gran cantidad de herramientas de múltiples proveedores. - La característica más importante de las JSP es que permite separar la interfaz del usuario de la generación del contenido dinámico, dando lugar a procesos de desarrollo más rápidos y eficientes.. Un JSP se compila a un programa en Java la primera vez que se invoca, y del programa en Java se crea una clase que se empieza a ejecutar en el servidor. 39.

(40) como un servlet. Por consiguiente, el ciclo de vida en tiempo de ejecución de los archivos JSP es similar al ciclo de vida de los servlets.. Cuando un servidor Web recibe una petición de obtener un archivo JSP, el servidor pasa la petición al motor de servlets que a su vez llama al procesador JSP. El procesador JSP es un servlet interno que convierte un archivo JSP en código fuente Java y lo compila. Si una determinada petición solicita por primera vez un archivo JSP o si no se encuentra la copia compilada del archivo JSP, el compilador JSP genera y compila un archivo fuente Java para el archivo JSP, este se mantiene en la memoria mientras se procesan todas las peticiones recibidas y generan las respuestas a los usuarios.. Cuando se recibe una petición que solicita un archivo JSP, se comprueba si ese archivo ha cambiado desde la última vez que se cargó, si es así, se recarga el archivo JSP actualizado, es decir, se genera un archivo fuente y un archivo de clase Java actualizados para el archivo JSP.. Existen 2 tipos de acceso a los archivos JSP:. 1. Un usuario trabajando en un navegador Web cliente hace una petición que es enviada a un archivo JSP (.jsp) El archivo .jsp accesa componentes del servidor que generan contenido dinámico y lo presentan en el navegador.. Después de recibir la petición del cliente, el archivo JSP pide información de un JavaBean. El JavaBean puede pedir información de una Base de Datos. Una vez el JavaBean genera el contenido, el archivo JSP puede consultar y presentar el contenido del Bean.. 2. Un usuario trabajando en un navegador Web cliente hace una petición que es enviada a un Java Servlet que genera un resultado y lo almacena en un. 40.

(41) componente. En seguida, el servlet llama un archivo JSP, el cual accesa el componente y presenta el contenido dinámico en el navegador.. En este caso, el cliente hace una petición que es atendida por un Java Servlet. El servlet genera el contenido dinámico, usa JDBC para comunicarse con una Base de Datos para obtener el contenido. Ahora, el servlet empaqueta el contenido en un Bean. El archivo JSP accesa el contenido dinámico desde el Bean y presenta el contenido en el navegador cliente.. 2.5. ARQUITECTURA J2EE. La plataforma J2EE [7] usa un modelo de aplicación distribuida compuesta de diferentes capas. La lógica de aplicación esta dividida entre componentes de acuerdo a su función, y los diferentes componentes de aplicación que componen la aplicación J2EE están instalados en diferentes maquinas dependiendo de la capa especifica del entorno de J2EE a la cual la aplicación pertenece. La Figura (NUMERO) muestra dos aplicaciones J2EE divididas en capas descritas en la figura. Una aplicación J2EE esta compuesta por los siguientes componentes: •. Los componentes que pertenecen a la capa cliente la cual corre en la maquina cliente.. •. Los componentes que pertenecen a la capa Web la cual corre en el servidor de aplicaciones.. •. Los componentes que pertenecen a la capa de negocios que corren en el servidor de aplicaciones.. 41.

(42) [8] Figura 5. Modelos de implementación de J2EE. Las aplicaciones J2EE son consideradas generalmente aplicaciones de tres capas debido a que están distribuidas en tres espacios diferentes: la maquina cliente, el servidor J2EE de aplicaciones y la base de datos o sistemas legacy como última capa de la arquitectura. Estas tres capas de aplicaciones que corren de esta manera extienden el modelo cliente y servidor estándar que esta compuesto por dos capas, colocando un servidor de aplicaciones multicapas entre el cliente de aplicaciones y la parte final de la aplicación. Las aplicaciones J2EE applications están hechas de componentes. Un componente J2EE es una unidad de software software funcional que se contiene a si mismo que hace parte de una aplicación J2EE y sus clases relacionadas y archivos los cuales se comunican con otros componentes. La especificación J2EE define los siguientes componentes: •. Aplicaciones clients y applets son componentes que corren en el lado del clients,. •. Java Servlet y JavaServer Pages (JSP) son componentes Web que corren en el servidor.. •. Enterprise JavaBeans [7] (EJB) con componentes de negocio que corren en el servidor. 42.

(43) Los componentes J2EE están escritos en lenguaje Java y son compilados de la misma forma como cualquier programa escrito en este lenguaje. La diferencia entre componentes J2EE y clases Java comunes consiste en que los componentes J2EE hacen parte de aplicaciones J2EE, verificando que se encuentren bien formadas de acuerdo a la especificación J2EE, y depuradas de tal forma que puedan ser manejadas en un servidor de aplicaciones J2EE. 2.5.1 Clientes Web Un cliente Web consiste de dos tipos de elementos: paginas web dinámicas que contienen diferentes tipos de lenguajes markup como HTML, XML, entre otros, los cuales don generados por componentes Web que corren en la capa Web, y un Web browser, que realiza un render de las paginas que recibe del servidor. Un cliente Web es conocido aveces como cliente liviano (thin client). Los clientes livianos usualmente no hacen realizan tareas como consulta a bases de datos, ejecución de reglas de negocio complejas, o conexión con aplicaciones en sistemas legacy.. 2.5.2 Applets Una pagina web que se recibe de la capa web puede incluir un applet. Un applet es un cliente liviano escrito en java que se ejecuta en la maquina virtual de java que se encuentra instalada en el browse.. 2.5.3 Clientes de Aplicación Una aplicación cliente J2EE corre en una maquina cliente y provee al usuario una manera de manejar tareas que requieren de una interfaz mas completa y robusta. Normalmente se hace uso de una interfaz grafica de usuarios (GUI). Las aplicaciones cliente accesan directamente los enterprise beans que corren en la capa de negocio. Sin embargo, una aplicación J2EE puede abrir una conexión HTTP para establecer comunicación con un servlet que corre en la capa web.. 43.

(44) 2.5.4 JavaBeans Las capas cliente y servidor pueden incluir componentes JavaBeans para manejar el flujo de datos entre una aplicación cliente y un componente corriendo en el servidor J2EE o entre los componentes del servidor y la base de datos. Los componentes JavaBeans no son considerados componentes J2EE según la especificación J2EE. Los componentes JavaBeans tienen variables de instenacia y métodos get y set para accesar los datos de las variables de instancia. Los. componentes. JavaBeans usados de esta manera son típicamente sencillos en cuanto a diseño se refieren. 2.5.5 Contenido de un Enterprise Bean Para desarrollar un enterprise bean, se debe proveer los siguientes archivos: •. Deployment descriptor: Un archive XML que especifica la información relacionada al bean como el tipo de persistencia y los atributos de transacción.. •. Enterprise bean class: Implementa los métodos definidos en las interfaces. •. Interfaces: La interfaz home y remote son requeridas para acceso. Para un acceso local una interfaz local es requerida.. El empaquetamiento de los archivos se realiza de acuerdo a la presente lista dentro de un archive EJB JAR, modulo en el cual de graban los enterprise bean. Un EJB JAR es portable y puede ser usado para diferentes aplicaciones. Para armar una aplicación J2EE, se empaquetan uno o mas módulos como los son los EJB JAR en un archivo EAR, archive que contiene toda la aplicación.. Item. Syntax. Enterprise bean name (DD). <name>EJB. EJB JAR display name (DD) <name>JAR Enterprise bean class. <name>Bean. 44.

(45) 2.5.6 Web Components Los componentes Web J2EE pueden ser servlets o paginas JSP. Los servlets son clase escritos en Java que procesan dinámicamente requerimientos y construyen requerimientos. Las paginas JSP son documentos de texto que ejecutan como los servlets pero permite una mayor capacidad para la creación de contenido estático. Las paginas HTML estáticas y los applets son unidos a los componentes web a la hora de ensamblar las aplicaciones, pero no son considerados componentes web según la especificación J2EE.. [8] Figura 6. Arquitectura J2EE.. 2.5.7 Servlets Un servlet es una clase escrita en programación Java usada para extender las capacidades de los servidores que las aplicaciones host accesan a través de requerimientos y respuestas según el modelo de programación. Los paquetes javax.servlet y javax.servlet.http proveen interfaces y clases para la creación de servlets. Todos los servlets deben implementar la interfaz Servlet, que define métodos para el manejo del ciclo de vida.. 45.

(46) 2.5.8 JSP Una pagina JSP page es documento de texto que contiene dos tipos de texto: templates estáticos, que pueden ser expresados en cualquier formato de texto como HTML, SVG, WML, y XML; y elementos JSP, que contraten contenido dinámico. •. Las directives (<%@ page ... %>) importan clases en el paquete java.util, y configuran el tipo de contenido retornado por la pagina.. •. El elemento jsp:useBean crea un objeto que contiene una colección de variables locales que apuntan a un objeto.. •. Los Scriptlets (<% ... %> ) manejan contenido java dentro de la pagina.. •. Las Expresiones (<%= ... %>) insertan un valor de un nombre local dentro de una respuesta.. 2.6. Entorno de desarrollo. 2.6.1 ECLIPSE. 2.6.1.1. Proyecto ECLIPSE. El proyecto Eclipse es un proyecto de desarrollo de software abierto dedicado a proporcionar una plataforma robusta, completa, de calidad comercial para el desarrollo de herramientas con un alto grado de integración. Esta compuesto de tres subproyectos: Plataforma, JDT (Java Development Tools), y PDE (Plug-in Development Enviroment). Es un proyecto de código libre que se concentra en el desarrollo de código base para desarrolladores que crean sus propias herramientas. 2.6.1.2. Plataforma ECLIPSE. La plataforma de Eclipse un entorno open-source para la creación, integración, y desarrollo aplicaciones que pueden ser usadas en un gran rango de tecnologías computacionales. Provee un conjunto de servicios y establece la infraestructura y. 46.

(47) el área de trabajo interactivo usado por desarrolladores de proyectos para construir sus aplicaciones de software y los elementos relacionados con estas. 2.6.1.3. Arquitectura ECLIPSE. Eclipse es una plataforma universal para integrar herramientas de desarrolladores. Eclipse provee una arquitectura que es abierta y extensible. Todas las funcionalidades son suplidas a través de plug-ins.. PDE JDT Plataforma Java VM Figura 7. Arquitectura de Eclipse. 2.6.3 Ant Apache Ant es una herramienta basada en Java. Es una herramienta que evalúa una serie de dependencias y luego ejecuta comandos específicos.. Ant esta basado en comandos shell especialmente para el uso de clases Java. La diferencia con un archivo shell radica en que el archivo de configuración esta basado en tecnología XML, haciendo uso de un conjunto de targets que permiten ejecutar diferentes operaciones. Cada tarea es ejecutada por un objeto que implementa una Interfaz de Tarea particular.. En conjunto con plataformas de desarrollo como Eclipse permiten realizar las tareas de compilación de aplicaciones web de manera rápida y segura.. 47.

(48) 3. METODOLOGÍA PARA EL DESARROLLO DEL PROYECTO. Para el desarrollo del proyecto se utilizará la metodología de acuerdo con los estándares fijados por desarrollos en base a xtreme programing haciendo uso del Modelo en Cascada y en algunas ocasiones, según la complejidad a la que pueda llegar el software, el Modelo Incremental.. 3.1 FASES EN LA ELABORACION DEL PROYECTO. A continuación se enumeran y describen cada una de las fases del proyecto.. 3.1.1. Fase I. Lectura y Análisis de Información. El objetivo de esta fase, es la ubicación y contextualización dentro de la empresa y el proyecto específico en donde participa.. Las actividades a realizar en esta fase son:. 1. Conocimiento de la empresa y de los requerimientos generales del proyecto que se desea realizar. 2. Conocimiento de los procesos pertenecientes al Ministerio de Misiones de la institución. 3. Capacitación y entrenamiento en las herramientas de programación, bases de datos a utilizar y servidor a implementar: JSP, J2EE, Java, SQL, Tomcat. 4. Consecución y alistamiento del software y hardware necesarios para el desarrollo del proyecto. 5. Instalación del servidor Tomcat, entorno de programación Eclipse, base de datos MySQL y configuración de las herramientas de desarrollo.. 3.1.2. Fase II - Análisis y Diseño. Durante esta fase se definen claramente los requerimientos especificados por los clientes en cuanto a los datos y la funcionalidad que debe contener el módulo Web. 48.

(49) a desarrollar y se elabora un documento de requerimientos que será la base del diseño.. Se procede a revisar el modelo de datos del sistema académico y se hace la reingeniería de procesos involucrando los nuevos datos y la aplicación Web Al final de esta fase se tiene el documento de ESPECIFICACIONES DE DISEÑO, el cual contendrá el esquema entidad/relación, el diagrama funcional de la aplicación, la definición del esquema de la base de datos y el esquema de seguridad.. Las actividades a realizar en forma específica son: 1. Reuniones para conocer y afinar requerimientos de los clientes 2. Elaboración y aprobación del documento de requerimientos. 3. Revisión del modelo de datos del Sistema Académico. 4. Diseño de la base de datos Web 5. Diseño de las páginas 6. Diseño del esquema de seguridad 7. Diseño de las interfases con la base de datos académica 8. Elaboración del documento de especificaciones de diseño. 3.1.3. Fase III.- Implementación y Pruebas. Durante esta fase se efectúa la programación del módulo Web del Sistema Académico y se hacen las respectivas pruebas. Se hace la escritura, depuración y prueba de los programas tanto en forma independiente como integrada. Se hacen pruebas de almacenamiento, desempeño, carga pico que garanticen el óptimo funcionamiento del sistema. Las actividades a realizar en forma específica son: 1. Desarrollo del módulo de planes de estudio. 2. Desarrollo del módulo de notas 3. Desarrollo del módulo de admisiones 4. Desarrollo del módulo de prematricula. 49.

(50) 5. Desarrollo de las interfases con la base de datos académica 6. Desarrollo de las diferentes aplicaciones (aspirantes, estudiante, profesores, directores) 7. Implementación del protocolo de seguridad (SSL) 8. Pruebas de la carga de los archivos de datos al servidor Web. 9. Carga y descarga de la base de datos con registros de prueba. 10. Prueba de programas individuales 11. Revisión de características finales de cada página 12. Pruebas de la aplicación en forma integral.. 50.

(51) 4. 4.1. DESARROLLO DEL SISTEMA. DESCRIPCION DE LAS FUNCIONES DEL SISTEMA.. 4.1.1 Funciones Manejo Material Ref# Función. Categoría. R1.1 Modificar material. Evidente. R1.2 Adicionar material. Evidente. R1.3 Solicitar material. Evidente. R1.4 Borrar material. Evidente. R1.5 Mostrar material existente. Evidente. R1.6 Reducir material existente cuando se solicita. Oculta. 4.1.2 Funciones Manejo Calendario Ref# Función. Categoría. R2.1 Buscar persona en el calendario. Evidente. R2.2 Mostrar frecuencia viaje persona. Evidente. R2.3 Mostrar cruces calendario. Evidente. R2.4 Mostrar equipos del calendario. Evidente. R2.5 Crear calendario. Evidente. R2.6 Eliminar calendario. Evidente. R2.7 Mostrar calendario. Evidente. R2.8 Imprimir calendario. Evidente. R2.9. Mostrar lista total de personas que pueden viajar en un calendario. R2.10 Adicionar personas que viajan. Evidente Evidente. 51.

(52) 4.1.3 Funciones Manejo Personal Ministerio Ref# Función. Categoría. R3.1 Adicionar nombre a lista ministerio. Evidente. R3.2 Modificar datos lista ministerio. Evidente. R3.3 Borrar lista ministerio. Evidente. R3.4 Imprimir lista ministerio. Evidente. R3.5 Modificar datos lista ministerio. Evidente. R3.6 Mostrar lista total ministerio por orden alfabético. Evidente. R3.7 Mostrar personas por ministerio en orden alfabético. Evidente. R3.8 Buscar persona ministerio. Evidente. R3.9 Eliminar nombre a lista de ministerio. Evidente. 4.1.4 Funciones Manejo Pasajes Ref# Función. Categoría. R4.1 Solicitar reserva pasaje. Evidente. R4.2 Adicionar millas acumuladas. Evidente. R4.3 Mostrar millas acumuladas. Evidente. R4.4 Mostrar datos pasaje. Evidente. R4.5 Mostrar personas con pasaje por confirmar. Evidente. R4.6 Mostrar personas con pasaje confirmado. Evidente. R4.7 Solicitar confirmación pasaje. Evidente. R4.8 Confirmar pasaje. Evidente. R4.9 Modificar datos pasaje. Evidente. R4.10 Eliminar pasaje. Evidente. 52.

(53) 4.1.5 Funciones Manejo Obras Ref# Función. Categoría. R5.1 Actualizar datos obras. Oculta. R5.2 Adicionar obra madura. Evidente. R5.3 Adicionar obra menor. Evidente. R5.4 Modificar obra madura. Evidente. R5.5 Modificar obra menor. Evidente. R5.6 Eliminar obra. Evidente. R5.7 Mostrar datos obra madura. Evidente. R5.8 Mostrar datos obra menor. Evidente. 4.1.6 Funciones Registro Usuario Ref# Función. Categoría. R6.1 Registrar Secretaria. Evidente. R6.2 Registrar Líder de Misiones. Evidente. R6.3 Registrar Líder Obra. Evidente. R6.4 Registrar Líder de Ministerio. Evidente. 4.2. DESCRIPCION DE LOS CASOS DE USO DEL SISTEMA.. 4.2.1 Funciones Manejo Material ID. M1. Caso de uso: Modificar material Actores:. Secretaria. Prioridad:. 2. Precondición: El usuario se encuentra en el sistema. Existe un material. 53.

(54) registrado en el sistema. Poscondición: El material es reemplazado por la nueva información suministrada por el usuario. Descripción:. La secretaria entra al sistema. Informa al sistema que desea modificar un tipo de material existente. Modifica, el nombre o las características de este material. El sistema despliega una ventana preguntando si desea realizar los cambios al material modificado. La secretaria confirma la modificación. El sistema. ID. M2. Caso de uso: Adicionar material Actores:. Secretaria. Prioridad:. 1. Precondición: El usuario ha ingresado en el sistema. No existe un material con las mismas especificaciones del material que se desea adicionar. Poscondición: Un nuevo material es registrado en el sistema. Descripción:. La secretaria entra al sistema. Informa al sistema que desea agregar un nuevo tipo de material. El sistema le solicita el nombre del material y la descripción del mismo, así como el número inicial de existencias del mismo. La secretaria suministra los datos al sistema y solicita al sistema guardar la información.. El sistema guarda los datos suministrados.. ID. M3. Caso de uso: Solicitar material Actores:. Secretaria, Líder del ministerio. Prioridad:. 2. Precondición: El usuario ha ingresado al sistema. El material solicitado 54.

(55) pertenece a uno de los tipos registrados en el sistema y hay existencias del mismo. Poscondición: En el sistema queda registrada una solicitud de material. Descripción:. El líder del ministerio ingresa al sistema. Solicita al sistema que se suministre un tipo de material existente. Si el material tiene existencia suficiente, el sistema deja una notificación a la secretaria de que se ha solicitado un material específico, además del número de elementos necesarios de ese material. Si el material no tiene suficiente numero de existencia para cubrir la solicitud, informa a la secretaria el número de materiales que se solicitaron, el número de material existente, y el número de material faltante para ser suministrado. La secretaria revisa en el sistema el tipo de material que se ha solicitado y lo suministra. Una vez suministrado, informa al sistema de que la labor de solicitud de material ha finalizado. El sistema informa al Líder del ministerio que el material esta listo para ser utilizado.. ID. M4. Caso de uso: Borrar material Actores:. Secretaria. Prioridad:. 3. Precondición: El usuario ha ingresado en el sistema. Existe el material que se desea borrar. Poscondición: Queda eliminado del sistema el tipo de material especificado. Descripción:. La secretaria ingresa al sistema. Informa al sistema que desea borrar un tipo de material existente. Selecciona al material que desea borrar. Confirma que el material seleccionado es el que desea borrar. El sistema borra el material seleccionado y las. 55.

Referencias

Documento similar