SlideShare una empresa de Scribd logo
1 de 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
 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
 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
 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
 „ 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
6
ARQUITECTURA DOS CAPAS
Computador
Computador
Computador
SERVIDOR
DE
ARCHIVOS
L.presentacion
L.Aplicación
Almacenamiento
L.Accesos Datos
L.Aplicación
Darwin Rodrigo Zottola - Ing. en Computación
Arquitectura Cliente Servidor (Tradicional).
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
 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
JAVA EE
Darwin Rodrigo Zottola - Ing. en Computación 9
 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
 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
 IDE’S :
 ECLIPSE
 NETBEANS
 JDEVELOPER
SERVIDORES DE APLICACIONES
-Webologic(Oracle)
-Tomcat
-Galssfish
TECNOLOGÍAS
Darwin Rodrigo Zottola - Ing. en Computación 12
 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
 ƒ 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
 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
 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
 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
BACK END - CAPAS
Darwin Rodrigo Zottola - Ing. en Computación 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 Computación 19
BACK END - CAPAS
Darwin Rodrigo Zottola - Ing. en Computación 20
 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
BACK END - HIBERNATE
Darwin Rodrigo Zottola - Ing. en Computación 22
BACK END - CAPAS
Darwin Rodrigo Zottola - Ing. en Computación 23
FRONT END
Darwin Rodrigo Zottola - Ing. en Computación 24
FRONT END
Darwin Rodrigo Zottola - Ing. en Computación 25
 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
 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
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 cliente
CICLO DE VIDA DE UN SERVLET
APLICACIÓN WEB EN JAVA(MVC- STRUT)
Darwin Rodrigo Zottola - Ing. en Computación 31
TECNOLOGIAS
Darwin Rodrigo Zottola - Ing. en Computación 32
 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 33
 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 34
SPRING
Darwin Rodrigo Zottola - Ing. en Computación 35
 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
 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/T
ema5-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
Darwin Rodrigo Zottola - Ing. en Computación 37
LINKS DE REFERENCIA

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Java ee 6
Java ee 6Java ee 6
Java ee 6
 
Sesion 01 - Introduccion a Net Framework
Sesion 01 - Introduccion a Net FrameworkSesion 01 - Introduccion a Net Framework
Sesion 01 - Introduccion a Net Framework
 
Modulo 1 java ee platform
Modulo 1   java ee platformModulo 1   java ee platform
Modulo 1 java ee platform
 
Introducción a Java EE
Introducción a Java EEIntroducción a Java EE
Introducción a Java EE
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Arquitectura e-sijad
Arquitectura e-sijadArquitectura e-sijad
Arquitectura e-sijad
 
Introducción JEE
Introducción JEEIntroducción JEE
Introducción JEE
 
J2ee
J2eeJ2ee
J2ee
 
Arquitectura tres capas, NET
Arquitectura tres capas, NETArquitectura tres capas, NET
Arquitectura tres capas, NET
 
spring
springspring
spring
 
Curso Ejb3
Curso Ejb3Curso Ejb3
Curso Ejb3
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET Framework
 
200405 - Aplicaciones Web
200405 - Aplicaciones Web200405 - Aplicaciones Web
200405 - Aplicaciones Web
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
U7 postgre sql
U7 postgre sqlU7 postgre sql
U7 postgre sql
 
Sercicios web
Sercicios webSercicios web
Sercicios web
 
Taller 4 - Teleinformatica
Taller 4 - TeleinformaticaTaller 4 - Teleinformatica
Taller 4 - Teleinformatica
 
Jdbc
JdbcJdbc
Jdbc
 
Visual studio.net
Visual studio.netVisual studio.net
Visual studio.net
 
Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0
 

Similar a Introdución a aplicaciones web en java

Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)josecuartas
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-javaGilberto Garcia Zavaleta
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Motor de persistencia nhibernate
Motor de persistencia nhibernateMotor de persistencia nhibernate
Motor de persistencia nhibernateDamian Palacios
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryjyoshimaryj
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)VirgCSan
 
CvTrafficCounter Video
CvTrafficCounter VideoCvTrafficCounter Video
CvTrafficCounter VideoPaul Arévalo
 
Disenio de aplicaciones en capas
Disenio de aplicaciones en capasDisenio de aplicaciones en capas
Disenio de aplicaciones en capasKevin Barja
 
[ES] Introduccion a ADF Framework
[ES] Introduccion a ADF Framework[ES] Introduccion a ADF Framework
[ES] Introduccion a ADF FrameworkEudris Cabrera
 
Unidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones webUnidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones webZacarias Marquez Cruz
 
JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1 JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1 César Pajares
 

Similar a Introdución a aplicaciones web en java (20)

Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
Programando en capas
Programando en capasProgramando en capas
Programando en capas
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
4 Jhs J Developer Adf
4  Jhs J Developer Adf4  Jhs J Developer Adf
4 Jhs J Developer Adf
 
Motor de persistencia nhibernate
Motor de persistencia nhibernateMotor de persistencia nhibernate
Motor de persistencia nhibernate
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryj
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)
 
CvTrafficCounter Video
CvTrafficCounter VideoCvTrafficCounter Video
CvTrafficCounter Video
 
Run 20 Track SQL Server
Run 20 Track SQL ServerRun 20 Track SQL Server
Run 20 Track SQL Server
 
Disenio de aplicaciones en capas
Disenio de aplicaciones en capasDisenio de aplicaciones en capas
Disenio de aplicaciones en capas
 
Charla
CharlaCharla
Charla
 
[ES] Introduccion a ADF Framework
[ES] Introduccion a ADF Framework[ES] Introduccion a ADF Framework
[ES] Introduccion a ADF Framework
 
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILASEQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILAS
 
Unidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones webUnidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones web
 
J2 ee
J2 eeJ2 ee
J2 ee
 
JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)
 
JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1 JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1
 

Introdución a aplicaciones web en java

  • 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
  • 6. 6 ARQUITECTURA DOS CAPAS Computador Computador Computador SERVIDOR DE ARCHIVOS L.presentacion L.Aplicación Almacenamiento L.Accesos Datos L.Aplicación Darwin Rodrigo Zottola - Ing. en Computación Arquitectura Cliente Servidor (Tradicional).
  • 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
  • 9. JAVA EE Darwin Rodrigo Zottola - Ing. en Computación 9
  • 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
  • 24. FRONT END Darwin Rodrigo Zottola - Ing. en Computación 24
  • 25. FRONT END Darwin Rodrigo Zottola - Ing. en Computación 25
  • 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
  • 30. CICLO DE VIDA DE UN SERVLET
  • 31. APLICACIÓN WEB EN JAVA(MVC- STRUT) Darwin Rodrigo Zottola - Ing. en Computación 31
  • 32. TECNOLOGIAS Darwin Rodrigo Zottola - Ing. en Computación 32
  • 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 33
  • 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 34
  • 35. SPRING Darwin Rodrigo Zottola - Ing. en Computación 35
  • 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
  • 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/T ema5-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 Darwin Rodrigo Zottola - Ing. en Computación 37 LINKS DE REFERENCIA