Abstrakte Pakete sichern Flexibiltät

Dadurch werden die Auswirkungen von Veränderungen minimiert, was zu höherer architektonischer Integrität führt. Wir werden ein paar heuristische Methoden untersuchen, die dabei helfen können, dass die Beziehungen in einem Paket flexibel sind. Darüber hinaus werden wir auch untersuchen, wie diese heuristischen Methoden die Erstellung von Softwarearchitekturen unterstützen, die sehr flexibel und einfach zu pflegen sind.

Pakete müssen veränderbar sein

Pakete, von denen man stark abhängig ist, kompromittieren die architektonische Integrität, weil jegliche Veränderungen des Inhalts andere Teile, die auf das gleiche Paket angewiesen sind, beeinflussen. Wenn man dagegen von einem Paket nicht so stark abhängt, dann sind die Auswirkungen von Veränderungen weniger drastisch.

Die meisten Internet-Anwendungen erfordern einen Logging-Mechanismus, der es der Anwendung erlaubt, bestimmte Fehlerbedingungen zurückzuverfolgen, oder der beim Debugging helfen kann. Der Logging-Mechanismus ist meistens eine vorgefertigte Komponente, wie z.B. Log4j von Apache oder die neuen Logging-Funktionen in Java 2 v.1.4. Gleich welcher Mechanismus verwendet wird, eine starke Abhängigkeit vom Logging-Paket in der gesamten Applikation vergrößert inhärente Gefahren, jedes Mal, wenn der Inhalt des Logging-Pakets geändert wird.

Weil so viele Pakete im System vom Logging-Paket abhängen, ist es wichtig, die Wahrscheinlichkeit von Veränderungen zu minimieren. Einerseits kann man das erreichen, indem man Veränderungen auf solche Veränderungen in der Implementierung beschränkt, die keine Client-Pakete beeinflussen. Da eine externe Logging-Funktion verwendet wird, die man nicht beeinflussen kann, braucht man einen Ansatz, der die Auswirkungen von Veränderungen auf die Logging-Funktion minimiert. Ein allgemein üblicher Ansatz, um die Applikation vor Veränderungen in der zugrunde liegenden Implementierung zu schützen, ist das Facade-Modell. Abbildung A illustriert eine LoggingFacade-Klasse, die separat in der logfacade verpackt ist.

Abbildung A: Die LoggingFacade-Klasse (Abbildung vergrößern)

Diese Facade hilft, die Applikation vor Veränderungen der Logging-Implementierung zu isolieren. Alle Abhängigkeiten der Applikation vom Logging müssen zwangsläufig die logfacade durchlaufen. Selbst wenn die Logging-Implementierung häufige Veränderungen oder Upgrades erfordert, sind diese Veränderungen doch gut isoliert, und keine anderen Komponenten der Applikation sind vom Logging-Paket in hohem Maße abhängig.

Wenn die LoggingFacade-Klasse separat in ihrem logfacade-Paket verpackt ist, unterstützt sie jede einzelne der folgenden heuristischen Methoden, aus der Perspektive der Logging-Implementierung:

  • auf Pakete, die sich am wenigsten ändern, sollte man sich am meisten stützen.
  • auf Pakete, die sich am meisten ändern, sollte man sich am wenigsten stützen.

Das logfacade-Paket jedoch ist immer noch gefährlich, dadurch, dass Veränderungen Auswirkungen auf Komponenten haben können, die das logfacade-Paket nutzen. Wenn die vorhandene Logging-Komponente ausgetauscht oder eine andere Logging-Komponente als Option angeboten wird, dann kann die Isolation, die durch logfacade geboten wird, kompromittiert werden. Sie muss verändert werden, um die neue Implementierung zu unterstützen. Weil das logfacade-Paket in der gesamten Anwendung genutzt wird, muss man sicherstellen, dass das Paket so flexibel wie möglich ist. Abstraktion ist die Antwort.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Abo für Facebook: Verbraucherzentrale NRW klagt erneut gegen Meta

Diesmal geht es um das neue Abomodell für Facebook und Instagram. Die Verbraucherschützer klagen auf…

12 Stunden ago

Jedes zweite Gerät mit Redline-Infostealer infiziert

Infostealer-Infektionen haben laut Kaspersky-Studie zwischen 2020 und 2023 um mehr als das sechsfache zugenommen.

17 Stunden ago

Kaspersky warnt vor kritischen Sicherheitslücken in Cinterion-Modems

Betroffen sind Millionen IoT- und M2M-Geräte Geräte weltweit. Unter anderem können Angreifer per SMS Schadcode…

22 Stunden ago

Google schließt Zero-Day-Lücke in Chrome

Von ihr geht ein hohes Risiko aus. Angreifbar sind Chrome für Windows, macOS und Linux.

4 Tagen ago

KI erkennt Emotionen in echten Sportsituationen

Forschende des KIT haben ein Modell zur Emotionsanalyse entwickelt, das affektive Zustände ähnlich genau wie…

4 Tagen ago

Ermittlern gelingt weiterer Schlag gegen Ransomware-Gruppe LockBit

Sie decken die Identität des Kopfs der Gruppe auf. Britische Behörden fahnden mit einem Foto…

5 Tagen ago