stringtranslate.com

Живой распределенный объект

Иллюстрация основных концепций, используемых при определении живого распределенного объекта.

Живой распределенный объект (также сокращенно живой объект ) относится к работающему экземпляру распределенного многостороннего (или однорангового ) протокола , рассматриваемого с объектно-ориентированной точки зрения, как к сущности, которая имеет отдельную идентификацию , может инкапсулировать внутреннее состояние и потоки выполнения и которая демонстрирует четко определенное, видимое извне поведение.

Ключевые понятия

Ключевые концепции языка программирования применительно к живым распределенным объектам определяются следующим образом:

Семантику и поведение живых распределенных объектов можно охарактеризовать в терминах распределенных потоков данных ; набор сообщений или событий, которые появляются в экземплярах конечной точки живого объекта, образует распределенный поток данных [1] . [2]

История

Ранние идеи, лежащие в основе концепции живого распределенного объекта, были сформированы под влиянием обширного объема исследований объектно-ориентированных сред, встраивания языков программирования и структур композиции протоколов, восходящих, по крайней мере, к модели акторов , разработанной в начале 1970-х годов; всестороннее обсуждение соответствующих предыдущих работ можно найти в докторской диссертации Кшиштофа Островского. [3]

Термин «живой распределенный объект» впервые был неформально использован в серии презентаций, представленных осенью 2006 года на конференции ICWS [4] , конференции STC [5] и в лабораториях MSR в Редмонде, штат Вашингтон [6] , а затем официально определен в 2007 году в статье IEEE Internet Computing. [7] Первоначально этот термин использовался для обозначения типов динамического, интерактивного веб- контента , который не размещается на серверах в центрах обработки данных , а хранится на клиентских компьютерах конечного пользователя и внутренне питается экземплярами надежных многоадресных протоколов . Слово «живой» выражало тот факт, что отображаемая информация является динамической, интерактивной и представляет собой текущий, свежий, живой контент, который отражает последние обновления, сделанные пользователями (в отличие от статичного, доступного только для чтения и архивного контента, который был предварительно собран). Слово «распределенный» выражает тот факт, что информация не размещается, не хранится на сервере в центре обработки данных, а скорее реплицируется между компьютерами конечных пользователей и обновляется в одноранговой сети посредством потока многоадресных сообщений, которые могут быть созданы непосредственно конечными пользователями, потребляющими контент; более полное обсуждение концепции живого объекта в контексте веб-разработки можно найти в докторской диссертации Кшиштофа Островского. [3]

Более общее определение, представленное выше, было впервые предложено в 2008 году в статье, опубликованной на конференции ECOOP . [8] Расширение термина было мотивировано необходимостью моделировать живые объекты как композиции других объектов; в этом смысле концепция была вдохновлена ​​Smalltalk , который был пионером единой точки зрения, что все является объектом , и Jini , который был пионером идеи, что службы являются объектами . При применении к живым распределенным объектам перспектива диктует, что их составные части, которые включают экземпляры распределенных многосторонних протоколов, используемых внутри для репликации состояния, также должны моделироваться как живые распределенные объекты. Необходимость единообразия подразумевает, что определение живого распределенного объекта должно унифицировать такие концепции, как живой веб-контент, потоки сообщений и экземпляры распределенных многосторонних протоколов.

Первой реализацией концепции живых распределенных объектов, как определено в статье ECOOP [8], была платформа Live Distributed Objects [9], разработанная Кшиштофом Островским в Корнелльском университете. Платформа предоставляла набор визуальных инструментов перетаскивания для составления иерархических документов, напоминающих веб-страницы , и содержащих XML -сериализованные ссылки на живые объекты. Визуальный контент, такой как окна чатов, общие рабочие столы и различные виды мэшапов, мог быть составлен путем перетаскивания компонентов, представляющих пользовательские интерфейсы и экземпляры протоколов, на форму дизайна и их соединения вместе. С момента ее создания было разработано несколько расширений для встраивания живых распределенных объектов в документы Microsoft Office [10] и для поддержки различных типов размещенного контента, такого как Google Maps. [11] По состоянию на март 2009 года платформа активно разрабатывалась ее создателями. [12] [13] [14] [15] [16] [17] [18] [19]

Смотрите также

Ссылки

  1. ^ Островски, К., Бирман, К., Долев, Д. и Сакода, К. (2009). «Реализация надежных потоков событий в больших системах с помощью распределенных потоков данных и рекурсивного делегирования», 3-я международная конференция ACM по распределенным системам на основе событий (DEBS 2009) , Нэшвилл, Теннесси, США, 6–9 июля 2009 г., http://www.cs.cornell.edu/~krzys/krzys_debs2009.pdf
  2. ^ Островски, К., Бирман, К., Долев, Д. (2009). «Программирование живых распределенных объектов с распределенными потоками данных», представлено на Международной конференции по объектно-ориентированному программированию, системам, языкам и приложениям (OOPSLA 2009) , http://www.cs.cornell.edu/~krzys/krzys_oopsla2009.pdf
  3. ^ ab Островски, К. (2008). «Живые распределенные объекты», докторская диссертация, Корнелльский университет, http://hdl.handle.net/1813/10881.
  4. ^ Островски, К. и Бирман, К., «Расширяемая архитектура веб-сервисов для уведомлений в крупномасштабных системах», Международная конференция IEEE по веб-сервисам (ICWS 2006), Чикаго, Иллинойс, сентябрь 2006 г., https://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4032049.
  5. ^ Островски, К. и Бирман, К., «Масштабируемая система групповой связи для масштабируемого доверия», Первый семинар ACM по масштабируемым доверенным вычислениям (ACM STC 2006), Фэрфакс, Вирджиния, ноябрь 2006 г., http://portal.acm.org/citation.cfm?id=1179477.
  6. ^ Островски, К., (2006). QuickSilver Scalable Multicast . Microsoft Research, Редмонд, Вашингтон, ноябрь 2006 г. http://www.researchchannel.org/prog/displayevent.aspx?rID=7870&fID=2276.
  7. ^ Островски, К., Бирман, К. и Долев, Д. (2007). «Живые распределенные объекты: обеспечение активной сети», IEEE Internet Computing , ноябрь–декабрь 2007 г., 11(6):72-78, https://ieeexplore.ieee.org/document/4376231/;jsessionid=EF449367E7DB4958663B9131214CEAAD?isnumber=4376216&arnumber=4376231.
  8. ^ ab Островски, К., Бирман, К., Долев, Д. и Анн, Дж. (2008). «Программирование с живыми распределенными объектами», Труды 22-й Европейской конференции по объектно-ориентированному программированию , Пафос, Кипр, 7–11 июля 2008 г., J. Vitek, Ed., Lecture Notes in Computer Science , т. 5142, Springer-Verlag, Берлин, Гейдельберг, 463–489, http://portal.acm.org/citation.cfm?id=1428508.1428536.
  9. ^ "Главная". liveobjects.cs.cornell.edu .
  10. ^ Анн, Дж., Бирман, К., Островски, К. и ван Ренессе, Р. (2008). «Использование живых распределенных объектов для автоматизации офиса», Труды конференции ACM/IFIP/USENIX Middleware '08 Companion , Лёвен, Бельгия, 1–5 декабря 2008 г., Companion '08 , ACM, Нью-Йорк, штат Нью-Йорк, 30–35, http://portal.acm.org/citation.cfm?id=1462735.1462743.
  11. ^ http://liveobjects.cs.cornell.edu/community/index.html [ мертвая ссылка ]
  12. ^ Островски, К. и Бирман, К. (2009). «Хранение и доступ к живому мэшап-контенту в облаке», 3-й международный семинар ACM SIGOPS по крупномасштабным распределенным системам и промежуточному программному обеспечению (LADIS 2009) , Биг-Скай, Монтана, США. 11 октября 2009 г., http://www.cs.cornell.edu/~krzys/krzys_ladis2009.pdf
  13. ^ Акдоган, А. и Полепалли, С. (2008). «Живые карты», http://liveobjects.cs.cornell.edu/community/1/index.html
  14. ^ Кашьяп, Р. и Нагараджаппа, Д. (2008). «Корнелл Yahoo! Живые объекты», http://liveobjects.cs.cornell.edu/community/2/index.html
  15. ^ Донг, X. и Чжан, Z. (2008). «Интеграция живых объектов с веб-сервисом Flickr», http://liveobjects.cs.cornell.edu/community/3/index.html
  16. ^ Пратик, У. (2008). «Живой объект Goole Earth», http://liveobjects.cs.cornell.edu/community/4/index.html
  17. ^ Гупта, С. и Вора, Х. (2008). «ALGE (Живая Google Планета Земля)», http://liveobjects.cs.cornell.edu/community/5/index.html
  18. ^ Махаджан, Р. и Ваканкар, С. (2008). «Распределенная Google Earth», http://liveobjects.cs.cornell.edu/community/6/index.html
  19. ^ Вадхва, А., Санкар, Х. и Субраманьян, С. (2008). «Живой интерфейс Google Earth», http://liveobjects.cs.cornell.edu/community/7/index.html