1. 1er Seminario
Ape Valley
Proyect - 2013
INTRODUCCIÓN A
APLICACIONES WEB EN
JAVA
Darwin Rodrigo Zottola - Ing. en Computación - 2013 1
1ra Parte
2. Una mirada a las tecnologías mas usadas y actuales.
Leve introducción al desarrollo de aplicaciones empresariales
con JAVA EE
Base a próximos seminarios.
OBJETIVOS
Darwin Rodrigo Zottola - Ing. en Computación 2
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
Darwin Rodrigo Zottola - Ing. en Computación 3
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
Darwin Rodrigo Zottola - Ing. en Computación 4
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
Darwin Rodrigo Zottola - Ing. en Computación 5
7. 7
ARQUITECTURA DE TRES CAPAS
Divide la aplicación en
tres tipos de servicios
Visualización o
presentacion
Lógica
Datos
SERVIDOR DBMS
Y
DATOS
Cliente 1
Cliente 2
Cliente N
Clientes FRONT-END,
Validación y Formateo
de Datos
Capa Intermedia
MONITOR
TP
Servicios y lógica de
Aplicación
Pool de Conexiones a
B.D
Base de Datos
SERVIDOR DBMS
Y
DATOS
Solicitud de Servicio
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?
Darwin Rodrigo Zottola - Ing. en Computación 8
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
Darwin Rodrigo Zottola - Ing. en Computación 10
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-
javabeans.html
EJB – SERVICIOS
Darwin Rodrigo Zottola - Ing. en Computación 11
12. IDE’S :
ECLIPSE
NETBEANS
JDEVELOPER
SERVIDORES DE APLICACIONES
-Webologic(Oracle)
-Tomcat
-Galssfish
TECNOLOGÍAS
Darwin Rodrigo Zottola - Ing. en Computación 12
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
Darwin Rodrigo Zottola - Ing. en Computación 13
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
Darwin Rodrigo Zottola - Ing. en Computación 14
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
Darwin Rodrigo Zottola - Ing. en Computación 15
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
Darwin Rodrigo Zottola - Ing. en Computación 16
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
Darwin Rodrigo Zottola - Ing. en Computación 17
18. BACK END - CAPAS
Darwin Rodrigo Zottola - Ing. en Computación 18
19. 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 Computación 19
20. BACK END - CAPAS
Darwin Rodrigo Zottola - Ing. en Computación 20
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
Darwin Rodrigo Zottola - Ing. en Computación 21
22. BACK END - HIBERNATE
Darwin Rodrigo Zottola - Ing. en Computación 22
23. BACK END - CAPAS
Darwin Rodrigo Zottola - Ing. en Computación 23
26. View
El 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
Controller
El 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.
Model
El 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
Darwin Rodrigo Zottola - Ing. en Computación 26
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
Darwin Rodrigo Zottola - Ing. en Computación 27
29. 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 cliente
36. Continuara…
PREGUNTAS
Brainiac for Sharing–
APE Valley Proyect
Zottola Pareja Darwin Rodrigo
Ing. en Computación
drzottolapareja@gmail.com
Darwin Rodrigo Zottola - Ing. en Computación 36