• No se han encontrado resultados

Experimentación y evaluación del framework JBoss Aop

N/A
N/A
Protected

Academic year: 2023

Share "Experimentación y evaluación del framework JBoss Aop"

Copied!
67
0
0

Texto completo

Este trabajo forma parte del proyecto MMEDUSA, que actualmente desarrolla el Grupo de Ingeniería de Software de la Universidad Eafit y una de las empresas de software de la ciudad, que tiene como objetivo definir un marco metodológico para la adopción de aspectos en la industria. El Capítulo 6 presenta una evaluación del marco de aspectos de JBoss AOP de acuerdo con los criterios de calidad sistémica establecidos por el grupo de ingeniería de software de la Universidad Eafit.

INTRODUCCIÓN

MOTIVACION

La contribución de la orientación de aspectos es permitir la definición de módulos que amplían funcionalidades ya existentes según el principio de inconsciencia. El estudio de estos frameworks es muy importante desde la perspectiva de la industria del software, ya que si se desea que el enfoque de aspectos pueda ser utilizado en la solución de problemas reales, es necesario que los frameworks que facilitan la implementación de aspectos hayan alcanzado un cierta madurez.

OBJETIVOS

  • Objetivo general
  • Objetivos específicos

ALCANCE DEL PROYECTO DE GRADO

ESTADO DEL ARTE FRAMEWORKS ASPECTUALES

ESTUDIO DEL FRAMEWORK JAsCo [López, 2007]

  • Presentación de la Herramienta
  • Arquitectura de la herramienta

Además de las características semánticas que agrega a Java, JAsCo proporciona herramientas que habilitan aspectos en tiempo de ejecución. Como sugiere el nombre, le permite conectar aspectos con la aplicación incluso en tiempo de ejecución.

Figura 1:  Arquitectura de JAsCo en tiempo de compilación.
Figura 1: Arquitectura de JAsCo en tiempo de compilación.

ESTUDIO DEL FRAMEWORK SPRING [Hincapié, 2007]

  • Presentación de la herramienta
  • Arquitectura de la herramienta

El módulo Core es la parte más fundamental del marco y proporciona el contenedor IoC (Inversión de Control) y las funciones de inyección de dependencia y sirve como base para el resto de los componentes. El módulo Context proporciona mecanismos de acceso a objetos estilo marco que de alguna manera invocan un registro JNDI. El módulo DAO proporciona una capa de abstracción JDBC que elimina la necesidad de codificación JDBC y procesamiento de códigos de error específicos del motor de base de datos.

El módulo ORM proporciona capas de integración para API populares de mapeo relacional de objetos, como JPA, JDO, Hibernate e iBatis. Con el módulo ORM puede utilizar todos los mapeadores en combinación con todas las demás funciones que ofrece Spring. El módulo AOP proporciona una implementación de programación orientada a aspectos que permite definir, por ejemplo, interceptores de métodos y puntos finales para desacoplar código que implementa funcionalidades que, lógicamente hablando, deberían estar separadas.

El módulo WEB de Spring proporciona funciones básicas de integración orientadas a la web, como capacidades de carga de archivos de varias partes, inicialización de contenedores IoC mediante escuchas de servlet y contextos de aplicaciones orientadas a la web. Cuando se usa Spring junto con WebWork o Struts, este es el módulo con el que se realiza la integración.

Figura 3:  Módulos del Framework Spring
Figura 3: Módulos del Framework Spring

ESTUDIO DEL FRAMEWORK JBOSS AOP INTEGRADO CON JBOSS AS

ESTUDIO DE JBOSS APLICATION SERVER

  • Servidor de aplicaciones
  • Arquitectura de la herramienta JBoss AS
  • Presentación de La Herramienta
  • Arquitectura de la herramienta JBoss AOP
  • Mecanismos para el tratamiento de aspectos

A medida que .NET crecía en popularidad, Microsoft etiquetó su producto Internet Information Server como servidor de aplicaciones. Los puntos de interrupción definen qué funciones de programación AOP se aplican a las clases de una aplicación. En este proyecto nos centraremos en el uso de JBoss AOP integrado con el servidor de aplicaciones JBoss.

Esto significa que JBoss AOP puede interceptar puntos de unión durante la ejecución de la aplicación, independientemente de si son públicos, privados o protegidos. JBoss AOP resuelve los enlaces entre puntos de interrupción y sugerencias en tiempo de ejecución. En la Figura 5, podemos ver cómo los aspectos encapsulan la funcionalidad de los servicios y proporcionan una capa superior que se puede integrar más fácilmente con la capa de aplicación.

La capa de servicio se encuentra encima de la capa de microkernel y tiene una arquitectura orientada a servicios (SOA). En otras palabras, los aspectos se pueden gestionar como un servicio de aplicación dentro del núcleo de JBoss AS, que es el servidor JMX.

Figura 4:  Integración de los módulos de JBoss AS usando JXM  6
Figura 4: Integración de los módulos de JBoss AS usando JXM 6

PRESENTACIÓN DEL CASO DE ESTUDIO

  • DESCRIPCIÓN GENERAL DEL SISTEMA POS
  • MODELO CONCEPTUAL DEL SISTEMA POS
  • PAQUETES DE FUNCIONALIDAD BASE
  • ARQUITECTURA DE REFERENCIA

Capa de Control: Conjunto de clases que reciben la solicitud del lado del cliente en clases de tipo Servlet y se encargan de invocar el comando específico asociado a la operación. Capa Lógica de Aplicación: Representada a través de clases de tipo fachada que se encargan de concentrar todos los servicios de la aplicación y manejar las excepciones recibidas de las capas internas. Capa de lógica empresarial: representa la lógica de los objetos comerciales que brindan servicios comunes a más de una aplicación.

Un objeto de negocio complejo representará un objeto de gestión que es responsable de coordinar la interacción con otros objetos de negocio y los objetos correspondientes que representan el estado del objeto de negocio. Capa de transferencia de datos: esta capa mantiene el estado de los objetos comerciales. Los objetos de transferencia de datos (xxxDTO - Objeto de transferencia de datos) son objetos que se comparten en diferentes niveles de la arquitectura para realizar una operación específica.

Capa de Acceso a Datos: Esta es la capa encargada de realizar servicios de persistencia a la base de datos, utilizando el patrón DAO.

Figura 6:  Modelo Conceptual Base
Figura 6: Modelo Conceptual Base

MODELADO DE ASPECTOS

  • ASPECTOS A IMPLEMENTAR
  • ASPECTO DE AUTENTICACIÓN
  • AUDITORIA DE OPERACIONES CRÍTICAS
  • COLOCACIÓN AUTOMÁTICA DE PEDIDO
  • APLICACIÓN DE DIVERSOS DESCUENTOS
  • MANEJO DE MÉTRICAS
  • ESPECIFICACIÓN RESUMIDA DE ASPECTOS ESTUDIADOS

Una implementación no aspectoal de la autenticación obliga a cada opción de menú invocada que requiere control de acceso a llamar explícitamente a un servicio de autenticación. En este caso de estudio, el aspecto de autenticación detecta la llamada del servicio servlet en el que la llamada se activa desde la capa de presentación (servicio (solicitud HttpServletRequest, respuesta HttpServletResponse). Si es un servicio que requiere control de acceso, proporcionará el inicio de sesión. y ventana de contraseña (clase SecurityServlet).

El aspecto es responsable de acceder a la información del usuario y del rol para determinar si el usuario ingresado tiene el rol requerido para la operación desencadenada. Cada vez que se retira un producto del inventario, se realiza una verificación para ver si el nuevo inventario es menor que la cantidad mínima en el inventario. En ese caso, se genera un registro de pedido. De manera similar, cada vez que se realiza el proceso de conteo de productos existentes en el almacén y se registra el inventario real, se genera un registro de pedido si el inventario es menor a la cantidad mínima.

Una característica especial de este aspecto es que su comportamiento se vuelve visible en la presentación cada vez que se agrega. Este aspecto es útil en la fase de prueba y se puede eliminar del producto en funcionamiento simplemente cambiando el archivo de configuración sin tener que cambiar el código de la aplicación.

Figura 10:  Diseño del aspecto de autenticacion
Figura 10: Diseño del aspecto de autenticacion

EVALUACIÓN DE JBOSS AOP

CRITERIOS GENERALES

  • Escalas
  • Curva de aprendizaje
  • Características generales

JBoss AOP proporciona una solución independiente que funciona como un complemento de ofuscación, lo que facilita la definición y aplicación de aspectos. Este entorno permite incluso definir y consultar aspectos de forma interactiva. JBoss AOP le permite asociar propiedades de las clases que implementan el aspecto a través del archivo de configuración o utilizando las funciones de metadatos que proporciona. Otra forma de ver la flexibilidad en JBoss AOP es a través de clases de tipo Mix que extienden dinámicamente el comportamiento de una clase (por ejemplo, un objeto de negocio) mediante la introducción de una interfaz.

7 Herencia En JBoss AOP, un aspecto está definido por una clase Java que implementa una interfaz específica (el método de invocación de la interfaz jboss.aop.Interceptor). JBoss AOP también le permite priorizar el uso de diferentes aspectos en un mismo punto del sistema. El sitio web oficial de JBoss AOP contiene una gran cantidad de material para facilitar el aprendizaje de la herramienta.

Creación de instancias: En JBoss AOP, el aspecto se puede definir con diferentes alcances: A nivel de máquina virtual (PER_VM), a nivel de clase (PER_CLASS), a nivel de instancia (PER_INSTANCE) o a nivel de Punto de unión (PER_JOINPOINT). Complejidad: Estimamos que la introducción de aspectos en JBoss AOP no implica un aumento significativo de la complejidad.

Tabla 2. Resultados Evaluación Cuantitativa
Tabla 2. Resultados Evaluación Cuantitativa

CRITERIOS DE LA PLATAFORMA

  • Madurez
  • Precio
  • Soporte

Desde el punto de vista arquitectónico, se ha tenido cuidado de declarar la funcionalidad que representa el aspecto en paquetes independientes, lo que facilita su ubicación dentro del conjunto de clases. Acoplamiento: Aunque el aspecto trae nuevas clases y métodos, la extensión del aspecto no invade la base del código, dejándolo completamente desacoplado de la funcionalidad del aspecto.

CONCLUSIONES Y TRABAJOS FUTUROS

CONCLUSIONES

El Capítulo 5 modela los aspectos diseñados y explica cómo se implementan en JBoss AOP. Se buscaron aspectos que ayudaran en la implementación tanto de características funcionales (como reordenamiento y descuentos) como de características relacionadas con atributos de calidad (seguridad, desempeño). Realizar una evaluación del framework JBoss AOP según los criterios preestablecidos por el Grupo de Investigación en Ingeniería de Sistemas de la Universidad Eafit.

Uno de los mayores problemas que enfrentamos fue instalar correctamente la aplicación en el servidor JBoss. Porque el servidor JBoss AS necesitaba una jerarquía específica de carpetas para reconocer aspectos en la aplicación web. El diseño de la aplicación siguió una arquitectura por capas utilizando los lineamientos de arquitectura de referencia establecidos por la empresa asociada al proyecto.

El comportamiento de la apariencia puede afectar a más de una capa de la aplicación. En aplicaciones web esto es un poco complicado, ya que requiere intervenir en el marco de información enviado como parámetro de sesión, como se muestra en la siguiente línea de código.

TRABAJOS FUTUROS

De hecho, es muy probable que desee aplicar más de un aspecto en el mismo punto del sistema. Para el caso específico de JBoss AOP, esto se indica mediante una pila. Creemos que el framework JBoss AOP es una alternativa madura que puede usarse en proyectos productivos.

La confiabilidad de esta herramienta está respaldada principalmente por el apoyo que tiene este proyecto por parte de su propietario Red Hat. Las anotaciones son una alternativa disponible en las últimas versiones de Java con el fin de colocar puntos en el código fuente para que puedan ser intervenidos por un precompilador. Aunque el código original toma conciencia de la intervención del aspecto de esta forma, consideramos conveniente analizar situaciones en las que es apropiado utilizar anotaciones.

La versión disponible de JBoss AOP trae consigo un conjunto de clases donde aspectos ya están implementados. Puede ser muy apropiado revisar estas bibliotecas de aspectos con el objetivo de reutilizar algunas de ellas.

BIBLIOGRAFÍA

Instalación de software necesario

Integración de JBoss AOP con JBoss AS en una aplicación WEB, mediante

Montaje del ambiente de desarrollo de la aplicación TesisJBossAOPWeb

Ejecución de la aplicación TesisJBossAOPWeb

Figure

Figura 1:  Arquitectura de JAsCo en tiempo de compilación.
Figura 2:  Arquitectura de JAsCo en tiempo de ejecución.
Figura 3:  Módulos del Framework Spring
Figura 4:  Integración de los módulos de JBoss AS usando JXM  6
+7

Referencias

Documento similar

Error histograms of ensemble mean of NAO [DJF] index forecasted by different seasonal forecasting systems/methodologies initialized with October data: (a) ECMWF System 5; (b)