Verteilte Systeme bestehen grundsätzlich aus vielen autonomen Komponenten, die über ein Kommunikationsnetzwerk miteinander verbunden sind und häufig mittels einer speziellen Software koordiniert werden. Sie finden Anwendung bei der Realisierung komplexer Flug- bzw. Reisebuchungssysteme- oder auch bei Onlinebanking-/Handelsplattformen und sollten folgende Eigenschaften erfüllen:
Hinsichtlich der Architektur verteilter Systeme unterscheidet man zwischen System- und Softwarearchitekturen.
Client-Server-Architektur (Cache/Proxy)
In einer Client-Server-Architektur tauschen Client und Server Anforderung (Request) und Antwort (Response) miteinander aus.

Jeder Rechner ist entweder Server oder Client bezogen auf einen bestimmten Dienst. Ein Server kann also einen anderen Dienst auf einem entfernten Rechner wiederum als Client in Anspruch nehmen. Sonderfälle in einer Client-Server-Architektur stellen die sogenannten Cache- oder Proxy-Server dar. Während ein Cache-Server Daten zwischenspeichert und dadurch unnötige Anfragen über das Netzwerk vermeiden hilft, agiert ein Proxy-Server quasi als Stellvertreter zwischen Client und Server. Durch diese Stellvertreterfunktion kann - je nach Übertragungsprotokoll - eine tiefergehende Filterung und Kontrolle des Datenstroms oder auch eine zusätzliche Authentifizierung der Benutzer erfolgen (z.B. durch die Eingabe des Benutzernamens oder Passwortes vor Freischaltung eines Internetzugriffs).
Peer-to-Peer-Architektur
Im Gegensatz zur Client-Server-Architektur übernimmt in einer Peer-to-Peer-Architektur jeder Rechner sowohl Client- als auch Server-Funktionalitäten. Man spricht hierbei oftmals auch von einem sogenannten Servent, also einer Mischung aus Client und Server, wobei sich diese Rolle dynamisch je Kommunikationsvorgang verändern kann. Peer-to-Peer-Netzwerke stellen somit ein dezentrales, verteiltes System aus autonomen Rechnern ohne zentrale Server dar, in dem keine zentrale Koordinierung und keine zentrale Datenbasis existiert. Aus diesem Grunde sind Peer-to-Peer-Architekturen nur mit hohem Aufwand administrierbar.
Zwei-Schichten-Architektur
Eine Zwei-Schichten-Architektur repräsentiert eine klassische Client-Server-Architektur und erfordert auf der Client-Seite einen sogenannten Fat Client (Betriebssystem plus umfangreiche lokal installierte Anwendungssoftware), um z.B. von diesem mittels eines Datenbank-Clients über ein Datenbankzugriffsprotokoll auf einen entfernten Datenbankserver zugreifen zu können. Zwei-Schichten-Architekturen sind zwar einfach zu realisieren, erfordern jedoch einen hohen Installations- und Administrationsaufwand auf der Client-Seite.
Drei-Schichten-Architektur
Eine Drei-Schichten-Architektur ist eine Softwarearchitektur, die drei unterschiedliche Schichten implementiert.

Die GUI-Schicht (Graphical User Interface-Schicht) implementiert eine grafische Benutzeroberfläche, über die mittels diverser Schnittstellen der Fachkonzeptschicht (z.B. Applikationsserver) auf die in der Datenhaltungsschicht liegenden Datenbestände (z.B. in einer Datenbank) zugegriffen werden kann. Je nach Ausprägung des Architekturmodells können diese drei Schichten strikt voneinander separiert sein (jede Schicht darf nur auf die Funktionalität der direkt darunterliegenden Schicht zugreifen) oder es besteht die Möglichkeit, dass die GUI-Schicht auch direkt auf die Datenhaltungsschicht zugreifen kann. Die logische Trennung der drei Schichten hat den Vorteil, dass diese auch unabhängig voneinander verändert werden können, was Wartbarkeit und Portabilität stark erhöht und insbesondere ermöglicht, Komponenten der Fachkonzeptschicht leicht wiederzuverwenden. Aus diesen Gründen ist die Drei-Schichten-Architektur ideal für den Einsatz in verteilten Systemen.
Zwei-Schichten- und Drei-Schichten-Architekturen sind spezielle Ausprägungen von sogenannten "n-Schichten-Modellen". Da bei bestimmten Anwendungsfällen die Notwendigkeit bestehen kann, einzelne Schichten weiter zu unterteilen, können auch Architekturmodelle mit mehr als drei Schichten entstehen.
Middleware
Middleware ist eine Bezeichnung für anwendungsneutrale Software, die als zusätzliche Schicht zwischen Betriebssystem
und Anwendung vermittelt und die Kommunikation zwischen Prozessen unterstützt.

Durch den Einsatz von Middleware können die Vorteile von verteilten Betriebssystemen (Transparenz, einfache Nutzung) und Netzwerkbetriebssystemen (Skalierbarkeit, Offenheit) miteinander kombiniert werden.
Mithilfe von Sensoren und Aktoren werden reale und virtuelle Welt im Internet of Things miteinander verknüpft. Man könnte auch sagen, dass Sensoren quasi die "Sinnesorgane" intelligenter Gegenstände sind. Sensoren erfassen hierbei automatisch Parameter eines Gegenstandes sowie dessen Umwelt und transferieren diese Informationen an andere Sensoren oder eine zentrale Steuerungseinheit weiter. Seien es beispielsweise RFID-Sensoren, die im Lager die Warenein- und -ausgänge erfassen, oder Sensoren, die Füllstände von Wasser und Kaffeebohnen moderner Kaffeevollautomaten überwachen. Durch die zunehmende Miniaturisierung und Leistungsfähigkeit in der Mikroprozessortechnologie werden diese Sensoren immer kleiner und verfügen entweder über eine eigene, batterie- oder akkubetriebene Energieversorgung oder versorgen sich sogar autark mit Energie. Die Datenübertragung erfolgt hierbei zunehmend über drahtlose Verfahren, die aufwendige, teilweise problematische Verkabelungsarbeiten (z.B. in denkmalgeschützten Gebäuden) obsolet machen.
Im Gegensatz zur rein passiven Informationssammlung durch Sensoren reagieren Aktoren auf sich verändernde Parameter und setzen diese in entsprechende digitale oder physische Aktionen um. Dies kann beispielsweise eine Out of Stock-Meldung bei Entnahme des letzten Artikels einer Ware aus einem Regal oder auch das Einschalten von Lichtquellen und Multimediakomponenten in einer Wohnung beim Öffnen der Eingangstüre sein.
Durch den Einsatz von Sensoren und Aktoren im IoT kann die Datenqualität erhöht werden, da menschliche Fehler und subjektive Bewertungen bei dieser Datenerfassung ausgeschlossen werden können und die Datenübertragung darüber hinaus auch in Echtzeit erfolgt. Voraussetzung ist natürlich, dass die Sensoren selbst eine entsprechende Güte aufweisen. Weil eine manuelle Erfassung hierdurch entfällt, oder zumindest stark reduziert wird, können auch Personalkosten gesenkt werden.
IoT-Plattformen
Software- und Hardwareplattformen für das Internet der Dnge werden heutzutage von fast allen namhaften Herstellern
bereitgestellt und sind in ihrer Architektur grundsätzlich vergleichbar.

Intelligente Gegenstände kommunizieren über Sensoren und Aktoren mit ihrer Umwelt und nutzen Übertragungstechnologien wie z.B. ZigBee oder Bluetooth, um idealerweise drahtlos mit einem Gateway zu kommunizieren, das sie an ein Zentralsystem anbindet. Die Kommunikation des Gateways mit dem Zentralsystem erfolgt über Protokolle wie HTTP oder MQTT (Message Queue Telemetry Transport) über eine sogenannte Messaging Infrastruktur. Daten werden in einem Datenspeicher abgelegt, wo sie über APIs (Application Programming Interface) an Intelligence-Anwendungen angebunden werden, mit deren Hilfe diese Daten analysiert und visualisiert werden können.