Schichtenarchitektur: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:
<div class="floatright">
<div class="floatright">
<gallery  perrow="2" heights="188px" widths="138px">
<gallery  perrow="2" heights="188px" widths="138px">
  Medium:Schichtenarchitektur_strikt_01.png|strikte 3-Schichtenarchitektur
  Datei:Schichtenarchitektur_01.png|3-Schichtenarchtektur
  Medium:Schichtenarchitektur_01.png|3-Schichtenarchtektur
  Datei:Schichtenarchitektur_strikt_01.png|strikte 3-Schichtenarchitektur
</gallery>
</gallery>
</div>
</div>
Zeile 12: Zeile 12:
bezeichnet man ein [[Architekturmuster]], bei der eine [[Komponente (UML)|Anwendungs-Komponente]] in mehrere eigenständige Module unterteilt wird, die schichtenförmig angeordnet sind: Layer 1, Layer 2, ..., Layer n.
bezeichnet man ein [[Architekturmuster]], bei der eine [[Komponente (UML)|Anwendungs-Komponente]] in mehrere eigenständige Module unterteilt wird, die schichtenförmig angeordnet sind: Layer 1, Layer 2, ..., Layer n.


Objekte höherer Schichten dürfen direkt mit Objekten tieferer Schichten kommunizieren.  
Eine Ebenen i darf direkt mit tieferen Ebenen j<i kommunizieren.  
Objekte tieferer Schichten können dagegen mit Objekten höherer Schichten nur indirekt kommunizieren  
Tiefere Ebenen können dagegen mit höheren Ebenen nur indirekt kommunizieren  
(z.B. mittels Antworten auf Methodenaufrufen und mittels [[Multicast-Nachricht]]en oder [[Broadcast-Nachricht|Broadcast-Nachrichten]]).
(z.B. mittels [[Multicast-Nachricht]]en, [[Broadcast-Nachricht|Broadcast-Nachrichten]], Antworten auf Methodenaufrufen oder auch mittels [[Callback]]-Routinen).


Bei einer strikten Architektur ist die Kommunikation nur zwischen direkt benachbarten Modulen möglich.
Bei einer strikten Architektur darf eine Ebene i nur mit der unter ihr liegenden Ebene i-1 direkt kommunizieren.
Und eine indirekte Kommunikation einer Ebene i ist nur mit der direkt darüber liegenden Ebene i+1 möglich.
 
Innerhalb einer Ebene ist stets jede Kommunikationsart zulässig.


=Beispiele für Schichtenarchtekturen=
=Beispiele für Schichtenarchtekturen=
Zeile 30: Zeile 33:


Theoretisch kann es beliebig viele weitere Schichten geben. Web-Anwendungen werden häufig als 4-Schichtenanwendungen
Theoretisch kann es beliebig viele weitere Schichten geben. Web-Anwendungen werden häufig als 4-Schichtenanwendungen
realisiert: Browser, Web Server, Application Server und Datenserver. Die strikte Architektur verbietet es hier
realisiert: Browser, Web-Server, Application-Server und Daten-Server. Die strikte Architektur verbietet es hier
beispielsweise, dass der Web Server direkt mit dem Daten Server kommuniziert. Die Kommunikation muss immer über den
beispielsweise, dass der Web-Server direkt mit dem Daten-Server kommuniziert. Die Kommunikation muss immer über den
Application Server erfolgen.  
Application-Server erfolgen.  


<gallery  perrow="3" heights="262px" widths="102px">
<gallery  perrow="3" heights="262px" widths="102px">
  Medium:Two-Tier Application.png|Zweischichten-Architektur: Client/Server-Architektur
  Datei:Two-Tier Application.png|Zweischichten-Architektur: Client/Server-Architektur
  Medium:Three-Tier Application.png|Dreischichten-Architektur: Client-Server-Architektur mit Middelware
  Datei:Three-Tier Application.png|Dreischichten-Architektur: Client-Server-Architektur mit Middelware
  Medium:Four-Tier Application.png|Vierschichten-Architektur: Web-Server-Architektur
  Datei:Four-Tier Application.png|Vierschichten-Architektur: Web-Server-Architektur
</gallery>
</gallery>


Zeile 44: Zeile 47:
Hierbei kommen allerdings normalerweise nicht-strikte Schichtenarchitekturen zum Einsatz.  
Hierbei kommen allerdings normalerweise nicht-strikte Schichtenarchitekturen zum Einsatz.  


<gallery  perrow="3" heights="200px" widths="150px">
<gallery  perrow="3" heights="410px" widths="301px">
  Medium:VCM-Schichtenarchitektur 01.png|[[Model-View-Controller-Paradigma#VCM-Paradigma|VCM-Paradigma]]
  Datei:VCM-Schichtenarchitektur 01 301px.png|[[Model-View-Controller-Paradigma#VCM-Paradigma|VCM-Paradigma]]
  Medium:VCSM-Schichtenarchitektur 01.png|[[Model-View-Controller-Service-Paradigma#VCSM-Paradigma|VCSM-Paradigma]]
  Datei:VCSM-Schichtenarchitektur 01 301px.png|[[Model-View-Controller-Service-Paradigma#VCSM-Paradigma|VCSM-Paradigma]]
  Medium:VCLSD-Schichtenarchitektur 01.png|[[Logic-Data-View-Controller-Service-Paradigma#VCLSD-Paradigma|VCLSD-Paradigma]]
  Datei:VCLSD-Schichtenarchitektur 01 301px.png|[[Logic-Data-View-Controller-Service-Paradigma#VCLSD-Paradigma|VCLSD-Paradigma]]
</gallery>
</gallery>
<gallery  perrow="3" heights="200px" widths="150px">
 
  Medium:CVM-Schichtenarchitektur 01.png|[[Model-View-Controller-Paradigma#CVM-Paradigma|CVM-Paradigma]]
Neben der strikten 3-Schichten-Architektur 
„Web-Server → Anwendungs-Server → Daten-Server“ kommen bei der Implementierung von Web-Server
häufig auch nicht-strikte Schichtenarchitekturen zu Einsatz.
Ein sehr bekannter Vertreter ist die [[Model-View-Controller-Paradigma#CVM-Paradigma|CVM-Schichtenarchitektur]] bzw. die
[[Model-View-Controller-Paradigma#CVMS-Paradigma|CVMS-Schichtenarchitektur]],
die im Web-Umfeld auch unter dem Namen „Model 2“ bekannt ist. (Mit „Model 1“ wird eine Zweischichenarchitektur bezeichnet,
bei der View und Controller nicht getrennt sind.)
 
<gallery  perrow="3" heights="337px" widths="301px">
  Datei:CVM-Schichtenarchitektur 01 301px.png|[[Model-View-Controller-Paradigma#CVM-Paradigma|CVM-Paradigma]]
Datei:CVMS-Schichtenarchitektur 01 301px.png|[[Model-View-Controller-Service-Paradigma#CVMS-Paradigma|CVMS-Paradigma]]
</gallery>
</gallery>



Aktuelle Version vom 6. März 2014, 13:51 Uhr

Vorlage:Schichtenarchitektur:Menü

Definition

Als n-Schichtenarchitektur oder -paradigma (engl. Multitier architecture oder n-tier architecture manchmal auch layer architecture) bezeichnet man ein Architekturmuster, bei der eine Anwendungs-Komponente in mehrere eigenständige Module unterteilt wird, die schichtenförmig angeordnet sind: Layer 1, Layer 2, ..., Layer n.

Eine Ebenen i darf direkt mit tieferen Ebenen j<i kommunizieren. Tiefere Ebenen können dagegen mit höheren Ebenen nur indirekt kommunizieren (z.B. mittels Multicast-Nachrichten, Broadcast-Nachrichten, Antworten auf Methodenaufrufen oder auch mittels Callback-Routinen).

Bei einer strikten Architektur darf eine Ebene i nur mit der unter ihr liegenden Ebene i-1 direkt kommunizieren. Und eine indirekte Kommunikation einer Ebene i ist nur mit der direkt darüber liegenden Ebene i+1 möglich.

Innerhalb einer Ebene ist stets jede Kommunikationsart zulässig.

Beispiele für Schichtenarchtekturen

Verteilte Anwendungen

Der Begriff „Multitier Architecture“ („Mehrschichten-Architektur“) wurde ursprünglich für verteilte Anwendungen (CORBA, Java RMI, SOAP, JSP, EJB etc.) eingeführt.[1] Bei verteilten Anwendungen handelt es sich im Allgemeinen um strikte Schichtenarchitekturen. Jede Schicht kann auf einem eigenen Rechner laufen (= Verteilung). Die klassische 2-Schichtenarchitektur „Client-Server“ wurde zunächst zu einer 3-Schichtenarchitektur erweitert. Zwischen Client und Server wurde eine Mittelschicht („Middleware“) als zusätzliche Abstraktionsschicht eingefügt.[2]

Theoretisch kann es beliebig viele weitere Schichten geben. Web-Anwendungen werden häufig als 4-Schichtenanwendungen realisiert: Browser, Web-Server, Application-Server und Daten-Server. Die strikte Architektur verbietet es hier beispielsweise, dass der Web-Server direkt mit dem Daten-Server kommuniziert. Die Kommunikation muss immer über den Application-Server erfolgen.

MVC

Model-View-Controller-Architekturen können – müssen aber nicht! – ebenfalls als Mehrschicht-Architekturen umgesetzt werden. Hierbei kommen allerdings normalerweise nicht-strikte Schichtenarchitekturen zum Einsatz.

Neben der strikten 3-Schichten-Architektur „Web-Server → Anwendungs-Server → Daten-Server“ kommen bei der Implementierung von Web-Server häufig auch nicht-strikte Schichtenarchitekturen zu Einsatz. Ein sehr bekannter Vertreter ist die CVM-Schichtenarchitektur bzw. die CVMS-Schichtenarchitektur, die im Web-Umfeld auch unter dem Namen „Model 2“ bekannt ist. (Mit „Model 1“ wird eine Zweischichenarchitektur bezeichnet, bei der View und Controller nicht getrennt sind.)

OSI-Schichtenmodell

Das OSI-Schichtenmodell oder OSI-Referenzmodell ist ein Beispiel für eine nicht-strikte 7-Schichtenarchitektur.

Quellen

  1. Schneider, Werner (2001)
  2. Eckerson, Wayne W. “Three Tier Client/Server Architecture: Achieving Scalability, Performance, and Efficiency in Client Server Applications.” Open Information Systems 10, 1 (January 1995): 3(20)


Dieser Artikel ist GlossarWiki-konform.