Definition „Distributed/Decentralized App“ Was ist eine DApp?
Anbieter zum Thema
Verteilte Programme, auch bekannt als Distributed Apps, sind ein grundlegender Bestandteil vernetzter Systeme. Als Server und Clients ermöglichen sie im Netz verteilten Geräten, zentrale Ressourcen zu nutzen. Mit Blockchains ist zudem eine neue Art, die Decentralized App entstanden.

Die Distributed App im herkömmlichen Sinn
Als Kurzform von Distributed Application bezeichnet der Term Distributed App zunächst eine Software, die nicht von einem einzelnen Computer, sondern einem verteilten System ausgeführt wird.
Die klassische Form eines verteilten Programms ist eine Client-Server Architektur. Diese teilt die Funktionalität der Software in zwei unterschiedliche Einheiten. Die Clients dienen als Benutzerschnittstelle und laufen auf vernetzten Endgeräten. Der Server stellt die eigentliche Funktionalität bereit und ist auf einem zentralisierten System installiert.
Dieses Modell ist vereinfacht, weil auch der Server aus mehreren, verteilten Instanzen bestehen kann, die zusammen eine höhere Leistung bereitstellen und die Ausfallsicherheit erhöhten. Ein typisches Beispiel sind Webserver, auf die Anfragen von Clients per Load Balancing verteilt werden. Die Aufteilung erfolgt aber transparent, sodass das System nach außen wie ein einzelner Server erscheint.
Client-Server-Systeme mit wechselnden Rollen
Ein Peer-to-Peer Netzwerk beinhaltet keine zentrale Instanz, die eine Server-Funktionalität bereitstellt. Stattdessen übernehmen im Allgemeinen alle Knoten sowohl eine Server- als auch eine Client-Rolle. Diese Form der verteilten Programme stellt daher als symmetrische Variante lediglich einen Sonderfall der Client-Server-Architektur dar.
DApps als neue Form verteilter Programmierung
Eine jüngere Bedeutung des Begriffs Distributed App hat sich im Zusammenhang mit Blockchains und Kryptowährungen der zweiten Generation entwickelt. Zuerst von Ethereum implementiert, bieten diese die Möglichkeit einer dezentralisierten Programmausführung, die über die Blockchain verifizierbar ist. Zur Unterscheidung von anderen Arten werden diese verteilten Programme auch als Decentralized Apps oder kurz DApps bezeichnet. Sie sind zum Beispiel im Einsatz für:
- Digitale Signaturen für Dokumente
- Sicheres Identitätsmanagement ohne zentrale Kontrollinstanz
- Lademanagement für Elektrofahrzeuge (RWE)
- Online-Plattformen für Glücksspiele
- Neuartige DRM-Systeme
Ungenaue Begrifflichkeit der Distributed App
Unabhängig von der neuartigen Bedeutung im Zusammenhang mit Smart Contracts ist der Begriff „Verteilte Programmierung“ von jeher unscharf. Einerseits kann Software, die in einen Server- und einen Client-Teil aufgespalten ist, prinzipiell sowohl auf unterschiedlichen, über ein Netzwerk verbundenen Geräten ausgeführt werden als auch auf demselben Computer.
In manchen Fällen ist die rein lokale Anwendung sogar der Normalfall. Ein Beispiel dafür ist der standardmäßige Logging-Mechanismus auf Unix-Systemen, Syslog. Dessen Server kann zwar auch für die Verwendung im Netz konfiguriert werden, normalerweise nimmt er aber nur die Log-Meldungen der auf demselben Computer installierten Programme entgegen und speichert sie ebenfalls lokal ab. Andererseits überschneidet sich die verteilte Programmierung teilweise mit der Parallelprogrammierung.
Wie unterscheiden sich Distributed Apps vom Parallel Computing?
Parallele Programmierung bedeutet die gleichzeitige Ausführung desselben Programmcodes auf mehreren Prozessoren. Diese Beschreibung trifft allgemein auch auf verteilte Programmierung zu. Üblicherweise impliziert der Begriff „Parallelprogrammierung“ aber eine enge räumliche Nähe der beteiligten Recheneinheiten, wie die in einem Rack zusammengefassten Transputer-Boards der dedizierten Parallelrechner der 1980er-Jahre oder nachfolgend die Mehrkern-Prozessoren. Trotzdem stellen auch diese Parallelrechner eine verteilte Programmierung dar, denn die beteiligten CPUs müssen über ein Netzwerk miteinander verbunden sein, selbst wenn dieses nur innerhalb desselben Chips realisiert ist.
(ID:45231521)