Aufgabe 10:
Definiere verteiltes System, verteilte Anwendung und Middleware
Definition Verteiltes System:
- Ein verteiltes System ist ein System
o In dem sich Hardware und Softwarekomponenten auf vernetzten Computern befinden und
o Nur über den Austausch von Nachrichten kommunizieren und ihre Aktionen koordinieren
Beispiel: das Internet, „The glue“ sind die Protokolle IP, TCP, UDP
Def.: Middleware
- wird von einer verteilten Anwendung als Zugriffsschnittstelle zum verteilten System genutzt
- Ziel: verbergen der Verteilungsaspekte der Anwendung
- Unterscheidung: Kommunikations und Anwendungsorientierte Middleware
o Bzw data management, platform und communication..
- Ziel: Verbergen der Verteilung = Transparenz
o Ortstransparenz
o Zugriffstransparenz
o Nebenläufigkeitstransparenz
o Fehlertransparenz
o Replikationstransparenz (Replikation von HW oder SW bleibt verborgen)
o Vollständige Transparenz ist nicht immer Sinn voll. Bsp. Fehlermeldungen beim Drucker? WO?
Def.: verteilte Anwendung:
- eine Verteilte Anwendung ist eine Anwendung,
o die ein verteiltes System zur Lösung eines Anwendungsproblems nutzt und
o aus verschiedenen Komponenten besteht, die mit den Komponenten des verteilten Systems sowie mit den Anwendern kommunizieren
o Bsp.: Flugbuchung, Internetshops
o ftp telnet usw..
Aufgabe 11:
Beschreiben sie, anhand eines Beispiels, wann sich der Einsatz einer Middleware lohnt, bzw. wann direkte Netzwerkprogrammierung angezeigt ist
-
Aufgabe 12:
Beispiel für Fälle, in denen Transparenz keinen Sinn macht
- zum Beispiel beim Netzwerkdrucker, da wäre es sehr sinnvoll, wenn jemand weiß, wo sich die ressource befindet oder, wenn ein Fehler auftritt, wie der Drucker angesteuert wird.
Aufgabe 13:
Die Verteilung von Anwendungen wirft viele Probleme auf. Begründen Sie anhand von Beispielen, warum es dennoch sinnvoll sein kann, eine Anwendung verteilt zu realisieren
Wesentlicher Grund: gemeinsame Nutzung der Ressource
- Hardwareressourcen (Netzwerkdrucker, Scanner)
- Gemeinsame Nutzung von Daten und Informationen – Datenbank, WWW, Fileserver Informationsaustausch
- Gemeinsame nutzung von Funktionalität
o Zentralisierung der Funktionalität, Fehlervermeidung, wieder verwertung
Aufgabe 14:
Begründen Sie, warum 2 tier Architektur nicht für Internetanwendungen geeignet ist.
Engl: Stufe, Reihe. Achtung: nicht Schicht, schicht ist ein LAYER
- kennzeichnet einen unabhängigen Prozessraum innerhalb einer verteilten Anwendung
- n tier legt fest, wie viel unterschiedliche Stufen, also Client, Server Prozessräume es in einer verteilten Anwendung gibt.
- Prozessraum kann, muss aber keinem pysikalischen Rechner entsprechen – heute nicht mehr weil, Blades, Cluster und grid usw.
- Typische Aufgabenstellung in einem Inforamtionssystem sind:
o Präsentation
o Anwendungslogik
o Datenhaltung
- bei einer 2 tier Architektur gibt es nur 2 Schichten, das waren frühere Mainframes/Großrechner, wo auf dem Client nur die Präsentation der Daten möglich war.
- D.h. es wäre eine Direktverbindung zum nächsten Computer nötig, was aber beim Internet nicht der fall ist, da hier viele Rechner vernetzt sind und auch weitere Rechner den Middletier zur Übertragung bilden.
- 2 Tier wird noch bei Datenbanken eingesetzt, schwer wartbar, schwer skalierbar, update Problem – wenn dann kompletter Rechner
Aufgabe 15:
Sie erhalten eine hochverfügbare Internetplattform zur Versteigerung von DVDs. Erläutern sie kurz, welche Architekturmodelle bzw. Verteilungsmodelle sie einsetzen würden. Skizze!!
- Client= im Browser findet die Präsentation statt.
- Anwendungslogik und Datenhaltung beim Plattforminhaber. Dazwischen Kommunikationsmiddleware: INTERNET
- Bei der Plattform wird eine verteilte Architektur benötigt um die Hochlast und die dauernden Anfragen verarbeiten zu können…
- Wichtig: Lastverteilung
- 1. Eingangsrechner alleine nur zur Verwaltung der Seitenaufrufe
- 2. verteilt über verschiedenste Verfahren die Lasten auf die Rechner die die Anfragen bearbeitet.
- Hier: zb. jede Auktion auf einem bestimmten Rechner, vereinfacht Datenhaltung von Session Cookies, /Jave beans usw und wegen der dauernden Preisänderung. also viele Webserver, die die anfragen verarbeiten.
- Für die Datenhaltung muss man im Hintergrund ein Grid aufbauen, dass die ganzen Datenbanken mit den Infos enthält die bei bedarf an den Webserver geliefert werden, wie Kundendaten, Auktionsdaten, Abrechnungsvorgänge,
- Dabei sollten systemkritische Prozesse, wie Abrechnung mit hoher Sicherheit und Kundendaten, die sich selten ändern auf unterschiedlichen Rechner mit unterschiedlichen Sicherheitsstufen gehalten werden, um Wartung zu vereinfachen
- Außerdem sollten die Seiten dezentral gespiegelt werden, wie z.b. bei ebay – Länderspezifische Websites um DoS Attacken zu vermeiden, oder Flash Crows am ende einer Auktion
Ultra thin client: nur Browser
Fat client: teile der Anwendung liegen auf Client –J2EE usw.
Aufgabe 16:
Middleware kann sowohl im EAI Bereich, als auch für verteilte Anwendungen eingesetzt werden. Erläutern sei, welche Eigenschaften Middleware jeweils unterstützen sollte.
EAI= Enterprise Application Integration
Integration vollständiger Anwendungen entlang der Wertschöpfungskette eines Geschäftsprozesses oder in einem Unternehmen
Ziel: Integration einfacher Anwendungen.
Middleware eignet sich zwar auch, erb nicht so gut zur Anwendungsintegration:
Unterschied SAP XI und Net Weaver
Middleware sollte auf jeden Fall die Interaktion der Anwendungen und die Kommunikation der Anwender vereinfachen
Für EAI wird eine hohe Anforderung an Skalierbarkeit und Sicherheit gestellt
Aufgaben zu Webservices
1.) Welchen neuen Aspekt unterstützen WebServices im Vergleich zu anderen Web Technologien?
- Ermöglichen web basierende RPC
- 4th generation von webAnwendungen Browser über XMl zu webserver, der ruft dann noch von APP Server und DB Sachen ab.
- Neuer Aspekt: Kommunikation zwischen den Diensten aufgrund von Standards, dadurch durchmischen von Anwendungen, Interoperabilität, besseres Customizing an die Bedürfnisse des Nutzers.
- Verbindet die Dienste verschiedenster Anbieter innerhalb eines Geschäftsprozesses
2.) Was versteht man unter einem wohlgeformten XML Dokument? Wann kann ein XML Dokument als gültig angesehen werden?
- Daten werden mit der Endung .xml abgelegt
- XML sind wohlgeformt, wenn sie allen Regeln genügen (Syntax)
o Bedeutet nicht, dass diese auch sinnvoll sind
- Damit ein Dokument ein gültiges Doc ist, muss die Struktur interpretierbar sein
- 2 Spezifikationen von XML Semantik:
o DTD Date Type Definition, Spezifikationen für den Austausch von Dokumenten
o XML Schema: Nachfolger der DTD, XMl basiert
XML= auzeichnungssprache
- sprache zur Beschreibung von Elementen in einem XMl Dokument
- bietet Reihe von Basusdatentyen und komplexer Ausdruckstypen
- Datentypdefinitionen werden mit .xsd beschrieben
- Notation ist wieder xml
- Xml file enthält link auf die schema interpretation und kann so interpretiert werden.
- Jeder Namespace mit eindeutiger URI = universal Ressource Identifier
- W3c definiert das
Bietet die Möglichkeit, komplexe Datenstrukturen innerhalb eines Dokuments darzustellen
Zwischen Systemen und Plattformen austauschbar
3.) Idee hinter den WS ist es, einem Anwender einen komplexen Dienst durch die transparente Zusammenarbeit mehrer Teildienste zur Verfügung zu stellen. Nennen sie mögliche Geschäftsmodelle für WS in der Zukunft
- Automatisierung, so dass die Maschinen untereinander kommunizieren können
- Ws sollen hauptsächlich im B2B Bereich eingesetzt werden und durch ihre Standardisierung Integration von verschiedensten Heterogenen Dienste bewerkstelligen, Ws sind nicht Middleware, es fehlt was auf der Vermittlungsschicht
- Darüber hinaus sind unzählige Szenarios möglich, wo ein WS genutzt werden kann Z.B. Local Based Services, wo Mobiltelefone in Funkzellen automatisch dienste zur Verfügung gestellt bekommen, ie wo gibt es in Wien das Wiener Schnitzel
-
4.) Nennen sie einige Vorteile der WebService Technologien gegenüber JAVA RMI. Wo sehen sie die wichtigsten konzeptionellen Unterschiede der beiden Technologien?
JAVA RMi (Remote Method Invocation)
- Java basierte Implementierung des RMI Kommunikationsmodells
- Integraler Bestandteil der JAVA Plattformen
- Client und Serverobjekte immer in JAVA
- Datentransformation: Objektserialisierung
- Intergrierter Namensdienst: JAVA Registry
- Verwendet das Sicherheitsmodell der J2EE trusted, untrusted
Vorteile von WS gegenüber JAVA RMI
- übergreifende Standardisierung
- kein Java Runtime engine nötig – müsste auf allen Rechnern verfügbar sein, um die Befehle interpretieren zu können
- Bei Java müssen Teile der Anwendung zum Client geladen werden, WS rein über nachrichten und Dienstaufrufe
- Nur für reine JAVA Lösungen – Connectors z.B: zu SAP SOA sau teuer, und da wären noch haufenweise andere Sachen nötig, NetWeaver usw.…
- Parsen z.b. der Google Suche in die eigene Anwendung geht über WS ganz einfach, über JAVA nicht möglich, da müssten erst Prozesse definiert werden usw..
- Jeder Browser liest xml
Aber: JAVA RPC
JAVA Apis for xml based RPC (JAX RPC) sind der Standard einer Schnittstelle für JAVA Anwendungen auf WS
- erweitert SOAP um eine Java Schnittstelle
-
Gruppenarbeit WS:
- Anwendungsszenarien, Vorteile der Technologie, wieso noch so selten..
- Vorteile und Nachteile
- Vorteile:
o Webservices sind eine Middleware für das Internet, durch http einfach übertragbar, keine Firewallrpobleme
o Offene, flexible Architektur durch http, XML…
o Einfache zu implementieren
o Offene Standards
o Kostengünstig
Mit JAX RPC Java Platform für WS, mit ASP.net von MS
Grundlage bilden die drei Standards WDSL, UDDI, SOAP
Fehlende Standards erschweren den Einsatz
Nachteile:
- Fehlende Standards zu Sicherheit, Prozess- und Transaktionsverwaltung erschweren den Einsatz.
- Performance: Durch XML, gestiegene Dateigrößen und Parsen entsteht ein großes Datenaufkommen
- Noch keine Standards zu kostenpflichtigen Web Services (Bezahlmodelle)
Nachrichtenorientierte Middleware
1.) Begründen sie, wann die Übertragung einer Nachricht durch nachr. Orient. Middleware transaktional ist, also die 4 Eigenschaften einer Transaktion erfüllt. Welche Rolle spielen hierbei persistente Warteschlangen
- 4 eigenschaften einer Transaktion? ACID atomity, consistency, isolation durability
Asynchroner Transport von Daten zwischen 2 Prozessen
Daten werden innerhalb von Nachrichten übertragen
Reueset Reply Modell, Message Passing, Publish, Subscribe Modell
MOM= Message oriented Middleware zur Warteschlangenverwaltung, Unterstütz alles mögliche an Message zeug: Verbindungsmanagement, Warteschlangenverwaltung usw
- Persistente Warteschlangen
o Eine wesentliche Quality of Service Eigenschaft ist die garantierte Auslieferung der Nachricht
o Problem: Empfänger kann ausfallen, Netzwerk kann unterbrochen sein
o PERSITENTES Zwischenspeichern in DB
o Wenn der Empfänger bereit ist wird zugestellt
o Sagt also nichts über den Zeitpunkt aus
- Warteschlangeverwalter: Queue Manager
2.) Beschreiben sie Programmiermodelle, die mit nach.orient. Middleware umgesetzt werden können!
- asynchrone Kommunikation! Message Queuing
Klasse der nachrichtenorientierten Middleware fallen alle Middleware-Technologien, die auf dem nachrichtenorientierten Modell aufsetzen. Typisches Kennzeichen nachrichtenorientierter Middleware ist die Unterstützung komplexer Warteschlangensysteme.
Der aktuell wichtigste Standard für nachrichtenorientierte Middleware ist der Java Message Service (JMS). Bekanntes Beispiel und in gewisser Weise Quasi-Standard für eine nachrichtenorientierte Middleware ist WebSphereMQ von IBM, auch unter dem Namen MQSeries bekannt.
-
Nachrichtenorientierte Middleware bzw. Message Oriented Middleware (MOM) bezeichnet Middleware, die auf der asynchronen Kommunikation, also der Übertragung von Nachrichten (Messages) beruht. Das Format für die Nachrichten ist nicht festgelegt, in der Praxis hat sich jedoch XML als beliebtes Format etabliert.
MOM unterstützt drei verschiedene Kommunikationsprotokolle
Message Passing (Direkte Kommunikation zwischen Applikationen)
Message Queueing (Indirekte Kommunikation über eine Nachrichtenqueue)
Publish & Subscribe (Erzeuger (Publisher) stellt Konsument (Subscriber) Messages zur Verfügung)
Vorteile
asynchrone Kommunikation
Server/Dienst muss nicht sofort verfügbar sein
Message-Warteschlangen
meist schnellere Ausführung als Funktionsaufruf-basierte Programme
lose Kopplung von Server/Clients
mehr Toleranz für Änderungen der bestehenden Funktionen
verbesserte Verfügbarkeit der Systeme
parallele Verarbeitung von Nachrichten möglich
Nachteile
Komplexität beim Programmieren
Hoher Aufwand
Ausfall der MOM legt alle angeschlossenen Systeme lahm
Designen, Testen, Debuggen und Entwicklung der Bauteile sind für Synchron-Programmierer ungewohnt
Message Oriented Middleware mit XML [Bearbeiten]
Der Einsatz von XML als Sprachbasis für die Nachrichten bei Message Oriented Middleware ist in der Praxis weit verbreitet. Aufgrund des vergleichsweise selbsterklärenden und im Gegensatz zu Nachrichten im Binärformat leicht menschenlesbaren Formats ist es beim Einsatz von XML relativ einfach, auch die Kommunikation zwischen Middleware-Systemen zu ermöglichen, wenn sie unterschiedliche Sprachen verwenden, solange die Sprachen XML-basiert sind. Um die Kommunikation zu ermöglichen, kann ein XSLT-Prozessor als Übersetzer zwischengeschaltet werden, der mit Hilfe eines Transformations-Stylesheets Nachrichten von der XML-basierten Sprache des Quellsystems in die Sprache des Zielsystems übersetzt. Als Protokoll wird häufig SOAP eingesetzt.
3.) Überlegen sie sich für jedes der genannten nachrichtenorientierte Programmiermodell ein Anwendungsszenarien in der Praxis. Begründung.
RPC
JAVA RMI
MOM
- Publish subscribe – Newsletter im Internet
- Message Passing
o Point to Point
o Broadcsting =videodienst jeden tag um 8=tagesschau verlinkung einblenden oder so
o Request Reply Modell = eingebettete fragen und antworten in diensten zb. Akzetieren der Geschäftsbedinungen (da es hier eher im technik geht, die ohne menschliches klicken funktioniert…anderes beispiel)
Middleware: Kommunikations- und Anwendungs- Middleware
1.) Webanwendungen arbeiten häufig mit Sitzungen. Eine Sitzung bleibt über mehrere Seitenwechsel vorhanden. Diskutieren sie, zu welchen Problemen bei der Sitzungsverwaltung die Verwendung des back Buttons im Browser führen kann.
- Verwendung des Back Buttons –
o Führt ohne Clientseitigen Cache zum datenverlust zb auf der Eingabemaske vorher
Lösung Session Cookie oder Java Beans
2.) Erläutern sie den Unterschied zwischen horizontaler und vertikaler Transaktionen.
Verteilte Transaktionen:
- bei dezentrierten Anwendungen werden die Daten aus der Anwendung im Cache der Middleware gespeichert
- Ein Transaktionsdienst hat die Aufgabe, dass die Daten im Cache mit den Daten der DB konsitent sind
- Mittel der Wahl ist Tier übergreifende Verwaltung
- Wird auf middle tier ausgeführt
Horizontale Transaktionen:
- Erweiterung der Vertikal verteilten Transaktionen
- Mehrere Ressourcen müssen integriert werden. DBen oder so
-
Cross industry app müssen vertical integriert werden.also gleiches programm in unterschiedlichen branchen
Zb 2 lagerprogramme geichen den bestand ab oder so
Horizontal:
Abgleich von 2 unterschiedlichen programmen. Vertriebler braucht verbingund von google earth mit vw verkäufen in heidelberg über BI Modul als WS Dienst oder so
Dann braucht er anwendungsorientierte Middlware, die die unterschiedlichen abgleiche von programmen vornimmt und erstmal versteht und übersetzt, das ine kommunikation möglich ist
Anwendungsorientierte Middleware erweitert die Kommunikation um
- Laufzeitumgebung zb. .net oder J2EE
- Dienste zb GPS einbetten
- Komponentenmodell: was von welchem programm wird benötigt?
Middlewaretechnologien:
- ORB – object request broker zb.b CORBA
- Application Server
- Middleware Platform – J2EE
3.) Beschreiben sie das Modell der Open Group zur Verwaltung verteilter Transaktionen.
Erläutern sie, warum eine einfache Transaktionsverwaltung bei verteilten Systemen nicht mehr ausreicht. Wo können Probleme auftreten?
- Es gibt ein heute allgemein anerkanntes Modell für die Verwaltung von verteilten Transaktionen
- Das Modell wurde von der Open Group entwickelt offener Standard
- Das Modell beschreibt die Rolle der beteiligten Komponenten
o Die Anwendung
o Der Transaktionsverwalter
o Die Ressourcenverwalter
o Begin/Commit/rollback
Ablauf:
- Anwendung BEGIN
- Transaktion ist nun aktiv
- Jeder Ressourcenverwalter teilt über JOIN mit, dass er an der Transaktion beteiligt ist
- Anwendung will mit COMMIT das ende der Transaktion
- Transaktionsverwalter fordert die Ressourcenverwalter auf, die Änderungen festzuschreiben (2 Phasen Commit)
4.) Optimistisches Sperren erlaubt eine feine Abstimmung der Isolierung von Transaktionen durch so genannte Sperrmodi. Diskutieren sie, welche so genannten Sperrmodi denkbar sind.
5.) Welche Phänomene können bei unzureichender Isolierung paralleler Transaktionen gegeneinander auftreten? Wie wirken sie sich aus?
- Probleme der Ressourcentrennung z.B. bei WebServices
6.) Erläutern sie den Zusammenhang zwischen Nebenläufigkeit, threats und Transaktionen
- Nebenläufigkeit:
o Bezeichnet die isolierte parallele Bearbeitung von Aufrufen
o Wird möglich durch Prozesse und Threats
o
7.) Versicherungsanwendung, 20 Sachbearbeiter, jeder arbeitet im Schnitt 6 Stunden täglich mit der Anwendung. Es werden 10 Stunden Verfügbarkeit gefordert. Ausfälle darf es nicht geben. Mit welcher Strategie würde sie diese Anforderung erfüllen. Begründung.
- Cluster erfüllt diese Bedingungen
- Load Balancing Cluster
o Alles arbeitet parallel
o Zur Lastverteilung
- Fail over Cluster: zus Ausfallsicherheit
Systemarchitekt entscheidet, ob Cluster notwendug oder nicht, hier JA
Blade Cluster zur schnellen erweiterbarkeit
On demand service auf keinen fall
8.) Komponentenmodelle erleichtern die Entwicklung verteilter Anwendungen erheblich. Dennoch sind die Meinungen über ihren Nutzen geteilt. Pro u Kontra Argumente finden!

