Post on 02-Dec-2015
description
1Darwin Rodrigo Zottola - Ing. en Computación - 2013
1er Seminario Ape Valley Proyect - 2013
INTRODUCCIÓN A APLICACIONES WEB
EN JAVA
1ra Parte
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
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
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
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
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).
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
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
9
JAVA EE
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
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
Darwin Rodrigo Zottola - Ing. en Computación
12
IDE’S : ECLIPSE NETBEANS JDEVELOPER
SERVIDORES DE APLICACIONES-Webologic(Oracle)-Tomcat-Galssfish
TECNOLOGÍAS
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
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
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
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
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
Darwin Rodrigo Zottola - Ing. en Computación
18
BACK END - CAPAS
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
Darwin Rodrigo Zottola - Ing. en Computación
20
BACK END - CAPAS
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
Darwin Rodrigo Zottola - Ing. en Computación
22
BACK END - HIBERNATE
Darwin Rodrigo Zottola - Ing. en Computación
23
BACK END - CAPAS
Darwin Rodrigo Zottola - Ing. en Computación
24
FRONT END
Darwin Rodrigo Zottola - Ing. en Computación
25
FRONT END
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
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
ARQUITECTURA DE CONTENEDOR WEB
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
CICLO DE VIDA DE UN SERVLET
Darwin Rodrigo Zottola - Ing. en Computación
31
APLICACIÓN WEB EN JAVA(MVC- STRUT)
Darwin Rodrigo Zottola - Ing. en Computación
32
TECNOLOGIAS
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
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
Darwin Rodrigo Zottola - Ing. en Computación
35
SPRING
Darwin Rodrigo Zottola - Ing. en Computación
36
Continuara…
PREGUNTAS
Brainiac for Sharing– APE Valley Proyect
Zottola Pareja Darwin RodrigoIng. en Computación
drzottolapareja@gmail.com
Darwin Rodrigo Zottola - Ing. en Computación
37
http://www.slideshare.net/fernando_jmt/desarrollo-de-aplicaciones-empresariales-con-java-ee
http://holamundojava.blogspot.com/http://
ccia.ei.uvigo.es/docencia/SCS/1112/transparencias/Tema5-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
LINKS DE REFERENCIA