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

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

Info

Publication number
RU2385487C2
RU2385487C2 RU2007139520/09A RU2007139520A RU2385487C2 RU 2385487 C2 RU2385487 C2 RU 2385487C2 RU 2007139520/09 A RU2007139520/09 A RU 2007139520/09A RU 2007139520 A RU2007139520 A RU 2007139520A RU 2385487 C2 RU2385487 C2 RU 2385487C2
Authority
RU
Russia
Prior art keywords
invitation
service
interaction
contact
sending
Prior art date
Application number
RU2007139520/09A
Other languages
English (en)
Other versions
RU2007139520A (ru
Inventor
Тодд Р. МЭНИОН (US)
Тодд Р. МЭНИОН
Дэвид Г. ТЭЙЛЕР (US)
Дэвид Г. ТЭЙЛЕР
Рохит ГУПТА (US)
Рохит ГУПТА
Сандип К. СИНГХАЛ (US)
Сандип К. СИНГХАЛ
Рави Т. РАО (US)
Рави Т. РАО
Томер ВАЙСБЕРГ (US)
Томер ВАЙСБЕРГ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2007139520A publication Critical patent/RU2007139520A/ru
Application granted granted Critical
Publication of RU2385487C2 publication Critical patent/RU2385487C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Credit Cards Or The Like (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

Изобретение относится к сетевым вычислительным средам. Техническим результатом является облегчение взаимодействия в сетевых вычислительных средах. Архитектура (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 ил.

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Это изобретение в целом относится к сетевым вычислительным средам и более конкретно к облегченному взаимодействию в сетевых вычислительных средах.
УРОВЕНЬ ТЕХНИКИ
Сетевые вычислительные среды стали общими характеристиками рабочего места и даже дома. Эти среды облегчают множество режимов передачи данных, включая электронную почту, мгновенный обмен сообщениями, серверы мультимедийных документов, группы обсуждений, а также потоковый звук и видео, иммерсивные интерактивные среды восприятия «с погружением». Традиционные программные приложения начали извлекать выгоду из этих расширенных режимов передачи данных, но каждая имеет ограничение и/или недостатки, когда рассматривается с точки зрения интегрированной и расширяемой компьютеризированной платформы взаимодействия.
Некоторые традиционные компьютерные программные приложения предоставляют аспекты совместных служб, но им не удается предоставлять эффективный доступ взаимодействующим сторонам. Неудобный и/или ограниченный доступ к взаимодействующим сторонам может представлять собой барьеры к началу взаимодействия, предотвращая использование других функциональных инструментов взаимодействия. Аспект неэффективного доступа к взаимодействующим сторонам является недостатком некоторых традиционных программных приложений для эффективного определения текущего физического и/или виртуального местоположения. Другим аспектом является неспособность некоторых традиционных программных приложений эффективно определять совместимость в отношении функциональных возможностей взаимодействия.
Помимо недостаточночти в функциональных возможностях конкретных версий традиционных программных приложений, которые предоставляют аспекты служб взаимодействия, некоторым традиционным программным приложениям не удается предоставить расширяемую платформу, схему и/или архитектуру взаимодействия.
Это не является незначительным недостатком. Эффективная архитектура может существовать много лет и быть встроена в сетевые вычислительные среды с миллионами узлов. Недостатки расширяемости, гибкости, удобства эксплуатации и/или масштабируемости созданной архитектуры могут являться намного более существенной проблемой, чем для единственной версии программного продукта.
КРАТКАЯ СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Эта часть представляет упрощенную сущность некоторых вариантов осуществления изобретения. Эта сущность не является расширенной точкой зрения изобретения. Не подразумевается определять ключевые/критические элементы изобретения или очертить объем изобретения. Ее единственной целью является представление некоторых вариантов осуществления изобретения в упрощенной форме как вступление к более подробному описанию, которое представлено позже.
В варианте осуществления изобретения один или более контактов могут быть выбраны с пользовательским интерфейсом приглашения, например, графический пользовательский интерфейс (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" и аналогичных объектам ссылки в контексте описания изобретения (особенно в контексте последующей формулы изобретения) должны толковаться для охвата и единственного, и множественного числа, если иное не указано в настоящем документе или ясно не опровергается контекстом. Термины "содержащий", "имеющий", "включающий в себя" и "охватывающий" должны толковаться как термины с открытыми окончаниями (т.е. обозначающие "включающий в себя, но не ограниченный"), пока не отмечено иное. Перечисление интервалов значений в данном документе более подразумевается, чтобы служить в качестве краткого способа отдельной ссылки на каждое отдельное значение, попадающее в интервал, пока не указано иное в данном документе и каждое отдельное значение включено в описание, как если бы оно отдельно цитировалось в данном документе. Все способы, описанные в данном документе, могут быть выполнены в любом соответствующем порядке, пока иное не указано в данном документе или иное ясно не опровергается контекстом. Использование любого и всех примеров или примерного языка (т.е. "например"), предусмотренное в данном документе, более подразумевается для лучшего разъяснения изобретения и не предлагает ограничение объема изобретения, если не утверждается иное. Никакой язык в спецификации не должен толковаться как указывающий на любой не заявленный элемент как необходимый для практического использования изобретения.
Предпочтительные варианты осуществления этого изобретения описаны в данном документе, которые включают в себя лучший вариант, известный изобретателям для осуществления изобретения. Изменения этих предпочтительных вариантов осуществления могут стать очевидными этим обычным специалистам в данной области техники при прочтении вышеизложенного описания. Изобретатели ожидают, что опытные специалисты будут использовать подобные изменения как подходящие и изобретатели намерены практически использовать изобретение иначе, чем описано конкретно в этом документе. Соответственно, это изобретение включает в себя все модификации и эквиваленты объекта, изложенные в формуле изобретения, прилагаемой к данному документу, как разрешено применяемым законом. Более того, любое сочетание вышеописанных элементов во всех возможных вариантах охвачено изобретением, если иное не указано в данном документе или иное ясно не опровергается контекстом.

Claims (20)

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, дополнительно содержащий:
элемент регистрации возможности для регистрации совместных возможностей с помощью службы приглашения к взаимодействию;
элемент незарегистрированной возможности для отмены регистрации совместных возможностей с помощью службы приглашения к взаимодействию; и
элемент перечисления возможностей для перечисления возможностей, авторизованных с помощью службы приглашения к взаимодействию.
RU2007139520/09A 2005-04-25 2005-08-01 Система и способ приглашения к взаимодействию RU2385487C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/114,634 2005-04-25
US11/114,634 US7752253B2 (en) 2005-04-25 2005-04-25 Collaborative invitation system and method

Publications (2)

Publication Number Publication Date
RU2007139520A RU2007139520A (ru) 2009-04-27
RU2385487C2 true RU2385487C2 (ru) 2010-03-27

Family

ID=37188608

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2007139520/09A RU2385487C2 (ru) 2005-04-25 2005-08-01 Система и способ приглашения к взаимодействию

Country Status (11)

Country Link
US (1) US7752253B2 (ru)
EP (1) EP1875368A4 (ru)
JP (1) JP5254005B2 (ru)
KR (1) KR101122801B1 (ru)
CN (1) CN101167068B (ru)
BR (1) BRPI0520057A2 (ru)
MX (1) MX2007013353A (ru)
MY (1) MY147346A (ru)
RU (1) RU2385487C2 (ru)
TW (1) TWI387287B (ru)
WO (1) WO2006115527A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013106490A1 (en) * 2012-01-09 2013-07-18 Nielsen Christine Marie System and methods for an improved communication and interactive news forum

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070060358A1 (en) 2005-08-10 2007-03-15 Amaitis Lee M System and method for wireless gaming with location determination
US7534169B2 (en) 2005-07-08 2009-05-19 Cfph, Llc System and method for wireless gaming system with user profiles
US10510214B2 (en) 2005-07-08 2019-12-17 Cfph, Llc System and method for peer-to-peer wireless gaming
US8566109B2 (en) * 2005-11-29 2013-10-22 Alcatel Lucent Common interest community service via presence messaging
US20080014964A1 (en) * 2006-07-12 2008-01-17 Loc-Aid Technologies, Inc. System and method for generating use statistics for location-based applications
US9306952B2 (en) 2006-10-26 2016-04-05 Cfph, Llc System and method for wireless gaming with location determination
US8645709B2 (en) 2006-11-14 2014-02-04 Cfph, Llc Biometric access data encryption
US9411944B2 (en) 2006-11-15 2016-08-09 Cfph, Llc Biometric access sensitivity
US20080139187A1 (en) * 2006-12-12 2008-06-12 Ramachandran Subramanian Session establishment in a group communication system
US8255811B2 (en) 2006-12-20 2012-08-28 International Business Machines Corporation Providing auto-sorting of collaborative partners or components based on frequency of communication and/or access in a collaboration system user interface
US20080162505A1 (en) * 2006-12-29 2008-07-03 Hill Charles R Context browser based navigation of pivotally related information for a document
US8321794B2 (en) * 2007-06-28 2012-11-27 Microsoft Corporation Rich conference invitations with context
US8868656B2 (en) 2008-12-05 2014-10-21 Social Communications Company Pervasive realtime framework
DK2235902T3 (en) * 2008-01-23 2019-02-25 Ericsson Telefon Ab L M COMMUNICATION DEVICES
US20090210822A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Locating meeting users
US8200819B2 (en) * 2008-03-14 2012-06-12 Industrial Technology Research Institute Method and apparatuses for network society associating
US8219624B2 (en) * 2008-05-08 2012-07-10 International Business Machines Corporation System, method, and apparatus for electronic communication initiation contingent on busyness
US8412930B2 (en) 2008-10-09 2013-04-02 Microsoft Corporation Device authentication within deployable computing environment
US10356136B2 (en) 2012-10-19 2019-07-16 Sococo, Inc. Bridging physical and virtual spaces
US20100281095A1 (en) * 2009-04-21 2010-11-04 Wehner Camille B Mobile grid computing
US20100274852A1 (en) * 2009-04-28 2010-10-28 Nokia Corporation Method and Apparatus for Sharing Context to One or More Users
US8893000B2 (en) * 2009-08-26 2014-11-18 International Business Machines Corporation Relocation between virtual environments based upon promotional and alert conditions
US20110055135A1 (en) 2009-08-26 2011-03-03 International Business Machines Corporation Deferred Teleportation or Relocation in Virtual Worlds
US9160975B2 (en) * 2009-09-25 2015-10-13 At&T Intellectual Property I, L.P. Providing a dedicated channel accessible to a group of users
CN101699877B (zh) 2009-11-05 2012-10-10 中兴通讯股份有限公司 一种移动终端及建立端对端互联网协议连接的方法和系统
KR101059658B1 (ko) * 2010-07-01 2011-08-25 엔에이치엔(주) 개발자 인터페이스 제공 방법 및 시스템
WO2012058610A1 (en) * 2010-10-29 2012-05-03 Paul Everton Electronic emergency messaging system
US9256840B2 (en) * 2011-12-01 2016-02-09 Sap Se Establishing business networks using a shared platform
TW201838697A (zh) 2012-02-28 2018-11-01 美商Cfph有限責任公司 提供遊戲服務的方法及裝置
CN103312587A (zh) * 2012-03-13 2013-09-18 腾讯科技(深圳)有限公司 约会管理方法、装置和终端
GB201210600D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Call invites
GB201210598D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
GB2504461B (en) 2012-06-14 2014-12-03 Microsoft Corp Notification of communication events
GB201210596D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
US9787616B2 (en) * 2012-08-22 2017-10-10 Nokia Technologies Oy Method and apparatus for exchanging status updates while collaborating
CN102946418B (zh) * 2012-10-26 2015-12-09 北京奇虎科技有限公司 一种终端设备、一种图片提供系统和一种图片传输方法
US10223156B2 (en) 2013-06-09 2019-03-05 Apple Inc. Initiating background updates based on user activity
US9462429B2 (en) 2013-12-12 2016-10-04 Futurewei Technologies, Inc. Missed call notification by notifying contacts of the called party
US20160014059A1 (en) * 2015-09-30 2016-01-14 Yogesh Chunilal Rathod Presenting one or more types of interface(s) or media to calling and/or called user while acceptance of call
US9432796B2 (en) * 2014-05-30 2016-08-30 Apple Inc. Dynamic adjustment of mobile device based on peer event data
US9354860B2 (en) 2014-07-15 2016-05-31 Sap Se Optimizing software change processes using real-time analysis and rule-based hinting
WO2016057005A1 (ru) * 2014-10-08 2016-04-14 Вячеслав Васыльовыч Полиновськый Способ и система для создания трансфера технологий
US10491708B2 (en) 2015-06-05 2019-11-26 Apple Inc. Context notifications
US11962427B2 (en) 2021-02-18 2024-04-16 Microsoft Technology Licensing, Llc Auto-generated object for impromptu collaboration
US11836679B2 (en) * 2021-02-18 2023-12-05 Microsoft Technology Licensing, Llc Object for pre- to post-meeting collaboration
CN113709406B (zh) * 2021-10-27 2022-03-08 广州朗国电子科技股份有限公司 鸿蒙会议一体机的软件协同方法、系统和存储介质

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05242213A (ja) * 1992-03-02 1993-09-21 Casio Comput Co Ltd 線図作成装置
US7185054B1 (en) * 1993-10-01 2007-02-27 Collaboration Properties, Inc. Participant display and selection in video conference calls
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US6658568B1 (en) * 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US5854898A (en) * 1995-02-24 1998-12-29 Apple Computer, Inc. System for automatically adding additional data stream to existing media connection between two end points upon exchange of notifying and confirmation messages therebetween
US5724508A (en) * 1995-03-09 1998-03-03 Insoft, Inc. Apparatus for collaborative computing
US5706462A (en) * 1996-02-23 1998-01-06 Microsoft Corporation Self optimizing font width cache
US5917480A (en) * 1996-06-04 1999-06-29 Microsoft Corporation Method and system for interacting with the content of a slide presentation
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
US6163809A (en) * 1997-12-08 2000-12-19 Microsoft Corporation System and method for preserving delivery status notification when moving from a native network to a foreign network
US6078948A (en) * 1998-02-03 2000-06-20 Syracuse University Platform-independent collaboration backbone and framework for forming virtual communities having virtual rooms with collaborative sessions
US6216110B1 (en) * 1998-02-27 2001-04-10 Microsoft Corporation System and method for publishing calendar information to a publicly accessible location
US6108687A (en) * 1998-03-02 2000-08-22 Hewlett Packard Company System and method for providing a synchronized display to a plurality of computers over a global computer network
US6155840A (en) * 1998-09-18 2000-12-05 At Home Corporation System and method for distributed learning
US6363352B1 (en) * 1998-11-13 2002-03-26 Microsoft Corporation Automatic scheduling and formation of a virtual meeting over a computer network
US6636888B1 (en) * 1999-06-15 2003-10-21 Microsoft Corporation Scheduling presentation broadcasts in an integrated network environment
DE19943453A1 (de) 1999-09-11 2001-03-15 Daimler Chrysler Ag System und Verfahren zur Unterstützung der Gruppeninteraktion (GIA) in hypermedialen Informationsräumen
US6675205B2 (en) * 1999-10-14 2004-01-06 Arcessa, Inc. Peer-to-peer automated anonymous asynchronous file sharing
US6526411B1 (en) * 1999-11-15 2003-02-25 Sean Ward System and method for creating dynamic playlists
US6636889B1 (en) * 2000-01-04 2003-10-21 International Business Machines Corporation System and method for client replication of collaboration space
US20010035976A1 (en) * 2000-02-15 2001-11-01 Andrew Poon Method and system for online presentations of writings and line drawings
US6745178B1 (en) * 2000-04-28 2004-06-01 International Business Machines Corporation Internet based method for facilitating networking among persons with similar interests and for facilitating collaborative searching for information
US20030158897A1 (en) * 2000-05-09 2003-08-21 Viryanet Ltd. Networked platform for creating and supporting communities
US6986046B1 (en) * 2000-05-12 2006-01-10 Groove Networks, Incorporated Method and apparatus for managing secure collaborative transactions
GB2365671A (en) * 2000-05-17 2002-02-20 Ibm Teleconferencing system and method
WO2001098936A2 (en) * 2000-06-22 2001-12-27 Microsoft Corporation Distributed computing services platform
US6968179B1 (en) * 2000-07-27 2005-11-22 Microsoft Corporation Place specific buddy list services
US6701344B1 (en) * 2000-07-31 2004-03-02 The Boeing Company Distributed game environment
US6714966B1 (en) * 2000-07-31 2004-03-30 The Boeing Company Information delivery service
JP3946426B2 (ja) * 2000-09-28 2007-07-18 株式会社日立製作所 内燃機関の可変動弁装置
AU784512B2 (en) * 2000-10-19 2006-04-13 International Business Machines Corporation Method and system for persistent chat sessions
GB2372846A (en) 2000-11-15 2002-09-04 Vhsoft I P Company Ltd Selective distribution of electronic files via a common access platform
US20020073204A1 (en) * 2000-12-07 2002-06-13 Rabindranath Dutta Method and system for exchange of node characteristics for DATA sharing in peer-to-peer DATA networks
US7925703B2 (en) * 2000-12-26 2011-04-12 Numedeon, Inc. Graphical interactive interface for immersive online communities
US7020686B2 (en) * 2000-12-29 2006-03-28 International Business Machines Corporation Method and system for providing synchronous communication and person awareness in a place
US6791582B2 (en) * 2000-12-29 2004-09-14 International Business Machines Corporation Method and system for identifying and displaying information that is new or has been updated in a place
US7127676B2 (en) * 2000-12-29 2006-10-24 International Business Machines Corporation Method and system for providing a separate browser window with information from the main window in a simpler format
AU2002234258A1 (en) * 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7302634B2 (en) * 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7176942B2 (en) * 2001-03-23 2007-02-13 Dassault Systemes Collaborative design
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7171415B2 (en) * 2001-05-04 2007-01-30 Sun Microsystems, Inc. Distributed information discovery through searching selected registered information providers
GB2378268B (en) 2001-06-04 2005-08-03 Gordon Ross A method of providing an interactive multi dimensional visual user interface to groups of users
US6801604B2 (en) * 2001-06-25 2004-10-05 International Business Machines Corporation Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources
US7383433B2 (en) * 2001-07-31 2008-06-03 Sun Microsystems, Inc. Trust spectrum for certificate distribution in distributed peer-to-peer networks
US20030036941A1 (en) * 2001-08-17 2003-02-20 International Business Machines Corporation System and method for scheduling multiple meetings on an electronic calendar
JP4446368B2 (ja) * 2001-09-14 2010-04-07 富士通株式会社 コラボレーション方法、システム、プログラム及び記録媒体
US7493363B2 (en) * 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US20030217096A1 (en) * 2001-12-14 2003-11-20 Mckelvie Samuel J. Agent based application using data synchronization
JP3967589B2 (ja) * 2001-12-28 2007-08-29 富士通株式会社 広告配信方法及び広告配信装置
US20030126027A1 (en) * 2001-12-31 2003-07-03 Kimberly-Clark Worldwide Integrated web ring site and method for presenting information
US20030130014A1 (en) * 2002-01-07 2003-07-10 Rucinski David B Reduced complexity user interface
US20040128350A1 (en) * 2002-03-25 2004-07-01 Lou Topfl Methods and systems for real-time virtual conferencing
US20030217073A1 (en) * 2002-05-14 2003-11-20 Walther Dan E. Increasing the level of automation when scheduling and managing meetings
US20030217142A1 (en) * 2002-05-15 2003-11-20 Microsoft Corporation Method and system for supporting the communication of presence information regarding one or more telephony devices
GB2391135B (en) * 2002-06-28 2006-01-11 Nokia Corp User group creation
US20040111423A1 (en) * 2002-07-13 2004-06-10 John Irving Method and system for secure, community profile generation and access via a communication system
US7275215B2 (en) * 2002-07-29 2007-09-25 Cerulean Studios, Llc System and method for managing contacts in an instant messaging environment
CN100343835C (zh) * 2002-07-30 2007-10-17 索尼株式会社 信息处理方法和设备
GB0218711D0 (en) * 2002-08-12 2002-09-18 Mitel Knowledge Corp System and method for facilitating communication using presence and communication services
US7234117B2 (en) * 2002-08-28 2007-06-19 Microsoft Corporation System and method for shared integrated online social interaction
JP2004102459A (ja) * 2002-09-06 2004-04-02 Sony Corp 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム
US8204992B2 (en) * 2002-09-26 2012-06-19 Oracle America, Inc. Presence detection using distributed indexes in peer-to-peer networks
US20040078436A1 (en) * 2002-10-18 2004-04-22 International Business Machines Corporation Adding meeting information to a meeting notice
US7328243B2 (en) * 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7249123B2 (en) * 2002-10-31 2007-07-24 International Business Machines Corporation System and method for building social networks based on activity around shared virtual objects
US9100218B2 (en) * 2002-11-18 2015-08-04 Aol Inc. Enhanced buddy list interface
US20040143603A1 (en) * 2002-11-21 2004-07-22 Roy Kaufmann Method and system for synchronous and asynchronous note timing in a system for enhancing collaboration using computers and networking
US8095409B2 (en) * 2002-12-06 2012-01-10 Insors Integrated Communications Methods and program products for organizing virtual meetings
AU2002359846A1 (en) 2002-12-20 2004-07-22 Philippe Bennett Virtual meetings
US7209948B2 (en) * 2002-12-20 2007-04-24 International Business Machines, Corporation Collaborative review of distributed content
US20040122901A1 (en) * 2002-12-20 2004-06-24 Nortel Networks Limited Providing computer presence information to an integrated presence system
US20040141005A1 (en) * 2003-01-22 2004-07-22 International Business Machines Corporation System and method for integrating online meeting materials in a place
US7701882B2 (en) * 2003-02-10 2010-04-20 Intercall, Inc. Systems and methods for collaborative communication
JP2004246812A (ja) * 2003-02-17 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> ネットワークコミュニティシステム及びネットワークコミュニティの構成方法並びに該システムに用いる端末装置
JP4389450B2 (ja) * 2003-02-24 2009-12-24 富士ゼロックス株式会社 作業空間形成装置
US20040184445A1 (en) * 2003-03-18 2004-09-23 Burne Jeffrey K. Computer algorithm and method for facilitating the networking of individuals
US7549924B2 (en) * 2003-05-09 2009-06-23 Microsoft Corporation Instant messaging embedded games
US7454460B2 (en) * 2003-05-16 2008-11-18 Seiko Epson Corporation Method and system for delivering produced content to passive participants of a videoconference
US20040243580A1 (en) * 2003-05-27 2004-12-02 Outi Markki System and method for message handling in a peer-to-peer environment
US7539771B2 (en) * 2003-06-06 2009-05-26 Microsoft Corporation Organizational locality in prefix-based structured peer-to-peer overlays
US7337213B2 (en) * 2003-06-19 2008-02-26 International Business Machines Corporation Method and apparatus for managing messages in a messaging session
US20050009537A1 (en) * 2003-07-11 2005-01-13 Crocker Ronald T. Method and apparatus for facilitating wireless presence-based services
US20050027805A1 (en) * 2003-07-15 2005-02-03 Aoki Norihiro Edwin Instant messaging and enhanced scheduling
US8140980B2 (en) * 2003-08-05 2012-03-20 Verizon Business Global Llc Method and system for providing conferencing services
US7512653B2 (en) * 2003-08-11 2009-03-31 Sony Corporation System and method for dynamically grouping messaging buddies in an electronic network
US7546343B2 (en) * 2003-09-23 2009-06-09 Alcatel-Lucent Usa Inc. System and method for supporting virtual conferences
US7200638B2 (en) * 2003-10-14 2007-04-03 International Business Machines Corporation System and method for automatic population of instant messenger lists
US8260857B2 (en) * 2003-10-23 2012-09-04 Microsoft Corporation One to many data projection system and method
US20050102245A1 (en) * 2003-11-07 2005-05-12 International Business Machines Corporation System, method, and service for negotiating schedules while preserving privacy through a shared representation
US20050125496A1 (en) * 2003-12-03 2005-06-09 International Business Machines Corporation Automatically initiating an instant messaging action when a subscriber's availability status changes
US20050198173A1 (en) * 2004-01-02 2005-09-08 Evans Alexander W. System and method for controlling receipt of electronic messages
US7885901B2 (en) * 2004-01-29 2011-02-08 Yahoo! Inc. Method and system for seeding online social network contacts
EP1587239A1 (en) * 2004-04-14 2005-10-19 Siemens Mobile Communications S.p.A. Method of and apparatus for server-side management of buddy lists
US7444379B2 (en) * 2004-06-30 2008-10-28 International Business Machines Corporation Method for automatically setting chat status based on user activity in local environment
US20060075091A1 (en) * 2004-09-30 2006-04-06 Siemens Information And Communication Networks, Inc. System and method for historical presence map
US7464168B1 (en) * 2004-10-19 2008-12-09 Sun Microsystems, Inc. Mechanism for decentralized entity presence
US20060112177A1 (en) * 2004-11-24 2006-05-25 Microsoft Corporation Method and system for controlling access to presence information on a peer-to-peer basis
US20060190600A1 (en) * 2005-02-18 2006-08-24 Siemens Communications, Inc. Group based presence availability management
US20060242236A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation System and method for extensible computer assisted collaboration
US8036140B2 (en) * 2005-04-22 2011-10-11 Microsoft Corporation Application programming interface for inviting participants in a serverless peer to peer network
US20060242235A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Presence monitoring in a serverless peer-to-peer system
US7617281B2 (en) * 2005-04-25 2009-11-10 Microsoft Corporation System and method for collaboration with serverless presence

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013106490A1 (en) * 2012-01-09 2013-07-18 Nielsen Christine Marie System and methods for an improved communication and interactive news forum

Also Published As

Publication number Publication date
MY147346A (en) 2012-11-30
BRPI0520057A2 (pt) 2009-04-14
JP5254005B2 (ja) 2013-08-07
JP2008539504A (ja) 2008-11-13
CN101167068A (zh) 2008-04-23
KR20080010390A (ko) 2008-01-30
EP1875368A1 (en) 2008-01-09
EP1875368A4 (en) 2010-11-24
KR101122801B1 (ko) 2012-03-22
WO2006115527A1 (en) 2006-11-02
RU2007139520A (ru) 2009-04-27
US20060242639A1 (en) 2006-10-26
TWI387287B (zh) 2013-02-21
TW200638717A (en) 2006-11-01
CN101167068B (zh) 2010-04-21
MX2007013353A (es) 2008-01-11
US7752253B2 (en) 2010-07-06

Similar Documents

Publication Publication Date Title
RU2385487C2 (ru) Система и способ приглашения к взаимодействию
US7617281B2 (en) System and method for collaboration with serverless presence
US8036140B2 (en) Application programming interface for inviting participants in a serverless peer to peer network
US7596625B2 (en) Peer-to-peer grouping interfaces and methods
US7437440B2 (en) Peer-to-peer networking framework application programming interfaces
EP1974501B1 (en) Ad-hoc creation of group based on contextual information
US8751580B2 (en) Real-time communication and information collaboration system
KR20100123731A (ko) 프레즌스에서의 위치 정보
US8332471B2 (en) System for enhanced management of social networks on mobile devices
US10404631B2 (en) Creating groups in a messaging system
US20060239234A1 (en) Application programming interface for discovering endpoints in a serverless peer to peer network
WO2013016218A1 (en) Method and apparatus for multiple personality support and dynamic personality selection
Graffi et al. A distributed platform for multimedia communities
US20100257112A1 (en) Socialization of communications enabled devices
RU2451992C2 (ru) Универсальная система многофункциональной коммуникации с использованием информационных объектов и сервисных служб
US20060242236A1 (en) System and method for extensible computer assisted collaboration
WO2018132304A1 (en) Creating groups in a messaging system
Lee et al. Application-level Communication Services for Development of Social Networking Systems.
Wang Context-based coalition access control for ubiquitous computing
DONG Application group support infrastructure for octopus: A multimedia communication middleware

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20140802