www.wikidata.de-de.nina.az
Die Schichtenarchitektur auch Schichtenmodell oder Schichtenmuster ist ein haufig angewandtes Strukturierungsprinzip fur die Architektur von Softwaresystemen Dabei werden einzelne Aspekte des Softwaresystems konzeptionell einer Schicht engl tier oder layer zugeordnet Die erlaubten Abhangigkeitsbeziehungen zwischen den Aspekten werden bei einer Schichtenarchitektur dahingehend eingeschrankt dass Aspekte einer hoheren Schicht nur solche tieferer Schichten verwenden durfen Ein System mit Schichtenarchitektur bezeichnet man auch als mehrschichtig Aufrufschema in einer SchichtenarchitekturDie den Schichten zugeordneten Aspekte konnen dabei je nach Art des Systems oder Detaillierungsgrad der Betrachtung z B Funktionalitaten Komponenten oder Klassen sein Inhaltsverzeichnis 1 Klassifikationen 2 Vor und Nachteile 3 Schichtenarchitekturen nach Anzahl der Schichten 3 1 Zwei Schichten Architektur 3 2 Drei Schichten Architektur 3 2 1 Drei Schichten Architekturen bei verteilten Systemen 3 2 2 Drei Schichten Architekturen innerhalb von Software Systemen 3 3 Weitere Schichten 4 Klassische Schichten innerhalb einer mehrschichtigen Architektur 4 1 Dependency Injection 4 2 Prasentationsschicht 4 3 Steuerungsschicht 4 4 Geschaftslogikschicht 4 5 Datenzugriffsschicht 5 Weitere Anwendungen von Schichtenarchitekturen 5 1 Schichtenmodell bei Betriebssystemen 6 Nachvollziehbarkeit 7 Siehe auch 8 Weblinks 9 EinzelnachweiseKlassifikationen BearbeitenMan unterscheidet verschiedene Arten eine Schichtenarchitektur zu designen Bei einer strengen bzw geschlossenen Schichtenarchitektur engl strict layering closed architecture durfen keine Schichten ubersprungen werden und nur die nachstniedrigere Schicht aufgerufen werden Auf diese Weise wird eine hohe Flexibilitat gewahrleistet da bei der Veranderung einer Schicht im schlimmsten Fall anliegende Schichten angepasst werden mussen nicht jedoch das ganze System die einzelnen Schichten sind somit auch leichter test und wartbar Man spricht von direkter Adressierung 1 Bei einer nicht strengen bzw offenen Schichtenarchitektur loose layering open architecture darf eine Schicht jede beliebige untere Schicht aufrufen Ein Vorteil ist dass offene Systeme oft performanter sind als geschlossene da die Daten nicht erst durch dazwischenliegende Schichten hindurchgeschleust werden mussen Dies fuhrt dann jedoch zu einem hoheren Grad der Kopplung der Schichten im Gegensatz zu der i d R gewunschten nur lockeren Kopplung engl loose layering Diese Art der Adressierung nennt man auch indirekte Adressierung 2 Es gibt auch Systeme in denen die einzelnen Schichten mit der daruber und der darunterliegenden Schicht kommunizieren Das bekannteste Beispiel hierfur ist das ISO OSI Modell Oftmals werden Schichtenarchitekturen nach der Anzahl der verwendeten Schichten unterteilt Bei Anwendungssystemen sind dabei verschiedene anwendungsfallabhangige Schichtenarchitekturen gebrauchlich Im Englischen wird zwischen Tier und Layer unterschieden Layer gehoren einer funktionalen Einheit von ein und derselben Software an Dagegen spricht man von Tiers wenn funktionale Einheiten von Software auf voneinander unabhangiger Infrastruktur laufen Vor und Nachteile BearbeitenDurch eine Schichtenarchitektur wird die Komplexitat der Abhangigkeiten innerhalb des Systems reduziert und somit eine geringere Kopplung bei gleichzeitig hoherer Kohasion der einzelnen Schichten erreicht Insbesondere werden dadurch Zyklen im Abhangigkeitsgrafen vermieden Dies hat Vorteile sowohl fur das Verstandnis als auch fur die Wartung des Systems Ausserdem sind einzelne Schichten gut austauschbar ohne das ganze System verandern zu mussen Ein Nachteil eines Schichtenmodells kann sein dass die Ausfuhrungsgeschwindigkeit der Applikation durch den zur Weiterleitung und Transformation von Daten uber eine Schicht geschriebenen Code reduziert wird Dies ist insbesondere bei den Teilen der Applikation merklich der Fall fur die die Daten in tieferliegenden Schichten strukturell besser geeignet waren als in den Schichten auf die sie zugreifen durfen Prominentes Beispiel dafur sind Reports die Aggregate von Daten wie Summen oder Durchschnittswerte darstellen In diesen Fallen wird oft bei den genannten Applikationsteilen zu Gunsten der Ausfuhrungsgeschwindigkeit auf die Vorteile der Schichtenarchitektur verzichtet Schichtenarchitekturen nach Anzahl der Schichten BearbeitenZwei Schichten Architektur Bearbeiten nbsp Beispiel einer 2 Schichten ArchitekturDie zweischichtige Architektur englisch two tier architecture besteht aus zwei Schichten Da nur die hohere auf die niedrigere Schicht zugreifen darf ist die niedrigere Schicht ein Dienstanbieter englisch Server der hoheren Man spricht daher auch oft von einer Client Server Architektur Client Server Architekturen mussen nicht unbedingt mittels unterschiedlicher Rechner realisiert sein vielmehr kann der Client auch als ein Software Modul verstanden werden das auf ein zweites Software Modul auf demselben Rechner meist innerhalb derselben Anwendung zugreift Das in der Abbildung gegebene Beispiel greift jedoch auf eine rechnerseitige Client Server Architektur zuruck Bei Architekturen wie in der Abbildung gegeben wird die Rechenkapazitat weitestgehend auf die Client Rechner ausgelagert um den Server zu entlasten Traditionell kommt ein Fat Client und ein Fat Server zum Einsatz Auf dem Server lauft eine Datenbankanwendung Die Clients ubernehmen dabei die Logik und die Darstellung der Benutzerschnittstelle Drei Schichten Architektur Bearbeiten nbsp Beispiel einer 3 Schichten ArchitekturDie dreischichtige Architektur englisch three tier architecture ist eine Architektur die softwareseitig drei Schichten hat Im Gegensatz zur zweischichtigen Architektur gibt es bei der dreischichtigen Architektur noch eine zusatzliche Schicht oftmals die Logikschicht welche die Datenverarbeitung vornimmt Eine typische Drei Schichten Architektur besteht aus den folgenden Schichten Prasentationsschicht client tier Diese auch Front End bezeichnet ist fur die Reprasentation der Daten Benutzereingaben und die Benutzerschnittstelle verantwortlich Logikschicht application server tier Businessschicht Middle Tier oder Enterprise Tier Sie beinhaltet alle Verarbeitungsmechanismen Hier ist die Anwendungslogik vereint Datenhaltungsschicht data server tier back end Sie enthalt die Datenbank und ist verantwortlich fur das Speichern und Laden von Daten Drei Schichten Architekturen bei verteilten Systemen Bearbeiten nbsp Mehrschichtige Systemarchitekturen wie die dreischichtige Architektur sind gut skalierbar da die einzelnen Schichten logisch voneinander getrennt sind So kann z B bei verteilten Systemarchitekturen die Datenschicht auf einem zentralen Datenbank Server laufen die Logikschicht auf Workgroup Servern und die Prasentationsschicht befindet sich auf der jeweiligen Workstation des Benutzers Ein Beispiel fur eine verteilte Drei Schichten Architektur ist Citrix Interaktion Client Funktion Citrix Server Daten Datenbankserver Wie die Grafik zeigt gibt es zwischen Client und Server verschiedene Moglichkeiten zur Verteilung der Schichten Grundsatzlich gilt Je hoher naher an der Prasentationsschicht die Schicht ist desto eher wird sie von einem Client bearbeitet Je tiefer naher an der Datenschicht die Schicht ist desto eher ist sie Aufgabe eines Servers Drei Schichten Architekturen innerhalb von Software Systemen Bearbeiten Die Architektur lasst sich auch innerhalb eines Software Systems umsetzen indem die Software Module welche fur Prasentation Anwendungslogik und persistente Speicherung von Daten zustandig sind den einzelnen Schichten zugeordnet werden und gemass der Schichteneinteilung voneinander entkoppelt werden Neben einer Strukturierung gemass dem Model View Controller Architekturmuster gilt eine solche Drei Schichten Architektur ublicherweise als das Mindestmass architektonischer Strukturierung sofern keine zwingenden Grunde fur andere Architekturentscheidungen vorliegen Weitere Schichten Bearbeiten nbsp Schichtenmodell in modernen Anwendungen nbsp Ubersicht des ISO OSI ModellsNeben den oben genannten Schichten werden in verschiedenen Quellen andere Aufteilungen herangezogen Grundsatzlich bezeichnet eine Schichtenarchitektur ein Architekturmuster das hinsichtlich der Art und Anzahl seiner Schichten nicht beschrankt ist Sehr haufig finden sich in Software Systemen wie auch bei verteilten Anwendungen die folgenden Schichten Anwendung Anwendungen werden weiter unterteilt in Dependency Injection Anwendungsprasentation Geschaftslogik Datenzugriff Steuerung Datenprasentation DatenhaltungWeitere Details zu den einzelnen Schichten werden im Abschnitt Klassische Schichten innerhalb einer mehrschichtigen Architektur beschrieben Ein Beispiel fur eine Architektur mit sieben Schichten bietet das ISO OSI Modell das in der Abbildung rechts dargestellt ist Das OSI Modell beschreibt hierbei die Aufteilung des Netzwerk Stacks jedoch nicht die Aufteilung innerhalb einer Anwendung Klassische Schichten innerhalb einer mehrschichtigen Architektur BearbeitenDependency Injection Bearbeiten Die Dependency Injection Schicht ist die oberste Schicht in Anwendungen Sie ist dabei fur die Clienten der Anwendung vollig transparent und dient dazu alle von der Anwendung benotigten Objekte bereitzustellen Anwendungen welche auf eine DI Schicht verzichten weisen das Service Locator Antimuster oder gar starke Abhangigkeiten auf und bieten nur eine eingeschrankte Validier und Testbarkeit 3 Prasentationsschicht Bearbeiten nbsp Erweiterung einer Drei Schichten Architektur um Prasentations SchichtDie Prasentationsschicht engl client layer oder presentation layer ist fur die Darstellung und Entgegennahme von der Software bearbeiteten Daten sowie der von der Software bereitgestellten Funktionen verantwortlich Bei verteilten Systemen existieren fur die Darstellung der Inhalte zwei Alternativen Man setzt auf den Webbrowser als Thin Client und stellt die Inhalte und Formulare in XHTML XML JavaScript und anderen fur das World Wide Web geschaffenen Sprachen dar nutzt also eine klassische Webanwendung Die Kommunikation mit tieferen Schichten erfolgt normalerweise uber HTTP Man produziert eine eigene grafische Benutzeroberflache als Fat Client Dieser nutzt die erweiterten Darstellungsmoglichkeiten der dafur verwendeten Programmiersprache bzw Grafikbibliothek wie Flash Java Swing oder XAML Dieser kommuniziert mit der Anwendungsschicht uber Netzwerkprotokolle wie SOAP Java RMI oder Microsoft NET Remoting Steuerungsschicht Bearbeiten Die Steuerungsschicht engl process layer dient der Koordination mehrerer fachlich abgegrenzter Teile der Geschaftslogikschicht Zum Beispiel bei einer serviceorientierten Architektur erfolgt hier die Orchestrierung In der Steuerungsschicht liegt haufig auch die Verantwortung fur die Transaktionssteuerung Geschaftslogikschicht Bearbeiten Die Geschaftslogikschicht auch Verarbeitungsschicht Anwendungslogikschicht Domanenschicht application layer oder middle tier realisiert das eigentliche Geschaftsmodell indem die am Geschaftsmodell beteiligten Geschaftsobjekte mit der zugehorigen Logik implementiert werden Datenzugriffsschicht Bearbeiten nbsp Erweiterung Daten Integrations SchichtDie Datenzugriffsschicht kapselt den Zugriff auf persistente Daten und die dabei verwendeten Techniken Fur die persistente Speicherung werden haufig Datenbanken eingesetzt bei anderen Systemen konnen aber auch normale Dateien verwendet werden Beim Einsatz von Datenbanken werden fur den Datenaustausch mit der Datenhaltungsschicht Datenbankschnittstellen sowie alternativ der direkte Zugriff auf das DBMS Datenbank Management System verwendet z B bei PHP Bei Verwendung von objektorientierter Programmierung im Zusammenspiel mit einem relationalen DBMS wird in der Datenzugriffsschicht eine objektrelationale Abbildung object relational mapping ORM benotigt die oft durch den Einsatz eines ORM Frameworks umgesetzt wird Weitere Anwendungen von Schichtenarchitekturen BearbeitenSchichtenmodell bei Betriebssystemen Bearbeiten nbsp Schematische DarstellungEin Schichtenmodell auch Schalenmodell genannt ist eines von drei wesentlichen Architekturmodellen von Betriebssystemen Neben dem monolithischen Kernel und dem Microkernel gibt es das Schichtenmodell Bei dem Schichtenmodell sind die verschiedenen Betriebssystemkomponenten wie Schalen aufeinander aufgebaut Dies ist auch in der nebenstehenden Abbildung zu sehen Die Ubergange zwischen den Schichten werden von Schnittstellen gebildet wobei die Ubergange sauber sein mussen es gibt keine Sprunge z B von einem Anwendungsprogramm direkt in die Datenstruktur Die Kommunikation erfolgt uber die Schnittstellen jeder einzelnen Zwischenschicht Allgemein kann man sagen je naher eine Schicht an der Hardware desto privilegierter ist diese bezuglich Schreib und Leseberechtigungen Der Ubergang vom Kernel Mode zum User Mode kann unter Umstanden schwer abzugrenzen sein Siehe auch Ring CPU Nachvollziehbarkeit BearbeitenEine Ende zu Ende Verfolgung der Kommunikation zwischen den einzelnen Schichten wird in komplexen Systemen immer bedeutsamer und kann durch den Application Response Measurement Standard mittels korrelierten Transaktionen einer jeden Schicht implementiert werden Siehe auch BearbeitenAnwendungsserver Architekturmuster Client Server Modell IT Architektur Model View Controller Orchestrierung Serviceorientierte Architektur Verteiltes System Webservice ISO OSI ModellWeblinks Bearbeiten Three Tier Development von Manfred Ratzmann 3 Tier Architecture mit NET Video Howto Beschreibung einer konkreten Schichtenarchitektur fur NET WPF Rich Client Anwendungen englisch Einzelnachweise Bearbeiten Frank Buschmann et al Pattern Oriented Software Architecture A System of Patterns John Wiley amp Sons 1996 Frank Buschmann et al Pattern Oriented Software Architecture A System of Patterns John Wiley amp Sons 1996 Daniel Baharestani Mastering Ninject for Dependency Injection Packt Publishing ISBN 978 1 78216 620 7 englisch 142 S Abgerufen von https de wikipedia org w index php title Schichtenarchitektur amp oldid 229062912