POSA 1 - Part 1
Pattern Oriented Software Architecture
Pattern Oriented Software Architecture
Fichier Détails
Cartes-fiches | 11 |
---|---|
Langue | Deutsch |
Catégorie | Informatique |
Niveau | Université |
Crée / Actualisé | 29.12.2015 / 09.01.2016 |
Attribution de licence | Non précisé (Jeyanthan Ravindran) |
Lien de web |
https://card2brain.ch/box/layerspattern
|
Intégrer |
<iframe src="https://card2brain.ch/box/layerspattern/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Layers-Pattern
Kontext
Ein grosses Anwendungssystem, welches strukturiert werden soll. Bekanntes Beispiel: OSI-Layer.
Problem
Ein System soll aus unterschiedlichen High- und Low-Level Funktionen erstellt werden.
Lösung
Die Anwendung soll in Layers aufgeteilt werden, wobei Layering eine horizontale Aufteilung der Anwendung darstellt. Layer einer höheren Schicht dürfen nur auf die Layers von den unteren Schichten zugreifen. In der Regel dürfen diese nur auf den direkt darunterliegenden Layer zugreifen. Dieser leitet die Anfragen anschliessend ggf. an den erneut darunterliegenden Layer weiter.
Layering Trough Inheritance
Tiefere Layer implementieren deren Funktionalität als Basisklassen. Höhere Layer leiten von diesen Klassen ab und können dadurch das Verhalten anpassen. Dadurch entsteht jedoch eine sehr starke Kopplung, daher ist davon abzuraten.
Pipe and Filters
Das Pipes and Filters Patterns (oder Data Flow Architektur) wird bei Anwendungen die Datenströme verarbeiten angewendet. Die einzelnen Verarbeitungsschritten entsprechen den Filtern. Die Pipes, welche jeweils zwei Filter verbinden, stellen den Datenstrom zwischen den Filtern dar. Die einzelnen Filter sollten unabhängig realisiert werden und haben keine Abhängigkeit untereinander. Dadurch wird eine hohe Flexibilität erreicht.
Lösung:
Die Aufgaben eines Systems werden in einzelne sequentielle Prozessschritte unterteilt. Jeder einzelne Prozessschritt wird als Filter implementiert, welcher einen Datenstrom entgegen nimmt, verarbeitet und zu einem ausgehenden Datenstrom führt. Die Quelle (Pump) der Daten, die Filterkomponente sowie die Senke (Verbraucher) sind jeweils
durch eine Pipe verbunden.
Für die Kommunikation zwischen den Filtern sollte ein uniformes Datenformat etabliert werden. Dadurch können die Filter unabhängig zum vorherigen Filter kombiniert werden. Die Transformation in das Datenformat kann jedoch zu grossem Overhead führen.
Complex
Bei dieser Varianten sind sämtliche Filter aktiv. Die Pipes unterstützen ein Buffern der Daten. Die einzelnen Filter laufen in einem eigenen Thread und arbeiten die Daten immer so lange ab, solange Daten in der Pipe verfügbar sind. Jeder
Filter verarbeitet solange Daten, bis die Pipe leer ist, in diesem Fall wartet dieser auf eingehende Daten.