用于对通信进行路由的方法和装置的制作方法

文档序号:6656237阅读:233来源:国知局
专利名称:用于对通信进行路由的方法和装置的制作方法
技术领域
本发明涉及一种用于当存在发起方和/或接收方的多个可能的端点并且发起方和接收方的协议可能不同的时候对通信(尤其是电话和数据通信)进行路由的方法和装置。
背景技术
诸如电话网络和数据网络的通信网络用于承载各种类型的电话和数据通信。通常,通信网络与其它通信网络互连。在这些网络上,各种不同的协议用于通信,每个协议定义如何描述和定位通信的端点,以及通信必须采用的形式,从而使得它能为双方可接受或可理解。例如,电子邮件协议定义如何将电子邮件地址解析为实际电子邮件公文格以及如何对电子邮件消息进行封装、传送和传递;电话协议定义如何将电话号码解析为实际电话以及如何建立电话连接和传送音频信息。(针对地址来说,本领域使用的“解析”表示解释地址以确定用于传递的实际位置。)对于给定的协议,将每一端点定义为地址/协议对,其固有地表示用户在不知道协议的情况下不能对端点寻址,并且用户通常不能使用相似但却不同的协议与另一用户通信。在缺少用于连接不同协议的装置的情况下,即使想要通信的两个用户可能已经正在使用相同的通信网络或互连的网络,它们也必须选择它们所共同具有的协议来通信。在通常情况下,当选择的协议需要使用特定设备时,每个用户需要具有对该设备的访问,并能够使用它。这限制了对通信的选择。通常,没有通信可产生,或由可用协议和设备来对优选协议的选择进行折衷。
使用中的协议的多样性说明用户共同需要记住用于它们想要与之通信的每个用户大量联系地址,并且想要与另一用户通信的用户可能被迫进行这样的处理在给定的时间猜测哪一地址/协议对可能是合适的选项,并在一个地址/协议对之后尝试另一地址/协议对。
存在用于连接不同协议的方法和设备。一种方法是使用预约(bespoke)(定制)适配器,其连接特定协议对。第6020980号和6625642号美国专利示出适配器的示例。这些适配器采用每个协议的可被映射为其它协议的对应的特征的特征,并提供在这些对应的特征之间创建有效路径的机制。
预约适配器的一个缺点在于由两个正连接的协议来定义适配器,并且因为地址是协议特定的,因此,必须在可产生转换之前指定用于接收方的输出协议以及关于该输出协议的地址。为了确保在产生转换之前指定输出地址/协议对,需要通信的发起方具体提供输出地址/协议对,或按照某些方式来将信息内建到接收方的地址中。
作为发起方具体提供信息的示例,到电子邮件适配器的短消息服务(SMS)可能需要发起方打出接收方的电子邮件地址作为发送到适配器的SMS消息的第一部分,以确保适配器能够将SMS消息的其余部分作为电子邮件传递到电子邮件地址。作为将信息内建到接收方地址的示例,到SMS适配器的电子邮件可要求将特定电子邮件地址分配给蜂窝电话用户,从而作为电子邮件发送到该特定电子邮件地址的文本被传递到适配器,从而(可根据特定规则的应用)进行处理并以一个或多个SMS消息的形式转发到接收方的蜂窝电话。
已知预约适配器的另一缺点在于,由于它们映射公共特征并丢弃对于双方非公共的特征,因此它们通常降低性能。例如当输出协议不支持长消息或附件而输入协议支持长消息或附件时,这可导致通信问题并损失信息。为了避免信息损失,一些适配器存储无法转换的接收的通信而不损失信息,其后使用接收方的协议建议期望的用户可使用第三协议由接收方收集全部通信。
作为该方法的示例,具有支持多媒体消息服务(MMS)的蜂窝电话的用户可尝试将包含照片的MMS消息发送到不支持MMS但却支持SMS的另一蜂窝电话。如果接收方连接到互联网并使用网页浏览器(其使用HTTP协议)来访问网站,则负责将消息传递到接收方的MMS中心可在网站上存储MMS消息,并将SMS文本消息发送到期望的接收方,建议可观看MMS消息。虽然这样确实不损失信息,但所传递的全部是传递失败的通知。由于接收方可能没有收集整个通信,因此,整个通信自身的传递是不确定的。
连接不同协议的另一已知方法使用公共中间协议。这样能够连接多个协议,同时避免了对创建用于将连接的每个协议对的预约适配器的需要,这是一种资源密集型的处理。然而,仍旧必须在产生转换之前指定接收方的输出协议以及该输出协议的地址。
还存在用于统一消息传递的已知方法,其能够使用不同于接收的消息的协议的协议来检索连接消息。第6711154号美国专利示出了一种统一消息传递装置的示例。这些公共中间协议以及统一消息传递方法不提供通信的动态路由和协议转换。
还存在基于通信的路由的接收偏好和/或接收方通信设备的可用性提供通信的有限动态路由和协议转换的一些方法。这些方法通常关注将通信路由到可离开正常固定通信设备的接收方。第6606647号和5742905号美国专利示出示例。这些方法的缺点在于仅考虑接收方的偏好。这些方法通常有其它限制,例如需要使用特定接收方地址,和/或需要使用诸如个人计算机或无线个人数字助理的客户机设备,运行客户机软件并与中央服务器通信,以获得在动态路由方面的好处。
所有已知方法的公共缺点在于没有机会来对可对发起方和接收方双方的需要进行最佳匹配的通信协议进行协商。
本发明的目的在于提供一种用于对通信进行路由的方法,其中,基本上克服和改善了预定的输出协议和关于该协议的地址的上述问题中的至少一些问题以及连接不同协议的已知方法中固有的其它限制,从而为用户提供更高效的通信系统。

发明内容
在一种宽泛的形式中,本发明提供一种基于发起方和接收方的偏好在发起方和接收方之间对诸如电话或数据通信的通信进行路由的方法,该方法包括以下步骤将用户的多个端点存储作为该用户的虚拟端点,其中,所述用户可以是通信的发起方或接收方,每一端点表示来自相应用户或者到达相应用户的通信的源和/或目的地,将偏好与每一虚拟端点关联,当满足特定准则时,所述偏好指定来自相应虚拟端点的所述多个端点的哪一端点用于通信的路由路径,以及根据偏好确定发起方端点和接收方端点之间的路由路径,所述偏好与接收方和发起方的虚拟端点关联。
在另一形式中,本发明提供一种基于发起方和接收方的偏好在发起方和接收方之间对诸如电话或数据通信的通信进行路由的装置,该装置包括用于将用户的多个端点存储作为该用户的虚拟端点的存储装置,其中,用户可以是通信的发起方或接收方,每个端点表示来自相应用户或到达相应用户的通信的源和/或目的地,数据与和每个虚拟端点关联的偏好有关,以及用于根据偏好在发起方端点和接收方端点之间确定路由路径的装置,所述偏好与接收方和发起方的虚拟端点关联。
一旦确定路由路径,就经由确定的路由路径在发起方(或发起)端点和接收方(或接收)端点之间建立通信。
如果接收方端点具有不同于发起方端点的通信协议和/或格式的通信协议和/或格式,则将通信协议和/或格式从发起方端点的通信协议和/或格式转换为接收方端点的通信协议和/或格式。
在本发明的优选实施例中,协商网关连接到一个或多个通信网络。协商网关具有用于使用数据存储器来存储数据的关联的装置。端点的关联被存储在数据存储器中作为虚拟端点。每个虚拟端点是用户端点的集合,其中,用户是通信的发起方或接收方。端点表示通信的源或目的地,通常是诸如电话号码或电子邮件地址的地址/协议对。每个虚拟端点与偏好关联,其中,当满足特定准则时,偏好指定来自端点的关联的哪一端点用于路由路径。
网关具有用于接收和发送通信的装置。接收的通信可寻址到网关(例如对动作的请求),另外由网关来传递通信。对网关的请求可用于路由路径或可以是一些其它请求,可将请求的结果可选地返回到从其接收请求的端点。
当网关接收到通信时,网关标识一个或多个发起端点(其可是暗含的)以及一个或多个接收端点,(“标识的”端点)。端点可由通信来定义(即它们是“来自”或“去到”通信地址)或在通信中指定(例如作为元数据)。端点可包括虚拟端点的标识符。
接收的通信可包含根据一种或多种协议以一种或多种格式编码的文本、图像、音频、视频、任意类型的数字数据、或它们的任意组合。每个接收的通信被转换为公共中间协议。
当接收的通信不寻址到网关或者其是对路由路径的请求时,网关开始确定路由路径。其后,网关对每个标识的端点标识零个或一个虚拟端点。因为可能没有找到虚拟端点,或因为网关已经确定该端点不需要虚拟端点(例如因为该端点与路由路径无关),所以可不为特定端点标识虚拟端点。对于每个标识的虚拟端点,网关检索关联的偏好。
检索的偏好可包括关于下述方面的准则其它虚拟端点和/或端点;包括协议和格式的通信的类型;以及动态数据。偏好包括端点分类的结构化排序。可为每个虚拟端点或端点检索动态数据,并且动态数据通常包括与路由路径的确定有关的信息,例如来自通信网络的端点状态。
路由路径被确定作为检索的偏好、检索的动态数据以及标识的端点的函数。选择具有最佳匹配分类的标识的偏好中的端点以将其包括在路由路径中。(这可以是按照分类的最佳匹配,或最佳匹配分类中的最佳匹配,或最佳匹配分类中的最佳匹配端点。)优选地,由规则引擎通过使用基于规则的处理来确定路由路径。
如果接收的通信是对路由路径的请求,则返回路由路径,通常将路由路径返回到从其接收请求的端点。如果将由网关来传递通信,则将通信转换为路由路径中的目的地端点的协议,并将其发送到与目的地端点关联的通信网络。
有利的是,对确定的路由路径缓存。根据缓存条目中的数据对匹配现有缓存条目的后续通信直接进行路由,无需另外检索或处理所需的数据。
接收的通信可包含多个接收方端点,在此情况下,确定多个路由路径,一个用于发起端点和接收端点的每个组合(即通信为“多播”)。
还可为单个接收虚拟端点确定多个路由路径,以及取决于检索的偏好的通信的全部或部分可根据确定的路由路径中的每个而被传递。
接收的通信可包括来自用户的对由网关执行动作的请求。例如,请求可用于改变用户的存储的虚拟端点或偏好。
在另一实施例中,两个或多个网关通过诸如可交换数据的合适的通信网络进行互连。优选地,检索偏好和数据的步骤包括用于维持数据隐私的适当的处理。
在另一实施例中,网关为单个协议中的通信确定路由路径。
在本发明的修改的形式中,根据与仅用于发起方的虚拟端点关联的偏好来确定发起方端点和接收方端点之间的路由路径。例如,接收方可具有多个端点,并且根据与发起方的虚拟端点关联的偏好来选择接收方端点。
由于本发明提供一种用于作为与发起方或者发起方和接收方关联的偏好的函数来动态确定路由路径的方法,因此无需(例如由将输出协议和输出协议的地址包括作为消息的一部分的发起方,或通过将输出协议和输出协议的地址内建为接收方的地址)指定接收方的输出协议以及该输出协议的地址以使得能进行协议转换。与现有技术相比,可基本上增加对发起方可用的通信协议以及设备的选择,并可基本上减少发起方必须记住的联系地址的数量并且对进行猜测和尝试地址/协议对的处理的需要。
本发明的其它优点包括
a、可产生与发起方和接收方双方的偏好较好地匹配的路由判决,其将对通信的更好和更多的一致的控制提供给用户。例如,接收方的偏好可指定处理接收的文本消息,以使得将来自某些用户的消息路由到接收方的蜂窝电话,将来自其它用户的消息路由到电子邮件,以及删除来自另外用户的消息。由于可将偏好确定作为用户的函数,因此,接收方例如还可指定不传递来自特定用户的通信。
b、由于无需由发起方说明目的地地址/协议对,因此就将地址/协议对分发给其它用户而言,接收方具有更大灵活性,因此关于隐私进行更多控制。
c、可与实际通信的传递无关地来动态确定路由路径,因此允许其它不兼容系统享受动态确定的路由路径的好处。例如,在本发明的优选实施例中,电话、邮政或快递系统可加入能够将语音邮件作为电子邮件、通过邮政打印和传递的电子消息或根据动态确定的路由路径传递的包裹来进行传递的系统。这是一种对现有技术方法的改进,在现有技术方法中,实际上确定路由路径的系统通常还必须承载通信。
d、由于对通信进行动态路由,因此,如果对路由路径进行缓存,则用户偏好的改变将立即发挥效用,这说明可改变端点的细节,而不中断通信。例如,用户可切换通信设备或协议中途转换。
e、如果在路由逻辑中使用基于规则的处理,则可基于发起者和/或接收者的偏好和规则来执行用户指定的动作。
f、如果使用公共中间协议,则可将诸如数据加密、压缩或审计的处理统一应用于所有处理的通信。这是对现有技术方法的改进,在现有技术方法中,单独处理协议,并且单独处理对每个协议对的转换,不提供用于该逻辑的中央位置。
g、可将通信划分为传递到分离的端点的几个部分。这是对存储通信的全部或部分用于收集的方式或者简单地根本不传递某些部分的方式的一种改进。例如,用户可如接收方偏好中指定的那样,发送带有可划分为两个部分的附加文档的紧急电子邮件,这导致电子邮件的文本被传递到接收方的紧急文本设备(例如蜂窝电话),而附件被传递到接收方的工作电子邮件地址。
为了有助于理解和实现本发明,现将参照附图对其实施例进行描述,在附图中,相同标号标识相同元件。


图1是根据本发明的一个实施例的网关的框图,所述网关连接到由两个通信用户使用的通信网络。
图2是示出用于确定路由路径的由图1的网关执行的逻辑的流程图。
图3是用于描述图2的逻辑的两个虚拟端点的示例。
图4是示出用于存储或检索包含动态确定的路由路径的细节的缓存的条目的、由图1的网关执行的逻辑的流程图。
图5是根据本发明另一实施例的两个互连网关的框图,每一个网关执行图2、图3和图4所示的逻辑,每一个网关连接到两个通信网络中的相应一个,每一个通信网络由两个用户中的相应一个所使用。
具体实施例方式
参照图1,用户1和5各自是人、计算机程序、计算机逻辑执行片或能够发送和/或接收信息的其他任意代理。用户1和5每一个可分别使用包括设备2和6的多个通信设备。设备2和6分别连接到网络80和85,并且每一个可以是诸如电话、蜂窝电话或寻呼机的物理设备,或包括诸如电子邮件或即时传信器客户机或服务器等的软件的非物理设备。
网络80和85连接到网关100,并且可以是可由电子装置进行接口并根据一种或多种协议传输通信的任意类型的网络,例如电话网络(如PSTN或蜂窝)和数据网络(如LAN、WAN和互联网)。如虚线所示,用户1和5的设备可连接到不同网络,网络80和85可以互连,或可以不互连。
将连接到网络上的设备的通信信道表示为该网络中的端点。端点82和86分别表示到设备2和6的信道,并且每一个由通信地址/协议对(诸如电话号码、寻呼机号码、电子邮件数据等)来标识。应注意,可由多个端点来表示单个设备,这些端点可位于不同网络上,例如,蜂窝电话可由电话号码和电子邮件地址来表示。
使用带箭头的线来示出元件之间的数据流。以协议90和95分别对网关100和端点82与86之间的通信进行格式化。可用除了协议90和95之外的协议来对网关100和网络80和85上的其他端点之间的通信进行格式化。
网关100包括通信端口20、数据接口50、高速缓存器70(可选)、以及路由引擎30。
通信端口20用于将网关100连接到外部组件,诸如网络80和85、外部系统300(可选)以及数据存储器60,本文档中指的是与所述外部组件通信的网关100,暗指为该通信使用通信端口20。通信端口为本领域公知,并包括以太网端口、USB端口和串行端口等。
路由引擎30和数据接口50每个实现可由本领域公知的一个或多个计算机程序、可编程微处理器的机器码、或诸如一个或多个集成电路的电子电路来实施的逻辑。有利的是,可用插入模块的形式来添加新的定义和逻辑,以提供对新协议或外部系统300的支持。在所有情况下,可用单个执行单元来运行所述逻辑,或同时以多个执行单元来运行所述逻辑。此外,多个网关设备可集成在一起以成为单个并行处理网关100。
数据接口50用于将信息发送到其他组件(诸如数据存储器60以及零个或多个外部系统300),并从所述其他组件接收信息。数据接口50的逻辑通过下述操作来响应对信息的请求标识请求的信息的源(例如数据存储器60、或外部系统300中的一个)、将请求格式化为适合于源的协议,其后将响应格式化为适合于请求方(例如路由引擎30或外部系统300中的一个)的协议。
在本发明的优选实施例中,数据接口50的逻辑使用本领域公知的机制(如散列表或目录查找)以标识请求源和协议转换器。
数据存储器60包含数据,包括虚拟端点61和66,并且能够使用关联的标识符来检索虚拟端点。可将所示标识符看作虚拟端点“地址”。
可使用本领域公知的软件(例如索引的文件或数据库)或使用其他计算机程序、机器码或电子电路(例如一个或多个集成电路)来实现数据存储器60,以管理非易失性电子存储装置(例如随机存取存储器、盘或磁带)。在一些实施例中,数据存储器60完全或部分包含于网关100中。
虚拟端点61和66中的每个被存储端点的关联的表示,例如用于用户的通信的关联(如蜂窝电话号码、寻呼机号码和/或电子邮件地址)。虚拟端点61包括表示用户1的所有已知端点的数据,虚拟端点66包括表示用户5的所有已知端点的数据。
外部系统300提供关于请求的信息。外部系统的一个示例是网络,其可提供关于端点的当前状态的动态数据。每一系统定义接收请求的协议。
高速缓存器70包含诸如虚拟连接71的临时条目,所述临时条目存储在高速缓存器70中并由路由引擎30来检索。可使用包括诸如一个或多个集成电路的电子电路、或诸如随机存取存储器(RAM)的计算机存储器的本领域公知技术来实现高速缓存器70。可用路由引擎30的逻辑来实现管理高速缓存器70的一些或所有逻辑。有利的是,在掉电的事件中,电池备份可用于保存高速缓存器70的内容。
如下所述,路由引擎30实现根据与所述端点关联的偏好确定端点之间的路由路径的逻辑。
当网关100接收到通信时,路由引擎30从通信中检索信息,从而完成通信处理。通常,路由引擎30忽略其无法检索处理所述通信所需的信息的通信,因此,网关100将忽略以网关尚未配置的协议进行的任意通信。有利的是,网关100可被配置为使用插入逻辑模块的单独的协议。
通信可寻址到网关100,在此情况下,其被处理作为对步骤的请求,并且将结果可选地返回到从其中接收请求的端点。请求可用于确定路由路径和/或用于通信的传输。如果接收的通信是对其他一些动作的请求(例如请求修改虚拟端点),则网关以本说明书中没有描述的方式来执行动作。如果接收的通信不寻址到网关100,或包含对确定路由路径的请求,则网关使用图2所示的逻辑来确定路由路径。
此外,优选实施例可根据确定的路由路径来动态转换并传递通信。在这些优选实施例中,路由引擎30使用一个或多个协议转换器来将通信从一种协议转换为另一种协议。协议转换器为本领域公知,并且在优选实施例中实现为插入逻辑模块。有利的是,每个协议转换器在一个或多个外部协议以及公共中间协议之间进行转换。
在一个示例中,使用设备2并且目的地为用户5的、由用户1发起的通信经由网络80而被发送,网络80将其转发到网关100。路由引擎30动态确定从端点82到端点86的路由路径,下面将详细解释,并将通信转发到端点86,导致网络85为用户5将通信传递到设备6。
在另一示例中,由用户1使用设备2发起通信,其目的地是用户5。响应于此,网络80发起对网关100的另外通信,请求用户1和5之间的合适的路由路径。路由引擎30动态确定返回网络80的端点82和86之间的路由路径。其后,网络80根据路由路径将通信转发其到连接的网络85,并且网络85为用户5将通信传递到设备6。应理解,网络80可基于网关100确定的路由路径建立对网络85的连接,从而,根据该连接由网络自动传送与该连接关联的另一通信。
还应理解,网络80和85无需是电子网络,只要它们可与网关100进行接口即可。例如,邮政或快递网络可使用一个或多个电子设备(例如计算机或计算机终端,条码读取器、打印机等)来与网关100进行接口,并请求确定的路由路径以传递诸如信件或包裹的非电子通信。
图2是示出以路由引擎30执行的逻辑来确定通信路由路径的流程图。示例示出通信路由路径的动态确定,以及通信的转换和传递。应理解,相似的逻辑可用于无需协议转换和/或传递的通信。该逻辑以路由引擎接收通信10而在块2010开始,并将通信协议转换为公共中间协议,产生通信11。路由引擎包括关于发起和接收端点的、作为通信11中的元数据的所有数据。所述数据包括通信10中暗含的发起和接收端点,以及任意虚拟端点地址和用于确定路由路径的在消息10中指定的端点。虚拟端点地址是虚拟端点的标识符,通常包括文本字符串的数量,如在使用它们的本发明的实施例中定义的那样。
如果(在块2020)路由引擎30不能标识通信10的任意接收端点,则认为不可传递,路由引擎进入块2080。在本发明的特定优选实施例中,路由引擎生成(在块2080)错误消息17,错误消息17被转换为(在块2090)产生通信19的发起方的协议,其随后被传递到发起方。在另一优选实施例中,如果路由引擎30不能标识发起端点,则通信10被认为是不可传递的,并且被丢弃。
路由引擎30查看(在块2030)用于发起和接收虚拟端点地址的通信11的元数据。对于没有找到的每个虚拟端点地址,路由引擎30将对应的指定端点提供给数据接口50,或者如果没有则将通信10的对应的隐含端点提供给数据接口50,并请求虚拟端点地址。数据接口50可从数据存储器60检索请求的信息。应理解,会检索零个、一个或两个虚拟端点地址,以及在没有检索到虚拟端点地址的情况下,该方法一般减少到两个端点之间的路由。
路由引擎30检索(在块2040)用于通过询问外部数据接口50来确定路由路径的数据,外部数据接口50其后从数据存储器60和/或虚拟端点检索信息。初始地,请求的数据至少包括对应用于涉及其它端点或虚拟端点的通信的每个虚拟端点的偏好。也可请求其它信息,包括其它偏好,以及诸如各种端点、日期等的状态的动态数据。
其后,路由引擎30根据在块2040检索的数据确定(在块2050)通信11的路由路径。确定的路由路径包括端点的矢量,所述端点包括至少一个目的地端点。如参照图3描述的那样,通过以最佳匹配准则找出偏好中的端点来确定路由路径的端点。
如果路由引擎30需要(在块2060)多个数据来确定最佳匹配,则逻辑进入块2040。例如,路由引擎可通过进入块2040来从可能的路由路径的列表中进行选择,以检索关于该列表中的哪些路由路径包含当前“可用”的目的地端点的信息。
如果不需要其它数据,则路由引擎30确定(在块2070)是否可根据路由路径传递通信11。通信不可传递的一个可能的原因在于,检索的偏好表示不应该产生传递,并且路由路径被设置为对其进行指示。如果无法进行传递,则逻辑进入块2080。
如果通信可传递,则路由引擎30(在块2090)将通信11转换为与路由路径的目的地端点关联的协议,产生通信12,其后传递通信12。
路由引擎30可检索(在块2030)多个接收端点和/或接收虚拟端点(即通信为“多播”)。在此情况下,确定多条路由路径,一条路由路径用于发起端点或虚拟端点的每个组合,并接收端点或虚拟端点。
路由引擎30可确定(在块2050)单个接收虚拟端点的多条路由路径。在此情况下,根据多条路由路径中的每一条来传递通信11的全部或部分。例如,用户偏好可导致为任意传真端点接收的传真被传递到多个传真端点。可将通信沿着可容易标识的边界(诸如消息和附件之间,或消息和头之间)或任意边界(诸如在文本的第10行或在音频的第30秒)划分为多个部分。例如,可将带附件的电子邮件传递到多个端点,从而将消息传递到蜂窝电话,将附件传统到电子邮件地址,并将整个电子邮件传递到不同的电子邮件地址。
在某些实施例中,路由引擎30可通过创建成功通知15并(在块2090)将其转换为通信10的协议,产生通信16,来将成功的通知发送到发起方,通信16被传递到通信10的发起方。
在另一示例中,通信10是对确定路由路径的请求。在此情况下,通信10寻址到网关100,并包括用于请求的路由路径的找到的端点或虚拟端点的标识符。路由引擎30确定指定的端点或虚拟端点的路由路径,并将确定的路由路径传递到通信10的发起方。路由引擎30可动态确定路由路径的发起端点。例如,用户1可向用户5请求路由路径,指定协议分类(例如文本),而不是特定协议(例如SMTP)。其后,路由引擎30确定路由路径的端点以与关于协议的分类的用户偏好进行最佳匹配。应理解,其它实施例可包括仅用于发起方的虚拟端点,并根据与发起方的虚拟端点关联的偏好确定路由路径。
还可能由其它类型的请求,例如由用户请求将由网关100执行的其它一些动作。例如,用户可请求改变用户的虚拟端点,这将由网关以未在本说明书中描述的方式来处理。
应理解,可用网关100所知的任意协议来对网关100进行请求,因此,用户可使用例如SMS、电子邮件、即时消息、HTTP等来发起请求。
图3示出分别用于用户1(人物A)和用户5(人物B)的两个虚拟端点61和66的示例。每个虚拟端点中的信息的行形成结构化的列表。从左页边缩进相同距离的任意两行处于结构中的相同级别。如果第一行在上,并且比第二行缩进得少,则第一行被认为包含第二行,并且没有缩进与第一行相同或少于第一行的插入行。例如,行3012在行3011之内,这说明行3011是包含行3012的更普遍的分类。按照该方式,将端点分类为协议组,其中,更普遍的分类(例如行3011、3021、3023等)有效地表示虚拟协议。因此,可在虚拟协议级别(例如人物A/文本)而不是仅在物理协议级别(例如alice@home.net)来执行发起方和接收方的偏好匹配。
在本发明的应用的示例中,由人物A使用SMS协议将文本消息发送到人物B。在该示例中,因为人物A不知道人物B的任意基于文本的设备的地址,所以将该消息寻址到人物B的家庭电话号码。如图2的逻辑流程图所示,路由引擎30将消息转换为公共中间协议,确定人物A和人物B的虚拟端点,并检索关于人物A的通信的人物B的偏好以及关于到达人物B的人物A的偏好。在该示例中,检索的偏好如图3所示,并且可以是默认值和关于人物A和人物B的特定规则的组合。
为了确定路由路径,路由引擎30首先查找发起端点(由行3012表示)和接收端点(由行3022表示)之间的匹配。由于行3012的分类(SMS,文本)与行3022的任意分类(家庭、电话、语音)不匹配,因此这些行(以及它们的端点)不是协议兼容的。因此,路由引擎30找到与人物B的偏好的最特定的分类匹配的行3012的最特定的分类,该匹配为行3012和3024。其后,路由引擎从数据接口50检索信息以确定行3024的端点当前是否可用。如果该端点当前不可用,则考虑下一比较普通的匹配,在此情况下是行3012和3025,其后是3012和3026、3012和3027,其后是3012和3028。将与当前可用端点关联的这些匹配中的第一个选择作为路由路径。
应理解,协议90和95不必相似。例如,如果将SMS路由到行3028,则可使用文本到语音转换器将通信11转换为音频编码的通信12。还应理解,如果人物A将SMS发送到人物B的工作电话号码,则由于人物A和人物B的偏好使得行3012和3028协议兼容,因此进行直接转换和传递。
应理解,按分类对发起方和接收方双方匹配偏好产生一组可能的路由路径,其为按分类匹配的每个虚拟端点中的端点的数量的算术积。这可导致比当使用单个虚拟端点时或当仅根据物理协议进行匹配时更大的一组可能的路由路径。在该示例中,文本分类的可能的路由路径的总共的组是10(人物A的2乘以人物B的5)。反之,在传统地被认为与SMS兼容的仅四个物理接收方端点(行3024、3025、3026和3027)和两个虚拟端点(行3012和3024)之间仅有单个SMS匹配。
本发明的优选实施例可实现为在此描述的逻辑的改变。例如,优先于对具有较差分类匹配的可用端点的一个,不是选择具有可用端点的第一路由路径,可使用加权判决来选择具有较好分类匹配并具有存储转发能力的不可用端点的路径。其它优选实施例使用基于规则的处理来实现或增强逻辑。例如,可关于工作时间将规则添加到人物B的偏好,并在该时间期间传递通信。基于规则的处理还可允许由特定准则来触发动作。例如,每当从特定用户接收到具有大附件的电子邮件时,规则可导致生成告警。基于规则的处理为本领域所公知,应理解,示出的偏好可转换为规则。
可提供合适的逻辑或软件来确保诸如虚拟端点的用户数据的安全性,并将动作限制到授权用户、设备或端点。
应理解,本发明的其它实施例可实现判决处理中的其它逻辑,所述其它逻辑可包括来自外部系统300的其它数据,从而激活其它类型的偏好,例如-每一用户准备为该通信支付多少;一用户是否共同想完成所请求的通信,或优选地以其它方式(例如改变对实时连接的请求以请求连接到消息队列)来完成通信;-用户是否共同想完全完成通信(例如用户忙碌、离开、不可获得);-为了存储和计费而对通信进行分类(例如时商业还是个人连接)。
应理解,在整个逻辑中,通过使用用户的虚拟端点中的任意地址,可根据任意可用协议来对用户寻址。此外,可将用户的地址用作独立全局协议地址。这可通过以现有协议将地址映射为虚拟端点地址,或修改通信设备以对虚拟端点直接寻址而实现。此外,其它虚拟地址可包括在虚拟端点中。例如,诸如sales-person@company或secretary@club.org的一个或多个基于角色的身份可包括在虚拟端点中,以能够进行基于角色的路由。因此,当将联系地址给予第二用户时,通过选择合适的控制地址,用户可对他们可被联系的程度进行控制。
还应理解,在特定实施例中,路由引擎30可使用数据接口50与其它外部系统300进行接口,从而可发送和/或接收关于正路由的通信的诸如计费、登录或审计等的交易信息。这样能够与外部系统300共享路由引擎30中生成的信息。
可用公共中间协议将附加特点添加到通信的处理中。例如,可增强路由引擎30的逻辑以应用安全性检查、压缩、加密等。只要动作可合理地应用于该类型的通信,就可使得任意这样的处理可用于由路由引擎30处理的通信,而不管接收的通信的协议或发送的通信的协议如何。
图4示出路由引擎30维持先前确定的路由路径的高速缓存器的附加逻辑。示例示出动态确定通信路由路径,以及转换并传递通信。到来通信10的协议在块2010被转换为公共中间协议,产生通信11。其后,路由引擎30(在块2015)查找高速缓存器70中的条目,用作查找准则,诸如发起和接收端点的通信11中的信息。如果路由引擎找到通信11的匹配条目,则逻辑进入块2077。
如果在高速缓存器中没有找到匹配条目,则逻辑进入块2020,并如图2所示继续进入到块2070。如果路由引擎30(在块2070)确定可传递通信11,则路由引擎(在图4中的块2075)在存储通信11的路由路径的高速缓存器70中添加条目。缓存的路由路径表示端点之间的虚拟连接(如图1中的虚拟连接71所示)。
如果路由引擎30(在块2077)确定目的地协议与通信10的协议相同,则直接传递通信10。如果协议不同,则路由引擎将通信11的协议转换为产生通信12的目的地协议,其后对其进行传递。
应理解,一旦创建虚拟连接,就可在端点82和86之间对通信进行路由,使用存储在虚拟连接71中的信息来确定路由路径,从而节省处理时间。
还应理解,可对任意的组件、端点82、端点86、协议90或协议95进行改变,而不中断它们之间的连接,它们之间的连接由虚拟连接71独立地定义。例如,可将对改变端点的请求从端点82或由用户1授权的一些其它端点发送到路由引擎30。路由引擎30可使用包括图4所示的逻辑的逻辑来处理请求,结果,将虚拟连接71修改为虚拟端点61的偏好中所制定的那样。其后,根据修改的路由路径传递由路由引擎30接收并且与虚拟连接71关联的后续的通信。还可响应于对动作的请求而从高速缓存器70中删除虚拟连接71。例如,当根据动态确定的路由路径建立的连接断开时,可响应于该连接的网络可请求删除高速缓存器70中的对应的虚拟连接。
图5示出根据本发明另一实施例的两个独立的互连网关100和105。用户1使用由端点82表示的设备2,并经由网络80连接到网关100。用户5使用由端点86表示的设备6,并经由网络85连接到网关105。网关100的组件如图1所示。路由引擎35、数据接口55、数据存储器65以及外部系统305是网关305的对应的路由引擎、数据接口、数据存储器以及外部系统。网关105还包括通信端口20、虚拟端点61表示用户1,虚拟端点66表示用户5、虚拟端点67表示路由引擎35。协议99是公共中间协议。
在一个示例中,由用户1使用端点82将对通信10的形式中的路由路径的请求发送到与用户5关联的端点。在该示例中,通信10是诸如对即时消息(“聊天”)会话的请求的连接请求,并且包含将传递的消息和对路由路径的请求。如上参照图2和4的路由逻辑所描述的那样,路由引擎30(在块2010)将通信10转换为通信11。路由引擎30使用数据接口50标识(在块2030)发起方和接收方的虚拟端点地址。在该示例中,数据接口50从数据存储器60检索用户1的虚拟端点61,但没有在数据存储器60中找到用户5的信息。其后,数据接口50询问全局用户到系统服务器,哪一个是外部系统300,哪一个返回路由引擎35的地址。随着接收通信11的虚拟端点,数据接口50将该地址返回到路由引擎30。(优选的是,使用如DNS或LDAP服务器的本领域公知的逻辑来实现全局用户到系统服务器。)路由引擎30(在块2040)检索适合于每个虚拟端点的数据。数据接口50从数据存储器60检索虚拟端点61的数据,并经由数据接口55检索虚拟端点67的数据。根据为虚拟端点67检索的数据,路由引擎30确定(在块2050)路由路径的目的地端点为路由引擎35和协议99。路由引擎30(在块2075)将该路由路径存储在虚拟连接71中。
路由引擎30使用公共中间协议99(在块2090)将通信11传递到路由引擎35。由于传递协议与通信11的协议相同,因此实际上不需要进行转换。
路由引擎35也实现图2和图4所示的逻辑。路由引擎35(在块2010)将通信正常地转换为公共中间协议,产生通信11。然而,由于路由引擎30以共同中间协议发送通信,因此实际上不需要进行转换。
路由引擎35(在块2030)使用位于数据存储器65中的虚拟端点66的数据接口55来为通信11的发起方和接收方标识指定的虚拟端点地址。优选地,路由引擎30将虚拟端点61的地址包括作为通信11中的元数据。然而,应理解,路由引擎35也可使用数据接口55和外部305来标识发起方虚拟端点。
路由引擎35(在块2040)通过询问数据接口55来检索适合于虚拟端点61和66的数据。数据接口55经由数据接口50检索虚拟端点61的偏好,并从数据存储器65中检索虚拟端点66的偏好。
路由引擎35(在块2050)也从检索的偏好来确定关于对用户5的连接的用户1的偏好以及关于来自用户1的连接请求的用户5的偏好,并确定目的地端点为协议95上的端点85。
路由引擎35(在块2075)创建或修改虚拟连接76,从而包含虚拟连接71和协议95上的端点86之间的路由路径,并将完成的连接通知路由引擎30。路由引擎30将虚拟连接71更新到虚拟连接76的点。路由引擎35(在块2090)将通信11转换为产生传递到端点86的通信12的协议95。
应理解,虚拟连接71和76现在定义了映射的虚拟连接111,虚拟连接111定义端点82和86之间的路由路径,可改变端点82、协议90、端点86或协议95的细节,而不中断连接。
然而,路由引擎30可对端点82和86之间的路由路径进行动态路由,而不创建虚拟连接71和76。
在本发明的修改实施例中,网关100和105共享任意地位于单个网关上的单个虚拟连接(71或76)。
在本发明的另一修改实施例中,路由引擎35将通信11传递到另一协商网关(即端点86是根据本发明的实施例的路由引擎)。实际上,可绑定任意数量的网关来定义发起方和接收方之间的路径。
本发明使得使用不同协议的不同通信用户能够无缝连接和通信,不必考虑另一用户所使用的设备或协议的细节。此外,用户可体验例如下述的优点-根据每个用户的偏好的来源于连接的协商的添加的控制;
-通过转换在中途改变设备或协议的能力;以及-可自动应用于所有协议和设备的添加的特点。
前面仅描述的本发明的一些实施例,在不脱离本发明的范围的情况下,可使用对于本领域技术人员显而易见的修改和添加。
例如,不是将接收的通信转换为公共中间协议,而是可将其存储在缓冲器中,直到确定路由路径,并且(如果该协议不同于发起端点协议)可将其直接转换为目的地端点的协议。
虽然已经具体参照确定通信端点之间的路由路径的过程描述了本发明,但应理解,端点之间的通信可包含其他信息。例如,可在诸如银行帐户的动态确定的金融端点之间对诸如转帐的金融交易进行路由。
权利要求
1.一种基于发起方和接收方的偏好在发起方和接收方之间对诸如电话或数据通信的通信进行路由的方法,该方法包括以下步骤将用户的多个端点存储作为该用户的虚拟端点,其中,所述用户可以是通信的发起方或接收方,每一端点表示来自相应用户或到达相应用户的通信的源和/或目的地,将偏好与每一虚拟端点关联,当满足特定准则时,所述偏好指定来自相应虚拟端点的所述多个端点的哪一端点用于通信的路由路径,以及根据偏好确定发起方端点和接收方端点之间的路由路径,所述偏好与接收方和发起方的虚拟端点关联。
2.如权利要求1所述的方法,其中,所述通信具有多于一个的接收方端点,以及根据偏好在发起方端点和每个接收方端点之间确定路由路径,所述偏好与发起方和相应接收方的虚拟端点关联。
3.如权利要求1所述的方法,还包括步骤从所述通信中得到至少一个附加通信,以及在每个附加通信的发起方端点和相应接收方端点之间确定路由路径。
4.一种基于发起方的偏好在发起方和接收方之间对诸如电话或数据通信的通信进行路由的方法,该方法包括以下步骤将发起方的多个端点存储作为该发起方的虚拟端点,每一端点表示来自发起方或到达发起方的通信的源和/或目的地,将偏好与发起方的虚拟端点关联,当满足特定准则时,所述偏好指定来自发起方的虚拟端点的所述多个端点的哪一端点用于通信的路由路径,以及根据偏好确定发起方端点和接收方端点之间的路由路径,所述偏好与发起方的虚拟端点关联。
5.如权利要求4所述的方法,其中,接收方具有多个端点,确定路由路径的步骤包括根据偏好选择接收方端点,所述偏好与发起方的虚拟端点关联。
6.如权利要求1至4中任一权利要求所述的方法,其中,虚拟端点的偏好指定所述虚拟端点的端点所属的类别,以及确定路由路径的步骤包括参照类别确定最佳匹配端点。
7.如任一前述权利要求所述的方法,还包括步骤经由确定的路由路径使发起方端点和接收方端点之间能够通信。
8.如任一前述权利要求所述的方法,其中,接收方端点具有与发起方端点的通信协议和/或格式不同的通信协议和/或格式,还包括步骤将通信协议和/或格式从发起方端点的通信协议和/或格式转换为接收方端点的通信协议和/或格式。
9.如权利要求8所述的方法,其中,转换协议和/或格式的步骤包括将通信协议和/或格式从发起方端点的通信协议和/或格式转换为中间的协议,然后将其转换为接收方端点的通信协议和/或格式。
10.如任一前述权利要求所述的方法,其中,使用基于规则的处理来确定路由路径。
11.如任一前述权利要求所述的方法,其中,将确定的路由路径存储在高速缓存器中。
12.如任一前述权利要求所述的方法,其中,虚拟端点中的每个端点是地址/协议对。
13.如任一前述权利要求所述的方法,其中,每个虚拟端点的偏好包括以下一个或多个(i)关于其它虚拟端点和/或端点的准则;(ii)关于包括协议和格式的通信的类型的准则;(iii)关于端点的类别的准则;(iv)关于动态数据的准则。
14.一种基于发起方和接收方的偏好在发起方和接收方之间对诸如电话或数据通信的通信进行路由的设备,该设备包括用于将用户的多个端点存储作为该用户的虚拟端点的存储装置,其中,用户可以是通信的发起方或接收方,每个端点表示来自相应用户或到达相应用户的通信的源和/或目的地,以及数据与和每个虚拟端点关联的偏好有关,以及用于根据偏好在发起方端点和接收方端点之间确定路由路径的装置,所述偏好与接收方和发起方的虚拟端点关联。
15.一种基于发起方的偏好在发起方和接收方之间对诸如电话或数据通信的通信进行路由的设备,该设备包括用于将发起方的多个端点存储作为该发起方的虚拟端点的存储装置,每个端点表示来自发起方或到达发起方的通信的源和/或目的地,以及数据与和虚拟端点关联的偏好有关,以及用于根据偏好在发起方端点和接收方端点之间确定路由路径的装置,所述偏好与发起方的虚拟端点关联。
16.如权利要求14或15中任一权利要求所述的设备,其中,所述设备连接到一个或多个通信网络,并适合于经由所述网络与发起方端点和接收方端点通信。
17.如权利要求14至16中任一权利要求所述的设备,还包括用于经由确定的路由路径在发起方端点和接收方端点之间建立通信的装置。
18.如权利要求14至17中任一权利要求所述的设备,其中,接收方端点具有与发起方端点的通信协议和/或格式不同的通信协议和/或格式,还包括用于将通信协议和/或格式从发起方端点的通信协议和/或格式转换为接收方端点的通信协议和/或格式的装置。
19.如权利要求18所述的设备,其中,所述转换装置将通信协议和/或格式从发起方端点的通信协议和/或格式转换为中间协议,然后将其转换为接收方端点的通信协议和/或格式。
20.如权利要求14至19中任一权利要求所述的装置,其中,用于确定路由路径的装置包括能够进行基于规则的处理的规则引擎。
21.如权利要求14至20中任一权利要求所述的装置,还包括用于存储确定的路由路径的高速缓存器。
全文摘要
基于发起方的偏好或发起方和接收方的偏好在发起方(1)和接收方(5)间对如电话或数据通信的通信路由。为每个用户(1,5)分配虚拟端点(61,66)。每个虚拟端点(61,66)典型地将相应用户的一个或多个端点存储为表示用户通信设备地址的地址/协议对。在数据存储部(60)存储虚拟端点(61,66),与网络(80,85)通信的网关(100)可访问数据存储部(60),发起方和接收方的通信设备(2,6)与网络通信。偏好与每个虚拟端点关联并指定虚拟端点的端点所属的协议类别。当满足特定准则时,偏好可指定相应虚拟端点的哪个端点用于通信路由路径。例如网关(100)中的路由引擎(30)根据与发起方和接收方的虚拟端点关联的偏好按基于规则的处理在发起方端点(82)和接收方端点(86)间确定路由路径。网关(100)还根据需要将通信协议或格式从发起方端点的通信协议或格式转换为接收方端点的通信协议或格式。
文档编号G06F15/16GK1973504SQ200580020493
公开日2007年5月30日 申请日期2005年6月7日 优先权日2004年6月7日
发明者尼古拉斯·M·翠维莱恩-琼斯, 米尔蒂斯·A·翠维莱恩-琼斯 申请人:99有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1