Title: Aplicaci
1Aplicación Empresarial para Internet
Aplicación Empresarial para Internet
Utilizando Patrones de Diseño y UML
Utilizando Patrones de Diseño y UML
Isaac Gutiérrez Gómez
Isaac Gutiérrez Gómez
Fuente Análisis Aquanima
2Contenidos
- Propósito y Objetivos
- Palabras Clave
- Introducción / Contexto / Visión General
- Investigaciones relacionadas
- Tipo de proyecto
- Métodos a seguir
- Recursos requeridos
- Plan del proyecto
Fuente Isaac Gutiérrez
3Propósito y Objetivos
Propósito Obtener una aplicación para Internet
fiable, reutilizable, bien documentada, fácil de
mantener y que pueda interactuar con otros
sistemas de forma sencilla, utilizando patrones
de diseño y servicios web.
- Objetivos
- Evaluar que patrones de diseño se adaptan mejor
para la realización de una aplicación para
Internet y para que interactúe con otros sistemas
de una forma sencilla. - Desarrollar una aplicación para Internet con los
componentes principales, autenticación,
navegación, acceso a datos y fácil de integrar
con otros sistemas. - Comprobar lo que aportan los patrones de diseño
en la construcción de una aplicación. - Discusión y evaluación de herramientas de
modelado UML. - Analizar el papel que juegan los Servicios Web
para la integración de aplicaciones - Construir componentes reutilizables para otras
aplicaciones. - Utilización de las últimas tecnologías para
construcción de aplicaciones para Internet. - Construir una arquitectura escable y robusta.
Fuente Isaac Gutiérrez
4Contenidos
- Propósito y Objetivos
- Palabras Clave
- Introducción / Contexto / Visión General
- Investigaciones relacionadas
- Tipo de proyecto
- Métodos a seguir
- Recursos requeridos
- Plan del proyecto
Fuente Isaac Gutiérrez
5Palabras clave
Patrones de diseño, Lenguaje Java, Tecnología
Orientada a Objetos, Capas, Notación UML,
Software, patrones J2EE, Singleton, Iterator,
Factory, Delegación, Interface, Value Object,
MVC, Servicios Web, XML, SOAP, Arquitecturas SOA,
SQL, Data Transfer Object, Implementación, Apache
Tomcat, Apache AXIS, UDDI, LDAP, Learning,
Integración, Servicio de directorio.
Fuente Isaac Gutiérrez
6Contenidos
- Propósito y Objetivos
- Palabras Clave
- Introducción / Contexto / Visión General
- Investigaciones relacionadas
- Tipo de proyecto
- Métodos a seguir
- Recursos requeridos
- Plan del proyecto
Fuente Isaac Gutiérrez
7Introducción / Contexto / Visión general
Para poder comprender la utilización de los
patrones se deben tener unos conocimientos
fundamentales del modelo de Objetos (clase,
objeto, encapsulación, herencia, polimorfismo,
agregación, ...). Las aplicaciones cada vez son
más complejas y más grandes y los recursos para
desarrollarlas pueden llegar a ser 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 esto 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. Con la
reutilización de software uno de los objetivos a
conseguir es no reinventar la rueda para la
resolución de diferentes problemas, y aquí es
donde entran en juego los patrones de diseño
que aparte de mejorar la documentación y
mantenimiento de sistemas existentes crean un
lenguaje común a una comunidad de desarrolladores
para comunicar experiencia sobre los problemas y
sus soluciones.
Fuente Isaac Gutiérrez
8Introducción / Contexto / Visión general
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,
y las aplicaciones que utilizaban la mayoría de
las empresas, trabajaban de forma aislada sin
interactuar con ninguna otra. Tradicionalmente se
han requerido acciones manuales para esta
integración, pero estas acciones llevan asociado
un coste tanto económico como a nivel de
productividad. Cuanto mayor fue la utilización de
Internet y la evolución de los procesos de
negocio, se fue haciendo cada vez más necesario
la cooperación de aplicaciones y la integración
de procesos, y cada vez más una compañía requiere
los servicios de otra. Actualmente todo esto ha
evolucionado y han aparecido nuevas tecnologías
que están ayudando a los arquitectos y
desarrolladores a reducir la complejidad del
código y acelerar el desarrollo. Haremos uso de
estas tecnologías tanto para desarrollar la
aplicación como para que se pueda integrar con
otros sistemas de una forma sencilla haciendo uso
de los actuales estándares, aquí es donde entran
en juego los Servicios Web (componentes software
que permiten la comunicación aplicación-aplicación
usando los protocolos estándar de Internet).
Fuente Isaac Gutiérrez
9Introducción / Contexto / Visión general
Fuente Isaac Gutiérrez
10Introducción / Contexto / Visión general
En la siguiente figura se puede apreciar una
comparación de las capas de los dos estándares
más utilizados, .NET y J2EE. En la parte de J2EE
las dos últimas capas corresponden a un framework
de desarrollo (struts).
Para este proyecto vamos a utilizar la tecnología
J2EE (Java 2 Enterprise Edition), porque una
implementación J2EE puede estar disponible en
diferentes plataformas, como se puede apreciar en
la figura anterior, desde mainframes a
plataformas Wintel, UNIX o Linux. Esto se puede
resumir con la famosa frase Escribe una sola vez
y ejecútalo en múltiples plataformas.
Fuente Isaac Gutiérrez
11Contenidos
- Propósito y Objetivos
- Palabras Clave
- Introducción / Contexto / Visión General
- Investigaciones relacionadas
- Tipo de proyecto
- Métodos a seguir
- Recursos requeridos
- Plan del proyecto
Fuente Isaac Gutiérrez
12Investigaciones relacionadas
Cuando se decide construir una aplicación
empresarial para Internet, se tienen que tener en
cuanta una serie de factores, porque de lo
contrario la aplicación fracasará. Algunos de
estos factores son la seguridad, qué y cuantos
usuarios van a utilizar la aplicación, si va a
estar personalizada para cada usuario, etc.. Con
respecto a esto están empezando a surgir una
serie de herramientas y frameworks de desarrollo
para poder construir aplicaciones para Internet
como pueden ser Struts, Sofia, etc.. Donde su
arquitectura principal se basa en los patrones de
diseño y resuelven alguno de los factores
mencionados anteriormente. Aunque a veces se
termine el trabajo de integración de las
aplicaciones, éstas pueden resultar sistemas
ininteligibles, (o sólo inteligibles por los
desarrolladores que las han construido) y difícil
de mantener. Los servicios web pueden llegar a
mostrar una arquitectura común para exportar la
funcionalidad que los procesos de negocio
necesitan ayudando a los programadores a realizar
estas funciones. Y lo mejor de todo es que los
servicios web permiten extraer a los
programadores de los procesos de negocio y
centrarse en como es el entorno de programación
de los servicios web.
Fuente Isaac Gutiérrez
13Contenidos
- Propósito y Objetivos
- Palabras Clave
- Introducción / Contexto / Visión General
- Investigaciones relacionadas
- Tipo de proyecto
- Métodos a seguir
- Recursos requeridos
- Plan del proyecto
Fuente Isaac Gutiérrez
14Tipo de proyecto
Desarrollo
- Reduce los costes de mantenimiento
- Facilita la transferencia de mejores prácticas y
herramientas - Evita la pérdida de tiempo y la duplicación de
esfuerzos - Previene contra los errores
- Aumenta la flexibilidad del equipo de trabajo
- Aporta lo necesario para que sirva
- como guía para futuros
- desarrollos
- Facilita el desarrollo de la integración,
estudiando y analizando los SW.
- Proporciona una mejor comprensión de las
capacidades de aplicación de las tecnologías
utilizadas
- Permite tomar decisiones de forma más rápida y
efectiva sobre lo que se va a desarrollar.
Investigación
SW Servicios Web
Fuente Isaac Gutiérrez
15Contenidos
- Propósito y Objetivos
- Palabras Clave
- Introducción / Contexto / Visión General
- Investigaciones relacionadas
- Tipo de proyecto
- Métodos a seguir
- Recursos requeridos
- Plan del proyecto
Fuente Isaac Gutiérrez
16Métodos a seguir
El método que se va a seguir es la metodología
RUP, pero adaptada a las necesidades del
proyecto. Toda la documentación necesaria y uso
de los diagramas necesarios y de
arquitectura. Pero para la realización del
proyecto solo intervendrá una persona.
Fuente Isaac Gutiérrez
17Contenidos
- Propósito y Objetivos
- Palabras Clave
- Introducción / Contexto / Visión General
- Investigaciones relacionadas
- Tipo de proyecto
- Preguntas de investigación e hipótesis
- Métodos a seguir
- Recursos requeridos
- Plan del proyecto
Fuente Isaac Gutiérrez
18Recursos requeridos
- En la medida que podamos vamos a intentar
utilizar herramientas que sean gratuitas
(libres), aquellas herramientas que tienen
licencia GPL. Las herramientas 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 / Together Community Edition
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.
Fuente Isaac Gutiérrez
19Contenidos
- Propósito y Objetivos
- Palabras Clave
- Introducción / Contexto / Visión General
- Investigaciones relacionadas
- Tipo de proyecto
- Preguntas de investigación e hipótesis
- Métodos a seguir
- Recursos requeridos
- Plan del proyecto
Fuente Isaac Gutiérrez
20Plan de proyecto
Análisis y Diseño
Desarrollo e Investigación
Preparar Arquitectura e Integración
Preparar el entorno de desarrollo
Codificación de los principales componentes
Codificación de la funcionalidad de la aplicación
Codificación de los compoentes de integración
(Servicios Web)
Pruebas
Preparar aquitectura donde funcione la aplicación
Pruebas de integración
- Estudio de requerimientos
- Especificaciones concretas de la aplicación
- Casos de uso
- Se escogerán los patrones de diseño a utilizar.
- Se elegirá la arquitectura software de la
aplicación - Estudio y elección de herramientas
- Instalación de las herramientas de desarrollo
seleccionadas - Instalación de lo necesario para tener operativo
el entorno de desarrollo
- Codificación de los patrones de diseño
seleccionados - Codificación de las clases necesarias adicionales
- Se juntarán las clases anteriores para darle
funcionalidad a la aplicación, autenticación,
acceso a datos, navegación, tratamiento de
formularios, etc.
- Seleccionar los componentes necesarios para que
la aplicación pueda integrarse con otras
aplicaciones y otros sistemas - Codificar los interfaces por donde se podrá
acceder a otros sistemas y por donde otras
aplicaciones podrán acceder a la funcionalidad
ofrecida.
- Realizar todas las pruebas necesarias para ver
que la aplicación construida funciona
adecuadamente. - Pruebas unitarias necesarias y pruebas de
funcionalidad
- Instalar y configurar el entorno para que la
aplicación pueda integrarse con otras
aplicaciones. - Canales de comunicación, seguridad necesaria e
instalación de los programas necesarios para tal
fin
- Realizar las pruebas de integración Ofreciendo
una interfaz y accediendo a ella a través de los
protocolos establecidos - Acceder a otros sistemas
Fuente Isaac Gutiérrez