使用协议无关控制模块引导和管理应用程序及业务服务器的媒体对话构架的制作方法

文档序号:7717518阅读:262来源:国知局
专利名称:使用协议无关控制模块引导和管理应用程序及业务服务器的媒体对话构架的制作方法
技术领域
本发明涉及利用控制模块引导、管理和访问应用程序和业务服务器,提供管理、动态资源分配和负载平衡,更特别是本发明涉及利用协议无关的业务控制器作为媒体对话构架的一部分,动态地访问和利用居留在一个或多个处理单元或服务器中并维护处理单元或服务器之间满意的负载平衡的应用程序和呼叫业务。
背景技术
常规的软件程序包经常要求访问存储器、数据库或其他应用程序执行它们设计的功能。例如,用户可以访问要求特定类型的数据转换的软件包。使软件包能够执行转换的一种方式是直接编程该转换为软件包。但是,近来存在这样的趋势,用户访问软件包(称为应用程序),当应用程序需要复杂的功能时,软件包又访问另一个软件包(称为业务程序)。不是编程执行复杂的功能本身的应用程序,而是编程应用程序来访问特别设计执行要求功能的其他业务程序。
图1和2表示分配应用程序的常规系统100,该应用程序需要声音识别业务,声音识别服务器可以处理这些请求。本领域技术人员可以看出图1和2中的现有技术系统具有广范围的应用程序,除了简单的语音识别业务之外,用于访问其他复杂的功能。但是,语音识别业务是公用的应用程序。而且,图2中的现有技术系统专门用于语音识别应用程序,这些语音识别应用程序组成一个公用类型的应用程序,这种应用程序要求多个的业务程序。
更详细的说,图1表示常规系统100。常规系统100包括多个话音处理模块102和分配给每个话音处理模块102的多条电话线104。话音处理模块102进一步包括多个客户106和话音处理服务器108。系统100利用“循环赛”的策略将语音识别请求分配给语音识别服务器。在这个结构中,话音处理模块102中的一个客户106经一条输入的电话线104接收发出的语音。接收语音发出的客户106预先分配给话音处理服务器108。
系统100实行“循环赛”策略,因为系统100分配呼叫,由于呼叫到达线路上的下一个话音处理模块102与话音处理模块当前的负荷无关。现有技术系统100不考虑所用系统负荷或消息类型的变化。由于无效的工作流分配,这种系统可导致效率降低。现有技术系统也不考虑特定服务器能力的差别。
认识到图1所述简单循环赛系统的不足,图2表示用于复用语音识别应用程序中的业务程序的另一种现有方案,该方案试图弥补此缺点。在这种结构200中,至少一个应用程序210需要多个语音识别服务器218之一的业务(即,业务程序)。为了能够访问这个服务器218,应用程序210需要服务器218通过总线240与中间调解器206交互作用。中间调解器206控制应用程序的各种标准电话方面,例如检测呼叫和识别语音中的断点(“终点”)。中间调解器206还通过总线242与资源管理器214交互作用。资源管理器214的主要任务是对给定的应用程序请求识别语音识别服务器218的适当的情况。换句话说,中间调解器206接收来自请求访问中的一个服务器218的应用程序210的请求。中间调解器206将此请求传送到资源管理器214,资源管理器214提供一个服务器218的访问。
根据消息类型和需要实现该请求的具体的资源以及结构200中服务器218的当前负荷,资源管理器214确定哪种情况的语音识别服务器218是最合适的。当检验消息类型时,资源管理器214可以估计需要处理发音的语法、每个语音识别服务器218对讨论的语法的处理能力和每个语音识别服务器218的自由处理能力的量。一旦语音识别服务器218分配给给定呼叫,资源管理器214经总线246与服务器218通信,应用程序210利用总线240与中间调解器206通信,中间调解器206利用总线244与服务器218通信。
除了相同类型的多个业务,即语音识别服务器218之外,这个现有技术结构不考虑多个业务。语音识别服务器218是复用的唯一资源。换句话说,这个现有技术系统不尝试为单个应用程序复用多个不同的业务。在这个例子中,现有技术系统复用多个语音识别服务器218,但不试图复用多个语音识别服务器218与例如多个图像服务器、与语音应用程序有关的其他服务器或其他非语音应用服务器。
另外,系统子单元之间的连接是固定的。这些连接包括应用程序210和中间调解器206之间的总线240、中间调解器206和资源管理器214之间的总线242、中间调解器206和语音识别服务器218之间的总线244以及资源管理器214和语音识别服务器218之间的总线246。这些连接与大型应用程序空间不相称并且通过分布式、非局域网是不切实际的。
而且,要分配的资源不是动态的,在初始配置中定义固定组的资源。固定连接需要低的系统通过量或者高带宽。此外,现有技术系统,特别是语音识别系统不考虑负载平衡或动态地分配应用程序210。
这个现有技术系统除了语法类型、具有具体语法的语音识别服务器能力和当前处理容量之外,也不考虑资源类型。根据应用程序和它运行的环境,有多种其他的资源可能对负载平衡和动态系统结构是重要的。
常规的电话正在从基于电路交换的网络转变成基于分组的网络。开放系统互连(“OSI”)是特别有用的数字数据通信协议,它支持不同主机上共同运行的应用程序之间的“主机到主机”数据传送。(注意虽然该协议在单独的主机之间定义,共同运行的应用程序可以保存在同一台主机上)。但是,按常规,通过互联网协议传送话音(VoIP)的基于分组的网络设计成利用传统的传输控制协议/互联网协议(“TCP/IP”)工作。TCP/IP没有映射到OSI系统。特别是,基于分组的传统的TCP/IP不足以定义对话(呼叫控制)或呈现需要传送的多媒体的实时传送。
另外,现有技术的连接性倾向于与协议相关,不论是用户数据报协议(UDP)、传输控制协议(TCP)等等。因此,例如利用UDP的应用程序或业务不能利用TCP传送的请求程序操作。
因此,希望开发这样一种结构,即能够在协议无关的基础上复用多个服务器,和解决现有技术所述的这些和其他问题。

发明内容
本发明的上述和其他特征、实用性和优点将从下文结合


的本发明优选实施的更具体描述中变得更加明显。
为了获得本发明的优点和根据本发明的目的,提供用于复用应用程序的方法。特别是,提供至少一个访问服务器能访问至少一个应用程序。访问服务器从至少一个用户接收请求以访问至少一个应用程序。根据接收的请求,在至少一个访问服务器和至少一个用户之间建立通信链路,其中接收的请求保存在输入请求队列中。校验所请求的应用程序是否有可用的通信路径,当通信路径可用时,建立输入请求队列和至少一个应用程序之间的通信路径,移出和发送存储的请求到请求的应用程序。
本发明进一步提供用于业务复用的装置。该装置包括能够访问至少一个应用程序的至少一个访问服务器。至少一个访问服务器包括至少一个代理器和至少一个业务浓缩器。业务浓缩器包括至少一个应用程序处理器、至少一个输入业务队列和至少一个请求处理器。至少一个访问服务器适于接收多个请求来访问至少一个请求,以访问至少一个应用程序。
本发明还提供具有计算机可用介质的一种计算机程序产品,包括在其中记录的计算机可读代码,用于处理控制访问至少一个应用程序的至少一个请求的数据。计算机可用介质包括请求接收模块,配置成接收访问至少一个应用程序的至少一个请求。该请求在通信建立模块接收,该通信建立模块配置成与请求访问至少一个应用程序的至少一个客户建立通信链路。存储模块配置成存储至少一个已接收请求,检验模块配置成检验通信路径是否是否能够允许访问至少一个应用程序。通信建立模块还配置成与至少一个应用程序建立通信链路。
附图简要说明并入和组成本说明书一部分的

本发明的一些优选实施方式,并且与说明书一起说明本发明的目标、优点和原理。在附图中,图1是用于分配业务程序的常规系统的示意图;
图2是传统语音识别系统的示意图;图3是符合本发明的网络结构的示意图;图4是符合本发明的网络结构的示意图,图5是图3所示媒体服务器308的示意图;图6是图3所示媒体服务器308的另一个示意图;图7是说明符合本发明的呼叫建立过程的流程图;图8是说明符合本发明的确立SIP信令的流程图;图9是说明符合本发明通过媒体服务器308开始输出过程和输入过程的流程图;图10是图3所示控制模块310的示意图;图11是说明符合本发明给应用程序动态分配业务程序的工作流程图;图12是符合本发明的过程监视业务的示意图;图13是图12所示的过程监视和盒(box)监视之间交互作用的示意图;图14是符合本发明的跟踪记录和运算操作的示意图;图15是举例说明“OSI”和“TCP/IP”体系的方框图;图16是说明根据本发明的一种可能的媒体对话构架的方框图;图17表示根据本发明构成媒体对话构架的处理器1700;图18更详细地表示业务浓缩器1712;图19表示根据本发明的协议无关的控制模块的功能方框图;图20更详细地表示对话层信令协议1906;图21更详细地表示对话消息处理器1908;图22表示根据本发明利用协议无关的控制模块的系统功能方框图;图23是与本发明有关的一种可能方法的示范性的流程图2300;和图24是根据本发明的功能方框图。
具体叙述现在详细参考本发明的优选实施方式,其中的例子在附图中说明。希望下文的说明所包含和附图所示的所有内容应当说明为说明性的,而不具有限制意义。
图3表示本发明的实施方式。特别是,图3表示根据本发明一种实施方式的网络结构300。结构300包括电话板306,它提供公用交换电话网(PSTN)304和媒体服务器308之间的接口。换句话说,图3说明根据本发明通过标准公用交换电话网(PSTN 304)发出呼叫给位于服务器内的应用程序。除了电话板306和媒体服务器308之外,结构300还包括控制模块310、至少一个应用程序312和至少一个业务程序314。虽然每块结构300表示成单独的和不同的,各个块可以包含在一个处理单元中,例如单个服务器中,或者由于设计选择的原因在许多处理单元中。另外,各块可以位于一个中心地点或遍布在远处的多个地方。还要注意附图和随后的讨论描述了可以由软交换替代的媒体服务器。软交换是一种软件程序,它本质上起到与传统的硬件通信交换相同的作用。软交换还执行媒体服务器308的作用,但是软交换通常构造成和定价用于大规模、高容量载体级环境。媒体服务器或媒体网关通常更适合于小规模、低容量、低成本环境。
操作中,用户从标准电话机302呼叫标准电话号码,该号码被分配注册到电话板306。PTSN 304以传统的方式将呼叫从电话机302发送到电话板306(它配置成接收该电话号码),通常作为T-1、DS3或类似中继线的一部分,为了传送的目的复用许多电话线。最好,电话板306以常规的方式在硬件级处理标准呼叫管理(例如,检测和终止呼叫),尽管电话板306可以使用软件或软件与硬件的某种组合。在操作中,当电话板306收到呼叫时,它通知媒体服务器308。媒体服务器308接收该通知并给电话板306提供接收该呼叫的可用端口的地址(没有在图3中具体地示出)。然后,电话板306将连接的呼叫传送到媒体服务器308的可用端口。
媒体服务器308接收来自电话板306的呼叫,电话板306可能已对呼叫数据进行某种处理,最好媒体服务器对呼叫数据执行某种处理。首先建立呼叫信令,然后媒体连接。
首先,利用标准PSTN信令协议例如PRI-ISDN信令协议,或利用由电话板306以常规方式操纵的一个版本的这些信令协议,电话板306通过通信信道322发送呼叫数据到媒体服务器308的输入端口。媒体服务器308的输入端口(未示出)格式化成接收标准的PSTN信号协议,正如由电话板306处理的,如果适当的话。最好,媒体服务器308将PRI-ISDN信令数据转换成标准互联网协议,最好为对话启动协议(SIP)协议。从标准PSTN信号协议到SIP协议的转换在图5-9中更详细地说明。
第二,作为此协议转换的一部分,媒体服务器308通过通信信道324产生和发送SIP应用程序INVITE到控制模块310。最好,由媒体服务器308产生的SIP应用程序INVITE相应于呼叫的电话号码,并可以映射到一个应用程序312。此外,SIP应用程序INVITE包含应用程序312最终连接的媒体服务器308的端口地址信息。
控制模块310检验通过通信信道324接收的SIP应用程序INVITE,确定哪个应用程序312相应于呼叫的电话号码,例如,在这种情况下,呼叫预定给应用程序312类型B。因为独特的建立结构300,多个应用程序312类型B是可访问的。此外,应用程序312类型B可用于多个不同的处理单元,它可以位于多个不同的本地或远处的位置。因此,控制模块310遵循常规的IP协议来定位硬件平台上运行的应用程序312类型B的适当情况,该硬件平台能够运行应用程序312类型B和可通过结构300访问。一旦控制模块310识别IP网中可用应用程序312类型B的地址或位置,控制模块310通过通信信道326将SIP应用程序INVITE发送到应用程序312类型B的情况。
利用SIP应用程序INVITE中的信息,例如与呼叫有关的媒体服务器308端口的地址,该呼叫正请求应用程序312类型B,应用程序312类型B接受通过通信信道326发送的SIP应用程序INVITE和通过通信信道328建立媒体连接回到媒体服务器308的正确的端口。应用程序312类型B现在可以在通信信道328上通过媒体服务器308(利用执行必要协议转换的媒体服务器308)发送和接收往返于主叫302的数据,然后通过通信信道322到达电话板306和最终通过通信信道320到达主叫302。从媒体服务器308到控制模块310的通信信道324和从控制模块310到应用程序312类型B的通信信道326保持激活以提供控制功能,正如下文更详细说明的。
正如下文更详细说明的,控制模块310利用它当时具有的最好信息选择特定情况的应用程序312类型B。到应用程序312类型B实际接收SIP应用程序INVITE时,它的情形也许已改变成不再可用。在这种情况下,应用程序312类型B拒绝SIP应用程序INVITE。如果第一识别的应用程序312类型B否定或拒绝SIP应用程序INVITE,控制模块310通过将SIP应用程序INVITE发送到下一个最好可用的应用程序312类型B继续查找可用的资源。如果控制模块310不能识别应用程序312类型B的可用情况,控制模块310可以产生标准响应,通知用户稍后呼叫或保持。
在与主叫交互作用期间的某一点,应用程序312类型B可以确定它需要一个可用的附属业务程序314,例如业务程序X、Y和Z,它也可以位于与应用程序312类型B同一个处理单元中或在单独的处理单元中,不论在本地或远处位置。为了能够访问请求的业务程序314,应用程序312类型B通过通信信道326发送SIP业务INVITE到控制模块310,用于访问一个可用的业务程序314,例如业务程序314类型Y。如同SIP应用程序INVITE一样,控制模块310接收SIP业务INVITE和定位硬件平台上运行的业务314类型Y,该硬件平台能够运行通过结构300可访问的业务程序314类型Y,它遵循常规的IP协议。一旦控制模块310识别IP网中可用业务程序314类型Y的地址或位置,它通过通信信道330传送SIP业务INVITE到业务程序314类型Y的情况。业务程序314类型Y可以位于本地或远方位置。
利用SIP业务INVITE中的信息,例如正呼叫业务程序314类型Y的应用程序312类型B的地址和访问应用程序312类型B的媒体服务器308的端口地址,业务程序314类型Y接受通过通信信道330发送的SIP业务INVITE和通过通信信道332及通信信道334建立媒体连接,通信信道332回到应用程序312类型B,通信信道334回到媒体服务器308上适当的端口。应用程序312类型B现在可以与业务程序314类型Y通信,业务程序314类型Y可以与主叫302通信。例如,业务程序314类型Y可以是文本到语音业务,应用程序312类型B可以是话音应用程序。在这个例子中,应用程序312类型B可以通过通信信道332发送文本到业务程序314类型Y以转换文本为语音。业务程序314类型Y可以处理请求和发送语音或转换的音频结果到主叫302,通过媒体服务器308在通信信道334上发送。
下面(图11)说明在业务程序314类型Y和应用程序312类型B之间建立对话。注意,业务程序和应用程序之间的互连是示范性的,本发明的对话格式适用于建立任何媒体服务器308、控制模块310、应用程序312、和业务程序314之间互连的任何组合。
图4表示根据本发明一个实施方式的网络结构400。图4说明根据本发明通过标准互联网协议(IP)网404将呼叫发送到位于服务器内的应用程序。在图3中,利用标准PSTN信令协议(PRI-1SDN)和传输协议(它是脉冲编码调制-PCM)通过常规的PSTN发出呼叫,标准PSTN信令协议和传输协议必须分别翻译成SIP和实时传输协议(RTP)。媒体服务器308执行这两个转换和代表在电话机302发出呼叫的主叫和控制模块310、应用程序312与业务程序314之间的中间人或接口,它们都利用SIP信令和RPT传输协议通信。但是,在图4中,主叫利用SIP启动的计算装置402通过IP网404发出呼叫(或请求)。这个计算装置402可以是计算机,SIP启动的电话机或其他SIP启动的计算装置。因此,装置402已经将SIP用于信令,RTP用于媒体传送,因此呼叫不需要通过媒体服务器和其他接口发送以执行信令转换。在其他方面,图4中呼叫的操作与图3相同。注意,如果装置402是能够拨打IP电话而不是配置用于SIP,媒体服务器可用于将IP电话启动装置转换成SIP信号。
但是为了清楚,结构400的操作将完整地说明。结构400包括控制模块310、至少一个应用程序312和至少一个业务程序314。在操作中,用户从呼叫装置402进行呼叫,它可以是基于计算机的电话机或利用标准SIP信令协议的电话机或其他计算装置。因为装置402产生SIP格式信号,媒体传送已经是RTF,对于协议和传送翻译呼叫不需要通过媒体服务器308发送。因此,呼叫装置402将SIP应用程序INVITE发送到公知的SIP地址,它与特定类型的应用程序有关。呼叫通过IP网404发送,它包括连接呼叫装置402与控制模块310的通信信道422。当然,为了方便和容易参考起见示出通信信道422,因为本领域技术人员阅读本说明书可以认识到标准互联网协议使用分组传输,来自呼叫装置402的数据通过多条路由或信道到达控制模块310的IP连接。控制模块310发送该呼叫,如图3所示控制模块310检验通过通信信道422接收的SIP应用程序INVITE和确定哪个应用程序312相应于SIP应用程序INVITE的SIP地址,例如在这种情况下,该呼叫预定给应用程序312类型B。
控制模块310定位硬件平台上运行的适当情况的应用程序312类型B,该硬件平台能够运行通过结构400可访问的应用程序312类型B,它遵循常规的IP协议。一旦控制模块310识别IP网中可用应用程序312类型B的地址或位置,不论在本地或在远方,控制模块310通过通信信道326将SIP应用程序INVITE发送到应用程序312类型B的情况。
利用SIP应用程序INVITE中的信息,例如呼叫装置402的URL地址,它正呼叫使用应用程序312类型B,应用程序312类型B接受通过通信信道326发送的SIP应用程序INVITE,通过通信信道426建立媒体连接回到呼叫装置402(能够拨打IP的装置之间的通信典型地也利用可以通过多个不同路径发送的分组传输)。应用程序312类型B现在可以通过通信信道426发送和接收往返于主叫402的数据。从呼叫装置402到控制模块310的通信信道422和从控制模块310到应用程序312类型B的通信信道326保持激活以提供控制功能,正如下文所更详细说明的。
正如在图3中,控制模块310利用它当时具有的最好信息选择特定情况的应用程序312类型B。(此选择在下文结合图10、12和13详细描述)。到应用程序312类型B接收SIP应用程序INVITE时,它的情形也许已变成不再可用。在这种情况下,它拒绝SIP应用程序INVITE。如果第一识别的应用程序312类型B否定或拒绝SIP应用程序INVITE,控制模块310通过将SIP应用程序INVITE发送到下一个最好可用的应用程序312类型B继续查找可用的资源。如果没有应用程序312类型B可用,可以产生标准响应,通知用户稍后呼叫或保持。
在与主叫402交互作用期间的某点,应用程序312类型B可以确定它需要一个可用的附属业务程序314,例如业务程序X、Y和Z。如上结合图3所述的,应用程序312类别B访问附属业务程序;但是,当业务程序314接受SIP业务INVITE,业务程序314将利用呼叫装置402的URL地址以便利用通信路径432直接连接到呼叫装置402,而不是通过中间人,例如媒体服务器308发送。因此,应用程序312类型B可以与业务程序314类型Y通信,业务程序314类型Y可以与呼叫装置402通信。例如,业务程序314类型Y可以是文本到语音业务,应用程序312类型B可以是话音应用程序。在这个例子中,应用程序312类型B可以通过通信信道430发送文本到业务程序314类型Y以转换文本为语音。业务程序314类型Y可以通过432发送语音或转换的音频结果给主叫402。
图5和图6表示根据本发明的一种实施方式的媒体服务器308的内部结构500。如上所述,媒体服务器308的一个功能是执行协议转换。因此媒体服务器308具有脉冲编码调制(PCM)到实时传输协议(RTF)转换部分308A和PRI-ISDN到SIP转换部分308B。参照图6,这些转换将进一步详细说明。
同样如图6所示,PCM到RTP转换部分308A包括端点管理器504和至少一个翻译处理器506,但如图6所示,媒体服务器308中的一个翻译处理器最好存在用于电话板306的每个端口,其中电话板306的每个端口相应于电话线。因此,支持24个端口电话板306的媒体服务器308具有翻译处理器5061至50624。每个翻译处理器506进一步包括G.711发射机510和G.711接收机508。利用G.711标准是示范性的,同样可以使用其他的标准。媒体服务器308也包括板控制器502。板控制器502表示为与媒体服务器308独立的实体;但是,由于设计选择的原因它可以位于媒体服务器308内部。注意虽然翻译处理器506表示为组件,最好根据需要利用软件开发处理器。
正如图6中更好地所示的,PRI-ISDN到SIP转换部分308B包括板呼叫控制事件处理器512、SIP管理器514、SIP用户代理516和PRI-ISDN到SIP翻译器518。
图7说明表示呼叫建立过程的流程图700,“媒体服务器中的呼叫建立”。当电话板306接收呼叫时,它传送呼叫信令到板控制器(步骤702)。正如本领域普通技术人员阅读本说明书可以认识到,板控制器502的实质随电话板306的硬件变化。对于目前的板的许多情况下,它将是C动态链接库,但这只是一个例子。
板控制器502接收呼叫,将事件发送到板呼叫控制事件处理器512(步骤704),例如表示在电话线1上有呼叫。板呼叫控制事件处理器512发信号到SIP管理器514(步骤706),SIP管理器514负责协调呼叫建立、呼叫拆卸和其他方面的呼叫控制。SIP管理器514要求端点管理器创建G.711接收机508(步骤708)。
从SIP管理器514接收请求时,终点管理504创建翻译处理器5061(步骤710),翻译处理器5061创建G.711接收机508,它位于翻译处理器5061内部(步骤712)。翻译处理器5061创建G.711接收机508(步骤712),但是直到SIP信令正确建立和翻译处理器5061本身开始,翻译处理器5061才启动G.711接收机508。端点管理器504创建翻译处理器506(步骤710),翻译处理器506利用常规的方法创建G.711接收机508。G.711接收机508从应用程序312“接收”数据,将它发送到主叫302,这称为输出操作。同样,在此尚未创建的G.711发射机510(参见下文)将接收来自主叫302的数据并“传送”它到应用程序312,这称为输入操作。
作为创建G.711接收机508的一部分,但在它启动之前,G.711接收机508开放媒体服务器308中RTP和RTCP的端口。这些是在建立输出操作的连接时应用程序312使用的端口,即用于发送数据到主叫。这些端口动态分配给每个呼叫。当任何平台正在建立或分配端口时,最好这些端口从可用端口库中得到,但是作为设计决策它们可以重新创建。
在G.711接收机508创建以后,建立SIP信令(步骤716),正如参照图8的流程图800详细描述的。
在SIP信令建立以后,如下面图8的流程图800所述的,SIP管理器514要求端点管理器启动翻译处理器5061(步骤716)。翻译处理器5061首先启动G.711接收机508(步骤718),它的端口现在连接到应用程序312。G.711接收机508开始侦听RTP端口从应用程序312到达呼叫装置302的数据分组。
然后翻译处理器5061创建G.711发射机510(步骤720)。G.711发射机510从主叫302发送数据到应用程序312。在建立SIP信令的最终SIP消息(正如下文图8所说明的)中,应用程序312指示它将从主叫接收数据的端口。G.711发射机510建立它的端口以发送数据到应用程序312已建立用于从主叫302接收数据的端口(步骤712),正如应用程序312在SIP消息中所示。
然后翻译处理器5061启动G.711发射机510(也是步骤720),等待需要从主叫302发送到应用程序312的数据。在启动G.711接收机508和G.711发射机510以后,翻译处理器506启动输出操作(步骤722)和输入操作(步骤724),如流程图900A和900B所示。
流程图800,图8描述建立呼叫的SIP信令。这遵循建立SIP信令的标准过程。作为第一步,对于呼叫装置302正呼叫的应用程序312,媒体服务器308利用SIP用户代理516向控制模块310的SIP用户代理520发送SIP应用程序INVITE(步骤802)。媒体服务器308在该SIP应用程序INVITE中包括由G.711接收机508打开的RTP/RTCP端口的IP地址和端口号,用于将应用程序312接收的数据发送到主叫302(步骤802)。这将使应用程序312能够建立它发送媒体数据到主叫302的连接。
控制模块310的SIP用户代理520接收SIP应用程序INVITE(步骤804),控制模块310识别呼叫装置302正呼叫的适当情况的应用程序312(步骤806),例如如图3和4所示的应用程序312类型B。控制模块310利用SIP用户代理520传送SIP应用程序INVITE到希望应用程序312的识别的情况(步骤808)。容纳应用程序112类型B的情况的硬件盒的SIP用户代理522接收SIP应用程序INVITE(步骤810),确定它是否可以接受呼叫(步骤812)。(注意在图6中,应用程序312类型A、应用程序312类型B和应用程序312类型C描述成它们都运行在单独的硬件盒上,每个盒具有它自己的SIP用户代理522(SUA)。实际上,在同一硬件盒上容纳的任何应用程序312将利用相同的SIP用户代理522。)为了确定它是否可以接受SIP应用程序INVITE,容纳应用程序312的硬件盒的SIP用户代理522检验有可用情况的希望应用程序312和有适当的一组可用端口与媒体服务器308通信。
如果呼叫不能接受,硬件盒的SIP用户代理522拒绝SIP应用程序INVITE(步骤812的“否”分支),控制模块310的SIP用户代理520再次尝试识别呼叫装置302正呼叫的下一个最好情况的应用程序312(循环返回到步骤806)。如果呼叫可以接受(步骤812的’是“分支”),硬件盒的SIP用户代理522与适当的内部模块(未示出)查阅,建立应用程序312的端口,发送数据到主叫302(步骤814)。发送数据到主叫的端口通过建立这些端口具体连接到作为SIP应用程序INVITE的一部分的发送的端口建立(步骤802),也就是说,连接到G.711接收机508从应用程序312接收数据和发送到呼叫装置302创建的端口(步骤712)。
硬件盒的SIP用户代理522也与适当的内部模块(未示出)查阅,以建立应用程序312从主叫302接收数据的端口(步骤816)。
一旦应用程序312完成所有必要的建立,与选定应用程序312有关的硬件盒的SIP用户代理522发送200 OK消息到控制模块310的SIP用户代理520(步骤818),SIP用户代理520传送接受到媒体服务器308的SIP用户代理516(步骤820)。(SIP200 OK消息是与SIP标准有关的常规的确认信号,但本领域技术人员认识到其他协议的实用性和它们的查阅和握手策略。)来自应用程序312的200 OK消息包括媒体端口的IP/端口信息,应用程序312已建立用于该媒体端口从呼叫装置302接收数据(步骤816)。这告诉媒体服务器308上的翻译处理器5061与应用程序312有关的那个端口将从呼叫装置302接收数据。翻译处理器5061创建将利用这个端口信息的G.711发射机510G.711发射机510建立它的端口以便连接到应用程序312已经建立从呼叫装置302接收数据的端口(步骤822和步骤720)。
输出操作从应用程序312在RTP连接上通过G.711接收机508发送数据到呼叫装置302,正如以上的讨论。输出操作的本质将根据安装在电话板306中的硬件和板控制器502而变化,但实质上涉及从媒体服务器308上的G.711接收机508的RTP端口读出数据和写入电话板306。
典型地和最好翻译处理器506呼叫板控制器502以启动输出操作。对于某些电流板,此过程中的一个步骤将缓冲G.711接收机508和电话板306之间的数据。虽然这随硬件板变化,一种方式是使电话板306读出数据的缓冲器和将缓冲器读出的数据发送到呼叫装置302。
图9A的流程图900A表示缓冲某些电流板的输出过程的一种示范方法。当电话板306需要新的缓存器(步骤902)时,它请求端点管理器504(步骤904),它从翻译处理器5061请求下一部分的数据(步骤906)。翻译处理器5061从连接到应用程序312的G.711接收机508的RTP端口读出得到数据(步骤908)。此数据适当地打包并传送到电话板306(步骤910)。
翻译处理器5061还启动输入操作(流程图700的步骤711)。输入操作通过上面对G.711发射机510所讨论的RTP连接从呼叫装置30发送数据到应用程序312。该流程与输出操作过程互逆并且由流程图900B,图9B描述,但不会说明。
服务器(根据本发明一个实施方式创建)与公共交换电话网(PSTN)304之间操作需要两个协议翻译PRI-ISDN到SIf和PCM到RTP。
参见图6,从PRI-ISDN到SIP的转换最好从电话板306分析ISDN数据和发送标题信息段到SIP管理器514开始。这些数据包括主叫的电话号码、被叫的电话号码、实际电话线的号码(例如,T-1中24线的号码6)和事件等。事件包括“新的呼叫”、“用户挂断呼叫”和表示呼叫状态改变的其他事件。
SIP管理器514将此信息用于各种目的。例如,对于新的呼叫,它要求端点管理器504创建G.711接收机508,告诉端点管理器504呼叫在什么电话线上(例如在T-1中继线)。当发送SIP消息时SIP管理器514也使用这个信息。根据该事件,SIP管理器504要求PRI-ISDN到SIP翻译器518创建适合于事件的SIP消息。例如“新的呼叫”事件导致SIP INVITE消息,同时“用户挂断呼叫”事件导致SIP BYE消息。
典型的SIP消息具有各种字段,正如在标准文件RFC 2543所述的,由互联网工程任务组内的互联网工程指导小组管理,这里引入它作为参考。当PRI-ISDN到SIP翻译器518创建新的消息时,它典型地包括这样的字段,用于识别(1)预定接收方的SIP地址、(2)要传送的媒体类型、(3)发送方接收媒体类型的端口和(4)呼叫id。从标准PSTN电话号码翻译到SIP地址通常是直接的“sip”是预先待定给该电话号码。作为假想的例子,在Acme公司的电话号码202-555-4567将翻译成sip2025554567@acme.com。要传送的媒体类型通常是发送方已知的和提供的。要接收数据的端口的例子在上面给出G.711接收机分配这些端口。最后,呼叫id是用于唯一识别每个呼叫的内部结构。对于通过PSTN打来的呼叫,呼叫id直接映射到由电话板管理的电话线。
从SIP回到ISDN的翻译是互逆的。SIP管理器514将发送方和接收方的SIP地址转换成标准电话号码。SIP管理器将实际电话线的呼叫id映射到电话板306。SIP管理器514利用SIP消息类型确定电话板306的适当事件,例如SIP BYE消息将导致电话板306的“挂断”事件。
从PCM转换到RTP发生如下对于输入的媒体流,电话板306接收包含复用成多个信道的G.711数据的PCM数据。最好电话板306从描述该复用的格式化中分离出与特定电话线有关的G.711数据。电话板306传送数据到端点管理器504,端点管理器将G.711数据打包成利用RTP传送的分组。然后打包的数据通过G.711发射机510发送到应用程序312。
对于输出的媒体流,该过程是互逆的。端点管理器504移出RTP结构和发送G.711数据到打包该数据通过标准电话线复用的电话板。
图10表示根据本发明一个实施方式的控制模块310的内部结构1000。图10在所有的方面与图3相同,具有控制模块310的扩展图。虽然使用SIP启动的呼叫装置402参照图4表示结构1000,但是控制模块310操作大致相似,因此内部结构1000只使用标准电话机302相对于访问应用程序312进行说明。
图10包括与图3所示的结构300相同的组件主叫302、电话板306(提供PSTN 304和媒体服务器308之间的接口)、媒体服务器308、控制模块310、应用程序312和业务314。控制模块310的扩展图描述它的子组件路由选择管理器1002和位置业务1004与资源管理器1006之间的交互作用。换句话说,图10说明根据本发明通过标准PSTN发送呼叫到位于服务器内的应用程序,细节集中在控制模块310的内部路由选择功能。
在操作中,应用程序312和业务程序314都由过程监视系统1200(下面结合图12和13更详细说明)根据下面讨论的常规系统配置规范启动。在应用程序312和业务程序314启动以后,应用程序312通过通信信道1024发送信号寄存位置业务1004,业务程序314通过通信信道1026发送信号寄存位置业务1004。最好,位置业务1004利用这些信号更新和维护包含查找格式表中的多个信息字段的数据库。最好,位置业务1004中的两个字段是应用类型的字段和URL地址字段。因此,正如下面更详细说明的,路由选择管理器1002可以访问位置业务1004确定应用程序312和业务程序314的IP地址。
由于使用应用程序312(例如应用程序312类型A、B或C)和业务程序314(例如业务程序314类型X、Y或Z)的具体情况,活动信息传送到过程监视业务1200(结合图12和13更详细说明)。过程监视业务1200将此信息用于多个目的。一个这样的目的是将硬件和软件利用信息可用于(经资源管理器1006接口)路由选择管理器1002,因此路由选择管理器可以分配资源以优化系统如何利用资源。
如图10所示,当主叫利用电话机302访问应用程序312时,PSTN 304通过电话板306将呼叫发送到媒体服务器308,正如结合图5-9论述的媒体服务器308执行协议翻译,和传送SIP应用程序INVITE到控制模块310。控制模块310执行协议处理(即,信号交换),路由选择管理器1002接收SIP应用程序INVITE请求。
注意,路由选择管理器1002和位置业务1004在图10中描述成控制模块310的子组件,但实际上它们的关系是设计的问题,它们可以不同的方式在控制模块310内部或外部提供。同样,资源管理器1006表示成在控制模块310以外,但由于设计选择的原因可以在控制模块310内部。
还要注意,路由选择管理器作为单一的实体在图10表示。事实上,路由选择管理器1002规定应用编程接口(API)可用于实现具有不同能力的不同类型的路由选择管理器1002。这些路由选择管理器可以采取多种形式。
一个类型的路由选择管理器1002可以实现用于应用程序312和业务程序314的资源分配的简单的循环算法,类似于图1现有技术系统的负载平衡。另一类型的路由选择管理器可以使用路由选择算法,专门用于类似于图2的现有技术系统的语音应用程序。这可以合并关于处理发言所需的语法、对该语法的不同语音识别服务器的处理能力和每个语音识别服务器的有效容量的信息。注意,利用图2所述策略的路由选择管理器1002只能够发送业务程序314请求,不能够发送应用程序312请求,如同本发明。
可以利用路由选择管理器API实现的另一类型路由选择管理器1002可以利用图12和13所述的过程监视系统1200累积的信息,下文将更详细说明。图10说明与资源管理器1006交互作用的这类路由选择管理器1002,资源管理器1006是过程管理系统1200收集信息的接口。但是,阅读本发明的说明书后,本领域技术人员发现有可能创建许多不同的路由选择算法,用于平衡应用程序312和业务程序314。
在控制模块310执行协议处理以后,路由选择管理器1002接收请求和确定例如主叫302请求应用程序312类型B的情况。路由选择管理器1002利用它的路由选择算法和从下面说明的过程监视系统1200产生的信息确定注册到位置业务1004的什么情况的应用程序312类型B,以便发送呼叫。一旦路由选择管理器1002确定特定的应用程序312类型B,路由选择管理器1002利用包含在位置业务1004的IP地址信息将SIP应用程序INVITE通过通信信道326发送到特定的应用程序312类型B。如上所述,根据路由选择管理器API开发的路由选择管理器1002的不同版本利用不同的策略作出此确定。
通过通信链路1028查阅资源管理器1006,路由选择管理器1002使用由过程监视业务1200累积的详细的硬件和软件利用信息。在由路由选择管理器1002查阅后,资源管理器1006打包用于监视的应用程序312类型B情况的硬件和软件利用信息和发送该信息到路由选择管理器1002。路由选择管理器1002根据资源管理器1006发送的信息确定应用程序312类型B的具体情况以传送请求。最好利用硬件和软件利用信息分配资源。特定情况的应用程序312类型B例如是可用的,但是它可以驻留在硬件盒中,它被过度利用,因此具有最小的存储器、CPU周期和其他硬件资源。第二情况的应用程序312类型B是可用的,它可以驻留在硬件盒中,它只是轻微地利用。在这个例子中最好将请求发送到第二情况的应用程序312类型B。当路由选择管理器1002确定适合于处理请求的具体情况的应用程序312类型B,它通过链路1030咨询位置业务1004以确定IP(互联网协议)地址和具体应用程序312类型B的端口号。一旦它具有IP地址和端口号,它返回地址和端口号到控制模块310,控制模块310传送SIP应用程序INVITE到识别的应用程序312类型B。
当一个应用程序312请求访问一个业务程序314时发生相似的处理。SIP业务INVITE沿通信信道326发送到控制模块310,它处理协议翻译,将请求发送到路由选择管理器1002。路由选择管理器1002建立请求的业务类型程序314,例如业务程序314类型Y。路由选择管理器1002使用它的路由选择算法以类似于与应用程序312有关的上述过程的方式识别和发送SIP业务INVITE。
特别是,路由选择管理器1002使用过程监视业务1200累积的详细的硬件和软件利用信息。为了获得硬件和软件利用信息,路由选择管理器1002通过通信链路1028查阅资源管理器1006识别具体情况的业务程序314类型Y,以传送请求。查阅中,资源管理器1006将关于硬件和软件利用信息的信息提供给路由选择管理器1002,该信息涉及监视情况的业务程序314类型Y,路由选择管理器1002确定具体情况的业务程序314类型Y以传送请求。
当路由选择管理器1002确定适合于处理请求的具体情况的业务程序314类型Y,路由选择管理器1002通过链路1030查阅位置业务1004以找出特定业务程序314类型Y的IP(互联网协议)地址。一旦路由选择管理器1002具有IP地址,它返回控制模块310,控制模块310传送SIP业务INVITE到这种情况的业务程序314类型Y。
本发明唯一的系统结构(图3、4和10所示)从大于或等于当前实现的应用程序312的数量允许更少的业务程序314给业务请求,特别是在语音识别领域。例如,业务程序314类型Y可以大致同时提供业务给多个应用程序312类型B或不同类型的多个应用程序312,例如提供业务给类型A和B。为了完成此特征,需要复用组件允许业务程序与多个应用程序和呼叫装置交互作用。
图11表示一种可能的复用结构1100,描述根据本发明一个实施方式的复用能力。最好,复用结构1100在业务程序314中实现,因此如上所述它们可以复用。结构1100包括客户1102和至少一个业务组件1124。客户1102可以相应于根据本发明一个实施方式的位于服务器内的本地或远程应用程序312或可以相应于这种服务器以外的其他类型的本地或远程应用程序。
业务组件1124相应于图3、4和10的业务程序314。业务组件1124包含SIP用户代理1104、虚拟的端口管理器1106、进程队列管理器1112、业务平台特定的API(应用程序员接口)1120和业务平台1122。业务平台1122执行实际的业务,可以由任何适当的信源提供,包括位于通过互联网访问的系统的服务器。
就图3而言,例如,图11说明应用程序312从业务程序314请求业务和实现该请求,二者都使用SIP协议和基于队列的复用策略。该请求及其实现通常根据本发明在服务器背景下进行。客户1102可以是根据本发明驻留在服务器内的应用程序。但是,替代地,客户1102可以是外部应用程序,当它请求业务时访问业务组件1124驻留的服务器。
虽然每块结构1100表示成单独的和不同的,各块可以包含在一个处理单元中,例如单个服务器中,或者由于设计选择的原因在许多处理单元中。另外,各块可以位于一个中心地点或遍布在多个地方。典型的用途是使客户处于一组硬件的一组位置,同时业务处于其他硬件上的其他位置。在操作中,业务组件1124具有多个端口(没有具体地示出),每个端口按需要连接到多个客户1102之一。业务组件1124同样具有连接到业务平台1122的单独数目的通信信道。
业务组件1124在启动时配置成管理客户1102交互作用的一组端口和具有业务平台1122的单独一组通信信道。最好,业务组件1124具有比业务平台1122的通信信道更多的客户1102的端口。业务平台1122利用单个通信信道每次处理一个请求。因此,业务组件1124排队请求或从客户1102输入,直到业务平台1122的通信信道变成可用。业务组件1124将客户1102的输入排队在位于进程队列管理器1112中的超高速存储器1114输入队列中。最好,存储器是FIF0风格的排队系统,但也可以是其他风格,例如FIL0等等。类似地,业务平台1122的输出在送回端口管理器1106并发送到请求客户1102之前排队在位于进程队列管理器1112的超高速缓存1116输出队列中。
从具有业务平台1122的通信信道分离具有多个客户1102的通信端口允许业务组件1124处理超过业务平台1122容量的多个输入请求,即,客户1102可以同时请求业务比业务平台1122具有可用信道更多。大于业务平台1122的通信信道数目的超过数量的客户1102请求进行排队,直到业务平台1122完成一请求,从而释放一个通信信道接受一个排队的请求。
在操作中,多个客户1102的一个客户请求特定的业务程序,该程序驻留在业务平台1122中。客户1102通过组成和发送SIP业务INVITE到控制模块310来发出请求。在适当的选择路由以后(正如图3、4和10所讨论的),请求通过通信信道1140传送到位于业务组件1124中的SIP用户代理1104。本领域技术人员可以认识到,SIP用户代理1104的任务是协商请求客户1102和业务组件1124之间的通信。为此,它首先确定是否有可用的端口过程1108。如果没有,它拒绝SIP业务INVITE。
如果有可用的端口过程1108,SIP用户代理1104通过通信信道1142发送消息到端口过程1108,告诉它建立回到请求客户1102的通信信道1146和1144,客户1102提供地址信息给SIP业务INVITE中的SIP用户代理1104。在许多而不是所有的情况下,对于图11所述的端口过程1108,为客户1102和端口过程1108之间的每个连接建立两组通信信道。这些通信信道包括用于媒体类型1(MT1)的信道1146和用于媒体类型2(MT2)的信道1144。典型地但不是必要地,这些通信信道之一用于从客户1102输入到业务组件1124。这在请求客户1102和端口过程1108之间建立全面的双向通信和媒体流。最好,媒体类型相应于客户1102请求的业务和业务平台1122提供的业务,但是如果媒体类型不相应可以提供接口来适当地变换媒体类型。
在其他实施方式中,任意数目的通信信道可以在请求客户1102和端口过程1108之间建立。两组通信信道用于下面的例子中,如端口过程1108a所述根据本发明请求客户1102是由主叫拨叫服务器启动的与语音有关的应用程序。业务平台1122提供文本到语音业务(TSS)。通信信道1144a利用传输控制协议(TCP)发送文本到业务组件,同时另一组通信信道1246a利用RTF和实时传输控制协议(RTCP)将音频送回请求客户1102。
当业务是语音识别服务器时两组通信信道也是有用的。在这种情况下,没有在图11中说明,这对RTP/RTCP通信信道用于话音输入业务组件1124,而TCP通信信道用于回到请求客户1102的文本输出。
还注意,用于给定端口过程的不同组的通信信道不必是必须连接请求客户1102。在这个例子中,输入的文本可能来自请求客户1102(与语音有关的应用程序),但是音频输出(从文本到语音产生业务1122)可能直接发送回到主叫(图11未示出,但在图3、4和10中表示成主叫302)。
一旦已经建立通信信道,端口过程1108可能需要附加的输入执行该业务。如果是这样的话,它等待直到通过输入通信信道1144输入。在业务平台1122提供文本到语音业务的例子中,输入是ASCII文本,它只在正确建立通信端口以后发送。在业务组件1124提供语音识别业务的例子中,输入是音频流,它只在正确建立通信端口以后发送。在其他例子例子中,输入和输出媒体类型将改变。
当端口过程1108具有它需要请求的所有事物时,它以业务平台1122实现该请求的足够的信息创建请求目标(未示出)和例如将结果发送回到适当的端口过程1108,以便发送到请求客户1102或呼叫装置302。
端口过程1108将请求目标放入输入队列1114。工作线程(WorkerThread)(WT)1118负责与业务平台1122的后端协调。当工作线程1118空闲时,它检验待处理请求目标的输入队列1114。如果WT 1118发现请求目标,WT 1118从输入队列1114取出目标并利用内部信息将请求传送到业务平台1122。
在根据本发明的服务器的结构内,业务平台1122可以提供任何业务类型。对于语音应用程序,这可以是语音识别业务、文本到语音业务、话音可扩展标记语言(VXML)脚本服务器、话音提示业务或其他业务。对于其他类型的应用程序有可比较的一列业务。
复用结构1100是通用的,几乎任何类型的业务程序都可以使用结构1100。因此,复用结构1100的一个优选实施方式包含业务平台特定的API1120子组件。业务平台特定的API 1120提供一般复用结构1100的装置,以便与任何特定业务平台1122交互作用。业务平台特定的API 1120执行任何数据变换,通信或要求与业务平台1122交互作用的其他操作。
WT 1118利用业务平台特定的API 1120请求业务平台1122。当业务平台1122完成请求处理时,它返回结果给WT 1118。虽然WT 1118可以使结果回到起始端口过程1108,WT 1118也可能适当地打包结果和将结果放入输出队列1114。但是,输出队列不是必要的。在输出队列1116返回线程睡眠,当某物放进输出队列1116时唤醒,并从输出队列1116删除结果和将结果给予初始端口过程1108。典型地不要求使用输出队列1116,因为输入通常比输出更多,导致直接将输出结果传送到初始请求的端口过程1108的能力。
初始端口过程1108通过通信信道1146发送结果到输出目的地。输出目的地可以是图11所示的请求客户1102,或在电话背景中它可以是呼叫装置302,或在IP背景中它可以是能支持SIP的装置402,它首先联系请求客户1102。
图12表示过程监视业务1200。过程监视业务1200是分布式功能,根据本发明它协调可用性和整个服务器资源的操作。过程监视业务1200具有两个主要组件,过程监视器1202和最好控制其他组件的盒监视器1204,过程监视器1202驻留在控制模块310中的相同的硬件盒或在紧邻控制模块310的硬件盒中,盒监视器1204驻留在服务器的每个硬件盒。
过程监视业务1200可以监视在多个服务器上运行的多个软件进程。它通过提供静态和动态配置在哪个硬件盒运行什么软件进程的装置来协调资源的可用性。根据初始化信息,过程监视器1202可以告诉特定硬件盒上的盒监视器1204加载和启动特定的软件进程。
此外,虽然监视如何使用软件进程和服务器需要多少处理能力,如果有过量需求,过程监视器1202可以命令盒监视器1204加载和启动新过程,或如果有过剩容量,关闭过程。开始和停止使用系统配置文件(未示出,但通常是本领域公知的)。关闭特定过程的能力可能是有用的,例如当比当前正使用更多情况的特定资源A已经在给定的硬件盒上启动,比当前需要更少情况的不同资源B已经在同一硬件盒上启动。在这种情况下,过程监视器1202将命令硬件盒的盒监视器1204关闭某些情况的资源A和启动某些附加情况的资源B。
过程监视业务1200还通过监视进程状态和提供过失败(fail over)能力提高系统可靠性。当过程失败或操作不正确时,过程监视业务120可以重新启动它们。如下所述,它的分级群聚结构使系统能够与非常多的硬件和软件资源相称。
过程监视业务1200自己监视硬件盒的操作,因此启动硬件管理。
过程监视业务1200提供更新维护软件的能力。如果特定的软件包需要更新,例如过程监视器1202可以命令所有的盒监视器1204运行这些情况的软件包以关闭这些情况。这种关闭可以是直接的,或者通过使过程完成它们的当前任务而不是任何新任务开始,它可能是适度的(graceful)。一旦所有情况的软件进程已经在特定盒终止,添加版本的软件包可以装载在盒上,新版本的情况可以开始。
同样,过程监视业务1200提供更新和维护硬件的能力。特定的硬件盒可能需要停止使用,例如由更有能力的硬件盒替代或为了使存储器或其他组件更新或补偿。过程监视器1202可以命令该硬件盒的盒监视器1204立即或适度地(即,完成正在进行的过程)关闭硬件盒上所有的软件进程。一旦硬件盒上所有的软件进程已经关闭,硬件盒可以停止业务,用于更新或修理。
过程监视业务1200最好包括用于过失败的备用过程监视器,这导致非常可靠的过程管理系统。每个过程监视器1202具有相关的备用过程监视器1208。另外,主过程监视器1206还具有相关的备用过程监视器1308。
过程监视业务1200是分级结构为群集。图13中所示的每个群集如群集1301i至1301n最好包含监视多个盒监视器1204的至少一个过程监视器1202。最好,每个过程监视器1202和每个盒监视器1204是单独的处理单元。但是,这些过程监视器1202和盒监视器1204也可以在单独的服务器上或合并成单个服务器。过程监视器1202和盒监视器1204提供监视和访问所管理资源的装置。
管理的资源,图12中表示为管理资源1、2…N和图13中的盒1过程1,…盒1过程N等等是软件进程,可以提供(1)用于监视目的的状态信息和(2)可引导管理资源执行的动作。例如,硬件盒1(图12)的监视器1204能访问硬件盒1(图12)中的管理资源1、2、…N。根据本发明的一个实施方式管理资源可以包括由驻留在服务器中的应用程序或业务程序使用的任何软件或硬件资源。对于与语音有关的应用程序,这些管理资源可以包括语音特定的资源,例如语音识别业务、文本到语音产生业务和提示业务,以及平台业务和顶级资源管理业务,例如过程监视器1202和盒监视器1204它们自己。
最好,单个情况的盒监视器1204在每个物理盒上配置,该物理盒装备要管理的资源。盒监视器1204本质上是无源管理器。它响应管理过程监视器1202的请求。过程监视器1202请求盒监视器1204管理资源的状态报告和指导盒监视器1204采取行动管理资源、启动资源、关闭资源、开发资源。最好,盒监视器1204在短时间间隔内报告过程监视器1202,但是间隔长度主要是设计选择的问题。
最好,一个过程监视器1202安装在与多个盒监视器1204分开的服务器上(尽管可能分配过程监视器1202的一些功能)。本领域技术人员可以认识到,过程监视器1202可以安装在具有盒监视器1204的服务器、安装在它自己拥有的独立的服务器、或编程入各个协同服务器。过程监视器1202根据盒监视器1204的类型、配置文件和盒监视器1204报告的信息发出适当的指令到盒监视器1204。
为了开始定位盒监视器1204,过程监视器1202最好利用多播IP消息。最好,随后过程监视器1202和盒监视器1204之间的通信利用HTTP和HTTPS协议;但是,其他的通信协议也可以使用。
正如以上讨论的,过程监视业务1200利用合并群集概念的分级报告模型。图13说明群集的分级结构。围绕群集例如围绕群集1302是多个群集13011至1301n的逻辑组。最好,逻辑组群集包括两级等级过程监视器1202和过程监视器1202管理的盒监视器1204。在本发明小规模的实施方式中,典型的群集可包括单个过程监视器1202和它管理的盒监视器1204。如图13所示,围绕群集1302包括主进程监视器1206、提供过失败能力的备用主进程监视器1308、用于群集13011至1301n的多个过程监视器12021至1202n和用于每个群集13011至1301n的每个硬件盒(没有具体标出)的多个盒监视器1204。在群集13011,过程监视器1(12021)监视硬件盒1、硬件盒2、…、硬件盒N的盒监视器1到N。
如图13所示,根据本发明的一个实施方式单个主进程监视器1206存在用于网络设计中的所有群集。当然,本领域技术人员现在认识到,多层的过程监视器可以扩展系统管理。例如,单个超主进程监视器可以作为在一组主进程监视器1206上的管理层存在。每个群集具有它自己的过程监视器1202、备用过程监视器(未示出)和多个盒监视器1204。盒监视器1204管理群集中的各个服务器。替代地,每个盒监视器1204可以指定一个服务器的一部分监视分配给服务器这部分该服务器的特定资源,或者盒监视器1204监视器可以通过几个服务器分配管理的资源。在围绕群集1302中的每个盒监视器1204报告给它的过程监视器1202,过程监视器1202又报告给主进程监视器1206。由盒监视器1204和过程监视器1202报告的数据通过体系的每一级提供和向上传送。这些集合数据可用于查看适当的用户接口工具或图形用户界面,如下面讨论的。
正如上面结合图12所说明的,根据本发明的一个实施方式盒监视器1204管理平台服务器组件的资源。管理资源是提供状态信息的软件进程或它们可以执行的有效行动。虽然盒监视器1204可以设计成执行一些信息处理,最好盒监视器1204是被动的代理,不知道它们管理过程的细节,而是报告和接收来自管理过程监视器1202的指令。
过程监视业务1200依赖盒监视器1204并且引导在盒安装时启动的过程监视器1202。例如,图12的硬件盒1可以开始关闭。过程监视器1202不会注册硬件盒1,因此硬件盒1不会报告也不会启动应用程序或业务程序。当硬件盒1启动时,盒监视器1204通知过程监视器1202(它可以通知主进程监视器1206,如果结构中存在的话,等等)。过程监视器1202(或主进程监视器1206)注册该信息到位置业务1004。类似地,利用盒监视器1204监视过程的使用信息,过程监视器1202和主进程监视器1206可由资源管理器1006访问和能由一个版本的路由选择管理器1002使用,以确定特定请求应该指向的应用程序情况和业务。
类似地,如果全部群集故障,当它启动时,过程监视器1202以类似于盒监视器1204注册过程监视器1202的方式注册到主进程监视器1206,如下所述。
为了在它启动时执行引导活动,盒监视器1204利用初始化参数规定可用的通信端口、IP地址和它的代理类型。最好,盒监视器1204利用缺省初始化值,除非运行时在命令行上规定新数值。
启动以后,盒监视器1204倾听“谁在这里?”,由群集的过程监视器1202周期地广播发现询问。如上所述,最好此发现询问作为多播IP消息发送。当盒监视器1204接收此消息时,它向过程监视器1202发送发现响应。过程监视器1202利用盒监视器1204的发现响应消息中的信息注册盒监视器1204作为群集输入使用中的,和装载盒监视器1204的报告类型特定的资源配置文件。注意注册到过程监视器1202只发生一次。然后盒监视器1204等待来自管理过程监视器1202的指令。
通常,盒监视器1204执行盒管理器的三个功能(1)它执行管理资源的行为、(2)它报告管理资源的状态、和(3)它处理管理资源发送的通知。
特定盒监视器1204提供的监视业务依赖它的盒上配置的操作系统和软件组件。这样,盒监视器1204可以由它们的类型分类。每个盒监视器1204类型具有相关的管理资源配置文件。
关于盒监视器1204可以管理资源的信息存储在配置文件中。管理资源配置文件典型地包含关于两种资源的信息启动脚本和监视过程。盒监视器1204不直接访问配置文件中的信息。更确切的说,它的管理过程监视器1202利用管理资源配置文件中的信息引导盒监视器1204执行特定顺序的任务。这些任务包括执行脚本和负载和启动管理资源组件或描述符(未示出),它提供盒监视器1204的管理资源的链路。
过程监视器1202起到群集中网络管理处理的焦点作用。正如以上讨论的,通过周期地广播“谁在这里?”询问过程,监视器1202动态地发现群集1301内的盒监视器1204,最好作为多播IP消息。从过程监视器1202的角度来说,群集中的盒监视器1204自己管理资源。类似盒监视器1204,引导在硬件盒启动时开始的过程监视器1202。为了执行引导活动,过程监视器1202利用初始化参数,它规定可用通信端口、IP地址、超时和其他行为。最好,过程监视器1202利用缺省初始化值,除非运行时在命令行上规定新数值。
启动以后,过程监视器1202读取识别已知盒监视器1204类型的主配置文件和定位它们相关的管理资源配置文件。与盒监视器1204相反,过程监视器1202是有效的实体,它从它管理盒监视器1204请求状态报告和发送指令到它管理的盒监视器1204。当盒监视器1204响应“谁在这里?”询问时,过程监视器1202注册该盒监视器1204为在它的群集中激活。盒监视器1204的响应识别它的通信信道(最好是IP地址和端口)和它的盒监视器1204类型。为了过程监视器1202了解盒监视器1204可以管理的资源,它访问与特定的盒监视器1204类型有关的配置文件。过程监视器1202利用注册在配置文件上的资源发出由盒监视器1204执行的顺序组的动作。
过程监视器1202集合关于它管理的盒监视器12的数据和它们各自管理的资源。数据集合器(未示出)业务提供盒监视器1204管理的低层过程和高层管理实体例如主进程监视器1206和管理视图应用程序之间的接口。数据集合器(未示出)业务具有多个规模。关键因素是每次管理资源启动时,创建管理资源控制器(未示出)和向上传播到体系的每一层。这个管理资源控制器(未示出)是代理目标,它使高级管理实体能够从管理资源获得信息和发出指令改变它的操作。这个代理目标最好允许这些方法在管理资源本身远程启动。
过程监视体系的每一层包含管理资源控制器,用于在该层和该层以下的每个管理资源。这使任何一层的管理实体能获得该层和该层以下任何管理资源的状态信息和控制。类似地,管理视图应用程序可以打开过程监视体系的特定层的视图。从该视图中,管理视图应用程序可以获得有关的状态信息和控制该层和该层以下的任何管理资源。
过程监视业务1200包括通知组件(未示出),它通知有关方该系统告警。根据系统经营者建立的标准,在有操作失败或功能不正确的任何时候发出告警。通知组件(未示出)包括子组件,负责(1)确定应当发出告告警(根据用户定义的标准)、(2)注册该告警、(3)确定有关告警应该通知谁、和(4)发送通知到在步骤(3)识别的接受者。通知可以发送给监视程序以采取补救行为或用于显示的管理视图应用程序。通知还可以作为电子邮件或网页发送给可以采取适当行动的操作者。
过程监视器1202过失败组件(未示出)实现两种过失败机理。第一,它一直监视盒监视器1204通过发出“你存活吗?”广播给它管理的盒监视器1204来保证它们处于操作顺序中。第二,过程监视器1202过失败组件保证备用情况的过程监视器1202(这种备用没有具体地示出)总是存活的和包含最新的信息,因此如果过程监视器1202失败,备用情况的过程监视器可以接管它。如果过程监视器1202失败,备用情况的接管为主要过程监视器1202和启动另一个过程监视器1208作为备用。
本发明能够创建可用于这种情形的服务器,即重要的是总体上跟踪或记录服务器的详细操作、服务器内运行的各个应用程序和业务程序以及服务器内运行的一组应用程序和业务。此跟踪信息可用于更好的理解服务器及其组成部分如何工作以便更好的分配硬件和软件资源。跟踪信息还可以用来确定哪个资源和多少资源由每个应用程序和业务或每组应用程序和业务使用。资源利用信息例如可用于向客户和应用程序及业务程序的提供商收费。
此记录能力具有两个主要的规模将信息记录到暂时存储器和信息从暂时存储器到持久存储器的处理。
图14说明能够跟踪或记录服务器操作的一种可能的实施方式。图14表示跟踪系统1400,最好包括暂时存储器1402、持久存储器1404和多个后处理模块1406。举例来说,图14说明跟踪应用程序312类型B和业务程序314类型Y的信息(参见图3、4和10)。跟踪或记录关于资源利用的信息在本发明中以多种方式启动。参见图3,例如,呼叫装置302访问产生和发送SIP应用程序INVITE到请求控制模块310以定位适当情况的应用程序312类型B的媒体服务器308。正如上面说明的,控制模块310执行标准操作,例如根据当前的资源利用和其他因素发现可用情况的应用程序312类型B。这些标准操作记录稍后用于单独的后处理分析模块1406,它可以包括第三方帐户和其他模块。
在应用程序312或业务程序314内,有也记录的一些操作。这时由一组软件程序或包装特定操作启动的包装器1408。当应用程序312类型B例如希望文本到语音业务,例如业务程序314类型Y,它调用嵌入应用程序312类型B模块的方法以获得业务程序314类型Y。嵌入的方法是包装器代码1408的一个例子,包装器代码1408首先记录这样的事实,即应用程序312类型B正请求位于暂时存储器1402数据字段的业务程序314类型Y,然后照常传送文本到语音业务程序314类型Y的请求。
经常,根据本发明一个实施方式记帐定义服务器必须收集的该组数据。记录是保持记帐数据的过程,因此它能用于随后的计费和分析后处理模块1406。通常,记录由所有支持SIP的组件执行,包括但不局限于控制模块310、应用程序312和业务程序314。初始的记录在暂时存储器1402完成,单独的过程集合记录数据到持久存储器1404,由决策支持工具1406使用。
记录子系统最好使用用于记录具有不同优先级数据的构架。记录语句在应当收集数据的逻辑位置的包装器代码1408中执行。给定的记录语句可以是在多个优先级之一。最好,记录系统利用至少四个优先级ERROR、WARN、INFO和DEBUG(以优先级降序列出),但作为设计决策可以使用更多的优先级。然后可设置确定实际上记录哪个优先级的参数。
最好记录能力包括三个分开的维。第一维是先前讨论的记录包装器代码1408。如果执行代码段,包装器代码1408中的代码级语句写出描述事态的相应数据。第二维是暂时存储器1402。暂时存储器机理1402提供暂时、高性能和最好不必局部存储初始记录的上述数据。
第三维是持久存储器1404。持久存储器机理1404将从暂时存储器1402转发记录数据到长期、可靠的持久存储器1404中。最好,由预编程包装器代码1408识别的记录/跟踪信息在暂时存储器1402中时存储在平面文件中,而在持久存储器1404中时存储在关系数据库中,由于设计选择问题该记录/跟踪信息在特定的事件执行。后处理模块1406根据需要通过各种传统的计费和分析程序访问持久存储器1404数据库中的信息。后处理模块1406可以是现有服务器网络的一部分或访问该系统的单独的服务器。
最好使用用于计费和分析的单独的持久存储器1404以及中间暂时存储器1402,因为当计费和分析程序访问持久存储器1404,它对运行应用程序具有最小的影响。另外,由包装器代码1408写入暂时存储器1402的跟踪或记录的数据可以快速写出到暂时存储器1402,对运行应用程序具有最小的性能影响。独立过程在规则的基础上从暂时存储器1402移出所有的数据到持久性存储器1404。
关键问题是减少同时记录的多个过程之间的争用。最好的解决方案是提供可由不同过程使用的一组多个记录文件。因为暂时存储器1402是持久性的,具有多个临时记录文件不产生不一致性当数据传送到持久储存库1404时正确地重新构造暂时关系。
数据可以从多个分布式文件以多种方式传送到持久储存库1404。一种方案是利用单个块(single bulk)交易,在一个操作中从所有的文件传送所有的数据。典型地,这将锁定所有的记录文件,直到每一个文件都处理和保证数据库中的数据在给定时间标记是当前的。这种当前值常常不是关键性的,但是,这个方案在大的安装中会产生性能问题,因为由于所有的记录文件被锁定,交易期间不能记录数据。
最好一系列交易用来从暂时存储器1402的多个分布式文件传递数据到持久存储器1404相应的文件或数据库字段。此方案利用每个文件的一个交易。每个文件逐一处理和只锁定足够久以便传送它的数据。这允许在系统传递它的数据之后立即继续记录到文件。这必然伴有应用程序的小的中断。
数据传送到持久存储器1404最好安排成在相对小的间隔内自动发生,尽管自动或人工地开始,而如果自动地,以什么间隔传递是设计决策。
持久存储器1404最好利用关系数据库1404存入记录数据。关系数据库还提供分析程序的标准装置检索后处理的数据。
一旦数据已经传送到持久存储器1404,后处理模块1406使用后处理构架(未示出)执行随后的计费和分析程序。
如上所述,这里描述的结构是基于修改为OSI协议的TCP/IP系统以更好的定义对话层和表示层,它们不是常规的TCP/IP的一部分。为了清楚起见,常规的TCP/IP系统修改为遵循上述OSI协议的TCP/IP系统将参照图15-18再说明。
OSI协议通过建立一系列执行特定功能的层定义“主机到主机”通信。如图15所示,OSI协议定义七层多级系统1500。系统1500包括物理层1502、数据链路层1504、网络层1506、传输层1508、对话层1510、表示层1512和应用层1514。图15还表示TCP/IP模型1550。TCP/IP模型1550通常以下面的方式映射到OSI系统1500。物理层1502和数据链路层1504组合成主机到网络层1552。网络层1506通常等同于互联网协议(IP)层1554。传输层1508通常等同于传输控制协议或用户数据报协议(TCP/UDP)层1556。TCP/IP模型1550通常不提供与对话层1510或表示层1512等同的层。应用层1514相应于应用层1558。
OSI协议定义各层如下物理层1502定义通过通信信道传输“比特”或数据。典型地,电压电平用来在比特1和0之间划界。物理层1502直接与通信媒体通信,例如总线工作、同轴电缆、光纤、无线协议(例如,蓝牙)。
数据链路层1504将一字节的信息编组成“帧”和无误码地传送该数据帧。数据链路层1504可以用“开始帧”指示符附加帧。而且,数据链路层1504可以为每帧产生校验和,它可用于包括数据验证的多个功能。其他部分的数据帧可以包括地址(开始/源地址和目的地地址)、误差检验等等。
网络层1506执行从一个计算装置到另一个计算装置的帧的“分组路由选择”。常规地这些装置被认为是单独的,但是计算装置可以共存。一种广泛公知的网络层协议是互联网协议(IP),它由TCP/IP模型使用。
传输层1508允许传输和接收通过网络层1506发送的多个数据帧(分组)。传输层的一个功能是重新组合传送顺序的数据帧。传送数据的其他功能可以是数据验证和丢失数据帧的重发。TCP/IP模型通常使用传输控制协议(TCP)或用户数据报协议(USP)。这些协议的重大差别在于TCP重新组装无序分组和重发丢失的分组,而USP通常只传送分组。
对话层1510允许相同或不同主机计算装置中的应用程序建立“对话”。对话在功能上与PSTN中的呼叫相似。TCP/IP模型不具有明确定义的会话层协议。通常,对话可以广泛分类成单工、半双工和全双工。单工对话通常局限于单个主机传送和一个或多个主机接收。半双工包括多个发射主机;但是,每次只有一个主机发送数据。全双工包括并行主机传送。作为建立对话的一部分,对话层1510例如包括关于建立对话的规则(即,越区切换过程)、关于识别通信数据的传输协议的规则和有关终止对话或释放呼叫的规则。
表示层1512包括有关主机之间数据传送的规则。作为传递的一部分,数据格式的协议必须在多个装置建立。例如,数据可以格式化为ASCII表示。
应用层1514通常包括应用程序或业务应用程序。例如,在文本到语音系统,业务应用程序可以从文本数据表示转换到音频数据表示。
当前,VoIP将TCP/IP用于媒体传送;但是,正如上文所说明的,常规的TCP/IP模型不具有呼叫控制的适当方法和与OSI协议对话层及表示层有关的表示。将这些层插入到TCP/IP模型的一种可能的方式是设计媒体对话构架,它包括用于呼叫控制的对话启动协议,对话描述协议以便识别多媒体物理传送模型和数据格式以及媒体传输协议。具有这些层的一种TCP/IP模型1600如图16所示。TCP/IP模型1600包括TCP/IP模型1550所示的所有层并包括对话层1602。对话层1602包括媒体对话构架1604,它包括用于对话启动协议部分1606、对话描述协议1608和实时传输协议1610交互作用的规则。虽然图16表示SIP、SDP和RTF,也可以使用上述定义的其他协议。
图17表示对话层1600可以实现的处理器1700。处理器1700包括在SIP用户代理1706从客户1702的输入1704。客户1702可以是呼叫应用程序的用户,可以是单独主处理机上的应用程序或者可以是集成处理器上的应用程序。开始,输入1704是呼叫建立请求。呼叫建立请求典型地是包括通常如上所述的连接信息的SIP邀请以及其他描述符。SIP用户代理1706与SDP代理1708交互作用以识别各种协议,例如多媒体传输协议和数据格式协议,与媒体传输协议代理1710交互作用以识别是否以及哪个端口支持识别的媒体传输协议。然后SIP用户代理1706引导呼叫到业务浓缩器1712,业务浓缩器1712将请求传送到业务应用程序1714,业务应用程序1714进一步参照图18描述。
图18更详细地表示业务浓缩器1712。业务浓缩器1712包括请求处理器1802、输入队列1804和应用程序处理器1806,它具有连接到业务应用程序平台1810的工作线程1808。工作线程1808包括通信链路,例如无线连接、同轴电缆、光纤连接等等。业务浓缩器1712可以具有请求处理器1802,它在多个不同的协议下工作。因此,SE代理1708和MTP代理1710引导SIP代理1706将呼叫导向能够支持识别协议的特定请求处理器1802。请求处理器1802遵守业务请求和将业务请求传送到输入队列1804。输入队列1804保持业务请求直到应用程序处理器1806表示工作线程1808可用于处理业务请求。因为大量的请求可以保存在排队中,可能比应用程序处理器1806支持更多的请求处理器1802。当应用程序处理器1806表示空闲的工作线程1808时,移出和发送保存在队列中的业务请求到业务应用程序平台1810进行处理。一旦请求的业务预先形成,应用程序处理器1806将结果送回到业务请求表示的地址(通常如上所述的它可以是用户的请求应用程序)。注意,应用程序处理器1806可以将结果送回到输出队列,输出队列可以将请求送回到请求地址。
一旦请求被处理和应用程序处理器1806将完成的业务请求送回到正确的地址,代理商1706终止呼叫连接,释放请求处理器以产生下一个业务请求。注意,本领域技术人员阅读本说明书后可以懂得,请求处理器可以在完成请求之前释放。
虽然上述发明已经利用传输通信协议/互连网协议(TCP/IP)通信标准和对话启动协议(SIP)或实时传送信令协议(RTSP)进行一般地叙述,本领域技术人员阅读本说明书可以认识到多路传输协议是可能的。因此,控制模块例如控制模块310可以是协议无关的。图19说明一种可能的协议无关的控制模块1900。根据上述媒体对话构架,协议无关的控制模块(PICM)1900表示各种设计程度。特别是,PICM 1900包括网络层1902、传输层1904、对话层信令协议1906、对话消息处理器1908和应用程序组件1910。类似于上述的媒体对话构架,PICM 1900使用网络层1902的任何常规的互联网协议。传输层1904包括至少一个传输协议,但可以包括更多的传输协议。例如,图19表示传输层1904,包括用户数据报协议和传输控制协议。通常,传输层1904支持PICM 1900期望支持的每个协议。图19还表示PICM 1900,支持智能的资源定位器应用程序1912、业务管理器应用程序1914、路由选择管理器应用程序1916、记帐管理器应用程序1918和第三方呼叫控制应用程序1920。这些应用程序是示范性的,由于设计选择的问题可以移出、删除或添加。层1906、1908和1910参照图20-24描述。
图20表示对话层信令协议1906的组件设计,它类似于结合上面图15-18所述的媒体对话架构协议,为了便于参考在此重复。特别是,对话层信令协议1906包括网络端点结合层2002、协议连接层2004、协议栈2006、对话协议组件应用程序提供商接口(API)2008。
网络端点结合层2002相应于传输需要的数据流套接字。例如,网络端点结合将创建SIP RTSP和UDP套接字的TCP套接字(或端口)。每个套接字或端口相应于请求处理器。请求处理器可以设计成用指定的协议预先创建或按需创建,该需求包括指定的协议。协议连接层2004通常包括处理经网络端点接收或发送消息的功能。协议栈2006包括产生对话消息的功能,如下所述。对话协议组件API允许对话消息处理器访问协议栈。通常,这些系统利用多线程复用功能(如上关于图11和18所述的),但也可以其他串行或并行的结构操作。
如上所述,协议栈2006为通过网络发送到对话消息处理器1908的每个请求或响应产生对话消息。对话消息处理器接收对话消息和确定应用程序启用以及数据协议。例如,如果对话消息处理器1908接收SIP注册消息,则对话消息处理器1908启用SIP协议和启用智能资源定位器(或资源定位器)启动SIP应用程序和业务的SIP寄存器功能。该应用程序具有接受拒绝启用的能力。
图21通常表示对话消息处理器1908组件设计。对话消息处理器1908包括多个协议组件2102,在这种情况下它包括SIP组件、RTSP组件和H.323组件、对话表2104,将在后面说明。
当路由选择请求时,对话消息处理器产生对话目标或标记以存入对话表2104中。对话目标包括用于特定对话的唯一标识符和对话的状态。例如,SIP请求将利用呼叫标识串作为唯一标识符,对话目标将包括与应用程序或业务邀请有关的细节P1CM 1900包括至少一个应用程序。例如,PICM 1900可以包括资源定位器1930(或智能资源定位器)、路由选择管理器1940、业务管理器1950、记帐管理器1960和第三方呼叫控制(3PCC)1970。一些应用程序部分地相应于图10所示和所描述的路由选择管理器1002、位置业务1004和资源管理器1006。
资源定位器1930提供特定资源存储在那里和如何存储的功能或访问应用程序和业务,例如应用程序312或业务314(图5)。虽然可以使用不同的位置协议,但在互联网的环境中特定资源的位置通常是唯一通用资源定位符(URL)。该如何通常包括通信协议要求的指示或应用程序,例如SIP、RTSP等等。
资源定位器1930可以利用各种资源位置。一种可能的资源位置方法涉及动态资源注册。在这种情况下,各个资源发送注册发送消息给资源定位器1930。这些消息通常包括该资源是什么,例如,文本到语音转换器;信号协议或协议是什么,例如SIP协议,和位置是什么,例如URL地址。通常,每个资源向资源定位器1930发送刷新注册以确保资源信息不到期或过期。资源还可以不注册到资源定位器1930以移出该信息。其他类型的资源注册可以是静态的。在这种情况下,信息通过人工输入或某种轮询请求输入到资源定位器1930,例如“谁在这里?”类型的消息发送给可用资源,谁愿意回答。典型地,注册信息保存在持久存储器,例如图14的1404。
路由选择管理器1940包括发送信号的规则。例如,路由选择1940在应用程序和业务之间传送信号。路由选择规则由业务管理器用于提供各种请求的路由选择方案。许多不同的路由选择规则可以使用,其中的一些例子是负载平衡路由选择给定一组已知的注册资源,该算法利用简单的循环赛方案产生已知资源的负载平衡;最不忙路由选择例如从过程监视器(见图12和13)给定一组已知的注册资源和负荷状态信息,该算法利用最不忙方案为请求选择适当的资源;或基于时间的路由选择给定一组已知的注册资源和基于时间的路由选择规则,该算法选择适当的资源。
当然其他的路由选择规则也是可能的。可以想象,存在一个以上的路由选择管理器用于每个PICM,业务管理器(如下所述)将根据各个请求参数选择适当的路由选择管理器。此外,路由选择管理器可以配置成从输出或输入角度给出解决方案,换言之,路由选择解决方案可以是基于起点或基于目的地的。此外,路由选择管理器可以维护路由选择解决方案的数据库以帮助确定下一条路由。例如,利用加载平衡请求,其中100个注册的资源能够服务请求。第一请求例如通过路由1选择路由。此信息将被存储,下一个请求将利用有关路由1的信息确定路由2等等。
业务管理器1950确保实现应用程序和业务的请求。图22表示有关业务管理器1950操作的功能图2200,图23是描述业务管理器1950操作的流程图2300。图2200包括资源客户2210,它相应于主叫302(图5)或应用程序1102请求业务(图11)、PICM 1900、资源存储器2220,它相应于位置业务(图10)或持久存储器1404(图14)、一系列资源22301-n和可靠的消息列队,这将结合记帐管理器的描述说明。流程图2300从PICM 1900的初始化开始,步骤2302。虽然PICM 1900可以支持多路传输协议,为简单起见这个例子限于SIP。接下来,一系列资源初始化,包括资源22301-n,这个例子中为简单起见限于是相同的,步骤2304。当然多种资源是可用的,但为了简单,用正在请求和提供单个资源说明操作。这些资源注册PICM 1900,步骤2306。注册在资源积存器中是动态的或在资源轮询或人工输入时是静态的,该注册包括协议信息,在这种情况下是SIP,和位置信息,在这种情况下是URL。PICM 1900将信息存入存储器2220,步骤2308。注册步骤可以包括设置期满数据,例如计时器或日期具体标记的步骤,因此到这个日期或之后某个时间注册到期,除非注册更新,步骤2308a。在注册成功保存在存储器以后,PICM 1900发送注册接受消息到资源,步骤2310。如果期满数据包含在注册数据中,PICM 1900可以发送信息表示何时它需要更新注册的资源,步骤2310a。同时特别地示出注意,资源将重试在不久之后注册,如果它没有接收接受的消息。
一旦完成资源注册,PICM 1900可以处理使用特定资源的请求。客户通过发送资源请求到PICM 1900请求资源,步骤2312。在这种情况下,客户发送SIP INVITE(邀请)消息。业务管理器1950确定PICM 1900接收SIP INVITE消息,步骤2314。然后业务管理器1950利用资源定位器访问存储器以识别至少一个发送请求的资源位置,步骤2316。一旦识别一个或多个可能的资源,业务管理器1950访问路由选择管理器1960以选择适合于将请求发送到识别的资源的特定资源的路由,步骤2318a。路由选择管理器根据特定的系统路由选择协议选择路由,这主要是设计选择的问题。大致与选择该路由同时,还产生回到业务管理器用于存储到对话表的对话目标,步骤2318b。对话目标不需要大致与路由选择同时产生。然后业务请求发送到下一个目的地,直到请求到达适当情况的资源,步骤2320。一旦收到,该情况的资源确定该请求应该接受或拒绝,步骤2322。如果接受,请求接受响应发送到PICM 1900,步骤2324。如果拒绝,控制回到步骤2316以识别下一个可用的资源。在收到请求接受响应时,PICM 1900发送在URL表示的资源接受的请求到客户,步骤2326。然后客户直接连接到适当的资源以处理请求,步骤2328。
记帐管理器1960根据PICM 1900执行的功能产生记帐事件。一种可能的记帐事件是业务管理器1950产生的呼叫详细记录,表示PICM和资源请求操作的细节。另外,业务管理器可以产生呼叫详细报告,表示相应资源的细节。产生这些记录给记帐管理器,记帐管理器根据呼叫详细记录产生记帐事件。记帐事件存储在记帐存储系统中,例如可靠的消息队列2240或其他类型的文件结构。通常,记帐事件将记录计费业务必须的信息,例如,客户信息、事件类型信息、协议使用信息、资源使用信息等等。
一旦PICM 1900连接请求客户与适当情况的资源,3PCC应用程序1970控制对话。越区切换协议、呼叫检测和终止协议是本领域常规公知的,在这里不再进一步说明。
图24表示结构2400,显示上述系统的坚固性。特别是,结构2400包括客户2410、PICM 2420(可以包括过失败备用2422)、存储器2430、代理PICM 2440、网络2450和连接到网络2450的资源2460。系统的可伸缩性通过加到系统的每个代理PICM而增加了。因此,虽然最初的客户请求可以到达PICM 2420,PICM 2420可以重定向该请求到代理PICM,它以上述的方式实际服务请求。而且,因为PICM(或代理PICM)通过互联网访问资源,系统可用的数目或资源主要受PICM通过量的限制。因此,加到系统的每个代理增加整个系统的通过量,提高整个系统的能力。虽然本发明已经参照优选实施方式特别地表示和描述,本领域技术人员懂得,可以进行形式和细节的各种其他的变化,而没有背离本发明的精神和范围。
权利要求
1.一种在至少一个处理器上执行复用应用程序的方法,该方法包括步骤提供至少一个访问服务器,访问至少一个应用程序;在访问服务器从至少一个用户接收请求,以访问至少一个应用程序;根据接收的请求,在至少一个访问服务器和至少一个用户之间建立通信链路;将接收的请求存储在输入请求队列;检验到所请求应用程序的可用通信路径;当可用的通信路径可用时,在输入请求队列和至少一个应用程序之间建立通信路径;移出存储的请求;和向请求的应用程序发送存储的请求。
2.根据权利要求1的方法,进一步包括步骤根据接收的请求识别媒体传输协议,其中建立的通信链路能够传送识别的媒体传输协议。
3.根据权利要求2的方法,进一步包括步骤检验发送数据的精确度;和重发错误的数据。
4.根据权利要求1的方法,其中建立通信链路的步骤使用对话启动协议、H.323协议、MGCP协议、MEGACO协议和H.248协议的至少一个协议。
5.根据权利要求2的方法,其中识别媒体传输协议使用对话描述协议。
6.根据权利要求2的方法,其中识别的媒体是实时传输协议。
7.根据权利要求1的方法,其中接收请求的步骤进一步包括在请求处理器接受请求;产生业务请求;和将产生的业务请求传送到输入请求队列用于存储。
8.一种在至少一个处理器上执行复用应用程序的方法,该方法包括步骤初始化至少一个请求处理器和至少一个应用程序处理器;从至少一个用户接受至少一个请求以访问至少一个应用程序;传送接受的请求到初始化请求处理器;根据传送的接受请求完成业务请求;将完成的业务请求放入输入队列;利用应用程序处理器使完成的业务请求放入输入队列;将得到的完成业务请求发送到至少一个应用程序;执行完成的业务请求;和返回完成的业务。
9.一种业务复用的装置,该装置包括至少一个访问服务器能够访问至少一个应用程序;至少一个访问服务器包括至少一个代理器和至少一个业务浓缩器;和至少一个业务浓缩器包括至少一个应用程序处理器、至少一个输入业务队列和至少一个请求处理器,至少一个访问服务器适合于接收多个请求以便访问至少一个应用程序,至少一个业务浓缩器适合于复用多个请求以访问至少一个应用程序。
10.根据权利要求9的装置,其中至少一个代理包括至少一个SIP用户代理。
11.根据权利要求10的装置,其中至少一个代理包括至少一个SDP代理。
12.根据权利要求11的装置,其中至少一个代理商包括至少一个MTP代理。
13.根据权利要求12的装置,其中至少一个MTP代理包括实时传输协议。
14.根据权利要求9的装置,其中至少一个业务浓缩器进一步包括至少一个业务输出队列。
15.根据权利要求9的装置,进一步包括传送业务请求的至少一个传送客户;和接收处理请求的至少一个接收客户。
16.一种计算机程序产品,包括计算机可用介质,包括其中记录的计算机可读代码,用于处理数据来控制访问至少一个应用程序的至少一个请求,该计算机可用介质包括请求接收模块,配置成接收访问至少一个应用程序的至少一个请求;通信建立模块,配置成与请求访问至少一个应用程序的至少一个客户建立通信链路;存储模块,配置成存储至少一个接收的请求;校验模块,配置成校验通信路径是否能够允许访问至少一个应用程序;和通信建立模块还配置成与至少一个应用程序建立通信链路。
17.根据权利要求16的计算机程序产品,进一步包括业务浓度模块,配置成包括至少一个请求处理器;该至少一个请求处理器产生存储在存储模块的至少一个业务请求;和至少一个应用程序处理器,使得至少一个应用程序处理器移出存储的请求和传送存储的请求到至少一个应用程序进行处理。
18.根据权利要求16的计算机程序产品,其中该通信模块还配置成将至少一个处理的请求输出到至少一个客户表示的至少一个地址。
19.根据权利要求16的计算机程序产品,其中该存储模块还配置成在传送之前存储至少一个处理请求。
20.根据权利要求17的计算机程序产品,进一步包括sip代理模块,配置成提供呼叫控制。
21.根据权利要求20的计算机程序产品,进一步包括sdp代理模块,配置成提供对话描述,使得sip代理模块引导至少一个请求到请求处理器模块。
22.根据权利要求21的计算机程序产品,进一步包括介质传输协议代理,配置成提供传输协议。
23.一种计算机程序产品,包括计算机可用介质,在其中记录的计算机可读代码,用于处理数据来控制访问至少一个应用程序的至少一个请求,该计算机可用媒体包括请求接收模块,配置成接收访问至少一个应用程序的至少一个请求;第一通信建立模块,配置成与请求访问至少一个应用程序的至少一个客户建立通信链路。存储模块,配置成存储至少一个接收的请求;校验模块,配置成校验通信路径是否能够允许访问至少一个应用程序;和第二通信建立模块还配置成与至少一个应用程序建立通信链路。
24.根据权利要求23的计算机程序产品,进一步包括第三通信建立模块,配置成与至少一个地址建立通信链路以接收至少一个处理的请求。
25.传输协议无关地将至少一个资源的至少一个请求连接到至少一个资源的至少一个提供商的方法,该方法在至少一个处理器执行,包括步骤接收至少一个资源的至少一个请求;确定与至少一个请求有关的传输协议;识别能够支持该确定的传输协议的至少一个请求资源的至少一个提供商;和将至少一个请求发送到至少一个提供商。
26.根据权利要求25的方法,其中接收步骤包括提供多个接收端口,使得每个端口能够接收多个传输协议之一;将收到的至少一个请求传送到至少一个协议处理器;和根据至少一个接收的请求产生至少一个对话消息。
27.根据权利要求26的方法,其中确定传输协议的步骤使用该至少一个产生的对话消息的至少一个对话消息确定传输协议。
28.根据权利要求25的方法,进一步包括步骤保持有关至少一个请求的状态信息。
29.根据权利要求28的方法,其中保护状态信息的步骤包括创建包括至少有关对话的状态信息的对话目标;和利用唯一标识符存储对话目标。
30.根据权利要求25的方法,其中该识别步骤进一步包括为至少一个资源的至少一个提供商注册信息。
31.根据权利要求30的方法,其中该注册信息步骤包括为每个该至少一个注册提供商存储至少一个唯一的位置;存储每个该至少一个注册提供商支持的传输协议;和存储表示由每个该至少一个提供商提供的至少一个资源的信息。
32.根据权利要求30的方法,其中该注册至少一个资源的至少一个提供商包括轮询可用的资源。
33.根据权利要求30的方法,其中该识别步骤包括使用该注册信息。
34.根据权利要求25的方法,其中该路由选择步骤进一步包括应用路由选择规则。
35.根据权利要求34的方法,其中该路由选择规则包括该组路由选择规则之一,这组路由选择规则包括负载平衡规则、最不忙路由选择规则或基于时间的路由选择规则。
36.根据权利要求25的方法,进一步包括步骤根据至少一个接收的请求产生记帐事件。
37.权利要求36的方法,其中产生该记帐事件还根据至少一个提供商。
38.根据权利要求25的方法,进一步包括步骤建立到至少一个提供商的呼叫连接以实现该至少一个请求;和控制该呼叫。
39.根据权利要求25的方法,进一步包括步骤将该至少一个接收的请求传送到至少一个代理控制器以识别该至少一个提供商。
40.一种连接资源请求与资源提供商的装置,包括控制器,能够接收至少一个资源的至少一个请求;协议栈,能够确定与该至少一个请求有关的至少一个传输协议;资源定位器,能够识别该至少一个请求的资源的至少一个提供商,该至少一个提供商能够支持确定的传输协议;和路由器,将该请求发送到该至少一个提供商。
41.根据权利要求40的装置,其中该控制器包括至少一个协议处理器。
42.根据权利要求40的装置,包括对话消息处理器,根据控制器收到的该至少一个请求产生至少一个对话消息;该对话消息处理器将该至少一个产生的对话消息传送到该协议栈;和该协议栈使用该至少一个产生的对话消息确定该至少一个传输协议。
43.根据权利要求40的装置,其中该资源定位器包括包含有关至少一个提供商的信息的数据库。
44.根据权利要求43的装置,其中包含在该数据库中的信息包括用于每一个该至少一个提供商的唯一的位置;由每一个该至少一个提供商支持的至少一个传输协议;和由每一个该至少一个提供商支持的至少一个资源;
45.根据权利要求44的装置,其中该资源定位器包括轮询产生器,用于发送能够从至少一个资源请求该信息的信号。
46.根据权利要求40的装置,其中该路由器包括规则组件,使得该规则组件从识别至少一个提供商中选择一个实际的提供商,将至少一个请求发送到这个提供商。
47.根据权利要求46的装置,其中该规则组件使用负载平衡规则。
48.根据权利要求46的装置,其中该规则组件使用最不忙规则。
49.根据权利要求46的装置,其中该规则组件使用基于时间的路由选择规则。
50.根据权利要求40的装置,包括记帐事件产生器,根据该至少一个接收的请求产生至少一个记帐记录。
51.根据权利要求50的装置,其中该至少一个产生的记帐记录还根据实际的提供商。
52.根据权利要求40的装置,包括呼叫控制器,用于在实际的提供商和客户之间建立呼叫连接;和该呼叫控制器控制该呼叫。
53.根据权利要求40的装置,包括传送控制器,将至该少一个请求传送到代理控制器。
54.一种计算机程序产品,包括计算机可用介质,包括其中记录的计算机可读代码,用于处理数据来控制访问至少一个应用程序的至少一个请求,该计算机可用介质包括请求接收模块,配置成接收至少一个资源的至少一个请求;协议确定模块,配置成确定与该至少一个请求有关的至少一个传输协议;资源定位器模块,配置成识别该至少一个请求资源的至少一个提供商,该至少一个提供商能够支持确定的至少一个传输协议;和路由选择模块,配置成将该至少一个请求发送到该至少一个识别的提供商的实际提供商。
55.根据权利要求54的计算机程序产品,包括协议处理器模块;对话传送消息模块;该请求接收模块配置成传送该至少一个接收的请求到该协议处理器模块;和该协议处理器模块配置成识别至少一个传输协议和传送该识别的至少一个传输协议到该对话传送消息模块;该对话传送消息模块配置成根据该至少一个接收的请求产生对话消息。
56.根据权利要求54的计算机程序产品,包括存储模块,配置成存储有关至少一个资源的该至少一个提供商的信息。
57.根据权利要求56的计算机程序产品,其中该存储模块配置成存储有关该至少一个提供商的位置信息;由该至少一个提供商支持的传输协议信息;和与该至少一个提供商有关的至少一个资源。
58.根据权利要求54的计算机程序产品,包括规则模块,配置成使用路由选择规则将该至少一个请求发送到该实际提供商,该路由选择规则包括负载平衡规则、最不忙规则和基于时间的规则。
59.根据权利要求54的计算机程序产品,包括记帐模块,配置成根据该至少一个接收的请求产生至少一个记帐记录。
60.根据权利要求59的计算机程序产品,其中该记帐模块还配置成根据该至少一个提供商产生该至少一个记帐记录。
全文摘要
本发明用于复用应用程序。特别是,访问服务器(308/310)从用户(302、402、2410)接收请求访问应用程序(312)。根据接收的请求,访问服务器(308/310)建立访问服务器(308/310)和用户(302、402、2410)之间的通信链路。当所请求应用程序(312)的可用通信路径(1808)可用时,访问请求保存在输入请求队列(1804)中。建立输入请求队列(1804)和应用程序(312)之间的通信路径(1808),移出和发送存储的请求给应用程序(312)。此外,本发明提供协议无关的控制模块(1900),以多个协议格式向请求客户(302、402、2410)提供应用程序(312)。特别是,控制模块能够识别要求或请求的协议和选择能够支持所识别协议的应用程序和业务提供商(312、314)。
文档编号H04L12/24GK1460212SQ02801006
公开日2003年12月3日 申请日期2002年4月1日 优先权日2001年3月30日
发明者布赖恩·马凯特, 罗伯特·埃尔南德斯, 保罗·魏贝尔, 布雷特·B·布彻, 马克·B·阿博特, 杰西·梅伦德斯 申请人:三德惬瑞公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1