stringtranslate.com

Objeto distribuido en vivo

Una ilustración de los conceptos básicos involucrados en la definición de un objeto distribuido en vivo.

Un objeto distribuido vivo (también abreviado como objeto vivo ) se refiere a una instancia en ejecución de un protocolo distribuido multipartito (o peer-to-peer ) , visto desde la perspectiva orientada a objetos , como una entidad que tiene una identidad distintiva , puede encapsular estados internos y subprocesos de ejecución , y que exhibe un comportamiento externamente visible bien definido.

Conceptos clave

Los conceptos clave del lenguaje de programación , tal como se aplican a objetos distribuidos en vivo, se definen de la siguiente manera:

La semántica y el comportamiento de los objetos distribuidos en vivo se pueden caracterizar en términos de flujos de datos distribuidos ; el conjunto de mensajes o eventos que aparecen en las instancias del punto final de un objeto en vivo forma un flujo de datos distribuido [1] . [2]

Historia

Las primeras ideas que sustentan el concepto de un objeto distribuido vivo han sido influenciadas por un amplio conjunto de investigaciones sobre entornos orientados a objetos, integraciones de lenguajes de programación y marcos de composición de protocolos, que se remontan al menos al modelo de actor desarrollado a principios de los años 1970; se puede encontrar una discusión exhaustiva del trabajo previo relevante en la tesis doctoral de Krzysztof Ostrowski. [3]

El término objeto distribuido en vivo se utilizó por primera vez de manera informal en una serie de presentaciones realizadas en el otoño de 2006 en una conferencia ICWS , [4] conferencia STC, [5] y en los laboratorios MSR en Redmond, WA, [6] y luego se definió formalmente en 2007, en un artículo de IEEE Internet Computing. [7] Originalmente, el término se usaba para referirse a los tipos de contenido web interactivo y dinámico que no está alojado en servidores en centros de datos , sino que se almacena en las computadoras cliente del usuario final y se alimenta internamente mediante instancias de protocolos de multidifusión confiables . La palabra vivo expresaba el hecho de que la información mostrada es dinámica, interactiva y representa contenido actual, fresco y en vivo que refleja actualizaciones recientes realizadas por los usuarios (a diferencia del contenido estático, de solo lectura y de archivo que ha sido preensamblado). La palabra distribuida expresa el hecho de que la información no está alojada, almacenada en un servidor en un centro de datos, sino que se replica entre las computadoras de los usuarios finales y se actualiza de igual a igual a través de un flujo de mensajes de multidifusión que pueden ser producidos directamente por los usuarios finales que consumen el contenido; una discusión más completa del concepto de objeto vivo en el contexto del desarrollo web se puede encontrar en la tesis doctoral de Krzysztof Ostrowski. [3]

La definición más general presentada anteriormente se propuso por primera vez en 2008, en un artículo publicado en la conferencia ECOOP . [8] La extensión del término ha sido motivada por la necesidad de modelar objetos vivos como composiciones de otros objetos; en este sentido, el concepto se ha inspirado en Smalltalk , que fue pionero en la perspectiva uniforme de que todo es un objeto , y Jini , que fue pionero en la idea de que los servicios son objetos . Cuando se aplica a objetos distribuidos vivos, la perspectiva dicta que sus partes constituyentes, que incluyen instancias de protocolos multipartidistas distribuidos utilizados internamente para replicar el estado, también deben modelarse como objetos distribuidos vivos. La necesidad de uniformidad implica que la definición de un objeto distribuido vivo debe unificar conceptos como contenido web en vivo, flujos de mensajes e instancias de protocolos multipartidistas distribuidos.

La primera implementación del concepto de objeto distribuido en vivo, tal como se define en el documento ECOOP, [8] fue la plataforma Live Distributed Objects [9] desarrollada por Krzysztof Ostrowski en la Universidad de Cornell. La plataforma proporcionaba un conjunto de herramientas visuales de arrastrar y soltar para componer documentos jerárquicos que se asemejaban a páginas web y que contenían referencias a objetos vivos serializados en XML . El contenido visual, como ventanas de chat, escritorios compartidos y varios tipos de mashups, se podía componer arrastrando y soltando componentes que representaban interfaces de usuario e instancias de protocolo en un formulario de diseño y conectándolos entre sí. Desde el momento de su creación, se han desarrollado varias extensiones para integrar objetos distribuidos en vivo en documentos de Microsoft Office , [10] y para admitir varios tipos de contenido alojado, como Google Maps. [11] A marzo de 2009, la plataforma estaba siendo desarrollada activamente por sus creadores. [12] [13] [14] [15] [16] [17] [18] [19]

Véase también

Referencias

  1. ^ Ostrowski, K., Birman, K., Dolev, D. y Sakoda, C. (2009). "Implementación de flujos de eventos confiables en sistemas grandes a través de flujos de datos distribuidos y delegación recursiva", 3.ª Conferencia internacional de la ACM sobre sistemas distribuidos basados ​​en eventos (DEBS 2009) , Nashville, Tennessee, EE. UU., del 6 al 9 de julio de 2009, http://www.cs.cornell.edu/~krzys/krzys_debs2009.pdf
  2. ^ Ostrowski, K., Birman, K., Dolev, D. (2009). "Programación de objetos distribuidos en vivo con flujos de datos distribuidos", enviado a la Conferencia internacional sobre programación orientada a objetos, sistemas, lenguajes y aplicaciones (OOPSLA 2009) , http://www.cs.cornell.edu/~krzys/krzys_oopsla2009.pdf
  3. ^ ab Ostrowski, K. (2008). "Objetos distribuidos en vivo", tesis doctoral, Universidad de Cornell, http://hdl.handle.net/1813/10881.
  4. ^ Ostrowski, K., y Birman, K., 'Arquitectura de servicios web extensible para notificación en sistemas a gran escala', Conferencia internacional IEEE sobre servicios web (ICWS 2006), Chicago, IL, septiembre de 2006, https://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4032049.
  5. ^ Ostrowski, K., y Birman, K., 'Sistema de comunicación grupal escalable para confianza escalable', Primer taller ACM sobre computación confiable escalable (ACM STC 2006), Fairfax, VA, noviembre de 2006, http://portal.acm.org/citation.cfm?id=1179477.
  6. ^ Ostrowski, K., (2006). QuickSilver Scalable Multicast . Microsoft Research, Redmond, WA, noviembre de 2006. http://www.researchchannel.org/prog/displayevent.aspx?rID=7870&fID=2276.
  7. ^ Ostrowski, K., Birman, K. y Dolev, D. (2007). "Objetos distribuidos en vivo: habilitación de la Web activa", IEEE Internet Computing , noviembre-diciembre de 2007, 11(6):72-78, https://ieeexplore.ieee.org/document/4376231/;jsessionid=EF449367E7DB4958663B9131214CEAAD?isnumber=4376216&arnumber=4376231.
  8. ^ ab Ostrowski, K., Birman, K., Dolev, D. y Ahnn, J. (2008). "Programación con objetos distribuidos en vivo", Actas de la 22.ª Conferencia Europea sobre Programación Orientada a Objetos , Paphos, Chipre, 7-11 de julio de 2008, J. Vitek, Ed., Lecture Notes in Computer Science , vol. 5142, Springer-Verlag, Berlín, Heidelberg, 463-489, http://portal.acm.org/citation.cfm?id=1428508.1428536.
  9. ^ "Inicio". liveobjects.cs.cornell.edu .
  10. ^ Ahnn, J., Birman, K., Ostrowski, K. y van Renesse, R. (2008). "Uso de objetos distribuidos en vivo para la automatización de oficinas", Actas de la conferencia ACM/IFIP/USENIX Middleware '08 Companion , Lovaina, Bélgica, 1-5 de diciembre de 2008, Companion '08 , ACM, Nueva York, NY, 30-35, http://portal.acm.org/citation.cfm?id=1462735.1462743.
  11. ^ http://liveobjects.cs.cornell.edu/community/index.html [ enlace roto ]
  12. ^ Ostrowski, K. y Birman, K. (2009). "Almacenamiento y acceso a contenido de mashup en vivo en la nube", 3.er taller internacional ACM SIGOPS sobre sistemas distribuidos a gran escala y middleware (LADIS 2009) , Big Sky, MT, EE. UU., 11 de octubre de 2009, http://www.cs.cornell.edu/~krzys/krzys_ladis2009.pdf
  13. ^ Akdogan, A., y Polepalli, S. (2008). "Mapas en vivo", http://liveobjects.cs.cornell.edu/community/1/index.html
  14. ^ Kashyap, R. y Nagarajappa, D. (2008). "Objetos en vivo de Yahoo! de Cornell", http://liveobjects.cs.cornell.edu/community/2/index.html
  15. ^ Dong, X. y Zhang, Z. (2008). "Integración de objetos activos con el servicio web Flickr", http://liveobjects.cs.cornell.edu/community/3/index.html
  16. ^ Prateek, U. (2008). "Objeto vivo de Goole Earth", http://liveobjects.cs.cornell.edu/community/4/index.html
  17. ^ Gupta, S. y Vora, H. (2008). "ALGE (Un Google Earth en vivo)", http://liveobjects.cs.cornell.edu/community/5/index.html
  18. ^ Mahajan, R. y Wakankar, S. (2008). "Google Earth distribuido", http://liveobjects.cs.cornell.edu/community/6/index.html
  19. ^ Wadhwa, A., Sankar, H. y Subramaniyan, S. (2008). "Interfaz de usuario de Google Earth en vivo", http://liveobjects.cs.cornell.edu/community/7/index.html