即时消息活动通知的制作方法

文档序号:7681194阅读:262来源:国知局
专利名称:即时消息活动通知的制作方法
技术领域
本发明涉及即时消息系统中的活动通知。
背景技术
即时消息(IM, Instant Messaging)是一种流行的基于计算机的通信形 式,其中用户之间实时地交换基于文本的消息。要使用即时消息系统,必须 将用户的用户终端连接至例如互联网的通信网络,并且必须在用户终端上执 行即时消息客户端应用程序。通过在通信网络上建立连接,客户端应用程序 允许用户发起与远程用户的即时消息会话。然后用户可以键入消息并将该消 息发送至远程用户(通过按下回车键或者激活"发送"按钮),则该消息几乎 实时地(取决于网络延迟)显示在远程用户的客户端程序的用户界面中。随 后远程用户可以接着键入答复并将该答复发送至另一个用户。消息的交换可 以按着这种方式继续,形式类似于面对面的口头会话。
因此,相比较其他例如电子邮件的基于文本的电子通信形式,IM由于有 更多的交互性并因此能提供更丰富的用户体验而具有显著的优势。但是,由 于键入信息会占用明显的一段时间,常会出现这种状况用户之一不知道另 一个用户正在键入消息,并因此也键入自己的消息。这导致两个用户常常同 时或者紧接着发送消息,因此导致IM相当于互相交谈。这样会打断会话流而 使会话变得不自然。
为了改进会话流,已知用标识符为IM会话的参与者提供关于参与者之一 正在键入的指示。例如,当用户开始在IM客户端程序的输入区域键入消息时, 创建消息并通过通信网络传送至远程用户。响应于接收到消息,远程用户的 客户端程序显示"用户X正在键入"形式的通知。这为远程用户提供视觉的 指示,指示该用户正在键入,因此提示远程用户在输入自己的消息之前一直 等待直到该消息发出。这样通过阻止用户超越彼此键入而有利于会话流。
在申请号为6, 301,609的美国申请中公开了用于控制IM活动(activity) 标识符的显示的第一种方法。在此方法中,IM客户端程序无论何时检测到键盘的活动,都向远程用户发送消息。对该消息的接收提示远程用户的客户端 程序的用户界面显示活动通知。发送用户的客户端程序在发送通知消息之后 启动计时器,使得如果在预定的时间段内没有检测到进一步的活动,则发送 第二消息以指示活动已经停止。对第二消息的接收提示远程用户的客户端程 序的用户界面消除活动通知。
申请号为6,519, 639的美国专利申请公开了控制IM标识符的显示的第二 种方法。在公开的方法中,IM客户端程序检测到键盘的活动,则向远程用户 发送活动消息。对该消息的接收提示远程用户的客户端程序的用户界面显示 活动通知。然后客户端程序等待一段预定的时间段,并且如果在此时间段内 客户端程序有任何活动,则向远程用户发送进一步活动消息。在远程用户的 客户端程序收到活动消息之后,也启动计时器,使得如果在计时器终止时未 收到进一步活动消息,则删除显示给远程用户的活动通知。
申请号为6, 631, 412的美国专利申请公开了以上描述的第二种方法的扩 展,其中当远程用户的终端收到包括由用户键入的信息在内的有效消息时, 删除显示给远程用户的活动通知。
发明人注意到仅是键盘在特定的时间段内是否进行输入的指示不能准确 的表示IM会话中实际的用户行为。例如,用户常常开始键入然后改变想法并 删除消息。在上述的方法中,虽然并没有消息正在准备,也会导致远程用户 的客户端程序显示活动标识符。由于当远程用户等待永不会到达的信息时涉 及的延迟,这样的结果明显地打断了会话流。这是因为远程用户的客户端程 序依赖于计时器来更新活动标识符。这导致用户失望,并使会话变得不自然。 IM活动指示消息的进一步问题是,它们的触发与用户的输入是否是深思熟虑 的无关。而且,对接收者而言,这将产生对于消息的预期,因此在随后没有 消息时会感到失望。

发明内容
因此,存在对解决上述IM活动通知的问题的技术的需求。 根据本发明一个方案,提供一种在消息系统中传送关于用户活动的信息
的方法,包括
监视在所述消息系统中的第一用户的用户终端上执行的客户端程序中的 显示给所述第一用户的输入区域;响应于在所述输入区域处接收到用户激活的输入,分析所述输入,并使用所述分析将所述输入与来自预定的用户活动
集的用户活动类型进行匹配;及将包括表示所述用户活动类型的数据的消息 从所述第一用户的用户终端通过通信网络传送至所述消息系统中的至少一个 其他用户。
在一个实施例中,本方法进一步包括步骤所述至少一个其他用户的用
户终端接收所述消息;从所述消息中提取表示所述用户活动类型的数据;将
来自所述消息的用户活动的类型与最近已知的所述第一用户的活动状态进行
比较,并响应于所述比较而判定要采取的动作;及根据所述动作,更新在所 述至少一个其他用户的用户终端执行的客户端程序的用户界面中显示的用户
活动的标识符。
优选的,所述动作包括下列中的一个从所述用户界面中消除所述标识 符;用不同的标识符替换所述标识符;或者在所述用户界面中维持所述标识 符。优选的,所述用户活动预定集包括下列中的至少一个键入活动;删除 活动;无意输入活动;愤怒用户的活动;消息完成活动;及消息取消活动。
在另一实施例中,本方法进一步包括步骤将从在所述输入区域接收到 输入之后的时段与预定的时间段进行比较;及从在所述输入区域接收到输入 之后的时段超出所述预定的时间段的情况下,将包括表示用户未活动的数据 从所述第一用户的用户终端通过通信网络传送至所述消息系统中至少一个其 他用户的用户终端。
优选的,所述的分析所述输入的步骤包括检测所述第一用户的用户终端 的输入装置上的特定控制器的激活。优选的,所述的分析所述输入的步骤包 括检测所述第一用户的用户终端的输入装置上的控制器的重复激活。优选的, 所述的分析所述输入的步骤包括检测所述第一用户的用户终端的输入装置上 的物理聚集的多个控制器的激活。优选的,所述的分析所述输入的步骤包括 检测所述第一用户的用户终端的输入装置上的多个控制器的同时激活。优选 的,所述的分析所述输入的步骤包括检测呈现在所述输入区域中的字符的数
优选的,所述通信网络为对等网络。
根据本发明的另一个方案,提供一种消息系统,包括通信网络;消息 系统的第一用户的连接到所述通信网络的用户终端;及消息系统的至少一个 其他用户的连接到所述通信网络的用户终端,其中所述第一用户的所述用户终端执行客户端程序,所述客户端程序包括用于监视显示给所述消息系统 的所述第一用户的输入区域的器件;用于响应于在所述输入区域接收到所述 输入而分析用户激活输入,并使用所述分析将所述输入与来自预定的用户活 动集的用户活动类型进行匹配的器件;及用于将包括表示所述用户活动类型 的数据的消息从所述第一用户的用户终端通过通信网络传送至所述消息系统 中的至少一个其他用户的器件。
在一个实施例中,所述至少一个其他用户的用户终端执行客户端程序, 所述客户端程序包括用于在所述至少一个其他用户的用户终端接收所述消 息的器件;用于从所述消息中提取表示所述用户活动类型的数据的器件;用 于将来自所述消息的用户活动的类型与最近已知的所述第一用户的活动状态 进行比较,并响应于所述比较而判定要采取的动作的器件;用于根据所述动 作更新所述至少一个其他用户的用户终端执行的客户端程序的用户界面中显 示的用户活动的标识符的器件。
优选的,所述动作包括下列动作中的一个从所述用户界面中消除所述 标识符;用不同的标识符替换所述标识符;或者在所述用户界面中维持所述 标识符。优选的,所述用户活动预定集包括下列中的至少一个键入活动; 删除活动;无意输入活动;愤怒用户的活动;消息完成活动;及消息取消活 动。
在另一个实施例中,所述第一用户的用户终端上执行的所述客户端程序 进一步包括用于将从在所述输入区域接收到输入之后的时段与预定的时间 段进行比较的器件;及用于在所述从在所述输入区域接收到输入之后的时段 超出所述预定的时间段的情况下,将包括表示用户未活动的数据从所述第一 用户的用户终端通过通信网络传送至所述消息系统中至少一个其他用户的用 户终端的器件。
优选的,所述用于分析输入的器件包括用于检测所述第一用户的用户终 端的输入装置上的特定控制器的激活的器件。优选的,所述用于分析输入的 器件包括用于检测所述第一用户的用户终端的输入装置上的控制器的重复激 活的器件。优选的,所述用于分析输入的器件包括用于检测所述第一用户的 用户终端的输入装置上的物理聚集的多个控制器的激活的器件。优选的,所 述用于分析输入的器件包括用于检测所述第一用户的用户终端的输入装置上的多个控制器的同时激活的器件。优选的,所述用于分析输入的器件包括用 于检测呈现在所述输入区域中的字符的数量的器件。 优选的,所述通信网络为对等网络。
根据本发明的另一方案,提供一种连接至通信网络并执行在消息系统中 使用的客户端程序的用户终端,所述客户端程序包括用于监视显示给所述 用户终端的用户的输入区域的器件;用于响应于在所述输入区域接收到所述 输入而分析用户激活的输入,并使用所述分析将所述输入与来自预定的用户
活动集的用户活动类型进行匹配的器件;及用于将包括表示所述用户活动类 型的数据的消息从所述第一用户的用户终端通过通信网络传送至所述消息系 统中的至少一个其他用户的器件。
根据本发明的另一方案,提供一种计算机程序产品,其包括程序代码器 件,当其由计算机设备执行时,执行根据上述方法的步骤。


为了更好的理解本发明,并且示出可如何实施本发明,将以示例的方式 参照下述的附图,其中
图l示出即时消息系统;
图2示出在頂系统中用于控制活动通知的方法的流程图; 图3示出执行客户端程序软件的用户终端; 图4示出客户端程序的主用户界面;
图5A及图5B示出在IM会话期间用户A及用户B的用户界面; 图6示出提供准确反映用户行为的活动通知消息的方法的流程图; 图7示出活动通知消息的结构;
图8示出收到活动通知消息后客户端程序执行进程的流程图9A及图9B示出显示正常键入活动的用户界面;
图IOA及图IOB示出显示删除活动的用户界面;
图IIA及图IIB示出显示愤怒用户的活动的用户界面;
图12A及图12B示出显示意外输入活动的用户界面;
图13示出用于多方会话的用户界面。
具体实施方式
首先参照图l,图1示出即时消息系统100。 IM系统的第一用户(标记 为"用户A" 102)操作用户终端104,用户终端104被显示为连接至例如因 特网的网络106。用户终端104可以为,例如,个人计算丰几("PC")、个人数 字助理("PDA")、移动电话、游戏设备或者其他能够连接至网络106的嵌入 式设备。用户终端104具有界面器件以接收来自装置的用户的信息或者将信 息输出至装置的用户。在本发明优选的实施例中,用户终端104的界面器件 包括例如显示屏的显示器件及键盘和鼠标。用户终端104经由例如调制解调 器的网络接口 108被连接至网络106,并且用户终端104及网络接口 108之 间的连接可以经由电缆(有线的)连接或者无线连接。用户终端104上运行 有客户端程序110。客户端程序110为在用户终端104中的本地处理器上执 行的软件程序,其在IM系统的用户之间提供IM连接。下文将参照图3、图4 及图5详细描述客户端程序。
同样连接至网络106的是頂系统100中的至少一个其他用户。例如,图 1示出操作用户终端114并且经由网络接口 116连接至网络106的用户B。用 户终端114执行客户端程序软件118,客户端程序软件118类似于用户A 102 的用户终端104上执行的客户端程序110。图1还示出其他用户,利用执行 客户端程序(128、 130)的用户终端(124、 126)经由网络接口 (132、 134) 连接至网络106的用户C及D (分别为120及122)。
请注意,在实践中,会有大量的用户连接至IM系统,但是为了简明而在 图1中没有示出。
在优选的实施例中,IM系统100的客户端程序利用建立在专有协议上的 对等("P2P")网络拓扑结构进行通信。这种类型的通信系统的一个示例为 Skyp,系统。为了访问对等网络,用户必须在用户终端上执行由P2P系统的 操作者提供的客户端程序软件,并且向P2P系统注册。当用户向P2P系统注 册时,中心服务器给客户端程序软件提供数字证书。 一旦给客户端程序软件 提供了证书,随后就可在P2P系统的用户之间建立通信并规定通信路线,而 不再需要使用中心服务器。详细地,用户可以基于一个或多个数字证书(或 者用户身份证明,("UIC"))的交换通过P2P系统建立自己的通信路由,以获 得对P2P系统的访问。用户之间数字证书的交换证明了用户的身份,而且证 明了用户是在P2P系统中得到适当的证实及认证的。因此,数字证书的出现 为用户的身份提供了信任。因此,通信不是利用中心服务器传递的,而是直
ii接从终端用户传递至终端用户,这是对等通信的特点。在W02005/009019中 公开了这样的P2P系统的更多细节。但是,依然可以理解为此处描述的IM 系统还可以使用非P2P通信系统。
如上所述,当用户正在键入时提供用户活动的标识符,以改进用户的体 验及会话流是有利的。例如,如果图1中的用户A 102及用户B 112参加IM 会话,那么如果用户A 102正在客户端程序110中键入消息则在客户端程序 118中通知用户B112 (反之亦然)是有利的。现在参照图2,其示出用于控 制例如图1所示的頂系统中的活动通知的已知方法的流程图。在步骤S202 中,用户(例如用户A 102)发起与另一个用户(例如用户B 112)的IM会 话。在步骤S204中创建跨越网络106的连接。在优选的实施例中,此连接为 P2P连接。
图2中随后的步骤由参加IM会话的各会话方中的每一个客户端程序(例 如IIO、 118)独立执行。在步骤S206中,客户端程序监视在IM客户端程序 的输入区域或部位处是否有任何键入活动。重复步骤S206直至检测到一些活 动。当检测到活动时,在步骤S208中,客户端程序将指示存在用户活动的消 息传送至IM会话中的其他会话方。其他会话方在接收到指示用户活动的消息 时,在用户终端的显示器上显示标识符。
在步骤S210中,在步骤S208中传送活动通知消息的客户端程序使计时 器开始运行。在步骤S212中,客户端程序检查计时器是否终止计时。如果没 有终止,在步骤S214中客户端程序检査在客户端程序的输入区域是否存在进 一步的用户活动。如果没有进一步的输入,那么返回步骤S212并且检査定时 器的终止计时。如果有进一步的用户输入,那么返回步骤S210,使得定时器 再次从头启动(即重启)。如果,当控制返回至步骤S212,发现定时器已经 终止计时,那么客户端程序在步骤S216中将消息发送至其他会话方以指示没 有用户活动。其他会话方接收到指示用户未活动的消息后,则删除用户终端 的显示器上的活动标识符。
因此,当使用图2中示出的方法时,仅有一个清楚的通知,即用户活动 已经开始,其触发将被显示的活动通知。在该方法中,消除活动通知的唯一 方法为收到由于在预定的时间段内没有活动而发出的未活动通知消息。如上 所述,该技术方案不能准确地反映用户的行为,因此导致当未实际键入消息 时显示了活动标识符。图3示出用户终端(例如104)的详细视图,在该用户终端上执行根据 本发明的实施例的客户端程序110。用户终端104包括中央处理单元("CPU") 302,连接至其上的是例如显示屏的显示器304、例如键盘306的输入装置、 例如鼠标308的定点装置,以及可选的扬声器310及话筒312。 CPU 302连接 至如图l所示的网络接口 108。
图3还示出在CPU 302上执行的操作系统("OS") 314。运行在OS 314 顶层的是客户端程序IIO。客户端程序110包括若干层,例如协议层318,用 户引擎层320及客户端程序用户界面层("UI") 322。每一层对应于特定的功 能。因为每一层通常与两个其他层进行通信,因此被认为是如图3所示地排 列在堆栈中。操作系统314管理计算机的硬件资源并处理经由网络接口 108 被传送至网络及来自网络的数据。客户端程序软件的客户端程序协议层318 与操作系统314通信并管理网络106上的网络连接。
需要更高层处理的进程被传送至客户端程序引擎层320,其处理用户进 行网络106上的IM会话所需要的进程。客户端程序引擎层320还与客户端程 序用户界面层322通信。可以设置客户端程序引擎320控制客户端程序用户 界面层322以经由客户端程序的用户界面向客户呈现信息(例如活动标识符) 及经由用户界面接收来自用户的信息。详细地,客户端程序引擎层320包括 分析生成至客户端程序用户界面层322的输入的输入分析功能324,及包含 已知输入的预定义模式的查询表("LUT") 326。这些功能将在下文中参照图 6进行详细描述。
客户端程序用户界面层322限定呈现给用户终端104的用户102的信息。 图4及图5示出客户端程序用户界面的示例。首先参照图4,其示出在IM会 话被发起之前的客户端程序110 (此例中为用户102的客户端程序)的主用 户界面400。客户端程序用户界面400显示IM系统中的用户A 102的用户名 402,并且用户A可以通过选择图标404利用下拉列表设置自己存在状态(将 被其他用户看到)。
客户端程序用户界面400包括标有"联系人"的标签406,并且当选择 此标签时,显示由用户存储在联系人列表中的联系人。在图4中的示例的用 户界面中,在联系人列表408中示出5个IM系统的其他用户(用户B至用户 F)。这些联系人中的每一个都己经授权客户端程序110的用户査看他们的联 系人详情及在线情况及心情消息信息。联系人列表中的每一个联系人都具有与状态相关联的存在状态图标。例如,用户B的存在状态图标410指示用户 B "在线",用户C的存在状态图标412指示用户C "没有空",用户D的存在 状态图标414指示用户D的状态为"忙碌",用户E的存在状态图标416指示 用户E为"离开",及用户F的存在状态图标418指示用户F为"离线"。还 可以包括更多的存在状态标识符。在窗格408中的联系人的名字的旁边为联 系人的心情消息420。
通过利用定点装置308选择联系人以及点击出现在用户名字邻近处的按 钮,可以发起与联系人列表408中的用户的即时消息会话。
当发起与用户的IM会话时,则显示例如图5显示的用户界面。在此示例 中,用户A 102已经发起与用户B 112的IM会话。图5A示出显示在用户A 102 的用户终端104的显示器上的UI,图5B示出显示在用户B 112的用户终端 114上的UI。
图5A中示出的UI包括发送消息窗口 502,其示出已经发出的从双方至 頂会话(即,用户A及用户B)的消息。例如,早先从用户A发送的消息被 显示在504处,并且早先从用户B发送的消息被显示在506处。UI的右手边 示出頂会话中的参与者。在此示例中,示出用户B的联系人卡片508 (作为 用户A与之通信的用户)。用户B的联系人卡片显示用户B的名字510、存在 状态图标512及头像(avatar) 514。
在消息窗口 502上方为包括用于控制IM会话的按钮的横条,其不在描述 的范围之内。在消息窗口 502下方为用户输入区域或部位518。用户输入区 域为用户在发送消息之前在UI中编写消息的部位。用户可以通过在区域中放 置光标及利用键盘306键入从而在输入区域518中编写消息。用户还可以将 其他信息置于消息中,例如从选单中选择的图标。用户按压键盘上的回车键 或者选择按钮522,以发送在输入区域518中编写的消息。
邻近用户输入区域518的是客户端程序的用户的联系人卡片524。本例 中,图5A示出用户A的客户端程序,因此在联系人卡片524中示出用户A。 联系人卡片524允许用户建立显示给IM会话中的其他成员的信息。联系人卡 片524显示用户A的名字526、存在状态图标528及头像530。
图5B示出用户B的终端114示出的等同的UI (当与用户A会话时)。除 联系人卡片532示出用户A的详情(当图5B中的UI示出用户B看到的会话 时),而联系人卡片534示出用户B的详情之外,此UI与图5A中示出的相同。
14而且,显然地,输入至输入区域536中的消息将导致消息从用户B发送至用 户A。
图5A及图5B中示出的UI示出这样一种情况,当前没有活动通知系统, 因此当用户A正在输入消息时,即使部分输入的消息显示在图5A的用户输入 区域518中,图5B的用户B的UI中也不会出现标识符。之后显示的更多客 户端程序UI将示出采用活动标识符的情况。
现在参照图6,其示出提供准确反映用户行为的活动通知的方法的流程 图。在步骤S602中发起IM会话。例如,再次参照图1及图4,用户A 102 可以通过选择客户端程序110的UI400的联系人列表408中的用于用户B 112 的联系人来发起頂会话。在步骤S604中在通信网络106上建立连接。在优 选的实施例中,此连接为P2P连接。
在步骤S606中,连接入IM会话的用户的客户端程序(例如110和118) 监视输入区域(例如图5A及图5B中的输入区域518及536)中用户的任何 活动。客户端程序保持这种状态直至检测到活动。为了解释的目的,假设用 户A开始在输入区域518中键入消息,因此触发步骤S606。
在用户输入区域处的活动之后,在步骤S608中,客户端程序分析至输入 区域的输入以检测该输入中的已知模式。这是通过客户端程序UI层322将信 息提供至客户端程序引擎320来完成的。客户端程序引擎320具有分析器功 能(analyser functionality) 324,其被设置为从用户输入中提取模式信息, 并将此模式信息与已知的模式进行匹配。己知的模式存储在査询表326中。
例如,输入分析器324可以分析所输入的输入操作的一些属性。这包括, 但是不限于特定键的检测;相同键的重复;键盘上的键的物理分组;多个 键的同时按压;及在输入区域中呈现的字符的数量。
作为第一个示例,首先考虑用户在输入区域中键入"正常"文本的情况。 "正常"消息为用户欲将其发送至另一方而有意识地输入的消息。输入分析 器324査看由用户输入的键的次序,并根据此来判定输入的键为例如,包 含多个键(即,不全是相同的键)、通常在键盘上物理分隔的键(即不全是来 自键盘的相同区域)、以及时间上相隔(即不是同时输入)。根据此信息,输 入分析器可以推断出用户活动为正在输入正常消息。随后此信息可以用于将 此活动的类型指示给远程用户(正如后文微小细节所描述的)。作为第二示例,用户可能已经将一些文本键入输入区域中,但是用户改 变了想法,并开始删除该文本。用户可以通过重复按压键盘上的"退格"或 者"删除"键,或者通过持续压下"退格"或者"删除"键(与重复压键具 有相同的效果)来删除文本。输入分析器可以检测对这些特殊按键的使用, 并且当输入分析器检测到这些按键的重复使用时,可以推断出用户正在删除 消息。输入分析器还可以检测到用户利用定点装置突出消息中的显著部分, 并删除突出的部分。
作为第三示例,用户可在其用户终端上开启IM会话UI,但是当前并不
打算发送消息。然而,会发生来自键盘的无意的输入,例如外物激活键盘上 一个或多个键(例如一本书无意的放在键盘上或者一只猫从键盘上走过)。在 这种情况,输入分析器可检测一个或多个键的重复激活(例如由于这些键被 外物持续压下)或者键盘上聚集在一起的键同时被激活。据此,输入分析器 可以推断在输入区域中的输入是无意的,并不是有意识地键入消息。
作为第四示例,输入分析器可以被设置为检测用户在愤怒或者失望时击 打其键盘。这是通过检测聚集在键盘相同区域中的多个键的几乎同时输入来 完成的。
作为第五示例,输入分析器可以检测特殊键的激活。例如,输入分析器
可以检测回车键已经被按压,或者发送按钮522 (在图5A中)己经被激活。 这允许输入分析器推断消息己经完成并且正被发送至另一方,因此键入已经 完成。
第六示例扩展了上述第二示例的功能。输入分析器可以监视呈现在输入 区域中的字符的数量。这可以用于检测用户已经删除了消息的所有字符(即, 在输入区域中为0个字符)。这可以用于区分用户已经删除消息的部分(例如 利用重复按压退格键)的情况与用户己经删除整个消息的情况。
应该理解的是,通过分析输入模式还可以检测用户活动的多种其他输入, 并不限于上述的示例。
在步骤S610中,客户端程序判定所分析的输入模式与预设的输入模式中 的一个是否匹配。如果所分析的模式与已知的模式匹配,那么,在步骤S610 中,生成代码以标识由输入模式判定的活动类型。所使用的代码为预定义的, 并且存储在LUT 326中。如果所分析的模式不能与已知的模式相匹配,那么在步骤S614中使用缺省代码用于代表活动。在优选的实施例中,该代码与用
于代表正常输入活动的代码相同。
在步骤S616中,客户端程序检査与先前活动类型相匹配的所检测的活动 类型是否传送至远程用户。如果为新的(即不同的)活动类型,那么在步骤 S618中生成消息并传送至远程用户指示已经检测到的活动的类型。如果当前 的活动类型与前一个发送的活动类型匹配,则不需要向远程用户发送进一步 的活动通知消息。
图7中示出活动通知消息700的结构。消息700包括报头702、发送消 息的用户的用户名704 (使得可以标识执行活动的用户),及活动码706。在 优选的实施例中,活动码706为位图的形式,位图中位的结合指示可以被检 测的活动的不同类型。
步骤S620至S628类似于图2的步骤S210至S216:提供超时以检测用
户已经成为空闲状态一段预定的时间周期,并且没有进一步的活动。在步骤 S620中,客户端程序使计时器开始运行,并且在步骤S622中客户端程序检 查计时器是否终止计时。如果没有终止,在步骤S624中客户端程序检査在客 户端程序的输入区域中是否有进一步用户活动。如果没有进一步输入,那么 返回至步骤S622并检查计时器的终止计时。如果有进一步的用户输入,那么 返回至步骤S608,从而再次分析所检测到的输入模式。如果,当控制返回至 步骤S622,发现计时器已经终止计时,那么在步骤S626中客户端程序生成 适当的代码以表示用户未活动,并在步骤S628中将消息传送至其他会话方以 指示没有用户活动。在优选的实施例中,在超时终止时发送的消息与图7中 示出的相同,但是包含指示用户成为空闲状态的位图。在步骤S628之后,控 制返回至步骤S606,并且客户端程序等待进一步的用户活动。
请注意,在一些实施例中,S608可以包括初始检査以判定用户是否已经 开始将信息输入先前为空的输入区域中。在这种情况下,输入分析器可以根 据与正常键入相应的第一按键做一个初始的假设,并响应此假设发送活动通 知指示用户正在键入。这确保最初将作为缺省设置的键入标识符显示给远程 用户,以在键入开始之后尽快将用户活动的标识符给远程用户。然而,由于 在输入区域的按键数量的增加,输入分析器可以执行对此信息的进一步进程 并且进一步推断关于用户活动的信息,并随后在需要时发送进一步通知消息 以更新远程用户处的活动标识符。现在参照图8,其示出己经接收到活动消息700的用户的客户端程序执 行的进程的流程图。
在步骤S802中,客户端程序接收活动通知消息(例如图7中所示)。来 自该消息的信息被传送至客户引擎层320以待处理。在步骤S804中,根据消 息700中的活动码706判定活动的类型。这是通过利用LUT 326与活动类型 的活动码进行匹配实现的。
在步骤S806中,判定客户端程序的UI中活动标识符的当前状态。例如, 可以判定当前是否有活动标识符呈现,并且,如果有活动标识符,活动标识 符指示哪种类型的活动。在步骤S808中,判定响应活动通知消息所需要采取 的动作。更详细地,客户端程序必须决定是否将活动通知的当前状态改变为 不同的状态。详细地,如步骤S810所示,对所采取的动作有三个可能的结果。 当前活动标识符可以被删除(S812),当前活动标识符可以被替换为不同类型 的标识符(S814)或者将当前活动标识符维持在当前状态(S816)。
现在参照图9至图13描述图6及图8中示出的流程操作的示例,其示出 在几个示例方案中客户端程序的UI上进程的影响。
首先参照图9A及图9B,其示出与上述图5A及图5B所示出的相似的方 案。图9A示出用户A 102的客户端程序UI,用户A己经发起与用户B 112 的IM会话。图9A中输出的UI中显示的信息与图5A中示出的相同。在此示 例中,用户A己经将消息部分键入至输入区域518中。作为键入该消息的结 果,在用户A的终端104上执行的客户端程序110分析输入模式,并判定输 入模式与正常键入相应。这可以被编码入活动通知消息700中(参照图7), 并发送至用户B 112 (IM会话中的另一个参与者)。
图9B示出收到活动通知消息后的用户B 112的客户端程序的UI。在接 收活动通知消息之前,客户端程序显示为没有活动标识符(如图5B)。用户B 112的客户端程序118根据活动通知消息判定用户A的活动与正常键入相应。 因此客户端程序118判定需要在UI中放置的用于指示用户A正在键入的标识 符。在用户A的联系人卡片532中示出键入活动标识符902。在图9B示出的 实例中,键入活动标识符为铅笔图标的形式。为了清晰,在904中放大示出。 也可以使用其他适合形式的标识符,例如书写的标志,以代替图标。在优选 的实施例中,铅笔图标902为活动的。
18铅笔图标902保持在用户B的客户端程序的UI上,指示用户A正在键入, 直至接收到进一步的活动通知消息。例如,如果用户A 102完成消息并按压 回车键或者按钮522,那么携带有指示消息己经完成的代码的进一步活动通 知消息将被发送。这将提示用户B的客户端程序118从UI中消除铅笔图标 902。类似的,如果用户A 102停止键入,使得步骤S620的计时器终止计时, 那么对用户B的客户端程序118发送活动通知消息,并且铅笔图标902被消 除或者被其他图标代替以指示用户A 102成为空闲状态。
现在参照图10A及图IOB,其示出其中用户A本来正在输入区域518中 键入消息、但是用户改变了想法并删除了几乎所有的消息的方案。在检测字 符的重复删除之前,用户A的客户端程序110已经检测到消息(现在被删除) 的键入,并已将活动通知消息发送至用户B的客户端程序118。这将提示用 户B的客户端程序显示如图9B示出的键入标识符。然而,用户A 102现在删 除了大部分未发送的消息。输入分析器检测到删除,则用户A的客户端程序 生成包括删除代码的活动通知消息700。
图10B示出收到活动通知消息在用户B的UI上的效果。如上所述,该 UI早先显示了铅笔图标902。但是,按照用户A删除消息的通知,该图标已 经被替换。在此示例中,图标再次为铅笔1002,但是与书写时相反,铅笔已 经被倒置从而示出使用安装在铅笔端部的橡皮擦(为了清晰,在1004放大)。 在优选的实施例中,该图标为活动的。在可选的实施例中,指示可以用文本 而不是图标,或者为其他适合形式的指示。
而且,再次参照图10A,当输入区域518中的所有字符都已经被删除时, 可对用户B发送进一步活动通知消息700。该消息通知用户B的客户端程序 消息已经被完全删除。用户B的客户端程序U8使用该信息以改变活动通知。 例如,客户端程序118可以消除擦除通知(erasing notification)并不显 示图标(因此指示没有活动)。可选地,也可以使用不同的图标。
现在参照图IIA及图IIB,其示出检测到用户活动的其他类型。在图11A 中,用户A因失望而击打键盘。这导致以在键盘上聚集在一起为特性的一组 字符被输入至输入区域518中,并且几乎同时输入。输入分析器分析这种情 况,推断用户的行为并将包含适当代码的消息传送至用户B。图IIB示出接收到具有该代码的活动通知消息的结果。在此示例中,活 动标识符显示为愤怒的脸1102 (为了清晰,在1104放大)。因此,该标识符 试图通过解析由用户A输入的输入内容将用户A的情绪传送至用户B。
现在参照图12A及图12B,其示出其中输入区域处的被检测到的输入内 容被检测为用户的无意地输入的方案。图12A示出用户A的客户端程序,在 该示例性的方案中,用户A无意地使某物抵住键盘上的"O"键,因此发生了 一串O迅速地被输入至输入区域中。输入分析器检测到该情况,并解析为无 意输入。将该信息转换为代码并在活动通知消息中传送。这反映在用户B的 UI中,用户B的UI读取活动类型代码并判定要采取的适合的动作以消除早 先存在的所有活动标识符,使得UI的区域1202显示没有活动。因为无意输 入的最先的几个字符可以触发将被发送的"正常"输入消息,并因此给远程 用户消息正在被输入的印象,所以传送消息及消除相应的活动标识符的能力 为重要的功能。然而,只要判定输入为无意的则发送另一个消息允许键入标 识符被迅速的从远程用户的UI中清除。
现在参照图13,其示出在多方会话方案中对活动标识符的使用。多方会 话为頂会话,其中存在的参与者超过两个。上述的技术方案允许为IM会话 中的每一个成员提供活动通知。图13中示出的UI显示用户B的客户端程序 118,用户B参与同用户A 102、用户C 120及用户D 122的IM会话。在1302 处显示IM会话中早先发送的消息。联系人卡片分别在1304、 1306及1308 处显示用户A、用户C及用户D。在此示例中,用户B的客户端程序118己经 接收到来自用户A的客户端程序110及用户D的客户端程序130的活动通知, 指示这些用户正在键入(可回想到活动通知消息700包含用于用户名704的 区域,以允许正在接收的客户端程序识别与消息相关的用户)。活动标识符 1310将该活动指示给用户A,活动标识符1312将该活动指示给用户D。
虽然己结合优选实施例特定地示出及描述了本发明,但本领域的技术人 员应该理解可以在不脱离所附的权利要求限定的本发明的范围而做出的形式 及细节处的多种修改。例如,先前的示例性的实施例已经描述了使用键盘为 IM系统提供输入。可以理解的是任何适合形式的输入装置的形式都可以使 用,例如手写识别,由定点装置或指示笔、触摸屏或者数字键盘控制的输入。
权利要求
1、一种在消息系统中传送关于用户活动的信息的方法,包括监视在所述消息系统中的第一用户的用户终端上执行的客户端程序中的显示给所述第一用户的输入区域;作为对在所述输入区域处接收到用户激活的输入的响应,分析所述输入,并使用所述分析将所述输入与来自预定的用户活动集的用户活动类型进行匹配;及将包括表示所述用户活动类型的数据的消息从所述第一用户的用户终端通过通信网络传送至所述消息系统中的至少一个其他用户。
2、 根据权利要求1所述的方法,进一步包括步骤.-在所述至少一个其他用户的用户终端处接收所述消息; 从所述消息中提取表示所述用户活动类型的数据;将来自所述消息的用户活动类型与所述第一用户的最近已知的活动状态 进行比较,并作为对所述比较的响应而判定要采取的动作;及根据所述动作,更新在所述至少一个其他用户的用户终端处执行的客户 端程序的用户界面中显示的用户活动的标识符。
3、 根据权利要求2所述的方法,其中所述动作包括下列动作中的一个 从所述用户界面中消除所述标识符;用不同的标识符替换所述标识符; 或者在所述用户界面中维持所述标识符。
4、 根据权利要求1至3中任意一项权利要求所述的方法,其中所述预定 的用户活动集包括以下至少一个键入活动;删除活动;无意输入活动;愤怒用户的活动;消息完成活动; 及消息取消活动。
5、 根据权利要求1至4中任意一项权利要求所述的方法,进一步包括步骤将从在所述输入区域接收到输入之后的时段与预定的时间段进行比较;及在从在所述输入区域接收到输入之后的时段超出所述预定的时间段的情 况下,将包括表示用户未活动的数据从所述第一用户的用户终端通过通信网 络传送至所述消息系统中至少一个其他用户的用户终端。
6、 根据权利要求1至5中任意一项权利要求所述的方法,其中所述分析 所述输入的步骤包括检测所述第一用户的用户终端的输入装置上的特定控制 器的激活。
7、 根据权利要求1至6中任意一项权利要求所述的方法,其中所述分析 所述输入的步骤包括检测所述第一用户的用户终端的输入装置上的控制器的 重复激活。
8、 根据权利要求1至7中任意一项权利要求所述的方法,其中所述分析 所述输入的步骤包括检测所述第一用户的用户终端的输入装置上的物理聚集 的多个控制器的激活。
9、 根据权利要求1至8中任意一项权利要求所述的方法,其中所述分析 所述输入的步骤包括检测所述第一用户的用户终端的输入装置上的多个控制 器的同时激活。
10、 根据权利要求1至9中任意一项权利要求所述的方法,其中所述分 析所述输入的步骤包括检测呈现在所述输入区域中的字符的数量。
11、 根据权利要求1至10中任意一项权利要求所述的方法,其中所述通 信网络为对等网络。
12、 一种消息系统,包括 通信网络;消息系统的第一用户的连接到所述通信网络的用户终端;及 消息系统的至少一个其他用户的连接到所述通信网络的用户终端,其中所述第一用户的用户终端执行客户端程序,所述客户端程序包括用于监视显示给所述消息系统的所述第一用户的输入区域的器件; 用于作为对所述输入区域接收到所述输入的响应而分析用户激活输入,并使用所述分析将所述输入与来自预定的用户活动集的用户活动类型进行匹配的器件;及用于将包括表示所述用户活动类型的数据的消息从所述第一用户的用户 终端通过通信网络传送至所述消息系统中的至少一个其他用户的器件。
13、 根据权利要求12所述的消息系统,其中所述至少一个其他用户的用 户终端执行客户端程序,所述客户端程序包括用于在所述至少一个其他用户的用户终端处接收所述消息的器件; 用于从所述消息中提取表示所述用户活动类型的数据的器件;用于将来自所述消息的用户活动类型与最近已知的所述第一用户的活动状态进行比较,并作为对所述比较的响应而判定要采取的动作的器件;用于根据所述动作更新在所述至少一个其他用户的用户终端处执行的客 户端程序的用户界面中显示的用户活动的标识符的器件。
14、 根据权利要求13所述的消息系统,其中所述动作包括下列动作中的 一个.从所述用户界面中消除所述标识符; 用不同的标识符替换所述标识符; 或者在所述用户界面中维持所述标识符。
15、 根据权利要求12至14中任意一项权利要求所述的消息系统,其中 所述预定的用户活动集包括以下至少一个键入活动;删除活动;无意输入活动;愤怒用户的活动;消息完成活动; 及消息取消活动。
16、 根据权利要求12至15中任意一项权利要求所述的消息系统,其中 在所述第一用户的用户终端上执行的所述客户端程序进一步包括-用于将从在所述输入区域接收到输入之后的时段与预定的时间段进行比 较的器件;及用于在从在所述输入区域接收到输入之后的时段超出所述预定的时间段 的情况下,将包括表示用户未活动的数据从所述第一用户的用户终端通过通 信网络传送至所述消息系统中至少一个其他用户的用户终端的器件。
17、 根据权利要求12至16中任意一项权利要求所述的消息系统,其中所述用于分析所述输入的器件包括用于检测所述第一用户的用户终端的输入 装置上的特定控制器的激活的器件。
18、 根据权利要求12至17中任意一项权利要求所述的消息系统,其中 所述用于分析所述输入的器件包括用于检测所述第一用户的用户终端的输入 装置上的控制器的重复激活的器件。
19、 根据权利要求12至18中任意一项权利要求所述的消息系统,其中所述用于分析所述输入的器件包括用于检测所述第一用户的用户终端的输入 装置上的物理聚集的多个控制器的激活的器件。
20、 根据权利要求12至19中任意一项权利要求所述的消息系统,其中 所述用于分析所述输入的器件包括用于检测所述第一用户的用户终端的输入 装置上的多个控制器的同时激活的器件。
21、 根据权利要求12至20中任意一项权利要求所述的消息系统,其中 所述用于分析所述输入的器件包括用于检测呈现在所述输入区域中的字符的 数量的器件。
22、 根据权利要求12至21中任意一项权利要求所述的消息系统,其中 所述通信网络为对等网络。
23、 连接至通信网络并执行在消息系统中使用的客户端程序的用户终端,所述客户端程序包括用于监视显示给所述用户终端的用户的输入区域的器件; 用于作为对在所述输入区域接收到所述输入的响应而分析用户激活的输入,并使用所述分析将所述输入与来自预定的用户活动集的用户活动类型进行匹配的器件;及用于将包括表示所述用户活动类型的数据的消息从所述第一用户的用户终端通过通信网络传送至所述消息系统中的至少一个其他用户的器件。
24、 一种计算机程序产品,其包括程序代码器件,当由计算机设备执行 时,执行根据权利要求1至11中任意一项权利要求所述的方法的步骤。
全文摘要
一种消息系统中传送关于用户活动的信息的方法,包括监视在所述消息系统中的第一用户的用户终端上执行的客户端程序中的显示给所述第一用户的输入区域;响应于在所述输入区域处接收到用户激活的输入,分析所述输入,并使用所述分析将所述输入与来自所述预定的用户活动集的用户活动类型进行匹配;及将包括表示所述用户活动类型的数据的消息从所述第一用户的用户终端通过通信网络传送至所述消息系统中的至少一个其他用户。
文档编号H04L29/06GK101611602SQ200780051560
公开日2009年12月23日 申请日期2007年12月20日 优先权日2007年2月20日
发明者因德雷克·曼德雷 申请人:斯凯普有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1