Upload
genexus
View
350
Download
1
Embed Size (px)
Citation preview
Aspect Oriented Programming:
AOP con GeneXus
Pablo Planinich – Gonzalo Martínez Setiembre, 2009
w w w . a c c e n d o - i t . c o m
¿QUÉ ES?
¿CÓMOFUNCIONA?
¿PARA QUÉSIRVE?
EXPERIENCIA
AOPBENEFICIOS
¿Qué es AOP?
CimientosEstructurasPlantaAlmacenamientoMobiliarioSanitariaEléctricaVentilaciónIluminaciónCalefacciónRefrigeraciónGasCableTeléfono / DatosAlarmaCasa Inteligente
CALEFON A GAS
GAS VENTILACION ELECTRICIDAD AGUA
GAS
VENTILACION
ELECTRICIDAD
AGUA
APLICACIÓN
LIBRERÍA
SISTEMA OPERATIVO
HARDWARE
LOGGING
AUDITORIA
MONITOREO
SEGURIDAD
PERFORMANCE
ERRORES
…
¿Qué es AOP?
CALEFON A GAS
GAS
VENTILACION
ELECTRICIDAD
AGUA
r
r
Seguridad –Usuario ya autenticado?
Manejo de errores
Monitoreo de la aplicación
Seguridad – usuario autorizado para operación?
Seguridad – encripción /desencripción de datos
Interacción con otros sistemas
Logging – informativo deoperación anterior
Reintentos ante fallas
Transaccionalidad
Logging - performance
Auditoría sobre los accesos
Manejo de errores
Objeto A Objeto B
CU
AN
TIFI
CA
CIO
N INA
DV
ERTEN
CIA
Lógica de negocio 1
Lógica de negocio 2
Lógica de negocio 3
Seguridad
Logging
Auditoría
=AOP
DECLARATIVO
Descomposiciónen Aspectos
“Tejedor”(Weaver)Requerimientos
Sistema finalImplementación de Aspectos
AspectJ es extensión de Java = No hay que cambiar la aplicación
¿Cómo funciona?
execution(public * GXWebPanel+.webExecute(..))
before (GXWebPanel gxwebpanel) : ejecucionWebPanel(gxwebpanel) {…}
public pointcut ejecucionWebPanel(GXWebPanel gxwebpanel) :
&& this(gxwebpanel);
Agregar o cambiar clases, interfaces, métodos o variables
USO: Categorizar objetos en múltiples jerarquías: contables, centro de costos…
Advertencias en compilación ante determinados patrones de uso
USO: Impedir que una categoría de objetos llame a otra. RRHH no llama a Logística
¿Cómo funciona?
AspectoPunto de
UniónPunto de
CorteConsejo
Intersección Dinámica
Intersección Estática
IntroducciónDeclaración
de compilación
¿Para qué sirve?
MONITORLOGGING
AUDITORIA
SEGURIDAD
…
PERFORMANCE
NEGOCIO
ENFOQUE (Metodología)
CONTABLE
FINANZAS
COMPRASVENTAS
RRHH
MECANISMOExtender GXy Sistema
AOSD
¿Es nuevo?
Experiencia
web.xml
¿Cómo lo hicimos antes?
Filtro Web A = Autenticación
Filtro Web B = Manejo de Errores
Filtro Web C = Registro de tareaspor usuario
Requerimientos HTTP de usuarios
Requestsdescartados
Respuesta HTML para usuarios
Aplicación
Experiencia
Mecanismos Vs. Enfoque
Patrón “Publicación – Subscripción” basado en eventos• Listener a nivel de web.xml•Manejador de eventos (en DB) a nivel
de aplicación
GeneXus – Before / After Commit
Sistemas basados en reglas
Frameworks configurables
¿Cómo lo hicimos antes?Experiencia
Filtros
AspectJ = Declarativo para Monitor
ExtensibilidadRobustez
ModularidadMantenibilidadComprensibilidad…
Funcionalidad• Configurabilidad
ReusabilidadEficienciaSeguridad / Integridad
CorrecciónCompatibilidad
Verificabilidad
Economía, y Oportunidad temporal
BeneficiosFACTORES DE CALIDAD (1977 !!!)
EXTERNOS INTERNOS
“Soportabilidad”
Conclusiones
• AOP es anterior al mecanismo “Tejedor”
• Rompe barreras entre aplicación y sistema
• No sacrificar compatibilidad por extensibilidad
Aplicación práctica de conceptos:
http://certus.accendo-it.com
Gracias!