tcc postgrado web dev

63
Universidad Nacional del Este Facultad Polit´ ecnica Trabajo de Conclusi´ on de Curso de la Especializaci´on en Desarrollo de Aplicaciones Web IMPLEMENTACI ´ ON DE HERRAMIENTAS Y EST ´ ANDARES PROPIOS DE JAVA EN UNA APLICACI ´ ON WEB Por Rafael Reynould Benetti Jorge Daniel Dur´ e Amarilla Realizado bajo la orientaci´on del Prof. Lic. Esp. Jos´ e Eduardo Rojas Coppari Ciudad del Este, Alto Paran´ a, Paraguay Agosto de 2014

Upload: rafae

Post on 17-Jan-2016

53 views

Category:

Documents


0 download

DESCRIPTION

sistema web

TRANSCRIPT

Page 1: TCC Postgrado Web Dev

Universidad Nacional del Este

Facultad Politecnica

Trabajo de Conclusion de Curso de la

Especializacion en Desarrollo de Aplicaciones

Web

IMPLEMENTACION DE HERRAMIENTAS

Y ESTANDARES PROPIOS DE JAVA EN

UNA APLICACION WEB

PorRafael Reynould Benetti

Jorge Daniel Dure Amarilla

Realizado bajo la orientacion delProf. Lic. Esp. Jose Eduardo Rojas Coppari

Ciudad del Este, Alto Parana, Paraguay

Agosto de 2014

Page 2: TCC Postgrado Web Dev

Rafael Reynould BenettiJorge Daniel Dure Amarilla

Implementacion de herramientas y estandares pro-pios de Java en una aplicacion Web.

53 paginasDisertacion (Posgrado) - Facultad Politecnica - Uni-

versidad Nacional del Este. Departamento de Ingenierıade Sistemas.

1. Java.

2. Aplicacion Web.

Universidad Nacional del Este. Facultad Politecnica. Es-pecializacion en Desarrollo de Aplicaciones Web.

ii

Page 3: TCC Postgrado Web Dev
Page 4: TCC Postgrado Web Dev

Certifico que el presente Trabajo de Conclusion de Curso titulado “Im-plementacion de herramientas y estandares propios de Java en una aplicacionWeb.”, ha sido realizado por Rafael Reynould Benetti y Jorge Daniel DureAmarilla, bajo mi orientacion.

El mismo es producto del esfuerzo personal y original de los graduandos,y en mi opinion reune los meritos para su aprobacion y defensa ante la mesaexaminadora designada por la institucion.

Ciudad del Este,.........de..................................de 2014

..................................................................................................................................

Prof. Lic. Esp. Jose Rojas Coppari

Orientador de Trabajo de Conclusion de Curso

Nosotros, los miembros de la Mesa Examinadora del Trabajo de Conclu-sion de Curso de la Especializacion en Desarrollo de Aplicaciones Web de laFacultad Politecnica de la Universidad Nacional del Este, hacemos constarque el presente Trabajo Conclusion de Curso titulado “Implementacion de he-rramientas y estandares propios de Java en una aplicacion Web.”, ha sido eva-luado en forma y evaluado por esta Mesa, la que por .........................................haresuelto conceder la calificacion ...................................

Ciudad del Este,.........de..................................de 2014

.............................................................. ..............................................................Prof. Ing. Prof. Ing.

Miembro de la Mesa Examinadora Miembro de la Mesa Examinadora

..............................................................Prof. Ing.

Miembro de la Mesa Examinadora

iv

Page 5: TCC Postgrado Web Dev
Page 6: TCC Postgrado Web Dev

Resumen

***FALTA REDACTAR***Este trabajo consiste en el diseno, desarrollo e implementacion de un

sistema de gestion de pagos a domicilio denominado TouchPay System, querealiza la identificacion biometrica de los usuarios y beneficiarios del sistema,mediante su huella dactilar, maximizando de esta manera la seguridad en latransaccion del pago

El sistema busca resolver el problema de aquellas personas, generalmentede la tercera edad, que tienen dificultad de ir hasta el lugar de pago a cobrarsus haberes, ademas de los repetidos casos de fraude consecuentes de estasituacion.

El sistema esta disenado segun la arquitectura cliente-servidor, de modoa distribuir uniformemente la carga de procesos, y separar funciones de talmanera a lograr la mayor eficiencia y seguridad posible.

Para el desarrollo del sistema, tanto del lado del cliente como del servidor,se opto por utilizar software libre.

Para comprobar la eficacia del sistema, se realizo una prueba experimentalde campo, con sujetos de prueba de la tercera edad, todos residentes del Hogarde Ancianos San Francisco de Asıs de la Ciudad de Hernandarias.

Una novedad que es aportada por el desarrollo de este sistema es la inte-gracion de dos conceptos relativamente nuevos, que son el pago a domicilioy la identificacion por huellas dactilares, ademas de ser realizado comple-tamente utilizando software libre, lo que permite que el sistema pueda sermodificado y mejorado por personas que ası lo requieran.

Asimismo, el algoritmo de reconocimiento de huellas dactilares es softwa-re libre. Este algoritmo puede ser utilizado en infinidad de aplicaciones, porlo que el desarrollo de este sistema, ademas de resolver la problematica pre-sentada, es una contribucion importante a la comunidad del software libre,a la vez colaborando con la mejora de todos los sistemas que en el futuropodrıan ser desarrollados con el uso de este algoritmo.

Palabras Clave: Identificacion, Biometrıa, Tercera edad, Pagos.

vi

Page 7: TCC Postgrado Web Dev

Indice general

Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viIndice general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixIndice de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . x

1. Introduccion. 11.1. Introduccion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Motivacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3. Objetivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3.1. Objetivos Generales . . . . . . . . . . . . . . . . . . . . 21.3.2. Objetivos Especıficos . . . . . . . . . . . . . . . . . . . 2

1.4. Recursos y materiales . . . . . . . . . . . . . . . . . . . . . . . 31.4.1. Tecnicas a utilizar . . . . . . . . . . . . . . . . . . . . 3

1.5. Organizacion del trabajo. . . . . . . . . . . . . . . . . . . . . . 41.5.1. Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . 41.5.2. Diseno . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.5.3. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . 51.5.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2. Base tecnologica de JavaEE 62.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2. ¿Que es un framework? . . . . . . . . . . . . . . . . . . . . . . 72.3. Necesidades y objetivos de la autenticacion biometrica . . . . 7

2.3.1. Tipos de framework web . . . . . . . . . . . . . . . . . 82.3.2. Caracterısticas . . . . . . . . . . . . . . . . . . . . . . 8

2.4. El lenguaje de programacion Java . . . . . . . . . . . . . . . . 82.5. JavaEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5.1. Caracterısticas del JavaEE 7 . . . . . . . . . . . . . . . 102.6. Glassfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.7. APIs y Frameworks . . . . . . . . . . . . . . . . . . . . . . . . 11

2.7.1. APIs generales . . . . . . . . . . . . . . . . . . . . . . 112.7.2. Frameworks . . . . . . . . . . . . . . . . . . . . . . . . 12

vii

Page 8: TCC Postgrado Web Dev

3. Tecnologıa Java Enterprise Edition 143.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.1. Gestion ıntegra para gimnasios . . . . . . . . . . . . . 143.2.2. Adonis . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2.3. Control administrativos de gimnasios . . . . . . . . . . 15

3.3. Especificacion y arquitectura . . . . . . . . . . . . . . . . . . . 173.3.1. JavaEE 7 CDI . . . . . . . . . . . . . . . . . . . . . . . 183.3.2. Vision general del CDI . . . . . . . . . . . . . . . . . . 183.3.3. Acerca de los Beans . . . . . . . . . . . . . . . . . . . . 203.3.4. Acerca de beans gestionados por CDI . . . . . . . . . . 213.3.5. Beans como objetos inyectables . . . . . . . . . . . . . 213.3.6. Inyectando Beans . . . . . . . . . . . . . . . . . . . . . 223.3.7. Utilizar scopes . . . . . . . . . . . . . . . . . . . . . . . 233.3.8. Inyeccion de objetos mediante el uso de metodos de

productor . . . . . . . . . . . . . . . . . . . . . . . . . 253.3.9. Configurar una aplicacion CDI . . . . . . . . . . . . . . 263.3.10. Uso de la @ y @PostConstruct y @PreDestroy . . . . . 26

4. Aplicacion de los conceptos en el desarrollo de una AplicacionWeb 284.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.1.1. Arquitecturas y Estandares Web . . . . . . . . . . . . . 284.2. Tecnologıas aplicadas . . . . . . . . . . . . . . . . . . . . . . . 294.3. Funcionalidades del sistema . . . . . . . . . . . . . . . . . . . 29

4.3.1. Analisis de requisitos . . . . . . . . . . . . . . . . . . . 294.4. Especificacion de casos de uso . . . . . . . . . . . . . . . . . . 304.5. UC004 Verifica Ejercicios . . . . . . . . . . . . . . . . . . . . . 314.6. UC006 Paga Cuotas . . . . . . . . . . . . . . . . . . . . . . . 324.7. UC007 Crear Ejercicios . . . . . . . . . . . . . . . . . . . . . . 344.8. UC009 a Verifica Estado de Cuotas . . . . . . . . . . . . . . . 364.9. UC010 Crea Plan de Pago Personalizado . . . . . . . . . . . . 384.10. UC012 Cadastro Alumno . . . . . . . . . . . . . . . . . . . . . 404.11. UC013 Crea Series para plan de alumno . . . . . . . . . . . . 414.12. UC014 Cadastra Productos . . . . . . . . . . . . . . . . . . . 434.13. UC015 Verifica historico de vendas de productos . . . . . . . . 444.14. UC019 Crea Servicios . . . . . . . . . . . . . . . . . . . . . . . 464.15. UC011 Crea Evaluacion . . . . . . . . . . . . . . . . . . . . . 474.16. UC007 Crea Ejercicios . . . . . . . . . . . . . . . . . . . . . . 49

viii

Page 9: TCC Postgrado Web Dev

5. Conclusiones 515.1. Breve revision de lo realizado . . . . . . . . . . . . . . . . . . 515.2. Principales logros . . . . . . . . . . . . . . . . . . . . . . . . . 51

Referencias bibliograficas 53

ix

Page 10: TCC Postgrado Web Dev

Indice de figuras

1.1. Incremento de los ataques y fraudes informaticos entre los anos2011 y 2012 [2] . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1. Figura 1 de framework . . . . . . . . . . . . . . . . . . . . . . 72.2. Usos de la biometrıa [1] . . . . . . . . . . . . . . . . . . . . . . 8

x

Page 11: TCC Postgrado Web Dev

Capıtulo 1

Introduccion.

1.1. Introduccion.

Los sistemas de informacion se desarrollan con diversos propositos, segunlas necesidades de una empresa. Los sistemas de procesamiento de transac-ciones funcionan al nivel operativo de una organizacion. Los Sistemas deInformacion Gerencial (SIG) y los sistemas de apoyo a la toma de decisionesse encuentran entre los sistemas de alto nivel. Los sistemas de apoyo a latoma de decisiones en grupo y los sistemas de trabajo corporativo apoya-dos por computadora, descritos de manera mas general, auxilian la toma dedecisiones.

El analisis y diseno de sistemas, tal como lo realizan los analistas desistemas, tiene el proposito de analizar sistematicamente la entrada o el flujode datos, procesar o transformar datos, el almacenamiento de datos y lasalida de informacion en el contexto de una empresa en particular. Mas aun,el analisis de sistemas se emplea para analizar, disenar e implementar mejorasen el funcionamiento de las empresas, a traves de sistemas de informacioncomputarizados.

Existe una diversidad de sistemas de informacion que podrıan desarro-llar los analistas, teniendo en cuenta que en la actualidad la tecnologıa haavanzado en el campo de la informatica por lo cual se ha podido mejorarvarios aspectos dentro de una empresa siendo posible la implementacion desistemas con capacidad de realizar tareas que faciliten a los funcionarios aconservar mayor cantidad de informacion.

1

Page 12: TCC Postgrado Web Dev

./imagenes/figura_1.jpg

Figura 1.1: Incremento de los ataques y fraudes informaticos entre los anos2011 y 2012 [2]

1.2. Motivacion.

En la era post-industrial, la era de la informacion, el enfoque de las com-pa nAas ha cambiado de la orientacion hacia el producto a la orientacionhacia el conocimiento, en este sentido el mercado compite hoy en dia enterminos de proceso y la innovacion, en lugar del producto. El enfasis hacambiado de la calidad y cantidad de produccion hacia el proceso de produc-cion en si mismo, y los servicios que acompa nam a este proceso.

El mayor de los activos de una compa nAa hoy en dia es su informacion,representa en su personal, experiencia, conocimiento, innovaciones. Para po-der competir, las organizaciones deben poseer una fuerte infraestructura deinformacion, en cuyo corazon se sitAoa la infraestructura de la de informa-cion.

1.3. Objetivos.

1.3.1. Objetivos Generales

Desarrollar un sistema de informacion gerencial para la empresa GymS.A., implementando tecnologıas y estandares web, de modo a sacar ventajasdel entorno web y nube.

1.3.2. Objetivos Especıficos

Automatizar los procesos relacionados a venta de ropas y comestibles,control de servicios prestados y gestion de pago de cuotas de la empresaGym S.A.

Permitir un mayor aprovechamiento del tiempo y ahorro de costos queimplica la operacion de busqueda de historiales de massa muscular delos alumnos.

Capacitar a los funcionarios de la empresa para la correcta utilizaciondel sistema, con conocimientos basicos de operador de computadoras.

2

Page 13: TCC Postgrado Web Dev

Centralizar la informacion y disponerla para su procesamiento en elmomento que determinen necesario.

Proveer seguridad de las informaciones, con la utilizacion de niveles deusuarios en dos situaciones: al iniciar el sistema y luego con la seleccionde la base de datos.

Facilitar el manejo del sistema, elaborando una interfaz amigable quepueda ser modificada de acuerdo al requerimiento del usuario.

Mantener el registro de datos de alumnos, historiales, cuotas, ventas.

Formalizar los procedimientos de utilizacion del sistema a traves de unmanual, indicando al usuario la forma correcta de utilizar el sistema.

Permitir la consulta de piezas con la informacion de todas las sucursalesde la empresa.

1.4. Recursos y materiales

1.4.1. Tecnicas a utilizar

Para la etapa de investigacion del proyecto, existen diferentes tipos detecnicas, las cuales son utilizadas segun los requerimientos, condiciones ycaracterısticas del objeto de estudio. Con el objeto de recopilar informacionpara analizar la situacion actual de la empresa Gym S.A., se hara necesarioel uso de:

Fuentes secundarias.

Recoleccion de la informacion.

En la primera fase se recopilara informacion documental bibliografica ydocumentacion digital con la finalidad de definir las caracterısticas que sedebe incluir al sistema, recursos necesarios para la elaboracion del diseno delsoftware y herramientas similares disponibles en el mercado.

Para la obtencion de informacion escrita y que ha sido recopilada para suutilizacion, como libros de manejo de inventario, artıculos cientıficos, sitiosde desarrolladores, foros en internet, documentos web e informacion que seadecue al enriquecimiento del objeto en estudio.

3

Page 14: TCC Postgrado Web Dev

1.5. Organizacion del trabajo.

1.5.1. Analisis

En esta etapa se identificaran los requerimientos que debera atender lasolucion propuesta. Actividades a realizar en esta etapa:

Realizar entrevistas individuales para evaluar las reales necesidades dela empresa.

Definir los modulos que se desarrollaran.

Identificar los procesos que intervienen en los inventarios.

Observar el metodo de control de pago a colaboradores.

Evaluar las interrelaciones que afectan los flujos de trabajo en la em-presa.

Definir las caracterısticas y tipos de usuarios.

Definir hardware y software a utilizar.

1.5.2. Diseno

Esta etapa se deriva de los resultados obtenidos en la etapa de analisis ycomprende la descripcion de los elementos que conformaran el sistema y ladefinicion de la estructura logica de los mismos.

Se consideraran los recursos de software a incorporar, el diseno de basede datos, procedimientos, entidades, flujos de datos requeridos por el sistemaentre otros. Actividades a realizar en esta etapa:

Analisis de Requisitos.

Diagrama de Casos de Uso.

Descripcion de Casos de Uso.

Diagramas de clase.

Definicion de las tablas y relaciones.

Definicion de procedimientos almacenados, triggers a utilizar.

Definir perfiles de los usuarios y niveles de acceso.

Especificar colores, formas, tipos de letra de las interfaces.

Definir tipos de errores y mensajes.

4

Page 15: TCC Postgrado Web Dev

1.5.3. Desarrollo

Luego del diseno se procedera a la creacion y codificacion de las interfaces,funciones, procesos, etc. Actividades a realizar en esta etapa:

Creacion de la base de datos (tablas y relaciones).

Creacion de procedimientos almacenados, vistas, triggers previamentedefinidos.

Establecimiento de las conexiones entre la base de datos, las interfacesadministrativas del sistema y los dispositivos moviles.

Codificacion de las funciones y procedimientos a utilizar.

Creacion de interfaces.

1.5.4. Pruebas

Esta etapa contempla la identificacion y depuracion de fallas en la partelogica de las interfaces, verificando las validaciones, el funcionamiento correc-to de todos los procesos, afinacion de detalles, y finalmente asegurando queel sistema cumpla con los objetivos definidos previamente.

5

Page 16: TCC Postgrado Web Dev

Capıtulo 2

Base tecnologica de JavaEE

2.1. Introduccion

Java Platform, Enterprise Edition o Java EE (anteriormente conocido co-mo Java 2 Platform, Enterprise Edition o J2EE hasta la version 1.4; traducidoinformalmente como Java Empresarial), es una plataforma de programacion-parte de la Plataforma Java- para desarrollar y ejecutar software de apli-caciones en el lenguaje de programacion Java. Permite utilizar arquitecturasde N capas distribuidas y se apoya ampliamente en componentes de softwa-re modulares ejecutandose sobre un servidor de aplicaciones. La plataformaJava EE esta definida por una especificacion. Similar a otras especificacionesdel Java Community Process, Java EE es tambien considerada informalmentecomo un estandar debido a que los proveedores deben cumplir ciertos requi-sitos de conformidad para declarar que sus productos son conformes a JavaEE; estandarizado por The Java Community Process / JCP.

Java EE tiene varias especificaciones de API, tales como JDBC, RMI,e-mail, JMS, Servicios Web, XML, etc y define como coordinarlos. Java EEtambien configura algunas especificaciones unicas para Java EE para com-ponentes. Estas incluyen Enterprise JavaBeans, servlets, portlets (siguiendola especificacion de Portlets Java), JavaServer Pages y varias tecnologıas deservicios web. Ello permite al desarrollador crear una Aplicacion de Em-presa portable entre plataformas y escalable, a la vez que integrable contecnologıas anteriores. Otros beneficios anadidos son, por ejemplo, que elservidor de aplicaciones puede manejar transacciones, la seguridad, escala-bilidad, concurrencia y gestion de los componentes desplegados, significandoque los desarrolladores pueden concentrarse mas en la logica de negocio delos componentes en lugar de en tareas de mantenimiento de bajo nivel.

6

Page 17: TCC Postgrado Web Dev

2.2. ¿Que es un framework?

El concepto framework se emplea un muchos ambitos del desarrollo desistemas software, no solo en el ambito de aplicaciones Web. Podemos en-contrar frameworks para el desarrollo de aplicaciones medicas, de vision porcomputador, para el desarrollo de juegos, y para cualquier ambito que puedaocurrırsenos.

En general, con el termino framework, nos estamos refiriendo a una es-tructura software compuesta de componentes personalizables e intercambia-bles para el desarrollo de una aplicacion. En otras palabras, un frameworkse puede considerar como una aplicacion generica incompleta y configurablea la que podemos anadirle las ultimas piezas para construir una aplicacionconcreta.

./imagenes/figura_2.jpg

Figura 2.1: Figura 1 de framework

Los objetivos principales que persigue un framework son: acelerar el pro-ceso de desarrollo, reutilizar codigo ya existente y promover buenas practicasde desarrollo como el uso de patrones.

Un framework Web, por tanto, podemos definirlo como un conjunto decomponentes (por ejemplo clases en java y descriptores y archivos de confi-guracion en XML) que componen un diseno reutilizable que facilita y agilizael desarrollo de sistemas Web.

2.3. Necesidades y objetivos de la autentica-

cion biometrica

Actualmente, los sistemas de identificacion tradicionales no dan abastopara la creciente demanda de seguridad de las empresas, pues estas requierenverificar sin margen de error la identidad del personal que puede acceder asitios restringidos, o bien, a cierta informacion de caracter confidencial [2].De ahı la necesidad de implementar sistemas que empleen la biometrıa comometodo basico de identificacion, pues mediante su uso se elimina la necesidadde compartir claves, codigos de ingreso y tarjetas de acceso, minimizando asıla posibilidad de acceso de personas no autorizadas.

Otra importante ventaja de la identificacion biometrica es que se conside-ra que la posibilidad de suplantacion de identidad del individuo es relativa-

7

Page 18: TCC Postgrado Web Dev

mente baja, aunque este es un reto que la ciencia y la tecnologıa aun no hansuperado. Todavıa existen maneras de enganar a los sistemas biometricosutilizando distintas e ingeniosas tecnicas [1].

Uno de los principales objetivos de la biometrıa es encontrar un siste-ma infalible e inequıvoco que permita identificar satisfactoriamente a unapersona.

./imagenes/figura_4.jpg

Figura 2.2: Usos de la biometrıa [1]

2.3.1. Tipos de framework web

Existen varios tipos de frameworks Web: orientados a la interfaz de usua-rio, como Java Server Faces, orientados a aplicaciones de publicacion de do-cumentos, como Coocon, orientados a la parte de control de eventos, comoStruts y algunos que incluyen varios elementos como Tapestry. La mayorıade frameworks Web se encargan de ofrecer una capa de controladores deacuerdo con el patron MVC o con el modelo 2 de Servlets y JSP, ofrecien-do mecanismos para facilitar la integracion con otras herramientas para laimplementacion de las capas de negocio y presentacion.

2.3.2. Caracterısticas

2.4. El lenguaje de programacion Java

Java es un lenguaje de programacion orientada a objetos desarrollada enla decada de 90 por un equipo de progamadores, donde su jefe era JamesGosling, en la empresa Sun MicroSystems. Diferente de los lenguajes tradi-cionales, que son compilado para codigo nativo, el lenguaje java es compiladoen bytecode que es ejecutado por una maquina virtual. El lenguaje de pro-gramacion Java es el lenguaje convencional de la plataforma Java, pero noes el unico lenguaje.

En el ano de 1991, Sun Microsystems, fue iniciado el Green Project, la cu-na de Java, un lenguaje de programacion Orientada a Objetos. Los mentoresde este Proyecto fueron Patrick Neughton, Mike Sheridan, e James Gosling.Ellos creian que, el algun tiempo, iba haber una convergencia de computado-ras y equipos electrodomesticos usados por las personas en su dıa a dıa. Para

8

Page 19: TCC Postgrado Web Dev

Tabla 2.1: CaracterısticasAbstraccion de URLs y sesiones. No es necesario manipular directamente las URLs

ni las sesiones,el framework ya se encarga de hacerlo.

Acesso a datos Incluyen las herramientas e interfaces necesariaspara integrarse con herramientas de acceso a datos,en BBDD, XML, etc.

Controladores La mayorıa de frameworks implementa una seriede controladores para gestionar eventos,como una introduccion de datos medianteun formulario o el acceso a una pagina.Estos controladores suelen ser facilmente adaptablesa las necesidades de un proyecto concreto.

Autenticacion y control de acceso Incluyen mecanismos para la identificacion deusuarios mediante nombre de usuario y contrasenay permiten restringir el acceso a determinaspaginas a determinados usuarios.

probar que el proyecto es factible, 13 personas trabajaron durante 18 meses.Y en el verano de 1992 ellos emergieron de una oficina en Sand Hill Road, enMenlo Park, con una demostracion funcional inicial. El prototipo se llamaba*7, un control remoto con una interfaz grafica tactil. Para el *7, fue criadola mascota, hoy muy conocido como mundo Java, el Duke. El proximo pasofue encontrar un mercado para el *7, los integrantes del grupo creıan queuna buena idea seria controlar los equipos de tele y video por demanda conel equipo. Entonces construyeron una demostracion llamada MovieWood. Loque em la epoca no tuvo mucho suceso. Pero con la explosion del mundoInternet el Java fue adaptado para ello en el ano de 1995, con eso gracias aJava todas las aplicaciones podrıan ser ejecutadas dentro de los navegadores.Desde que se lanzo en 1995, la plataforma Java fue adoptada mas rapido quecualquier otro lenguaje de programacion en la historia.

9

Page 20: TCC Postgrado Web Dev

2.5. JavaEE

2.5.1. Caracterısticas del JavaEE 7

Perfiles: Java EE 7 introduce el concepto de perfiles: distintas configu-raciones especıficas de la plataforma para distintos fines. El primero enser introducido en esta version es el Web Profile, un perfil mas livianoque usa unicamente lo necesario para desarrollos web.

Productividad del desarrollo: Apuntando las configuraciones a masanotaciones y menos configuracion XML.

Nuevas especificaciones: EJB 3.1, Java API for RESTful Web Ser-vices (JAX-RS), Contextos e inyeccion de dependencias (CDI), JPA 2,y mas.

HTML5: Ofrece nuevas funcionalidades que mejoran el suporte a HTML5,aumentadno la productividad del programador, y mejora toda via mascomo las demandas empresariales pueden ser cumplidas

Empresas se beneficiaran: de nuevas funcionalidades que permitenel proceso en lote portatil en mayor escalabilidad.

CDI: Context Dependency Injectioin, framework para usar inyeccionde dependencia en el propio Java.

JPA: Java Persistence API , un framework del java usado para lapersistencia de objetos.

Con esta especificacion final, Sun anuncio la disponibilidad de GlassFishV3. GlassFish es su servidor de aplicaciones que implementa las tecnologıasde Java EE. En esta version, es el primer servidor en aplicar completamentela especificacion Java EE 7. Sun anuncio tambien a su vez, NetBeans 7.3,con soporte completo para Java EE 7.

2.6. Glassfish

GlassFish es un servidor de aplicaciones Open Source, liderado por SunMicrosystem para la plataforma J2EE. Su version propietaria es llamada deSun GlassFish Enterprise Server. GlassFish es un software libre, y es suopla-mente licenciado por dos licencias de software libre: Common Developmentand Distribution License (CDDL) e GNU General Public License (GPL).

10

Page 21: TCC Postgrado Web Dev

GlassFish suporta todas las especificaciones de API Java EE, tales comoJDBC, RMI, JavaMail, JMS, JMX etc. Y define como coordinales. Tambiensoporta algunas especificaciones especificas para componentes Java EE, comoenterprise JavaBeans, conectores, servelts, portlets, JSF y entre otra tecno-logıas webServices. Esto le permite que los desarrolladores creen aplicacionescorporativas portables, escalables y faciles de integrar con codigo legado.

La base de GlassFish es el codigo fuente liberado por Sun y el Sistema depersistencia TopLink de Oracle, El Utiliza una variante del Apache Tomcatcomo container de servelts, con un componente adicional llamado Grizzlyque utiliza NIO para mayor escalabilidad y eficiencia.

2.7. APIs y Frameworks

API, de Application Programming Interface es un conjunto de rutinas ypadrones estabelecidos por un software para la utlizacion de sus funciona-lidades por aplicativos que no pertenecem a envolver se em detalhes de lainplementacion del sfotware, pero si apenas para usar sus servicios.

De modo general, la Api esta compuesta por una serie de funciones aces-sibles por programacion, que le permiten utlizar caracteristicas de softwareal utlizar lo tradicional.

2.7.1. APIs generales

Las APIs de Java EE incluyen varias tecnologıas que extienden la funcio-nalidad de las APIs base de Java SE.

javax.ejbLa API Enterprise JavaBeans define un conjunto de APIs que un conte-

nedor de objetos distribuidos soportara para suministrar persistencia, RPCs(usando RMI o RMI-IIOP), control de concurrencia, transacciones y controlde acceso para objetos distribuidos.

javax.namingLos paquetes javax.naming, javax.naming.directory, javax.naming.event,

javax.naming.ldap y javax.naming.spi definen la API de Java Naming andDirectory Interface (JNDI).

java.sqlLos paquetes java.sql y javax.sql definen la API de JDBC.java.transactionEstos paquetes definen la Java Transaction API (JTA).javax.xmlEstos paquetes definen la API JAXP.

11

Page 22: TCC Postgrado Web Dev

javax.jmsEstos paquetes definen la API JMS.javax.persistenceEste paquete provee las clases e interfaces para gestionar la interaccion

entre los proveedores de persistencia, las clases administradas y los clientesde la Java Persistence API.

2.7.2. Frameworks

La palabra inglesa ”framework”(marco de trabajo) define, en terminosgenerales, un conjunto estandarizado de conceptos, practicas y criterios paraenfocar un tipo de problematica particular que sirve como referencia, paraenfrentar y resolver nuevos problemas de ındole similar.

En el desarrollo de software, un framework o infraestructura digital, esuna estructura conceptual y tecnologica de soporte definido, normalmentecon artefactos o modulos desoftware concretos, que puede servir de basepara la organizacion y desarrollo de software. Tıpicamente, puede incluirsoporte de programas,bibliotecas, y un lenguaje interpretado, entre otrasherramientas, para ası ayudar a desarrollar y unir los diferentes componentesde un proyecto.

Los frameworks tienen como objetivo ofrecer una funcionalidad definida,auto contenida, siendo construidos usando patrones de diseno, y su carac-terıstica principal es su alta cohesion y bajo acoplamiento. Para acceder aesa funcionalidad, se construyen piezas, objetos, llamados objetos calientes,que vinculan las necesidades del sistema con la funcionalidad que este presta.Esta funcionalidad, esta constituida por objetos llamados frıos, que sufrenpoco o ningun cambio en la vida del framework, permitiendo la portabilidadentre distintos sistemas. Frameworks conocidos que se pueden mencionarpor ejemplo son Spring Framework, Hibernate, donde lo esencial para serdenominados frameworks es estar constituidos por objetos casi estaticos confuncionalidad definida a nivel grupo de objetos y no como parte constitutivade estos, por ejemplo en sus metodos, en cuyo caso se habla de un API olibrerıa. Algunas caracterısticas notables que se pueden observar:

La inversion de control: En un frame, a diferencia de las bibliotecas,el flujo de control no es dictado por el programa que llama, sino por elmismo.

La funcionalidad o comportamiento predeterminado: Un marcotiene un comportamiento predeterminado. Este comportamiento pordefecto debe ser un comportamiento util, definido e identificable.

12

Page 23: TCC Postgrado Web Dev

Su extensibilidad: Un marco puede ser ampliado para proporcionaruna funcionalidad especıfica. El frame, en general, no se supone quedeba ser modificado, excepto en cuanto a extensibilidad. Los usuariospueden ampliar sus caracterısticas, pero no deben ni necesitan modifi-car su codigo.

13

Page 24: TCC Postgrado Web Dev

Capıtulo 3

Tecnologıa Java EnterpriseEdition

3.1. Introduccion

Java Platform, Enterprise Edition o JavaEE, es una plataforma de pro-gramacion para servidores em el lenguaje d e programacion Java. La plata-forma ofrece un API y un ambiente de timpo de ejecucion para el deserollo dyexecucion de Softwares corporativo, incluso servicios de Red y Web, entre ou-tras aplicaciones de red a larga escala, multicamadas, escalables, confiablesy seguras. JavaEE extende de Java Plataform, Standard Edision(JavaSe),forneciendo un api de Objeto Realcional, y arquiteturas multi camdas , arui-teturas distribuidas y web services. La plataforma incorpora un disenho am-plamente basado em componentees modulares funcionando em un servidorde aplicacion. Softwares para javaEE son primero desarolhados em lenguajede programacion Java.

3.2. Antecedentes

3.2.1. Gestion ıntegra para gimnasios

Lo mas importante de este sistema es su sencillez de uso, a lo que hayque sumar una interfaz muy compresible y con accesos rapidos a todas, ycuando decimos todas son todas, las acciones posibles a llevar a cabo. Permitetrabajar con varias areas al mismo tiempo sin interferir los datos de unas conotras, hecho que lo dota de una usabilidad enorme. Los campos que toca sonlos de socios, tanto por listados como no, actividades, facturas, venta directae ingresos.

14

Page 25: TCC Postgrado Web Dev

La mayorıa de campos son personalizables, y es una opcion muy intere-sante a tener en cuenta si lo que queremos es una aplicacion que no seaexcesivamente profesional.

3.2.2. Adonis

Adonis es un novedoso software de administracion para gimnasios, clubes,institutos o cualquier institucion que maneje asociados, disenado no solopara llevar un estricto control administrativo de todas las areas del gimnasiosino tambien destinado a los socios que realizan actividad fısica, permitiendollevar un seguimiento detallado de todas las rutinas, mostrando graficos dela evolucion en los ejercicios y en la contextura fısica.

El programa funciona bajo cualquier version del sistema operativo Win-dows y su manejo es muy sencillo, por lo que no se requieren conocimientosprevios de computacion.

Caracterısticas

Datos de los socios

Cuotas y servicios

Pagos

Reportes

Rutinas deportivas si si

Puntos de venta

Casilleros (Lockers)

Renovaciones automaticas de servicios

Control de Ingreso al establecimiento

3.2.3. Control administrativos de gimnasios

El Sistema de Gestion de Gimnasios esta preparado para soportar unfuerte flujo de informacion de entrada y salida gracias al Gestor de base dedatos relacional SQL SERVER. Permite trabajar en red (entorno multiusua-rio) de 2 hasta 50 estaciones o mas simultaneamente, la velocidad de accesopuede variar dependiendo de la potencia de las PCs.

15

Page 26: TCC Postgrado Web Dev

Este software se caracteriza por ser de facil manejo y que presente men-sajes de error faciles de interpretar por los usuarios. Asimismo el sistematambien presenta opciones de busqueda (por codigo como por descripcion)que permitira al usuario poder encontrar los datos de forma mas rapida.

El Sistema de Gestion de Gimnasios esta desarrollado en 2 capas o niveles(plataforma Cliente-Servidor). De esta manera las tablas estan creadas en elGestor de base de datos SQL Server que administra con mayor seguridad lainformacion ingresada.

El sistema muestra desde su proceso inicial un manejo facil y practicopara todo usuario. Brindamos alertas de mensajes para que el operador puedaentender el manejo operativo del Sistema.

Ambiente del sistema

De acuerdo a la estructura del Sistema les vamos a ir detallando paso apaso las opciones que presenta el Sistema de Gestion de Gimnasios a conti-nuacion:

Portada: Sistema de Gestion de Gimnasios contiene un nivel de Seguri-dad personalizado por cada usuario. El usuario ingresara al sistema a travesde un usuario y password. De esta manera el usuario no identificado no podraingresar al Sistema hasta que el supervisor del Sistema lo permita y le de elacceso.

Operaciones:Cuotas: Este formulario genera las cuotas de pago de un alumno o socio

y tambien genera su asistencia, la forma de pago puede ser semanal, quin-cenal, mensual o diaria, el monto, el concepto de pago, la fecha de inicio, otambien si el socio tiene beca en este caso no genera las cuotas pero si ge-nera asistencia. Aquı tambien se imprime el cronograma de pagos. Se puederealizar las busquedas del socio por codigo o por nombres.

Cobranzas: Esta ventana se registran las cobranzas o pagos de un socio.Puede realizar un pago a cuenta o el pago total de su cuota. Tambien muestralo que esta debiendo. Permite ingresar mora si la hubiera.

Eliminacion de cobranzas: Permite eliminar cobranzas que se hanrealizado mal y no deben entrar a las cobranzas del dıa.

Cobranzas por gastos aministrativos: permite registrar cobranzas alos socios por otros rubros como por ejemplo alquiler de casilleros, etc.

Control de asistencias: Este formulario nos permite ingresar la asis-tencia de los socios al gimnasio. Permite realizar la busqueda del socio y lomuestra con su foto y el calendario de su asistencia. El sistema avisa si elsocio ya termino su programa esto significa que el socio ya no puede ingresar

16

Page 27: TCC Postgrado Web Dev

al gimnasio. Mediante la foto se puede identificar si el socio es realmentequien dice ser.

Compromissos de pago: Este formulario nos permite ingresar notaspor ejemplo si el usuario pospone sus dıas de asistencia por motivos de saludo viaje tambien nos permite cambiar la fecha de pago de su cuota si es quela operadora del sistema se ha equivocado.

3.3. Especificacion y arquitectura

Perfiles: Java EE 7 introduce el concepto de perfiles: distintas configu-raciones especıficas de la plataforma para distintos fines. El primero enser introducido en esta version es el Web Profile, un perfil mas livianoque usa unicamente lo necesario para desarrollos web.

Productividad del desarrollo: apuntando las configuraciones a masanotaciones y menos configuracion XML.

Nuevas especificaciones: EJB 3.1, Java API for RESTful Web Ser-vices (JAX-RS), Contextos e inyeccion de dependencias (CDI), JPA 2,y mas.

HTML5: Ofrece nuevas funcionalidades que mejoran el suporte a HTML5,aumentadno la productividad del programador, y mejora toda via mascomo las demandas empresariales pueden ser cumplidas.

Empreas se beneficiaran: de nuevas funcionalidades que permitenel processo en lote portatil en mayor escalabilidad.

CDI: Context Dependency Injectioin, framework para usar injecao dedependencia jo proprio java.

JPA: Java Persistence API , un framework del java usado para lapersistencia de objetos.

Con esta especificacion final, Sun anuncio la disponibilidad de GlassFishV3. GlassFish es su servidor de aplicaciones que implementa las tecnologıasde Java EE. En esta version, es el primer servidor en aplicar completamentela especificacion Java EE 7. Sun anuncio tambien a su vez, NetBeans 7.3,con soporte completo para Java EE 7.

17

Page 28: TCC Postgrado Web Dev

3.3.1. JavaEE 7 CDI

Contextos y Inyeccion de Dependencia (CDI) para la plataforma Java EEes una de varias caracterısticas que ayudan a tejer juntos la capa web y elnivel transaccional de la plataforma Java EE. CDI es un conjunto de serviciosque se usan juntos, hacen que sea facil para los desarrolladores utilizar beansde empresa, junto con la tecnologıa JavaServer Faces en aplicaciones web.Disenado para usar con los objetos con estado, CDI tambien tiene muchosusos mas amplios, lo que permite a los desarrolladores una gran cantidadde flexibilidad para integrar diversos tipos de componentes de una maneraimprecisa pero typesafe.

CDI se especifica mediante JSR 299, anteriormente conocido como WebBeans. Especificaciones relacionadas que utiliza CDI incluyen lo siguiente:

JSR 330, inyeccion de dependencias para Java.

La especificacion de beans gestionados, que es una rama de la EE 6especificacion de la plataforma Java (JSR 316)

Aquı se tratan los siguientes temas:

◦ Vision general de CDI

◦ Acerca de beans

◦ Acerca de beans gestionados CDI

◦ Beans como objetos inyectables

◦ Usando eliminatorias

◦ Beans inyectables

◦ Utilizar ambitos

◦ Reemplazar el alcance de un Bean en el punto de inyeccion

◦ Dar Beans EL Nombres

◦ Adicion de metodos setter y getter

3.3.2. Vision general del CDI

Los servicios mas fundamentales proporcionadas por CDI son como sigue:

Contextos: La capacidad de enlazar el ciclo de vida y las interaccionesde los componentes con estado del ciclo de vida a los contextos biendefinidos, pero extensible

18

Page 29: TCC Postgrado Web Dev

Inyeccion de dependencia: La capacidad de inyectar componentes enuna aplicacion de manera typesafe, incluyendo la capacidad de elegiren tiempo de despliegue de la ejecucion de una interfaz en particularpara inyectar.

Ademas, CDI proporciona los siguientes servicios:

Integracion con el lenguaje de expresion (EL), que permite a cualquiercomponente que se utiliza directamente dentro de una pagina JavaSer-ver Faces o una pagina JavaServer Pages

La posibilidad de memorizar los componentes inyectados

La capacidad de asociar interceptores con componentes utilizando en-laces typesafe de interceptor

Un modelo de eventos de notificacion

Un ambito de conversacion web, ademas de los tres ambitos estandar(peticion, sesion y aplicacion) se define en la especificacion Java Servlet

Una interfaz de proveedor de servicio completo (SPI) que permite a losmarcos de terceros para integrar limpiamente en el entorno de Java EE6

Un tema importante del CDI es la articulacion flexible. CDI realiza losiguiente:

◦ Desacopla el servidor y el cliente por medio de tipos y calificadoresbien definidos, de manera que la aplicacion del servidor puedevariar

◦ Desacopla el ciclo de vida de los componentes de colaborar de lasiguiente manera:

◦ Haciendo componentes contextual, con la gestion automatica delciclo de vida

◦ Permitir que los componentes con estado de interactuar, como losservicios, unicamente a paso de mensajes

◦ Completamente desacopla productores de mensajes de los consu-midores, a traves de eventos

◦ Desacopla preocupaciones ortogonales por medio de Java EE in-terceptores

19

Page 30: TCC Postgrado Web Dev

◦ Junto con acoplamiento flexible, CDI ofrece una gran escritura

◦ Eliminar busqueda usando nombres basados aaen cadenas parael cableado y las correlaciones, para que el compilador detectaraerrores de escritura

◦ Permitir el uso de anotaciones Java declarativo para especificar to-do, eliminando en gran medida la necesidad de XML descriptoresde despliegue, y lo que es facil de proporcionar herramientas queintrospecten el codigo y comprender la estructura de dependenciasen tiempo de desarrollo.

3.3.3. Acerca de los Beans

CDI redefine el concepto de un Bean mas alla de su uso en otras tec-nologıas Java, tales como las tecnologıas de Enterprise JavaBeans (EJB)JavaBeans y. En CDI, un Bean es una fuente de objetos contextuales quedefinen el estado de aplicacion y / o de la logica. Un componente Java EEes un Bean si el ciclo de vida de sus casos puede ser gestionado por el conte-nedor de acuerdo con el modelo de contexto del ciclo de vida se define en laespecificacion CDI.

Mas especıficamente, un Bean cuenta con los siguientes atributos:

Un conjunto (no vacıo) de tipos de Bean

Un conjunto de calificadores (no vacıo)

Un ambito de aplicacion

Opcionalmente, un nombre de EL bean

Un conjunto de enlaces de interceptor

Una implementacion del Bean

Un tipo de Bean define un tipo de cliente-visible del Bean. Casi cual-quier tipo de Java puede ser un tipo de Bean de un Bean.

Un tipo de Bean puede ser una interfaz, una clase concreta, o una claseabstracta y puede ser declarada final o tener metodos finales.

Un tipo de Bean puede ser un tipo parametrizado con parametros detipo y las variables de tipo.

Un tipo de Bean puede ser un tipo de matriz. Dos tipos de matriz seconsideran identicos si el tipo de elemento sea identica.

20

Page 31: TCC Postgrado Web Dev

Un tipo de Bean puede ser un tipo primitivo. Los tipos primitivos seconsidera que son identicos a sus tipos envoltura correspondientes enjava.lang.

Un tipo de Bean puede ser un tipo de prima.

3.3.4. Acerca de beans gestionados por CDI

Un bean gestionado se implementa mediante una clase Java, que se llamala clase del bean. Una clase Java de nivel superior es un bean gestionado si sedefine un bean gestionado por cualquier otra especificacion de la tecnologıaJava EE, como la tecnologıa JavaServer Faces especificaciones, o si cumpletodas las condiciones siguientes:

No es una clase interna no estatica.

Es una clase concreta o es anotada @ decorador.

No se anota con un componente que define la anotacion EJB o se declaracomo una clase de bean EJB en ejb-jar.xml. Tiene un constructor apropiado.Es decir, uno de los siguientes es el caso:

La clase tiene un constructor sin parametros.

La clase declara un constructor anotado @ Inject.

Sin declaracion especial, tal como una anotacion, se requiere para defi-nir un bean gestionado.

3.3.5. Beans como objetos inyectables

El concepto de la inyeccion ha sido parte de la tecnologıa Java desde hacealgun tiempo. Desde que se introdujo la plataforma Java EE 5, anotacioneshan permitido inyectar recursos y algunos otros tipos de objetos en objetosgestionadas por contenedor. CDI permite inyectar mas clases de objetos einyectar en objetos que no estan gestionadas por contenedor.

Los siguientes tipos de objetos se pueden inyectar:

(Casi) cualquier clase de Java

Los beans de sesion

Recursos de Java EE: fuentes de datos, Java Message Service temas,colas, fabricas de conexiones y similares

21

Page 32: TCC Postgrado Web Dev

Contextos de persistencia JPA (objetos EntityManager)

Campos de productores

Los objetos devueltos por los metodos de productor

Referencias de servicios Web

Referencias bean enterprise remoto

Por ejemplo, supongamos que crea una clase Java simple con un metodoque devuelve una cadena:

pub l i c c l a s s Greet ing{

pub l i c S t r ing g r e e t ( S t r ing name){

re turn ”Hel lo , ” + name + ” . ” ;}

}

Esta clase se convierte en un Bean que luego se puede inyectar en otraclase. Este bean no esta expuesto a la EL en esta forma. Dar Beans ELNombres explica como se puede hacer un frijol a disposicion del EL.

3.3.6. Inyectando Beans

Para utilizar los Beans que se crean, se les inyecta en otro bean que puedeser utilizado por una aplicacion, como una aplicacion JavaServer Faces. Porejemplo, puede crear un bean llamado impresora en la que le inyecte una delas clases Greeting:

import javax . i n j e c t . I n j e c t ;

pub l i c c l a s s Pr in t e r{

@Inject Greet ing g r e e t i n g ;. . .

Este codigo inyecta la implementacion @Default de la clase Greeting den-tro del bean. En cambio, el siguiente codigo inyecta la implementacion @In-formal:

import javax . i n j e c t . I n j e c t ;

pub l i c c l a s s Pr in t e r{

@Inject @Informal Greet ing g r e e t i n g ;. . .

22

Page 33: TCC Postgrado Web Dev

Se necesita mas para la imagen completa de este Bean. Su uso del ambitotiene que ser entendido. Ademas, para una aplicacion JavaServer Faces, elbean tiene que ser accesible a traves de la EL.

3.3.7. Utilizar scopes

Para que una aplicacion de web pueda utilizar un bean que inyecta otraclase de bean, el bean tiene que ser capaz de mantener el estado durante laduracion de la interaccion del usuario con la aplicacion. La forma de definireste estado es dar al bean un scope. Se puede dar a un objeto cualquiera delos scopes descriptos en la Tabla , en funcion de como se utilice.

23

Page 34: TCC Postgrado Web Dev

Scope Annotation DuracionRequest @RequestScoped La interaccion de un usuario

con unaaplicacionweb en una solasolicitud HTTP.

Session @SessionScoped La interaccion de un usuariocon una aplicacionweb a traves de multiplespeticiones HTTP.

Application @ApplicationScoped Estado compartido a travesde las interacciones detodos los usuarioscon una aplicacion web.

Dependent @Dependent El ambito predeterminadosi no se especificaninguno, sino que significaque existe un objetode servir a exactamenteun cliente (bean) ytiene el mismo ciclode vida comoese cliente (bean).

Conversation @ConversationScoped La interaccion deun usuario con unaaplicacionJavaServer Faces,dentro de loslımites deldesarrollador controladosexplıcitamenteque amplıan el ambitode aplicacion a travesde multiples invocacionesdel ciclo de vida deJavaServer Faces.

24

Page 35: TCC Postgrado Web Dev

Los tres primeros scopes se definen tanto por JSR 299 y el API JavaServerFaces. Los ultimos dos son definidas por JSR 299.

3.3.8. Inyeccion de objetos mediante el uso de metodosde productor

Metodos de productor proporcionan una manera de inyectar objetos queno son beans, objetos cuyos valores pueden variar en tiempo de ejecucion, ylos objetos que requieren inicializacion personalizada. Por ejemplo, si deseainicializar un valor numerico definido por una clasificacion denominada @Max-Number, puede definir el valor de un bean gestionado y luego definir unmetodo de productor, getMaxNumber, para ello:

pr i va t e i n t maxNumber = 100 ;. . .@Produces @MaxNumber i n t getMaxNumber ( ){

re turn maxNumber ;}

25

Page 36: TCC Postgrado Web Dev

Cuando se inyecta el objeto en otro bean gestionado, el contenedor invocaautomaticamente el metodo de productor, inicializar el valor a 100:

@Inject @MaxNumber p r i va t e i n t maxNumber ;

Si el valor puede variar en tiempo de ejecucion, el proceso es ligeramentediferente. Por ejemplo, el siguiente codigo define un metodo de productor quegenera un numero aleatorio se define en un partido de clasificacion llamado@Random:

pr i va t e java . u t i l .Random random =new java . u t i l .Random( System . cur rentT imeMi l l i s ( ) ) ;

java . u t i l .Random getRandom ( ){

re turn random ;}

@Produces @Random in t next ( ){

re turn getRandom ( ) . next Int (maxNumber) ;}

Cuando se inyecta este objeto en otro bean gestionado, se declara unainstancia contextual del objeto:

@Inject @Random Instance<Integer> randomInt ;

A continuacion, llama al metodo get de la instancia

t h i s . number = randomInt . get ( ) ;

3.3.9. Configurar una aplicacion CDI

Una aplicacion que utiliza CDI debe tener un archivo llamado beans.xml.El archivo puede ser completamente vacıo (tiene contenido solo en ciertassituaciones limitadas), pero debe estar presente. Para una aplicacion web, elarchivo beans.xml debe estar en el directorio WEB-INF. Para los modulosEJB o archivos JAR, el archivo beans.xml debe estar en el directorio META-INF.

3.3.10. Uso de la @ y @PostConstruct y @PreDestroy

Clases bean gestionado CDI y sus superclases apoyan las anotaciones parala inicializacion y durante la preparacion de la destruccion de un bean. Estasanotaciones se define en JSR 250: Anotaciones comunes para la plataformaJava.

26

Page 37: TCC Postgrado Web Dev

Inicializar un Bean administrado mediante la anotacion @Post-Construct

La inicializacion de un bean gestionado especifica el metodo de devolucionde llamada de ciclo de vida que el marco CDI debe llamar despues de lainyeccion de dependencia, pero antes de la clase se pone en servicio.

En la clase de bean administrado o cualquiera de sus superclases, definirun metodo que realiza la inicializacion que necesite. Anotar la declaraciondel metodo con la anotacion javax.annotation.PostConstruct. Cuando el beangestionado se inyecta en un componente, CDI llama al metodo se ha produ-cido despues de todo la inyeccion y despues de todos los inicializadores dehaber sido llamado. Nota - Conforme a lo dispuesto en JSR 250, si el metodoanotado se declara en una superclase, se llama al metodo menos una subclasede la clase que declara invalida el metodo. El UserNumberBean bean gestio-nado en el guessNumber CDI ejemplo utiliza @ PostConstruct para anotarun metodo que restablece todos los campos de bean:

@PostConstructpub l i c void r e s e t ( ){

t h i s .minimum = 0 ;t h i s . userNumber = 0 ;t h i s . remainingGuesses = 0 ;t h i s .maximum = maxNumber ;t h i s . number = randomInt . get ( ) ;

}

Preparar para la destruccion de un Bean administrado mediantela anotacion @PreDestroy

Preparacion para la destruccion de un bean gestionado especifica el meto-do de devolucion de llamada del ciclo de vida que las senales de que uncomponente de aplicacion esta a punto de ser destruido por el contenedor.

En la clase de bean administrado o cualquiera de sus superclases, pre-pararse para la destruccion del bean gestionado. En este metodo, realizarla limpieza que se requiere antes de que se destruyo el grano, tales como laliberacion de un recurso que el grano ha estado llevando a cabo.

Anotar la declaracion del metodo con la anotacion javax.annotation.PreDestroy.CDI llama a este metodo antes de comenzar a destruir el bean.

27

Page 38: TCC Postgrado Web Dev

Capıtulo 4

Aplicacion de los conceptos enel desarrollo de una AplicacionWeb

4.1. Arquitectura

Las aplicaciones Web se caracterizan por constituir un amplio conjuntode conceptos y terminologıas asociadas, ademas de poseer caracterısticas deaplicaciones de hipermedios.

Este tipo de Sistema no exige que su ejecucion sea realizada mediante pre-via instalacion local, ası como es echo en aplicaciones desktop. Al contrario,la ejecucion de la gran mayorıa de aplicaciones Web sucede solamente conel uso de navegadores Web como por ejemplo, Mozilla Firefox. AplicacionesWeb son sistemas que poseen un alto grado de interaccion, tambien atiendensimultaneamente a diversos usuarios, distribuidos en locales distintos fısica-mente. Tambien existe la necesidad de disponibilidad continua y rapida delas aplicaciones.

Para garantizar estas caracterısticas y el desarrollo apropiado de estetipo de aplicacion, una sub-area de la Ingenierıa de Software viene ganandodestaque, La ingenierıa web, una vez que las principales actividades es elprocesos arquitectural generando como artefacto la salida de la arquitecturaWeb.

4.1.1. Arquitecturas y Estandares Web

En la actualidad, la literatura se presenta un conjunto de arias cionesde patrones arquitectonicos V para sistemas Gone distribuyen e interactiva.

28

Page 39: TCC Postgrado Web Dev

El C se aplica a los s oes Web considerados sistemas interactivos siendo elmas conocido y el patron MVC (Model-View-Controller) (Buschmann et al,1996.; Pressman, 2006).

MVC pretende desacoplar la interfaz de C a navegar y comportamientode la aplicacion de C para el mantenimiento C que permite a los mas de acilof y una mas grande C reutiliza. El MVC y compuesto de tres componentesprincipales, a saber:

Modelo (Model): Abarca el contenido y la logica de procesamientoespecıficos de la aplicacion, incluyendo todos los ojetos de contenido(persistentes) y datos externos de la informacion.

Vision (View): Contiene todas las funciones especificas de interfacey permite la presentacion del contenido y de la logica de procesamien-to, incluyendo todos objetos de contenidos, datos de informacion y lafuncionalidad de processamiento requerida por el usuario final

Controlador(Controller): Genera el acceso al Modelo y la Vision ycoordina el flujo entre ellos.

Una descripcion basica del comportamiento de aplicaciones MVC propriaser: La vision dispara eventos al controlador que modifica el estado del Modeloy en seguida la vision busca datos del Modelo.

4.2. Tecnologıas aplicadas

4.3. Funcionalidades del sistema

4.3.1. Analisis de requisitos

Especificacion de requisitos

Vision general del servicioEl sistema tiene como objetivo automatizar el control de los pagos de cuo-

tas de los alumnos asi como tambien controlar el rendimientos de los mismos,con el sistema los administradores tendran la possibilidad de registrar alum-nos, crear planes de pagos a cuotas, vender productos y controlar los avancesde sus alumnos, los educandos tanbien tendran acceso a mayor informacioncom relacion a sus avances, cuotas pendientes y pagos.

Requisitos del software: Requisitos funcionales

29

Page 40: TCC Postgrado Web Dev

4.4. Especificacion de casos de uso

30

Page 41: TCC Postgrado Web Dev

4.5. UC004 Verifica Ejercicios

Academia Web

VERIFICA EJERCICIOS

1. Descripcion

El Usuario puede verificar los ejercicios que tiene que cumplir cada dia deactividad.

2.Actores

- Usuario

- Sistema3.Pre-Condicion

El usuario deve estar cadastrado en el Sistema

El Usuario deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Verificar Ejercicios

4.1.1.1. Aluno seleciona opcion de verificar ejercicios diarios [E1]

4.1.1.2. Sistema presenta todos los ejercicios que tiene que cumplir

4.1.1.3. Caso de uso termina5. Flujo de Exepcion

E1. El Alumno no esta logadoSistema le avisa, y le envia a view de login

31

Page 42: TCC Postgrado Web Dev

4.6. UC006 Paga Cuotas

Academia Web

PAGA CUOTAS

1. Descripcion

El Alumno puede pagar sus cuotas, solicitando el mismo al administradordel Sistema.

2.Actores

- Administrador

- Sistema3.Pre-Condicion

El Administrador deve estar logado

El Usuario deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Pagar Cuota

4.1.1.1. Administrador seleciona opcion de Cuotas Por Alumno

4.1.1.2. Sistema presenta view com los alumnos a ser elejido po elmimso.

4.1.1.3. Administrador seleciona Alumno a pagar cuota.

4.1.1.4. Sistema presenta view con las cuotas y estados de lasmismas.

4.1.1.5. Administrador cambia el estado de la cuota que desea deapagado a pendientea o apendiente a pagoa .

4.1.1.6. Sistema Guarda los datos. y actualiza view con valoresdel Alumno.

32

Page 43: TCC Postgrado Web Dev

4.1.1.6. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

33

Page 44: TCC Postgrado Web Dev

4.7. UC007 Crear Ejercicios

Academia Web

CREA EJERCICIOS

1. Descripcion

El Alumno solicita personalmente al Professor para que crie para su seriede ejercicios personalizado, los dos llegan a un acuerdo verbal que luego secadastra en el sistema.

2.Actores

- Professor

- Sistema3.Pre-Condicion

El Professor deve estar logado

El Usuario deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Verificar Ejercicios

4.1.1.1. Administrador seleciona opcion de criar planes personali-zados

4.1.1.2. Sistema presenta view com los ultimos planes credos porel mimso.

4.1.1.3. Professor selecionar Opcion criar nuevo Plan.

4.1.1.4. Sistema presenta view con los campos a seren criados.

4.1.1.5. Professor completa los datos y elije alumno responsable apagar por el Plan.

34

Page 45: TCC Postgrado Web Dev

4.1.1.6. Sistema Guarda los datos. y presenta view com planes delAlumno.

4.1.1.7. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

35

Page 46: TCC Postgrado Web Dev

4.8. UC009 a Verifica Estado de Cuotas

Academia Web

VERFICA ESTADO DE CUOTAS

1. Descripcion

El Alumno puede verificar sus estados de pagos de cuotas y planes perso-nalizados

2.Actores

- Alumno

- Sistema3.Pre-Condicion

El Professor deve estar logado

El Usuario deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Verificar Cuotas

4.1.1.1. Alumno seleciona opcion de verificar

4.1.1.2. Sistema presenta view com los ultimos planes credos porel mimso.

4.1.1.3. Professor selecionar Opcion criar nuevo Plan.

4.1.1.4. Sistema presenta view con los campos a seren criados.

4.1.1.5. Professor completa los datos y elije alumno responsable apagar por el Plan.

4.1.1.6. Sistema Guarda los datos. y presenta view com planes delAlumno.

36

Page 47: TCC Postgrado Web Dev

4.1.1.7. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

37

Page 48: TCC Postgrado Web Dev

4.9. UC010 Crea Plan de Pago Personalizado

Academia Web

CRIA PLAN DE PAGO PERSONALIZADO

1. Descripcion

El Alumno solicita personalmente al Administrador que crie crear un plande pago personalizado, los dos llegan a un acuerdo verbal que luego se ca-dastra en el sistema.

2.Actores

- Administrador

- Sistema3.Pre-Condicion

El Administrador deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Verificar Ejercicios

4.1.1.1. Administrador seleciona opcion de criar planes personali-zados

4.1.1.2. Sistema presenta view com los ultimos planes credos porel mimso.

4.1.1.3. Professor selecionar Opcion criar nuevo Plan.

4.1.1.4. Sistema presenta view con los campos a seren criados.

4.1.1.5. Professor completa los datos y elije alumno responsable apagar por el Plan.

4.1.1.6. Sistema Guarda los datos. y presenta view com planes delAlumno.

38

Page 49: TCC Postgrado Web Dev

4.1.1.7. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

39

Page 50: TCC Postgrado Web Dev

4.10. UC012 Cadastro Alumno

Academia Web

CRIA PLAN DE PAGO PERSONALIZADO

1. Descripcion

El Alumno solicita personalmente al Administrador que crie crear unacuenta en el Ginnasio, luego el Adminsitrador lo carga en el Sistema.

2.Actores

- Administrador

- Sistema3.Pre-Condicion

El Administrador deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Verificar Ejercicios

4.1.1.1. Administrador seleciona opcion Alumnos

4.1.1.2. Sistema presenta view com los ultimos alumnos creadospor le mismo

4.1.1.3. Professor selecionar Opcion cadastrar nuevo Alumno.

4.1.1.4. Sistema presenta view con los campos a seren criados.

4.1.1.5. Professor completa los datos y Seleciona guardar.

4.1.1.6. Sistema Guarda los datos.

4.1.1.7. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

40

Page 51: TCC Postgrado Web Dev

4.11. UC013 Crea Series para plan de alumno

Academia Web

CREA SERIE PARA ALUMNO

1. Descripcion

El Professor crea series de ejecucion para sus alumnos realizarem en le diaa dia.

2.Actores

- Professor

- Sistema3.Pre-Condicion

El Professor deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Crea serie para alumno

4.1.1.1. Professor seleciona opcion de Serie Por Alumno.

4.1.1.2. Sistema presenta view com los alumnos a seren elejidospro el professor y su posterior creacion de serie.

4.1.1.3. Professor seleciona alumno a crear la serie.

4.1.1.4. Sistema presenta view con todas las series de este alumnoy la opcion de crear nueva serie.

4.1.1.5. Professor seleciona opcion de crear nueva serie.

4.1.1.6. Sistema presenta view con grid y opciones para las series.

4.1.1.7. Professor completa los datos y con la opcion de agregarserie sucessivamente hasta completar todo los datos.

41

Page 52: TCC Postgrado Web Dev

4.1.1.8. Sistema guarda los dados.

4.1.1.9. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

42

Page 53: TCC Postgrado Web Dev

4.12. UC014 Cadastra Productos

Academia Web

CADASTRA PRODUCTOS

1. Descripcion

El administrador cadastra productos a seren vendidos en la academia.

2.Actores

- Administrador

- Sistema3.Pre-Condicion

El Administrador deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Cadastra Productos

4.1.1.1. Administrador seleciona opcion cadastrar productos.

4.1.1.2. Sistema presenta view com los campos a seren llenadospor el administrador.

4.1.1.3. Administrador llena los campos y seleciona Agregar nuevoproducto.

4.1.1.4. Sistema presenta view con todos los productos cargados.

4.1.1.5. Professor seleciona opcion de crear nueva serie.

4.1.1.8. Sistema guarda los dados.

4.1.1.9. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

43

Page 54: TCC Postgrado Web Dev

4.13. UC015 Verifica historico de vendas de

productos

Academia Web

VERIFICA HISTORICO DE VENDAS DE PRODUCTOS

1. Descripcion

El Admnistrador puede tener acesso a las ventas de todos los productospor fecha

2.Actores

- Administrador

- Sistema3.Pre-Condicion

El Administrador deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Cadastra Productos

4.1.1.1. Administrador seleciona opcion cadastrar productos.

4.1.1.2. Sistema presenta view com los campos a seren llenadospor el administrador.

4.1.1.3. Administrador llena los campos y seleciona Agregar nuevoproducto.

4.1.1.4. Sistema presenta view con todos los productos cargados.

4.1.1.5. Professor seleciona opcion de crear nueva serie.

4.1.1.8. Sistema guarda los dados.

44

Page 55: TCC Postgrado Web Dev

4.1.1.9. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

45

Page 56: TCC Postgrado Web Dev

4.14. UC019 Crea Servicios

Academia Web

CREA SERVICIOS

1. Descripcion

El Admnistrador crea servicios, para ofrecer a sus alumnos

2.Actores

- Administrador

- Sistema3.Pre-Condicion

El Administrador deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Crea Servicios

4.1.1.1. Administrador seleciona la opcion de Servicios.

4.1.1.2. Sistema presenta view con los servicios ya creados.

4.1.1.3. Administrador seleciona opcion de crear nuevo servicio.

4.1.1.4. Sistema presenta una view con campos a seren llenados.

4.1.1.5. Administrador completa los campos, y presiona Agregarnuevo Servicio.

4.1.1.9. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

46

Page 57: TCC Postgrado Web Dev

4.15. UC011 Crea Evaluacion

Academia Web

CREA EVALUACION

1. Descripcion

El Admnistrador crea servicios, para ofrecer a sus alumnos

2.Actores

- Professor

- Sistema3.Pre-Condicion

El Professor deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Crea Evaluacion

4.1.1.1.Professor seleciona opcion de Evaluacion.

4.1.1.2. Sistema presenta view com ultimas evaluciones de losalumnos.

4.1.1.3. Professor seleciona la opcion de crear evaluacion.

4.1.1.4. Sistema presenta view con valores a sererm llenados yalumno a ser selecionado.

4.1.1.5. Professor completa los valores, seleciona alumno y sele-ciona guardar datos.

4.1.1.6. Sistema Guarda los datos. y actualiza view con valoresdel Alumno.

47

Page 58: TCC Postgrado Web Dev

4.1.1.9. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

48

Page 59: TCC Postgrado Web Dev

4.16. UC007 Crea Ejercicios

Academia Web

CREA EJERCICIOS

1. Descripcion

El Alumno solicita personalmente a su professor que crie una serie deejercicios a seren ejecutados

2.Actores

- Professor

- Sistema3.Pre-Condicion

El Professor deve estar logado4. Flujo de Eventos

4.1 Flujo Basico4.1.1 Verificar Ejercicios

4.1.1.1.Professor seleciona opcion de criar ejercicios diarios

4.1.1.2. Sistema presenta view com los ultimo ejercicios creadospor el mismo a los alumnos, un un boton criar nuevo ejercicio.

4.1.1.3. Professor selecionar Opcion criar nuevo Ejercicio.

4.1.1.4. Sistema presenta view con los campos a seren criados.

4.1.1.5. Professor completa los datos y elije alumno responsable aejecutar los ejercicios y selecioina guardar.

4.1.1.6. Sistema Guarda los datos. y actualiza view con valoresdel Alumno.

49

Page 60: TCC Postgrado Web Dev

4.1.1.9. Caso de uso termina5. Flujo de Exepcion

No Hay flujo de Excepcion

50

Page 61: TCC Postgrado Web Dev

Capıtulo 5

Conclusiones

5.1. Breve revision de lo realizado

La investigacion se sustento en la siguiente hipotesis: El sistema informati-co que se propone contribuye al cumplimiento de la estrategia de la empresa.

Definicion Conceptual de las variables. Sistema Informatico que se pro-pone: Es un software que ofrece las herramientas necesarias para lograr laIntegracion la Planificacion y Cuadro de Mando Integral, en funcion de faci-litar a las entidades cubanas definir su estrategia en el cumplimiento de sumision.

Cumplimiento de la estrategia de la empresa: Se traduce en encontrarla posicion del mercado en la cual la empresa pueda defenderse mejor delas fuerzas competitivas que influyen sobre ella, los objetivos trazados paraalcanzar esta posicion y un control estricto en el cumplimiento de estos.

Al plantear las recomendaciones es importante considerar las implicacio-nes de los hallazgos tanto para la practica o procesos de trabajo, como parala toma de decisiones. Tambien es importante identificar los nuevos vacıosen los conocimientos o nuevos problemas de la practica y proponer nuevasinterrogantes para la investigacion.

5.2. Principales logros

Despues de analizar los inconvenientes presentados en la empresa para elcontrol efectivo de pagos de cuotas, se manifesto la necesidad de crear unsistema computarizado para el registro de pagos de cuotas de los alumnos.

A traves del estudio realizado, se detecto que el sistema actual era de for-ma manual, lo que traıa como consecuencia que la ejecucion de las operacionesrealizadas sean lentas, tediosas y poco confiables. El sistema implementado,

51

Page 62: TCC Postgrado Web Dev

que mejorara el proceso de registro e inventario de los alumnos y equipos decomputacion que operaran en esta empresa, daran a conocer con exactitudla cantidad de equipos existentes y el status de cada uno de ellos.

El problema presentado en el departamento de informatica con respectoal registro e inventario de los equipos de computacion y productos, se re-suelve con la propuesta planteada de mejorar los procesos administrativos,ası como la elaboracion de reportes relacionados que se efectuan en dichodepartamento, permitiendole a la organizacion tener un rendimiento optimo,lograr minimizar los costos y facilitar el trabajo al personal que labora endicho departamento.

A traves de la utilizacion de herramientas como encuestas y entrevistasse determinaron los requerimientos de los usuarios, para luego desarrollar unesquema logico que permitiera mejorar la eficacia, eficiencia y operatividad delas funciones, reducir el tiempo de ejecucion, ası como los costos operativos,desempenados.

52

Page 63: TCC Postgrado Web Dev

Referencias bibliograficas

[1] National Science and Technology Council. Biometrics foundation docu-ments [en lınea]. http://www.nstc.org/bio/foundation.html, Acce-dido en diciembre de 2012.

[2] Sophos. Security threat report 2012 [en lınea]. https://secure.esp.

sophos.com/security/whitepapers/index.html, Accedido en Noviem-bre de 2012.

53