053 extendiendo gene xus con programacion orientada a aspectos aop

14
Aspect Oriented Programming: AOP con GeneXus Pablo Planinich Gonzalo Martínez Setiembre, 2009 www.accendo-it.com

Upload: genexus

Post on 07-Jul-2015

347 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop

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

¿QUÉ ES?

¿CÓMOFUNCIONA?

¿PARA QUÉSIRVE?

EXPERIENCIA

AOPBENEFICIOS

Page 3: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop

¿Qué es AOP?

CimientosEstructurasPlantaAlmacenamientoMobiliarioSanitariaEléctricaVentilaciónIluminaciónCalefacciónRefrigeraciónGasCableTeléfono / DatosAlarmaCasa Inteligente

Page 4: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop

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

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

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

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

¿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

¿Es nuevo?

Experiencia

Page 10: 053 Extendiendo Gene Xus Con Programacion Orientada A Aspectos Aop

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

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

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

Conclusiones

• AOP es anterior al mecanismo “Tejedor”

• Rompe barreras entre aplicación y sistema

• No sacrificar compatibilidad por extensibilidad