Software-Architekturen

Einleitung

Dieser Kurs beschäftigt sich mit dem systematischen Aufbau von verteilten Programmen, die von mehreren Benutzern gleichzeitig genutzt werden können. Denken Sie beispielsweise an Anwendungen wie eBanking, amazon, die elektronischen Steuererklärungen und ähnliches.

Als eines der wichtigsten Entwurfsprinzipien in der Informatik gilt die Aufteilung grosser Systeme in überschaubare, in ihren Verantwortlichkeiten wohl definierte Komponenten. Man spricht auch vom Konzept des Information Hidings mit Modulen hoher Kohäsion, die untereinander lose gekoppelt sind.

Logische Schichten

Bei dem Aufbau von grossen Softwaresystemen geht man von drei wesentlichen Aufgabengebieten aus. Diese Aufgabengebiete werden auch logische Schichten genannt.

Präsentationsschicht (engl. Presentation Layer):

Übernimmt die Darstellung und Manipulation von Daten für den Endanwender. Hier kommt die ganze Thematik der Mensch-Maschine-Schnittstelle zum Tragen. Stellen Sie sich einen Routenplaner vor. Die Präsentationsschicht ermöglicht es, Standorte einzugeben und die Verbindungen grafisch darzustellen.

Applikationslogikschicht (engl. Business Logic Layer):

Setzt die Eingaben des Benutzers im Sinne der Bedürfnisse der Anwendung korrekt um. Hier wird die Algorithmik umgesetzt; beispielsweise ist in der Applikationslogik programmiert, wie der Routenplaner die schnellste Verbindung zwischen den eingegeben Standorten sucht und findet.

Datenhaltungsschicht (engl. Persistence Layer):

Speichert alle Daten dauerhaft ab und ermöglicht den Zugriff auf die Daten von verschiedenen Benutzern aus. Der Routenplaner bezieht aus dieser Schicht die Informationen über das gesamte Strassennetz.

Verteilungsmöglichkeiten

Die drei oben beschriebenen Schichten lassen sich nun ganz unterschiedlich zusammensetzen. Jede Zusammensetzung führt zu einer Software Architektur, die wir in diesem Kurs betrachten werden. (Die Abkürzungen P, A und D stehen in den folgenden Zeichnungen für die drei logischen Schichten.)

1. Einzelplatzanwendung (z.B. Textverarbeitungsprogramme, Tabellenkalkulation etc.)

In Einzelplatzanwendungen kommen alle drei logische Schichten in ein einzigen Programm vor. Diese Programme erlauben keinen gleichzeitigen Zugriff von mehren Anwendern. Die persistenten Daten werden meistens in Dateisystemen abgelegt.

2. Client-Server Mehrbenutzeranwendung (auch Fat Clients)

In der Client-Server Architektur arbeitet der Anwender mit einer Anwendung, die Präsentations- und Applikationslogikschicht in einem Programm kombiniert. Alle Daten werden aber von einem weiteren Programm, das auf einem anderen Rechner (Server) läuft, angefordert. Diese Server-Programme nennt man auch Datenbankmanagementsysteme. Sie verwalten Daten in Tabellen und bieten mächtige Mittel (SQL= Structured Query Language) zur Abfrage und Manipulation von Daten an.

3. Web-Anwendungen (auch Thin Clients oder 3-Tier Anwendungen)

Legt man jede logische Schicht in ein eigenes Programm, kommt man zu sogenannten Web-Anwendungen. Sie können zwar mehr Benutzer gleichzeitig bedienen und sind auch einfacher zu verwalten, bieten aber nicht gleich komfortable Benutzeroberflächen wie Client-Server Anwendungen an.

Ziele

Am Ende dieses Kurses können Sie selbst eigene Anwendungen mit diesen Architekturen aufbauen. Sie wissen dann auch, wofür sich welche Architektur eignet.