Top Banner
Aspectos en Capa Media Lenin David Lozano Argel Director de Ingenieria – Avansoft S.A. Especialista en Desarrollo de Software – EAFIT
31

Aspect Oriented Programming Middleware

Jul 04, 2015

Download

Documents

Lenin Lozano
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Aspect Oriented Programming Middleware

Aspectos en Capa Media

Lenin David Lozano ArgelDirector de Ingenieria – Avansoft S.A.Especialista en Desarrollo de Software – EAFIT

Page 2: Aspect Oriented Programming Middleware

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.

Page 3: Aspect Oriented Programming Middleware

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.

Page 4: Aspect Oriented Programming Middleware

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.

Page 5: Aspect Oriented Programming Middleware

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.

Page 6: Aspect Oriented Programming Middleware

Interceptor vs AOP

Creen que AOP esta siendo mal usado en casos en los cuales un patrón Interceptor puede ser usado?

Page 7: Aspect Oriented Programming Middleware

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

Page 8: Aspect Oriented Programming Middleware
Page 9: Aspect Oriented Programming Middleware

CRI Middleware Co., Ltd.

Page 10: Aspect Oriented Programming Middleware

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.

Page 11: Aspect Oriented Programming Middleware

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.

Page 12: Aspect Oriented Programming Middleware

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?

Page 13: Aspect Oriented Programming Middleware
Page 14: Aspect Oriented Programming Middleware

Advertencia

Aspect Oriented PROGRAMMING no es magia.

Es “solo” una mejor forma de soportar el crosscutting code.

Page 15: Aspect Oriented Programming Middleware

Término: Crosscutting

Es una relación entre representaciones de concerns.

Un concern es un problema que se

intenta resolver con software.

Page 16: Aspect Oriented Programming Middleware

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.

Page 17: Aspect Oriented Programming Middleware

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”.

Page 18: Aspect Oriented Programming Middleware

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.

Page 19: Aspect Oriented Programming Middleware

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

Page 20: Aspect Oriented Programming Middleware

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.

Page 21: Aspect Oriented Programming Middleware

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

Page 22: Aspect Oriented Programming Middleware

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?

Page 23: Aspect Oriented Programming Middleware

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.

Page 24: Aspect Oriented Programming Middleware

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.

Page 25: Aspect Oriented Programming Middleware

Evaluación de Frameworks

Como elegir un middleware o framework adecuado para tu problema?

Page 26: Aspect Oriented Programming Middleware

Criterios de evaluación

Page 27: Aspect Oriented Programming Middleware

Criterios de evaluación Generales

Determina la confiabilidad y la funcionalidad que cada middleware ofrece.

Información Disponible

Tipo de Licencia

Madurez

Page 28: Aspect Oriented Programming Middleware

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

Page 29: Aspect Oriented Programming Middleware

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

Page 30: Aspect Oriented Programming Middleware

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

Page 31: Aspect Oriented Programming Middleware

AOP: THE REAL DEAL?

Existe algún ejemplo de aspectos aplicados a lenguajes de programación funcionales?

Jboss Boeing