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.

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

Conceptos clave

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

La semántica y el comportamiento de los objetos distribuidos vivos 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 subyacentes al concepto de objeto distribuido en vivo han sido influenciadas por un rico cuerpo de investigación sobre entornos orientados a objetos, incrustaciones de lenguajes de programación y marcos de composición de protocolos, que se remonta al menos al modelo de actor desarrollado a principios de la década de 1970; Se puede encontrar una discusión exhaustiva del trabajo anterior relevante en el Ph.D. de Krzysztof Ostrowski. disertación. [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 formalmente definido 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 dinámico e interactivo 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 confiables . protocolos de multidifusión . La palabra en vivo expresa el hecho de que la información mostrada es dinámica, interactiva y representa contenido actual, fresco y en vivo que refleja las actualizaciones recientes realizadas por los usuarios (a diferencia del contenido estático, de solo lectura y de archivo que ha sido preensamblado). ). La palabra distribuido expresa el hecho de que la información no se aloja, se almacena 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 multidifusión. mensajes que pueden ser producidos directamente por los usuarios finales que consumen el contenido; Se puede encontrar una discusión más completa sobre el concepto de objeto vivo en el contexto del desarrollo web en el Ph.D. de Krzysztof Ostrowski. disertación. [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 ampliación del término ha estado 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 en Jini , que fue pionero en la idea de que los servicios son objetos . Cuando se aplica a objetos distribuidos en vivo, la perspectiva dicta que sus partes constituyentes, que incluyen instancias de protocolos distribuidos multipartitos utilizados internamente para replicar el estado, también deben modelarse como objetos distribuidos en vivo. La necesidad de uniformidad implica que la definición de un objeto distribuido en vivo debe unificar conceptos como contenido web en vivo, flujos de mensajes e instancias de protocolos multipartitos distribuidos.

La primera implementación del concepto de objetos distribuidos 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 proporcionó un conjunto de herramientas visuales, de arrastrar y soltar para componer documentos jerárquicos que se asemejan a páginas web y que contienen referencias de objetos vivos serializados en XML . El contenido visual, como ventanas de chat, escritorios compartidos y varios tipos de mashups, se podría componer arrastrando y soltando componentes que representan 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 incrustar objetos distribuidos en vivo en documentos de Microsoft Office [10] y para admitir varios tipos de contenido alojado, como Google Maps. [11] En marzo de 2009, sus creadores están desarrollando activamente la plataforma. [12] [13] [14] [15] [16] [17] [18] [19]

Ver también

Referencias

  1. ^ Ostrowski, K., Birman, K., Dolev, D. y Sakoda, C. (2009). "Implementación de flujos de eventos confiables en sistemas grandes mediante flujos de datos distribuidos y delegación recursiva", 3.ª Conferencia internacional ACM sobre sistemas distribuidos basados ​​en eventos (DEBS 2009) , Nashville, TN, EE. UU., 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", presentado a la Conferencia internacional sobre programación, sistemas, lenguajes y aplicaciones orientados a objetos (OOPSLA 2009) , http://www.cs.cornell.edu/~krzys/krzys_oopsla2009.pdf
  3. ^ ab Ostrowski, K. (2008). "Objetos distribuidos en vivo", Ph.D. Disertación, 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., 'Scalable Group Communication System for Scalable Trust', Primer taller de ACM sobre informática confiable escalable (ACM STC 2006), Fairfax, VA, noviembre de 2006, http://portal.acm. org/citation.cfm?id=1179477.
  6. ^ Ostrowski, K., (2006). Multidifusión escalable QuickSilver . 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 al 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 complementaria ACM/IFIP/USENIX Middleware '08 , Lovaina, Bélgica, 1 al 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 muerto ]
  12. ^ Ostrowski, K. y Birman, K. (2009). "Almacenamiento y acceso a contenido mashup en vivo en la nube", 3er taller internacional ACM SIGOPS sobre middleware y sistemas distribuidos a gran escala (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 Cornell Yahoo! Live", http://liveobjects.cs.cornell.edu/community/2/index.html
  15. ^ Dong, X. y Zhang, Z. (2008). "Integrar objetos vivos con el servicio web de 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