Sie sind auf Seite 1von 22

Aplicaciones Multi Nivel

Diana Lorena Velandia Vanegas


dlvelandia@misena.edu.co
Estilo Arquitectónico Multinivel
Es un estilo arquitectónico donde se busca la separación en
niveles de los diferentes componentes de una aplicación
empresarial.

Algunos niveles:
– Presentación
– Lógica de negocio
– Acceso a datos
– Integración
Un Nivel
* Todo en una dispositivo de hardware.
* Estilo servidor con terminales brutas

Terminal

Servidor

Terminal
Dos Niveles (Cliente / Servidor)
* Un servidor con servicio de persistencia y lógica de negocio.
* Estaciones de trabajo con capacidad de procesamiento

Estación
de Trabajo

Servidor

Estación
de Trabajo
Tres Niveles (Multinivel)

Estación
de Trabajo
Servidor
Servidor de
de Base
Aplicaciones
de Datos
Estación
de Trabajo
Arquitectura a N-niveles
Arquitectura de las Aplicaciones Web
La arquitectura de las aplicaciones Web suelen presentar un esquema
de tres niveles:
• El primer nivel consiste en la capa de presentación que incluye no
sólo el navegador, sino también el servidor web que es el
responsable de presentar los datos un formato adecuado.
• El segundo nivel está referido habitualmente a algún tipo de
programa o script.
• Finalmente, el tercer nivel proporciona al segundo los datos
necesarios para su ejecución. Una aplicación Web típica recogerá
datos del usuario (primer nivel), los enviará al servidor, que
ejecutará un programa (segundo y tercer nivel) y cuyo resultado
será formateado y presentado al usuario en el navegador (primer
nivel otra vez).
Arquitectura de las Aplicaciones Web

Cliente
Vista
Lógica DAO - Data
Access Object
Modelo
JPA

• Java Persistence API (JPA) proporciona un estándar para gestionar


datos relacionales en aplicaciones Java SE o Java EE, de forma que
además se simplifique el desarrollo de la persistencia de datos.
JPA
• En su definición, ha combinado ideas y conceptos de los principales
frameworks de persistencia, como Hibernate, Toplink y JDO, y de
las versiones anteriores de EJB. Todos estos cuentan actualmente
con una implementación JPA.
• Mapeo Objeto-Relacional (ORM, por sus siglas en inglés). Java
tiene una especificación llamada JPA (Java Persistence API) que
permite realizar este mapeo.
• JPA indica el mecanismo necesario para llevar a cabo el mapeo.
Existen básicamente cuatro implementaciones de JPA, a saber:
Hibernate, EclipseLink, OpenJPA y EclipseLink. El elegir una u
otra implementación depende únicamente del rendimiento, pues
gracias a JPA podemos trabajar con cualquiera de estas
implementaciones y cambiar entre ellas de manera transparente para
nosotros.
JPA

• El mapeo objeto-relacional se realiza a través de las llamadas clases


entidad, que son POJO’s que tienen una estructura especial.
Un POJO (Plain Old Java Object) es un objeto de una clase simple,
que no implementa raras interfaces y que puede ser escrita de la
manera convencional. Los POJO’s fueron la respuesta a la
tendencia que había de obligar a los programadores a crear clases
que implementaran interfaces (como en EJB) (veremos más
adelante).
JPA

• El mapeo objeto-relacional se realiza a través de las llamadas clases


entidad, que son POJO’s que tienen una estructura especial.
Un POJO (Plain Old Java Object) es un objeto de una clase simple,
que no implementa raras interfaces y que puede ser escrita de la
manera convencional. Los POJO’s fueron la respuesta a la
tendencia que había de obligar a los programadores a crear clases
que implementaran interfaces (como en EJB) (veremos más
adelante).
• El asistente se ocupa de crear las clases entidad capaces de realizar
el mapeo objeto-relacional en nuestra base de datos por nosotros.
JPA • La unidad de persistencia se almacena en un
archivo llamado persistence.xml y es la
responsable de que podamos cambiar de
implementación JPA e incluso de SGBD sin que
toquemos el código de nuestra aplicación.
Ejemplo:
PERSISTENCIA
Persistence.xml

crea

PersistenceUnit configura EntityManagerFactory

crea crea

Persistence
gestiona EntityManager
Context
EntityManagerFactory
Un EntityManagerFactory es único y es con el que nosotros
gestionamos todas las entidades.
Si tenemos varias conexiones a base de datos deberemos definir
un nuevo concepto que nos permite clarificar que tenemos dos
EntityManagerFactories distintos. Este concepto es el que se
conoce como PersistenceUnit. Cada PersistenceUnit tiene
asociado un EntityManagerFactory diferente que gestiona un
conjunto de entidades distinto.

entity
Entity Manager Persistence
Persistence.xml
Factory Unit A

Source
Data
EntityManager
El método createEntityManagerFactory toma el nombre de la unidad
de persistencia, la crea y devuelve un objeto EntityManagerFactory,
que es utilizado para crear objetos EntityManager. Los objetos
EntityManager tienen métodos que permiten realizar consultas,
persistir, actualizar y eliminar objetos en nuestra base de datos.
(Demostración Netbeans)
Entity
Manager
Persistencia de Datos
¿Qué es la Persistencia?
Si la aplicación está diseñada con orientación a objetos, la
persistencia se logra por la instanciación del objeto o
almacenamiento en una base de datos. Las bases de datos más
populares hoy en día son relacionales.

Una capa de persistencia encapsula el comportamiento necesario


para mantener los objetos. O sea: leer, escribir y borrar objetos en el
almacenamiento persistente (base de datos) o lo que se ha llamado
procesos CRUD (Create, Retrieve, Update, Delete). La persistencia
de la información es la parte más crítica en una aplicación de
software.
Persistencia de Datos
Uso del Patrón DAO
• El patrón CRUD, reconocido como el patrón más importante del
acceso a datos indica que cada objeto debe ser creado en base de
datos para que sea persistente. Para esto es necesario asegurar que
existen operaciones que permiten a la capa inferior (de acceso a
datos) leerlo, actualizarlo o simplemente borrarlo.
• Mediante la implementación de DAO's pueden proporcionarse las
operaciones CRUD necesarias para cada aplicación. No es
obligatorio que cada DAO implemente todas las operaciones
CRUD (puede no ser necesario en la lógica funcional del sistema).
Por lo tanto, se recomienda crear un DAO distinto por cada objeto
de negocio en el sistema.
Enterprise JavaBeans
Los Enterprise JavaBeans (también conocidos por sus siglas EJB)
son una de las API que forman parte del estándar de construcción de
aplicaciones empresariales J2EE (ahora JEE).

• EJB de Entidad (Entity EJBs): su objetivo es encapsular los


objetos del lado del servidor que almacena los datos. Los EJB de
entidad presentan la característica fundamental de la persistencia:
• Persistencia gestionada por el contenedor (CMP): el contenedor se
encarga de almacenar y recuperar los datos del objeto de entidad
mediante el mapeo o vinculación de las columnas de una tabla de
la base de datos con los atributos del objeto.
Enterprise JavaBeans
• Persistencia gestionada por el bean (BMP): el propio objeto
entidad se encarga, mediante una base de datos u otro mecanismo, de
almacenar y recuperar los datos a los que se refiere, por lo cual la
responsabilidad de implementar los mecanismos de persistencia es
del programador.
Para nuestro caso tendremos un paquete de persistencia que se
encargará de administrar los procesos CRUD dentro de la base de datos,
por cada clase que tenemos del modelo. Cada clase tendrá una interfaz
con la declaración de los métodos necesarios y con su respectiva
implemetación. (Demostración en Netbeans)
JPQL ((Java Persistence Query Language)
Para realizar una consulta se utiliza el lenguaje JPQL, que es similar
a SQL, pero trabaja con objetos y sus propiedades. Por ejemplo:

Query consulta = manager.createQuery (“SELECT


c.companyName FROM Customers c”);

Vemos que la consulta utiliza una sintaxis orientada a objetos. Como


la propiedad companyName de Customers es de tipo String, al
ejecutar la consulta nos dará como resultado una lista de objetos
String. La recuperamos de la siguiente manera:

List<String> resultados = consulta.getResultList();

http://docs.oracle.com/html/E24396_01/ejb3_langref.html
JPQL ((Java Persistence Query Language)
JPQL es integrado a través de implementaciones de la interface
Query. Dichas implementaciones se obtienen a través de
EntityManager mediante diversos métodos.

Los tres mas típicamente usados son:


createQuery(String jpql)
createNamedQuery(String name)
createNativeQuery(String sql)

EJERCICIO
Crear persistencia Proyecto DEMO

http://docs.oracle.com/html/E24396_01/ejb3_langref.html

Das könnte Ihnen auch gefallen