Download Lecture Notes in Computer Science:
Document related concepts
no text concepts found
Transcript
Anteproyecto de Trabajo Fin de Carrera Aplicación Empresarial para Internet utilizando patrones de diseño y UML Isaac Gutiérrez Gómez Ingeniería en Informática Escuela Técnica Superior de Ingeniería Informática Universidad de Alcalá [email protected] Palabras clave. J2EE, Java, Patrones de Diseño, UML, Servicios Web, SOAP, XML, HTML, SOA, Arquitectura Software. 1 Introducción Cada vez más las aplicaciones existentes deben de estar disponibles en Internet y los clientes deben de acceder a sus servicios 24 horas al día, 7 días a la semana los 365 días del año. Y las aplicaciones cada vez son más complejas y más grandes y los recursos para desarrollarlas son cada vez más escasos, o una misma persona puede participar en varias aplicaciones. También hay que tener en cuenta la permanencia de los analistas y desarrolladores en un mismo proyecto, en un mismo proyecto puede darse el caso de salida y entrada de distintas personas y los desarrolladores de software no se suelen fiar de lo que no está supervisado por ellos mismos. Por todo lo anterior es necesario ir a la reutilización de software y a un lenguaje común para los analistas (UML) esto permitirá tener una mejor documentación de los proyectos. Desde que el W3C aprobó la especificación 1.0 del XML en febrero de 1998, ha sido increíble la cantidad de información, aplicaciones y software que se ha ido generando alrededor de este nuevo estándar. En este proyecto veremos las principales características del XML y como podemos utilizarlo para crear nuestra aplicación para Internet. Entre las muchas ventajas de utilizar XML podemos citar: Sencillez. Variedad de estructuras de datos Excelente tratamiento de caracteres internacionales Y como ejemplo de aplicación se puede utilizar para realizar motores de búsqueda mucho más eficaces, lo que nos permitirá un acceso más rápido y eficiente a la información, o los ficheros de configuración de las aplicaciones. Otro concepto importante son los Servicios Web, y una definición funcional de un servicio Web es que es una componente de software independiente de plataforma e implementación y que puede ser: Descrita usando un lenguaje de descripción de servicio. Publicada en un registro de servicios. Descubierta a través de un mecanismo estándar Invocada a través de un API declarado, usualmente sobre una red. Compuesta con otros servicios. Los Servicios Web hacen uso de XML y los vamos a utilizar para una posible integración con otras aplicaciones de la misma tecnología o incluso con otra tecnología distinta. Al comienzo de las aplicaciones en Internet, los portales fueron simplemente una forma de anunciarse o de que las empresas tuvieran presencia en Internet, simples formularios, publicidad o catálogos estáticos de proveedores. Actualmente todo esto ha evolucionado y las aplicaciones que se desarrollan para Internet se pueden dividir en tres grandes mundos: J2EE, .NET y luego existen otras serie de tecnologías como pueden ser CGI o PHP. Estas tecnologías están ayudando a los arquitectos y desarrolladores a reducir la complejidad del código y acelerar el desarrollo. En la siguiente figura se puede apreciar como utilizando distintas tecnologías se pueden obtener los mismos resultados: A pesar de las distintas tecnologías para construir aplicaciones para Internet vamos a utilizar J2EE (Java 2 Platform, Enterprise Edition) que es un conjunto de especificaciones de APIs Java para la construcción de aplicaciones empresariales puede utilizarse con servidores de aplicaciones de código libre y es independiente de la plataforma. Tenemos que tener en cuenta que para poder comprender la utilización de los patrones de diseño se deben tener unos conocimientos fundamentales del modelo de Objetos. Por esta causa se dan por supuestos ciertos conceptos fundamentales de las Tecnologías Orientadas a Objetos (clase, objeto, encapsulación, herencia, polimorfismo, agregación, etc.) que se van a utilizar en los siguientes puntos de este proyecto. 2 Objetivos El objetivo principal del trabajo consiste en facilitar la experiencia necesaria de cómo realizar una aplicación empresarial para Internet que sea fácil de mantener, escalable y que tenga componentes reutilizables para siguientes aplicaciones con la suficiente documentación. Posteriormente se diseñarán los mecanismos necesarios para que nuestra aplicación desarrollada sea de fácil integración con otros sistemas y aplicaciones. Para este propósito se hará uso de los Servicios Web y de los patrones de diseño principales de Servicios Web. De esta forma realizando una aplicación, podemos ahorrar costes en futuros desarrollos y sobre todo en el mantenimiento donde los proyectos pueden ocasionar unos costes bastante elevados. Los objetivos específicos planteados son los siguientes: 1. 2. 3. 4. 5. 6. Analizar y documentar los distintos patrones de diseño para la construcción de aplicaciones para Internet. Investigar sobre las nuevas tecnologías de integración y su aplicación como son los Servicios Web. Conseguir una aplicación segura, escalable, robusta, fácil de testear y de mantener y que sea portable. Ahorro de costes en la creación de nuevas aplicaciones y su posterior mantenimiento. Evaluar los resultados obtenidos de rendimiento de la aplicación desarrollada. Redactar un informe o memoria final con los resultados de la aplicación de las distintas tecnologías y herramientas utilizadas. 3 Resultados El principal resultado del trabajo será una aplicación que funcione para Internet aportando: - Una arquitectura de software base que sea útil para el desarrollo de nuevas aplicaciones. - El estudio y clasificación de los patrones de diseño que mejor se adaptan a la construcción de aplicaciones para Internet. - El análisis de los resultados obtenidos al utilizar patrones de diseño y Servicios Web. También se desarrollará una memoria describiendo cada una de las tecnologías utilizadas, ventajas de estas tecnologías y la documentación del código fuente desarrollado. 4 Metodología El método que se aplicará en el trabajo será el más adecuado para este tipo de desarrollo: se llevará a cabo un estudio de los patrones de diseño que mejor se adaptan a la construcción de aplicaciones para Internet, se diseñará la aplicación utilizando UML, se desarrollarán los componentes base de software que constituirán la arquitectura base y, finalmente, se pasará al desarrollo de la aplicación haciendo uso de la arquitectura base desarrollada. 5 Recursos En la medida que podamos vamos a intentar utilizar herramientas que sean gratuitas, aquellas herramientas que tienen licencia GPL. Las herramientas software que vamos a utilizar son las siguientes: Plataforma Java: La plataforma Java es ideal para desarrollar patrones de diseño y Servicios Web. Y también esto nos permitirá utilizar herramientas de código abierto. ArgoUML: Herramienta de modelado UML. Es una herramienta de licencia GPL. Y nos permitirá hacer el diseño de nuestra aplicación, y ver el diagrama de clases de cada patrón de diseño utilizado. Apache Tomcat: Es el servidor de aplicación de Apache, es gratis, y está lo suficientemente probado para poder desarrollar aplicaciones J2EE en un entorno profesional. Eclipse: Es el entorno de desarrollo. MySQL: Es la base de datos, que también es gratuita. Hemos escogido esta base de datos porque lleva tiempo en el mercado y es gratuita, otra buena opción podría haber sido PostgreSQL. MM.MySQL: Es el driver JDBC para poder acceder a la base de datos MySQL. También se requerirá el siguiente equipamiento hardware: Se necesitará un computador personal con impresora láser, acceso a Internet, para la codificación y realización de la documentación. Un servidor con un procesador de velocidad elevada para la implemetación y la realización de las pruebas del código desarrollado. 6 Bibliografía Cauldwell, Chawla, Chopra, Damschen, Dix, Hong, Norton, Zaev “Profesional XML Web Services”, (2001), Wrox Press. “Java Web Services for Experienced Programmers”, Deitel Developer Series (2003), Pearson Education. Deepak Alur “Core J2EE Patterns”, Sun Microsystems (2001) James Goodwill, Richard Hightower “Professional Java Struts”, September 2003 Wrox Press Lennart Jorelint “J2EE FrontEnd Technologies: A Programmer's Guide to Servlets, JavaServer Pages, and Enterprise JavaBeans”, Apress (2001) 7 Planificación Plan de proy ecto Fuente: • Instalación Estudio Instalar Realizar Seleccionar Se Codificación juntarán yde lasy Desarrollo Análisis CodificaPreparar Preparar Pruebas Isaac Gutiérpruebas configurar todas los las de requerimienlas clases compolos las hede pael el Arquitectura aquitectura ede ción ción entorno InvestigaDiseño integrade de los lade rez integración: entorno pruebas nentes anteriores trones rramientas tos de necepara nediecompoentes principales donde funcionalidesarrollo Integración ciónfun-de Ofreciendo que cesarias sarios para seño desarrollo ladarle selecpara aplipara componentes cione de dad integrala de aplila • Especificauna que cación ver que funcionalicionados seleccionainterfaz la aplipueda la y ción aplicación cación (Serviaccediendo integrarse aplicación cación dad das ciones a laconpueda apli-a Web) • cios ella aotras con construida integrarse cación, Codificación cretas través deaula • aplicación aplicaciones. funciona con tenticación, de Instalación los las otras clases protocolos adecuadaaplicaciones acceso necesarias de lo necesaestaa da• Casos blecidos Canales ymente. tos, adicionales rio otros para navegade sistener de uso comunicatemas ción, operativo trata-el • Se Acceder ción, Pruebas miento entorno escogerán seguride de a • los otros dad unitarias Codificar formularios, desarrollo patrones necesaria sistenelos emas cesarias interfaces etc. de instalación diseñoy apor de los propruebas donde utilizar. sede pogramas funcionalidrá acceder nece-a • Se sarios dad otros elegirá sisteparala tal fin mas arquitectura y por donde otras software de aplicaciones la aplicación podrán acce• Estudio der a la funy cionalidad elección de ofrecida. herramientas También adjunto un gráfico con las distintas fases y una explicación.
Related documents