J2EE Desarrollo de Aplicaciones Web Escrito Por Benjamin AUMAILLE
Aplicaciones Web Java J2EE Parte Uno
-
Upload
darwin-rodrigo-zottola-pareja -
Category
Documents
-
view
220 -
download
0
Transcript of Aplicaciones Web Java J2EE Parte Uno
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
1/45
Page 1
Introduccin Basiuca a aplicaciones Web en JAVA1ra Parte
D. Rodrigo Zottola Pareja - Ing. en Computacin2014
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
2/45
Page 2 D. Rodrigo Zottola Pareja - Ing. en Computacin
Una mirada a las tecnologas Web Para JAVA.
Leve introduccin al desarrollo de aplicacionesempresariales con JAVA EE
Base a prximos seminarios.
Objetivos
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
3/45
Page 3
Una aplicacin web es cualquier aplicacin que es accedida va webpor una red como internet o una intranet.
En general aquellos programas informticos que son ejecutados en el
entorno del navegador
Programas codificados con algn lenguaje soportado por el navegadorconfindose en el navegador web para que reproduzca (renderice) la
aplicacin.
Aplicacin web
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
4/45
Page 4
Caracteristicas:Mantenibilidad
Fiabilidad
Extensibilidad
ManejabilidadTransaccional.
-Propiedades ACID: Atomicity(atomicidad), Consistency(coherencia),Isolation (aislamiento), Durability (permanencia).
Escalables.
Disponibilidad.Seguridad y confiabilidad
Integracin de las aplicaciones y de los datos
Portabilidad
Aplicaciones Empresariales
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
5/45
Page 5
Arquitectura (80/90)cliente-servidor de dos capas (arquitectura de nivel2): del lado del cliente se inclua tanto la lgica del negocio como lalgica de la presentacin; del lado del servidor se incluan los datosalojados en bases o almacenes de datos
La arquitectura cliente-servidor de tres capas (arquitectura de nivel 3)separa la lgica de presentacin (que permanece del lado del cliente)
de la lgica del negocio (servidor de negocio), permaneciendo los datosalojados en bases de datos del servidor.
Arquitecturas
Computador
Computador
Computador
SERVIDORDE
ARCHIVOS
SERVIDOR DBMSY
DATOS
Cliente1
Cliente2
ClienteN
Clientes FRONT-ENDValidaciny Formate
deDatos
CapaIntermediaMONITOR
TP
Servicios y lgica deAplicacin
Pool deConexiones aB.D
BasedeDatos
SERVIDOR DBMSY
DATOSSolicituddeServicio
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
6/45
Page 6
Ms conocimientos de cmputo distribuido (DCOM, RMI,CORBA, etc.)
Las capas se deben integrar eficientemente
Conocimiento para midleware y servicios (transacciones, poolde conexiones, accesos a dbs, seguridad, networking, etc. ).
Administrar Conexiones Costosas :DBMS
Middleware orientado a mensajes
EL uso de API's del Servidor Middleware dificulta lamantenibilidad y limita la portabilidad.
Complejidades en la n Capas
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
7/45
Page 7
Java EE (Java Enterprise Edition): Plataforma Java para eldesarrollo de aplicaciones empresariales
Java EE es un conjunto de especificaciones de APIs Java para
la construccin de aplicaciones empresariales.(Clases abstractae interfaces)
Define estndares que son implementados por distintosproveedores y fabricantes, no fuerza a emplear ningn productoespecfico.
Ofrece un framework para el desarrollo de aplicacionesdistribuidas multicapa (3-tier, n-tier) basadas en Web
JAVA Web - Que es J2EE?
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
8/45
Page 8
JEE soporta aplicaciones distribuidas que toma ventajas de lastecnologas existentes y en desarrollo simplificando el proceso atravs de un modelo de aplicaciones basados en componentes.
Las aplicaciones desplegadas con la tecnologa
J2EE:Estn estandarizadas
Siguen una guas de especificacin estrictas
Estn escritas en Java
Se pueden desplegar en cualquier servidor de aplicaciones
El enfoque de J2EE
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
9/45
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 enel lado del servidor.
Enterprise JavaBeans (EJB ) son componentes de negocio que se ejecutanen el servidor de aplicacin.
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 Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
10/45
Page 10
Los contenedores proveen Un entorno de ejecucion paracomponentes 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 Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
11/45
Page 11
J2EE - Evolucion
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
12/45
Page 12
J2EE - Capas
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
13/45
Page 13
Existen un gran nmero de fabricantes que venden servidores deaplicaciones certificados Java EE.
Algunos ejemplos.
BEA WebLogic Server:
http://www.bea.comIBM WebSphere ApplicationServer:
http://www.ibm.com
Sun Java System Application Server:
http://www.sun.comOracle Application Server:
http://www.oracle.com
Servidores de Aplicaciones
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
14/45
Page 14
Tomcat (proyecto de Apache):http://tomcat.apache.orgJBoss: http://www.jboss.comGlassFish:https://glassfish.dev.java.netOpenEJB:http://openejb.codehaus.orgGeronimo:http://geronimo.apache.org
Portabilidad : Si solo se utilizan Apis estndares en general esposible instalar sobre cualquier servidor de aplicaciones segnJava EE, esto hace que no exista una dependencia con elfabricante.
Servidores de Aplicaciones
D. Rodrigo Zottola Pareja - Ing. en Computacin
http://geronimo.apache.org/http://geronimo.apache.org/ -
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
15/45
Page 15
IDES :
ECLIPSE
NETBEANS
JDEVELOPER
SERVIDORES DE APLICACIONES
-Webologic(Oracle)
-Tomcat
-Galssfish
Tecnologas
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
16/45
Page 16
FACADE: Su objetivo es proporcionar una interface simple para unsubsistema complejo, o estructurar subsistemas en capas (En pocaspalabras creo una clase a travs de la cual el sistema cliente acceder a loque yo quiera que acceda).
SINGLETON: El patrn de diseo singleton (instancia nica) est
diseado para restringir la creacin de objetos pertenecientes auna clase o el valor de un tipo a un nico objeto. Su intencin consiste engarantizar que una clase slo tenga una instancia y proporcionar un puntode acceso global a ella.(Obligo que solo se cree una instancia de unaclase.)
FACTORY: En diseo de software, el patrn de diseo FactoryMethodconsiste en utilizar una clase constructora (al estilo del AbstractFactory) abstracta con unos cuantos mtodos definidos y otro(s)abstracto(s): el dedicado a la construccin de objetos de un subtipo de untipo determinado.Service:
Patrones de DiseosMas usados
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
17/45
Page 17
Una aplicacin usualmente se puede dividir en :Front End: Es la parte que interactua con el usuario, la parte visual ,
el flujo de navegacin, etcBack End : Es el ncleo de la aplicacin, la lgica del negocio , asi
como el modelo de datos, etc
La idea general es que el front-end es responsable de recogerentradas de los usuarios, y ser procesadas de tal manera quecumplan las especificaciones para que el back-end pueda usarlas.La conexin entre front-end y el back-end es un tipo de interfaz.
Front-end y back-end son trminos utilizados para caracterizar lasinterfaces y servicios del programa en relacin con el usuario inicialde estas interfaces y servicios.
Back/Front End
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
18/45
Page 18
Back End - Capas
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
19/45
Page 19
Sirve indirectamente en apoyo de los servicios front-end. Laaplicacin back-end puede interactuar directamente con el front-end.Modelo de datosModelos de negocios
Base de DatosORMHibernate Mapeos de ClaseJPA hibernateHql
ANSI sql
Back End - Core
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
20/45
Page 20
Posibles componentes "Core"
Managers (Facade)
DAO /JPAControllers
DTO/Beans/POJO
XML Mapping/ Annotations
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
21/45
Page 21
Manager (Facade):Es un conjunto de funciones para un sistemacliente 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 sirvenpara tranportar datos de una tabla especifica
Mapping :Archivos xml para mapear tablas a clases JAVA
Posibles componentes "Core"
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
22/45
Page 22
Back End Capas
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
23/45
Page 23
HIBERNATE : Es una herramienta de Mapeo objeto-relacionalpara la plataforma Java (y disponible tambin para .Net con elnombre de NHibernate) que facilita el mapeo de atributos entre unabase de datos relacional tradicional y el modelo de objetos de unaaplicacin, mediante archivos declarativos (XML) que permitenestablecer estas relaciones.
JPA HIBERNATE (JAVA Persistence API) : JPA es un frameworkde persistencia, que nos abstrae de las bases de datos y nosbrinda un estandar para persistir los datos en java.JPA viene a solucionar el vacio que hay entre utilizar objetos ypersistirlos en una DB relacional.
Capa de Datos - Persistencia
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
24/45
Page 24
Capa de Datos - Hibernate
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
25/45
Page 25
Hibernate - Ejemplo
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
26/45
Page 26
Front End - Intro
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
27/45
Page 27
Los Servlets son mdulos que extienden los servidores orientadosa solicitud -respuesta, como los servidores web compatibles conJava.
Clase usada en el servidor bajo el modelo de programacin
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 Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
28/45
Page 28
Java Servlets
D. Rodrigo Zottola Pareja - Ing. en Computacin
Un Servlet es una clase Java que extiende dejavax.servlet.http.HttpServlet y que sobreescribe los mtodosdoPost o doGet o ambos.
Un Servlet es una clase Java usada para extender la
capacidad de las aplicaciones basadas en el modelocliente servidor y ejecucin peticin respuesta.
Los Servlets son una potente herramienta para la generacinde contenido dinmico en la Web.
El Servlet Container es el componente encargado de la
creacin, acceso y destruccin de los Servlets, controla suciclo de vida.
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
29/45
Page 29
Java Servlets
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
30/45
Page 30
Leer los datos enviados por un usuario Usualmente de formularios en pginas Web Pueden venir de applets de Java o programas cliente HTTP.
Buscar cualquier otra informacin sobre la peticin que vengaincluida 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 informacin en una pgina HTML
Establecer los parmetros 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?
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
31/45
Page 31
Ciclo de vida de un Servlet
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
32/45
Page 32
Java Server Pages - JSP
Un documento JSP, es una pgina dinmica de servidor Java.
Es un archivo de texto compuesto de :
1. Cabecera con importaciones y parametros.
2. Cdigo cliente, normalmente HTML, XML y Javascript.
3. Cdigo servidor Java, denominado Scriptlet y escritoentre los caracteres
.
4. Tags: instrucciones en formato XML, asociadas a clasesJava.
Un JSP se transforma en un Servlet en tiempo de
ejecucin.
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
33/45
Page 33
Java Server Pages - JSP
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
34/45
Page 34
Java Server Pages - JSP
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
35/45
Page 35
Modelo MVC en JAVA
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
36/45
Page 36
ViewEl usuario ingresa su informacin en la pgina identificacion.jsp.
Esta pgina tiene un formulario conaction=identificarEmpleado.do y submitea la informacin al
servlet IdentificarEmpleadoAction.javaControllerEl servlet (controller) accede al facade (model) para invocarle elmtodo identificarEmpleado(enpno,ename). Obtiene el resultado(un EmpDTO o null) y forwardea el control a la siguiente pginasegn el resultado obtenido.Model
El model est representado por el facade pero recordemos quedetrs de l se encuentran los objetos de negocio (Emp y Dept)y (por ltimo) la base de datos con las tablas EMP, DEPT y susrelaciones
Front End - MVC
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
37/45
Page 37
STRUTS Y STRUTS2http://struts.apache.org/
SPRING MVCwww.springsource.org
TILES (TEMPLATE)
JAVA SERVER PAGES (JSF)www.javaserverfaces.orgFACELET TEMPLATES
OTROS FRAMWORKSGROOVYhttp://groovy.codehaus.org/
Frameworks JAVA MVC
D. Rodrigo Zottola Pareja - Ing. en Computacin
http://struts.apache.org/http://www.springsource.org/http://www.springsource.org/http://www.springsource.org/http://www.javaserverfaces.org/http://groovy.codehaus.org/http://groovy.codehaus.org/http://www.javaserverfaces.org/http://www.springsource.org/http://www.springsource.org/http://www.springsource.org/http://struts.apache.org/ -
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
38/45
Page 38
Spring - Modulos
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
39/45
Page 39
Logueo de Errores:
Log4J
http://logging.apache.org/log4j/2.x/
LogBack
http://logback.qos.ch/
Gestin 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 Computacin
http://logging.apache.org/log4j/2.x/http://maven.apache.org/http://maven.apache.org/http://logging.apache.org/log4j/2.x/http://logging.apache.org/log4j/2.x/ -
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
40/45
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 Computacin
http://logging.apache.org/log4j/2.x/http://logging.apache.org/log4j/2.x/http://logging.apache.org/log4j/2.x/ -
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
41/45
Page 41
Arquitectura Java Slida - Cecilio lvarez Caules
Java a Fondo - Pablo Sznajdleder
SCJP Sun Certified Programmer for JAVA 6 Study
Guide.- Kathy Sierra/Bert BatesCore J2EE Patterns: Best Practices and DesignStrategies, Second Edition - Deepak Alur, John Crupi,Dan Malks
Arquitectura empresarial y software libre, J2EE -Alberto Molpeceres Touris / Martn Prez Marin
Libros de Referencia
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
42/45
Page 42
http://docs.oracle.com/javaee/7/tutorial/doc/http://spring.io/docs
http://holamundojava.blogspot.com/
http://ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/Tema5-1.pdf
http://es.wikipedia.org/http://www.alegsa.com.ar/
http://jcesarperez.blogspot.com/2009/03/por-que-maven.html
http://www.fic.udc.es
http://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 Computacin
http://www.slideshare.net/fernando_jmt/desarrollo-de-aplicaciones-empresariales-con-java-eehttp://holamundojava.blogspot.com/http://ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/Tema5-1.pdfhttp://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.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://www.fic.udc.es/http://jcesarperez.blogspot.com/2009/03/por-que-maven.htmlhttp://jcesarperez.blogspot.com/2009/03/por-que-maven.htmlhttp://jcesarperez.blogspot.com/2009/03/por-que-maven.htmlhttp://jcesarperez.blogspot.com/2009/03/por-que-maven.htmlhttp://jcesarperez.blogspot.com/2009/03/por-que-maven.htmlhttp://www.alegsa.com.ar/http://www.alegsa.com.ar/http://es.wikipedia.org/http://es.wikipedia.org/http://ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/Tema5-1.pdfhttp://ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/Tema5-1.pdfhttp://ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/Tema5-1.pdfhttp://ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/Tema5-1.pdfhttp://holamundojava.blogspot.com/http://www.slideshare.net/fernando_jmt/desarrollo-de-aplicaciones-empresariales-con-java-eehttp://www.slideshare.net/fernando_jmt/desarrollo-de-aplicaciones-empresariales-con-java-ee -
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
43/45
Page 43
Los EJB viven dentro del EJB container y este les provee una
serie de servicios que llamaremos servicios de plataforma. Porejemplo:
Seguridad
MultithreadingNetworking (objetos distribuidos)
Transacciones
Connection Pooling
Para mas informacin un buen ejemplo es el siguiente.
http://holamundojava.blogspot.com/2006/11/enterprise-javabeans.html
Enterprise JavaBeans
D. Rodrigo Zottola Pareja - Ing. en Computacin
http://holamundojava.blogspot.com/2006/11/enterprise-javabeans.htmlhttp://holamundojava.blogspot.com/2006/11/enterprise-javabeans.htmlhttp://holamundojava.blogspot.com/2006/11/enterprise-javabeans.htmlhttp://holamundojava.blogspot.com/2006/11/enterprise-javabeans.htmlhttp://holamundojava.blogspot.com/2006/11/enterprise-javabeans.html -
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
44/45
Page 44
Preguntas?
D. Rodrigo Zottola Pareja - Ing. en Computacin
-
7/21/2019 Aplicaciones Web Java J2EE Parte Uno
45/45