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

Documents pareils