Introduccion Aplicaciones Web en java j2ee

45
Page 1 Introducción Basiuca a aplicaciones Web e n JAVA 1ra Parte D. Rodrigo Zottola Pareja - Ing. en Computación 2014

description

Leve Introduccin a las aplicaciones Web en Java / J2EE

Transcript of Introduccion Aplicaciones Web en java j2ee

Page 1: 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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

Page 11

J2EE - Evolucion

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 12: Introduccion Aplicaciones Web en java j2ee

Page 12

J2EE - Capas

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 13: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

Page 18

Back End - Capas

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 19: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

Page 22

Back End Capas

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 23: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

Page 24

Capa de Datos - Hibernate

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 25: Introduccion Aplicaciones Web en java j2ee

Page 25

Hibernate - Ejemplo

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 26: Introduccion Aplicaciones Web en java j2ee

Page 26

Front End - Intro

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 27: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

Page 29

Java Servlets

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 30: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

Page 31

Ciclo de vida de un Servlet

Page 32: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

Page 33

Java Server Pages - JSP

Page 34: Introduccion Aplicaciones Web en java j2ee

Page 34

Java Server Pages - JSP

Page 35: Introduccion Aplicaciones Web en java j2ee

Page 35

Modelo MVC en JAVA

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 36: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

Page 38

Spring - Modulos

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 39: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

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: Introduccion Aplicaciones Web en java j2ee

Page 44

Preguntas ?

D. Rodrigo Zottola Pareja - Ing. en Computación

Page 45: Introduccion Aplicaciones Web en java j2ee

Ing. D. Rodrigo Zottola Pareja - [email protected]

Gracias

Zottola Pareja Darwin RodrigoIng. en Computación [email protected]