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

Изобретение относится к сетевым вычислительным средам. Техническим результатом является облегчение взаимодействия в сетевых вычислительных средах. Архитектура (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 контакта. Дружественное имя может быть закодировано, например, как расширенная текстовая строка. Элемент 504 присутствия может включать в себя ссылку на экземпляр объекта 404 присутствия (фиг.4).

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

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

Фиг.6 отображает примерный объект 600 присутствия согласно варианту осуществления изобретения. Объект 600 присутствия подходит для включения в объектную модель 400 взаимодействия (фиг.4). Объект 600 присутствия может включать элементы интерфейса прикладного программирования, которые включают в себя элемент 602 описания расширенного текста, элемент 604 конечных точек, элемент 606 объединенного статуса, элемент 608 объединенных возможностей, элемент 610 опубликованных объектов, элемент 612 приглашения к новой деятельности, элемент 614 приглашения к существующей деятельности, возможности поиска посредством элемента 616 типа, поиск опубликованных объектов посредством элемента 618 типа и элемент 620 опубликованного объекта.

Элемент 602 описания расширенного текста может включать в себя расширенную текстовую строку, описывающую присутствие сетевой вычислительной среды 200 (фиг.2), ассоциативно связанной с объектом 600 присутствия. Простые примеры включают в себя "В настоящий момент в здании 9", "Проигрывание Halo®, уровень 4" и "Не доступен". Элемент 604 конечных точек может включать в себя набор конечных точек взаимодействия, которые являются активными, недавно активными и/или способные стать активными участниками в одном или более совместных действиях. Примеры соответствующих конечных точек взаимодействия включают в себя компьютеры 204, 206, 208, 212, 214 и 216 и одноранговые узлы перекрывающейся сети сетевой вычислительной среды 200.

Элемент 606 объединенного статуса может включать в себя индикатор объединенного статуса присутствия, который представляет совместное присутствие по набору взаимодействующих конечных точек взаимодействия. Каждая взаимодействующая конечная точка может иметь ассоциативно связанный статус присутствия, например, В СЕТИ, ОТОШЕЛ, ВЫШЕЛ НА ОБЕД, СКОРО ВЕРНУСЬ, СВОБОДНЫЙ, НА ТЕЛЕФОНЕ или ЗАНЯТ. Объединенному статусу присутствия, ассоциативно связанному с набором конечных точек, не нужно быть тем же самым статусом, ассоциативно связанным с любым одним из конечных точек в наборе. Даже когда объединенный статус присутствия является тем же самым, как и, по меньшей мере, у одной из конечных точек в наборе, он может быть отличным от одного или многих других.

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

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

Элемент 610 опубликованных объектов может включать в себя коллекцию опубликованных объектов, ассоциативно связанных с совместным присутствием. Тогда как объект 412 возможностей (фиг.4) может являться типом опубликованного объекта 418, оба различаются в том, что эти возможности, ассоциативно связанные с экземплярами объекта 412 возможностей, являются продолжительными (например, по числу дней, недель или даже лет), в то время как опубликованные данные, ассоциативно связанные с экземплярами базового опубликованного объекта 418, являются обычно непродолжительными (например, по числу секунд, минут или часов). Это отличие может использоваться для оптимизации деятельности вычислительной системы.

Элемент 612 приглашения к новой деятельности может давать возможность пользователю платформы 302 служб взаимодействия (фиг.3) приглашать контакт, ассоциативно связанный с объектом 600 присутствия, для участия в новой совместной деятельности. Может быть так, что ассоциативно связанная конференция для хостинга деятельности еще не существует и что она будет создана, если приглашение будет принято. Приглашение может быть доставлено в каждую конечную точку, на которую ссылаются с помощью элемента 604 конечных точек, только в эти конечные точки, ассоциативно связанные со статусом присутствия ONLINE, приглашение может быть доставлено в каждую конечную точку, ассоциативно связанную с совместным присутствием по порядку, например, порядку, который определяется с помощью статуса присутствия, ассоциативно связанного с каждой конечной точкой по порядку, или другой подходящей стратегией доставки приглашения.

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

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

Поиск опубликованных объектов с помощью элемента 618 типа могут давать возможность пользователю платформы 302 служб взаимодействия (фиг.3) запрашивать присутствие, ассоциативно связанное с объектом 600 присутствия для опубликованных объектов, ассоциативно связанных с присутствием, например, опубликованных объектов, доступных с помощью элемента 610 опубликованного объекта. Тип опубликованного объекта может определяться с помощью ассоциативно связанной расширенной текстовой строки. Например, эти экземпляры опубликованного объекта 418 (фиг.4), ассоциативно связанные с той же самой расширенной текстовой строкой, могут определяться как тот же самый тип.

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

Фиг.7 отображает примерный опубликованный объект 700 согласно варианту осуществления изобретения. Опубликованный объект 700 подходит для включения в объектную модель 400 взаимодействия (фиг.4). Опубликованный объект 700 может включать элементы интерфейса прикладного программирования, который включает в себя элемент 702 авторизованных подписчиков и элемент 704 опубликованных данных.

Элемент 702 авторизованных подписчиков может ссылаться на один или более экземпляров объекта 402 контакта (фиг.4), ассоциативно связанного с контактами, которые авторизованы подписываться на данные, ассоциативно связанные с опубликованным объектом 700. Управление доступом к данным может быть укрупненным, например, разрешать или запрещать (блокировать), или более подробным, например, включая управление по созданию данных, чтению, обновлению и удалению привилегий. Элемент 704 опубликованных данных может поддерживать набор опубликованных данных, ассоциативно связанных с опубликованным объектом 700. Любой подходящий набор данных может быть опубликован в ассоциации с опубликованным объектом 700.

Фиг.8 отображает примерный объект 800 возможностей согласно варианту осуществления изобретения. Объект 800 возможностей подходит для включения в объектную модель 400 взаимодействия (фиг.4). Объект 800 возможностей может включать элементы интерфейса прикладного программирования, включая элемент 802 ассоциативно связанных приложений и элемент 804 данных приложений.

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

Фиг.9 отображает примерный объект 900 MeContact согласно варианту осуществления изобретения. Объект 900 MeContact подходит для включения в объектную модель 400 взаимодействия (фиг.4). Объект 900 MeContact может включать в себя элементы интерфейса прикладного программирования, которые включают в себя элемент 902 контактов, элемент 904 партнеров, элемент 906 авторизованных подписчиков, элемент 908 активных подписчиков, элемент 910 конференций, возможности поиска с помощью элемента 912 типа и поиск опубликованных объектов с помощью элемента 914 типа.

Элемент 902 контактов может включать в себя ссылки на набор экземпляров объекта 402 контакта (фиг.4), ассоциативно связанных с контактами, известных пользователю платформы 302 служб взаимодействия (фиг.3), ассоциативно связанного с объектом 900 MeContact. Элемент 904 партнеров может включать в себя ссылки на набор экземпляров объекта 402 контакта (фиг.4), ассоциативно связанных с контактами, известных пользователю платформы 302 служб взаимодействия (фиг.3), и которые также являются контактами класса партнеров, например, как отображено с помощью элемента 506 флага партнера (фиг.5) объекта 500 контакта. Явное присутствие в наборе экземпляров объекта 402 контакта, на которые ссылаются с помощью элемента 904 партнеров, может отображать, что ассоциативно связанный контакт является контактом класса партнеров. Набор экземпляров объекта 402 контакта, на которые ссылаются с помощью элемента 902 контактов и элемента 904 партнеров, может перекрываться, однако, по меньшей мере, в одном варианте осуществления изобретения, эти наборы являются исключающими.

Элемент 906 авторизованных подписчиков может включать в себя ссылки на набор экземпляров объекта 402 контакта (фиг.4), ассоциативно связанных с контактами, которые авторизованы на подписку опубликованных данных, ассоциативно связанных с объектом 900 MeContact, например, данными возможностей. Управление доступом к опубликованным данным может быть укрупненным (крупномодульным), например, запрещать или разрешать доступ ко всем опубликованным данным, или подробным (мелкомодульным), например, создавать, читать, обновлять и/или удалять разрешения для каждого опубликованного объекта 418, или их сочетанием.

Элемент 908 активных подписчиков может включать в себя ссылки на набор экземпляров объекта 402 контактов, ассоциативно связанных с контактами, которые активно подписаны на данные, публикуемые пользователем платформы 302 служб взаимодействия (фиг.3), ассоциативно связанного с объектом 900 MeContact. Естественно, экземпляры объекта 402 контактов, на которые ссылаются с помощью элемента 908 активных подписчиков, должны быть в соответствии с разрешениями, которые поддерживаются элементом 906 авторизованных подписчиков.

Элемент 910 конференций может включать в себя ссылки на набор экземпляров объекта 414 конференций (фиг.4), ассоциативно связанных с конференциями, в которых в текущий момент участвует пользователь платформы 302 служб взаимодействия (фиг.3), ассоциативно связанный с объектом 900 MeContact, в котором пользователь недавно участвовал и/или в котором пользователь будет скоро участвовать.

Возможности поиска с помощью элемента 912 типа могут давать возможность пользователю платформы 302 служб взаимодействия (фиг.3) запрашивать контакты, ассоциативно связанные с объектом 900 MeContact о возможностях, ассоциативно связанных с одним или более из множества типов возможностей. Например, возможности поиска с помощью элемента 912 типа могут запрашивать экземпляры объекта 402 контакта (фиг.4), на которые ссылаются с помощью элемента 902 контактов, элемента 904 партнеров и/или самого объекта 900 MeContact. Возможности поиска с помощью элемента 912 типа могут отвечать на запрос с помощью возможностей отдельных конечных точек и/или объединенных возможностей. Поиск опубликованных объектов с помощью элемента 914 типа может давать возможность пользователю запрашивать контакты, ассоциативно связанные с объектом 900 MeContact, об опубликованных данных. Как и с возможностями поиска с помощью элемента 912 типа, поиск опубликованных объектов с помощью элемента 914 типа может запрашивать экземпляры опубликованного объекта 418, на которые ссылаются с помощью элемента 902 контактов, элемента 904 партнеров и/или самого объекта 900 MeContact.

Фиг.10 отображает примерный объект 1000 конференции согласно варианту осуществления изобретения. Объект 1000 конференции подходит для включения в объектную модель 400 взаимодействия (фиг.4). Объект 1000 конференции может включать элементы интерфейса прикладного программирования, которые включают в себя элемент 1002 информации сеанса, элемент 1004 действий (видов деятельности), элемент 1006 администраторов, элемент 1008 авторизованных членов и элемент 1010 запуска деятельности.

В варианте осуществления изобретения роли конференции, например, конференции, ассоциативно связанной с объектом 1000 конференции, включают в себя организацию, управление и/или поддерживание одного или более совместных действий (одной или более видов совместной деятельности), в которых участвуют один или более пользователей платформы 302 служб взаимодействия (фиг.3). Элемент 1002 информации сеанса может включать в себя содержимое сеанса об уровне конференции. Оптимизация эффективности может быть достигнута с помощью сбора информации сеанса об уровне активности на уровне конференции. Элемент 1004 действий может включать в себя ссылки на один или более экземпляров объекта 416 деятельности (фиг.4).

Элемент 1006 администраторов может ссылаться на один или более экземпляров объекта 402 контакта (фиг.4), ассоциативно связанных с контактами, которые авторизованы действовать как администраторы для конференции. Административные привилегии могут включать в себя добавление или удаление авторизованных участников и/или действий. Элемент 1008 авторизованных членов может ссылаться на один или более экземпляров объекта 402 контакта, ассоциативно связанных с контактами, которые авторизованы для участия в действиях, ассоциативно связанных с конференцией. Авторизация может быть крупномодульной, например, допускать или запрещать конкретный контакт от участия во всех действиях конференции, мелкомодульной, например, разрешения могут быть предоставлены для запуска новых действий или завершения существующих действий для полного участия в отдельных действиях или для участия ограниченным способом (например, "статус наблюдателя") или их сочетанием.

Элемент 1010 запуска деятельности может добавлять новое действие в конференцию. Присоединение и выход из действий может управляться с помощью конференции, с помощью действия или с помощью сочетания обоих. В каждом случае элементы интерфейса прикладного программирования объекта 1000 конференции могут принуждать к соответствию с элементом 1006 администраторов и/или элементом 1008 авторизованных членов.

Подробные способы, выполняемые, например, с помощью платформы 302 служб взаимодействия (фиг.3) и согласно объектной модели 400 взаимодействия (фиг.4), описываются в настоящий момент. Фиг.11 отображает примерные этапы, выполняемые с помощью платформы 302 служб взаимодействия (фиг.3) согласно варианту осуществления изобретения. На этапе 1102 может быть выбран экземпляр объекта 402 контакта. Например, экземпляр объекта 402 контакта, сохраняемый в хранилище 318 контактов, может выбираться с помощью пользовательского интерфейса служб 304 управления контактами.

На этапе 1104 выбранный экземпляр объекта 402 контакта (фиг.4) может запрашиваться об ассоциативно связанном с ним экземпляром объекта 404 присутствия. Например, элемент 504 присутствия (фиг.5) выбранного объекта 500 контакта может использоваться для предоставления доступа к ассоциативно связанному экземпляру объекта 404 присутствия.

На этапе 1106 может быть определено, присутствует ли контакт, ассоциативно связанный с экземпляром выбранного объекта 402 контакта (фиг.4), в сетевой вычислительной среде 200 (фиг.2). Например, объединенный статус присутствия контакта может быть получен из элемента 606 объединенного статуса объекта 600 присутствия, извлеченного на этапе 1104, и, если объединенный статус присутствия контакта равен ONLINE, тогда контакт может быть определен как присутствующий. Если контакт определяется как присутствующий, процедура может продолжаться на этапе 1108. Иначе процедура может завершить работу. Контакт является недоступным для взаимодействия в это время.

Альтернативно, этапы 1104 и 1106 могут быть замещены этапами, которые подписываются на информацию о присутствии выбранного контакта и ожидают, пока уведомление не отобразит, что выбранный контакт присутствует, до продолжения на этапе 1108. Эта альтернатива отображается с помощью пунктирной линии 1110.

На этапе 1108 выбранный объект 402 контакта (фиг.4) может запрашиваться о наборе ассоциативно связанных экземпляров объекта 412 возможностей. Например, возможности поиска с помощью элемента 616 типа (фиг.6) экземпляра объекта 404 присутствия, извлеченного на этапе 1104 (и/или этапах 1110), могут использоваться для получения соответствующего набора возможностей. Конкретный набор возможностей, который необходимо проверить, может зависеть от конечной совместной деятельности или действий. Например, конференция, которая включает в себя голос, может инициировать проверку возможности звукового входа. На этапе 1112 может определяться, имеет ли выбранный контакт требуемые возможности. Если выбранный контакт не имеет требуемых возможностей, процедура может переходить к этапу 1202 фиг.12. Иначе процедура может завершить работу. Этап 1112 не нужно ограничивать простой проверкой. Этап 1112 может включать в себя согласование, например, координируемое с помощью службы 308 сигнализации (фиг.3), для определения, являются ли какие-нибудь из набора возможностей достаточными для целевой деятельности или действий.

Фиг.12 отображает дополнительные примерные этапы, выполняемые с помощью платформы 302 служб взаимодействия согласно варианту осуществления изобретения. Этапы фиг.11 и 12 соединены окружностями, помеченными 1114 и 1116. Определив, что выбранный контакт и присутствует в сетевой вычислительной среде 200 (фиг.2), и допускает участие в желаемой совместной деятельности или действиях, одно или более приглашений может быть отослано в выбранный контакт на этапе 1202. Например, приглашение может быть отослано с помощью службы 326 приглашения (фиг.3) в компьютере 212 (фиг.2).

На этапе 1204 одно или более приглашений может быть принято с помощью выбранного контакта. Например, одно из приглашений может быть принято с помощью службы 326 приглашения (фиг.3) в компьютере 208 (фиг.2). На этапе 1206 выбранный контакт может отвечать на одно или более приглашений. Например, выбранный контакт может использовать пользовательский интерфейс службы 326 приглашения в компьютере 208 для ответа на одно из приглашений.

На этапе 1208 может быть определено, было ли принято приглашение. Например, служба 326 приглашения в компьютере 212 может принимать ответ, посланный на этапе 1206, и содержание ответа может определять, принимается ли приглашение. Если приглашение принимается, процедура может переходить на этап 1210. Иначе процедура может завершить работу.

Этапы 1204, 1206 и 1208 отмечены с помощью пунктирной линии 1212, чтобы выделить возможности для процедурных изменений, когда отвечают на приглашения. Одной причиной для отправления многочисленных приглашений к одной и той же деятельности является то, что присутствие сетевой вычислительной среды 200 (фиг.2) выбранного контакта может охватывать многочисленные конечные точки. Например, пользователь платформы 302 служб взаимодействия (фиг.3) может отсылать три приглашения к одной и той же деятельности от компьютера 212 в компьютеры 216, 206 и 208. Например, компьютер 216 может являться офисным настольным персональным компьютером выбранного контакта, компьютер 206 может являться портативным компьютером выбранного контакта, и компьютер 208 может являться персональным цифровым секретарем (PDA) выбранного контакта. Приглашение может отображаться выбранному контакту в более чем одной конечной точке. Например, выбранный контакт может отклонить или игнорировать приглашение в компьютере 208 (PDA в этом примере), но принять приглашение в компьютере 206 (портативный компьютер). Возможностью является то, что выбранный контакт просто на отвечает на приглашение. Это может привести к ожиданию и к выходу из процедуры.

Другой возможностью для этапов 1212 является то, что пользователь платформы 302 служб взаимодействия (фиг.3) в компьютере 212 (фиг.2) отсылает приглашение к деятельности каждому другому компьютеру 214 и 216 в подсети 218. В этом случае каждый контакт может отвечать параллельно.

Приняв приглашение на этапе 1210 выбранный контакт может присоединиться к ассоциативно связанной конференции для совместной деятельности. Например, конференция может быть хостирована в компьютере 212 (фиг.2) и выбранный контакт может присоединиться к конференции от компьютера 206, используя службу 308 сигнализации (фиг.3) и/или службу 310 деятельности. На этапе 1214 может происходить взаимодействие, включающее деятельность.

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

Фиг.13 отображает примерный сценарий приглашения согласно варианту осуществления изобретения. Первому компьютеру 1302 может быть дано задание инициирования одного или более совместных действий с помощью второго компьютера 1304. Например, компьютеры 1302 и 1304 могут являться любыми из компьютеров 204, 206, 208, 212, 214 или 216 в сетевой вычислительной среде 200 фиг.2. Каждый компьютер 1302 и 1304 может включать в себя компьютерную операционную систему 1306 и 1308. Каждая компьютерная операционная система 1306 и 1308 может включать в себя модуль 1310 и 1312 платформы служб взаимодействия. Компьютерным операционным системам 1302 и 1304 не нужно быть одинаковыми. Модули 1310 и 1312 платформы служб взаимодействия могут находиться в соответствии с платформой 302 служб взаимодействия (фиг.3).

Компьютерные операционные системы 1306 и 1308 могут включать в себя пользовательские интерфейсы 1314 и 1316 (UI) приглашения, например, графические пользовательские интерфейсы (GUI). В варианте осуществления изобретения пользовательские интерфейсы 1314 и 1316 приглашения включены в модули 1310 и 1312 платформы служб взаимодействия соответственно. Компьютеры 1302 и 1304 могут дополнительно включать в себя совместные (взаимодействующие) приложения 1318 и 1320. Хотя отличные от модулей 1310 и 1312 платформы служб взаимодействия в этом примере, в варианте осуществления изобретения приложения 1318 и 1320 взаимодействия могут быть включены в модули 1310 и 1312 платформы служб взаимодействия.

Основной протокол приглашения взаимодействия может включать в себя 3 сообщения: сообщение 1322 приглашения к совместной деятельности, сообщение 1324 ответа о совместной деятельности и сообщение 1326 об отмене приглашения.

Сообщение 1322 приглашения к совместной деятельности может включать в себя идентификатор приглашения, один или более идентификаторов возможности, данные приложений и сообщение. Идентификатор приглашения может однозначно идентифицировать приглашение. Например, идентификатор приглашения может быть глобальным уникальным идентификатором (GUID), как описывается в разделе Структура Guid библиотеки схематических классов. NET, версия 1.1.1 документации в сетевой библиотеке для разработчиков на платформе Microsoft® (MSDN®). Каждый идентификатор возможности может ссылаться на объект возможности, который представляет возможность взаимодействия, необходимую для совместных действий, ассоциативно связанных с приглашением. Например, каждый идентификатор возможности может являться глобально уникальным идентификатором (GUID). Данные приложений могут включать в себя и/или определять данные, которые должны быть переданы приложениям взаимодействия, например, для того, чтобы инициировать совместные действия. Сообщение может являться расширенной текстовой строкой, которая содержит стандартный или пользовательский текст приглашения.

Сообщение 1324 ответа о совместной деятельности может включать в себя идентификатор приглашения, ответное действие на приглашение, ответное сообщение и расширенные ответные данные. Идентификатор приглашения может определять приглашение к совместной деятельности, на которое отвечает сообщение 1324 ответа. Например, идентификатор приглашения может являться GUID, предоставляемого сообщением 1322 приглашения к совместной деятельности. Ответное действие на приглашение может отображать тип ответа. Например, ответ на приглашение может быть одним из: отклонить, принять, игнорировать и ошибка. Ответное сообщение может являться расширенной текстовой строкой, которая содержит стандартный или пользовательский ответный текст. Расширенные ответные данные могут включать в себя любые подходящие дополнительные ответные данные, имеющие отношение к приглашению и/или совместным действиям.

Сообщение 1326 об отмене приглашения может включать в себя идентификатор приглашения, который идентифицирует приглашение, которое отменяет сообщение 1326 об отмене. Например, сообщение 1322 приглашения к совместной деятельности может быть отослано с компьютера 1302 в компьютер 1304 для приглашения пользователя платформы 1312 служб взаимодействия для участия в совместной деятельности с помощью пользователя платформы 1310 служб взаимодействия. В ответ сообщение 1324 ответа о совместной деятельности может быть отослано с компьютера 1304 в компьютер 1302 для отображения, например, принято ли приглашение или отклонено. В варианте осуществления изобретения возможно для пользователя платформы 1310 служб взаимодействия отменять приглашение с помощью отправления сообщения 1326 отмены приглашения с компьютера 1302 в компьютер 1304.

До описания примерных способов приглашения к взаимодействию более подробно полезно описать примерный интерфейс прикладного программирования (API) службы 326 приглашения (фиг.3). Фиг.14 отображает примерный интерфейс прикладного программирования 1400 (API) службы 326 приглашения согласно варианту осуществления изобретения. Служба 1400 API приглашения может включать в себя элемент 1402 приглашения, элемент 1404 создания слушателя (прослушивающей стороны) приглашения, элемент 1406 защищенного отправления приглашения, элемент 1408 незащищенного отправления приглашения, элемент 1410 отмены приглашения, элемент 1412 ответа на приглашение, элемент 1414 получения ответа на приглашение, элемент 1416 возможности регистрации/нерегистрации, элемент 1418 перечисления возможностей и элемент 1420 получения информации о возможности. Хотя каждый элемент интерфейса прикладного программирования 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418 и 1420 может быть включен в интерфейс прикладного программирования службы 326 приглашения (фиг.3), включенной в модуль 1310 и 1312 платформы служб взаимодействия (фиг.13) в каждом компьютере 1302 и 1304, разные из элементов 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418 и 1420 могут использоваться компьютерами 1302 и 1304 в зависимости от того, является ли компьютер 1302, 1304 приглашающим, приглашенным или и тем, и другим.

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

Элемент 1404 создания слушателя приглашения может инициализировать слушателя приглашения в конечной точке взаимодействия, например, компьютерах 1302 и 1304 (фиг.13). Параметры задания интерфейса могут включать в себя идентификатор конечной точки, например адрес Интернет-протокола (IP) или Р2Р одноранговый идентификатор (могут существовать множественные конечные точки на каждый компьютер 1302, 1304), идентификатор порта (могут существовать множественные порты взаимодействия на каждую конечную точку) и идентификатор слушателя приглашения для конфигурирования или удаления слушателя приглашения. Например, операционная система 1308 может использовать элемент 1404 создания слушателя приглашения для создания слушателя приглашения, прослушивающего в стандартном порте приглашения и/или порте служб взаимодействия. Приложение 1320 взаимодействия может использовать элемент 1404 создания слушателя приглашения для создания слушателя приглашения в пользовательском порте приглашения, который выделен для прослушивания приглашений для взаимодействия с приложением 1320 взаимодействия.

Элемент 1406 защищенного отправления приглашения может допускать защищенное отправление сообщений 1322 приглашения (фиг.13). Параметры задания интерфейса могут включать в себя ссылку на экземпляр объекта 402 контакта (фиг.4), ссылку на экземпляр объекта 410 конечной точки, ссылку на сообщение 1322 о приглашении, которое необходимо отослать, ссылку на объект синхронизации потока выполнения, например, событие, которое необходимо передать, как только ответ на приглашение принят, и ссылку на идентификатор приглашения, который необходимо установить с помощью элемента 1406 защищенного отправления приглашения. Сообщение 1322 о приглашении может быть отослано контакту, ассоциативно связанному с упомянутым экземпляром объекта 402 контакта. Если экземпляр объекта 410 конечной точки предусмотрен, сообщение 1322 о приглашении может быть отослано в ассоциативно связанную конечную точку, иначе сообщение 1322 о приглашении может быть отослано в каждую конечную точку в присутствии контакта, ассоциативно связанного с упомянутым экземпляром объекта 402 контакта.

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

Однако пользователь может также решить разрешить незащищенные приглашения при определенных обстоятельствах. Элемент 1408 незащищенного отправления приглашения может быть аналогичен элементу 1406 защищенного отправления приглашения, исключая, что, например, нет требования, что отправитель приглашения и получатель до этого обменивались контактной информацией. Например, элемент 1408 незащищенного отправления приглашения может использоваться для вещания сообщений 1322 о приглашении в каждый компьютер 212, 214 и 216 (фиг.2) в подсети 218. Незащищенные приглашения могут способствовать произвольному взаимодействию и взаимодействию в облегченном социальном окружении, например, играх со многими игроками.

Элемент 1410 отмены приглашения может допускать отправление сообщений 1326 отмены (фиг.13). Параметры спецификации интерфейса могут включать в себя идентификатор приглашения, например, идентификатор приглашения, установленный с помощью элемента 1406 защищенного отправления приглашения элемента 1408 незащищенного отправления приглашения. Ответ на элемент 1412 приглашения может допускать отправление ответного сообщения 1324 (фиг.13). Параметры задания интерфейса могут включать в себя идентификатор приглашения и ответное действие по приглашению.

Каждый элемент 1406 защищенного отправления приглашения и элемент 1408 незащищенного отправления приглашения может иметь синхронные и асинхронные версии. Например, асинхронная версия-вариант может отсылать сообщение 1322 о приглашении (фиг.13) и затем разрешать выполнение дополнительных инструкций в потоке выполнения до проверки ответа на приглашение. Напротив, синхронная версия-вариант может ожидать без выполнения дополнительных инструкций в потоке выполнения, пока ответное сообщение 1324 принимается или имеет место ожидание. Элемент 1414 получения ответа на приглашение может использоваться для проверки и/или ожидания ответа на сообщение 1322 о приглашении, которое было отослано асинхронно. Параметры спецификации интерфейса могут включать в себя идентификатор приглашения и ссылку, которую необходимо установить в сообщении 1324 ответа, когда оно придет. Синхронным версиям элементов 1406 и 1408 отправления приглашения не нужно включать ссылку на объект потока синхронизации.

Служба 1400 приглашения может поддерживать регистрацию возможностей конечной точки. Элемент 1416 возможности регистрации/нерегистрации может допускать регистрацию и отмену регистрации возможностей с помощью службы 1400 приглашения. Параметры задания (спецификации) интерфейса могут включать в себя ссылки на один или более экземпляров объекта 412 возможности (фиг.4) и индикацию того, принадлежит ли возможность или возможности конкретному пользователю конечной точки или всем пользователям конечной точки. Каждый экземпляр объекта 412 возможности может быть ассоциативно связан с идентификатором возможности, например, глобально уникальным идентификатором (GUID). В варианте осуществления изобретения каждая возможность ассоциативно связана с конкретным приложением 1318, 1320 (фиг.3) взаимодействия. Служба 1400 приглашения может включать в себя отдельные элементы интерфейса прикладного программирования для возможности регистрации и возможности нерегистрации.

Элемент 1418 перечисления возможностей может допускать перечисление возможностей, зарегистрированных с помощью службы 1400 приглашения. Параметры задания интерфейса могут включать в себя определение того, должно ли перечисление содержать возможности, ассоциативно связанные с конкретным пользователем конечной точки или всеми пользователями конечной точки. В варианте осуществления изобретения перечисление включает в себя идентификаторы возможности вместо, например, ссылок на экземпляры объекта 412 возможности (фиг.4). Экземпляр объекта 412 возможности может быть затем извлечен с помощью элемента 1420 получения информации о возможности.

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

Фиг.15 отображает примерные этапы для отправления приглашения согласно варианту осуществления изобретения. На этапе 1502 пользовательский интерфейс (UI) группового приглашения может быть активизирован. Например, платформа 302 служб взаимодействия (фиг.3) может активизировать пользовательский интерфейс службы 326 приглашения. На этапе 1504 один или более контактов могут выбираться с помощью пользовательского интерфейса группового приглашения. Например, пользовательский интерфейс службы 326 приглашения может взаимодействовать со службой 304 управления контактами для отображения списка известных контактов пользователя или, например, списка контактов класса партнеров и пользователь может графически выбирать множество контактов из этих отображаемых.

На этапе 1506 деятельность может быть выбрана с помощью пользовательского интерфейса группового приглашения. Например, пользовательский интерфейс службы 326 приглашения (фиг.3) может взаимодействовать со службой 310 деятельности для отображения списка доступных совместных действий или, например, списка популярных или самых последних использованных действий, и пользователь может графически выбирать совместную деятельность из этих отображаемых. На этапе 1508 может определяться, должен ли пользовательский интерфейс группового приглашения отправлять приглашение или, например, должно ли приглашение быть послано из конкретного приложения взаимодействия. Например, определение может зависеть от конфигурируемого параметра службы 326 приглашения. Если определено, что пользовательский интерфейс группового приглашения должен послать приглашение, тогда процедура может переходить на этап 1510. Иначе процедура может переходить на этап 1512.

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

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

На этапе 1514 приглашение может быть отослано с помощью интерфейса прикладного программирования службы 1400 приглашения (фиг.14), например, с помощью элемента 1406 защищенного отправления приглашения или элемента 1408 незащищенного отправления приглашения, как описано выше. Хотя один и тот же элемент 1406, 1408 интерфейса прикладного программирования может использоваться для отправления приглашения, когда процедура переходит от этапа 1510 к этапу 1514, элемент 1406, 1408 активизируется с помощью пользовательского интерфейса группового приглашения, в то время, когда процедура переходит от этапа 1516 к этапу 1514, элемент 1406, 1408 активизируется с помощью приложения взаимодействия. Как следствие, параметры задания интерфейса, переданные элементу 1406, 1408, могут различаться.

Процедура, начинающаяся на этапе 1502, описывает один "из групповых" сценариев, так как используется пользовательский интерфейс группового приглашения. Напротив, этап 1518 начинается "с конкретного" сценария. На этапе 1518 может быть запущено приложение взаимодействия. Например, приложение 1318 (фиг.13) может быть запущено обычным способом с помощью компьютерной операционной системы 1306. Этап 1518 является непременным условием для этапа 1520, и совсем немного времени может пройти между этапами 1518 и 1520.

На этапе 1520 один или более контактов могут быть выбраны с помощью пользовательского интерфейса приложения 1318 взаимодействия (фиг.13). Например, приложение 1318 взаимодействия может взаимодействовать со службой 304 управления контактами (фиг.3) платформы 1310 служб взаимодействия для отображения списка известных контактов пользователя приложения или, например, списка контактов класса партнеров, и пользователь приложения может выбирать множество контактов из этих отображаемых. В противоположность переходу от этапа 1504 выбор совместной деятельности не является необходимым, и процедура может переходить к этапу 1514. Приложение 1318 взаимодействия может определять совместную деятельность. Однако в варианте осуществления изобретения приложение 1318 взаимодействия может поддерживать многочисленные действия, в случае которых эквивалент этапа 1506 может быть подходящим. На этапе 1514 элемент 1406 или 1408 отправления приглашения (фиг.14) может быть вызван с помощью приложения 1318 взаимодействия.

Фиг.16 отображает примерные этапы, выполняемые с помощью службы 1400 приглашения (этап 14) для отправления приглашения согласно варианту осуществления изобретения. На этапе 1602 выбирается следующий подходящий контакт. Например, подходящий контакт может выбираться среди множества, выбранного на этапе 1504 или 1520 фиг.15.

На этапе 1604 может быть определено, известны ли конечные точки подходящего контакта. Например, объект 404 присутствия (фиг.4), на который ссылаются с помощью объекта 402 контакта, представляющего подходящий контакт, может быть запрошен о своем наборе объектов 410 конечной точки. Если не известны конечные точки подходящего контакта (например, результатом запроса является пустой набор), процедура может переходить к этапу 1606. Если конечные точки подходящего контакта известны, процедура может переходить к этапу 1608. На этапе 1606 могут быть определены местоположения конечных точек для подходящего контакта. Например, служба 326 приглашения (фиг.3) может взаимодействовать со службой 322 определения местоположения контактов для определения множества действительных конечных точек для подходящего контакта.

На этапе 1608 подходящая конечная точка может быть выбрана среди известных конечных точек для подходящего контакта. На этапе 1610 соединение передачи данных может быть создано с подходящей конечной точкой. Например, соединение может быть создано с помощью службы 316 связности (фиг.3). На этапе 1612 приглашение может быть послано в подходящую конечную точку, например, с помощью сообщения 1322 приглашения (фиг.13).

На этапе 1614 может быть определено, существует ли больше подходящих конечных точек. Если существует больше подходящих конечных точек, процедура может возвращаться на этап 1608 для выбора следующей подходящей конечной точки. Иначе процедура может переходить к этапу 1616. На этапе 1616 может быть определено, существует ли больше подходящих контактов. Если существует больше подходящих контактов, процедура может возвращаться на этап 1602 для выбора следующего подходящего контакта. Иначе приглашение может считаться отосланным.

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

На этапе 1702 приглашение к взаимодействию может быть принято в стандартном порте связи платформы 302 служб взаимодействия (фиг.3). Например, сообщение 1322 о приглашении (фиг.13) может прибыть в порт TCP/IP, зарезервированный для платформы 302 служб взаимодействия и контролируемый с помощью службы 326 приглашения.

На этапе 1704 может быть определено, допускает ли конечная точка участие в деятельности, ассоциативно связанной с приглашением. Например, служба 326 приглашения (фиг.3) может сравнивать идентификатор(ы) возможности в сообщении 1322 о приглашении (фиг.13) с возможностями, которые стали зарегистрированными с помощью службы 328 приглашения. Альтернативно, объект 406 MeContact (фиг.4), ассоциативно связанный с пользователем конечной точки, может быть запрошен об ассоциативно связанном с ним наборе объектов 412 возможностей, и они могут сравниваться с идентификатором(и) возможности в сообщении 1322 о приглашении. Если определяется, что конечная точка допускает участие в деятельности, ассоциативно связанной с приглашением, тогда процедура может переходить к этапу 1706. Иначе процедура может переходить к этапу 1708.

На этапе 1706 пользователь может принять, отклонить или проигнорировать приглашение. Например, служба 326 приглашения (фиг.3) может отображать пользовательский интерфейс группового приглашения, который имеет элементы пользовательского интерфейса, соответствующие решениям: принять, отклонить или проигнорировать. Пользователь может принять, отклонить или проигнорировать приглашение с помощью выбора соответствующего элемента пользовательского интерфейса. Если пользователь принимает приглашение, процедура может переходить к этапу 1710. Если пользователь отклоняет приглашение, процедура может переходить к этапу 1708. Если пользователь игнорирует приглашение, процедура может переходить к этапу 1712.

На этапе 1708 ответное сообщение 1324 (фиг.13) может быть отослано, отображая, что приглашение отклоняется. Например, ответное сообщение 1324 может быть отослано с помощью элемента 1412 ответа на приглашение (фиг.14) службы 1400 приглашения интерфейса прикладного программирования. Аналогично, на этапе 1712 ответное сообщение 1324 может быть отослано, отображая, что пользователь выбирает игнорирование приглашения. Элемент 1412 приглашения может также использоваться для отправления этого ответа. В варианте осуществления изобретения способность отправления явного ответа игнорирования улучшает эффективность платформы 302 служб взаимодействия (фиг.3).

На этапе 1710 подробности принятого приглашения могут храниться для извлечения с помощью приложения 1320 взаимодействия (фиг.13), ассоциативно связанного с совместной деятельностью. Например, часть или все из содержимого сообщения 1322 о приглашении может сохраняться с помощью службы 326 приглашения (фиг.3) с помощью элемента 1402 приглашения (фиг.14) интерфейса прикладного программирования. На этапе 1714 приложение 1320 взаимодействия может быть запущено с помощью службы 326 приглашения.

На этапе 1716 ответное сообщение 1324 (фиг.13), которое отображает принятие приглашение, может быть отослано, например, используя элемент 1412 ответа на приглашение (фиг.14) службы 1400 приглашения интерфейса прикладного программирования. При переходе от этапа 1716 к этапу 1718 управление выполнением может переходить к приложению 1320 взаимодействия, запущенному на этапе 1714. Альтернативно, приложение 1320 взаимодействия может быть запущено в параллельном потоке выполнения, потоки при необходимости синхронизируются, и поток службы приглашения, которая приняла приглашение на этапе 1702, может выйти после ответа на этапе 1716.

На этапе 1718 приложение 1320 взаимодействия (фиг.13) может считывать подробности приглашения, сохраняемые на этапе 1710. Например, сохраняемые подробности приглашения могут вылиться в некоторую (пере)конфигурацию приложения 1320 взаимодействия. С этой точки зрения приложение 1320 взаимодействия может быть готово начать участие в совместной деятельности, и на этапе 1720 участие в совместной деятельности может начаться.

Фиг.18 отображает примерные этапы для ответа на приглашение к взаимодействию от конкретного прикладного пользовательского интерфейса согласно варианту осуществления изобретения. На этапе 1802 приложение взаимодействия может быть запущено. Например, приложение 1320 взаимодействия (фиг.13) может быть запущено обычным способом с помощью компьютерной операционной системы 1304. На этапе 1804 приложение 1320 взаимодействия может создать слушателя приглашения по нестандартному специфическому для приложения порту передачи данных взаимодействия. Например, приложение 1320 взаимодействия может использовать элемент 1404 создания слушателя приглашения (фиг.14) интерфейса прикладного программирования службы 1400 приглашения для создания слушателя приглашения на порте TCP/IP, отличном от порта, зарезервированного для платформы 302 служб взаимодействия (фиг.3).

Через некоторое время на этапе 1806 приглашение к взаимодействию может быть принято в нестандартном порте. Например, сообщение 1322 о приглашении (фиг.13), отосланное на этапе 1514 (фиг.15), может быть послано в конкретный порт приложения и/или конечную точку. На этапе 1808 пользователь приложения 1320 взаимодействия может принять, отклонить или явно проигнорировать приглашение. Например, приложение 1320 взаимодействия может отображать пользовательский интерфейс, который имеет элементы пользовательского интерфейса, соответствующие решениям: принять, отклонить и проигнорировать. Пользователь может затем выбрать желаемый ответ с помощью выбора соответствующего элемента пользовательского интерфейса. Если пользователь принимает приглашение, процедура может переходить к этапу 1810. Если пользователь отклоняет приглашение, процедура может переходить к этапу 1812. Если пользователь явно игнорирует приглашение, процедура может переходить к этапу 1814.

На каждом из этапов 1810, 1812 и 1814 соответствующий ответ на приглашение может быть послан приглашающему. Каждый этап 1810, 1812 и 1814 может, например, использовать ответ на элемент 1412 приглашения (фиг.14) службы 1400 приглашения для отправления ответного сообщения 1324 (фиг.13) с помощью ответного действия на приглашение, установленного принимать, отклонять или, соответственно, игнорировать. Так как желаемое приложение 1320 взаимодействия (фиг.13) уже запущено, тогда, если приглашение было принято, совместная деятельность может начаться без дополнительной задержки на этапе 1816.

Примерные способы для публикации совместного присутствия ниже описываются более подробно. В частности, бессерверная публикация присутствия, то есть способность публиковать информацию о совместном присутствии, независимую от необходимости в выделенных серверных компьютерах, является преимущественной в варианте осуществления изобретения. Например, бессерверные сетевые вычислительные среды, одноранговые сети или перекрывающиеся сети могут предусматривать лучшую масштабируемость, чем сети и сетевые приложения, требующие выделенных серверных компьютеров. Сетевая вычислительная среда 200 (фиг.2) может поддерживать одноранговую или перекрывающуюся сеть. Каждый из компьютеров 204, 206, 208, 212, 214 и 216 может поддерживать один или более одноранговых узлов одноранговой сети. Каждый одноранговый узел сети может являться конечной точкой взаимодействия и быть ассоциативно связан с экземпляром объекта 410 конечной точки (фиг.4).

Как описано выше, совместное присутствие может быть представлено с помощью объекта 404 присутствия (фиг.4). Любая подходящая часть, включая все, из объекта 404 присутствия может быть опубликована пользователям платформы 302 служб взаимодействия (фиг.3). Кроме того, ссылка на экземпляры программного объекта с помощью экземпляра объекта 404 присутствия может быть опубликована, включая объекты 410 конечной точки, объекты 412 возможности и другие групповые опубликованные объекты 418.

В варианте осуществления изобретения, однако, публикация в один момент времени обычно не достаточна. Информация о присутствии может измениться. Например, опубликованные объекты 418 могут быть обновлены с помощью приложений взаимодействия, объединенный статус и/или статус присутствия, ассоциативно связанный с конкретной конечной точкой, могут измениться в течение дня, конечные точки могут быть добавлены или удалены из присутствия конкретного контакта, например, с помощью сетевого беспроводного устройства, которое включается и выключается или передвигается в и из зоны действия беспроводной сети, возможности конечной точки могут измениться, так как устанавливаются новые приложения взаимодействия. Эффективное взаимодействие может потребовать постоянно обновляемой информации о присутствии. В варианте осуществления изобретения информация о совместном присутствии распределяется в бессерверной сетевой вычислительной среде, например, сетевой вычислительной среде 200 (фиг.2), с подпиской о присутствии и сообщениями об уведомлении присутствия.

Фиг.19 отображает примерные этапы для участия в бессерверной публикации присутствия согласно варианту осуществления изобретения. На этапе 1902 пользователь компьютера может аутентифицироваться с помощью операционной системы (ОС) компьютера. Например, пользователь может войти в систему в одном из компьютеров 204, 206, 208, 212, 214 или 216 (фиг.2) сетевой вычислительной среды 200. Подходящие компьютерные операционные системы включают в себя компьютерные операционные системы, способные поддерживать платформу 302 служб взаимодействия (фиг.3), например, любую подходящую версию компьютерных операционных систем "MICROSOFT WINDOWS" или "UNIX". Аутентификация с помощью компьютерной операционной системы может создать распознаваемую компьютером подлинность для пользователя компьютера и, в частности, может ассоциативно связывать пользователя компьютера с экземпляром объекта 406 MeContact (фиг.4).

На этапе 1904 передачи данных с помощью службы 306 публикации (фиг.3) платформы 302 служб взаимодействия могут быть запущены. Как описано выше, служба 306 публикации может быть бессерверной. Например, на этапе 1904 пользователь компьютера может присоединиться к одноранговой (P2P) сети, включающей службу 306 публикации. На этапе 1906 часть или все данные, содержащиеся и/или на которые ссылаются объектом 406 MeContact (фиг.4), ассоциативно связанным с пользователем компьютера, могут быть опубликованы в службе 306 публикации, например, с помощью одного или более сообщений об уведомлении присутствия, таким образом, создавая совместное присутствие пользователя компьютера и платформы 302 служб взаимодействия.

На этапе 1908 передачи данных могут быть запущены с помощью хранилища 318 контактов (фиг.3). Например, хранилище контактов может являться обычным хранилищем, например, базой данных, и запуск передач данных с помощью памяти 318 контактов может включать в себя создание сеанса передачи данных с помощью хранилища данных. На этапе 1910 хранилище 318 контактов может быть запрошено о контактах пользователя класса партнеров. В варианте осуществления изобретения запрос хранилища 318 контактов включает в себя удаление одной или более ссылок на объекты 402 контакта (фиг.4), включенной в элемент 904 партнеров (фиг.9) объекта 406 MeContact.

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

Фиг.20 отображает примерные этапы для размещения подписок о присутствии согласно варианту осуществления изобретения. Например, этапы, отображенные с помощью фиг.20, могут выполняться как часть этапа 1912 (фиг.19). Множество контактов класса партнеров, к которым должны быть размещены подписки, может быть доступным, например, от этапа 1914 или подобного. На этапе 2002 следующий подходящий контакт класса партнеров может быть выбран из набора.

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

Поиск может быть неудачным. Например, контакт класса партнеров может не иметь ассоциативно связанной конечной точки в одноранговой сети и/или сегменте локальной сети. На этапе 2006 может быть определено, был ли найден контакт класса партнеров. Например, одноранговый протокол разрешения имени может успешно устранять имя контакта класса партнеров в ассоциативно связанной конечной точке взаимодействия (например, одноранговом узле сети) в одноранговой сети или ответ может быть принят на вещание сообщения в сегменте локальной сети, определяя ассоциативно связанную конечную точку (например, адрес TCP/IP и номер порта передачи данных) для контакта класса партнеров. Если контакт класса партнеров найден, процедура может переходить к этапу 2008. Иначе можно предположить, что отсутствие является временным, например, так как контакт классифицируется как партнерский и процедура может переходить к этапу 2010.

Так как классификация в качестве партнерского может нести предположение, что контакт является обычным активным участником взаимодействия, в варианте осуществления изобретения периодический поиск для отсутствующих контактов класса партнеров улучшает эффективность платформы 302 служб взаимодействия (фиг.3), чтобы являться полномочным признаком, несмотря на увеличенную потребность в вычислительных и сетевых ресурсах. Процедура может ожидать на этапе 2010 между поисками. Например, период между поисками может быть 10 минут. Этап 2010 окружен с помощью пунктирной линии 2012 для отображения, что ожидание и возможные последовательные этапы могут происходить в отдельном потоке выполнения. После реализации отдельного потока выполнения для этапа 2010 ожидания основной поток выполнения может переходить к этапу 2014.

Найдя контакт класса партнеров, на этапе 2008 сообщение подписки о присутствии может быть отослано в конечную точку, ассоциативно связанную с контактом, например, конечную точку, найденную на этапе 2004. Сообщение подписки о присутствии может задать подписку на часть или всю информацию о совместном присутствии, ассоциативно связанной с контактом. Например, сообщение подписки о присутствии может задавать подписку на информацию присутствия, доступную по одному или более элементу 602 описания текста с расширенным форматом (фиг.6), элементу 604 конечных точек, элементу 606 объединенного статуса, элементу 608 объединенных возможностей и элементу 610 опубликованных объектов интерфейса прикладного программирования объекта 600 присутствия. Сообщения об уведомлении присутствия, посланные в ответ на подписку, например, на этапе 1914 (фиг.19), нужно лишь отослать, когда часть присутствия изменяется, которая охватывается подпиской, и нужно лишь включать часть информации о присутствии, которая изменилась.

На этапе 2014 может определяться, существует больше контактов класса партнеров во множестве контактов класса партнеров. Если существует больше подобных контактов, тогда процедура может возвращаться на этап 2002 для выбора следующего контакта из множества. Иначе процедура может продолжаться на дополнительных этапах, например, этапе 1914 фиг.19 и/или этапе 2102 фиг.21.

Фиг.21 отображает примерные этапы для принятия подписок присутствия согласно варианту осуществления изобретения. На этапе 2102 сообщение подписки о присутствии может быть принято. Например, это может быть сообщение подписки о присутствии, посланное на этапе 2008 (фиг.20). На этапе 2104 контактная информация, ассоциативно связанная с отправителем сообщения подписки о присутствии, может быть извлечена. Например, сообщение подписки о присутствии может ссылаться на экземпляр объекта 402 контакта (фиг.4), ассоциативно связанный с отправителем. Принимающий сообщение подписки о присутствии может извлекать контактную информацию отправителя с помощью службы 304 управления контактами (фиг.3).

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

Примеры простых политик подписки включает в себя: запрещение и разрешение. То есть запросы на запрещение подписки от контакта или запросы на разрешение подписки от контакта. В варианте осуществления изобретения политика подписки для отправителя определяется с помощью множества экземпляров объекта 402 контакта (фиг.4), на которые ссылаются с помощью элемента 906 авторизованных подписчиков (фиг.9) экземпляра объекта 406 MeContact, ассоциативно связанного с принимающим. Если экземпляр объекта 402 контакта, ассоциативно связанный с отправителем, находится в наборе, на который ссылаются с помощью элемента 906 авторизованных подписчиков, тогда отправитель разрешается, иначе отправитель запрещается.

В варианте осуществления изобретения возможны более сложные политики подписки. Например, более сложные политики подписки могут запрещать и/или разрешать подписку одному или более поднаборам информации о присутствии подписчика. Предоставление подписки объединенному статусу 606 (фиг.6) и описание 602 расширенным текстом объекта 600 присутствия и запрещение подписки в других элементах 604, 608, 610 объекта присутствия является одним возможным примером. Любой подходящий набор, включая все из элементов 602, 604, 606, 608 и 610 объекта присутствия и/или программные объекты 410, 412, 418, на которые ссылаются с помощью элементов 602, 604, 606, 608 и 610 объекта присутствия, может являться задачей политики подписки и/или подпиской.

Если политика подписки принята для отправителя сообщения подписки, процедура может переходить к этапу 2108. Иначе процедура может переходить к этапу 2110. На этапе 2110 пользователь платформы 302 служб взаимодействия (фиг.3), ассоциативно связанной с совместным присутствием, которое является задачей подписки, может быть запрошен о политике подписки относительно отправителя сообщения подписки о присутствии. Например, служба 306 публикации может представлять пользовательский интерфейс (например, графический пользовательский интерфейс или GUI), который отображает контактную информацию, ассоциативно связанную с отправителем и вариантами выбора политики подписки, например, запрещать и разрешать. Пользователь может затем выбирать политику подписки для отправителя с помощью пользовательского интерфейса.

На этапе 2112 политика подписки, выбираемая пользователем, может быть установлена для отправителя. Например, политика подписки может быть ассоциативно связана с отправителем посредством службы 304 управления контактами (фиг.3) платформы 302 служб взаимодействия, или ссылка на экземпляр объекта 402 контакта (фиг.4), ассоциативно связанный с отправителем, может быть добавлена к множеству ссылок, поддерживаемых элементом 906 авторизованных подписчиков (фиг.9) экземпляра объекта 406 MeContact, ассоциативно связанного с принимающим. На этапе 2108 с помощью политики подписки в отношении созданного отправителя может быть определено, должна ли эта политика подписки запрещать (блокировать) подписки. Если политика подписки должна запрещать подписки от отправителя, тогда процедура может переходить к этапу 2114. Иначе процедура может переходить к этапу 2116.

На этапе 2116 подписка совместного присутствия может быть принята. Например, подписка, заданная с помощью сообщения подписки о присутствии, может быть ассоциативно связана с объектом 406 MeContact, ассоциативно связанным с принимающим посредством службы 304 управления контактами (фиг.3). В варианте осуществления изобретения подписка, заданная сообщением подписки о присутствии, принимается с помощью добавления экземпляра объекта 402 контакта (фиг.4), ассоциативно связанного с отправителем, в набор экземпляров объекта 402 контакта, на которые ссылаются с помощью элемента 908 активных подписчиков (фиг.9) экземпляра объекта 406 MeContact, ассоциативно связанного с принимающим. Когда подписки являются более сложными, чем разрешать и запрещать, подписка, задаваемая сообщением подписки о присутствии, может фильтроваться в отношении политики подписки, ассоциативно связанной с отправителем, до того, как быть принятой. Например, если подписка должна быть для всех об информации о присутствии, но политика подписки ограничивает подписку на объединенный статус, тогда принятая подписка должна быть лишь на объединенный статус. Вместе этапы 2108 и 2116 могут гарантировать, что подписка принимается согласно политике подписки.

На этапе 2114 может быть определено, является ли отправитель сообщения подписки о присутствии контактом класса партнеров принимающего. Например, набор экземпляров объекта 402 контакта (фиг.4), на которые ссылаются с помощью элемента 904 партнеров (фиг.9) объекта 900 MeContact, ассоциативно связанного с принимающим, может быть проверен на экземпляр объекта 402 контакта, ассоциативно связанного с отправителем сообщения подписки о присутствии. Служба 306 публикации (фиг.3) может определять, является ли отправитель сообщения подписки о присутствии контактом класса партнеров принимающего с помощью службы 304 управления контактами. Если отправитель сообщения подписки о присутствии является контактом класса партнеров принимающего, тогда процедура может переходить к этапу 2118. Иначе процедура может переходить к этапу 2120.

Определив, что отправитель сообщения подписки о присутствии является контактом класса партнеров принимающего, на этапе 2118 может быть определено, подписан ли на присутствие отправителя в настоящий момент принимающий сообщение подписки о присутствии. Например, интерфейс прикладного программирования службы 306 публикации (фиг.3) может иметь пронумерованный элемент подписок, допускающий подсчет множества подписок, размещенных с помощью заданного контакта, и набор подписок может быть проверен на подписку, размещенную на присутствие отправителя. Альтернативно или кроме того, контактная информация, на которую ссылаются с помощью элемента 904 партнеров (фиг.9) экземпляра объекта 406 MeContact (фиг.4), ассоциативно связанного с принимающим, может включать в себя индикацию для каждого контакта класса партнеров, принята ли подписка о присутствии этим контактом.

Если определяется, что принимающий сообщение подписки о присутствии в настоящий момент подписан на присутствие отправителя, тогда процедура может переходить к этапу 2120. Иначе принимающий может подписываться на присутствие отправителя на этапе 2122. Например, может быть так, что принимающий сообщение подписки о присутствии ранее выполнил этапы, описанные выше со ссылкой на фиг.20, выполняя поиск отправителя, но что отправитель не был в режиме ONLINE и принимающий ожидает на этапе 2010 (фиг.20) до нового поиска. Теперь отправитель находится в режиме ONLINE и отослал сообщения подписки о присутствии. Вместо того, чтобы продолжать ожидание и затем затрачивать вычислительные и сетевые ресурсы, которые заново ищут отправителя, в варианте осуществления изобретения принимающий может отвечать на сообщение подписки о присутствии из контакта класса партнеров с помощью обратного сообщения подписки о присутствии. На этапе 2122 обратное сообщение подписки о присутствии может быть отослано контакту класса партнеров, как описано выше для этапа 2008 (фиг.20).

На этапе 2120 одно или более сообщений уведомления может быть отослано отправителю сообщения подписки о присутствии согласно подписке о присутствии, принятой на этапе 2116. Первоначальное сообщение уведомления о присутствии может содержать всю информацию о присутствии, которая соответствует принятой подписке или, например, множеству различий присутствия по сравнению с информацией о присутствии, о которой известно, что принимающий уже обладает ею. После первоначального сообщения уведомления о присутствии дополнительные сообщения уведомления о присутствии могут быть отосланы для уведомления подписчиков совместных обновлений о присутствии. Например, после одного или более обновлений в совместном присутствии пользователя конкретной платформы 302 служб взаимодействия (фиг.3) одно или более сообщений уведомления о присутствии может быть послано службе 306 публикации (фиг.3). Для каждой подписки в присутствии пользователя служба 306 публикации может определять, соответствуют ли подписке один или более поднаборов информации о присутствии, на который ссылаются с помощью сообщения уведомления о присутствии. Для каждой соответствующей подписки служба 306 публикации может распространять сообщение уведомления о присутствии пользователю платформы 302 служб взаимодействия, который разместил подписку.

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

Использование терминов (артиклей) "a" и "an" и "the" и аналогичных объектам ссылки в контексте описания изобретения (особенно в контексте последующей формулы изобретения) должны толковаться для охвата и единственного, и множественного числа, если иное не указано в настоящем документе или ясно не опровергается контекстом. Термины "содержащий", "имеющий", "включающий в себя" и "охватывающий" должны толковаться как термины с открытыми окончаниями (т.е. обозначающие "включающий в себя, но не ограниченный"), пока не отмечено иное. Перечисление интервалов значений в данном документе более подразумевается, чтобы служить в качестве краткого способа отдельной ссылки на каждое отдельное значение, попадающее в интервал, пока не указано иное в данном документе и каждое отдельное значение включено в описание, как если бы оно отдельно цитировалось в данном документе. Все способы, описанные в данном документе, могут быть выполнены в любом соответствующем порядке, пока иное не указано в данном документе или иное ясно не опровергается контекстом. Использование любого и всех примеров или примерного языка (т.е. "например"), предусмотренное в данном документе, более подразумевается для лучшего разъяснения изобретения и не предлагает ограничение объема изобретения, если не утверждается иное. Никакой язык в спецификации не должен толковаться как указывающий на любой не заявленный элемент как необходимый для практического использования изобретения.

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

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

2. Носитель по п.1, в котором пользовательский интерфейс приглашения является графическим пользовательским интерфейсом службы приглашения.

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

4. Носитель по п.1, дополнительно содержащий хранение подробностей приглашения для извлечения приложением взаимодействия.

5. Носитель по п.1, в котором отправление приглашения содержит отправление приглашения с помощью элемента отправления приглашения интерфейса прикладного программирования службы приглашения.

6. Носитель по п.5, в котором интерфейс прикладного программирования службы приглашения содержит:
элемент отправления приглашения;
ответ на элемент приглашения для ответа на приглашение; и элемент отмены приглашения для отмены приглашения.

7. Носитель по п.1, в котором отправление приглашения содержит для каждого из упомянутых по меньшей мере одного контакта:
определение набора конечных точек для контакта; и
для каждой конечной точки в наборе конечных точек, по меньшей мере:
создание соединения передачи данных с конечной точкой; и
отправление приглашения конечной точке по упомянутому соединению
передачи данных.

8. Носитель по п.7, в котором:
представление каждого контакта включает в себя экземпляр программного объекта контакта, который ссылается на набор экземпляров программного объекта конечной точки; и определение набора конечных точек для контакта содержит:
запрос экземпляра программного объекта контакта, соответствующей контакту, о наборе экземпляров программного объекта конечной точки; и если множество экземпляров программного объекта конечной точки является пустым, определение набора конечных точек для контакта с помощью службы расположения контакта.

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

10. Носитель по п.9, в котором:
приглашение принимается в конечной точке платформы служб взаимодействия; и
инструкции дополнительно содержат определение, способна ли конечная точка участвовать в совместной деятельности.

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

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

13. Носитель по п.12, дополнительно содержащий:
запуск приложения взаимодействия; и
создание слушателя приглашения на нестандартном порте связи для
приложения взаимодействия.

14. Носитель по п.9, в котором отправление ответа отправителю приглашения содержит отправление ответа с ответом на элемент приглашения интерфейса прикладного программирования службы приглашения.

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

16. Носитель по п.15, в котором данные приглашения содержат:
идентификатор приглашения; и по меньшей мере один идентификатор возможности.

17. Носитель по п.15, в котором:
элемент отправления приглашения содержит элемент защищенного отправления приглашения для защищенного отправления приглашения; и
интерфейс прикладного программирования дополнительно содержит элемент незащищенного отправления приглашения для незащищенного отправления приглашения.

18. Носитель по п.15, в котором:
элемент отправления приглашения содержит элемент асинхронного отправления приглашения для асинхронного отправления приглашения; и интерфейс прикладного программирования дополнительно содержит элемент синхронного отправления приглашения для синхронного отправления приглашения.

19. Носитель по п.15, дополнительно содержащий элемент создания слушателя приглашения для инициализации слушателя приглашения в конечной точке взаимодействия.

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



 

Похожие патенты:

Изобретение относится к распределенным вычислительным системам. .

Изобретение относится к вычислительной технике и предназначено для решения задач обработки двухмерных и трехмерных изображений. .

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

Изобретение относится к представлению приложения удаленной терминальной службой (TS). .

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

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

Изобретение относится к области вещания медиаконтента в сети, в частности к системе приема и системе условного доступа для нее. .

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

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

Изобретение относится к локальным сетям. .

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

Изобретение относится к способам и системам для разгрузки обработки I/O из первого компьютера во второй компьютер с помощью обеспечиваемого посредством RDMA сетевого межсоединения

Изобретение относится к области вычислительной техники и предназначено для моделирования задач при проектировании вычислительных систем (ВС)

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

Изобретение относится к системам для получения и установки обновлений, используя среду одноранговой сети

Изобретение относится к системам сбора и обработки информации для интегрированных систем безопасности объекта

Изобретение относится к связи и вычислительной технике и может быть использовано в системах коммутации для построения коммутационных полей АТС, сетей ЭВМ, микропроцессорных систем и т.п

Изобретение относится к вычислительной технике

Изобретение относится к вычислительной технике, а именно к устройствам создания различных модулей управления перегруженностью (ССМ)
Наверх