You are on page 1of 37

INTRODUCCIN A APLICACIONES WEB EN JAVA

1er Seminario Ape Valley Proyect - 2013

1ra Parte

Darwin Rodrigo Zottola - Ing. en Computacin - 2013

OBJETIVOS
Una mirada a las tecnologas mas usadas y actuales. Leve introduccin al desarrollo de aplicaciones empresariales con JAVA EE Base a prximos seminarios.

Darwin Rodrigo Zottola - Ing. en Computacin

APLICACIN WEB
Una aplicacin web es cualquier aplicacin que es accedida va web por 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 navegador confindose en el navegador web para que reproduzca (renderice) la aplicacin.

Darwin Rodrigo Zottola - Ing. en Computacin

APLIC. EMPRESARIALES CARACTERSTICAS


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

Transaccionales.
Propiedades ACID: Atomicity(atomicidad), Consistency(coherencia), Isolation (aislamiento), Durability (permanencia).

Escalables.
Deberan poder soportar ms cargado trabajo sin necesidad de modificar el software (slo aadir ms mquinas).

Disponibilidad.
Idealmente no deben dejar de prestar servicio.

Darwin Rodrigo Zottola - Ing. en Computacin

APLIC. EMPRESARIALES CARACTERSTICAS


Seguras No todos los usuarios pueden acceder a la misma funcionalidad Integracin De entorno de ventanas (clientes standalone ):
normalmente slo tiene sentido en intranets

Web: En Internet y en intranets Separacin clara entre la interfaz grfica y el modelo Arquitecturas multi-capa

Darwin Rodrigo Zottola - Ing. en Computacin

ARQUITECTURA DOS CAPAS


Arquitectura Cliente Servidor (Tradicional).

C o m p u ta d o r

L.presentacion L.Aplicacin
C o m p u ta d o r S E R V I D O R D E A R C H I V O S

Almacenamiento L.Accesos Datos L.Aplicacin

C o m p u ta d o r

Darwin Rodrigo Zottola 6 - Ing. en Computacin

ARQUITECTURA DE TRES CAPAS

Divide la aplicacin en tres tipos de servicios


Visualizacin o presentacion Lgica Datos
SERVIDOR DBMS Y DATOS

Cliente 1

Cliente 2 Capa Intermedia MONITOR TP

SERVIDOR DBMS Y DATOS

Solici tud de Servi cio Pool de Conexiones a B.D Servicios y lgica de Aplicacin Cliente N

Base de Datos

Clientes FRONT-END, Validacin y Formateo de Datos

Darwin Rodrigo Zottola 7 - Ing. en Computacin

JAVA WEB - QUE ES JAVA EE?

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 construccin 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 libreras de clases. Entornos multicapas y aplicaciones del lado del servidor

Darwin Rodrigo Zottola - Ing. en Computacin

JAVA EE

Darwin Rodrigo Zottola - Ing. en Computacin

ENTERPRISE JAVABEANS
Los Enterprise JavaBeans (EJB) son componentes Java que viven (y corren) dentro del EJB Container, en la capa de aplicacin o de negocio. Un "Enterprise Java Bean" agrupa funcionalidades para una aplicacin, es un "deployable component", el trmino "deployable component" implica que existe un ambiente de ejecucin , un "EJB(Enterprise Java Bean) Container" parte de un java application server .

Darwin Rodrigo Zottola - Ing. en Computacin

10

EJB SERVICIOS
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 informacin un buen ejemplo es el siguiente.


http://holamundojava.blogspot.com/2006/11/enterprise javabeans.html

Darwin Rodrigo Zottola - Ing. en Computacin

11

TECNOLOGAS
IDES :
ECLIPSE NETBEANS JDEVELOPER

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


Darwin Rodrigo Zottola - Ing. en Computacin

12

SERVIDORES DE APLICACIONES JAVA EE IMPLEMENTACIN


Existen un gran nmero 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

Darwin Rodrigo Zottola - Ing. en Computacin

13

SERVIDORES DE APLICACIONES JAVA EE IMPLEMENTACIN


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 Apis estndares en general es posible instalar sobre cualquier servidor de aplicaciones segn Java EE, esto hace que no exista una dependencia con el fabricante.

Darwin Rodrigo Zottola - Ing. en Computacin

14

PATRONES DE DISEOS MAS USADOS


FACADE: Su objetivo es proporcionar una interface simple para un subsistema complejo, o estructurar subsistemas en capas (En pocas palabras creo una clase a travs de la cual el sistema cliente acceder a lo que yo quiera que acceda). SINGLETON: El patrn de diseo singleton (instancia nica) est diseado para restringir la creacin de objetos pertenecientes a una clase o el valor de un tipo a un nico objeto. Su intencin consiste en garantizar que una clase slo tenga una instancia y proporcionar un punto de acceso global a ella .(Obligo que solo se cree una instancia de una clase.) FACTORY: En diseo de software, el patrn de diseo Factory Method consiste en utilizar una clase constructora (al estilo del Abstract Factory) abstracta con unos cuantos mtodos definidos y otro(s) abstracto(s): el dedicado a la construccin de objetos de un subtipo de un tipo determinado.

Darwin Rodrigo Zottola - Ing. en Computacin

15

BACK/FRONT END
Una aplicacin se puede dividir en :
Front End: Es la parte que interactua con el usuario, la parte visual , el flujo de navegacin, etc Back 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 recoger entradas de los usuarios, y ser procesadas de tal manera que cumplan 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 las interfaces y servicios del programa en relacin con el usuario inicial de estas interfaces y servicios.

Darwin Rodrigo Zottola - Ing. en Computacin

16

BACK END - CORE


Sirve indirectamente en apoyo de los servicios front-end. La aplicacin 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

Darwin Rodrigo Zottola - Ing. en Computacin

17

BACK END - CAPAS

Darwin Rodrigo Zottola - Ing. en Computacin

18

BACK END
Manager (Facade): Es un conjunto de funciones para un sistema cliente en particular 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


Darwin Rodrigo Zottola - Ing. en Computacin

19

BACK END - CAPAS

Darwin Rodrigo Zottola - Ing. en Computacin

20

BACK END HIBERNATE Y JPA HIBERNATE


HIBERNATE : Es una herramienta de Mapeo objeto -relacional para la plataforma Java (y disponible tambin 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 aplicacin, 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.

Darwin Rodrigo Zottola - Ing. en Computacin

21

BACK END - HIBERNATE

Darwin Rodrigo Zottola - Ing. en Computacin

22

BACK END - CAPAS

Darwin Rodrigo Zottola - Ing. en Computacin

23

FRONT END

Darwin Rodrigo Zottola - Ing. en Computacin

24

FRONT END

Darwin Rodrigo Zottola - Ing. en Computacin

25

MVC MODELO VISTA CONTROLADOR


View El usuario ingresa su informacin en la pgina identificacion.jsp. Esta pgina tiene un formulario con action =identificarEmpleado.do y submitea la informacin al servlet IdentificarEmpleadoAction.java Controller El servlet (controller) accede al facade (model) para invocarle el mtodo identificarEmpleado (enpno,ename). Obtiene el resultado (un EmpDTO o null) y forwardea el control a la siguiente pgina segn el resultado obtenido. Model El model est representado por el facade pero recordemos que detrs 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.

Darwin Rodrigo Zottola - Ing. en Computacin

26

SERVLETS JAVA

Los Servlets son mdulos que extienden los servidores orientados a solicitud -respuesta, como los servidores web compatibles con Java. 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.

Darwin Rodrigo Zottola - Ing. en Computacin

27

ARQUITECTURA DE CONTENEDOR WEB

QUE PUEDE HACER UN SERVLET


L e e r l o s d a to s e nv i a d o s p o r u n u s u a r i o Usualmente de formularios en pginas Web Pueden venir de applets de Java o programas cliente HTTP. B u s c a r c u a l q uie r o t r a i n f o r ma c i n s o b r e l a p et i c i n q u e v e n g a i n c l ui d a e n e s t a 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. D a r f o r m a to a l o s r e s u l t a d o s e n u n d o c um e n to Incluir la informacin en una pgina HTML E s t a b l e c e r l o s p a r m et r o s d e l a r e s p u e s t a H T T P Decirle al navegador el tipo de documento que se va a devolver, establecer las cookies, etc. E nv i a r e l d o c um e n to a l c l i e n te

CICLO DE VIDA DE UN SERVLET

APLICACIN WEB EN JAVA(MVC- STRUT)

Darwin Rodrigo Zottola - Ing. en Computacin

31

TECNOLOGIAS

Darwin Rodrigo Zottola - Ing. en Computacin

32

FRAMEWORKS PARA DESARROLLO


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

Gestin de proyectos
Maven
http://maven.apache.org/

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

CVS
Darwin Rodrigo Zottola - Ing. en Computacin

33

FRAMEWORKS JAVA MVC


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/

Darwin Rodrigo Zottola - Ing. en Computacin

34

SPRING

Darwin Rodrigo Zottola - Ing. en Computacin

35

PREGUNTAS

Continuara

Brainiac for Sharing APE Valley Proyect

Zottola Pareja Darwin Rodrigo Ing. en Computacin drzottolapareja@gmail.com


Darwin Rodrigo Zottola - Ing. en Computacin

36

LINKS DE REFERENCIA
http://www.slideshare.net/fernando_jmt/desarrollo -deaplicaciones-empresariales-con-java-ee http://holamundojava.blogspot.com / http://ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/T ema5-1.pdf http://es.wikipedia.org/ http://www.alegsa.com.ar/ http://jcesarperez.blogspot.com/2009/03/por -quemaven.html http://www.fic.udc.es

Darwin Rodrigo Zottola - Ing. en Computacin

37

You might also like