Distributed Computing ist ein vielgestaltiges Phänomen mit teils sehr unterschiedlichen Infrastrukturen. Sämtliche Varianten von Distributed Computing sind daher kaum zu bestimmen. Dem Teilgebiet der Informatik werden aber häufiger drei Teil- bzw. Unterbereiche zugeordnet:
- Cloud Computing
- Grid Computing
- Cluster Computing
Beim Cloud Computingwird verteiltes Rechnen verwendet, um Kunden hochskalierbare und kostengünstige Infrastrukturen und Plattformen bereitzustellen. Cloud-Anbieter stellen ihre Kapazitäten meist in Kind von gehosteten Diensten zur Verfügung, die über das Web genutzt werden können. In der Praxis haben sich verschiedene Service-Modelle etabliert:
- Software program as a Service (SaaS): Bei der Dienstleistung SaaS nutzt der Kunde die Anwendungen sowie die dazugehörige Infrastruktur eines Cloud-Anbieters (z. B. Server, On-line-Speicher, Rechenkapazitäten). Auf die Anwendungen kann mit unterschiedlichen Geräten über ein sogenanntes „Skinny Shopper Interface“ (z. B. eine browserbasierte Net-App) zugegriffen werden. Die Pflege und Administration der ausgelagerten Infrastruktur übernimmt der Cloud-Anbieter.
- Platform as a Service (PaaS): Bei der Dienstleistung PaaS wird eine cloudbasierte Umgebung z. B. für die Entwicklung von Webanwendungen zur Verfügung stellt. Der Kunde hat die Kontrolle über die bereitgestellten Anwendungen und kann nutzerspezifische Einstellungen vornehmen, um die technische Infrastruktur für das Distributed Computing kümmert sich der Cloud-Anbieter.
- Infrastructure as a Service (IaaS): Bei dem Service IaaS wird eine technische Infrastruktur vom Cloud-Supplier zur Verfügung gestellt, auf die Anwender über non-public oder öffentliche Netzwerke zugreifen. Zu den Komponenten der bereitgestellten Infrastruktur gehören beispielsweise Server, Rechen- und Netzkapazitäten, Kommunikationsgeräte wie Router, Switche oder Firewalls, Speicherplatz sowie Systeme zur Archivierung und Sicherung von Daten. Der Kunde hat seinerseits die Kontrolle über Betriebssysteme und bereitgestellte Anwendungen.
Das Grid Computing orientiert sich konzeptionell an einem Supercomputer mit enormer Rechenpower. Rechenaufgaben werden aber nicht von einer, sondern von vielen Instanzen bearbeitet. Server und PCs können dabei unabhängig voneinander unterschiedliche Aufgaben übernehmen. Grid Computing kann bei der Aufgabenbewältigung sehr flexibel auf Ressourcen zugreifen. Üblicherweise stellen Teilnehmer einem Gesamtprojekt gewisse Rechenkapazitäten nachts zur Verfügung, wenn die technische Infrastruktur nicht so stark ausgelastet ist.
Ein Vorteil ist, dass schnell sehr leistungsfähige Systeme genutzt und je nach Bedarf in der Rechenleistung skaliert werden können. Für die Leistungssteigerung muss kein kostspieliger Supercomputer durch einen teuren Nachfolger ersetzt oder aufgerüstet werden.
Da Grid Computing einen virtuellen Supercomputer aus einem Cluster lose gekoppelter Laptop erzeugen kann, ist es auf besonders rechenintensive Probleme spezialisiert. Das Verfahren wird häufig für ambitionierte Projekte in der Wissenschaft verwendet oder beim Entschlüsseln von kryptografischen Codes.
Cluster Computing ist von Cloud und Grid Computing nicht klar zu trennen. Der Begriff setzt allerdings allgemeiner an und bezieht sich auf alle Formen, die Einzelcomputer und ihre Rechenkapazitäten zu einem Cluster (dt. „Traube“, „Bündel“) zusammenschließen. So gibt es beispielsweise Server-Cluster, Cluster in Massive Knowledge und Cloud-Umgebungen, Datenbank-Cluster sowie Anwendungs-Cluster. Zudem sind Rechnerverbünde vermehrt am Excessive-Efficiency-Computing beteiligt, das besonders anspruchsvolle Rechenprobleme löst.
Unterschiedliche Typen von Distributed Computing lassen sich zudem bestimmen, wenn man die Systemarchitekturen und Interaktionsmodelle einer verteilten Infrastruktur zugrunde legt. Aufgrund der komplexen Systemarchitekturen des Distributed Computing spricht man auch häufiger von Distributed Methods (dt. „verteilte Systeme“).
Zu den verbreiteten Architekturmodellen des Distributed Computing zählen:
- Shopper-Server-Modell
- Peer-to-Peer-Modell
- Schichtenmodelle (Multi-Tier-Architekturen)
- Service-orientierte Architektur (engl.: Service-oriented structure, SOA)
Das Shopper-Server-Modellist ein einfaches Interaktions- und Kommunikationsmodell im Distributed Computing. Ein Server erhält eine Anfrage von einem Shopper, führt entsprechende Bearbeitungsprozeduren durch und sendet eine Antwort (Nachricht, Daten, Berechnungsergebnisse) an diesen zurück.
Eine Peer-to-Peer-Architektur organisiert die Interaktion und Kommunikation des Distributed Computings nach dezentralen Gesichtspunkten. Alle Laptop (auch Nodes genannt) sind gleichberechtigt und übernehmen die gleichen Aufgaben und Funktionen im Netzwerk. Jeder Rechner ist additionally in der Lage, als Shopper und als Server zu agieren. Ein Beispiel für eine Peer-to-Peer-Architekturist die Blockchain von Kryptowährungen.
Bei der Konzeptionierung einer Schichtenarchitektur werden einzelne Aspekte eines Software program-Methods auf mehrere Ebenen (engl. tier, layer) verteilt, wodurch die Effizienz und Flexibilität des Distributed Computings erhöht wird. Die Systemarchitektur, die je nach Verwendungszweck als Zwei-Tier-, Drei-Tier- oder N-Tier-Architektur ausgestaltet werden kann, ist bei Webanwendungen häufig anzutreffen.