Introduccion Al Analisis Funcional Con Aplicaciones - Kreyszig
Introduccion Aplicaciones Web en java j2ee
-
Upload
rodrigo-zottola-pareja -
Category
Software
-
view
248 -
download
6
description
Transcript of Introduccion Aplicaciones Web en java j2ee
Page 1
Introducción Basiuca a aplicaciones Web en JAVA1ra Parte
D. Rodrigo Zottola Pareja - Ing. en Computación2014
Page 2 D. Rodrigo Zottola Pareja - Ing. en Computación
Una mirada a las tecnologías Web Para JAVA.Leve introducción al desarrollo de aplicaciones empresariales con JAVA EEBase a próximos seminarios.
Objetivos
Page 3
Una aplicación web es cualquier aplicación que es accedida vía web por una red como internet o una intranet.
En general aquellos programas informáticos que son ejecutados en el entorno del navegador
Programas codificados con algún lenguaje soportado por el navegador confiándose en el navegador web para que reproduzca (renderice) la aplicación.
Aplicación web
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 4
Caracteristicas: Mantenibilidad Fiabilidad Extensibilidad Manejabilidad Transaccional.
-Propiedades ACID: Atomicity(atomicidad), Consistency(coherencia), Isolation (aislamiento), Durability (permanencia).
Escalables. Disponibilidad. Seguridad y confiabilidad Integración de las aplicaciones y de los datos Portabilidad
Aplicaciones Empresariales
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 5
Arquitectura (80/90)cliente-servidor de dos capas (arquitectura de nivel 2): del lado del cliente se incluía tanto la lógica del negocio como la lógica de la presentación; del lado del servidor se incluían los datos alojados en bases o almacenes de datos
La arquitectura cliente-servidor de tres capas (arquitectura de nivel 3) separa la lógica de presentación (que permanece del lado del cliente) de la lógica del negocio (servidor de negocio), permaneciendo los datos alojados en bases de datos del servidor.
Arquitecturas
Computador
Computador
Computador
SERVIDORDE
ARCHIVOS
SERVIDOR DBMSY
DATOS
Cliente 1
Cliente 2
Cliente N
Clientes FRONT-END,Validación y Formateo
de Datos
Capa IntermediaMONITOR
TP
Servicios y lógica deAplicación
Pool de Conexiones aB.D
Base de Datos
SERVIDOR DBMSY
DATOSSolicitud de Servicio
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 6
Más conocimientos de cómputo distribuido (DCOM, RMI, CORBA, etc.) Las capas se deben integrar eficientemente Conocimiento para midleware y servicios (transacciones, pool de conexiones, accesos a dbs, seguridad, networking, etc. ).
Administrar Conexiones Costosas : DBMS
Middleware orientado a mensajesEL uso de API's del Servidor Middleware dificulta la mantenibilidad y limita la portabilidad.
Complejidades en la n Capas
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 7
Java EE (Java Enterprise Edition): Plataforma Java para el desarrollo de aplicaciones empresariales
Java EE es un conjunto de especificaciones de APIs Java para la construcción de aplicaciones empresariales.(Clases abstracta e interfaces)Define estándares que son implementados por distintos proveedores y fabricantes, no fuerza a emplear ningún producto específico.Ofrece un framework para el desarrollo de aplicaciones distribuidas multicapa (3-tier, n-tier) basadas en Web
JAVA Web - Que es J2EE?
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 8
JEE soporta aplicaciones distribuidas que toma ventajas de las tecnologías existentes y en desarrollo simplificando el proceso a través de un modelo de aplicaciones basados en componentes. Las aplicaciones desplegadas con la tecnología
J2EE: Están estandarizadas Siguen una guías de especificación estrictas Están escritas en Java
Se pueden desplegar en cualquier servidor de aplicaciones
El enfoque de J2EE
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 9
Componentes Las Aplicaciones Clientes y Applets son componentes que se ejecutan en el lado del cliente.
Java Servlet, JavaServer Pages son componentes Web que se ejecutan en el lado del servidor.
Enterprise JavaBeans (EJB ) son componentes de negocio que se ejecutan en el servidor de aplicación.
JAVA EE Clients Web Clients Application Clients Applets The JavaBeans Component Architecture Java EE Server Communications
El enfoque de J2EE
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 10
Los contenedores proveen Un entorno de ejecucion para componentes JAVA.Tambien brindan los servicios de seguridad, transacciones, administracion del ciclo de vida, caching, persistencia, comunicacion en la red
‒ Java EE server.‒ EJB container‒ Web container‒ Application client container:‒ Applet container
Web Services Support ‒ XML‒ SOAP Transport Protocol‒ WSDL Standard Format
Contenedores en JAVA EE
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 11
J2EE - Evolucion
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 12
J2EE - Capas
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 13
Existen un gran número de fabricantes que venden servidores de aplicaciones certificados Java EE.Algunos ejemplos. BEA WebLogic Server:
http://www.bea.com IBM WebSphere ApplicationServer:
http://www.ibm.com Sun Java System Application Server:
http://www.sun.com Oracle Application Server:
http://www.oracle.com
Servidores de Aplicaciones
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 14
Tomcat (proyecto de Apache): http://tomcat.apache.org
JBoss: http://www.jboss.com
GlassFish: https://glassfish.dev.java.net
OpenEJB: http://openejb.codehaus.org
Geronimo: http://geronimo.apache.org
Portabilidad : Si solo se utilizan Api’s estándares en general es posible instalar sobre cualquier servidor de aplicaciones según Java EE, esto hace que no exista una dependencia con el fabricante.
Servidores de Aplicaciones
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 15
IDE’S : ECLIPSE NETBEANS JDEVELOPER
SERVIDORES DE APLICACIONES
-Webologic(Oracle)
-Tomcat
-Galssfish
Tecnologías
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 16
FACADE: Su objetivo es proporcionar una interface simple para un subsistema complejo, o estructurar subsistemas en capas (En pocas palabras creo una clase a través de la cual el sistema cliente accederá a lo que yo quiera que acceda).
SINGLETON: El patrón de diseño singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto. Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.(Obligo que solo se cree una instancia de una clase.)
FACTORY: En diseño de software, el patrón de diseño Factory Method consiste en utilizar una clase constructora (al estilo del Abstract Factory) abstracta con unos cuantos métodos definidos y otro(s) abstracto(s): el dedicado a la construcción de objetos de un subtipo de un tipo determinado.Service:
Patrones de Diseños Mas usados
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 17
Una aplicación usualmente se puede dividir en : Front End: Es la parte que interactua con el usuario, la parte visual , el flujo de navegaci
ón, etc Back End : Es el núcleo de la aplicación, la lógica del negocio , asi como el modelo de d
atos, etc
La idea general es que el front-end es responsable de recoger entradas de los usuarios, y ser procesadas de tal manera que cumplan las especificaciones para que el back-end pueda usarlas. La conexión entre front-end y el back-end es un tipo de interfaz.
Front-end y back-end son términos utilizados para caracterizar las interfaces y servicios del programa en relación con el usuario inicial de estas interfaces y servicios.
Back/Front – End
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 18
Back End - Capas
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 19
Sirve indirectamente en apoyo de los servicios front-end. La aplicación back-end puede interactuar directamente con el front-end. Modelo de datos Modelos de negocios
Base de Datos ORM – Hibernate Mapeos de Clase JPA hibernate Hql ANSI sql
Back End - Core
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 20
Posibles componentes "Core"
Managers (Facade)
DAO /JPAControllers
DTO/Beans/POJO
XML Mapping/ Annotations
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 21
Manager (Facade): Es un conjunto de funciones para un sistema cliente en particula
DAO : Solo contiene las metodos referentes al acceso a datos de un DTO(ABM,count,etc)
DTO : Son clases JAVA planas o Beans especificos que sirven para tranportar datos de una tabla especifica
Mapping : Archivos xml para mapear tablas a clases JAVA
Posibles componentes "Core"
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 22
Back End Capas
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 23
HIBERNATE : Es una herramienta de Mapeo objeto-relacional para la plataforma Java (y disponible también para .Net con el nombre de NHibernate) que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) que permiten establecer estas relaciones.JPA HIBERNATE (JAVA Persistence API) : JPA es un framework de persistencia, que nos abstrae de las bases de datos y nos brinda un estandar para persistir los datos en java.JPA viene a solucionar el vacio que hay entre utilizar objetos y persistirlos en una DB relacional.
Capa de Datos - Persistencia
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 24
Capa de Datos - Hibernate
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 25
Hibernate - Ejemplo
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 26
Front End - Intro
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 27
Los Servlets son módulos que extienden los servidores orientados a solicitud -respuesta, como los servidores web compatibles con Java.Clase usada en el servidor bajo el modelo de programación solictud-respuesta (request - response)Es la base de todos los frameworks WEb.Define clases esecificas para HTTP.
Java Servlets
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 28
Java Servlets
D. Rodrigo Zottola Pareja - Ing. en Computación
Un Servlet es una clase Java que extiende de javax.servlet.http.HttpServlet y que sobreescribe los métodos doPost o doGet o ambos.
Un Servlet es una clase Java usada para extender la capacidad de las aplicaciones basadas en el modelo cliente servidor y ejecución petición respuesta.
Los Servlets son una potente herramienta para la generación de contenido dinámico en la Web.
El Servlet Container es el componente encargado de la creación, acceso y destrucción de los Servlets, controla su ciclo de vida.
Page 29
Java Servlets
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 30
Leer los datos enviados por un usuario Usualmente de formularios en páginas Web Pueden venir de applets de Java o programas cliente HTTP.
Buscar cualquier otra información sobre la petición que venga incluida en esta Detalles de las capacidades del navegador, cookies, nombre del host del cliente, etc.
Generar los resultados Puede requerir consults a Base de Datos, invocar a otras aplicaciones, computar directamente la respuesta, etc.
Dar formato a los resultados en un documento Incluir la información en una página HTML
Establecer los parámetros de la respuesta HTTP Decirle al navegador el tipo de documento que se va a devolver, establecer las cookies, etc.
Enviar el documento al cliente
Que puede hacer un Servlet?
Page 31
Ciclo de vida de un Servlet
Page 32
Java Server Pages - JSP
Un documento JSP, es una página dinámica de servidor Java.
Es un archivo de texto compuesto de : 1. Cabecera con importaciones y parametros. 2. Código cliente, normalmente HTML, XML y Javascript. 3. Código servidor Java, denominado Scriptlet y escrito
entre los caracteres <% y %>. 4. Tags: instrucciones en formato XML, asociadas a clases
Java.• Un JSP se transforma en un Servlet en tiempo de ejecución.
Page 33
Java Server Pages - JSP
Page 34
Java Server Pages - JSP
Page 35
Modelo MVC en JAVA
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 36
ViewEl usuario ingresa su información en la página identificacion.jsp. Esta página tiene un formulario con action=“identificarEmpleado.do” y submitea la información al servlet IdentificarEmpleadoAction.javaControllerEl servlet (controller) accede al facade (model) para invocarle el método identificarEmpleado(enpno,ename). Obtiene el resultado (un EmpDTO o null) y forwardea el control a la siguiente página según el resultado obtenido.ModelEl model está representado por el facade pero recordemos que detrás de él se encuentran los objetos de negocio (Emp y Dept) y (por último) la base de datos con las tablas EMP, DEPT y sus relaciones
Front End - MVC
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 37
STRUTS Y STRUTS2 http://struts.apache.org/
SPRING MVC www.springsource.org TILES (TEMPLATE)
JAVA SERVER PAGES (JSF) www.javaserverfaces.org FACELET TEMPLATES
OTROS FRAMWORKS GROOVY http://groovy.codehaus.org/
Frameworks JAVA MVC
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 38
Spring - Modulos
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 39
Logueo de Errores: Log4J
http://logging.apache.org/log4j/2.x/ LogBack
http://logback.qos.ch/
Gestión de proyectos Maven
http://maven.apache.org/ Gradle
http://www.gradle.org/Versionado SVN Git
Frameworks and Tools JAVA
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 40
Templating: Velocity
http://logging.apache.org/log4j/2.x/ Facelets
XMLParsing JDOM
Springs Tools Spring MVC Test Spring Security
Testing JUnit TestNG
Mocking frameworks Mockito Jmockit
Frameworks and Tools JAVA
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 41
Arquitectura Java Sólida - Cecilio Álvarez Caules Java a Fondo - Pablo Sznajdleder SCJP Sun Certified Programmer for JAVA 6 Study Guide.- Kathy Sierra/Bert Bates Core J2EE™ Patterns: Best Practices and Design Strategies, Second Edition - Deepak Alur, John Crupi, Dan Malks Arquitectura empresarial y software libre, J2EE - Alberto Molpeceres Touris / Martín Pérez Mariñán
Libros de Referencia
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 42
http://docs.oracle.com/javaee/7/tutorial/doc/ http://spring.io/docshttp://holamundojava.blogspot.com/http://ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/Tema5-1.pdfhttp://es.wikipedia.org/http://www.alegsa.com.ar/http://jcesarperez.blogspot.com/2009/03/por-que-maven.htmlhttp://www.fic.udc.eshttp://www.slideshare.net/fernando_jmt/desarrollo-de-aplicaciones-empresariales-con-java-ee
http://es.slideshare.net/cptanalatriste/arquitectura-y-diseo-de-aplicaciones-java-ee
Links de referencia
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 43
Los EJB “viven” dentro del EJB container y este les provee una serie de servicios que llamaremos servicios de plataforma. Por ejemplo:Seguridad MultithreadingNetworking (objetos distribuidos)TransaccionesConnection PoolingPara mas información un buen ejemplo es el siguiente.http://holamundojava.blogspot.com/2006/11/enterprise-javabeans.html
Enterprise JavaBeans
D. Rodrigo Zottola Pareja - Ing. en Computación
Page 44
Preguntas ?
D. Rodrigo Zottola Pareja - Ing. en Computación
Ing. D. Rodrigo Zottola Pareja - [email protected]
Gracias
Zottola Pareja Darwin RodrigoIng. en Computación [email protected]