Live distributed object

Last updated
An illustration of the basic concepts involved in the definition of a live distributed object. Definition of a Live Distributed Object.gif
An illustration of the basic concepts involved in the definition of a live distributed object.

Live distributed object (also abbreviated as live object) refers to a running instance of a distributed multi-party (or peer-to-peer) protocol, viewed from the object-oriented perspective, as an entity that has a distinct identity, may encapsulate internal state and threads of execution, and that exhibits a well-defined externally visible behavior.

Contents

Key concepts

The key programming language concepts, as applied to live distributed objects, are defined as follows:

The semantics and behavior of live distributed objects can be characterized in terms of distributed data flows; the set of messages or events that appear on the instances of a live object's endpoint forms a distributed data flow [1] . [2]

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. [3]

The term live distributed object was first used informally in a series of presentations given in the fall of 2006 at an ICWS conference, [4] STC conference, [5] and at the MSR labs in Redmond, WA , [6] and then formally defined in 2007, in an IEEE Internet Computing article. [7] Originally, the term was used to refer to the types of dynamic, interactive Web content that is not hosted on servers in data centers, but rather stored on the end-user's client computers, and internally powered by instances of reliable multicast protocols. The word live expressed the fact that the displayed information is dynamic, interactive, and represents current, fresh, live content that reflects recent updates made by the users (as opposed to static, read-only, and archival content that has been pre-assembled). The word distributed expressed 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; a more comprehensive discussion of the live object concept in the context of Web development can be found in Krzysztof Ostrowski's Ph.D. dissertation. [3]

The more general definition presented above has been first proposed in 2008, in a paper published at the ECOOP conference. [8] 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, [8] was the Live Distributed Objects [9] platform developed by Krzysztof Ostrowski at Cornell University. The platform provided a set of visual, drag and drop tools for composing hierarchical documents resembling web pages, and containing XML-serialized live object references. Visual content such as chat windows, shared desktops, and various sorts of 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, [10] and to support various types of hosted content such as Google Maps. [11] As of March 2009, the platform is being actively developed by its creators. [12] [13] [14] [15] [16] [17] [18] [19]

See also

Related Research Articles

In computing, Common Gateway Interface (CGI) is an interface specification that enables web servers to execute an external program, typically to process user requests.

The Gopher protocol is a communication protocol designed for distributing, searching, and retrieving documents in Internet Protocol networks. The design of the Gopher protocol and user interface is menu-driven, and presented an alternative to the World Wide Web in its early stages, but ultimately fell into disfavor, yielding to HTTP. The Gopher ecosystem is often regarded as the effective predecessor of the World Wide Web.

<span class="mw-page-title-main">Streaming media</span> Multimedia delivery method

Streaming media is multimedia that is delivered and consumed in a continuous manner from a source, with little or no intermediate storage in network elements. Streaming refers to the delivery method of content, rather than the content itself.

The Session Initiation Protocol (SIP) is a signaling protocol used for initiating, maintaining, and terminating communication sessions that include voice, video and messaging applications. SIP is used in Internet telephony, in private IP telephone systems, as well as mobile phone calling over LTE (VoLTE).

<span class="mw-page-title-main">Hyperlink</span> Method of referencing visual computer data

In computing, a hyperlink, or simply a link, is a digital reference to data that the user can follow or be guided to by clicking or tapping. A hyperlink points to a whole document or to a specific element within a document. Hypertext is text with hyperlinks. The text that is linked from is known as anchor text. A software system that is used for viewing and creating hypertext is a hypertext system, and to create a hyperlink is to hyperlink. A user following hyperlinks is said to navigate or browse the hypertext.

In computer science, an object can be a variable, a data structure, a function, or a method. As regions of memory, they contain value and are referenced by identifiers.

The V operating system is a discontinued microkernel distributed operating system that was developed by faculty and students in the Distributed Systems Group at Stanford University from 1981 to 1988, led by Professors David Cheriton and Keith A. Lantz. V was the successor to the Thoth operating system and Verex kernel that Cheriton had developed in the 1970s. Despite similar names and close development dates, it is unrelated to UNIX System V.

Representational state transfer (REST) is a software architectural style that was created to guide the design and development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of an Internet-scale distributed hypermedia system, such as the Web, should behave. The REST architectural style emphasises the scalability of interactions between components, uniform interfaces, independent deployment of components, and the creation of a layered architecture to facilitate caching of components to reduce user-perceived latency, enforce security, and encapsulate legacy systems.

<span class="mw-page-title-main">Twisted (software)</span> Event-driven network programming framework

Twisted is an event-driven network programming framework written in Python and licensed under the MIT License.

<span class="mw-page-title-main">Distributed object</span>

In distributed computing, distributed objects are objects that are distributed across different address spaces, either in different processes on the same computer, or even in multiple computers connected via a 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.

Push technology or server push is a style of Internet-based communication where the request for a given transaction is initiated by the publisher or central server. It is contrasted with pull, or get, where the request for the transmission of information is initiated by the receiver or client.

Named Data Networking (NDN) is a proposed Future Internet architecture inspired by years of empirical research into network usage and a growing awareness of unsolved problems in contemporary internet architectures like IP. NDN has its roots in an earlier project, Content-Centric Networking (CCN), which Van Jacobson first publicly presented in 2006. The NDN project is investigating Jacobson's proposed evolution from today's host-centric network architecture IP to a data-centric network architecture (NDN). The belief is that this conceptually simple shift will have far-reaching implications for how people design, develop, deploy, and use networks and applications.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

Proxy Mobile IPv6 is a network-based mobility management protocol standardized by IETF and is specified in RFC 5213. It is a protocol for building a common and access technology independent of mobile core networks, accommodating various access technologies such as WiMAX, 3GPP, 3GPP2 and WLAN based access architectures. Proxy Mobile IPv6 is the only network-based mobility management protocol standardized by IETF.

A reliable multicast is any computer networking protocol that provides a reliable sequence of packets to multiple recipients simultaneously, making it suitable for applications such as multi-receiver file transfer.

<span class="mw-page-title-main">Distributed data flow</span> Set of events in a distributed application or protocol

Distributed data flow refers to a set of events in a distributed application or protocol.

<span class="mw-page-title-main">API</span> Software interface between computers and/or programs

An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation.

Kenneth P. Birman is a professor in the Department of Computer Science at Cornell University. He currently holds the N. Rama Rao Chair in Computer Science.

Multipath TCP (MPTCP) is an ongoing effort of the Internet Engineering Task Force's (IETF) Multipath TCP working group, that aims at allowing a Transmission Control Protocol (TCP) connection to use multiple paths to maximize throughput and increase redundancy.

The SAML metadata standard belongs to the family of XML-based standards known as the Security Assertion Markup Language (SAML) published by OASIS in 2005. A SAML metadata document describes a SAML deployment such as a SAML identity provider or a SAML service provider. Deployments share metadata to establish a baseline of trust and interoperability.

References

  1. 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, http://www.cs.cornell.edu/~krzys/krzys_debs2009.pdf
  2. 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), http://www.cs.cornell.edu/~krzys/krzys_oopsla2009.pdf
  3. 1 2 Ostrowski, K. (2008). "Live Distributed Objects", Ph.D. Dissertation, Cornell University, http://hdl.handle.net/1813/10881.
  4. 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.
  5. Ostrowski, K., and Birman, K., 'Scalable Group Communication System for Scalable Trust', First ACM Workshop on Scalable Trusted Computing (ACM STC 2006), Fairfax, VA, November 2006, http://portal.acm.org/citation.cfm?id=1179477.
  6. Ostrowski, K., (2006). QuickSilver Scalable Multicast. Microsoft Research, Redmond, WA, November 2006. http://www.researchchannel.org/prog/displayevent.aspx?rID=7870&fID=2276.
  7. 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.
  8. 1 2 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.
  9. "Home". liveobjects.cs.cornell.edu.
  10. 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.
  11. http://liveobjects.cs.cornell.edu/community/index.html [ dead link ]
  12. Ostrowski, K., and Birman, K. (2009). "Storing and Accessing Live Mashup Content in the Cloud", 3rd ACM SIGOPS International Workshop on Large Scale Distributed Systems and Middleware (LADIS 2009), Big Sky, MT, USA. October 11, 2009, http://www.cs.cornell.edu/~krzys/krzys_ladis2009.pdf
  13. Akdogan, A., and Polepalli, S. (2008). "Live Maps", http://liveobjects.cs.cornell.edu/community/1/index.html
  14. Kashyap, R., and Nagarajappa, D. (2008). "Cornell Yahoo! Live Objects", http://liveobjects.cs.cornell.edu/community/2/index.html
  15. Dong, X., and Zhang, Z. (2008). "Integrate Live Objects with Flickr Web Service", http://liveobjects.cs.cornell.edu/community/3/index.html
  16. Prateek, U. (2008). "Goole Earth Live Object", http://liveobjects.cs.cornell.edu/community/4/index.html
  17. Gupta, S., and Vora, H. (2008). "ALGE (A Live Google Earth)", http://liveobjects.cs.cornell.edu/community/5/index.html
  18. Mahajan, R., and Wakankar, S. (2008). "Distributed Google Earth", http://liveobjects.cs.cornell.edu/community/6/index.html
  19. Wadhwa, A., Sankar, H., and Subramaniyan, S. (2008). "Live Google Earth UI", http://liveobjects.cs.cornell.edu/community/7/index.html