Folien - Software and Systems Engineering

Transcrição

Folien - Software and Systems Engineering
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