SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Arquitectura de
aplicaciones
Arquitectura en capas
API
dic-08 alb@uniovi.es 2
API
Layers y Tiers
Layer: capa arquitectónica de la
aplicación software
Presentación, lógica, persistencia
Tier: capa física de la arquitecturaTier: capa física de la arquitectura
de despliege del hardware
Máquinas: Servidor web, servidor de
aplicaciones, servidor de base de datos
Las “layers” se despliegan sobre las
“tiers”
dic-08 alb@uniovi.es 3
El código que se
ejecuta en el navegador
(AJAX, javascript) también
pertenece a la capa
de presentación
3 layers, 2 tiers
dic-08 alb@uniovi.es 4
de presentación
Conexiones remotas
(diversas tecnologías)
Conexiones
3 layers, 4 tiers
dic-08 alb@uniovi.es 5
Conexiones
locales
N tiers
dic-08 alb@uniovi.es 6
Arquitectura en capas
Las capas se comunican a
través de interfaces
Las implementaciones están
ocultas al exterior
Una factoría sirve unaUna factoría sirve una
implementación para cada
interfaz
La capa superior se comunica
con la inferior, no al revés
Las capas, hechas así, son
intercambiables
Y según como se hagan
reubicables
dic-08 alb@uniovi.es 7
Capa de presentación
Resuelve la interacción con el
usuario
Mostrar datos, formatearlos, ordenarlos
Solicitar datos, validarlosSolicitar datos, validarlos
Incluye algo de lógica (pero de
presentación)
Internacionalización
Informar de los errores lógicos y de
ejecución (errores internos)
dic-08 alb@uniovi.es 8
Capa de presentación
Controlar la navegación entre
pantallas
Algunas reglas de negocio pueden
ser responsabilidad de esta capaser responsabilidad de esta capa
Presentar estos datos así y los otros
asá…
Ocultar/deshabilitar determinado
dato/control si se da tal circunstancia…
dic-08 alb@uniovi.es 9
Capa de presentación
Puede estar dividida en subcapas
Parte en el servidor (p.e. servidor web)
Parte en el cliente (p.e. navegador,
AJAX)AJAX)
Patrones habituales:
MVC Struts Filter
Comando Struts Actions
(xxx.execute())
ServiceLocator o Factory desacopla
la implementación del servicio
dic-08 alb@uniovi.es 10
Acceso a Lógica:
ejemplo
dic-08 alb@uniovi.es 11
dic-08 alb@uniovi.es 12
Capa de Negocio:
Responsabilidades
Implementa procesos de negocio
identificados durante el análisis
funcional.
Control de acceso a los servicios deControl de acceso a los servicios de
negocio desde otras capas.
Publicación de los servicios de
negocio
Invocación de la capa de
persistencia.
Implementación de
Procesos de Negocio
Independientes de los aspectos de
presentación.
Contra ejemplo:
Informe de varias filas donde cada una de ellasInforme de varias filas donde cada una de ellas
deberá sombrearse de un color dependiendo de un
determinado umbral.Delegación 2003 2004 Crecimiento
Santander 1.090.004€ 1.234.000€ 13,21 %
Oviedo 1.245.330€ 1.300.320€ 4,41 %
Bilbao 1.004.545€ 975.034€ -2,93 %
Control de Acceso a
Servicios de Negocio
El control de acceso al servicio de negocio debe
hacerse en la capa de negocio, puesto que
podemos tener distintas capas de presentación.
¿Que perfil puede acceder a un determinado¿Que perfil puede acceder a un determinado
servicio?
Se delega en un componente de infraestructura.
El control se puede hacer a nivel de servicio
vertical (cada Façade) o a nivel de método dentro
de cada servicio.
Publicación de
Servicios de Negocio
Hay servicios que se comparten con otros
sistemas: Modelo colaborativo.
La publicación se debe hacer a nivel de la
capa de negocio.capa de negocio.
Distintas posibilidades tecnológicas
Web Services, RMI, IIOP, RMI-IIOP (EJB), …
Nivel de seguridad mayor.
Capa lógica de negocio
Ofrece un interfaz de servicios
En JEE es una interfaz java
Cada servicio (método) puede resolver
un caso de uso o parte
Los servicios pueden ser:Los servicios pueden ser:
Sin estado: cada llamada es independiente
de las demás; el cliente puede invocar en
cualquier orden
Con estado: existe noción de sesión, una
llamada estará condicionada por las
anteriores
dic-08 alb@uniovi.es 17
Lógica de negocio:
implementación
El cliente sólo conoce la interfaz
Habrá una implementación de ese interfaz…
… que puede ser cambiada por otra sin afectar
Puede estar dividida en subcapasPuede estar dividida en subcapas
Capa de lógica: es el núcleo central de la
aplicación, la esencia del negocio, la lógica y sus
reglas
Capa de aplicación: añade algún valor al
procesamiento de la capa de lógica (p.e. generar
un excel, un pdf, importar o exportar datos, etc.)
dic-08 alb@uniovi.es 18
Capa de lógica:
implementación
Varios patrones aplicables:
Dominios sencillos: Active record,
Record set [fowler]
Dominios complejos: Modelo deDominios complejos: Modelo de
dominio
Problema: gestionar persistencia
mapeador
JPA, Hibernate, TopLink, etc
Factory
Command
dic-08 alb@uniovi.es 19
Capa de lógica:
implementación
Si se usa modelo de dominio, compuesta
de:
Modelo de dominio: incluye lógica pero no toda
Clases de proceso sobre el modelo: lógica que
no se puede asignar directamente a ninguna
clase del modelo de dominio (procesos)clase del modelo de dominio (procesos)
En esta capa no se debería meter ninguna
dependencia de tecnología de
infraestructura
Debería poderse ejecutar fuera de cualquier
entorno (para testear)
La persistencia suele ser la principal
dependencia. La capa DAO la evita
dic-08 alb@uniovi.es 20
dic-08 alb@uniovi.es 21
Capa de persistencia
Ofrece interfaz a la capa superior
Las distintas implementaciones de
la persistencia no deben ser
perceptibles por la capa de lógicaperceptibles por la capa de lógica
independencia
Uso del patrón DAO
Con frecuencia un DAO para cada
entidad del modelo
Obtenidos a través de una factoría
dic-08 alb@uniovi.es 22
Interfaz de servicio: ejemplo
dic-08 alb@uniovi.es 23
Patrón DAO: problema
dic-08 alb@uniovi.es 24
Patrón DAO: problemas si…
…Se necesita independencia del
sistema de persistencia
BDD relacional, BDD orientada a
objetos, ficheros, XML, BDD XML,objetos, ficheros, XML, BDD XML,
serialización, …
… Se debe acceder a varios
sistemas desde la misma aplicación:
Y tienen APIs muy diferentes (o
ligeramente)
dic-08 alb@uniovi.es 25
DAO: solución
dic-08 alb@uniovi.es 26
DAO
DAO Data Access Object
DAO proporciona una interfaz única de
acceso a los datos, de formaacceso a los datos, de forma
independiente a dónde se hallen
almacenados.
Independiza la lógica de negocio del
acceso a los datos.
Ofrece operaciones CRUD para cada
objeto persistente del dominio
dic-08 alb@uniovi.es 27
Modelo DAO
dic-08 alb@uniovi.es 28
DomainObject
ModeloDAO:
DomainObject
ModeloDAO:
interacción
dic-08 alb@uniovi.es 29
Interfaces DAO: ejemplo
Métodos CRUD básicos
dic-08 alb@uniovi.es 30
Métodos CRUD específicos
para cada entidad del modelo
Código que
resuelve
dic-08 alb@uniovi.es 31
resuelve
lógica de
negocio
No tiene
dependencias de
persistencia
Posibles alternativas
en JEE
Beans normales de acceso a datos
DAO con JDBC y SQL
Framework de persistencia mapeo O/R
Hibernate, TopLink EJB 3.0 JPAHibernate, TopLink EJB 3.0 JPA
Conjunto de conectores a otros sistemas
BackEnd
Ej. JCO o Business Connector para el acceso a SAP
y BIW.
Integración con sistemas LEGACY
Soluciones Híbridas de las anteriores.
Generación de código JDBC
Pool de conexiones
Técnica destinada a gestionar y
reutilizar objetos.
Crear conexionesconexiones es una de las
operaciones más caras Abrir y cerraroperaciones más caras Abrir y cerrar
conexión por cada consulta es muy
costoso.
Funcionamiento pool conexiones
estándar:
1. El cliente obtiene una referencia al pool
2. Obtiene del pool una conexión abierta
3. Ejecuta la sentencia SQL
4. Devuelve la conexión al pool para que sea
reutilizada sin ser cerrada
Pool de conexiones
dic-08 alb@uniovi.es 34
Externalización de SQLs
Cada proveedor ha personalizado el SQL a su propia
base de datos
Sentencias básicas son iguales, las optimizadas
NONO
Consecuencia: Las SQLs limitan la portabilidad del
sistema.
Posibilidades:
Externalizar SQL a ficheroXML.
Se limita el impacto de una posible migración de
base de datos a tareas de configuración
Permite hacer tunning mediante creación de
índices, alteración del modelo, etc. sin necesidad
de desarrollar.
dic-08 alb@uniovi.es 36
Capa de
Infraestructura
Adyacente a todas las demás.
Comprende todos aquellos servicios
susceptibles de ser requeridos desde
cualquiera de las capas lógicas delcualquiera de las capas lógicas del
sistema.
El servicio es un componente que suele
ser dependiente del entorno de
despliegue del sistema ¿Portabilidad?
Ej.: Servicio de Log varía de formato de
salida de una empresa a otra, inclusive
dentro del mismo grupo empresarial.
Servicios de Infra-
estructura Habituales
Control de transacciones
Servicio de log (logging != login)
Pool de conexiones JDBC (o de cualquier otro
sistema de persistencia)sistema de persistencia)
Sistema de configuración de la aplicación
(Assembling)
Gestor de accesos/permisos de usuario a los
distintos servicios de la aplicación
Provider de acceso a datos
Otros…
Gestión de los Servicios
de Infraestructura
Componentizados
Se accede a ellos a través de una interfaz que
define el servicio = contrato.
Gestión de los Servicios
de Infraestructura
La responsabilidad de instanciar la clase que
sirve el servicio es de las clases gestoras.
La relación de qué clase implementa un
determinado servicio (interfaz java) en undeterminado servicio (interfaz java) en un
momento dado se externaliza a un fichero
XML
Cambios de infraestructura reconfigurar XML
Las clases del modelo no interactúan nunca
con una clase de servicio de infraestructura
directamente siempre a través de la
interfaz
Objetivos de la
Capa de Infraestructura
Se desacopla completamente la aplicación
del entorno de despliegue
La sustitución de un componente se limita aLa sustitución de un componente se limita a
tareas de configuración
Clases de negocio usan interfaces de servicio
Las clases gestoras pueden trabajar
(en caso de que el componente lo
permita) con pools de componentes
Aumento de rendimiento
Frameworks IoC
El patrón Inversion Of Control o
Inyección de dependencias
(Fowler).
Apache Avalon/Excálibur
Ex Proyecto Jakarta.
Spring Framework
Contenedor IoC (entre otras
muchas cosas…)
Incorporado al FPA desde la
versión 1.3
PicoContainer
EJB 3.0
Spring Framework
Contenedor IoC:
Configuración centralizada y
automatizada
Cableado de beans
No invasivoNo invasivo
Ensambla POJOs.
Capa de abstracción para plugin de
monitores transaccionales
Capa de abstracción JDBC
Integración con TopLink, Hibernate, JDO, e
IBATIS
Funcionalidad AOP
MVC
Spring, externalización a xml de la
configuración
dic-08 alb@uniovi.es 44
Arquitectura en capas:
patrones
Presentación Lógica Persistencia
MVC Fachada DAOMVC Fachada
Comando
Factoría
DAO
Factoría
dic-08 alb@uniovi.es 45
Solución en capas
D
Impl
Fa
ca
Service Interface
Action
Control
Persistence
Interface
JDBCHibernate DAO
JDBC DAO
dic-08 alb@uniovi.es 46
D
A
O
D
F
DAO Factory
Implca
de
Action
Action
Action
Action
Fa
ca
de
Lógica PersistenciaPresentac.
Impl
Spring DI
JDBC DAO
JPA DAO
Spring DAO
Interacción entre las capas: ejemplo
dic-08 alb@uniovi.es 47
Interacción entre capas: ejemplo
lógica persistencia
dic-08 alb@uniovi.es 48
Referencias
URLs
http://jakarta.apache.org/Struts
http://theserverside.com
LibrosLibros
Programming Jakarta Struts de
O’Reilly
Mastering Tomcat Development de
WILEY
Java Server Programming J2EE
Edition de Wrox

Más contenido relacionado

La actualidad más candente

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
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasAlex Uhu Colli
 
Disenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareDisenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareAlexander Calderón
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones DistribuidasSorey García
 
Mc silverlight2 dia1
Mc silverlight2 dia1Mc silverlight2 dia1
Mc silverlight2 dia1YEK1702
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspBoris Salleg
 
03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capasWalter Moo Guzmán
 
Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Kevin Reaño
 

La actualidad más candente (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)
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capas
 
Arquitectura en capas
Arquitectura en capasArquitectura en capas
Arquitectura en capas
 
Disenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareDisenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de software
 
Lab Tr5 Multicapa
Lab Tr5 MulticapaLab Tr5 Multicapa
Lab Tr5 Multicapa
 
Programacion en n capas
Programacion en n capasProgramacion en n capas
Programacion en n capas
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones Distribuidas
 
Mc silverlight2 dia1
Mc silverlight2 dia1Mc silverlight2 dia1
Mc silverlight2 dia1
 
Programacion por capas
Programacion por capasProgramacion por capas
Programacion por capas
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
 
03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas
 
Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapa
 
Com
ComCom
Com
 
Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]
 
Aplicaciones n capas en visual net
Aplicaciones n capas en visual netAplicaciones n capas en visual net
Aplicaciones n capas en visual net
 
Proyecto multicapa y conexión
Proyecto multicapa y conexiónProyecto multicapa y conexión
Proyecto multicapa y conexión
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Arquitectura fisica y logica
Arquitectura fisica y logicaArquitectura fisica y logica
Arquitectura fisica y logica
 

Similar a Arquitectura de aplicaciones en capas

How To Split The Monolith - From monolith to microservices
How To Split The Monolith - From monolith to microservicesHow To Split The Monolith - From monolith to microservices
How To Split The Monolith - From monolith to microservicesOliver Fierro
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Rodrigo Zottola Pareja
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryjyoshimaryj
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NETV Sanchez
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Mariagequito
 
Arquitectura de sistemas distribuidos-Grupo de Maria
Arquitectura de sistemas distribuidos-Grupo de MariaArquitectura de sistemas distribuidos-Grupo de Maria
Arquitectura de sistemas distribuidos-Grupo de Mariagequito
 
Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.castlellanos
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidosMargarita Labastida
 
Programacion por capas
Programacion por capasProgramacion por capas
Programacion por capasJosue Lopez
 
Diapositivas de n capas en visual net 2017
Diapositivas de n capas en visual net 2017Diapositivas de n capas en visual net 2017
Diapositivas de n capas en visual net 2017TAPIA SILVA EVELINA
 
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Avanet
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capashome
 

Similar a Arquitectura de aplicaciones en capas (20)

Programando en capas
Programando en capasProgramando en capas
Programando en capas
 
How To Split The Monolith - From monolith to microservices
How To Split The Monolith - From monolith to microservicesHow To Split The Monolith - From monolith to microservices
How To Split The Monolith - From monolith to microservices
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryj
 
N-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NETN-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NET
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NET
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Maria
 
Arquitectura de sistemas distribuidos-Grupo de Maria
Arquitectura de sistemas distribuidos-Grupo de MariaArquitectura de sistemas distribuidos-Grupo de Maria
Arquitectura de sistemas distribuidos-Grupo de Maria
 
Presentacion
PresentacionPresentacion
Presentacion
 
Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 
Aplicaciones En Capas
Aplicaciones En CapasAplicaciones En Capas
Aplicaciones En Capas
 
Programacion por capas
Programacion por capasProgramacion por capas
Programacion por capas
 
Diapositivas de n capas en visual net 2017
Diapositivas de n capas en visual net 2017Diapositivas de n capas en visual net 2017
Diapositivas de n capas en visual net 2017
 
Clases 30 05
Clases 30 05Clases 30 05
Clases 30 05
 
1127082.ppt
1127082.ppt1127082.ppt
1127082.ppt
 
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capas
 

Último

NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 

Último (8)

NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 

Arquitectura de aplicaciones en capas

  • 2. Arquitectura en capas API dic-08 alb@uniovi.es 2 API
  • 3. Layers y Tiers Layer: capa arquitectónica de la aplicación software Presentación, lógica, persistencia Tier: capa física de la arquitecturaTier: capa física de la arquitectura de despliege del hardware Máquinas: Servidor web, servidor de aplicaciones, servidor de base de datos Las “layers” se despliegan sobre las “tiers” dic-08 alb@uniovi.es 3
  • 4. El código que se ejecuta en el navegador (AJAX, javascript) también pertenece a la capa de presentación 3 layers, 2 tiers dic-08 alb@uniovi.es 4 de presentación
  • 5. Conexiones remotas (diversas tecnologías) Conexiones 3 layers, 4 tiers dic-08 alb@uniovi.es 5 Conexiones locales
  • 7. Arquitectura en capas Las capas se comunican a través de interfaces Las implementaciones están ocultas al exterior Una factoría sirve unaUna factoría sirve una implementación para cada interfaz La capa superior se comunica con la inferior, no al revés Las capas, hechas así, son intercambiables Y según como se hagan reubicables dic-08 alb@uniovi.es 7
  • 8. Capa de presentación Resuelve la interacción con el usuario Mostrar datos, formatearlos, ordenarlos Solicitar datos, validarlosSolicitar datos, validarlos Incluye algo de lógica (pero de presentación) Internacionalización Informar de los errores lógicos y de ejecución (errores internos) dic-08 alb@uniovi.es 8
  • 9. Capa de presentación Controlar la navegación entre pantallas Algunas reglas de negocio pueden ser responsabilidad de esta capaser responsabilidad de esta capa Presentar estos datos así y los otros asá… Ocultar/deshabilitar determinado dato/control si se da tal circunstancia… dic-08 alb@uniovi.es 9
  • 10. Capa de presentación Puede estar dividida en subcapas Parte en el servidor (p.e. servidor web) Parte en el cliente (p.e. navegador, AJAX)AJAX) Patrones habituales: MVC Struts Filter Comando Struts Actions (xxx.execute()) ServiceLocator o Factory desacopla la implementación del servicio dic-08 alb@uniovi.es 10
  • 13. Capa de Negocio: Responsabilidades Implementa procesos de negocio identificados durante el análisis funcional. Control de acceso a los servicios deControl de acceso a los servicios de negocio desde otras capas. Publicación de los servicios de negocio Invocación de la capa de persistencia.
  • 14. Implementación de Procesos de Negocio Independientes de los aspectos de presentación. Contra ejemplo: Informe de varias filas donde cada una de ellasInforme de varias filas donde cada una de ellas deberá sombrearse de un color dependiendo de un determinado umbral.Delegación 2003 2004 Crecimiento Santander 1.090.004€ 1.234.000€ 13,21 % Oviedo 1.245.330€ 1.300.320€ 4,41 % Bilbao 1.004.545€ 975.034€ -2,93 %
  • 15. Control de Acceso a Servicios de Negocio El control de acceso al servicio de negocio debe hacerse en la capa de negocio, puesto que podemos tener distintas capas de presentación. ¿Que perfil puede acceder a un determinado¿Que perfil puede acceder a un determinado servicio? Se delega en un componente de infraestructura. El control se puede hacer a nivel de servicio vertical (cada Façade) o a nivel de método dentro de cada servicio.
  • 16. Publicación de Servicios de Negocio Hay servicios que se comparten con otros sistemas: Modelo colaborativo. La publicación se debe hacer a nivel de la capa de negocio.capa de negocio. Distintas posibilidades tecnológicas Web Services, RMI, IIOP, RMI-IIOP (EJB), … Nivel de seguridad mayor.
  • 17. Capa lógica de negocio Ofrece un interfaz de servicios En JEE es una interfaz java Cada servicio (método) puede resolver un caso de uso o parte Los servicios pueden ser:Los servicios pueden ser: Sin estado: cada llamada es independiente de las demás; el cliente puede invocar en cualquier orden Con estado: existe noción de sesión, una llamada estará condicionada por las anteriores dic-08 alb@uniovi.es 17
  • 18. Lógica de negocio: implementación El cliente sólo conoce la interfaz Habrá una implementación de ese interfaz… … que puede ser cambiada por otra sin afectar Puede estar dividida en subcapasPuede estar dividida en subcapas Capa de lógica: es el núcleo central de la aplicación, la esencia del negocio, la lógica y sus reglas Capa de aplicación: añade algún valor al procesamiento de la capa de lógica (p.e. generar un excel, un pdf, importar o exportar datos, etc.) dic-08 alb@uniovi.es 18
  • 19. Capa de lógica: implementación Varios patrones aplicables: Dominios sencillos: Active record, Record set [fowler] Dominios complejos: Modelo deDominios complejos: Modelo de dominio Problema: gestionar persistencia mapeador JPA, Hibernate, TopLink, etc Factory Command dic-08 alb@uniovi.es 19
  • 20. Capa de lógica: implementación Si se usa modelo de dominio, compuesta de: Modelo de dominio: incluye lógica pero no toda Clases de proceso sobre el modelo: lógica que no se puede asignar directamente a ninguna clase del modelo de dominio (procesos)clase del modelo de dominio (procesos) En esta capa no se debería meter ninguna dependencia de tecnología de infraestructura Debería poderse ejecutar fuera de cualquier entorno (para testear) La persistencia suele ser la principal dependencia. La capa DAO la evita dic-08 alb@uniovi.es 20
  • 22. Capa de persistencia Ofrece interfaz a la capa superior Las distintas implementaciones de la persistencia no deben ser perceptibles por la capa de lógicaperceptibles por la capa de lógica independencia Uso del patrón DAO Con frecuencia un DAO para cada entidad del modelo Obtenidos a través de una factoría dic-08 alb@uniovi.es 22
  • 23. Interfaz de servicio: ejemplo dic-08 alb@uniovi.es 23
  • 24. Patrón DAO: problema dic-08 alb@uniovi.es 24
  • 25. Patrón DAO: problemas si… …Se necesita independencia del sistema de persistencia BDD relacional, BDD orientada a objetos, ficheros, XML, BDD XML,objetos, ficheros, XML, BDD XML, serialización, … … Se debe acceder a varios sistemas desde la misma aplicación: Y tienen APIs muy diferentes (o ligeramente) dic-08 alb@uniovi.es 25
  • 27. DAO DAO Data Access Object DAO proporciona una interfaz única de acceso a los datos, de formaacceso a los datos, de forma independiente a dónde se hallen almacenados. Independiza la lógica de negocio del acceso a los datos. Ofrece operaciones CRUD para cada objeto persistente del dominio dic-08 alb@uniovi.es 27
  • 30. Interfaces DAO: ejemplo Métodos CRUD básicos dic-08 alb@uniovi.es 30 Métodos CRUD específicos para cada entidad del modelo
  • 31. Código que resuelve dic-08 alb@uniovi.es 31 resuelve lógica de negocio No tiene dependencias de persistencia
  • 32. Posibles alternativas en JEE Beans normales de acceso a datos DAO con JDBC y SQL Framework de persistencia mapeo O/R Hibernate, TopLink EJB 3.0 JPAHibernate, TopLink EJB 3.0 JPA Conjunto de conectores a otros sistemas BackEnd Ej. JCO o Business Connector para el acceso a SAP y BIW. Integración con sistemas LEGACY Soluciones Híbridas de las anteriores. Generación de código JDBC
  • 33. Pool de conexiones Técnica destinada a gestionar y reutilizar objetos. Crear conexionesconexiones es una de las operaciones más caras Abrir y cerraroperaciones más caras Abrir y cerrar conexión por cada consulta es muy costoso. Funcionamiento pool conexiones estándar: 1. El cliente obtiene una referencia al pool 2. Obtiene del pool una conexión abierta 3. Ejecuta la sentencia SQL 4. Devuelve la conexión al pool para que sea reutilizada sin ser cerrada
  • 34. Pool de conexiones dic-08 alb@uniovi.es 34
  • 35. Externalización de SQLs Cada proveedor ha personalizado el SQL a su propia base de datos Sentencias básicas son iguales, las optimizadas NONO Consecuencia: Las SQLs limitan la portabilidad del sistema. Posibilidades: Externalizar SQL a ficheroXML. Se limita el impacto de una posible migración de base de datos a tareas de configuración Permite hacer tunning mediante creación de índices, alteración del modelo, etc. sin necesidad de desarrollar.
  • 37. Capa de Infraestructura Adyacente a todas las demás. Comprende todos aquellos servicios susceptibles de ser requeridos desde cualquiera de las capas lógicas delcualquiera de las capas lógicas del sistema. El servicio es un componente que suele ser dependiente del entorno de despliegue del sistema ¿Portabilidad? Ej.: Servicio de Log varía de formato de salida de una empresa a otra, inclusive dentro del mismo grupo empresarial.
  • 38. Servicios de Infra- estructura Habituales Control de transacciones Servicio de log (logging != login) Pool de conexiones JDBC (o de cualquier otro sistema de persistencia)sistema de persistencia) Sistema de configuración de la aplicación (Assembling) Gestor de accesos/permisos de usuario a los distintos servicios de la aplicación Provider de acceso a datos Otros…
  • 39. Gestión de los Servicios de Infraestructura Componentizados Se accede a ellos a través de una interfaz que define el servicio = contrato.
  • 40. Gestión de los Servicios de Infraestructura La responsabilidad de instanciar la clase que sirve el servicio es de las clases gestoras. La relación de qué clase implementa un determinado servicio (interfaz java) en undeterminado servicio (interfaz java) en un momento dado se externaliza a un fichero XML Cambios de infraestructura reconfigurar XML Las clases del modelo no interactúan nunca con una clase de servicio de infraestructura directamente siempre a través de la interfaz
  • 41. Objetivos de la Capa de Infraestructura Se desacopla completamente la aplicación del entorno de despliegue La sustitución de un componente se limita aLa sustitución de un componente se limita a tareas de configuración Clases de negocio usan interfaces de servicio Las clases gestoras pueden trabajar (en caso de que el componente lo permita) con pools de componentes Aumento de rendimiento
  • 42. Frameworks IoC El patrón Inversion Of Control o Inyección de dependencias (Fowler). Apache Avalon/Excálibur Ex Proyecto Jakarta. Spring Framework Contenedor IoC (entre otras muchas cosas…) Incorporado al FPA desde la versión 1.3 PicoContainer EJB 3.0
  • 43. Spring Framework Contenedor IoC: Configuración centralizada y automatizada Cableado de beans No invasivoNo invasivo Ensambla POJOs. Capa de abstracción para plugin de monitores transaccionales Capa de abstracción JDBC Integración con TopLink, Hibernate, JDO, e IBATIS Funcionalidad AOP MVC
  • 44. Spring, externalización a xml de la configuración dic-08 alb@uniovi.es 44
  • 45. Arquitectura en capas: patrones Presentación Lógica Persistencia MVC Fachada DAOMVC Fachada Comando Factoría DAO Factoría dic-08 alb@uniovi.es 45
  • 46. Solución en capas D Impl Fa ca Service Interface Action Control Persistence Interface JDBCHibernate DAO JDBC DAO dic-08 alb@uniovi.es 46 D A O D F DAO Factory Implca de Action Action Action Action Fa ca de Lógica PersistenciaPresentac. Impl Spring DI JDBC DAO JPA DAO Spring DAO
  • 47. Interacción entre las capas: ejemplo dic-08 alb@uniovi.es 47
  • 48. Interacción entre capas: ejemplo lógica persistencia dic-08 alb@uniovi.es 48
  • 49. Referencias URLs http://jakarta.apache.org/Struts http://theserverside.com LibrosLibros Programming Jakarta Struts de O’Reilly Mastering Tomcat Development de WILEY Java Server Programming J2EE Edition de Wrox