消息流可以包括档案、消息文件夹、标签、特殊文件夹(例如,带星号的消息或延缓的消息)、和/或任何合适的消息集合。在后端基础设施中维护消息流避免了当在消息流之间切换时由外部服务提供者的按需访问引起的延迟。流或消息记录可以被创建为和/或修改为适当地引导消息整理和组织。例如,系统另外可以根据整理历史来组织消息。这样,将消息移至另一个流在该消息在客户端应用上呈现给用户时将该流置于该流的顶部。该整理组织可以是按时间顺序的组织的顶部的超控(overriding)整理参数。当从客户端应用接收到更新时,邮箱服务120另外可以将该更新转化为消息服务更新。例如,如果消息被移至客户端应用上的特定列表时,邮箱服务可以创建递送到消息服务的“告诉Gmail将消息线程1048复制到文件夹并且删除”指令。
[0023]邮箱服务120另外可以包括延缓数据引擎。延缓数据引擎的作用是使得消息能够在条件满足时有条件地被作用。在第一变型中,用户可以将消息放置在具有所分配的提醒条件的延缓消息列表中。提醒条件通常是时间条件(例如,“过24小时提醒我”、“6月22日提醒我”等),但是提醒条件另外地或者可替代地可以使用用户的地理位置、其他用户的绝对地理位置、用户相对于装置用户的地理位置、消息的另一个接受者的响应、对于另一个消息的响应、装置访问(例如,台式计算机上的下一次的装置访问)、对于多个条件的布尔逻辑的组合、程序逻辑(例如,通过应用编程接口或“API ”访问的程序逻辑)、和/或任何合适的条件。一旦满足一个条件或多个条件,延缓数据引擎就可以采取适当的动作。动作或响应优选地将消息或消息线程移至收件箱中。这可以涉及将数据发送到客户端应用和/或邮箱服务。动作可替代地可以是任何合适的动作,诸如移至另一个文件夹、发送预先构成的响应、将消息存档、删除消息、在社交网络上共享、发送警告、或任何合适的动作。
[0024]邮箱服务120可以包括将消息变换为用于在系统内使用的合适的格式的消息处理模块。作为一种优选的消息变换,电子邮件的主体被转换为统一格式。这优选地可以涉及将HTML格式化消息转换为本地可转化的格式。本地可转化的格式是被配置为在客户端应用上本地呈现的一种格式。其作用是围绕移动装置上的缓慢的且资源密集的HTML呈现工作。HTML内容另外可以被规范化、精细化或精炼以简化消息并且使消息具有一致的呈现。消息的内容另外可以被模糊化以在系统内保护消息内容。消息服务层110另外可以包括被配置为促进转换附件格式的组件。附件优选地是包括在消息内容中的媒体文件,诸如电子邮件中的照片或文件附件。服务优选地将附件转换为消息的内联项。附件服务优选地存储并且托管内联项中的媒体资源引用。
[0025]优选实施例的客户端应用130的作用是提供对于消息的用户接口和交互能力。客户端应用130优选地用于移动装置,但是可替代地可以用于任何合适的装置应用,诸如用于台式计算机、连接电视的计算装置、网站、浏览器插件的应用、或任何合适的装置应用。在此,对于客户端应用的引用是指安装在装置上的客户端应用的类型的实例。客户端应用的多个实例可以在不同的装置和/或同一装置上工作。不同应用实例另外可以包括操作不同的应用或应用的不同版本的实例。客户端应用130优选地用与HTML web视图完全不同的本地呈现的视图来解释消息。HTML视图可替代地可以用于HTML呈现几乎没有缺点的客户端应用中。客户端应用130优选地包括异步消息通信模块,其作用是无缝地使客户端应用和邮箱服务120之间的消息同步。异步消息通信模块优选地减轻用户等待消息加载和发送的痛苦。异步消息通信模块优选地在后台执行网络通信而不阻止用户交互。客户端应用130优选地被配置有至少一个消息账户,但是可替代地可以具有多个消息账户,这些消息账户另外可以是不同类型(例如,电子邮件和社交媒体)。任何合适的接口可以被客户端应用130使用,但是基于手势的消息整理接口优选地权衡利用消息通信系统的实时性和响应性。
[0026]优选实施例的传输层140的作用是协调消息服务110、邮箱服务120和客户端应用130之间的通信。优选地存在至少两个传输层140a和140b。第一传输层140a优选地将消息服务110和邮箱服务120通信地耦合。第二传输层优选地将邮箱服务120和客户端应用130通信地耦合。传输层140优选地将两个通信方向上的消息和数据通信信息排队。客户端到邮箱传输层优选地将发送的消息、消息动作和其他通信信息排入入站到邮箱的队列中。客户端到邮箱传输层另外将数据和对于客户端的响应排队,所述数据和对于客户端的响应可以包括新的电子邮件消息、线程更新和客户端响应(例如,电子邮件发送OK、延缓消息OK)。消息服务到邮箱传输层优选地将来自邮箱的电子邮件服务工作排入入站到消息服务的队列中。消息服务到邮箱传输层另外将消息数据更新排入入站到邮箱服务的队列中。这些队列优选地使用rabbitMQ,但是可以使用任何合适的排队框架。第二传输层140另外可以包括连接服务。连接服务优选地管理所有的从客户端应用到邮箱服务的连接。连接服务优选地授权并且建立客户端应用的流连接。多个客户端应用实例可以具有与连接服务的流传输连接,并且连接服务将客户端绑定数据复用到所述多个客户端应用。例如,用户可以通过流连接具有多个具有活动的客户端应用(被配置用于同一账户)的装置。出站消息优选地同时通过多个流连接发送以递送到各个客户端应用实例。对于每个装置独立地维护的连接基本上同时被使用。连接服务另外可以管理客户端应用的版本控制,并且实现大小选择的数据压缩、和/或任何其他的另外的连接和流传输服务。
[0027]所述系统另外可以包括冲突解决模块,其作用是解决系统的分布的部分之间的消息管理中的冲突。提供给系统的服务的任何动作或通信优选地是包括修订标识符的事务单元。修订标识符优选地指示当前的消息数据是否是最近的、当前有效的消息。这用于使系统内的消息数据对象最终与消息的本地环境(例如,电子邮件提供者)一致。修订标识符另外被冲突解决模块应用来将用户从客户端应用内采取的动作排序为这些动作在系统内被处理的次序以解决一致性。另外,所述系统被配置为动作对于系统内的对象原子式地完成。系统的任何特定部分中的状态可能与其他部分不一致,但是该状态优选地最终与消息提供者的状态一致。例如,如果用户移动不同文件夹中的消息,则这些移动可以传播通过系统,最终消息提供者将反映这些改变。当遇到冲突时,特定组件的状态被给予优于其他组件的优先级。在一些情况下,冲突解决模块可以允许任何合适的动作在竞态条件下获胜。冲突解决模块的另一方面是,对消息系统内的消息转换、线程或消息集合采取的任何动作优选地具有与已经到达该线程的新消息的数量相应的文档级修订,其作用是迫使收件箱文件夹的从任何消息服务提供者到达的新的电子邮件使该线程进入收件箱中。
[0028]2.用于服务于消息客户端的方法
[0029]如图2中所示,优选实施例的用于服务于消息客户端的方法SlOO可以包括:在消息服务,使消息与外部消息服务同步,SllO ;在邮箱服务,在提供者消息格式和客户端消息格式之间转换,S120 ;在邮箱服务,管理延缓消息,S130 ;在客户端应用,以客户端消息格式本地解释消息,S140 ;并且在消息服务、邮箱服务和客户端应用之间合作地中继转发消息,S150。所述方法的作用是将现存的消息服务抽象为实时的、具有响应性的消息传递接口。优选地,所述方法用于创建快速的且具有响应性的电子邮件应用。所述方法优选地针对新的增强功能变换现存的电子邮件服务和消息,同时与电子邮件服务同步以与电子邮件服务一致。所述方法优选地用作具有客户端应用接口的分布式计算系统。所述方法使得用户能够以增强的通信能力使用现存的消息账户。所述方法优选地通过基本上类似于上述系统的系统来实现,但是可替代地可以使用任何合适的系统。方法SlOO另外可以包括两个可替代的同步实施例:方法S200,其用于使从客户端应用到消息传递服务的消息数据同步;以及方法S300,其用于使从消息服务到至少一个客户端应用的消息数据同步。方法S100、方法S200和方法S300可以按任何合适的组合使用。
[0030]包括在消息服务使消息与外部消息服务同步的方框SllO的作用是与外部消息服务提供者接口。在一个优选实施例中,外部消息服务是电子邮件服务提供者,诸如Gmail、Yahoo Mail、Microsoft Exchange,但是可替代地可以是社交网络AP1、或即时消息传递服务、或任何合适的消息传递服务提供者。与电子邮件提供者接口的消息服务优选地管理对于每个账户的持续的IMAP连接,但是该连接可替代地可以是POP、Microsoft Exchange、Service AP1、和/或任何合适的连接。单个IMAP连接优选地被同一服务账户的多个邮箱客户端应用实例使用。使消息与外部消息服务同步可以包括从消息服务提供者检索入站消息。当入站消息是会话的一部分时,使消息同步可以包括解析转换、提取消息的新的部分、并且将它们转换为邮箱服务格式。使消息与外部消息服务同步另外可以包括将客户端消息交互发送到消息服务提供者。这可以包括发送出站消息、改变消息的状态(例如,标记为已读)、改变消息组织的状态(例如,将消息移至文件夹、添加标签、添加对于类别的引用)、和/或可能需要传送到消息服务提供者的任何合适的动作。同步另外可以管理跟踪消息的元数据。例如,消息服务可以对特定文件夹中的消息和/或未读消息的数量进行计数或跟踪。
[0031]包括在邮箱服务在提供者消息格式和客户端消息格式之间进行转换的方框S120的作用是将消息格式转化为接受者的消息格式。来自消息传递服务的入站消息优选地被转换为客户端本地消息格式。本地消息格式优选地是流线型数据格式,并且被设计为被客户端应用高效地递送和呈现。转换为本地消息格式可以包括将HTML格式化消息转换为本地呈现格式。本地消息格式优选地除去不期望内容样式属性