CN115037712A - 用于消息收发机器人丰富通信的技术 - Google Patents
用于消息收发机器人丰富通信的技术 Download PDFInfo
- Publication number
- CN115037712A CN115037712A CN202210406190.1A CN202210406190A CN115037712A CN 115037712 A CN115037712 A CN 115037712A CN 202210406190 A CN202210406190 A CN 202210406190A CN 115037712 A CN115037712 A CN 115037712A
- Authority
- CN
- China
- Prior art keywords
- robot
- message
- messaging
- thread
- user
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 127
- 238000004891 communication Methods 0.000 title abstract description 63
- 238000012544 monitoring process Methods 0.000 claims abstract description 30
- 230000004044 response Effects 0.000 claims description 127
- 239000012634 fragment Substances 0.000 claims description 39
- 238000003860 storage Methods 0.000 claims description 29
- 238000001514 detection method Methods 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 230000003993 interaction Effects 0.000 description 66
- 230000006855 networking Effects 0.000 description 36
- 238000012545 processing Methods 0.000 description 31
- 230000009471 action Effects 0.000 description 14
- 230000001413 cellular effect Effects 0.000 description 12
- 230000002452 interceptive effect Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 229920000642 polymer Polymers 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- TVYLLZQTGLZFBW-ZBFHGGJFSA-N (R,R)-tramadol Chemical compound COC1=CC=CC([C@]2(O)[C@H](CCCC2)CN(C)C)=C1 TVYLLZQTGLZFBW-ZBFHGGJFSA-N 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000011093 media selection Methods 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000003334 potential effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请涉及用于消息收发机器人丰富通信的技术。描述了用于具有丰富通信的消息收发机器人的技术。在一个实施方式中,设备可以包括:消息收发组件,操作以从客户端装置接收消息并且将该消息添加到消息队列;消息队列监视组件,操作以监视消息队列;检测该消息指示消息收发机器人调用;并且基于检测到该消息指示消息收发机器人调用而将该消息提交给机器人框架组件;以及机器人框架组件,操作以确定与该消息相关联的消息收发机器人,并且将该消息提交给消息收发机器人。描述并要求保护了其他实施方式。
Description
本申请是申请日为2016年2月26日,申请号为201680084948.7,发 明名称为“用于消息收发机器人丰富通信的技术”的申请的分案申请。
相关申请
本申请涉及于2016年2月25日提交的美国专利申请“Techniques for MessagingBot App Interactions”,其全部内容通过引证结合于此。
技术领域
本公开总体上涉及用于消息收发机器人的技术。
背景技术
用户可以在消息收发***中彼此交互,在两个以上用户之间的基于文 本的会话中彼此来回发送消息。用户可以在消息收发***中具有与他们相 关联的用户账户,用户账户提供用户的在线身份、指向用户的消息的目的 地,并且通常协调用户对消息收发***的访问和使用。用户可以从各种端 点访问消息收发***,包括移动装置(例如,蜂窝电话)、台式计算机、 网络浏览器、专用消息收发客户端等。
发明内容
为了提供对本文中描述的一些新颖实施方式的基本理解,以下给出了 简化的概述。该概述不是广泛概述,并且不旨在识别关键/重要元素或描绘 其范围。一些概念以简化的形式呈现,作为对稍后呈现的更详细描述的序 言。
各种实施方式总体上指向消息收发机器人(messaging bot)的技术。 一些实施方式具体指向用于在消息收发应用内具有交互的消息收发机器 人的技术。一些实施方式具体地指向用于在消息收发***上使用丰富通信 的消息收发机器人的技术。
在一个实施方式中,例如,一种设备可包括:用户界面组件,操作以 在客户端装置上的消息线程显示中接收消息收发机器人调用;响应于该消 息收发机器人调用,而结合该消息线程显示调用客户端装置上的消息收发 机器人交互用户界面;经由该消息收发机器人交互用户界面接收消息收发 机器人交互命令;并且在该消息线程显示中显示消息收发机器人交互响应; 以及客户端消息收发组件,操作以将消息收发机器人交互命令从客户端装 置传送到消息收发***;并且在该客户端装置处从该消息收发***接收该 消息收发机器人交互响应。描述并请求保护了其他实施方式。
在另一个实施方式中,例如,设备可以包括:消息收发组件,操作以 从客户端装置接收消息,并且将该消息添加到消息队列;消息队列监视组 件,操作以监视该消息队列,检测该消息指示消息收发机器人调用,并且 基于检测到该消息指示消息收发机器人调用而将该消息提交给机器人框 架组件;以及该机器人框架组件,操作以确定与该消息相关联的消息收发 机器人,并且将该消息提交给消息收发机器人。描述并要求保护了其他实 施方式。
为了实现上述及相关目的,在本文中连同以下具体实施方式和附图一 起描述了某些示例性方面。这些方面表示可以实践在本文中公开的原理的 各种方法并且其所有的方面和等同物意在处于所请求保护的主题范围内。 当结合附图考虑时,其他优点和新颖特征将从以下详细描述中变得清楚。
根据本发明的实施方式被具体公开在涉及方法、存储介质、***以及 计算机程序产品的所附权利要求中,其中,在一个权利要求类别(例如方 法)中提到的任何特征也可以在另一个权利要求类别(例如存储介质)中 被要求保护。所附权利要求中的依赖或引用关系仅出于形式原因而选择。 但是,从之前的任何权利要求中(具体而言,多重依赖性)有意引用得到 的任何主题也可被要求保护,因此无论所附权利要求选择何种依赖性,权 利要求及其特征的任何组合都能被公开并被要求保护。可以要求保护的主 题不仅包括所附权利要求中阐述的特征的组合,而且还包括权利要求中的 特征的任何其他组合,其中,权利要求中提及的每个特征可以与权利要求 中的任何其他特征或其他特征的组合相结合。此外,本文中描述或描绘的 实施方式和特征中的任何实施方式和特征可以在单独的权利要求中和/或 以与本文中描述或描绘的任何实施方式或特征或与所附权利要求中的任 何特征相组合的方式来要求保护。
在根据本发明的实施方式中,一种计算机实现的方法包括:
从客户端装置接收消息;
将该消息添加到消息队列中;
监视该消息队列;
检测该消息指示消息收发机器人调用;以及
基于检测到该消息指示消息收发机器人调用,而将该消息提交给机器 人框架组件;
确定与该消息相关联的消息收发机器人;以及
将该消息提交给消息收发机器人。
在根据本发明的实施方式中,所述消息包括文本内容部分,所述方法 进一步包括:
检测所述消息的所述文本内容部分中的机器人调用符号;以及
基于检测到所述机器人调用符号,而检测到所述消息指示消息收发机 器人调用。
在根据本发明的实施方式中,一种计算机实现的方法进一步包括:
接收对所述消息的消息收发机器人响应;以及
将所述消息收发机器人响应***所述消息队列中。
在根据本发明的实施方式中,所述消息与消息线程相关联,***到所 述消息队列中的所述消息收发机器人响应被标记用于在所述消息线程中 显示。
在根据本发明的实施方式中,所述消息包括文本部分,所述文本部分 包括机器人别名文本片段,所述方法进一步包括:
接收所述机器人别名文本片段的别名初始部分;
将所述别名初始部分与机器人别名注册表进行匹配以确定一个或多 个预测的机器人别名文本片段,所述一个或多个预测的机器人别名文本片 段包括所述机器人别名文本片段;以及
将所述一个或多个预测的机器人别名文本片段传送到所述客户端装 置。
在根据本发明的实施方式中,所述消息包括文本部分,所述文本部分 包括机器人命令文本片段,所述方法进一步包括:
接收所述机器人命令文本片段的命令初始部分;
将所述命令初始部分提交给所述消息收发机器人;
从所述消息收发机器人接收一个或多个预测的机器人命令文本片段, 所述一个或多个预测的机器人命令文本片段包括所述机器人命令文本片 段;以及
将所述一个或多个预测的机器人命令文本片段传送到所述客户端装 置。
在根据本发明的实施方式中,所述消息与消息线程相关联,所述消息 包括机器人订阅命令,所述方法进一步包括:
响应于所述机器人订阅命令,将所述消息线程订阅到所述消息收发机 器人;
从所述消息收发机器人接收广播消息;
基于所述消息收发机器人确定用于所述广播消息的多个订户线程,所 述多个订户线程包括所述消息线程;
将所述多个订户线程划分成多个订户线程块;
将所述多个订户线程块中的每一个指派给多个广播工作者中的一个 广播工作者;以及
由所述多个广播工作者基于所述多个订户线程块而将所述广播消息 添加到多个消息队列,所述多个消息队列包括所述消息队列。在根据本发 明的实施方式中,一种计算机实现的方法包括:
在消息收发服务器、邮件服务器和/或在消息收发***的客户端前端服 务器的消息收发组件处从客户端装置接收消息;
将该消息添加到消息队列中;
由消息收发***的工作者服务器的消息队列监视组件监视消息队列;
检测该消息指示消息收发机器人调用;
其中,消息队列监视组件被配置为检查消息队列内的每个条目并且检 测该消息指示消息收发机器人调用;以及
由消息队列监视组件基于检测到该消息指示消息收发机器人调用,而 将该消息或检测到具有消息收发机器人调用的消息的通知(诸如消息的标 识符)提交给机器人框架组件;
由机器人框架组件:
确定与该消息相关联的消息收发机器人;以及
将该消息提交给消息收发机器人。
在根据本发明的实施方式中,其中该消息可以包括文本内容部分,方 法可以包括:
检测该消息的文本内容部分中的机器人调用符号;以及
基于检测到机器人调用符号,而检测到消息指示消息收发机器人调用。
在根据本发明的实施方式中,其中该消息可以包括文本内容部分,方 法可以包括:
检测该消息的文本内容部分中的机器人调用符号;以及
基于检测到该机器人调用符号而检测到该消息指示消息收发机器人 调用,和/或
其中,包括用于机器人的信息的消息由发送方客户端装置标记在于消 息的元数据部分被标记有机器人调用标志,并且其中,消息监视组件被配 置为基于检测到机器人调用标志而检测到该消息指示消息收发机器人调 用。
在根据本发明的实施方式中,一种方法可以包括:
接收对该消息的消息收发机器人响应;以及
将消息收发机器人响应***消息队列中。
在根据本发明的实施方式中,一种方法可以包括:
接收对该消息的消息收发机器人响应;以及
将消息收发机器人响应***消息队列中,并且可选地,
将该消息收发机器人响应传送到该客户端装置以在消息收发客户端 的显示器上显示。
在根据本发明的实施方式中,其中消息可以与消息线程相关联,*** 到消息队列中的消息收发机器人响应可以被标记以用于在消息线程中显 示。
在根据本发明的实施方式中,其中消息可以与消息线程相关联,*** 入到消息队列中的消息收发机器人响应可以被标记以用于在消息线程中 显示,其中可选地,响应于用户向消息收发机器人发送的消息,消息机器 人被准许向消息队列添加消息,消息机器人进一步可选地响应于消息而被 授权发送对该消息的单个响应和/或被授权有限时段。
在根据本发明的实施方式中,其中该消息可以包括文本部分,该文本 部分包括机器人别名文本片段,进一步可以包括:
接收该机器人别名文本片段的别名初始部分;
将该别名初始部分与机器人别名注册表匹配以确定一个或多个预测 的机器人别名文本片段,该一个或多个预测的机器人别名文本片段包括该 机器人别名文本片段;以及
将该一个或多个预测的机器人别名文本片段传送到该客户端装置。
在根据本发明的实施方式中,其中该消息可以包括文本部分,该文本 部分包括机器人命令文本片段,进一步包括可选地由机器人框架组件:
接收机器人命令文本片段的命令初始部分;
将该命令初始部分提交给该消息收发机器人;
从该消息收发机器人接收一个或多个预测的机器人命令文本片段,该 一个或多个预测的机器人命令文本片段包括该机器人命令文本片段;以及
将该一个或多个预测的机器人命令文本片段传送到该客户端装置。
在根据本发明的实施方式中,其中该消息可以与消息线程相关联,该 消息包括机器人订阅命令,进一步可以包括:
响应于该机器人订阅命令,将该消息线程订阅到该消息收发机器人;
从该消息收发机器人接收广播消息;
基于该消息收发机器人确定用于该广播消息的多个订户线程,该多个 订户线程包括该消息线程;
将该多个订户线程划分成多个订户线程块;
将该多个订户线程块中的每一个指派给多个广播工作者中的一个广 播工作者;以及
由该多个广播工作者基于该多个订户线程块而将该广播消息添加到 多个消息队列,该多个消息队列包括该消息队列。
在根据本发明的实施方式中,一种设备包括:
装置上的处理器电路;
消息收发组件,其在该处理器电路上操作以从客户端装置接收消息; 并且将该消息添加到消息队列;
消息队列监视组件,操作以监视该消息队列;检测该消息指示消息收 发机器人调用;并且基于检测到该消息指示消息收发机器人调用,将该消 息提交给机器人框架组件;以及
该机器人框架组件操作以确定与该消息相关联的消息收发机器人;并 且将该消息提交给消息收发机器人。
在根据本发明的实施方式中,一种设备,其中该消息包括文本内容部 分,该设备进一步可以包括:
该消息队列监视组件操作以检测该消息的文本内容部分中的机器人 调用符号;并且基于检测到该机器人调用符号来检测该消息指示消息收发 机器人调用。
在根据本发明的实施方式中,一种设备进一步可以包括:
该机器人框架组件操作以接收对该消息的消息收发机器人响应;并且 将该消息收发机器人响应***该消息队列中。
在根据本发明的实施方式中,一种设备,其中该消息可以与消息线程 相关联,该消息收发机器人响应可以被***到消息队列中,消息收发机器 人响应被标记用于在该消息线程中显示。
在根据本发明的实施方式中,一种设备,其中该消息可以包括文本部 分,该文本部分包括机器人别名文本片段,进一步可以包括:
该机器人框架组件操作以接收该机器人别名文本片段的别名初始部 分;将该别名初始部分与机器人别名注册表进行匹配以确定一个或多个预 测的机器人别名文本片段,该一个或多个预测的机器人别名文本片段包括 该机器人别名文本片段;并且将该一个或多个预测的机器人别名文本片段 传送到该客户端装置。
在根据本发明的实施方式中,一种设备,其中该消息可以包括文本部 分,该文本部分包括机器人命令文本片段,进一步可以包括:
该机器人框架组件操作以接收该机器人命令文本片段的命令初始部 分;将命令初始部分提交给消息收发机器人;从该消息收发机器人接收一 个或多个预测的机器人命令文本片段,该一个或多个预测的机器人命令文 本片段包括该机器人命令文本片段;并且将该一个或多个预测的机器人命 令文本片段传送到该客户端装置。
在根据本发明的实施方式中,一种设备,其中该消息可以与消息线程 相关联,该消息包括机器人订阅命令,该设备进一步可以包括:
该机器人框架组件操作以响应于该机器人订阅命令将该消息线程订 阅到该消息收发机器人;
广播组件,操作以从该消息收发机器人接收广播消息;基于该消息收 发机器人确定用于该广播消息的多个订户线程,该多个订户线程包括该消 息线程;将该多个订户线程划分成多个订户线程块;并且将该多个订户线 程块中的每一个指派给多个广播工作者中的一个广播工作者;以及
该多个广播工作者操作以基于该多个订户线程块将该广播消息添加 到多个消息队列,该多个消息队列包括该消息队列。
在根据本发明的实施方式中,至少一种计算机可读存储介质可以包括 指令,该指令在被执行时可以使***:
从客户端装置接收消息;
将该消息添加到消息队列;
监视该消息队列;
检测该消息指示消息收发机器人调用;以及
基于检测到该消息指示消息收发机器人调用,而将该消息提交给机器 人框架组件;
确定与该消息相关联的消息收发机器人;以及
将该消息提交给消息收发机器人。
在根据本发明的实施方式中,一种计算机可读存储介质,其中该消息 可以包括文本内容部分,可以包括当被执行时使得***执行以下操作的另 外的指令:
检测该消息的文本内容部分中的机器人调用符号;以及
基于检测到机器人调用符号,而检测到该消息指示消息收发机器人调 用。
在根据本发明的实施方式中,一种计算机可读存储介质,其中该消息 可以与消息线程相关联,该计算机可读存储介质可以包括另外的指令,该 另外的指令在被执行时可以使***:
接收对该消息的消息收发机器人响应;以及
将该消息收发机器人响应***该消息队列中,该消息收发机器人响应 被标记用于在该消息线程中显示。
在根据本发明的实施方式中,一种计算机可读存储介质,其中该消息 可以包括文本部分,该文本部分包括机器人别名文本片段,该计算机可读 存储介质可以包括另外的指令,该另外的指令在被执行时可以使***:
接收该机器人别名文本片段的别名初始部分;
将该别名初始部分与机器人别名注册表进行匹配以确定一个或多个 预测的机器人别名文本片段,该一个或多个预测的机器人别名文本片段包 括该机器人别名文本片段;以及
将该一个或多个预测的机器人别名文本片段传送到该客户端装置。
在根据本发明的实施方式中,一种计算机可读存储介质,其中该消息 可以包括文本部分,该文本部分可以包括机器人命令文本片段,该机器人 命令文本片段包括另外的指令,该另外的指令在被执行时可以使***:
接收机器人命令文本片段的命令初始部分;
将命令初始部分提交给消息收发机器人;
从该消息收发机器人接收一个或多个预测的机器人命令文本片段,该 一个或多个预测的机器人命令文本片段包括该机器人命令文本片段;以及
将该一个或多个预测的机器人命令文本片段传送到该客户端装置。
在根据本发明的实施方式中,一种计算机可读存储介质,其中消息可 以与消息线程相关联,该消息包括机器人订阅命令,该计算机可读存储介 质可以包括另外的指令,该另外的指令在被执行时可以使***:
响应于机器人订阅命令,将消息线程订阅到消息收发机器人;
从该消息收发机器人接收广播消息;
基于该消息收发机器人确定用于该广播消息的多个订户线程,该多个 订户线程包括该消息线程;
将该多个订户线程划分成多个订户线程块;
将该多个订户线程块中的每一个指派给多个广播工作者中的一个广 播工作者;以及
由该多个广播工作者基于该多个订户线程块而将该广播消息添加到 多个消息队列,该多个消息队列包括该消息队列。
在根据本发明的另一个实施方式中,一个或多个包含软件的计算机可 读非瞬时性存储介质,该软件在被执行时操作以执行根据本发明的方法或 任何上述实施方式。
在根据本发明的另一实施方式中,***包括一个或多个处理器;以及 至少一个存储器,该至少一个存储器连接到该处理器并且包括可由该处理 器执行的指令,该处理器在执行该指令时操作以执行根据本发明的方法或 任何上述实施方式。
在根据本发明的另一实施方式中,优选地包括计算机可读非瞬时性存 储介质的计算机程序产品在数据处理***上执行时操作以执行根据本发 明的方法或任何上述实施方式。
附图说明
图1示出了消息收发***的实施方式。
图2示出了社交图谱的示例。
图3A示出显示消息收发界面的用户界面的实施方式。
图3B示出显示交通界面的用户界面的实施方式。
图3C示出显示目的地配置界面的用户界面的实施方式。
图3D示出显示配置的交通请求的用户界面的实施方式。
图3E示出了在消息线程中显示交通请求的用户界面的实施方式。
图4A示出了在消息线程中显示机器人消息的用户界面的实施方式。
图4B示出了在消息线程中显示用于服务更新的机器人消息的用户界 面的实施方式。
图4C示出显示来自服务提供商的实时聊天消息的用户界面的实施方 式。
图5A示出了在消息线程中显示触发的用户界面的实施方式。
图5B示出响应于触发而显示建议的服务的用户界面的实施方式。
图6示出显示到链接账户的提示的用户界面的实施方式。
图7A示出显示新用户对话的用户界面的实施方式。
图7B示出显示账户创建对话的账户细节请求的用户界面的实施方式。
图7C示出显示完成账户创建对话的用户界面的实施方式。
图8A示出了显示具有所建议的机器人的部分机器人地址的用户界面 的实施方式。
图8B示出显示基于完整机器人地址检索的建议命令的用户界面的实 施方式。
图8C示出显示基于部分机器人命令检索的更新的建议命令的用户界 面的实施方式。
图8D示出显示线程内机器人响应的用户界面的实施方式。
图9示出了通过消息收发***传送的消息的实施方式。
图10示出了对消息收发***中的消息的响应的实施方式。
图11示出了消息收发***中的订阅命令的实施方式。
图12示出了消息收发***中的广播消息的实施方式。
图13A示出了图1的***的第一逻辑流程的实施方式。
图13B示出了用于图1的***的第二逻辑流程的实施方式。
图14示出了用于图1的***的集中式***的实施方式。
图15示出了用于图1的***的分布式***的实施方式。
图16示出了计算架构的实施方式。
图17示出了通信架构的实施方式。
图18示出无线电装置架构的实施方式。
具体实施方式
网络连接的计算装置可以为他们的用户提供参与交互通信的不知情 的能力。人们可以参与与他们的好友、家人、同事以及其他关联的消息收 发交互。用户的消息与其联系人交换可各自被维持在不同的消息线程内。
这些网络连接的计算装置还可以向其用户提供对网络可访问服务的 访问。例如,交通服务、餐饮服务、娱乐服务和其他服务可以使用网站、 网络应用、客户端应用或其他网络可访问性技术来使人们能够使用他们的 客户端装置与其服务进行参与。在一些情况下,例如一些娱乐或媒体服务, 服务可被布置和经由客户端装置传递。例如,可经由客户端装置购买音乐 并将其传递到客户端装置以供回放。在其他情况下,例如利用交通、餐饮 和个人娱乐,可以经由客户端装置安排服务,但是在客户端装置外部执行 服务。例如,乘车共享服务可以经由客户端装置布置,但是通过向用户提 供乘车共享的车辆和驾驶员执行。
在一些情况下,网络可访问服务的使用可能涉及一个以上的人。具体 地,在用户对服务的访问是他们也用于消息收发的客户端装置的情况下, 用户可以受益于将他们对消息收发客户端中的网络可访问服务的参与与 服务涉及的其他人共享。因而,消息线程可以充当用户与其联系人的在线 社交关系的中枢,其中消息线程包含经由用于消息收发的相同客户端所请 求、监视或参与的服务。
为了帮助用户经由消息收发上下文与服务交互,服务可被表示为消息 收发***内的消息收发机器人。消息收发机器人可以是网络可访问服务的 完全或部分自动化的前端,该网络可访问服务可以表示为消息线程内的参 与者。在一些情况下,消息收发机器人可以与显式地包括消息收发机器人 的消息线程(诸如特定用户与消息收发机器人之间的一对一消息线程)对 应。在其他情况下,消息收发机器人可以在消息收发机器人不是常规参与 者的消息线程中与之对应,该消息收发机器人是消息线程中的临时参与者 以用于与服务交互的目的。消息收发机器人可以被包括作为任何其他线程 中的临时参与者,无论是两个用户之间的一对一线程还是多个用户之间的 群组线程。
因而,用户可以参与消息收发客户端的熟悉体验内的网络服务。此外, 通过使用消息收发客户端,用户可以参与消息收发上下文内的网络服务, 以便允许包括其他人。在一些情况下,这可以仅仅向其他人通知服务,例 如让好友或家人知道交通细节。在其他情况下,这可以为多个人授权服务 的执行,诸如晚餐、乘车、娱乐或其他服务布置在何处以供多个人使用。 因此,实施方式可以改进使用网络可访问服务的体验,并且可以将网络可 访问服务扩展到消息收发***的用户。
现在参考附图,其中相同的参考标号始终用于指代相同的元件。在以 下描述中,为了说明的目的,阐述了许多具体的细节以提供对本发明的彻 底的理解。然而,可以清楚的是,可以在没有这些具体细节的情况下实施 这些新颖的实施方式。在其他实例中,以框图的形式示出了众所周知的结 构和装置,以便于其描述。意图是涵盖所有的修改、等同物、以及与所要 求保护的主题一致的替代物。
值得注意的是,如在本文中使用的“a”和“b”和“c”以及类似的 指示符意指表示任何正整数的变量。因此,例如,如果实现方式设置a=5 的值,则图示为组件122-1至122-a的一组完整的组件122可包括组件 122-1、122-2、122-3、122-4和122-5。在该上下文中实施方式并不受限制。
图1示出了消息收发***100的框图。在一个实施方式中,消息收发 ***100可以包括具有包括一个或多个组件的软件应用的计算机实现的系 统。尽管在图1中示出的消息收发***100具有某个拓扑中的有限数量的 元件,但是可以理解,消息收发***100可以根据给定实现方式的需要在 替代拓扑中包括更多或更少的元件。
消息收发服务器110可以包括由作为消息收发***100的一部分的消 息收发平台操作的一个或多个消息收发服务器。消息收发服务器可以包括 互联网可访问服务器,其中网络120连接至少部分地包括互联网的消息收 发***100的各种装置。
用户可以拥有和操作智能电话装置150。智能电话装置150可以包括 装置、装置、装置或符合智能电话形式的任 何其他移动计算装置。智能电话装置150可以是能够使用蜂窝信号135经 由蜂窝***130连接到网络120的蜂窝装置。在一些实施方式中并且在一 些情况下,智能电话装置150可以另外或替代地使用Wi-Fi或其他联网技 术来连接到网络120。智能电话装置150可以执行消息收发客户端、网络 浏览器或其他本地应用以访问消息收发服务器110。
同一用户可以拥有和操作平板装置160。平板装置160可以包括装置、平板装置、装置、或符合平板形式的任何其他 移动计算装置。平板装置160可以是能够使用Wi-Fi信号145经由Wi-Fi 接入点140连接到网络120的Wi-Fi装置。在一些实施方式中并且在一些 情况下,平板装置160可以另外或替代地使用蜂窝或其他联网技术来连接 到网络120。平板装置160可以执行消息收发客户端、网络浏览器或其他 本地应用以访问消息收发服务器110。
同一用户可以拥有和操作个人计算机装置180。个人计算机装置180 可以包括Mac装置、装置、装置或运行另一操作系 统的其他计算机装置。个人计算机装置180可以是能够经由以太网连接而 连接到网络120的以太网装置。在一些实施方式中并且在一些情况下,个 人计算机装置180可以另外或替代地使用蜂窝、Wi-Fi、或其他联网技术 到网络120。个人计算机装置180可以执行消息收发客户端、网络浏览器 170或其他本地应用以访问消息收发服务器110。
消息收发客户端可以是专用消息收发客户端。专用消息收发客户端可 以具体地与管理包括消息收发服务器110的消息收发平台的消息收发提供 商相关联。专用消息收发客户端可以是操作为与多个不同的消息收发提供 商一起工作的通用客户端,多个不同的消息收发提供商包括管理包括消息 收发服务器110的消息收发平台的消息收发提供商。
消息收发客户端可以是提供附加功能的应用的组件。例如,社交网络 服务可以提供在移动装置上使用以访问和使用社交网络服务的社交网络 应用。社交网络服务可包括诸如可由消息收发服务器110提供的消息收发 功能。将认识到,消息收发服务器110可以是用于社交网络服务的计算装 置的一个组件,其中计算装置提供社交网络服务的附加功能。类似地,社 交网络应用可以提供消息收发功能和附加的社交网络功能。
在一些情况下,消息收发端点可保留用户会话之间的状态,并且在一 些情况下,消息收发端点可放弃用户会话之间的状态。消息收发端点可以 使用本地存储来保留消息收件箱的当前状态。该本地存储可以保存在永久 存储装置中,使得可以在一个会话和下一个会话之间检索状态,包括例如 本地应用退出或以其他方式从存储器移除或装置断电和再次开启的情况。 可替代地,消息收发端点可以使用存储器高速缓存来保持消息收件箱的当 前状态,但是阻止将消息收件箱的状态提交到永久存储装置。
保持消息收件箱的状态的消息收发端点可包括集成到另一本地应用 (诸如社交网络应用)中的专用消息收发应用或消息收发实用程序。放弃 消息收件箱的状态的消息收发端点可以包括在网络浏览器内实现的消息 收发访问。在一个实施方式中,诸如在个人计算机装置180上执行的网络 浏览器170的网络浏览器可以执行与消息收发服务器交互以向用户呈现消 息收发功能的HTML5代码。
用户可以从包括智能电话装置150、平板装置160和个人计算机装置 180的多个装置发送和接收消息。用户可以使用智能电话装置150上的第 一消息收发应用、平板装置160上的第二消息收发应用和个人计算机装置 180上的网络浏览器170。第一和第二消息收发应用可以包括在两个装置 上的相同应用的安装。第一和第二消息收发应用可以包括公共应用的智能 电话专用和平板专用版本。第一和第二消息收发应用可以包括不同的应用。
用户可以受益于使其消息收件箱在其装置之间保持一致。用户可以在 离开他们的家时在小区***130上使用他们的智能电话装置150、经由小 区***130发送和接收消息。用户可以顺便访问咖啡店或提供Wi-Fi的其 他位置,并且将其平板装置160连接到Wi-Fi接入点140。平板装置160 可以检索消息收件箱的其现有已知状态,并且接收自从平板装置160最后 一次访问网络以来已经发生的更新,包括在操作智能电话装置150时由智 能电话装置150发送的并且可能已经由用户接收的任何消息。然后,用户 可以返回家中并且使用个人计算机装置180上的网络浏览器170访问他们 的消息收件箱。网络浏览器170可以从消息收发服务器110接收消息收件 箱的当前状态的快照,因为其不维持或以其他方式不能够访问消息收件箱 的现有状态。只要其维持与消息收发服务器110的用户会话,网络浏览器 170然后可以检索对消息收件箱的状态的任何新改变的增量更新,在会话 结束时(诸如当用户关闭网络浏览器170时)丢弃消息收件箱的已知状态。 在没有限制的情况下,更新可以对应于将消息添加到邮箱、从邮箱删除消 息以及读取接收。
消息收发***100可以通过将消息收发收件箱定义为包括多个消息来 操作,其中每个消息是两个或更多参与者之间的通信的单独交易。邮件服 务器可以通过维持消息收发收件箱的消息索引来操作。邮件服务器可以接 收消息并且将该消息存储在邮件档案中,通过引用消息索引可以从该邮件 档案检索消息。邮件客户端可以连接到邮件服务器,并且从其最后的更新 中检索已经被添加到其邮件档案的消息。邮件客户端可以从邮件档案接收 指示哪些消息被存储在邮件档案中的邮件索引。邮件客户端可以将邮件档 案与它们的当前收件箱进行比较,以便确定它们缺失了哪些消息,然后它 们从邮件档案请求该消息。邮件客户端可以对其收件箱做出改变,这导致 邮件收件箱指令被传送到邮件档案,从而指示邮件档案对其邮件收件箱在 邮件档案上的表示做出修改。
由消息收发***调解的消息收发交互可被组织成被称为消息线程的 共享空间。消息线程可以收集在特定用户组之间共享的消息。在一对用户 之间单独发送的消息可被收集到与该对用户之间的私人消息收发唯一地 相关联的一对一消息线程中。在一组三个或更多个用户之间发送的消息可 不通过其成员资格唯一地定义,而是通过在一些实施方式中唯一地识别群 组线程的标识符来定义。在一些实施方式中,群组线程中的成员资格可随 时间变化,添加和/或丢失成员。
消息收发***100可以使用从用户之间的交互生成的知识。消息收发 ***100可以包括社交网络***的组件,并且可以使用从社交网络***的 更广泛的交互所生成的知识。因而,为了保护消息收发***100的用户和 更大的社交网络***的隐私,消息收发***100可以包括授权服务器(或 其他合适的组件),该授权服务器允许用户例如通过设置适当的隐私设置 来选择进入或选择退出使其动作由消息收发***100记录或与其他*** (例如,第三方***)共享。用户的隐私设置可以确定可以记录与用户相 关的什么信息、可以如何记录与用户相关联的信息、何时可以记录与用户 相关联的信息、谁可以记录与用户相关联的信息、与用户相关联的信息可 以与谁共享、以及记录或共享与用户相关联的信息的目的是什么。授权服 务器或其他授权组件可用于通过适当地阻挡数据散列、匿名化或其他合适 的技术来实施消息收发***100的用户和社交网络***的其他元素的一个 或多个隐私设置。
图2示出了社交图谱200的示例。在具体实施方式中,社交网络*** 可以将一个或多个社交图谱200作为社交图谱数据结构存储在一个或多个 数据存储中。
在具体实施方式中,社交图谱200可包括多个节点,该多个节点可 包括多个用户节点202和多个概念节点204。社交图谱200可包括连接节 点的多个边线206。在具体实施方式中,社交网络***、客户端***、第 三方***、或者任何其他***或装置可以访问社交图谱200和用于合适应 用的相关社交图谱信息。例如,社交图谱200的节点和边线可以在数据存 储(诸如社交图谱数据库)中存储作为数据对象。该数据存储可包括社交 图谱200中的节点或者边线的一个或多个可搜索或者可查询的索引。
在具体实施方式中,用户节点202可以对应于社交网络***的用户。 作为实例且非限制性方式,用户可以是与社交网络***或在社交网络*** 上交互或通信的个体(人类用户)、实体(例如,企业、商业或第三方应 用)、或群组(例如,个体或实体的群组)。在具体实施方式中,当用户向 社交网络***注册账户时,社交网络***可以创建对应于用户的用户节点 202,并且将用户节点202存储在一个或多个数据存储中。在适当情况下, 本文中描述的用户和用户节点202可以指注册用户和与注册用户相关联的 用户节点202。另外或作为替代,在适当的情况下,本文中描述的用户和 用户节点202可以指代尚未向社交网络***注册的用户。在具体实施方式 中,用户节点202可以与由用户提供的信息或者由包括社交网络***的各 种***收集的信息相关联。作为实例且非限制性方式,用户可以提供他们的姓名、简档图片、联系信息、出生日期、性别、婚姻状态、家庭状态、 职业、教育背景、偏好、兴趣或其他人口统计信息。在具体实施方式中, 用户节点202可以与和用户相关联的信息对应的一个或多个数据对象相关 联。在具体实施方式中,用户节点202可与一个或多个网页对应。用户节 点202可以与社交网络***中的用户的唯一用户标识符相关联。
在具体实施方式中,概念节点204可与概念对应。作为实例且非限制 性方式,概念可对应于地点(诸如,例如电影院、餐馆、地标或城市); 网站(例如,与社交网络服务相关联的网站或与网络应用服务器相关联的 第三方网站);实体(诸如,例如人、商业、群组、体育团队或名人);资 源(诸如,例如音频文件、视频文件、数字照片、文本文件、结构化文档 或应用),其可位于社交网络***内或外部服务器(诸如,网络应用服务 器)上;不动产或知识产权(诸如,例如雕刻、绘画、电影、游戏、歌曲、 构思、照片或书面作品);游戏;活动;构思或理论;另一个合适的概念; 或者两个以上的此类概念。概念节点204可以与由用户提供的概念的信息 或者由包括社交网络***的各种***收集的信息相关联。作为实例且非限 制性方式,概念的信息可包括姓名或标题;一个或多个图像(例如,书籍 封面页图像);位置(例如,地址或地理位置);网站(可以与URL相关 联);联系信息(例如,电话号码或者电子邮件地址);其他合适的概念信 息;或这种信息的任何合适的组合。在具体实施方式中,概念节点204可 以与和概念节点204相关联的信息对应的一个或多个数据对象相关联。在 具体实施方式中,概念节点204可与一个或多个网页对应。
在具体实施方式中,社交图谱200中的节点可代表或者表示为网页(可 被称之为“简档页面”)。简档页面可以由社交网络***托管或可由社交网 络***访问。简档页面也可以在与第三方服务器相关联的第三方网站上托 管。作为实例且非限制性方式,对应于具体外部网页的简档页面可以是该 具体的外部网页并且简档页面可对应于具体的概念节点204。其他用户的 全部或者所选子集可以查看简档页面。作为实例且非限制性方式,用户节点202可具有对应的用户简档页面,其中,对应的用户可以添加内容、发 布声明或者以其他方式表达他或她自己。诸如商业页面205的商业页面可 以包括用于商业实体的用户简档页面。作为另一实例且非限制性方式,概 念节点204可具有特别与对应于概念节点204的概念有关的其中一个或多 个用户可添加内容、发布声明、或者表达自身的对应概念简档页面。
在具体实施方式中,概念节点204可以表示由第三方***托管的第三 方网页或者资源。除其他元素之外,第三方网页或者资源可包括内容、可 选择的或者其他图标、或者表示动作或活动的其他相互作用对象(例如, 以JavaScript、AJAX、或PHP代码可以实现)。作为实例且非限制性方式, 第三方网页可包括诸如“喜欢”、“签到”、“吃”、“推荐”、或者另一合适 的动作或活动的可选择图标。观看第三方网页的用户可以通过选择图标中 的一个(例如,“吃”)来执行动作,使得客户端***向社交网络***发送 指示用户的动作的消息。响应于该消息,社交网络***可以在对应于用户 的用户节点202与对应于第三方网页或资源的概念节点204之间创建边线 (例如,“吃”边线),并且将边线206存储在一个或多个数据存储中。
在具体实施方式中,社交图谱200中的一对节点可以通过一条或多条 边线206彼此连接。连接一对节点的边线206可以表示该对节点之间的关 系。在具体实施方式中,边线206可包括或者表示一个或多个数据对象或 者对应于一对节点之间的关系的属性。作为实例且非限制性方式,第一用 户可指示第二用户成为第一用户的“好友”。响应于该指示,社交网络系 统可以向第二用户发送“好友请求”。如果第二用户确认“好友请求”,则 社交网络***可以在社交图谱200中创建将第一用户的用户节点202连接 至第二用户的用户节点202的边线206,并且将边线206作为社交图谱信 息存储在一个或多个数据存储中。在图2的示例中,社交图谱200包括指 示用户“Amanda”的用户节点202与用户“Dorothy”之间的好友关系的 边线206。尽管本公开描述或示出了具有连接具体用户节点202的具体属 性的具体边线206,但是本公开考虑具有连接用户节点202的任意合适属 性的任意合适边线206。作为实例且非限制性方式,边线206可表示好友 关系、家庭关系、商业或者雇佣关系、粉丝关系、跟随者关系、访问者关 系、订户关系、上级/下级关系、互惠关系、非互惠关系、另一合适类型的 关系、或者两种以上的此类关系。此外,尽管本公开总体上描述了连接的 节点,但是本公开也描述连接的用户或概念。此处,在适当的时候,引用 的连接的用户或者概念可指对应于社交图谱200中通过一条或多条边线 206连接的那些用户或者概念的节点。
在具体实施方式中,用户节点202与概念节点204之间的边线206可 以表示由与用户节点202相关联的用户向与概念节点204相关联的概念执 行的具体动作或活动。作为实施方式但并不作为限制,如图2所示,用户 可“喜欢”、“上过”、“播放了”、“收听了”、“烹饪了”、“曾工作”或者“观 看了”概念,其中的每一个均对应于边线类型或者子类型。例如,对应于 概念节点204的概念简档页面可以包括可选择的“签到”图标(诸如,例 如可点击的“签到”图标)或可选择的“添加到收藏夹”图标。同样,在 用户点击这些图标之后,社交网络***20可响应对应于相应动作的用户 的动作创建“最喜欢”边线或者“签到”边线。作为另一示例且非限制性 方式,用户(用户“Carla”)可以使用具体的应用(SPTIFY,其是在线音乐应用)来收听具体的歌曲(“Across the Sea”)。在这种情况下,社交网 络***可以在对应于用户的用户节点202与对应于歌曲和应用的概念节点 204之间创建“收听了”边线206和“使用了”边线(如图2中所示),以 指示用户收听了歌曲并且使用了应用。此外,社交网络***可以在对应于 歌曲与应用的概念节点204之间创建“播放了”边线206(如图2所示),以指示具体应用播放了具体歌曲。在这种情况下,“播放了”边线206对 应于由外部应用(SPTIFY)对外部音频文件(歌曲“Across the Sea”)执 行的动作。尽管本公开描述了具有连接用户节点202与概念节点204的具 体属性的具体边线206,然而,本公开考虑了具有连接用户节点202与与 概念节点204的任意合适属性的任意合适边线206。而且,尽管本公开描 述了用户节点202与概念节点204之间的表示单一关系的边线,然而本公 开考虑了用户节点202与概念节点204之间的表示一个或多个关系的边线。 作为实例且非限制性方式,边线206可代表用户既喜欢具体的概念并且又 使用了该具体概念。可替换地,另一边线206可以表示用户节点202与概 念节点204之间(如图2所示,在用户“Edwin”的用户节点202与针对 “SPOTIFY”的概念节点204之间)的每一种类型的关系(或者多种单一 关系)。
在具体实施方式中,社交网络***20可在社交图谱200中在用户节 点202与概念节点204之间创建边线206。作为实例且非限制性方式,查 看概念简档页面的用户(例如,通过使用网络浏览器或由用户的客户端系 统托管的专用应用)可以通过点击或选择“喜欢”图标来指示他或她喜欢 由概念节点204表示的概念,这可以使用户的客户端***向社交网络*** 发送指示用户对与概念简档页面相关联的概念的喜欢的消息。响应于该消 息,社交网络***可以在与用户相关联的用户节点202和概念节点204之 间创建边线206,如用户和概念节点204之间的“喜欢”边线206所示。 在具体实施方式中,社交网络***可以将边线206存储在一个或者多个数 据存储中。在具体实施方式中,边线206可以由社交网络***响应于具体 用户动作而自动形成。作为实例且非限制性方式,如果第一用户上传图片、 观看了电影或者收听了歌曲,则可在对应于第一用户的用户节点202与对 应于这些概念的概念节点204之间形成边线206。尽管本公开描述了以具 体的方式形成具体边线206,但是本公开考虑了以任何合适的方式形成任 何合适的边线206。
社交图谱200可进一步包括多个产品节点。产品节点可以表示可以与 特定商业相关联的特定产品。商业可以向客户到商业服务110提供产品目 录,并且客户到商业服务110因此可以表示社交图谱200中的产品内的每 个产品,其中每个产品处于不同的产品节点中。产品节点可以包括与产品 有关的信息,诸如定价信息、描述性信息、制造商信息、可用性信息和其 他相关信息。例如,餐馆菜单上的每个项目可在社交图谱200内表示,其 中产品节点描述每个项目。产品节点可以由边线链接到提供产品的商业。 在多个商业提供产品的情况下,每个商业可以具有与其提供产品相关联的 不同的产品节点,或者可以各自链接到相同的产品节点。产品节点可以由 边线链接到已经购买、评级、拥有、推荐或查看该产品的每个用户,其中 该边线描述关系的性质(例如,购买、评级、拥有、推荐、查看或其他关系)。这些产品节点中的每一个可以借助于所链接的商家商业而与图形id 和相关联的商家id相关联。因此,通过检索链接到社交图谱200内的商业 的用户节点的可用产品节点,可将可从商业获得的产品传送到用户。产品 节点的信息可由社交网络***操纵为封装关于所引用产品的信息的产品 对象。
因而,社交图谱200可用于推断社交网络***的两个以上用户的共享 兴趣、共享体验或其他共享或共同属性。例如,社交图谱200中所表示的 各自具有到共同商业、产品、媒体项、机构或其他实体的边线的两个以上 用户可指示与该实体的共享关系,该共享关系可用于建议针对一个或多个 用户的社交网络***(包括消息收发***100)的使用的定制。
图3A示出了在客户端装置320上显示消息收发界面的用户界面300 的实施方式。
用户界面300可以包括用于一对一消息线程的用户界面。可以在一对 一消息线程交互显示310中显示消息线程的消息交换的至少一部分。一对 一消息线程交互显示310可以包括对由一对一消息线程的用户交换的一个 或多个消息的显示。
一个或多个消息中的每一个可由具体消息气泡(诸如消息气泡315) 表示。消息气泡可表示原子消息收发交互。消息气泡通常可对应于限定的 几何区域,其中具体消息收发交换(例如,文本、媒体)的内容被包含在 限定的几何区域内。消息气泡可具有将其与消息线程交互显示的背景区分 开来的不同颜色或多种颜色(例如,一个或多个梯度)。消息气泡可以具 有明显着色的边界,诸如所描绘的黑色轮廓,或者可以具有由消息气泡的 不同颜色与背景之间的界面定义的边界。在一些实施方式中,消息气泡和 背景中的任一者或两者的一种或多种颜色可由显示配置***100的用户定 制和配置。
用于消息线程的用户界面300可包括线程控制317。线程控制317的 一些部分可以在消息线程的显示期间永久地可见,诸如授权访问另外的的 用户界面控制的控制栏。线程控制317中的一些(诸如控制栏中的控制) 可以授权对用于执行各种任务(诸如文本输入、媒体选择、表情符号选择、 相机使用等)的另外的用户界面控制的访问。然而,一些控制——并且在 一些实施方式中,准确地是线程控制317中的一个——授权立即发送单个图标,诸如社交批准图标。线程控制317中的一个或多个可包括对应于具 体消息收发机器人或服务的机器人调用或服务请求控制。线程控制317的 一部分可包括用于文本输入的文本控制。线程控制317的一部分可以包括 文本输入显示区域,该文本输入显示区域显示已被用户输入或以其他方式 选择但是尚未作为消息发送给线程中的其他参与者的文本。在一些实施方 式中,在文本输入显示区域中输入所输入或选择的文本可以与消息收发系 统100的消息收发服务器110进行通信以用于分析、提供建议或其他操作。
用户界面300可以包括线程标题305,线程标题列出线程中所涉及的 一个或多个其他用户。线程标题305可以自动使用用户的名称,诸如全名、 短名或被注册为名称以用于与具体用户进行消息收发和/或社交网络交互 的其他名称。
图3B示出了在客户端装置320上显示交通界面的用户界面325的实 施方式。交通界面可以包括消息收发客户端的元素。
可以在诸如通过选择交通控制来请求交通时调用交通界面。通常,当 调用服务特定控制时,可以调用服务特定接口。在一些情况下,服务特定 接口可特定于服务类或类型,例如,本地交通(例如,乘车共享)。在其 他情况下,服务特定接口可以特定于具体服务提供商,诸如特定的交通提 供商。
交通界面可以包括交通信息显示335,诸如客户端装置320的本地区 域的地图,以及通过代理的客户端装置320的用户。交通信息显示335可 包括客户端装置320的当前位置,诸如可表示在局部区域的地图上。
交通界面可以包括交通控制340。交通控制可以授权起始位置和目的 地位置的指定。在正在请求交通服务的情况下,诸如在乘车共享服务中, 起始位置可以包括服务的用户将被搭载的位置。目的地位置可以包括服务 的用户将被递送到的位置。在图3B的所示实施方式中,在目的地位置还 未指定时已指定了起始位置。起始位置与所请求服务的所估计的搭载时间 相关联。如果选择了控制读取“ADD DESTINATION”,则可以指定目的 地位置。如果选择由当前起始目的地表示的控制,则可修改起始位置。在 一些实施方式中,可以例如通过在所显示的地图上选择起始位置和/或目的 地位置来指定起始位置和/或目的地位置。在一些实施方式中,所显示的地 图可被放大、缩小、滚动或以其他方式操纵。
图3C示出显示目的地配置界面的用户界面350的实施方式。
交通配置控制355可包括多个建议的位置的显示。可基于多种技术来 确定建议的位置。在一些实施方式中,可以基于从中调用交通配置控制355 的消息线程的内容来确定建议的位置。例如,可以建议与消息线程的上下 文相关的位置。在所示出的实施方式中,可以响应于消息线程引用去看电 影而已经建议了电影院。
在一些实施方式中,可以基于其接近度建议位置,其中更接近的位置 相对于更远的位置被提升。在一些实施方式中,可以基于消息线程中所涉 及的一个或多个用户的历史、以及具体地客户端装置320的用户来建议位 置。例如,可以建议最近访问、频繁访问、在类似于当前时机(例如,一 天中的时间、一周中的一天)的先前时机最近或频繁访问的位置、或以其 他方式与用户的历史相关的位置。在一些实施方式中,可以建议与参与消 息线程的一个或多个用户相关的位置,诸如一个或多个用户的地址。在一 些实施方式中,可以建议与一个或多个其他用户相关的位置。例如,在消 息线程中提及另一用户的情况下,可以建议该用户的地址,如果使得该地 址对客户端装置320的用户可用的话。
交通配置控制355可以包括文本输入控制。可以使用文本输入控制至 少部分地基于输入的文本来确定建议的位置。
图3D示出显示所配置的交通请求的用户界面360的实施方式。
配置的交通请求可以包括指定的起始位置和目的地位置两者。可以在 更新的交通控制370中显示起始位置和目的地位置的文本版本。更新的交 通控制370可通过选择当前配置的起始位置或目的地位置来授权对起始位 置和/或目的地位置的修改。可以在更新的交通信息365中显示起始位置和 目的地位置的图形表示以及建议路径。在一些实施方式中,配置的交通请 求可以与针对配置的行程的估计行进时间相关联地显示。
图3E示出了在消息线程中显示交通请求的用户界面375的实施方式。
然后可以在消息线程中显示从消息线程向服务提交的配置的交通请 求。服务请求的实施方式可以被生成并且被添加到消息线程的消息序列中 并且被传送到参与消息线程的所有用户。参与消息线程的用户中的每一个 可以在其消息线程的视图中被提供线程内机器人请求显示385。对于交通 请求,线程内机器人请求显示385可以包括起始位置的文本显示、目的地 位置的文本显示、起始位置的视觉表示、目的地位置的视觉表示、和/或建议路线的表示。通常,请求显示可包括所请求服务的文本描述符。
图4A示出了在消息线程中显示机器人消息的用户界面400的实施方 式。机器人消息可以是由自动化例程生成的自动生成的消息,而不需要直 接的人类干预。
在一些情况下,机器人可以生成消息并将该消息提供给消息线程。该 消息可以涉及从消息线程内请求机器人的服务。对已经在线程内做出的对 机器人的请求可以授权机器人向消息线程传送消息,否则可以防止该机器 人这么做。在这种情况下,线程内机器人消息405包括对机器人所请求的 服务的确认。在一些实施方式中,线程内机器人消息405可以包括消息内 机器人控制410——并且可以包括多个消息内机器人控制。消息内机器人控制410可以授权用户修改、取消或以其他方式与消息内机器人消息405 所涉及的请求交互。在这种情况下,消息内机器人控制410授权取消所请 求的交通服务。
图4B示出了在消息线程中显示用于服务更新的机器人消息的用户界 面425的实施方式。
在所示出的实施方式中,第二线程内机器人消息430已经被机器人添 加到消息线程。第二线程内机器人消息430涉及关于机器人请求的服务的 更新,在这种情况下,更新传送提供机器人所请求的服务的特定个体、与 服务的性能有关的其他信息、以及与服务的性能有关的估计时间。第二线 程内机器人消息430进一步包括消息内机器人控制435,该消息内机器人 控制435授权附加的功能,诸如联系提供服务的特定个体和检索提供服务 的个体到达的更新的估计时间。
图4C示出显示来自服务提供商的线程内实时聊天消息455的用户界 面450的实施方式。
在一些实施方式中,用于服务的线程内消息可以是由消息收发机器人 自动生成的机器人消息。然而,在其他实施方式中,用于服务的线程内消 息可以是线程内实时聊天消息455。线程内实时聊天消息455可以包括由 人类操作员响应于在消息线程中请求的服务而编写和提交的消息。与机器 人消息相反,线程内实时聊天消息455可以响应于在消息线程中做出的服 务或其他请求的情况而被单独地生成或单独地选择并提交给消息收发***100,而不是被编程以使用或被程序化地生成。
尽管服务通常不是消息线程中的参与者、通常不知晓消息线程的内容、 并且通常不被授权将消息添加到消息线程,但是线程内实时聊天消息455 可以被***到消息线程中。基于已经被用于向服务做出请求、查询或以其 他方式联系服务的消息线程,可由消息收发***100授权服务以向消息线 程提交线程内实时聊天消息455。然而,可以防止服务提供商接收和查看 未指向服务提供商的任何消息,并且可以仅向服务提供商提供专门指向服 务提供商的任何消息,诸如在开始时使用服务别名或消息收发机器人别名 的消息、或者以其他方式寻址到服务提供商或响应来自服务提供商的消息 的消息。
线程内实时聊天消息455可以由提供特定服务的运营商提供。在所示 出的实施方式中,用于乘车共享服务的驾驶员已经将线程内实时聊天消息 455传送到消息收发***100,并且已将线程内实时聊天消息455分发给 消息线程中的参与者。在这些情况下,线程内实时聊天消息455可以与账 户名称、用户化身或用于提供特定服务的运营商的其他个人识别信息相关 联,并且运营商可以被单独授权临时访问消息线程或其一部分。例如,运 营商可被单独地授权临时访问寻址到运营商或寻址到与运营商相关联的 服务的消息线程的部分。可以通过在评论前添加地址符号(如“@”符号) 和服务的名称来对运营商或服务寻址。
可替代地,线程内实时聊天消息455可以由针对服务的服务提供商(诸 如服务提供商的代表)提供。例如,表示乘车共享服务的顾客服务可将线 程内实时聊天消息455传送到消息收发***100,以用于分发给消息线程 中的参与者。在这些情况下,线程内实时聊天消息455可以被关联以与账 户名称、用户化身或用于服务代表的其他个人识别信息进行显示,并且该 代表可以单独地被授权临时访问消息线程。可替代地,线程内实时聊天消 息455可以被关联以与账户名称、用户化身或用于整个服务的其他识别信 息进行显示。用于服务的计算机***可被授权暂时访问消息线程或其一部 分,其中服务提供对计算机***的访问以根据其自身的过程与消息线程通 信到其代表。例如,运营商可被单独地授权临时访问寻址到运营商或寻址 到与运营商相关联的服务的消息线程的部分。
图5A示出了在消息线程中显示触发的用户界面500的实施方式。
触发通常可对应于消息收发***100与潜在动作相关联的消息线程的 字、短语或其他元素。机器人触发可以总体上对应于消息收发***100与 对机器人的潜在请求相关联的触发。在所示实施方式中,文本片段“movie” 可以包括第一机器人触发505并且文本片段“Southpointe”可以包括第二 机器人触发510。第一机器人触发505可以指示对与电影有关的机器人请 求的兴趣。第二机器人触发510可以指示对与位置“Southpointe”相关的 机器人请求的兴趣,该位置可独立地或与电影的现有线程上下文相关联地 被识别为与被称为“Southpointe”的具体电影院相关联。选择触发的用户 可以调用与该触发有关的建议服务,诸如建议的机器人。可以基于字和/ 或短语与服务之间的预定和预先指派的关联来确定触发,或者可以基于自 然语言编程技术来自动确定触发。
图5B示出响应于触发而显示建议的服务的用户界面525的实施方式。
用户可以在消息收发线程接口中选择触发。作为响应,消息收发客户 端可在多个已触发的控制530中检索并显示多个建议服务,诸如可对应于 建议机器人。在一些实施方式中,可以响应于检测到触发的消息收发客户 端和/或消息收发***100来自动显示多个建议服务。触发的控制530可以 包括多个消息收发机器人选项。消息收发机器人选项535可包括与具体服 务相关联的具体机器人。在一些实施方式中,消息收发机器人选项可与服务性能信息540相关联。服务性能信息可以包括例如估计的性能信息,诸 如估计的到达时间和估计的成本或价格信息。消息收发机器人选项可包括 服务评级信息545,服务评级信息545包括对服务的质量的评估,诸如可 从用户反馈导出。可以选择消息收发机器人选项以调用与相关联的消息收 发机器人的交互。消息收发机器人选项可以与从中调用它们的消息收发线 程相关联地显示。
触发的控制530可以包括对服务和消息收发机器人的建议。触发的控 制530可以包括建议的消息收发机器人的排名列表。可以基于各种技术和 基于各种因素来确定建议的消息收发机器人。可以基于线程中的用户的位 置来选择和排名所建议的消息收发机器人。例如,地理上接近或地理上更 接近一个或多个用户的位置的消息收发机器人可以被选择或排名更高。与 先前已经与用户的当前地理位置相关联的活动相关的消息收发机器人可 以类似地被选择或排名更高,诸如当一对夫妇在其就业地点彼此收发消息 时,建议与餐馆相关的消息收发机器人。
可以基于一个或多个检测到的关键字或意图与消息收发机器人之间 的关联来选择和排名建议的消息收发机器人。关键字可以对应于从消息收 发交互的内容中提取的字或短语。消息收发***100可以具有相关关键字 的注册表并且可以检查消息收发交互的内容以将这些关键字识别和提取 为用于选择和排名消息收发机器人的基础。例如,“乘车”或“运输”的 提及可以提示运输相关服务的建议或运输相关服务的更高排名。意图可以 包括基于消息收发交互的上下文生成的未在消息收发交互内明确地使用 的关键字、概念、短语或其他标识符。消息收发***100可以具有意图的 注册表并且可以对消息收发交互的内容执行自然语言处理以确定由消息 收发交互推断的意图。例如,多个特定电影的提及可以暗示意图关键字“电 影”,而没有特定使用词语“电影”。在另一个示例中,关于他们是否“想要去看某物”的人对人询问可以暗示对电影的兴趣,而不直接使用词语“电 影”。
关键字和/或意图可以从体现在消息线程中的消息收发交互的内容或 内容的一部分中提取。在一些情况下,可以使用消息线程的最近部分,诸 如通过检测与消息线程的当前参与时间段并且从消息线程提取当前时间 段的关键字和/或意图。可以根据各种技术来定义消息线程的最近部分。在 一些情况下,最近部分可以根据预定义的时间长度来定义,其中最近部分 是在跨越等于预定义的时间长度并且在当前时间结束的长度的时间范围 期间交换的线程的片段。在一些情况下,最近部分可被确定为跨越可变长 度,诸如通过检测可能被预定义的具有足够长度的会话中的最近断开,以 指示与消息线程的临时脱离。例如,消息线程的最近部分可以是在当前时 间结束的线程的最大范围,该最大范围不包括会话中的任何长于一小时的 间隙。可以使用用于定义线程的最近部分的其他技术。消息线程的该最近 部分可被分析以确定一个或多个关键字,该一个或多个关键字可包括显式 地在消息线程内使用的一个或多个显式关键字,并且该一个或多个关键字 可包括基于自然语言处理技术从消息线程推断的一个或多个意图关键字。
关键字,无论是显式地提取还是从意图中导出,都可以用于确定消息 线程中的用户可能感兴趣的一个或多个服务。触发的控制530可以包括选 择与一个或多个服务的一个或多个提供商相对应的消息收发机器人。例如, 可以提取或推断与“电影”和“运输”相关的关键字。可选择与电影有关 的多个提供商,例如售票服务和电影院运营商。可以选择与运输相关的多 个提供商,例如多个乘车共享服务。针对多个服务中的每一个的多个提供 商可以被连接到一起成为多个组合的提供商,该多个组合的提供商表示被 检测为可能的互联网的到消息线程中的用户的多个服务。然后,可以根据 各种因素对该多个组合提供商及其相关联的消息收发机器人进行排名,包 括对由提供商提供的服务的位置、检测到的兴趣等级、对特定提供商的检 测到的兴趣等级、针对一个或多个用户全局地或者具体地在消息线程内请 求各种服务的先前历史、针对一个或多个用户全局地或具体地在消息线程 内使用各种提供商的先前历史,或者根据任何其他相关因素。
在一些实施方式中,在要提供多个服务的情况下,可以构建相应的提 供商的排名,以便向陈列要提供的各种服务。例如,针对任一项服务,每 个服务的排名最高的提供商可以在第二提供商之前被选择并提供作为排 名最高的提供商(并且因此作为排名最高的相关联的消息收发机器人)。 针对每个服务的排名最高的提供商通常可以根据对服务的所预测的兴趣 和/或具体地基于对提供商的所预测的兴趣来排名,如可以根据本文中描述的各种因素来确定。
图6示出显示链接账户的提示的用户界面600的实施方式。
在用户已经具有特定服务的账户的情况下,并且特别是在消息收发客 户端意识到用户具有特定服务的账户的情况下,可以邀请用户将其消息收 发账户与具有针对服务的用户账户的消息收发***100链接。消息收发客 户端可以基于例如针对安装在客户端装置320上的服务的应用、识别对于 消息收发客户端和服务两者已知的用户的信息(例如,电话号码、电子邮 件地址)、或使用任何已知的技术来检测用户已经具有服务的账户。
可以向已经具有与所选择的机器人相对应的服务的账户的用户呈现 现有用户对话605。现有用户对话605可以包括取消或制止链接账户的控 制。现有用户对话605可以包括继续链接账户的控制。
链接账户可包括消息收发***100与针对服务的***之间的信息交换。 链接账户可包括用户的识别信息的交换,诸如姓名、人口统计信息、地址、 电话号码、电子邮件地址或其他信息。链接账户可包括财务信息的交换。 通常,作为链接账户的结果,可以交换与用户有关的任何信息。链接账户 可授权消息收发***100代表用户请求具有链接服务的服务。链接账户可 以授权链接服务经由消息收发***100向用户传送消息。
图7A示出显示新用户对话705的用户界面700的实施方式。
当消息收发客户端缺乏用户具有带有服务的现有账户的知识时,可由 消息收发客户端显示新用户对话705。在消息收发客户端缺乏用户具有带 有服务的现有账户的知识的情况下,当机器人被选择时,可以调用新用户 对话705。新用户对话705可以包括现有账户控制,该现有账户控制授权 用户指示他们已经具有服务的账户并且提供服务账户的信息以链接账户。 新用户对话705可以包括授权用户利用服务配置账户的账户创建控制。
图7B示出显示针对账户创建对话730的账户细节请求的用户界面725 的实施方式。
账户创建对话730可以授权用户针对所选择的机器人创建服务的账户。 在消息收发***100已知的情况下,账户所需细节的至少一部分可以由消 息收发***100指定。在示出的实施方式中,可以共享电子邮件地址和公 共简档(即,对于社交网络***)以授权服务所需的细节。
然而,消息收发***100对于一些细节可能是未知的,并且账户创建 对话730因此可请求用户指定未知细节。需要的信息控制735授权用户指 定消息收发***100未知的所需信息。在所示实施方式中,消息收发*** 100请求用户的电话号码和***信息,以提供给服务。消息收发***100 可以保留该信息以扩展用户的用户账户信息,并且之后可以再使用该信息。
在服务所需的信息仍对消息收发***100未知的情况下,消息收发客 户端可呈现禁用账户创建控制740。禁用账户创建控制740可以是不活动 的,使得用户可以不使用它来完成账户创建。一旦输入了所需信息,则禁 用账户创建控制740可被启用。
图7C示出显示完成的账户创建对话的用户界面750的实施方式。
完成的账户创建对话可以对应于一旦向消息收发***100注册了用户 的所有所需信息就示出的对话。在选择了需要消息收发***100已知的全 部信息的机器人的情况下,可以立即显示完整账户创建对话而无需中间的 不完整账户创建对话。现在服务所需的所有信息都已注册到消息收发*** 100,账户创建对话730现在包括启用账户创建控制755。启用账户创建控 制755可以授权用户发起服务的账户的创建。消息收发***100可以向服 务提供所需的信息,从而执行账户创建。
在一些实施方式中,可以仅以符号化形式向服务提供财务信息。被令 牌化的财务信息形式(诸如***信息)可能足以授权服务执行交易,而 无需服务访问财务信息的细节。例如,用户的信用***可以对服务隐藏并 且仅利用消息收发***100保持。在一些实施方式中,消息收发***100 可代表用户使用用户的财务信息执行金融交易,并且然后将所需的资金提 供给服务。在任一实施方式中,可以通过抑制将用户的财务信息传送到服 务来保护用户的财务信息。
图8A示出了显示具有所建议的机器人805的部分机器人地址810的 用户界面800的实施方式。
用户可以使用文本控制在消息收发界面的文本输入字段中输入文本。 可分析由用户输入的文本以确定其是否可对应于机器人调用。在一些实施 方式中,可以使用特定符号(诸如“@”符号)来指示机器人调用。消息 收发客户端和/或消息收发***100可以检测机器人调用符号并且作为回 报建议机器人。在已经指定了超出机器人调用符号的附加文本的情况下, 消息收发***100可以生成具有以指定文本开始的机器人别名的具体建议 的机器人805。机器人别名可以对应于机器人的注册名称,该名称被注册 到消息收发***100。
可以基于各种技术来确定所建议的机器人805。在一些实施方式中, 可以基于其中输入部分机器人地址810的消息线程的内容来确定所建议的 机器人805。例如,可以建议与消息线程的上下文相关的机器人。在示出 的实施方式中,可以响应于消息线程提及去看电影而已建议用于电影服务 的机器人。在一些实施方式中,可以基于消息线程中所涉及的一个或多个 用户,并且具体地客户端装置320的用户的历史来建议机器人。例如,可 以建议最近使用、频繁使用、在类似于当前时机(例如,一天中的时间、 一周中的一天)的先前时机中最近或频繁使用、或以其他方式与用户的历 史相关的机器人。各种技术中的任何技术可用于对建议机器人805的选择, 诸如参见图5B描述的任何技术。选择所建议的机器人可以利用所选择的 机器人的完整别名自动完成文本输入字段。
图8B示出显示基于完整机器人地址835而检索的建议命令830的用 户界面825的实施方式。
完整机器人地址835可包括文本片段,其以机器人调用符号开始,且 接着是对应于机器人别名的文本片段。可通过使用机器人别名内不允许的 特定字符(诸如空格)来确定机器人地址的完成。响应于在文本输入字段 中输入完整的机器人地址835,建议的命令830可由消息收发客户端检索 并提供给用户。
建议的机器人命令830可由对应于机器人的服务来确定。建议的机器 人命令830可包括可用于向机器人发出的命令。建议的机器人命令830可 基于各种技术来确定。在一些实施方式中,建议的机器人命令830可以基 于消息线程的内容来确定,在该消息线程中输入了完整的机器人地址835。 例如,可以建议与消息线程的上下文相关的机器人命令。在示出的实施方 式中,可以响应于消息线程提及去看电影而建议用于电影服务的机器人。然而,在其他实施方式中,可以防止机器人服务接收未专门为机器人标记 的任何消息内容,以避免违反消息线程的隐私。在一些实施方式中,可以 向机器人服务提供关键字,而不提供消息线程的完整历史。
在一些实施方式中,可以基于消息线程中所涉及的一个或多个用户, 并且具体地客户端装置320的用户的历史来建议机器人命令。例如,可以 建议最近使用、频繁使用、在类似于当前时机(例如,一天中的时间、一 周中的一天)的先前时机中最近或频繁使用、或以其他方式与用户的历史 相关的机器人命令。在一些实施方式中,可向机器人服务提供输入完整机 器人地址835的用户的用户识别符,以使机器人服务能够基于其已知的用 户历史来动作。在一些实施方式中,机器人服务可负责生成建议的机器人 命令830并将其提供给消息收发***100,以经由消息收发客户端提供给 用户。选择建议的机器人命令可以利用完整的机器人命令自动完成文本输 入字段。
图8C示出显示基于部分机器人命令860检索的更新的建议命令855 的用户界面850的实施方式。
文本输入字段可以包含机器人调用符号,接着是完整的机器人别名和 部分机器人命令860。消息收发***100可将部分机器人命令860与用于 由完整机器人别名指定的机器人服务的机器人命令进行匹配,以提供对应 于部分机器人命令860的经更新的建议命令855,例如以部分机器人命令 860的字符开始的命令。在一些实施方式中,部分机器人命令860可以被 提供给与完整机器人别名相关联的机器人服务,其中经更新的建议命令 855作为响应而被提供,并且此后经由消息收发客户端被提供给用户。在 这些实施方式中,消息收发***100可以将在消息收发客户端上生成的每 个文本片段(即,通过字符的迭代添加生成的每个文本片段)提供给适当 的机器人服务并且作为响应接收建议的命令并且将建议的命令提供给用 户。
图8D示出显示线程内机器人响应885的用户界面875的实施方式。
经由用于消息线程的文本输入字段输入的线程内机器人命令880可作 为消息线程内的消息被分布给消息线程中的所有参与者,并且由此被分布 到由消息线程中的所有参与者使用的所有装置。线程内机器人命令880可 进一步被提供给机器人服务。
机器人服务可利用线程内机器人响应885回复线程内机器人命令880。 线程内机器人响应885可被***到消息线程中,尽管机器人服务通常不是 消息线程中的参与者、通常不知晓消息线程的内容、并且通常不被授权将 消息添加到消息线程。线程内机器人响应885可包括响应于线程内机器人 命令880而由机器人服务生成的响应。在这种情况下,线程内机器人响应 885包括线程内机器人控制890,以授权用户采取与线程内机器人响应885相关的动作。用户还可以被授权使用经由文本输入字段输入并作为消息线 程的元素被输出的附加机器人命令来答复线程内机器人响应885。
图9示出了通过消息收发***100传送的消息910的实施方式。
消息收发***100可以包括多个组件。在一些实施方式中,这些多个 组件可以分布在多个服务器中。在其他实施方式中,单个服务器可以实现 多个组件。在一些实施方式中,多个服务器可以由单个服务器装置执行。 在其他实施方式中,多个服务器可以由多个服务器装置执行。在一些实施 方式中,可以执行各种组件和各种服务器的多个实例以提供冗余、改进的 缩放和其他益处。类似地,作为消息收发客户端的一部分,客户端装置可 以执行多个组件。
客户端装置可使用无线传输与其他装置通信以交换网络流量。交换网 络流量(例如,可包括在交换消息收发交易中),可包括经由网络接口控 制器(NIC)传送和接收网络流量。NIC包括将计算机装置(诸如客户端 装置)连接到计算机网络的硬件组件。NIC可与授权软件应用访问和使用 NIC的软件网络接口相关联。可以通过计算机网络接收网络流量,作为通 过数据链路传送的信号。可通过捕捉这些信号并解释这些信号来接收网络 流量。NIC可通过计算机网络接收网络流量,并使用网络接口应用编程接 口(API)将网络流量传送到软件应用可访问的存储器。网络接口控制器 可以用于本文中描述的实施方式的网络活动,包括消息收发客户端和消息 收发服务器110通过网络通信的互操作。例如,向客户端前端服务器935 传送消息或从客户端前端服务器935接收消息的消息收发客户端可被解释 为使用网络接口控制器来进行到通信网络的网络接入,以用于信息的传送 或接收。
消息收发客户端可以包括用户界面组件923。用户界面组件923可以 通常被布置为向客户端装置的用户显示用户界面并且接收针对客户端装 置的消息收发客户端的用户命令。用户界面组件923可以在客户端装置上 的消息线程显示中接收消息收发机器人调用,并且响应于消息收发机器人 调用而结合消息线程显示调用客户端装置上的消息收发机器人交互用户 界面。用户界面组件923然后可以经由消息收发机器人交互用户界面接收消息收发机器人交互命令。
消息收发客户端可包括客户端消息收发组件926。客户端消息收发组 件926可通常被布置来经由与客户端前端服务器935的通信代表消息收发 客户端进行消息收发交互。客户端消息收发组件926可以操作以将消息收 发机器人交互命令从客户端装置传送到消息收发***。消息收发机器人交 互命令可以是消息910的至少一部分,诸如作为消息910传送的文本片段 的至少一部分。在一些情况下,包括消息910的消息主体的文本片段可对 应于消息收发机器人交互命令。
客户端前端服务器935通常可布置以充当客户端装置(例如发送方客 户端装置920)的消息收发***100的网络接入点。客户端前端服务器935 可包括消息收发组件930,消息收发组件930通常布置以充当消息收发系 统100的消息收发服务的网络接入点。消息收发组件930可以从发送方客 户端装置920接收消息910并且将消息910添加到消息队列980。
消息队列980可特别地与发送方客户端装置920的用户相关联,诸如 通过利用发送方客户端装置920的用户的用户账户在消息收发***100内 唯一地相关联。消息队列980可以是用于此用户使用的所有消息收发端点 的单个队列。消息队列980可包括严格线性顺序的更新的表示。消息队列 980可根据多种技术被组织为数据单元。消息队列980可存储在半永久性 存储器、永久性存储装置、半永久性存储器和永久性存储装置两者、或两 者的组合中。消息队列980可根据各种数据结构来组织,包括链接列表、 阵列和用于组织队列的其他技术。消息队列980可通常包括先入先出 (FIFO)队列,其中在该队列之前接收到的任何更新之前,将不从该队列 移除更新。
消息收发***100可以包括工作者服务器945。一般而言,消息收发 ***100可以包括可以被指派给各种任务的多个工作者服务器。工作者服 务器945可包括消息队列监视组件940,该消息队列监视组件940经布置 以针对各种标志、指示符和其他信息监视消息队列980中的更新(例如可 包括消息)和消息收发***100的其他消息队列。
消息队列监视组件940可操作以监视消息队列980。消息队列监视组 件940可检查消息队列980内的每个条目并检测消息910指示消息收发机 器人调用。响应于检测到消息910指示消息收发机器人调用,消息队列监 视组件940可将消息910提交到机器人框架组件950。在一些实施方式中, 向机器人框架组件950提交消息910可以包括向机器人框架组件950传送 消息910。在其他实施方式中,例如通过向机器人框架组件950传送消息 910的标识符,向机器人框架组件950提交消息910可以包括向机器人框 架组件950传送检测到消息910具有消息收发机器人调用的通知。
消息收发***100可以包括机器人前端服务器955。机器人前端服务 器955可以充当消息收发***100的消息收发机器人服务的接入点。机器 人前端服务器955可以充当消息收发***100的服务器与一个或多个内部 和/或外部机器人执行服务器之间的中介。机器人前端服务器955可包括机 器人框架组件950,该机器人框架组件950通常被布置为向消息收发机器 人***提供可访问的框架。
机器人框架组件950操作以从消息队列监视组件940接收消息910、 或者从消息队列监视组件940接收消息910的通知,并且从消息队列980 检索消息910,确定与消息910相关联的消息收发机器人,并且将消息提 交给消息收发机器人。
消息收发机器人调用可包括机器人调用文本片段。消息910可以包括 文本内容部分,该文本内容部分记录机器人调用文本片段。用户界面组件 923可以接收消息线程显示的文本输入部分中的机器人调用文本片段。客 户端消息收发组件926可将机器人调用文本片段传送到消息收发服务器 110。
可以基于以机器人调用符号(诸如“@”地址符号)开始的文本片段 来识别机器人调用文本片段。消息队列监视组件940可检测消息910的文 本内容部分中的机器人调用符号,且基于检测到机器人调用符号而检测到 消息910指示消息收发机器人调用。消息队列监视组件940可针对以机器 人调用符号开始的那些消息操作以检查消息队列980中的每个消息。
在一些实施方式中,发送方客户端装置920可通过用机器人调用标志 标记消息910的元数据部分来标记包括机器人的信息的消息。消息队列监 视组件940可检测消息910的元数据部分中的机器人调用标志,且基于检 测到机器人调用标志而检测到消息910指示消息收发机器人调用。
在一些情况下,消息收发机器人可以由消息收发***100外部的服务 器(诸如由与机器人相关联的服务操作的外部机器人服务器975)执行。 机器人框架组件950可以确定用于与消息收发机器人相关联的服务的外部 机器人服务器975。消息收发***100可以维持基于机器人别名索引的机 器人别名注册表。机器人框架组件950可从消息910查找由机器人别名识 别的消息收发机器人,并且检索与机器人别名相关联的外部机器人服务器975的机器人信息。机器人信息可以指示(但不限于)用于联系外部机器 人服务器975的寻址信息。机器人框架组件950可通过将消息910传送到 与消息收发机器人相关联的外部机器人服务器975来将消息910提交到消 息收发机器人。在一些实施方式中,提交消息910可包括提取消息内容并 且使用机器人服务器交互应用编程接口(API)组件970将消息内容传送 到外部机器人服务器975。
在其他情况下,消息收发机器人可以由消息收发***100的服务器执 行。机器人框架组件950可确定用于与消息收发机器人相关联的服务的托 管机器人服务器965。机器人框架组件950可从消息910查找由机器人别 名识别的消息收发机器人,并检索用于与机器人别名相关联的托管机器人 服务器965的机器人信息。托管机器人服务器965可包括由消息收发*** 100的提供商维护的机器人服务器。机器人框架组件950可通过将消息910传送到与消息收发机器人相关联的托管机器人服务器965来将消息910提 交给消息收发机器人。
消息收发***100可以帮助用户找到机器人和寻址机器人。消息收发 ***100可以生成客户端装置的用户的建议消息收发机器人。这些建议可 以响应于消息收发机器人的预测调用(诸如通过在消息收发客户端的文本 输入字段中输入机器人调用符号)而生成。可以在用户执行搜索的上下文、 消息线程中的一个或多个其他用户的上下文、消息线程的上下文、和/或其 他上下文信息上选择这些建议。当用户在文本输入字段中输入附加文本时, 可以通过选择那些以用户在文本输入字段中输入的文本开始的机器人别 名来细化这些建议。
用户界面组件923可以在消息收发客户端的文本输入字段中接收别名 初始部分。用户界面组件923可基于在其之前的机器人调用符号而将输入 到文本输入字段中的文本识别为别名初始部分。然而,通常,用户界面组 件923可以将在文本输入字段中输入的任何文本传送到消息收发***100。 用户界面组件923可将别名初始部分传送到机器人框架组件950。在一些 实施方式中,别名初始部分可以被直接传送到机器人前端服务器955。在 其他实施方式中,别名初始部分可经由客户端前端服务器935传送。
机器人框架组件950可接收机器人别名文本片段的别名初始部分。机 器人框架组件950可将别名初始部分与机器人别名注册表进行匹配以确定 一个或多个预测的机器人别名文本片段,并将一个或多个预测的机器人别 名文本片段传送到发送者客户端装置920。发送方客户端装置920可将一 个或多个预测的机器人别名文本片段显示给发送方客户端装置920的用户, 以使一个或多个预测的机器人别名文本片段可用于用户选择或使用。在用 户使用由一个或多个预测的机器人别名文本片段传送的预测的机器人别 名之一的情况下,通过在界面中选择或将机器人别名键入到文本输入字段 中,消息910因此可以包括消息910的文本部分中的一个或多个预测的机 器人别名文本片段中的机器人别名文本片段。
消息收发***100可以帮助用户确定机器人命令。消息收发***100 可以为客户端装置的用户生成建议的消息收发机器人命令。这些建议可以 响应于对消息收发机器人的预测调用(诸如通过在消息收发客户端的文本 输入字段中输入机器人调用符号,之后输入所识别的机器人别名)而生成。 可以在用户执行搜索的上下文、消息线程中的一个或多个其他用户的上下 文、消息线程的上下文、和/或其他上下文信息上选择这些建议。机器人命 令的建议可以由执行机器人的服务来执行,并且因而建议可以由服务提供 商在消息收发***100外部生成。
当用户在文本输入字段中输入附加的文本时,通过选择那些以在文本 输入字段中由用户输入的文本开始的机器人命令,这些建议可以被细化。 用户界面组件923可以经由消息线程显示的文本输入部分接收命令文本片 段初始部分、将命令文本片段初始部分传送到机器人框架组件950、以及 响应于将命令文本片段初始部分传送到机器人框架组件950通过从机器人 框架组件950接收一个或多个预测的机器人命令文本片段来确定一个或多 个预测的机器人命令文本片段。
用户界面组件923可接收消息线程显示的文本输入部分中的机器人调 用文本片段。接收该机器人调用文本片段可对应于接收消息收发机器人调 用。用户界面组件923可将机器人调用文本片段传送到机器人框架组件 950以确定一个或多个预测的机器人命令文本片段。如同针对机器人别名 的建议,在一些实施方式中,可以经由客户端前端服务器935将机器人调 用文本片段传送到机器人框架组件950。
机器人框架组件950可接收机器人调用文本片段,并提取机器人命令 文本片段的命令初始部分。提取命令初始部分可包括从机器人调用文本片 段排除机器人调用符号和机器人别名。可替代地,在一些实施方式中,整 个机器人调用文本片段可以被提交给消息收发机器人。机器人框架组件950可以将命令初始部分提交给消息收发机器人并且从消息收发机器人接 收一个或多个预测的机器人命令文本片段。机器人框架组件950然后可以将一个或多个预测的机器人命令文本片段传送到客户端装置。如果用户使 用预测的机器人命令文本片段中的一个,则它可以出现在消息910的文本 部分内。
用户界面组件923可以从机器人框架组件950接收一个或多个预测的 机器人命令文本片段,并且在消息线程显示中显示一个或多个预测的机器 人命令文本片段。一个或多个预测的机器人命令文本片段的该显示可对应 于调用消息收发机器人交互用户界面。
用户界面组件923可接收对一个或多个预测的机器人命令文本片段的 机器人命令文本片段的用户选择。用户选择可包括选择所预测的机器人命 令片段中的一者以显示所预测的机器人命令文本片段。用户选择可以包括 在消息收发客户端的文本输入字段中输入预测的机器人命令文本片段中 的一个。这个机器人命令文本片段可以作为消息910被传送到客户端前端 服务器935的消息收发组件930。
在一些情况下,可调用用于消息收发机器人的配置界面作为消息收发 机器人交互用户界面。在消息线程内调用消息机器人可以包括用户界面组 件923在消息线程显示中接收消息收发机器人控制选择。响应于消息收发 机器人控制选择,用户界面组件923可以在消息线程显示中显示消息收发 机器人交互配置界面。用户界面组件923可以接收针对消息收发机器人交 互配置界面的一个或多个用户界面选择。所接收的一个或多个用户界面选 择可包括经由消息910发送至消息收发***100的消息收发机器人交互命 令。
在一些情况下,所选择的控制可以是服务类型控制。服务类型控制指 示多个提供商可用于服务的服务类别。用户界面组件923可以接收对发送 方客户端装置920上的消息线程显示中的服务类型控制的服务类型控制选 择。用户界面组件923可以响应于服务类型控制选择在消息线程显示中显 示多个消息收发机器人控制。
用户界面组件923可以显示与多个消息收发机器人控制中的每一个相 关联的服务性能信息。服务性能信息可以包括但不限于估计的成本、估计 的到达时间、估计的行进时间以及服务可用性中的一项或多项。服务性能 信息可以由机器人框架组件950从机器人服务器针对相关联的消息收发机 器人而检索,并且被提供给用户界面组件923。
消息收发机器人的使用以及因此相关联的服务可能要求用户对服务 的账户。用户界面组件923可以在发送方客户端装置920上的消息线程显 示中接收消息收发机器人控制选择。用户界面组件923可以确定用户缺乏 与消息收发机器人相关联的服务的用户账户,并且作为响应,在消息线程 显示中显示用于服务的用户账户创建界面。用户界面组件923可以接收与 用户账户创建界面的用户交互,基于接收到的与用户账户创建界面的用户交互而生成用户账户创建命令,并且将用户账户创建命令传送到服务。在 一些实施方式中,用户账户创建命令可以被直接传送到该服务。在其他实 施方式中,用户账户创建命令可经由机器人框架组件950和/或客户端前端 服务器935传送。
一些服务可能要求在执行所请求的服务之前验证发送方客户端装置 920的用户电话号码。在消息收发***100已经验证电话号码的情况下, 例如通过将验证码传送到电话号码(例如,在文本消息中)并且使在消息 收发客户端中输入验证码,消息收发***100可以证明对电话号码的验证, 并且因此从执行电话号码验证中保存服务并且从执行电话号码验证的努 力中保存用户。因而,消息收发***100可以与用户账户创建命令相关联 地向服务验证与客户端装置相关联的用户电话号码。向服务验证用户电话 号码可以操作以防止服务执行用户电话号码验证。
在向消息收发***100注册用户的财务信息的情况下,可以从服务返 回用户的完全财务信息,以便保护用户的财务细节。相反,在消息收发机 器人交互命令调用服务的服务请求的情况下,客户端消息收发组件926可 以向服务传送针对用户的令牌化的财务信息。令牌化的财务信息可以授权 服务执行金融交易,而不向服务揭示用户的完全财务信息。消息收发*** 100可以使用对财务信息的不可逆转变换来生成符号化的财务信息。在一 些情况下,财务信息可以被存储在消息收发服务器110上而不是发送方客 户端装置920上,或者除了发送方客户端装置920之外财务信息还可以被 存储在消息收发服务器110上,伴随由消息收发服务器110生成和从消息 收发服务器110发送的令牌化的财务信息。
在用户已经具有服务的账户的情况下,消息收发服务100可以利用现 有账户来安排服务。在消息收发***100当前不具有用户的财务信息的情 况下,服务可以向消息收发***100提供用户的财务信息,以用于与消息 收发***100和其他服务进行金融交易。向消息收发***100提供财务信 息可以是完全的、非令牌化的形式。用户界面组件923可以在客户端装置 上的消息线程显示中接收消息收发机器人控制选择,并且确定用户与用于 与消息收发机器人相关联的服务的用户账户相关联。该确定可以由发送方 客户端装置920上的消息收发客户端或由消息收发服务器110做出。发送 方客户端装置920或机器人框架组件950可响应于接收到消息收发机器人 控制选择而针对用户的财务信息查询服务,并与消息收发***100的用户 相关联地存储财务信息。
除了从消息队列980提取之外,消息910可以被传送到接收方客户端 装置990。发送方客户端装置920上的消息收发客户端的消息线程显示可 以与消息收发***100的消息线程相关联。该消息线程可以与消息收发系 统的两个以上的个体用户相关联。除了发送方客户端装置920之外的那些 用户的客户端装置(其可包括接收方客户端装置990)可各自接收消息910 的副本。甚至在只有两个用户与消息线程相关联的情况下,每个用户可以 与多于一个的客户端装置相关联,从而增加用于接收消息910的客户端装 置的数量。在附加的用户与消息线程相关联的情况下,诸如在群组消息线 程中,那些附加用户的客户端装置也可以接收消息910。通常,除了被提 取用于由消息收发机器人处理的消息910之外,还可以通过消息收发*** 100的常规操作将消息910分发给客户端装置。
图10示出消息收发***100中对消息910的响应1010的实施方式。
在一些情况下,消息收发***100可产生机器人响应。在托管机器人 服务器965上的机器人执行组件960可生成对消息910的消息收发机器人 响应1010。一些托管的机器人可以在消息收发***100的提供商的内部开 发,其可以包括但不限于用于玩游戏、访问消息收发***服务或其他服务 的机器人。一些托管的机器人可以在消息收发***100的提供商的外部开 发。这些第三方机器人可以由消息收发***100的提供商使用作为用于执 行托管机器人的第三方软件的托管平台的托管机器人服务器965来托管。 机器人执行组件960可以将消息910的消息收发机器人响应1010传送到 机器人框架组件950。
机器人框架组件950可从机器人服务器接收对消息910的消息收发机 器人响应1010,无论是来自托管机器人服务器965或外部机器人服务器 975。机器人框架组件950可接收对消息910的消息收发机器人响应1010 并将消息收发机器人响应1010***到消息队列980中。在消息队列980 中***消息收发机器人响应1010可包括将消息收发机器人响应1010添加 到消息队列980,作为消息队列980的新更新。消息收发组件930然后可 以将消息收发机器人响应1010作为消息队列980的常规操作的一部分传 送到发送方客户端装置920,以将消息队列980中的消息提供到其相关联 的用户的装置。
消息910可能已经与消息线程相关联地发起。在一些情况下,消息线 程可以是一对一机器人消息线程,其中用户直接与没有任何附加用户的机 器人接洽。在其他情况下,消息线程可以包括多个用户,诸如一对一消息 线程或群组消息线程。可将消息收发机器人响应1010***到消息队列980 中,消息收发机器人响应1010被标记以在消息线程中显示。消息收发机 器人响应1010可以被***针对消息线程中的每个参与者的消息队列中, 被标记以在消息线程中显示。
消息线程可以与消息***100的两个以上的个体用户相关联。每个用 户可以具有与消息收发***100相关联的消息队列。响应1010可被*** 到两个以上用户中的每一个的消息队列中。这些用户中的每一个可以与至 少一个客户端装置相关联,诸如通过在向每个用户的用户账户注册的每个 客户端装置上具有消息收发客户端。客户端前端服务器上的消息收发组件 因此可以将消息收发机器人交互响应1010从消息收发***100传送到两 个以上的客户端装置。
发送方客户端装置920上的消息收发客户端的客户端消息收发组件 926可从消息收发***100接收消息收发机器人交互响应1010。消息收发 客户端的用户界面组件923然后可以在消息线程显示中显示消息收发机器 人交互响应1010。
图11示出了消息收发***100中的订阅命令1110的实施方式。
在大多数情况下,机器人可以仅响应于用户向机器人发送的消息而被 准许向用户的消息队列980添加消息。由于用户向消息收发机器人发送消 息910,所以消息收发机器人可以被授权利用响应1010来答复消息910。 在一些情况下,消息收发机器人可以被授权向消息910发送单个响应1010。 在其他情况下,可响应于消息910而授权消息收发机器人在有限时间段内 发送响应。
此外,消息收发***100的用户还可以被授权将消息线程订阅到机器 人以被推送来自机器人的更新。对机器人的订阅可以授权机器人向订阅的 消息线程传送消息。该授权可具有限制,诸如具有有限数量的可在给定时 间段内发送的订阅消息。例如,消息收发机器人可以被限制为一天发送最 多一个消息或一天发送特定数量的消息。在一些实施方式中,用户的订户 线程偏好可指定对消息收发机器人可以向消息线程发消息的频率的限制。
到消息收发机器人的消息910可以包括订阅命令1110、订阅命令1110 指示消息收发***100和消息收发机器人:与消息订阅命令1110相关联 的消息线程应当从消息收发机器人接收订阅消息。机器人框架组件950可 以响应于机器人订阅命令1110而向消息收发机器人订阅消息线程。在各 种实施方式中,订阅命令可直接从客户端消息收发组件926传送至机器人 框架组件950,可直接从消息收发组件930传送至机器人框架组件950, 或可在消息队列980中检测并由此与机器人框架组件950进行通信。
订阅命令1110还可由接收方客户端装置990(诸如用于参与订阅命令 1110订阅的消息线程的用户的每个接收方客户端装置)接收。订阅命令 1110可以作为消息线程已经订阅消息收发机器人的消息线程中的通知被 订阅到接收方客户端装置990。通常,消息线程的任何成员可以将线程订 阅消息收发机器人、不订阅来自消息收发机器人的线程、或者修改消息线 程对消息机收发器人的订阅的订户线程偏好。这些动作中的任何动作可以 导致通知消息被添加到用于消息线程的每个成员的消息队列、通知消息传 送动作,无论是订阅、取消订阅或订户线程偏好的修改。
订阅可以被维持在订阅注册表中。订阅注册表可以在唯一地识别消息 收发***100内的消息线程的线程标识符与对消息收发机器人的订阅之间 进行映射。订阅注册表可以包括但不限于具有用于每个注册订阅的行的数 据库或数据库表。每个注册订阅可以与该订阅的订户线程偏好相关联。
图12示出了消息收发***100中的广播消息1210的实施方式。
广播消息1210向客户端装置的分发可以以两个阶段来执行,以容纳 大量接收方,广播消息1210可以具有分发广播广播消息1210的工作并且 因此通过多个服务器和服务器装置分发广播广播消息1210的工作。在一 些情况下,消息收发机器人可以具有数百万或几十亿个订户,这可能超过 单个服务器装置分发具有期望响应性的广播消息1210的能力。因而,第 一阶段服务器可以生成潜在接收方列表,并且多个第二阶段服务器可以将 广播消息1210添加到广播消息1210的接收方的消息队列。
机器人前端服务器955可以包括广播组件1240。广播组件1240通常 可以被布置为生成潜在接收方的列表并且将广播消息1210的分发指派给 一个或多个广播工作者。广播组件1240可以从消息收发机器人接收广播 消息1210并且确定用于广播消息的多个订户线程。确定多个订户线程可 以基于消息收发机器人,诸如通过将消息收发机器人的消息收发机器人标 识符与订阅注册表进行比较以检索订阅消息收发机器人的消息线程的线 程标识符。
广播组件1240可以将多个订户线程划分成多个订户线程块。订户线 程块可以在消息收发***100内具有预定义的大小。机器人框架组件950 可基于预定义的块大小来生成多个订户线程块,将多个订户线程划分为预 定义大小的块,由于订户线程的数量不是预定义大小的精确重复,所以可 能的是较小大小的单个块。可以使用其他划分方案,例如使得订户线程块 具有大致相等的大小,例如,在彼此之一内具有成员资格,其中,此大致 相等的大小在不超过预定义的大小的情况下尽可能大。可替代地或另外地 使用其他划分技术。
机器人框架组件950可将多个订户线程块中的每个指派给多个广播工 作者中的一个广播工作者。该多个广播工作者可在多个工作者服务器1245 上执行。广播工作者1250通常可以被布置成处理订户线程块并且将广播 消息1210添加到多个消息队列。该多个广播工作者可基于该多个订户线 程块将该广播消息添加到多个消息队列,其中该多个广播工作者中的每一 个将该广播消息添加到对应于其分配的订户线程块的消息队列。
广播工作者的动作可以由订户线程偏好通知,该订户线程偏好可以作 为订户线程块的元素被分配到广播工作者。该多个广播工作者可检索多个 订户线程偏好,该多个订户线程偏好中的每一者与对应订户线程相关联。 该多个广播工作者可以将该多个订户线程偏好中的每一个与对应的订户 线程进行比较,以确定多个所选择的订户线程,该多个所选择的订户线程 是该多个订户线程的子集。例如,订户线程偏好可以指定一天中期望广播消息的部分,诸如排除一天中的夜间睡眠部分。订户线程偏好可以指定用 于广播消息的话题、频率、内容(例如,文本、图像、视频)或任何其他 元素或上下文,并且指定这些广播消息应该或不应该被允许。在没有限制 的情况下,各种技术可以用于指定和应用针对订户线程偏好的规则。然后, 多个广播工作者可以将广播消息添加到对应于多个所选择的订户线程的 多个所选择的消息队列,多个所选择的消息队列对应于作为所选择的订户 线程的成员的用户的消息队列。
本文中包括代表用于执行所公开的架构的新颖方面的示例性方法的 一组流程图。虽然为了简单说明,在本文中例如以流程图的形式示出的一 个或多个方法被示出和描述为一系列动作,但是应当理解和认识到的是, 方法不限于动作的顺序,因为一些动作可以以不同的顺序发生和/或与本文 中示出和描述的其他动作同时发生。例如,本领域中的技术人员应该理解 并且认识到的是,方法可替换地表示为诸如状态图中一系列相关联的状态 或事件。此外,新颖的实现方式并不要求在方法中示出的所有动作。
图13A示出了第一逻辑流程1300的一个实施方式。逻辑流程1300 可以表示由本文中所描述的一个以上实施方式执行的一些或所有的操作。
在图13A所示的实施方式中,逻辑流程1300可在框1302处在客户端 装置上的消息线程显示中接收消息收发机器人调用。
逻辑流程1300可在框1304处响应于消息收发机器人调用而结合消息 线程显示调用客户端装置上的消息收发机器人交互用户界面。
逻辑流程1300可在框1306处经由消息收发机器人交互用户界面接收 消息收发机器人交互命令。
在框1308,逻辑流程1300可以将消息收发机器人交互命令从客户端 装置传送到消息收发***。
逻辑流程1300可在框1310处在客户端装置处从消息收发***接收消 息收发机器人交互响应。
逻辑流程1300可在框1312在消息线程显示中显示消息收发机器人交 互响应。
实施方式不限于该实例。
图13B示出了第一逻辑流程1350的一个实施方式。逻辑流程1300可 以表示由本文中所描述的一个以上实施方式执行的一些或所有的操作。
在图13B中示出的所示实施方式中,逻辑流程1350可以在框1352处 从客户端装置接收消息。
逻辑流程1350可以在框1354处将消息添加到消息队列。
逻辑流程1350可在框1356监视消息队列。
逻辑流程1350可在框1358处检测消息指示消息收发机器人调用。
在框1360处,逻辑流程1350可基于检测到消息指示消息收发机器人 调用而将消息提交到机器人框架组件。
逻辑流程1350可以在框1362确定与消息相关联的消息收发机器人。
逻辑流程1350可以在框1364将该消息提交给消息收发机器人。
实施方式不限于该实例。
图14示出集中式***1400的框图。集中式***1400可以在单个计 算实体中(诸如,完全在单个集中式服务器装置1420内)实现消息收发 ***100的结构和/或操作中的一些或全部。
集中式服务器装置1420可包括能够接收、处理和发送用于消息收发 ***100的信息的任何电子装置。电子装置的示例可以包括但不限于:超 移动装置、移动装置、个人数字助理(PDA)、移动计算装置、智能电话、 电话、数字电话、蜂窝电话、电子书阅读器、手机、单向寻呼机、双向寻 呼机、消息收发装置、计算机、个人计算机(PC)、台式计算机、膝上型 计算机、笔记本计算机、上网本计算机、手持式计算机、平板计算机、服 务器、服务器阵列或服务器场、网络服务器(web server)、网络服务器 (network server)、互联网服务器、工作站、微型计算机、主机计算机、 超级计算机、网络装置(network appliance)、网络装置(webappliance)、 分布式计算***、多处理器***、基于处理器的***、消费者电子装置、 可编程的消费者电子装置、游戏装置、电视、数字电视、机顶盒、无线接 入点、基站、订户站、移动订户中心、无线电网络控制器、路由器、集线 器、网关、网桥、交换机、机器或其中的组合。在此上下文中实施方式并 不受限制。
集中式服务器装置1420可使用处理组件1430来执行用于消息收发系 统100的处理操作或逻辑。处理组件1430可以包括各种硬件元件、软件 元件、或这两者的组合。硬件元件的示例可以包括装置、逻辑装置、组件、 处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻 器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存 储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软 件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系 统程序、软件开发程序、机器程序、操作***软件、中间件、固件、软件 模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、 指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号 或其中的任何组合。确定是否使用硬件元件和/或软件元件实施实施方式可 根据许多因素而变化,如对于给定实施方式所期望的,诸如,期望的计算 速率、功率电平、耐热性、处理循环预算、输入数据速率、输出数据速率、 存储器资源、数据总线速度和其他设计或性能限制。
集中式服务器装置1420可使用通信组件1440来执行用于消息收发系 统100的通信操作或逻辑。通信组件1440可以实现任何公知的通信技术 和协议,诸如适合与分组交换网络(例如,诸如互联网的公共网络、诸如 企业内联网的专用网络等)、电路交换网络(例如,公共交换电话网络)、 或分组交换网络和电路交换网络的组合(具有合适的网关和转换器)一起 使用的技术。通信组件1440可以包括各种类型的标准通信元件,诸如, 一个以上通信接口、网络接口、网络接口卡(NIC)、无线电、无线发射器/接收器(收发器)、有线和/或无线通信介质、物理连接器等等。例如但不 限于,通信介质1412包括有线通信介质和无线通信介质。有线通信介质 的实例可以包括配线、电缆、金属引线、印刷电路板(PCB)、底板、交 换结构、半导体材料、双绞线、同轴电缆、光纤、传播信号等等。无线通 信介质的实例可以包括声学、射频(RF)频谱、红外和其他无线介质。
集中式服务器装置1420可经由通信组件1440使用通信信号1414通 过通信介质1412与其他装置通信。装置可以根据给定实现方式的需要在 集中式服务器装置1420的内部或外部。装置可以包括客户端装置1410。 客户端装置1410通常可以对应于个人计算机装置180、智能电话装置150、 平板装置160、客户端装置320、发送方客户端装置920和接收方客户端 装置990中的任一项。
图15示出分布式***1500的框图。分布式***1500可跨多个计算 实体分发消息收发***100的结构和/或操作的部分。分布式***1500的 实例可以包括但不限于客户端-服务器架构、3层架构、N层架构、紧密耦 接或集群架构、对等架构、主从架构、共享数据库架构、以及其他类型的 分布式***。在此上下文中实施方式并不受限制。
分布式***1500可包括多个服务器装置1535、1545、1555、1565。 通常,服务器装置1535、1545、1555、1565可与如参见图14描述的集中 式服务器装置1420相同或类似。例如,服务器装置1535、1545、1555、 1565可各自包括处理组件1530和通信组件1540,该处理组件1530和通 信组件1540分别与如参见图14所描述的处理组件1430和通信组件1440 相同或相似。在另一示例中,服务器装置1535、1545、1555、1565可经 由通信组件1540使用通信信号1514通过通信介质1512进行通信。
服务器装置可以包括或采用一个或多个客户端程序,该客户端程序用 于执行根据所描述的实施方式的各种方法。多个客户端前端服务器装置 1535可各自执行客户端前端服务器935,客户端前端服务器中的每一者执 行如参考客户端前端服务器935所描述的任务。多个工作者服务器装置1545可各自执行工作者服务器945或与工作者服务器1245中的一个相对 应的工作者服务器,每个工作者服务器执行如参考工作者服务器945或工 作者服务器1245所描述的任务。多个机器人前端服务器装置1555可以各 自执行机器人前端服务器955,每个机器人前端服务器执行如参考机器人 前端服务器955所描述的任务。多个托管机器人服务器装置1565可各自 执行托管机器人服务器965,每个托管机器人服务器执行如参考托管机器 人服务器965所描述的任务。
将认识到,服务器和服务器装置之间的关系可能不是一对一的。在一 些实施方式中,单个服务器装置可以执行多个服务器。类似地,在一些实 施方式中,服务器装置可以基于消息收发***100的需求而在角色之间转 换,并且因此在它们执行的服务器之间转换。通常,各种技术可用于跨多 个服务器装置分布服务器任务。
客户端装置1520通常可对应于个人计算机装置180、智能电话装置 150、平板装置160、客户端装置320、发送方客户端装置920、接收方客 户端装置990和客户端装置1410中的任一个。
图16示出适用于实现如先前描述的各种实施方式的示例性计算架构 1600的实施方式。在一个实施方式中,计算架构1600可以包括电子装置 或者实施为电子装置的一部分。电子装置的示例可以包括参见图14、图 15所描述的那些,等等。在该上下文中实施方式并不受限制。
如在本申请中所使用的,术语“***”和“组件”旨在指代计算机相 关的实体,或是硬件、硬件和软件的组合、软件,或是执行的软件,其实 例通过示例性计算架构1600提供。例如,组件可以是但不限于在处理器 上运行的处理,处理器、硬盘驱动、(光和/或磁存储介质的)多存储驱动、 对象、可执行程序、执行线程、程序、和/或计算机。以示例的方式,在服务器上运行的应用程序和服务器两者都可以是组件。一个以上组件可存在 于处理和/或执行线程内,并且组件可以位于一个计算机上和/或分布在两 个以上计算机之间。此外,组件可以通过各种类型通信介质彼此通信地耦 接以协操作。协作可以涉及单向或双向的信息的交换。例如,组件可以在 通信介质上以传送的信号的形式传送信息。该信息可以被实现为分配给各 种信号线的信号。在这样的分配中,每条消息都是信号。然而,其他实施 方式可以替代地采用数据消息。这样的数据消息可以通过各种连接来发送。 示例性的连接包括并行接口、串行接口以及总线接口。
计算架构1600包括各种共同计算元件,诸如,一个以上处理器、多 核处理器、协处理器、存储器单元、芯片组、控制器、***装置、接口、 振荡器、定时装置、视频卡、声卡、多媒体输入/输出(I/O)组件、电源 等等。然而,实施方式并不限于由计算架构1600实施。
如图16所示,计算架构1600包括处理单元1604、***存储器1606 和***总线1608。处理单元1604可以是任何各种商用处理器,包括但不 限于和处理器;应用、嵌入式 安全处理器;和和处理器;IBM 和Cell处理器;Core(2) 以及处理器;以及类似的处理器。双微处理器、多核处 理器和其他多处理器架构也可以用作处理单元1604。
***总线1608提供***组件(包括但不限于***存储器1606至处理 单元1604)的接口。***总线1608可以是使用各种商用总线结构中的任 一种可以进一步与存储器总线(有或者没有存储器控制器)、***总线、 以及本地总线互连的几种类型的总线结构中的任一种。接口适配器可以经 由插槽结构连接到***总线1608。示例性插槽结构可以包括但不限于图形 加速端口(AGP)、卡总线(Card Bus)、(扩展)工业标准结构((E)ISA)、 微通道结构(MCA)、NuBus、***组件互连(扩展)(PCI(X))、PCI Express、 个人计算机存储器卡国际联合会(PCMCIA)等等。
计算架构1600可以包括或实现各种制品。制品可以包括用于存储逻 辑的计算机可读存储介质。计算机可读存储介质的示例可包括能够存储电 子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或 不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻 辑的实例可以包括使用任何合适类型的代码,诸如,源代码、编译代码、 直译码、可执行码、静态码、动态码、面对对象代码、视码等等实施的可 执行计算机程序指令。实施方式也可至少部分地实施为非易失性计算机可 读介质中或非易失性计算机可读介质上所包含的指令,一个以上处理器可 以读取和执行该指令以使得能够执行本文中所描述的操作。
***存储器1606可以包括一个或多个高速存储器单元形式的各种类 型的计算机可读存储介质,诸如只读存储器(ROM)、随机存取存储器 (RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步 DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦 除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、 诸如铁电聚合物存储器的聚合物存储器、双向存储器、相变或铁电存储器、 硅-氧化物-氮化物-氧化物-氧化物-硅(SONOS)存储器、磁卡或光卡、诸 如独立磁盘冗余阵列(RAID)驱动器的装置阵列、固态存储器装置(例如,USB存储器、固态驱动器(SSD)、以及用于存储信息的任何其他合 适类型的介质。在图16所示的所示实施方式中,***存储器1606可以包 括非易失性存储器1610和/或易失性存储器1612。基本输入/输出*** (BIOS)可以存储在非易失性存储器1610中。
计算机1602可以包括一个以上低速存储器单元形式的各种类型的计 算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)1614、磁软 盘驱动器(FDD)1616以从可移动磁盘1618中读取或者向可移动磁盘1618 写入,以及光盘驱动器1620以从可移动光盘1622(例如,CD-ROM或 DVD)读取或向可移动光盘1622写入。HDD1614、FDD 1616和光盘驱 动器1620可分别通过HDD接口1624、FDD接口1626和光驱动接口1628 连接到***总线1608。用于外部驱动器实现方式的HDD接口1624可包 括通用串行总线(USB)和IEEE1394接口技术中的至少一者或两者。
驱动器和相关联的计算机可读介质提供易失性和/或非易失性的数据、 数据结构、计算机可执行指令等等的存储。例如,多个程序模块可以存储 在驱动器和存储器单元1610、1612中,包括操作***1630、一个以上应 用程序1632、其他程序模块1634、以及程序数据1636。在一个实施方式 中,一个或多个应用程序1632、其他程序模块1634和程序数据1636可包 括例如消息收发***100的各种应用和/或组件。
用户可通过一个以上有线/无线输入装置(例如,键盘1638)和点控 装置(诸如,鼠标1640)向计算机1602键入命令和信息。其他输入装置 可以包括扩音器、红外线(IR)远程控制、射频(RF)远程控制、游戏手 柄、手写笔(stylus pen)、读卡器、软件狗、指纹阅读器、手套、图形输 入板、操纵杆、键盘、网膜阅读器、触摸屏(例如,电容式、电阻式等)、 跟踪球、触控板、传感器、铁笔(styluse)等等。这些及其他输入装置常 常通过耦接至***总线1608的输入装置接口1642连接到处理单元1604, 但可通过其他接口连接,其他接口为诸如并行端口、IEEE 1394串行端口、 游戏端口、USB端口、IR接口等等。
监视器1644或其他类型的显示装置也经由诸如视频适配器1646的接 口连接到***总线1608。监视器1644可以在计算机1602的内部或外部。 除了监视器1644之外,计算机通常还包括其他***输出装置,诸如扬声 器、打印机等。
计算机1602可以使用经由有线和/或无线通信到一个以上远程计算机 (诸如,远程计算机1648)的逻辑连接而在联网环境下操作。远程计算机 1648可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、 基于微处理器的娱乐装置、对等装置或其他共同网络节点,并且通常包括 相对于计算机1602所描述的许多或所有的元件,虽然出于简洁的目的, 仅示出了存储器/存储装置1650。所描述的逻辑连接包括至局域网(LAN) 1652和/或更大网络(例如,广域网(WAN)1654)的有线/无线连接。这 样的LAN与WAN网络环境在办公室和公司是很平常的,并且有助于企 业范围内的计算机网络(诸如,内网),所有的这些网络可以连接到全球 通信网络,例如,互联网。
当用在LAN网络环境中时,计算机1602通过有线和/或无线通信网 络接口或适配器1656连接至LAN 1652。适配器1656可有助于与LAN 1652的有线和/或无线通信,LAN 1652也可包括布置在其上用于与适配器 1656的无线功能通信的无线接入点。
当用在WAN网络环境中时,计算机1602可包括调制解调器1658、 或者被连接至WAN1654上的通信服务器、或者具有用于通过WAN 1654 (诸如通过互联网)建立通信的其他装置。可以在内部或外部且是有线或 无线装置的调制解调器1658经由输入装置接口1642连接至***总线1608。 在网络环境中,相对于计算机1602描述的程序模块或者其部分可被存储 在远程存储器/存储装置1650中。应当认识到的是,示出的网络连接是示 例性的并且可以使用在计算机之间建立通信链路的其他装置。
计算机1602操作以使用IEEE 802标准族与有线和无线装置或实体通 信,诸如,可操作地设置在无线通信(例如,IEEE 802.16空中调制技术) 中的无线装置。这至少包括Wi-Fi(或无线保真)、WiMax和BluetoothTM无线技术等。由此,通信可以是与常规网络一样的预定义结构,或者仅仅 是至少两个装置之间的自组织通信。Wi-Fi网络使用被称为IEEE802.16x (a,b,g,n等)的无线电技术以提供安全、可靠、快速的无线连接。 Wi-Fi网络可以用于将计算机彼此连接、将计算机连接到互联网以及将计 算机连接到有线网络(其使用与IEEE 802.3相关的介质和功能)。
图17示出了适用于实现如前所述的各种实施方式的示例性通信架构 1700的框图。通信架构1700包括各种公共通信元件,诸如发射器、接收 器、收发器、无线电、网络接口、基带处理器、天线、放大器、滤波器、 电源等。然而,实施方式并不限于由通信架构1700的实现方式。
如图17所示,通信架构1700包括一个或多个客户端1702和服务器 1704。客户端1702可以实现个人计算机装置180、智能电话装置150、平 板装置160、客户端装置320、发送方客户端装置920、接收方客户端装置 990、客户端装置1410和客户端装置1520中的任一项。服务器1704可实 现集中式服务器装置1420和客户端前端服务器装置1535、工作者服务器 装置1545、机器人前端服务器装置1555和托管机器人服务器装置1565 中的任一项。客户端1702和服务器1704操作地连接到一个以上相应的客 户端数据存储1708和服务器数据存储1710,它们可以用来存储相应客户 端1702和服务器1704的本地的信息,诸如,收藏夹和/或相关联的上下文 信息。
客户端1702和服务器1704可使用通信框架1706在彼此之间传送信 息。通信框架1706可以实施任何已知的通信技术和协议。通信框架1706 可以被实现为分组交换网络(例如,诸如互联网的公共网络,诸如企业内 联网的专用网,等等)、电路交换网络(例如,公共交换电话网络)、或分 组交换网络和电路交换网络(具有合适的网关和译码器)的组合。
通信框架1706可以实现被设置为接受、通信以及连接到通信网络的 各种网络接口。网络接口可被认为是输入输出接口的专用形式。网络接口 可以采用连接协议,包括但不限于直接连接、以太网(例如,厚、薄、双 绞线10/100/1000基底T等等)、令牌网(tokenring)、无线网络接口、蜂 窝网络接口、IEEE 802.11a-x网络接口、IEEE 802.16网络接口、IEEE 802.20 网络接口等等。此外,多网络接口可以被用来与各种通信网络类型接合。 例如,多网络接口可以被用来允许通过广播、多播网络以及单播网络通信。 如果处理要求规定较大量的速度和容量,同样可以采用分布式网络控制器 架构以集中(pool)、负载平衡、或以另外的方式提高客户端1702和服务 器1704所需的通信带宽。通信网络可以是有线和/或无线网络的任何一个 和组合,包括但不限于直接互连、安全定制连接、专用网络(例如,企业 内联网)、公共网络(例如,互联网)、个人区域网络(PAN)、局域网(LAN)、 城域网(MAN)、作为互联网上的节点的操作任务(OMNI)、广域网(WAN)、 无线网络、蜂窝网络和其他通信网络。
图18示出了用于多载波OFDM***(诸如消息收发***100)中的 装置1800的实施方式。装置1800可以实现例如如参考消息收发***100 和/或逻辑电路1835所描述的软件组件1860。逻辑电路1835可以包括物 理电路以执行针对消息收发***100所描述的操作。如图18所示,装置 1800可以包括无线电接口1810、基带电路1820和计算平台1830,但是实施方式不限于该配置。
装置1800可以实现单个计算实体中(诸如完全在单个装置内)的消 息收发***100和/或逻辑电路1835的结构和/或操作中的一些或全部。可 替代地,装置1800可以使用分布式***架构(诸如,客户端-服务器架构、 3层架构、N层架构、紧耦合的或集群的架构、对等架构、主从架构、共 享的数据库架构)和其他类型的分布式***来将消息收发***100和/或逻 辑电路1835的结构和/或操作的部分分布在多个计算实体上。实施方式在 此上下文中并不受限制。
在一个实施方式中,无线电接口1810可包括适用于传送和/或接收单 载波或多载波调制信号的组件或组件的组合(例如,包括补充码键控(CCK) 和/或正交频分复用(OFDM)符号),但是实施方式不限于任何特定的空 中接口或调制方案。无线电接口1810可包括例如接收器1812、发射器1816 和/或频率合成器1814。无线电接口1810可包括偏置控制、晶体振荡器和 /或一个或多个天线1818。在另一实施方式中,无线电接口1810可根据需 要使用外部电压控制振荡器(VCO)、表面声波滤波器、中频(IF)滤波 器和/或RF滤波器。由于各种潜在的RF接口设计,省略了其足够的描述。
基带电路1820可与无线电接口1810通信以处理接收和/或发射信号, 并且可包括例如用于下变频接收信号的模数转换器1822、用于上变频信号 以进行传输的数模转换器1824。进一步,基带电路1820可包括用于相应 接收/发射信号的PHY链路层处理的基带或物理层(PHY)处理电路1826。 基带电路1820可包括例如用于媒体访问控制(MAC)/数据链路层处理的 处理电路1828。基带电路1820可包括用于例如经由一个或多个接口1834 与处理电路1828和/或计算平台1830通信的存储器控制器1832。
在一些实施方式中,PHY处理电路1826可包括帧构造和/或检测模块, 结合诸如缓冲存储器的附加电路,以构造和/或解构通信帧,诸如无线电帧。 可替代地或另外,MAC处理电路1828可以共享这些功能中的某些的处理, 或独立于PHY处理电路1826执行这些处理。在一些实施方式中,MAC 和PHY处理可以集成到单个电路中。
计算平台1830可提供装置1800的计算功能。如图所示,计算平台1830 可包括处理组件1840。除了基带电路1820或作为基带电路1820的替代, 装置1800还可使用处理组件1840执行消息收发***100和逻辑电路1835 的处理操作或逻辑。处理组件1840(和/或PHY1826和/或MAC 1828) 可包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括 装置、逻辑器件、组件、处理器、微处理器、电路、处理器电路、电路元 件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成 电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场 可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯 片、微芯片、芯片组等。软件元件的示例可包括软件组件、程序、应用、 计算机程序、应用程序、***程序、软件开发程序、机器程序、操作*** 软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软 件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、 计算机代码段、字、值、符号或其中的任何组合。确定是否使用硬件元件 和/或软件元件实施实施方式可根据如给定实施方式所期望的许多因素而 变化,该因素诸如,期望的计算速率、功率电平、耐热性、处理循环预算、 输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或 性能限制。
计算平台1830可进一步包括其他平台组件1850。其他平台组件1850 包括共同计算元件,诸如一个或多个处理器、多核处理器、协处理器、存 储器单元、芯片组、控制器、***装置、接口、振荡器、定时装置、视频 卡、音频卡、多媒体输入/输出(I/O)组件(例如,数字显示器)、电源等。 存储器单元的示例可包括但不限于以一个或多个高速存储器单元形式的 各种类型的计算机可读和机器可读存储介质,诸如只读存储器(ROM)、 随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM (DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM (PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM (EEPROM)、闪存、诸如铁电聚合物存储器的聚合物存储器、双向存储 器、相变或铁电存储器、氧化硅氮氧化硅(SONOS)存储器、磁卡或光卡、 诸如独立磁盘冗余阵列(RAID)驱动器的装置阵列、固态存储器装置(例 如,USB存储器、固态驱动器(SSD)和适合于存储信息的任何其他类型 的存储介质。
装置1800可以是,例如,超移动装置、移动装置、固定装置、机器 对机器(M2M)装置、个人数字助理(PDA)、移动计算装置、智能电话、 电话、数字电话、蜂窝电话、用户设备、电子书阅读器、手机、单向寻呼 机、双向寻呼机、消息收发装置、计算机、个人计算机(PC)、台式计算 机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计 算机、服务器、服务器阵列或服务器场、网络服务器(web server)、网络 服务器(network server)、互联网服务器、工作站、微型计算机、主机计 算机、超级计算机、网络装置(networkappliance)、网络装置(web appliance)、 分布式计算***、多处理器***、基于处理器的***、消费者电子装置、 可编程的消费者电子装置、游戏装置、电视、数字电视、机顶盒、无线接 入点、基站、节点B、演进节点B(eNB)、订户站、移动订户中心、无线 电网络控制器、路由器、集线器、网关、网桥、交换机、机器或其中的组 合。因此,根据适当需要,在装置1800的各种实施方式中,可以包括或 省略本文中描述的装置1800的功能和/或特定配置。在一些实施方式中, 装置1800可以被配置成与以下各项中的一项或多项相关联的协议和频率 兼容:用于WMAN的3GPP LTE规范和/或IEEE 1802.16标准、和/或在此 引用的其他宽带无线网络,尽管实施方式不限于此方面。
装置1800的实施方式可以使用单输入单输出(SISO)架构来实现。 然而,某些实现方式可包括用于使用用于波束成形或空分多址(SDMA) 的自适应天线技术和/或使用MIMO通信技术的发射和/或接收的多个天线 (例如,天线1818)。
装置1800的组件和特征可以使用以下各项的任何组合来实现:分离 电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构。进一步,在适当 的情况下,装置1800的特征可以使用微控制器、可编程逻辑阵列和/或微 处理器或前述的任何组合来实现。应注意,硬件、固件和/或软件元件可以 在本文中被统称为“逻辑”或“电路”。
应当理解,图18的框图中所示的示例性装置1800可以表示许多潜在 实现方式的一个功能描述性示例。因而,在附图中描绘的块功能的划分、 省略或包括不推断用于实现这些功能的硬件组件、电路、软件和/或元件将 必然被划分、省略或包括在实施方式中。
计算机实现的方法可以包括:在客户端装置上的消息线程显示中接收 消息收发机器人调用;响应于该消息收发机器人调用而结合该消息线程显 示调用该客户端装置上的消息收发机器人交互用户界面;经由消息收发机 器人交互用户界面接收消息收发机器人交互命令;将该消息收发机器人交 互命令从该客户端装置传送到消息收发***;在该客户端装置处从该消息 收发***接收消息收发机器人交互响应;在该消息线程显示中显示该消息 收发机器人交互响应。
一种计算机实现的方法可以进一步包括:在该消息线程显示的文本输 入部分中接收机器人调用文本片段,其中,接收该机器人调用文本片段包 括:接收该消息收发机器人调用;确定一个或多个预测的机器人命令文本 片段;在该消息线程显示中显示该一个或多个预测的机器人命令文本片段, 其中,显示该一个或多个预测的机器人命令文本片段包括调用该消息收发 机器人交互用户界面;接收对该一个或多个预测的机器人命令文本片段的 机器人命令文本片段的用户选择;并且将对应于该用户选择的该机器人命 令文本片段从该客户端装置传送到该消息收发***,其中,将该机器人命 令文本片段传送到该消息收发***包括将该消息收发机器人交互命令从 该客户端装置传送到消息收发***。
计算机实现的方法可以进一步包括经由消息线程显示的文本输入部 分接收命令文本片段初始部分;将命令文本片段初始部分传送到消息收发 ***;并且通过响应于将该命令文本片段初始部分传送到该消息收发*** 而从该消息收发***接收该一个或多个预测的机器人命令文本片段,来确 定该一个或多个预测的机器人命令文本片段。
计算机实现的方法可以进一步包括在客户端装置上的消息线程显示 中接收消息收发机器人控制选择,其中,接收消息收发机器人控制选择包 括:接收消息收发机器人调用,消息收发机器人控制选择用于与消息收发 机器人相关联的消息收发机器人控制;在该消息线程显示中显示消息收发 机器人交互配置界面,其中,显示该消息收发机器人交互配置界面包括调 用该消息收发机器人交互用户界面;并且接收针对该消息收发机器人交互配置界面的一个或多个用户界面选择,其中,接收该一个或多个用户界面 选择包括接收该消息收发机器人交互命令。
计算机实现的方法可以进一步包括:在客户端装置上的消息线程显示 中接收对服务类型控制的服务类型控制选择;响应于该服务类型控制选择, 在该消息线程显示中显示多个消息收发机器人控制,该多个消息收发机器 人控制包括该消息收发机器人控制;以及与多个消息收发机器人控制中的 每一个相关联地显示服务性能信息,服务性能信息包括估计的成本、估计 的到达时间、估计的行进时间和服务可用性中的一个或多个。
一种计算机实现的方法可以进一步包括与该消息收发***的用户相 关联的客户端装置,该方法进一步包括:在该客户端装置上的该消息线程 显示中接收消息收发机器人控制选择,其中,接收该消息收发机器人控制 选择包括接收该消息收发机器人调用,该消息收发机器人控制选择用于与 消息收发机器人相关联的消息收发机器人控制;确定该用户没有与该消息 收发机器人相关联的服务的用户账户;在该消息线程显示中显示用于该服 务的用户账户创建界面;接收与该用户账户创建界面的用户交互;基于所 接收的与该用户账户创建界面的用户交互来生成用户账户创建命令;以及 将用户账户创建命令传送给该服务。
计算机实现的方法可以进一步包括与用户账户创建命令相关联地将 与客户端装置相关联的用户电话号码验证到服务,其中用户电话号码验证 到服务操作以防止服务执行用户电话号码验证。
一种计算机实现的方法可以进一步包括与该消息收发***的用户相 关联的该客户端装置,其中,将该消息收发机器人交互命令从该客户端装 置传送到该消息收发***调用服务的服务请求,该方法进一步包括:将该 用户的令牌化的财务信息传送到该服务。
一种计算机实现的方法可以进一步包括与该消息收发***的用户相 关联的该客户端装置,该方法进一步包括:在该客户端装置上的该消息线 程显示中接收消息收发机器人控制选择,其中,接收该消息收发机器人控 制选择包括接收该消息收发机器人调用,该消息收发机器人控制选择用于 与消息收发机器人相关联的消息收发机器人控制;确定该用户与用于与该 消息收发机器人相关联的服务的用户账户相关联;响应于接收到该消息收 发机器人控制选择,而向该服务查询用户的财务信息;并且将该财务信息 与该消息收发***的该用户相关联地存储。
计算机实现的方法可以进一步包括与消息收发***的消息线程相关 联的消息线程显示,该消息线程与消息收发***的两个以上的个体用户相 关联。
一种计算机实现的方法可以进一步包括与两个以上的客户端装置相 关联的两个以上的个体用户,该两个以上的客户端装置包括该客户端装置, 该方法进一步包括:将来自该消息收发***的该消息收发机器人交互响应 传送到该两个以上的客户端装置。
一种设备可以包括装置上的处理器电路;用户界面组件,在该处理器 电路上操作以在客户端装置上的消息线程显示中接收消息收发机器人调 用;响应于该消息收发机器人调用而结合该消息线程显示调用该客户端装 置上的消息收发机器人交互用户界面;经由该消息收发机器人交互用户界 面接收消息收发机器人交互命令;并且在该消息线程显示中显示消息收发 机器人交互响应;以及客户端消息收发组件,在该处理器电路上操作以将 该消息收发机器人交互命令从该客户端装置传送到消息收发***;并且在 该客户端装置处从该消息收发***接收该消息收发机器人交互响应。该设 备可以操作以实现本文中描述的任何计算机实现的方法。
一种计算机实现的方法可以包括:从客户端装置接收消息;将该消息 添加到消息队列中;监视该消息队列;检测该消息指示消息收发机器人调 用;并且基于检测到该消息指示消息收发机器人调用而将该消息提交给机 器人框架组件;确定与该消息相关联的消息收发机器人;并且将该消息提 交给消息收发机器人。
一种计算机实现的方法可以进一步包括该消息,该消息包括文本内容 部分,该方法进一步包括:检测该消息的文本内容部分中的机器人调用符 号;并且基于检测到该机器人调用符号而检测到该消息指示消息收发机器 人调用。
一种计算机实现的方法可以进一步包括该消息,该消息包括元数据部 分,该方法进一步包括:检测该消息的该元数据部分中的机器人调用标志; 并且基于检测到该机器人调用标志而检测到该消息指示消息收发机器人 调用。
计算机实现的方法可以进一步包括通过将消息传送到与消息收发机 器人相关联的机器人服务器来将消息提交到消息收发机器人。
计算机实现的方法可以进一步包括从机器人服务器接收对消息的消 息收发机器人响应。
计算机实现的方法可以进一步包括生成对该消息的消息收发机器人 响应;并且将对该消息的该消息收发机器人响应传送到该机器人框架组件。
计算机实现的方法可以进一步包括:接收对该消息的消息收发机器人 响应;并且将该消息收发机器人响应***消息队列中。
计算机实现的方法可以进一步包括将消息收发机器人响应传送到客 户端装置。
计算机实现的方法可以进一步包括与消息线程相关联的消息,该消息 收发机器人响应被***消息队列中,该消息收发机器人响应被标记用于在 消息线程中显示。
计算机实现的方法可以进一步包括与两个以上的个体用户相关联的 消息线程。
一种计算机实现的方法可以进一步包括该消息,该消息包括文本部分, 该文本部分包括机器人别名文本片段,该方法进一步包括:接收该机器人 别名文本片段的别名初始部分;将该别名初始部分与机器人别名注册表进 行匹配以确定一个或多个预测的机器人别名文本片段,该一个或多个预测 的机器人别名文本片段包括该机器人别名文本片段;并且将该一个或多个 预测的机器人别名文本片段传送到该客户端装置。
一种计算机实现的方法可以进一步包括该消息,该消息包括文本部分, 该文本部分包括机器人命令文本片段,该方法进一步包括:接收该机器人 命令文本片段的命令初始部分;将该命令初始部分提交给该消息收发机器 人;从该消息收发机器人接收一个或多个预测的机器人命令文本片段,该 一个或多个预测的机器人命令文本片段包括该机器人命令文本片段;并且 将该一个或多个预测的机器人命令文本片段传送到该客户端装置。
一种计算机实现的方法可以进一步包括与消息线程相关联的消息,该 消息包括机器人订阅命令,该方法进一步包括:响应于该机器人订阅命令, 将该消息线程订阅到该消息收发机器人;从该消息收发机器人接收广播消 息;基于该消息收发机器人确定用于该广播消息的多个订户线程,该多个 订户线程包括该消息线程;将该多个订户线程划分成多个订户线程块;将 该多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作 者;并且由该多个广播工作者基于该多个订户线程块而将该广播消息添加 到多个消息队列,该多个消息队列包括该消息队列。
计算机实现的方法可以进一步包括检索多个订户线程偏好,该多个订 户线程偏好中的每一个与对应的订户线程相关联;将该多个订户线程偏好 中的每个用户线程偏好与对应的用户线程进行比较,以确定多个所选择的 用户线程,该多个所选择的用户线程是该多个用户线程的子集;并且将该 广播消息添加到对应于该多个所选择的订户线程的多个所选择的消息队 列中。
一种设备可以包括装置上的处理器电路;消息收发组件,在该处理器 电路上操作以从客户端装置接收消息,并且将该消息添加到消息队列;消 息队列监视组件,在该处理器电路上操作以监视该消息队列,检测该消息 指示消息收发机器人调用,并且基于检测到该消息指示消息收发机器人调 用而将该消息提交给机器人框架组件;以及该机器人框架组件,操作以确 定与该消息相关联的消息收发机器人,并且将该消息提交给消息收发机器人。该设备可以操作以实现本文中描述的任何计算机实现的方法。
至少一种计算机可读存储介质可包括指令,该指令在被执行时使*** 执行本文中描述的任何计算机实现的方法。
可以使用表达“一个实施方式”或“一种实施方式”以及它们的衍生 物表达描述一些实施方式。这些术语意味着结合实施方式描述的特定特征、 结构、或特性包含在至少一个实施方式中。在说明书中各个位置中的短语 “在一个实施方式中”的出现不必全部引用相同的实施方式。此外,可以 使用表达“耦接”和“连接”以及它们的衍生物表达描述一些实施方式。 这些术语不一定旨在作为彼此的同义词。例如,一些实施方式可以使用术 语“连接”和/或“耦接”来描述以指示两个以上元件彼此直接物理或电接 触。然而,术语“耦接”也可表示两个以上元件并非彼此直接接触,但仍 彼此协作或相互作用。
一般参考本文所使用的标记和命名,本文中的详细描述可根据在计算 机或计算机网络上执行的程序过程来呈现。这些过程性描述和表示被本领 域技术人员用于将它们的工作的本质最有效地传达给本领域的其他技术 人员。
在此,程序通常被认为是导致期望结果的自一致操作序列。这些操作 是需要物理数量的物理操纵的操作。通常,尽管不是必需地,但是这些量 采用能够被存储、传输、组合、比较以及以另外的方式操纵的电信号、磁 信号或光信号的形式。主要是为了通用的原因,这证明了将这些信号称为 位、值、元素、符号、字符、项、数字等有时是方便的。然而,应注意的 是,所有这些和相似的术语要与合适的物理数量相关并且仅仅是应用于这 些量的方便的标签。
此外,所执行的操纵通常以诸如添加或比较的术语被提及,这通常与 操作员执行的智力操作相关。在本文中所描述的构成一个以上实施方式的 任何操作中,在大多数情况下,并非需要或者期望人工操作员的这种能力。 而是,操作是机器操作。用于执行各种实施方式的操作的常用机器包括通 用数字计算机或类似装置。
各种实施方式还涉及用于执行这些操作的设备或***。该设备可以是 出于需求目的而被特别地构建,或其可包括通过存储在计算机中的计算机 程序而被选择性地激活或者重新配置的通用计算机。在本文中呈现的流程 并不是本质上涉及特定计算机或其他装置。利用根据本文中的教导而写的 程序,可以使用各种通用机器,或者其证明便于构建执行所需方法步骤的 更专用的装置。根据给出的说明书,用于各种这些机器的所需的结构将是 显而易见的。
强调的是,提供本发明的摘要以允许读者快速确定本技术公开的本质。 应理解的是,该说明书摘要将不用于解释或限制权利要求的范围或含义。 此外,在上述具体实施方式中,可以看出,为了使本公开简单化,在单个 实施方式中,各种特征被组合在一起。本公开的该方法不应该被解释为反 映所要求的实施方式要求比每个权利要求中明确引用的特征更多的特征 这样的意图。相反,如权利要求所反映,发明主题在于少于单个前述公开 实施方式中的所有特征。因此,权利要求据此引入到具体实施方式中,其 中,每项权利要求主张其自己作为单独的实施方式。在随附权利要求中, 术语“包括(including)”和“其中(inwhich)”分别用作相应术语“包含 (comprising)”和“其中(wherein)”的平易英语(plain-English)的等价 形式。此外,术语“第一”、“第二”和“第三”等仅作为标记使用,而不 意在对它们的对象强加数字要求。
以上已经描述的内容包括所公开的架构的示例。当然,不可能描述每 可以想象的组件和/或方法的组合,但本领域普通技术人员可以认识到可以 进行进一步组合和排列。因而,新颖架构旨在包括落入所附权利要求的精 神和范围内的所有这样的变更、修改和变化。
Claims (15)
1.一种计算机实现的方法,包括:
在消息收发服务器(935)和/或在消息收发***(100)的客户端前端服务器的消息收发组件(930)处从客户端装置(920)接收(1352)消息(910),其中,所述消息(910)包括文本内容部分并且已经与消息线程相关联地发起,以及所述消息(910)是所述消息线程中的线程内机器人命令(880);其中,所述线程内机器人命令(880)包括所述消息(910)的所述文本内容部分中的机器人调用符号;其中,所述消息收发***(100)包括在工作者服务器装置(1545)上执行以用于执行任务的工作者服务器(945);
将所述消息(910)添加(1354)到消息队列(980);
由所述消息收发***(100)的所述工作者服务器(945)的消息队列监视组件(940)监视(1356)在所述消息队列(980)内的每个消息(910)以确定每个消息(910)是否指示消息收发机器人调用;
通过以下方式来检测(1358)所述消息(910)指示消息收发机器人调用:检测所述消息(910)的所述文本内容部分中的所述机器人调用符号;以及基于检测所述机器人调用符号,检测所述消息(910)指示消息收发机器人调用;
由所述消息队列监视组件(940)基于所述检测,而将所述消息(910)或检测到具有消息收发机器人调用的消息的通知,诸如所述消息的标识符,提交给机器人框架组件(950);由所述机器人框架组件(950):
确定(1362)与所述消息(910)相关联的消息收发机器人(960、970);以及
将所述消息(910)提交(1364)给所述消息收发机器人(960、970)。
2.根据权利要求1所述的方法,包括用于机器人(960、970)的信息的所述消息由发送方客户端装置(920)标记在于所述消息(910)的元数据部分被标记有机器人调用标志,并且其中,所述消息监视组件(940)被配置为基于检测到所述机器人调用标志而检测到所述消息(910)指示消息收发机器人调用。
3.根据权利要求1或2所述的方法,还包括由所述机器人框架组件(950):接收对所述消息(910)的消息收发机器人响应(1010);以及
将所述消息收发机器人响应(1010)***所述消息队列(980)中,并且可选地,
将所述消息收发机器人响应(1010)传送到所述客户端装置(920)以在消息收发客户端的显示器上显示。
4.根据权利要求3所述的方法,所述消息(910)与所述消息线程相关联,所述消息收发机器人响应(1010)被***所述消息队列(980)中,所述消息收发机器人响应被标记以在所述消息线程中显示,其中,可选地,所述消息机器人(960、970)响应于由用户向所述消息机器人(960、970)发送的消息而被准许将消息添加到所述消息队列(980),所述消息机器人(960、970)还响应于所述消息(910)而可选地被授权发送对所述消息(910)的单个响应和/或被授权有限的时间段。
5.根据权利要求1至4中任一项所述的方法,所述文本内容部分包括机器人别名文本片段,所述方法还包括由所述机器人框架组件(950):
接收所述机器人别名文本片段的别名初始部分;
将所述别名初始部分与机器人别名注册表进行匹配以确定一个或更多个预测的机器人别名文本片段,所述一个或更多个预测的机器人别名文本片段包括所述机器人别名文本片段;以及
将所述一个或更多个预测的机器人别名文本片段传送到所述客户端装置(920)。
6.根据权利要求1至5中任一项所述的方法,所述文本内容部分包括机器人命令文本片段,所述方法还包括:
接收所述机器人命令文本片段的命令初始部分;
将所述命令初始部分提交给所述消息收发机器人(960、970);
从所述消息收发机器人(960、970)接收一个或更多个预测的机器人命令文本片段,所述一个或更多个预测的机器人命令文本片段包括所述机器人命令文本片段;以及
将所述一个或更多个预测的机器人命令文本片段传送到所述客户端装置(920)。
7.根据权利要求1至6中任一项所述的方法,所述消息(910)与所述消息线程相关联,所述消息包括机器人订阅命令(1110),所述方法还包括:
响应于所述机器人订阅命令(1110),将所述消息线程订阅到所述消息收发机器人;
从所述消息收发机器人(960、970)接收广播消息(1210);
基于所述消息收发机器人(960、970)确定用于所述广播消息(1210)的多个订户线程,所述多个订户线程包括所述消息线程;
将所述多个订户线程划分成多个订户线程块;
将所述多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者(1250);以及
由所述多个广播工作者(1250)基于所述多个订户线程块而将所述广播消息(1210)添加到多个消息队列(980),所述多个消息队列(980)包括所述消息队列(980)。
8.一种设备(1600),包括:
装置上的处理器电路(1604),优选地在消息收发服务器上和/或在消息收发***(100)的客户端前端服务器的消息收发组件处,其中,所述消息收发***(100)包括在工作者服务器装置(1545)上执行以用于执行任务的工作者服务器(945);
消息收发组件(930),其在所述处理器电路(1604)上操作以从客户端装置(920)接收(1352)消息(910);并且将所述消息(910)添加(1354)到消息队列(980);其中,所述消息(910)包括文本内容部分并且已经与消息线程相关联地发起,以及所述消息(910)是所述消息线程中的线程内机器人命令(880);其中,所述线程内机器人命令(880)包括所述消息(910)的所述文本内容部分中的机器人调用符号;
所述消息收发***(100)的所述工作者服务器(945)的消息队列监视组件(940),操作以监视(1356)所述消息队列(980)、检测所述消息(910)指示消息收发机器人调用,其中,所述消息队列监视组件(940)被配置成检查所述消息队列(980)内的每个条目并且通过以下方式来检测(1358)所述消息(910)指示消息收发机器人调用:检测所述消息(910)的所述文本内容部分中的所述机器人调用符号,以及基于检测所述机器人调用符号,检测所述消息(910)指示消息收发机器人调用;以及
由所述消息队列监视组件(940)基于所述检测而将所述消息(910)或检测到具有消息收发机器人调用的消息的通知,诸如所述消息(910)的标识符,提交(1360)给机器人框架组件;以及
所述机器人框架组件(950)操作以确定与所述消息(910)相关联的所述消息收发机器人(960、970);并且将所述消息(910)提交给所述消息收发机器人(960、970)。
9.根据权利要求8所述的设备(1600),包括用于机器人(960、970)的信息的所述消息(910)由发送方客户端装置(920)标记在于所述消息的元数据部分被标记有机器人调用标志,并且其中,所述消息监视组件(940)被配置为基于检测到所述机器人调用标志而检测到所述消息(910)指示消息收发机器人调用。
10.根据权利要求8或9所述的设备(1600),还包括:所述机器人框架组件(950)操作以接收对所述消息(910)的消息收发机器人响应(1010);以及将所述消息收发机器人响应(1010)***所述消息队列(980)中,并且可选地,将所述消息收发机器人响应(1010)传送到所述客户端装置(920)以在消息收发客户端的显示器上显示。
11.根据权利要求10所述的设备(1600),所述消息(910)与所述消息线程相关联,所述消息收发机器人响应(1010)被***所述消息队列(980)中,所述消息收发机器人响应被标记以在所述消息线程中显示,其中,可选地,所述消息机器人(960、970)响应于由用户向所述消息机器人(960、970)发送的消息而被准许将消息添加到所述消息队列(980),所述消息机器人(960、970)还响应于所述消息(910)而可选地被授权发送对所述消息(910)的单个响应和/或被授权有限的时间段。
12.根据权利要求8至11中任一项所述的设备(1600),所述文本内容部分包括机器人别名文本片段,所述设备还包括:所述机器人框架组件(950)操作以接收所述机器人别名文本片段的别名初始部分;将所述别名初始部分与机器人别名注册表进行匹配以确定一个或更多个预测的机器人别名文本片段,所述一个或更多个预测的机器人别名文本片段包括所述机器人别名文本片段;以及将所述一个或更多个预测的机器人别名文本片段传送到所述客户端装置(920)。
13.根据权利要求8至12中任一项所述的设备(1600),所述文本内容部分包括机器人命令文本片段,所述设备还包括:所述机器人框架组件(950)操作以接收所述机器人命令文本片段的命令初始部分;将所述命令初始部分提交给所述消息收发机器人(960、970);从所述消息收发机器人(960、970)接收一个或更多个预测的机器人命令文本片段,所述一个或更多个预测的机器人命令文本片段包括所述机器人命令文本片段;以及将所述一个或更多个预测的机器人命令文本片段传送到所述客户端装置(920)。
14.根据权利要求8至13中任一项所述的设备(1600),所述消息(910)与所述消息线程相关联,所述消息(910)包括机器人订阅命令(1110),所述设备还包括:
所述机器人框架组件(950)操作以响应于所述机器人订阅命令(1110),将所述消息线程订阅到所述消息收发机器人(960、970);
广播组件,所述广播组件操作以从所述消息收发机器人(960、970)接收广播消息(1210);基于所述消息收发机器人(960、970)确定用于所述广播消息(1210)的多个订户线程,所述多个订户线程包括所述消息线程;将所述多个订户线程划分成多个订户线程块;以及,将所述多个订户线程块中的每一个指派给多个广播工作者(1250)中的一个广播工作者(1250);以及
所述多个广播工作者(1250)基于所述多个订户线程块而将所述广播消息(1210)添加到多个消息队列(980),所述多个消息队列(980)包括所述消息队列(980)。
15.至少一种包括指令的计算机可读存储介质(1610),所述指令在被执行时使***执行根据权利要求1至7中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/054,103 | 2016-02-25 | ||
US15/054,103 US11477139B2 (en) | 2016-02-25 | 2016-02-25 | Techniques for messaging bot rich communication |
PCT/US2016/019969 WO2017146742A1 (en) | 2016-02-25 | 2016-02-26 | Techniques for messaging bot rich communications |
CN201680084948.7A CN110383772B (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680084948.7A Division CN110383772B (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115037712A true CN115037712A (zh) | 2022-09-09 |
Family
ID=59678608
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210406190.1A Pending CN115037712A (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
CN201680084948.7A Active CN110383772B (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680084948.7A Active CN110383772B (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
Country Status (10)
Country | Link |
---|---|
US (2) | US11477139B2 (zh) |
JP (2) | JP6782301B2 (zh) |
KR (2) | KR102527445B1 (zh) |
CN (2) | CN115037712A (zh) |
AU (1) | AU2016393828A1 (zh) |
BR (1) | BR112018067356A2 (zh) |
CA (1) | CA3015198A1 (zh) |
IL (1) | IL261108A (zh) |
MX (1) | MX2018010193A (zh) |
WO (1) | WO2017146742A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10630751B2 (en) | 2016-12-30 | 2020-04-21 | Google Llc | Sequence dependent data message consolidation in a voice activated computer network environment |
US10956485B2 (en) | 2011-08-31 | 2021-03-23 | Google Llc | Retargeting in a search environment |
US10614153B2 (en) | 2013-09-30 | 2020-04-07 | Google Llc | Resource size-based content item selection |
US10431209B2 (en) | 2016-12-30 | 2019-10-01 | Google Llc | Feedback controller for data transmissions |
US9703757B2 (en) | 2013-09-30 | 2017-07-11 | Google Inc. | Automatically determining a size for a content item for a web page |
EP3395019B1 (en) | 2015-12-21 | 2022-03-30 | Google LLC | Automatic suggestions and other content for messaging applications |
EP3395018A1 (en) | 2015-12-21 | 2018-10-31 | Google LLC | Automatic suggestions for message exchange threads |
US20170289071A1 (en) * | 2016-04-04 | 2017-10-05 | Kik Interactive Inc. | System, apparatus and method for autonomous messaging integration |
US10567312B2 (en) * | 2016-04-11 | 2020-02-18 | Facebook, Inc. | Techniques for messaging bot controls based on machine-learning user intent detection |
US10387461B2 (en) | 2016-08-16 | 2019-08-20 | Google Llc | Techniques for suggesting electronic messages based on user activity and other context |
JP6760797B2 (ja) * | 2016-08-24 | 2020-09-23 | Line株式会社 | プログラム、情報処理方法、及び端末 |
US10015124B2 (en) * | 2016-09-20 | 2018-07-03 | Google Llc | Automatic response suggestions based on images received in messaging applications |
WO2018057541A1 (en) | 2016-09-20 | 2018-03-29 | Google Llc | Suggested responses based on message stickers |
US10511450B2 (en) | 2016-09-20 | 2019-12-17 | Google Llc | Bot permissions |
US20180083896A1 (en) | 2016-09-21 | 2018-03-22 | Facebook, Inc. | Modular inbox surface for content delivery |
US10841264B2 (en) | 2016-09-21 | 2020-11-17 | Facebook, Inc. | Method and system for presenting a subset of messages in a modular inbox |
US10367767B2 (en) | 2016-09-21 | 2019-07-30 | Facebook, Inc. | Modular inbox and generation of content modules |
US11233760B2 (en) | 2016-09-21 | 2022-01-25 | Facebook, Inc. | Module ranking for a modular inbox |
US10356029B2 (en) | 2016-09-21 | 2019-07-16 | Facebook, Inc. | Methods and systems for presenting modules in an inbox interface |
US10437841B2 (en) * | 2016-10-10 | 2019-10-08 | Microsoft Technology Licensing, Llc | Digital assistant extension automatic ranking and selection |
US10416846B2 (en) | 2016-11-12 | 2019-09-17 | Google Llc | Determining graphical element(s) for inclusion in an electronic communication |
US20180188905A1 (en) * | 2017-01-04 | 2018-07-05 | Google Inc. | Generating messaging streams with animated objects |
WO2018161014A1 (en) * | 2017-03-03 | 2018-09-07 | Orion Labs | Phone-less member of group communication constellations |
JP6929670B2 (ja) * | 2017-03-15 | 2021-09-01 | Line株式会社 | プログラム、情報処理方法、端末 |
US11361266B2 (en) * | 2017-03-20 | 2022-06-14 | Microsoft Technology Licensing, Llc | User objective assistance technologies |
US10474673B2 (en) * | 2017-03-28 | 2019-11-12 | Salesforce.Com, Inc. | Methods and apparatus for performing machine learning to improve capabilities of an artificial intelligence (AI) entity used for online communications |
US11494440B1 (en) | 2017-04-12 | 2022-11-08 | Meta Platforms, Inc. | Proactive and reactive suggestions for a messaging system |
US11025566B2 (en) | 2017-04-12 | 2021-06-01 | Facebook, Inc. | Techniques for intent-based search for bots |
US10846615B2 (en) | 2017-04-12 | 2020-11-24 | Facebook, Inc. | Techniques for reinforcement for bots using capability catalogs |
US11341173B2 (en) * | 2017-04-12 | 2022-05-24 | Meta Platforms, Inc. | Techniques for personalized search for bots |
US10706410B2 (en) * | 2017-05-09 | 2020-07-07 | Microsoft Technology Licensing, Llc | Service-hosted payment request |
WO2018212822A1 (en) | 2017-05-16 | 2018-11-22 | Google Inc. | Suggested actions for images |
US10348658B2 (en) | 2017-06-15 | 2019-07-09 | Google Llc | Suggested items for use with embedded applications in chat conversations |
US10404636B2 (en) | 2017-06-15 | 2019-09-03 | Google Llc | Embedded programs and interfaces for chat conversations |
US10798029B2 (en) * | 2017-07-25 | 2020-10-06 | Freshworks, Inc. | System and apparatus for generation of multiple automated ephemeral chat messages |
KR102575711B1 (ko) * | 2017-11-01 | 2023-09-07 | 현대자동차주식회사 | 전자 장치 및 카 셰어링 서비스에서의 여정 스케줄링 방법 |
US10891526B2 (en) | 2017-12-22 | 2021-01-12 | Google Llc | Functional image archiving |
CN110377240B (zh) * | 2018-04-13 | 2024-06-14 | 富士胶片商业创新有限公司 | 消息提供装置、消息提供方法以及非暂时计算机可读介质 |
US10249140B1 (en) * | 2018-05-10 | 2019-04-02 | Huuuge Global Ltd. | System and method for playing online game |
USD950587S1 (en) | 2018-08-31 | 2022-05-03 | Zoox, Inc. | Display screen or portion thereof having a graphical user interface |
US11315692B1 (en) | 2019-02-06 | 2022-04-26 | Vitalchat, Inc. | Systems and methods for video-based user-interaction and information-acquisition |
US11562128B2 (en) * | 2020-03-30 | 2023-01-24 | Bank Of America Corporation | Data extraction system for targeted data dissection |
CN113407092A (zh) * | 2021-06-17 | 2021-09-17 | 北京达佳互联信息技术有限公司 | 一种文本框信息处理方法、装置、电子设备及存储介质 |
US11870651B2 (en) * | 2021-11-29 | 2024-01-09 | Sap Se | Landscape model verification system |
US20240073160A1 (en) * | 2022-08-25 | 2024-02-29 | Equals 3 LLC | Providing a system-generated response in a messaging session |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294224A1 (en) * | 2006-06-16 | 2007-12-20 | Jean-Jacques Heler | Tracking discrete elements of distributed transactions |
US20110213846A1 (en) * | 2010-03-01 | 2011-09-01 | Infosys Technologies Limited | System and method for providing enhanced instant messaging |
CN102202102A (zh) * | 2011-07-05 | 2011-09-28 | 施昊 | 基于云计算架构的网络服务聚合***及其聚合方法 |
US20110258638A1 (en) * | 2010-04-20 | 2011-10-20 | Davies Paul J | Distributed processing of binary objects via message queues including a failover safeguard |
CN102841810A (zh) * | 2011-05-14 | 2012-12-26 | 国际商业机器公司 | 用于在计算环境中执行线程的方法和*** |
CN103227747A (zh) * | 2012-03-14 | 2013-07-31 | 微软公司 | 针对消息收发服务的高密度托管 |
US20130198296A1 (en) * | 2012-01-31 | 2013-08-01 | Global Relay Communications Inc. | System and Method for Processing Messages in a Messaging Service |
US20140280522A1 (en) * | 2011-02-02 | 2014-09-18 | Imvu Inc. | System and method for providing an actively invalidated client-side network resource cache |
CN104079599A (zh) * | 2013-03-27 | 2014-10-01 | 招商局国际信息技术有限公司 | 一种消息实时同步方法以及集装箱码头作业*** |
CN105027587A (zh) * | 2012-12-20 | 2015-11-04 | 微软技术许可有限责任公司 | 利用结构化实体扩充的消息 |
US20150341292A1 (en) * | 2014-05-21 | 2015-11-26 | Verizon Patent And Licensing Inc. | System and method of data and command request processing |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7861252B2 (en) * | 2001-03-21 | 2010-12-28 | Andrzej Uszok | Intelligent software agent system architecture |
US20040189698A1 (en) | 2003-03-26 | 2004-09-30 | Nortel Networks Limited | Instant messaging to service bureau |
CN100452710C (zh) | 2004-09-29 | 2009-01-14 | 上海赢思软件技术有限公司 | 一种短信机器人*** |
US20060259555A1 (en) | 2005-05-16 | 2006-11-16 | Imlogic, Inc. | Systems and methods for creating and/or utilizing virtual automated agents |
US8737579B2 (en) * | 2005-08-03 | 2014-05-27 | At&T Intellectual Property I, L.P. | Methods of routing messages using a listener registry |
US20070198474A1 (en) * | 2006-02-06 | 2007-08-23 | Davidson Michael P | Contact list search with autocomplete |
US8393967B2 (en) * | 2007-04-27 | 2013-03-12 | Microsoft Corporation | Construction of gaming messages with contextual information |
US8126479B2 (en) * | 2008-01-08 | 2012-02-28 | Global Alert Network, Inc. | Mobile alerting network |
US9412095B2 (en) | 2008-01-09 | 2016-08-09 | International Business Machines Corporation | Status and time-based delivery services for instant messengers |
US8232973B2 (en) * | 2008-01-09 | 2012-07-31 | Apple Inc. | Method, device, and graphical user interface providing word recommendations for text input |
CN101741759B (zh) * | 2008-11-24 | 2012-07-11 | 中国电信股份有限公司 | 基于即时通信的智能交互***及交互方法 |
US8479106B2 (en) | 2009-02-27 | 2013-07-02 | Research In Motion Limited | Method and device to simplify message composition |
CN101789008B (zh) | 2010-01-26 | 2012-02-01 | 武汉理工大学 | 人机接口***知识库及其构建方法 |
US8701020B1 (en) | 2011-02-01 | 2014-04-15 | Google Inc. | Text chat overlay for video chat |
US8682802B1 (en) | 2011-11-09 | 2014-03-25 | Amazon Technologies, Inc. | Mobile payments using payment tokens |
KR101402506B1 (ko) * | 2011-12-01 | 2014-06-03 | 라인 가부시키가이샤 | 인스턴트 메시징 어플리케이션을 이용한 대화형 정보제공 시스템 및 방법 |
KR20140047491A (ko) | 2012-10-11 | 2014-04-22 | (주)카카오 | 봇을 이용한 인스턴트 메시지 서비스 제공 방법 |
US20140122619A1 (en) | 2012-10-26 | 2014-05-01 | Xiaojiang Duan | Chatbot system and method with interactive chat log |
CN104813311B (zh) | 2012-12-11 | 2018-06-05 | 纽昂斯通讯公司 | 用于多人的虚拟代理推荐的***和方法 |
US20140164953A1 (en) | 2012-12-11 | 2014-06-12 | Nuance Communications, Inc. | Systems and methods for invoking virtual agent |
US9276802B2 (en) * | 2012-12-11 | 2016-03-01 | Nuance Communications, Inc. | Systems and methods for sharing information between virtual agents |
US8949841B2 (en) * | 2012-12-27 | 2015-02-03 | Nvidia Corporation | Approach for a configurable phase-based priority scheduler |
KR101821358B1 (ko) | 2013-01-22 | 2018-01-25 | 네이버 주식회사 | 다자간 메신저 서비스를 제공하는 방법 및 시스템 |
US9432838B2 (en) | 2013-08-09 | 2016-08-30 | Paypal, Inc. | System and methods for account creation using a feature phone |
WO2015051142A1 (en) | 2013-10-02 | 2015-04-09 | Assurant, Inc. | Mobile computing device instructional graphical overlay |
US9766957B2 (en) | 2013-10-23 | 2017-09-19 | Mcafee, Inc. | Method and processes for securely autofilling data fields in a software application |
US20160044380A1 (en) | 2014-06-12 | 2016-02-11 | Bertrand Barrett | Personal helper bot system |
-
2016
- 2016-02-25 US US15/054,103 patent/US11477139B2/en active Active
- 2016-02-26 KR KR1020187024682A patent/KR102527445B1/ko active Application Filing
- 2016-02-26 CN CN202210406190.1A patent/CN115037712A/zh active Pending
- 2016-02-26 WO PCT/US2016/019969 patent/WO2017146742A1/en active Application Filing
- 2016-02-26 KR KR1020237013916A patent/KR20230058554A/ko active IP Right Grant
- 2016-02-26 BR BR112018067356A patent/BR112018067356A2/pt not_active Application Discontinuation
- 2016-02-26 MX MX2018010193A patent/MX2018010193A/es unknown
- 2016-02-26 AU AU2016393828A patent/AU2016393828A1/en not_active Abandoned
- 2016-02-26 CA CA3015198A patent/CA3015198A1/en not_active Abandoned
- 2016-02-26 JP JP2018544807A patent/JP6782301B2/ja not_active Expired - Fee Related
- 2016-02-26 CN CN201680084948.7A patent/CN110383772B/zh active Active
-
2018
- 2018-08-12 IL IL261108A patent/IL261108A/en unknown
-
2020
- 2020-10-19 JP JP2020175331A patent/JP6955074B2/ja active Active
-
2022
- 2022-09-27 US US17/953,417 patent/US20230015178A1/en not_active Abandoned
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294224A1 (en) * | 2006-06-16 | 2007-12-20 | Jean-Jacques Heler | Tracking discrete elements of distributed transactions |
US20110213846A1 (en) * | 2010-03-01 | 2011-09-01 | Infosys Technologies Limited | System and method for providing enhanced instant messaging |
US20110258638A1 (en) * | 2010-04-20 | 2011-10-20 | Davies Paul J | Distributed processing of binary objects via message queues including a failover safeguard |
US20140280522A1 (en) * | 2011-02-02 | 2014-09-18 | Imvu Inc. | System and method for providing an actively invalidated client-side network resource cache |
CN102841810A (zh) * | 2011-05-14 | 2012-12-26 | 国际商业机器公司 | 用于在计算环境中执行线程的方法和*** |
CN102202102A (zh) * | 2011-07-05 | 2011-09-28 | 施昊 | 基于云计算架构的网络服务聚合***及其聚合方法 |
US20130198296A1 (en) * | 2012-01-31 | 2013-08-01 | Global Relay Communications Inc. | System and Method for Processing Messages in a Messaging Service |
CN103227747A (zh) * | 2012-03-14 | 2013-07-31 | 微软公司 | 针对消息收发服务的高密度托管 |
CN105027587A (zh) * | 2012-12-20 | 2015-11-04 | 微软技术许可有限责任公司 | 利用结构化实体扩充的消息 |
CN104079599A (zh) * | 2013-03-27 | 2014-10-01 | 招商局国际信息技术有限公司 | 一种消息实时同步方法以及集装箱码头作业*** |
US20150341292A1 (en) * | 2014-05-21 | 2015-11-26 | Verizon Patent And Licensing Inc. | System and method of data and command request processing |
Non-Patent Citations (2)
Title |
---|
SITI RAHAYU ABDUL AZIZ等: "Proactive notification system using instant messaging bot (IM bot)", 2010 INTERNATIONAL CONFERENCE ON SCIENCE AND SOCIAL RESEARCH (CSSR 2010) * |
鲍春健;吴俊敏;许胤龙;李黄海;王文韬;: "支持动态负载平衡的分层消息队列模型", 计算机工程与应用, no. 01 * |
Also Published As
Publication number | Publication date |
---|---|
CA3015198A1 (en) | 2017-08-31 |
BR112018067356A2 (pt) | 2019-01-15 |
JP6955074B2 (ja) | 2021-10-27 |
AU2016393828A1 (en) | 2018-08-30 |
WO2017146742A1 (en) | 2017-08-31 |
US20170250936A1 (en) | 2017-08-31 |
KR20230058554A (ko) | 2023-05-03 |
IL261108A (en) | 2018-10-31 |
US11477139B2 (en) | 2022-10-18 |
JP2021043983A (ja) | 2021-03-18 |
KR20180116290A (ko) | 2018-10-24 |
US20230015178A1 (en) | 2023-01-19 |
MX2018010193A (es) | 2018-11-09 |
CN110383772B (zh) | 2022-04-01 |
CN110383772A (zh) | 2019-10-25 |
JP6782301B2 (ja) | 2020-11-11 |
JP2019511775A (ja) | 2019-04-25 |
KR102527445B1 (ko) | 2023-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110383772B (zh) | 用于消息收发机器人丰富通信的技术 | |
US11700256B1 (en) | Techniques for group message thread link administration | |
US11552910B1 (en) | Techniques for messaging bot controls based on machine-learning user intent detection | |
US20170250935A1 (en) | Techniques for messaging bot app interactions | |
CN109219793B (zh) | 用于消息收发代理平台的方法、装置和非暂时性计算机可读存储介质 | |
US11025566B2 (en) | Techniques for intent-based search for bots | |
US10462217B2 (en) | Pivot interface element for a messaging system | |
EP3211840B1 (en) | Techniques for messaging bot rich communication | |
US11646989B1 (en) | Access controls for units of content in a messaging service | |
EP3846455A1 (en) | Broadcasting and managing call participation | |
US20180183618A1 (en) | Techniques for group message thread link joining | |
US20180302345A1 (en) | Techniques for event-based recommendations for bots | |
US11341173B2 (en) | Techniques for personalized search for bots | |
US10846615B2 (en) | Techniques for reinforcement for bots using capability catalogs | |
US20180300161A1 (en) | Techniques for multiple-user bot applications | |
EP3388952A1 (en) | Techniques for intent-based search for bots |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240517 |
|
AD01 | Patent right deemed abandoned |