Softwarearchitektur verteilter Systeme 7a. Betriebliche Informationssysteme (1) Vorlesung Wintersemester 2002 / 03 Technische Universität München Institut für Informatik Lehrstuhl von Prof. Dr. Manfred Broy Dr. Klaus Bergner, Prof. Dr. Manfred Broy, Dr. Andreas Rausch, Dr. Marc Sihling Inhalt § Betriebliche Informationssysteme § Motivation § Charakteristika § Drei-Schichten Architekturen § Datenhaltungsschicht § Anwedungsschicht § Präsentationsschicht § Beispiel § Zusammenfassung § Literaturhinweise Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.2 Inhalt § Betriebliche Informationssysteme § Motivation § Charakteristika § Drei-Schichten Architekturen § Datenhaltungsschicht § Anwendungsschicht § Präsentationsschicht § Beispiel § Zusammenfassung § Literaturhinweise Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.3 Definition: Betriebliches Informationssystem § „The purpose of an information system is to provide a relatively exact, efficient, unambiguous model of the significant resources of a real-world enterprise“ § „Das Informationssystem einer Unternehmung umfasst ihre informationsverarbeitenden Tätigkeiten und Beziehungen.“ § „Ein Informationssystem besteht aus Menschen und Maschinen, die Informationen erzeugen und/oder benutzen und die durch Kommunikationsbeziehungen miteinander verbunden sind. Ein betriebliches Informationssystem dient zur Abbildung der Leistungsprozesse und Austauschbeziehungen im Betrieb und zwischen dem Betrieb und seiner Umwelt“ Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.4 Beispiel: Betriebliches Informationssystem Schulungsunterlagen Unterschriftenmappe Sekretariat Direktor Schlungsabteilu ng Verkaufszahlen Lieferscheine Buchungen Buchhaltung Rechnungskopien Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) Bestellung Versand Vertrieb 7a.5 Betriebliche Anwendungssysteme § Anwendungsprogramm 1 Anwendungsprogramm 4 Anwendungsprogramm 2 Anwendungsprogramm 3 Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) § „... im engeren Sinn die Gesamtheit aller Programme, d.h. die Anwendungssoftware, und die zugehörigen Daten für ein konkretes betriebliches Anwendungsgebiet“ „ ... im weiteren Sinn zusätzlich die für die Nutzung der Anwendungssoftware benötigte Hardware und Systemsoftware, die erforderlichen Kommunikaitonseinrichtungen und - ja nach Betrachtungsweise - auch die Benutzer ...“ 7a.6 Typische Anforderungen (-abilities) § Reliability: das Anwendungssystem liefert stets die erwarteten, richtigen Ergebnisse § Availability: Dauer, in der ein System Dienste anbietet § Scalability: Fähigkeit, auch einer wachsenden Anzahl von Benutzern zu dienen § Interoperability: Möglichkeit, auf Daten und Prozesse anderer Plattformen zuzugreifen § Maintainability: Notwendige Änderungen können einfach durchgeführt werden § Extensibility: die Funktionalität der Anwendung ist leicht zu erweitern Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.7 Randbedingungen § Viele und unterschiedliche Systemkomponenten § DBMS, ERP-Systeme (z.B. SAP R/3), TP-Monitore, ... § Unterschiedlichste Plattformen, Sprachen u. Protokolle § Hohe Skalierbarkeit § Nutzung durch Tausende bis Zehntausende Mitarbeiter § Millionen bis Milliarden Seitenabrufe pro Tag § Hohe Installations- und Wartungsfreundlichkeit § Pro installierter Programmkopie ca. 2 Wartungen / Jahr § Hohe Flexibilität § Operationale Datenbestände überdauern ca. 20 Jahre § Geschäftsprozesse überdauern ca. 2 Jahre § Präsentationslogik überdauert ca. 6 Monate Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.8 Inhalt § Betriebliche Informationssysteme § Motivation § Charakteristika § Drei-Schichten Architekturen § Datenhaltungsschicht § Anwendungsschicht § Präsentationsschicht § Beispiel § Zusammenfassung § Literaturhinweise Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.9 Bewährt für Informationssysteme: die Drei-Schichten-Architektur Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.10 Evolution der Architekturen (1) § Mainframe Architektur: Hierbei befindet sich die gesamte Anwendungslogik im Zentralrechner. Benutzer interagieren mit diesem Host über „dumme“ Terminals, die Zeichenketten übertragen (und damit kaum für den Einsatz von graphischen Schnittstellen taugen). Diese Architektur ist unabhängig von der zugrundeliegenden Plattform. § Filesharing-Architektur: Ursprüngliche PC Netzwerke basierten auf gemeinsamen Dateien, die zum Rechner übertragen, dort bearbeitet und schliesslich wieder zurückgeschrieben wurden. Mit steigender Benutzeranzahl und wachsender Beliebtheit der graphischen Benutzeroberflächen verlor diese Architektur an Bedeutung. Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.11 Evolution der Architekturen (2) § Client/Server Architektur: Aus den Defiziten der FilesharingArchitektur entstand diese Ausprägung, die den Fileserver durch eine Datenbank ersetzt. Über ein relationales Datenbankmanagementsystem (DBMS) können Benutzeranfragen direkt und ohne Übertragung aller Daten bearbeitet werden. In Client/Server Architekturen wurden typischerweise „Remote Procedure Calls“ bzw. SQL-Ausdrücke für die Kommunikation zwischen Client und Server eingesetzt. § Heute wird der Begriff mit einem allgemeineren Verständnis verwendet. So ist generell ein Server ein Erbringer von Diensten, die von einem Client genutzt werden können. Client und Server müssen nicht zwangsläufig verteilt sein. Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.12 Evolution der Architekturen (3) § Zwei-Schichten Architektur: üblicherweise wird unter einer Zwei-Schichten Architektur eine Aufteilung in einen leistungsfähigen Datenbankserver und mehrere Clients verstanden, die vom Server bedient werden. Die Verarbeitungslogik ist oft aufgeteilt zwischen Client und Server (z.B. sog. stored procedures in der Datenbank). § Den stetig wachsenden Benutzerzahlen verteilter Anwendungen begegnen Datenbankhersteller mit kontinuierlich verbesserten Verfahren zur Skalierung (z.B. load-balancing). § Es verbleibt jedoch oftmals als Nachteil eine enge Bindung an die proprietären Lösungen und Werkzeuge eines Datenbankherstellers. Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.13 Evolution der Architekturen (4) § Drei-Schichten Architektur: Die zusätzliche Schicht dieser Architektur liegt zwischen der Benutzerschnittstelle und dem Datenbankserver und kann auf unterschiedliche Arten realisiert werden: z.B. durch Transaktionsmonitore, Messagedienste oder Anwendungsserver. Die mittlere Schicht ermöglicht es auf diese Weise dem Client, asynchrone Nachrichten abzusetzen, die optimal abgearbeitet werden. § Die Erfahrung zeigt, dass Drei-Schichten Architekturen stark skalierbar sind und einen hohen Grad an Flexibilität aufweisen. § In letzter Zeit zeigt sich eine neue Bedeutung für Mainframes als Bestandteil der Drei-Schichten Architektur. Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.14 Warum Schichten-Pattern? § § Kontext: Ein großes System, das strukturiert werden muss. Problem: § Organisation von Funktionalität auf unterschiedlichen Abstraktionsebenen, von der Benutzungsoberfläche bis hin zu Gerätetreibern § Pflichtenheft spezifiziert allgemeine Anforderungen und konkrete Zielhardware, wobei die Abbildung der Anforderungen auf die Hardware nicht unmittelbar einsichtig ist § Kräfte, die ausbalanciert werden müssen: - Änderungen an Anforderungen und Quellcode sollen lokal bleiben Schnittstellen sollen stabil bleiben (evtl. Verwendung von Standardschnittstellen) Komponenten und Hardware/Software-Plattformen sollen austauschbar sein Low-Level-Funktionalität soll in mehreren Systemen verwendet werden Komponenten mit komplexer Funktionalität sollen weiter strukturiert werden Möglichst wenige Komponenten sollen bei der Lösung einer Aufgabe involviert sein Das System soll von einem Team von Programmierern mit klaren Verantwortlichkeiten erstellt werden - ... Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.15 Wiederholung: Kernkonzept des Schichten-Patterns § § Lösung: Strukturiere das System in Schichten aus Komponenten, die auf der gleichen Abstraktionsebene angesiedelt sind. Komponenten einer höheren Schicht können zur Erledigung ihrer Aufgabe auf Komponenten der gleichen und der unmittelbar darunter liegenden Schicht zurückgreifen. Struktur: Class Schicht J Collaboration Schicht J-1 Responsibility Client uses Layer N Layer N-1 • stellt Dienste für Schicht J+1 zur Verfügung • ruft Dienste von Schicht J-1 auf Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) Layer 1 7a.16 Ausflug: ACID-Eigenschaften § Atomicity (Unteilbarkeit): Eine Transaktion wird entweder vollständig oder gar nicht ausgeführt. Bei Fehlern während der Abarbeitung wird jede bereits stattgefundene Aktion rückgängig gemacht. § Consistency (Konsistenz): Nach Ablauf einer Transaktion ist die Datenbank in einem korrekten Zustand, während des Ablaufs einer Transaktion werden möglicherweise inkonsistente Zwischenzustände durchlaufen. § Isolation: Eine Transaktion läuft so ab, als wäre sie die einzige im System. Parallel ablaufende Transaktionen dürfen einander nicht beeinflussen. § Durability (Dauerhaftigkeit): Änderungen, die von einer erfolgreichen Transaktion durchgeführt werden, überdauern jeden nachfolgenden Fehlerfall. Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.17 Einfache Drei-Schichten Architektur § Transaction Processing Monitor als Zwischenschicht Client Client § Message Queue § Transaction Scheduling § Priorization Service Client Client Client Client § Weitere Fähigkeiten des TP Monitors § mehrere Datenbanken unter einer einheitlichen Schnittstelle zusammenfassen § weitere Datenhaltungsmechanismen einbinden (Dateihaltung, etc.) § Sicherheitsmechanismus Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) TP TP Monitor Monitor DBMS DBMS 7a.18 Weitere Varianten § Drei-Schichten Architektur mit § Messageserver § Applicationserver § ORB § Der Begriff Applicationserver bezeichnet heutzutage die mittlere Schicht, die vielfältige Dienste anbietet: § § § § Transaktionsmanagement Querymanagement Objektmanagement Versionsmanagement § Die Schichten heißen § Präsentationsschicht § Anwendungsschicht § Datenhaltungsschicht Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.19 „Architecture first – distribute later!“ § Oftmals wird die „logische“ Drei-Schichten Architektur mit einer Verteilungssicht auf mehrere Rechner verwechselt. § Tatsächlich sind beide Sichten prinzipiell unabhängig voneinander und sollten im Rahmen der Entwicklung auch getrennt betrachtet werden. Ein bewährtes Vorgehen besteht darin, eine Architektur ohne Berücksichtigung der Topologie zu entwerfen und diese erst später geeignet zu verteilen. § Durch die unterschiedlichen Möglichkeiten der Aufteilung der Schichten auf beteiligte Rechner ergeben sich diverse Varianten, deren Extreme als „thin client“ bzw. „fat client“ bekannt sind. Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.20 Varianten durch Abbildung der Schichten auf Client und Server Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.21 Variante: Thin Client Client HTTP Web Server Präsentation HTTP Application Servers Anwendung Anwendung ADO Application Servers Datenhaltung HTTP ADO Datenhaltung Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) HTTP Anwendung ADO Datenhaltung 7a.22 Variante: mit Workflow HTTP Präsentation COM Präsentation Anwendung Datenhaltung Workflow Web Server Distributed COM Anwendung Application Server ADO Datenhaltung Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) Database Server 7a.23 Inhalt § Betriebliche Informationssysteme § Motivation § Charakteristika § Drei-Schichten Architekturen § Datenhaltungsschicht § Anwendungsschicht § Präsentationsschicht § Beispiel § Zusammenfassung § Literaturhinweise Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.24 Beispiel: 3-Schichtenarchitektur von Informationssystemen “intelligente” fachliche Objekte Clients Middleware spezielle fachliche Dienste allgemeine technische Dienste Datenhaltung Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.25 Datenhaltungsschicht § Diese Schicht speichert und verwaltet die Geschäftsobjekte der Anwendung § Die Datenhaltungsschicht repräsentiert die Anwendungsdomäne in einem Domänenmodell, das nur selten auch dem Datenschema der zugrundeliegenden Datenbanken entspricht. § Heutzutage kann das Domänenmodell einfach umgesetzt werden § durch Objektorientierte Datenbanken § durch Objektorientierte Zugriffsschichten § Standardisierte Schnittstellen bieten (großteils) Unabhängigkeit vom Datenbankhersteller (z.B. SQL, ODBG, etc.) § Die Verteilung der Daten auf mehrere Datenbanken erfordert eine „intelligente“ Zugriffschicht Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.26 Anwendungsschicht § Die Anwendungsschicht realisiert prinzipiell Geschäftsprozesse über den Geschäftsobjekten § Die hierfür notwendige Funktionalität wird entweder zusammen mit den Geschäftsobjekten gespeichert (z.B. bei OO-Datenbanken) oder in Form von fachlichen Managern realisiert § Geschäftsobjekte und fachliche Manager eines Application Servers sind für Bestandteile dieser Schicht sowie der Präsentationsschicht über eine geeignete Middleware (CORBA, DCOM, etc.) auch in einer verteilten Umgebung referenzierbar § Basisdienste werden durch technische Manager gekapselt, beispielsweise für § § § § Konsistenzerhaltung Transaktionsmanagement Sicherheit etc. Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.27 Präsentationsschicht § Kontrolliert Interaktion mit dem Benutzer § Interpretiert Benutzereingaben und generiert fachliche Aufrufe der Anwendungsschicht (vgl. View/Controller im MVC-Pattern) § Erhält Daten und Ergebnisse von der Anwendungsschicht und präsentiert diese in geeigneter Form § Basiert auf unterschiedlichen Protokollen für unterschiedliche Plattformen § Webbrowser (HTML) § Handy (WAP) § Sonstiges (XML) Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.28 Diagramm Präsentationsschicht User Interface Domain Core Elements Sales Products Applikationsschicht Service Object Database Interface Database Utility Speichermanagement Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.29 Inhalt § Betriebliche Informationssysteme § Motivation § Charakteristika § Drei-Schichten Architekturen § Datenhaltungsschicht § Anwendungsschicht § Präsentationsschicht § Beispiel § Zusammenfassung § Literaturhinweise Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.30 3-/4-Schichten-Modell in J2EE Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.31 cassiopeia CAS: Architektur Präsentationsschicht § Endgerätspezifische Aufbereitung der Inhalte § Benutzerinterface der Community Applikationsschicht – CORE Context § § § Session Management Benutzerverwaltung ... – Application Context § § § § Discussion Conferencing Mail ... Datenschicht – Persistente Datenhaltung (JDBC, LDAP) Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.32 e-Government InternetInternet-PC Bürger, Sachbearbeiter Ergänzende Komponenten für e-Dienste Zentrale Verfahren Client, WebBrowser Portal Server Integrations-, ApplikationsServer Host, Datenbank HTML Maske, Layout Komponente Kfz-Zulassung KfzMeldedaten Portaldienste Komponente MR-Auskunft EinwohnerMeldedaten Applikationen Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.33 Architektur mit Berechnungsengine WWW-Browser Internet Java Servlet Engine Jsp1 ... Jsp n Anwendungsschnittstelle Computation Manager Log Manager Java/DCOM-Bridge Microsoft Excel Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) Datei system 7a.34 Inhalt § Betriebliche Informationssysteme § Motivation § Charakteristika § Drei-Schichten Architekturen § Datenhaltungsschicht § Anwendungsschicht § Präsentationsschicht § Beispiel § Zusammenfassung § Literaturhinweise Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.35 Zusammenfassung § Betriebliche Informationssysteme basieren auf einem Verständis der Anwendungsdomäne, also Geschäftsobjekten und Geschäftsprozessen § Die „klassische“ Zwei-Schichten Architektur wurde im Lauf der Zeit abgelöst durch die Drei-Schichten Architektur, die mehr Flexibilität und Erweiterbarkeit bietet. § Eine Drei-Schichten Architektur besteht üblicherweise aus Datenhaltungs-, Anwendungs- und Präsentationsschicht § Der größte Vorteil liegt in der Entkopplung des Domänenmodells (also den Geschäftsobjekten) von der Repräsentation in der Datenbank § Die drei Schichten können je nach Bedarf auf unterschiedliche Rechner aufgeteilt werden. Typischerweise führt dies zu thin-client (z.B. browserbasierte Oberfläche) bzw. fat-client Systemen (z.B. Java Applikationen) Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.36 Inhalt § Betriebliche Informationssysteme § Motivation § Charakteristika § Drei-Schichten Architekturen § Datenhaltungsschicht § Anwendungsschicht § Präsentationsschicht § Beispiel § Zusammenfassung § Literaturhinweise Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.37 Literaturhinweise § § § [BMR+96] Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad und Michael Stal. Pattern-Oriented Software Architecture , Volume 1: A System of Patterns. John Wiley & Sons 1996. [SSR+00] Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann. Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Net-worked Objects. John Wiley & Sons. 2000. [Fow97] Martin Fowler. Analysis Patterns, Reusable Object Models. Addision-Wesley. 1997. Softwarearchitektur verteilter Systeme – 7a. Betriebliche Informationssysteme (1) 7a.38