CN1977176A - 在使用消息队列的消息传输中促进端到端服务质量的系统和方法 - Google Patents

在使用消息队列的消息传输中促进端到端服务质量的系统和方法 Download PDF

Info

Publication number
CN1977176A
CN1977176A CNA2004800035999A CN200480003599A CN1977176A CN 1977176 A CN1977176 A CN 1977176A CN A2004800035999 A CNA2004800035999 A CN A2004800035999A CN 200480003599 A CN200480003599 A CN 200480003599A CN 1977176 A CN1977176 A CN 1977176A
Authority
CN
China
Prior art keywords
message
application
qos
priority
network
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.)
Granted
Application number
CNA2004800035999A
Other languages
English (en)
Other versions
CN1977176B (zh
Inventor
J·鲁图
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.)
Nokia Oyj
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN1977176A publication Critical patent/CN1977176A/zh
Application granted granted Critical
Publication of CN1977176B publication Critical patent/CN1977176B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/08Locating faults in cables, transmission lines, or networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

一种用于在网络上在至少两个应用之间缓存消息的系统和方法实现了服务质量(QoS)框架。消息从源应用发射到用于消息缓冲的中间消息队列。在消息队列处向通过消息队列的消息流给予一个消息队列QoS,并且能因此在网络上为消息流提供端到端QoS。

Description

在使用消息队列的消息传输中促进端到端服务质量的系统和方法
发明领域
本发明通常涉及通信,并且尤其涉及一种用于为利用消息队列的应用消息转送提供端到端服务质量的系统和方法。
发明背景
虽然计算机仍然用于它们的传统处理目的,但是通信基础设施和协议中的进步已经把标准计算设备转变成为有价值的通信工具。计算机通过范围从局域网(LAN)到诸如互联网之类广泛的全球区域网(GAN)的网络彼此通信以及与其它电子设备通信。诸如移动电话、个人数字助理(PDA)等等其它电子设备已经历了类似的转变。今天,这些无线设备被用于各种不同类型的通信。例如,虽然模拟移动电话传统上被用于模拟话音通信,但是现在的以及未来的移动电话是一种能够传送语音、数据、图像、视频和其它多媒体内容的强大通信工具。PDA一度曾是便携日历和组织工具,现在常常包括了诸如电子邮件、互联网访问等等网络通信能力。随着无线和有线网络基础设施的集成化,一切种类的信息都能够很方便地在无线和有线终端之间传送。
在设备之间实现此类通信时,在此类设备上可操作的程序、应用、应用实例等等(以下称为“应用”)通常需要与其它设备上的应用通信。例如,应用层上的一个应用可以生成被传送给软件体系结构的较低层的消息,较低层例如包括传送层、网络层、数据链路层和物理层,在此,已封装的消息通过网络被发射给其它设备。在接收设备接收到的消息往软件体系结构上移以便最终向接收设备上的应用提供原始消息。
为了促进消息的通信,可以使用消息队列。通常,消息队列与从一个应用中接收消息并把它们转发给一个接收方应用的功能有关。消息队列担任传播消息的临时存储器功能。这样的消息队列通常位于正在发射和接收消息的设备中,并且可替代地,可以位于逻辑上处于发送和接收设备之间的网络上的一个中间计算机系统中。
消息队列的使用删除了来自应用本身的消息通信的许多方面。比如当通信应用之间没有连接时,消息队列存储消息。另一益处是可靠性,因为消息队列的使用提供安全且有序的消息递送。因此,应用消息队列的一个益处是:不需要应用开发者开发甚至完全了解执行消息与他们的应用之间的这些有序转送的基础功能。
现有的消息队列按照先进先出的形式缓存信息。到此刻为止,公共互联网已经基于一种“尽力而为”的原理工作,意味着没有服务质量(QoS)可用。互联网协议(IP)网络因此将尽力而为地递送数据,但是不给出保证。按照先进先出方式操作的现有消息队列还依照“尽力而为”的形式来操作,并因此适于这种尽力而为型网络QoS。
可是,当前对于诸如互联网之类的有线网络正在开发不同的QoS方法学。例如,区别化服务(DiffServ)框架的互联网工程任务组的(IETF的)标准化允许在IP路由器中支持基于优先级的QoS机制。另一示例是IETF的标准化综合服务(IntServ)框架。除了IP协议之外,蜂窝协议现在正在开始支持QoS。此类框架将向内容消费者提供变化的QoS。
所希望的是使用此类QoS方法学在与消息事务处理相关的应用和/或应用实例之间提供“端到端”QoS。消息队列虽然提供一些益处,但是最终可能对这种端到端QoS呈现一个瓶颈。因为QoS受到转送中最弱QoS链路的限制,“尽力而为”型消息队列致使无线和有线网络QoS方法无效。本发明向现有技术的这些以及其它问题提供了一个解决方案,并且提供许多胜过实现消息队列的现有技术消息事务处理的优点。
发明内容
为了克服上述现有技术中的限制,以及为了克服在阅读并理解了说明书后将变得明显的其它限制,本发明公开了一种尽管沿着传输路径使用消息队列但还提供端到端服务质量的系统和方法。
根据本发明的一个实施例,提供一种在网络上在至少两个应用之间缓存消息的方法。一个或多个消息从源应用发射到用于信息缓冲的中间消息队列(MQ)。向通过MQ的消息流给予一个MQ服务质量(QoS)。消息流然后从服从该MQ QoS的MQ中被发射。
根据本发明的另一实施例,提供一种用于促进至少两个应用之间的端到端服务质量(QoS)通信的方法。一个或多个消息从至少一个第一应用中被发射并且目的地为至少一个第二应用。来自第一应用中的消息在一个消息队列(MQ)处被接收。MQ操纵消息的输出顺序以便关于消息的进一步传输给予一个QoS。目的地为第二应用的消息按照与给予的QoS对应的输出顺序从MQ中输出。
根据这样一个方法的更特定的方面,从第一应用中发射消息可以包括:从可操作在诸如计算机、移动设备等等之类的一个发送设备上的多个应用中发射消息。在一个实施例中,来自多个应用中的至少一些消息具有相对于彼此不同的优先化指示符,这影响它们的相对传输优先级。在另一个实施例中,来自多个应用中的至少一些消息在消息本身内不直接包含优先化指示符而是通过其它的方法把优先化指示符提供到消息队列,比如函数调用中的参数、某些控制平面信令方法或者作为一个预定义消息队列表之类的。例如,不同的优先化指示符可以包括与多个应用的每一个相关的应用标识符,如此以使消息优先化受到应用的影响。作为另一示例,不同的优先化指示符可以包括消息的特性,比如消息类型、延迟灵敏度、丢失灵敏度、消息优先级、消息抛弃概率、分配带宽共享、网络QoS模型等等。根据这样一个方法的其它更特定的方面,在MQ处操纵消息的输出顺序包括:把多个队列中的消息按照它们的相对传输优先级进行排队,并且按照一个预定调度程序调度消息从队列中的输出。在另一个实施例中,消息首先被优先化以便识别每一消息要被输入到多个队列中的哪一个。
根据本发明的另一实施例,提供一种用于向通过逻辑上耦合在具有至少一个源应用的源设备和具有至少一个目的地应用的目的地设备之间的MQ的消息给予一个QoS的方法。该方法包括:基于与每一消息相关的信息把从源应用中收到的消息区分优先级为多个优先级类别。响应于消息的优先化,每一消息被排队到与MQ相关的多个MQ优先级队列之一中。该方法还包括:基于一个调度程序调度消息从多个MQ优先级队列中的输出顺序。那些消息依据预定输出顺序从MQ发射给目的地应用,从而向通过该MQ的消息给予QoS。在这样一个方法的更特定的方面中,把消息区分优先级为多个优先级类别涉及:基于消息从中始发的应用来把消息区分优先级,和/或基于指示消息之间相对优先级的其它消息特性来把消息区分优先级为多个优先级类别。
根据本发明的另一实施例,提供一种通过网络在多个应用之间传送信息的系统。该系统包括用于按照一个网络QoS范例通过网络发射消息的若干第一应用和用于经由网络接收消息的若干第二应用。一个MQ模块被耦合来接收消息,并被配置来把一个MQ QoS应用到从第一应用发射给第二应用的消息上。
根据这样一个系统的更特定的方面,MQ模块可以包括一个优先化模块,它被耦合来接收消息并基于与每一消息相关的优先化指示符把从第一应用中接收到的消息区分优先级到优先权类别中。可替代地,优先化可以在MQ外部完成,例如通过发射应用或其它应用。在这样一个系统的其它更特定的方面中,MQ模块可以包括一个排队模块,它具有临时存储消息的若干基于优先级的队列,在此,多个基于优先级的队列中的每一个存储具有类似优先级的消息。在另一方面中,MQ模块包括一个调度模块,调度模块被耦合到排队模块来管理把消息从多个基于优先级的队列中输出到网络的那个顺序。
根据本发明的另一实施例,提供一种可操作在网络上的通信设备。通信设备包括用于从一个或多个远程应用接收消息的一个或多个应用模块。通信设备还包括一个MQ模块,MQ模块进而又包括一个优先化模块、基于优先级的队列以及一个调度模块。优先化模块被耦合来接收消息并基于与每一消息相关的优先化指示符把从远程应用中接收到的消息区分优先级到优先权类别中。基于优先级的队列每一个都临时存储具有类似优先级的消息。调度模块被耦合到多个队列来管理从多个基于优先级的队列中输出消息的那个顺序。在这样一个通信设备的更特定的方面中,通信设备可以是可操作在无线网络上的移动终端,和/或可以是可操作在有线或无线网络上的计算设备。
表征本发明的这些以及各个其它优点和新颖性特征在附加到这里并于此形成一部分的权利要求中被特别指出。可是,为了更好地理解本发明、它的优点以及通过它的使用所获得的目的,应该对于此形成了另外一个部分的附图以及所伴随的叙述性内容进行参考,这些内容中示出并描述了根据本发明的系统和方法的典型示例。
附图说明
结合在如下附图中说明的实施例来描述本发明。
图1是示出其中可应用本发明原理的一个可仿效网络环境的框图;
图2是说明一种典型方式的框图,其中,消息队列(MQ)会干扰网络否则会支持的端到端QoS;
图3是说明分层软件体系结构中消息队列的体系布局的典型示例框图;
图4是概括地说明根据本发明使用至少一个MQ并提供端到端QoS的通信系统的一个实施例的框图;
图5是说明根据本发明的启用QoS的MQ的一个实施例框图;
图6、7和8是说明根据本发明用于使用消息队列提供端到端QoS的方法的各个实施例流程图;
图9是说明根据本发明的原理的一种合并了QoS机制的MQ的一个实施例框图;
图10是说明根据本发明的一种队列配置的典型示例框图;和
图11是说明能够实现根据本发明的操作的典型移动终端计算机系统的框图。
具体实施方式
在可仿效实施例的如下说明中,对附图进行参考,附图在此形成了它的一部分并且其中通过说明示出可以实践本发明的典型实施例。应该理解的是,可以应用其它实施例,因为可以进行结构和操作上的改变而不偏离本发明的范围。
通常,本发明提供一种在应用之间提供端到端服务质量(QoS)的同时在应用之间转送消息时应用消息队列(MQ)的方式。消息比如通过网络从一个应用发射给另一应用,并且一个或多个MQ在发射期间缓存那些消息以便促进组织起来的消息流。MQ向消息流给予一个QoS,并且那些消息能因此从服从该QoS的MQ中被发射。以这种方式,MQ不致使在剩余的通信路径上(例如在网络上)实现的任何无用的QoS。
在一个实施例中,本发明涉及有线和/或移动通信系统中的软件体系结构,该软件体系结构包括与应用之间的通信有关的功能。如前所述,消息队列方法学被用来促进应用之间的通信。图1是示出可应用本发明原理的一个可仿效网络环境100的框图。网络环境100例如可以包括一个或多个无线网络102和/或有线网络104。一个(多个)无线网络102可以表示任何一个或多个已知或未来的无线网络技术,比如全球移动通信系统(GSM)、通用移动通信系统(UMTS)、个人通信业务(PCS)、时分多址(TDMA)、码分多址(CDMA)、宽带CDMA(WCDMA)或者其它移动网络传输技术。其它无线通信装置还可以耦合各种终端,比如短距离无线技术(例如蓝牙)。任何无线设备106或其它通信终端可以耦合到此类一个(多个)无线网络102,比如移动电话108以及其它移动通信装置、膝上型的或者其它便携式计算机110、个人数字助理(PDA)112或者任何由通用无线设备114表示的能够经由无线网络102通信的其它类似的终端。由无线设备-N116表示的任何数目的无线设备可以耦合到无线网络102。其它设备或网络元件118、120也可以耦合到无线网络102。这样一个网络元件的一个示例是服务器118。
一个(多个)有线网络104可以包括诸如互联网之类的全球区域网(GAN)、一个或多个广域网(WAN)、局域网(LAN)等等。能够通信的任何计算设备或其它终端可以经由有线网络104操作,比如诸如计算机122、124(包括台式机、工作站、膝上型计算机、会议系统等等)或能够经由网络104通信的任何其它类似的计算设备之类的。其它设备或网络元件126、128也可以耦合到有线网络104。例如,服务器126可以提供内容、数据等等给任何一个或多个其它计算机122、124,无线设备106、116,和/或其它服务器118或者其它网络元件120、128。用具有程序或应用的任何网络元件可应用本发明,其中,期望与其它程序/应用的通信。另外,虽然本发明在网络环境中尤其有益,但是本发明同样适用于其中发生应用或应用实例之间的通信的独立系统。
在图1的图示实施例中,每一个示出的网络元件包括可以与其它网络元件中的其它应用通信的一个或多个应用。例如,无线设备包括一个(多个)应用130,服务器118和126分别包括一个(多个)应用132和134,而计算设备122包括一个(多个)应用136。用于促进此类应用之间的通信的软件常常被称为应用通信“中间件”。
本发明是针对此类中间件的一个方面,即消息队列,其促进此类应用130、132、134、136和/或其它应用之间的通信。通过网络的应用数据常常被称为消息。消息队列在转送期间提供网络中的一个保存位置来临时存储消息。消息队列(MQ可以位于计算机、服务器或其它发送消息的系统中,和/或位于接收消息的系统中。例如,网络元件106、118、122、126的任何一个或多个可以分别包括一个MQ,比如MQ 140、142、144、146。可替代地,如一个或多个MQ 148所示,MQ可以作为一个中间计算机系统逻辑上位于发送和接收系统之间。正如在下面更详细描述的那样,尽管使用消息队列机制,但本发明还使得服务质量的一个期望端到端链路被获得。
当应用这样的消息队列时,和端到端QoS有关的现有技术中的问题会发生。至今,公共互联网已经正在依照“尽力而为”QoS服务模型进行操作,其中网络(即,这个示例中是互联网)只“尽力而为”地递送数据分组。换言之,在一个应用无法预先知道传输信道特性的意义上,这里没有已建立的QoS。依照这样一种服务模型,关于分组丢失比或分组传送延迟没有保证,并且关于可用比特率没有精确信息。这使业务供应商难以在消费者之间或应用之间引入任何区别。可是,随着新的互联网服务模型(比如综合服务(IntServ)和区别化服务(DiffServ)框架)的引入,这种情形正在改变。这些框架在某种程度上允许基于优先级的QoS机制。除了IP协议之外,蜂窝和其它无线协议已经开始支持QoS。例如,就像第三代(3G)通用移动通信系统(UMTS)网络已经做的那样,第二代(2G)通用分组无线业务(GPRS)已经规定优先级来支持QoS。
端到端QoS问题发生基本上是因为消息队列(MQ)与这些有线和/或无线QoS机制不兼容。例如,假定一个方案,其中应用开发者意欲对于一个关于转送延迟相对敏感的应用使用MQ服务。MQ作为沿着两个通信应用之间的路径的一个“尽力而为”组件出现,它能够依照更希望的QoS模型而操作。因此,存在这样的危险:即,尽力而为型MQ将保存延迟敏感的消息同时其它较不延迟敏感的消息首先被发射。因此,MQ瓶颈变成期望的端到端QoS数据转送的一个阻碍,并且有时候与网络设备(有线和/或无线)相关的QoS投资变成无用--因为终端设备的消息队列无法处理该网络QoS。
图2是说明一种典型方式的框图,其中,消息队列(MQ)会干扰网络否则支持的端到端QoS。在这个典型示例中,两个应用要彼此通信。更具体地说,应用-A 200要与应用-B 202通信。这些应用200、202可以位于不同的设备中(例如,移动设备、计算机、服务器等等),或者可以是一个特定设备内的不同应用或应用实例。在图示的实施例中,应用-A 200被示出在一个终端(移动或有线)中,而应用-B 202被示出在另一终端或网络服务器中。网络可以支持基于优先级的QoS机制,比如在一个区别化服务(DiffServ)框架的情况下。因此,应用-A 200可以能够在DiffServ框架之下开始DiffServ服务质量QoSDS表示的QoS的端到端链路。在消息队列204、206没有被使用的情形中,QoSDS可以被实现通过应用-A 200、分别在终端、网络元件和终端/服务器中的启用QoS的传送层208、210、212之间的整个链路,并最终到应用-B 202。
可是,当“尽力而为”型MQ 204和206被引入时,QoSDS在消息队列204、206之一或二者中被干扰。更具体地说,在此,MQ 206没有实际的QoS并且依照尽力而为模型来操作,无法保持QoSDS,并且服务质量下降到尽力而为型QoSBE(即,基本上没有实际的服务质量机制)。因此,如果应用-A 200使用MQ的服务,则没有QoS的MQ 204、206禁用服务质量的端到端链路。在最坏情况的情形中,在IP或无线层处以及在网络元件中的QoS机制变成无用。
因此,当诸如流式传输呼叫和/或视频呼叫之类更多QoS敏感的服务被配置时,重要的是把QoS扩展到通信应用之间的所有组件,包括该一个(多个)MQ。本发明提供一种启用QoS的消息队列,以使通信应用之间的整个链路支持QoS。一个主要的益处是:终端设备(例如移动终端和/或服务器)也能够支持端到端QoS。这导致最终用户看到没有变成瓶颈(瓶颈会干扰QoS)的MQ。因此,设备和操作系统能够为最终用户提供较好的服务质量。
图3是说明分层软件体系结构中消息队列的体系布局的典型示例框图。本实施例假定无线终端300和另一终端或服务器(服务器/终端302)的应用之间的无线/蜂窝通信。终端300包括典型的应用,包括应用-A 304、应用-B 306一直到由应用-n 308表示的不确定数量的应用。类似地,服务器/终端302包括典型的应用,那些典型的应用包括应用-X 310一直到由应用-m 312表示的不确定数目的应用。这些应用和任何期望或需要的应用编程接口(API)一起表示每一个堆栈的应用层。
传输控制协议(TCP)314、316和用户数据报协议(UDP)318、320堆栈服务描述了典型的传送层协议。通常,TCP或UDP协议被用于移动互联网设备以便传送应用相关的消息。互联网协议(IP)322、324堆栈服务描述了一个典型的网络层协议,它已经被用于通过基于IP的网络传送数据。在图示的实施例中,各个无线/蜂窝协议326、328可以表示数据链路层和传送层之间的协议。这些协议例如包括:短消息服务(SMS)、多媒体消息服务(MMS)、无线应用协议(WAP)等等。构造上,MQ 330、332位于如图3所示的示例中的通信协议和应用之间。如通信路径334描述的终端300和服务器/终端302之间的连接可以是一个不可靠的连接,它可以只是偶尔可用。MQ 330、332处理该情形,同时根据本发明提供QoS。
如前所示,通信路径中MQ的使用虽然有益于它的预定目的,但是会消除否则通过在网络上实现QoS所提供的任何益处。图4是概括说明根据本发明使用至少一个MQ并提供端到端QoS的通信系统的一个实施例框图。应用-A 400可以传送消息给其它应用,比如传送给应用-B 402或其它应用-m 404。类似地,应用-B 402可以传送消息给其它应用,比如传送给应用-A 400或其它应用-n 406。消息队列(MQ)408、410被提供来接收来自相应应用中的消息,并把消息转发给另一系统或设备中的接收方应用。比如当在通信应用400、402之间有干扰或终止的连接时或者当网络412只能提供导致消息聚积的低带宽时,MQ 408、410还存储消息。
在通过网络412发射消息的地方,服务质量(QoS)机制414可以被实现用于网络转送。例如,DiffServ和/或IntServ框架依据QoS促进IP层的信息转送。另外,在网络412包括无线网络时,蜂窝协议可以支持QoS。根据本发明,MQ 408、410实现QoS功能以使它们不阻碍可操作在网络412上的QoS机制。因此,在仍然使用消息队列的同时可以实现诸如应用-A 400和应用-B 402之类应用之间的端到端基于QoS的消息传输。正如通过启用QoS的MQ-A 408和启用QoS的MQ-B 410描述的那样,这通过在消息队列中实现QoS功能来实现。因此,当诸如数据流或视频呼叫之类更QoS敏感的服务被配置时,QoS被扩展到通信应用400、402之间的所有组件,包括MQ 408、410。以这种方式,如端到端QoS线路416所述,应用-A 400和应用-B 402之间的整个端到端消息传输,能够保持QoS。这个端到端QoS可被提供于发射消息的任何数目的应用400、402、406之间。本发明提供的一个主要益处是:诸如移动终端、服务器和/或其它网络元件之类的终端设备能支持端到端QoS。因此,MQ没有变成最终用户看到的干扰QoS的瓶颈。
图5是说明根据本发明的启用QoS的消息队列500的一个实施例的框图。采用QoS的网络可以从一个或多个应用中发射服从QoS参数的消息,如输入消息路径502所述。这些消息可以被排队模块504排队。排队模块504以根据在MQ 500处接收到的特定消息促进QoS之间的区别的方式对接收到的消息进行排队。例如,排队模块504可以包括多个排队功能,比如软件实现的排队结构、链接表等等。虽然硬件排队机制也可以结合本发明而被采用,但是由于使用软件排队方法学获得的相对处理效率,所以软件排队机制可能是优选的。根据排队模块504提供的排队功能的数目,若干排队信息路径506A、506B、506C…506n可以被提供给输出队列/缓存器508。在这样一个实施例中,一个调度模块510能够控制输出与消息路径506A、506B、506C…506n相关的消息的顺序,它最终为经由输出消息路径512输出的这些传出消息提供一个QoS。可替代地,排队模块504可以结合调度模块510,内部地确定输出消息的顺序,并且把排序的消息输出到输出缓存器508,如消息路径506A所述。
排队模块504如此区分不同QoS的消息。在一个实施例中,这可以使用一个与排队模块504相关的优先级机制来执行。例如,排队模块504可以识别接收消息的QoS区别,并且把这些接收消息与排队模块504内多个排队结构中适当的一个排队结构相关。这样一个优先化模块可以在排队模块504内部实现(如图示的实施例中那样),或者可以使用一个优先化模块(未示出)来实现,优先化模块进而又控制排队模块504把输入消息置于适当的队列中。下面描述根据本发明的启用QoS的MQ的其它实施例。
图6是说明根据本发明使用消息队列提供端到端QoS的一个方法实施例流程图。来自一个或多个第一应用并且目标为一个或多个第二应用的消息被发射600。例如,单个设备(例如移动终端、网络元件等等)上的一个或多个应用或者应用实例,或者来自不同设备的一个或多个应用,都可以利用一个MQ来缓存目标为其它应用的消息。应该指出:从中可以发射消息的那些“应用”包括任何类型的软件模块,包括程序、用户可访问的软件应用、用户不可访问的软件应用、实用程序、操作系统等等。在MQ处接收602消息。在MQ处向这则消息给予604一个QoS,其中,在本发明的一个实施例中,给予消息的QoS与否则将在网络上实现的一个QoS相称。例如,在网络基于消息的优先级实现DiffServ QoS框架时,根据本发明的一个实施例,在MQ处给予消息的QoS可以基于类似的优先级参数。依据给予那些消息的QoS,消息从MQ中被输出606到一个(多个)传输路径。例如,对于基于优先级的QoS,消息可以按照大体上对应于消息优先级的一个顺序被输出。
图7是说明根据本发明使用消息队列提供端到端QoS的另一方法实施例的流程图。同样,来自一个或多个第一应用并且目标为一个或者多个第二应用的消息被发射700,并且在MQ处接收702那些消息。在图7的图示实施例中,消息在MQ处的输出顺序被操纵704。例如,可以基于应用标识、消息类型/类别、延迟灵敏度、丢失灵敏度、消息优先级、消息抛弃/丢失概率、分配带宽共享等等中的一个或多个来重新排列输出顺序。而且,可以基于应用到网络上的消息转送的网络QoS(比如综合服务(IntServ)模型、区别化服务(DiffServ)模型或其它模型)来重新排列输出顺序。例如,如果发射消息经由具有报头的分组被发射,则一个或多个报头字段可以指出该分组要经由DiffServ模型被发射,或者可以指出其它可检测参数的指示,比如消息类型/类别、延迟灵敏度、优先级等等。消息然后按照在MQ确定的顺序从MQ中被输出706到传输路径。
图8是说明根据本发明使用消息队列提供端到端QoS的一个方法的更特定实施例的流程图。同样,来自一个或多个第一应用并且目标为一个或多个第二应用的消息被发射800。来自一个或多个应用的那些消息在MQ处被接收802。那些消息可以包括一个或多个参数或者是指示优先级、丢失灵敏度、延迟灵敏度等等的其它指示符。(对于图8的目的,它们共同被称为优先化指示符)。例如,可以基于应用把消息区分优先级,如此以使每个应用(包括应用实例)的标识可以被使用作为优先级指示符。作为另外的示例,一则消息可以包括一个优先级数值,它指示此类消息按照一个特定QoS的期望优先级。另一优先化指示符可以包括丢失灵敏度指示符或者延迟灵敏度指示符。这些以及其它这样的指示符例如可以被提供在消息中或者提供在发射该消息的分组的报头字段中。其它优先化指示符可以是消息类型本身。例如,如果可以确定该消息是一则音频消息,则正如象经常实时实施音频传输那样,这指出它可能对延迟敏感。作为另一示例,如果可以确定该消息是一则数据信息,则正如象任何数据的丢失都可能显著地影响发射数据的完整性那样,这指出一个(多个)消息可能对丢失敏感。可以在MQ处分析这些以及其它指示符以便向通过该MQ的消息给予期望的QoS。另外,例如使用控制平面上的信令方法,可以与实际的消息分离地向MQ提供指示符。因此,指示符不需要实际上是消息有效载荷或信息报头的一部分。
因此,可以确定804消息是否包括任何这样的指示符。如果否,则MQ可以只须如块806所示以某种预确定方式对消息进行排队。例如,不提供优先化信息的消息可能只须以先进先出(FIFO)方式进行排队,从而导致一个“尽力而为”型消息传输范例。可替代地,当QoS正在传输路径(例如网络)上被实现时,优先化指示符可以从消息中获得,从而基于消息优先级、延迟灵敏度、丢失灵敏度、消息类型等等中的一个或多个在MQ处促进消息的优先化808。
在图8的图示实施例中,区分优先级的消息基于它们的相对优先级而被输入810到多个队列之一中。例如,MQ包括三个队列,一个队列对应于高、中、低优先级消息的每一个。应该指出:虽然默认时在MQ或应用层处消息通常不被抛弃(与IP分组相比),但是有溢出情形也是可能的。例如,在移动终端长时间处于覆盖范围之外导致大量排队消息累积时,队列可能易于溢出。另外,拥塞处理可以基于一个独立的消息丢失优先级。在这种情况下,如果一个溢出威胁到一个队列,则可以基于这个消息丢失优先级抛弃814消息。在这种情况下处理消息丢弃的许多方法是本领域技术人员已知的。例如,加权公平排队(WFQ)可用于舍弃具有较低丢失优先级的消息。
当消息已被输入810到MQ的各个队列上时,那么执行调度816以便选择其一个(多个)分组接下来要被输出的那个队列。因此,调度816确定消息将离开队列用于传输的顺序。任何期望的算法或方法学可用来执行这样的调度。例如,一个加权的轮循(round-robin)方法可用来确保较高优先级消息被发射,而且确保低优先级分组不完全被忽视。可替代地,在其中具有消息的最高优先级队列在移动到较低优先级队列上之前可以被清空。同样,任何期望的调度方法都可以被使用。消息然后从MQ中被输出818到有线/无线传输路径。以这种方式,在MQ处向消息给予一个QoS,并且能够实施端到端QoS。
图9是说明根据本发明的原理的一种合并了QoS机制的MQ的一个实施例框图。一个或多个应用900可以操作在耦合到网络的设备上。例如,该设备可以包括移动电话或其它通信装置、PDA、膝上型或台式机、或者能够通过网络传送信息的其它无线或有线计算系统。
图示的实施例中的消息队列(MQ)902在应用900层和传送层904之间被实现。在此示例中,MQ支持消息的优先化以便例如与IP路由器的DiffServ系统相关是可能的。MQ 902说明了一个典型的启用QoS的MQ,其支持按照本发明的优先化。相同的MQ既可以被使用到网络又可以被使用到应用上,虽然这不是所要求的。为了论述的目的,假设从应用的900观点看,MQ 902可以用于传入和传出消息。
图9的MQ 902基于各种机制而被创建,各种机制例如包括:优先化、排队、调度以及可能的分组丢失处理。在图9中,当考虑从应用900到网络的消息传输时,此类机制包括优先化模块906、排队模块908和调度模块910。考虑向应用900的消息传输,则该机制被示出为优先化模块912、排队模块914和调度模块916。溢出处理模块918表示典型的MQ 902的分组丢失处理。
虽然根据消息流的方向,可以相异地执行优先化、排队以及调度,但是为了图9的论述的目的将假设类似的模块以一种类似的方式执行。优先化模块906、912例如基于消息的延迟或丢失灵敏度来把消息区分优先级。应该指出:这样的优先化可以由应用900和/或由MQ 902执行,并且在图9中被示出为由MQ执行。当在应用层执行时,这样的优先化可以由发射消息的同一应用来执行,或者由能够把消息区分优先级的另一应用来执行。在后一种情况中,应用编程接口(API)可以被使用在这样的应用之间来促进一个应用的来自另一应用的消息的优先化。还应当指出:虽然在MQ 902或应用900层处,默认时消息不被抛弃(与IP分组相比),但是仍然可能有溢出情形,比如当移动设备长时间在覆盖范围之外时。
排队模块908、914提供排队结构(物理的或者逻辑的),在此,队列(一个特定消息被包含在其中)的选择是以它各自的优先化模块906、912确定的优先级为基础的。在本发明的一个实施例中,各个队列可以表示寄存器或其它单个消息入口队列。可是,在一个优选实施例中,多个消息入口队列被实现,因为尤其是低比特速率的连接可能引入长的转送延迟,并且来自相同或不同应用900中的好几个消息需要等待它们次序以便到达传送层904和网络层。
还应当指出:可以使用单个队列,并且调度算法可用来以优先化模块906、912定义的一个顺序取出消息。可替代地,信息可以基于它们的优先级放置于不同排队结构中。根据本发明,单级排队或多级排队都可以在MQ 902中被实现。例如,单级排队布置可以包括两个、三个、四个或更多队列,其中,基于优先化参数直接地输入消息。另一方面,一个多级排队布置可以包括分层的排队布置,在此,消息在第一级中被输入到队列,并且来自这些第一级队列的不同组的消息被输入到多级排队体系结构的第二、第三或更高级队列中。
以一种相似的方式,可以使用单级或多级调度910、916。不论发生那种状况,调度模块910、916执行队列选择,即:哪一队列将提供要发射的下一消息。例如,一旦消息已通过优先级/队列而被区分,则调度模块910、916识别哪一队列将被选择来从那个队列中提供下一消息。以这种方式,基于优先级的一个用于传输的消息排序或顺序被识别。
溢出处理模块918处理各个队列中可能的溢出情形。这可以被应用在队列可能达到它们的容量级的情形中。例如,溢出处理模块918可以包括一个消息丢弃功能,其中,如果队列已经到达它的容量,则进一步的消息从特定的一个(多个)队列中被丢掉。这可以通过丢掉指向已经到达其容量的那个队列的最新接收到的一个(多个)消息来完成。可替代地,多级队列可以在第二、第三级等等队列中在较高和较低优先级的消息之间区分,其中能因此在这些较高级队列上实现消息丢弃。换言之,当由于队列达到它们的容量而需要丢弃消息时,一个分层的、多级排队结构可以促进更有目标的消息丢弃。
图10是说明根据本发明的一种队列配置的典型示例框图。示出的示例包括任意数目的应用,比如应用-A实例-1 1000、应用-A实例-2 1002、以及应用-B 1004。根据本发明,优先化1006和排队1008可以被应用于出自若干不同源的消息上。例如,应用-A实例-1 1000和应用-A实例-2 1002可以表示一个应用的两个实例,比如浏览器应用的不同实例。在这种情况下,可以从正在运行的浏览器实例之一或者二者中接收消息。在一个实施例中,最上面的浏览器可以接收比运行在后台中的那些浏览器更高的优先级,并且因此优先化1006和排队1008能够区分这些消息队列。不同优先级的消息还可以出自同一应用进程,比如一个浏览器应用。例如,可能来自浏览器(或其它应用)的某些请求比其它的更重要。作为一个更特定的示例,可能某些HTTP GET请求(超文本传送协议“GET”方法一般被用于向Web服务器请求资源)被认为是比其他的更重要,并且优先化1006和排队1008因此会相应地把这些请求区分优先级并排队。不同优先级的消息也可以出自不同应用。例如,电子邮件同步消息可以接收比最上面的活动浏览器的浏览器应用消息更低的优先级,甚至比后台浏览器应用更低的优先级。因此,可以为出自各种相关或不相关的应用源中的消息完成优先化和排队。
在图10的实施例中,MQ 1010同样被放置在应用层和传送层1012之间。另外,优先化1010和调度1014以如前所述的方式操作。在图示的实施例中,排队结构1008包括多个队列(物理的和/或逻辑的),包括队列1016、1018、1020、1022。在这个实现中,优先化模块1006把消息区分优先级并基于与每个消息相关的确定的优先级把它们引导到多个队列1016、1018、1020、1022中适当的一个队列中。例如,最高优先级的消息可以被引导到队列1022,视频消息可以引导到队列,低优先级消息可以被引导到队列1016等等。任何期望的单级或多级排队布置1008可以都可以被实现。
本发明可用来促进与任何类型的设备(它能够与网络或其它连接通信)中的应用的端到端QoS消息传输。这些设备包括诸如台式机、工作站、膝上型计算机之类的计算设备,或者任何能够经由网络访问信息的其它计算系统。这些计算设备还包括诸如内容服务器、存储服务器、多媒体消息服务(MMS)的多媒体消息服务中心(MMSC)、短信息服务(SMS)的短信息服务中心(SMSC)之类的网络服务器,或者任何能够通过诸如互联网之类的网络与其它系统和设备通信的其它网络元件。这些设备还包括移动设备,其中经由无线网络完成网络访问,无线网络可以最终耦合到有线网络,也可以最终未耦合到有线网络。这些移动设备可以是诸如无线/蜂窝电话、个人数字助理(PDA)之类的任何类型的无线设备,或者是能够进行无线通信的其它无线手机以及便携式计算设备。这些有线和移动设备应用计算电路和软件来控制并管理传统的设备活动以及本发明提供的功能。硬件、固件、软件或者它们的组合可用来执行在这里所述的各种启用QoS的MQ操作。一个能够实现根据本发明的操作的典型移动终端计算系统示例在图11中被示出。本领域技术人员应该理解:可仿效的移动计算环境1100只表示可能与这些移动设备相关的通用功能,并且有线计算系统类似地包括执行这些操作的计算电路。
可仿效的移动计算布置1100(它适于执行根据本发明的启用QoS的MQ功能)可以与若干不同类型的无线设备相关。典型的移动计算布置1100包括处理/控制单元1102,比如微处理器、精简指令集计算机(RISC)或者其它中央处理模块。处理单元1102不必是单个设备,并且可以包括一个或多个处理器。例如,处理单元可以包括一个主处理器和耦合来与主处理器通信的相关的从属处理器。
处理单元1102控制由程序存储装置/存储器1104中可用的程序规定的移动终端的基本功能。因此,处理单元1102能够执行与本发明相关的启用QoS的MQ功能,比如优先化、排队和调度之类的。更具体地说,程序存储装置/存储器1104可以包括用于完成移动终端上的功能和应用的操作系统和程序模块。例如,程序存储器可以包括只读存储器(ROM)、闪动ROM、可编程和/或可擦掉ROM、随机存取存储器(RAM)、用户接口模块(SIM)、无线接口模块(WIM)、灵巧卡或其它可拆卸存储设备等等中的一个或多个。在本发明的一个实施例中,与存储装置/存储器1104相关的程序模块被存储在非易失的电可擦写可编程的只读存储器(EEPROM)、闪动ROM等等之中,以使信息在移动终端断电时不被丢失。用于实现传统移动终端操作和根据本发明的操作的有关软件也可以经由数据信号被发射到移动计算布置1100,比如经由诸如互联网和一个(多个)中间级无线网络之类的一个或多个网络被电子地下载。
处理器1102还耦合到与移动终端相关的用户接口1106元件。移动终端的用户接口1106例如可以包括诸如液晶显示器之类的一个显示器1108、键区1110、扬声器1112和麦克风1114。正如本领域已知的,这些以及其它用户接口组件耦合到处理器1102。可以使用其它用户接口机制,比如声音命令、开关、触摸垫/触摸屏、使用定点设备的图形用户界面、轨迹球、游戏杆或者任何其它用户接口机制。
移动计算布置1100还包括用于执行无线传输的传统电路。一个数字信号处理器(DSP)1116可以被使用来执行各种功能,这些功能包括:模数(A/D)转换、数模(D/A)转换、语音编/解码、加密/解密、差错的检测与纠正、比特流转换、滤波等等。通常耦合到天线1120的收发信机1118发射与该无线设备相关的传出无线信号1122并接收呼入无线信号1124。
根据本发明,启用QoS的MQ功能例如可以在操作系统或软件体系结构中被实现。例如,处理器1102可以在存储在程序存储装置/存储器1104中的程序模块的指导下提供启用QoS的MQ功能。应用1126和MQ 1128程序可以被存储在存储装置/存储器1104中。应用编程接口(API)1130可用来促进MQ 1128和应用1126之间的消息转送。
图11的移动计算布置1100作为可以应用本发明的原理的一个典型的计算环境示例而被提供。从在这里提供的说明中,本领域技术人员应该理解:本发明同样可应用在各种其它当前已知以及未来的移动和有线计算环境中。例如,桌上计算设备类似地包括处理器、存储器、用户接口与数据通信电路。因此,本发明可应用在可以经由网络传送数据的任何已知计算结构中。
使用在这里提供的说明,通过使用产生编程软件、固件、硬件或者它们的任何组合的标准编程和/或工程技术,则本发明可以被实现为一个机器、进程或制造产品。具有计算机可读程序代码的任何结果的一个(多个)程序可以被包含在一个或多个计算机可用介质上,比如盘、光盘、可移动的存储设备、诸如RAM、ROM、PROMS之类的半导体存储器等等。包含执行与本发明相关功能的代码的制造产品旨在包含一个计算机程序,该计算机程序永久或者临时存在于任何计算机可用介质上或者存在于传输这样一个程序的任何传输介质中。传输介质包括但是不限制为:经由无线/无线波通信网、互联网、内联网、基于电话/调制解调器的网络通信、硬布线/电缆通信网、卫星通信以及其它固定或者移动网络系统/通信链路的传输。从在这里提供的说明中,本领域技术人员应该很容易能够把所述的已创建的软件与适当的通用或专用计算机硬件结合来创建根据本发明的一个启用QoS的MQ系统和方法。
为了例示和说明的目的已经呈现了本发明的示例实施例的上述说明。它不意指穷举性的或者把本发明限制为所公开的精确形式。考虑到上述教导,许多修改和变化是可能的。因此,并非意欲用此详细说明书来限制本发明的范围,而是可从附加到此的权利要求中确定本发明的范围。

Claims (49)

1.一种用于在网络上在至少两个应用之间缓存消息的方法,包括:
把一个或多个消息从源应用发射到用于消息缓冲的中间消息队列(MQ);
向通过该MQ的一个消息流给予一个MQ服务质量(QoS);和
从服从该MQ QoS的MQ中发射所述消息流。
2.权利要求1的方法,还包括:在一个或多个目标应用处接收服从该MQ QoS的消息。
3.权利要求1的方法,其中:向消息流给予一个MQ QoS包括:给予一个与应用到通过该网络的消息流上的一个网络QoS相当的MQ QoS。
4.权利要求3的方法,还包括:在服从该MQ QoS和该网络QoS的一个或多个目标应用处接收那些消息。
5.权利要求1的方法,其中:向通过该MQ的消息流给予一个MQQoS包括:给予一个MQ QoS,该MQ QoS约等于一个网络QoS以便基本上维持否则会服从通过网络的那些消息的端到端QoS。
6.权利要求1的方法,其中:中间MQ被实现在一个还主管至少一个目标应用的接收方设备中,并且其中向通过该MQ的消息流给予一个MQ QoS包括:在接收方设备的MQ处向消息流给予该MQ QoS以便在源应用和目标应用之间提供端到端QoS。
7.权利要求1的方法,其中:中间MQ被实现在耦合到网络的网络元件中,其中网络元件不同于主管源应用的源设备以及主管目标应用的接收方设备。
8.权利要求1的方法,其中:向通过该MQ的消息流给予一个MQ QoS包括:通过把消息分成对应于不同消息优先级的多个队列从而创建该MQ内的MQ QoS,并按照一个预定调度程序从多个队列中输出消息。
9.一种用于促进至少两个应用之间的端到端服务质量(QoS)通信的方法,包括:
发射来自至少一个第一应用中并且目的地为至少一个第二应用的一个或多个消息;
在一个消息队列(MQ)处接收来自第一应用的消息;
在MQ处操纵消息的输出顺序以便向消息的进一步传输给予一个QoS;和
按照对应于给予的QoS的输出顺序从MQ中输出目的地为第二应用的消息。
10.权利要求9的方法,其中:发射来自至少一个第一应用中的一个或多个消息包括:发射来自可操作在发送设备上的多个应用中的一个或多个消息,其中来自多个应用的消息中的至少一些消息具有相对于彼此不同的优先化指示符,这些优先化指示符影响它们的相对传输优先级。
11.权利要求10的方法,其中:不同的优先化指示符包括与多个应用中的每一个相关的应用标识符。
12.权利要求10的方法,其中:不同的优先化指示符包括从组中选择的一个或多个优先化指示符,所述组包括消息类型、延迟灵敏度、丢失灵敏度、消息优先级、消息抛弃概率、分配带宽共享以及网络QoS模型。
13.权利要求10的方法,其中:多个应用包括可操作在发送设备上的至少两个不同的应用。
14.权利要求10的方法,其中:多个应用包括可操作在发送设备上的一个共同应用的至少两个实例。
15.权利要求9的方法,其中:发射来自至少一个第一应用中的一个或多个消息包括:发射来自可操作在发送设备上的单个应用中的一个或多个消息,其中来自所述单个应用的消息中的至少一些消息具有相对于彼此不同的优先化指示符,这些优先化指示符影响它们的相对传输优先级。
16.权利要求9的方法,其中:在MQ处操纵消息的输出顺序包括:至少把多个队列中的消息按照它们的相对传输优先级进行排队,并且按照一个预定调度程序调度消息从队列中的输出。
17.权利要求16的方法,还包括:把消息区分优先级以便识别每一消息要被输入到多个队列中的哪一个。
18.权利要求9的方法,其中:在一个MQ处接收来自第一应用中的消息包括:在与至少一个第二应用正在其上操作的接收设备相关的接收方MQ处接收消息。
19.权利要求9的方法,其中:在一个MQ处接收来自第一应用中的消息包括:在与至少一个第一应用正在其上操作的发送设备相关的源MQ处接收消息。
20.权利要求9的方法,其中:在一个MQ处接收来自第一应用的消息包括:
在与至少一个第一应用正在其上操作的发送设备相关的源MQ处接收消息;
在与至少一个第二应用正在其上操作的接收设备相关的接收方MQ处接收消息;和
其中,在该MQ处操纵消息的输出顺序包括:当消息通过网络在第一和第二应用之间传送时在源MQ和接收方MQ处操纵消息的输出顺序。
21.权利要求9的方法,其中:在一个MQ处接收来自第一应用中的消息包括:在与耦合到网络的网络元件相关的网络MQ处接收消息;并且其中在该MQ处操纵消息的输出顺序包括:当消息通过网络在第一和第二应用之间传送时在网络MQ处操纵消息的输出顺序。
22.权利要求9的方法,还包括:通过耦合第一和第二应用的网络发射目的地为第二应用的消息。
23.权利要求9的方法,其中:通过网络发射消息包括:通过有线和无线网络中的一个或多个发射消息。
24.一种用于向通过消息队列(MQ)的消息给予一个服务质量(QoS)的方法,其中消息队列(MQ)逻辑上耦合在具有至少一个源应用的源设备和具有至少一个目的地应用的目的地设备之间,所述方法包括:
基于与每一消息相关的信息把从源应用中收到的消息区分优先级为多个优先级类别;
响应于消息的优先化,把每一消息排队到与MQ相关的多个MQ优先级队列之一中;和
基于一个调度程序调度消息从多个MQ优先级队列中的输出顺序;和
依据调度的输出顺序把消息从MQ发射给目的地应用,从而向通过该MQ的消息给予QoS。
25.权利要求24的方法,其中:基于与每一消息相关的信息把消息区分优先级为多个优先级类别包括:基于消息从中始发的应用来把消息区分优先级。
26.权利要求24的方法,其中:基于与每一消息相关的信息把消息区分优先级为多个优先级类别包括:基于指示消息之间相对优先级的消息特性来把消息区分优先级为多个优先级类别。
27.权利要求24的方法,其中:把每一消息排队到与MQ相关的多个MQ优先级队列之一中包括:在单级排队布置中对消息进行排队。
28.权利要求24的方法,其中:把每一消息排队到与MQ相关的多个MQ优先级队列之一中包括:在多级排队布置中对消息进行排队。
29.权利要求24的方法,还包括:监视多个MQ优先级队列的任何一个的溢出,并且抛弃与多个MQ优先级队列中已经达到它们各自消息容量的任何队列相关的消息。
30.权利要求29的方法,其中:抛弃消息包括:基于与已经达到其消息容量的那个MQ优先级队列的消息相关的丢失优先级来抛弃消息。
31.一种用于在网络上在多个应用之间传送信息的系统,包括:
一个或多个第一应用,用于根据网络服务质量(QoS)范例在网络上发射消息;
一个或多个第二应用,用于经由网络接收消息;和
消息队列(MQ)模块,它耦合来接收消息并被配置为把一个MQ服务质量(MQ QoS)应用到从一个或多个第一应用发射到一个或多个第二应用的消息上。
32.权利要求31的系统,其中:MQ模块包括一个优先化模块,它耦合来接收消息并基于与每一个消息相关的优先化指示符把从第一应用中接收到的消息区分优先级为多个优先级类别。
33.权利要求31的系统,其中:MQ模块包括一个排队模块,排队模块包括临时存储消息的多个基于优先级的队列,其中多个基于优先级的队列的每一个存储具有类似优先级的消息。
34.权利要求33的系统,其中:MQ模块包括一个调度模块,调度模块耦合到排队模块以便管理消息从多个基于优先级的队列中的输出顺序。
35.权利要求33的系统,其中:基于优先级的队列包括基于软件的排队结构。
36.权利要求31的系统,其中:第一应用包括一个优先化模块来基于与每一个消息相关的优先化指示符把消息区分优先级为多个优先级类别,并向每一个消息指定一个优先级。
37.权利要求36的系统,其中:MQ模块包括一个排队模块,排队模块包括临时存储消息的多个基于优先级的队列,其中多个基于优先级的队列的每一个存储具有类似优先级的消息。
38.权利要求37的系统,其中:MQ模块包括一个调度模块,调度模块耦合到排队模块以便管理消息从多个基于优先级的队列中的输出顺序。
39.权利要求31的系统,其中:MQ模块被配置来应用一个大体上模仿网络QoS的MQ QoS以便促进端到端QoS传送。
40.权利要求31的系统,其中:MQ模块包括多个MQ模块,在第一和第二应用的每一个上有一个,以便把MQ QoS应用到在第一和第二应用之间发射的消息上。
41.权利要求31的系统,其中:MQ模块包括一个中间MQ模块,该中间MQ模块逻辑上耦合在网络上的第一和第二应用之间以便把MQ QoS应用到从第一应用发射到第二应用的消息上。
42.权利要求41的系统,其中:消息通过网络从一个或多个第二应用被发射到一个或多个第一应用,并且其中MQ模块耦合来接收消息并被配置来把MQ QoS应用到从一个或多个第二应用发射到一个或多个第一应用的消息上。
43.权利要求31的系统,其中:
至少一个第一应用可操作在耦合到网络的第一通信设备上;
至少一个第二应用可操作在耦合到网络的第二通信设备上;和,
第一应用包括从组中选择的应用,所述组包括:可操作在第一通信设备上的一个共同应用的多个应用实例、可操作在第一通信设备上的多个相异的应用、以及包括多个消息类别并可操作在第一通信设备上的至少一个应用进程。
44.权利要求31的系统,其中:该MQ模块包括一个软件模块,该软件模块构造上位于与第一和第二应用相关的应用层和传送层之间。
45.一种可操作在网络上的通信设备,包括:
(a)用于从一个或多个远程应用中接收消息的一个或多个应用模块;
(b)消息队列(MQ)模块,包括:
(i)优先化模块,它被耦合来接收消息并基于与每一消息相关的优先化指示符把从远程应用中接收到的消息区分优先级到优先权类别中;
(ii)多个基于优先级的队列,每个队列用来临时存储具有类似优先级的消息;和
(iii)调度模块,它耦合到多个队列以便管理来自多个基于优先级的队列并且目标为应用模块的那些消息的输出顺序。
46.如权利要求45所述的通信设备,其中:网络包括无线网络,并且其中通信设备包括移动终端。
47.如权利要求45所述的通信设备,其中:网络包括有线网络,并且其中通信设备包括计算设备。
48.一种计算机可读介质,具有存储在其上面的指令,该指令可被计算系统执行,并且用于通过如下步骤在网络上在至少两个应用之间缓存消息,这些步骤包括:
把一个或多个消息从源应用发射到用于缓存信息的中间消息队列(MQ);
向通过MQ的一个消息流给予一个MQ服务质量(QoS);和
从服从该MQ QoS的MQ中发射所述消息流。
49.如权利要求48所述的计算机可读介质,其中:用于向消息流给予一个MQ QoS的指令包括:用于通过把消息分成对应于不同消息优先级的多个队列来创建MQ内的MQ QoS,并且用于按照一个预定调度程序从多个队列中输出消息的指令。
CN2004800035999A 2003-02-05 2004-01-30 在使用消息队列的消息传输中促进端到端服务质量的系统和方法 Expired - Fee Related CN1977176B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/359,043 US6940813B2 (en) 2003-02-05 2003-02-05 System and method for facilitating end-to-end quality of service in message transmissions employing message queues
US10/359,043 2003-02-05
PCT/IB2004/000262 WO2004070503A2 (en) 2003-02-05 2004-01-30 System and method for facilitating end-to-end quality of service in message transmissions employing message queues

Publications (2)

Publication Number Publication Date
CN1977176A true CN1977176A (zh) 2007-06-06
CN1977176B CN1977176B (zh) 2010-06-09

Family

ID=32771329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800035999A Expired - Fee Related CN1977176B (zh) 2003-02-05 2004-01-30 在使用消息队列的消息传输中促进端到端服务质量的系统和方法

Country Status (5)

Country Link
US (1) US6940813B2 (zh)
EP (1) EP1590677A2 (zh)
KR (1) KR100899871B1 (zh)
CN (1) CN1977176B (zh)
WO (1) WO2004070503A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594307B (zh) * 2009-06-30 2012-12-05 中兴通讯股份有限公司 基于多级队列的调度方法和系统
CN104620224A (zh) * 2012-09-13 2015-05-13 汤姆逊许可公司 从先进先出传送机构的随机存取消息检索的方法
CN105376146A (zh) * 2015-12-17 2016-03-02 宁波优而雅电器有限公司 一种基于应用等级的消息传输系统
CN108989157A (zh) * 2017-06-05 2018-12-11 北京京东尚科信息技术有限公司 用于智能设备控制的方法、装置
CN109640055A (zh) * 2018-12-28 2019-04-16 神思电子技术股份有限公司 一种视频监控设备集群协同工作的调度装置和方法
CN109725829A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端 QoS 解决方案的系统和方法

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021718A1 (en) * 2003-05-09 2005-01-27 Palliser Networks, Inc. Centrally managed differentiated service
US6934612B2 (en) * 2003-06-12 2005-08-23 Motorola, Inc. Vehicle network and communication method in a vehicle network
US7263331B2 (en) * 2003-09-15 2007-08-28 Intel Corporation Method and apparatus for sharing a bluetooth module with two computing devices
US8799324B2 (en) * 2004-01-16 2014-08-05 Verizon Patent And Licensing Inc. Method and system for mobile telemetry device prioritized messaging
US7673018B2 (en) * 2004-04-08 2010-03-02 Research In Motion Limited Message send queue reordering based on priority
US20050262055A1 (en) * 2004-05-20 2005-11-24 International Business Machines Corporation Enforcing message ordering
US20060028988A1 (en) * 2004-08-09 2006-02-09 Kumar Gopal N Decreased random opening procedure for overload control
US8762567B2 (en) * 2004-08-13 2014-06-24 Alcatel Lucent Adaptive permutation group method for overload control
CN100358291C (zh) * 2004-09-08 2007-12-26 华为技术有限公司 下一代网络中动态协商服务质量的系统及其实现方法
US7397801B2 (en) * 2005-04-08 2008-07-08 Microsoft Corporation Method and apparatus to determine whether a network is quality of service enabled
US20060268699A1 (en) 2005-05-27 2006-11-30 Nokia Corporation High speed serial bus architecture employing network layer quality of service (QoS) management
SE532087C2 (sv) 2005-08-25 2009-10-20 Scania Cv Ab Sändande av data från ett fordonsupportcenter till ett fordon
US8311048B2 (en) 2008-05-09 2012-11-13 Roundbox, Inc. Datacasting system with intermittent listener capability
US8149771B2 (en) 2006-01-31 2012-04-03 Roundbox, Inc. Reliable event broadcaster with multiplexing and bandwidth control functions
US7756134B2 (en) 2006-05-02 2010-07-13 Harris Corporation Systems and methods for close queuing to support quality of service
US7894509B2 (en) 2006-05-18 2011-02-22 Harris Corporation Method and system for functional redundancy based quality of service
US7990860B2 (en) 2006-06-16 2011-08-02 Harris Corporation Method and system for rule-based sequencing for QoS
US7856012B2 (en) 2006-06-16 2010-12-21 Harris Corporation System and methods for generic data transparent rules to support quality of service
US20070291656A1 (en) * 2006-06-16 2007-12-20 Harris Corporation Method and system for outbound content-based QoS
US8516153B2 (en) 2006-06-16 2013-08-20 Harris Corporation Method and system for network-independent QoS
US8064464B2 (en) * 2006-06-16 2011-11-22 Harris Corporation Method and system for inbound content-based QoS
US7916626B2 (en) 2006-06-19 2011-03-29 Harris Corporation Method and system for fault-tolerant quality of service
US20070291765A1 (en) * 2006-06-20 2007-12-20 Harris Corporation Systems and methods for dynamic mode-driven link management
US8730981B2 (en) 2006-06-20 2014-05-20 Harris Corporation Method and system for compression based quality of service
US7769028B2 (en) 2006-06-21 2010-08-03 Harris Corporation Systems and methods for adaptive throughput management for event-driven message-based data
US7839790B2 (en) * 2006-07-13 2010-11-23 Opnet Technologies, Inc. Network congestion analysis
US20100241759A1 (en) * 2006-07-31 2010-09-23 Smith Donald L Systems and methods for sar-capable quality of service
US8300653B2 (en) 2006-07-31 2012-10-30 Harris Corporation Systems and methods for assured communications with quality of service
US8774018B1 (en) * 2006-12-14 2014-07-08 At&T Intellectual Property I, L.P. Interactive inquiry and access to information via cellular networks
US9166941B2 (en) * 2007-04-24 2015-10-20 Microsoft Technology Licensing, Llc Synchronizing email messages between external and local email servers and/or a wireless device
US8180029B2 (en) 2007-06-28 2012-05-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US7936772B2 (en) * 2007-07-13 2011-05-03 International Business Machines Corporation Enhancement of end-to-end network QoS
US8145780B2 (en) * 2007-10-19 2012-03-27 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8682336B2 (en) * 2007-10-19 2014-03-25 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8706907B2 (en) * 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8699678B2 (en) 2007-10-19 2014-04-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8321581B2 (en) * 2007-10-19 2012-11-27 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8380874B2 (en) * 2007-10-19 2013-02-19 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8391312B2 (en) 2007-10-19 2013-03-05 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8111713B2 (en) 2007-10-19 2012-02-07 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8090867B2 (en) 2007-10-19 2012-01-03 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US7864676B2 (en) * 2008-07-14 2011-01-04 The Mitre Corporation Network cross-domain precedence and service quality conflict mitigation
US9141446B2 (en) * 2008-10-24 2015-09-22 Sap Se Maintenance of message serialization in multi-queue messaging environments
US8732258B2 (en) * 2009-03-20 2014-05-20 Oracle America, Inc. Method and system for transporting telemetry data across a network
US8625440B2 (en) * 2009-07-31 2014-01-07 Alcatel Lucent System and method for controlling parameters for applications serviced in a best effort communication link
KR101321196B1 (ko) * 2009-08-24 2013-10-30 인텔 코포레이션 저 전력 및 고속 애플리케이션 서비스 송신 방법 및 장치
CN102118740A (zh) * 2009-12-31 2011-07-06 上海巨服信息科技有限公司 手机与服务器间的信号传递方法
JP5340186B2 (ja) * 2010-01-21 2013-11-13 アラクサラネットワークス株式会社 パケット中継装置及びパケットを中継する方法
US8775669B2 (en) * 2010-03-25 2014-07-08 United Parcel Service Of America, Inc. Data communication systems and methods
US8891438B2 (en) * 2010-09-08 2014-11-18 Intel Corporation Packet-data network and methods for RAN-agnostic multimedia content distribution
US9141447B2 (en) * 2010-12-15 2015-09-22 Microsoft Technology Licensing, Llc Conditional deferred queuing
US9032012B2 (en) * 2011-06-27 2015-05-12 International Business Machines Corporation Configurable pacing for messaging systems
US9247023B2 (en) * 2011-07-27 2016-01-26 Qualcomm Incorporated System and method for prioritizing requests to a SIM
US9372902B2 (en) * 2011-09-23 2016-06-21 International Business Machines Corporation Accessing and editing virtually-indexed message flows using structured query langauge (SQL)
CN103733671B (zh) 2012-08-01 2017-07-07 太阳专利信托公司 设定测量资源的无线通信方法和无线通信装置
US10313257B1 (en) * 2014-06-12 2019-06-04 Tripwire, Inc. Agent message delivery fairness
US9634951B1 (en) 2014-06-12 2017-04-25 Tripwire, Inc. Autonomous agent messaging
US9929968B2 (en) * 2015-03-19 2018-03-27 Oracle International Corporation Inter-layer communication of events between TCP layer and higher layers when implemented in different concurrent execution entities
US10382380B1 (en) * 2016-11-17 2019-08-13 Amazon Technologies, Inc. Workload management service for first-in first-out queues for network-accessible queuing and messaging services
EP3364305A1 (en) * 2017-02-20 2018-08-22 Siemens Aktiengesellschaft Scheduler
US11171806B1 (en) * 2020-06-26 2021-11-09 GM Global Technology Operations LLC Dynamic quality of service control for automotive ethernet

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100293920B1 (ko) * 1993-06-12 2001-09-17 윤종용 비동기전송모드의사용자망접속인터페이스의트래픽제어장치및방법
KR970000668B1 (ko) * 1994-02-21 1997-01-16 재단법인 한국전자통신연구소 비동기 전달 모드(atm) 망에서의 폭주를 예방하기 위한 트래픽 출력 억제 장치 및 방법
FI103005B1 (fi) * 1996-03-25 1999-03-31 Nokia Telecommunications Oy Lähetettävän datan priorisointi reitittimessä
US5828653A (en) * 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US5696701A (en) 1996-07-12 1997-12-09 Electronic Data Systems Corporation Method and system for monitoring the performance of computers in computer networks using modular extensions
US6046981A (en) * 1997-02-28 2000-04-04 Nec Usa, Inc. Multi-class connection admission control method for Asynchronous Transfer Mode (ATM) switches
US6182146B1 (en) 1997-06-27 2001-01-30 Compuware Corporation Automatic identification of application protocols through dynamic mapping of application-port associations
US6147970A (en) * 1997-09-30 2000-11-14 Gte Internetworking Incorporated Quality of service management for aggregated flows in a network system
US6108307A (en) * 1997-12-12 2000-08-22 Newbridge Networks Corporation Frame relay priority queses to offer multiple service classes
US6212361B1 (en) * 1998-04-02 2001-04-03 Lucent Technologies, Inc. Ordering message signals for transmission over a telecommunications channel
GB2338372B (en) 1998-06-12 2003-08-27 Ericsson Telefon Ab L M Architecture for integrated services packet-switched networks
US6349341B1 (en) 1998-07-30 2002-02-19 Advanced Micro Devices, Inc. Method and system for providing inter-tier application control in a multi-tiered computing environment
US6115365A (en) * 1998-07-30 2000-09-05 Motorola, Inc. Method and apparatus for queuing and transmitting messages
US6608816B1 (en) * 1998-11-18 2003-08-19 Nortel Networks Limited Method and apparatus for providing differentiated services using a multi-level queuing mechanism
US6633575B1 (en) * 1999-04-07 2003-10-14 Nokia Corporation Method and apparatus for avoiding packet reordering in multiple-class, multiple-priority networks using a queue
US6477167B1 (en) * 1999-06-03 2002-11-05 Fujitsu Network Communications, Inc. Method and system for allocating bandwith to real-time variable bit rate (rt-VBR) traffic
US6466984B1 (en) * 1999-07-02 2002-10-15 Cisco Technology, Inc. Method and apparatus for policy-based management of quality of service treatments of network data traffic flows by integrating policies with application programs
AU2752201A (en) * 1999-11-08 2001-06-06 Megaxess, Inc. Quality of service (qos) negotiation procedure for multi-transport protocol access for supporting multi-media applications with qos assurance
KR100613975B1 (ko) * 1999-12-29 2006-08-18 주식회사 케이티 메시지 큐 방식을 이용한 서버-클라이언트간의 음성스트림 전송 방법
US8122118B2 (en) * 2001-12-14 2012-02-21 International Business Machines Corporation Selection of communication protocol for message transfer based on quality of service requirements

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594307B (zh) * 2009-06-30 2012-12-05 中兴通讯股份有限公司 基于多级队列的调度方法和系统
CN104620224A (zh) * 2012-09-13 2015-05-13 汤姆逊许可公司 从先进先出传送机构的随机存取消息检索的方法
CN105376146A (zh) * 2015-12-17 2016-03-02 宁波优而雅电器有限公司 一种基于应用等级的消息传输系统
CN108989157A (zh) * 2017-06-05 2018-12-11 北京京东尚科信息技术有限公司 用于智能设备控制的方法、装置
CN109725829A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端 QoS 解决方案的系统和方法
CN109725829B (zh) * 2017-10-27 2021-11-05 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端QoS解决方案的系统和方法
CN109640055A (zh) * 2018-12-28 2019-04-16 神思电子技术股份有限公司 一种视频监控设备集群协同工作的调度装置和方法

Also Published As

Publication number Publication date
WO2004070503A2 (en) 2004-08-19
EP1590677A2 (en) 2005-11-02
CN1977176B (zh) 2010-06-09
US20040151114A1 (en) 2004-08-05
KR100899871B1 (ko) 2009-05-29
US6940813B2 (en) 2005-09-06
KR20050105193A (ko) 2005-11-03
WO2004070503A3 (en) 2004-09-30

Similar Documents

Publication Publication Date Title
CN1977176B (zh) 在使用消息队列的消息传输中促进端到端服务质量的系统和方法
Uy et al. A comparison of AMQP and MQTT protocols for Internet of Things
EP0988742B1 (en) Internet access for cellular networks
US6879561B1 (en) Method and system for wireless packet scheduling with per packet QoS support and link adaptation
RU2398358C2 (ru) Способ и устройство для взаимодействия между системой push-to-talk (рос) и системой мгновенных сообщений (im) в сети сотовой связи
US20060140121A1 (en) Optimization of a TCP connection
CN102111819B (zh) 一种延迟容忍网络
CN106537867B (zh) 一种数据传输方法、装置和系统
US20050201403A1 (en) Method and apparatus for data transmission in consideration of transmission scheduling
CN106850402A (zh) 消息的传输方法和装置
CN1748390A (zh) 利用消息队列识别以设备中的消息接收作为目标的应用的系统和方法
CN102025638A (zh) 基于优先级的数据传输方法、装置及网络设备
CN101557340A (zh) 一种数据网络中实现多级队列调度的方法及装置
EP1104141A2 (en) System for generating composite packets
CN1939005B (zh) 基于分组的网络中的加速数据传输
CN108616925A (zh) 一种数据流的处理方法及装置
EP2556714A1 (en) Method and system for handling queues in communication networks, corresponding computer program product
JP5382812B2 (ja) データ圧縮転送システム、伝送装置及びそれらに用いるデータ圧縮転送方法
CN114040510B (zh) 一种数据传输方法及相关装置
CN1798106B (zh) 在包交换的通信流之间调度传输链路容量的方法和装置
US7545793B2 (en) Extended range wireless packetized data communication system
CN101212452B (zh) 一种基于实时传输协议的多媒体数据传输控制方法
RU2272362C1 (ru) Способ управления потоками при передаче пакетов данных
EP4080836A1 (en) System and method for multipath transmission
CN116192763A (zh) 基于5g-tsn融合的工业互联网报文发送和接收方法

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100609

Termination date: 20120130