Distributed object: Difference between revisions

Content deleted Content added
No edit summary
m Removing link(s) Wikipedia:Articles for deletion/Distributed Ruby closed as delete (XFDcloser)
 
(42 intermediate revisions by 32 users not shown)
Line 1:
{{Short description|Concept in distributed computing}}
[[File:Distributed object communication.png|thumb|Image describes communication between distributed objects residing in different machines.]]
 
nikhilIn gulumkar[[distributed The termcomputing]], '''distributed objects'''{{citation usuallyneeded|date=May refers2016}} toare objects (in the sense of [[Computerobject-oriented software|softwareprogramming]] modules) that are designeddistributed toacross workdifferent together[[address space]]s, buteither residein eitherdifferent [[Process (computing)|processes]] on the same computer, or even in multiple [[computer]]s connected via a [[Computer network|network]], orbut inwhich differentwork together by sharing data and invoking methods. This often involves [[Process___location (computing)|processestransparency]], insidewhere remote objects appear the same computeras local objects. OneThe 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.
 
Distributed objects were popular in the late 1990s and early 2000s, but have since fallen out of favor.<ref>[http://martinfowler.com/articles/distributed-objects-microservices.html Microservices and the First Law of Distributed Objects], Martin Fowler, 13 August 2014</ref>
 
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 ''replicated objects'' or ''live distributed objects''.
* ''[[replication (computer science)|Replicated objects]]'' are groups of software components (''replicas'') 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 ''object'' reflects the fact that interacting with any of them exposes the same externally visible state and behavior.
* ''[[liveLive distributed object|Live distributed objects]]s'' (or simply ''[[live distributed object|live objects]]'')<ref>Ostrowski, K., Birman, K., Dolev, D., and Ahnn, J. (2008). "Programming with Live Distributed Objects", ''Proceedings of the 22nd European Conference on Object-Oriented Programming'', Paphos, Cyprus, July 07 - 1107–11, 2008, J. Vitek, Ed., ''Lecture Notes Inin Computer Science'', vol. 5142, Springer-Verlag, Berlin, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536.</ref> generalize the ''replicated object'' 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.
 
See also [[Internet protocol suite]].
 
== Local vs. Distributeddistributed Objectsobjects ==
Local and distributed objects differ in many respects.<ref>W. Emmerich (2000) Engineering distributed objects, John Wiley & Sons Ltd.</ref><ref>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.</ref> Here are some of them:
# Life cycle : Creation, migration and deletion of distributed objects is different from local objects
# Reference : Remote references to distributed objects are more complex than simple pointers to memory addresses
Line 17 ⟶ 20:
# Parallelism : Distributed objects may be executed in parallel.
# Communication : There are different communication primitives available for distributed objects requests
# Failure : Distributed objects have far more points of failure than typical local objects.
# Security : Distribution makes them vulnerable to attack.
 
== Examples ==
 
The RPC facilities of the cross platform serialization protocol, [[Cap'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]].<ref>{{Cite web|url=https://kentonv.github.io/capnproto/rpc.html|title = Cap'n Proto: RPC Protocol}}</ref>
 
Distributed objects are implemented in [[Objective-C]] using the [[Cocoa (API)|Cocoa API]] with the NSConnection class and supporting objects.
Line 32 ⟶ 37:
[[DDObjects]] is a framework for distributed objects using Borland Delphi.
 
[[Jt]]{{Disambiguation needed|date=August 2011}} is a framework for distributed components using a messaging paradigm.
 
[[JavaSpaces]] is a Sun specification for a distributed, shared memory (spacesspace based)
 
[[PYthon Remote Objects|Pyro]] is a framework for distributed objects using the [[Python (programming language)|Python programming language]].
 
[[Distributed Ruby]] (DRb) is a framework for distributed objects using the [[Ruby programming language]].
 
==See also==
*[[Fragmented object]]
*[[Distributed object communication]]
*[[Object request broker]]
 
==References==
Line 44 ⟶ 54:
 
[[Category:Distributed computing architecture]]
 
{{Comp-sci-stub}}