Einleitung
Manchmal stellen sich viele Software-Entwickler die Frage:
“Wo liegt der Unterschied zwischen der Drei-Schichten-Architektur und MVC?”
Anhand von Grafiken lässt sich bei der Drei-Schichten-Architektur ein ähnliches Schema
ermitteln wie auch bei MVC. Es gibt jeweils eine Schicht für Datenhaltung, eine Schicht als Fachschicht
und eine Schicht als Präsentationsschicht.
Nun damit haben wir in irgend einer Form die gleichen “Bausteine” wie auch bei MVC.
Betrachten wir die beiden Entwurfsschemen einmal mit einem anderen Blickwinkel.
MVC
MVC besteht wie auch die Drei-Schichten-Architektur aus ebenfalls drei Schichten:
– Model
– View
– Controller
MVC in seiner Form finden wir als Entwickler oftmals in verschiedenen Software.
Meist sobald es um die Erweiterbarkeit und die Skalierung innerhalb einer Anwendung ankommt, finden wir
MVC wieder. Wir sehen MVC immer nur innerhalb von Anwendungen. Dies ist eine wichtige Eigenschaft um den
Unterschied zwischen MVC und der Drei-Schichtenarchitektur zu verstehen.
[AdSense-A]
Drei-Schichten-Architektur
Über die Drei-Schichten-Architektur wissen wir meist nichts. Wir wissen das der Begriff da ist, wir können
ihn allerdings auch nicht zuordnen. Aber worauf bezieht sich dieser Begriff? Auf MVC, ein anderes Wort für
das gleiche Prinzip? Wie es das oft in der Software-Entwicklung gibt, gibt es Begriffe die für das gleiche stehen.
Schauen wir uns beispielsweise das Wörtchen Objekt und Instanz an. Beide stehen von ihrer Bedeutung für das gleiche.
Im Falle der Drei-Schichten-Architektur trifft dies allerdings nicht darauf zu.
Die Drei-Schichten-Architektur definiert nicht das gleiche wie MVC. Wie wir wissen beschränkt sich MVC als Entwurfsmuster
für nur eine “Anwendung”, eine Software.
Die Drei-Schichten-Architektur beschreibt nicht eine Anwendung in diesem Sinne wie wir sie kennen. Sondern sie beschreibt
verteilte Systeme, die einen kompletten Anwendungsfall definieren, aber nicht eine einzelne “Anwendung” sind.
Wie kann man sich dies genauer vorstellen?
Dies ist eine nette Grafik um die eigentliche Drei-Schichten-Architektur näher zu beschreiben.
Wir sehen, dass diese Architektur aus mehreren Systemen besteht. Der Präsentationsebene, welche durch Thin-Clients und Rich-Clients
beschrieben wird, die Schicht an der Endanwender tatsächlich mit der Drei-Schichten-Architektur in Verbindung kommen.
Andererseits sehen wir die Business-Logik die aus der Drei-Schichten-Architektur hervorgehoben wird. In diesem Fall
können wir uns das als eine Art Middleware beschreiben. Eine Software die Datenlieferant für unterschiedliche Zwecke spielt, bzw.
diese Daten aus der Datenschicht in Form bringt.
Natürlicherweise auch zuletzt haben wir eine Datenschicht. Diese Datenschicht besteht aus Datenbanken, externen APIs und sonstigen
Datenlieferanten.
Fazit
Damit wissen wir nun, dass sich die Drei-Schichten-Architektur auf mehrere physikalische oder virtuelle Systeme beziehen kann.
MVC können wir durch aus auch in dieser Architektur wieder finden, MVC bezieht sich dahingehend allerdings nicht auf die eigentliche
Drei-Schichten-Architektur, sondern wird in einer oder mehreren der Schichten der Drei-Schichten-Architektur auf Applikationsebene abgebildet
und hat nichts mit verteilten Systemen zu tun.
Quellen
http://www4.in.tum.de/~sihling/savorles/pdf/savorles-kap7a.pdf
http://glossar.hs-augsburg.de/Schichtenarchitektur
http://www-lehre.inf.uos.de/~binf/mails_2005/msg00185.html
http://oszhdl.be.schule.de/gymnasium/faecher/informatik/ooa-ood/3_schichten.htm