2. Information Systems II Flashcards
Anforderungen an die Struktur von IS-Architekturen
- Minimierung der Komplexität
- Skalierbarkeit
- Portabilität
- Wartbarkeit
- Standardisierung
- Gut definierte Schnittstellen
- Unabhängigkeit
= Modularisierung von IS-Komponenten
Gründe: IT-Projekte haben größere Komplexität als herkömmliche Großprojekte, neigen zu Kostenexplosionen
Three-Tier Concept
- Präsentationsschicht: Das oberste Level einer Applikation ist das User Interface (UI) - Die Hauptfunktion des Interface ist, Aufgaben und Ergebnisse so zu übersetzen, das der Nutzer es verstehen kann
- Logikschicht: Diese Schicht koordiniert die Anwendung, Prozessbefehle, trifft logische Entscheidungen und Evaluationen und macht Kalkulationen - Bewegt und verarbeitet Daten zwischen den umgebenen Schichten
- Datenschicht: Speicherung von Informationen in einer Datenbank oder Dateisystem - Die Informationen werden zur Bearbeitung an die Logikebene zurückgegeben (und darüber an den User)
Model-View Concept
- Controller: Steuert View(s), initiiert relevante Präsentationsupdates im View und Datenaktualisierung im Modell
- Modell: Verwaltet Daten und enthält gegebenfalls die Programmlogik
- View: Zeigt/Präsentiert die Daten (des Modells) dem User (GUI)
Three-Tier vs. Model-View
- Ähnliche Konzepte zur Strukturierung von IS-Architekturen
- Keines der Konzepte ist allgemein definiert oder spezifiziert:
- Es gibt auch zweistufige Konzepte (zweistufige/two-tier Architektur)
- Programmlogik befindet sich in manchmal im Model und manchmal im Controller (MVC Architektur)
- Unabhängig von den zugrundeliegenden strukturellen Modellen ist wichtig, dass bestimmte Funktionskategorien in einem IS modularisiert werden
Zentralserver-Architektur
- Ein leistungsstarker Zentralcomputer
- „Dumme“, leistungsschwache Terminals (oft ohne Festplatte)
- Terminals stellen nur das grafische user interface (GUI) zur Verfügung
- Zentraler Server ist für die Verarbeitung von Anwendungen zuständig
- Zentraler Server kümmert sich auch um die Datenbank
Zentralserver-Architektur Vor- und Nachteile
• Vorteile:
- Zentraler, gemeinsamer Datenspeicher
- Homogene Anwendungsumgebung
- Keine Terminalverwaltung erforderlich
- Günstige Terminals
• Nachteile
- Zentralserver ist single point of failure
- Feste (unflexible) Netzwerkstruktur
- Monolithisch (nicht zerlegbar)
- Kostenintensive Zentralserver
- Problematisch bei großen Datenaufkommen und -mengen
Client / Server-Architektur
- Clients fragen Service nach
- Server bietet Service an
- Computer können in Client- und Server-Rolle agieren
Client / Server-Architektur
Distributed Presentation / Verteilte Präsentation
Aufteilung der Präsentation zwischen Server und Client:
- Abstrakter Teil der Präsentation (Server): Objekte (z.B ein Fenster) wird in einer abstrakten Weise erstellt, z.B ohne konkrete Funktionen oder Darstellung
- Plattform-spezifischer Teil der Präsentation (Client): Abstrakte Objekte werden plattformspezifisch erzeugt und dargestellt (z.B. Benutzen des GUI der jew. Plattform)
- Vorteil: Heterogene Anwendungssysteme können mit einheitlichem UI auf verschiedenene Plattformen integriert werden
- Beispiel: X-Windows - Eine Benutzeroberfläche mit X-Windows kann auf verschiedenen Plattformen dargestellt werden
- Beispiel: Mobile Web App in einer Native App (Spiegel Online, alte Facebook App)
- Facebook App: Nativer Container mit nativem GUI Element, das einen Browser simuliert, der mit der Facebook WebApp verbunden ist -> Nativität nur simuliert
Client / Server-Architektur
Remote Presentation
Die Präsentation wird zum Client ausgelagert
- Besonders vorteilhaft, wenn der zentrale Server kein eigenes GUI hat
- Clients können auf verschiedenen Plattformen laufen
- Benutzeroberfläche (GUI) kann nach dem Wunsch des Benutzers konfiguriert werden
- Client darf kein „dummes“ Terminal sein
- Beispiel: Apple Airplay, TeamViewer for iOS - Mac (Client)
Client / Server-Architektur
Distributed Application
Verteilung der Anwendungsfunktion (Logik) zwischen Server und Client:
- Zentral genutzte Anwendungsfunktionen werden auf dem Server gehostet, um für alle verfügbar zu sein
- Dezentrale Anwendungen auf dem jeweiligen Client
- Zentrale Anwendungsfunktionen werden nur auf Nachfrage benutzt
- Vorteil: Entwicklung und Wartung der Anwendungsfunktionen werden einfacher, Komplexität wird reduziert
- Beispiele: Facebook App, DB Navigator App, Siri
- Präsentation ist client-side. Daten sind server-side
- Anwendungsfunktionen client-side: Bilder hochladen, posten etc.
- Anwendungsfunktionen server-side: Push-Nachrichten, Vorschläge, Organisation von Gruppen
Client / Server-Architektur
Remote Database / Entfernte Datenbank
Datenbankverwaltung befindet sich auf dem Server:
- Traditioneller Ansatz für Datenbank-Anwendungen
- Mehrere Anwendungssysteme nutzen die selbe Datenbank
- Datenverwaltung kann auch über mehrere Server verteilt werden
- Problem: Es gibt verschiedene Implementierungen der populären Datenbankabfragesprachen „SQL“ mit vielen Erweiterungen und Unterschieden
- Beispiele: Dropbox App, Kundeninformationssysteme, Notizen-App
- Notizen werden auf dem Client geschrieben und angezeigt, aber zu einem Server geschickt und dort gespeichert
- Dadurch können mehrere User dieselbe Notiz verändern; Auf Notizen kann offline nicht zugegriffen werden (Google Docs)
Client / Server-Architektur
Distributed Database / Verteilte Datenbank
- Datenverwaltung zwischen Client und Server verteilt. Es existieren zwei Inkarnationen einer distributed Database:
- Partitionierung des Datenspeichers zwischen Server und Client (Partitionierung: Aufteilen eines Datenspeichers)
- Organisationsstruktur: Zentralisiertes Verzeichnis eines Unternehmens vs. Persönliches Adressbuch
- Häufigkeit der Benutzung: Aktuelle Geschäftszahlen vs. Archiv
• Partitionierung des Datenbanksystems (DBMS) zwischen Server und Client
- Datenzugriffsfunktionalität (häufig verwendet) meistens auf dem Client
- Datenbankenverwaltung auf dem Server
• Beispiel: Here Maps App, Notizen-App
- Notizen werden auf dem Client geschrieben und angezeigt. Sie werden auf dem Gerät gespeichert und zusätzlich mit der Datenbank synchronisiert
- Mehrere User können dieselbe Notiz verändern; Auf Notizen kann auch offline zugegriffen werden
Client / Server-Architektur
Vor- und Nachteile
• Vorteile:
- Kann flexibel gestaltet und erweitert werden
- Hohe Interaktions- und Kommunikationsfähigkeiten
- Verlässlichkeit durch redundante Ressourcen
• Nachteile:
- Hohe Serverauslastung durch Multi-User-Zugriff
- Hoher Planungs- und Koordinationsaufwand
- Hohe Netzwerkbandbreite erforderlich
- Hoher administrativer Aufwand
Cloud Computing Architecture
- Internet-zentrierte Architektur
- Anbieter bieten komplexe Dienste auf Basis von Hard- und Software in abstrakter Form an
- Speicher, Rechenleistung oder komplexe Dienste können über einen Client über das Internet abgerufen werden
- Zugrundeliegende Hard- und Software einer Cloud ist für einen Kunden nicht relevant
- Verschiedene Typen von Cloud-Computing-Diensten:
- Infrastruktur als Dienstleitung
- Platform as a service
- Software as a service
• Anbieter z.B Amazon, Google, Microsoft, Telekom,…
Cloud Computing Architecture (mit Beispiel Apple iCloud)
Vor- und Nachteile
• Vorteile:
- Informationssysteme werden hoch skalierbar (einfaches Upgrade für mehr Speicherplatz etc)
- Zentraler Datenspeicher als Backup
- Kosteneffizient (es wird nur für die tätsächlich verwendete Rechenleistung gezahlt)
- Jederzeit und überall Zugriff auf Anwendungen und Daten
- Ermöglicht die Ausführung anspruchsvoller Anwendungen auf Systemen mit geringer Leistung (z.B Spracherkennung auf Mobilgeräten)
• Nachteile:
- Unternehmen müssen sich auf den Cloudservice-Provider und das rechtliche und politische Umfeld verlassen
- Potenzielle Probleme: Datenverlust (z.B. Password hacks etc.), Nichtverfügbarkeit von Daten, Anbieterkonkurs, Lock-in-Effekte (hohe Wechselkosten etc.), Internetverbindungsfehler