Commit 2e80d999 authored by Michael Kohlberger's avatar Michael Kohlberger
Browse files

Kleine optische Anpassungen in der Quelldatei

parent 7ec817a8
......@@ -4,9 +4,10 @@ topic: Themenbereich 3 - Abstraktionsmodelle für verteilte Kommunikation zwisch
videolink: https://www.youtube.com/watch?v=VEELOMNfIw4
---
*KOMMENTAR FORMATIERUNG:*
*1. Fußnoten sind nicht richtig übernommen worden*
*2. Neben den Bildern und Videos wird Breiten-Einstellung angezeigt*
<!---
Bekannte Fehler: Breiteneinstellungen von Bildern werden angezeigt, Videolinks funktionieren nicht so wie gedacht mit QR-Codes, Fußnoten nicht richtig übernommen.
Mögliche Ursache: Evtl. Fehler beim initialisieren des lokalen Repos (Reinitialisierung und erneutes anlegen wurden erfolglos probiert)
--->
Dieses Thema stellt mit Prozessen die grundlegenden Einheiten in der verteilten Softwareentwicklung vor. Es widmet sich in der Folge unterschiedlichen Mechanismen der Interprozesskommunikation und diskutiert die Unterschiede zwischen synchroner und asynchroner Kommunikation in verteilten Systemen. Es führt damit Unterscheidungen ein, die bei den in der Folge vorgestellten Abstraktionsmechanismen immer zu berücksichtigen sein werden. Mit der Etablierung des Begriffs Middleware wird das grundlegende Abstraktionsprinzip zwischen Anwendungen und dem darunter liegenden verteilten technischen System eingeführt. Sockets wiederum stellen die Brücke zu den Inhalten des vorherigen Themenbereichs dar und sind in vielen Systemen die unmittelbarste Möglichkeit, auf Ressourcen in einem Netzwerk zuzugreifen.
......@@ -27,6 +28,7 @@ Eine nebenläufige Ausführungseinheit innerhalb eines Prozesses wird Thread gen
__Exkurs Scheduler__:
Ein Scheduler ist eine Abstraktionslogik welche wie ein Zeitplan angesehen werden kann (engl.: schedule für "Zeitplan"). Es gibt grob zwei Arten von Schedulern:
* Unterbrechende Scheduler
* Nicht unterbrechende Scheduler
......@@ -46,6 +48,7 @@ Da die Anzahl der Prozesse meist größer ist als die Anzahl der Prozessorkerne,
#### Exkurs Schedulingstrategien
Ein Scheduler wird eingesetzt, um die bestmögliche Zuteilung von Ressourcen zu gewährleisten. Es gibt hierbei gewisse Faktoren oder Ziele, die hierbei eine Rolle spielen. Beispiele hierfür sind:
* Auslastung der CPU (kein Leerlauf)
* Schnelle Antwortzeiten (User/andere Systeme sollen nicht warten müssen)
* Durchsatz: Beendete Aufgaben / Zeiteinheit soll maximiert werden
......@@ -53,6 +56,7 @@ Ein Scheduler wird eingesetzt, um die bestmögliche Zuteilung von Ressourcen zu
Diese Ziele werden mittels Strategien erreicht. Es gibt einige Strategien, wobei nicht alle für jedes Einsatzgebiet optimal sind.
Drei der bekannteren Konzepte sind:
* _FIFO (First In - First Out)_: Abarbeitung nach Eingangsreihenfolge
* _Proiritätsscheduling_: Abarbeitung nach zugeteilter Proiritätsnummer
* _(Weighted) Round Robin_: Ähnlich _FIFO_, nur haben Prozesse eine (individuell) begrenzte Prozessorzeit
......@@ -123,6 +127,7 @@ Ein Socket (von engl. Sockel, Steckverbindung oder Steckdose) ist ein vom Betrie
Sockets bilden eine plattformunabhängige, standardisierte Schnittstelle zwischen der Netzwerkprotokoll-Implementierung des Betriebssystems und der eigentlichen Anwendungssoftware. Ein Computerprogramm oder eine Middleware fordert einen Socket vom Betriebssystem an. Das Betriebssystem hat die Aufgabe, alle benutzten Sockets sowie die zugehörigen Verbindungsinformationen zu verwalten.
Internet-Sockets ermöglichen die Kommunikation mittels bestimmter Kommunikationsprotokolle. Internet-Sockets werden durch die Adressinformation (z. B. IP-Adresse und Portnummer) des angesprochenen entfernten Prozesses repräsentiert. Generell kann man unterscheiden zwischen Stream Sockets und Datagram Sockets:
* Stream Sockets kommunizieren über einen Zeichen-Datenstrom
* Datagram Sockets kommunizieren über einzelne Nachrichten
......@@ -227,9 +232,7 @@ Middleware-Software ist für unterschiedliche Anwendungsfälle als Standardsoftw
### Middleware-Kategorien
* *Anwendungsorientierte Middleware*: Neben der Kommunikation vor allem die Unterstützung verteilter Anwendungen in den Mittelpunkt der Unterstützung. Beispiele sind sowohl Architekturen wie CORBA, die Java Enterprise Edition oder Microsoft .NET.
* *Kommunikationsorientierte Middleware*: Hier legt der Schwerpunkt auf der Abstraktion der Netzwerkprogrammierung beim Aufruf von Funktionen in Programmen, die Ressourcen in verteilen Systemen nutzen sollen. Beispiele für derartige Middleware sind RPC oder WebServices (siehe später).
* *Nachrichtenorientierte Middleware*: Arbeitet nicht mit Methoden- oder Funktionsaufrufen, sondern über den Austausch von Nachrichten (messages). Das Nachrichtenformat gibt die eingesetzte Middleware vor, beispielsweise JSON. Eine Nachrichtenorientierte Middleware kann sowohl synchron als auch asynchron arbeiten (siehe nächster Abschnitt). Bei einer asynchronen Variante wird eine Warteschlange verwendet, in die der message-Produzent seine Nachrichten stellt. Ein Konsument kann die Nachrichten dann konsumieren. Vorteile sind u.a. die vollständige Entkopplung von Nachrichtensender und -empfänger, sodass Anwendungen auch weiterarbeiten können, wenn Teilkomponenten ausgefallen sind.
## Fragen zur Selbstkontrolle
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment