<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Distributed_object</id>
	<title>Distributed object - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Distributed_object"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Distributed_object&amp;action=history"/>
	<updated>2026-05-05T22:05:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Distributed_object&amp;diff=1408974&amp;oldid=prev</id>
		<title>imported&gt;Explicit: Removing link(s) Wikipedia:Articles for deletion/Distributed Ruby closed as delete (XFDcloser)</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Distributed_object&amp;diff=1408974&amp;oldid=prev"/>
		<updated>2025-05-10T00:52:15Z</updated>

		<summary type="html">&lt;p&gt;Removing link(s) &lt;a href=&quot;https://en.wikipedia.org/wiki/Articles_for_deletion/Distributed_Ruby&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Articles for deletion/Distributed Ruby&quot;&gt;Wikipedia:Articles for deletion/Distributed Ruby&lt;/a&gt; closed as delete (&lt;a href=&quot;/wiki143/index.php?title=WP:XFDC&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:XFDC (page does not exist)&quot;&gt;XFDcloser&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Concept in distributed computing}}&lt;br /&gt;
[[File:Distributed object communication.png|thumb|Image describes communication between distributed objects residing in different machines.]]&lt;br /&gt;
&lt;br /&gt;
In [[distributed computing]], &amp;#039;&amp;#039;&amp;#039;distributed objects&amp;#039;&amp;#039;&amp;#039;{{citation needed|date=May 2016}} are objects (in the sense of [[object-oriented programming]]) that are distributed across different [[address space]]s, either in different [[Process (computing)|processes]] on the same computer, or even in multiple [[computer]]s connected via a [[Computer network|network]], but which work together by sharing data and invoking methods. This often involves [[location transparency]], where remote objects appear the same as local objects. The main method of [[distributed object communication]] is with [[remote method invocation]], generally by message-passing: one object sends a message to another object in a remote machine or process to perform some task. The results are sent back to the calling object.&lt;br /&gt;
&lt;br /&gt;
Distributed objects were popular in the late 1990s and early 2000s, but have since fallen out of favor.&amp;lt;ref&amp;gt;[http://martinfowler.com/articles/distributed-objects-microservices.html Microservices and the First Law of Distributed Objects], Martin Fowler, 13 August 2014&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The term may also generally refer to one of the extensions of the basic [[object (computer science)|object]] concept used in the context of distributed computing, such as &amp;#039;&amp;#039;replicated objects&amp;#039;&amp;#039; or &amp;#039;&amp;#039;live distributed objects&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;[[replication (computer science)|Replicated objects]]&amp;#039;&amp;#039; are groups of software components (&amp;#039;&amp;#039;replicas&amp;#039;&amp;#039;) that run a distributed multi-party protocol to achieve a high degree of consistency between their internal states, and that respond to requests in a coordinated manner. Referring to the group of replicas jointly as an &amp;#039;&amp;#039;object&amp;#039;&amp;#039; reflects the fact that interacting with any of them exposes the same externally visible state and behavior.&lt;br /&gt;
* &amp;#039;&amp;#039;[[Live distributed object]]s&amp;#039;&amp;#039; (or simply &amp;#039;&amp;#039;[[live distributed object|live objects]]&amp;#039;&amp;#039;)&amp;lt;ref&amp;gt;Ostrowski, K., Birman, K., Dolev, D., and Ahnn, J. (2008). &amp;quot;Programming with Live Distributed Objects&amp;quot;, &amp;#039;&amp;#039;Proceedings of the 22nd European Conference on Object-Oriented Programming&amp;#039;&amp;#039;, Paphos, Cyprus, July 07–11, 2008, J. Vitek, Ed., &amp;#039;&amp;#039;Lecture Notes in Computer Science&amp;#039;&amp;#039;, vol. 5142, Springer-Verlag, Berlin, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536.&amp;lt;/ref&amp;gt; generalize the &amp;#039;&amp;#039;replicated object&amp;#039;&amp;#039; concept to groups of replicas that might internally use any distributed protocol, perhaps resulting in only a weak consistency between their local states. Live distributed objects can also be defined as running instances of distributed multi-party protocols, viewed from the object-oriented perspective as entities that have a distinct identity, and that can encapsulate distributed state and behavior.&lt;br /&gt;
&lt;br /&gt;
See also [[Internet protocol suite]].&lt;br /&gt;
&lt;br /&gt;
== Local vs. distributed objects ==&lt;br /&gt;
Local and distributed objects differ in many respects.&amp;lt;ref&amp;gt;W. Emmerich (2000) Engineering distributed objects, John Wiley &amp;amp; Sons Ltd.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Samuel C. Kendall, [[Jim Waldo]], Ann Wollrath, and Geoff Wyant. 1994. A Note on Distributed Computing. Technical Report. Sun Microsystems, Inc., Mountain View, CA, USA.&amp;lt;/ref&amp;gt; Here are some of them:&lt;br /&gt;
# Life cycle : Creation, migration and deletion of distributed objects is different from local objects&lt;br /&gt;
# Reference : Remote references to distributed objects are more complex than simple pointers to memory addresses&lt;br /&gt;
# Request Latency : A distributed object request is orders of magnitude slower than local method invocation&lt;br /&gt;
# Object Activation : Distributed objects may not always be available to serve an object request at any point in time&lt;br /&gt;
# Parallelism : Distributed objects may be executed in parallel.&lt;br /&gt;
# Communication : There are different communication primitives available for distributed objects requests&lt;br /&gt;
# Failure : Distributed objects have far more points of failure than typical local objects.&lt;br /&gt;
# Security : Distribution makes them vulnerable to attack.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
The RPC facilities of the cross platform serialization protocol, [[Cap&amp;#039;n Proto]] amount to a distributed object protocol. Distributed object method calls can be executed (chained, in a single network request, if needs be) through interface references/[[Capability-based security|capabilities]].&amp;lt;ref&amp;gt;{{Cite web|url=https://kentonv.github.io/capnproto/rpc.html|title = Cap&amp;#039;n Proto: RPC Protocol}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Distributed objects are implemented in [[Objective-C]] using the [[Cocoa (API)|Cocoa API]] with the NSConnection class and supporting objects.&lt;br /&gt;
&lt;br /&gt;
Distributed objects are used in [[Java RMI]].&lt;br /&gt;
&lt;br /&gt;
[[CORBA]] lets one build distributed mixed object systems.&lt;br /&gt;
&lt;br /&gt;
[[Distributed Component Object Model|DCOM]] is a framework for distributed objects on the Microsoft platform.&lt;br /&gt;
&lt;br /&gt;
[[DDObjects]] is a framework for distributed objects using Borland Delphi.&lt;br /&gt;
&lt;br /&gt;
Jt is a framework for distributed components using a messaging paradigm.&lt;br /&gt;
&lt;br /&gt;
[[JavaSpaces]] is a Sun specification for a distributed, shared memory (space based)&lt;br /&gt;
&lt;br /&gt;
[[PYthon Remote Objects|Pyro]] is a framework for distributed objects using the [[Python (programming language)|Python programming language]].&lt;br /&gt;
&lt;br /&gt;
Distributed Ruby (DRb) is a framework for distributed objects using the [[Ruby programming language]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Fragmented object]]&lt;br /&gt;
*[[Distributed object communication]]&lt;br /&gt;
*[[Object request broker]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Distributed computing architecture]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Explicit</name></author>
	</entry>
</feed>