首页 / 专利库 / 软件 / 中间件 / 消息代理 / 利用电子邮件中的元数据来管理虚拟存储器的电子邮件传输系统

利用电子邮件中的元数据来管理虚拟存储器的电子邮件传输系统

阅读:124发布:2024-02-23

专利汇可以提供利用电子邮件中的元数据来管理虚拟存储器的电子邮件传输系统专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种包括 存储器 和 电子 邮件处理单元的电子邮件系统。该存储器存储有带有相关元数据的电子邮件,该元数据表示出电子邮件的处理状态。该电子邮件处理单元读取电子邮件,并基于该元数据确定用于电子邮件传输的下一步操作。本发明提供了一种包括存储单元和处理器的系统。该存储单元存储将要电子发出的消息。该消息包括用于说明与该消息的信息相关的元数据。该存储单元包括本地存储器,其存储有第一数量的信息以及少于所述第一数量的用于说明非紧急消息的信息。该存储装置还包括存储有与该消息相关的额外信息的远程存储器。该处理器操作以确定关于每条消息的信息,并管理与本地存储的消息相关的信息。,下面是利用电子邮件中的元数据来管理虚拟存储器的电子邮件传输系统专利的具体信息内容。

1.一种电子邮件系统,包括:
存储有多封电子邮件的存储器,其中在所述多封电子邮件中的电子 邮件包括与所述电子邮件相关联的元数据,所述元数据表示出所述电子 邮件的处理状态;和
电子邮件处理单元,它读取电子邮件,并至少部分地基于所述元数 据来确定用于所述电子邮件传输的下一步操作。
2.如权利要求1所述的系统,其中所述元数据包括服务质量保证, 并且所述电子邮件处理单元基于所述服务质量保证元数据来确定电子邮 件处理的优先级。
3.如权利要求1所述的系统,其中所述元数据表明所述电子邮件的 异步处理状态,并且所述电子邮件处理单元基于所述异步处理状态来确 定所述电子邮件是否做好了传输的准备。
4.如权利要求3所述的系统,其中所述异步处理是一种网络域名服 务器查找的状态,其中所述元数据表示所述网络域名服务器查找的状态, 并且所述电子邮件处理单元基于所述网络域名服务器的查找来确定所述 消息是否做好了发送的准备。
5.如权利要求3所述的系统,其中所述异步处理包括对是否针对所 述电子邮件已请求指定服务的指示。
6.如权利要求5所述的系统,其中所述指定服务是病毒检查。
7.如权利要求5所述的系统,其中所述元数据还包括对是否已完成 了所述服务的指示。
8.如权利要求3所述的系统,其中所述异步处理包括对是否需要在 发送所述电子邮件之前向收件人发送其它电子邮件的指示。
9.一种系统包括:
存储单元,它存储有多条将要电子发送的信息,每条所述信息包括 用于说明与所述消息有关的信息的相关元数据,所述存储单元包括本地 存储器,它存储有第一数量的信息,所述第一数量的信息说明了发送的 可能性更高的紧急消息,还存储有少于所述第一数量的信息的第二数量 的信息,所述第二数量的信息说明不太可能发出的非紧急消息;所述存 储单元还包括存储有关于所述消息的额外信息的远程存储器;和
处理器,它操作确定关于每条消息的信息,并管理与本地存储的各 项消息有关的多项信息。
10.如权利要求9所述的系统,其中每条消息包括消息主体、消息路 由信息和所述元数据。
11.如权利要求10所述的系统,其中所述元数据包括服务元数据, 其说明需要在所述消息上发生的操作。
12.如权利要求10所述的系统,其中所述元数据包括事务元数据, 其确定与所述消息的形式有关的信息。
13.如权利要求10所述的系统,其中所述元数据包括历史记录元数 据,其它说明所述消息处理的历史记录。
14.如权利要求10所述的系统,其中所述处理器包括消息处理代理, 其从所述元数据那里获得关于所述电子邮件的信息,并确定关于电子邮 件的队列的信息。
15.如权利要求9所述的系统,其中所述处理器操作以确定电子邮件 的队列,所述队列表示将电子邮件发送到具有某种共同特征的位置上。
16.如权利要求15所述的系统,其中所述处理器还操作以确定发送 到所述位置的速率,并基于指示出所述发送速率的信息来管理所述队列。
17.如权利要求9所述的系统,其中所述元数据表示出所述消息的发 送优先级。
18.如权利要求9所述的系统,其中所述元数据表示出与所述消息相 关的服务质量。
19.如权利要求9所述的系统,其中所述元数据表示出与所述消息相 关的虚拟识别信息。
20.如权利要求9所述的系统,其中所述元数据表示出在所述消息上 执行的服务。
21.如权利要求20所述的系统,其中所述服务是病毒扫描,并且所 述元数据指示出病毒扫描是否完成。
22.如权利要求9所述的系统,其中所述元数据表示出用于再次发送 的策略。
23.如权利要求9所述的系统,其中所述紧急消息是可能在预定期间 内发送的消息,并且所述非紧急消息是不太可能在所述预定期间内发送 的消息。
24.一种方法,包括:
将指示出多条消息信息的信息存储到本地存储器中;
将其它消息信息存储到非本地存储器中,所述其它消息信息包括与 某些存储在所述本地存储器中的所述消息信息相关的额外信息;及
管理存储在所述本地存储器和所述非本地存储器中的信息,以使得 将立即传送的消息具有存储在所述本地存储器中的第一数量的信息,并 且不会立即传送的信息具有存储在所述本地存储器中的第二数量的信 息,其中所述第二数量小于所述第一数量。
25.如权利要求24所述的方法,其中将立即传送的所述消息是可能 在预定数量的操作循环内发出的消息。
26.如权利要求24所述的方法,其中所述本地存储器将关于所述消 息的元数据作为所述第一数量的信息加以存储,并基本上将完成的消息 存储在所述第二数量的信息中。
27.如权利要求26所述的方法,其中所述元数据包括服务元数据, 其说明需要发生在所述消息的操作。
28.如权利要求26所述的方法,其中所述元数据包括事务元数据, 其确定与所述消息的形式有关的信息。
29.如权利要求26所述的方法,其中所述元数据包括历史记录元数 据,其说明所述消息处理的历史记录。
30.一种如权利要求26所述的方法,还包括:
从所述元数据处获得关于所述电子邮件的信息;以及
确定出其中各个处于所述队列中的电子邮件具有共同特征的与电子 邮件的队列相关的信息。
31.如权利要求30所述的方法,还包括确定发送到所述位置的速率, 并基于指示出所述发送速率的信息来管理所述队列。
32.如权利要求26所述的方法,还包括利用所述元数据来表示所述 消息的发送优先级。
33.如权利要求26所述的方法,还包括利用所述元数据来表示与所 述消息相关的服务质量。
34.如权利要求26所述的方法,还包括利用所述元数据来表示与所 述消息相关的虚拟识别信息。
35.如权利要求26所述的方法,还包括利用所述元数据来表示在所 述消息上执行的服务。
36.如权利要求26所述的方法,还包括利用所述元数据来表示病毒 扫描,并且所述元数据指示出病毒扫描是否完成。
37.如权利要求26所述的方法,其中所述元数据表示用于再次发送 的策略。

说明书全文

背景技术

在我们同样尚未授权的申请,即2004年2月11日提交的美国专利申 请10/777,336中描述了一种具有多个新颖而先进特征的高级电子邮件系 统。其中所述的电子邮件系统通过将电子邮件编组成在非永久存储器内 部形成的规定种类的队列,从而获得了速度提高的特性。非永久存储通 常比磁盘存储速度要快,并且由此这样能够充分提高输入/输出速度。此 外,该队列自身也能够实现更高的效率。

这种系统还描述了用来提高发送电子邮件的效率的负载平衡和许可 授权的各种特性。在我们同样尚未授权的申请中可有详细的说明,其内 容合并于此作为参考。

附图说明

现将参照附图详细说明这些特征和其它特征,附图为:

图1是示出了电子邮件信息流的视图;

图2是示出了根据本系统形成的队列的视图;

图3是示出了创建并处理队列的流程图

图4是示出了处理位于队列内部的消息的流程图;

图5是示出了负载平衡的一个方面的流程图;

图6是示出了队列和处理队列的代理的方框图

图7示出了组成操作程序的不同功能单元;

图8A是示出了第二实施方案的方框图;

图8B是示出了第二实施方案的示例性消息的布局,该布局示出了它 的元数据;

图9是示出了第二实施方案的虚拟存储器的方框图;

图10是示出了消息传输代理和其与虚拟存储器的接口的方框图;

图11是示出了消息传输代理是如何与索引节点服务器及物理存储器 接口的方框图;

图12是示出了工作流操作的流程图;

图13是示出了查询操作的流程图;

图14是示出了资源代理及其与其它结构连接的方框图;

图15是示出了策略基准的操作方框图/流程图。

发明内容

本发明对电子邮件处理系统的一些其它方面进行了说明,这些方面 包括了新颖而特别的特征。一个方面包括利用元数据作为消息的一部分, 其中元数据包括用于该消息的路由和状态信息。

具体说明

本发明说明了一种改进的电子邮件处理和传输系统。

最初,本文给出的说明是对软件的说明,该模块在通用的计算 机,例如工作站型计算机或基于x86架构的计算机中运行。然而应该理解, 本文给出的说明能够作为硬件,例如基于专用电路或采用现场可编程 阵列(FPGA)单元形式来操作,该硬件具有通过硬件定义语言限定的功 能。虽然此处给出的说明是具有软件性质的,发明人意欲通过本说明书 同样保护以可与本文所述内容相比拟的方式运行的硬件装置。

图2描述了消息队列映射表的信息和用途。该消息队列映射表优选 地在非永久存储器内形成,非永久存储器的例子如在邮件服务器内运行 的随机存取存储器,邮件服务器的例子如执行简单邮件传送协议(SMTP) 功能的服务器。在优选实施例中,全部的邮件处理操作均发生在这种类 型的非永久存储器中。

在先系统已经教导了不将非永久存储器用于电子邮件处理的情况。 实际上,在运行过程中,当且如果系统发生崩溃时,使用非永久存储器 会导致严重的问题。但是,本系统教导了一种方法,它通过存储与电子 邮件的处理有关信息和这些电子邮件的处理状态,避免在系统崩溃的过 程中出现功能性损失。本发明的一个方面说明了一种非常有效的存储该 种状态的方法。

示于图2中的队列映射表具有多个分别以200、202和204表示的消 息队列。每个消息队列基于不同变量,包括域名和系统用户端(在虚拟 服务器的情况下)来限定。在最简单的队列形式中,它与特定的域相关 联。例如消息队列200与域210相关联,该域210为Hotmail.com。用于 yahoo.com(域214)的消息队列204包括两个不同的数据节点252、254, 它们中的每一个均用于传输到域yahoo.com上。每个数据节点代表与待发 送的电子邮件有关的个性化信息。

图中还示出了新消息220。作为操作的一部分,需要将这条新消息添 加到现有的队列映射表中。以225表示的输入处理器可以按照图3的流程 图中所示的那样进行操作。在300处,该过程接收新消息220。在305处, 输入处理器操作建立数据节点230作为表示该消息的摘要。在该实施方案 中的数据节点是代表一条消息的对象。该数据节点包括关于正在传送的 消息的信息;并且可包括收件人、寄件人、关于该电子邮件的数据、域、 唯一的对话标识符、访问计数以及其它用于服务质量(“QoS”)保证和有 关路由的详细说明的信息。应该注意的是,该节点并不是该电子邮件自 身-相反它们只不过是指向存储在存储器中的该电子邮件的指针 (pointer)。

在310处,分析数据节点来确定适当的队列(域操作和其它变量的功 能)。单元315确定了是否可将消息添加到现有的队列中。如果可以,就 在320处将该数据节点添加到现有的队列中。例如,此处新消息220用于 Hotmail.com的域210。因此,将数据节点230添加到现有队列200的末端。

作为另一种选择,如果在315处不能将节点添加到现有队列中,那么 将在325处建立新队列,并在330处将数据节点230添加到新建立的队列 中。以这种方式可形成多个队列,每个队列与表示具有相似路由策略的 消息的节点相关。如果现有队列具有多于最大数量的消息,那么可针对 每个队列变量提供多个队列。由于每个队列表示将需要相同处理策略, 例如传输到相同的域的消息,因此全部队列的消息可同时传送,从而提 高传送过程的效率。

如图2中所示,一个作为输出处理器240的命令集可按照图4的流程 图来操作该消息和队列。每个数据节点均表示特定的消息。输出处理器 240对数据节点进行处理,以便将邮件发送到预定收件人。输出处理器240 作为单个处理过程加以示出,但是还可与例如在任意一个时刻处理单个 队列,或利用流线系统或多线程系统的每个处理过程一起,同时操作 多个处理过程。

所述处理从400处开始,在该处输出处理器寻找下一个队列加以处 理。这可以循环的方式进行,其中,给每个队列赋值例如一个数字(n), 并且该系统简单寻找第n+1个序列,其中最大有n个队列存在。一种替 换系统是该输出处理器总是处理其中具有最多消息节点的队列。在这种 示例中,根据队列的长度将它们进行排序,并且在该种情况下,在400 处找到最长的队列或下一个满队列。然而在另一个实施方案中,还要考 虑队列已经存在的时间。换句话说,最长的队列将被最先排序,除非已 经有指定时间,例如X分钟未对最长的队列进行处理。

在420处,在当前队列中,消息从队列中找到并被移除,以用于在 420处的传输。在425处形成消息包装,该消息包装可在该包装内部包括 多条消息。每条位于该包装内部的消息具有其特有的个性化内容,但是 消息的通用部分(例如域信息)由包装自身提供。这可进一步提高过程 的效率。

判定块430确定是否能够在相同包装的内部执行的队列中存在更多 的数据项,如果可以,在420处获得该消息并将其在425处添加到该包装 中。在完成该队列后,由435处执行处理过程。这包括定位用于收件人域 的SMTP服务器,与该SMTP服务器建立连接,发送代表该消息的协议标 记,而后传输该消息。

一旦已将队列中的所有消息移除,而后在445处将该队列从存储映射 表中移除或消除。如果由于可恢复的错误导致消息处理失败,那么可将 该消息推回到该队列,或表示相同域的新队列中。每当消息传输失败, “访问计数”增加。由于收件人服务器失效,例如处于繁忙的或不可存 取的状态,会发生消息故障。而后在450处,处理过程移动到下一个队列 中。

图5的流程图中示出了溢出保护。如果接收消息的速度比排队代理 225能够处理这些消息的速度快,那么就可能发生溢出。在500处,输入 处理器225检测是否存在一个比规定量,例如1000条消息更多的待办事 项,或者是否消息队列的容量将花费比规定时间,例如三秒钟更长的时 间进行处理。在505处,输入处理器将“暂停”回复发送到正在接收该消 息的消息服务器,例如SMTP服务器。暂停回复指示该消息服务器应该 停止发送已接收的消息。这导致该消息服务器将已接受到的消息存储起 来,直到待办事项减少。

在500处,循环继续检查待办事项。如果在队列的消息数量低于在 500处所限制的容量,那么在510处,中继服务器将“发送”回复发送到 消息服务器。这使消息服务器能够再次启动来发送消息。

参照图7,服务应用程序702能够将某个电子邮件消息比传送到其它 域更快地传送到某个域。在这种情况下,比起针对较慢域的电子邮件, 负载平衡器732可将更多针对较快域的电子邮件发送到服务器702。统计 查询处理764和监听程序处理可以执行这一步。以这种方式,消息服务器 根据中继服务器执行的速率有效调整馈送速率。这可使该系统能够考虑 减慢中继服务器的处理速度,并通过减慢中继服务器来防止消息阻塞。

基本的负载平衡是通过如下步骤进行的:

获得下一条消息的参数;

产生个性化的完整标题和正文主体;

询问当前负载状况,并计算用于该消息的传输率;

计算该系统是否准备好传输新消息;并且

如果是,推进该消息。

以这种方式,输入处理器仅在它能够处理消息时才接受该消息。这 提供了一个基本负载平衡的特征。

图6示出了电子邮件消息系统的基础方框图。中继服务器602执行处 理输入消息的功能。该中继服务器602包括排队代理604,以及存储队列 统计单元606和消息反应器607。消息反应器607可以是SMTP服务器, 或执行类似功能的服务器或接口到现有SMTP服务器的装置。

消息反应器607将消息传输到用户端的信箱区608。反跳服务器 (bounce server)606检测任何欲传送到不存在的信箱区的消息,并将那 些用于进一步处理的消息“存储”起来。

输入分析程序616接收并表征该消息。分析程序616包括消息服务器 610,统计采集模块612和恢复代理614。这些功能中的每个都可在随机 存取存储器(RAM)或非永久存储器中实现,以便简化该数据处理。恢 复代理将系统变量的快照(snapshot)存储到永久存储器中,以使得系统 能够从计算机崩溃中恢复过来。可替换地,虽然或许存在较少的优选实 施例,但队列或部分队列可保存在磁盘驱动器中。这些单元的功能将于 此做出进一步的详细说明。

图7是消息在客户端、服务器和许可证服务器确认单元之间的信息 传送流程图。该客户端应用程序以700表示,并且它可以是例如在客户端 计算机中操作的电子邮件客户端。客户端应用程序700创建常规类型的个 性化消息,控制并发出指令将那些信息发送到服务器。这是利用多个代 理完成的,所有的这些均可以软件形式操作。

在客户端应用程序700中,多种不同的过程协同操作,以形成并传送 电子邮件。消息存档数据库712表示正在传送的特定消息文档,即形成电 子邮件的独特部分的文本和/或附件。可用于许多不同电子邮件的其它部 分存储在诸如数据库710、714的文档中。数据库710提供电子邮件地址。 包括邮件信息和类似于电子邮件的收件人的邮件首选项存储在数据库 712中。这两种数据库与邮件配置文件714一起使用,该配置文件存储用 于所产生的电子邮件的跟踪信息。

例如在图2中以252表示的节点可以是指向消息存档712中的区域和 /或数据库710及配置文件714中的区域的指针。此外,每封电子邮件可 分配给由已排序的电子邮件的比特向量形成的唯一标识(ID)。该比特向 量可存储在永久存储器中。该比特向量可包括足够的信息来重建消息和 每封电子邮件的处理状态。这种信息存储在磁盘或永久存储器中。这能 够恢复系统处理过程的全部状态,而无需将电子邮件的全部都存储在磁 盘上。

仅存储代表电子邮件的内容,在存储器中的定位等的确定数据。例 如可周期性地记录位于每个队列中的每封电子邮件的消息ID,以便存储 该状态。如果中继服务器无论出于任何原因而出现问题,那么就将当前 正处理消息的ID记录下来。通过启动新的消息服务器,将这些未处理的 消息传送到位于配置中的其它中继服务器来补救系统崩溃。如果所有的 中继服务器同时出现问题,那么仍然记录未传输的消息ID,并可将其借 由该系统传送出去。

记录在数据库710中的电子邮件地址由数据库分析程序720连同邮件 配置文件714的内容一起进行处理。相应地,在消息数据库712中的消息 记录由消息分析程序722来处理。两种分析程序720和722作用于数据库 记录,并将分析内容传送到个性化代理724中。该代理将来自地址记录的 分析信息与分析消息结合起来。在一个实施方案中,分析消息可由消息 模板形成,它利用来自消息目录的参数,例如在图2中的单元230中示出 的参数的标记来填写。将个性化内容,例如名称或其它信息插入到基于 个性化信息的输出消息中。

利用个性化代理724的内容创建电子邮件消息以建立消息包装,这包 括位于来自数据库分析程序720的分析地址内部、来自消息分析程序722 的消息,从而建立个性化消息725。优选地单独在随机存取存储器内部对 所产生的地址进行操作,以便能够进行更快速的处理。

而后将个性化信息725传送到队列代理730,该队列代理730将消息 输入适当的队列中,并将它在其中排序。队列可参照图2如前所述地那 样形成。一般情况下电子邮件是根据将要接收该电子邮件的域排序的。 通常所使用的域名可接收多个队列。参照图5如上所述,用户端一服务 器负载平衡器732监控队列以确保服务器702没有被引入的电子邮件所淹 没。

服务器应用程序702利用要求处理器740获得消息,并将该消息传输 到一个或多个传输代理742。尽管仅示出了一个传输代理,但是可以存在 许多个这种代理。这些传输代理742将电子邮件消息传递到管理多个远程 连接的远程连接库管理器744。这个远程连接库管理器744建立、保持并 终止与以746、780和782表示的SMTP服务器之间的连接。远程连接库 管理器744可以直接保持与用户端SMTP服务器之间的连接;脱离位于本 地互联网服务提供商(ISP)中的SMTP服务器来承担完成这项工作的任 务。

远程连接库管理器还利用异步网络域名服务器(DNS)解算装置750, 该解算装置处理周期性更新的脱机队列或超高速缓存阵列352。DNS的查 找相对于消息传输的其余部分可以是异步的。以这种方式,在750处,对 来自DNS超高速缓存阵列752的DNS信息进行的查找可与对消息传输的 其它部分的查找同时进行。

一个或多个传输代理342还与记录代理760相联系,这形成监控过程 来监控已发送的电子邮件。在系统崩溃的情况下,这能够全部恢复系统。

邮件配置文件714、数据库处理程序720及消息处理程序722在可预 测的且合乎逻辑的基础上进行操作。因此,通过获知终端电子邮件传送 的中断位置,就可易于恢复存在于任何系统崩溃时候的点。

记录代理760还与统计监听程序处理762以及统计查询处理764相联 系。记录代理760监控成功的及不成功的电子邮件传送。当远程服务器无 法使用或发生不成功的DNS解析时,就会发生不成功的传送。状态查询 处理764还与队列代理730相联系,并保留最后的输出消息的记录。按照 这种方式,中断的邮件流可在中断点再次建立起来。

监听程序处理762记录或提供关于电子邮件成功传送的信息。在一实 施方案中,关于位于目录中的电子邮件信息仅通过索引列出。例如,监 听程序处理762可指出哪个可以成功传输。这还保留关于被拒收的电子邮 件信息或记录。电子邮件可能以完成的形式被拒收,以便执行取证分析 (forensic analysis)来决定是否发生了故障。记录代理760还可指明单击 或开启电子邮件的时间。

记录代理编译并集合来自多个源头的电子邮件,该源头可与许可证 服务器统计编译模块770相接触,并还可与许可证服务器确认处理704 相接触。许可证服务器确认还与服务器以及用户端相联系。

许可证确认的概念是根据本系统的全新范例。该统计编译模块370 编译关于由本系统处理的消息数量的统计信息。在一个实施方案中,服 务器确认304确定是否用户端已支付了足以支付已发送消息的数量/类型 的适当许可费用。服务器确认304可拒绝发送消息,或可基于消息的数量 已超出的情况发送警告。以这种方式,这种软件就可像按次计费的软件 一样有效运行。即,可销售具有多条可用消息的初始软件。这使用户能 够在规定时间段内评估该软件,通常作为共享件。他们可安装该软件, 并且它将如所期望的那样运行,直到到达消息的规定数量。此后,用户 需要支付额外的许可费用来处理额外消息。

第二实施方案

替换实施方案利用规定种类的虚拟存储器和与每条消息相关的元数 据来细化消息存储信息,将某些但并非全部电子邮件信息保留在非永久 存储器中。将某些信息写入永久存储器,而将其它信息保留在非永久存 储器中。这可以实现更好的折中平衡。非永久存储器更昂贵,且如在第 一实施方案中所公开的那样,在系统崩溃的情况下,需要一些结构方式 来备份操作。但是,非永久存储器速度更快,并可导致整个系统更快。 因此第二实施方案可仅将某些信息,明确地说,仅将可能在特定处理时 间,例如一个操作循环或两个操作循环内处理的信息等存储在非永久存 储器中。该第二实施方案还包括由许可证服务器执行的改进功能。

在第一实施方案中,在非永久存储器中执行所有的电子邮件处理。 在本第二实施方案中,使用虚拟存储器,它可包括本地存储器,即在服 务器自身内部的存储器和非本地存储器的组合,它可以是位于服务器外 部的存储器。在一个实施方案中,本地存储器可包括非永久存储器,并 且非本地存储器可包括磁盘驱动器和其它永久存储器。

在出现故障时,利用“信息节点(Inode)”服务器结合消息传输代理 来维持虚拟存储和用于该信息的备份/恢复系统。利用传输策略来管理消 息和队列。可利用在第一实施方案中所说明的任何技术来执行消息传输。 但在本实施方案中,消息与说明消息处理状态的元数据相联系。一旦处 理完成,就将消息排序,而后将其置于本地存储器中然后传送出去。

图8A示出了本实施方案的方框图。图8B示出了根据本实施方案处 理的消息的基本布局。消息具有两部分:以1500表示的实际消息主体, 消息路由信息1510,后者可包括标准路由信息,例如域名,目的地名等, 还包括以1520示出的元数据。

路由部分1510通常可包括“发出”地址、“到达”地址等。元数据 包括关于消息的额外信息。可将不同种类的元数据存储起来。例如服务 类元数据可说明不同的事情,该事情应该在发送前或发送后发生在该消 息上。事务类元数据可说明消息的布局。例如它的优先级、最大容量等。 历史记录类元数据说明了消息的记录,接收它的时间,对它已做过的事 情,例如它的传输状态,以及当前消息的不同部分存储的位置。

根据本系统,将电子邮件基于元数据进行排队。在此描述的消息处 理代理从元数据处,而不是从电子邮件自身那里获得关于电子邮件的信 息。可通过一定格式的电子邮件服务器接收电子邮件信息,在那里该信 息尚未做好传送准备。例如,电子邮件可包括“Hotmail.com”格式的地 址。这种信息不能用于发送电子邮件;相反,必须典型地借助于DNS查 询,找到与该名称相应的DNS。但是,直到已经找到DNS,消息还是尚 未做好发送准备。

在其它相似的情况下,可获得一定状态下的消息,在那里该消息尚 未做好发送准备。如本发明所述,某些消息需要服务,例如病毒检查等。 直到已完成该项服务/操作,该消息还是没有做好发送准备。在其它情况 下,消息的收件人服务器仅能够以规定速率接收消息,并且其它现有消 息可排在当前消息前。如上所述的负载平衡器可管理发送消息的速率。

利用元数据来说明消息的这些状况。一般来说,示于图8B的示例性 元数据通常包括所有的消息信息,通过它们可确定消息的情况或状况。 元数据可包括:

x-优先级,它表示消息的优先级,例如高、低或中等;

以x-QoS表示的服务质量,例如,x-QoS可指定传输必须例如在不超 过30分钟的时间内完成;

X-TOR可表示接收的时间,以便使模块能够确定从接收到开始所花 费的时间;

虚拟ID(x-Vid),例如可从一个服务器发出信息,尝试使该电子邮 件看上去就像它正从其它服务器上发出一样。虚拟ID使得该信息看来像 是自其它地址发出的。

元数据还可包括:

x-服务-vs,它表明电子邮件需要病毒扫描;x-服务-vs-c,它表明 病毒扫描完成。

其它元数据项目,以x-位置表示,它明确确定了消息的位置。

由查看所有元数据及其处理状态的发送代理所添加的其它元数据的 数据项为x-rts;或者说准备发送。

因此元数据将消息在其处理过程中曾经具有过的所有状态均存储起 来。其它元数据可包括寄件人、接受时间、重试、下次重试策略。

基础系统利用该元数据来确定用于该消息的路由。在图8A中所示的 基础系统示出了用于管理虚拟存储器的使用的单元。不同于在第一实施 方案中的那样所有的消息信息保留在非永久存储器中,本实施方案将消 息信息中的部分存储在本地/非永久存储器中,而将其它部分存储在远程 /永久存储器中。优选的是,非永久存储器还保存有更多关于“紧急”消 息,即在预定期限内,例如在某些个操作循环内,下一个循环或两个循 环内将发出的消息的信息。某些关于非紧急消息的信息存储在本地存储 器中。该消息将不会在预定的期限内发出。然而本地存储器存储的关于 非紧急消息的信息比存储的关于紧急消息的信息要少。可利用可供选择 的方法来确定什么消息是紧急的,这包括基于发送时间、优先级或其它 标准将消息限定为紧急消息。优选地,保存在非永久存储器中的消息至 少包括关于所有电子邮件的元数据。

图8A的基础方框图示出了消息传输代理800。该消息传输代理800 在以802表示的特定传输控制协议(TCP)端口上进行监听。此外,该消 息传输代理是一个“范例”,所以其它消息传输代理例如805也可以这样 称呼。消息传输代理存储以810表示的队列,该队列表示正在处理的信息 和电子邮件。

消息传输代理与虚拟数据存储管理器相联系,后者在此处称之为信 息节点服务器820。该信息节点服务器保存信息的清单825,该信息位于 可用物理存储器(“p存储器(pstore)”)中,并且它位于当前存储/非当 前存储的处理消息中。该信息节点服务器还保存消息的不同逻辑表达方 式。这可包括景象(views),例如以队列为基础的景象或优先级景象。实 际的消息存储器自身保留在p存储器中。

永久存储器以P存储器服务器830和835示出。一般来说,可将任意 数量的永久存储器用于实现该功能。该消息传输代理还与包括已前述过 的许可证服务器840在内的多个额外的服务相联系,而且在本实施方案 中,该消息传输代理还通过与协议反应器845及资源调度程序850相互作 用,来执行额外的功能。该资源调度程序管理通常以855表示的服务,例 如抗病毒及其它上面提到的服务。

图9进一步示出了关于消息传输代理800的详情。在操作中,位于消 息传输代理800内部的特殊传输代理938保存消息队列810,以用于它正 在处理的消息。位于那些队列中的元数据用于将队列排序,并确定待传 送的消息。如于此所述的传输代理938保存所有必要的信息,以确定怎样 以及何时传送消息。例如,具有较高优先级或传送保证的消息在队列内 部可被放置得较高,以便将它们较快地传送出去。服务质量还用于将该 队列再次排序。从接收到电子邮件开始的时间可同样用于将队列再次排 序,并同样确定是否该消息是“紧急”消息。

消息可位于虚拟存储器和/或任何P存储器内部的任何位置上。这使 得该传输代理938能够确定在不同位置上保存消息的不同成本。例如,如 果将消息保存在存储器中的成本和时间好于将其保存在磁盘上的成本, 那么可将消息保存在存储器中。这种分析是基于在策略基址932中存储的 “策略”通过分页分析来进行的。

位于消息传输代理内部的队列900还形成可存储消息例如902的虚拟 存储目标,其中每条消息包括不同种类的相关元数据,该元数据包括指 向存储在非本地存储器,例如P存储器830中的消息的任意部分的指针。 该指针904可指向外部存储器,例如P存储器830。其它指针,例如906 可指向本地的随机存取存储器,例如908。

队列管理器936和传输代理938可管理成本和需要执行的操作之间的 交替换位,该成本是将不同消息保持在不同种类的存储器中的成本。例 如,如上所述,消息可能不是一旦接收就做好了发送出去的准备。可将 处于处理过程中的消息列为非紧急消息,并将其存储在永久存储器中直 到它们做好发出准备。但是,消息的某部分优选地总是保存在随机或非 永久存储器中。这些部分优选地至少包括消息路由信息和元数据。但是, 通过上述应该注意的是,元数据中的一项是指向消息的其余部分的实际 指针。

以930表示的专用分页处理过程与队列899相互作用。该分页处理过 程调整每条消息的不同部分,以使得需要在后几个循环中传送的消息总 是能够获得的。该分页处理过程根据位于策略基址932中的规则进行操 作。还通过与传输代理938相互作用的队列管理器936将该队列再次排序。 该队列可如在第一实施方案中所说明的那样再次排序。

队列管理器936负责利用位于策略基址932中的消息传输策略,以确 定下一个将要传送的消息。策略规则932限定了用于下一次传输的策略。 示例性规则可包括在常规情况下,选择最陈旧的队列或最陈旧的消息, 其它规则可考虑“收件人接收数据有多快”;“是否所有消息均在其元数 据中具有特定的紧急标记”,“是否存在用于域调用的某种特定策略”, “服务质量是否要求发送”等。

消息传输代理800可与消息用户端代理940相联系以便将该消息插入 到消息传输代理中。该消息用户端代理响应消息中的标题,例如“来自” 和“发往”,来适当地路由这些消息。例如,一个消息用户端代理,例如 940可连接至多个消息传输代理,并且可将该消息基于队列的内容路由到 这些传输代理。

将每条新消息均添加到队列900中,并且队列管理器936基于位于策 略基址中的信息,确定是否仅将指向消息的指针保存在本地存储器中, 或者是否将保存全部信息。队列处理器936还管理位于队列内部的信息。

传输代理938与队列管理器936合作。队列管理器936确定消息传输 策略。例如,对于每个传输循环,该代理与队列管理器一起确定最好的 负载,以根据适用于传输的消息是哪些以及有多少消息要发送而将其传 输至例如同一目标。传输代理和队列管理器在几个循环前就注意保存位 于本地存储器中将要发送的信息。

与位于第一实施方案中作为域自身的函数的消息队列不同的重要特 征在于,这些消息队列成为用于描述消息的元数据的函数。该元数据可 包括域信息,但还可使用其它因素来形成队列。

虚拟存储器是一种可跨越存储器和磁盘存储器的虚拟装置。图10示 出了某些消息例如1002是如何存储在本地存储器中并可直接获得访问 的。其它类型的消息例如1004存储在磁盘上并可被检索到,但这需要额 外的资源和/或时间来传输。虚拟存储是有效地包含存储器和磁盘的存储 寻编址模式。但是,将所有的页映射到以1010表示的虚拟存储器。虚拟 存储器1010指向本地存储器1002和/或远程存储器1004,来描述每条消 息。当需要访问时,将所需要的页调入存储器中。

此外,位于存储器1010中的每项信息包括元数据形式的虚拟存储器 句柄。该虚拟存储器句柄确定了消息的传送能状态,说明消息实际存 储位置的信息存储器信息,以及关于确定其传送能力信息的详情。

这种存档系统使队列能够作为数据结构的抽象概念而存在,该概念 用于在传输代理938准备好用于传输的信息前,将存储器消息存储起来。 队列将虚拟存储器名称空间1010用于存储,因而排序功能可形成为指向 该信息的指针。

排序功能可以域名为基础,或可更为复杂,以例如虚拟服务器为基 础。队列还可通过服务质量的保证加以组织。

存档系统

形成存档系统的不同部分之间的相互作用在图11中进一步详细示 出。存档系统用于实现虚拟存储,并允许永久一本地存储和非永久一远 程存储。存档系统还提供了用于存储器传输代理的查询机制。存档系统 还划分消息,并允许分别处理不同的消息部分。

“信息节点”服务器1100形成用于控制访问和形成消息的主信息服 务器。每次将对任何消息作出的任何改变通知信息节点服务器。该信息 节点服务器在本地存储器中包含每条信息的一览表。该信息节点服务器 可在其内部形成的队列结构中组织消息,以1102表示。以1104表示的查 询功能允许按照规定的约束条件来查询消息。

恢复代理1106监控消息的变化,并存储能够在系统崩溃时予以恢复 的信息。物理存储器1120形成与信息节点服务器系统无关的物理远程存 储装置。在信息节点服务器上,该恢复代理1106与物理存储器1120相联 系,并将所有对P存储器作出的改变记入日志。以1120表示的物理存储 器可包括多个以物理存储器I 1121和物理存储器II 1122表示的子系统。 这种系统允许使用任意数量的消息传输代理和任意数量的信息节点服务 器和/或P存储器。

消息存储的工作流如图12中所示的流程图进行操作。在1201处,启 动信息节点服务器。多个物理存储单元在1210处向信息节点服务器登记。 在1220处,接收到来自消息传输代理800的新消息。消息传输代理将消 息推入队列中,并在1220处标记出用于磁盘存储器的请求。在1230处, 在下一个存储循环过程中,选择将要发送到永久存储器的消息,并且信 息节点服务器选择用于存储的位置。接着,在1235处,信息节点服务器 建立表示存储位置的元数据,将实际消息存储在该存储位置上,并将元 数据插入该序列中以代替消息信息。在1240中,消息传输代理将该消息 写入指明的存储器,并在1245处接收指派给信息节点服务器的永久存储 器确认ID。在1250处,保存一个记录,以作为用于恢复的检查点。

队列管理器936与消息传输代理相联系,并操作来监控关于队列的请 求模式。它依靠MTA策略来管理某种队列状态。例如,每种MTA可具 有500MB的标称队列大小或其它的大小。

该队列管理器根据图13中的流程图进行操作。在1300处,它形成队 列。在1320处,队列管理器利用位于策略基址932中的规则来尝试预计 用于下一个或下两个循环的请求模式。在1325处,它命令队列工作者预 取消息。

在1330处,队列管理器请求来自信息节点服务器的消息。在1330处, 这种查询的示例可包括获得具有ID号123的消息,获得10条Hotmail消 息等。信息节点服务器在1340处将p存储器地址返回,并在1350处MTA 按照队列管理器/资源库功能的要求从规定p存储器中检索消息。每条消 息包括表示实际存储状态的信息。一旦将信息传送到预期的邮箱中,那 么就可将它的主体从p存储器中删除,并对信息节点服务器进行适当的 更新。

因此消息传输代理队列变成已在信息节点服务器队列中可以获得的 冗余信息。如果MTA信息丢失,那么仅丢失了相互影响的信息,例如 DNS状态等。一旦重启,队列可立即重建。

这种体系结构的重要特征在于恢复模式。该消息传输代理包括如上 所述的消息队列810。这种队列的每一个中的数据还可在信息节点服务器 中获得。例如,参照示于图8所示的队列810所获得的信息还通过示于图 11中的队列指针1102进行“复制”。每次在消息传输代理800中的资料 发生变化,MTA就报告对信息节点服务器820发生的改变,这样就更新 了存储的数据并进而影响适当的信息节点服务器队列。当消息传输代理 失效时,某些相互影响的信息,例如DNS状态会丢失。然而,如果消息 传输代理失效,那么会启动新的MTA,并在信息节点服务器中从备份队 列中立即重新填充它的队列。在最坏的情况下,可能将该消息传送两次, 但不会有信息丢失。

信息节点服务器如上所述存储消息元数据和队列。恢复代理1106保 存所有这些数据以作为日志信息和检查点信息。据此就可恢复每个单元。

物理存储是执行提供永久存储器,例如硬盘、权能(capability)的接 口设备,且可以是执行,例如随机存取图像器件(RAID)磁盘和任何相 似物的任何存储装置。这种系统还在提供的单元之一中实现p存储器接 口。

图14示出了资源代理器的详细方框图。该资源代理器850如其名字 所暗示的那样,在系统中控制存取不同的资源。资源代理器850以一个单 独的单元的形式示于图8,但它也可以是信息节点服务器的一部分。资源 代理器配合不同的服务并在不同模块内部访问。以850表示的资源代理器 表示一个允许访问服务855的模块。该资源代理器包括以851表示的嵌套 资源记录。该资源记录表明在给定配置中的可用服务。例如,病毒软件 可以是一种可利用的资源,它可在851中记录。资源记录是一种任何资源 均能够定制的服务,所以例如如果MTA监听服务,那么它将会了解抗病 毒服务的有效性。应用软件要求利用请求管理器1405的服务。也可利用 其它服务。例如,日期服务的引用可将这种引用添加到每封电子邮件中。

每个任务可查询任务管理器1400用来允许访问规定的资源。该任务 管理器与请求管理器1405相联系以协调访问。例如,将请求访问病毒服 务作为任务A1。当A1到达任务管理器队列的前面时,将该请求传送到 请求管理器1405,这样准许访问病毒服务。当完成时,请求管理器通知 任务管理器以告知通知引擎1410。这用来改变与消息相关的元数据,以 表明该任务已完成。同样的操作发生在对P存储器830的访问,以及其 它的访问中。任务管理器1400能够不同时期地准许服务。

在描述了所有的单独部件后,可以看出,这些单独部件中的每一个 与在信息流管理器中的工作流定义一起工作,以确定体系结构的事务过 程,例如收邮件、查毒、标记通信以及发送通信。

图15示出了操作的简化流程图,该操作由传输代理执行以发现下一 条待检索并添加到用于本地传输的队列中的消息。应该理解,图15示出 了示例性的可执行操作,以及可用于改变这些操作的位于策略数据库中 的不同策略。在图15中的每个模块可具有与优先级相关的规则,并且可 使用不同的规则/不同的优先级。

在1500处,过程开始于初始步骤,即确定规定某特定是否已做好发 送元数据组的准备。如果回答是:是,那么与元数据相关的消息就做好 了发送准备。流程前进到确定元数据是否表明存在服务质量的保证的 1505处。如果是,则即刻将消息添加到准备发送的队列(视为紧急)中, 并使其位于所有其它不具有可比较程度服务质量的保证的消息之前。这 可以实现不同程度的服务质量的保证。

如果不存在服务属性的保证,则在1510处确定是否存在针对相同域 的现有队列,如果不存在,就在1515处将该消息添加到新的队列中。如 果存在现有队列,在1520处确定该队列是否已满。如果是,在1525处消 息的优先级增加,并且退出该过程,直到下次处理消息。如果在1520处 队列未满,就在1530处将消息添加到队列中,并退出程序。

如果消息在1500处未做好发送准备,那么就在1540处查看消息是否 处于“处理过程中”;就是说,已经将其提交到资源代理器中,用于待执 行的某种服务。如果是,退出程序直到下次。如果消息未处于处理过程 中,那么在1545处检查确定DNS是否完成。如果未完成,就在1550处, 将消息发送到资源代理器以进行DNS查找。如果DNS完成,就在1555 处查看所有已请求的服务是否已完成。如果未完成,那么在1560处通过 资源调用程序请求那些服务。在1565处,查看其它服务是否仍然未完, 如果是,在1570处要求该服务发生作用。如果完成了所有的服务,在1570 处将元数据标记为准备好发送。所有的上述检查可以是简单的元数据检 查,这是由于元数据存储了消息的情况和状态。

而后做好发送消息的准备。在这一点上,消息传输代理800连接至许 可证服务器840上,以验证是否授权系统进行进一步的消息传送。许可证 服务器还监听TCP端口802,因此它可确定不同消息的发送状态。可由 许可证服务器执行的不同操作来确定是否许可证是有效的。许可证可对 于不限定用途、或特定处理过程、特定位置标识(IP)地址等有效。因此, 确定许可证是否有效可能涉及确定已发送了多少消息、多少个处理过程 正处于使用中,以及哪个或哪些个IP地址正处于使用中。

许可证服务器存储以841表示的规则清单。这些规则可通过授权对规 则进行改变或处理而在许可证服务器中发生变化。将这种规则优选地做 出标记或加密,以避免对许可证服务器的不轨使用。例如,一种可能的 规则可以是一种在消息传输代理中查询“你运行了多少处理过程?”的 查询程序。还可通过TCP端口直接与许可证服务器发生联系。这能够基 于抱怨来激励某人,并保存针对所发送的多封电子邮件的说明。

尽管上文中仅详细公开了几个实施方案,但其它改进也是可能的。 所有的这些改进均落在随后的权利要求的范围内。

相关申请

本发明要求于2004年5月27日提交的名为“利用电子邮件中的元数 据来管理虚拟存储器的电子邮件传输系统”、申请号为10/857,601的美 国专利申请的优先权,并将该文献的内容全部合并于此作为参考。

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈