Schichtenarchitektur: Unterschied zwischen den Versionen
Kowa (Diskussion | Beiträge) |
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(38 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Schichtenarchitektur:Menü}} | {{Schichtenarchitektur:Menü}} | ||
=Definition= | =Definition= | ||
<div class="floatright"> | |||
<gallery perrow="2" heights="188px" widths="138px"> | |||
(engl. [[GlossaryWiki: | Datei:Schichtenarchitektur_01.png|3-Schichtenarchtektur | ||
Datei:Schichtenarchitektur_strikt_01.png|strikte 3-Schichtenarchitektur | |||
bezeichnet man ein [[Architekturmuster]], bei der eine [[Komponente (UML)|Anwendungs-Komponente]] in | </gallery> | ||
[[Model-View-Controller-Paradigma | </div> | ||
Als [[Schichtenarchitektur|n-Schichtenarchitektur]] oder [[Schichtenarchitektur|-paradigma]] | |||
(engl. [[GlossaryWiki:Multitier architecture|Multitier architecture]] oder [[GlossaryWiki:Multitier architecture|n-tier architecture]] manchmal auch [[GlossaryWiki:Multitier architecture|layer architecture]]) | |||
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. | |||
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-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. | |||
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.<ref>[[Schneider, Werner (2001)]]</ref> | |||
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.<ref>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)</ref> | |||
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. | |||
<gallery perrow="3" heights="262px" widths="102px"> | |||
Datei:Two-Tier Application.png|Zweischichten-Architektur: Client/Server-Architektur | |||
Datei:Three-Tier Application.png|Dreischichten-Architektur: Client-Server-Architektur mit Middelware | |||
Datei:Four-Tier Application.png|Vierschichten-Architektur: Web-Server-Architektur | |||
</gallery> | |||
==MVC== | |||
[[Model-View-Controller-Architektur]]en können – müssen aber nicht! – ebenfalls als Mehrschicht-Architekturen umgesetzt werden. | |||
Hierbei kommen allerdings normalerweise nicht-strikte Schichtenarchitekturen zum Einsatz. | |||
<gallery perrow="3" heights="410px" widths="301px"> | |||
Datei:VCM-Schichtenarchitektur 01 301px.png|[[Model-View-Controller-Paradigma#VCM-Paradigma|VCM-Paradigma]] | |||
Datei:VCSM-Schichtenarchitektur 01 301px.png|[[Model-View-Controller-Service-Paradigma#VCSM-Paradigma|VCSM-Paradigma]] | |||
Datei:VCLSD-Schichtenarchitektur 01 301px.png|[[Logic-Data-View-Controller-Service-Paradigma#VCLSD-Paradigma|VCLSD-Paradigma]] | |||
</gallery> | |||
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> | |||
==OSI-Schichtenmodell== | |||
Das [[OSI-Schichtenmodell]] oder OSI-Referenzmodell ist ein Beispiel für eine nicht-strikte 7-Schichtenarchitektur. | |||
=Quellen= | =Quellen= | ||
Zeile 15: | Zeile 75: | ||
* [[Wikipedia:Schichtenarchitektur]] | * [[Wikipedia:Schichtenarchitektur]] | ||
[[Kategorie:Schichtenarchitektur]] | |||
[[Kategorie: | [[Kategorie:Objektorientierte Programmierung]] | ||
[[Kategorie:Glossar]] | |||
[[en:Multitier architecture]] | [[en:Multitier architecture]] | ||
[[Kategorie:Kapitel:Multimedia-Programmierung]] | [[Kategorie:Kapitel:Multimedia-Programmierung]] | ||
{{{{SITENAME}}-konformer Artikel}}</noinclude> | {{{{SITENAME}}-konformer Artikel}}</noinclude> |
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.
-
Zweischichten-Architektur: Client/Server-Architektur
-
Dreischichten-Architektur: Client-Server-Architektur mit Middelware
-
Vierschichten-Architektur: Web-Server-Architektur
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
- ↑ Schneider, Werner (2001)
- ↑ 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)
- Kowarschick, W.: Multimedia-Programmierung
- WikipediaEN:Multitier architecture
- Wikipedia:Schichtenarchitektur