CN101167068B - 协同邀请系统和方法 - Google Patents

协同邀请系统和方法 Download PDF

Info

Publication number
CN101167068B
CN101167068B CN200580049554XA CN200580049554A CN101167068B CN 101167068 B CN101167068 B CN 101167068B CN 200580049554X A CN200580049554X A CN 200580049554XA CN 200580049554 A CN200580049554 A CN 200580049554A CN 101167068 B CN101167068 B CN 101167068B
Authority
CN
China
Prior art keywords
invitation
service
contact
collaboration
end points
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN200580049554XA
Other languages
English (en)
Other versions
CN101167068A (zh
Inventor
T·R·曼尼恩
D·G·泰勒
R·古普塔
S·K·辛格豪尔
R·T·拉奥
T·维斯伯格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101167068A publication Critical patent/CN101167068A/zh
Application granted granted Critical
Publication of CN101167068B publication Critical patent/CN101167068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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)、信令服务(308)、活动服务(310)、数据共享服务(312)、认证服务(314)和连接服务(316)。联系人管理服务(304)可包括联系人存储(318)、在场存储(320)、以及联系人位置服务(322)。发布服务(306)可包括同步服务(324)。信令服务(308)可包括邀请服务(326)。活动服务(310)可包括音频/视觉(A/V)服务(328)。连接服务(316)可包括对等(P2P)服务(330),以及常规传输控制协议和因特网协议(TCP/IP)堆栈(332)。各个服务(304)、(306)、(308)、(310)、(312)、(314)、(316)可包括和/或结合到能收发实现该服务的消息的对等设备。

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)、手持式设备、多处理器系统、基于微处理器的可编程消费电器、网络PC、小型计算机、平板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较佳地还包含允许设备与诸如远程计算机116的其它设备通信的通信连接116。通信连接是通信介质的一个示例。通信介质通常体现为计算机可读指令、数据结构、程序模块、或诸如载波的经调制数据信号或其它传输机制中的其它数据,并包括任何信息传送介质。作为示例而非限制,术语“通信介质”包括诸如声学、RF、红外和其它无线介质的无线介质。术语“计算机可读介质”如在本文中所使用地包括计算机存储介质和通信介质。
计算机102还可具有诸如键盘/小键盘、鼠标、笔、语音输入设备、触摸式输入设备等输入设备118。还可包括诸如显示器、扬声器、打印机等输出设备120。所有这些设备都是本领域中众所周知的,并且无需在此赘述。
在以下的描述中,本发明将参照由一个或多个计算设备执行的动作和操作的符号表示进行描述,除非另有指明。这样,可以理解,有时称为计算机正在执行的这些动作和操作包括由计算机的处理单元对以结构化形式表示数据的电信号的处理。该处理转换数据或将其保存在计算机的存储器系统中的单元内,以本领域技术人员能很好理解的方式重新配置或以其它方式改变计算机的操作。维护数据的数据结构是具有根据数据格式定义的特定属性的存储器物理单元。然而,尽管本发明在前述上下文中进行描述但这并不表示是限制性的,因为本领域技术人员将理解以下描述的各种动作和操作也可用硬件来实现。
在本发明一实施例中,计算机软件体系结构提供一可扩展、灵活、可维护和可升级的协同平台。该体系结构的各个方面可被结合到一适当的网络化计算环境中。该体系结构可启用和/或扩展与常规计算机软件应用程序的集成式协同。特别地,该体系结构可提供综合的协同联系人管理,包括例如相关于可用协同活动的当前联系人在网络化计算环境中的出现和当前联系人的能力。
图2示出适于结合本发明一实施例的一示例网络化计算环境200。在网络化计算环境中,网络202将计算机204、206和208通信连接到网络化集线器210。网络202可以是局域网(LAN)、城域网(MAN)、广域网(WAN)、个人局域网(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彼此可发送点对点类消息,但子网218可被配置成子网218中的广播类消息由子网218内的那些计算机212、214和216接收。
协同平台的可扩展、灵活、可维护和/或可升级属性可源自其模块化结构、其整体的模块化结构、模块之间的交互方式和/或模块化结构的整体交互模式的一个或多个方面。图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可包括对等(P2P)服务330,以及常规传输控制协议和因特网协议(TCP/IP)堆栈332。各个服务304、306、308、310、312、314、316可包括和/或结合到能收发实现该服务的消息的对等设备。
在本发明一实施例中,联系人管理服务304提供对协同者,即协同服务平台302的用户的有效访问。例如,联系人管理服务304可向协同服务平台302的部分或全部用户提供联系人信息。联系人管理服务304可维护一个或多个数据存储中的联系人数据库。每个联系人可以是潜在的协同者,即协同服务平台的用户可尝试参与和每个联系人的一个或多个协同活动。联系人管理服务304可提供包括图形用户界面(GUI)的一个或多个用户界面,该GUI提供联系人例如以供用户选择,和/或使得该用户能相对于一特定联系人调用协同服务平台302动作。
联系人存储318可储存联系人对象和“MeContact”对象(以下参照图4更详细地描述)。在场存储320可储存联系人对象的在场对象(也在以下参照图4更详细地描述)。在本发明一实施例中,在场数据比联系人数据更频繁地改变,使得单独的数据存储318、320可针对不同的对象更新频率最优化。
联系人位置服务322可相对于一给定联系人提供各种位置数据的一种或多种。物理靠近可以是联系人位置的一个方面,例如物理位置的一个或多个代理可用来估计联系人与用户的物理距离。无线电接收机处的信号强度是物理距离代理的一个示例。虚拟位置可以是联系人位置的另一个方面。例如,联系人可在诸如图2网络202的一个或多个网络上、和/或诸如计算机204、206、208、212、214和216的一个或多个网络节点上活动。此外,联系人可以是注册但不活动的、或在线但未现的、或具有某些其它适当的位置状态。联系人位置服务322可查询适当的注册表和/或启动例如对等搜索或对等名称解析机制,以便于定位一特定联系人。
发布服务306可提供对联系人所发布的数据的访问。在本发明一实施例中,感兴趣的用户可预订联系人发布的对象,并在发布联系人更新所发布对象的任何时候接收通知。同步服务324可负责维护发布预订的数据库。特别地,发布服务206可提供对联系人所发布的在场信息的访问。
信令服务308可提供在网络化计算环境200(图2)中出现的联系人之间的协同会议的建立和终止、以及会议进行中参数的更新。在本发明一实施例中,协同会议的建立、更新和终止是根据发布/预订语义提供的。在本发明一实施例中,信令服务308结合了会话启动协议(SIP)的实现,诸如由Handley等人在因特网工程任务组(IETF)请求注解(RFC)2543(1999年3月)中的“SIP:Session InitiationProtocol”(“SIP:会话启动协议”)中描述的会话启动协议。
邀请服务326可使邀请和相关消息能向联系人往返发送。例如,访问一计算机212上的网络化计算环境200(图2)的系统用户可邀请某其它计算机204、206、208、212、214和/或216上的联系人参与一协同活动。邀请服务326可利用联系人位置服务322来定位联系人并传递邀请。邀请服务326可包括诸如图形用户界面(GUI)的各种用户界面,用于向被邀请人呈现邀请细节,并使该被邀请人能接受、拒绝和/或明确地忽略该邀请。一示例邀请服务326在以下参照图13更详细地描述。
活动服务310可实现协同活动、和/或提供对协同应用程序在协同服务平台302中的集成的支持。例如,活动服务310可向常规协同应用程序提供协同服务平台302顺应应用程序编程接口(API)。顺应API可包括用于相对于活动能力查询一特定联系人或计算机204、206、208、212、214、216(图2),以及用于确定应用程序专用邀请要求的功能。音频/视觉服务328是适于结合到活动服务310中的协同服务的一个示例。
数据共享服务312可使数据能以包括文件、文档、流和对象的任意适当格式共享。该数据共享服务312可提供数据传送、数据复制和/或数据同步。数据共享可基于联系人、参与活动、参与会议、和/或诸如网络化计算环境200(图2)用户组的任何适当访问控制列表(ACL)条目来启用和禁用。
认证服务314可生成并验证认证凭证,例如联系人与其它活动和会议参与者的认证凭证。认证服务314可使联系人能被分类成受信任联系人和不受信任联系人。认证服务314可使联系人与联系人位置无关、或根据复杂的网络化计算环境200(图2)的出现而受到信任。
在本发明一实施例中,连接服务316使协同服务平台302服务实例之间能通过网络化计算环境200(图2)通信,例如计算机212上的第一信令服务308实例与计算机208上的第二信令服务308实例之间。连接服务316的通信工具可与应用程序编程接口(API)一起可用,使得其它协同服务平台302服务304、306、310、312、314可与基础传输机制无关地在实例之间通信。
连接服务316可包括TCP/IP堆栈332和/或更高级通信应用程序编程接口,诸如2005年3月的微软开发者网络
Figure G200580049554XD00071
库中的平台软件开发工具包(SDK)的
Figure G200580049554XD00073
套接字2部分中描述的
Figure G200580049554XD00074
套接字2(Winsock)API。对等(P2P)服务330可在网络计算环境200的覆盖网中提供连接。例如,对等服务330可根据2005年3月的微软开发者网络库中的
Figure G200580049554XD00081
平台软件开发工具包(SDK)的对等网络化部分中描述的对等应用程序编程接口提供,包括图形化、分组、身份管理器、以及对等名称解析协议(PNRP)名空间提供者应用程序编程接口。
协同服务平台302的服务304、306、308、310、312、314和316可与一组编程对象实现,该组编程对象包括在协同对象模型中相互关连的一组协同对象。图4示出根据本发明一实施例的一组示例协同对象和一示例协同对象模型400。该协同对象模型400可包括联系人对象402、在场对象404、MeContact对象406和MyPresence(我的在场)对象408、端点对象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可结合用于表示协同在场的适当属性,例如网络化计算环境200的一组计算机204、206、208、212、214和/或216(图2),在该环境上特定协同服务平台302用户在最近过去的某个时刻活动,其中“最近”过去可取决于协同环境从秒到小时、天、甚至年地变化。在场对象404可引用表示网络化计算环境200位置的一个或多个端点对象410。端点对象410无需与例如网络化计算环境200的计算机204、206、208、212、214、216一一对应,因为端点对象410可与网络化计算环境200的覆盖网中的对等体相对应。
在场对象404可进一步引用表示例如一个或多个协同端点上的协同能力、和/或与在场对象404相关联的部分或全部端点上的聚集协同能力的零个或多个能力对象412实例。此外,在场对象404可引用零个或多个发布对象418实例。一示例在场对象404在以下参照图6更详细地描述。一示例发布对象418在以下参照图7更详细地描述。一示例能力对象412在以下参照图8更详细地描述。
MeContact对象406可以是一类联系人对象402,并且可多态地继承联系人对象402的属性和行为。由于协同服务平台用户自己的联系信息相对于其它用户的联系信息可起到一种特定的作用,因此MeContact对象406可与联系人对象402相区分。例如,MeContact对象406可引用表示该特定用户的已知协同联系人的零个或多个联系人对象402实例。MeContact对象406无需引用例如其它MeContact对象406实例。在本发明一实施例中,归因于协同服务平台302(图3)的可扩展性、灵活性、可维护性和/或可升级性可避免不必要的复杂性。
MeContact对象406可进一步引用MyPresence对象408实例。MyPresence对象408可以是一类在场对象404,并可多态地继承在场对象404的属性和行为。再一次,由于协同服务平台用户自己的在场相对于其它用户的在场可起到一种特定的作用,因此MyPresence对象408可与在场对象404相区分。例如,在本发明一实施例中,用户可明确地更新他们自己的MyPresence对象408实例,而不是其它用户的在场对象404实例。
此外,MeContact对象406可引用表示与MeContact对象406相关联的用户以及其它协同服务平台用户当前和/或最近参加的协同会议的零个或多个会议对象414实例。会议对象414可引用表示协同活动的一个或多个活动对象416实例。在本发明一实施例中,会议对象414是一类活动对象416,并可多态地继承活动对象416的属性和行为。作为是一类活动对象416的结果,会议对象414所引用的活动对象416实例可以是会议对象414实例。一示例MeContact对象406在以下参照图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,被引用的对象或其副本可相反被结合到引用对象中和/或与之结合成一体。一个编程对象可用任何适当编程引用机制来引用另一个编程对象。适当的编程引用机制包括指针、显式引用、相关联散列码及其等效体、以及为专门目的设计的编程语言功能部件。
现在参照图4更详细地描述以上所介绍的编程对象402、404、406、408、410、412、414、416和418。每个编程对象402、404、406、408、410、412、414、416和418可包括一个或多个应用程序编程接口元素。每个应用程序编程接口元素可包括一种或多种接口规范,这些接口规范指定包括协同服务平台302(图3)的计算机102(图1)系统组件可配置、控制编程对象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可包括描述与在场对象600相关联的网络化计算环境200(图2)在场的富文本串。简单的实例包括“现在在9号大楼”、“在玩
Figure G200580049554XD00101
第4级”和“不在”。端点元素604可包括在一个或多个协同活动中活动、最近活动、和/或能够变成活动参与者的的一组协同端点。适当协同端点的示例包括计算机204、206、208、212、214和216、以及网络化计算环境200的覆盖网的对等体。
聚集状态元素606可包括代表一组协同端点上协同在场的聚集在场状态指示符。每个协同端点可具有相关联的在场状态,例如在线、走开、外出午餐、马上回来、空闲、电话中或忙碌。与一组端点相关联的聚集在场状态无需与该组中任一端点相关联的状态相同。甚至当聚集在场状态与该组中的至少一个端点相同时,它也可与其它的一个或多个不同。
聚集在场状态可用各种聚集在场状态算法的一种或多种来确定。在场状态水平可分级,且该聚集状态可被设置成一组端点中的最高分级状态。聚集状态可以是各个状态值的加权平均,或者是各个状态值的其它适当线性或非线性变换。各个状态值还可在变换前适当排序。所利用的聚集在场状态算法可取决于该组中各个端点的数量。
聚集能力元素608可包括与协同在场相关联的一个聚集能力集合。协同在场中的各个端点可具有与之相关联的一组能力,例如相关于协同活动的能力。这些聚集能力可以是各个端点的各个能力的简单聚集。另一方面,聚集能力的集合可受限于在各个端点上呈现的那些能力。按照更为复杂的聚集能力确定算法,这些极限的组合是可能的。例如,聚集能力的集合可以是加权平均处理的结果,或者是各个端点的能力的其它适当线性或非线性变换。此外,聚集能力级别或百分比可与该个集合的聚集能力中的每个能力相关联。
发布对象元素610可包括与协同在场相关联的一个发布对象集合。尽管能力对象412(图4)可以是一类发布对象418,但两者的区别之处在于与能力对象实例412相关联的能力通常是长期的(例如在数天、数周甚至数年的数量级上),而与基本发布对象418实例相关联的发布数据通常是短期的(例如在数秒、数分钟或数小时的数量级上)。该区别可用于最优化计算机系统性能。
新活动邀请元素612可使协同服务平台302(图3)用户能邀请与在场对象600相关联的联系人参与一新的协同活动。这可能是用于主宿该活动的关联会议尚不存在,并且如果邀请被接受则将创建一个关联会议。该邀请可被传递给端点元素604所引用的每个端点,仅传递给与在线在场状态相关联的那些端点,邀请可被按一次序传递给与协同在场相关联的每个端点,例如按根据与该次序中每个端点相关联的在场状态所确定的次序,或其它适当的邀请传递策略。
在邀请联系人加入现有会议和/或活动时,现有活动邀请应用程序编程接口元素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可引用与获授权预订关联于发布对象700的数据的联系人相关联的一个或多个联系人对象402(图4)实例。数据访问控制可以是粗粒度的,例如允许或阻止,或者是细粒度的,例如包括对数据创建、读取、更新和删除特权的控制。发布数据元素708可维护与发布对象700相关联的一组发布数据。任何一组适当的数据可与发布对象700相关联地发布。
图8示出根据本发明一实施例的一示例能力对象800。该能力对象800适于结合到协同对象模型400(图4)中。能力对象800可结合应用程序编程接口元素,包括关联应用程序元素802以及应用程序数据元素804。
关联应用程序元素802可包括对实现与能力对象800相关联的能力的一组协同应用程序的引用。应用程序数据元素804可包括配置关联应用程序元素802所引用的那组协同应用程序的每一个所需的数据和/或数据规范。
图9示出根据本发明一实施例的一示例MeContact对象900。该MeContact对象900适于结合到协同对象模型400(图4)中。MeContact对象900可结合应用程序编程接口元素,包括联系人元素902、伙伴元素904、获授权用户元素906、活动用户元素908、会议元素910、按类寻找能力元素912、以及按类寻找发布对象元素914。
联系人元素902可包括对与为关联于MeContact对象900的协同服务平台302(图3)用户所知的联系人相关联的一组联系人对象402(图4)实例的引用。伙伴元素904可包括对与为协同服务平台302(图3)用户所知的、并且也是例如由联系人对象500的伙伴标记元素506(图5)所指示的伙伴类联系人的联系人相关联的一组联系人对象402(图4)实例的引用。仅仅在伙伴元素904所引用的那组联系人对象402实例中的出现指示该关联联系人是一伙伴类联系人。由联系人元素902和伙伴元素904所引用的一组联系人对象402实例可重叠,但在本发明的至少一个实施例中这些组是排他性的。
获授权用户元素906可包括对与获授权预订关联于MeContact对象900的发布数据(诸如能力数据)的联系人相关联的一组联系人对象402(图4)实例的引用。发布数据访问控制可以是粗粒度的,例如阻止或允许访问所有发布数据,或者是细粒度的,例如对每个发布对象418的创建、读取、更新和删除许可,或其组合。
活动用户元素908可包括对与活动预订由关联于MeContact对象900的协同服务平台302(图3)用户所发布数据的联系人相关联的一组联系人对象402实例的引用。当然,由活动用户元素908所引用的联系人对象402实例应当与获授权用户元素906所维护的许可相一致。
会议元素910可包括对与关联于MeContact对象900的协同服务平台302(图3)用户当前参与的、最近参与的、和/或马上将参与的会议相关联的一组会议对象414(图4)实例的引用。
按类寻找能力元素912可使协同服务平台302(图3)用户向关联于MeContact对象900的联系人查询与多个能力类型的一个或多个相关联的能力。例如,按类寻找能力元素912可查询由联系人元素902、伙伴元素904和/或MeContact对象900本身所引用的联系人对象402(图4)实例。按类寻找能力元素912可用各个端点的能力和/或聚集能力对该查询作出响应。按类寻找发布对象元素914可使用户向关联于MeContact对象900的联系人查询发布数据。与按类寻找能力元素912一样,按类寻找发布对象元素914可查询由联系人元素902、伙伴元素904和/或MeContact对象900本身所引用的发布对象418实例。
图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执行的示例步骤。在步骤1102,可选择一联系人对象402实例。例如,可用联系人管理服务304的用户界面选择储存在联系人存储318中的一联系人对象402实例。
在步骤1104,可向所选联系人对象402(图4)实例查询其关联在场对象404实例。例如,所选联系人对象500的在场元素504(图5)可用来访问关联在场对象404实例。
在步骤1106,可确定与所选联系人对象402(图4)实例相关联的联系人是否出现在网络化计算环境200(图2)中。例如,该联系人的聚集在场状态可从在步骤1104检索到的在场对象600的聚集状态元素606中取得,并且如果联系人的聚集在场状态为在线,则该联系人可被确定为出现。如果该联系人被确定为出现,则该过程可继续到步骤1108。否则该过程可退出。此时该联系人不可用于协同。
可替换地,在继续到步骤1108之前,步骤1104和1106可用预订所选联系人的在场信息并等待直至通知指示所选联系人出现的步骤代替。
在步骤1108,可向所选联系人对象402(图4)查询一组关联能力对象412实例。例如,在步骤1104(和/或步骤1110)检索到的在场对象404实例的按类寻找能力元素616(图6)可用来获取一组相关的能力。要检查的该特定一组能力可取决于一个或多个目标协同活动。例如,涉及语音的会议可触发对音频输入能力的检查。在步骤1112,可确定所选联系人是否具有所需能力。如果所选联系人的确具有所需能力,则过程可继续到图12的步骤1202。否则该过程退出。步骤1112无需受限于一简单测试。步骤1112可包括例如由信令服务308(图3)协调的一协商,以确定该组能力的任一个对一个或多个目标活动是否足够。
图12示出根据本发明一实施例的由协同服务平台302执行的其它示例步骤。图11和12的步骤由标记为1114和1116的圆连接。已确定了所选联系人出现在网络化计算环境200(图2)中并且能够参与期望的一个或多个协同活动,就可在步骤1202向所选联系人发送一个或多个邀请。例如,邀请可由计算机212(图2)上的邀请服务326(图3)发送。
在步骤1204,可由所选联系人接收一个或多个邀请。例如,邀请之一可由计算机208(图2)上的邀请服务326(图3)接收。在步骤1206,所选联系人可对一个或多个邀请作出响应。例如,所选联系人可利用计算机208上的邀请服务326的用户界面向邀请之一作出响应。
在步骤1208,可确定是否接受该邀请。例如,计算机212上的邀请服务326可接收在步骤1206发送的响应,并且该响应的内容可确定是否接受邀请。如果接受邀请,则过程可继续到步骤1210。否则该过程可退出。
步骤1204、1206和1208用虚线1212标出以高亮对邀请作出响应时过程变化的可能性。对同一活动发出多个邀请的一个原因是所选联系人在网络化计算环境200(图2)中的出现可包括多个端点。例如,协同服务平台302(图3)用户可就同一活动从计算机212向计算机216、206和208发出三个邀请。例如,计算机216可以是所选联系人的办公室台式PC,计算机206可以是所选联系人的膝上型计算机,而计算机208可以是所选联系人的个人数字助理(PDA)。可在一个以上端点向所选联系人显示邀请。例如,所选联系人可在计算机208(在此示例中为PDA)上拒绝或忽略该邀请,但在计算机206(膝上型计算机)上接受该邀请。一种可能性是所选联系人简单地不对该邀请作出响应。这可导致超时和退出该过程。
步骤1212的另一种可能性是协同服务平台302(图3)用户在计算机212(图2)上向子网218中的各个其它计算机214和216发出一活动邀请。在该情形中,每个联系人可并行地作出响应。
已在步骤1210接受了邀请,所选联系人可参加协同活动的关联会议。例如,该会议可在计算机212(图2)上主宿,并且所选联系人可利用信令服务308(图3)和/或活动服务310从计算机206参加会议。在步骤1214,可发生结合活动的协同。
现在更详细地描述邀请服务326(图3)的一个示例。具体地,高亮了邀请服务326、协同服务平台302和与协同服务平台302(虽然通常引用它)不同的协同应用程序之间的交互。在本发明一实施例中,这些交互的处理归因于协同服务平台302的可使用性、可扩展性、灵活性、可维护性和/或可升级性,以及因而其供在广泛范围采用的适用性。
图13示出根据本发明一实施例的一示例邀请情形。第一计算机302的任务可以是启动与第二计算机1304的一个或多个协同活动。例如,计算机1302和1304可以是图2的网络化计算环境200中计算机204、206、208、212、214或216的任一个。计算机1302和1304各自可包括一计算机操作系统1306和1308。计算机操作系统1306和1308各自可包括一协同服务平台模块1310和1312。计算机操作系统1302和1304不必是相同的。协同服务平台模块1310和1312可与协同服务平台302(图3)相一致。
计算机操作系统1306和1308可包括诸如图形用户界面(GUI)的邀请用户界面(UI)1314和1316。在本发明一实施例中,邀请用户界面(UI)1314和1316被分别结合到协同服务平台模块1310和1312。计算机1302和1304可进一步包括协同应用程序1318和1320。尽管在此示例中与协同服务平台模块1310和1312不同,但在本发明一实施例中,协同应用程序1318和1320可被结合到协同服务平台模块1310和1312中。
基本的协同邀请协议可包括三个消息:协同邀请消息1322、协同响应消息1324、以及邀请删除消息1326。
协同邀请消息1322可包括一邀请标识符、一个或多个能力标识符、应用程序数据和一消息。邀请标识符可唯一地表示该邀请。例如,邀请标识符可以是如在微软开发者网络
Figure G200580049554XD00161
库中的.NET框架类库(文档版本1.1.1)的Guid结构部分中所述的全球唯一标识符(GUID)。每个能力标识符可引用表示关联于邀请的协同活动所需的协同能力的能力对象。例如,每个能力标识符可以是全球唯一标识符(GUID)。应用程序数据可包括和/或指定要传递给协同应用程序的数据,以便于例如启动协同活动。消息可以是包含标准或定制邀请文本的富文本串。
协同响应消息1324可包括邀请标识符、邀请响应动作、响应消息和扩展响应数据。邀请标识符可标识响应消息1324对其作出响应的协同邀请。例如,邀请标识符可以是由协同邀请消息1322所提供的GUID。邀请响应动作可指示响应的类型。例如,邀请响应可以是拒绝、接受、忽略和出错之一。响应消息可以是包含标准或定制邀请响应文本的富文本串。扩展响应数据可包括与本发明和/或协同活动相关的任何适当附加响应数据。
邀请删除消息1326可包括标识删除消息1326正在删除之邀请的邀请标识符。例如,协同邀请消息1322可从计算机1302发送到计算机1304以邀请协同服务平台1312的用户与协同服务平台1310的用户一起参与一协同活动。作为响应,协同响应消息1324可从计算机1304发送到计算机1302以指示是例如接受还是拒绝邀请。在本发明一实施例中,协同服务平台1310的用户有可能通过从计算机1302向计算机1304发送邀请删除消息1326来删除邀请。
在更详细地描述示例协同邀请方法之前,描述邀请服务326(图3)的一示例应用程序编程接口(API)将是有帮助的。图14示出根据本发明一实施例的邀请服务326的一示例应用程序编程接口(API)1400。该邀请服务API 1400可包括邀请元素1402、创建邀请收听器元素1404、发送安全邀请元素1406、发送不安全邀请元素1408、删除邀请元素1410、响应邀请元素1412、获取邀请响应元素1414、注册/取消注册能力元素1416、枚举能力元素1418、和获取能力信息元素1420。尽管每个应用程序编程接口元素1402、1404、1406、1408、1410、1412、1414、1416、1418和1420可被包括在结合到各个计算机1302和1304上的协同服务平台模块1310和1312(图13)的邀请服务326(图3)的应用程序编程接口中,但取决于计算机1302、1304是邀请者还是被邀请者或既是邀请者又是被邀请者可由计算机1302和1304利用不同的元素1402、1404、1406、1408、1410、1412、1414、1416、1418和1420。
邀请元素1402可包括和提供对与协同邀请消息1322协同的数据的部分或全部的访问。例如,协同邀请消息1322或其一部分可用邀请元素1402储存在邀请服务326(图3)中和/或从中检索。
创建邀请收听器元素1404可在诸如计算机1302和1304(图13)的协同端点上例示一邀请收听器。接口规范参数可包括诸如因特网协议(IP)地址的端点标识符或P2P对等标识符(每个计算机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向子网218上的每个计算机212、214和216(图2)广播。不安全邀请可便于特别协同以及诸如多玩家游戏的便于社交设置中的协同。
删除邀请元素1410可使删除消息1326(图13)能发送。接口规范参数可包括发送不安全邀请元素1408的诸如发送安全邀请元素1406所设置邀请标识符的邀请标识符。邀请响应元素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,可启动协同应用程序。例如,可由计算机操作系统1306以常规方式启动应用程序1308(图13)。步骤1518是步骤1520的预备条件,并且在步骤1518与1520之间可经过相当时间。
在步骤1520,可用协同应用程序1318(图13)的用户界面来选择一个或多个联系人。例如,协同应用程序1318可与协同服务平台1310的联系人管理服务304(图3)交互以显示应用程序用户的已知联系人列表或例如伙伴类联系人列表,并且应用程序用户可从那些所显示列表中选择一组联系人。与从步骤1504起的进展相反,协同活动的选择是不必要的,并且过程可继续到步骤1514。协同应用程序1318可确定协同活动。然而,在本发明一实施例中,协同应用程序1318可支持多个活动,在该情形中步骤1506的等效体可能是适当的。在步骤1514,发送邀请元素1406或1408(图14)可由协同应用程序1318调用。
图16示出根据本发明一实施例的由邀请服务1400(图14)执行的发送邀请的示例步骤。在步骤1602,选择下一候选联系人。例如,候选联系人可从在图15的步骤1504或1520选择的组中选择。
在步骤1604,可确定候选联系人的端点是否为已知。例如,可向由表示候选联系人的联系人对象402所引用的在场对象404(图4)查询它的一组端点对象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(图3)可到达为协同服务平台302保留并由邀请服务326监视的TCP/IP端口。
在步骤1704,可确定端点是否能参与关联于该邀请的活动。例如,邀请服务326(图3)可将邀请消息1322(图13)中的能力标识符与已向邀请服务328注册的能力作比较。或者,可向关联于端点用户的MeContact对象406(图4)查询其相关联的一组能力对象412,并且该组能力对象412可与邀请消息1322中的能力标识符作比较。如果确定端点能够参加与邀请相关联的活动,则该过程可继续到步骤1706。否则,该过程可继续到步骤1708。
在步骤1706,用户可接受、拒绝或忽略邀请。例如,邀请服务326(图3)可显示具有与决定:接受、拒绝或忽略相对应的用户界面元素的一般邀请用户界面。用户可通过选择相应的用户界面元素来接受、拒绝或忽略邀请。如果用户接受邀请,则过程可继续到步骤1710。如果用户拒绝邀请,则过程可继续到步骤1708。如果用户忽略该邀请,则过程可继续到步骤1712。
在步骤1708,可发送指示拒绝邀请的响应消息1324(图13)。例如,响应消息1324可用对邀请服务1400应用程序编程接口的邀请元素1412(图14)的响应发送。类似地,在步骤1712,可发送指示用户选择忽略邀请的响应消息1324。邀请元素1412还可用于发送该响应。在本发明一实施例中,发送明确忽略响应的能力提高了协同服务平台302(图3)的效率。
在步骤1710,可储存所接受邀请的细节以供与协同活动相关联的协同应用程序1320(图13)检索。例如,邀请消息1322的部分或全部内容可由邀请服务326(图3)用应用程序编程接口的邀请元素1402(图14)储存。在步骤1714,可由邀请服务326启动协同应用程序1320。
在步骤1716,可例如利用对邀请服务1400应用程序编程接口的邀请元素1412(图14)的响应,发送指示接受邀请的响应消息1324(图13)。在从步骤1716进行到步骤1718时,执行的控制可传递给在步骤1714启动的协同应用程序1320。或者,协同应用程序1320可在并行执行线程中启动,这些线程按需同步,并且在步骤1702接收邀请的邀请服务线程可在步骤1716作出响应之后退出。
在步骤1718,协同应用程序1320(图13)可读取在步骤1710储存的邀请细节。例如,所储存的邀请细节可导致协同应用程序1320的部分(重新)配置。此时,协同应用程序1320可准备好开始参与协同活动,并且在步骤1720可开始参与协同活动。
图18示出根据本发明一实施例的用于响应来自特定应用程序用户接口的协同邀请的示例步骤。在步骤1802,可启动协同应用程序。例如,可由计算机操作系统1304以常规方式启动协同应用程序1320(图13)。在步骤1804,协同应用程序1320可在非标准的应用程序专用协同通信端口上创建邀请收听器。例如,协同应用程序1320可利用邀请服务1400应用程序编程接口的创建邀请收听器元素1404(图14)来在与为协同服务平台302(图3)保留的端口不相同的TCP/IP端口上创建一邀请收听器。
稍后,在步骤1806,可在非标准端口上接收协同邀请。例如,在步骤1514(图15)发送的邀请消息1322(图13)可能已被发送给应用程序专用端口和/或端点。在步骤1808,协同应用程序1320用户可接受、拒绝、或明确忽略邀请。例如,协同应用程序1320可显示具有与决定:接受、拒绝或忽略相对应的用户界面元素的用户界面。然后用户可通过选择相应的用户界面元素来选择所需响应。如果用户接受邀请,则过程可继续到步骤1810。如果用户拒绝邀请,则过程可继续到步骤1812。如果用户忽略该邀请,则过程可继续到步骤1814。
在各个步骤1810、1812和1814,可向邀请者发送适当的邀请响应。各个步骤1810、1812和1814可例如利用对邀请服务1400的邀请元素1412(图14)的响应来用分别设置成接受、拒绝或忽略的邀请响应动作发送响应消息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,计算机用户可向计算机的操作系统(OS)认证。例如,用户可登陆到网络化计算环境200的计算机204、206、208、212、214或216(图2)之一。适当的计算机操作系统包括能支持协同服务平台302(图3)的计算机操作系统,诸如任何适当版本的“微软WINDOWS”或“UNIX”计算机操作系统。向计算机操作系统认证可建立计算机用户的计算机识别身份,并且具体地可使计算机用户与一MeContact对象406(图4)实例相关联。
在步骤1904,可初始化与协同服务平台302的发布服务306(图3)的通信。如上所述,发布服务306可以是无服务器的。例如,在步骤1904,计算机用户可加入结合有发布服务306的对等(P2P)网络。在步骤1906,可例如用一个或多个在场通知消息向发布服务306发布与计算机用户相关联的MeContact对象406(图4)中所包含的和/或由其所引用的部分或全部数据,由此建立计算机和协同服务平台302用户的协同在场。
在步骤1908,可初始化与联系人存储318(图3)的通信。例如,联系人存储可以是诸如数据库的常规数据存储,并且初始化与联系人存储318的通信可包括建立与数据存储的通信会话。在步骤1910,可向联系人存储318查询用户的伙伴类联系人。在本发明一实施例中,查询联系人存储318包括去除对MeContact对象406的伙伴元素904(图9)中所包括的联系人对象402(图4)的一个或多个引用。
在步骤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发现的端点)相关联的端点发送在场预订消息。在场预订消息可指定对与联系人相关联的部分或全部协同在场信息的预订。例如,在场预订消息可指定对可通过在场对象600应用程序编程接口的富文本描述元素602(图6)、端点元素604、聚集状态元素606、聚集能力元素608、以及发布对象元素610的一个或多个可访问的在场信息的预订。例如响应于步骤1914(图19)的预订而发送的在场通知消息可能仅在预订所覆盖的一部分在场改变时发送、并且可能仅需包括已改变的那部分在场信息。
在步骤2014,可确定在该组伙伴类联系人中是否还有伙伴类联系人。如果还有伙伴类联系人,则过程可返回到步骤2002以从该组中选择下一个联系人。否则,过程可继续到诸如步骤1914(图19)和/或图21的步骤2102的其它步骤。
图21示出根据本发明一实施例的用于接受在场预订的示例步骤。在步骤2102,可接收在场预订消息。例如,这可以是在步骤2008(图20)发送的在场预订消息。在步骤2104,可检索与在场预订消息的发送者相关联的联系人信息。例如,在场预订消息可引用与发送者相关联的联系人对象402(图4)实例。在场预订消息的接收者可向联系人管理服务304(图3)检索发送者的联系人信息。
在步骤2106,可确定是否已建立了针对在场预订消息发送者的预订策略。例如,与联系人管理服务304(图3)所管理的发送者相关联的联系人信息可包括发送者与发送者的预订策略之间的关联。或者,预订策略可针对所有用户,或针对发送者是其一成员的某组用户。
简单预订策略的示例包括:阻止和允许。即,阻止来自联系人的预订请求、或允许来自联系人的预订请求。在本发明一实施例中,发送者的预订策略由关联于接收者的MeContact对象406实例的获授权用户元素906(图9)所引用的一组联系人对象402(图4)实例确定。如果关联于发送者的联系人对象402实例在获授权用户元素906所引用的组中,则允许该发送者,否则阻止该发送者。
在本发明一实施例中,更复杂的预订策略是可能的。例如,更复杂的预订策略可阻止和/或允许对用户的一个或多个在场信息子集的预订。允许对在场对象600的聚集状态606(图6)和富文本描述602的预订,但阻止对其它在场对象元素604、608、610的预订是一个可能示例。在场对象元素602、604、606、608和610的任何适当子集(包括全部),和/或在场对象元素602、604、606、608和610所引用的编程对象410、412、418可以是预订策略和/或预订的主体。
如果预订策略针对预订消息的发送者,则过程可继续到步骤2108。否则,过程可继续到步骤2110。在步骤2110,可向与作为预订主体的协同在场相关联的协同服务平台302(图3)的用户查询相关于在场预订消息的发送者的预订策略。例如,发布服务306可呈现显示与发送者相关联的联系人信息、以及诸如阻止或允许的预订策略选项的用户界面(例如图形用户界面或GUI)。然后用户可用该用户界面选择该发送者的预订策略。
在步骤2112,可对发送者设置用户所选择的预订策略。例如,预订策略可通过协同服务平台302(图3)的联系人管理服务304关联于发送者,或者对关联于发送者的联系人对象402(图4)的引用可被添加到由关联于接收者的MeContact对象406实例的获授权用户元素906(图9)所维护的一组引用中。在步骤2108,因为建立了相关于发送者的预订策略,所以可确定该预订策略是要阻止预订。如果预订策略是阻止来自发送者的预订,则过程可继续到步骤2114。否则,过程可继续到步骤2116。
在步骤2116,可接受协同在场预订。例如,由在场预订消息指定的预订可通过联系人管理服务304(图3)与关联于接收者的MeContact对象406相关联。在本发明一实施例中,由在场预订消息指定的预订可通过将关联于发送者的联系人对象402(图4)实例添加到由关联于接收者的MeContact对象406实例的活动用户元素908(图9)所引用的一组联系人对象402实例中来接受。当预订比允许和阻止更为复杂时,可在接受之前相关于与发送者相关联的预订策略来过滤由在场预订消息指定的预订。例如,如果预订是针对所有在场信息的,但预订策略将预订限制于聚集状态,则所接受的预订将仅仅是聚集状态。步骤2108和2116一起可确保根据预订策略来接受预订。
在步骤2114,可确定在场预订消息的发送者是否是接收者的伙伴类联系人。例如,可在关联于接收者的MeContact对象900(图9)的伙伴元素904所引用的一组联系人对象402(图4)实例中检查与在场预订消息的发送者相关联的一联系人对象402实例。发布服务306(图3)可用联系人管理服务304确定在场预订消息的发送者是否是接收者的伙伴类联系人。如果在场预订消息的发送者是接收者的伙伴类联系人,则过程可继续到步骤2118。否则,过程可继续到步骤2120。
已确定了在场预订消息的发送者是接收者的伙伴类联系人之后,在步骤2118,可确定在场预订消息的接收者当前是否预订了发送者的在场。例如,发布服务306(图3)应用程序编程接口可具有一枚举预订元素,使得指定联系人进行的一组预订能够枚举,并且可在该组预订中检查对发送者在场进行的预订。替代地或此外,关联于接收者的MeContact对象406(图4)实例的伙伴元素904(图9)所引用的联系人信息可包括对于每个伙伴类联系人在场预订是否已被该联系人接受的指示。
如果确定在场预订消息的接收者当前预订了发送者的在场,则过程继续到步骤2120。否则,接收者可在步骤2122预订发送者的在场。例如,可能是在场预订消息的接收者先前已执行了以上参照图20所述搜索发送者的步骤,但发送者没有在线而接收者在再次搜索之前在步骤2010(图20)等待。现在发送者变成在线并发出在场预订消息。不继续等待、然后花费计算和网络资源再次搜索发送者,在本发明一实施例中,接收者可用互换的在场预订消息对来自伙伴类联系人的在场预订消息作出响应。在步骤2122,互换的在场预订消息可如以上对步骤2008(图20)的描述被发送给伙伴类联系人。
在步骤2120,可根据在步骤2116接受的在场预订向在场预订消息的发送者发送一个或多个在场通知消息。初始在场通知消息可包含与所接受预订相匹配的所有在场信息,或者例如知道接收者已拥有的在场信息上的一组在场差异。在初始在场通知消息之后,可发送附加在场通知消息以向用户通知协同在场更新。例如,在对特定协同服务平台302(图3)用户的协同在场的一个或多个更新之后,可向发布服务306(图3)发送一个或多个在场通知消息。对于每个对用户在场的预订,发布服务306可确定在场通知消息所引用的一个或多个在场信息子集是否与预订相匹配。对于每个匹配的预订,发布服务306可向进行预订的协同服务平台302用户传播该在场通知消息。
本文中所引用的包括出版物、专利申请和专利的所有参考文献都通过相同程度的引用结合于此,就像每篇文献都被个别和具体地指示为通过引用结合并在本文中全部地阐述。
在描述本发明的上下文中(特别是在以下权利要求的上下文中)术语“一”、“一个”和“该”及类似代词的使用应被解释为涵盖单数和复数,除非另有明确指示或明确与上下文相矛盾。术语“包括”、“具有”、“包含”和“含有”应被解释为开放式术语(即意思是“包括但不限于”),除非另有注释。本文中值的范围的引用仅仅旨在用作对落入该范围的每个单值的分别引用的速记法,除非另有指明,并且每个单值就像单独引用一样被结合到本说明书中。本文中引用的所有方法可以任何适当顺序执行,除非本文中另有指示或否则明显与上下文矛盾。任何和所有示例的使用、或本文中所提供的示例性语言(例如“诸如”)仅仅旨在更佳地说明本发明,而不是对本发明的范围提出任何限制,除非另作权利要求。本说明书中没有语言应被解释为指示任何非权利要求要素对本发明的实践是必要的。
本发明的优选实施例在本文中描述,包括为实现本发明的发明人所知的最佳模式。那些优选实施例的变体在本领域普通技术人员阅读了前面的描述之后会变得显而易见。发明人期望本领域技术人员能适当地采用这些变体,并且发明人期望本发明能以不同于本文中具体描述的其它方式实践。因此,本发明包括适用法所允许的附加在此后的权利要求中所引用的主题的所有变体和等效方案。此外,所有可能变体中的上述要素的任何组合被本发明包括在内,除非另有指明或明显与上下文相矛盾。

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所述的方法,其特征在于,进一步包括:
提供注册能力元素,用于向所述协同邀请服务注册协同能力;
提供取消注册能力元素,用于向所述协同邀请服务取消注册协同能力;以及
提供枚举能力元素,用于枚举向所述协同邀请服务注册的能力。
CN200580049554XA 2005-04-25 2005-08-01 协同邀请系统和方法 Active CN101167068B (zh)

Applications Claiming Priority (3)

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
PCT/US2005/027581 WO2006115527A1 (en) 2005-04-25 2005-08-01 Collaborative invitation system and method

Publications (2)

Publication Number Publication Date
CN101167068A CN101167068A (zh) 2008-04-23
CN101167068B true CN101167068B (zh) 2010-04-21

Family

ID=37188608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580049554XA Active CN101167068B (zh) 2005-04-25 2005-08-01 协同邀请系统和方法

Country Status (11)

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

Families Citing this family (47)

* 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
WO2013106490A1 (en) * 2012-01-09 2013-07-18 Nielsen Christine Marie System and methods for an improved communication and interactive news forum
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

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
RU2385487C2 (ru) 2010-03-27
MX2007013353A (es) 2008-01-11
US7752253B2 (en) 2010-07-06

Similar Documents

Publication Publication Date Title
CN101167068B (zh) 协同邀请系统和方法
CN101268454A (zh) 与无服务器在场协同的系统和方法
US8764567B2 (en) System and method for implementing turn-based online games
EP1386448B1 (en) Group communication method for a wireless communication device
US7756924B2 (en) Peer communities
JP2008539504A5 (zh)
CN103348633B (zh) 用于管理不同的服务提供方之间的点对点连接的装置和方法
US9792311B2 (en) System and method for managing a partitioned database of user relationship data
US8332471B2 (en) System for enhanced management of social networks on mobile devices
WO2012166557A1 (en) Friend recommendation system and method
Dodson et al. Musubi: disintermediated interactive social feeds for mobile devices
US20120310956A1 (en) System and method for processing graphs of user relationships in an online service
CN104011630A (zh) 私有交互中枢
CN102904733A (zh) 分布式、可缩放、可插入的会议体系结构
CN101218784A (zh) 对等群组管理框架和方法
CN106211020A (zh) 移动设备的ad hoc对等联网
KR102117886B1 (ko) 블루투스 네트워크를 통한 근거리 검증 기반의 커뮤니티 서비스 제공 방법
Väänänen-Vainio-Mattila et al. User experience of social ad hoc networking: findings from a large-scale field trial of TWIN
KR101466329B1 (ko) 소셜 네트워크 서비스 방법 및 시스템
Aneja et al. Profile‐Based Ad Hoc Social Networking Using Wi‐Fi Direct on the Top of Android
US20060242236A1 (en) System and method for extensible computer assisted collaboration
JP2005228122A (ja) サービス管理方法/プログラム/プログラム記録媒体/装置/サービスシステム
JP2007048186A (ja) コミュニティシステムのサーバ
Purtell et al. Musubi: Disintermediated Interactive Social Feeds for Mobile Devices
Uldal Casual resource sharing with shared virtual folders

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150430

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150430

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.