Schichtenarchitektur: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
 
(9 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_01.png|3-Schichtenarchtektur
  Datei:Schichtenarchitektur_01.png|3-Schichtenarchtektur
  Medium:Schichtenarchitektur_strikt_01.png|strikte 3-Schichtenarchitektur
  Datei:Schichtenarchitektur_strikt_01.png|strikte 3-Schichtenarchitektur
</gallery>
</gallery>
</div>
</div>
Zeile 14: Zeile 14:
Eine Ebenen i darf direkt mit tieferen Ebenen j<i kommunizieren.  
Eine Ebenen i darf direkt mit tieferen Ebenen j<i kommunizieren.  
Tiefere Ebenen können dagegen mit höheren Ebenen nur indirekt kommunizieren  
Tiefere Ebenen können dagegen mit höheren Ebenen nur indirekt kommunizieren  
(z.B. mittels [[Multicast-Nachricht]]en, [[Broadcast-Nachricht|Broadcast-Nachrichten]] Antworten auf Methodenaufrufen oder auch mittels [[Callback]]-Routinen).
(z.B. mittels [[Multicast-Nachricht]]en, [[Broadcast-Nachricht|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.
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.
Und eine indirekte Kommunikation einer Ebene i ist nur mit der direkt darüber liegenden Ebene i+1 möglich.


Innerhalb eine Ebene ist stets jede Kommunikationsart zulässig.
Innerhalb einer Ebene ist stets jede Kommunikationsart zulässig.


=Beispiele für Schichtenarchtekturen=
=Beispiele für Schichtenarchtekturen=
Zeile 33: 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 47: 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>


Zeile 57: Zeile 57:
häufig auch nicht-strikte Schichtenarchitekturen zu Einsatz.  
häufig auch nicht-strikte Schichtenarchitekturen zu Einsatz.  
Ein sehr bekannter Vertreter ist die [[Model-View-Controller-Paradigma#CVM-Paradigma|CVM-Schichtenarchitektur]] bzw. die
Ein sehr bekannter Vertreter ist die [[Model-View-Controller-Paradigma#CVM-Paradigma|CVM-Schichtenarchitektur]] bzw. die
[[Model-View-Controller-Paradigma#CVMS-Paradigma|CVMS-Schichtenarchitektur]],
[[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,
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.)  
bei der View und Controller nicht getrennt sind.)  


<gallery  perrow="3" heights="200px" widths="150px">
<gallery  perrow="3" heights="337px" widths="301px">
  Medium:CVM-Schichtenarchitektur 01.png|[[Model-View-Controller-Paradigma#CVM-Paradigma|CVM-Paradigma]]
  Datei:CVM-Schichtenarchitektur 01 301px.png|[[Model-View-Controller-Paradigma#CVM-Paradigma|CVM-Paradigma]]
  Medium:CVMS-Schichtenarchitektur 01.png|[[Model-View-Controller-Paradigma#CVMS-Paradigma|CVMS-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.