Einsatz von Anwendungssystemen WS 2013/14 Prof. Dr. Herrad Schmidt Kapitel 2 Architektur von Anwendungssystemen
2 Architektur von Anwendungssystemen Die innere Struktur eines Anwendungssystems mit ihren Kompo-nenten und Beziehungen wird als Architektur bezeichnet. Generelle Systemkomponenten: Präsentation (Benutzerinteraktion) Verarbeitung (Verarbeitungslogik) Datenhaltung (Verwaltung, Speicherung)
2.1 Monolithische Systeme/Zentral-/Großrechner- Systeme Host-Rechner (i.d.R. Mainframe) zentral: Datenhaltung, Verarbeitungslogik, Bildschirmmasken Anbindung von Terminals zur Benutzerinteraktion textbasierte Oberfläche Kommunikation über Transaktionen Steuerung der Transaktionen über sog. TP-Monitore (Transaction Processing Monitor) Proprietäres Dateisystem Geschlossenes System
Moderne Mainframes Zur Verarbeitung von Massendaten s.a. http://www-03.ibm.com/systems/de/z/index.html Zur Verarbeitung von Massendaten Höchste Sicherheitsstufe Für komplexe Geschäfts- und Betriebssystemanalysen Serverkonsolidierung Konsolidierung der SAP-Infrastruktur Bereitstellung von Rechnerleistung in der Cloud
2.2 Verteilte Systeme Ein verteiltes System wird durch Subsysteme gebildet, die auf mehreren Rechnern verteilt sind, die koordiniert miteinander kooperieren und über Kommunikationseinrichtungen miteinander kommunizieren. Ein verteiltes System wird als Client/Server-System, Multi-Prozessor-System, über Grid-Computing oder mittels service-orientierter Architektur (SOA) realisiert. Client/Server-Modell Anfrage Client A Server Reaktion Anfrage Client B Reaktion
User Interface Ablaufsteuerung Verarbeitungslogik DB Interface Als Basis für die Verteilung im Client/Server-System erfolgt eine Schichtenbildung: User Interface Ablaufsteuerung Verarbeitungslogik DB Interface Datenschicht
Auf der Basis der Schichten sind verschiedene Verteilungsformen möglich: Präsentation Präsentation Präsentation Präsentation Präsentation Präsentation Steuerung Steuerung Steuerung Steuerung Steuerung Applikation Applikation Applikation Applikation Logische Datenzugriffs-schicht Logische Datenzugriffs-schicht Physische Datenzugriffs-schicht Steuerung Applikation Applikation Applikation Applikation Logische Datenzugriffs-schicht Logische Datenzugriffs-schicht Logische Datenzugriffs-schicht Logische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Verteilte Präsentation Entfernte Präsentation Verteilte Funktionalität Entfernte Datenhaltung Entfernte Datenbank Verteilte Datenbank
Beispiel: SAP Quelle: http://help.sap.com/saphelp_webas620/helpdata/de/fc/eb2e97358411d1829f0000e829fbfe/content.htm
Von der Windows-Anwendung zum web-basierten Anwendungssystem: Windows-Anwendungssystem Web-basiertes Anwendungssystem Datenbank-Server Applikations-Server Windows- PC Lokales Netz Web-Browser Web-Server Datenbank-Server Applikations-Server Lokales Netz Internet, HTTP/XML
Web-Architektur: Mehrschichtige Client-Server-Architektur Web-Client: realisiert nur die Präsentationsschicht Zugriff über einen Web-Browser, der die Verbindung zum Web-Server herstellt, keine Anwendungsinstallation, keine permanente Verbindung zum Web-Server Web-Server: verteilt HTML-Dokumente, Multimediaobjekte oder Java-Applets auf der Basis des HTTP-Protokolls und stellt die Kommunikation mit dem Applikationsserver her Applikations- oder Anwendungsserver: Bereitstellung der Funktionalität Datenbankserver: Bereitstellung und Speicherung der Daten in der Datenbank
Schichtenmodelle für Web-Architekturen Web-Client Web-Client Web-Client Web-Client Web-Server Web-Server Web-Server Web-Server Applikations- Applikations-server Applikations-server Daten-Server Daten-Server Daten-Server
Web-Anwendung, Web-Applikation (1) Server 1 Webserver 6 2 5 Web-Applikation 3 4 Datenbank
Web-Anwendung, Web-Applikation (2) Über den Browser des Clients wird ein URL-Request für Webanwendungen (z.B. php oder aspx) an den Server (Rechner im Netz) geschickt und dort vom Webserver (z.B. Apache, IIS) empfangen. Der Webserver hostet den Applikationsserver und gibt die Anforderung an diesen weiter. Dieser fragt die Datenbank ab. Das Datenbanksystem gibt die angeforderten Daten zurück. Der Applikationsserver stellt die Daten für die Antwort zusammen und liefert diese an den Webserver. Der Webserver sendet die Daten an den Client in Form einer HTML-Seite.
2.3 Graphische Benutzeroberflächen (GUI) Über die graphische Benutzeroberfläche (Graphical User Interface) erfolgt die Mensch-Maschine-Interaktion. Im Detail: Strukturierung der Oberfläche Steuerung eines Anwendungssystems Darstellung von Daten und Graphiken Eingabe von Daten Auslösen von Ereignissen und Funktionen Aufbau mit standardisierten Bedienelemente Funktionsbereiche: Menüleiste, Symbolleiste, Statusleiste, Taskleiste, Bildlaufleisten Spezielle Funktionen wie Kontextmenü, Drag-and-Drop Personalisierung
Bedienelemente (Steuerelemente, Controls): Textboxen Anzeigefelder Schaltfläche Menübalken Pull-down-Menü, drop-down-Menü Listenfeld, Drop-down-Liste Ikonen, Piktogramme Checkboxen, Auswahlkästchen Radiobutton Registerkarten Baum Quelle: http://www.itwissen.info/definition/lexikon/Pull-Down-Menue-pull-down-menue.html
Beispiele für Benutzeroberflächen: User Interface (GUI): SAP GUI for Windows Quelle: http://www.sapdesignguild.org/editions/philosophy_articles/colors.asp
SAP GUI for HTML Quelle: http://www.synactive.com/docu_e/specials/webgui.html
Quelle: http://www.munnin.com/de/help/gui.html
Quelle: http://www.sage.de/smb/prodloes/cl/module/mod_warenwirtschaft.asp
Quelle: http://www. dbs-deutschland Selligent X@ Architektur: http://www.dbs-deutschland.de/Produkte+Selligent_CRM+Positionierung+Web_Architektur+mmml
Grundsätze der Dialoggestaltung DIN EN ISO 9241-110 (1) Aufgabenangemessenheit Ein Dialog ist aufgabenangemessen, wenn er den Benutzer unterstützt, seine Arbeitsaufgabe effektiv und effizient zu erledigen. Selbstbeschreibungsfähigkeit Ein Dialog ist selbstbeschreibungsfähig, wenn jeder einzelne Dialogschritt durch Rückmeldung des Dialogsystems unmittelbar verständlich ist oder dem Benutzer auf Anfrage erklärt wird. Erwartungskonformität Ein Dialog ist erwartungskonform, wenn er konsistent ist und den Merkmalen des Benutzers entspricht, z.B. den Kenntnissen aus dem Arbeitsgebiet, der Ausbildung und der Erfahrung des Benutzers sowie den allgemein anerkannten Konventionen.
Grundsätze der Dialoggestaltung DIN EN ISO 9241-110 (2) Fehlertoleranz Ein Dialog ist fehlertolerant, wenn das beabsichtigte Arbeitsergebnis trotz erkennbar fehlerhafter Eingaben entweder mit keinem oder mit minimalem Korrekturaufwand durch den Benutzer erreicht werden kann. Steuerbarkeit Ein Dialog ist steuerbar, wenn der Benutzer in der Lage ist, den Dialogablauf zu starten sowie seine Richtung und Geschwindigkeit zu beeinflussen, bis das Ziel erreicht ist. Individualisierbarkeit Ein Dialog ist individualisierbar, wenn das Dialogsystem Anpassungen an die Erfordernisse der Arbeitsaufgabe, individuelle Vorlieben des Benutzers und Benutzerfähigkeiten zulässt. Lernförderlichkeit Ein Dialog ist lernförderlich, wenn er den Benutzer beim Erlernen des Dialogsystems unterstützt und anleitet.
User Interface Guidelines (Styleguides): sind Richtlinien zur Gestaltung graphischer Oberflächen Konsistentes Look and Feel (Layout, Farben, Fenster, Ikonen,…) einheitliche Interaktionsabläufe (Menü, Dialogboxen, …) Nutzung von radio buttons, check boxes, drop-down-lists, sliders, … Tooltips, Wizard Reaktion Sprache Barrierefreiheit Beispiele aus: Windows Vista User Experience Guidelines
2.4 Datenschicht Die Datenschicht wird durch ein relationales Datenbank-Management- System (DBMS), kurz Datenbanksystem, realisiert. Ein Anwendungssystem fordert über eine standardisierte Schnittstelle, z.B. ODBC, mittels der Standard-Abfragesprache SQL Daten vom DBMS an oder übergibt Daten zur Speicherung oder Änderung. Hersteller von Anwendungssystemen bieten i.d.R. kein eigenes Datenbanksystem an, unterstützen aber Systeme anderer Hersteller, z.B. SAP: ADABAS D, DB2/400 (auf AS/400), DB2/Common Server, DB2/MVS, INFORMIX, Microsoft SQL Server, ORACLE und ORACLE Parallel Server. Quelle: help.sap.com/saphelp_webas620/helpdata/de/fc/eb2e97358411d1829f0000e829fbfe/content.htm Die Datenbank enthält alle Stamm- und Bewegungsdaten der konkreten Implementierung des Anwendungssystems, sowie Meldetexte, Einträge für Listboxen, Customizingdaten, etc.
Das Anwendungssystem basiert auf einem Datenmodell, dessen Realisierung sich in der Datenbankstruktur manifestiert. Beispiel für die Entität „Firma“ in Microsoft CRM (Microsoft SQL-Server)
2.5 Service-orientierte Architektur Eine service-orientierte Architektur (SOA) besteht aus Komponenten, die jeweils einen spezifischen Dienst anbieten, die „lose“ zusammen-gekoppelt werden. Dabei kann es sich um Web-Services handeln. Quelle: http://www.w3.org/2003/Talks/0521-hh-wsa/slide5-0.html
Definition des World Wide Web Consortium (W3C): A Service Oriented Architecture (SOA) is a form of distributed systems architecture that is typically characterized by the following properties: Logical view: The service is an abstracted, logical view of actual programs, databases, business processes, etc. Message orientation: The service is formally defined in terms of the messages exchanged between provider agents and requester agents. Description orientation: A service is described by machine-processable meta data. Network orientation: Services tend to be oriented toward use over a network, though this is not an absolute requirement. Platform neutral: Messages are sent in a platform-neutral, standardized format delivered through the interfaces. XML is the most obvious format that meets this constraint. Quelle: W3C. Web services architecture. http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/wsa.pdf (gekürzt)
Beispiel SAP: Quelle: SAP (Seite existiert nicht mehr) Die Technologie-Plattform SAP NetWeaver organisiert das Zusammenspiel der Enterprise Services, koordiniert Dienste und bindet Anwendungen ein.
Bereiche, auf die sich die Integration bezieht: Ziel: Abteilungsübergreifende, durchgängige Unterstützung der Geschäftsprozesse auf der Basis einer zentralen Datenbasis Bereiche, auf die sich die Integration bezieht: innerhalb des Systems (Modulintegration), Integration von Anwendungssystemen, Integration von Altsystemen (legacy system), zwischenbetriebliche Integration.
Gegenstand der Integration (1): Datenintegration - Datenaustausch: Ein System übergibt über eine Schnittstelle die Daten an ein anderes System (manuell oder automatisch) - gemeinsame Datenbank: Die (Teil-)Systeme speichern ihre Daten in Tabellen einer gemeinsamen Datenbank. Die Tabellen werden über Fremdschlüssel miteinander verknüpft. - Data Warehouse: Die Daten aus verschiedenen Quellen werden in eine vereinheitlichte Struktur für eine integrierte Sicht und für Analysen zusammengeführt.
Gegenstand der Integration (2): Funktionsintegration Verknüpfung betrieblicher Funktionen in einem System Prozess-/Vorgangsintegration Verknüpfung von Funktion zu Vorgangsketten Methodenintegration Kombination und Abstimmung der in verschiedenen Geschäftsbereichen benutzten Methoden Programmintegration Integration von Modulen bzw. fremden oder legacy Systemen über Integration der Benutzerschnittstelle, Integration der Kommunikationskanäle, Geräteintegration
Vorteile des Einsatzes integrierter Programmsysteme: keine Mehrfacherfassung keine Redundanzen keine Inkonsistenzen Optimierung der Geschäftsprozesse einheitliche Benutzeroberfläche höhere Datenqualität (weniger Fehler, einheitliche Formate) Nachteile des Einsatzes integrierter Programmsysteme: komplexes Anwendungssystem „Funktionsüberhang“ hoher Investitionsbedarf kein oder wenig Raum für Speziallösungen (=Insellösungen) Folgefehler
Verschiedene Arten und Bedeutungen: 2.7 Schnittstellen Eine Schnittstelle (Interface) ist eine Verbindungsstelle zwischen zwei Systemen zum Zwecke der Kommunikation. In der Schnittstellen- beschreibung werden die Regeln für den Austausch festgelegt. Meistens sind Schnittstellen standardisiert. Verschiedene Arten und Bedeutungen: zwischen Rechner und peripheren Geräten (Hardwareschnittstelle) Schnittstelle von Funktionen, Signaturen von Klassen, und Diensten Schnittstellen für die Interprozesskommunikation, z.B. Sockets, ODBC Schnittstelle zwischen Anwendungsprogramm und Betriebssystem oder Treiber (API=Application Programming Interface), z.B. TAPI, MAPI Datenschnittstelle Benutzerschnittstelle (Mensch-Maschine-Schnittstelle) organisatorischer Begriff (Interaktion von Menschen)