Introdución a aplicaciones web en java

37
1er Seminario Ape Valley Proyect - 2013 INTRODUCCIÓN A APLICACIONES WEB EN JAVA Darwin Rodrigo Zottola - Ing. en Computación - 2013 1 1ra Parte

description

Leve introduccion al desarrollo de aplicacioens empresariales en JAVA

Transcript of Introdución a aplicaciones web en java

Page 1: Introdución a aplicaciones web en java

1Darwin Rodrigo Zottola - Ing. en Computación - 2013

1er Seminario Ape Valley Proyect - 2013

INTRODUCCIÓN A APLICACIONES WEB

EN JAVA

1ra Parte

Page 2: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

2

Una mirada a las tecnologías mas usadas y actuales.Leve introducción al desarrollo de aplicaciones

empresariales con JAVA EEBase a próximos seminarios.

OBJETIVOS

Page 3: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

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

Page 4: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

4

Acceso a bases de datos (BD). Normalmente con BD relacionales.

Transaccionales. Propiedades ACID: Atomicity(atomicidad),

Consistency(coherencia), Isolation (aislamiento), Durability (permanencia).

Escalables. Deberían poder soportar más cargado trabajo sin �

necesidad de modificar el software (sólo añadir más máquinas).

Disponibilidad. Idealmente no deben dejar de prestar servicio.�

APLIC. EMPRESARIALES - CARACTERÍSTICAS

Page 5: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

5

Seguras� No todos los usuarios pueden acceder a la misma �

funcionalidad Integración� De entorno de ventanas (clientes standalone):�

normalmente sólo tiene sentido en intranets Web: En Internet y en intranets� � Separación clara entre la interfaz gráfica y el

modelo Arquitecturas multi-capa�

APLIC. EMPRESARIALES - CARACTERÍSTICAS

Page 6: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

6

ARQUITECTURA DOS CAPAS

Computador

Computador

Computador

SER V ID O RD E

A R CH IV O S

L.presentacionL.Aplicación

AlmacenamientoL.Accesos DatosL.Aplicación

Arquitectura Cliente Servidor (Tradicional).

Page 7: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

7

ARQUITECTURA DE TRES CAPAS

Divide la aplicación en tres tipos de servicios

Visualización o presentacion

Lógica Datos

SERVIDOR DBMSY

DATOS

Cliente 1

Cliente 2

Cliente N

Clientes FRONT-END,Validac ión y Formateo

de Datos

Capa IntermediaMONITOR

TP

Servic ios y lógic a deAplic ac ión

Pool de Conex iones aB.D

Bas e de Datos

SERVIDOR DBMSY

DATOSSolic itud de Serv ic io

Page 8: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

8

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)

Ofrece un framework para el desarrollo de aplicaciones distribuidas multicapa (3-tier, n-tier) basadas en Web

Compuesta de maquina virtual, lenguaje java y librerías de clases.

Entornos multicapas y aplicaciones del lado del servidor

JAVA WEB - QUE ES JAVA EE?

Page 9: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

9

JAVA EE

Page 10: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

10

Los Enterprise JavaBeans (EJB) son componentes Java que viven (y corren) dentro del EJB Container, en la capa de aplicación o de negocio.

Un "Enterprise Java Bean" agrupa funcionalidades para una aplicación, es un "deployable component", el término "deployable component" implica que existe un ambiente de ejecución , un "EJB(Enterprise Java Bean) Container" parte de un java application server .

ENTERPRISE JAVABEANS

Page 11: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

11

Los EJB “viven” dentro del EJB container y este les provee una serie de servicios que llamaremos servicios de plataforma. Por ejemplo:

Seguridad Multithreading Networking (objetos distribuidos) Transacciones Connection Pooling

Para mas información un buen ejemplo es el siguiente. http://holamundojava.blogspot.com/2006/11/enterprise-java

beans.html

EJB – SERVICIOS

Page 12: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

12

IDE’S : ECLIPSE NETBEANS JDEVELOPER

SERVIDORES DE APLICACIONES-Webologic(Oracle)-Tomcat-Galssfish

TECNOLOGÍAS

Page 13: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

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 – JAVA EE IMPLEMENTACIÓN

Page 14: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

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 – JAVA EE IMPLEMENTACIÓN

Page 15: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

15

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.

PATRONES DE DISEÑOS MAS USADOS

Page 16: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

16

Una aplicación 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 datos, 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

Page 17: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

17

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

Page 18: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

18

BACK END - CAPAS

Page 19: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

19

BACK END

Manager (Facade): Es un conjunto de funciones para un sistema cliente en

particularDAO : 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

Page 20: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

20

BACK END - CAPAS

Page 21: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

21

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.

BACK END – HIBERNATE Y JPA HIBERNATE

Page 22: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

22

BACK END - HIBERNATE

Page 23: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

23

BACK END - CAPAS

Page 24: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

24

FRONT END

Page 25: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

25

FRONT END

Page 26: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

26

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.java

ControllerEl 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.

MVC MODELO VISTA CONTROLADOR

Page 27: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

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.

SERVLETS JAVA

Page 28: Introdución a aplicaciones web en java

ARQUITECTURA DE CONTENEDOR WEB

Page 29: Introdución a aplicaciones web en java

QUE PUEDE HACER UN SERVLET

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 cl iente

Page 30: Introdución a aplicaciones web en java

CICLO DE VIDA DE UN SERVLET

Page 31: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

31

APLICACIÓN WEB EN JAVA(MVC- STRUT)

Page 32: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

32

TECNOLOGIAS

Page 33: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

33

Logueo de Errores: Log4J http://logging.apache.org/log4j/2.x/

Gestión de proyectos Maven

http://maven.apache.org/

Versionado SVN

http://subversion.tigris.org/ http://subversion.apache.org/

CVS

FRAMEWORKS PARA DESARROLLO

Page 34: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

34

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

Page 35: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

35

SPRING

Page 36: Introdución a aplicaciones web en java

Darwin Rodrigo Zottola - Ing. en Computación

36

Continuara…

PREGUNTAS

Brainiac for Sharing– APE Valley Proyect

Zottola Pareja Darwin RodrigoIng. en Computación

[email protected]