Live distributed object: Difference between revisions

Content deleted Content added
added the history section
expanded the article
Line 21:
== History ==
 
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'' has originally been proposed 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, http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?isnumber=4376216&arnumber=4376231.</ref>, to refer to the types of dynamic, interactive [[World Wide Web|Web]] [[Content (media and publishing)|content]] that is not [[Internet hosting service|hosted]] on [[Server (computing)|servers]] in [[Data center|data centers]], but rather stored on the [[End-user (computer science)|end-user]]'s [[Client (computing)|client]] computers, and internally powered by instances of [[Reliability (computer networking)|reliable]] [[multicast]] [[Communications protocol|protocols]]. The word ''live'' expresses the fact that the displayed information is dynamic, [[Interactivity|interactive]], and represents current, fresh, [[Live broadcast|live]] content that reflects recent updates made by the users (as opposed to static, [[read-only]], and [[Archive|archival]] content that has been pre-assembled). The word ''distributed'' expresses the fact that the information is not hosted, stored at a server in a data center, but rather, it is replicated among the end-user computers, and updated in a [[peer-to-peer]] fashion through a stream of multicast messages that may be produced directly by the end-users consuming the content. The use of the term in the context of Web development has been discussed in [http://www.cs.cornell.edu/~krzys Krzysztof Ostrowski]'s Ph.D. dissertation<ref name="ostrowski2008dissertation">Ostrowski, K. (2008). "Live Distributed Objects", Ph.D. Dissertation, Cornell University, http://hdl.handle.net/1813/10881.</ref>.
 
The term ''live distributed object'' was first used informally in a series of presentations given in the fall of 2006 at a [[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, http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4032049.</ref>, [http://www.cs.utsa.edu/~shxu/stc06/ STC] conference <ref name="ostrowski2006stc">Ostrowski, K., and Birman, K., 'Scalable Group Communication System for Scalable Trust',
The definition presented here 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 [[Small talk]], 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 resulting definition attempts to unify the concept of live Web content, message stream, and a distributed protocol instance.
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
The<ref termname="ostrowski2006msr">Ostrowski, K., (2006). ''liveQuickSilver distributedScalable objectMulticast''. hasMicrosoft originallyResearch, beenRedmond, WA, November 2006. http://www.researchchannel.org/prog/displayevent.aspx?rID=7870&fID=2276.</ref>, and then formally proposeddefined 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, http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?isnumber=4376216&arnumber=4376231.</ref>. Originally, the term was used to refer to the types of dynamic, interactive [[World Wide Web|Web]] [[Content (media and publishing)|content]] that is not [[Internet hosting service|hosted]] on [[Server (computing)|servers]] in [[Data center|data centers]], but rather stored on the [[End-user (computer science)|end-user]]'s [[Client (computing)|client]] computers, and internally powered by instances of [[Reliability (computer networking)|reliable]] [[multicast]] [[Communications protocol|protocols]]. The word ''live'' expressesexpressed the fact that the displayed information is dynamic, [[Interactivity|interactive]], and represents current, fresh, [[Live broadcast|live]] content that reflects recent updates made by the users (as opposed to static, [[read-only]], and [[Archive|archival]] content that has been pre-assembled). The word ''distributed'' expressesexpressed the fact that the information is not hosted, stored at a server in a data center, but rather, it is replicated among the end-user computers, and updated in a [[peer-to-peer]] fashion through a stream of multicast messages that may be produced directly by the end-users consuming the content.; Thea usemore comprehensive discussion of the termlive object concept in the context of Web development hascan beenbe discussedfound in [http://www.cs.cornell.edu/~krzys Krzysztof Ostrowski]'s Ph.D. dissertation<ref name="ostrowski2008dissertation">Ostrowski, K. (2008). "Live Distributed Objects", Ph.D. Dissertation, Cornell University, http://hdl.handle.net/1813/10881.</ref>.
 
The more general definition presented hereabove 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 [[Small talkSmalltalk]], 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 resultingneed definitionfor attemptsuniformity toimplies unifythat the conceptdefinition of a live distributed object must unify concepts such as live Web content, message streamstreams, and ainstances of distributed protocolmulti-party instanceprotocols.
 
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">http://liveobjects.cs.cornell.edu</ref> platform developed by [http://www.cs.cornell.edu/~krzys Krzysztof Ostrowski] at Cornell University. The platform provided a set of visual, drag and drop tools for composing hierarchical documents resembling [[Web page|web pages]], and containing [[XML]]-serialized live object references. Visual content such as chat windows, shared [[Desktop environment|desktops]], and various sorts of [[Mashup (digital)|mashups]] could be composed by dragging and dropping components representing user interfaces and protocol instances onto a design form, and connecting them together. Since the moment of its creation, a number of extension have been developed to embed live distributed objects in [[Microsoft Office]] documents <ref>Ahnn, J., Birman, K., Ostrowski, K., and van Renesse, R. (2008). "Using live distributed objects for office automation", ''Proceedings of the ACM/IFIP/USENIX Middleware '08 Conference Companion'', Leuven, Belgium, December 01 - 05, 2008, ''Companion '08'', ACM, New York, NY, 30-35, http://portal.acm.org/citation.cfm?id=1462735.1462743.</ref>, and to support various types of hosted content such as Google Maps<ref>http://liveobjects.cs.cornell.edu/community/index.html</ref>. As of March 2009, the platform is being actively developed by its creators.