Archivo diario: 16 febrero, 2011

Programación Orientada a Aspectos (Aspect-Oriented Programming)

por: Ing. Elian L. Fernández de la Pera.

La Programación Orientada a Aspectos (AOP) es a menudo definida como una técnica de programación que apoya la separación de intereses dentro de un sistema de software. Los sistemas están compuestos de varios componentes donde cada uno es responsable de una parte específica de funcionalidad. Sin embargo, muchas veces, estos componentes llevan también responsabilidad adicional más allá de su funcionalidad principal. Los servicios de sistemas tales como: autenticación, manejo de transacciones y la seguridad, a menudo se encuentran dentro de componentes cuya responsabilidad es otra. Estos servicios de sistemas son comúnmente denominados incumbencias transversales porque tienden a cortar de un lado a otro, múltiples componentes del sistema.

AOP modulariza estos servicios y los aplica declarativamente a los componentes que deben afectar. El resultado es un componente más cohesivo y centrado en su propia incumbencia, completamente ignorante de cualquier servicio del sistema en el que pueda estar implicado.

Puede ayudar, pensar que los aspectos son como una manta que cubren muchos componentes de una aplicación. Una aplicación consiste en módulos que implementan la funcionalidad del negocio. Con AOP se puede cubrir el núcleo de la aplicación con capas de funcionalidad. Estas capas se pueden aplicar declarativamente por toda la aplicación de una manera flexible sin que el núcleo de la aplicación conozca que existen.

Utilizando AOP, las incumbencias transversales del sistema cubren los componentes que ellos afectan. Esto permite que los componentes de la aplicación se enfoquen en su funcionalidad de negocio específica.

Publicado en Programación Avanzada | Deja un comentario