CN101507161B - 用于在消息通讯系统内部路由消息的系统和方法 - Google Patents

用于在消息通讯系统内部路由消息的系统和方法 Download PDF

Info

Publication number
CN101507161B
CN101507161B CN2006800147300A CN200680014730A CN101507161B CN 101507161 B CN101507161 B CN 101507161B CN 2006800147300 A CN2006800147300 A CN 2006800147300A CN 200680014730 A CN200680014730 A CN 200680014730A CN 101507161 B CN101507161 B CN 101507161B
Authority
CN
China
Prior art keywords
node
message
destination
server
transmission
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.)
Expired - Fee Related
Application number
CN2006800147300A
Other languages
English (en)
Other versions
CN101507161A (zh
Inventor
D·艾齐利欧普塔斯
E·D·特里比尔
M·E·皮尔森
L·沃曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101507161A publication Critical patent/CN101507161A/zh
Application granted granted Critical
Publication of CN101507161B publication Critical patent/CN101507161B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/308Route determination based on user's profile, e.g. premium users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • H04L45/488Routing tree calculation using root node determination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

描述了系统和方法,该系统和方法提供增强的稳定性、增加的可预测性、降低的传输成本并且节省经计算机网络路由消息的带宽。本系统和方法还包括提供了改善的消息传输,其中该消息被传输至与目标投递节点最接近的节点。如果有可能投递至目标节点,该消息传输在网络中的故障点处停止,其中对该目标节点的投递在稍后完成或者将该消息返回给发件人。

Description

用于在消息通讯系统内部路由消息的系统和方法
技术领域
本发明的各实施方式涉及经网络向一个或多个收件人路由消息的领域。本发明的各实施方式尤其涉及以最小的传输成本经网络可靠路由电子邮件的系统和方法;特别是在单个系统对系统传输能够传递对多个收件人的责任时;尤其是在涉及存储并转发责任传输的系统中。本发明的实施方式还有利地提供了系统和方法,它们在使得管理的网络通信量最小的同时,使得寄往位于不同节点上多个收件人的邮件的传输网络通信量最小来降低成本;同时还防止由于网络的前后不一致的意见所导致的无限循环。
发明背景
某些早先的系统和方法提供了基于由组成该网络的不同节点对网络成本所达成的一致而经网络路由邮件的技术。然而这些系统在传输成本变化或波动时缺乏稳定性,因为各节点必须在邮件传输之前对传输成本达成一致。这些系统还会为解决各节点对网络拓扑结构的观点的不同所增加的复杂性或网络通信量付出过高的代价。这样,就会不必要地延迟邮件直到对成本达成一致。
其他的系统和方法提供了基于到收件人的最短独立路径计算路由路径的路由至多个收件人的技术。然而这些方法通过经由多条链路将相同的邮件文件发送给多个收件人而不必要地使用了带宽。
依赖于在关于网络拓扑结构的应用程序级上一致的系统,对管理员而言是不可预知的。本系统因为其行为在广泛的网络条件下可预测,所以使得它能够更容易地进行诊断。本发明的系统和方法确保如果消息无法到达其最终目的地,则该消息也能尽可能地接近该预定目的地。
因此,就希望一种经由网络将邮件可靠路由给一个或多个收件人的系统和方法以解决这些或其他缺点中的一个或多个缺点。
发明概述
本发明通过提供一种系统和方法来克服现有技术中的各种缺陷,该系统和方法经由网络路由消息而在发送和接收节点之间不要求传输成本的绝对一致,在该系统和方法中,消息被中继给按传输成本最接近接收节点的可用节点。本系统和方法还能够在经由网络将一消息路由给位于不同节点上的多个收件人时优化网络带宽,这是通过延迟该消息的分岔直到最后分岔节点来实现,这种分岔对于网络路由到各收件人对其扩展是很普通的,而这些节点持有相同的拓朴视图。本系统和方法还通过基于各节点的可用时间表把邮件路由至离收件人节点最近的节点来改善可靠性。此外,本发明的系统和方法通过确定该消息应被传输至的一个或多个可用节点,以及在一节点不可用的情况下选择该消息应被传输至的次优节点来优化将消息路由至收件人的速度。
根据本发明,一个方面提供了一种经由计算机网络传输消息的计算机实现的方法,其中该计算机网络包括当前节点、目标节点以及与该当前节点和目标节点之间的网络相连接的一个或多个中间节点。本方法包括创建位于网络上的对目标节点的传输成本小于当前节点对目标节点的传输成本的中间节点的目的地可选表,其中各中间节点根据它们的的最小传输成本被排列优先级。尝试向目标节点传输消息。如果针对目标节点的消息传输失败,就作为在目的地可选表中标识的中间节点的优先级的函数而尝试向至少一个中间节点传输该消息。
本发明的另一个方面包括在消息通信网络的当前服务器和目标服务器之间传输消息的消息通信系统。该系统包括当前服务器、目标服务器、以及连接至该网络的一个或多个中间服务器。该系统还包括位于该网络上并具有针对该目标服务器的传输成本的中间服务器的目的地可选表,其中各中间服务器根据它们的最小传输成本被排列优先级。当前服务器被配置执行尝试向目标服务器传输消息的计算机可执行指令。如果针对目标服务器的消息传输失败,那么当前服务器就随着在目的地可选表中标识的中间服务器的优先级的变化而尝试向至少一个中间服务器传输该消息。
本发明的另一个方面包括具有用于经由计算机网络传输消息的计算机可执行指令的计算机可读介质。该网络包括当前节点、目标节点以及与该当前节点和目标节点之间的网络相连接的一个或多个中间节点。计算机可执行指令包括用于确定从各中间节点到目标节点的传输成本并且根据各中间节点的最小传输成本排列它们的优先级的指令。该指令还包括用于尝试向目标节点传输消息的指令;如果针对目标节点的消息传输失败,就随着在目的地可选表中标识的中间节点的优先级的变化而尝试向至少一个中间节点传输该消息。
另外,本发明还可以包括各种其他的方法和装置。
其他的特征有一部分显而易见并有一部分将在下文中指出。
附图简述
图1是在消息路由网络中的一个节点网络和上述节点之间的链路的典型示例图。
图2是示出了在其中经网络传送的消息被传输给一个或多个收件人的本发明的一个实施方式的示例性进程的流程图。
图3是示出了在其中可以实现本发明的合适计算系统环境的一个示例的框图。
贯穿于附图,相应的参照符号指示相应的部分。
本发明的详细描述
首先参考图1,提供了在其中可以实现本发明的消息路由网络中的一个节点网络和上述节点之间的链路的典型示例图。计算机网络100包括能够经由连接至各节点的链路发送并接收消息(诸如电子消息、电子邮件、信息包等)的多个节点或消息传输代理(MTA)。每个节点都含有收件人,这些收件人接收通过网络从发送节点路由至该收件人所在的目标节点的消息或邮件。连接网络100各节点的线段附近的黑体数字表示与经由各链路传输消息相关联的假定传输成本。在此示例中,与消息从节点102(夏威夷)发送至节点104(西雅图)相关联的传输成本可以是200。还应该考虑成本与网络可用性成反比,并由此可将成本看作是使用链路的机会成本。在此示例中,出于说明的目的使用固定成本,但是在更为先进的实现中,实际成本随着所占用/消耗的带宽动态更新。
作为经网络路由消息的示意,位于节点102(夏威夷)的消息发件人将邮件发送给位于UK格林威治的节点108的第一收件人,以及位于法国巴黎的节点112的第二收件人。如果将此消息作为两个分离的消息分别从夏威夷发送至格林威治以及从夏威夷发送至巴黎,则把各文件发送给两个收件人的总传输成本将会是740(例如,200+80+90(从夏威夷到格林威治)加上200+80+90(从夏威夷到巴黎)。
然而,如果将该消息作为单个文件通过到不同收件人的路径所公用的路由而发送,就能够降低传输成本并且能够节省网络带宽。于是,如果将该消息作为单个文件沿着从节点102(夏威夷)至节点104(西雅图)的公用路径传输,并在节点106(纽约)处分为两条消息分别发送至节点108(格林威治)和节点112(巴黎),则传输该邮件的总成本将会是460(例如,200+80(夏威夷到纽约)加上90+90(纽约到格林威治以及纽约到巴黎)。当这些结点不是分叉点而且也没有网络故障时,网络带宽通过避免应用程序级传输对这些节点的干涉而得以节省。例如,消息可以直接从夏威夷发送至纽约。然而,如果夏威夷无法到达纽约,就会做出将该消息从夏威夷传输至西雅图的尝试。
当消息在一节点处分叉时,该节点负责将该消息传输至在通向目标节点的路径上的后续节点。于是,例如该消息在一节点处被分解并且被发送至三个不同节点,则当前节点对该消息传输的继续负责。一旦接收节点接受该消息,该接收节点就承担将该消息传输至在通向目标节点的路径上的下一个节点的责任,并且由此向前,直到该消息由目标节点所接受。
在本发明的系统和方法的一个实施方式中,通过延迟消息的分岔直到两收件人的最后公用节点,来优化该消息经网络的路由。这一实施方式通过将消息中继至根据传输成本离收件人目标节点最近的分叉公用节点,就能够有利地降低节点102(夏威夷)传输成本,节省了可用网络带宽,并且还改善节点102(夏威夷)收件人接收消息的可靠性和速度。使用上述示例,本发明的系统和方法就能够延迟在节点106(纽约)处消息的分岔,而是将该文件转发至两收件人最后的分叉公用节点,即根据图1,为节点110(伦敦)。在节点110(伦敦)处,该消息最终被分岔并被传输至节点108(格林威治)和节点112(巴黎)。于是,用于将该消息传输至两收件人的传输成本将会是400(例如,200+80+100(夏威夷到伦敦)以及10+10(伦敦到格林威治以及伦敦到巴黎)。
在此所述的对一节点的接近程度或距离的描述指的是将一消息从一节点发送至目标节点所要求的传输成本。于是,离目标节点“最近”的节点将会是把一文件发送给该目标节点所需的传输成本或其他抽象(诸如,上述机会成本)成本最低的节点。
通过网络将消息传输至离收件人最近的节点,这在网络上出现会延迟消息传输的故障时很有意义。通过将消息尽可能地传输到离收件人最近,就在发生网络故障的情况下做出了朝向目标节点的移动。在此情况下,该消息能够在网络变为可用时被快速传输至收件人。这还能处理在相同时刻不是全部链路都可用的情形。例如,从初始节点到目标节点的端对端连接可能从未真正可用过。然而通过利用本发明的方法和系统,则仍旧可以往前进,并且该消息最终也将到达。此外,网络节点对离它们较近的节点相比于离其较远的节点通常具有更好的或者更为可靠的成本和路由信息。于是,如果在收件人目标节点附近发生节点故障,则在附近的一个节点既能够识别通向该收件人的一条有成本效率的可选路径,同时该路径又确保信息由收件人所接收而不是作为无法投递被返回给发件人。
可以使用若干种方法来确定在文件无法直接传输至目标节点的情况下应该把该信息传输至哪个节点。
在一个实施方式中,识别一条从当前节点开始以目标节点结束并且含有连接至位于该当前节点和目标节点之间的网络的一个或多个中间节点的线性路径。如果目标节点不可用,就尝试将该文件传输至最接近该目标节点的中间节点。如果该节点也不可用,则做出将该消息传输至次接近该目标节点的中间节点等等,直到没有尚未尝试的其他中间节点剩余,或者直到已经到达预定的尝试次数阈值。在此情况下,消息被延迟以供随后重新发送或者作为无法投递而被返回给发件人。
在另一个实施方式中,识别与该目标节点传输的成本在指定范围内的各节点。随后按其传输成本的优先级次序组织各节点,其中带有最低传输成本的节点具有最高的优先级。这样,如果对目标节点的传输尝试失败,接下来的尝试就针对最高优先级节点,即传输成本最低的节点。如果该传输尝试失败,第三次尝试就针对最次高优先级节点(即,具有次高传输成本的节点)做出。重复此进程直到没有尚未尝试的其他节点剩余,或者直到已经到达预定的尝试次数阈值。如上所述,在此情况下,消息被延迟以供随后重新发送或者作为无法投递而被返回给发件人。在另一个实施方式中,可以识别围绕第一成本范围形成同心圆的第二最小传输成本范围。针对第二范围内各节点做出的传输尝试与上述有关最小成本范围的相类似。进一步的实施方式可以包括传输成本范围的补充同心圆。
在另一个实施方式中,接下来是“二等分再处理”进程,在其中识别位于当前节点和目标节点之间的中间节点的线性线段。如果对目标节点的传输尝试失败,就做出将消息传输至中间节点,例如“节点D”的尝试。如果对节点D的传输尝试失败,就做出将消息传输至位于当前节点和节点D之间的半路程处的中间节点。持续此进程直到没有其他节点剩余,或者直到已经到达预定的尝试次数阈值。如上所述,在此情况下,消息可以被延迟以供随后重新发送或者作为无法投递而被返回给发件人。
在另一个实施方式中,可以利用加速再处理进程来识别可将消息传输给它的潜在可选节点。如果目标节点不可用,该加速再处理进程就识别例如是离目标节点的四个节点的节点。如果将文件发送给该节点的传输失败,就做出将文件发送给例如12个节点远的节点等等,直到没有其他节点剩余,或者直到已经到达预定的尝试次数阈值。如上所述,在此情况下,消息可以被延迟以供随后重新发送或者作为无法投递而被返回给发件人。
在又一个实施方式中,可以基于各独立节点的运行时间表做出将消息发送到离目标节点尽可能近的地方的尝试。该方法可以与上述涉及在无法将消息直接传输至目标节点的情况下传输消息的再处理策略所标识的各模式中的任何模式相结合。例如,在当前节点和目标节点之间路径由中间节点A、B和C组成,其中A离目标节点最远而节点C离目标节点最近。如果现在是3:30p.m.而节点A从1:00p.m.到4:00p.m.接收文件,而节点B从3:00p.m.到6:00p.m.接收文件,而节点C从6:00p.m.到10:00p.m.接收文件,那么就会根据运行时间表首先做出将该消息传输至作为离目标节点最近可用节点的节点B的尝试。
本发明的另一个方面是它路由消息的稳定性,而不考虑可由网络中不同节点确定的变动的/全局弱化的、一致/不一致的传输成本。网络节点之间路由消息的传输成本通常由节点或MTA操作者之外的第三方提供。于是,常常会有两个节点不被提供相同的传输成本信息,特别是在单一的时间点上。这样收件人节点可能会确定通向目标节点的一条不同的路径,它比由发送节点确定的路径更短,即成本更低。例如,发送节点A确定通向目标节点D的最近传输成本路径是将信息从A传输至B至C最后到达D。因为传输成本有时不一致,所以节点C可能具有通向D的最短路径是先将其发送回B的成本信息。于是就会出现消息在节点B和节点C之间来回循环的问题。
替换延迟传输消息直到各节点对传输成本达成一致的做法,本发明监视或跟踪一文件在其通向目标节点的路径上所经过的节点的数目。例如,在email文档中,该文件在其从发件人节点到目标节点的路径上所经过的节点被添加至SMTP报头,或者用于其他系统的其他机制。例如,X.400为此目的利用包封(Envelope)这一概念。这样,如果一文件在其通向目标节点的路径上所经过的节点数超过最小阈值,则该节点就在一时间段(一稳定(settling)周期)内暂停进一步的传输以允许传输成本在网络间的稳定。在稳定周期过后,就根据最短路径(最低传输成本)尝试将该消息传输至目标节点并且继续监视文件提供各节点的次数。如果传输成本在所经过的时间周期之后已经稳定,该文件就被成功发送给通过地址接收它的目标节点。然而,如果传输成本仍然没有稳定并且文件循环仍在继续,那么就在一文件在其通向目标节点的路径上所经过的节点数达到最大阈值时终止该文件循环。如果到达最大阈值,就把该文件标记为不可投递和/或将一无法投递的报告附至该文件,并将其返回给发件人。
在一个实施方式中,最小阈值是10个或更多的节点。在另一个实施方式中,最小阈值是10到15个节点。
在一个实施方式中,稳定周期可达一小时。在另一个实施方式中,稳定周期可达30分钟。在又一个实施方式中,稳定周期可达15分钟。
在一个实施方式中,最大阈值是20个或更多的节点。在另一个实施方式中,最大阈值是25到35个节点。
在一个实施方式中,本发明的计算机网络包括连接至因特网的节点。在另一实施方式中,本发明的计算机网络是横跨多个国家的公司或大学的网络。在另一实施方式中,本发明的计算机网络是横跨多个州的公司或大学的网络。在另一实施方式中,本发明的计算机网络是横跨多个城市的公司或大学的网络。在又一实施方式中,本发明的计算机网络是横跨单个城市或公司或大学校园内多幢楼的公司或大学的网络。
通过监视或跟踪一文件所经过的节点数量,替代了延迟该消息的发送直到成本完全稳定的做法,就能够在网络上出现局部传输成本不等的情况下,得到一个向收件人传输消息的更稳定路由的系统和方法。因此,本发明的系统和方法并不延迟传输消息直到所有的节点对成本达成一致,而是将各文件传输至更接近目标节点的节点。如前所述,相对于更远的节点,各节点对在附近的节点具有更好的传输成本和网络状态信息。这样通过将消息传输至离目标节点更近的节点,各文件就不会被延迟,并且更接近目标节点的各节点更有可能具有更为精确的成本和网络状态信息,从而允许其成功地将该文件传输至目标节点。
接下来参考图2,提供了本发明一个实施方式的示例性进程的流程图,在其中经网络传送的消息被传输至一个或多个收件人。该流程图描述了由一节点(下文中将其称为“当前节点”)所执行的进程。在202处,当前节点接收要发送给位于该当前节点之外的一个或多个目标节点上的一个或多个收件人的消息。当前节点可以是发送一消息的原始节点也可以是与在原始发送节点和目标节点之间的网络相连接的一个中间节点。
在203处,计算该网络上的最低成本路径以及节点的分叉点。这些方法在本领域内周知并且不限于任何特定的计算。对系统配置的变化进行监视并且在系统配置改变时重新计算最低成本路径和分叉点。
在204处,做出该消息是否已被传输至MIN数目的节点的判定,其中MIN是预定的最小阈值数。如果文件已经传输至的节点数目超过该最小阈值数,就在206处将该文件搁置一预定稳定周期以允许传输成本的稳定。
在208处,做出该消息是否已被传输至MAX数目的节点的判定,其中MAX是预定的最大阈值数。如果文件已经传输至的节点数目等于该最大阈值数,就在210处将该文件返回给发送方并将其标记为无法投递。在一个实施方式中,向发件人提供进一步描述该文件投递失败的无法投递报告。
在212处,当前节点建立一目的地表,该表识别与将消息发送至该网络内各节点相关联的传输成本。该目的地可选表还根据与从当前节点向其传输消息相关联的最小传输成本排列了网络上各节点的优先级。在214处做出该消息是要被发送给位于单个节点上的一个或多个收件人还在该文件要被发送给位于两个或多个节点上的两个或多个发件人的判定。
如果判定该消息是要被发送给位于单个节点上的一个或多个收件人,就在216处将该消息添加至用于传输至目的地节点的队列。
在218处连接管理器算法确定该邮件应该被送至目的地节点。在220处该连接管理器算法首先尝试将该消息直接发送给在该消息中标识的目标节点。如果该文件因为不存在直接连接或者因为目标节点出于某种原因(例如,组件故障、带宽限制、网络故障、配置差错、低级系统策略等)不接收该文件而无法被直接发送至该目标节点,该文件就被传输至在目的地可选表中标识的尚未被当前节点尝试的最高优先级节点。在222处,当前节点判定该文件是否在X次尝试内被成功传输至该目的地节点,其中X是由当前节点进行的预定的传输尝试次数。可选地或者附加地,预定的传输尝试次数X可以包括在其内必须发送本消息的预定时间限制。如果该文件被成功发送给目的地节点,则当前节点的责任就已履行并且该进程结束。
在222处如果当前节点判定该文件没有在X次尝试内被成功传输至该目的地节点(或者已经超过关于X的时间限制),在224处当前节点就判定是否已经对目的地可选表内所标识的所有目的地节点做出了邮件传输尝试。如果尚未对所有被标识的目的地节点做出尝试,在220处当前节点就尝试对尚未尝试的最高优先级节点发送消息。如果已经对所有被标识的目的地节点做出了投递尝试,则当前节点就在226处判定针对所有节点的投递是否尝试了Y次,其中Y是由当前节点做出的预定的传输尝试次数。可选地或者附加地,预定的传输尝试次数Y可以包括在其内必须发送本消息的预定时间限制。如果当前节点没有尝试投递Y次(或者已经超过关于Y的时间限制),在228处该消息就被搁置一指定时间段以允许网络修复。在这一指定时间段过后,在218处连接管理器重新判定是否应该将该邮件发送至目的地节点。
如果当前节点已经尝试投递Y次或者已经超过当前节点必须投递该消息的时间限制,当前节点在230处判定该消息是否寄往具有公用分叉节点的多个目的地。如果是,在232处该文件就为该独立目的地而非分叉节点重新排队,并且在216处被添加至该队列。
在230处如果当前节点判定该消息是寄往位于单个目标节点上的一个或多个收件人,在210处该文件就被返回给发送方并被标记为无法投递。在一个实施方式中,无法投递报告被提供给发件人,它进一步描述该文件的投递失败。
在214处如果当前节点判定该消息是寄往位于两个或多个不同节点上的多个收件人,就在234处创建其中当前节点是根的最小生成树。在一个实施方式中,最小生成树被预先计算并且用于传输多个不同的消息。生成树本地分区表在236处创建。它是编码有关该网络的最小成本生成树的最小生成树。该最小生成树用于找出分叉点。利用最小生成树和生成树本地分区表,当前节点在238处识别关于各收件人的最后分叉节点。如果在240处判定当前节点是关于各收件人的最后分叉节点,在242处该消息就分岔至各收件人的目标节点并且在216处将该消息放入队列。
如果当前节点不是分叉节点,当前节点就在244处根据有关每一组的最后分叉节点对收件人目的地节点进行分组并且在216处将分组的目的地放入队列。
在本发明的一个实施方式中,如图2所述,最后分叉节点可能不可用或者无法接受尝试向其发送的消息。在此情况下,本发明就在当前节点分岔该消息,从而以额外的传输成本和带宽确保将该消息成功传输至收件人。于是,当以延迟分岔文件直到最后分叉节点的方式首次尝试传输消息时,如果延迟分岔将会引起该文件延迟投递或不可投递时,本系统和方法就替代地提前分岔该消息,籍此将该文件传输至收件人。于是因为相信对于收件人能够接收到该消息比节省额外的传输成本和带宽更为重要,而该额外的传输成本和带宽与延迟该文件并在最后分叉节点处分岔该文件相关联,所以该文件就被提早分岔。这一示例在图1中举例说明,其中当前节点是试图向节点110(伦敦)转发消息的节点106(纽约),而节点110(伦敦)是位于节点108(格林威治)和节点112(巴黎)的收件人的最后分叉节点。如果节点106(纽约)无法向节点110(伦敦)转发消息,那么它就在230处分岔该消息收件人并且将两消息放入队列,其中一个消息被传输至节点108(格林威治)而另一消息则被传输至节点112(巴黎)。于是,传输成本从120增加至180,但是代替了消息的延迟以及将该文件作为无法投递返回给发件人的情况,该文件被直接发送给节点108(格林威治)和节点112(巴黎)的收件人节点。
在另一个实施方式中,该系统和方法维护所有近来失败的连接的一个高速缓存。在另一个实施方式中,该系统和方法维护按各失效连接经过的邻近节点分组的所有近来失败的连接的一个高速缓存。这些实施方式可用于避免尝试向近来失败节点传输消息并籍此避免延迟文件的传输。在一个实施方式中,维护在一预定时间段内出现的失败连接的一个高速缓存。在一个实施方式中,该时间段是最近的六个小时。在另一个实施方式中,维护在最近一小时内出现的失败连接的一个高速缓存。在另一个实施方式中,维护在最近三十分钟内出现的失败连接的一个高速缓存。
在一个实施方式中,做出同时向多个可选节点传输消息的传输,而非一次打开一个对可选节点的连接。在此实施方式中,选择最接近最终目标并在预定时间内(例如,一秒钟内)传输成功的节点。如果在预定的时间段内没有成功接受的节点,那么就使用首先成功接受的节点。如果没有成功,则可以使用更长的时间段。
在一个实施方式中,如果当前的连接“较慢”,即字节/秒明显低于平均水平,则做出打开与“靠近的”节点的连接的尝试以传输第二消息。如果“靠近的”节点处于“平均水平”或以上,就应该停止向该“较慢”节点发送消息以支持向“靠近的”节点的发送。
图3示出了计算机130形式的通用计算设备的一个示例。在本发明的一个实施方式中,诸如计算机130等计算机适用于在此处所示和描述的其它附图中使用。计算机130具有一个或多个处理器或处理单元132以及系统存储器134。在所示的实施方式中,系统总线136将包括系统存储器134的各种系统组件耦合到处理器132。总线136表示若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各类总线体系结构的处理器或局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机130通常至少具有某一形式的计算机可读介质。计算机可读介质可以包括易失性和非易失性介质、可移动和不可移动介质,它可以是可由计算机130访问的任一可用介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、消息结构、程序模块或其它消息等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。例如,计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机130访问的任一其它介质。通信介质通常具体化为诸如载波或其它传输机制的已调制消息信号中的计算机可读指令、消息结构、程序模块或其它消息,并包括任一信息传送介质。本领域的技术人员熟悉已调制数据信号,它以对信号中的信息进行编码的方式设置或改变其一个或多个特征。有线介质如有线网络或直接连线连接等,以及无线介质如声学、RF、红外和其它无线介质等是通信介质的示例。上述任一的组合也应当包括在计算机可读介质的范围之内。
系统存储器134包括以可移动和/或不可移动、易失性和/或非易失性存储器形式的计算机存储介质。在所示的实施方式中,系统存储器134包括只读存储器(ROM)138和随机存取存储器(RAM)140。基本输入/输出系统142(BIOS)包括如在启动时帮助在计算机130内的元件之间传输信息的基本例程,通常储存在ROM 138中。RAM 140通常包含处理单元132立即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图3示出了操作系统144、应用程序146、其它程序模块148和程序数据150。
计算机130也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。例如,图3示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器154。图3还示出了对可移动、非易失性磁盘158进行读写的磁盘驱动器156,以及对可移动、非易失性光盘162,如CD ROM或其它光介质进行读写的光盘驱动器160。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器154以及磁盘驱动器156和光盘驱动器160通常通过非易失性存储器接口,如接口166连接到系统总线136。
上文讨论并在图3示出的驱动器或其他海量存储及其相关联的计算机存储介质为计算机130提供了计算机可读指令、消息结构、程序模块和其它消息的存储。例如,在图3中,示出硬盘驱动器154储存操作系统170、应用程序172、其它程序模块174和程序数据176。注意,这些组件可以与操作系统144、应用程序146、其它程序模块148和程序数据150相同,也可以与它们不同。这里对操作系统170、应用程序172、其它程序模块174和程序数据176给予不同的标号来说明至少它们是不同的副本。
用户可以通过输入设备或用户界面选择设备,如键盘180和定位设备182(例如,鼠标、跟踪球、笔或触摸垫)向计算机130输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线136的用户输入接口184连接至处理单元132,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器188或其它类型的显示设备也通过接口,如视频接口190连接至系统总线136。除监视器188之外,计算机通常包括其它外围输出设备(未示出),如打印机和扬声器,它们可通过输出外围接口(未示出)连接。
计算机130可以使用到一个或多个远程计算机,如远程计算机194的逻辑连接在网络化环境中操作。远程计算机194可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有相对于计算机130所描述的元件。图3描述的逻辑连接包括局域网(LAN)196和广域网(WAN)198,但也可包括其它网络。LAN 136和/或WAN 138可以是有线网络、无线网络,它们的组合等等。这类网络环境常见于办公室、企业范围计算机网络、内联网以及全球计算机网(例如,因特网)。
当在局域网网络环境中使用时,计算机130通过网络接口或适配器186连接至LAN 196。当在广域网网络环境中使用时,计算机130通常包括调制解调器178或用于通过WAN 198,如因特网建立通信的其它装置。调制解调器178可以是内置或外置的,它通过用户输入接口184或其它适当的机制连接至系统总线136。在网络化环境中,相对于计算机130所描述的程序模块或其部分可储存在远程存储器存储设备(未示出)中。作为示例,而非局限,图3示出远程应用程序192驻留在存储器设备上。示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。
一般而言,计算机130的消息处理器是通过在不同的时刻驻留在计算机的各种计算机可读存储介质中的指令来编程的。程序和操作系统通常例如分布在软盘或CD-ROM上。从那里,它们被安装或加载到计算机的辅助存储器中。在执行时,它们至少部分地被加载到计算机的主电子存储器中。当这些和其它各种类型的计算机可读存储介质用于实现在下文中结合微处理器或其它消息处理器描述的步骤的指令或程序时,此处所描述的本发明的实施方式包含这种介质。当依照此处所描述的方法和技术来编程时,本发明也包括计算机本身。
为说明起见,程序和诸如操作系统等其它可执行程序组件在此处被示出为离散的框,然而可以认识到,这些程序和组件在不同的时刻驻留在计算机的不同存储组件中,并由计算机的消息处理器执行。
尽管结合包括计算机130的示例性计算系统环境进行了描述,然而本发明的一个实施方式可以使用众多其它通用或专用计算系统环境或配置来操作。该计算系统环境并非对本发明的实施方式的使用范围或功能提出任何局限。此外,也不应将计算系统环境解释为对示例性操作环境中示出的任一组件或其组合具有任何依赖或需求。适用于本发明的实施方式的众所周知的计算系统、环境和/或配置的示例包括但不限于,个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、移动电话、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
本发明的实施方式可以在诸如由一个或多个计算机或其它设备执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括但不限于,例程、程序、对象、组件、抽象消息类型等等,它们执行特定的任务或实现特定的抽象消息类型。本发明的实施方式也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
软件体系结构上下文中的接口包括软件模块、组件、代码部分、或其它计算机可执行指令序列。接口包括,例如访问第二模块来代表第一模块执行计算任务的第一模块。在一个示例中,第一和第二模块包括诸如由操作系统提供的应用程序编程接口(API)、组件对象模型(COM)接口(例如,用于对等应用程序通信)、以及可扩展标记语言元数据交换格式(XMI)接口(例如,用于Web服务之间的通信)。
接口可以是一种紧耦合的同步实现,诸如在Java 2平台企业版本(J2EE)、COM或分布式COM(DCOM)示例中。作为替代或除此之外,接口可以是诸如Web服务(例如,使用简单对象访问协议)中的松耦合的异步实现。一般而言,接口包括以下特征的任一组合:紧耦合的、松耦合的、同步和异步。此外,接口可符合标准协议、专有协议、或标准和专有协议的任何组合。
此处所描述的接口可以都是单个接口的一部分,或者可以被实现为单独的接口或其中的任何组合。接口可以本地或远程地执行以提供功能。此外,接口可包括比此处所示或所描述的更多或更少的功能。
以下各实施例将进一步举例说明本发明
实施例——经网络的电子邮件路由
初始化
在初始化期间,要计算两个消息结构。它们在整个进程执行过程中都会被用到。如果底层的消息改变,能够简单地重新计算这些消息结构并用于该点的转发。
目的地可选表
对于组织内的每个节点而言,确定接近当前机器的投递节点并将其放入一列表或表格(目的地可选表)。该列表根据它们对所述目标的最小传输成本而被排序。这包括了在当前节点和目标节点之间最小成本路径上的所有节点。这还包括了从源到目标的其他路径上的其他节点,只要它们到该目标的最小成本要小于从当前节点到目的地节点的传输成本。最初,这还可以包括位于通向该目标的一路径上的节点,但该路径不是从当前节点到目标的路径。此处,距离是根据在各节点之间定义的、因链路桥原因的链路成本而定的。
这是对该算法有多兼容的探试式的决定。包括更大的集合将允许该系统尝试尽可能多的可选步骤以到达该目标;籍此增加成功的机会,但却会降低面对链路失败时的总效率。因变得更为兼容,允许我们解释该可能性,即底层的节点链路记录只是底层拓扑结构的模型而不表示物理网络拓扑结构的每一方面。
最小生成树
最小生成树以当前节点作为根对于网络节点/链路进行计算。此外,也建立生成树本地分区表。对于每个目的地D,确定下一个跳点(hop)(在从当前节点到目标D的最小生成树的路径内的第一个邻近节点)。
处理不一致的全局消息
本算法假设网络节点/链路的消息是全局一致的。在实践中,这一假定通常是真实的,因为消息被过分地复制,还因为它变化缓慢,仅受操作者的控制。然而由于复制等待时间而不能保证上述假定一直为真。
本系统将使用例如SMTP接收的报头,来跟踪一消息已经从节点到节点的传输次数。如果传输计数超过第一阈值,该邮件将被延迟,给于复制一个机会以便稳定。如果该传输计数超过最大计数,该系统就被推定为损坏并且将带有关于失败投递的信息(诸如,无法投递报告(NDR))的邮件返回给发件人。
本算法的一个益处是它需要有关更远离它的各节点的最小信息。结果,它就对全局节点/链路消息的不一致不那么敏感。
单个目的地的情况
在单个目的地的情况下,邮件被路由至单独收件人的地址。因为只有一个收件人,所以无需考虑在多个节点处的收件人扇出问题。扇出问题可能会因为该邮件最初寄往单独收件人而出现,或者可能会因为该邮件最初寄往多个收件人而出现,并且该邮件已被扇出。
在路由时,消息被放入队列以等待向目的地节点的投递。
在中继时(当该系统希望将邮件从本地机器移动至远程机器时),连接管理器算法确定该邮件应该被中继至目的地T。
首先尝试将该邮件传输至收件人所在的目的地节点。如果针对目的地节点的传输失败,就随着目的地可选表内每个可选当前节点的最小传输成本的变化做出传输该邮件的额外尝试。这些额外传输尝试按照中间节点和目的地节点之间最小传输成本的优先级次序执行。这样就能达到在目的地本身无法到达的情况下将该邮件移动至离该目的地最近的节点的效果。
如果一目的地不能到达,TCP将判定在一段时间内无法做出连接。例如,如果连接无法在20秒内做出,每个站点平均具有两个桥头,该网络的直径可达10,则尝试所有的可选站点就需要400秒或者7分钟的延迟时间。这还能通过保持一个近来尝试并失败的连接(例如,在最近30分钟内失败)的高速缓存并且不尝试连接那些站点而得到进一步地优化。
如果没有连接能够做出,则在单个目的地的情况下,就搁置该消息队列并因预料该网络将会在随后被修复,而在稍后执行传输该队列的尝试。
多个目的地的情况
在某些情况下,邮件被寄往位于不同节点上的一个以上的收件人。在此情况下,网络通信量优化方法就沿着在系统启动时算出的最小生成树内的各链路中继该邮件。
邮件收件人根据通向各收件人节点路径第一次分叉处的最后节点而被分组。该节点是在目的地可选表上具有最高优先级(例如,分叉节点和目的地节点之间的最小成本)的分叉节点。在该分叉节点创建消息的分岔并且将该邮件放入队列以等待用于走这条路径的收件人的分叉节点。该消息在两个收件人具有仅仅在当前节点处并发的路径时才必须被分岔。尽可能地延迟分岔是有利的,所以假定在三个收件人的情况下,该邮件被传输至一个更近的“下一个跳点”来避免额外的分岔。
可以使用在初始化部分描述的生成树本地分区表来有效地计算该节点。使用该分区表,就能够根据最小生成树中对收件人目的地的下一个跳点来分组该邮件的收件人。为每个收件人组创建一消息分岔;并且排队该邮件以等待在最小生成树内从当前节点到目标节点的路径中出现的、且离当前节点最远的节点(即,具有针对目的地节点的最小成本的节点)。
一旦该邮件已被排队,就进行在上述单个目的地的情况中所描述的传输。
如果针对有关一个以上目标的各可选分叉节点中的任何一个都无法做出连接,就在当前节点处执行消息分岔并且排队该邮件以等待做出该分岔结果出现的新目标。以此方式,如果一节点不可用,就在当前节点处分岔该消息以向该邮件提供更大的投递机会。这的确会降低节点不可用时的效率,但能允许对该邮件的部分或全部的成功传输。
此处所示且描述的方法的执行或实现顺序不是必要的,除非另外指定。即,方法的要素可以用任何顺序来执行,除非另外指定,且方法可包括比此处所揭示的更多或更少的要素。例如,可以构想,在另一要素之前、与其同时或之后执行或实现特定要素是在本发明的范围之内。
当介绍本发明或其实施例的要素时,冠词“一”、“一个”、“该”和“所述”意指存在一个或多个要素。术语“包括”、“包含”和“具有”旨在包含性的,且意味着除所列出的要素之外还可以有其它要素。
鉴于上述内容,可以看到,实现了本发明的若干目的并获得了其它有利的结果。
由于可以在不脱离本发明的实施例的范围的情况下在上述构造和方法中做出各种改变,因此包含在以上描述且在附图中示出的所有内容都旨在说明性的解释,而非在限制的意义上的解释。

Claims (9)

1.一种经由计算机网络传输消息的计算机实现的方法,所述网络具有当前节点、目标节点、以及在所述当前节点和所述目标节点之间与所述网络相连接的一个或多个中间节点,所述方法包括:
创建位于网络上的对所述目标节点的传输成本小于所述当前节点对所述目标节点的传输成本的中间节点的目的地可选表,其中所述中间节点根据它们的最小传输成本被排列优先级,其中带有最低传输成本的节点具有最高的优先级;
尝试向所述目标节点传输所述消息;
如果对所述目标节点的所述消息的传输失败,就尝试对所述目的地可选表中的具有最高优先级的中间节点传输所述消息;以及
如果所述对具有最高优先级的中间节点传输所述消息的尝试失败,就尝试向所述目的地可选表中的优先级依次降低的各中间节点传输所述消息;
其中将所述消息经由计算机网络从所述当前节点传输至至少两个目标节点,将所述消息经由计算机网络从所述当前节点传输至至少两个目标节点包括:
为所述网络创建以所述当前节点为根的最小生成树;
从位于不同节点上的至少两个收件人的最小生成树中确定最后分岔节点;
根据最后分岔节点分组收件人;以及
将所述消息传输至最后分岔节点。
2.如权利要求1所述的方法,其特征在于,还包括:
维护近来失败连接的所有节点的高速缓存,其中所述高速缓存用于避免尝试向近来失败的节点传输所述消息。
3.如权利要求1所述的方法,其特征在于,还包括:
确定所述最后分岔节点是否能够将所述消息传输至所述目标节点;以及
当确定所述最后分岔节点无法将所述消息传输至所述目标节点时,就从所述当前节点分叉所述消息用以向所述目标节点传输。
4.如权利要求1所述的方法,其特征在于,还包括跟踪有关所述消息在节点之间的传输次数;
其中所述传输次数超过最小阈值时,将额外的传输延迟一稳定周期;以及
其中所述传输次数超过最大阈值时,将消息作为不可投递而返回。
5.如权利要求1所述的方法,其特征在于,对所述目标节点的所述消息传输失败,还包括:
确定网络节点的可用传输时间表;以及
根据在所述目的地可选表中标识的中间节点的优先级及其可用时间表,尝试向所述中间节点传输所述消息。
6.一种用于由消息通信系统在消息通信网络上传输消息的方法,所述消息通信系统具有当前服务器、目标服务器、以及在所述当前服务器和所述目标服务器之间连接到所述网络的一个或多个中间服务器,所述消息通信系统包括:
位于所述网络上的具有对所述目标服务器的传输成本的所述中间服务器的目的地可选表,其中所述中间服务器根据它们的最小传输成本被排列优先级,其中带有最低传输成本的服务器具有最高的优先级;
被配置用于执行计算机可执行指令的当前服务器,所述指令用于执行所述方法,所述方法包括:
尝试向所述目标服务器传输消息;
如果对所述目标服务器的所述消息的传输失败,就尝试对所述目的地可选表中的具有最高优先级的中间服务器传输所述消息;以及
如果所述对具有最高优先级的中间服务器传输所述消息的尝试失败,就尝试向所述目的地可选表中的优先级依次降低的各中间服务器传输所述消息;
其中将所述消息经由计算机网络从所述当前服务器传输至至少两个目标服务器,将所述消息经由计算机网络从所述当前服务器传输至至少两个目标服务器包括:
为所述服务器的网络创建以所述当前服务器为根的最小生成树;
从位于不同服务器上的至少两个收件人的最小生成树中确定最后分岔服务器;
根据最后分岔服务器分组收件人;以及
将所述消息传输至最后分岔服务器。
7.如权利要求6所述的方法,其特征在于,还包括:
确定所述最后分岔服务器是否能够将所述消息传输至所述目标服务器;以及
当确定所述最后分岔服务器无法将所述消息传输至所述目标服务器时,就从所述当前服务器中分叉所述消息用以向所述目标服务器传输。
8.如权利要求6所述的方法,其特征在于,还包括跟踪有关所述消息在服务器之间的传输次数;
其中所述传输次数超过最小阈值时,将额外的传输延迟一稳定周期;以及
其中所述传输次数超过最大阈值时,将消息作为不可投递而返回。
9.如权利要求6所述的方法,其特征在于,对所述目标服务器的所述消息传输失败,还包括:
确定网络服务器的可用传输时间表;以及
根据在所述目的地可选表中标识的中间服务器的优先级及其可用时间表,尝试向所述中间服务器传输所述消息。
CN2006800147300A 2005-05-27 2006-04-21 用于在消息通讯系统内部路由消息的系统和方法 Expired - Fee Related CN101507161B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/139,704 2005-05-27
US11/139,704 US7693071B2 (en) 2005-05-27 2005-05-27 System and method for routing messages within a messaging system
PCT/US2006/015332 WO2006130266A2 (en) 2005-05-27 2006-04-21 System and method for routing messages within a messaging system

Publications (2)

Publication Number Publication Date
CN101507161A CN101507161A (zh) 2009-08-12
CN101507161B true CN101507161B (zh) 2012-11-14

Family

ID=37463206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800147300A Expired - Fee Related CN101507161B (zh) 2005-05-27 2006-04-21 用于在消息通讯系统内部路由消息的系统和方法

Country Status (7)

Country Link
US (1) US7693071B2 (zh)
EP (1) EP1878151A4 (zh)
JP (1) JP4806448B2 (zh)
KR (1) KR101246973B1 (zh)
CN (1) CN101507161B (zh)
MX (1) MX2007013578A (zh)
WO (1) WO2006130266A2 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549122B2 (en) * 2006-12-04 2013-10-01 Oracle International Corporation System and method for communication agent within a fully distributed network
US9240904B2 (en) * 2008-01-31 2016-01-19 Centurylink Intellectual Property Llc System and method for a messaging assistant
US8352557B2 (en) 2008-08-11 2013-01-08 Centurylink Intellectual Property Llc Message filtering system
US8538466B2 (en) * 2008-08-11 2013-09-17 Centurylink Intellectual Property Llc Message filtering system using profiles
JP5228951B2 (ja) 2009-01-30 2013-07-03 沖電気工業株式会社 パケット中継システム及び無線ノード
US9210069B2 (en) 2009-08-26 2015-12-08 Nec Corporation Network operation system, network operation method and network operation program
US9197534B2 (en) 2009-08-26 2015-11-24 Nec Corporation Network designing system, network designing method, data transfer path determination method and network designing program
US9246707B2 (en) * 2010-03-16 2016-01-26 Salesforce.Com, Inc. Cost-based SMTP email routing
US9756288B2 (en) 2013-04-10 2017-09-05 Thomson Licensing Tiering and manipulation of peer's heads in a telepresence system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1128467A (zh) * 1994-09-13 1996-08-07 西门子公司 在一个通讯网络中通讯联接的方法

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088032A (en) 1988-01-29 1992-02-11 Cisco Systems, Inc. Method and apparatus for routing communications among computer networks
US5117422A (en) 1990-07-09 1992-05-26 Itt Corporation Method for providing an efficient and adaptive management of message routing in a multi-platform and apparatus communication system
US5283856A (en) 1991-10-04 1994-02-01 Beyond, Inc. Event-driven rule-based messaging system
DE69226073T2 (de) 1992-05-08 1998-10-29 Alsthom Cge Alcatel Logikmittel zur Leitweglenkung
AU679593B2 (en) * 1993-11-04 1997-07-03 Broadcom Corporation A communication network providing wireless and hard-wired dynamic routing
US6185619B1 (en) 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
US5603029A (en) 1995-06-07 1997-02-11 International Business Machines Corporation System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US5909564A (en) * 1997-03-27 1999-06-01 Pmc-Sierra Ltd. Multi-port ethernet frame switch
US7127741B2 (en) 1998-11-03 2006-10-24 Tumbleweed Communications Corp. Method and system for e-mail message transmission
US20050081059A1 (en) 1997-07-24 2005-04-14 Bandini Jean-Christophe Denis Method and system for e-mail filtering
US6249805B1 (en) 1997-08-12 2001-06-19 Micron Electronics, Inc. Method and system for filtering unauthorized electronic mail messages
US6415373B1 (en) 1997-12-24 2002-07-02 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US5999932A (en) 1998-01-13 1999-12-07 Bright Light Technologies, Inc. System and method for filtering unsolicited electronic mail messages using data matching and heuristic processing
US6061736A (en) 1998-03-13 2000-05-09 3Com Corporation Routing over similar paths
US6112227A (en) 1998-08-06 2000-08-29 Heiner; Jeffrey Nelson Filter-in method for reducing junk e-mail
US6434600B2 (en) 1998-09-15 2002-08-13 Microsoft Corporation Methods and systems for securely delivering electronic mail to hosts having dynamic IP addresses
US6324569B1 (en) 1998-09-23 2001-11-27 John W. L. Ogilvie Self-removing email verified or designated as such by a message distributor for the convenience of a recipient
US6249807B1 (en) 1998-11-17 2001-06-19 Kana Communications, Inc. Method and apparatus for performing enterprise email management
US6728748B1 (en) 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
US6321271B1 (en) * 1998-12-22 2001-11-20 Lucent Technologies Inc. Constrained shortest path routing method
US6393464B1 (en) 1999-05-10 2002-05-21 Unbound Communications, Inc. Method for controlling the delivery of electronic mail messages
US6831895B1 (en) 1999-05-19 2004-12-14 Lucent Technologies Inc. Methods and devices for relieving congestion in hop-by-hop routed packet networks
US7240199B2 (en) 2000-12-06 2007-07-03 Rpost International Limited System and method for verifying delivery and integrity of electronic messages
US6650626B1 (en) 1999-12-10 2003-11-18 Nortel Networks Limited Fast path forwarding of link state advertisements using a minimum spanning tree
AU2292001A (en) 1999-12-22 2001-07-03 Setnet Corp. Industrial capacity clustered mail server system and method
US6658454B1 (en) 2000-02-07 2003-12-02 Sendmail, Inc. Electronic mail system with improved methodology for processing messages with mailing lists
JP2001244929A (ja) * 2000-02-29 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> マルチキャストルーチング方法、その装置及びプログラム記録媒体
JP3876633B2 (ja) 2000-03-10 2007-02-07 富士通株式会社 電子メールサーバ
US6842772B1 (en) 2000-03-14 2005-01-11 Envoy World Wide, Inc Application program interface for message routing and management system
KR20010092554A (ko) 2000-03-22 2001-10-26 장수진 컨텐츠 서비스를 제공하는 웹서버의 백업 시스템 및 그 방법
US6792472B1 (en) 2000-03-31 2004-09-14 International Business Machines Corporation System, method and computer readable medium for intelligent raid controllers operating as data routers
US6658481B1 (en) 2000-04-06 2003-12-02 International Business Machines Corporation Router uses a single hierarchy independent routing table that includes a flag to look-up a series of next hop routers for routing packets
US6757763B1 (en) * 2000-04-07 2004-06-29 Infineon Technologies North America Corpration Universal serial bus interfacing using FIFO buffers
JP2001333091A (ja) * 2000-05-23 2001-11-30 Fujitsu Ltd 通信装置
US6779021B1 (en) 2000-07-28 2004-08-17 International Business Machines Corporation Method and system for predicting and managing undesirable electronic mail
US6847989B1 (en) 2000-08-29 2005-01-25 International Business Machines Corporation Method and system for creating mail rules from existing mail
US6650890B1 (en) 2000-09-29 2003-11-18 Postini, Inc. Value-added electronic messaging services and transparent implementation thereof using intermediate server
US20020065922A1 (en) 2000-11-30 2002-05-30 Vijnan Shastri Method and apparatus for selection and redirection of an existing client-server connection to an alternate data server hosted on a data packet network (DPN) based on performance comparisons
US6938122B2 (en) * 2001-01-23 2005-08-30 Emc Corporation Remote mirroring in a switched environment
CA2371432A1 (en) * 2001-02-13 2002-08-13 Telecommunications Research Laboratory Restoration of ip networks using precalculated restoration routing tables
US20040133528A1 (en) 2002-04-15 2004-07-08 Peter Furka Manifest delivery system and method
US6728535B2 (en) * 2001-05-02 2004-04-27 The Boeing Company Fail-over of forward link equipment
US7133898B1 (en) 2001-06-25 2006-11-07 Bellsouth Intellectual Property Corp. System and method for sorting e-mail using a vendor registration code and a vendor registration purpose code previously assigned by a recipient
CA2461584C (en) * 2001-09-24 2008-01-15 Rumi Sheryar Gonda Method for supporting ethernet mac circuits
US8543681B2 (en) * 2001-10-15 2013-09-24 Volli Polymer Gmbh Llc Network topology discovery systems and methods
US20030154254A1 (en) 2002-02-14 2003-08-14 Nikhil Awasthi Assisted messaging for corporate email systems
EP1488330B1 (en) 2002-03-15 2014-05-07 Shinkuro, Inc. Method for forming groups
US20030182410A1 (en) 2002-03-20 2003-09-25 Sapna Balan Method and apparatus for determination of optimum path routing
US20030229672A1 (en) 2002-06-05 2003-12-11 Kohn Daniel Mark Enforceable spam identification and reduction system, and method thereof
JP3755527B2 (ja) * 2002-12-11 2006-03-15 日本電信電話株式会社 マルチキャスト転送経路計算方法及びマルチキャスト転送経路計算装置並びにプログラム
CA2420479A1 (en) 2003-02-13 2004-08-13 Ibm Canada Limited - Ibm Canada Limitee Flow debugging software and method
JP3920787B2 (ja) * 2003-02-17 2007-05-30 日本電信電話株式会社 迂回経路管理方法及びシステム
WO2004075007A2 (en) 2003-02-20 2004-09-02 Strongmail Systems, Inc. Email using queues in non-persistent memory
KR20040079667A (ko) 2003-03-10 2004-09-16 김형대 전자메일의 송수신 백업처리 시스템 및 서비스 방법
US7356578B1 (en) * 2003-05-28 2008-04-08 Landesk Software Limited System for constructing a network spanning tree using communication metrics discovered by multicast alias domains
US20050021644A1 (en) 2003-05-28 2005-01-27 Glenn Hancock Systems and methods for validating electronic communications
US7519960B2 (en) 2003-12-19 2009-04-14 International Business Machines Corporation Method and system for debugging business process flow
JP4571666B2 (ja) * 2004-04-05 2010-10-27 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 無線マルチホップアドホックネットワークにおけるアドレス解決マッピングのための方法、通信デバイスおよびシステム
US20050262205A1 (en) 2004-04-30 2005-11-24 Nikolov Radoslav I Delivering messages in an enterprise messaging system using message selector hierarchy
US8095598B2 (en) 2004-04-30 2012-01-10 Sap Ag Methods and apparatus for subscribing/publishing messages in an enterprising computing environment
US9491084B2 (en) * 2004-06-17 2016-11-08 Hewlett Packard Enterprise Development Lp Monitoring path connectivity between teamed network resources of a computer system and a core network
US8478616B2 (en) 2004-10-29 2013-07-02 FrontRange Solutions USA Inc. Business application development and execution environment
EP1705547A1 (en) 2005-03-25 2006-09-27 Alcatel Spam prevention by legal user database and user authentication
CA2604490C (en) 2005-04-18 2012-04-24 Research In Motion Limited System and method for enabling assisted visual development of workflow for application tasks
US20060253597A1 (en) 2005-05-05 2006-11-09 Mujica Technologies Inc. E-mail system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1128467A (zh) * 1994-09-13 1996-08-07 西门子公司 在一个通讯网络中通讯联接的方法

Also Published As

Publication number Publication date
KR20080012903A (ko) 2008-02-12
US20060268722A1 (en) 2006-11-30
EP1878151A4 (en) 2013-04-10
JP4806448B2 (ja) 2011-11-02
WO2006130266A3 (en) 2009-04-30
US7693071B2 (en) 2010-04-06
JP2008546276A (ja) 2008-12-18
EP1878151A2 (en) 2008-01-16
CN101507161A (zh) 2009-08-12
WO2006130266A2 (en) 2006-12-07
MX2007013578A (es) 2008-11-06
KR101246973B1 (ko) 2013-03-25

Similar Documents

Publication Publication Date Title
CN101507161B (zh) 用于在消息通讯系统内部路由消息的系统和方法
CN1787495B (zh) 可靠地传输排队的应用程序消息
EP0349371B1 (fr) Système informatique à interconnexion centrale
CN102027461B (zh) 扩展的消息收发平台
CN101601256B (zh) 网络接口卡传输控制协议加速卸载故障检测和恢复机制
PL366535A1 (en) Improving availability and scalability in a messaging system in a manner transparent to the application
CN102164097B (zh) 邮件系统以及数据存储服务器
US8122089B2 (en) High availability transport
US20130191484A1 (en) Mail transfer system, mail gateway and data store server
CN101094092A (zh) 多播会议数据的可靠发送
KR20060089617A (ko) 상호관련된 메시지를 전송하는 시스템, 방법 및 컴퓨터프로그램 제품
US20120230179A1 (en) System, Device and Method for Distributing Link State Information in a Communication Network
EP3589076B1 (fr) Délégation de gestion d&#39;acquittements et de transmission de trames
TWI254524B (en) Distributed router application serialization
CN103947177A (zh) 中间主机备份复制中的方法和设备
CN101803289B (zh) 基于适合度的路由
US6741561B1 (en) Routing mechanism using intention packets in a hierarchy or networks
CN105210335A (zh) 用于数据分发的网络路由修改
JP6901446B2 (ja) 無線通信装置、無線通信システム、無線通信方法及びプログラム
US20060123135A1 (en) Method and system for uniform message interchange
US20050004975A1 (en) Adaptive connection for data transmission
CN1829203B (zh) 用于调节可扩展性点对消息的访问的系统和方法
TWI495361B (zh) 用以依路由傳送電子內容至接收方裝置之系統及方法
JP4411247B2 (ja) 同報メール配信システムおよび方法ならびに同報メール配信装置およびそのプログラム
Kassam Beyond distributed transactions through exactly-once exchanges

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121114

Termination date: 20210421