Anda di halaman 1dari 45

Page 1

Introduccin Basiuca a aplicaciones Web en JAVA


1ra Parte

D. Rodrigo Zottola Pareja - Ing. en Computacin
2014

Page 2
D. Rodrigo Zottola Pareja - Ing. en Computacin
Una mirada a las tecnologas Web Para JAVA.
Leve introduccin al desarrollo de aplicaciones
empresariales con JAVA EE
Base a prximos seminarios.



Objetivos
Page 3
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.




Aplicacin web
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 4
Caracteristicas:
Mantenibilidad
Fiabilidad
Extensibilidad
Manejabilidad
Transaccional.
-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
Page 5
Arquitectura (80/90)cliente-servidor de dos capas (arquitectura de nivel
2): del lado del cliente se inclua tanto la lgica del negocio como la
lgica de la presentacin; del lado del servidor se incluan los datos
alojados 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 datos
alojados en bases de datos del servidor.
Arquitecturas
Computador
Computador
Computador
SERVIDOR
DE
ARCHIVOS
SERVIDOR DBMS
Y
DATOS
Cliente1
Cliente2
ClienteN
Clientes FRONT-END,
Validaciny Formateo
deDatos
CapaIntermedia
MONITOR
TP
Servicios y lgica de
Aplicacin
Pool deConexiones a
B.D
BasedeDatos
SERVIDOR DBMS
Y
DATOS
Solici tuddeServi cio
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 6

Ms conocimientos de cmputo 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 mensajes
EL 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 Computacin
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 construccin de aplicaciones empresariales.(Clases abstracta
e interfaces)
Define estndares que son implementados por distintos
proveedores y fabricantes, no fuerza a emplear ningn producto
especfico.
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 Computacin
Page 8
JEE soporta aplicaciones distribuidas que toma ventajas de las
tecnologas existentes y en desarrollo simplificando el proceso a
travs 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
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 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
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 Computacin
Page 11
J2EE - Evolucion
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 12
J2EE - Capas
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 13
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






Servidores de Aplicaciones
D. Rodrigo Zottola Pareja - Ing. en Computacin
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 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.






Servidores de Aplicaciones
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 15
IDES :
ECLIPSE
NETBEANS
JDEVELOPER

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





Tecnologas
D. Rodrigo Zottola Pareja - Ing. en Computacin
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 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.
Service:





Patrones de Diseos
Mas usados
D. Rodrigo Zottola Pareja - Ing. en Computacin
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, 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.





Back/Front End
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 18
Back End - Capas
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 19
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





Back End - Core
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 20
Posibles componentes "Core"
Managers (Facade)
DAO /JPAControllers
DTO/Beans/POJO
XML Mapping/ Annotations
D. Rodrigo Zottola Pareja - Ing. en Computacin
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 Computacin
Page 22
Back End Capas
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 23
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.





Capa de Datos - Persistencia
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 24
Capa de Datos - Hibernate
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 25
Hibernate - Ejemplo
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 26
Front End - Intro
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 27
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.






Java Servlets
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 28
Java Servlets
D. Rodrigo Zottola Pareja - Ing. en Computacin
Un Servlet es una clase Java que extiende de
javax.servlet.http.HttpServlet y que sobreescribe los mtodos
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 ejecucin peticin respuesta.
Los Servlets son una potente herramienta para la generacin
de contenido dinmico en la Web.
El Servlet Container es el componente encargado de la
creacin, acceso y destruccin de los Servlets, controla su
ciclo de vida.
Page 29
Java Servlets
D. Rodrigo Zottola Pareja - Ing. en Computacin
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 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 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?
Page 31
Ciclo de vida de un Servlet
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 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
ejecucin.
Page 33
Java Server Pages - JSP
Page 34
Java Server Pages - JSP
Page 35
Modelo MVC en JAVA
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 36
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





Front End - MVC
D. Rodrigo Zottola Pareja - Ing. en Computacin
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 Computacin
Page 38
Spring - Modulos
D. Rodrigo Zottola Pareja - Ing. en Computacin
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
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
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 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 / Martn Prez Marin



Libros de Referencia
D. Rodrigo Zottola Pareja - Ing. en Computacin
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/Tema
5-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
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
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





Enterprise JavaBeans
D. Rodrigo Zottola Pareja - Ing. en Computacin
Page 44
Preguntas
?
D. Rodrigo Zottola Pareja - Ing. en Computacin
Ing. D. Rodrigo Zottola Pareja -
drzottolapareja@gmail.com
Gracias
Zottola Pareja Darwin Rodrigo
Ing. en Computacin
rodrigozeta@gmail.com