Content deleted Content added
m HTTP to HTTPS for Cornell University |
|||
(5 intermediate revisions by 4 users not shown) | |||
Line 3:
'''Live distributed object''' (also abbreviated as ''live object'') refers to a running instance of a [[distributed computing|distributed]] multi-party (or [[peer-to-peer]]) [[protocol (computing)|protocol]], viewed from the [[object-oriented programming|object-oriented]] perspective, as an entity that has a distinct [[identity (object-oriented programming)|identity]], may [[Encapsulation (computer science)|encapsulate]] internal [[State (computer science)|state]] and [[Thread (computer science)|threads of execution]], and that exhibits a well-defined externally visible behavior.
==Key
The key [[programming language]] concepts, as applied to live distributed objects, are defined as follows:
Line 15:
The semantics and behavior of live distributed objects can be characterized in terms of [[distributed data flow]]s; the set of messages or events that appear on the instances of a live object's endpoint forms a distributed data flow
<ref name="ostrowski2009debs">Ostrowski, K., Birman, K., Dolev, D., and Sakoda, C. (2009). "Implementing Reliable Event Streams in Large Systems via Distributed Data Flows and Recursive Delegation", ''3rd ACM International Conference on Distributed Event-Based Systems (DEBS 2009)'', Nashville, TN, USA, July 6–9, 2009,
.<ref name="ostrowski2009oopsla">Ostrowski, K., Birman, K., Dolev, D. (2009). "Programming Live Distributed Objects with Distributed Data Flows", Submitted to the ''International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2009)'',
== History ==
Line 22:
Early ideas underlying the concept of a live distributed object have been influenced by a rich body of research on object-oriented environments, programming language embeddings, and protocol composition frameworks, dating back at least to the [[actor model]] developed in the early 1970s; a comprehensive discussion of the relevant prior work can be found in Krzysztof Ostrowski's Ph.D. dissertation.<ref name="ostrowski2008dissertation"/>
The term ''live distributed object'' was first used informally in a series of presentations given in the fall of 2006 at an [[International Conference on Web Services|ICWS]] conference,<ref name="ostrowski2006icws">Ostrowski, K., and Birman, K., 'Extensible Web Services Architecture for Notification in Large-Scale Systems', IEEE International Conference on Web Services (ICWS 2006), Chicago, IL, September 2006,
First ACM Workshop on Scalable Trusted Computing (ACM STC 2006), Fairfax, VA, November 2006, http://portal.acm.org/citation.cfm?id=1179477.</ref> and at the [[Microsoft Research|MSR]] labs in Redmond, WA
,<ref name="ostrowski2006msr">Ostrowski, K., (2006). ''QuickSilver Scalable Multicast''. Microsoft Research, Redmond, WA, November 2006. http://www.researchchannel.org/prog/displayevent.aspx?rID=7870&fID=2276.</ref> and then formally defined in 2007, in an IEEE Internet Computing article.<ref name="ostrowski2007activeweb">Ostrowski, K., Birman, K., and Dolev, D. (2007). "Live Distributed Objects: Enabling the Active Web", ''IEEE Internet Computing'', November–December 2007, 11(6):72-78,
The more general definition presented above has been first proposed in 2008, in a paper published at the [[ECOOP]] conference.<ref name="ostrowski2008programming">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–11, 2008, J. Vitek, Ed., ''Lecture Notes in Computer Science'', vol. 5142, Springer-Verlag, Berlin, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536.</ref> The extension of the term has been motivated by the need to model live objects as compositions of other objects; in this sense, the concept has been inspired by [[Smalltalk]], which pioneered the uniform perspective that ''everything is an object'', and [[Jini]], which pioneered the idea that ''services are objects''. When applied to live distributed objects, the perspective dictates that their constituent parts, which includes instances of distributed multi-party protocols used internally to replicate state, should also be modeled as live distributed objects. The need for uniformity implies that the definition of a live distributed object must unify concepts such as live Web content, message streams, and instances of distributed multi-party protocols.
The first implementation of the live distributed object concept, as defined in the ECOOP paper,<ref name="ostrowski2008programming"/> was the Live Distributed Objects <ref name="ostrowski2008website">
<ref name="akdogan2008">Akdogan, A., and Polepalli, S. (2008). "Live Maps",
<ref name="kashyap2008">Kashyap, R., and Nagarajappa, D. (2008). "Cornell Yahoo! Live Objects",
<ref name="dong2008">Dong, X., and Zhang, Z. (2008). "Integrate Live Objects with Flickr Web Service",
<ref name="prateek2008">Prateek, U. (2008). "Goole Earth Live Object",
<ref name="gupta2008">Gupta, S., and Vora, H. (2008). "ALGE (A Live Google Earth)",
<ref name="mahajan2008">Mahajan, R., and Wakankar, S. (2008). "Distributed Google Earth",
<ref name="wadhwa2008">Wadhwa, A., Sankar, H., and Subramaniyan, S. (2008). "Live Google Earth UI",
== See also ==
|