Система и способ приглашения к взаимодействию

Иллюстрации

Показать все

Изобретение относится к сетевым вычислительным средам. Техническим результатом является облегчение взаимодействия в сетевых вычислительных средах. Архитектура (300) может включать в себя платформу (302) служб взаимодействия. Платформа (302) служб взаимодействия может включать в себя службу (304) управления контактами, службу (306) сигнализации, службу (310) деятельности, службу (312) совместного доступа к данным, службу (314) аутентификации и службу (316) связности. Служба (304) управления контактами может включать в себя хранилище (318) контактов, хранилище (320) присутствия и службу (322) расположения контактов. Служба (306) публикации может включать в себя службу (324) синхронизации. Служба (308) сигнализации может включать в себя службу (326) приглашения. Служба (310) деятельности может включать в себя звуковую/визуальную (A/V) службу (328). Служба (316) связности может включать в себя одноранговую (Р2Р) службу (330) и традиционный протокол управления транспортировкой и стек (332) Интернет-протокола (TCP/IP). Каждая служба (304), (306), (308), (310), (312), (314), (316) может включать в себя и/или быть включенной с одноранговой возможностью отправления и приема сообщений, которые реализуют службу. 3 н. и 17 з.п. ф-лы, 21 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Это изобретение в целом относится к сетевым вычислительным средам и более конкретно к облегченному взаимодействию в сетевых вычислительных средах.

УРОВЕНЬ ТЕХНИКИ

Сетевые вычислительные среды стали общими характеристиками рабочего места и даже дома. Эти среды облегчают множество режимов передачи данных, включая электронную почту, мгновенный обмен сообщениями, серверы мультимедийных документов, группы обсуждений, а также потоковый звук и видео, иммерсивные интерактивные среды восприятия «с погружением». Традиционные программные приложения начали извлекать выгоду из этих расширенных режимов передачи данных, но каждая имеет ограничение и/или недостатки, когда рассматривается с точки зрения интегрированной и расширяемой компьютеризированной платформы взаимодействия.

Некоторые традиционные компьютерные программные приложения предоставляют аспекты совместных служб, но им не удается предоставлять эффективный доступ взаимодействующим сторонам. Неудобный и/или ограниченный доступ к взаимодействующим сторонам может представлять собой барьеры к началу взаимодействия, предотвращая использование других функциональных инструментов взаимодействия. Аспект неэффективного доступа к взаимодействующим сторонам является недостатком некоторых традиционных программных приложений для эффективного определения текущего физического и/или виртуального местоположения. Другим аспектом является неспособность некоторых традиционных программных приложений эффективно определять совместимость в отношении функциональных возможностей взаимодействия.

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

Это не является незначительным недостатком. Эффективная архитектура может существовать много лет и быть встроена в сетевые вычислительные среды с миллионами узлов. Недостатки расширяемости, гибкости, удобства эксплуатации и/или масштабируемости созданной архитектуры могут являться намного более существенной проблемой, чем для единственной версии программного продукта.

КРАТКАЯ СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Эта часть представляет упрощенную сущность некоторых вариантов осуществления изобретения. Эта сущность не является расширенной точкой зрения изобретения. Не подразумевается определять ключевые/критические элементы изобретения или очертить объем изобретения. Ее единственной целью является представление некоторых вариантов осуществления изобретения в упрощенной форме как вступление к более подробному описанию, которое представлено позже.

В варианте осуществления изобретения один или более контактов могут быть выбраны с пользовательским интерфейсом приглашения, например, графический пользовательский интерфейс (GUI). Приглашение об участии в совместной деятельности может быть отослано выбранным контактам с пользовательского интерфейса приглашения или из приложения взаимодействия, например, приложения взаимодействия, которое способствует совместной деятельности. Отсылается ли приглашение из пользовательского интерфейса приглашения или из приложения взаимодействия может являться конфигурируемым элементом выбора. Если приглашение должно быть послано из пользовательского интерфейса приглашения, тогда совместное (общее) приложение может быть запущено и затем это приглашение может быть послано с пользовательского интерфейса приглашения. Если приглашение должно быть послано из приложения взаимодействия, тогда приложение взаимодействия может быть запущено и затем приглашение может быть послано из приложения взаимодействия.

В варианте осуществления изобретения приглашение участвовать в приложении взаимодействия может быть принято, например, с помощью платформы служб взаимодействия. Пользователь платформы служб взаимодействия может быть представлен с помощью приглашения совместно с возможностью выбирать одно из принятия, отклонения и игнорирования в ответ на приглашение. Пользователь может выбрать принятие, отклонение или явное игнорирование приглашения, и ответ может быть отослан отправителю приглашения, который отображает выбор пользователя.

В варианте осуществления изобретения интерфейс прикладного программирования для службы приглашения к взаимодействию включает в себя элемент приглашения, элемент отправления приглашения, ответ на элемент приглашения и элемент отмены приглашения. Элемент приглашения может предоставлять доступ к данным приглашения, соответствующим приглашению к участию в совместной деятельности. Элемент отправления приглашения может использоваться для отправления приглашений к взаимодействию одному или более контактам. Ответ на элемент приглашения может использоваться для ответа на приглашения к взаимодействию, и элемент отмены приглашения может использоваться для отмены выданных приглашений.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Тогда как прилагаемая формула изобретения излагает характеристики изобретения со спецификой, изобретение и его преимущества лучше всего понятны из последующего подробного описания, сопровождаемого ссылками на сопроводительные чертежи, на которых:

фиг.1 является схематическим представлением, в целом иллюстрирующим примерную компьютерную систему, используемую для реализации варианта осуществления изобретения;

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

фиг.3 является блок-схемой, которая отображает пример компьютерной программной архитектуры для платформы служб взаимодействия согласно варианту осуществления изобретения;

фиг.4 является схемой моделирования объекта, которая отображает примерную объектную модель взаимодействия согласно варианту осуществления настоящего изобретения;

фиг.5 является схемой объектного интерфейса, которая отображает примерный объект контакта согласно варианту осуществления изобретения;

фиг.6 является схемой объектного интерфейса, которая отображает примерный объект присутствия согласно варианту осуществления изобретения;

фиг.7 является схемой объектного интерфейса, которая отображает примерный публикуемый объект согласно варианту осуществления изобретения;

фиг.8 является схемой объектного интерфейса, которая отображает примерный объект возможностей согласно варианту осуществления изобретения;

фиг.9 является схемой объектного интерфейса, которая отображает примерный объект MeContact согласно варианту осуществления изобретения;

фиг.10 является схемой объектного интерфейса, которая отображает примерный объект конференции согласно варианту осуществления изобретения;

фиг.11 является блок-схемой последовательности операций способа, которая отображает примерные этапы, выполняемые с помощью платформы служб взаимодействия согласно варианту осуществления изобретения;

фиг.12 является блок-схемой последовательности операций способа, которая отображает дополнительные примерные этапы, выполняемые с помощью платформы совместных служб согласно варианту осуществления изобретения;

фиг.13 является схематическим представлением, которое отображает примерный сценарий приглашения согласно варианту осуществления изобретения;

фиг.14 является схематическим представлением, которое отображает примерный интерфейс прикладного программирования службы приглашения согласно варианту осуществления изобретения;

фиг.15 является блок-схемой последовательности операций способа, которая отображает примерные этапы для отправления приглашения согласно варианту осуществления изобретения;

фиг.16 является блок-схемой последовательности операций способа, которая отображает примерные этапы, выполняемые с помощью службы приглашения для отправления приглашения согласно варианту осуществления изобретения;

фиг.17 является блок-схемой последовательности операций способа, которая отображает примерные этапы для ответа на приглашение из типового пользовательского интерфейса приглашения согласно варианту осуществления изобретения;

фиг.18 является блок-схемой последовательности операций способа, которая отображает примерные этапы для ответа на приглашение из типового пользовательского интерфейса приглашения согласно варианту осуществления изобретения;

фиг.19 является блок-схемой последовательности операций способа, которая отображает примерные этапы для участия в публикации бессерверного присутствия согласно варианту осуществления изобретения;

фиг.20 является блок-схемой последовательности операций способа, которая отображает примерные этапы для размещения подписок совместного присутствия согласно варианту осуществления изобретения; и

фиг.21 является блок-схемой последовательности операций способа, которая отображает примерные этапы для приема подписок совместного присутствия согласно варианту осуществления изобретения.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

До продолжения описания различных вариантов осуществления изобретения, в данный момент предоставляется описание компьютера, в котором различные варианты осуществления изобретения могут быть применены на практике. Хотя и не требуется, изобретение описано в общем контексте машиноисполняемых инструкций, например, программных модулей, выполняемых компьютером. В общем, программы включают в себя процедуры, объекты, компоненты, структуры данных и тому подобное, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Термин "программа", используемый в данном документе, может означать единственный программный модуль или множественные программные модули, действующие согласованно. Термин "компьютер" и "вычислительное устройство", используемые в данном документе, включают в себя любое устройство, которое электронно выполняет одну или более программ, например, персональные компьютеры (PC), карманные устройства, многопроцессорные системы, основанная на микропроцессоре программируемая бытовая электроника, сетевые РС, мини-компьютеры, планшетные РС, портативные компьютеры, бытовые устройства, которые имеют микропроцессор или микроконтроллер, маршрутизаторы, межсетевые устройства, концентраторы и тому подобное. Изобретение может также использоваться в распределенных вычислительных средах, где задачи выполняются с помощью удаленных устройств обработки, которые связаны посредством сети передачи данных. В распределенной вычислительной среде программы могут располагаться и в локальных, и в удаленных запоминающих устройствах.

Ссылаясь на фиг.1, показан пример основной конфигурации для компьютера 102, в котором аспекты изобретения, описанные в данном документе, могут быть реализованы. В своей наиболее основной конфигурации компьютер 102 типично включает в себя, по меньшей мере, один обрабатывающий блок 104 и память 106. Обрабатывающий блок 104 выполняет инструкции для осуществления задач согласно различным вариантам осуществления изобретения. В осуществлении подобных задач обрабатывающий блок 104 может передавать электронные сигналы другим частям компьютера 102 и устройствам вне компьютера 102 для получения некоторого результата. В зависимости от точной конфигурации и типа компьютера 102 память 106 может быть энергозависимой (например, оперативным запоминающим устройством, RAM), энергонезависимой (например, постоянное запоминающее устройство, ROM или флеш-память) или сочетанием из двух. Эта наиболее основная конфигурация проиллюстрирована на фиг.1 с помощью пунктирной линии 108.

Компьютер 102 может также иметь дополнительные характеристики/функциональные возможности. Например, компьютер 102 может также включать в себя дополнительное запоминающее устройство (съемное 110 и/или несъемное 112), которое включает в себя, но не ограничивается этим, магнитные или оптические диски или ленту. Компьютерный носитель информации включает в себя энергозависимый и энергонезависимый, съемный и несъемный носитель, реализованный любым способом или технологией для хранения информации, которая включает в себя машиноисполняемые инструкции, структуры данных, программные модули или иные данные. Компьютерный носитель информации включает в себя, но не ограничивается этим, RAM, ROM, электрически стираемое программируемое запоминающее устройство (EEPROM), флеш-память, компакт-диск (CD-ROM), цифровой универсальный диск (DVD) или иное оптическое устройство хранения, магнитные кассеты, магнитную ленту, магнитное запоминающее устройство, или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для сохраняемой желаемой информации и к которому выполняется доступ с помощью компьютера 102. Любой подобный компьютерный носитель информации может являться частью компьютера 102.

Компьютер 102 предпочтительно также содержит соединения 114 передачи данных, которые позволяют устройству передавать данные другим устройствам, например удаленному компьютеру(ам) 116. Соединение передачи данных является примером носителя передачи данных. Носитель передачи данных типично реализует машиночитаемые инструкции, структуры данных, программные модули или иные данные в модулированном сигнале данных, например, несущей волне или ином транспортном механизме и включает в себя любой носитель по доставке информации. Например, и не для ограничения, термин "носитель данных" включает в себя беспроводной носитель, например, звуковой, радиочастотный (РЧ), инфракрасный или иной беспроводной носитель. Термин "машиночитаемый носитель", как используется в данном документе, включает в себя и компьютерный носитель информации, и носитель передачи данных.

Компьютер 102 может также иметь устройства 118 ввода, например, клавиатуру/вспомогательную клавиатуру, мышь, перо, устройство голосового ввода, устройство сенсорного ввода и т.д. Устройства 120 вывода, например, устройство отображения, динамики, принтер и т.д. могут также включаться. Все эти устройства хорошо известны в данной области техники и не требуют долгого описания в данном документе.

В последующем описании изобретение описано со ссылкой на действия и символические представления операций, которые выполняются с помощью одного или более вычислительных устройств, пока не указано иное. Как таковое, должно быть понятно, что подобные действия и операции, на которые периодически ссылаются как машиноисполняемые, включают в себя управление обрабатывающим блоком компьютера электрических сигналов, представляющих собой данные в структурированной форме. Это управление преобразовывает данные или поддерживает их в ячейках в запоминающей системе компьютера, который перестраивает или иным образом изменяет действие компьютера способом, хорошо известным специалистам в данной области техники. Структуры данных, где данные сохраняются, являются физическими ячейками памяти, которые имеют конкретные свойства, определяемые с помощью формата данных. Однако, хотя изобретение описывается в вышеупомянутом контексте, не подразумевается ограничение, как поймут специалисты в данной области техники, что различные действия и операции, описанные в данном документе, могут также реализовываться в аппаратном обеспечении.

В варианте осуществления изобретения архитектура компьютерного программного обеспечения предусматривает расширяемую, гибкую, удобную в эксплуатации и масштабируемую совместную платформу. Аспекты архитектуры могут быть включены в соответствующую сетевую вычислительную среду. Архитектура может позволять и/или расширять интегрированное взаимодействие с традиционными приложениями компьютерного программного обеспечения. В частности, архитектура может предусматривать полное совместное управление контактами, которое включает в себя текущее присутствие контактов в сетевом вычислительном окружении и текущие возможности контактов, например, в отношении доступных совместных действий.

Фиг.2 отображает пример сетевой вычислительной среды 200, подходящей для включения в вариант осуществления изобретения. В сетевой вычислительной среде сеть 202 коммуникативно подсоединяет компьютеры 204, 206 и 208 к сетевому концентратору 210. Сеть 202 может являться локальной вычислительной сетью (LAN), региональной сетью (MAN), персональной сетью (PAN) или их сочетанием. Сеть 202 может включать любые подходящие сетевые компоненты, например, концентраторы, межсетевые устройства, маршрутизаторы, мосты, порты и тому подобное, а также любой подходящий машиночитаемый носитель. Например, компьютеры 204, 206, 208 и сетевой концентратор 210 каждый может являться примерами компьютера 102 (фиг.1).

Сетевой концентратор 210 может коммуникационно соединять компьютеры 212, 214 и 216. Сетевой концентратор 210 и компьютеры 212, 214 и 216 могут вместе считаться примером подсети или фрагментом 218 сети, хотя, конечно, не ограничивающим примером. Говорят, что компьютеры 212, 214 и 216 находятся в том же самом фрагменте сети и могут извлекать привилегированную сетевую передачу данных в отношении друг с другом как итог. Например, даже, если каждый компьютер 204, 206, 208, 212, 214 и 216 может отсылать сообщения типа "точка-точка" к каждому другому компьютеру 204, 206, 208, 212, 214 и 216, фрагмент 218 сети может быть сконфигурирован из условия, что сообщения широковещательного типа во фрагменте 218 сети принимаются этими компьютерами 212, 214 и 216 во фрагменте 218 сети.

Признаки расширяемости, гибкости, удобства эксплуатации и/или масштабируемости совместной платформы могут возникнуть от одного или более аспектов ее модульной структуры, ее модульной структуры в целом, режимов взаимодействия между отдельными из модулей и/или комбинациями взаимодействия модульной структуры в целом. Фиг.3 отображает пример архитектуры 300 компьютерного программного обеспечения согласно варианту осуществления изобретения. Каждый аспект архитектуры 300 может быть представлен в каждом компьютере 204, 206, 208, 212, 214 и 216 (фиг.2), однако каждый вариант осуществления изобретения так не ограничивается. Аспекты архитектуры 300 могут быть подходящим образом распределены по любому подходящему поднабору сетевой вычислительной среды 200, которая включает в себя сетевое вычислительное окружение 200 в целом. Различные версии архитектуры 300 могут быть представлены в различных компьютерах и степень, в которой каждая версия архитектуры 300 является совместимой с каждой иной версией архитектуры 300, может отличаться.

Архитектура 300 может включать в себя платформу 302 служб взаимодействия. Платформа 302 служб взаимодействия может включать в себя службу 304 управления контактами, службу 306 публикации, службу 308 сигнализации, службу 310 деятельности, службу 312 совместного использования данных, службу 314 аутентификации и службу 316 связности. Служба 304 управления контактами может включать в себя хранилище 318 контактов, хранилище 320 присутствия и службу 322 определения местоположения контактов. Служба 306 публикации может включать в себя службу 324 синхронизации. Служба 308 сигнализации может включать в себя службу 326 приглашения. Служба 310 деятельности может включать в себя звуковую/визуальную (A/V) службу 328. Служба 316 связности может включать в себя одноранговую (Р2Р) службу 330 и традиционный протокол управления транспортировкой и стек 332 Интернет-протокола (TCP/IP). Каждая служба 304, 306, 308, 310, 312, 314, 316 может включать в себя и/или быть включенной с одноранговой возможностью отправления и приема сообщений, которые реализуют службу.

В варианте осуществления изобретения служба 304 управления контактами предусматривает эффективный доступ к взаимодействующим сторонам, то есть к пользователям платформы 302 служб взаимодействия. Например, служба 304 управления контактами может предоставлять контактную информацию для некоторых или всех пользователей платформы 302 служб взаимодействия. Служба 304 управления контактами может поддерживать базу данных контактов в одном или более устройствах для хранения данных. Каждый контакт может быть потенциальной взаимодействующей стороной, то есть пользователь платформы служб взаимодействия может пытаться участвовать в одном или более совместных действиях с каждым контактом. Служба 304 управления контактами может предоставлять один или более пользовательских интерфейсов, которые включают графический пользовательский интерфейс (GUI), который представляет контакты, например, по выбору пользователя и/или так, чтобы пользователь мог вызывать платформу 302 служб взаимодействия в отношении конкретного контакта.

Хранилище 318 контактов может хранить объекты контактов и объекты MeContact ("свяжись со мной") (описанные более подробно ниже со ссылкой на фиг.4). Хранилище 320 присутствия может хранить объекты присутствия (также описанные более подробно ниже со ссылкой на фиг.4) для объектов контактов. В варианте осуществления изобретения данные присутствия изменяются более часто, чем данные контактов, так что отдельные хранилища 318, 320 данных могут быть оптимизированы для повторений обновлений различных объектов.

Служба 322 определения местоположения контактов может предусматривать один или более из множества данных расположения в отношении заданного контакта. Физическая близость может являться аспектом расположения контактов, например, один или более модулей-посредников для физического определения местоположения могут использоваться для оценки физического расстояния контакта от пользователя. Уровень сигнала в радиоприемнике является примером модуля-посредника физического определения местоположения. Виртуальное расположение может являться другим аспектом определения местоположения контактов. Например, контакт может быть активным в одной или более сетях, например, сети 202 фиг.2 и/или одном или более сетевых узлах, например, компьютерах 204, 206, 208, 212, 214 и 216. Кроме того, контакт может быть зарегистрирован, но неактивен, или подключенным, но необнаруженным, или иметь другое подходящее состояние расположения. Служба 322 определения местоположения контактов может выполнять запрос соответствующего реестра и/или начать, например, одноранговый поиск или механизм однорангового разрешения имен для того, чтобы определить местоположение конкретного контакта.

Служба 306 публикации может предусматривать доступ к данным, публикуемым с помощью контактов. В варианте осуществления изобретения заинтересованные пользователи могут подписываться на объекты, публикуемые с помощью контактов, и принимать уведомление, когда бы не обновлялись публикуемые объекты с помощью публикующегося контакта. Служба 324 синхронизации может отвечать за обслуживание базы данных подписок на публикацию. В частности, услуги 206 публикации могут предоставлять доступ к информации присутствия, публикуемой с помощью контактов.

Служба 308 сигнализации может предусматривать создание и прекращение совместных конференций между контактами, присутствующими в сетевой вычислительной середе 200 (фиг.2), а также обновление параметров в ходе конференции. В варианте осуществления изобретения создание, обновление и прекращение совместных конференций предусматривается согласно семантике публикации/подписки. В варианте осуществления изобретения служба 308 сигнализации включает реализацию протокола инициирования сеанса (SIP), например, протокол инициирования сеанса, описанный Handley et al., "SIP: протокол инициирования сеанса", запрос на комментарии (RFC) рабочей группы инженеров Интернет (IETF) 2543, Март, 1999 г.

Служба 326 приглашения может давать возможность отсылать приглашения и связанные сообщения в и от контактов. Например, системный пользователь, получающий доступ к сетевой вычислительной среде 200 (фиг.2) в одном компьютере 212, может пригласить контакт в другом компьютере(ах) 204, 206, 208, 212, 214 и/или 216, чтобы участвовать в совместной деятельности. Служба 326 приглашения может использовать службу 322 определения местоположения контактов, чтобы определить местоположение контакта и доставить приглашение. Служба 326 приглашения может включать в себя множество пользовательских интерфейсов, например, графические пользовательские интерфейсы (GUI) для представления подробностей приглашения приглашенному и для создания возможности приглашенному принять, отклонить и/или явно игнорировать приглашение. Примерная служба 326 приглашения описывается ниже более подробно со ссылкой на фиг.13.

Служба 310 деятельности может реализовывать совместные действия и/или предоставлять поддержку для интеграции приложений взаимодействия в платформе 302 служб взаимодействия. Например, служба 310 деятельности может предусматривать платформу 302 служб взаимодействия, совместимую с интерфейсами прикладного программирования (API), в традиционных приложениях взаимодействия. Совместимые API могут включать в себя функциональные возможности для запроса конкретного контакта или компьютера 204, 206, 208, 212, 212, 216 (фиг.2) относительно возможностей деятельности и для установления требований приглашения в конкретном приложении. Звуковые/визуальные службы 328 являются примером совместных действий, которые являются подходящими для включения в службу 310 деятельности.

Служба 312 совместного использования данных может давать возможность совместного использования данных в любом подходящем формате, который включает в себя файлы, документы, потоки и объекты. Служба 312 совместного использования данных может предусматривать перемещение данных, тиражирование данных и/или синхронизацию данных. Совместное использование данных может быть разрешено и отклонено на основе контакта, участия в деятельности, участия в конференции и/или любом подходящем составе участников управления доступом (ACL), например, пользовательская группа сетевой вычислительной среды 200 (фиг.2).

Служба 314 аутентификации может генерировать и проверять удостоверяющие подтверждения прав на доступ, например, удостоверяющие подтверждения прав на доступ для контактов и иной деятельности и участников конференции. Служба 314 аутентификации может разрешать классификацию контактов на надежные контакты и ненадежные контакты. Служба 314 аутентификации может разрешать оставаться контактам надежными независимо от расположения контакта и/или согласно присутствию сложной сетевой вычислительной среде 200 (фиг.2).

В варианте осуществления изобретения служба 316 связности позволяет обмениваться информацией между копиями служб платформы 302 служб взаимодействия по сетевой вычислительной среде 200 (фиг.2), например, между первым экземпляром службы 308 сигнализации в компьютере 212 и вторым экземпляром службы 308 сигнализации в компьютере 208. Средства обмена информацией службы 316 связности могут быть сделаны доступным с помощью интерфейса прикладного программирования (API) так, что другая платформа 302 служб взаимодействия, службы 304, 306, 310, 312, 314 могут обмениваться информацией между экземплярами, независимыми от базового механизма транспортировки.

Служба 316 связности может включать в себя стек 332 TCP/IP или прикладные программные интерфейсы более высокого уровня взаимодействия, например, API Socket 2 (Winsock) платформы Microsoft® Windows®, как описано в части Socket 2 Windows® платформы Microsoft® Windows® инструментальных средств разработки программного обеспечения (SDK) в сетевой библиотеке для разработчиков на платформе Microsoft (MSDN ®) от марта 2005 г. Одноранговая (P2P) служба 330 может предоставлять возможность соединения в перекрывающейся сети сетевой вычислительной среды 200. Например, одноранговая служба 330 может предусматриваться согласно одноранговому прикладному программному интерфейсу, описанному в части построения одноранговой сети Windows® инструментальных средств разработки программного обеспечения (SDK) платформы Microsoft® Windows® в сетевой библиотеке для разработчиков на платформе Microsoft (MSDN ®) от марта 2005 г., которая включает в себя построение диаграмм, группировку, управление идентичностью и прикладные программные интерфейсы провайдера пространства имен однорангового протокола разрешения имен (PNRP).

Службы 304, 306, 308, 310, 312, 314 и 316 платформы 302 служб взаимодействия могут быть реализованы с помощью набора программируемых объектов, который включает в себя набор объектов взаимодействия, взаимосвязанных в объектной модели взаимодействия. Фиг.4 отображает примерный набор объектов взаимодействия и примерную объектную модель 400 взаимодействия согласно варианту осуществления изобретения. Объектная модель 400 взаимодействия может включать в себя объект 402 контакта, объект 404 присутствия, объект 406 MeContact и объект 408 MyPresence, объект 410 конечной точки, объект 412 возможностей, объект 414 конференций, объект 416 деятельности и опубликованный объект 418. Естественно, платформа 302 служб взаимодействия может включать в себя многие экземпляры каждого типа объекта 402, 404, 406, 408, 410, 412, 414, 416 и 418 взаимодействия.

Объект 402 контакта может включать соответствующие атрибуты для представления совместного участника и/или пользователя платформы 302 служб взаимодействия (фиг.3). В частности, объект 402 контакта может ссылаться на совместное присутствие, например, присутствие контакта в сетевой вычислительной среде 200 (фиг.2). В варианте осуществления изобретения объект 402 контакта ссылается на совместное присутствие с помощью ссылки на экземпляр объекта 404 присутствия. Примерный объект 402 контакта описывается более подробно ниже со ссылкой на фиг.5.

Объект 404 присутствия может включать соответствующие атрибуты для представления совместного присутствия, например, набор компьютеров 204, 206, 208, 212, 214 и/или 216 (фиг.2) сетевой вычислительной среды 200, в которой конкретный пользователь платформы 302 служб взаимодействия стал активным в какое-то время в недавнем прошлом, где "недавнее" прошлое может варьироваться от секунд до часов, дней и даже лет, в зависимости от совместного контекста. Объект 404 присутствия может ссылаться на один или более экземпляров объекта 410 конечной точки, которые представляют расположения сетевой вычислительной среды 200. Объекты 410 конечной точки не должны соответствовать один к одному компьютерам 204, 206, 208, 212, 214, 216 сетевой вычислительной среды 200, например, потому что объект 410 конечной точки может соответствовать одноранговому узлу сети в перекрывающейся сети сетевой вычислительной среды 200.

Объект 404 присутствия может дополнительно ссылаться на ноль или более экземпляров объекта 412 возможностей, которые представляют, например, совместные возможности в одной или более конечных точек взаимодействия и/или общую возможность взаимодействия по некоторым или всем конечным точкам, ассоциативно связанным с объектом 404 присутствия. Кроме того, объект 404 присутствия может ссылаться на ноль или более экземпляров опубликованного объекта 418. Примерный объект 404 присутствия описывается более подробно ниже со ссылкой на фиг.6. Примерный опубликованный объект 418 описывается более подробно ниже со ссылкой на фиг.7. Примерный объект 412 возможностей описывается более подробно ниже со ссылкой на фиг.8.

Объект 406 MeContact ("свяжись со мной") может являться типом объекта 402 контакта и может полиморфно наследовать атрибуты и поведение объекта 402 контакта. Объект 406 MeContact может быть отличным от объекта 402 контакта из-за специальной роли, которую может сыграть собственная контактная информация пользователя платформы служб взаимодействия относительно контактной информации других пользователей. Например, объект 406 MeContact может ссылаться на ноль или более экземпляров объекта 402 контакта, которые представляют эти конкретные известные контакты взаимодействия пользователя. Объекту 406 MeContact не нужно ссылаться, например, на другие экземпляры объекта 406 MeContact. В варианте осуществления изобретения избегают таким образом ненужной сложности, участвуя в расширяемости, гибкости, удобстве эксплуатации и/или масштабируемости платформы 302 служб взаимодействия (фиг.3).

Объект 406 MeContact может дополнительно ссылаться на экземпляр объекта 408 MyPresence ("мое присутствие"). Объект 408 MyPresence может являться типом объекта 404 присутствия и может полиморфно наследовать атрибуты и поведение объекта 404 присутствия. Кроме того, объект 408 MyPresence может быть отличен от объекта 404 присутствия из-за специальной роли, которую может сыграть собственное присутствие пользователя платформы служб взаимодействия относительно присутствия других пользователей. Например, в варианте осуществления изобретения пользователь может явно обновить свой собственный экземпляр объекта 408 MyPresence, но не экземпляры объекта 404 присутствия других пользователей.

Кроме того, объект 406 MeContact может ссылаться на ноль или более экземпляров объекта 414 конференций, которые представляют совместные конференции, в которых пользователь, ассоциативно связанный с объектом 406 MeContact, в настоящее время и/или недавно участвует с другими пользователями платформы служб взаимодействия. Объект 414 конференций может ссылаться на один или более экземпляров объекта 416 деятельности, которые представляют совместные действия. В варианте осуществления изобретения объект 414 конференций является типом объекта 416 деятельности и может полиморфно наследовать атрибуты и поведение объекта 416 деятельности. Как итог, являясь типом объекта 416 деятельности, экземпляры объекта 416 деятельности, на которые ссылаются с помощью объекта 414 конференций, могут являться экземплярами объекта 414 конференций. Примерный объект 406 MeContact описывается более подробно ниже со ссылкой на фиг.9. Примерный объект 414 конференций описывается более подробно ниже со ссылкой на фиг.10.

Каждый объект 402, 404, 406, 408, 410, 412, 414, 416 и 418 взаимодействия может предлагать интерфейс прикладного программирования для создания и удаления взаимодействующих экземпляров объекта 402, 404, 406, 408, 410, 412, 414, 416 и 418, а также для соответствующих запросов и манипуляции атрибутами взаимодействия объекта 402, 404, 406, 408, 410, 412, 414, 416 и 418. В варианте осуществления изобретения, где взаимодействующие объекты 402, 404, 406, 408, 410, 412, 414, 416 и 418 описываются как ссылающиеся на другие взаимодействующие объекты 402, 404, 406, 408, 410, 412, 414, 416 и 418, объекты, на которые ссылаются, или их экземпляры, могут вместо этого быть включенными в и/или быть выполненными совокупно со ссылающимся объектом. Один программный объект может ссылаться на другой с помощью любого подходящего программного механизма ссылок. Подходящий программный механизм ссылок включает в себя указатели, явные ссылки, ассоциативно связанные хэш-коды и их эквиваленты, а также программные языковые свойства, спроектированные конкретно для этой цели.

Программные объекты 402, 404, 406, 408, 410, 412, 414, 416 и 418, представленные выше со ссылкой на фиг.4, описываются в настоящий момент более подробно. Каждый программный объект 402, 404, 406, 408, 410, 412, 414, 416 и 418 может включать в себя один или более элементов интерфейса прикладного программирования. Каждый элемент интерфейса прикладного программирования может включать в себя одну или более спецификаций интерфейса, которые определяют способ, которым системные компоненты компьютера 102 (фиг.1), включая службы платформы 302 (фиг.3) служб взаимодействия, могут конфигурировать, управлять и/или взаимодействовать с программным объектом 402, 404, 406, 408, 410, 412, 414, 416 и 418. Как очевидно специалисту в данной области техники, спецификации интерфейса могут включать в себя спецификации атрибутов объектов, переменные спецификации, спецификации вызова функции, спецификации программных объектов, спецификации сообщений, например, пары сообщений запроса/ответа и/или любая другая подходящая спецификация программного интерфейса.

Фиг.5 отображает примерный объект 500 контакта согласно варианту осуществления изобретения. Объект 500 контакта подходит для встраивания в объектную модель 400 (фиг.4) взаимодействия. Объект 500 контакта может включать в себя элементы интерфейса прикладного программирования, которые включают в себя элемент 502 имени, элемент 504 присутствия, элемент 506 флага партнера и элемент 508 близости.

Элемент 502 имени может включать в себя дружественное имя для контакта, ассоциативно связанного с объектом 500 контакта. Др