Fa. MATHEMA - Lehrstuhl für Informatik 11 (Software Engineering)
Transcription
Fa. MATHEMA - Lehrstuhl für Informatik 11 (Software Engineering)
AOP in der Praxis Aspektorientierung in Projekten der MATHEMA Oliver Szymanski [email protected] Werner Eberling [email protected] www.mathema.de AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 1 Gliederung Definition Ist-Analyse: AOP in Projekten Anwendungsgebiete Vor-/Nachteile Realisierung Rechtliche Problematik AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 2 Bevor es losgeht ... Was machen wir nicht: Produktentwicklung Was machen wir stattdessen: Projektentwicklung Unterstützung und Beratung unserer Kunden im Banken- / Versicherungs- / Dienstleistungsbereich Technisches Umfeld meist Java/JEE, .NET in verteilten Systemen AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 3 Unsere Definition von AOP AOP als Konzept Code nachträglich mit Querschnitts-Funktionalität dekorieren Das bedeutet Wiederverwendbarkeit (im Projekt) Unabhängigkeit der Aspekte Realisierungsformen Interceptoren / Proxies Byte-Code-Manipulation AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 4 AOP in Projekten Projekte: Callcenter-Anwendung Bankumfeld Callcenter-Anwendung CRM Verteilte Verbraucherkredit-System Trading API AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 5 Callcenter-Anwendung Bankumfeld Technologien: JSF, Spring, Hibernate AOP mit: Spring-AOP Anwendungsfälle: Tracing Logging Zeitmessungen Transaktionssteuerung Exception-Mapping AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 6 Callcenter-Anwendung CRM Technologien: JEE AOP mit: EJB-Interceptoren Anwendungsfälle: Tracing Logging Transaktionssteuerung Prüfen von ResultCodes bei Methodenaufrufen AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 7 Verteiltes Verbraucherkredit-System Technologien: JEE AOP mit: Servlet-Filter, JBoss-AOP Anwendungsfälle JBoss-AOP: Tracing, Logging Anwendungsfälle Servlet-Filter: Bereitstellung eines applikationsübergreifenden fachlichen und technischen Kontextes => Pflege des Kontextinhaltes über AOP Validierung über AOP zeigte sich problematisch AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 8 Trading API Technologien: .NET-Assembly (Client-API) AOP mit: eigene Interceptor-Implementierung Anwendungsfälle: Tracing (Protokollierung aller Vorgänge zur rechtlichen Absicherung) Validierung (technisch) Verschlüsselung AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 9 AOP in Laufzeitumgebung Technologien: JEE, .NET-Komponenten Anwendungsfälle: Transaktionssteuerung Zugriffsschutz Fehlerbehandlung Objektinstanzverwaltung Threadmanagement AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 10 Anwendungsgebiete (Abgrenzung) Technik (was wir „leider“ implementieren müssen) ist die Bereitstellung von Infrastruktur Fachlichkeit (was wir eigentlich implementieren wollen) ergibt sich als Teil eines Geschäftsprozesses AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 11 Anwendungsgebiete Technische Aspekte: Tracing, Logging Transaktionssteuerung Prüfung Vor-/Nachbedingungen, Fehlerbehandlung Monitoring Bereitstellung von Kontexten Zugriffsschutz Objektinstanzverwaltung Threadmanagement AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 12 Anwendungsgebiete Fachliche Aspekte: Tracing (Protokollierung) ...(?) AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 13 Leider keine Anwendungsgebiete Technische Aspekte: Persistenz (wie die Erfahrung zeigt) ... Fachliche Aspekte: Zugriffsschutz auf Instanz-/Parameter-Ebene Validierung (technisch möglich, fachlich zu komplex) ... AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 14 Vorteile Zentral an einer Stelle – keiner kann es vergessen Keine „Verschmutzung“ von Code Dekorieren von Software AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 15 Nachteile Verteilung der Logik (Separation of Concerns) technisch gewünscht, aber fachlich problematisch Debuggen/Fehlersuche wird erschwert Auswirkungen bei Änderungen eines Aspektes schwer überschaubar (Seiteneffekte) denn geforderte Unabhängigkeit meist nicht gegeben ohne Seiteneffekt ist der Sinn eines Aspektes fraglich AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 16 Wenn Aspekte: Wie? Byte-Code-Manipulation Viel mächtiger als erforderlich Schlechte Wartbarkeit Bewegen auf einer Ebene, die wir nicht betreten wollen Missbrauchsgefahr, Macht in fremden Code einzugreifen Auditfähigkeit nicht gegeben Entscheidungsträger übernehmen dafür i.d.R. keine Verantwortung Erforderlich für Tool-Hersteller (z.B. Profiler) AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 17 Wenn Aspekte: Wie? Interceptoren Ausreichend mächtig für die tatsächlichen Anwendungsgebiete Wartbar Nicht beliebig verwebbar Definierte Eingriffsmöglichkeiten, weniger Missbrauch Auditfähig Benötigen Infrastruktur AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 18 Rechtliche Problematik Anpassung von Software: Lizenzen / Urheberrechte Verlust von Support z.B. bei Interceptoren zwischen eingekauften Komponenten AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 19 Zusammenfassung AOP wird eingesetzt und funktioniert Aber vielleicht nicht wie erwartet Leider hauptsächlich technische Aspekte Starke Nutzung im Rahmen von Laufzeitumgebungen Realisierung eigener Aspekte, aber Fachlichkeit bleibt meist außen vor Interceptoren statt Byte-Code-Manipulation Verwebung mit beliebigen Codestellen meist nicht erforderlich AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 20 Fragen? Vielen Dank! [email protected] [email protected] AOP in der Praxis - O. Szymanski, W. Eberling Copyright © 2007 MATHEMA Software GmbH 21