View
273
Download
1
Category
Preview:
Citation preview
Aspectos en Capa Media
Lenin David Lozano ArgelDirector de Ingenieria – Avansoft S.A.Especialista en Desarrollo de Software – EAFIT
Para romper el hielo!!!
Es AOP realmente un nuevo paradigma de programación o es solo otra técnica de optimización basada en lenguajes existentes.
Como resuelve la complejidad de los lenguajes existentes?
Parece que sumando la separación de código entre el aspecto y el componente se incrementa la complejidad de todo el sistema.
AOP es una técnica de programación que apunta a lograr mejor modularización por la separación de intereses cruzados.LA OPTIMIZACIÓN NO ES SU META PRINCIPAL.AOP ayuda a resolver la complejidad del diseño del software.
Interceptor Pattern
Variante del patrón Cadena de Responsabilidad. No toda la funcionalidad de un sistema puede
ser anticipada. Permite extender el software.
Registrando nuevos servicios al sistema. Permitiendo que el sistema dispare estos servicios. Permitiendo que estos servicios accedan al estado
interno del sistema y controle su comportamiento.
Intercepting Filter
Se requiere un pre-procesamiento y un post-procesamiento de unas peticiones o respuestas de un cliente Web.
Se debería facilitar la adición o eliminación de sevicios sin afectar a los componentes existentes, para que se puedan utilizar en gran variedad de combinaciones, como
Logging y autenticación. Depuración y transformación de la salida para un cliente
específico. Descompresión y conversión del esquema de codificación de la
entrada.
Intercepting Filter
Crear filtros conectables para procesar servicios comunes de una forma estándar sin requerir cambios en el código principal del procesamiento de la petición. Los filtros interceptan las peticiones entrantes y las respuestas salientes, permitiendo un pre y post-procesamiento.
Interceptor vs AOP
Creen que AOP esta siendo mal usado en casos en los cuales un patrón Interceptor puede ser usado?
Agenda
1. Introducción a Middleware 1. Introducción a Middleware
2. Introducción a Características de Middleware Aspectual
2. Introducción a Características de Middleware Aspectual
CRI Middleware Co., Ltd.
Conceptos sobre Middleware
Término usado para referirse a los componentes de software que actúan como intermediarios entre otros componentes de software, generalmente, en el marco de la interacción cliente/servidor.
Ejemplos típicos son los programas desarrollados para ejecutar las consultas que diferentes usuarios de la red hacen a una base de datos central que está ubicada en el servidor.
Funciones del Middleware
Ocultar implementación. Ocultar Heterogeneidad. Proveer interfaces de alto nivel a los desarrolladores e
integradores. Proveer un conjunto de servicios comunes. Hacer el desarrollo de aplicaciones mas fácil y rápido.
CRI Middleware Co., Ltd.
Discusión
Que valor agregado puede dar AOP a la organización?
Como deben los desarrolladores y gerentes decidir donde adoptar AOP?
Que están haciendo las compañías con AOP?
Advertencia
Aspect Oriented PROGRAMMING no es magia.
Es “solo” una mejor forma de soportar el crosscutting code.
Término: Crosscutting
Es una relación entre representaciones de concerns.
Un concern es un problema que se
intenta resolver con software.
Problemas del crosscutting
Codigo Esparcido y Enmarañado: Trazabilidad Pobre. Productividad Mas Baja. Menor reuso del código. Pobre Calidad de Código. Evolución mas difícil.
Término: Aspecto
Un ASPECTO es una representación modular de un crosscutting concern.
Un aspecto es un MODULO para el lenguaje aspectual. Es el modulo que almacena las declaraciones que
“identifican join points” y “efectos semánticos en esos join points”.
Término: Weaving
El mecanismo por el cual se combinan los aspectos con el código base.
Puede hacerse en distintos momentos de la vida de un programa
Rango de Tiempo: Estático:
Compilación Post-compilación
Dinámico: Load Time Runtime.
Término: Join Point
Describe en que puntos principales de la aplicación los aspectos pueden ser compuestos con el resto del software.
Son puntos en la ejecución del programa, no posiciones en el código.
Elementos del lenguaje de programación con los cuales se coordinan los aspectos.
Llamada a método Ejecución de método
Término: Pointcut
Una afirmación que es cumplida por un conjunto de puntos de unión.
Representan conjuntos de join points. Puede exponer información en tiempo de
ejecución a un pedazo de advice. Mecanismo en el cual se discrimina donde y
cuando se aplicará el advice.
Término: Advice
un consejo (advice), que indica qué es lo que hay que hacer en los join points.
Existen 3 tipos: Before: Ejecuta antes de la ejecución
de un Join Point. After: Ejecuta después de la ejecución. Around: Rodea la ejecución del join
point. ¡Que se adiciona o que hacer en vez de
eso!
Código Base
Advice
AspectoCódigoBase
JoinPoint
JoinPoint
PointCut
Consideraciones
Aspectos Dinámicos: Se aplican los aspectos en compilación, o se adicionan o remueven dinámicamente? (Cuando debemos hacer el tejido?)
Genericidad: Los aspectos se refieren a elementos en el sistema en cuestión, o pueden ser reutilizados por varios sistemas?
Eficiencia (Performance) versus Expresividad (Sintaxis de Aspectos)
Correctitud y Validación: Como especificar y verificar/probar los aspectos?
Pasos en desarrollo AOP
AOP involucra tres distintos pasos en el desarrollo:Descomposición Aspectual:
Descomponer los requisitos para identificar intereses cruzados y comunes.
Implementación de los “Concerns”: Implementar cada interés separadamente.
Tejido: Componer el sistema final.
Anatomía de los lenguajes
Una implementación de AOP consta de 2 partes: una especificación del lenguaje y una implementación.
Implementación de “concerns”: Mapear un requisito individual a un código para que el
compilador lo traduzca a código ejecutable. Tejido de las reglas:
Como se compone los intereses independientemente implementados para formar el sistema final.
Implementación del lenguaje AOP.1. Combina los concerns individuales.
2. Convierte la información resultante en código ejecutable.
Evaluación de Frameworks
Como elegir un middleware o framework adecuado para tu problema?
Criterios de evaluación
Criterios de evaluación Generales
Determina la confiabilidad y la funcionalidad que cada middleware ofrece.
Información Disponible
Tipo de Licencia
Madurez
Criterios de evaluación Aspectuales
Evalúa el tratamiento aspectual que cada Middleware le da al proceso de desarrollo de software orientado a aspecto, por lo tanto los criterios descritos se componen con los conceptos de los fundamentos AOP
Modelo de tejido Modelo de programación AO Modelo de Join Point
Criterios de evaluación Desarrollo
Determinan el éxito y la facilidad de realizar un buen proceso del desarrollo del software basado en aspectos.
Soporte de Herramientas IDE
Sintaxis de los aspectos
Criterios de evaluación QoS
Determinan un conjunto de característica o atributos calidad que garantizan que un Middleware cumple con ciertos estándares preestablecidos.
QoS del Middleware
Extensibilidad/Adaptabilidad
Integración con el proceso de desarrollo
Reusabilidad de aspectos
AOP: THE REAL DEAL?
Existe algún ejemplo de aspectos aplicados a lenguajes de programación funcionales?
Jboss Boeing
Recommended