02.02.2014 Aufrufe

Entwurf einer anwendungsunabhängigen Zugriffskontrolle mittels ...

Entwurf einer anwendungsunabhängigen Zugriffskontrolle mittels ...

Entwurf einer anwendungsunabhängigen Zugriffskontrolle mittels ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Zugriffskontrollverfahren und AOP<br />

3.3 Anwendungsunabhängigkeit durch Aspektorientierte<br />

Programmierung (AOP)<br />

3.3.1 Motivation für AOP<br />

Das Problem, dass der Programmcode der <strong>Zugriffskontrolle</strong> quer über die gesamte<br />

Anwendung verteilt ist, lässt sich <strong>mittels</strong> aspektorientierter Programmierung lösen.<br />

Aspektorientierung soll helfen, eine Schwachstelle objektorientierter Programmierung<br />

zu beheben. Querschnittsaspekte, die die ganze Anwendung betreffen, können nicht<br />

durch hierarchische Modularisierung sinnvoll gelöst werden. Die Untergliederung der<br />

Anwendung in Klassen und Unterklassen sowie Schnittstellen hilft kaum weiter, wenn<br />

der Aspekt sich auf alle Teile <strong>einer</strong> Anwendung bezieht.<br />

Aspektorientierte Programmierung ist eine Methode, mit der man die benötigte<br />

Funktionalität automatisch zu einem Original-Programmcode hinzufügen kann. Das<br />

besondere an AOP ist, dass es dem Programmierer die Arbeit abnimmt, den<br />

Programmcode an mehreren Stellen im Programm abändern zu müssen. Stattdessen<br />

muss nur definiert werden, wo Änderungen vorzunehmen sind und in welchen Fällen<br />

diese Änderungen durchgeführt werden sollen. Ein Übersetzer webt anschließend die<br />

Änderungen, die in den Aspekten definiert wurden, in den Code ein, ohne dass das<br />

Originalprogramm geändert werden muss.<br />

3.3.2 Aspekte<br />

Ein Aspekt ist zum einen die Zusammenstellung aller Anforderungen eines Typs (z.B.<br />

Sicherheit) an ein System. Wie eine Anforderung kann der Aspekt alle Teile des<br />

Systems betreffen. Zum anderen ist der Aspekt ein Programmkonstrukt, wie z.B. eine<br />

Java-Klasse, die alle Codeteile, die sich auf diese Anforderung beziehen, enthält.<br />

Beispielsweise enthält der Aspekt „<strong>Zugriffskontrolle</strong>“ alle Programmteile der<br />

Zugriffskontrollfunktionalität. Der Aspekt definiert außerdem, welche Anwendungsklassen<br />

die Programmteile benötigen, so dass er die entsprechenden Teile zur<br />

Übersetzungszeit zur jeweiligen Anwendungsklasse hinzufügen kann.<br />

Durch diese Kapselung von Anforderungen in Aspekten ist es möglich, im<br />

Gesamtsystem eine stärkere Trennung der Anforderungen bei Design und<br />

29

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!