Professional Documents
Culture Documents
Agenda
Introduccin Programacin orientada a aspectos Aplicaciones enterprise Hacia AE con AOP
Mitos Estado del arte Incumbencias tcnicas y del negocio
Agenda
Introduccin
Programacin orientada a aspectos Aplicaciones enterprise
Conclusiones
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Problemtica abordada
La mayor parte del desarrollo de software local est abocado a aplicaciones enteprise.
Soporte a proceso de negocio Modificaciones repentinas Atributos de calidad de dificil modularizacin
Objetivo de la tesis
Analizar el uso de AOP en las AE Proponer una solucin AOP para AE en la plataforma .NET Desarrollar una aplicacin de referencia
El surgimiento de AOP
Kiczales @ XPARC 97
Cdigo disperso Cdigo mezclado CCC = Incumbencias transversales AOP (enfoque asimtrico)
AOSD.net
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Xml parsing
Elementos de AOP
Joinpoint Pointcut Advice Aspecto Weaving
public aspect LogAspect { pointcut printing() : call(* *.print*(..)); before(): printing(){ System.out.println("Before printing"); } } public class Foo { public static void main(String[] args) { Foo foo = new Foo(); foo.printFoo(); } public void printFoo() { System.out.println("Foo!"); }
Herramientas AOP
De entretejido esttico
Compiladores, preprocesadores, posprocesadores Aspectj, aspectC++, aspect.NET
De entretejido dinmico
Basadas en proxies dinmicos Spring, Naspect, JBossAOP
Aplicaciones enterprise
Soporte a procesos de negocio Muchos usuarios Grandes volmenes de informacin Integracin con otras aplicaciones Requisitos complejos y variantes
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Aplicaciones enterprise
Atributos de calidad
Disponibilidad, desempeo, escalabilidad, mantenibilidad, reusabilidad, usabilidad, seguridad,...
Atributos tcnicos
Transaccionalidad, cach, persistencia, distribucin, monitoreo, concurrencia, ....
Patrones de diseo
Arquitectura en Capas Orientacin a servicios
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Arquitectura Enteprise
Agenda
Introduccin
Programacin orientada a aspectos Aplicaciones enterprise
Conclusiones
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
AE & AOP
Separacin de incumbencias
Incumbencias tcnicas Incumbencias del negocio
R. Johnson, J2EE without EJB R. Pawlak, AOP for J2EE AOP Alliance
Centrado en Java Descontinuado Poca adopcin
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Posibles soluciones
Herramientas de desarrollo SetPoint: modelo de poincuts semnticos
Incumbencias tcnicas
No pertenecen a la dimensin dominante Resulta dificultosa su modularizacin Pueden estan presentes en ms de una capa
Auditora Cach Manejo de excepciones
Aplicacin
AOP
Biblioteca Enterprise
Entretejido dinmico
Permite agregar / quitar aspectos en caliente Alto desacople entre la aplicacin y la biblioteca
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Transaccionalidad
Cach
Entretejido esttico
Asegura la ejecucin de las reglas (no permite que se apaguen) Pueden existir dependencias regla-dominio
Aquitectura AOP-Compatible
Arquitectura AOP-Compatible
Dominio Bancario
Aspect.NET Framework
Solucin AOP
Agenda
Introduccin
Programacin orientada a aspectos Aplicaciones enterprise
Conclusiones
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Conclusiones I
Incubencias tcnicas
tienen naturaleza transversal y el uso de AOP resulta muy conveniente Facilita el foco en el negocio Permite en alto grado de reuso de aspecto
Incumbencias de negocio
AOP permite separar las reglas expecficas del negocio de los conceptos generales del dominio, facilitando la evolucin de las reglas
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Conclusiones II
Caso de estudio
Mejor separacin de incumbencias Reduccin de cdigo repetido, disperso y entremezclado
Herramientas utilizadas
Aspect.NET an le falta maduracin respecto a AspectJ Es necesaria mayor integracin con el entorno de desarrollo (asistentes, depuracin, etc)
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Conclusiones III
Conceptualmente falta la posibilidad de indicar donde NO deben aplicarse aspectos. Cuestiones abiertas
Uso de AOP en la capa de presentacin Estudio de las posibilidades de separacin de incumbencias ofrecidas por la versin 3.5 de la plataforma.NET Actividades de ingeniera orientada a aspectos
Utilizacin de AOP en aplicaciones enterprise, Nicols M. Paez
Fin
Nicols Paez npaez@fi.uba.ar www.fi.uba.ar/~npaez
Sitios de referencia
AspectJ: www.eclipse.org/aspectj Spring: www.springframework.net AOSD: www.aosd.org Early Aspects: www.earlyaspects.org
Back up slides
Definiciones
Requisito: circunstancia o condicin necesaria para algo. Requirimiento: accin y efecto de requerir. Aviso, manifestacin o pregunta que se hace, generalmente bajo fe notarial, a alguien exigiendo o interesando de l que exprese y declare su actitud o su respuesta Requirement: necesidad. Choose a car that suits your requirements = Elija un coche adecuado a sus necesidades. What are your requirements? = qu necesita usted?. To meet somebody's requirements = satisfacer las necesidades de alguien. requisito. You must satisfy these requirements = debe llenar or satisfacer estos requisitos
CuentaCorriente
Caj aDeAhorro +
Prestacion
CuentaCorriente
CajaDeAhorro + # #
Prestacion TransferenciaBancoXXX + # # ejecutar() : void notificarT erceros() : void verificarLim ites() : void
CuentaCorriente
Caj aDeAhorro +
Prestacion
Aspect.NET
cdigo fuente aspectos Aspect.NET ML Convertidor cdigo intermedio aspectos compilador cdigo fuente clases Aspect.NET weaver cdigo intermedio clases aplicacin
Aspect.NET Framework
Spring Framework