Introduccion Aplicaciones Web en java j2ee

Click here to load reader

  • date post

    17-Dec-2014
  • Category

    Software

  • view

    238
  • download

    6

Embed Size (px)

description

Leve Introduccin a las aplicaciones Web en Java / J2EE

Transcript of Introduccion Aplicaciones Web en java j2ee

  • 1. Page 1Introduccin Basiuca a aplicaciones Web en JAVA1ra ParteD. Rodrigo Zottola Pareja - Ing. en Computacin2014

2. ObjetivosUna mirada a las tecnologas Web Para JAVA.Leve introduccin al desarrollo de aplicacionesempresariales con JAVA EEBase a prximos seminarios.Page 2 D. Rodrigo Zottola Pareja - Ing. en Computacin 3. Aplicacin webUna 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 elentorno del navegadorProgramas codificados con algn lenguaje soportado por el navegadorconfindose en el navegador web para que reproduzca (renderice) laaplicacin.Page 3D. Rodrigo Zottola Pareja - Ing. en Computacin 4. Aplicaciones EmpresarialesCaracteristicas:Page 4Mantenibilidad Fiabilidad ExtensibilidadManejabilidad Transaccional.-Propiedades ACID: Atomicity(atomicidad), Consistency(coherencia),Isolation (aislamiento), Durability (permanencia). Escalables. Disponibilidad.Seguridad y confiabilidad Integracin de las aplicaciones y de los datos PortabilidadD. Rodrigo Zottola Pareja - Ing. en Computacin 5. Arquitecturas 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 datosComputadorComputador 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.Page 5ComputadorSERVIDORDEARCHIVOSSERVIDOR DBMSYDATOSCl iente 1Cl iente 2Cl iente NCl ientes FRONT-END,Val idacin y Formateode DatosCapa IntermediaMONITORTPServicios y lgica deApl icacinPool de Conexiones aB.DSERVIDOR DBMSYDATOSBase de DatosSol icitud de ServicioD. Rodrigo Zottola Pareja - Ing. en Computacin 6. Complejidades en la n CapasPage 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 : DBMSMiddleware orientado a mensajesEL uso de API's del Servidor Middleware dificulta lamantenibilidad y limita la portabilidad.D. Rodrigo Zottola Pareja - Ing. en Computacin 7. JAVA Web - Que es J2EE?Page 7Java EE (Java Enterprise Edition): Plataforma Java para eldesarrollo de aplicaciones empresarialesJava EE es un conjunto de especificaciones de APIs Java parala 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 WebD. Rodrigo Zottola Pareja - Ing. en Computacin 8. El enfoque de J2EEPage 8JEE 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 tecnologaJ2EE: Estn estandarizadas Siguen una guas de especificacin estrictas Estn escritas en Java Se pueden desplegar en cualquier servidor de aplicacionesD. Rodrigo Zottola Pareja - Ing. en Computacin 9. El enfoque de J2EEPage 9Componentes Las Aplicaciones Clientes y Applets son componentes que se ejecutan en el lado delcliente. 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 CommunicationsD. Rodrigo Zottola Pareja - Ing. en Computacin 10. Contenedores en JAVA EEPage 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 containerWeb Services Support XML SOAP Transport Protocol WSDL Standard FormatD. Rodrigo Zottola Pareja - Ing. en Computacin 11. J2EE - EvolucionPage 11D. Rodrigo Zottola Pareja - Ing. en Computacin 12. J2EE - CapasPage 12D. Rodrigo Zottola Pareja - Ing. en Computacin 13. Servidores de AplicacionesPage 13Existen un gran nmero de fabricantes que venden servidores deaplicaciones 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.comD. Rodrigo Zottola Pareja - Ing. en Computacin 14. Servidores de AplicacionesPage 14Tomcat (proyecto de Apache): http://tomcat.apache.orgJBoss: http://www.jboss.comGlassFish: https://glassfish.dev.java.netOpenEJB: http://openejb.codehaus.org Geronimo: http://geronimo.apache.orgPortabilidad : 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.D. Rodrigo Zottola Pareja - Ing. en Computacin 15. TecnologasPage 15IDES :ECLIPSENETBEANSJDEVELOPERSERVIDORES DE APLICACIONES-Webologic(Oracle)-Tomcat-GalssfishD. Rodrigo Zottola Pareja - Ing. en Computacin 16. Patrones de DiseosMas usadosPage 16FACADE: 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) estdiseado 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 FactoryMethod consiste 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:D. Rodrigo Zottola Pareja - Ing. en Computacin 17. Back/Front EndPage 17Una 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 , asicomo el modelo de datos, etcLa 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.D. Rodrigo Zottola Pareja - Ing. en Computacin 18. Back End - CapasPage 18D. Rodrigo Zottola Pareja - Ing. en Computacin 19. Back End - CorePage 19Sirve indirectamente en apoyo de los servicios front-end. Laaplicacin back-end puede interactuar directamente con el front-end.Modelo de datosModelos de negociosBase de DatosORM Hibernate Mapeos de ClaseJPA hibernateHqlANSI sqlD. Rodrigo Zottola Pareja - Ing. en Computacin 20. Posibles componentes "Core"Page 20Managers (Facade)DAO /JPAControllersDTO/Beans/POJOXML Mapping/ AnnotationsD. Rodrigo Zottola Pareja - Ing. en Computacin 21. Posibles componentes "Core"Page 21Manager (Facade): Es un conjunto de funciones para un sistemacliente en particulaDAO : Solo contiene las metodos referentes al acceso a datos deun DTO(ABM,count,etc)DTO : Son clases JAVA planas o Beans especificos que sirvenpara tranportar datos de una tabla especificaMapping : Archivos xml para mapear tablas a clases JAVAD. Rodrigo Zottola Pareja - Ing. en Computacin 22. Back End CapasPage 22D. Rodrigo Zottola Pareja - Ing. en Computacin 23. Capa de Datos - PersistenciaPage 23HIBERNATE : 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.D. Rodrigo Zottola Pareja - Ing. en Computacin 24. Capa de Datos - HibernatePage 24D. Rodrigo Zottola Pareja - Ing. en Computacin 25. Hibernate - EjemploPage 25D. Rodrigo Zottola Pareja - Ing. en Computacin 26. Front End - IntroPage 26D. Rodrigo Zottola Pareja - Ing. en Computacin 27. Java ServletsPage 27Los 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 programacinsolictud-respuesta (request - response)Es la base de todos los frameworks WEb.Define clases esecificas para HTTP.D. Rodrigo Zottola Pareja - Ing. en Computacin 28. Java ServletsPage 28 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 lacapacidad 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 lacreacin, acceso y destruccin de los Servlets, controla suciclo de vida.D. Rodrigo Zottola Pareja - Ing. en Computacin 29. Java ServletsPage 29D. Rodrigo Zottola Pareja - Ing. en Computacin 30. Que puede hacer un Servlet?Page 30Leer 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 delcliente, 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 HTMLEstablecer los parmetros de la respuesta HTTP Decirle al navegador el tipo de documento que se va a devolver, establecer lascookies, etc.Enviar el documento al cliente 31. Ciclo de vida de un ServletPage 31 32. Java Server Pages - JSPPage 32Un 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 deejecucin. 33. Java Server Pages - JSPPage 33 34. Java Server Pages - JSPPage 34 35. Modelo MVC en JAVAPage 35D. Rodrigo Zottola Pareja - Ing. en Computacin 36. Front End - MVCPage 36ViewEl usuario ingresa su informacin en la pgina identificacion.jsp.Esta pgina tiene un formulario conaction=identificarEmpleado.do y submitea la informacin alservlet 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.ModelEl 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 susrelacionesD. Rodrigo Zottola Pareja - Ing. en Computacin 37. Frameworks JAVA MVCPage 37STRUTS Y STRUTS2http://struts.apache.org/SPRING MVCwww.springsource.orgTILES (TEMPLATE)JAVA SERVER PAGES (JSF)www.javaserverfaces.orgFACELET TEMPLATESOTROS FRAMWORKSGROOVYhttp://groovy.codehaus.org/D. Rodrigo Zottola Pareja - Ing. en Computacin 38. Spring - ModulosPage 38D. Rodrigo Zottola Pareja - Ing. en Computacin 39. Frameworks and Tools JAVAPage 39Logueo de Errores: Log4J http://logging.apache.org/log4j/2.x/ LogBack http://logback.qos.ch/Gestin de proyectosMaven http://maven.apache.org/ Gradle http://www.gradle.org/VersionadoSVN GitD. Rodrigo Zottola Pareja - Ing. en Computacin 40. Frameworks and Tools JAVAPage 40Templating: Velocity http://logging.apache.org/log4j/2.x/ FaceletsXMLParsing JDOMSprings Tools Spring MVC Test Spring SecurityTesting JUnit TestNGMocking frameworks Mockito JmockitD. Rodrigo Zottola Pareja - Ing. en Computacin 41. Libros de ReferenciaPage 41 Arquitectura Java Slida - Cecilio lvarez Caules Java a Fondo - Pablo Sznajdleder SCJP Sun Certified Programmer for JAVA 6 StudyGuide.- Kathy Sierra/Bert Bates Core 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 MarinD. Rodrigo Zottola Pareja - Ing. en Computacin 42. Links de referenciaPage 42http://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-eehttp://es.slideshare.net/cptanalatriste/arquitectura-y-diseo-de-aplicaciones-java-eeD. Rodrigo Zottola Pareja - Ing. en Computacin 43. Enterprise JavaBeansPage 43Los EJB viven dentro del EJB container y este les provee unaserie de servicios que llamaremos servicios de plataforma. Porejemplo:SeguridadMultithreadingNetworking (objetos distribuidos)TransaccionesConnection PoolingPara mas informacin un buen ejemplo es el siguiente.http://holamundojava.blogspot.com/2006/11/enterprise-javabeans.htmlD. Rodrigo Zottola Pareja - Ing. en Computacin 44. Page 44Preguntas?D. Rodrigo Zottola Pareja - Ing. en Computacin 45. Ing. D. Rodrigo Zottola Pareja [email protected] Pareja Darwin RodrigoIng. en [email protected]