Deutsch (DE-CH-AT)English (EN)Francais (Fr)

AOP in der Praxis: Implementierung eines Objekt-Cache

Implementing Object Caching with AOP

Aspect-Oriented Programming (AOP) befindet sich auf dem Weg von den Forschungslabors in den rauen Praxiseinsatz. Während die Konzepte klar definiert sind und inzwischen sogar eine ganze Palette an AOP-Werkzeugen zur Verfügung steht, wird über Einsatzfälle in der Praxis noch selten berichtet. „Implementing Object Caching with AOP“ ist ein Artikel von Srini Penchikala, der ein ausführliches und praxisnahes Beispiel für den sinnvollen Einsatz von AOP liefert.

Srini Penchikala, Information Systems Subject Matter Expert bei der Flagstar Bank, hat bereits eine ganze Reihe von Fachartikeln veröffentlicht und sich vor allem im J2EE-Bereich einen Namen gemacht. Auf der Java-Community-Website „TheServerSide.com“ präsentiert er ein anschauliches und praxisnahes Beispiel für den vorteilhaften Einsatz von AOP-Techniken. Als konkrete Werkzeuge werden AspectJ sowie JBossCache und OSCache eingesetzt, wobei sich der Artikel um eine möglichst neutrale, nicht werkzeuggebundene Darstellung der Konzepte bemüht. AOP-Programmiererfahrung beim Leser wird nicht vorausgesetzt.

TheServerSide.COM - Your Enterprise Java Community

Das präsentierte Beispiel besteht in der Implementierung eines Objekt-Cache für eine J2EE-Anwendung. Nach einer Motivation, einen solchen Objekt-Cache als Aspekt zu sehen und zu definieren, werden die zu realisierenden Caching-Funktionalitäten im Detail vorgestellt. Die Realisierung der Cache-Zugriffe mit AspectJ wird ausführlich erläutert, ergänzt durch Testergebnisse. Ein AOP-Anhang, der die wichtigsten AOP-Begriffe erklärt, rundet den Artikel ab.

"One advantage of using aspects compared to traditional object oriented programming is that if something doesn't turn out to be as effective as originally expected, the aspect can be seamlessly un-weaved from the application code without any impact on the actual code. Aspects provide plug-n-play capabilities in the application development."
(S. Penchikala, im Artikel „Implementing Object Caching with AOP“)

Laut Penchikala bestünden klassische Ansätze zur Cache-Implementierung in der Realisierung der Zugriffslogik in einer eigenen Klasse plus Kapselung der Cache-Zugriffe in einer eigenen Methode pro Klasse, oder in einer aus einer gemeinsamen Basisklasse ererbten Methode. AOP biete hier den Vorteil einer sauberen, nahtlosen Trennung des Caching von der eigentlichen Anwendungslogik. Das Caching lasse sich nach Bedarf ein- oder ausschalten, und man könne zwischen verschiedenen Caching-Techniken umschalten, ohne einen Wartungs- und Laufzeit-Overhead zu produzieren.

Penchikala demonstriert die Vorteile der aspektorientierten Implementierung durch Testresultate mit ein- und ausgeschaltetem Caching. Einen direkten Vergleich der AOP-Realisierung mit einer klassischen OO-Realisierung bleibt er jedoch schuldig. Konzeptionell liegen zwar die Vorteile der AOP-Lösung auf der Hand. Es wäre dennoch interessant, die Einsparung an Overhead – und damit den Nutzen der AOP-Realisierung – einmal zu quantifizieren. Doch bilden Sie sich selbst ihr Urteil.

Den Artikel von Srini Penchikala finden Sie unter:
http://www.theserverside.com/articles/article.tss?l=ObjectCachingWithAOP

 
Weitere Infos
Newsletter
Quotes
„Mit Delta zu arbeiten, erwies sich als eine sehr gute Entscheidung. Sie lieferten als einzige eine Lösung, die unsere Erwartungen erfüllte. Aus der Sicht von RDW ist Delta ein außerordentlich engagiertes Unternehmen mit einem noch höheren Maß an fachlicher Kompetenz."
Gerard Doll, Direktor ICT, RDW, Niederlande

RDW Fallstudie

Bookmark and Share