CN1748390A - 利用消息队列识别以设备中的消息接收作为目标的应用的系统和方法 - Google Patents
利用消息队列识别以设备中的消息接收作为目标的应用的系统和方法 Download PDFInfo
- Publication number
- CN1748390A CN1748390A CNA200480003565XA CN200480003565A CN1748390A CN 1748390 A CN1748390 A CN 1748390A CN A200480003565X A CNA200480003565X A CN A200480003565XA CN 200480003565 A CN200480003565 A CN 200480003565A CN 1748390 A CN1748390 A CN 1748390A
- Authority
- CN
- China
- Prior art keywords
- application
- departures
- identifier
- cid
- logic connection
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
Abstract
一种用于促进应用(130、132、134和136)之间的消息通信(MQ)的系统、装置和方法。获得应用标识符和对应出站逻辑连接标识符,所述对应出站逻辑连接标识符与来自可由它们各自的应用标识符识别的应用的消息传递相关。建立应用标识符和它们的对应出站逻辑连接标识符之间的关联。响应的入站消息被指向具有与出站逻辑连接标识符相关的应用标识符的应用,该出站逻辑连接标识符对应于响应入站消息的入站逻辑连接标识符。
Description
发明领域
本发明通常涉及通信,尤其涉及用于维持应用和传输之间关联的系统和方法,从而促进响应的消息被指向特定应用或应用实例的定位。
发明背景
虽然计算机仍被用于它们的传统处理目的,但通信基础设施中的进展和协议已经将标准计算设备转换为有价值的通信工具。计算机在从局域网(LAN)到广泛到达的诸如互联网的全球区域网(GAN)的网络上相互通信,以及与其它电子设备通信。诸如移动电话、个人数字助理(PDA)等等其它电子设备已经经历了相似的变换,。今天,这些无线设备被广泛应用于不同的通信。举个例子,虽然模拟移动电话传统的用于模拟语音通信,但是现在以及未来的移动电话则是一个能够传送语音、数据、图像、视频以及其它多媒体内容的强大的通信工具。PDA,曾经的便携日历和组织工具,现在通常具有诸如E-mail,互联网访问等的网络通信能力。随着无线和有线网络构架的融合,各种类型的信息能够在无线和有线终端进行通信。
在设备之间进行如此的通信时,在这些设备上可操作的程序、应用、应用实例等等(下文简称“应用”)通常需要和其它设备上的应用进行通信。例如,应用层上的一个应用产生传送到更低层软件结构如传输层、网络层、数据链路层以及物理层的消息,在那里该封装消息通过网络传输到其它设备。接收设备接收到的消息在该软件结构中上移以便最终将原始消息提供给该接收设备上的一个应用。
为了促进消息的通信,可以使用消息队列。通常,消息队列涉及到从一个应用中接收消息并将它们转发给一个接收方应用的功能。该消息队列作为传播消息的临时存储设备。这样的消息队列通常位于正在发送和接收该消息的设备中,并可选地位于逻辑上被放置在发送和接收设备之间的网络上的中间计算系统中。
消息队列的使用删除了来自应用本身的消息通信的许多方面。比如当通信应用之间没有连接时,消息队列存储消息。另一益处是可靠性,因为消息队列的使用提供安全且有序的消息递送。因此,应用消息队列的一个益处是:不需要应用开发者开发甚至不需要完全了解执行消息与他们的应用之间的这些有序转送的基础功能。
当消息队列从传输层接收到消息时,它必须知道该消息指向哪个应用实例。它并不总是足以识别出该应用类型,这是因为主机可能同时运行几个应用软件实例。此外,应用实例被暂缓或终止的时候情况变得更为复杂。因此,当消息被激活或重新激活时,它必须被传递给正确的应用。
在没有使用消息队列的地方,不存在这个问题,因为应用实例直接激活并使用传输协议实例。但是,当使用消息队列时,这种关联丢失了。一种解决办法是在两端引入消息队列,以便能够使用特定的(和可能专用的)协议或分组报头来唯一识别正在通信的应用。例如,发送消息队列添加一个包含唯一标识符的专用消息队列报头。
但是,这种方法把消息队列的使用限制到仅当两个通信端支持同种类型消息队列时的那些情况。这导致了碎片并且从开发者的观点来看是不期望的。在这样一种情况下,开发者必须制定不同版本的软件或包括对另一端有和没有消息队列的情况的支持。
因此,期望提供一种方式即仅在端到端通信信道的一侧配置消息队列。还期望能克服在通信端之间为唯一识别该通信对等体而具有(可能专用的)协议和/或分组报头的需要。本发明给现有技术的这些以及其它问题提供了一个解决方案,并且提供许多胜过实现消息队列的现有技术消息事务处理的优点。
发明概述
为了克服上述现有技术中的限制,以及为了克服在阅读并理解了说明书后将变得明显的其它限制,本发明公开了一种用于在应用之间传送消息的系统和方法。
根据本发明的一个实施例,提供一种促进应用之间消息通信的方法。该方法包括获得应用标识符,并获得对应出站(outbound)逻辑连接标识符,所述对应出站逻辑连接标识符与来自它们各自的可由应用标识符识别的应用的消息传递相关。应用标识符和它们对应的出站逻辑连接标识符之间的关联被建立起来。响应的入站(inbound)消息被指向具有与出站逻辑连接标识符相关的应用标识符的应用,该出站逻辑连接标识符对应于响应入站消息的入站逻辑连接标识符。
在这样一个方法的更特定的实施例中,入站逻辑连接标识符与所建立关联的出站逻辑连接标识符进行比较,并且至少一个匹配于入站逻辑连接标识符的出站逻辑连接标识符被识别。利用具有与匹配的出站逻辑连接标识符建立的关联的应用标识符,可以识别出响应的入站消息将要被指向的应用。根据其它特定实施例,出站逻辑连接标识符可以包括出站传输标识符、出站套接字标识符、分别与传送进程或线程相关的出站传送进程或线程标识符、端口标识符、会话标识符等。根据这样一个方法的又一其它特定实施例,建立关联包括在每个应用标识符和它对应的出站逻辑连接标识符之间创建一个链接、通过表中的一个条目使应用标识符和它们对应的出站逻辑连接标识符相关、创建条目表,其中每个条目包括用于传递特定消息的应用标识符和它对应的出站逻辑连接标识符之一等操作中的任何一个。在一个特定实施例中,创建条目表包括使用消息队列(MQ)创建条目表。这样一种方法也可以通过存储在计算机可读介质上的软件指令来实现。
根据本发明的另一实施例,提供一种使用消息队列(MQ)识别出多个应用之间作为至少一个响应消息的目标的应用的方法。该方法包括接收应用标识符和出站传输标识符,这里出站传输标识符唯一识别出来自该应用标识符所识别的应用的用于消息传递的逻辑连接。应用标识符和出站传输标识符之间的关联被建立起来。可能接收到与响应消息的接收相关的以及目的地为该应用的入站传输标识符。接着可能通过把入站传输标识符匹配于出站传输标识符来识别出一个应用作为响应消息的目标。根据应用标识符和所匹配的出站传输标识符之间的关联来确定该应用的特定应用标识符。在一个特定实施例中,通过存储在计算机可读介质上的软件指令来实现这样一种方法。
根据本发明的另一实施例,提供一种可操作于网络上并能够与至少一个目的地设备通信消息的源设备。该源设备包括为从该源设备传送的一个或多个出站消息中的每一个存储应用标识符和对应出站逻辑连接标识符的联系的存储器。消息队列(MQ)模块配置为对入站消息的入站逻辑连接标识符和所存储的联系的出站逻辑连接标识符进行比较。MQ识别出具有与匹配于入站逻辑连接标识符的出站逻辑连接标识符相联的应用标识符的本地应用。
在这样一种源设备的更特定的实施例中,以软件实现MQ模块,并且该源设备包括处理器,该处理器配置为执行MQ软件以建立应用标识符和对应出站逻辑连接标识符的联系,比较入站逻辑连接标识符和所存储联系的出站逻辑连接标识符,并识别具有与匹配于入站逻辑连接标识符的出站逻辑连接标识符相联的应用标识符的本地应用。在这样一种源设备的另一特定实施例中,MQ模块进一步配置为在存储器中为从该源设备通信的每个出站消息建立应用标识符和对应出站逻辑连接标识符的联系。
根据本发明的另一实施例,提供一个通过网络在应用之间传送信息的系统。该系统包括具有多个用于通过网络传送消息的源应用(其可包括应用、应用实例、应用进程/线程等)的源设备。该系统还包括具有至少一个用于接收消息和响应于所接收的消息用于提供应答消息的目的地应用的目的地设备。该源设备包括为从该源设备通信的多个出站消息中的每一个存储应用标识符和对应出站逻辑连接标识符的联系的存储器。该源设备进一步包括源消息队列(MQ)模块,其配置为比较响应消息的入站逻辑连接标识符和所存储的联系的出站逻辑连接标识符,和识别出具有与匹配于入站逻辑连接标识符的出站逻辑连接标识符相联的应用标识符的本地应用。
在这样一种系统的更特定的实施例中,目的地设备配置为直接发送和接收消息,而且不使用本地MQ。在另一特定实施例中,目的地设备包括不同于源MQ类型的目的地MQ。
表征本发明的这些以及各种其它优点和新颖性特征在附加到这里并于此形成一部分的权利要求中被特别指出。可是,为了更好地理解本发明、它的优点以及通过它的使用所获得的目的,应该对于此形成了另外一个部分的附图以及所伴随的叙述性内容进行参考,这些内容中示出并描述了根据本发明的系统和方法的典型示例。
附图说明
结合在如下附图中说明的实施例来描述本发明。
图1是示出其中可应用本发明原理的一个典型网络环境的框图;
图2是说明分层软件体系结构中消息队列的体系布局的代表性示例框图;
图3A是说明没有使用消息队列的应用和传送实例之间的关联的框图;
图3B是说明使用消息队列的应用和传送实例之间的传统关联的分裂的框图;
图4是说明通过在通信两端使用消息队列解决图3B描述的分裂的一种方式的框图;
图5是说明根据本发明提供应用和传输标识符之间的一种关联的一个实施例框图;
图6是说明根据本发明维持应用和传输标识符之间关联的一个实施例框图;
图7是说明其中通信多方中只有一方使用MQ的实现ID表的方式的一个
实施例框图;
图8是说明根据本发明传送消息的方式的一个消息流程图;
图9是说明根据本发明一个实施例去往/来自多个应用实例传送消息的方式的一个消息流程图;
图10是根据本发明的一个实施例用于在应用之间促进消息通信的方法的流程图;
图11是用于在多个应用之间识别出作为一个响应消息目标的应用的方法的流程图;和
图12说明能够执行根据本发明的操作的代表性移动终端计算系统。
发明详述
在可仿效实施例的如下说明中,对附图进行了引用,附图在此形成了该说明的一部分并且其中通过说明示出了可以实践本发明的代表性实施例。应该理解的是,可以应用其它实施例,因为可以进行结构和操作上的改变而不偏离本
发明的范围。
通常,本发明提供一种在应用之间传送消息的系统和方法,其中消息队列(MQ)被实现为少于所有通信应用,和/或当与通信设备相关的MQ不使用如协议和/或分组报头时。在应用标识符和它们的对应传输标识符(或其它逻辑连接标识符)之间创建关联,该对应传输标识符是在从该设备发送一则消息之后被提供。当响应消息被发送到该应用时,该消息必须能够定位发送第一个消息的应用或应用实例。根据本发明,这通过查阅先前创建的应用标识符和传输标识符之间的关联来完成。当与入站消息相关的传输标识符与所创建关联的传输标识符进行比较时,可能探测到与所创建关联的传输标识符的一个(或多个)的匹配,这进而又给目标应用供应适当的应用标识符。
在一个实施例中,本发明把软件结构包含在包括涉及应用间通信的功能的有线和/或移动通信系统中。如前所述,消息排队方法学被用于促进应用之间的通信。图1是说明其中可应用本发明原理的典型网络环境100的框图。网络环境100可以包括例如一个或多个无线网络102和/或有线网络104。一个(多个)无线网络102可以表示任何一个或多个已知的或未来的无线网络技术,诸如全球移动通信系统(GSM)、通用移动通信系统(UMTS)、个人通信业务(PCS)、时分多址(TDMA)、码分多址(CDMA)、宽带CDMA(WCDMA)、或其它移动网络传输技术。其它无线通信装置还可以耦合各种终端,诸如短距离无线技术(如蓝牙)。任何无线设备106或其它通信终端可被耦合到这样一个(多个)无线网络102,诸如移动电话108和其它移动通信装置、膝上型电脑或其它便携式计算机110、个人数字助理(PDA)112、或任何由通用无线设备114表示的能够经无线网络102通信的其它类似的终端。由无线设备116表示的任何数量的无线设备可以耦合到无线网络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可以作为中间计算系统逻辑上位于发送和接收系统之间。如下更详细的描述,本发明允许应用相互之间利用MQ通信,尽管在通信设备的一个中缺少MQ或通信设备中的MQ之间不相兼容。
无线和有线网络通信通常按照分层软件结构进行描述,概略地基于现有技术中已知的开放式系统互联参考模型(OSI)。图2是说明这样一种分层软件结构中消息队列的结构布置的典型实例的框图。这个实施例假定无线终端200和另一个终端或服务器(服务器/终端202)的应用之间的无线/蜂窝通信。该终端200包括其包括有应用-A 204、应用-B 206、直到由应用n 208代表的无限制数量的应用的典型应用。相似的,该服务器/终端202包含了包括有应用X 210、直到由应用m 212代表的无限制数量的应用的典型应用。这些应用,与任何期望的或需要的应用编程接口(API)一起代表每个堆栈的应用层。
传输控制协议(TCP)214、216和用户数据报协议(UDP)218、220堆栈业务描述典型的传输层协议。典型地,TCP或UDP协议被用于移动互联网设备或有线设备以承载应用相关的消息。互联网协议(IP)222、224堆栈业务描述典型的网络层协议,其被用来在基于IP的网络上承载数据。在图示的实施例中,各种无线/蜂窝协议226、228可代表数据链路层和传输层之间的协议。这样的协议包括,例如短消息业务(SMS)、多媒体消息业务(MMS)、无线应用协议(WAP)等。结构上,MQ 230、232位于图2所示实例中的通信协议和应用之间。终端200和服务器/终端202之间的连接,如通信信道234所描述的,可以是仅偶发性可用的不可靠连接。MQ 230、232解决这种情况。但是,如在下面更详细描述的,不是所有的设备都使用MQ。另外,即使通信设备的每个都使用MQ,该MQ可能在与所传送的信息相关的协议和/或分组报头方面不兼容。
当MQ从传输层接收到消息(如TCP 214/216;UDP 218/220等)时,它必须知道该消息指向哪个应用和/或应用实例。并非总是足以识别出该应用类型,因为主机(如计算机、移动终端等)可能同时运行应用软件的几个实例。此外,由于应用实例可被临时暂停或者甚至被终止的事实,因此情况变得更为复杂。因此,当应用或应用实例被激活或者重新被激活时,消息必须被传递到正确的应用(包括离散的应用或应用进程)或应用实例。
当没有使用MQ时,这个问题不会出现。这是因为该应用直接激活并使用该协议。图3A描述了这种情况,并说明没有使用MQ的典型情况的框图。在图示的实例中,应用-A的两个实例是激活的,即应用-A实例-1 300和应用-A实例-2 302。这种情况下,每个应用实例直接与不同的传输协议实例相关。例如,调用应用-A实例-1 300将调用传输协议实例-1 304,调用应用-A实例-2302将调用传输协议实例-2 306。在传输层使用TCP的更特定的实例中,假定应用-A实例-1 300和实例-2 302对应于同时运行的两个浏览器应用。不使用MQ,每个将打开自己的TCP套接字来发送超文本传输协议(HTTP)消息。因此,在每个浏览器实例300、302和TCP进程304、306之间分别有一一对应的关系。
MQ的使用提供了许多优点,并因此经常期望使用MQ。然而,MQ的使用使得图3A所示的传统关联无效。这在图3B中进行描述,其中在应用实例300、302和传输实例304、306之间使用MQ 308。如可看到的,传输和应用实例之间的关联是无效的。在更特定的实例中,再次假定应用-A实例-1 300和实例-2 302对应于同时运行的两个浏览器应用。浏览器的两个实例300、302都可向MQ308发送一个HTTP请求,并且然后被暂停或终止。同时,MQ308向前发送该消息到目的地。当目的地设备(如服务器)作出响应,MQ308必须知道该响应指向浏览器实例300、302中的哪个。不幸的是,可能该传输使用同一标识符,诸如TCP端口号,因此该响应不能被指向适当的应用实例。
当使用MQ时,通常假定在通信两端都使用MQ,诸如在客户端/终端和服务器。这部分地由于需要唯一识别通信应用的事实,包括在应用有几个运行的实例并且每个实例可以进入暂停或终止状态的地方。如前所述,该MQ必须知道从传输层接收到的消息被指向哪个应用和应用实例。简单的解决办法是在两端引进MQ,和使用特定协议或分组报头来唯一识别两端正在通信的应用。这样一种协议或分组报头可能是专门用来完成这个目标,但是在任何情况下两个通信端必须支持同类型的MQ。例如,发送MQ可增加包含唯一标识符的专用MQ报头。这在图4中进行描述,其提供了说明在通信两端使用MQ的解决办法的框图。
在图4的实例中,一个应用的三个应用实例与终端400相关,包括应用-A实例-1 402、应用-A实例-2 404、应用-A实例-3 406。在终端400提供有一个MQ408,逻辑上在应用实例和传输层410之间。所述实例中通信的另一端是服务器412,该服务器包括服务器应用414和逻辑上在服务器应用414和传输层418之间的MQ416。传输层420也可以沿通信信道出现在各种网络元件422。假定服务器应用414要发送一个消息到应用实例402、404、406中的一个。唯一标识符(ID)424被用于唯一识别该通信应用。例如,发送MQ416可向包含唯一ID 424的消息426增加专用MQ报头来识别接收应用实例。可替换地,发送MQ416可使用一些具体和可能专用的协议来为该消息识别目的地应用实例402、404、406。使用与消息426一起传送的这个唯一ID 424,可以识别出应用实例402、404、406中的适当的一个。
然而,这种方法把MQ的使用限制在仅当两个通信端都支持同类型的MQ的情况。这自然导致了碎片,并且从应用开发者的观点来看是不期望的。例如,可能开发者必须使用不同版本的软件,或包括对另外一端有或没有MQ的情况的支持。本发明克服了这个问题,并且克服了在通信端之间为唯一识别通信对等体使用可能的专用协议和/或分组报头的需要。本发明还允许MQ使用在甚至仅在端到端通信信道的一侧上部署MQ的情况下。
本发明规定了应用和传输标识符的关联的存储,来促进对作为消息目的地的应用和/或应用实例的随后识别。如上所述,这允许MQ使用在甚至仅在端到端通信信道的一侧上部署MQ的情况下,和消除了在两端实现MQ的通信信道的每一端对同类型MQ的需要。在本发明的一个实施例中,所存储的应用和传输标识符的相互关系通过维持一个表(下文称为“ID-表”)来实现,该表识别出与具体应用相关的应用和传输。根据本发明,所使用的特定标识符可以改变,因为任何可用的应用和传输标识符都会被使用,只要提供了它们之间的相互关系。例如,可通过把使用由MQ提供的唯一ID来识别的应用与使用传输协议实例的识别所识别的传输相关联来提供应用/传输关联。可以使用其它的应用和传输标识符,如下更详细的描述。如此,当MQ从传输层接收到一个消息时,它可以访问所存储的应用/传输标识符的关联来确定该消息被指向哪个应用/应用实例。因此,本发明消除了在通信信道的两端拥有一个MQ、或至少相同MQ的需要。
图5是说明根据本发明在应用和应用标识符之间提供一种关联的一个实施例的框图。在图5的实施例中,示出了两个应用实例,包括应用-A实例-1 500和应用-A实例-2 502。示出了两个传输协议实例,包括传输协议实例-1 504和传输协议实例-2 506。还使用一个MQ 508来促进消息发送到接收应用。然而,MQ 508的逻辑位置中断了应用和应用实例之间的任何关联。根据本发明,创建每个消息传输的应用和传输标识符的关联,当消息目标(如服务器、另外的终端等)响应于最初发送消息的应用或应用实例时,该关联随后可以用于识别正确的应用或应用实例。在图5的图示实施例中,应用和传输标识符的关联可以使用本地ID-表510来维持。该ID-表510因此至少维持在消息被发送时所使用的应用标识符和传输标识符的条目,并维持在消息传输中使用的对应的应用和传输标识符之间的关联。
图6是说明一个其中维持应用和传输标识符之间的关联的实施例的图表。在所述实施例中,实现一个ID-表600。ID-表600包括如条目602、604、606、608所表示的一个或多个表的条目,直到由条目610描述的不定数量的条目。在这样一个ID-表600的一个实施例中,只维持应用ID 612和传输ID 614之间的关联。对于应用ID 612,MQ为应用或应用实例产生唯一标识符,或使用另外一个可用的标识符诸如假如操作系统支持时的应用进程的进程号。对于传输ID 614,MQ使用任何可用的传输标识符,诸如假如操作系统支持时的协议进程的进程号,或假如传输协议层提供时的套接字号等。对于特定消息,使用应用ID 612和传输ID 614在ID-表600中创建一个条目。例如,条目602可包括被描述为APP-PROCESS#616的应用ID 612和被描述为SOCKET#618的传输ID 614的关联。标识符614、618的这个关联被维持并被用于响应消息被指向的适当应用/应用实例的随后识别。
该MQ因此维持一个把特定应用连接到特定传输的表600。在一个实施例中,该表以这样一种方式构造,即它尽可能地独立于操作系统的特征。当发送一个消息时,MQ在本地为应用提供唯一的ID 612,并且该唯一的ID被存储到该表中。该唯一的ID可通过MQ产生,如果MQ有一个可用的进程标识符(如APP-PROCESS#616)该唯一ID可以是进程标识符,或可以是应用的另一个唯一标识符。对应的传输ID 614也可以存储到表600,以及可使用传输特定的标识符来获得,诸如TCP或UDP套接字号,或进程或线程,这取决于环境支持什么。
在本发明的一个实施例中,ID-表600(或其它数据结构)还包含关于所使用的标识符的特性的信息。例如,应用ID类型620和/或传输ID类型622可以包括在表600的一个、多个或所有的条目中。例如,应用ID类型可以是由MQ产生的唯一ID、进程号、或其它类似的指示符。类似地,传输ID类型622可以是套接字号、端口号、会话标识符、进程号、线程号、或其它类似的指示符。作为一个实例,一些类型的操作系统返回唯一识别TCP进程的TCP套接字号。该TCP套接字号可被用作传输ID 614,接着传输ID类型622可以是一个套接字号或更明确地是TCP套接字号。根据该操作系统,MQ可能得到涉及传输的一些其它标识符,诸如传输进程/线程本身的标识符而不是套接字号。
除了图6描述的那些字段之外的附加的和/或不同的字段,可与ID-表600相关。另外,这样的标识符的关联本身不需要在“表”中。相反,根据本发明可以使用能够维持有关标识符之间的这种关联的任何数据结构或链接特征。例如,链接、指针、链接表、数组等可以用于在应用标识符和逻辑连接标识符(如传输标识符)之间建立所需要的关联。
图7是说明其中仅在通信方之一中应用MQ的实现ID-表的一种方式的一个实施例的框图。在图7的实例中,一个应用的三个应用实例与终端700相关,包括应用-A实例-1 702和应用-A实例-2 704和应用-A实例-3 706。在终端700提供有MQ708,其逻辑上位于所述应用实例和传输层710之间。与MQ708相关联的是ID-表712,其存储应用和传输标识符的关联,如前描述。在所描述的例子中通信的另一端包括另一个通信设备,在本例中是服务器714。该服务器714包括服务器应用716,并可选地包括逻辑上位于服务器应用716和传输层720之间的MQ718。传输层722也可以出现在沿通信信道的各种网络元件724上。
操作中,诸如应用-A实例-1 702的应用或应用实例可以调用MQ708的业务。这样做的时候,应用实例702识别出目的地。MQ708返回一个唯一的标识符给可以在将来使用的应用实例702。MQ708初始化一个传输,例如TCP套接字、UDP套接字等。操作系统或传输710通常返回一些涉及传输信道的标识符的类型,无论这是套接字号、进程或线程标识符等。例如,UNIX型操作系统通常返回一个唯一识别TCP进程的TCP套接字号。在另一个实施例中,标识符可以与传输进程本身相关。
接着MQ708把应用号(如“ID_application”)和传输标识符(如“ID_transport”)都写入到ID-表712。如前所述,包括关于标识符特性的信息也是必要的或有利的,例如传输类型,以便指示是使用套接字号还是进程号识另传输。表712被维持直到应用702指示它的终止,或一些预定时间周期已经截止而没有使用,或一些其它的预定事件发生。
当消息726从服务器应用716到达时,可能不应用MQ718的业务。可替换地,服务器714可以应用MQ718,但可能不是与MQ708相同类型的,并且由MQ718使用的任何特定协议或分组报头可能对MQ708没用。在所描述的例子中,消息726不包括任何特定或专用报头来把消息有效负荷728(和标准报头)指向应用实例702中正确的一个,并因此不应用MQ718的业务。
当消息726从另一通信端点(有或没有MQ)到达时,MQ708确定消息是从哪个套接字或进程接收的。MQ708接着查阅ID-表712,并对其中接收到该消息的套接字和ID-表712中的传输标识符进行比较。基于在ID-表712中定位匹配的套接字,可以确定相关的应用进程/实例。在图7的例子中,相关的应用实例将识别出应用-A实例-1702。该消息于是被转发到正确的应用实例,或可替换地存储到与MQ708相关的队列(例如当应用实例被暂停时)。
图8是说明根据本发明传送消息的方式的一个实施例的消息流程图。这个实施例从设备(例如用于图8用途的移动终端)的观点描述通信,该设备可以向另外的设备(例如用于图8用途的服务器)发起通信和从该服务器接收消息。因此,移动终端的模块包括应用进程/实例800、消息队列(MQ802)、传输协议进程/实例804和用于使应用ID和传输ID相关联的数据结构806。在图示实施例中,所使用的数据结构是ID_表806。
图8的消息流程包括调用808 MQ802的业务的应用800。当调用时,该应用识别出消息的目的地。更具体的,应用800可以通过应用编程接口(API)调用MQ,并识别目标主机、应用和可能还有协议。也可能是应用提议要使用的唯一标识符。MQ802返回810唯一应用ID给应用800。如果该应用首先已经提出一个ID,那么MQ在返回它之前会检测它是唯一的。MQ802还初始化812一个传输,其导致传输804返回814传输ID。在一个实施例中,这包括考虑协议和创建(fork)进程作决定的MQ802。作为响应,返回进程号、套接字号等等。现在具有应用ID和传输ID的MQ802,写入816这个信息到ID_表806或以另外一种方式存储应用ID/传输ID关联。应用800发送818一个(多个)消息到MQ 802。MQ 802向ID_表806请求820传输ID,接着ID_表806向MQ802返回822传输ID以促进传递824一个(多个)消息到传输进程。可替代的,MQ802可能已经具有来自于传输ID的早期返回814的传输ID,在这种情况下就不需要附加的请求820和返回822了。
ID_表806如今配备有经应用800发送的一个(多个)消息的应用ID和传输ID的关联。当从另一个通信端点接收到826响应消息时,MQ802可以确定从哪个套接字/进程接收到消息。MQ802向ID_表806请求828该传输ID,然后ID_表806返回830该传输ID到MQ802。使用发现的套接字/进程,和返回的传输ID(也就是套接字、进程等),MQ802可以传递832响应消息到正确的应用进程/实例800。
图9是说明根据本发明的一个实施例向/从多个应用实例传送消息的方式的一个消息流程图。为了图9的描述的目的,假定终端应用存在两个实例,应用实例-1 900和应用实例-2 902,以及假定这些应用实例在终端和服务器之间使用专用消息。这些应用实例可以表示任何类型应用的多个实例,例如簿记软件。在这个特定的例子中,传输协议906可以是UDP,并且应用总是假定UDP端口号为“1234”。终端用户因此同时运行两个应用实例,并且在终端使用MQ904。
应用实例-1 900利用函数调用发送908消息到MQ904。此类消息调用的例子在下面例1中示出:
send_message(udp,102.233.242.202,1234,message)
例1
MQ904接收该函数调用,提供910唯一ID“1001”,并返回912该值到应用实例-1 900。然后应用实例-1 900存储914该ID“1001”,例如存储该ID到盘,并进入暂停状态。MQ904调用916一个UDP套接字到IP主机“102.233.242.202”和到UDP端口“1234”以及接收918一个UDP套接字号“111”。MQ904存储920新条目到ID_表922。此类条目的例子在下面表1中示出:
ApplicationID_type | applicationID | transportID_type | transportID |
own_ID | 1001 | 套接字号 | 111 |
表1
MQ904发送924消息到UDP套接字以传送到服务器926。
类似的步骤对第二应用实例-2 902中重复。更具体的,应用实例-2 902利用函数调用发送930消息到MQ904。此类消息调用的例子在下面的例2中示出:
send_message(udp,102.233.242.202,1234,message)
例2
可见,由应用实例-2 902发送的消息调用与由应用实例-1 900发送的消息调用相同。MQ904接收该函数调用,提供932唯一ID“1002”,并返回934该值到应用实例-2 902。然后应用实例-2 902存储936该ID“1002”,并进入暂停状态。MQ904调用938UDP套接字到IP主机“102.233.242.202”和到UDP端口“1234”以及接收940UDP套接字号“112”。MQ904存储942新条目到ID_表922。此类条目的例子在下面的表2中示出:
applicationID_type | applicationID | transportID_type | transportID |
Own_ID | 1002 | 套接字号 | 112 |
表2
MQ904发送944消息到UDP套接字以传送到服务器926。
服务器926从应用实例900、902接收消息并处理响应。如在路径946、948上所描述的,服务器926将响应发送回终端。应当注意的是可以以任何顺序发回响应,并不需要按照它们接收的顺序发回。MQ904从UDP套接字111接收950消息。如在路径952、954上所描述的来查阅ID_表922,并且MQ904确定消息与具有唯一ID“1001”的应用相关。MQ904利用应用ID号存储956消息。用户激活958应用实例-1 900。该应用从盘中检索960应用ID,并为可能的消息检查962 MQ904,例如使用“get_message(1001)”函数调用。MQ904接收请求,并返回964该消息。以类似的方式,应用实例-2 902可以使用UDP套接字112和唯一ID“1002”从MQ904中检索它的消息。
本发明也适用于不同的协议和不同的软件体系结构层。例如,虽然为促进理解本发明的目的于此已经描述了传输标识符,本发明可用于其它逻辑连接标识符,这取决于正在传送消息的体系结构层。本发明同样可用于在另一层开始的消息传输,例如表示层、会话层、网络层等。因此,本发明提供了进程标识符和逻辑连接标识符的关联来最终定位和引导响应消息回到进程,即使该进程不在应用层进行操作,或逻辑连接标识符位于传输层。
图10是根据本发明的一个实施例用于在应用之间促进消息通信的方法的流程图。获得1000应用ID和对应的出站逻辑连接ID,例如传输ID。出站逻辑连接ID因此对应于套接字、端口、会话等,其中将发送出站消息。逻辑连接ID与来自由它们各自的应用ID识别的应用的消息传输相关。然后建立应用ID和它们的对应出站逻辑连接ID的关联1002。例如,通过在ID_表中输入相关的应用ID和连接ID来建立关联。响应于应用所发送的消息的入站消息被指向1004具有与出站逻辑连接ID相关的应用ID的应用,其中出站逻辑连接ID对应于入站逻辑连接ID。例如,从另一个设备(例如服务器)接收到的消息被指向在ID_表中具有链接到出站传输ID的应用ID的应用,其中该出站传输ID匹配入站传输ID。根据本发明的一个实施例,这些操作至少部分地由MQ执行。
图11是用于在多个应用之间识别出作为一个响应消息目标的应用的方法的流程图。接收到1100应用标识符和出站传输ID。从这方面来看,应用ID的接收可能涉及唯一ID在MQ的产生,或可替代的可能涉及接收可用于MQ的唯一ID,例如进程号。以前述任何一种方式创建1102应用ID和出站传输ID之间的关联。接收1104与呼入消息相关的入站传输ID。使用前面创建的应用标识符和出站传输ID的关联识别1106目标应用。例如,入站传输ID匹配1108于ID表中的出站传输ID,并且根据这个关联可以确定1110应用ID。
本发明可以用于向/从任何类型设备中的应用传送消息,该消息可以利用网络或其它连接来传送。此类设备包括诸如台式计算机、工作站、膝上型计算机之类的计算设备,或能够经网络访问信息的其它任何计算系统。这些计算设备还包括诸如内容服务器、存储服务器、用于多媒体消息业务(MMS)的多媒体消息业务中心(MMSC)、用于短消息业务(SMS)的短消息业务中心(SMSC)之类的网络服务器,或任何能够通过诸如互联网之类网络与其它系统和设备通信的其它网络元件。这些设备还包括移动设备,其中经由无线网络完成网络访问,该无线网络可能最终耦合到有线网络,也可以最终不耦合到有线网络。这些移动设备可以是诸如无线/蜂窝电话、个人数字助理(PDA)的任何类型的无线设备、或能够进行无线通信的其它无线手持装置和便携式计算设备。这些有线和移动设备应用计算机电路和软件来控制和管理传统的设备活动以及本发明提供的功能。硬件、固件、软件或它们的组合可用于实现这里所述的各种MQ和链接操作。能够实现根据本发明的操作的典型移动终端计算系统的例子在图12中进行说明。本领域的技术人员应该理解:典型的移动计算环境1200只表示可能与这些移动设备相关的典型的通用功能,并且有线计算系统类似的还包括执行这些操作的计算电路。
根据本发明适于执行MQ功能的典型移动计算布置1200可以与许多不同类型的无线设备相关。典型移动计算布置1200包括处理/控制单元1202,例如微处理器、精简指令集计算机(RISC)、或其它中央处理模块。处理单元1202不必是单个设备,并且可以包括一个或多个处理器。例如,处理单元可以包括主处理器和耦合来与主处理器通信的相关的从处理器。
处理单元1202控制由程序贮存器/存储器1204中可用的程序所描述的移动终端的基本功能。因此,处理单元1202能够执行与本发明相关的MQ链接和应用进程/实例标识功能。更具体的,程序贮存器/存储器1204可以包括用于在移动终端上实现功能和应用的操作系统和程序模块。例如,程序贮存器可以包括一个或多个只读存储器(ROM)、闪动ROM、可编程和/或可擦除ROM、随机存取存储器(RAM)、用户接口模块(SIM)、无线接口模块(WIM)、智能卡、或其它可拆卸存储器设备等。在本发明的一个实施例中,与贮存器/存储器1204相关的程序模块存储在非易失的电可擦除可编程ROM(EEPROM)、闪动ROM等中,以使信息在移动终端断电时不被丢失。实现常规移动终端操作和根据本发明的操作的相关软件也可以经由数据信号发送到移动计算布置1200,例如经由诸如互联网和中间无线网络的一个或多个网络被电子地下载。
处理器1202还耦合到与移动终端相关的用户接口1206元件。移动终端的用户接口1206例如可以包括诸如液晶显示器的显示器1208、键盘1210、扬声器1212和麦克风1214。正如本领域中已知的,这些和其它用户接口元件耦合到处理器1202。可以使用其它用户接口机制,诸如语音命令、开关、触摸垫/屏、使用定点设备的图形用户接口、轨迹球、游戏杆、或其它用户接口机制。
移动计算布置1200还包括执行无线传输的传统电路。数字信号处理器(DSP)1216可被用于执行各种功能,包括模数(A/D)转换、数模(D/A)转换、语音编码/解码、加密/解密、误差检测和纠正、比特流转换、滤波等。通常耦合到天线1220的收发器1218,发送输出的无线信号1222和接收与无线设备相关的输入的无线信号1224。
根据本发明,MQ功能例如可以在操作系统或软件体系结构中被实现。例如,处理器1202可以在程序贮存器/存储器1204中存储的程序模块的指导下提供MQ功能。应用1226和MQ1228程序可以存储到贮存器/存储器1204。一个应用编程接口(API)1230可被用于促进MQ1228和应用1226之间的消息传输。程序贮存器/存储器1204也可以存储所创建的应用ID和传输ID的关联,例如由ID_表1232所描述的。
图12的移动计算布置1200被提供作为可以应用本发明的原理的计算环境的典型实例。根据这里提供的说明,本领域的技术人员应该理解本发明同样可应用于各种其它已知和未来的移动和有线计算环境。例如,桌上计算设备类似的包括处理器、存储器、用户接口和数据通信电路。因此,本发明可应用于经由网络传送数据的任何已知的计算结构。
使用在这里提供的说明,通过使用产生编程软件、固件、硬件或者它们的任何组合的标准编程和/或工程技术,本发明可以被实现为一个机器、进程或制造产品。最后得到的任何具有计算机可读程序代码的一个(多个)程序可以被包含在一个或多个计算机可用介质上,比如盘、光盘、可移动的存储设备、诸如RAM、ROM、PROMS之类的半导体存储器等等。包含执行与本发明相关功能的代码的制造产品旨在包含一个计算机程序,该计算机程序永久或者临时存在于任何计算机可用介质上或者存在于传输这样一个程序的任何传输介质中。传输介质包括但是不限制为:经由无线/无线电波通信网、互联网、内联网、基于电话/调制解调器的网络通信、硬布线/电缆通信网、卫星通信以及其它固定或者移动网络系统/通信链路的传输。从在这里提供的说明中,本领域技术人员应该很容易能够把所述的已创建的软件与适当的通用或专用计算机硬件结合来创建根据本发明的一个系统和方法。
为了例示和说明的目的已经提出了本发明的典型实施例的上述说明。它不意指穷举性的或者把本发明限制为所公开的精确形式。考虑到上述教导,许多修改和变化是可能的。因此,本发明的范围并非要由这详细的说明书来限制,而是由附加到此的权利要求书来确定。
Claims (42)
1、一种用于促进应用之间消息通信的方法,该方法包括:
获得应用标识符和对应出站逻辑连接标识符,所述对应出站逻辑连接标识符与来自可由它们各自的应用标识符识别的应用的消息传递相关;
建立应用标识符和它们的对应出站逻辑连接标识符之间的关联;和
把响应的入站消息指向具有与出站逻辑连接标识符相关的应用标识符的应用,该出站逻辑连接标识符对应于响应的入站消息的入站逻辑连接标识符。
2.权利要求1的方法,进一步包括:
比较入站逻辑连接标识符与所建立关联的出站逻辑连接标识符,并识别出与入站逻辑连接标识符匹配的至少一个出站逻辑连接标识符;和
使用具有与匹配的出站逻辑连接标识符建立的关联的应用标识符来识别出该响应的入站消息所指向的那个应用。
3.权利要求1的方法,其中获得对应出站逻辑连接标识符包括获得出站传输标识符。
4.权利要求3的方法,其中获得出站传输标识符包括通过传输协议获得出站套接字标识符。
5.权利要求3的方法,其中获得出站传输标识符包括获得与传输进程相关的出站传输进程标识符。
6.权利要求3的方法,其中获得出站传输标识符包括获得与传输线程相关的出站传输线程标识符。
7.权利要求3的方法,其中获得出站传输标识符包括获得基于套接字、端口、传输进程、传输线程和可用于软件分层的传输层的会话中至少一个的标识符。
8.权利要求1的方法,其中建立应用标识符和它们的对应出站逻辑连接标识符之间的关联包括在每个应用标识符和它的对应出站逻辑连接标识符之间创建一个链接。
9.权利要求1的方法,其中建立应用标识符和它们的对应出站逻辑连接标识符之间的关联包括经由表中的一个条目把应用标识符和它们的对应出站逻辑连接标识符相关联。
10.权利要求1的方法,其中建立应用标识符和它们的对应出站逻辑连接标识符之间的关联包括创建条目表,其中每个条目都包括用于传输特定消息的应用标识符的一个和它的对应出站逻辑连接标识符。
11.权利要求10的方法,其中创建条目表包括使用消息队列(MQ)创建该条目表。
12.权利要求11的方法,进一步包括利用MQ维持该条目表。
13.一种用于使用消息队列(MQ)在多个应用中识别出成为至少一个响应消息的目标的至少一个应用的方法,该方法包括:
接收应用标识符和出站传输标识符,其中出站传输标识符唯一识别来自该应用标识符所识别的应用的消息传递的逻辑连接;
创建应用标识符和出站传输标识符之间的关联;
接收与目的地是该应用的响应消息的接收相关的入站传输标识符;
通过把入站传输标识符匹配到出站传输标识符来识别作为响应消息目标的应用,和根据应用标识符和匹配的出站传输标识符之间的关联确定该应用的应用标识符。
14.权利要求13的方法,其中:
接收应用标识符和出站传输标识符包括接收多个应用标识符和对应的出站传输标识符;
创建应用标识符和出站传输标识符之间的关联包括创建多个关联,从对应于多个应用标识符的多个应用中传递的每个消息一个;
接收入站传输标识符包括接收与目的地为多个应用中的一个目标应用的响应消息的接收相关的入站传输标识符;和
识别作为响应消息目标的应用包括把入站传输标识符匹配到多个关联的出站传输标识符中的一个。
15.权利要求13的方法,其中创建应用标识符和出站传输之间的关联包括创建具有多个条目的ID表,其中每个条目包括应用标识符之一和出站传输标识符之一。
16.权利要求13的方法,其中接收应用标识符包括接收与该应用相关的现有标识符。
17.权利要求13的方法,其中接收应用标识符包括在MQ接收对应于应用的进程号。
18.权利要求13的方法,其中接收应用标识符包括在MQ产生应用标识符。
19.权利要求13的方法,进一步包括确定MQ是否有可用的进程标识符,和其中接收应用标识符包括如果进程标识符在MQ可用则使用该进程标识符作为应用标识符。
20.权利要求19的方法,其中接收应用标识符包括如果进程标识符不可用则在MQ产生应用标识符。
21.权利要求13的方法,进一步包括存储应用标识符和出站传输标识符之间的关联。
22.权利要求13的方法,进一步包括把响应消息指向由应用标识符识别的应用。
23.权利要求13的方法,其中多个应用包括两个或更多不同应用、应用实例和应用进程的任意组合。
24.权利要求13的方法,其中把入站传输标识符匹配到出站传输标识符包括对入站传输标识符与多个已创建的关联进行比较以便从具有匹配的出站传输标识符的已创建关联中定位应用标识符。
25.可在网络上操作的并能够与至少一个目的地设备之间传送消息的源设备,包括:
存储器,为从该源设备传送的多个出站消息中的每一个存储应用标识符和对应出站逻辑连接标识符的联系;和
消息队列(MQ)模块,配置为比较入站消息的入站逻辑连接标识符和所存储的联系的出站逻辑连接标识符,并识别具有与匹配于入站逻辑连接标识符的出站逻辑连接标识符相联的应用标识符的本地应用。
26.如权利要求25的源设备,其中MQ模块被以软件实现,并且其中该源设备包括处理器,该处理器配置为执行MQ软件以建立应用标识符和对应出站逻辑连接标识符的联系,比较入站逻辑连接标识符和所存储联系的出站逻辑连接标识符,并识别具有与匹配于入站逻辑连接标识符的出站逻辑连接标识符相联的应用标识符的本地应用。
27.如权利要求25的源设备,其中MQ模块进一步配置为在存储器中为从源设备传送的多个出站消息的每一个建立应用标识符和对应出站逻辑连接标识符的联系。
28.如权利要求25的源设备,其中该存储器包括存储应用标识符和对应出站逻辑连接标识符的联系的数据结构。
29.如权利要求28的源设备,其中该数据结构包括应用标识符和对应出站逻辑连接标识符的联系表。
30.如权利要求25的源设备,其中该存储器包括存储应用标识符和对应出站逻辑连接标识符的联系的链接表。
31.如权利要求25的源设备,其中MQ模块进一步配置为将入站消息指向与匹配于入站逻辑连接标识符的出站逻辑连接标识符相联的已识别本地应用。
32.如权利要求25的源设备,进一步包括处理器,其中本地应用包括可在处理器上操作的应用实例、可在处理器上操作的不同应用、和可在处理器上操作的包括多个消息类别的应用进程中的任何一个或多个。
33.如权利要求25的源设备,其中源设备包括无线通信装置和有线计算系统中的任何一个。
34.如权利要求25的源设备,其中MQ模块包括结构上位于与本地应用相关的应用层和传输层之间的软件模块。
35.一种通过网络在多个应用之间传送信息的系统,包括:
(a)源设备,包括用于经网络传送消息的多个源应用;
(b)目的地设备,包括用于接收一个或多个消息和响应于所接收的消息提供应答消息的至少一个目的地应用;
其中源设备包括:
(i)存储器,为从源设备传送的多个出站消息中的每一个存储应用标识符和对应出站逻辑连接标识符的联系;和
(ii)源消息队列(MQ)模块,配置为比较应答消息的入站逻辑连接标识符和所存储的联系的出站逻辑连接标识符,和识别出具有与匹配于入站逻辑连接标识符的出站逻辑连接标识符相联的应用标识符的本地应用。
36.如权利要求35的系统,其中该目的地设备配置为不使用目的地MQ直接发送和接收消息。
37.如权利要求35的系统,其中该目的地设备包括不同于源MQ类型的目的地MQ。
38.如权利要求35的系统,其中该多个源应用包括离散应用、共同应用的实例和应用进程中的任何一个或多个。
39.如权利要求35的系统,其中该源设备和该目的地设备包括无线通信装置和有线计算系统中的任何一个。
40.如权利要求35的系统,其中该网络包括无线网络和有线网络中的一个或多个。
41.一种其上存储有指令的计算机可读介质,该指令可由计算系统执行,用于通过执行步骤促进应用之间的消息通信,这些步骤包括:
获得应用标识符和对应出站逻辑连接标识符,所述对应出站逻辑连接标识符与来自可由它们各自的应用标识符识别的应用的消息传递相关;
建立应用标识符和它们对应的出站逻辑连接标识符之间的关联;
响应的入站消息被指向具有与出站逻辑连接标识符相关的应用标识符的应用,该出站逻辑连接标识符对应于响应入站消息的入站逻辑连接标识符。
42.一种其上存储有指令的计算机可读介质,该指令可由计算系统执行,其用于通过执行步骤在多个应用中识别出作为至少一个响应消息的目标的至少一个应用,这些步骤包括:
接收应用标识符和出站传输标识符,其中出站传输标识符唯一识别出用于来自该应用标识符所识别的应用的消息传递的逻辑连接;
创建应用标识符和出站传输标识符之间的关联;
接收与目的地为该应用的响应消息的接收相关的入站传输标识符;和
通过把入站传输标识符匹配于出站传输标识符来识别出一个应用作为响应消息的目标,并根据应用标识符和所匹配的出站传输标识符之间的关联来为应用确定应用标识符。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/359,044 | 2003-02-05 | ||
US10/359,044 US7493623B2 (en) | 2003-02-05 | 2003-02-05 | System and method for identifying applications targeted for message receipt in devices utilizing message queues |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1748390A true CN1748390A (zh) | 2006-03-15 |
Family
ID=32849581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200480003565XA Pending CN1748390A (zh) | 2003-02-05 | 2004-01-30 | 利用消息队列识别以设备中的消息接收作为目标的应用的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7493623B2 (zh) |
EP (1) | EP1590924A4 (zh) |
KR (1) | KR100728068B1 (zh) |
CN (1) | CN1748390A (zh) |
WO (1) | WO2004070504A2 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101785334A (zh) * | 2007-08-15 | 2010-07-21 | 日本电气株式会社 | 提供用于所请求连接的源连接标识符的方法、装置和计算机程序 |
CN102647429A (zh) * | 2012-04-28 | 2012-08-22 | 杭州格畅科技有限公司 | 应用间通信的访问控制方法、应用进程管理器、在线应用平台 |
CN102760074A (zh) * | 2011-04-26 | 2012-10-31 | Sap股份公司 | 高负荷业务流程可扩展性 |
CN104184635A (zh) * | 2014-08-19 | 2014-12-03 | 烽火通信科技股份有限公司 | 家庭网关基于Android RIL实现一对多数据通讯的方法及装置 |
CN108351829A (zh) * | 2015-09-25 | 2018-07-31 | 英特尔公司 | 用于输入/输出计算资源控制的系统和方法 |
CN114095388A (zh) * | 2020-07-13 | 2022-02-25 | 达音网络科技(上海)有限公司 | 采用提供的分类标识符为网络数据包进行分类的系统和方法 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7594230B2 (en) | 2001-06-11 | 2009-09-22 | Microsoft Corporation | Web server architecture |
US7430738B1 (en) | 2001-06-11 | 2008-09-30 | Microsoft Corporation | Methods and arrangements for routing server requests to worker processes based on URL |
US7159025B2 (en) * | 2002-03-22 | 2007-01-02 | Microsoft Corporation | System for selectively caching content data in a server based on gathered information and type of memory in the server |
US7490137B2 (en) | 2002-03-22 | 2009-02-10 | Microsoft Corporation | Vector-based sending of web content |
US8266294B2 (en) * | 2003-08-13 | 2012-09-11 | Microsoft Corporation | Routing hints |
US7882251B2 (en) * | 2003-08-13 | 2011-02-01 | Microsoft Corporation | Routing hints |
JP4303101B2 (ja) * | 2003-12-26 | 2009-07-29 | 株式会社エヌ・ティ・ティ・ドコモ | 通信端末およびプログラム |
US7562365B2 (en) * | 2004-01-12 | 2009-07-14 | International Business Machines Corporation | Random access for processing messages in a message queue |
US7418719B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | Method and system to support a unified process model for handling messages sent in different protocols |
US7418712B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | Method and system to support multiple-protocol processing within worker processes |
US7418709B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | URL namespace to support multiple-protocol processing within worker processes |
GB0427305D0 (en) * | 2004-12-14 | 2005-01-19 | Ibm | System and method for messaging |
US7421501B2 (en) * | 2005-02-04 | 2008-09-02 | Microsoft Corporation | Queued sessions for communicating correlated messages over a network |
US7773630B2 (en) | 2005-11-12 | 2010-08-10 | Liquid Computing Corportation | High performance memory based communications interface |
US7467388B2 (en) * | 2005-11-22 | 2008-12-16 | Microsoft Corporation | Monitoring message queues and starting processing applications |
US7664026B2 (en) * | 2006-06-19 | 2010-02-16 | Liquid Computing Corporation | Methods and systems for reliable data transmission using selective retransmission |
US7873964B2 (en) * | 2006-10-30 | 2011-01-18 | Liquid Computing Corporation | Kernel functions for inter-processor communications in high performance multi-processor systems |
US7953895B1 (en) * | 2007-03-07 | 2011-05-31 | Juniper Networks, Inc. | Application identification |
US20090287781A1 (en) * | 2008-05-19 | 2009-11-19 | International Business Machines Corporation | Grouping messages using patterns in a messaging system |
US9092130B2 (en) | 2011-05-31 | 2015-07-28 | Apple Inc. | Devices, methods, and graphical user interfaces for document manipulation |
US8812034B2 (en) * | 2011-09-30 | 2014-08-19 | Qualcomm Incorporated | Methods and apparatuses for management of SMS message identifications in a multi-mode device |
FR2980867B1 (fr) * | 2011-10-04 | 2013-10-18 | Inside Secure | Procede et systeme pour executer une transaction sans contact autorisant de multiples applications et de multiples instances d'une meme application |
US9442778B2 (en) * | 2012-10-01 | 2016-09-13 | Salesforce.Com, Inc. | Method and system for secured inter-application communication in mobile devices |
CN104572316A (zh) * | 2014-12-31 | 2015-04-29 | 福建天晴数码有限公司 | 游戏程序与运行平台交互的方法和系统 |
US10432754B2 (en) | 2015-09-16 | 2019-10-01 | Profire Energy, Inc | Safety networking protocol and method |
US10514683B2 (en) | 2015-09-16 | 2019-12-24 | Profire Energy, Inc. | Distributed networking system and method to implement a safety state environment |
US10523590B2 (en) * | 2016-10-28 | 2019-12-31 | 2236008 Ontario Inc. | Channel-based mandatory access controls |
US10521599B2 (en) | 2017-02-28 | 2019-12-31 | 2236008 Ontario Inc. | Label transition for mandatory access controls |
CN111742532B (zh) * | 2018-02-22 | 2023-03-28 | 瑞典爱立信有限公司 | 处理用于ue关联的逻辑连接的应用协议标识 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06182146A (ja) * | 1992-12-22 | 1994-07-05 | Fuji Kankyo Setsubi Kk | 排煙脱硫方法 |
JP3410768B2 (ja) * | 1993-06-14 | 2003-05-26 | 日本電信電話株式会社 | ノイズフィルタケーブル |
KR100293920B1 (ko) | 1993-06-12 | 2001-09-17 | 윤종용 | 비동기전송모드의사용자망접속인터페이스의트래픽제어장치및방법 |
KR970000668B1 (ko) | 1994-02-21 | 1997-01-16 | 재단법인 한국전자통신연구소 | 비동기 전달 모드(atm) 망에서의 폭주를 예방하기 위한 트래픽 출력 억제 장치 및 방법 |
US5805823A (en) * | 1996-01-30 | 1998-09-08 | Wayfarer Communications, Inc. | System and method for optimal multiplexed message aggregation between client applications in client-server networks |
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 |
CA2225227A1 (en) * | 1997-12-18 | 1999-06-18 | Michael Coveley | Intelligent communication and applications server |
US6529932B1 (en) * | 1998-04-01 | 2003-03-04 | Microsoft Corporation | Method and system for distributed transaction processing with asynchronous message delivery |
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 |
US6115365A (en) | 1998-07-30 | 2000-09-05 | Motorola, Inc. | Method and apparatus for queuing and transmitting messages |
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 |
US6279041B1 (en) * | 1998-11-13 | 2001-08-21 | International Business Machines Corporation | Methods, systems and computer program products for differencing data communications using a message queue |
US6608816B1 (en) | 1998-11-18 | 2003-08-19 | Nortel Networks Limited | Method and apparatus for providing differentiated services using a multi-level queuing mechanism |
US6785730B1 (en) * | 1999-02-16 | 2004-08-31 | Rebecca S. Taylor | Generic communications protocol translator |
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 |
US6789116B1 (en) * | 1999-06-30 | 2004-09-07 | Hi/Fn, Inc. | State processor for pattern matching in a network monitor device |
US6771646B1 (en) * | 1999-06-30 | 2004-08-03 | Hi/Fn, Inc. | Associative cache structure for lookups and updates of flow records in a network monitor |
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 |
WO2001026267A1 (en) * | 1999-10-05 | 2001-04-12 | Ejasent Inc. | Virtual port multiplexing |
US6862629B1 (en) * | 1999-10-21 | 2005-03-01 | International Business Machines Corporation | Method and system for dispatching socks traffic based on socks connection identified by source address, application address and application level protocol |
US6950873B2 (en) * | 2001-08-02 | 2005-09-27 | International Business Machines Corporation | Apparatus and method for port sharing a plurality of server processes |
-
2003
- 2003-02-05 US US10/359,044 patent/US7493623B2/en active Active
-
2004
- 2004-01-30 KR KR1020057014401A patent/KR100728068B1/ko not_active IP Right Cessation
- 2004-01-30 EP EP04706737A patent/EP1590924A4/en not_active Withdrawn
- 2004-01-30 CN CNA200480003565XA patent/CN1748390A/zh active Pending
- 2004-01-30 WO PCT/IB2004/000270 patent/WO2004070504A2/en active Search and Examination
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10602552B2 (en) | 2007-08-15 | 2020-03-24 | Nec Corporation | Connection identifier system and method |
CN101785334A (zh) * | 2007-08-15 | 2010-07-21 | 日本电气株式会社 | 提供用于所请求连接的源连接标识符的方法、装置和计算机程序 |
US9198032B2 (en) | 2007-08-15 | 2015-11-24 | Nec Corporation | Connection identifier system and method |
US9844081B2 (en) | 2007-08-15 | 2017-12-12 | Nec Corporation | Connection identifier system and method |
US11825528B2 (en) | 2007-08-15 | 2023-11-21 | Nec Corporation | Connection identifier system and method |
US11039489B2 (en) | 2007-08-15 | 2021-06-15 | Nec Corporation | Connection identifier system and method |
US10219307B2 (en) | 2007-08-15 | 2019-02-26 | Nec Corporation | Connection identifier system and method |
CN102760074A (zh) * | 2011-04-26 | 2012-10-31 | Sap股份公司 | 高负荷业务流程可扩展性 |
CN102647429A (zh) * | 2012-04-28 | 2012-08-22 | 杭州格畅科技有限公司 | 应用间通信的访问控制方法、应用进程管理器、在线应用平台 |
CN104184635A (zh) * | 2014-08-19 | 2014-12-03 | 烽火通信科技股份有限公司 | 家庭网关基于Android RIL实现一对多数据通讯的方法及装置 |
CN104184635B (zh) * | 2014-08-19 | 2018-02-13 | 烽火通信科技股份有限公司 | 家庭网关基于Android RIL实现一对多数据通讯的方法及装置 |
CN108351829A (zh) * | 2015-09-25 | 2018-07-31 | 英特尔公司 | 用于输入/输出计算资源控制的系统和方法 |
CN114095388A (zh) * | 2020-07-13 | 2022-02-25 | 达音网络科技(上海)有限公司 | 采用提供的分类标识符为网络数据包进行分类的系统和方法 |
CN114095388B (zh) * | 2020-07-13 | 2023-07-11 | 达音网络科技(上海)有限公司 | RTC / RTE设备与WiFi接入点间交换数据包分类标识符的方法以及无线接入点 |
Also Published As
Publication number | Publication date |
---|---|
EP1590924A4 (en) | 2011-06-08 |
KR20050105201A (ko) | 2005-11-03 |
KR100728068B1 (ko) | 2007-06-13 |
EP1590924A2 (en) | 2005-11-02 |
US7493623B2 (en) | 2009-02-17 |
US20040205769A1 (en) | 2004-10-14 |
WO2004070504A3 (en) | 2005-04-21 |
WO2004070504A2 (en) | 2004-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1748390A (zh) | 利用消息队列识别以设备中的消息接收作为目标的应用的系统和方法 | |
CN1207876C (zh) | 短消息网关、向移动电话提供信息服务的系统和方法 | |
CN1254068C (zh) | 移动电话的电话簿信息共享系统 | |
US6424841B1 (en) | Short message service with improved utilization of available bandwidth | |
CN1656828A (zh) | 操作供应商内以及供应商间的消息传送系统的系统和方法 | |
CN1240233C (zh) | 使用短消息业务和无线因特网接收数据的方法 | |
US20050071423A1 (en) | System, apparatus, and method for providing Web services on mobile devices | |
JPH1127290A (ja) | データ通信に移動局を参加させる方法およびシステム | |
CN1275292A (zh) | 在网关和服务中心之间进行路由确定的方法和装置 | |
CN1428056A (zh) | 用于在蜂窝网和公共数据网之间发送消息的方法和系统 | |
CN1574796A (zh) | 消息传输选择的系统和方法 | |
CN1302169A (zh) | 便携式通信终端和通信服务系统 | |
CN1794722A (zh) | 一种离线消息发送方法 | |
CN1759621A (zh) | 用于将消息发送到两个或者多个相关无线通信设备的方法和设备 | |
TW201325142A (zh) | 高笑遞送輔助服務至多技術可用無線傳輸/接收單元之方法及裝置 | |
CN101047605A (zh) | 一种远程控制方法及系统 | |
WO2004049673A1 (en) | Method and system for session management wherein a client session identifier is used | |
CN1512711A (zh) | 使用无线局域网客户端收发短信的方法和系统 | |
CN1662076A (zh) | 实现短消息转移的方法 | |
CN1859368A (zh) | 实现信息传送业务的方法和系统以及一种终端 | |
CN1788420A (zh) | 用于应用消息解压缩的配置 | |
CN100341352C (zh) | 消息系统及其方法 | |
CN1744729A (zh) | 一种反馈短信已被处理信息的方法及手机 | |
CN1889439A (zh) | 一种保存即时消息业务中会话信息的方法及系统 | |
CN1615662A (zh) | 通信系统中小应用程序的下载 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20060315 |