CN111052685B - 用于多代理消息传送的方法和装置 - Google Patents
用于多代理消息传送的方法和装置 Download PDFInfo
- Publication number
- CN111052685B CN111052685B CN201880056263.0A CN201880056263A CN111052685B CN 111052685 B CN111052685 B CN 111052685B CN 201880056263 A CN201880056263 A CN 201880056263A CN 111052685 B CN111052685 B CN 111052685B
- Authority
- CN
- China
- Prior art keywords
- proxy
- message
- account
- client device
- messaging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
-
- 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/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
- H04W12/033—Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/37—Managing security policies for mobile devices or for controlling mobile applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/60—Context-dependent security
- H04W12/69—Identity-dependent
- H04W12/72—Subscriber identity
-
- 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
-
- 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/48—Message addressing, e.g. address format or anonymous messages, aliases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/104—Grouping of entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
描述了用于多代理消息传送授权的技术。在一个实施例中,一种装置可以包括消息处理部件,其操作来从与用户账户相关联的用户客户端设备接收多代理实体的传入消息;确定与代理账户相关联的代理客户端设备;并将传入消息发送到与代理账户相关联的代理客户端设备;以及代理管理部件,其操作来确定与多代理实体相关联的接收传入消息的代理账户。描述并主张了其他实施例。
Description
相关申请
本申请根据美国法典第35编第119条e款要求标题为“Techniques for Multi-Agent Messaging”且于2018年4月4日提交的美国专利申请序列号15/945,306(律师档案号1360.0197)的优先权,并根据美国法典第35编第119条e款要求于2017年7月13日提交的美国临时专利申请号62/532,305的优先权。上述申请的内容通过引用被并入本文。
背景
用户可以在消息传送系统中与彼此交互作用,在两个或更多个用户之间相互以基于文本的对话来回发送消息。用户可以在消息传送系统中具有与他们相关联的用户账户。用户账户是用户的在线身份,且可以用作去往用户的消息的目的地,并且通常用于协调用户对消息传送系统的访问和对消息传送系统的使用。用户可以从各种端点访问消息传送系统,包括移动设备(例如,手机)、台式计算机、web浏览器、专用消息传送客户端等。
概述
下文提出简化的概述,以便提供对本文所述的一些新颖实施例的基本理解。本概述不是广泛的综述,并且不意欲识别关键/重要元素或描绘其范围。一些概念以简化的形式被提出作为稍后提出的更详细的描述的前序。
总体上,各种实施例的目的在于用于多代理消息传送授权的技术。特别地,一些实施例目的在于用于端到端加密消息传送系统的多代理消息传送授权的技术。例如,一种装置包括:消息处理部件,其从与用户账户相关联的用户客户端设备接收针对多代理实体的传入消息;确定与代理账户相关联的代理客户端设备;以及将传入消息发送到与代理账户相关联的代理客户端设备。代理管理部件确定与多代理实体相关联的接收传入消息的代理账户。其他实施例被描述并被主张。
为了实现前述和相关目的,在本文结合下面的描述和附图描述了某些说明性方面。这些方面指示本文公开的原理可以被实践的各种方式,并且所有方面及其等同物被规定为在所主张的主题的范围内。当结合附图被考虑时,其它优点和新颖特征从下面的详细描述将变得明显。
附图简述
图1示出了多代理消息传送系统的实施例。
图2示出了消息传送系统的实施例。
图3A示出了消息收件箱的用户界面的实施例。
图3B示出了消息线程的用户界面的实施例。
图4示出了执行管理员注册的多代理消息传送系统的实施例。
图5示出了执行代理注册的多代理消息传送系统的实施例。
图6示出了转发消息包的多代理消息传送系统的实施例。
图7示出了端到端加密通信系统的实施例。
图8示出了实例化群组广播的发送方设备的实施例。
图9示出了协助群组广播的消息传送系统的实施例。
图10示出了接收群组广播的接收方设备的实施例。
图11A示出了具有针对消息线程的多代理标记的基于转发的逻辑流程的实施例。
图11B示出了具有针对消息线程的个体代理标记的基于转发的逻辑流程的实施例。
图11C示出了针对消息线程的基于全局视图的逻辑流程的实施例。
图12示出了图1的系统的逻辑流程的实施例。
图13示出了用于图1的系统的集中式系统的实施例。
图14示出了用于图1的系统的分布式系统的实施例。
图15示出了计算架构的实施例。
图16示出了通信架构的实施例。
图17示出了无线电设备架构的实施例。
详细描述
消费者和企业可以通过消息传送系统彼此联系。消息传送系统可以给用户提供将消息传送给企业的方式。用户可以将消息传送给企业以接收支持、执行订单下达、提问题、或以其他方式与企业交互作用。
可以向企业的管理者提供利用消息传送系统进行签约的简单过程。独特的企业应用允许代理将个人对话和专业对话分开,其中个人对话在消费者应用中被呈现而专业对话在企业应用中被呈现。
企业应用可以给予对附加消息传送功能进行访问的权限。例如,与端到端加密的执行相关联,消息传送系统的用户可以被绑定到特定设备。然而,企业应用可以针对特定的企业给予多个设备访问消息传送通信的权限。因此,将企业的通信移动到消息传送系统上的过程简化了。因此,实施例可以为企业和消费者改进消息传送系统的功能。
现在参考附图,其中通篇相似的参考数字用于指相似的元素。在下面的描述中,为了解释的目的,阐述了许多具体细节,以便提供对其的彻底理解。然而,可能明显的是,新颖的实施例可以在没有这些具体细节的情况下被实践。在其它实例中,众所周知的结构和设备以框图形式示出,以便便于其描述。意图是涵盖与所主张的主题一致的所有修改、等同物、和备选方案。
值得注意的是,如本文使用的“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可以包括由作为消息传送系统的一部分的消息传送平台操作的一个或更多个消息传送服务器。消息传送服务器可以包括因特网可访问的服务器,其中网络120连接至少部分地包括因特网的消息传送系统的各种设备。消息传送系统可以使用消息传送服务器110来为各种用户客户端设备支持消息传送。
用户可以拥有并操作智能手机设备150。智能手机设备150可以包括设备、设备、设备、或符合智能手机形式的任何其他移动计算设备。智能手机设备150可以是能够经由蜂窝系统130使用蜂窝信号135连接到网络120的蜂窝设备。在一些实施例中以及在一些情况下,智能手机设备150可以此外或可选地使用Wi-Fi或其他联网技术以连接到网络120。智能手机设备150可以执行消息传送客户端、web浏览器、或其他本地应用以访问消息传送服务器110。
同一用户可以拥有并操作平板设备160。平板设备150可以包括设备、平板设备、Kindle设备、或符合平板电脑形式的任何其他移动计算设备。平板设备160可以是能够经由Wi-Fi接入点140使用Wi-Fi信号145连接到网络120的Wi-Fi设备。在一些实施例中以及在一些情况下,平板设备160可以附加地或可选地使用蜂窝或其他联网技术来连接到网络120。平板设备160可以执行消息传送客户端、web浏览器、或其他本地应用以访问消息传送服务器110。
同一用户可以拥有并操作个人计算机设备180。个人计算机设备180可以包括Mac设备、设备、设备、或运行另一操作系统的其他计算机设备。个人计算机设备180可以是能够通过以太网连接来连接到网络120的以太网设备。在一些实施例中以及在一些情况下,个人计算机设备180可以附加地或可选地对网络120使用蜂窝、Wi-Fi、或其他联网技术。个人计算机设备180可以执行消息传送客户端、web浏览器170、或其他本地应用以访问消息传送服务器110。
消息传送客户端可以是专用消息传送客户端。专用消息传送客户端可以专门与管理包括消息传送服务器110的消息传送平台的消息传送提供商相关联。专用消息传送客户端可以是操作来与多个不同的消息传送提供商(包括管理包括消息传送服务器110的消息传送平台的消息传送提供商)一起工作的通用客户端。
消息传送客户端可以是提供附加功能的应用的部件。例如,社交联网服务可以提供用于在移动设备上使用的用于访问和使用社交联网服务的社交联网应用。社交联网服务可以包括例如可以由消息传送服务器110提供的消息传送功能。要理解的是,消息传送服务器110可以是社交联网服务的计算设备的一个部件,且计算设备提供社交联网服务的附加功能。类似地,社交联网应用可以提供消息传送功能和附加的社交联网功能。
在一些情况下,消息传送端点可以保持在用户会话之间的状态,以及在一些情况下,消息传送端点可以放弃在用户会话之间的状态。消息传送端点可以使用本地储存器来保持消息收件箱的当前状态。该本地储存器可以被保存在永久储存器中,使得状态可以在一个会话和下一个会话之间被重新恢复,其中包括例如本地应用退出或原本从存储器移除或者设备被断电和再次通电的情况。可选地,消息传送端点可以使用存储器缓存来保持消息收件箱的当前状态但是避免将消息收件箱的状态交付到永久储存器。
保持消息收件箱的状态的消息传送端点可以包括专用消息传送应用或被集成到另一个本地应用(例如社交联网应用)中的消息传送实用程序。放弃消息收件箱的状态的消息传送端点可以包括在web浏览器内实现的消息传送访问。在一个实施例中,web浏览器,例如在个人计算机设备180上执行的web浏览器170,可以执行与消息传送服务器交互作用以向用户呈现消息传送功能的HTML5代码。
用户可以从多个设备(包括智能手机设备150、平板设备160、和个人计算机设备180)发送和接收消息。用户可以使用在智能手机设备150上的第一消息传送应用、在平板设备160上的第二消息传送应用、以及在个人计算机设备180上的web浏览器170。第一消息传送应用和第二消息传送应用可以包括相同应用在两个设备上的安装。第一消息传送应用和第二消息传送应用可以包括通用应用的智能手机专门版本和平板计算机专门版本。第一消息传送应用和第二消息传送应用可以包括不同的应用。
用户可以受益于使他们的消息收件箱在他们的设备之间保持一致。用户可以在远离他们的家时使用他们在蜂窝系统130上的智能手机设备150通过蜂窝系统130发送和接收消息。用户可以顺便访问咖啡店或提供Wi-Fi的其他地方,并将他们的平板设备160连接到Wi-Fi接入点140。平板设备160可重新恢复其针对消息收件箱的现有已知状态,并接收自从平板设备160接入网络的最后一次以来发生的更新,包括由智能手机设备150发送的以及可以由用户在操作智能手机设备150时接收到的任何消息。然后,用户可以返回家,并使用在个人计算机设备180上的web浏览器170来访问他们的消息收件箱。web浏览器170可以由于它不保持或原本不能访问消息收件箱的现有状态而从消息传送服务器110接收消息收件箱的当前状态的快照。然后,web浏览器170只要它保持与消息传送服务器110的用户会话则可以重新恢复对消息收件箱的状态的任何新变化的增量更新,在会话结束时,例如当web浏览器170被用户关闭时,丢弃它的关于消息收件箱的已知状态。非限制性地,更新可以对应于消息到邮箱的添加、消息从邮箱的删除、以及已读回执。
消息传送系统可以通过将消息传送收件箱定义为包括多个消息来操作,其中每个消息是在两个或更多个参与者之间的通信的单独事务。邮件服务器可以通过保持消息收件箱的消息索引来操作。邮件服务器可以接收消息并将消息存储在邮件归档中,消息可以通过对消息索引的参考从邮件归档中被重新恢复。邮件客户端可以连接到邮件服务器,并重新恢复自从上次更新以来被添加到它们的邮件归档的邮件。邮件客户端可以从邮件归档接收邮件索引,该邮件索引指示什么消息被存储在邮件归档中。邮件客户端可以将邮件归档与它们的当前收件箱进行比较,以便确定它们失去了什么消息、它们然后从邮件归档请求这些消息。邮件客户端可以对它们的收件箱做出改变,这导致邮件收件箱指令被传输到邮件归档,在对在邮件归档上的它们的邮件收件箱的表示进行的修改中指示邮件归档。
由消息传送系统介导的消息传送交互作用可以被组织到被称为消息线程的共享空间中。消息线程可以将在特定组的用户之间共享的消息收集在一起。在一对用户之间单独地发送的消息可以被收集到与在该对用户之间的私人消息传送唯一地相关联的一对一消息线程中。在一组三个或更多个用户之间发送的消息可以不唯一地由他们的成员资格限定,但在一些实施例中替代地由唯一地标识该一组线程的标识符定义。在一些实施例中,在一组线程中的成员资格可以随时间的过去而变化,添加和/或失去成员。
消息传送交互作用可以使用在客户端设备之间的端到端加密通信。发送客户端设备可以使用安全技术来对传出消息加密,安全技术建立下列情况之一:只有接收方设备能够对传出消息解密(例如,通过使用公共密钥密码术)或者只有发送和接收方设备能够对传出消息解密(例如,通过使用共享密钥密码术)。在这些实施例中,可以防止消息传送系统的服务器对在客户端之间发送的消息解密。在一些实施例中,用户可以选择特定的消息线程是使用端到端加密(并从而接收消息传送服务器被阻止访问消息的内容的额外隐私)还是不使用端到端加密(并从而接收消息传送系统能够为了向用户提供相关服务的目的而以编程方式访问消息的益处)。
消息传送系统可以使用根据在用户之间的交互作用而生成的知识。消息传送系统可以包括社交联网系统的部件,并且可以使用根据社交联网系统的更广泛的交互作用而生成的知识。因此,为了保护消息传送系统和更大的社交联网系统的用户的隐私,消息传送系统可以包括授权服务器(或其他合适的部件),其允许用户例如通过设置适当的隐私设置来选择加入或选择退出他们的由消息传送系统记录的或与其他系统(例如,第三方系统)共享的动作。用户的隐私设置可以确定与用户相关联的什么信息可以被记录、与用户相关联的信息可以如何被记录、与用户相关联的信息何时可以被记录、谁可以记录与用户相关联的信息、可以与谁共享与用户相关联的信息、以及与用户相关联的信息可以为了什么目的而被记录或共享。授权服务器或其他授权部件可用于视情况通过阻止、数据散列、匿名化、或其他适当的技术来实施消息传送系统的用户的和社交联网系统的其他元件的一个或更多个隐私设置。
图2示出了实现消息传送系统200的各种功能的多个服务器的实施例。要理解的是,在消息传送系统200的各种实施例中可以使用工作和功能的不同分配。消息传送系统200可以包括多代理消息传送系统100,多代理消息传送系统100的操作包括消息传送系统200的全部操作的一部分。消息传送系统200的所示实施例可以特别对应于参考图1描述的消息传送服务器110的一部分,其包括向消息传送系统200的用户提供消息传送服务的一个或更多个服务器设备。
通过网络总线220来连接消息传送系统200的各个服务器。网络总线220提供在域名前端210、消息传送系统220的服务器、和各种外部设备(例如客户端设备)之间的网络连接。每个服务器独立地连接到网络总线220,使得它们可以经由网络总线220与彼此和/或与用户设备独立地通信。
消息传送系统200可以包括域名前端210。域名前端210可以被分配与在域名系统(DNS)中的消息传送系统200相关联的一个或更多个域名。域名前端210可以接收传入连接,并将连接分配到提供各种消息传送服务的服务器。
消息传送系统200可以包括一个或更多个聊天服务器215。聊天服务器215可以包括用于接收和传输用户到用户消息传送更新(例如聊天消息)的前端服务器。传入连接可以基于工作负载平衡由域名前端210分配到聊天服务器215。
消息传送系统200可以包括后端服务器230。后端服务器230可以执行支持前端聊天服务器215的聊天操作的专门任务。可以使用多个不同类型的后端服务器230。要理解的是,在不同的实施例中,任务类型到不同的后端服务器230的分配可以改变。在一些实施例中,由专用服务器提供的一些后端服务可以被组合到单个服务器或一组服务器上,每个服务器在本文所述的实施例中执行在不同服务器之间划分的多个任务。类似地,在一些实施例中,本文描述的一些专用后端服务器的任务可以在不同服务器组中的不同服务器之间被划分。
消息传送系统200可以包括一个或更多个离线存储服务器231。一个或更多个离线存储服务器231可以存储当前离线消息传送端点的消息传送内容,等待用于在消息传送端点重新连接时。
消息传送系统200可以包括一个或更多个会话服务器232。一个或更多个会话服务器232可以维护所连接的消息传送端点的会话状态。
消息传送系统200可以包括一个或更多个存在服务器233。一个或更多个存在服务器233可以保持消息传送系统200的存在信息。存在信息可以对应于用户特定的信息,其指示给定用户是否具有在线消息传送端点并且可用于聊天、具有在线消息传送端点但是当前远离它、没有在线消息传送端点、以及任何其他存在状态。
消息传送系统200可以包括一个或更多个推送存储服务器234。一个或更多个推送存储服务器234可以缓存推送请求,并将推送请求传输到消息传送端点。推送请求可用于唤醒消息传送端点,以通知消息传送端点消息传送更新可用,以及以其他方式执行服务器侧驱动的与消息传送端点的交互作用。
消息传送系统200可以包括一个或更多个聊天活动监测服务器235。一个或更多个聊天活动监测服务器235可以监测用户的聊天以确定由消息传送系统200的用户进行的未授权或不被鼓励的行为。一个或更多个聊天活动监测服务器235可以与垃圾邮件记录服务器239和阻止列表服务器236协同地工作,一个或更多个聊天活动监测服务器235识别垃圾邮件或其他不被鼓励的行为并且向垃圾邮件记录服务器239提供垃圾邮件信息以及在适当的情况下向阻止列表服务器236提供阻止信息。
消息传送系统200可以包括一个或更多个阻止列表服务器236。一个或更多个阻止列表服务器236可以保持用户特定的阻止列表,用户特定的传入阻止列表为每个用户指示被禁止向该用户传输消息的一个或更多个其他用户。可选地或附加地,一个或更多个阻止列表服务器236可以保持用户特定的传出阻止列表,其为每个用户指示该用户被禁止将消息传输到的一个或更多个其他用户。要理解的是,传入阻止列表和传出阻止列表可以组合地被存储在例如数据库中,传入阻止列表和传出阻止列表代表块信息的相同库的不同视图。
消息传送系统200可以包括一个或更多个最后被看到的信息服务器237。一个或更多个最后被看到的信息服务器237可以接收、存储、和保持指示最后被看到的位置、状态、消息传送端点、以及用户的到消息传送系统200的最后被看到的连接的其他元素的信息。
消息传送系统200可以包括一个或更多个简档照片服务器238。一个或更多个简档照片服务器238可以存储消息传送系统200的多个用户的简档照片且可用于检索消息传送系统200的多个用户的简档照片。
消息传送系统200可以包括一个或更多个垃圾邮件记录服务器239。一个或更多个垃圾邮件记录服务器239可以记录已知的和可疑的垃圾邮件(例如,不想要的消息,尤其是促销性质的那些消息)。一个或更多个垃圾邮件记录服务器239可操作来分析消息以确定它们是否是垃圾邮件并在一些实施例中执行针对可疑的垃圾邮件发送者(发送垃圾邮件消息的用户)的惩罚措施。
消息传送系统200可以包括一个或更多个统计服务器240。一个或更多个统计服务器可以编译和存储与消息传送系统200的操作和消息传送系统200的用户的行为相关的统计信息。
消息传送系统200可以包括一个或更多个同步服务器241。一个或更多个同步服务器241可以使消息传送系统240与来自消息传送端点的联系信息(例如在移动电话上的地址簿)同步以在消息传送系统200中确定用户的联系人。
消息传送系统200可以包括一个或更多个web服务器242。一个或更多个web服务器242可以参与与web浏览器的超文本传输协议(HTTP)和超文本传输协议安全(HTTPS)连接。在一些实施例中,一个或更多个web服务器242可以托管远程web服务器350,作为多代理消息传送系统100的操作的一部分。
消息传送系统200可以包括一个或更多个密钥服务器243。一个或更多个密钥服务器243可以托管用于公共/私人密钥加密通信的公共密钥。
消息传送系统200可以包括一个或更多个群组服务器244。一个或更多个群组服务器244可以保持群组的列表,将用户添加到群组,从群组移除用户,以及执行群组聊天消息的接收、缓存、和转发。
消息传送系统200可以包括一个或更多个多媒体数据库(MMD)服务器245。MMD服务器245可以存储消息传送系统200已知的媒体对象的数据库,该数据库可以是分布式数据库。在一些实施例中,只有在消息传送系统200中的当前存储的或否则在输送时的媒体对象可以由MMD服务器245跟踪。在其他实施例中,MMD服务器245可以保持对不再在输送时的媒体对象的记录,例如可以用于跟踪流行性或其他数据收集目的。
MMD服务器245可以在媒体对象将由消息传送系统200存储时确定例如在多媒体服务器246上的媒体对象的存储位置。MMD服务器245可以在媒体对象将由消息传送系统200传输时确定媒体对象的现有存储位置,例如多个多媒体服务器236中的哪一个多媒体服务器存储特定的媒体对象。MMD服务器245可以生成统一资源定位符(URL)以用于由消息传送客户端使用来请求和检索媒体对象。MMD服务器245可以跟踪媒体对象何时被破坏或以其他方式丢失并且应该被重新获取。
消息传送系统200可以包括一个或更多个多媒体服务器246。一个或更多个多媒体服务器可以存储在消息传送端点之间在输送时的多媒体(例如,图像、视频、音频)、为离线端点缓存的多媒体,并且可以执行多媒体的代码转换。
消息传送系统200可以包括一个或更多个支付服务器247。一个或更多个支付服务器247可以处理来自用户的支付。一个或更多个支付服务器247可以连接到外部第三方服务器以用于支付的执行。
消息传送系统200可以包括一个或更多个注册服务器248。一个或更多个注册服务器248可以注册消息传送系统200的新用户。
消息传送系统200可以包括一个或更多个语音中继服务器249。一个或更多个语音中继服务器249可以在消息传送端点之间中继互联网协议语音(VoIP)语音通信以用于VoIP呼叫的执行。
图3A示出了消息收件箱的用户界面300的实施例。
客户端设备305可以对应于用于访问多代理消息传送系统100的任何设备。虽然在图3A的所示实施例中客户端设备305类似于智能手机设备,但要理解的是,本文描述的技术可以与任何类型的设备一起使用。用户界面300通常可以对应于消息传送系统的用户收件箱的显示。
用户界面300可以包括在关于用户账户的收件箱中的多个消息线程320的显示。所显示的消息线程320的一部分可以是具有未读消息的消息线程。所显示的线程的一部分可以是没有未读消息的线程。在图3A的所示实施例中,用户界面300可以向下滚动以揭露更多的线程。
在收件箱中的消息线程320的显示对于每个消息线程可以包括线程的名称的显示、在线程中的最后接收或最后交换的消息、线程的内容的预览、以及在线程中的一个或更多个用户的化身。线程的名称可以对应于线程中的一个或更多个参与者的名称而不是收件箱的用户账户的名称。
关于企业实体的消息线程的消息线程条目330可以包括企业的名称、在消息线程中的最后接收的消息或最后交换的消息、在消息线程中的最后接收的消息或最后交换的消息的最后接收时间或最后交换时间、和/或与消息线程相关的其他信息。关于企业实体的消息线程的消息线程条目330可以包括经验证的实体指示符335。经验证的实体指示符335指示企业实体的所列出的名称是针对在消息线程中被通信的实际实体,如由它的代理所表示的。
消息传送伙伴可以与用来唯一地标识他们的电话号码相关联。如果消息传送伙伴是企业实体,它可以与企业的联系号码相关联。对于一般用户联系人,可以基于在客户端设备305上的用户的地址簿来分配用户的名称。然而,对于企业,可以使用经验证的名称,经验证的名称由消息传送系统提供。这个经验证的名称的使用通过经验证的实体指示符335指示。
用户界面300可以包括收件箱标题控件310。收件箱标题控件310可以授权各种消息传送相关的动作。收件箱标题控件310可以包括编辑控件,该编辑控件授权对消息传送收件箱的配置。收件箱标题控件310可以包括编写控件,该编写控件授权创建新消息线程。
图3B示出了消息线程的用户界面350的实施例。
用户界面350可以包括在客户端设备305上显示的消息线程的用户界面。消息线程的消息交换的至少一部分可以显示在消息线程交互作用显示370中。消息线程交互作用显示370可以包括由消息线程的用户交换的一个或更多个消息的显示。关于消息线程讨论的特征可以应用于一对一消息线程或群组消息线程。关于消息线程讨论的特征可以应用于其中用户与企业实体建立关系(engages with)的消息线程。
用户界面350可以包括线程信息360的显示。线程信息360可以包括线程中涉及的一个或更多个其他用户的列表。一个或更多个其他用户的显示可以使用用户的名称,例如全名、短名、或被注册为供特定用户使用的名称的其它名称以用于消息传送和/或社交联网交互作用。一个或更多个其他用户的显示可以使用一个或更多个其他用户的化身、简档图片、或其他视觉表示。
在一些实例中,用户的所显示的名称可以包括企业实体的经验证的名称。经验证的名称是由管理机构(例如消息传送系统的维护人员)验证的对应于实体的名称。在经验证的名称对用户(例如企业实体)是已知的情况下,经验证的名称可以被显示为线程信息360的一部分。然而,在一些实施例中,用户名称的显示通常可以被关联作为用户界面特征,从在客户端设备305上的地址簿得到用户的名称。因此,可以用视觉符号显示经验证的名称,该视觉符号指示为显示的用户的名称是根据管理权限的经验证的名称,而不是从查看用户的地址簿得到的在本地定义的名称。在一些实施例中,在企业未被验证的场合,可以显示不同的指示符,未经验证的企业指示符。
消息线程的用户界面350可以包括在消息线程的显示期间持久地可见的编写控件365。许多、大部分、或几乎所有的编写控件365可以授权对另外的用户界面控件的访问以用于对各种任务(例如文本输入、媒体选择、表情符号选择、相机使用、社交批准图标等)的执行。
一个或更多个消息中的每一个消息可以由特定的消息气泡(例如消息气泡375)表示。消息气泡可以代表原子消息传送交互作用。消息气泡通常可以对应于所限定的几何区域,其中特定消息传送交换的内容(例如,文本、媒体)被包含在所限定的几何区域内。消息气泡可以具有将该消息气泡与消息线程交互作用显示的背景区分开的不同的颜色或多种颜色(例如,一个或更多个梯度)。消息气泡可以具有清晰地着色的边框,例如所描绘的黑色轮廓,或者可以具有在消息气泡的不同颜色和背景之间由界面限定的边框。在一些实施例中,消息气泡和背景中的任一者或两者的颜色可以由消息传送系统的用户定制和配置。
关于企业实体的消息线程的消息线程交互作用显示370可以包括商业联系人控件380。商业联系人控件380可以在消费者和企业之间的消息线程的初始时期期间、在消费者已经建立与企业的消息传送关系之前被显著地显示。然而,在关系被建立之后,商业联系人控件380可以仍然是可访问的。
商业联系人控件380可以包括阻止控件、报告垃圾邮件控件、和/或添加到联系人控件。阻止控件可以阻止企业将消息传送给消费者。报告垃圾邮件控件可以将企业报告为参与了垃圾邮件。添加到联系人控件可以将企业添加到用户的联系人,例如可以包括将企业和企业的电话号码添加到在客户端设备305上的用户的地址簿。
消息线程的用户界面350可以授权用户执行各种其他任务。例如,用户可以被授权查看与消息线程相关联的企业的简档。简档可以包括包含经验证的信息的经验证的简档。例如,经验证的简档可以指示经验证的地址、经验证的位置、经验证的电话号码、经验证的名称、经验证的标志、和/或其他经验证的信息。简档可以包括还没有被验证的信息,例如地址、位置、电话号码、名称、标志、工作时间、和/或其他信息。
管理员注册
图4示出了执行管理员注册的多代理消息传送系统100的实施例。
多代理消息传送系统100为具有多个代理的多代理实体(例如,企业实体)支持统一消息传送平台。多代理实体可以在多代理消息传送系统100中基于唯一实体身份来被识别。实体标识符可以在多代理实体的标识符命名空间(例如企业实体的标识符命名空间)中是唯一的。对于不同种类的实体,实体标识符可以在标识符名称空间中在整个消息传送系统中是唯一的。可以使用随机数生成技术(例如,真随机性、伪随机性)基于随机数生成来分配实体标识符。可以从其他信息(例如企业实体的联系电话号码)得到实体标识符。
多代理实体与一个或更多个代理相关联。一个或更多个代理与一个或更多个代理客户端设备相关联。因此,多代理实体可以与一个或更多个代理客户端设备相关联。多代理实体的多个代理中的一个或更多个代理可以包括多代理实体的管理员。一个或更多个管理员与一个或更多个管理员客户端设备相关联。一个或更多个代理客户端设备可以包括一个或更多个管理员客户端设备。因此,多代理实体可以与一个或更多个管理员客户端设备相关联。
可以根据设备专门的代理标识符来识别多代理实体的每个代理,包括任何管理员。设备专门的代理标识符可以包括代理的代理客户端设备的电话号码。在代理与多个客户端设备相关联的情况下,设备专门的代理标识符可以包括主客户端设备(例如代理的主智能手机设备)的电话号码。代理可以被授权使用电话客户端设备或非电话客户端设备(即,没有电话连接的客户端设备)来访问消息传送系统。
管理员客户端设备405可以是使用消息传送系统进行通信并实现多代理消息传送系统100的多个客户端设备之一。管理员客户端设备405执行消息传送客户端420。在管理员客户端设备405上的消息传送客户端420包括多个部件。该多个部件可以包括软件部件。消息传送客户端420的部件可以包括这里描述的这些部件之外的额外部件,并且在不同实施例中消息传送客户端420的操作可以在不同配置中在部件之间进行划分。管理员客户端设备405可以执行企业消息传送客户端。企业消息传送客户端可以使用被设计为由企业用户使用的界面特征来实现消息传送客户端420的消息传送特征。
消息传送客户端420可以包括消息传送部件440。消息传送部件440通常可以被布置成执行在消息传送客户端420和消息传送系统之间的交互作用。消息传送部件440可以向消息传送系统的消息传送服务器410发送网络通信并从消息传送系统的消息传送服务器410接收网络通信。
消息传送客户端420可以包括用户界面部件430。用户界面部件430通常可以被布置成向客户端设备的用户呈现信息,并从客户端设备的用户接收用户命令。用户界面部件430可以显示视觉信息、输出音频信息、以及以其他方式向用户呈现信息。用户界面部件430可以接收触摸命令、文本命令、语音命令、以及关于消息传送客户端420的操作的任何其他种类的命令。
多代理消息传送系统100包括消息传送服务器410。消息传送服务器410可以在消息传送服务器设备上执行。消息传送服务器410通常被布置成为客户端设备执行消息传送服务。消息传送服务器410可以包括一个或更多个软件或硬件部件。消息传送服务器410可以包括代理管理部件470。代理管理部件470通常被布置成维护多代理实体的代理的授权和注册。消息处理部件480通常被布置成在消息传送系统的用户之间接收、存储、和转发消息。
企业、企业实体、或其他多代理实体的管理员可以使用消息传送客户端420的用户界面部件430来执行管理员账户注册命令410。消息传送部件440接收管理员账户注册命令410,并向消息传送服务器410执行管理员账户注册450以注册多代理实体的管理员账户。消息传送部件440向代理管理部件470发送管理员账户注册450。
代理管理部件470接收多代理实体的管理员账户的管理员账户注册450。管理员账户注册450建立多代理实体的管理员账户。代理管理部件470将管理员账户注册为与多代理实体相关联。管理员账户注册450可以与多代理实体的验证相关联地被执行以确保合法管理员被授权代表在消息传送系统中的多代理实体进行管理。
代理管理部件470向代理映射库415执行管理员注册460。代理映射库415存储在多代理实体和与多代理实体相关联的管理员和代理之间的映射。代理映射库415授权一个或更多个消息传送服务器来存储和检索在多代理实体与多代理实体的管理员和代理之间的关系。
代理映射库415可以存储多代理实体的代理规则。多代理实体的管理员可以使用企业应用消息传送客户端420的用户界面部件430来指定多代理实体的代理规则。代理规则为多代理实体配置消息的处理。当接收到消息时,消息处理部件480至少部分地基于多代理实体的代理规则来处理该消息。代理规则可以为多代理实体指定一组默认代理,其中消息处理部件480自动将所有默认代理包括在任何创建的消息线程中。代理规则可以为多代理实体指定一个或更多个管理员。
代理规则可以指定线程锁定规则,在该线程锁定规则中对于除了在消息线程中做出响应的第一代理之外的代理,阻止向消息线程发布消息,而不阻止从消息线程读取消息。线程锁定规则可以指定管理员免于被阻止发布。
代理规则可以为多代理实体的每个代理指定许可。代理规则可以为每个代理指定该代理是否是默认代理。代理规则可以为每个代理指定该代理是否是管理员。代理规则可以为每个代理指定是否有参与支付活动的许可。代理规则可以为每个代理指定该代理是否有参与特定支付活动(例如批准退货、批准退款、提供折扣、或其他任意支付动作)的许可。代理规则可以为每个代理指定该代理是否有发起与用户(例如,消费者)的消息线程的许可,而不是仅对由用户发起的消息线程做出响应。
消息传送系统可以执行企业实体的验证作为注册过程的一部分。通常,该验证将指示特定的已知消息传送实体对应于特定的已知企业实体。这可以在用户与企业实体建立关系时提供用户对他们的消息传送体验的信心。注册过程可以包括电话号码验证过程,其中短消息服务(SMS)消息或语音确认码被发送到管理员客户端设备405,并且必须被输入到在管理员客户端设备405上的消息传送客户端420中,以便完成注册。
管理员可以被授权从多个端点访问消息传送系统。例如,管理员可以被授权从台式或膝上型计算机以及从触摸屏设备(例如智能手机)访问消息传送系统。从多个设备访问消息传送系统可以通过例如具有管理端到端加密的主设备来被授权,辅助设备通过主设备来访问消息传送系统。
代理注册
图5示出了使用代理客户端设备505来为代理执行代理注册的多代理消息传送系统100的实施例。
代理注册可以包括由代理在代理客户端设备505上进行的动作。用户界面部件430可以从代理接收代理账户注册命令510,并将代理账户注册命令510传递到消息传送部件440。消息传送部件440然后向消息传送服务器410执行代理账户注册550。
代理管理部件470从代理客户端设备505接收多代理实体的代理账户的代理账户注册550。代理管理部件470向代理映射库415执行代理账户的代理注册560。代理注册560指示代理账户是指定的多代理实体的代理。
通常,多代理消息传送系统100使管理员能够批准多代理实体的代理注册560。在一个实施例中,在管理员客户端设备405上的用户界面部件430可以从管理员接收代理账户批准命令515,并将代理账户批准命令515传递到消息传送部件440。消息传送部件440然后向消息传送服务器410执行代理账户批准555。
可选地,管理员可以通过向代理提供他们可以在代理注册560中使用来指示他们已经被批准的信息来批准代理注册560。例如,管理员可以向代理提供代理可以与代理客户端设备505一起使用来指示代理注册560有管理员的批准的代码,而管理员客户端设备405不通过网络向代理管理部件470发送代理账户批准555。代理管理部件470可以接收在代理账户注册550中的管理员代码,并基于管理员代码来批准代理账户注册。管理员代码可以是由代理管理部件470提供到管理员客户端设备405的一次性代码。一次性代码可以包括数字或字母数字代码。一次性代码可以随机地生成。一次性代码可以被提供到在消息传送系统外部的代理客户端设备505。
在一些实施例中,可以通过快速响应(QR)码来提供数字代码。QR码或在QR中编码的数字代码可以由代理管理部件470提供到管理员客户端设备405。管理员客户端设备405然后可以显示QR码,并且代理客户端设备505可以用相机部件捕获QR码。代理客户端设备505然后从QR码提取一次性代码,并将该一次性代码在代理账户注册550中提供到代理管理部件470。
代理管理部件470从多代理实体的管理员账户接收多代理实体的代理账户的代理账户批准555。代理管理部件470基于代理账户注册和代理账户批准555来向代理映射库415执行代理账户的代理注册560。代理注册560指示代理账户是指定的多代理实体的代理。
代理账户注册550、代理账户批准555、和/或代理注册560可以针对多代理实体的后续消息线程的消息共享授权注册代理账户。代理账户可以被授权访问发送到多代理实体的和从多代理实体发送的所有消息。可选地,代理账户可以被授权访问在代理账户注册为多代理实体的代理之后开始的消息线程。可选地,代理账户可以由多代理实体的管理员单独地授权访问特定的消息线程。代理账户与多代理实体的关联以及代理账户访问消息线程的授权被存储在代理映射库415中。
代理账户注册为多代理实体的代理可以提示在与代理账户相关联的代理客户端设备505和与管理员账户相关联的管理员客户端设备405之间的端到端加密通信关系的创建。在客户端设备405、505上的消息传送部件440可以交换安全信息以建立加密密钥,以用于在对在客户端设备405、505之间的通信加密和解密时使用。这个端到端加密通信关系可用于使信息在代理客户端设备505和管理员客户端设备405之间安全地传递。端到端加密通信关系可以是使用用于在消息传送系统的设备之间的端到端加密消息传送的相同技术的端到端加密通信关系。
在一些实施例中,代理账户注册550可以包括消息共享授权以访问由多代理实体发送和接收的消息。然而,除了由代理进行的代理账户注册550之外,代理管理部件470还可以阻止将账户注册为多代理实体的代理,直到它具有来自多代理实体的管理员的代理账户批准555为止。
消息转发
图6示出了转发消息包650的多代理消息传送系统100的实施例。
用户可以使用用户客户端设备605来向多代理实体发送消息610。用户使用用户客户端设备605的用户界面部件430来创作消息610。用户界面部件430将消息610传递到消息传送部件440。消息传送部件440然后生成消息包650并将消息包650提交到消息传送服务器410。消息包650被呈递到多代理实体的地址或标识符。
消息处理部件480从与用户账户相关联的用户客户端设备605接收在多代理实体的消息包650中的传入消息610。然后,消息处理部件480基于由管理员账户对代理账户的消息共享授权来将消息包650与它的传入消息610一起发送到与所注册的代理账户相关联的代理客户端设备505。在一些实施例中,可以基于代理的注册来提供消息共享授权。在其他实施例中,可以为特定的消息线程单独地提供消息共享授权,管理员单独地授权代理读取和参与消息线程。
在一些实施例中,代理被授权访问多代理实体的所有消息线程或者在它们被注册为多代理实体的代理之后创建的所有消息线程。在其他实施例中,代理被管理员授权访问特定的消息线程,并且被阻止访问他们没有被特别授权访问的消息线程。在一些实施例中,代理可以读取任何消息线程,但仅可以向他们被管理员特别授权写入的消息线程提交消息。在一些实施例中,消息线程可以被锁定到特定的代理,一旦该代理在消息线程中已经发布,则阻止其他代理在它中进行发布。这种锁定可以在企业应用的代理界面中被指示。
在一些实施例中,传入消息线程可以指向多代理实体的一个或更多个默认账户。因此,代理账户可以包括默认账户,所有传入消息线程默认地最初指向该默认账户。当多代理实体被注册或被配置或后来重新配置时,可以指定一个或多个默认账户。在一些实施例中,默认代理可以是管理员,从而授权管理员对一些传入消息线程做出响应,并将剩余的消息线程分配到各个代理以用于处理。管理员可以使用管理员客户端设备405以通过消息传送服务器410来将消息线程从管理员客户端设备405转发到代理客户端设备505。
代理映射库415包括每个多代理实体的代理的列表。代理映射库415还可以包括多代理实体的默认代理的列表,其中默认代理是来自用户客户端设备的传入消息传送通信的默认接收方。一个或更多个默认代理的列表可以由管理员为多代理实体指定。代理映射库415还可以存储多代理实体的一个或更多个管理员的列表。管理员是具有额外能力(例如非限制性地被授权添加代理、删除代理、和/或向代理分配消息线程)的代理的子集。
代理管理部件470接收在用户账户和管理员账户之间的消息线程的消息线程转发。从管理员账户,例如从管理员客户端设备405,接收消息线程转发。消息线程转发指向正在转发消息线程的代理账户。在代理账户未被授权访问多代理实体的所有消息线程的实施例中,消息线程转发可以包括用于使代理账户访问消息线程的消息共享授权或与消息共享授权相关地被发送。代理可以由代理管理部件470通知他们已经通过代理客户端设备505被分配了消息线程。
代理管理部件470向代理映射库415中的代理账户注册消息线程。这授权消息处理部件480将消息线程的传入消息转发到适当的客户端设备,在这种情况下是为该消息线程分配的代理账户的代理客户端设备505。当消息处理部件480然后在消息传送服务器设备上的消息传送服务器410处从用户客户端设备605接收到在多代理实体的传入消息包650中的传入消息610时,其基于在代理映射库415中向代理账户注册消息线程,来将消息包650中的消息610发送到代理客户端设备505。基于由消息610指向的多代理实体来确定传入消息610的消息线程,并且基于消息610与分配到代理客户端设备505的消息线程相关联来从代理映射库415检索指示适当代理客户端设备505的代理注册560。
当传入消息包650被接收到时,消息包650被检查以识别预期接收方。预期接收方是基于接收方标识符来被识别的。在预期接收方是多代理实体的情况下,接收方标识符识别多代理实体。接收方标识符然后可以与代理映射库415一起使用以检索应接收消息包650的代理,代理已经基于代理注册560向多代理实体注册。在一些情况下,代理是基于它们的代理账户被注册为消息包650的消息线程的处理代理来被识别的。消息包650的消息线程可以基于发送方来被识别,消息线程是在发送方的用户客户端设备605的用户账户和接收方多代理实体之间的唯一消息线程。在其他情况下,代理是基于代理账户是默认代理来被识别的,其中默认代理是由于没有代理被特别分配到消息线程而被使用的。在任一情况下,消息包650然后被发送到所确定的代理的代理客户端设备505。
可以执行在用户客户端设备605和代理客户端设备505之间的消息线程的初始创建,其中默认代理接收所有传入用户通信的初始消息线程创建。用户客户端设备605和代理客户端设备505可以创建端到端加密消息传送关系,每个客户端设备405、505存储消息传送关系的安全信息。安全信息可以包括一个或更多个加密密钥,传入消息610基于一个或更多个加密密钥中的加密密钥被加密。
在多于一个代理客户端设备被授权访问与用户客户端设备605的消息线程的情况下,消息线程可以作为安全群组消息线程被保护。安全群组线程支持在使用端到端加密的三个或更多个客户端设备之间的加密通信。在传入消息610被发送到群组消息线程的情况下,传入消息610对于每个接收方客户端设备(例如对于两个或更多个代理客户端设备)被单独地加密。
在一些实施例中,来自一个代理客户端设备(例如由管理员为多代理实体使用的默认代理客户端设备)的消息线程的分配可以提示消息线程从一对一消息线程到群组消息线程的转换。在其他实施例中,消息线程可以最初被创建为群组消息线程。特别是,在多个代理被自动授权访问消息线程的情况下,消息线程可以最初被创建为群组消息线程,代理的每个代理客户端设备被授权访问参与群组消息线程的每个消息线程。可选地,代理客户端设备可以响应于代理客户端设备请求访问其被授权访问的消息线程而被添加到群组消息线程。在这些实施例中,消息线程可以响应于第二代理客户端设备请求与用户一起访问消息线程而被转换到群组消息线程。
从第一代理客户端设备到第二代理客户端设备的消息线程转发可以包括该消息线程的历史捆绑包的转发。第一代理客户端设备(例如默认代理的代理客户端设备)可以将现有对话加密为历史捆绑包,并将加密的历史捆绑包发送到第二代理客户端设备以向第二代理提供用于继续与用户的交互作用的背景。
全局视图
在多个客户端设备(例如所有代理客户端设备)将接收多代理实体的所有消息线程的实施例中,消息处理部件480可以自动将多代理实体的所有消息线程的所有消息包转发到多代理实体的所有代理客户端设备。对于每个传入消息包650,消息处理部件480从代理映射库415检索包括代理注册信息(agent registry)的代理注册的列表,并将消息包650转发到每个代理客户端设备。此后,该消息包650可以由每个代理客户端设备基于根据加密群组消息线程技术为对来自用户客户端设备的消息包解密而建立的加密密钥来解密。
消息线程可以在用户客户端设备605上在消息线程界面中被显示。为了帮助用户识别与他们相对应的多代理实体,多代理消息传送系统100可以在用户客户端设备605上标记消息线程界面以指示多代理实体。例如,在用户客户端设备605上的消息线程界面被标记有多代理实体的经验证的名称,例如企业的名称。
在一些实施例中,基于与用户相对应的个体代理为用户标记消息线程。因此,代理管理部件470可以为在用户客户端设备605上的消息线程重新标记消息线程界面以响应于从管理员账户到用户账户的消息线程转发命令而指示代理账户代替管理员账户。因此,在初始时期中消息线程界面可以显示管理员账户的用户信息,且然后在随后的时期中显示代理账户的用户信息。在一些实施例中,正在通信的管理员或代理的标签可以被保留,直到管理员或代理向消息线程提交消息为止,以便避免使正在通信的用户困惑。因此,在初始时期中多代理实体的名称可以被使用,且然后在随后的时期中,一旦代理在消息线程内发送消息,例如在代理由管理员分配消息线程之后,代理的特定名称被使用。
消息传送客户端420可以显示联系人的最后被看到的时间。这些最后被看到的时间可以显示在关于每个消息线程的消息收件箱视图中。这些最后被看到的时间可以与联系人一起显示在关于消息线程的消息线程界面中。对于多代理实体,所使用的最后被看到的时间可以是具有访问消息线程的授权的任何代理的最新(即,最近)最后被看到的时间。代理管理部件470可以确定关于多代理实体的多个代理账户的多个最后被看到的时间,从多个最后被看到的时间选择最近的最后被看到的时间,并将最近的最后被看到的时间提供到在用户客户端设备605上的关于消息线程的消息线程界面以指示多代理实体的最后被看到的时间。
在一些实施例中,多代理实体、企业实体、或其他经授权实体的管理员和/或代理可以被授权向多个用户账户发送广播消息。例如,多代理实体可以能够向每个用户账户发送指定的消息,多代理实体具有与每个用户账户的活动或最近活动的消息线程。消息传送系统可以对可以被发送的广播消息的数量强加限制,例如每日限制。用户可以被授权选择退出接收任何特定的广播消息或来自所有企业的广播消息。用户可以被允许选择参与接收任何广播消息或为特定企业广播消息。
标记消息
在一些实施例中,管理员和/或代理可以被授权以用注释、标签、或其他信息片段来标记用户。此后,管理员可以只向带有特定标签的用户发送广播消息。这些标签可能对多个代理和/或管理员是可见的,授权信息的共享。例如,代理可以向对其他代理可见的消息线程添加注释以帮助执行各种任务。代理和管理员可以被授权以基于标签来对消息线程进行分类和选择。可以基于至少一些标签来向代理和管理员呈现分层结构。
可以用标签自动标记与用户的消息线程,该标签为用户如何发起消息线程提供背景。例如,消息传送背景标签可以指示用户在网页上或在深度链接到消息传送客户端420中的多代理实体的应用中选择了深度链接统一资源指示符(URI)。消息传送背景标签可以指示用户选择了包括深度链接URI的广告。
在一些实施例中,标记消息线程可以包括用媒体内容(例如图像或视频)来标记消息线程。在这些实施例中,消息传送系统可以提供可以用于存储媒体内容的媒体库,消息线程用该媒体内容被标记。该媒体储存库可以被加密,使得只有多代理实体的管理员和代理可以访问与多代理实体相关联的媒体内容。在一些实施例中,只有由管理员选择的代理或其他代理可以被授权访问媒体内容。
自动响应
在一些实施例中,消息传送系统可以支持自动响应。例如,当用户创建与多代理实体的消息线程时,自动响应可以被发送以欢迎用户,自动响应由管理员为多代理实体定义。自动响应可以由管理员建立以回答频繁地被问的问题。可以基于各种自然语言处理(NLP)技术(包括显式关键词标记、关键词分析、基于机器的自然语言学习、或任何其他NLP技术)响应于用户消息来提供这些自动响应。消息传送系统还可以向查看消息线程的代理提供自动响应快捷方式。不是自动发送自动响应,消息传送系统可以向代理提供一个或更多个所建议的响应。这些所建议的响应可以是在没有消息线程的细节的背景的情况下提供的通用建议的响应,或者可以基于消息线程的联系,因为可以包括消息线程的NLP分析。
分析方法
多代理消息传送系统100可以向多代理实体的管理员和/或代理提供分析方法。分析方法可以为各种度量提供各种测量,这些度量提供关于在消息传送系统上的多代理实体的性能的信息。分析方法可以非限制性地包括响应时间测量和满意度测量。分析方法可以包括广播消息的阅读和响应率。分析方法通常可以为多代理实体和/或为各种管理员和/或代理的性能而被提供。
可以给管理员提供显示管理员相关信息的仪表板。管理员相关信息可以包括警报。例如,如果用户消息在大于规定的一段时间内消逝而没有响应。用于生成警报的时间段可以根据消息如何被标记而改变,例如,用高优先级标签标记的高优先级消息以比低优先级消息更少的没有响应的时间引起警报。在一些实施例中,可以给管理员提供具有尚未被做出响应的消息的高优先级消息线程的列表。
支付处理
多代理消息传送系统100可以代表消费者和企业来支持支付处理,其中多代理消息传送系统100在支付过程中充当媒介。
解除授权
管理员和代理也可以被解除访问多代理实体的消息线程和其他信息的授权。管理员可以通过向代理管理部件470发送解除授权命令来对代理解除授权。在多个管理员账户用于多代理实体的场合,主管理员账户可以控制其他管理员账户的授权和解除授权。主管理员的解除授权可以基于与多代理实体的通信由消息传送系统的管理员手动地执行。
安全信息共享
在可选的实施例中,可以通过在设备之间共享安全信息来提供对端到端加密消息线程的访问。可以执行在用户客户端设备605和管理员客户端设备405之间的消息线程的初始创建,其中管理员接收所有传入用户通信的初始消息线程创建。用户客户端设备605和管理员客户端设备405可以创建端到端加密消息传送关系,每个客户端设备405、605存储消息传送关系的安全信息。安全信息可以包括一个或更多个加密密钥,传入消息610基于一个或更多个加密密钥中的加密密钥被加密。
该安全信息可以从管理员客户端设备405发送到代理客户端设备505以授权代理客户端设备505对由用户客户端设备605发送到与多代理实体的消息线程的消息解密,并授权代理客户端设备505对从代理客户端设备505发送到用户客户端设备605的消息加密。消息处理部件470基于消息线程转发命令来将线程转发有效载荷从管理员账户转发到代理账户。线程转发有效载荷包括安全信息,例如加密密钥,授权代理客户端设备505访问消息线程。
在管理员客户端设备405上的消息传送部件440从在管理员客户端设备405上的安全信息库收集安全信息,例如加密密钥。管理员客户端设备405然后向代理客户端设备505发送安全信息。由管理员客户端设备405将安全信息发送到代理客户端设备505可以响应于消息线程由管理员分配到代理来被执行。代理客户端设备505接收安全信息并将它存储在其自己的安全信息库中。代理客户端设备然后被授权使用由管理员客户端设备405提供的安全信息来对与用户客户端设备605的通信加密和解密。可以使用在客户端设备405、505之间的端到端加密通信来执行安全信息从管理员客户端设备405到代理客户端设备505的发送。
在安全信息被交换和代理客户端设备505在代理映射库415中被注册为关于用户客户端设备605的消息线程的替换接收方的情况下,代理客户端设备505因此被准备好从消息处理部件480接收消息包650和使用安全信息来对存储在其中的消息610解密。类似地,代理客户端设备505被准备好使用安全信息和消息传送服务器410的消息转发功能来将与消息线程相关联的消息发送到用户客户端设备605。
在多代理实体的代理被自动授权访问多代理实体的消息线程(所有线程或后续线程)的实施例中,消息线程的安全信息可以响应于消息线程被创建而被自动提供到代理客户端设备505。当在用户和多代理实体之间创建消息线程时,在用户客户端设备和多代理实体的客户端设备上建立安全信息,例如加密密钥。为多代理实体注册的主管理员客户端设备被选择来接收创建端到端加密消息线程的请求。管理员客户端设备405和用户客户端设备605建立端到端加密关系,其中每个客户端设备405、605具有加密密钥以用于对在客户端设备405、605之间发送的消息加密和解密。为了授权代理客户端设备访问消息线程,在主管理员客户端设备405上的安全信息被转发到在代理映射库415中注册的代理的所有代理客户端设备。一旦安全信息被建立,管理员客户端设备405就将其发送到代理客户端设备作为包括消息线程的安全信息的线程访问有效载荷。线程访问有效载荷被分配到每个代理客户端设备,从而授权在每个代理客户端设备上的消息传送客户端对在消息线程中的消息解密并读取消息线程中的消息。线程访问有效载荷是根据在管理员客户端设备405和代理客户端设备之间的端到端加密技术来被加密的。
群组消息线程加密
图7示出了端到端加密通信系统700的框图。端到端加密通信系统700可以包括多代理消息传送系统100。端到端加密通信系统700可以支持端到端加密群组消息,例如可以用于授权多个代理使用用户客户端设备来访问消息线程。
多个客户端设备720可以作为端到端加密通信系统700的一部分来操作,经由消息传送系统750在彼此之间传输消息。客户端设备720可以包括一个或更多个移动设备、个人计算机设备、便携式计算机设备、台式计算机设备、平板设备、智能手机设备、和/或任何其他形式的计算机设备。每个客户端设备720可以与消息传送系统750的特定用户相关联,例如可以非限制性地包括消费者、代理、和管理员。
第一客户端设备720-1可以经由消息传送系统750传输一对一消息760。一对一消息760可以包括从单个发送方客户端设备发送到单个接收方客户端设备的消息。因为只有单个接收方被指定,所以消息传送系统750可以不执行一对一消息760到多个接收方的扇出(fan-out)或复制,但替代地在接收方客户端设备720-4是可用的时将一对一消息760转发到其接收方客户端设备720-4。
一对一消息760可以被加密,以用于在发送方客户端设备720-1和接收方客户端设备720-4之间传输。可以使用公共/私人密钥关系根据非对称加密密钥来对一对一消息760加密。消息传送系统750可以操作来存储接收方客户端设备的一个或更多个公共密钥并用发送接收方客户端设备的消息将接收方客户端设备的一个或更多个公共密钥分配到一个或更多个客户端设备。接收方客户端设备720-4可以和消息传送系统750一起存储公共密钥。消息传送系统750可以向发送方客户端设备720-1提供公共密钥以用于对一对一消息760和针对接收方客户端设备720-4的其他消息加密。接收方客户端设备720-4可以将私人密钥配合分配的公共密钥作为机密保存在接收方客户端设备720-4上。一对一消息760可以使用公共密钥被加密,并由此经由消息传送系统750传输到接收方设备720-4,而消息传送系统750不能够对一对一消息760解密。
多个发送方驱动的群组消息770可以对应于对使用消息传送系统750来发送群组消息(被呈递到多于一个接收方的消息)的一种解决方案。发送方客户端设备720-2可以通过针对每个接收方客户端设备720-4、720-5、和720-6向消息传送系统750单独地提交每个发送方驱动的群组消息770来向每个接收方客户端设备720-4、720-5、和720-6传输发送方驱动的群组消息。要理解的是,可以指定多于三个接收方客户端设备。发送方驱动的群组消息770中的每一个可以使用对多个接收方客户端设备中的每一个特定的加密密钥来被加密,一个加密密钥针对来自对应于多个接收方客户端设备的多个加密密钥中的每一个。这可以防止消息传送系统750读取任何发送方驱动的群组消息770的内容。因为发送方驱动的群组消息770中的每一个被单独地呈递并用于输送到特定的接收方客户端设备,所以接收方客户端设备720-4、720-5、和720-6中的每一个的公共密钥可以由消息传送系统750从接收方客户端设备720-4、720-5、和720-6转发到发送方客户端设备720-2,接收方客户端设备720-4、720-5、和720-6中的每一个凭借将对应于其共享的公共密钥的私人密钥保持为机密来保持能够对传输到它的特定的发送方驱动的群组消息解密的唯一设备。
然而,作为结果,由客户端设备720-2发送单独的发送方驱动的群组消息770可以使用通过发送方客户端设备720-2的数据连接传输的一定数量的数据,其向上按比例增加为接收方客户端设备的数量的倍数。这可能涉及发送方客户端设备720-2的上传带宽和消息传送系统750的下载带宽的显著浪费,超过了由发送方客户端设备720-2传输到消息传送系统750的群组消息的仅一个副本所使用的带宽。
重传驱动的群组消息780可以对应于对使用消息传送系统750发送群组消息的另一种解决方案。发送方客户端设备720-3可以通过重传驱动的群组消息780到消息传送系统750的单次提交来向接收方客户端设备720-4、720-5、和720-6中的每一个传输重传驱动的群组消息780,消息传送系统750负责向接收方客户端设备720-4、720-5、和720-6中的每一个分配重传驱动的群组消息780的副本。因为单个重传驱动的群组消息780被提交到消息传送系统750,所以应用于重传驱动的群组消息780的任何加密对于每个接收方都将是相同的。因此,接收方客户端设备720-4、720-5、和720-6中的每一个应该被配置有所有接收方客户端设备720-4、720-5、和720-6已知的共享的加密密钥。
然而,与一对一消息760或发送方驱动的群组消息770不同,由发送方客户端设备720-3对私人非对称密钥的使用提出了接收方客户端设备720-4、720-5、和720-6中的每个都需要具有相对应的私人密钥的问题。无论对称或非对称加密是否被使用,如果相同的重传驱动的群组消息780将被所有接收方客户端设备720-4、720-5、和720-6解密,则它们中的每一个都必须具有相同的加密密钥。然而,必须阻止消息传送系统750访问由接收方客户端设备720-4、720-5、和720-6共享的加密密钥。因此,当在接收方客户端设备720-4、720-5、和720-6之间被共享时,用于对重传驱动的群组消息780解密的在接收方客户端设备720-4、720-5、和720-6之间共享的加密密钥本身必须被加密。
发送方客户端设备720-3因此可以使用一对一加密来向接收方客户端设备720-4、720-5、和720-6传输共享的加密密钥。共享的加密密钥可以在作为多个发送方驱动的群组消息发送的消息中被编码,类似于如参考客户端设备720-2讨论的发送方驱动的群组消息770。共享的加密密钥由此可以从发送方客户端设备720-3传输到接收方客户端设备720-4、720-5、和720-6,而消息传送系统750不能访问共享的加密密钥。从发送方客户端设备720-3或者从能够访问共享的加密密钥的任何客户端设备发送的消息,例如重传驱动的群组消息780,此后可以使用共享的加密密钥来被加密,发送方客户端设备720-3和接收方客户端设备720-4、720-5、和720-6中的任何一者能够对消息解密,但消息传送系统750依然不能够对消息解密。对称加密密钥可以用作共享的加密密钥,因为非对称私人/公共密钥对的好处可能不是相关的,其中共享的密钥仅分布在被授权对使用它加密的任何消息解密的设备当中,而非对称加密可以使用比对称加密更多的计算资源来加密和解密。
图8示出了实例化群组广播的发送方设备820的实施例。发送方设备820可以包括消息传送应用830。消息传送应用830可以包括消息传送部件840、安全部件850、和消息传送储存器860。发送方设备820可以包括用于与多代理实体的交互作用的用户客户端设备605。
消息传送部件840可以操作来在发送方设备处接收广播群组定义870,广播群组定义870定义包括多个接收方设备825的广播群组。在一些情况下,可以从在发送方设备820上的用户消息传送接口接收广播群组定义870。消息传送应用830可以向发送方设备820的用户呈现用户消息传送接口。用户消息传送接口可以授权发送方设备820的用户指定消息的一个或更多个接收方,并发起个体或群组消息传送交互作用或对个体或群组消息传送交互作用做出响应。发送方设备820的用户可以通过选择对应于接收方设备825的多个联系人或其他接收方标识符来指定广播群组。
广播群组定义870可以是多代理实体的默认代理的列表。多代理实体的代理客户端设备对应于接收方设备825。在发送方设备820的用户请求与多代理实体通信的情况下,发送方设备820可以被提供多代理实体的默认代理的默认代理客户端设备的列表。然后,多代理实体的默认代理客户端设备的列表被用作广播群组定义870以发起与多代理实体的默认代理的加密群组消息传送。每个默认代理客户端设备类似地被提供有包括其他默认代理客户端设备和用户客户端设备的广播群组定义。
广播群组定义870可以附加地或可选地包括非默认代理的非默认代理客户端设备。在群组消息线程在用户和多代理实体之间的消息传送的发起时被创建的情况下,广播群组定义870可以仅包括默认代理。然而,在消息传送发起是对单个默认代理的情况下,则一对一消息线程可以最初被创建,群组消息线程响应于非默认代理被分配到消息线程而被创建。一旦非默认代理被分配,群组消息线程创建就被发起,且因此包括单个默认代理和一个或更多个分配的非默认代理。
在可选的情况下,广播群组可以由另一个客户端设备(例如接收方设备825之一)的用户定义。发送方设备820可以从另一个客户端设备(例如接收方设备825之一)接收到群组消息。发送方设备820可以向发送方设备820的用户呈现群组消息,并且从用户接收对群组消息的响应,用于传输到群组。因此,在一些情况下,广播群组定义870可以由用户响应它们被包括于的群组消息来指定,或否则可以由另一客户端设备的用户最初确定。
在一个实施例中,广播群组可以由消息传送系统750定义为包括用户客户端设备605和被授权访问与用户客户端设备605的消息线程的一个或更多个代理客户端设备。在一些情况下,这可以包括多代理实体的每个代理客户端设备。消息传送系统750可以向发送方设备820提供代理客户端设备的列表,发送方设备820然后基于代理客户端设备的列表来实例化广播群组定义870。可以更新在广播群组中的成员资格,发送方设备820在被请求这么做时向所添加的代理客户端设备提供加密密钥。例如,当响应于非默认代理被分配或以其他方式被授权访问关于用户的消息线程而添加非默认代理客户端设备时,可以添加接收方设备。
安全部件850可以操作来在发送方设备820处生成发送方广播加密密钥875。发送方广播加密密钥875可以在端到端加密系统700的预定参数内随机地被生成。例如,在32字节密钥被使用的情况下,随机的32字节数字被生成。在一些实施例中,随机地被生成的密钥可以在被用作发送方广播加密密钥875之前根据已知技术而受到标准或测试。发送方广播加密密钥875可以包括对称加密密钥。发送方广播加密密钥875可以对应于参考图7讨论的共享的加密密钥。安全部件850可以将发送方广播加密密钥875存储在与广播群组相关联的消息传送储存器860中以用于检索,用于与广播群组的未来通信。
消息传送部件840可以操作来生成广播发起包。广播发起包可以包含发送方广播加密密钥875。在一些实施例中,广播发起包可以包含群组广播消息。消息传送部件840可以经由用户消息传送接口接收群组广播消息。群组广播消息可以包括文本段或媒体项目中的至少一者。群组广播消息可以被呈递到对应于广播群组定义870的广播群组。消息传送部件840可以响应于经由用户消息传送接口接收到群组广播消息而生成广播发起包,该广播发起包执行群组广播消息的输送和发送方广播加密密钥875的输送,以用于在未来群组消息的加密中使用。
消息传送部件840可操作来向多个接收方设备825传输广播发起包,其中多个接收方设备825中的每一个被传输根据接收方设备特定的加密密钥而加密的广播发起包。每个接收方设备825可以与不同的接收方设备特定的加密密钥相关联,每个接收方设备特定的加密密钥被使用(对于每个接收方设备使用一个加密密钥)来对广播发起包的副本加密,以用于作为广播发起包880输送到每个接收方设备825。多个接收方设备825中的每一个的接收方设备特定的加密密钥可以包括非对称加密密钥。广播发起包可以经由消息传送系统750传输到接收方设备825。可选地,多个接收方设备825中的每一个的接收方设备特定的加密密钥可以包括接收方设备特定的对称加密密钥,其中接收方设备特定的对称加密密钥是使用接收方设备特定的非对称加密密钥来建立的。
消息传送部件840可操作来将广播包890传输到消息传送系统750,广播包890被呈递到广播群组,广播包890根据发送方广播加密密钥875被加密。与由发送方设备820传输的广播发起包的多个副本(对于每个接收方设备825有一个副本)相比,只有单个广播包890可以被传输,消息传送系统750复制广播包890以用于传输到接收方设备825。
发送方广播加密密钥875可用于在广播群组成员之间的未来群组广播,广播群组成员包括发送方设备820和接收方设备825。在一些实施例中,一旦特定用户和客户端设备发起与特定消息传送群组的群组消息传送对话,则广播群组的所有成员可以使用共享的广播加密密钥875。在其他实施例中,广播群组的每个成员可以使用其自己的广播加密密钥,其使用本文描述的技术将广播加密密钥分配到广播群组的其他成员。
在一些实施例中,安全部件850可以根据加密密钥级数函数来推进发送方广播加密密钥875。加密密钥级数函数可以包括在广播包的每次传输之后的加密密钥级数散列的级数应用。散列函数可以定义单向数学变换,其中函数的输入不能从散列函数的输出导出,或者至少不能在没有不切实际的计算能力和时间的情况下导出。散列函数可以应用于一个广播包的当前发送方广播加密密钥875以确定下一个广播包的发送方广播加密密钥875。因而,如果发送方广播加密密钥875的迭代在特定时间点被揭露,则只有在该时间点之后发送的广播包可以被解密,先前的广播包使用不能从所揭露的密钥导出的发送方广播加密密钥的迭代。因此,在群组消息线程的发起之后添加到群组消息线程的代理客户端设备可以由完全在群组消息线程中的代理客户端设备提供消息线程的历史。
消息传送系统750可以保持消息传送广播群组的注册表。消息传送部件840因此可以在广播包890的传输之前向消息传送系统750注册广播群组,以便能够利用消息传送系统750将广播包790呈递到接收方设备825。消息传送部件840可以向消息传送系统750传输广播群组注册请求,并且作为响应从消息传送系统750接收群组标识符,该群组标识符用消息传送系统750识别广播群组。接收方设备825和/或接收方设备825的用户中的每一者可以与标识符相关联,广播群组注册请求列出接收方设备825的标识符以识别用于包括在群组中的接收方设备825。该群组标识符可供在广播群组中的任何设备(包括发送方设备820和所有接收方设备825)使用,以将消息呈递到广播群组的其他成员。消息传送部件840可以使用接收到的群组标识符来将广播包890呈递到广播群组。消息传送部件840可以在广播发起包中包括群组标识符以配置接收方设备825用于与广播群组通信。在广播群组最初由广播群组中的另一个设备创建的情况下,群组标识符可以替代地在由广播群组中的另一个客户端设备(例如接收方设备825之一)发送的广播发起包中由发送方设备820接收到。
消息传送部件840可以操作来从用户消息传送接口接收群组成员添加请求。可选地,消息传送部件840可以从消息传送系统750接收群组成员添加通知。群组成员添加请求或群组成员添加通知可以对应于待添加到广播群组的附加接收方设备。如从用户消息传送接口接收到的,群组成员添加请求可以包括来自发送方设备820的用户的将另一用户的设备包括在广播群组中的请求。如从消息传送系统750接收到的,群组成员添加通知可以包括来自在广播群组中的另一设备的用户的请求以将另一用户的设备包括在广播群组中。
消息传送部件840可操作来生成附加成员广播发起包,其可类似于广播发起包。附加成员广播发起包可以包含发送方广播加密密钥875。在加密密钥级数被使用的情况下,可以通过在加密密钥级数中包括到达该点的发送方广播加密密钥875的迭代来包括发送方广播加密密钥875。因此,广播群组的附加成员可以能够读取被包括在附加成员广播发起包中的任何消息以及发送到广播群组的任何未来消息,但不能追溯地对发送到广播群组的并且用发送方广播加密密钥875的先前迭代加密的先前消息解密。
消息传送部件840可操作来将附加成员广播发起包传输到附加接收方设备,其中附加成员广播发起包被根据附加成员接收方设备特定的加密密钥加密,以用于传输到接收方设备。类似于用于接收方设备825的接收方设备特定的加密密钥,附加成员接收方设备特定的加密密钥可以专门地与附加接收方设备相关联。附加成员接收方设备特定的加密密钥可以由发送方设备820从消息传送系统750接收。附加成员接收方设备特定的加密密钥可以包括非对称加密密钥或对称加密密钥。
消息传送部件840可以经由用户消息传送接口接收附加群组广播消息。发送方设备820可以防止向附加接收方设备提供发送方广播加密密钥875,直到发送方设备820的用户实际上向广播群组发送消息为止。因此,附加群组广播消息可以包括被呈递到包括附加接收方设备的广播群组的文本段或媒体项中的至少一个,附加成员广播发起包包含附加群组广播消息,附加成员广播发起包响应于经由用户消息传送接口接收到附加群组广播消息而被生成。
消息传送部件840可以使用附加成员广播发起包来传输该附加群组广播消息(自从附加接收方设备的添加以来由发送方设备820广播到广播群组的第一消息),附加成员广播发起包配置附加接收方设备以对来自发送方设备820的该广播群组的广播消息解密。消息传送部件840由此可以使用与输送附加群组广播消息相同的包来配置附加接收方设备以从发送方设备820接收未来的广播包。广播群组的其他成员可以经由广播包接收附加群组广播消息,因为他们已经被配置为使用发送方广播加密密钥875来对这样的消息解密。要理解的是,在多个附加成员被添加到广播群组的情况下,多个附加成员广播发起包可以被发送到与多个附加成员相关联的多个附加接收方设备,多个附加成员广播发起包中的每一个根据对多个附加接收方设备中的每一个特定的加密密钥进行加密。
成员可以从广播群组被去除以及被添加。消息传送部件840可以从用户消息传送接口接收群组成员去除请求。可选地,消息传送部件840可以从消息传送系统750接收群组成员去除通知,且该去除通知源自在广播群组中的另一客户端设备的用户的群组成员去除广播群组的一个或更多个成员。群组成员去除请求可以非限制性地由管理员客户端设备405执行,管理员客户端设备405解除代理客户端设备访问消息线程的授权。这可以例如在代理从多代理实体中被去除的情况下被执行。然而,其也可以在代理由用户被简单地从消息线程取消分配的情况下被执行。
不幸的是,如果被去除的客户端设备能够访问由发送方设备820发送到广播群组的、使用发送方广播加密密钥875加密的广播包,那么其将能够对该广播包解密。甚至在加密级数被使用的情况下,被去除的客户端设备也可以继续推进加密密钥并对广播包解密。因此,发送方设备820可以通过使用不同于发送方广播加密密钥875的替代发送方广播加密密钥和发送方广播加密密钥875的任何级数来重置它的群组通信,以便防止被去除的客户端设备对任何未来的广播包解密。因此,安全部件850可以响应于接收到的群组成员去除请求或接收到的群组成员去除通知而用替代发送方广播加密密钥来替换发送方广播加密密钥875。
广播发起包可以包括加密的内容部分和未加密的信封部分。未加密的信封部分可以包含识别广播发起包的接收方的寻址信息。接收方设备的寻址信息可以包括与接收方设备和/或接收方设备的用户相关联的用户标识符。未加密的信封部分可以包含对消息传送系统750识别发送方设备820和/或发送方设备820的用户的信息。未加密的信封部分可以包含授权发送方设备820使用消息传送系统750的信息。在一些实施例中,授权发送方设备820使用消息传送系统750的信息可以根据认证发送方设备820的凭证进行加密,例如通过使用私人密钥对广播发起包的至少一些部分加密,对应于该私人密钥的公共密钥由消息传送系统750存储用于识别发送方设备820。加密的内容部分可以包括发送方广播加密密钥875和群组广播消息(如果有的话)。加密的内容部分可以根据每个接收方设备的接收方设备特定的加密密钥来被加密。
广播包890可以包括加密的内容部分和未加密的信封部分。未加密的信封部分可以包含识别接收广播包890的广播群组的寻址信息。接收方设备的寻址信息可以包括与广播群组相关联的群组标识符。未加密的信封部分可以包含对消息传送系统750识别发送方设备820和/或发送方设备820的用户的信息。未加密的信封部分可以包含授权发送方设备820使用消息传送系统750的信息。在一些实施例中,授权发送方设备820使用消息传送系统750的信息可以根据认证发送方设备820的凭证来被加密,例如通过使用私人密钥对广播发起包的至少一些部分加密,对应于该私人密钥的公共密钥由消息传送系统750存储用于识别发送方设备820。加密的内容部分可以包括待发送到广播群组的广播消息。
要理解的是,广播发起包或广播包890的未加密部分可以在传输期间由消息传送系统750修改。可以在广播发起包和广播包890的存储和传输中添加、去除、或修改信息,以便促进端到端加密通信的活动。
图9示出了协助群组广播的消息传送系统750的实施例。如参考图2所述的,消息传送系统750可以包括密钥服务器243、聊天服务器215、和群组服务器244。
接收方设备825-1可以向消息传送系统750的密钥服务器243提交接收方公共密钥上传910。接收方公共密钥上传910可以在消息传送应用830的初始配置期间被执行以用公共密钥配置消息传送系统750用于分配到其他客户端。接收方公共密钥上传910可以偶尔被执行以刷新消息传送系统750可用的公共密钥池,用于分配到期待联系接收方设备825-1的客户端设备。接收方公共密钥上传910可以包括多个公共密钥,接收方设备825-1具有对应于该多个公共密钥的私人密钥,其在接收方设备825-1上的库中将该私人密钥保持为机密。这通常可以由所有客户端设备使用消息传送系统750来执行以授权消息传送系统750帮助其他客户端设备参与安全通信。密钥服务器243可以将在接收方公共密钥上传910中接收的多个公共密钥存储在密钥储存器中。接收方设备825-1可以将在接收方公共密钥上传910中的多个公共密钥中的每一个与公共密钥标识符相关联,用于在识别公共密钥中的哪一个由发送方设备使用以对发送到接收方设备825-1的消息加密时使用。
发送方设备820可以向密钥服务器243传输公共密钥请求910。公共密钥请求910可以识别接收方设备825-1,公共密钥针对接收方设备825-1被请求。密钥服务器243可以响应于公共密钥请求910而将特定的接收方公共密钥920从接收方公共密钥上传910返回到发送方设备820。要理解的是,接收方公共密钥上传910到密钥服务器243的提交以及接收方公共密钥920从密钥服务器243的检索可以包括与多个密钥服务器243中的特定的一个或更多个密钥服务器的通信,而不是直接涉及与所有多个密钥服务器243的通信。
发送方设备820可以向聊天服务器215传输包含发送方广播加密密钥875的广播发起包880-1。聊天服务器215可以专门针对一对一消息通信,并且可以不执行群组通信的扇出。可以响应于公共密钥请求910使用从密钥服务器243接收的接收方公共密钥920来对广播发起包880-1加密。如果当广播发起包880-1被接收到时接收方设备825-1是在线的,则消息传送系统750可以立即将广播发起包880-1转发到接收方设备825-1。在一些实施例中,广播发起包880-1仍然可以移动通过消息队列,以依次由聊天服务器215处理。如果当广播发起包880-1由聊天服务器215接收到时接收方设备825-1是离线的,聊天服务器215可以存储广播发起包880-1直到接收方设备825-1是可用的为止,并且一旦它变得可用就将广播发起包880-1传输到接收方设备825-1。由于广播发起包880作为一对一通信而不是使用消息传送系统750被发送以执行所包含的发送方广播加密密钥275的扇出,聊天服务器215可用于广播发起包880的传输。要理解的是,广播发起包880到聊天服务器215的提交以及广播发起包880从聊天服务器215的传输可以包括与多个聊天服务器215中的特定的一个或更多个聊天服务器的通信而不是直接涉及与所有多个聊天服务器215的通信。
群组服务器244可以从发送方设备820接收广播包890。在一些情况下,发送方设备820或另一客户端设备可以在广播包890的传输之前例如通过指定具有接收方设备或用户账户的标识符的接收方设备或用户账户的列表来向群组服务器244注册广播群组。在一些情况下,发送方设备820可以在广播包890中包括接收方设备或用户账户的列表以利用用于传输广播包890的相同网络传输来注册广播群组。群组服务器244可以将群组标识符分配到广播群组,并且授权发送方设备820和接收方设备825使用所分配的群组标识符来将消息呈递到广播群组。
群组服务器244可以确定用于广播包890的接收的接收方设备825,包括接收方设备825-1。群组服务器244可以将广播包890传输到可能由于排队延迟而当前在线的任何接收方设备825,并且可以存储广播包890以用于传输到离线的任何接收方设备825,一旦它们在线就将广播包890传输到所述离线的接收方设备。要理解的是,广播包890到群组服务器244的提交以及广播包890从群组服务器244的传输可以包括与多个群组服务器244中的特定的一个或更多个群组服务器的通信而不是直接涉及与所有多个群组服务器244的通信。
在来自发送方设备820的广播包890被呈递到代理的列表的情况下,群组服务器244可以对照在代理映射库415中的多代理实体的代理的列表来检查代理的列表。可以检查在广播包890中的代理的列表以确认所列出的代理仍然与多代理实体相关联并且仍然被用户分配到消息线程。通过防止将广播包890转发给未关联的或未被分配的代理的代理客户端设备来防止不与多代理实体相关联或未分配到消息线程的任何所列出的代理接收广播包890。这样的代理关联的去除或代理取消分配由管理员客户端设备405请求并被记录在代理映射库415中。当执行这样的去除或取消分配时,可以通知发送方客户端设备820更新其在与多代理实体通信时应该呈递的接收方的列表。
图10示出了接收方设备825-1接收群组广播的实施例。接收方设备825-1可以用作所有多个接收方设备825的配置和操作的代表性示例。
接收方设备825-1可以执行由发送方设备820使用的相同消息传送应用830的实例。在其他实施例中,可以使用替代消息传送应用(例如其中消息传送系统750支持多个消息传送客户端(例如第三方客户端、多平台消息传送客户端))以及用于使用替代消息传送客户端的其他技术。在接收方设备825-1上的消息传送客户端830可以包括消息传送部件840和安全部件850。
消息传送部件840可以操作来在接收方设备825-1处从发送方设备820接收广播发起包880-1。可以根据对接收方设备825-1特定的接收方设备特定的加密密钥来对广播发起包880-1加密。发送方设备820可以与发送方标识符相关联,该发送方标识符在广播发起包880-1中被接收以识别发送方设备820。
消息传送部件840可以操作来从广播发起包880-1提取发送方广播加密密钥875,发送方广播加密密钥875在对消息加密时由发送方设备820使用,用于用消息传送系统750传输到广播群组。消息传送部件840可以从广播发起包880-1提取群组标识符,该群组标识符利用消息传送系统750来识别广播群组。
安全部件850可操作来将发送方广播加密密钥875与发送方标识符和广播群组标识符相关联地存储在消息传送储存器860中。消息传送储存器860可以存储接收方设备825-1的消息传送历史。消息传送储存器860因此可以存储广播群组的群组对话的消息传送历史。安全部件850可以将发送方广播加密密钥875与广播群组的群组对话的消息传送历史相关联地存储在消息传送储存器860中。安全部件850可以为向广播群组传输消息的广播群组的每个成员存储发送方广播加密密钥。安全部件850可以不为尚未传输消息的广播群组的那些成员存储发送方广播加密密钥,因为一旦成员试图广播到广播群组,端到端加密通信系统700就可以仅使用网络带宽来交换发送方广播加密密钥。
消息传送部件840可操作来从重传服务器接收广播包890,该广播包与发送方标识符和群组标识符相关联。在接收方设备825-1上的安全部件850可以基于发送方标识符和群组标识符来从消息传送储存器860检索发送方广播加密密钥875。消息传送部件840可以使用从消息传送储存器860检索的发送方广播加密密钥875来对广播包890解密。
图11A示出了具有针对消息线程的多代理标记的基于转发的逻辑流程1100的实施例。
用户客户端设备605可以执行与多代理实体的消息传送发起1101。消息传送发起1101包括对参与与多代理实体的消息传送的请求。用户客户端设备605例如通过指定多代理实体的消息传送标识符来向消息传送服务器410识别用户希望建立关系的多代理实体。用户客户端设备605可以接收多代理实体的默认代理客户端设备1105的默认客户端设备标识符。用户客户端设备605还可以接收多代理实体的名称作为消息传送发起1101的一部分,该多代理实体的名称用于用默认代理客户端设备1105标记消息线程。多代理实体的名称还可以用于标记在用户客户端设备605处从多代理实体的代理接收的单独消息。
在可选的情形中,消息传送发起1101可以由代理客户端设备(例如默认代理客户端设备1105)执行。可以如所描述的但在一对一加密的建立中与作为默认代理客户端设备1105的请求代理客户端设备执行消息传送发起1101。在一些实施例中,只有管理员客户端设备可以发起与用户的消息传送。
用户客户端设备605然后通过消息传送服务器410执行与默认代理客户端设备1105的加密发起1103。加密发起1103通过加密密钥的交换与默认代理客户端设备1105建立一对一端到端加密通信信道。
用户客户端设备605和默认代理客户端设备1105然后可以在通过在加密发起1103中的加密密钥交换建立的一对一端到端加密通信信道上参与初始消息交换1104。
默认代理客户端设备1105然后可以执行代理重新分配1106。代理重新分配1106指示消息传送服务器410另一个代理客户端设备505应该被包括在消息交换中。代理重新分配1106发起与用户客户端设备1107的群组加密发起1107。
用户客户端设备605、默认代理客户端设备1105、和其他代理客户端设备505响应于代理重新分配1106而执行群组加密发起1107。该群组加密发起1107提供在用户客户端设备605、默认代理客户端设备1105、和其他代理客户端设备505之间的群组消息线程中的消息的转发。
代理客户端设备505被通知代理重新分配1106。这可以包括使用代理客户端设备505向代理发送该代理现在负责服务于用户客户端设备605的用户的消息、通知、或其他通信。
此后,用户和代理可以经由用户客户端设备605和代理客户端设备505参与后续消息交换1108。后续消息交换1108是使用本文描述的端到端加密群组消息线程技术的端到端加密群组消息线程。默认代理客户端设备1105继续接收后续消息交换1108,以便授权默认代理客户端设备1105的用户监测并参与后续消息交换1108(如果他们这么希望)。
在用户客户端设备605上显示的消息线程可以在转换到群组消息线程和包括所分配的代理客户端设备505的后续消息交换1108的整个过程中继续用多代理实体的名称来被标记。
图11B示出了具有针对消息线程的个体代理标记的基于转发的逻辑流程1125的实施例。
具有针对消息线程的个体代理标记的基于转发的逻辑流程1125的许多步骤可以与具有针对消息线程的多代理标记的基于转发的逻辑流程1100的步骤相同。要理解的是,可以使用相同的技术可能被排除了,其中在本文描述了不同的技术。特别地,如提到的,排除了可以如参考图11A所描述的被执行消息传送发起1101、加密发起1103、初始消息交换1104、代理重新分配1106、群组加密发起1107、和后续消息交换1108。
在一个实施例中,在消息传送发起1101中,可以使用默认代理客户端设备1105给用户客户端设备605提供默认代理的名称而不是多代理实体的名称。默认代理的这个名称可以用来标记与多代理实体的消息线程和从默认代理接收的单独消息。然后,可以根据消息线程重新标记1126来重新标记该消息线程以使用针对所分配的代理客户端设备505的所分配的代理的名称。
可选地,在另一个实施例中,多代理实体的名称可以用于标记与多代理实体的消息线程,但是用根据将它们发送到用户客户端设备605的单独代理来标记的单独消息。因此,代替用于消息线程的整体标记的消息线程重新标记1126,消息线程重新标记1126可以提供用于在标记群组消息线程时使用的多代理实体名称和用于在标记从所分配的代理接收的单独消息时使用的所分配的代理的单独名称。
图11C示出了针对消息线程的基于全局视图的逻辑流程1150的实施例。
在一些实施例中,多代理消息传送系统100的消息传送可以使用全局视图,其中多代理实体的每个代理被授权访问每个消息线程。在这些实施例中,直接响应于与多代理实体的消息传送发起1151来执行群组加密发起1152。
消息传送服务器410从用户客户端设备605接收消息传送发起1151。消息传送发起1101包括对参与与多代理实体的消息传送的请求。用户客户端设备605例如通过指定多代理实体的消息传送标识符来向消息传送服务器410标识用户希望建立关系的多代理实体。
在可选的情形中,消息传送发起1151可以由代理客户端设备1155执行。消息传送发起1101可以如所描述的那样被执行,但是进行请求的代理客户端设备1155被包括在群组消息线程中包括的初始代理的列表中,而不管进行请求的代理客户端设备1155是否是默认代理客户端设备。在一些实施例中,只有管理员客户端设备可以发起与用户的消息传送。
用户客户端设备605、第一代理客户端设备1155、其他代理客户端设备505、以及可能的附加代理客户端设备响应于消息传送发起1151来执行群组加密发起1152。可以执行与用户客户端设备605和多代理实体的每个代理客户端设备的群组加密发起1152。可选地,可以执行与用户客户端设备605和多代理实体的每个默认代理客户端设备的群组加密发起1152。该群组加密发起1152提供在用户客户端设备605、代理客户端设备1155、其他代理客户端设备505、和多代理实体的任何其他代理客户端设备之间的群组消息线程中的消息的转发。多代理实体的代理客户端设备然后可以参与与用户客户端设备605的消息交换1153。
与多代理实体的消息线程可以根据参与其的单独代理或者根据作为整体的多代理实体来被标记。类似地,在消息线程中的单独消息可以根据参与其的单独代理或者根据作为整体的多代理实体来被标记。
本文包括了表示用于执行所公开的架构的新颖方面的示例性方法的一组流程图。尽管为了解释的简单的目的在本文例如以流程图或流程框图的形式示出的一个或更多个方法被示出和描述为一系列动作,但应当理解和认识到,这些方法不被动作的顺序限制,因为一些动作可以按照此以与在本文示出和描述的顺序不同的顺序和/或与其他动作同时出现。例如,本领域中的技术人员将理解和认识到,方法可以可选地例如在状态图中被表示为一系列相互关联的状态或事件。此外,对于新颖的实现方式,在方法中示出的所有动作并不都可能是被需要的。
图12示出了逻辑流程1200的一个实施例。逻辑流程1200可以代表由本文描述的一个或更多个实施例执行的一些或所有操作。
在图12所示的实施例中,逻辑流程1200块1202可以从与用户账户相关联的用户客户端设备接收针对多代理实体的传入消息。
逻辑流程1200可以在块1204确定与多代理实体相关联的接收传入消息的代理账户。
逻辑流程1200可以在块1206确定与代理账户相关联的代理客户端设备。
逻辑流程1200可以在块1208将传入消息发送到与代理账户相关联的代理客户端设备。
实施例不限于该示例。
图13示出了集中式系统1300的框图。集中式系统1300可以在单个计算实体中(例如完全在单个集中式服务器设备1320中)实现多代理消息传送系统100的一些或全部结构和/或操作。
集中式服务器设备1320可以包括能够接收、处理、和发送多代理消息传送系统100的信息的任何电子设备。电子设备的示例可以非限制性地包括超移动设备、移动设备、个人数字助理(PDA)、移动计算设备、智能手机、电话、数字电话、蜂窝电话、电子书阅读器、手持设备、单向寻呼机、双向寻呼机、消息传送设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、互联网服务器、工作站、微型计算机、中心计算机、超级计算机、网络器具、web器具、分布式计算系统、多处理器系统、基于处理器的系统、消费电子产品、可编程消费电子产品、游戏设备、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器、或其组合。实施例在这个背景下不被限制。
集中式服务器设备1320可以使用处理部件1330来执行多代理消息传送系统100的处理操作或逻辑。处理部件1330可以包括各种硬件元件、软件元件、或两者的组合。硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子程序、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。根据给定实现方式的需要,确定实施例是否是使用硬件元件和/或软件元件来实现可以根据任何数量的因素(例如所需的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束)而变化。
集中式服务器设备1320可以使用通信部件1340来执行多代理消息传送系统100的通信操作或逻辑。通信部件1340可以实现任何公知的通信技术和协议,例如适合于供分组交换网络(例如,公共网络,例如互联网,专用网络,例如企业内联网等)、电路交换网络(例如,公共交换电话网络)、或分组交换网络和电路交换网络(具有合适的网关和译码器)的组合使用的技术。通信部件1340可以包括各种类型的标准通信元件,例如一个或更多个通信接口、网络接口、网络接口卡(NIC)、无线电装置、无线发射机/接收机(收发机)、有线和/或无线通信介质、物理连接器等。作为示例而不是作为限制,通信介质1312包括有线通信介质和无线通信介质。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(PCB)、背板、开关结构、半导体材料、双绞线、同轴电缆、光纤、传播信号等。无线通信介质的示例可以包括声学、射频(RF)频谱、红外和其他无线介质。
集中式服务器设备1320可以经由通信部件1340使用通信信号1314通过通信介质1312来与其他设备通信。根据给定实现方式的需要,设备可以在集中式服务器设备1320的内部或外部。
集中式服务器设备1320可以执行消息传送服务器1350。消息传送服务器1350可以包括用于消息传送系统110的消息传送服务器。消息传送服务器1350可以为多个客户端设备1310提供消息传送操作,在客户端设备1310之间接收和发送消息。客户端设备1310可以对应于智能手机设备150、平板设备160、个人计算机设备170、和/或任何其他客户端设备中的一个或更多个。集中式服务器设备1320可以包括代理映射库415作为本地数据储存器。
图14示出了分布式系统1400的框图。分布式系统1400可以跨越多个计算实体分配多代理消息传送系统100的结构和/或操作的部分。分布式系统1400的示例可以非限制性地包括客户端-服务器架构、3层架构、N层架构、紧密地耦合或聚集的架构、对等架构、主从架构、共享数据库架构、以及其他类型的分布式系统。实施例在这个背景下不被限制。
分布式系统1400可以包括多个分布式服务器设备1420。一般来说,分布式服务器设备1420可以与如参考图13描述的集中式服务器设备1420相同或相似。例如,分布式服务器设备1420均可以包括分别与如参考图13所述的处理部件1330和通信部件1340相同或相似的处理部件1430和通信部件1440。在另一示例中,分布式服务器设备1420可以经由通信部件1440使用通信信号1414通过通信介质1412来进行通信。
分布式服务器设备1420可以包括或采用操作来根据所描述的实施例来执行各种方法的一个或更多个服务器程序。在一个实施例中,例如分布式服务器设备1420均可以实现多个消息传送服务器1450之一。消息传送服务器1450可以包括用于消息传送系统110的消息传送服务器。消息传送服务器1450可以为多个客户端设备1410提供消息传送操作,在客户端设备1410之间接收和发送消息。客户端设备1410可以对应于智能手机设备150、平板设备160、个人计算机设备180、和/或任何其他客户端设备中的一个或更多个。分布式服务器设备1420可以使用通过介质1412发送的信号1414来与代理映射库415通信。代理映射库415可以被托管为网络可访问的数据储存器。
图15示出了适合于实现如前所述的各种实施例的示例性计算架构1500的实施例。在一个实施例中,计算架构1500可以包括电子设备或者被实现为电子设备的一部分。电子设备的示例可以包括参考图13、图14描述的那些等。实施例在这个背景中不被限制。
如在本申请中使用的,术语“系统”和“部件”意欲指计算机相关实体,或者是硬件、硬件和软件的组合、软件、或者在执行中的软件,其示例由示例性计算架构1500提供。例如,部件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行文件、执行线程、程序、和/或计算机。作为例证,在服务器上运行的应用和该服务器都可以是部件。一个或更多个部件可以驻留在执行的进程和/或线程中,并且部件可以位于一台计算机上和/或分布在两台或多台计算机之间。此外,部件可以通过各种类型的通信介质通信地耦合到彼此以协调操作。协调可以涉及信息的单向或双向交换。例如,部件可以以通过通信介质以传递的信号的形式传递信息。信息可以被实现为分配给各种信号线的信号。在这样的分配中,每个消息是信号。然而,另外的实施例可以可选地使用数据消息。这种数据消息可以跨越各种连接被发送。示例性连接包括并行接口、串行接口、和总线接口。
计算架构1500包括各种常见的计算元件,例如一个或更多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件、电源等。然而,实施例不限于计算架构1500的实现方式。
如在图15中所示的,计算架构1500包括处理单元1504、系统存储器1506、和系统总线1508。处理单元1504可以是各种市场上可买到的处理器中的任何一种,非限制性地包括和处理器;应用、嵌入式和安全处理器;和 和处理器;IBM和Cell处理器; Core(2)和处理器;以及类似的处理器。双微处理器、多核处理器、和其他多处理器架构也可以用作处理单元1504。
系统总线1508向处理单元1504提供系统部件(包括但不限于系统存储器1506)的接口。系统总线1508可以是几种类型的总线结构中的任何一种,总线结构可以使用各种市场上可买到的总线架构中的任何一种进一步互连到存储器总线(在有或没有存储器控制器的情况下)、外围总线、和本地总线。接口适配器可以通过插槽架构连接到系统总线1508。示例插槽架构可以非限制性地包括加速图形端口(AGP)、卡总线、(扩展)工业标准架构(ISA)、微通道架构(MCA)、NuBus、外围部件互连(扩展)(PCI(X))、PCI Express、个人计算机存储卡国际协会(PCMCIA),等等。
计算架构1500可以包括或实现各种制造物品。制造物品可以包括存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可以包括使用任何合适类型的代码(例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码,等等)实现的可执行计算机程序指令。实施例也可以至少部分地被实现为在非暂时性计算机可读介质中或其上包含的指令,其可以由一个或更多个处理器读取和执行以实现本文描述的操作的执行。
系统存储器1506可以包括以一个或更多个较高速度存储器单元的形式的各种类型的计算机可读存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(例如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、设备的阵列(例如独立磁盘冗余阵列(RAID)驱动器)、固态存储器设备(例如,USB存储器、固态驱动器(SSD)))和适合于存储信息的任何其他类型的存储介质。在图15中示出的所示实施例中,系统存储器1506可以包括非易失性存储器1510和/或易失性存储器1512。基本输入/输出系统(BIOS)可以被存储在非易失性存储器1510中。
计算机1502可以包括以一个或更多个较低速度存储器单元的形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)1514、从可移动磁盘1518读取或写到可移动磁盘1518的磁性软盘驱动器(FDD)1516、以及从可移动光盘1522(例如,CD-ROM或DVD)读取或写到可移动光盘1522的光学驱动器1520。HDD 1514、FDD 1516、和光盘驱动器1520可以分别通过HDD接口1524、FDD接口1526和光学驱动器接口1528连接到系统总线1508。用于外部驱动器实现方式的HDD接口1524可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或两种。
驱动器和相关计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块,包括操作系统1530、一个或更多个应用程序1532、其他程序模块1534、和程序数据1536,可以被存储在驱动器和存储器单元1510、1512中。在一个实施例中,一个或更多个应用程序1532、其他程序模块1534、和程序数据1536可以包括例如多代理消息传送系统150的各种应用和/或部件。
用户可以通过一个或更多个有线/无线输入设备(例如键盘1538和指向设备(例如鼠标1540))来将命令和信息输入到计算机1502内。其他输入设备可以包括麦克风、红外(IR)遥控器、射频(RF)遥控器、游戏板、手写笔、读卡器、软件狗、指纹读取器、手套、图形平板电脑、操纵杆、键盘、视网膜读取器、触摸屏(例如电容式、电阻式等)、轨迹球、触控板、传感器、触笔,等等。这些和其他输入设备常常通过耦合到系统总线1508的输入设备接口1542连接到处理单元1504,但可以通过其他接口(例如并行端口、IEEE 1394、串行端口、游戏端口、USB端口、IR接口等)被连接。
监视器1544或其他类型的显示设备也通过接口(例如视频适配器1546)连接到系统总线1508。监视器1544可以在计算机1502的内部或外部。除了监视器1544之外,计算机通常还包括其他外围输出设备,例如扬声器、打印机等。
计算机1502可以使用经由有线和/或无线通信与一个或更多个远程计算机(例如远程计算机1548)的逻辑连接来在联网环境中操作。远程计算机1548可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐器具、对等设备或其他公共网络节点,并且通常包括相对于计算机1502描述的许多或所有元件,但是为了简洁的目的只有存储器/存储设备1550被示出。所描绘的逻辑连接包括与局域网(LAN)1552和/或更大的网络(例如广域网(WAN)1554)的有线/无线连接。这种LAN和WAN联网环境在办公室和公司中是常见的,并且便于企业范围的计算机网络,例如内联网,所有这些网络都可以连接到全球通信网络,例如互联网。
当在LAN联网环境中被使用时,计算机1502通过有线和/或无线通信网络接口或适配器1556连接到LAN 1552。适配器1556可以便于与LAN1552的有线和/或无线通信,其还可以包括布置在其上的无线接入点,用于使用适配器1556的无线功能进行通信。
当在WAN联网环境中被使用时,计算机1502可以包括调制解调器1558,或者连接到在WAN 1554上的通信服务器,或者具有用于通过WAN1554(例如借助于互联网)建立通信的其他装置。调制解调器1558(其可以是内部或外部和/或有线和/或无线设备)通过输入设备接口1542连接到系统总线1508。在联网环境中,相对于计算机1502描绘的程序模块或其部分可以存储在远程存储器/存储设备1550中。要理解的是,所示的网络连接是示例性的,并且在计算机之间建立通信链路的其他手段可以被使用。
计算机1502可操作来与使用标准的IEEE 802系列的有线和无线设备或实体(例如可操作地布置在无线通信(例如,IEEE 802.11空中调制技术)中的无线设备)通信。这至少包括Wi-Fi(或无线保真)、WiMax、和BluetoothTM无线技术等。因此,通信可以是如同传统网络一样的预定义结构,或者仅仅是在至少两个设备之间的自组织通信。Wi-Fi网络使用被称为IEEE 802.11x(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机连接到彼此、到互联网和到有线网络(其使用与IEEE 802.3相关的媒体和功能)。
图16示出了适合于实现如前所述的各种实施例的示例性通信架构1600的框图。通信架构1600包括各种常见的通信元件,例如发射机、接收机、收发机、无线电装置、网络接口、基带处理器、天线、放大器、滤波器、电源等。然而,实施例不限于通信架构1600的实现方式。
如图16所示,通信架构1600包括一个或更多个客户端1602和服务器1604。客户端1602可以实现消息传送客户端。服务器1604可以实现消息传送服务器。客户端1602和服务器1604操作地连接到可用于存储相应的客户端1602和服务器1604本地的信息(例如cookies和/或相关背景信息)的一个或更多个相应的客户端数据储存器1608和服务器数据储存器1610。
客户端1602和服务器1604可以使用通信框架1606在彼此之间传递信息。通信框架1606可以实现任何众所周知的通信技术和协议。通信框架1606可以被实现为分组交换网络(例如,公共网络,例如互联网,专用网络,例如企业内联网等)、电路交换网络(例如,公共交换电话网络)、或者分组交换网络和电路交换网络的组合(具有合适的网关和译码器)。
通信框架1606可以实现被布置成接受、通信、和连接到通信网络的各种网络接口。网络接口可以被视为输入输出接口的一种特殊形式。网络接口可以采用连接协议,非限制性地包括直接连接、以太网(例如,粗、细、双绞线10/100/1000基站T等)、令牌环、无线网络接口、蜂窝网络接口、IEEE 802.11a-x网络接口、IEEE 802.16网络接口、IEEE 802.20网络接口等。此外,多个网络接口可以用于与各种通信网络类型建立关系。例如,可以采用多个网络接口来允许通过广播、多播、和单播网络进行通信。如果处理要求规定了更大的速度和容量,分布式网络控制器架构可以类似地用于合并、负载平衡、或以其他方式增加客户端1602和服务器1604所需的通信带宽。通信网络可以是有线和/或无线网络的任一个和组合,非限制性地包括直接互连、安全的定制连接、专用网络(例如企业内联网)、公共网络(例如互联网)、个人区域网(PAN)、局域网(LAN)、城域网(MAN)、作为互联网上的节点操作任务(OMNI)、广域网(WAN)、无线网络、蜂窝网络、和其他通信网络。
图17示出了用于在多载波OFDM系统(例如多代理消息传送系统100)中使用的设备1700的实施例。设备1700可以实现例如如参考多代理消息传送系统100和/或逻辑电路1735描述的软件部件1760。逻辑电路1735可以包括物理电路以执行针对多代理消息传送系统100描述的操作。如图17所示,设备1700可以包括无线电接口1710、基带电路1720、和计算平台1730,但是实施例不限于这种配置。
设备1700可以在单个计算实体中(例如完全在单个设备中)实现多代理消息传送系统100和/或逻辑电路1735的一些或全部结构和/或操作。可选地,设备1700可以使用分布式系统架构(例如客户端-服务器架构、3层架构、N层架构、紧密耦合或聚集的架构、对等架构、主从架构、共享数据库架构、和其他类型的分布式系统)跨越多个计算实体来分布多代理消息传送系统100和/或逻辑电路1735的结构和/或操作的部分。实施例在这个背景下不被限制。
在一个实施例中,无线电接口1710可以包括适合于传输和/或接收单载波或多载波调制信号(例如,包括互补码键控(CCK)和/或正交频分复用(OFDM)符号)的部件或部件的组合,但是实施例不限于任何特定的空中接口或调制方案。无线电接口1710可以包括例如接收机1712、发射机1716、和/或频率合成器1714。无线电接口1710可以包括偏置控制器、晶体振荡器和/或一个或更多个天线1718。在另一个实施例中,无线电接口1710可以根据需要使用外部电压控制振荡器(VCO)、表面声波滤波器、中频(IF)滤波器和/或RF滤波器。由于潜在RF接口设计的多样性,其扩展描述被省略。
基带电路1720可以与无线电接口1710通信以处理接收和/或发射信号,并且可以包括例如用于向下转换所接收的信号的模数转换器1722、用于向上转换信号用于传输的数模转换器1724。此外,基带电路1720可以包括基带或物理层(PHY)处理电路1756,以用于相应的接收/发射信号的PHY链路层处理。基带电路1720可以包括例如用于媒体访问控制(MAC)/数据链路层处理的处理电路1728。基带电路1720可以包括用于例如通过一个或更多个接口1734与处理电路1728和/或计算平台1730通信的存储器控制器1732。
在一些实施例中,PHY处理电路1726可以与附加电路(例如缓冲存储器)结合来包括帧结构和/或检测模块以构造和/或解构通信帧,例如无线电帧。可选地或附加地,MAC处理电路1728可以共享对这些功能中的某些功能的处理,或者独立于PHY处理电路1726而执行这些过程。在一些实施例中,MAC和PHY处理可以集成到单个电路中。
计算平台1730可以为设备1700提供计算功能。如所示,计算平台1730可以包括处理部件1740。除基带电路1720之外或者作为基带电路1720的替代物,设备1700可以使用处理部件1740来执行多代理消息传送系统100和逻辑电路1735的处理操作或逻辑。处理部件1740(和/或PHY 1726和/或MAC 1728)可以包括各种硬件元件、软件元件、或两者的组合。硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子程序、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。根据给定实现方式的需要,确定实施例是否使用硬件元件和/或软件元件来实现可以根据任何数量的因素(例如需要的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束)而变化。
计算平台1730还可以包括其他平台部件1750。其他平台部件1750包括公共计算元件,例如一个或更多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件(例如数字显示器)、电源等。存储器单元的示例可以非限制性地包括以一个或更多个较高速度存储器单元的形式的各种类型的计算机可读和机器可读存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(例如铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、设备的阵列(例如独立磁盘冗余阵列(RAID)驱动器)、固态存储器设备(例如,USB存储器、固态驱动器(SSD))和适合于存储信息的任何其他类型的存储介质。
设备1700可以是例如超移动设备、移动设备、固定设备、机器对机器(M2M)设备、个人数字助理(PDA)、移动计算设备、智能手机、电话、数字电话、蜂窝电话、用户设备、电子书阅读器、手持设备、单向寻呼机、双向寻呼机、消息传送设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、互联网服务器、工作站、微型计算机、中心计算机、超级计算机、网络器具、web器具、分布式计算系统、多处理器系统、基于处理器的系统、消费电子产品、可编程消费电子产品、游戏设备、电视机、数字电视机、机顶盒、无线接入点、基站、节点B、演进节点B(eNB)、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器、或其组合。因此,在设备1700的各种实施例中,适当地根据需要,可能包括或省略了本文描述的设备1700的功能和/或特定配置。在一些实施例中,设备1700可以被配置为与本文引用的3GPP LTE规范和/或用于WMAN的IEEE 1702.16标准和/或其他宽带无线网络中的一个或更多个相关联的协议和频率兼容,但是实施例不被限制在这个方面中。
设备1700的实施例可以使用单输入单输出(SISO)架构来实现。然而,某些实现方式可以包括使用用于波束成形或空分多址接入(SDMA)的自适应天线技术和/或使用MIMO通信技术来传输和/或接收的多个天线(例如,天线1718)。
可以使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合来实现设备1700的部件和特征。此外,在适当的场合,可以使用微控制器、可编程逻辑阵列和/或微处理器或前述项的任何组合来实现设备1700的特征。注意,硬件、固件和/或软件元件在本文可以被共同或单独地称为“逻辑”或“电路”
应当认识到,在图17的框图中所示的示例性设备1700可以代表许多潜在实现的一个在功能上描述性的示例。因此,在附图中描绘的块功能的划分、省略或包括并不暗示用于实现这些功能的硬件部件、电路、软件和/或元件在实施例中必须被划分、省略或包括。
一种计算机实现的方法可以包括从与用户账户相关联的用户客户端设备接收多代理实体的传入消息;确定与多代理实体相关联的、接收传入消息的代理账户;确定与代理账户相关联的代理客户端设备;以及将传入消息发送到与代理账户相关联的代理客户端设备。
一种计算机实现的方法可以包括接收多代理实体的管理员账户的管理员账户注册;将管理员账户注册为与多代理实体相关联;接收多代理实体的代理账户的代理账户注册;从与用户账户相关联的用户客户端设备接收多代理实体的传入消息;以及基于由管理员账户对代理账户的消息共享授权来将传入消息发送到与代理账户相关联的代理客户端设备。
一种计算机实现的方法还可以包括从管理员账户接收在用户账户和管理员账户之间的消息线程的消息线程转发,该消息线程转发指定代理账户;在消息传送服务器设备上向代理账户注册消息线程;在消息传送服务器设备处从用户客户端设备接收多代理实体的传入消息;以及基于向代理账户注册消息线程来将传入消息发送到代理客户端设备。
一种计算机实现的方法还可以包括与消息线程相关联的传入消息。
一种计算机实现的方法还可以包括将线程转发有效载荷从管理员账户转发到代理账户,该线程转发有效载荷包括授权代理客户端设备访问消息线程的安全信息。
一种计算机实现的方法还可以包括安全信息,所述安全信息包括一个或更多个加密密钥,该消息基于一个或更多个加密密钥中的加密密钥进行加密。
一种计算机实现的方法还可以包括响应于消息线程转发而在用户客户端设备上重新标记消息线程的消息线程接口以指示代理账户代替管理员账户。
一种计算机实现的方法还可以包括在用户客户端设备上标记消息线程接口以指示多代理实体。
一种计算机实现的方法还可以包括消息共享授权,所述消息共享授权包括多代理实体的代理账户的代理账户注册。
一种计算机实现的方法还可以包括,响应于代理账户注册,为多代理实体的后续消息线程的消息共享授权注册该代理账户。
一种计算机实现的方法还可以包括为多代理实体的多个代理账户确定多个最后被看到的时间;从多个最后被看到的时间选择最近的最后被看到的时间;以及向在用户客户端设备上的消息线程的消息线程接口提供最近的最后被看到的时间以指示多代理实体的最后被看到的时间。
一种装置可以包括代理管理部件和操作的消息处理部件。该装置可以操作来实现本文描述的任何计算机实现的方法。
至少一个计算机可读存储介质可以包括指令,指令在被执行时使系统执行本文描述的任何计算机实现的方法。
一些实施例可能是使用措辞“一个实施例”或“实施例”连同它们的派生词来描述的。这些术语意味着结合该实施例描述的特定特征、结构、或特性被包括在至少一个实施例中。短语“在一个实施例中”在说明书中的不同地方上的出现并不一定都指同一实施例。此外,一些实施例可能是使用措辞“耦合”和“连接”连同它们的派生词来描述的。这些术语不一定意欲作为彼此的同义词。例如,一些实施例可能是使用术语“连接”和/或“耦合”来描述的,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”也可以意味着两个或更多个元件不与彼此直接接触,但仍然还彼此协作或相互作用。
一般参考本文使用的符号和术语,可以从在计算机或计算机的网络上执行的程序过程方面呈现本文的详细描述。这些过程描述和表示由本领域中的技术人员使用来将他们的工作的实质最有效地传达给本领域中的其他技术人员。
过程在这里且通常被设想为导致期望结果的前后一致的操作序列。这些操作是需要物理量的物理操纵的那些操作。通常,但不是必须的,这些量采取能够被存储、传输、组合、比较、和以另外方式操纵的电、磁或光信号的形式。主要由于习惯用法的原因,将这些信号称为比特、值、元素、符号、字符、项、数字等有时证明是方便的。然而,应该注意到,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。
此外,所执行的操纵常常在术语例如相加或比较方面被提到,这些术语通常与操作人员所执行的脑力操作相关联。在本文描述的形成一个或更多个实施例的一部分的任何操作中,没有操作人员的这种能力是必需的或在大多数情况下是合乎需要的。更确切地,操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。
各种实施例还涉及用于执行这些操作的装置或系统。该装置可以被特别构造成用于所需的目的,和/或它可以包括如由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。本文提出的过程并不固有地与特定的计算机或其他装置相关。各种通用机器可以与根据本文的教导编写的程序一起被使用,或者构造更专用的装置来执行所需的方法步骤可以证明是方便的。各种这些机器的所需结构将从所给出的描述中显现。
强调的是,本公开的摘要被提供,以允许读者快速确定技术公开的性质。它以它被不用于解释或限制权利要求的范围或含义的理解被提交。此外,在前述详细描述中可以看到,为了简单化本公开的目的,各种特征在单个实施例中组合在一起。公开的这个方法不应被解释为反映所主张的实施例需要比在每个权利要求中明确陈述的更多的特征的意图。更确切地,如下面的权利要求反映的,创造性主题在于少于单个所公开的实施例的所有特征。因此,随附的权利要求特此被合并到详细描述中,每个权利要求独立地作为单独的实施例。在所附权利要求中,术语“including(包括)”和“in which(其中)”分别用作相应术语“comprising(包括)”和“wherein(其中)”的浅近英语等同物。此外,术语“第一”、“第二”、“第三”等仅用作标签,且并不意欲对它们的对象强加数值要求。
上面描述的内容包括所公开的架构的示例。当然,不可能描述部件和/或方法的每一个可能的组合,但是本领域中的普通技术人员可以认识到,许多另外的组合和置换是可能的。因此,新颖的架构意欲包含落在所附权利要求的精神和范围内的所有这样的变更、修改和变化。
Claims (20)
1.一种计算机实现的方法,包括:
从与用户账户相关的用户客户端设备接收多代理实体的传入消息;
确定与所述多代理实体相关联的接收所述传入消息的代理账户;
确定与所述代理账户相关联的代理客户端设备;
在所述用户客户端设备和所述代理客户端设备之间创建端到端加密消息传送关系;
每个客户端设备存储所述消息传送关系的安全信息;
所述安全信息包括一个或更多个加密密钥,所述传入消息基于所述一个或更多个加密密钥中的加密密钥被加密;以及
将所述传入消息发送到与所述代理账户相关联的所述代理客户端设备。
2.根据权利要求1所述的方法,还包括:
接收所述多代理实体的管理员账户的管理员账户注册;
将所述管理员账户注册为与所述多代理实体相关联;
接收所述多代理实体的所述代理账户的代理账户注册;以及
基于由所述管理员账户对所述代理账户的消息共享授权来将所述传入消息发送到与所述代理账户相关联的所述代理客户端设备。
3.根据权利要求2所述的方法,所述消息共享授权包括所述多代理实体的所述代理账户的所述代理账户注册。
4.根据权利要求3所述的方法,还包括:
响应于所述代理账户注册,对所述多代理实体的后续消息线程的消息共享授权来注册所述代理账户。
5.根据权利要求1所述的方法,还包括:
从管理员账户接收在所述用户账户和所述管理员账户之间的消息线程的消息线程转发,所述消息线程转发指定所述代理账户;
在消息传送服务器设备上向所述代理账户注册所述消息线程;
在所述消息传送服务器设备处从所述用户客户端设备接收所述多代理实体的所述传入消息;以及
基于向所述代理账户注册所述消息线程而将所述传入消息发送到所述代理客户端设备。
6.根据权利要求5所述的方法,还包括:
响应于所述消息线程转发而在所述用户客户端设备上重新标记所述消息线程的消息线程接口以指示所述代理账户代替所述管理员账户。
7.根据权利要求1所述的方法,还包括:
在所述用户客户端设备上标记消息线程接口以指示所述多代理实体。
8.一种用于多代理消息传送的装置,包括:
消息处理部件,所述消息处理部件操作来从与用户账户相关联的用户客户端设备接收多代理实体的传入消息;确定与代理账户相关联的代理客户端设备;以及将所述传入消息发送到与所述代理账户相关联的所述代理客户端设备;以及
代理管理部件,所述代理管理部件操作来确定与所述多代理实体相关联的接收所述传入消息的代理账户,
其中,所述装置用于在所述用户客户端设备和所述代理客户端设备之间创建端到端加密消息传送关系;每个客户端设备存储所述消息传送关系的安全信息;所述安全信息包括一个或更多个加密密钥,所述传入消息基于所述一个或更多个加密密钥中的加密密钥被加密。
9.根据权利要求8所述的装置,还包括:
所述代理管理部件操作来接收所述多代理实体的管理员账户的管理员账户注册;将所述管理员账户注册为与所述多代理实体相关联;以及接收所述多代理实体的所述代理账户的代理账户注册;以及
所述消息处理部件操作来基于由所述管理员账户对所述代理账户的消息共享授权来将所述传入消息发送到与所述代理账户相关联的所述代理客户端设备。
10.根据权利要求9所述的装置,所述消息共享授权包括所述多代理实体的所述代理账户的所述代理账户注册。
11.根据权利要求10所述的装置,还包括:
所述代理管理部件操作来响应于所述代理账户注册而对所述多代理实体的后续消息线程的消息共享授权来注册所述代理账户。
12.根据权利要求8所述的装置,还包括:
所述消息处理部件操作来从管理员账户接收在所述用户账户和所述管理员账户之间的消息线程的消息线程转发,所述消息线程转发指定所述代理账户;在消息传送服务器设备上向所述代理账户注册所述消息线程;在所述消息传送服务器设备处从所述用户客户端设备接收所述多代理实体的所述传入消息;以及基于向所述代理账户注册所述消息线程来将所述传入消息发送到所述代理客户端设备。
13.根据权利要求12所述的装置,还包括:
所述消息处理部件操作来响应于所述消息线程转发而在所述用户客户端设备上重新标记所述消息线程的消息线程接口以指示所述代理账户代替所述管理员账户。
14.根据权利要求8所述的装置,还包括:
所述消息处理部件操作来标记在所述用户客户端设备上的消息线程接口以指示所述多代理实体。
15.包括指令的一种计算机可读存储介质,所述指令当被执行时使系统:
从与用户账户相关联的用户客户端设备接收多代理实体的传入消息;
确定与所述多代理实体相关联的接收所述传入消息的代理账户;
确定与所述代理账户相关联的代理客户端设备;
在所述用户客户端设备和所述代理客户端设备之间创建端到端加密消息传送关系;
每个客户端设备存储所述消息传送关系的安全信息;
所述安全信息包括一个或更多个加密密钥,所述传入消息基于所述一个或更多个加密密钥中的加密密钥被加密;以及
将所述传入消息发送到与所述代理账户相关联的所述代理客户端设备。
16.根据权利要求15所述的计算机可读存储介质,包括另外的指令,所述另外的指令在被执行时使系统:
接收所述多代理实体的管理员账户的管理员账户注册;
将所述管理员账户注册为与所述多代理实体相关联;
接收所述多代理实体的所述代理账户的代理账户注册;以及
基于由所述管理员账户对所述代理账户的消息共享授权来将所述传入消息发送到与所述代理账户相关联的所述代理客户端设备。
17.根据权利要求16所述的计算机可读存储介质,所述消息共享授权包括所述多代理实体的所述代理账户的所述代理账户注册,还包括另外的指令,所述另外的指令在被执行时使系统:
响应于所述代理账户注册,对所述多代理实体的后续消息线程的消息共享授权来注册所述代理账户。
18.根据权利要求15所述的计算机可读存储介质,包括另外的指令,所述另外的指令在被执行时使系统:
从管理员账户接收在所述用户账户和所述管理员账户之间的消息线程的消息线程转发,所述消息线程转发指定所述代理账户;
在消息传送服务器设备上向所述代理账户注册所述消息线程;
在所述消息传送服务器设备处从所述用户客户端设备接收所述多代理实体的所述传入消息;以及
基于向所述代理账户注册所述消息线程来将所述传入消息发送到所述代理客户端设备。
19.根据权利要求18所述的计算机可读存储介质,包括另外的指令,所述另外的指令在被执行时使系统:
响应于所述消息线程转发而在所述用户客户端设备上重新标记所述消息线程的消息线程接口以指示所述代理账户代替所述管理员账户。
20.根据权利要求15所述的计算机可读存储介质,包括另外的指令,所述另外的指令在被执行时使系统:
在所述用户客户端设备上标记消息线程接口以指示所述多代理实体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211480537.3A CN115767523A (zh) | 2017-07-13 | 2018-04-13 | 用于多代理消息传送的方法和装置 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762532305P | 2017-07-13 | 2017-07-13 | |
US62/532,305 | 2017-07-13 | ||
US15/945,306 US10587551B1 (en) | 2017-07-13 | 2018-04-04 | Techniques for multi-agent messaging |
US15/945,306 | 2018-04-04 | ||
PCT/US2018/027434 WO2019013847A1 (en) | 2017-07-13 | 2018-04-13 | MULTI-AGENT MESSAGING TECHNIQUES |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211480537.3A Division CN115767523A (zh) | 2017-07-13 | 2018-04-13 | 用于多代理消息传送的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111052685A CN111052685A (zh) | 2020-04-21 |
CN111052685B true CN111052685B (zh) | 2022-11-29 |
Family
ID=65001744
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211480537.3A Pending CN115767523A (zh) | 2017-07-13 | 2018-04-13 | 用于多代理消息传送的方法和装置 |
CN201880056263.0A Active CN111052685B (zh) | 2017-07-13 | 2018-04-13 | 用于多代理消息传送的方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211480537.3A Pending CN115767523A (zh) | 2017-07-13 | 2018-04-13 | 用于多代理消息传送的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10587551B1 (zh) |
EP (1) | EP3652901A4 (zh) |
JP (1) | JP2020526991A (zh) |
KR (1) | KR102527524B1 (zh) |
CN (2) | CN115767523A (zh) |
WO (1) | WO2019013847A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2868120A1 (en) | 2012-06-29 | 2015-05-06 | Nec Corporation | Update of security for group based feature in m2m |
DE102019116705A1 (de) * | 2019-06-19 | 2020-12-24 | adviqo GmbH | Verfahren zur Kommunikation mittels Messenger-Nachrichten und System zur Durchführung des Verfahrens |
US11700226B2 (en) * | 2020-08-03 | 2023-07-11 | Google Llc | Sending messages from smart speakers and smart displays via smartphones |
CN113536170B (zh) * | 2021-06-29 | 2024-08-30 | 深圳市明源云科技有限公司 | 一种打印浏览器内容的方法和装置 |
EP4336797A1 (en) * | 2022-07-28 | 2024-03-13 | WhatsApp LLC | Device verification using key transparency |
WO2024048858A1 (ko) * | 2022-09-02 | 2024-03-07 | 주식회사 마이링크 | 분산 메시징 서버를 통한 데이터 처리 방법, 및 이를 포함하는 분산 메시징 시스템 |
KR102553672B1 (ko) * | 2022-10-13 | 2023-07-10 | 주식회사 마이링크 | 분산 메시징 서버를 통한 데이터 처리 방법, 및 이를 포함하는 분산 메시징 시스템 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9514459B1 (en) * | 2000-03-24 | 2016-12-06 | Emc Corporation | Identity broker tools and techniques for use with forward proxy computers |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3989194B2 (ja) * | 2000-06-12 | 2007-10-10 | 株式会社Qript | 通信システム |
US7409428B1 (en) * | 2003-04-22 | 2008-08-05 | Cooper Technologies Company | Systems and methods for messaging to multiple gateways |
US20050232175A1 (en) * | 2004-04-16 | 2005-10-20 | Vadim Draluk | System and method for provisioning device management tree parameters over a client provisioning protocol |
US9203796B2 (en) * | 2010-11-12 | 2015-12-01 | Facebook, Inc. | Messaging system with multiple messaging channels |
US8676954B2 (en) * | 2011-12-06 | 2014-03-18 | Kaseya International Limited | Method and apparatus of performing simultaneous multi-agent access for command execution through a single client |
US9806963B2 (en) | 2013-10-18 | 2017-10-31 | Cellco Partnership | Feature activation on device |
US9036807B1 (en) * | 2013-10-25 | 2015-05-19 | Teletech Holdings, Inc. | Method and system for routing messages and connecting users associated with live-connected content |
US9444775B2 (en) | 2013-12-06 | 2016-09-13 | Cellco Partnership | Multipurpose internet mail extensions (“MIME”) metadata for group messaging |
US10257151B2 (en) * | 2014-10-27 | 2019-04-09 | Phanto, Llc | Systems and methods for enabling dialog amongst different participant groups with variable and association-based privacy |
WO2016106279A1 (en) * | 2014-12-22 | 2016-06-30 | Entefy, Inc. | System and method of personalized message threading for a multi-format, multi-protocol communication system |
US11327942B2 (en) * | 2015-10-08 | 2022-05-10 | Signal Vine, Inc. | Systems and methods for providing a two-way, intelligent text messaging platform |
US20170293922A1 (en) * | 2016-04-11 | 2017-10-12 | Facebook, Inc. | Techniques for messaging agent coordination |
US20180083896A1 (en) * | 2016-09-21 | 2018-03-22 | Facebook, Inc. | Modular inbox surface for content delivery |
-
2018
- 2018-04-04 US US15/945,306 patent/US10587551B1/en active Active
- 2018-04-13 WO PCT/US2018/027434 patent/WO2019013847A1/en unknown
- 2018-04-13 EP EP18832096.4A patent/EP3652901A4/en not_active Withdrawn
- 2018-04-13 CN CN202211480537.3A patent/CN115767523A/zh active Pending
- 2018-04-13 CN CN201880056263.0A patent/CN111052685B/zh active Active
- 2018-04-13 JP JP2020501556A patent/JP2020526991A/ja not_active Ceased
- 2018-04-13 KR KR1020207003490A patent/KR102527524B1/ko active IP Right Grant
-
2020
- 2020-01-27 US US16/773,208 patent/US11146519B1/en active Active
-
2021
- 2021-10-11 US US17/498,149 patent/US11616747B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9514459B1 (en) * | 2000-03-24 | 2016-12-06 | Emc Corporation | Identity broker tools and techniques for use with forward proxy computers |
Also Published As
Publication number | Publication date |
---|---|
EP3652901A1 (en) | 2020-05-20 |
CN115767523A (zh) | 2023-03-07 |
WO2019013847A1 (en) | 2019-01-17 |
EP3652901A4 (en) | 2020-06-03 |
US11146519B1 (en) | 2021-10-12 |
KR20200020946A (ko) | 2020-02-26 |
US10587551B1 (en) | 2020-03-10 |
JP2020526991A (ja) | 2020-08-31 |
CN111052685A (zh) | 2020-04-21 |
US11616747B1 (en) | 2023-03-28 |
KR102527524B1 (ko) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111052685B (zh) | 用于多代理消息传送的方法和装置 | |
KR102480096B1 (ko) | 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들 | |
US10193844B1 (en) | Secure cloud-based messaging and storage | |
US11637795B1 (en) | Techniques for templated messages | |
WO2016140692A1 (en) | Enabling file attachments in calendar events | |
US11165899B1 (en) | Techniques to manage contact records | |
EP4121921A1 (en) | Methods and apparatuses for managing external approval provisioning and external messaging communication requests in a group-based communication system | |
EP3364330B1 (en) | Methods and systems for processing an ephemeral content message | |
US11616742B2 (en) | Methods and systems for end-to-end encrypted message history exchange | |
AU2019371345B2 (en) | Systems and methods for message transmission and retrieval using blockchain | |
US10313503B2 (en) | Techniques to reconfigure messaging clients during contact information changes | |
EP3382624A1 (en) | Techniques for templated messages | |
CN110476392B (zh) | 用于具有多个步长的密钥棘轮移动的技术 |
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 | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Woz EPP Co.,Ltd. Address before: California, USA Applicant before: WHATSAPP Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |