A lo largo del tiempo los lenguajes de ambientes distribuidos han evolucionado con la única intención de reducir el TCO de los sistemas, en términos más tangibles, las formas de programar abonan a un desarrollo más rápido y un mantenimiento muy práctico. Otra variable importante que se considera fundamental en las nuevas formas de programar es el tiempo de respuesta con que los negocios deben reaccionar para mantenerse competitivos.
¿Cómo resolver esto?
Existe un paradigma de programación que nos ayuda de forma sencilla a reducir el costo de mantenimiento y desarrollo de los sistemas: Programación Orientada a Aspectos (AOP – Aspect Oriented Programming). AOP es una forma de programar que ayuda a desacoplar todas las funcionalidades de un aplicativo que se repiten en varias clases u objetos, lo cual no puede hacer una Programación Orientada a Objetos.
Ejemplos
Algunos ejemplos de servicios comunes en todo sistema y que se pueden repetir en varias clases del mismo son:
-
- Seguridad (AAA)
- Manejo de Errores
- Manejo de Sesiones
- Auditoría
- Transaccionalidad de clases
- Persistencia
Por ejemplo, en el caso de la seguridad normalmente desarrollamos componentes que, en el mejor de los escenarios, invocamos y declaramos en cada una de las clases que desarrollamos. Esto hace un poco repetitiva la labor, además de que estamos atados a recordar insertar el código fuente en cada invocación de negocio, de lo contrario no contaría con seguridad dicho servicio. En el caso de desarrollar con Aspectos podemos lograr que esas funciones o servicios que ofrecen seguridad se invoquen antes de entrar a cada método de negocio, sin importar que el desarrollador recuerde codificarlo, se puede decir que estaríamos integrando una capa Transversal en nuestra arquitectura, con lo que podemos decir que contamos con una arquitectura ORTOGONAL. Así como este hay un sin número de problemas que se pueden resolver con Aspectos o capas trasversales y que además nos ayudarán a reducir significativamente el tiempo y costo de un desarrollo o mantenimiento.
En un artículo más adelante les platicaré específicamente, y a nivel de código, cómo implementar de forma adecuada la Programación Orientada a Aspectos (AOP).