Was ist verteilte Datenverarbeitung?

Sturmformen

Autoren

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Was ist verteiltes Rechnen?

Beim verteilten Computing werden zahlreiche Computing-Ressourcen an verschiedenen Standorten für einen einzigen Rechenzweck verwendet.

Verteilte Computersysteme sorgen dafür, dass die Dinge im großen Stil geschehen. Denken Sie daran, wenn Sie das nächste Mal ein MMO (Massive Multiplayer Online)-Spiel spielen. Um ein MMO effektiv zu verwalten, müssen ganze Systeme zusammenkommen und eng zusammenarbeiten, um eine nahtlose Erfahrung zu bieten, die gleichzeitig von Tausenden von Spielern in einer Echtzeitumgebung geteilt wird.

Distributed Computing hilft Anbietern, diese Art von koordinierter Synchronisierung und Computerverarbeitungsleistung für ein gemeinsames Ziel einzusetzen.

Und das ist nur ein Beispiel für die vielen, weitreichenden Anwendungen für verteilte Computerdienste, die derzeit verwendet werden, darunter die Erstellung lebendiger 3D-Grafiken für Videoanimationen, das Training von Neural Networks, die die Funktionen des menschlichen Gehirns nachahmen, und das Lösen extrem komplexer Gleichungen im Zusammenhang mit Chemie und Physik.

In der Regel nimmt das verteilte Rechenmodell die intensivsten Rechenaufgaben und Arbeitslasten auf und bewältigt die schwerwiegendsten Rechenherausforderungen, weshalb es die Verwendung mehrerer Komponenten und gemeinsam genutzter Speicher erfordert.

3D-Design aus Kugeln, die auf einer Schiene rollen

Die neuesten Erkenntnisse und Insights zu KI

Entdecken Sie von Experten kuratierte Erkenntnisse und Neuigkeiten zu KI, Cloud und mehr im wöchentlichen Newsletter Think. 

Wie funktioniert das verteilte Rechnen?

Verteiltes Rechnen vereint mehrere Computer, Server und Netzwerke, um Rechenaufgaben unterschiedlichster Größe und Zweck zu erledigen. In kleinen, verteilten Computersystemen mit Komponenten nahe beieinander, können diese Komponenten über ein lokales Netzwerk (LAN) verbunden werden.

In größeren verteilten Systemen, deren Komponenten geografisch getrennt sind, sind die Komponenten über Wide Area Networks (WAN) miteinander verbunden. Die Komponenten in einem verteilten System teilen Informationen über den jeweiligen Netzwerktyp aus. Das bekannteste Beispiel für ein verteiltes System ist das Internet. Das vielleicht kontroverseste Beispiel für ein verteiltes System in letzter Zeit ist die Kryptowährung.

Komponenten des verteilten Rechnens

Aus rechnerischer Sicht enthalten selbst die grundlegendsten Formen der verteilten Datenverarbeitung hinsichtlich der Anzahl der typischerweise beteiligten Komponenten drei grundlegende Komponenten:

  • Primärer Systemcontroller
  • System-Datenspeicher
  • Datenbank

Es gibt jedoch keine festen Regeln, die festlegen, was ein Umstand des verteilten Computings ist oder wie viele Komponenten benötigt werden, um seine Funktionalität zum Leben zu erwecken. Innerhalb dieser Kette (oder dieses Netzwerks) kann es eine Handvoll Komponenten geben, oder die Instanz kann wesentlich mehr umfassen.

Dies ist einer der großen Vorteile eines verteilten Rechensystems. Das System kann durch das Hinzufügen weiterer Maschinen erweitert werden. Der andere wichtige Vorteil ist die erhöhte Redundanz, d. h. wenn ein Computer im Netz aus irgendeinem Grund ausfällt, wird der Betrieb des Systems trotz dieser Fehlerstelle ungehindert fortgeführt.

Dieses Konzept der zusätzlichen Redundanz geht Hand in Hand mit der Betonung der Fehlertoleranz. Fehlertoleranz ist ein Korrekturprozess, der es einem Betriebssystem ermöglicht, zu reagieren und einen Software- oder Hardwarefehler zu korrigieren, während das System fort fährt. Fehlertoleranz wird mittlerweile als allgemeines Maß für die anhaltende Rentabilität des Unternehmens angesichts eines störenden Ausfalls verwendet.

Daher sind verteilte Computersysteme nicht an Beschränkungen hinsichtlich der Anzahl der Komponenten gebunden. Es besteht auch keine Anforderung, dass diese Komponenten physisch nahe beieinander liegen und durch lokale Netzwerke verbunden sind. Dank der erweiterten Funktionen von Wide Area Networks können die Computer eines verteilten Computersystems nach Kontinenten getrennt werden, ohne dass ihre Funktionsfähigkeit verloren geht.

Verbindung verteilter Computernetze

Das Ziel verteilter Computersysteme ist es, dafür zu sorgen, dass dieses verteilte Computernetz – egal wie groß und egal, wo sich seine Komponenten befinden – so funktioniert, als wäre es ein einzelner Computer. Diese Koordination wird durch ein ausgeklügeltes System zur Nachrichtenübermittlung zwischen den verschiedenen Komponenten erreicht.

Kommunikationsprotokolle regeln den Hin- und Heraustausch von Nachrichten und stellen eine Art von Beziehung her, die zwischen diesen Komponenten besteht. Diese Beziehung wird als „Kopplung“ bezeichnet, die in der Regel in einer von zwei Formen ausgedrückt wird:

  • Lockere Kopplung: Die Verbindung zwischen zwei lose gekoppelten Komponenten ist schwach genug, sodass sich Änderungen an einer Komponente nicht auf die andere Komponente auswirken.
  • Enge Kopplung: Der Grad der Synchronisation und Parallelität ist bei eng gekoppelten Komponenten so hoch, dass ein Prozess namens „Clustering“ redundante Komponenten verwendet, um die kontinuierliche Funktionsfähigkeit des Systems zu gewährleisten.

Verteiltes Computing befasst sich außerdem sowohl mit den positiven als auch mit den negativen Auswirkungen der Nichtsequenzialität, d. h. der gleichzeitigen Ausführung mehrerer Betriebsbefehlssequenzen. Zu den wichtigsten positiven Eigenschaften gehört die Tatsache, dass die Parallelität die parallele Berechnung mehrerer Prozess-Threads ermöglicht. (Parallel Computing sollte nicht mit der parallelen Verarbeitung verwechselt werden, bei der Laufzeitaufgaben in mehrere kleinere Aufgaben unterteilt werden.)

Zu den negativen Auswirkungen, die mit der Parallelität verbunden sind, gehören oft erhöhte Latenz und sogar Engpässe, bei denen der Verkehr fast zum Erliegen kommt, weil das verteilte Computersystem mit einer übermäßigen Anzahl von Komponentenanforderungen überlastet wird.

Parallelität unterscheidet sich vom Konzept des Multithreading, bei dem ein Programm weiterlaufen kann, während andere Aufgaben im Hintergrund ausgeführt werden. Parallelität stellt eine größere Belastung der Ressourcen dar, da mehrere Threads gleichzeitig laufen und gleichzeitig auf gemeinsam genutzte Ressourcen zugreifen.

AI Academy

KI-Bereitschaft mit Hybrid Cloud

Das Programm, das von führenden IBM Experten geleitet wird, soll Führungskräften dabei helfen, das nötige Wissen zu erwerben, um die Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

Vorteile des verteilten Rechnens

Perfekt für große Projekte

Einige Workloads sind enorm und mehr, als die meisten einzelnen Systeme bewältigen können. Beim verteilten Computing werden solche Workloads auf mehrere Equipment verteilt, sodass auch große Aufgaben gut bewältigt werden können.

Ermöglicht die gemeinsame Nutzung von Ressourcen

Verteiltes Computing basiert auf dem Konzept gemeinsam genutzter Assets und unterstützt die gemeinsame Nutzung von Ressourcen wie Daten, Software und Hardware zwischen den verschiedenen Komponenten innerhalb dieser verteilten Computing-Instanz.

Ideal für veränderlichen Datenverkehr

Der Online-Verkehr vieler Unternehmen unterliegt schnellen und dramatischen Veränderungen, möglicherweise aufgrund von Nachrichten oder anderen Faktoren. Verteiltes Computing bietet die Flexibilität, die Unternehmen benötigen, um solchen Schwankungen standzuhalten.

Optimierte Leistung

Verteiltes Rechnen steigert die Leistung, indem große Verarbeitungsaufträge in kleinere Rechenaufgaben aufgeteilt werden, die von vielen Computern gemeinsam genutzt werden. Dies führt zu einer kumulativen Menge an Verarbeitungsgeschwindigkeit und größerem Gesamtspeicher.

Wirtschaftlichkeit

Es stimmt zwar, dass die verteilte Datenverarbeitung mit ihren mehreren Systemen im Vergleich zu zentralisierten Verarbeitungssystemen höhere Vorlaufkosten verursacht als zentralisierte Verarbeitungssysteme, aber im Laufe der Zeit gleichen sich diese Kosten aufgrund der Kosteneffizienz durch geringere Latenzzeiten und schnellere Reaktionszeiten aus. Dadurch wird die verteilte Datenverarbeitung letztlich zu einem kostenintensiveren effektiver als zentralisierte Systeme.

Arten der verteilten Datenverarbeitung

Verteilte Computertypen werden nach der jeweils verwendeten verteilten Computerarchitektur klassifiziert.

Client-Server-System

Client-Server-Systeme verwenden eine Client-Server-Architektur, die es ermöglicht, sie mit mehr als einem einzigen System zu verwenden. Darin leitet ein Client die Eingabe in Form einer Anfrage an den Server weiter. Diese Kommunikation umfasst in der Regel entweder einen Befehl, dass eine bestimmte Aufgabe ausgeführt werden soll, oder eine Anforderung nach mehr Rechenressourcen. Der Server erfüllt dann diese Aufgabe oder weist die angeforderten Ressourcen zu. Sobald dies abgeschlossen ist, antwortet der Server dem Client mit einer Meldung über die ausgeführte Aktion.

Peer-System

Während zentralisierte Systeme eine Client-Server-Architektur verwenden, stützt sich ein Peer-System auf die Peer-Architektur (oft auch Peer-to-Peer-Architektur genannt). Peer-Systeme verwenden Knoten, die effektiv entweder als Client oder als Server fungieren können – entweder um Bedürfnisse zu ermitteln und Anfragen auszugeben oder um diese Bedürfnisse zu erfüllen und Berichte über Abläufe zu erstellen. Wie der Name schon sagt, gibt es in Peer-Systemen keine Hierarchie, sodass Programme, die in Peer-to-Peer-Systemen arbeiten, frei miteinander kommunizieren und Daten über Peer-Netzwerke übertragen können.

Middleware

Middleware kann man sich als eine Art „Mittelsmann“ vorstellen, der zwischen zwei unterschiedlichen Anwendungen operiert, was bedeutet, dass Middleware selbst eine Anwendung ist, die sich zwischen zwei Apps befindet und Dienste für beide erbringt. Middleware hat auch einen interpretativen Aspekt. Sie fungiert als Übersetzer zwischen verschiedenen Interoperabilitäts-Apps, die auf verschiedenen Systemen ausgeführt werden, und ermöglicht diesen Apps den freien Datenaustausch.

Dreistufiges System

Dreistufige Systeme heißen so, weil viele Schichten zur Darstellung der Funktionalität eines Programms verwendet werden. Im Gegensatz zu einer typischen Client-Server-Architektur, bei der Daten innerhalb des Clientsystems abgelegt werden, speichert das dreistufige System die Daten stattdessen in seiner mittleren Schicht, die als Datenschicht bezeichnet wird. Die Anwendungsschicht umgibt die Datenschicht auf einer ihrer Seiten, während die Präsentationsschicht die Datenschicht auf der anderen Seite umschließt. Dreistufige Systeme werden routinemäßig in verschiedenen Webanwendungen verwendet.

N-Tier-System

N-Tier-Systeme werden manchmal auch als mehrschichtige verteilte Systeme bezeichnet und verfügen über eine unbegrenzte Kapazität für Netzwerkfunktionen, die sie zur Verarbeitung an andere Apps weiterleiten. Die Architektur von N-Tier-Systemen ähnelt der von Drei-Tier-Systemen. N-Tier-Systeme werden häufig als architektonische Grundlage für zahlreiche Webdienste und Datensysteme verwendet.

Andere Paradigmen des verteilten Rechnens

Verteiltes Rechnen ermöglicht die Verwendung verschiedener Programmierparadigmen (die als Programmierstile betrachtet werden können):

  • Blockchain: Blockchain ist eine Art verteilte Datenbank oder ein verteiltes Hauptbuch, das auf den verschiedenen Computern, die ein Netzwerk bilden, sowohl repliziert als auch synchronisiert wird. Eine Blockchain gewährleistet eines der Hauptziele der verteilten Datenverarbeitung —Redundanz—, weil jeder Computer in der Kette eine Kopie des ursprünglichen Quell-Ledgers enthält, sodass Daten nicht aufgrund einer einzelnen Ausfallstelle verloren gehen können.
  • Grid-Computing: Grid-Computing ist eine Art des verteilten Rechnens, das sich mit nicht-interaktiven Arbeitslasten befasst und in der Regel eine Kombination aus Grid-Frameworks und Middleware-Software umfasst. Das skalierbare Grid, auf das man über die Benutzeroberfläche zugreift, funktioniert wie ein Dateisystem in Mega-Größe.
  • Microservices: Microservices sind eine weitere Form des verteilten Computings, bei der Anwendungen in viel kleinere Komponenten aufgeteilt werden, die oft als „Microservices“ bezeichnet werden. Service-Frameworks sind durch die Anwendungsprogrammschnittstelle (API) miteinander verbunden, die die Interaktion zwischen den Komponenten ermöglicht.

Anwendungsfälle für verteiltes Computing nach Branchen

Bankwesen

Online-Banking zeigt, wie wendig die verteilte Datenverarbeitung ist – es findet an vielen Orten gleichzeitig statt, oft mit verschiedenen Bankstandorten, die damit beauftragt sind, einen der Server hinter wichtigen Serviceangeboten (wie Kundenservice, Sicherheit und Transaktionsabwicklung) zu beherbergen. Alles passiert sofort und nahtlos, so wie es Bankkunden erwarten.

Computing

Sowohl künstliche Intelligenz (KI) als auch maschinelles Lernen (ML) sind dabei, viele technologische Bereiche zu revolutionieren, aber nirgendwo sind ihre Auswirkungen derzeit so deutlich wie in der Computerbranche selbst. Beide explodierenden Technologien nutzen die verteilte Datenverarbeitung in großem Umfang. Die Algorithmen hinter KI und ML benötigen große Datenmengen, um ihre Modelle zu trainieren, und verteiltes Rechnen liefert die dafür erforderliche Verarbeitungsleistung.

Energie

Distributed Computing wird mittlerweile im Energie- und Umweltsektor eingesetzt. Auf der Energieseite hilft verteiltes Computing der intelligenten Netztechnologie, den Verbrauch zu regulieren und den Energieverbrauch zu optimieren. Intelligente Netze nutzen ebenfalls verteilte Datenverarbeitung, um Umweltdaten von verschiedenen Eingabegeräten wie Sensoren und intelligenten Zählern zusammenzustellen.

Finanzen

In bestimmten Bereichen des Finanzwesens wird bereits mit verteilten Computersystemen gearbeitet. Nehmen Sie das Risikomanagement, bei dem Finanzinstitute riesige Datenmengen benötigen, um umfangreiche Berechnungen durchzuführen, die eine bessere Entscheidungsfindung in Bezug auf Wahrscheinlichkeiten und Bewertungen ermöglichen. Verteiltes Rechnen sorgt dafür, dass die Rechenlast gleichmäßig auf mehrere Systeme verteilt wird.

Wissenschaft

Die verteilte Datenverarbeitung hat zahlreiche wissenschaftliche Disziplinen unterstützt und zu einigen der bemerkenswertesten Errungenschaften der Wissenschaft beigetragen. Ein Beispiel dafür ist der Large Hadron Collider, der leistungsstärkste Teilchenbeschleuniger der Welt. Die Experimente dahinter hängen von extremen Mengen an Datenerfassung und -analyse ab, die den Einsatz verteilter Datenverarbeitung erfordern. In ähnlicher Weise erfüllte das verteilte Rechnen den gleichen Zweck für das Humangenomprojekt, da es sich zum Ziel gesetzt hatte, menschliche DNA-Sequenzen zu kartieren. Verteiltes Computing spielt auch eine wichtige Rolle bei der forecasting und Klimamodellierung.

Weiterführende Lösungen
IBM Cloud Infrastructure Center 

IBM Cloud Infrastructure Center ist eine mit OpenStack kompatible Softwareplattform für die Verwaltung der Infrastruktur von Private Clouds auf IBM zSystems und IBM LinuxONE.

Cloud Infrastructure Center erkunden
IT-Infrastrukturlösungen

Entdecken Sie Server, Speicher und Software für die Hybrid-Cloud- und KI-Strategie Ihres Unternehmens.

IT-Infrastrukturlösungen entdecken
Lösungen für Cloud-Infrastrukturen

Finden Sie die richtige Cloud-Infrastrukturlösung für Ihre Geschäftsanforderungen und skalieren Sie Ressourcen nach Bedarf.

Cloud-Lösungen
Machen Sie den nächsten Schritt

Transformieren Sie Ihre Unternehmensinfrastruktur mit der Hybrid Cloud und KI-fähigen Lösungen von IBM. Entdecken Sie Server, Speicher und Software, die für die Sicherung, Skalierung und Modernisierung Ihres Unternehmens entwickelt wurden, oder greifen Sie auf Erkenntnisse von Experten zu, um Ihre generative KI-Strategie zu verbessern.

IT-Infrastrukturlösungen entdecken E-Book herunterladen