Vous êtes sur la page 1sur 35

Introducción a aplicaciones Web en JAVA

D. Rodrigo Zottola Pareja - Ing. en Computación


2014
Aplicación web

 Una aplicación web es cualquier aplicación


computacional que es accedida vía web mediante una
red como internet o una intranet.

 En general son programas informáticos que son


ejecutados en el entorno del navegador (Browser)

 Estos programas están codificados con algún lenguaje de


programación soportado por el navegador
Características

Mantenibilidad
Extensibilidad
Transaccional.
Escalables.
Disponibilidad
Seguridad y confiabilidad
Integración de las aplicaciones y de los datos
Portabilidad
Arquitecturas

 Arquitectura cliente-servidor (años 80/90) de dos


capas (arquitectura de nivel 2): del lado del cliente
se incluía tanto la lógica del negocio como la
lógica de la presentación; del lado del servidor se
incluían los datos alojados en bases o almacenes
de datos
Computador

Computador

SERVIDOR
DE
ARCHIVOS

Computador
Arquitecturas
La arquitectura cliente-servidor de tres capas
(arquitectura de nivel 3) separa la lógica de
presentación (que permanece del lado del cliente)
de la lógica del negocio (servidor de negocio),
permaneciendo los datos alojados en bases de
datos del servidor.
Cl i e n t e 1

S ERVI D O R DBMS
Y
DATOS

Cl i e n t e 2

Ca p a In t e rm e d i a
MONITOR
TP

S ERVI D O R DBMS
Y
DATOS
So l i ci tud de Servi ci o

Cl i e n t e N
Po o l de Co nexi o nes a
B.D
Base de Datos Servi ci o s y l ó gi c a de
Apli c a c i ó n
Cl i e n t e s F R O N T - E N D
Val id aci ó n y Fo rmate
de Datos
JAVA Web - Que es J2EE?

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)

Define estándares que son implementados por distintos


proveedores y fabricantes, no fuerza a emplear ningún producto
específico.

 Ofrece un framework para el desarrollo de aplicaciones


distribuidas multicapa (3-tier, n-tier) basadas en Web
El enfoque de J2EE

 J2EE soporta aplicaciones distribuidas que toma ventajas de las


tecnologías existentes y en desarrollo simplificando el proceso a
través de un modelo de aplicaciones basados en componentes.

Las aplicaciones desplegadas con la tecnología


J2EE:

Están estandarizadas
Siguen unas guías de especificación estrictas
Están escritas en Java
Se pueden desplegar en cualquier servidor de aplicaciones
El enfoque de J2EE

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 aplicación.

JAVA EE Clients

Web Clients
Application Clients
Applets
The JavaBeans ComponentArchitecture
Java EE Server Communications
Contenedores en JAVA EE
 Los contenedores proveen un entorno de ejecucion para
componentes JAVA.

 También brindan los servicios de seguridad, transacciones,


administración 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
J2EE - Capas

D. Rodrigo Zottola Pareja - Ing. en


Computación
Servidores de Aplicaciones

 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

Tomcat (proyecto de Apache):http://tomcat.apache.org

JBoss:http://www.jboss.com

GlassFish:http://glassfish.dev.java.net

 Geronimo:http://geronimo.apache.org
Tecnologías

IDE’S :(Integrated Develoment Enviroment)

- Eclipe
- Netbeans
- Jdeveloper
Patrones de Diseños 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 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.
Back End /Front – End
 Una aplicación usualmente 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 ,


asicomo 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 End - Capas

D. Rodrigo Zottola Pareja - Ing. en


Computación
Back End - Core

 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
ANSI sql
Back End Capas

D. Rodrigo Zottola Pareja - Ing. en


Computación
Capa de Datos - Persistencia
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.
Capa de Datos - Persistencia
JPA HIBERNATE (JAVA PersistenceAPI) : 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 - Hibernate

D. Rodrigo Zottola Pareja - Ing. en


Computación
Hibernate - Ejemplo

D. Rodrigo Zottola Pareja - Ing. en


Computación
Front End - Intro

D. Rodrigo Zottola Pareja - Ing. en


Computación
Java Servlets

 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 solicitud-respuesta (request - response)

 Es la base de todos los frameworks Web.

 Define clases esecificas para HTTP.


Java Servlets
 Un Servlet es una clase Java que extiende de
javax.servlet.http.HttpServlet y que sobreescribe los métodos 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 ejecuciónpetición-respuesta.

 Los Servlets son una potente herramienta para la generación


de contenido dinámico en la Web.

 El Servlet Container es el componente encargado de la creación,


acceso y destrucción de los Servlets, controla su ciclo de vida.
Java Servlets

D. Rodrigo Zottola Pareja - Ing. en


Computación
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 consulta a Base de Datos, invocar a otras aplicaciones,calcular
directamente la respuesta, etc.
Dar formato a los resultados en un documento
Incluír 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
Java Server Pages - JSP
Un documento JSP, es una página dinámica de servidor Java.
Es un archivo de texto compuesto de :

1.Cabecera con importaciones y parametros.


2.Código cliente, normalmente HTML, XML y Javascript.
3.Código 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


ejecución.
Java Server Pages - JSP
Java Server Pages - JSP
Modelo MVC en JAVA

D. Rodrigo Zottola Pareja - Ing. en


Computación
Front End - MVC

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
Frameworks JAVA MVC

 STRUTS Y STRUTS2
http://struts.apache.org/

 SPRING MVC
www.springsource.org

 JAVA SERVER PAGES (JSF)


www.javaserverfaces.org

 OTROS FRAMEWORKS
GROOVY
http://groovy.codehaus.org/
Spring - Modulos

D. Rodrigo Zottola Pareja - Ing. en


Computación

Vous aimerez peut-être aussi