用于动态确定目标的即时消息传递的方法

文档序号:6438272阅读:128来源:国知局
专利名称:用于动态确定目标的即时消息传递的方法
技术领域
本发明一般地涉及即时消息传递(instant messaging)系统和方法。
背景技术
作为一种企业生产率解决方案,即时消息传递的重要性不断地提升。新的能力和功能被不断地加到已有的构成了即时消息传递的基础的一对一的消息交换和在场信息(presence information)。这些能力包括分组聊天、音频和视频消息、协作工具以及文件传输。
虽然已经进行了大量的工作扩展即时消息传递系统的功能,但是现有可用于利用这些系统的粒度级别仍然大得惊人。即时消息传递软件一般提供了与另一个人通信、与由用户明确地挑选出的一小组人通信、以及在某些时候与预先确定的一大组人通信的能力。没有方法可以自动地将符合某个标准的人作为一个消息(或聊天邀请、音频片段或文件传输)的目标。因此,本技术领域中所需要的是一种自动地将满足所选择的标准的个人或听众作为消息的目标的方法。

发明内容
此处公开的通信系统和方法克服或缓解了现有技术的上面所讨论的以及其它的缺点和不足。此处在一个示例性实施例中公开的是一种用于在网络通信系统中进行即时消息传递的方法,包括为一个接受者制定一个组合消息,该组合消息包括一代码和一通信消息;并且将所述代码和组合消息中的至少一个传输给接收者。在另一示例性实施例中该方法还包括执行代码以建立下列各项中的至少一个基于所述代码修改与接收者相关联的一持续状态以便指示是否应该传送所选择的通信消息,并且传送所述通信消息;以及建立所述代码,作为用于评估是否应当传送所选择的通信消息的判定(predicate);返回一个指示该判定的函数值;以及如果该函数值指明应该传送该通信消息,则传输该通信消息。
此处在另一示例性实施例中公开的是一种用于即时消息传递的网络通信系统,包括一客户机-服务器网络系统,其具有与客户机和服务器通信的服务器,和一个用于在该客户机和该服务器之间通信的网络,该服务器和该客户机中的每一个作为组合消息的发送者或接收者中的至少一方而运行;其中所述组合消息包括代码和通信消息;并且其中发送者将所述代码和所述组合消息中的至少一个传输给接收者。
此处在另一示例性实施例中公开的是一种上述的网络通信系统,其还包括执行代码以建立下述各项中的至少一个基于所述代码修改与接收者相关联的一持续状态以便指示是否应该传送所选择的通信消息,并且传送所述通信消息;以及建立所述代码作为用于评估是否应当传送所选择的通信消息的判定;返回一个指示该判定的函数值;并且如果该函数值指明应该传送该通信消息,则传送该通信消息。
此处在另一示例性实施例中公开的是一种存储介质,其上编码有机器可读的计算机程序代码,所述代码包括用于使得计算机执行上述的用于在网络通信系统中进行即时消息传递的方法的指令。
在此处的另一示例性实施例中还公开了一种计算机数据信号,所述数据信号包括被配置为使得控制器执行上述的用于在网络通信系统中进行即时消息传递的方法的代码。


通过参考附图并阅读对示例性实施例的详细说明,可以最好地理解本发明的这些和其它的目的和优点,各个附图中同样的元素被标以同样的数字,其中图1是示出了根据一个示例性实施例的客户机服务器网络通信系统的图示;并且图2是示出了根据本发明的一个示例性实施例在一个发送者和几个接收者间的消息通信的部分图示。
通过示例并结合附图,下面的详细说明解释了本发明的优选实施例以及本发明的优点和特征。
具体实施例方式
如前面说明的,现有可用于利用即时消息传递系统的粒度级别现在仍然是较大的。即时消息传递软件一般提供了与另一个人通信、与由用户明确地挑选出的一小组人通信、以及在某些时候与预先确定的一大组人通信的能力。在此处的一示例性实施例中公开的是一种便利于自动地将满足选定标准的个人或听众作为消息的目标的方法和系统。
现在参考图1,其示出了根据本发明的一个示例性实施例的一种即时消息传递网络系统10。即时消息传递系统包括,但是并不限于,服务器系统12以及各客户机14,所述服务器系统12和各客户机14通过各种通信装置(例如网络)互连,以便利在客户机14和服务器12之间以及客户机14和客户机14之间进行信息传输。所述即时消息传递系统可用于各种通信,包括但并不限于,即时消息传递、电子邮件、数据、声音和图像传输、因特网服务等等,以及包括上述至少一种的组合。每个客户机系统14可以是一通用台式计算机,其注册于一网络通信系统,例如因特网服务提供商、电子邮件系统等,并且包括有驻留在存储器中并且在客户机系统14上执行的操作系统软件和任何其它适当的程序。本领域的技术人员将会理解,即时消息传递网络系统10可以在具有各种不同体系结构的计算机系统上执行。客户机系统14通过诸如因特网、内部网、LAN、WAN或任何其它合适的联网体系结构的装置等网络连接与主机系统通信,所述主机系统也可以是服务器系统12。
服务器系统12是指为诸如客户机系统14的计算机客户端提供内容的源。例如,服务器12可以由一个为其客户维护一web站点的商业企业运行。另一个服务器12可以是一企业服务器或者第三方主机服务器,该第三方主机服务器为将他们的内容管理外包给该第三方主机服务器的企业、个人或者组织管理大量的数据。虽然只示出了一个服务器,但是应当理解可以使用任意数目的服务器12和客户机14,以实现所说明的实施例的优点。
在一个实施例中,服务器执行一即时消息传递系统10,并且允许客户机系统14访问其此处进一步说明的各种特征和功能。在另一个实施例中,客户机14与服务器12共享即时消息传递系统10的执行。
现在再参考图2,在一个示例性实施例中,在即时消息传递系统10中使用基于客户机的判定(或其它代码)和变量解决上面提及的粒度问题。基于客户机的判定和变量提供了允许消息24的发送者20仅面向满足或最好地满足选定标准的那些接收者30的优点。有利地,这种方法避免了迫使消息发送者20或是将潜在的听众接收者的超集作为目标,或是手动地建立接收者30列表。更一般地,此处公开的一示例性实施例允许消息的发起者或发送者20发送任意代码22(也表示为c)或者变量26(也表示为v),以及即时消息24(也表示为m)。代码22或变量26可用于修改接收者30的即时消息传递软件中的持续状态,或是作为一个判定以便确定是否应当将消息显示给接收者或是将其丢弃。
应当理解当在本章节中使用术语“消息”24时,其含义是暗示着在即时消息传递系统10上发送的任何通信,包括,但并不限于,一对一消息、分组聊天邀请、音频、视频和文件传输等。即时消息传递可以被模型化为从发送者或发起者s 20到一个或多个接收者30(也表示为R)的消息24(也表示为m)的单向通信。此外,在一示例性实施例中,一任意代码22(也表示为c)被连接到消息24上以传输给接收者30。在所选择的例子中,代码22可以被用作用于传送消息24的判定。在其他例子中,代码22可以被用于操控接收者30的状态或状态数据。此外,在另一示例性实施例中,使用了状态变量26(也表示为v)来跟踪接收者30的状态。
在一示例性实施例中,使用了两种类型的代码22。第一种代码22被配置为读取并修改由接收者30存储的持续状态。在这个例子中,当消息24和代码22到达接收者30时,接收者30的客户端软件所执行的事件的顺序是1)执行代码22(以获得它的改变状态的副作用)2)向接收者30传送消息24。
可以在一示例性实施例中使用的另一种类型的代码22是判定代码22。判定代码22是执行于接收者30的机器上并且作为该操作的一函数返回一布尔值28任意的代码22,所述布尔值指示着是否应当将消息24传送给特定的接收者30。在这个例子中,当消息24和代码22到达接收者30的机器时,其中的客户端软件执行以下操作1)基于判定代码22执行。
2)返回函数的值28,该值也代表着代码22执行结果的指示。
3)评估函数的值,如果值为真,则向接收者30传递消息24;否则丢弃消息24。
应当理解,可以将单个消息24与状态改变代码和判定代码22两者一起发送。还应当理解一种实现可以自由地以任何方式提供这种判定代码22,只要所述任何方式实施了这样的整体语义,即,如果满足了代码26的判定,则应当将消息24传送给接收者30。因此,例如,如果消息24是大的(诸如视频片段),则可以首先发送并评估判定代码26,从而仅在获得对判定代码22的肯定的响应时才发送消息24。
通过示例可以清楚地了解诸示例性实施例的一个或多个特征和益处。在一例子中,通过一大型世界性公司的即时消息传递系统发送病毒警告的网络管理员可以使用此处说明的一示例性实施例。管理员不能简单地将该消息发送一次,因为那些离线的雇员将会收不到该消息。因此管理员可能决定在全天内发送4次,以试图访问到所有的雇员。在没有所说明的实施例的优点时,许多用户将多次收到相同的消息。这种冗余的消息传递是低效率的并且带来很大的麻烦。使用此处说明的方法,消息将与状态改变和/或判定代码一起发送。在一例子中,状态改变代码可以简单地设置一个由V表示的值,它指示着已经传递该消息。伴随着以后的消息的判定代码检查值V是否已经被设置了,并且如果是的则丢弃该消息。因此,如果当该消息首轮发送时一用户处于离线状态,则将不设置值V。在第二轮中,假设现在该用户在线,由于值V还没有设置,所以传送该消息,并且状态改变代码设置值V。如果在第三次或第四次发送该病毒警告时该用户在线,则他将看不到该消息,因为判定代码将检测到值V的存在并且丢弃该消息。
其它的示例性实施例可以包括涉及直接、定向的广告(例如,基于安装在接收者的/用户的计算机上的软件)、软件建议(例如,如果判定代码检测到用户的机器上没有安装防火墙软件则提醒安装该软件)、以及电子邮件提醒(例如,通过运行判定代码检查用户电子邮件收信箱的“最后访问日期”)的应用。
在另一示例性实施例中,可以使用一个或多个状态变量26来跟踪接收者30的状态的各个方面。此外,可以基于发送者20将状态变量26定义在名称空间内(以避免多个发送者20相互影响各自在各个接收者的机器上的状态变量26)。例如,在一示例性实施例中,变量26可以由几个参数表征或者是几个参数的函数。这些参数可以包括,但不限于,状态变量(v,r,s),其中v是状态变量的名称,r是将变量v 26施用在其上的接收者30,并且s是发送者20,该发送者20控制状态变量v 26的行为并基于状态变量26判定要发送到接收者30的消息24。
在一示例性实施例中,可以如下的方式建立并更新值(v,r,s)●发送者20可以将状态变量26设置或更新为严格意义上的值(例如,状态变量(v,r,s)=false);●发送者20可以运行选定的代码或过程,以便为状态变量(v,r,s)26计算值(例如,状态变量(v,r,s)26为发现安装在接收者系统上的所选择的软件的版本);并且●发送者20可以选定的时间间隔运行选定的代码以便计算和更新状态变量(v,r,s)26的值(例如,状态变量(v,r,s)为每4小时采样的平均内存使用率)。
应当理解在一个实施例中期望状态变量26存储在接收者30的系统内。在另一个实施例中,应当理解服务器12可以存储状态变量(v,r,s)26。在这个例子中,只有查询接收者30系统的状态的代码22(判定或状态变量26更新)才在接收者的机器上执行,然后可以将结果返回给服务器12。
这种另一个实施例提供了明显的优点,包括但不限于●如果被判定的消息24(例如,带有仅取决于现存的状态变量26的判定代码22的消息)要被发送给许多接收者30,则只需要向服务器12发送一次消息24服务器12可以随后施用所述(多个)判定,并且将消息24的多个拷贝仅发送到满足判定代码22的接收者30。有利地,这种方法减少了消息流量并且因此节省了带宽。
●在服务器12上存储状态变量26便利了利用所述状态变量26而不管特定的接收者30正使用哪个客户端14计算机。
●可以为在服务器12上维护的状态变量26提供增强的私密性和防篡改的能力。
应当理解,所公开的实施例可能产生与安全考虑有关的几个方面。最主要的担心是客户端14的(多个)机器上的代码的执行。因此,为了维持标准的安全协议,应使用一种安全机制以确保代码的执行不是破坏性的或危及敏感数据的安全。虽然此处没有讨论安全技术,但是可以使用几种现有的技术来提供足够的安全性,以便便利于使用所公开的实施例。例如,客户端代码可以被局限在易于被制约/约束的环境(例如,一种脚本语言)中,从而可以设置并随后监视允许所述代码进行的操作,以便防止未授权代码的执行。另一个安全机制可以是通过证书和数字签名来确保发送者的真实可靠。
为了执行规定的功能和所希望的处理以及用于所述功能和处理的计算(例如,便利于在各个服务器12和客户机14之间进行即时消息传递等),(多个)服务器12和/或(多个)客户机可以包括一计算机系统,该计算机系统包括中央处理单元(CPU)、监视器、存储设备等。所述计算机系统可以包括,但不限于,(多个)处理器、(多个)计算机、存储器、存储设备、(多个)寄存器、时序、(多个)中断、(多个)通信接口、以及输入/输出信号接口等,以及包括上述至少一种的组合。例如,计算机系统可以包括用于控制此处描述的通信交换的信号输入/输出。计算机系统的其它特征和其中某些过程可能在本文的各处公开。
在整个即时消息传递系统10中执行的处理可以各种方式进行分布。例如,可以将执行的处理分布在服务器12或客户机14内以及所使用的其它处理器间。通过组合在各个计算机系统内分布的过程,这种分布可以消除对所说明的任何这种组件或过程的需要,反之亦然。这里描述的每个元件可以具有将在此处更详细地说明的其它功能,并且还包括辅助于所公开的实施例的功能和处理。如此处所使用的,信号连接可以物理地采用任何能够传输信号的形式,包括,但不限于,电的、光的或无线电的。
所公开的发明可以体现为计算机、控制器或处理器执行的过程以及用于实现这些过程的装置的形式。本发明还可以体现为计算机程序代码的形式,所述计算机程序代码包括体现在有形介质16,诸如软盘、CD-ROM、硬盘驱动器或任何其它计算机可读存储介质中的指令,其中当计算机、控制器或处理器12、14装入所述计算机程序代码并执行它时,所述计算机、控制器或处理器12、14就成为实现本发明的装置。本发明还可以体现为作为数据信号17的计算机程序代码的形式,所述数据信号例如或是存储在存储介质中,由计算机、控制器或处理器12、14装入并/或执行,或通过某种传输介质诸如通过电线连线或电缆连线、通过光纤或通过电磁辐射被传输,其中当计算机12、14装入并执行所述计算机程序代码时,计算机12、14就成为实现本发明的装置。当在通用处理器上执行时,计算机程序代码段配置该处理器以创建特定的逻辑电路。
应当理解,第一、第二或其它用于表示类似项的类似用语的使用并不旨在指定或暗示任何特定的顺序,除非另有说明。
虽然已经参考了一示例性实施例说明了本发明,但是本领域的技术人员应当理解在不脱离本发明的范围的情况下可以做出各种改变,并且可以用各种等同物替代其中的元件。此外,可以做出很多修改以使特定的情况或材料适应本发明的讲述,而不脱离本发明的基本范围。因此,本发明并不旨在限制在作为被构思用于实施本发明的最佳模式而公开的特定的实施例,而是本发明将包括落在所附权利要求的范围内的所有实施例。
权利要求
1.一种用于即时消息传递的网络通信系统,包括客户机-服务器网络系统,其具有与客户机和服务器通信的服务器以及用于在它们之间通信的网络,每个所述服务器和所述客户机作为组合消息的发送者和接收者中的至少一方而运行;其中所述组合消息包括代码和通信消息;以及其中所述发送者将所述代码和所述组合消息中的至少一个发送给所述接收者。
2.如权利要求1的网络通信系统,还包括执行所述代码以建立以下各项中的至少一个基于所述代码修改与所述接收者相关联的持续状态,以指示是否应该传送所选定的通信消息,并且传送所述通信消息;以及建立所述代码,作为用于评估是否应传送所选择的通信消息的判定;返回可指示该判定的一个函数值;并且如果所述函数值指示应该传送所述通信消息,则传输所述通信消息。
3.如权利要求1的网络通信系统,还包括与所述接收者相关联的状态变量。
4.如权利要求3的网络通信系统,其中所述状态变量相应于所述接收者的状态的一个或多个方面。
5.如权利要求4的网络通信系统,其中所述状态变量基于消息的选定的发送者定义在名称空间中。
6.如权利要求3的网络通信系统,其中所述状态变量包括一个函数和一个或多个参数这两者中的至少一个。
7.如权利要求3的网络通信系统,其中所述参数包括状态变量名称、发送者、接收者中的至少一个。
8.如权利要求3的网络通信系统,其中所述状态变量至少被进行如下一种操作由发送者修改、由在所述接收者处运行的所选定的代码确定、以及由在所述接收者处运行的所选定的代码更新。
9.如权利要求3的网络通信系统,还包括在与接收者分离的服务器上存储状态变量。
10.如权利要求1的网络通信系统,其中所述代码评估所述接收者的状态。
11.如权利要求10的网络通信系统,其中所述接收者的所述状态包括是否以前已经接收过消息。
12.如权利要求1的网络通信系统,还包括在接收者处建立一种安全机制,以便确保被传输给接收者并在接收者处执行的代码不是入侵性的。
13.一种用于在网络通信系统中进行即时消息传递的方法,包括为接收者制定组合消息,所述组合消息包括代码和通信消息;以及向接收者发送所述代码和所述组合消息中的至少一个。
14.如权利要求13的方法,还包括执行所述代码建立以下各项中的至少一个基于所述代码修改与所述接收者相关联的持续状态,以指示是否应该传送所选定的通信消息,并且传送所述通信消息;以及建立所述代码,作为用于评估是否应传送所选择的通信消息的判定;返回可指示该判定的一个函数值;以及如果所述函数值指示应该传送所述通信消息,则传输所述通信消息。
15.如权利要求13的方法,还包括建立与所述接收者相关联的状态变量。
16.如权利要求15的方法,其中所述状态变量相应于所述接收者的状态的一个或多个方面。
17.如权利要求15的方法,其中所述状态变量基于消息的选定的发送者定义在名称空间中。
18.如权利要求15的方法,其中所述状态变量包括一个函数和一个或多个参数这两者中的至少一个。
19.如权利要求15的方法,其中所述参数包括状态变量名称、发送者、接收者中的至少一个。
20.如权利要求15的方法,其中所述状态变量至少被进行如下操作中的一种由发送者修改、由在所述接收者处运行的所选择的代码确定、以及由在所述接收者处运行的选定的代码更新。
21.如权利要求15的方法,还包括在与接收者分离的服务器上存储状态变量。
22.如权利要求13的方法,其中所述代码评估所述接收者的状态。
23.如权利要求22的方法,其中所述接收者的所述状态包括是否以前已经接收过消息。
24.如权利要求13的方法,还包括在接收者处建立一种安全机制,以确保被传输给接收者并在接收者处执行的代码不是入侵性的。
25.一种编码有机器可读的计算机程序代码的存储介质,所述代码包括用于使得计算机执行用于在网络通信系统中进行即时消息传递的方法的指令,所述方法包括为接收者制定组合消息,所述组合消息包括代码和通信消息;以及向接收者发送所述代码和所述组合的消息中的至少一个。
26.如权利要求25的存储介质,还包括这样的代码,所述代码包括用于使得计算机执行用于在网络通信系统中进行即时消息传递的方法的指令,所述方法还包括执行所述代码以建立以下各项中的至少一个基于所述代码修改与所述接收者相关联的持续状态,以指示是否应该传送所选定的通信消息,并且传送所述通信消息;以及建立所述代码,作为用于评估是否应传送所选择的通信消息的判定;返回可指示该判定的一个函数值;以及如果所述函数值指示应该传送所述通信消息,则传输所述系统消息。
27.一种计算机数据信号,所述数据信号包括被配置为使得控制器执行用于在网络通信系统中进行即时消息传递的方法的代码,所述方法包括为接收者制定组合消息,所述组合消息包括代码和通信消息;以及向接收者发送所述代码和所述组合的消息中的至少一个。
28.计算机数据信号,所述数据信号还包括被配置为使得控制器执行用于在网络系统中进行即时消息传递的方法的代码,所述方法还包括执行所述代码以建立以下各项中的至少一个基于所述代码修改与所述接收者相关联的持续状态,以指示是否应该传送所选定的通信消息,并且传送所述通信消息;以及建立所述代码,作为用于评估是否应传送所选择的通信消息的判定;返回可指示该判定的一个函数值;以及如果所述函数值指示应该传送所述通信消息,则传输所述系统消息。
全文摘要
一种用于即时消息传递的网络通信系统,包括具有与客户机和服务器通信的服务器以及用于在它们之间进行通信的网络的客户机-服务器系统,每个所述服务器和所述客户机作为组合消息的发送者和接收者中的至少一方而运行;其中组合消息包括代码和通信消息;并且其中发送者向接收者发送所述代码和通信消息中的至少一个。一种用于在网络通信系统中发送即时消息的方法,包括为接收者制定组合消息,所述组合消息包括代码和通信消息;并且向接收者发送所述代码和所述组合消息中的至少一个。
文档编号G06Q10/00GK1625162SQ20041009094
公开日2005年6月8日 申请日期2004年11月10日 优先权日2003年12月1日
发明者J·A·阿尔沃诺斯, L·费根鲍姆 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1