Download CAPITULO 4_T1 - Repositorio CISC
Document related concepts
no text concepts found
Transcript
106 CAPITULO 4 4. IMPLEMENTACIÓN DEL SISTEMA 4.1. Introducción Este proyecto esta desarrollado en una arquitectura multicapa mediante el estándar Java 2 Enterprice Edition o J2EE, con tecnologías como JavaServers PagesTM JSP, Servlets Java Naming and Directory InterfaceTM (JNDI), Enterprise JavaBeansTM, HTML, Struts, Hibernate, Apache Tomcat. Se utilizo como herramienta de desarrollo el IDE Eclipse, IReports para obtener reportes, todas ellas basadas en lenguaje Java. El proyecto podrá ser ampliado con otras funciones, debido a que realizará una minería de datos en la página Web. El diseño de la base de datos esta orientado al enfoque relacional. Las aplicaciones Web Java son parte de la arquitectura J2EE, con una colección de recursos tales como: páginas JSP, servlets, archivos HTML, imágenes, etc. todos ellos ubicados en un URI específico. 107 Esta colección de recursos esta organizada en una estructura jerárquica básicamente de dos partes de directorios: uno privado que es WEB-INF y otro público que contiene los recursos públicos como páginas JSP, etc. Esta aplicación Web puede ser empaquetada en un archivo WAR (Web Application Archive). Las ventajas principales de la utilización de estos archivos son: • Multiplataforma. • Simplificación. • Seguridad. Nuestra aplicación tiene su estructura de directorios que nos deja ver claramente los componentes propuestos en el diseño. Como gestor de base de datos se utilizó PostgreSQL 8.1, el cual también es en software open source. Este SGBD tiene poca estabilidad con Windows, es recomendable utilizarlo mejor en ambiente Unix, sin embargo sirvió en nuestra aplicación de la mejor manera. 4.2. Estructura de directorios del proyecto El proyecto ha sido estructurado manteniendo las clases privadas sin un contacto directo del ambiente del sistema sino a través de clases objetos de negocio BO, como objetos de acceso a datos DAO. Además la estructura de misma nos permite la ocultación de la información, entre otras caracteristcas ya mencionadas a lo largo de este documento. 108 La estructura de directorios de nuestra aplicación se muestra en la siguiente figura: Gráfico No.: 4.3 Título: Estructura de directorios 109 4.3. Herramientas y tecnologías utilizadas A continuación se dan conceptos y explicaciones de algunas herramientas y tecnologías utilizadas. 4.3.1. Java 2 Enterprise Edition J2EE J2EE es una plataforma que habilita soluciones para desarrollo, uso efectivo y manejo de multicapas en aplicaciones centralizadas en el servidor. J2EE utiliza la plataforma Java 2 SE, para tender una completa, estable, segura, y rápida plataforma Java en el ámbito de la empresa. Permite ahorrar, porque habilita una plataforma que reduce de manera significativa los costos y la complejidad de desarrollo de soluciones multicapas, resultando en servicios que pueden ser desarrollados rápida y ampliados fácilmente. Es la edición empresarial del paquete Java creada y distribuida por Sun Microsystems. Comprenden un conjunto de especificaciones y funcionalidades orientadas al desarrollo de aplicaciones empresariales. Debido a que J2EE no deja de ser un estándar, existen otros productos desarrollados a partir de ella aunque no exclusivamente. Algunas de sus funcionalidades más importantes son: • Acceso a base de datos (JDBC) • Utilizado por BEA, IBM, Oracle, Sun, y Apache Tomcat entre otros. • Utilización de directorios distribuidos (JNDI) 110 • Acceso a métodos remotos (RMI/CORBA) • Funciones de correo electrónico (JavaMail) • Aplicaciones Web (JSP y Servlet) • Uso de Beans, etc. La plataforma Java 2, Enterprise Edition (J2EE) es fruto de la colaboración de SUN con los líderes del sector del software empresarial (IBM, Apple, Bea Systems, Oracle, Inprise, Hewlett-Packard, Novell, etc.) para definir una plataforma robusta y flexible orientada a cubrir las necesidades empresariales en e-business y business-to-business. Estos servicios necesitan ser: • Highly available: Alta disponibilidad, para percibir las necesidades de hoy, en un ambiente global de negocios. • Secure: Seguridad, para proteger la privacidad de los usuarios y la integridad de la empresa. • Reliable and scalable: Fiabilidad y escalabilidad, para asegurar que las transacciones del negocio sean procesadas prontamente y con precisión. ¿Qué tecnologías son incluidas en J2EE? • Enterprise JavaBeansTM • JavaServers PagesTM 111 • Servlets • Java Naming and Directory InterfaceTM (JNDI) • Java Transaction API (JTA) • CORBA • API de acceso a datos JDBCTM. • JMS • RMI-IIOP El ambiente de runtime de J2EE consta de las siguientes partes: Componentes de la aplicación. El modelo de programación de J2EE define cuatro tipos de componentes de la aplicación que un producto J2EE debe soportar: 1) Clientes de la Aplicación, son programas creados en Java que son generalmente programas GUI, que se ejecutan sobre una computadora de escritorio. La aplicación cliente ofrece a un usuario una experimenta similar al de las aplicaciones nativas, y tiene acceso a todos los medios de la J2EE middle-tier. 2) Applet´s, GUI component que generalmente procesan un programa en un web browser, pero pueden procesar una variedad de otras aplicaciones o dispositivos que soportan el modelo de programación del applet. Las Applets pueden ser usadas para proporcionar una poderosa interfaz de usuario para las aplicaciones J2EE. (Simples páginas HTML se pueden 112 usar también para proporcionar una interfaz de usuario más limitada para aplicaciones J2EE.) 3) Páginas Servlets y JSP generalmente procesan un programa en un servidor Web y responden a las peticiones HTTP de los clientes Web. Las páginas Servlets y JSP pueden ser utilizadas para que generen páginas HTML que son aplicación de interfaz de usuario. Pueden también ser usadas para generar XML u otro formato de datos que es consumido por otros componentes de la aplicación. Servlets, y páginas creadas con la tecnología JavaServer Pages, se refieren conjuntamente a menudo en ésta especificación como "Web components, componentes web". Las aplicaciones Web están compuestas de Web components y otros datos tal como las páginas HTML. 4) Enterprise JavaBeans (EJB) components, procesan en un ambiente controlado las transacciones soportadas. Enterprise beans generalmente contienen la lógica del negocio por una aplicación J2EE. 4.3.2. Eclipse Es un IDE multiplataforma libre para crear aplicaciones clientes de cualquier tipo. El proyecto Eclipse se divide en tres subproyectos: 113 El Core de la aplicación, que incluye el subsistema de ayuda, la plataforma para trabajo colaborativo, el Workbench (construido sobre SWT y JFace) y el Workspace para gestionar proyectos. Java Development Toolkit (JDT), donde la contribución de Erich Gamma ha sido fundamental. Plug-in Development Enviroment (PDE), que proporciona las herramientas para el desarrollo de nuevos módulos. El entorno integrado de desarrollo (IDE) de Eclipse emplea módulos (en inglés plug-in) para proporcionar toda su funcionalidad, a diferencia de otros entornos monolíticos donde las funcionalidades están todas incluidas, las necesite el usuario o no. El mecanismo de módulos permite que el entorno de desarrollo soporte otros lenguajes además de Java. Por ejemplo, existe un módulo para dar soporte a C/C++. Existen módulos para añadir un poco de todo, desde Telnet hasta soporte a bases de datos. Los componentes gráficos (widget) de Eclipse están basados en un juego de herramientas de tercera generación para Java de IBM llamado SWT que mejora los de primera y segunda generación de Sun (AWT y Swing, respectivamente). La interfaz de usuario de Eclipse cuenta con una capa intermedia de interfaz gráfica (GUI) llamada JFace, lo que simplifica la creación de aplicaciones basadas en SWT. 114 La definición que da el proyecto Eclipse acerca de su software es: "una especie de herramienta universal - un IDE abierto y extensible para todo y nada en particular". Gráfico No.: 4.1 Título: Interfaz de Eclipse 3.1 4.3.3. Apache Tomcat Tomcat (también llamado Jakarta Tomcat o Apache Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems. Se le considera un servidor de aplicaciones. 115 Tomcat es un servidor web con soporte de servlets y JSPs. Incluye el compilador Jasper, que compila JSPs convirtiéndolas en servlets. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache. Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la máquina virtual. Estructura de directorios La jerarquía de directorios de instalación de Tomcat incluye: • bin.- Arranque, cierre, y otros scripts y ejecutables • common.- Cclases comunes que pueden utilizar Catalina y las aplicaciones web • conf.- Ficheros XML y los correspondientes DTDs configuración de Tomcat • logs.- Logs de Catalina y de las aplicaciones • server.- Clases utilizadas solamente por Catalina • shared.- Clases compartidas por todas las aplicaciones web • webapps.- Directorio que contiene las aplicaciones web • work.- Almacenamiento temporal de ficheros y directorios para la 116 Gráfico No.: 4.2 Titulo: Interfaz de Apache Tomcat 4.3.4. Java Servlets Pages JSP Los JSPs son en realidad servlets: 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 como un servlet. La principal diferencia entre los servlets y los JSPs es el enfoque de la programación: un JSP es una página Web con etiquetas especiales y código Java incrustado, mientras que un servlet es un programa que recibe peticiones y genera a partir de ellas una página web 117 Gráfico No.: Título: Funcionamiento de JSP Ambos necesitan un programa que los contenga, y sea el que envíe efectivamente páginas web al servidor, y reciba las peticiones, las distribuya entre los servlets, y lleve a cabo todas las tareas de gestión propias de un servidor web. Mientras que servidores como el Apache están especialmente pensados para páginas web estáticas CGIs, y programas ejecutados por el servidor, tales como el PHP, hay otros servidores específicos para servlets y JSPs llamados contenedores de servlets (servlet containers) o servlet engines. 118 4.3.5. Struts Es una herramienta de soporte para el desarrollo de aplicaciones Web bajo el patrón MVC bajo la plataforma J2EE (Java 2, Enterprise Edition). Struts se desarrollaba como parte del proyecto Jakarta de la Apache Software Foundation, pero actualmente es un proyecto independiente conocido como Apache Struts. Struts permite reducir el tiempo de desarrollo. Su carácter de "software libre" y su compatibilidad con todas las plataformas en que Java Entreprise esté disponible, lo convierte en una herramienta altamente disponible. Funcionamiento de Struts Struts se basa en el patrón del Modelo Vista Controlador (MVC) el cual se utiliza ampliamente y es considerado de gran solidez. De acuerdo con este modelo, el procesamiento se separa en tres secciones diferenciadas, llamadas el modelo, las vistas y el controlador. Cuando se programan aplicaciones Web con el patrón MVC, siempre surge la duda de usar un solo controlador o usar varios controladores, pues si consideramos mejor usar un solo controlador para tener toda nuestra lógica en un mismo lugar, nos encontramos con un grave problema, ya que nuestro controlador se convierte en lo que se conoce como "fat controller", es decir un controlador saturado de peticiones, Struts surge como la solución a este problema ya que implementa un solo controlador (ActionServlet) que evalúa 119 las peticiones del usuario mediante un archivo configurable (strutsconfig.xml). Componentes del modelo Corresponden a la lógica del negocio con el cual se comunica la aplicación web. Usualmente el modelo comprende accesos a Bases de Datos o sistemas que funcionan independientemente de la aplicación web . Componentes del control Los componentes de control son los encargados de coordinar las actividades de la aplicación, que van desde la recepción de datos del usuario, las verificaciones de forma y la selección de un componente del modelo a ser llamado. Por su parte los componentes del modelo envían al control sus eventuales resultados o errores de manera de poder continuar con otros pasos de la aplicación. Esta separación simplifica enormemente la escritura tanto de vistas como de componentes del modelo: Las páginas JSP no tienen que incluir manejo de errores, mientras que los elementos del control simplemente deciden sobre el paso siguiente a seguir. Entre las características de Struts se pueden mencionar: Configuración del control centralizada. Interrelaciones entre Acciones y página u otras acciones se especifican por tablas XML en lugar de codificarlas en los programas o páginas. 120 Componentes de aplicación, que son el mecanismo para compartir información bidireccionalmente entre el usuario de la aplicación y las acciones del modelo. Librerías de entidades para facilitar la mayoría de las operaciones que generalmente realizan las páginas JSP. Struts contiene herramientas para validación de campos de plantillas bajo varios esquemas que van desde validaciones locales en la página (en javaScript) hasta las validaciones de fondo hechas a nivel de las acciones. Struts permite que el desarrollador se concentre en el diseño de aplicaciones complejas como una serie simple de componentes del Modelo y de la vista intercomunicados por un control centralizado. Diseñando de esta manera se debe obtener una aplicación más consistente y más fácil de mantener. 121 4.4. Glosario de Términos A continuación se definen algunos términos utilizados en este documento. Actor.- Rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra rol, pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema. Asociación.- Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple. Apache Tomcat.- Se lo considera un servidor de aplicaciones, funciona como un contenedor de servlets desarrollado bajo el Proyecto Yakarta en al Apache Software foundation, implementa las especificaciones de los servlets y de los java Server pages (JSP). Applet.- Un componente que se ejecuta generalmente en un Web browser, pero puede ser ejecutado en una variedad de otras aplicaciones o dispositivos que soporten el modelo de programación del applet. Applet container.- Un contenedor que incluye soporte para el applet programming model. Application.- Una aplicación Java es un programa hecho en java y que generalmente se ejecuta en la maquina donde se encuentra el inicio del código. Tiene el mismo sentido que un programa en lenguaje C u otro lenguaje. 122 Base de datos.- Conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su posterior uso. Campo.- Un elemento inconstante de una determinada clase. Casos de Uso.- Representa la forma en como un Cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactúan. Corba.- Corba es el acrónimo de Common Object Request Broker Arquitecture. CORBA es una especificación, abierta y no dependiente de ninguna empresa, para una arquitectura e infraestructura orientada a que las aplicaciones informáticas puedan trabajar juntas a través de las redes de comunicaciones. Los programas basados en CORBA pueden interactuar unos con otros, independientemente de la compañía que los haya creado, del ordenador y sistema operativo sobre el que corran, del tipo de red y del lenguaje de programación en que hayan sido escritos. Datos.- Son los hechos que describen sucesos y entidades. Dependencia o Instanciación.- Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada. Diagrama de Clases.- Sirve para visualizar las relaciones entre las clases que involucran el sistema. 123 Generalización.-Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su estereotipo, que puede ser de Uso (uses) o de Herencia (extends). EAR file.- Un archivo JAR que contiene una aplicación J2EE. EJB JAR file.- Un archivo JAR que contiene un módulo EJB. Enterprise JavaBeansTM (EJBTM).- Enterprise JavaBeans es la arquitectura de componentes de la parte de servidor para la plataforma J2EE. EJB posibilita el desarrollo rápido y simplificado de aplicaciones Java distribuidas, transaccionales y seguras. E-commerce.- Referido a aplicaciones que permiten transacciones e interacciones entre la compañía y el consumidor sobre Internet. También llamadas aplicaciones Business-To-Consumer (B2C) E-business.- Referido a aplicaciones que permiten transacciones e interacciones entre la compañía y sus proveedores sobre Internet. También llamadas aplicaciones Business-To-Business (B2B). E-enterprise.- Referido a aplicaciones que permiten la gestión no sólo de clientes y proveedores a través de Internet, sino también todos los procesos internos de la compañía, incluyendo funciones de backoffice y transacciones con partners externos. Extends.- Se recomienda utilizar cuando un caso de uso es similar a otro en sus características. 124 Flash.- Se refiere tanto al programa de edición multimedia como a Macromedia Flash Player, utiliza gráficos vectoriales e imágenes ráster, sonido, código de programa, flujo de vídeo y audio bidireccional. Hibernate.- Mapeador Objeto-Relacional ORM de código abierto. HTML.- Hypertext Markup Language. Un lenguaje de marcas para los documentos con hipervínculos de Internet. HTML enables the embedding of images, sounds, video streams, form fields, references to other objects with URLs and basic text formatting. HTTP.- Hypertext Transfer Protocol. The Internet protocol used for communication between clients and servers. HTTP messages consist of requests from client to server and responses from server to client. Ireports.- Programa para realizar reportes de transacciones, procesos o consultas generales. Información.- Es un conjunto de datos significativos y pertinentes que describan sucesos o entidades. Java Server Pages.- La tecnología Java Server Pages (JSP) permite a los diseñadores y desarrolladores de sitios web crear rápidamente y mantener de manera sencilla las páginas web dinámicas, ricas en información sobre las que se basan los sistemas de negocio. Como parte de la familia Java, la tecnología JSP posibilita el desarrollo de aplicaciones basadas en web que son independientes de la plataforma usada. La tecnología JSP separa la interface de usuario de la generación de contenidos, permitiendo a los 125 diseñadores cambiar el formato de la página sin alterar el contenido dinámico subyacente. JDBC.- La tecnología JDBC (Java DataBase Connectivity) es una interface de programación de aplicaciones (API) que permite acceder, desde el lenguaje de programación Java, a virtualmente cualquier fuente de datos tabulados. Proporciona conectividad cruzada DBMS a un amplio rango de bases de datos SQL, así como otras fuentes de datos tabulados, como hojas de cálculo o simples ficheros. JDK.- Java Development Kit, es el antiguo nombre del SDK. El JDK se renombro a SDK después de la versión 1.2.2. J2EE.- JavaTM 2 Enterprise Edition. J2SE.- JavaTM 2, Standard Edition. JRE.- Java Runtime Environement, es el kit destinado al cliente para poder ejecutar un programa java. Esencialmente esta compuesto de una Maquina Virtual Java (JVM) capaz de ejecutar el byte-code y las bibliotecas estándares de java. JavaServer Pages (JSP).. en el campo de la Informática, es una tecnología para crear aplicaciones web. Es un desarrollo de la compañía Sun Microsystems, y su funcionamiento se basa en scripts, que utilizan una variante del lenguaje java. Métodos.- Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno. 126 Macromedia.- Editor de páginas Web, creado por Macromedia (actualmente Adobe Systems, el cual va por la versión 8.02. Es el programa de este tipo más utilizado en el sector del diseño y la programación Web, por sus funcionalidades y su fácil integración con otras herramientas. Open Source.- Código abierto (del inglés open source) es el término por el que se conoce al software distribuido y desarrollado en forma libre. Public.- Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados. Private.- Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden accesar)Java.- Lenguaje de programación con el que podemos realizar cualquier tipo de programa. PostgreSQL. Servidor de base de datos relacional libre, liberado bajo la licencia BSD. Es una alternativa a otros sistemas de bases de datos de código abierto (como MySQL, Firebird y MaxDB), así como sistemas propietarios como Oracle o DB2. WAR file.- Es un archivo JAR que contiene módulos Web. Web component.- Es un componente que proporciona servicios en respuesta a peticiones. En Java se hace por medio de servlets y Páginas JSP. Servlet.- Un Servlet se puede considerar como un Applet pero del lado del servidor. Un Servlet da funcionalidades a un servicio Web. 127 SDK.- Standar Development Kit, es el kit destinado al programador, esta compuesto de un JRE, de un compilador y de varios programas útiles, ejemplos de programas java y el código de todas las clases del API. Sistemas de Información.- conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio. XML.- eXtensible Markup Language. Un lenguaje de marcas que permite definir los tags (markup) necesarios para definir los datos y los textos en un documento XML.