Grundlagen und Konzepte der Web- und Verteilten Systeme

Gesendet von Javi und eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 43,88 KB

1. URL: Definition, Nutzen, Bestandteile und Nachteile

Die URL (Uniform Resource Locator) ist eine Untermenge von URIs. Sie dient zur eindeutigen Benennung von Ressourcen. Eine URL ist in drei Teile unterteilt, wie wir in diesem Beispiel sehen:

9k =

Nachteil: Wenn mehrere Kopien (Repliken) existieren, bietet die URL keinen Mechanismus, um gleichzeitig auf alle Kopien einer Ressource zuzugreifen, ohne deren genauen Standort anzugeben.

2. CSS: Vererbungsmechanismus und grundlegende Selektor-Regeln

In CSS erbt das Kind die Stileigenschaften des Elternelements. Wenn beispielsweise dem <body>-Element eine Schriftart zugewiesen wird, erbt das gesamte Dokument diese Schriftart. Wenn einem anderen Kind-Element eine andere Schriftart zugewiesen wird, erben alle dessen Nachkommen diese neue Schriftart.

Ein anderes Beispiel wäre die Zuweisung von Kursivschrift zum <body>-Element, sodass das gesamte Dokument kursiv dargestellt wird. Wenn einem Kind-Element die Farbe Rot zugewiesen wird, werden dieses Element und alle seine Nachkommen kursiv und rot dargestellt.

Regeln für CSS-Selektoren:

  • *: Wählt alle Elemente aus.
  • E: Wählt alle Elemente vom Typ E aus.
  • E > F: Wählt jedes direkte Kindelement F von E aus. (Bsp.: <e><f>...</f></e>)
  • E F: Wählt alle Nachfahren-Elemente F von E aus. (Bsp.: <e><a><f>...</f></a></e>)
  • E + F: Wählt das F-Element aus, das unmittelbar auf E folgt (Geschwister). (Bsp.: <e>...</e><f>...</f>)
  • E#X: Wählt das E-Element aus, dessen ID X ist.
  • E.Y: Wählt das E-Element aus, dessen class-Attribut Y ist.
  • Pseudo-Klassen: Selektoren, die spezielle Zustände angeben (z. B. ob ein Link besucht wurde oder die Maus darüber fährt).
  • Gruppierung: Elemente werden durch Kommas zusammengefasst. (Bsp.: E, F, H)

3. Funktionsweise von CGI (Common Gateway Interface)

CGI (Common Gateway Interface) ist ein Standard, der es einem Web-Client ermöglicht, Daten von einem Programm auf einem Web-Server anzufordern.

CGI war einer der ersten Schritte zur Erstellung dynamischer Webseiten, obwohl es heute aufgrund seines hohen Rechenaufwands und der Komplexität der HTML-Generierung mit traditionellen Programmiersprachen kaum noch verwendet wird.

Grundsätzlich ist der Betrieb von CGI wie folgt:

  • Der Client fordert eine URL beim Server an.
  • Der Server führt die Anwendung aus und übergibt Hintergrundinformationen (z. B. die angeforderte URL, die Client-IP, GET- oder POST-Daten).
  • Die Ausgabe der Anwendung wird an den Client gesendet.

4. CGI: Unterstützte Anfragetypen (GET vs. POST)

Es können sowohl GET- als auch POST-Anfragen verwendet werden. Bei GET speichert der Server die Parameter in der Umgebungsvariable QUERY_STRING. Das CGI-Programm kann daraus die Namen und Werte der Variablen abrufen.

Bei POST-Anfragen werden die Daten über die Standardeingabe der Anwendung empfangen und können dort verarbeitet werden.

5. Welche Informationen werden bei der GET-Methode an CGI übergeben?

Bei einer GET-Anfrage speichert der Server die empfangenen Parameter (als Name=Wert-Paare) in der Umgebungsvariable QUERY_STRING. Das CGI-Programm muss diese Werte entschlüsseln und verarbeiten.

6. Bedingungen für wohlgeformte XML-Dokumente

Ein XML-Dokument ist wohlgeformt, wenn es die grundlegenden syntaktischen Regeln von XML erfüllt (z. B. korrekte Verschachtelung, ein einzelnes Root-Element, korrekte Attributnotation). Es ist gültig (konsistent), wenn es zusätzlich einer DTD oder einem Schema entspricht.

Analyse der folgenden Fragmente:

  • <?xml version="1.0" encoding="ISO-8859-1"?> (XML-Deklaration. Der Kommentar im Original: "Kein 'doctype', einer DTD" bezieht sich auf die Gültigkeit.)
  • <title> HTML title></title>: Nicht wohlgeformt. Der schließende Tag ist fehlerhaft (title> statt /title).
  • <ul nocaption="true"></ul>: Wohlgeformt (syntaktisch korrekt), aber das Attribut nocaption ist möglicherweise nicht gültig gemäß einer DTD/einem Schema.
  • <li> Element 1 li></li>: Nicht wohlgeformt. Der schließende Tag ist fehlerhaft (li> statt /li).

Das gesamte Dokument, das diese Fragmente enthält, wäre aufgrund der fehlerhaften Tags nicht wohlgeformt.

7. CSS-Vererbung: Zugewiesene Farb- und Schriftartwerte

Regeln:

  • BODY (Farbe: schwarz, Schrift: Times)
  • OL + LI (Farbe: gelb)
  • LI (Farbe: orange)
  • UL LI (Schrift: Arial)
  • A (Farbe: rot)
  • LI > A (Farbe: blau)

Ergebnisbaum:

BODY (Farbe: schwarz, Schrift: Times)

| -> OL (Farbe: schwarz, Schrift: Times)

| |

| | -> LI (Farbe: Orange, Schriftart: Times)

| | -> LI (Farbe: Orange, Schriftart: Times)

| | -> P (Farbe: Orange, Schriftart: Times)

| | -> A (Farbe: rot, Schriftart: Times)

| -> UL (Farbe: schwarz, Schrift: Times)

| -> LI (Farbe: Gelb, Schrift: Times) (Wegen OL + LI, da LI direkt auf OL folgt)

| -> LI (Farbe: Orange, Schriftart: Times)

| -> A (Farbe: rot, Schriftart: Times)

8. HTTP-Header-Austausch bei der Übertragung von Cookies

Das folgende Szenario zeigt den Austausch von HTTP-Headern bei der Übertragung von Cookies (Server-Antworten und Client-Anfragen):

  • Server-Antwort: Keine (Erste Anfrage)
  • Server-Antwort: Set-Cookie: a="Wert"
  • Client-Anfrage: Cookie: a="Wert"
  • Server-Antwort: Set-Cookie: b="valorB" max-age=7200
  • Client-Anfrage: Cookie: b="valorB"

9. Web Services (WS): Funktionsweise, Bedeutung und Nutzen

Funktionsweise:

Web Services (WS) funktionieren wie Remote Procedure Calls (RPC), basierend auf der grundlegenden Infrastruktur des Internets. Die Methoden oder Funktionen, die mit Input- und Output-Parametern aufgerufen werden (WS-Schnittstelle), werden mit WSDL (Web Services Description Language) festgelegt. UDDI ist ein Verzeichnis von WS mit den entsprechenden WSDL-Beschreibungen.

Sobald die WSDL-Beschreibung der Remote-Funktion bekannt ist, erfolgt der Aufruf (WS) durch den Austausch von SOAP-Nachrichten (Simple Object Access Protocol), die in XML formatiert sind. Es können verschiedene Protokolle verwendet werden, aber in der Regel wird SOAP über HTTP genutzt.

Der WS-Server implementiert den Dienst, verarbeitet den Aufruf und gibt ein Ergebnis zurück, das in SOAP-XML gekapselt ist.

Der Prozess ist unabhängig von der verwendeten Programmiersprache und Plattform.

Nutzen und Vorteile:

WS ermöglichen es einem Unternehmen, Funktionen mit anderen Anwendungen über das Internet zu kommunizieren.

  • Ermöglichen den Austausch von XML-Dokumenten über HTTP.
  • Ermöglichen die Bereitstellung von „Diensten“ über das Web (Internet).
  • Ermöglichen die Interaktion zwischen Anwendungen (Software) über das Internet.
  • Gewährleisten die Interoperabilität zwischen heterogenen Systemen.
  • Verwenden Standard-Internet-Protokolle für den Austausch von XML-Dokumenten zwischen Prozessen.
  • Sie fungieren als Remote Procedure Call.

10. Idempotente Operationen und zulässige Semantik

Eine Operation ist idempotent, wenn das Ergebnis nicht davon abhängt, wie oft sie ausgeführt wird. Im Allgemeinen gelten Operationen, die lediglich Informationen abrufen und keine Datenwerte ändern, als idempotent. Für diese Art von Operationen sollte die GET-Anfrage verwendet werden.

Wenn Transaktionen eine Aktion beinhalten, die den Wert von Informationen ändert, gilt dies als nicht-idempotente Operation. In diesem Fall muss die POST-Methode verwendet werden. Ein Beispiel für eine nicht-idempotente Operation ist ein Online-Kauf oder die Registrierung eines Benutzers auf einer Website.

11. Serialisierung und Deserialisierung bei LPR

Die Prozesse der Serialisierung und Deserialisierung bestehen darin, die Daten, die über LPR (Local/Remote Procedure Call) ausgetauscht werden, so zu formatieren/speichern, dass sie für die Übertragung geeignet sind und von beiden Enden der Kommunikation verstanden und verarbeitet werden können.

Diese Prozesse sind bei LPR notwendig, da die Endpunkte unterschiedliche Plattformen nutzen und daher unterschiedliche Darstellungen von Objekten und Datenwerten verwenden können. Durch beide Verfahren wird sichergestellt, dass die abgefragten Daten in der gleichen Vorlage sind, wie sie vom Absender geschickt wurden.

12. CORBA-Architektur und Ablauf eines Remote Procedure Calls

CORBA ist eine Plattform, die es ermöglicht, Operationen auf entfernten Objekten aufzurufen.

CORBA besteht aus:

  • Einer Interface Definition Language (IDL), die die Prozesse und Methoden für den Remote-Aufruf definiert.
  • Einem Interface-Compiler, der Quellcode für die Verwendung in Client- und Server-Programmen erzeugt.
  • Dem sogenannten ORB (Object Request Broker), der für die Kommunikation zwischen Client und Server verantwortlich ist.
  • ROR (Remote Object References), die ein Objekt eindeutig identifizieren.

Um eine Remote-Methode aufzurufen, muss zunächst die Referenz ROR bekannt sein. Sobald sie bekannt ist, serialisiert der Client die Daten mithilfe des Stub-Codes und sendet sie über den ORB an den Remote-Server. Dieser wiederum ist für die Deserialisierung der Daten verantwortlich und ruft die angeforderte Methode für die im ROR angegebene Objektreferenz auf.

13. ROR (Remote Object Reference) in CORBA

Die ROR ist eine Referenz auf entfernte Objekte. Jedes Objekt besitzt eine eindeutige ROR, die im Object Adapter erzeugt wird. Mithilfe der ROR ist der ORB in der Lage, den Remote-Computer und den Object Adapter zu finden, wo sich das Objekt befindet.

Die ROR kann auf folgende Arten eingeholt werden:

  • Durch spezielle CORBA-Dienste.
  • Über einen IOR-String-Modus.
  • Aus einer Datei (z. B. über NFS).
  • Über ein Objekt-Download-Protokoll (z. B. HTTP, FTP, OBEX).

14. Kostenvergleich: CDN vs. Spiegelungssystem

Ein Unternehmen möchte entscheiden, ob es ein Content Delivery Network (CDN) oder ein Spiegelungssystem für seine Website nutzen soll. Gegeben sind:

  • CDN-Kosten: 0,01 Euro pro Megabyte.
  • Spiegelungssystem: 10 Server, Wartungskosten von 0,001 Euro pro Zugriff.
  • Täglicher Traffic: 1000 Besucher, durchschnittlich 1 Megabyte pro Seite.

Tagesvolumen: 1000 Besucher * 1 MB/Besucher = 1000 MB

Kosten für CDN:

Kosten pro Tag: 1000 MB * 0,01 Euro/MB = 10 Euro

Kosten für Spiegelungssystem:

Kosten pro Tag: 1000 Zugriffe * 0,001 Euro/Zugriff = 1 Euro

U3XjTrEu12xzEAA7

iXx4lDZklGKYaAJUoSX9bEhGuiHKnlmWTogQIUIoCg5goSrLkHnCYYoZSSXb45GJp8fpHTARVElJM5g46QU0UR8tjnol0EAQA7

Fazit:

Die beste Alternative ist die Verwendung von Spiegeln, da dies die kostengünstigere Option ist.

Fragebogen 2

2. Aktiver Caching-Mechanismus

Beim aktiven Caching inspiziert der Proxy-Server eine Website und lädt Seiten, die über Hyperlinks verknüpft sind, vorab in den Cache. Dies reduziert die Zugriffszeit, kann aber auch dazu führen, dass der Cache mit unbrauchbarem Material überflutet wird. Es ist ein komplexerer Mechanismus als das herkömmliche (passive) Caching, bei dem Inhalte nur auf explizite Anfrage des Clients gespeichert werden.

3. CDN (Content Delivery Network): Beschreibung und Nutzen

Ein CDN (Content Delivery Network) ist ein Netzwerk zur Bereitstellung von Inhalten. Content-Provider beauftragen CDNs mit der Auslieferung von Web-Inhalten (Bilder, Software, MP3s, Videos usw.). Das CDN schließt Verträge mit Tausenden von ISPs ab, die es ermöglichen, die Inhalte auf lokalen Servern (im LAN des ISPs) zu speichern, die vom CDN ferngesteuert werden.

Vorteile:

Es ist nicht notwendig, Änderungen am Ursprungsserver, am DNS oder an anderen Protokollelementen vorzunehmen.

4. Informationsübermittlung mittels HTTP-Protokoll

Das HTTP-Protokoll arbeitet auf der Anwendungsebene über TCP. Zuerst wird die TCP-Kommunikation aufgebaut. Anschließend werden die erforderlichen Nachrichten zwischen Client und Server über HTTP ausgetauscht. Sobald die Anfrage abgeschlossen ist, wird die Verbindung geschlossen.

Jede Client-Anfrage ist ein ASCII-String (7 Bit), wobei das erste Wort (in Großbuchstaben) den auszuführenden Vorgang angibt. Die Anfrage wird über eine TCP-Verbindung an den Server gesendet. Beispiel:

GET /directory/paginaweb.html HTTP/1.0

Der Server antwortet mit:

  • Statuszeile (Code + Code-Information)
  • Zusätzliche Kopfzeilen (Header)
  • MANDATORY Leerzeile
  • MIME-Objekt (Antwortinhalt)

Der minimale erforderliche HTML-Code auf der Client-Seite ist das <form>-Tag und die entsprechenden Eingabefelder.

5. Anwendung von GET- und POST-Methoden

GET wird für idempotente Operationen verwendet, d. h. Operationen, deren Ergebnis nicht davon abhängt, wie oft sie ausgeführt werden (typischerweise das Abrufen von Daten). GET ist nicht geeignet für das Senden großer Mengen binärer Daten oder sensibler Informationen.

POST ist vorzuziehen, wenn Operationen durchgeführt werden, die den Wert von Informationen ändern (z. B. Aktualisierung eines Profils oder Registrierung eines Benutzers). Ein Nachteil ist, dass POST oft die Funktionalität der Schaltfläche "Zurück" und das Neuladen des Browsers beeinträchtigt.

7. Datenbanken, Datenbank-Software und Abfragen

Eine Datenbank ist eine systematisch gespeicherte Sammlung von Daten zur späteren Verwendung.

Datenbank-Software (DBMS) ist das System, das die in einer Datenbank gespeicherten Daten verwaltet, anzeigt und den Zugriff darauf ermöglicht.

Abfragen (Konsultationen) an Datenbanken erfolgen über eine Standardsprache namens SQL (Structured Query Language). Diese Sprache ermöglicht es, Zeilen und Zellen der Datenbank auszuwählen (Daten abzurufen) sowie die Verwaltung von Tabellen, Spalten, Berechtigungen, Indizes usw.

10. Funktionsweise, Bedeutung und Nutzen von AJAX

AJAX (Asynchronous JavaScript and XML) ist eine Sammlung von Technologien (JavaScript, XML, HTTP usw.), die eine asynchrone Kommunikation mit dem Server ermöglichen. Im Gegensatz zum normalen HTTP-Betrieb, der synchron ist und die Seite blockiert, erlaubt AJAX dem Client, die Seite weiterhin zu nutzen, während die Anfrage im Hintergrund gestellt wird. Dies führt zu einer größeren Interaktivität, Geschwindigkeit und Benutzerfreundlichkeit von Webanwendungen.

11. Interprozesskommunikation (IPC) und Mechanismen

Interprozesskommunikation (IPC) umfasst Techniken für den Austausch von Informationen (Nachrichten) zwischen Prozessen (lokal oder remote). Die Merkmale der IPC sind synchrone oder asynchrone Kommunikation, Nachrichten-Destinationen (IP-Adresse, Port) sowie Zuverlässigkeit und Management.

Mechanismen zur Implementierung:

  • Socket-Schnittstelle: Abstrahiert miteinander verbundene Aufgaben zwischen Prozessen. socket() erzeugt einen Socket und gibt ein Schlüsselwort der Verbindung zurück.
  • Remote Procedure Call (RPC) / Remote Method Invocation (RMI): Ermöglicht den Aufruf von Operationen in verschiedenen Prozessen auf derselben oder verschiedenen Maschinen. Ein in einem Prozess instanziiertes Objekt ruft eine Methode auf einem in einem anderen Prozess instanziierten Objekt auf. Die RMI-Schicht kann diese Vorgänge für den Programmierer transparent gestalten.

13. Vergleich: Web Services und CORBA

Web Services basieren auf Remote Procedure Calls (RPC) unter Verwendung von Standard-Internet-Protokollen wie HTTP und XML (SOAP). Web Services arbeiten auf der Ebene von Funktionen.

CORBA ist ebenfalls eine RPC-Technologie, arbeitet jedoch auf der Ebene von Objekten (nicht nur einfachen Funktionen) und verwendet eigene Protokolle und Standards wie IDL, ORB und ROR.

14. SOAP-Protokoll und Anwendungskontext

SOAP (Simple Object Access Protocol) ist ein Protokoll für den Austausch strukturierter Nachrichten. Es wird im Kontext von Web Services verwendet und transportiert XML-Dokumente über das Web. Es wird häufig mit dem HTTP-POST-Befehl genutzt (kann aber auch andere Protokolle wie HTTPS verwenden).

SOAP besteht aus 3 Elementen:

  • SOAP-Envelope: Das Root-Element.
  • SOAP-Header: Optionaler Header.
  • SOAP-Body: Der eigentliche Nachrichtentext.

15. XML-Dokument mit Namespaces (Beispiel)

(Die erforderliche DTD und das zugehörige XML-Beispiel fehlen in der Vorlage.)

Das ist ein Absatz aus dem Buch

Verwandte Einträge: