Distributed Objects (DO) ist eine weitere Technologie, die es erlaubt über ein Netzwerk auf einen entfernten Server Objekte zu referenzieren und deren Methoden aufzurufen. Es ist eine weitere Broker-Lösung, die von der Firma Apple erhältlich ist. DO ist auf Objective-C beschränkt und macht damit ein eine Definitionssprache, wie z.B. CORBA-IDL, unnötig. Weder die Objektdienste noch die Funktionsvielfalt einer CORBA-Lösung sind hier zu finden, und macht diese technologie allenfalls zu einer "CORBA light"-Implementierung. Und bietet lediglich die Grundlage zur Implementierung der CORBA-Spezifikation.

Abb. 24: Distributed Objects Kommunikation mit Remote Objects
Wie in der Abbildung oben zu erkennen ist, stellt der Server sein Objekt auf Anfrage den jeweiligen Clients zur Verfügung und dupliziert sein Objekt im Falle von mehreren Anfragen. Das Objekt wird dem Clienten zur Verfügung gestellt, indem nach einer Anfrage ein Kommunikationskanal geöffnet und über eine vorher definierte Schnittstelle ein Methodenaufruf ermöglicht wird. Die Schnittstelle muß über einen includierten Header bei der Implementierung des Clients bekanntgegeben werden, was die Benutzung der gleichen Progammierungsprache, die bei diesem System Objetive-C ist, voraussetzt.
Die Kommunikation wird über ein eigens vom DO dafür bereitgestelltes Objekt vom Type NSConnection übernommen. Nach der namentlichen Registrierung, mit einem frei wählbaren Namen des Servers, kann das Objekt, daß vom Server zur Verfügung gestellt wird, lokal oder über Netzwerk angesprochen werden. Dabei wird die Kommunikation über Netzwerk komplett abstrahiert und die einzige Identifikationsmöglichkeit eines Servers ist sein Name. Hierdurch ist es besonders einfach, verteilte Anwendungen schnell und mit wenig Aufwand zu erstellen. Ein Server kann nur ein einziges Objekt zur Verfügung stellen.
Wird allerdings eine nähere Spezifikation des Kommunikationskanals gewünscht, so ist es möglich dies über eine TCP/IP-Socketadaption in Verbindung mit der Instanzierung eines NSPort-Objekts, das als Beschreibungsobjekt für die Kommunikation zwischen Server und Client benutzt werden kann, herzustellen. Das bedeutet allerdings einen größeren Aufwand, als bei der zuerst genannten Lösung. Des weiteren erfordert es die Schaffung einer Socket-Kapselung durch ein Objekt, daß ein Child-Objekt NSPort darstellt. Dieses ist wiederum nötig, um einen kompatiblen Kommunikationskanal zu schaffen.
DO ist auf der einen Seite fortschrittlicher als RMI aber bei der Festlegung auf der TCP/IP-Ebene ungleich komplexer. Beide, RMI sowie auch DO, stellen keine Implementierung der CORBA-Spezifikation dar, aber geben die Möglichkeit zur Erstellung verteilter Anwendungen.
Als Grundlage zur Erstellung dieses Abschnitts diente die folgende Literatur: [JCP97], [CORBA97], [CORB20], [CJW97] und [KAF96].