Este documento describe Aspect-Oriented Programming (AOP), explicando que permite extender sistemas y aplicaciones mediante la implementación de aspectos transversales como seguridad, auditoría y monitoreo sin necesidad de modificar el código original. Explica cómo funciona AOP a través de un "tejedor" que identifica los puntos de corte en el código e inserta los aspectos, y que herramientas como AspectJ permiten aplicar este enfoque en Java. Finalmente, destaca los beneficios de AOP como mejorar la modularidad, mantenibilidad y
3. ¿Qué es AOP? Cimientos Estructuras Planta Almacenamiento Mobiliario Sanitaria Eléctrica Ventilación Iluminación Calefacción Refrigeración Gas Cable Teléfono / Datos Alarma Casa Inteligente
4. ¿Qué es AOP? r APLICACIÓN GAS VENTILACION LIBRERÍA VENTILACION SISTEMA OPERATIVO ELECTRICIDAD ELECTRICIDAD HARDWARE AGUA r LOGGING AUDITORIA GAS MONITOREO AGUA SEGURIDAD CALEFON A GAS PERFORMANCE CALEFON A GAS ERRORES GAS VENTILACION ELECTRICIDAD AGUA …
5. Seguridad – Usuario ya autenticado? Manejo de errores Monitoreo de la aplicación Objeto B Objeto A Seguridad – usuario autorizado para operación? Lógica de negocio 1 Seguridad – encripción / desencripción de datos Lógica de negocio 2 Interacción con otros sistemas INADVERTENCIA =AOP Logging – informativo de operación anterior CUANTIFICACION Lógica de negocio 3 Reintentos ante fallas Seguridad Transaccionalidad DECLARATIVO Logging Logging - performance Auditoría Auditoría sobre los accesos Manejo de errores
6. ¿Cómo funciona? “Tejedor” (Weaver) Requerimientos Descomposición en Aspectos Sistema final Implementación de Aspectos AspectJ es extensión de Java = No hay que cambiar la aplicación
7. ¿Cómo funciona? public pointcutejecucionWebPanel(GXWebPanelgxwebpanel) : && this(gxwebpanel); execution(public * GXWebPanel+.webExecute(..)) before (GXWebPanelgxwebpanel) : ejecucionWebPanel(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
8. ¿Para qué sirve? Extender GX y Sistema ENFOQUE (Metodología) MECANISMO AOSD LOGGING MONITOR RRHH FINANZAS NECESIDADES PARTICULARES SIN CAMBIAR APLICACIÓN GX AUDITORIA NEGOCIO CONTABLE … SEGURIDAD VENTAS COMPRAS PERFORMANCE
10. Experiencia ¿Cómo lo hicimos antes? Requerimientos HTTP de usuarios web.xml Filtro Web A = Autenticación Requests descartados Filtro Web B = Manejo de Errores Filtro Web C = Registro de tareas porusuario Aplicación Respuesta HTML para usuarios
11.
12. Manejador de eventos (en DB) a nivelde aplicaciónGeneXus – Before / AfterCommit Sistemas basados en reglas Frameworks configurables Mecanismos Vs. Enfoque AspectJ = Declarativo para Monitor