Capas lógicas de aplicación web

http://www.dosideas.com/cursos/mod/resource/view.php?id=10
Arquitectura de 3 capas
Las aplicaciones Java EE deben seguir una arquitectura de 3 capas (también conocida como Modelo 2).

  • Capa de presentación
  • Capa de lógica de negocio
  • Capa de acceso a datos

http://code.google.com/p/uda/wiki/Arquitectura
La arquitectura conceptual definida debe facilitar el proceso de desarrollo de aplicaciones web, aumentando al máximo la productividad de los desarrolladores. Tratamos además de reutilizar, de mantener las cosas simples, no limitar la evolución e independizar la solución de las tecnologías en la medida de lo posible. En definitiva estamos describiendo un sistema basado en componentes reutilizables que unidos a generadores de código nos permitan producir software de calidad con poco esfuerzo.

Fomentar la Productividad del desarrollador, reutilización de código, rendimiento, escalabilidad, fiabilidad, disponibilidad, extensibilidad, mantenibilidad, fácil manejo, y seguridad.
Utilizaremos estándares en forma de patrones de diseño (facade, value object, etc.)

Se han establecido capas lógicas con el objeto de dividir la complejidad de la arquitectura en módulos más manejables.

(BUENO) Arquitectura de N-Capas y N-Niveles
http://jtentor.com.ar/post/Arquitectura-de-N-Capas-y-N-Niveles.aspx

La arquitectura en capas es un estilo de programación donde el objetivo principal es separar los diferentes aspectos del desarrollo, tales como las cuestiones de presentación, lógica de negocio y mecanismos de almacenamiento.

Nivel de aplicación (capas de presentación y lógica de negocio) y Nivel de datos (capa de datos)
Se debe diferenciar entre “nivel” y “capa” porque no significan lo mismo. El término capa se utiliza para referenciar a las distintas “partes” en que una aplicación se dividide desde un punto de vista lógico; mientras que “nivel” corresponde a la forma física en que se organiza una aplicación.

La necesidad de contar con porciones de la aplicación que se puedan “intercambiar” sin tener que modificar el resto de la aplicación es lo que impulsa el desarrollo en capas.

Las capas inferiores brindan servicios a las capas superiores (independientemente del nivel en que se encuentren).
Desde la filosofía de arquitectura en capas, esto significa que la capa de lógica de negocios presenta una “interfaz” para brindar servicios a la capa de presentación.
La clave del desarrollo en capas es que una capa solamente debe utilizar lo que la “interfaz” de la o las capas inferiores le brindan, de este modo se puden intercambiar las capas respetando la “interfaz”, que viene a ser como un “contrato entre capas”.

3 capas
La nueva capa, se denomina Capa de Acceso a Datos (o Capa de Persistencia) que no es lo mismo que Capa de Datos.
La capa de acceso a datos es una porción de código que justamente realiza el acceso a los datos. De esta manera cuando es necesario cambiar el motor de base de datos, solamente tendremos que corregir esa capa.
Mientras que la capa de datos (en el nivel de datos) es donde están los datos y se corresponde directamente con la definición de esquemas, tablas, vistas, procedimientos almacenadaos y todo lo que se pueda o deba poner en un motor de base de datos.

Capa de entidades
Los desarrolladores tienen un problema. Resulta que los componentes de la capa de lógica de negocios necesitan referenciar a instancias de las “clases del dominio” (las que representan las entidades del negocio) y los componentes de la capa de acceso a datos también tienen que referenciarlas para poder “rellenar” tales instancias con los datos que obtienen de las capas inferiores.
Los componentes no pueden caer en un ciclo de referencias recursivo y por eso se crea la capa de Entidades que corresponde al dominio de la aplicación.

En esta capa se encuentra la declaración de las entidades de la aplicación, de manera que se pueden referenciar desde otras capas sin entrar en ciclos recursivos de compilación.

Además este esquema permite una total independencia entre la lógica de negocios (Business Model) y las entidades (Domain Model). Por supuesto que ambas partes están relacionadas por los casos de uso y otros requerimientos de la aplicación.

Por otro lado, este esquema facilita la incorporación, en la capa de acceso a datos, de componentes tipo ORM – Objet / Relational Mapping que permiten “mapear” (representar) objetos en un esquema relacional. Esto funciona bién dado que las bases de datos más  utilizadas (por su mejor performance) son las bases de datos relacionales y no las orientadas a objetos (al menos por ahora).

Servicios Web publicados
Las organizaciones requiere que las aplicaciones de software de las distintas organizaciones interactuen unas con otras. El problema es que algunas de ellas no se ejecutan en la misma plataforma o están desarrolladas con marcos de trabajo diferentes. La solución fue presentada como SOA – Service Oriented Architecture, que brinda entre otras cosas una forma estandard de publicar y utilizar servicios, conocidos comunmente como servicios web (web services).

¿Los servicios publicados forman parte de la capa de lógica de negocio?
Se trata de la lógica de la transacción que involucra dos organizaciones diferentes (aplicaciones diferentes), consecuentemente debe existir un mecanismo que permita confirmar la realización de todos los “pasos” que cada una de las organizaciones requiere; esto normalmente se conoce como WorkFlow.
Surje otra capa más, la capa de Servicios Publicados que pueden o no incluir componentes de WorkFlow pero inevitablemente deben estar por arriba de la capa de lógica de negocios.

capasNiveles

Figura Nro. 1: Arquitectura de capas y niveles (Referido de http://jtentor.com.ar/post/Arquitectura-de-N-Capas-y-N-Niveles.aspx)

—————————————————————————————–

Las características principales de Java EE son:
•Java EE está construida sobre Java SE (no lo reemplaza)
•Se agregan servicios necesarios en aplicaciones empresariales
•Facilita el desarrollo de aplicaciones multicapa ◦presentation layer
◦obusiness rules layer
◦data access layer

Plataforma para desarrollo de Aplicaciones Empresariales
• Arquitectura Cliente/Servidor
– Modelo Lógico: capas (layers)
• Gestor de Presentación (presentation manager): Muestra la interface de usuario.
• Lógica de Presentación (presentation logic): Establece que se debe mostrar al usuario.
• Lógica de la Aplicación (appplication logic): Funcionalidad de la aplicación.
• Lógica del Negocio (business logic): Funcionalidad de la empresa, común para todas las aplicaciones.
• Lógica de los Datos (data logic): Definición lógica de los datos (tablas, vistas, tipos de datos, claves, etc.)
• Gestor de Datos (data manager): Encargada de escribir y acceder a la base de datos.

http://www.uhu.es/josel_alvarez/NvasTecnProg/recursos/tTema1.pdf

Construcción por Capas de Aplicaciones Java
http://www.juntadeandalucia.es/servicios/madeja/contenido/subsistemas/desarrollo/capa-negocio-aplicaciones-java

Tipos de aplicaciones

http://www.dosideas.com/cursos/mod/resource/view.php?id=10

Ejemplo de aplicacion Java EE 6. Tienda Web con JPA+EJB+JSF

http://ccia.ei.uvigo.es/docencia/SCS/1112/jee/ejemplo-JEE-1112.pdf

La capa de Negocio de la Arquitectura Java EE

http://ocw.uc3m.es/ingenieria-telematica/software-de-comunicaciones/transparencias/6_nivelnegocio.pdf

Arquitectura y Diseño de Aplicaciones Java EE

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s