Schichtenarchitektur

Aufrufschema in einer Schichtenarchitektur

Die Schichtenarchitektur (auch Schichtenmodell oder Schichtenmuster) ist ein häufig angewandtes Strukturierungsprinzip für die Architektur von Softwaresystemen. Dabei werden einzelne Aspekte des Softwaresystems konzeptionell einer Schicht (engl. tier oder layer) zugeordnet. Die erlaubten Abhängigkeitsbeziehungen zwischen den Aspekten werden bei einer Schichtenarchitektur dahingehend eingeschränkt, dass Aspekte einer höheren Schicht nur solche tieferer Schichten verwenden dürfen. Ein System mit Schichtenarchitektur bezeichnet man auch als „mehrschichtig“.

Die den Schichten zugeordneten Aspekte können dabei je nach Art des Systems oder Detaillierungsgrad der Betrachtung z. B. Funktionalitäten, Komponenten oder Klassen sein.

Klassifikationen

Man unterscheidet verschiedene Arten eine Schichtenarchitektur zu designen:

  • Bei einer strengen bzw. geschlossenen Schichtenarchitektur (engl. strict layering, closed architecture) dürfen keine Schichten übersprungen werden und nur die nächstniedrigere Schicht aufgerufen werden. Auf diese Weise wird eine hohe Flexibilität gewährleistet, da bei der Veränderung einer Schicht im schlimmsten Fall anliegende Schichten angepasst werden müssen (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 müssen. Dies führt dann jedoch zu einem höheren Grad der Kopplung der Schichten im Gegensatz zu der i. d. R. gewünschten 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 darüber- und der darunterliegenden Schicht kommunizieren. Das bekannteste Beispiel hierfür ist das ISO/OSI-Modell.

Oftmals werden Schichtenarchitekturen nach der Anzahl der verwendeten Schichten unterteilt. Bei Anwendungssystemen sind dabei verschiedene anwendungsfallabhängige Schichtenarchitekturen gebräuchlich.

Im Englischen wird zwischen Tier und Layer unterschieden: Layer gehören einer funktionalen Einheit von ein und derselben Software an. Dagegen spricht man von Tiers, wenn funktionale Einheiten von Software auf voneinander unabhängiger Infrastruktur laufen.

Vor- und Nachteile

Durch eine Schichtenarchitektur wird die Komplexität der Abhängigkeiten innerhalb des Systems reduziert und somit eine geringere Kopplung bei gleichzeitig höherer Kohäsion der einzelnen Schichten erreicht. Insbesondere werden dadurch Zyklen im Abhängigkeitsgrafen vermieden. Dies hat Vorteile, sowohl für das Verständnis als auch für die Wartung des Systems. Außerdem sind einzelne Schichten gut austauschbar, ohne das ganze System verändern zu müssen.

Ein Nachteil eines Schichtenmodells kann sein, dass die Ausführungsgeschwindigkeit der Applikation durch den zur Weiterleitung und Transformation von Daten über eine Schicht geschriebenen Code reduziert wird. Dies ist insbesondere bei den Teilen der Applikation merklich der Fall, für die die Daten in tieferliegenden Schichten strukturell besser geeignet wären als in den Schichten, auf die sie zugreifen dürfen. Prominentes Beispiel dafür sind Reports, die Aggregate von Daten wie Summen oder Durchschnittswerte darstellen. In diesen Fällen wird oft bei den genannten Applikationsteilen zu Gunsten der Ausführungsgeschwindigkeit auf die Vorteile der Schichtenarchitektur verzichtet.

Schichtenarchitekturen nach Anzahl der Schichten

Zwei-Schichten-Architektur

Beispiel einer 2-Schichten-Architektur

Die zweischichtige Architektur (englisch two tier architecture) besteht aus zwei Schichten. Da nur die höhere auf die niedrigere Schicht zugreifen darf, ist die niedrigere Schicht ein Dienstanbieter (englisch Server) der höheren. Man spricht daher auch oft von einer Client-Server-Architektur.

Client-Server-Architekturen müssen 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 zurück.

Bei Architekturen wie in der Abbildung gegeben, wird die Rechenkapazität 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 läuft eine Datenbankanwendung. Die Clients übernehmen dabei die Logik und die Darstellung der Benutzerschnittstelle.

Drei-Schichten-Architektur

Beispiel einer 3-Schichten-Architektur

Die 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 zusätzliche Schicht, oftmals die Logikschicht, welche die Datenverarbeitung vornimmt.

Eine typische Drei-Schichten-Architektur besteht aus den folgenden Schichten:

  • Präsentationsschicht (client tier) – Diese, auch Front-End bezeichnet, ist für die Repräsentation 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 enthält die Datenbank und ist verantwortlich für das Speichern und Laden von Daten.

Drei-Schichten-Architekturen bei verteilten Systemen

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 Präsentationsschicht befindet sich auf der jeweiligen Workstation des Benutzers. Ein Beispiel für 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 Möglichkeiten zur Verteilung der Schichten. Grundsätzlich gilt: Je höher (näher an der Präsentationsschicht) die Schicht ist, desto eher wird sie von einem Client bearbeitet. Je tiefer (näher an der Datenschicht) die Schicht ist, desto eher ist sie Aufgabe eines Servers.

Drei-Schichten-Architekturen innerhalb von Software-Systemen

Die Architektur lässt sich auch innerhalb eines Software-Systems umsetzen, indem die Software-Module, welche für Präsentation, Anwendungslogik und persistente Speicherung von Daten zuständig sind, den einzelnen Schichten zugeordnet werden und gemäß der Schichteneinteilung voneinander entkoppelt werden. Neben einer Strukturierung gemäß dem Model-View-Controller-Architekturmuster gilt eine solche Drei-Schichten-Architektur üblicherweise als das Mindestmaß architektonischer Strukturierung, sofern keine zwingenden Gründe für andere Architekturentscheidungen vorliegen.

Weitere Schichten

Schichtenmodell in modernen Anwendungen
Übersicht des ISO/OSI-Modells

Neben den oben genannten Schichten werden in verschiedenen Quellen andere Aufteilungen herangezogen. Grundsätzlich bezeichnet eine Schichtenarchitektur ein Architekturmuster, das hinsichtlich der Art und Anzahl seiner Schichten nicht beschränkt ist. Sehr häufig finden sich in Software-Systemen wie auch bei verteilten Anwendungen die folgenden Schichten:

  1. Anwendung
    Anwendungen werden weiter unterteilt in:
    1. Dependency Injection
    2. Anwendungspräsentation
    3. Geschäftslogik
    4. Datenzugriff
  2. Steuerung
  3. Datenpräsentation
  4. Datenhaltung

Weitere Details zu den einzelnen Schichten werden im Abschnitt Klassische Schichten innerhalb einer mehrschichtigen Architektur beschrieben.

Ein Beispiel für 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

Dependency Injection

Die Dependency-Injection-Schicht ist die oberste Schicht in Anwendungen. Sie ist dabei für die Clienten der Anwendung völlig transparent und dient dazu, alle von der Anwendung benötigten Objekte bereitzustellen. Anwendungen, welche auf eine DI-Schicht verzichten, weisen das Service-Locator-Antimuster oder gar starke Abhängigkeiten auf und bieten nur eine eingeschränkte Validier- und Testbarkeit.[3]

Präsentationsschicht

Erweiterung einer Drei-Schichten-Architektur um Präsentations-Schicht

Die Präsentationsschicht (engl. client layer oder presentation layer) ist für die Darstellung und Entgegennahme von der Software bearbeiteten Daten, sowie der von der Software bereitgestellten Funktionen verantwortlich.

Bei verteilten Systemen existieren für die Darstellung der Inhalte zwei Alternativen:

Steuerungsschicht

Die Steuerungsschicht (engl. process layer) dient der Koordination mehrerer fachlich abgegrenzter Teile der Geschäftslogikschicht.

Zum Beispiel bei einer serviceorientierten Architektur erfolgt hier die Orchestrierung. In der Steuerungsschicht liegt häufig auch die Verantwortung für die Transaktionssteuerung.

Geschäftslogikschicht

Die Geschäftslogikschicht (auch Verarbeitungsschicht, Anwendungslogikschicht, Domänenschicht, application layer oder middle tier) realisiert das eigentliche Geschäftsmodell, indem die am Geschäftsmodell beteiligten Geschäftsobjekte mit der zugehörigen Logik implementiert werden.

Datenzugriffsschicht

Erweiterung Daten-Integrations-Schicht

Die Datenzugriffsschicht kapselt den Zugriff auf persistente Daten und die dabei verwendeten Techniken.

Für die persistente Speicherung werden häufig Datenbanken eingesetzt, bei anderen Systemen können aber auch normale Dateien verwendet werden.

Beim Einsatz von Datenbanken werden für 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) benötigt, die oft durch den Einsatz eines ORM-Frameworks umgesetzt wird.

Weitere Anwendungen von Schichtenarchitekturen

Schichtenmodell bei Betriebssystemen

Schematische Darstellung

Ein 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 Übergänge zwischen den Schichten werden von Schnittstellen gebildet, wobei die Übergänge sauber sein müssen, es gibt keine Sprünge (z. B. von einem Anwendungsprogramm direkt in die Datenstruktur). Die Kommunikation erfolgt über die Schnittstellen jeder einzelnen Zwischenschicht.

Allgemein kann man sagen, je näher eine Schicht an der Hardware, desto privilegierter ist diese bezüglich Schreib- und Leseberechtigungen. Der Übergang vom Kernel-Mode zum User-Mode kann unter Umständen schwer abzugrenzen sein.

Nachvollziehbarkeit

Eine 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

Einzelnachweise

  1. Frank Buschmann et al.: Pattern-Oriented Software Architecture: A System of Patterns, John Wiley & Sons, 1996.
  2. Frank Buschmann et al.: Pattern-Oriented Software Architecture: A System of Patterns, John Wiley & Sons, 1996.
  3. Daniel Baharestani: Mastering Ninject for Dependency Injection. Packt Publishing, ISBN 978-1-78216-620-7 (englisch, 142 S.).

Read other articles:

У этого термина существуют и другие значения, см. Тур. Запрос «Bos taurus primigenius» перенаправляется сюда; см. также другие значения. † Тур Скелет тура Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:Вт…

Professional wrestling tag team Professional wrestling tag team Big Show and KaneKane (left) and Big Show (right), during a WWE Live Event in 2016.Tag teamMembers Big Show KaneName(s)Big Show and KaneThe AuthorityBilled heights7 ft 0 in (2.13 m) each[1][2]Combinedbilled weight773 lb (351 kg)[1][2]DebutNovember 29, 2001DisbandedJuly 19, 2016Years active2001–20022005–200620112014–2016 Big Show and Kane were an American tag team active …

Transport stations in West Hampstead, London vteStations in West Hampstead Legend Chiltern Main Line to Birmingham LU Jubilee and Metropolitan lines Thameslink and Midland Main Line North London line to Richmond London Overground station Thameslink station West Hampstead (on West End Lane) LU Jubilee line station Finchley Road OSI: Finchley Road (MR) (1868–1927) Finchley Road & Frognal OSI: North London line to Stratford Thameslink and Midland Main Line LU Jubilee and Metropolit…

2016年美國總統選舉 ← 2012 2016年11月8日 2020 → 538個選舉人團席位獲勝需270票民意調查投票率55.7%[1][2] ▲ 0.8 %   获提名人 唐納·川普 希拉莉·克林頓 政党 共和黨 民主党 家鄉州 紐約州 紐約州 竞选搭档 迈克·彭斯 蒂姆·凱恩 选举人票 304[3][4][註 1] 227[5] 胜出州/省 30 + 緬-2 20 + DC 民選得票 62,984,828[6] 65,853,514[6] 得…

1986 UK local government election 1986 Bath City Council election ← 1984 8 May 1986 (1986-05-08) 1987 → 16 of 48 seats (one third) to Bath City Council24 seats needed for a majority   First party Second party Third party   Con Lab All Party Conservative Labour Alliance Seats before 31 11 6 Seats won 7 3 6 Seats after 26 12 10 Seat change 5 1 4 Popular vote 11,429 8,771 11,508 Percentage 36.0% 27.7% 36.3% Swing 6.5% 2.7% 9.1%…

American economist (born 1939) William LandesBornc. 1939 (age 84–85)NationalityAmericanAcademic careerInstitutionUniversity of Chicago Law SchoolFieldLaw and economicsSchool ortraditionChicago School of EconomicsAlma materColumbia UniversityInformation at IDEAS / RePEc William M. Landes (born c. 1939) is an American economist who has written about the economic analysis of law and an emeritus professor at the University of Chicago Law School. He is a fellow of the A…

Irish singer-songwriter and political activist (born 1951) Bob GeldofKBEGeldof in 2009BornRobert Frederick Zenon Geldof (1951-10-05) 5 October 1951 (age 72)Dún Laoghaire, County Dublin, IrelandOccupationsSinger-songwriterpolitical activistYears active1975–presentSpouses Paula Yates ​ ​(m. 1986; div. 1996)​ Jeanne Marine ​(m. 2015)​ChildrenFour, including Peaches, Pixie, and Tiger LilyMusical careerGenres Ro…

International cricket match Men's cricketat the Games of the II OlympiadVenueVélodrome de VincennesDate19–20 AugustCompetitors24 from 2 nationsMedalists Devon and Somerset Wanderers Great Britain French Athletic Club Union France2028 → A cricket match was played as part of the 1900 Summer Olympics, took place on 19–20 August at the Vélodrome de Vincennes between teams representing Great Britain and France. Great Britain won the match by 158 runs. The French t…

Het informatiebord bij het ereveldHet Pools militair ereveld Breda is de grootste Poolse begraafplaats in Nederland. Het is gelegen aan de Ettensebaan bij de wijk Princenhage te Breda, vlak bij Begraafplaats Zuylen. De begraafplaats werd op 24 juni 1963 geopend. Het telt ruim 160 graven van Poolse militairen die tijdens de Tweede Wereldoorlog in Nederland zijn gesneuveld. Velen vochten in de Poolse 1e Pantserdivisie die, onder leiding van generaal Stanisław Maczek, op 29 oktober 1944 Breda bevr…

Questa voce sull'argomento calciatori polacchi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Bartosz BidaNazionalità Polonia Altezza175 cm Peso66 kg Calcio RuoloAttaccante Squadra Podbeskidzie CarrieraGiovanili  Jagiellonia Squadre di club1 2018-2019→  Wigry Suwałki10 (5)2019-2023 Jagiellonia74 (10)2023- Podbeskidzie0 (0) Nazionale 2017-2018 Polonia U-176 (2)2019 Polonia…

  Esponjas Rango temporal: 760–0Ma [1]​ Had. Arcaico Proterozoico Fan. Tónico – Reciente TaxonomíaReino: AnimaliaSubreino: ParazoaFilo: PoriferaGrant, 1836Clases Calcarea Demospongiae Hexactinellida Homoscleromorpha Archaeocyatha † (?) Stromatoporida † Sinonimia Spongiae Haeckel, 1866 Spongiaria Claus, 1897 [editar datos en Wikidata] Una esponja tubular violeta (Aplysina archeri) Los poríferos (Porifera), también conocidos como esponjas o esponjas de mar, son un …

The Zero Page (or Base Page) is a data structure used in CP/M systems for programs to communicate with the operating system. In 8-bit CP/M versions it is located in the first 256 bytes of memory, hence its name. The equivalent structure in DOS is the Program Segment Prefix (PSP), a 256-byte structure, which, however, is by default located at offset 0 in the program's load segment (rather than in segment 0) immediately preceding a loaded program. In 8-bit CP/M, it has the following structure: Off…

Government of the U.S. state of Vermont Government of VermontGreat Seal of the State of VermontPolity typePresidential RepublicConstitutionConstitution of VermontLegislative branchNameGeneral AssemblyTypeBicameralMeeting placeVermont State HouseUpper houseNameSenatePresiding officerDavid Zuckerman, PresidentLower houseNameHouse of RepresentativesPresiding officerJill Krowinski, SpeakerExecutive branchHead of State and GovernmentTitleGovernorCurrentlyPhil ScottAppointerElectionCabinetName7 Execut…

Japanese concession in northern China in 1895 and from 1905 to 1945 Kwantung redirects here. For the army group of the Imperial Japanese Army, see Kwantung Army. Not to be confused with Kwangtung. Kwantung Leased Territory關東州1905–1945 Flag(1905–1945) Crest Anthem: KimigayoKwantung Leased Territory in 1921 including the Japanese area of influence and neutral zone.StatusLeased territory (colony) of the Empire of JapanCapitalDalianGovernor • 1905–1912 (first) Ōshima Yo…

Mein Schiff 2 Mein Schiff 2 Mein Schiff 2 на праздновании 522 годовщины Гамбургского порта  Мальта Класс и тип судна Круизное судно класса Century Порт приписки 1997–2002: Панама, [1] 2002–2008: Нассау, 2008–: Валлетта, Номер ИМО 9106302 Позывной 9HJG9[2] Организация TUI Cruises GmbH [3] Владелец TUI Cruises Опер…

2001 in athleticsMajor world eventsWorld ChampionshipsWorld Indoor ChampionshipsIAAF Athletes of the YearHicham El GuerroujStacy Dragila← 2000 2002 → Overview of the events of 2001 in the sport of athletics Years in the sport of athletics ← 1998 1999 2000 2001 2002 2003 2004 → 2001 in sports Air sports American football Aquatic sports Association football Athletics Australian rules football Badminton Baseball Basketball Canadian football Chess Climbing Combat sports Sumo Cricket …

County in Virginia, United States County in VirginiaAmelia CountyCountyAmelia County Court House SealLocation within the U.S. state of VirginiaVirginia's location within the U.S.Coordinates: 37°20′N 77°59′W / 37.34°N 77.98°W / 37.34; -77.98Country United StatesState VirginiaFounded1735Named forPrincess AmeliaSeatAmelia Court HouseArea • Total359 sq mi (930 km2) • Land355 sq mi (920 km2) • …

1870 battle of the Franco-Prussian War Battle of GravelottePart of the Franco-Prussian WarThe Cemetery of St. Privat by Alphonse-Marie-Adolphe de Neuville c. 1881Date18 August 1870LocationGravelotte, France49°09′N 6°01′E / 49.150°N 6.017°E / 49.150; 6.017Result Inconclusive, German march advancesBelligerents North German Confederation Prussia Saxony French EmpireCommanders and leaders Wilhelm I Helmuth von Moltke Karl Friedrich von Steinmetz Prince Friedrich Karl …

Using a bow and arrow while riding from horseback This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Mounted archery – news · newspapers · books · scholar · JSTOR (August 2013) (Learn how and when to remove this message) Mounted archery in Tibet Mounted archery is a form of archery that involves shooting arrows wh…

В Википедии есть статьи о других людях с фамилией Пруст. Антонен Прустфр. Antonin Proust Дата рождения 15 марта 1832(1832-03-15) Место рождения Ньор, Франция Дата смерти 20 марта 1905(1905-03-20) (73 года) Место смерти Париж, Франция Гражданство  Франция Род деятельности журналист, и…