Vous êtes sur la page 1sur 13

Taller Investigacion

Aplicaciones Distribuidas
Paralelo: 5961
Integrantes:

Andres Arias
Nicolas Palau
Jordan Ordoez
Leonela Moscoso

Java Enterprise Edition


Java EE o Java EE es una empresa de computacin utilizado la
plataforma desarrollada en el marco del Java Community Process .La
plataforma proporciona una API de medio ambiente y de ejecucin para
desarrollar y ejecutar software de la empresa , incluyendo la red y los
servicios web , y otra a gran escala, de varios niveles, escalables, fiables
y aplicaciones de red seguras. Java EE ampla la plataforma Java,
Standard Edition (Java SE), que proporciona una API para el mapeo
objeto-relacional , distribuidos y arquitecturas de mltiples niveles , y
servicios web.
Los componentes se despliegan y ejecutan en contenedores
especializados
Ejemplos de contenedores:
Contenedor de applets en un navegador Web
Contenedor Web Tomcat
Contenedor de EJBs
Los componentes se despliegan y ejecutan
especializados.
Ejemplos de contenedores:
Contenedor de applets en un navegador Web
Contenedor Web Tomcat
Contenedor de EJBs

en

contenedores

Un componente se caracteriza por:


Ser una unidad de despliegue independiente
Encapsula sus caractersticas constituyentes respecto a su
entorno
Las terceras partes no pueden acceder a los detalles de
construccin del componente
Ser una unidad de composicin
Con componentes posiblemente desarrollados por otros
Debe ser suficientemente autocontenido
No se implanta

Contenedores

Un contenedor es un proceso donde se ejecutan los componentes

Gestiona los

componentes de la aplicacin
Ciclo de vida
Proporciona acceso a servicios de la plataforma
Seguridad, transacciones, persistencia, conectividad, etc.

Arquitectura de un contenedor

Contenedor de applets

Arquitectura de un contenedor

Contenedor Web

Enterprise beans (EJBs)

Pueden procesar datos recibidos del lado cliente y enviarlos al nivel de


sistema de informacin para su almacenamiento
Pueden recuperar datos del sistema de informacin, procesarlos y
enviarlos al cliente

Tipos de EJBs
Bean de sesin
Una conversacin con un cliente

Bean dirigido por mensajes


Permite que un componente de negocio pueda recibir
mensajes asncronamente, normalmente con el Java Message
Service (JMS)

Contenedor de EJBs

JPA
Qu es JPA?

Java Persistence API es un conjunto de clases y mtodos

que

persistentemente almacenar la gran cantidad de datos a una base de


datos que es proporcionada por Oracle Corporation.
El Java Persistence API o (JPA) es una especificacin de Sun Microsystems
para la persistencia de objetos Java a cualquier base de datos relacional.
Esta API fue desarrollada para la plataforma JEE e incluida en el estndar
de EJB 3.0, formando parte de la Java Specification Request JSR 220.
Pero para entender JPA, tendremos que tener claro el concepto
"persistencia"
La persistencia o el almacenamiento permanente, es una de las
necesidades bsicas de cualquier sistema de informacin de cualquier
tipo. En primer lugar, se propuso que el programa tratara los datos
haciendo consultas directas a la base de datos. Despus, se propuso
trabajar con objetos, pero las bases de datos tradicionales no admiten
esta opcin.

Existen 6 tipos de interfaces de las que se compone JPA son:

javax.persistence.Persistence:

Contiene

mtodos

estticos de ayuda para obtener una instancia de Entity Manager


Factory

de

una

implementacin

de

forma
JPA.

independiente
Una

clase

de

al

vendedor

inicializacin

de

la

que

va

proporcionar un mtodo esttico para la creacin de una Entity


Manager Factory.

javax.persistence.EntityManagerFactory:

La

clase

javax.persistence.Entity.Manager.Factory nos ayuda a crear objetos


de EntityManager utilizando el patrn de diseo del Factory. Este
objeto

en

tiempo

de

ejecucin

representa

una

unidad

de

persistencia particular. Generalmente va a ser manejado como un


singleton y proporciona mtodos para la creacin de instancias
EntityManager.

javax.persistence.EntityManagerFactory:

La

clase

javax.persistence.Entity es una anotacin Java que se coloca a nivel


de clases Java serializables y que cada objeto de una de estas
clases anotadas representa un registro de una base de datos.

javax.persistence.EntityManager: Es

la interfaz principal

de JPA utilizada para la persistencia de las aplicaciones. Cada Entity


Manager puede realizar operaciones CRUD (Create, Read, Update,
Delete) sobre un conjunto de objetos persistentes. Es un objeto
nico, no compartido que representa una unidad de trabajo
particular para el acceso a datos. Proporciona mtodos para
gestionar el ciclo de vida de las instancias entidad y para crear
instancias Query.

javax.persistence.Query:
La interface javax.persistence.Query est implementada por cada
vendedor de JPA para encontrar objetos persistentes manejando
cierto criterio de bsqueda. JPA estandariza el soporte para
consultas utilizando Java Persistence Query Language (JPQL) y
Structured Query Language (SQL). Podemos obtener una instancia
de Query desde una instancia de un Entity Manager.

javax.persistence.EntityTransaction:

Cada instancia de

Entity Manager tiene una relacin de uno a uno con una instancia de
javax.persistence. EntityTransaction, permite operaciones sobre
datos persistentes de manera que agrupados formen una unidad de
trabajo transaccional, en el que todo el grupo sincroniza su estado
de persistencia en la base de datos o todos fallan en el intento, en
caso de fallo, la base de datos quedar con su estado original.
Maneja el concepto de todos o ninguno para mantener la integridad
de los datos.

Relaciones mltiples de la entidad JPA

Hay cuatro tipo de relaciones: uno a uno, uno a muchos, muchos a uno, y
muchos a muchos.

Uno a uno: Cada entidad se relaciona con una sola instancia de


otra entidad. Las relaciones uno a uno utilizan anotaciones de la
persistencia de java "OneToOne".

Uno a muchos: Una entidad, puede estar relacionada con varias


instancias de otras entidades. Las relaciones uno a muchos utilizan
anotaciones de la persistencia de java "OneToMany" en los campos
o propiedades persistentes.

Muchos a uno: Mltiples instancias de una entidad pueden estar


relacionadas

con

una

sola

instancia

de

otra

entidad.

Esta

multiplicidad es lo contrario a la relacin uno a muchos. Las


relaciones muchos a uno utilizan anotaciones de la persistencia de
java "ManyToOne" en los campos o propiedades persistentes.

Muchos a muchos: En este caso varias instancias de una entidad


pueden

relacionarse

con

mltiples

instancias

de

otras

entidades.Este tipo de relacin utiliza anotaciones de la persistencia


de java "ManyToMany" en los campos o propiedades persistentes.

JSF
JavaServer Faces (JSF) es una tecnologa y framework para aplicaciones
Java basadas en web que simplifica el desarrollo de interfaces de usuario
en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la
tecnologa que permite hacer el despliegue de las pginas, pero tambin
se puede acomodar a otras tecnologas como XUL (acrnimo de XMLbased User-interface Language, lenguaje basado en XML para la interfaz
de usuario).
Nos permite desarrollar rpidamente aplicaciones de negocio dinmicas
en las que toda la lgica de negocio se implementa en java, o es llamada
desde java, creando pginas para las vistas muy sencillas (salvo que
introduzcamos mucha maquetacin HTML o Javascript)

Ventajas:
El cdigo JSF con el que creamos las vistas (etiquetas jsp) es
muy parecido al HTML estndar. Lo pueden utilizar fcilmente
desarrolladores y diseadores web.
JSF se integra dentro de la pgina JSP y se encarga de la
recogida y generacin de los valores de los elementos de la pgina
JSF resuelve validaciones, conversiones, mensajes de error e
internacionalizacin (i18n)
JSF permite introducir javascript en la pgina, para acelerar la
respuesta de la interfaz en el cliente (navegador del usuario).
JSF es extensible, por lo que se pueden desarrollar nuevos
componentes a medida, Tambin se puede modificar el
comportamiento del framework mediante APIs que controlan su
funcionamiento.

Desventajas:
Utilizar el alicate para clavar. JSF es una herramienta y como
tal tiene una forma de uso. Si nos empeamos en seguir
desarrollando las pginas como siempre, intentando adaptar JSF al
modo al que habitualmente desarrollamos en vez de adaptarnos a
JSF complicaremos el desarrollo
Abuso del javascript. JSF permite utilizar javascipt para hacer
ms rpida una pgina html, evitando peticiones al servidor. Sin
embargo la introduccin de javascript en la pgina complica y
alarga los desarrollos con JSF, y en general con jsp. La capa
javascript aade etapas adicionales a la aplicacin, que hace ms
difcil su depurado. Un consejo: la pgina debera poderse ejecutar
sin prdida de funcionalidad (slo de rendimiento si se desactiva el
javascript).
La maquetacin compleja tambin complica el desarrollo ya
que obliga a utilizar muchas etiquetas y atributos, especialmente en
los datatables. Si la maquetacin de nuestras pginas es compleja
deberamos pensar en crear componentes JSF a medida que
simplifiquen dicho trabajo.

Cmo funciona JSF

Normalmente las aplicaciones web se construyen como un conjunto de


pantallas con las que va interactuando el usuario. Estas pantallas
contienen textos, botones, imgenes, tablas y elementos de seleccin que
el usuario modifica. Todos estos elementos estarn agrupados en
formularios HTML, que es la manera en que las pginas web envan la
informacin introducida por el usuario al servidor. La principal funcin del
controlador JSF es asociar a las pantallas, clases java que recogen la
informacin introducida y que disponen de mtodos que responden a las
acciones del usuario. JSF nos resuelve de manera muy sencilla y
automtica muchas tareas:

Mostrar datos al usuario en cajas de texto y tablas.


Recoger los datos introducidos por el usuario en los

campos del formulario.

Controlar el estado de los controles del formulario segn


el estado de la aplicacin, activando, ocultando o aadiendo y
eliminando controles y dems elementos

Realizando validaciones y conversiones de los datos


introducidos por el usuario

Rellenando campos, listas, combos y otros elementos a


medida que el usuario va interactuando con la pantalla

Controlando los eventos que ocurren en los controles


(pulsaciones de teclas, botones y movimientos del ratn).

Las aplicaciones JSF estn formadas por los siguientes elementos


principales:
Pginas JSP que incluyen los formularios JSF. Estas pginas

generarn las vistas de la aplicacin


Beans java que se conectan con los formularios JSF
Clases java para la lgica de negocio y utilidades.

Ficheros de configuracin, componentes a medidad y otros

elementos del framework.


Resto de recursos de la aplicacin web: recursos esttios,
javascript y otros elementos.6

JavaServer Pages Technology (JSP)


La tecnologa JavaServer Pages (JSP) permite crear fcilmente el
contenido web que tiene ambos componentes estticos y dinmicos. La
tecnologa JSP hace disponibles todas las capacidades dinmicas de la
tecnologa de Java Servlets, pero proporciona un enfoque ms natural
para la creacin de contenido esttico. Las principales caractersticas de la
tecnologa JSP son las siguientes:
Un lenguaje para el desarrollo de pginas JSP, que son
documentos basados en texto que describen cmo procesar una
solicitud y construir una respuesta.
Un lenguaje de expresin para acceder a objetos del lado del
servidor.
Mecanismos para definir extensiones al lenguaje JSP.
La tecnologa JSP tambin contiene una API que es utilizado por los
desarrolladores de contenedores web.

Qu es una pgina JSP?


Es un documento de texto que contiene dos tipos de textos: datos
estticos, que se pueden expresar en cualquier formato basado en texto
(como HTML, SVG, WML y XML), y elementos JSP, que la construccin de
contenido dinmico.

Ejemplo de una simple pgina JSP:

Frameworks JNDI
La Interfaz de Nombrado y Directorio Java (Java Naming and Directory
Interface) es una Interfaz de Programacin de Aplicaciones (API) de Java
para servicios de directorio. Permite a los clientes descubrir y buscar
objetos y datos a travs de un nombre. Como todas las APIs de Java que
hacen de interfaz con sistemas host, es independiente de la
implementacin subyacente.
Adicionalmente, especifica una interfaz de proveedor de servicio (SPI) que
permite que las implementaciones del servicio de directorio sean
integradas en el framework. Las implementaciones pueden hacer uso de
un servidor, un fichero, o una base de datos; la eleccin depende del
desarrollador.
La API JNDI es usada por Java RMI y las APIs de Java EE para buscar
objetos en una red. Jini tiene su propio servicio de bsqueda y no usa la
API JNDI.
La API suministra:

un mecanismo para asociar(bind) un objeto a un nombre;


una interfaz de bsqueda de directorio que permite consultas

generales;
una interfaz de eventos que permite a los clientes determinar
cundo las entradas de directorio han sido modificadas;

extensiones LDAP para soportar las capacidades adicionales


de un servicio LDAP.

La porcin SPI permite el soporte de prcticamente cualquier tipo de


servicio de directorio o nombrado incluyendo:

LDAP
DNS
Network Information Service
RMI
servicio de nombres CORBA
Sistema de ficheros

Referencias:
- http://web.archive.org/web/20070610035756/http://atenea.u
nicauca.edu.co/~dabravo/jndi_esp_1/index.htm
- https://es.wikipedia.org/wiki/JNDI
- https://www.fdi.ucm.es/profesor/jpavon/web/41-J2EE.pdf
- http://www.coplec.org/?q=book/export/html/240
- http://www.tutorialspoint.com/es/jpa/jpa_introduction.htm
- http://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html
- http://www.tutorialspoint.com/jsf/
- https://www.adictosaltrabajo.com/tutoriales/introduccion-jsfjava/
- http://www.desarrolloweb.com/articulos/2380.php
- http://programacion.net/articulo/primera_aplicacion_con_jsf_
java_server_faces_350
- http://docs.oracle.com/javaee/5/tutorial/doc/bnagx.html
- http://docs.oracle.com/javaee/5/tutorial/doc/bnagy.html