053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop
-
Upload
genexus -
Category
Technology
-
view
350 -
download
1
Transcript of 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop
![Page 1: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/1.jpg)
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
![Page 2: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/2.jpg)
¿QUÉ ES?
¿CÓMOFUNCIONA?
¿PARA QUÉSIRVE?
EXPERIENCIA
AOPBENEFICIOS
![Page 3: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/3.jpg)
¿Qué es AOP?
CimientosEstructurasPlantaAlmacenamientoMobiliarioSanitariaEléctricaVentilaciónIluminaciónCalefacciónRefrigeraciónGasCableTeléfono / DatosAlarmaCasa Inteligente
![Page 4: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/4.jpg)
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
![Page 5: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/5.jpg)
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
![Page 6: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/6.jpg)
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?
![Page 7: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/7.jpg)
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
![Page 8: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/8.jpg)
¿Para qué sirve?
MONITORLOGGING
AUDITORIA
SEGURIDAD
…
PERFORMANCE
NEGOCIO
ENFOQUE (Metodología)
CONTABLE
FINANZAS
COMPRASVENTAS
RRHH
MECANISMOExtender GXy Sistema
AOSD
![Page 9: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/9.jpg)
¿Es nuevo?
Experiencia
![Page 10: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/10.jpg)
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
![Page 11: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/11.jpg)
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
![Page 12: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/12.jpg)
ExtensibilidadRobustez
ModularidadMantenibilidadComprensibilidad…
Funcionalidad• Configurabilidad
ReusabilidadEficienciaSeguridad / Integridad
CorrecciónCompatibilidad
Verificabilidad
Economía, y Oportunidad temporal
BeneficiosFACTORES DE CALIDAD (1977 !!!)
EXTERNOS INTERNOS
“Soportabilidad”
![Page 13: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/13.jpg)
Conclusiones
• AOP es anterior al mecanismo “Tejedor”
• Rompe barreras entre aplicación y sistema
• No sacrificar compatibilidad por extensibilidad
![Page 14: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop](https://reader034.fdocuments.net/reader034/viewer/2022050719/559afc231a28ab7d1a8b45db/html5/thumbnails/14.jpg)
Aplicación práctica de conceptos:
http://certus.accendo-it.com
Gracias!