CN101035093A - 用于处理消息的方法和系统 - Google Patents
用于处理消息的方法和系统 Download PDFInfo
- Publication number
- CN101035093A CN101035093A CNA2007100021506A CN200710002150A CN101035093A CN 101035093 A CN101035093 A CN 101035093A CN A2007100021506 A CNA2007100021506 A CN A2007100021506A CN 200710002150 A CN200710002150 A CN 200710002150A CN 101035093 A CN101035093 A CN 101035093A
- Authority
- CN
- China
- Prior art keywords
- theme
- identifier
- message
- computer
- standing
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种在JMS主题名称中使用通配符的方法、装置和计算机可用介质。该方法包括步骤:向Java命名和目录接口(JNDI)发送对消息的存储请求,该消息通过包括主题常备标识符和主题通配符指示符在内的标识符来标识;从该JNDI向中间件发送实施消息,以指示该中间件将新消息存储在具有该主题常备标识符的任何主题中。实施消息使中间件创建包括主题常备标识符和主题通配符指示符的特殊主题,查询所有包含所述主题常备标识符的主题,为代理产生可重用动态消息流指令,用于指导以后将相关的新消息从发布者向每个具有所述主题常备标识符的主题的复制。
Description
技术领域
本发明总的涉及计算机和类似技术的领域,具体地说涉及用于该领域的软件。
背景技术
发布和订阅(Publish and Subscribe,P&S)是一种用于发布消息以建立集线体系结构的架构。P&S采用主题和订阅的概念。如图1所示,发布者102将文档104发布给一般熟知为“主题”106的数据库。也就是说,发布者可以发布被收集到熟知为“主题”的公用数据库中的大量文档104。“主题”可以是任意主题名称(优选为描述性的),如“计算机体系结构”、“政治”、“证券市场”等。
订阅者108a-n订阅主题106,并且可以接收由发布者102发布给主题106的文档104的副本(消息)。
利用诸如Java消息发送服务(JMS)的很多技术来实施P&S。JMS是一种与操作系统(OS)无缝拼接的应用程序接口(API),其支持网络中计算机之间的消息发送通信。在JMS中,当发布者102希望了解应当将发行物发送给哪个“主题”时,发布者102通常将JMS中的Java命名和目录接口(JNDI)用作命名/存档系统。因此发布者102查询JNDI中列出的主题,并将其发行物/消息发布到选择出的一个主题106。但这种情况意味着当发布者102不知道JNDI中存在什么主题和/或应当使用哪个主题名称时就会出现问题。
除了找到特定主题的问题之外,对于希望向分别具有自己的订阅者组108的多个主题106发布消息的发布者102来说会出现另一个问题。即使发布者102可以从JNDI中找到所有期望的主题,还是难以手动进行这种个别选择所需要的程序编制。
发明内容
认识到要解决上述问题的需要,本发明涉及设计为采用JMS主题名称中的通配符来找到要向其发布消息的合适主题的计算机可实施方法、系统和计算机可用介质。该方法包括向Java命名和目录接口(JNDI)发送对于需要消息被发送到的主题的请求。所请求的主题通过包含一个或多个通配符的主题名称来标识。实施消息使得中间件产生将向每个主题发送该消息副本的特殊消息流。进入该消息流的输入本身是特殊产生的主题。当应用程序进行到发布消息时,将公布的消息发送到该特殊产生的主题。所产生的特殊消息流反过来向该特殊消息流中的每个特殊产生的主题发送该消息副本。
通过下面的详细描述,本发明的上述及其它目的、特征和优点将会变得明显。
附图说明
本发明的新颖性特征在所附权利要求中给出。但通过下面结合附图对图示实施例的详细描述可以最好地理解本发明自身以及优选使用模式及其它目的和优点,其中:
图1示出现有技术的“发布和订阅”体系结构;
图2示出在本发明中采用的向多个主题数据源加入相同消息的步骤的“泳道”描述;
图3是本发明采用的使用通配符向不同的主题数据源发送消息的示例性步骤的流程图;
图4示出可以实施本发明的示例性客户计算机;
图5示出为了图4所示客户计算机的用户的利益而可以部署和/或实施的用于执行本发明的软件的示例性服务器;
图6a-6b示出用于部署能执行图2-3中示出和描述的步骤的软件的步骤流程图;
图7a-7c示出用于部署在能执行图2-3中示出和描述的步骤的虚拟个人网络(VPN)软件中的步骤流程图;
图8a-8b示出用于集成到能执行图2-3示出和描述的步骤的计算机系统软件的步骤流程图;
图9a-9b示出采用按需服务供应商执行图2-3示出和描述的步骤的步骤流程图。
具体实施方式
现在参考图2,其示出描绘本发明在所描述的环境中执行的用于在多个主题数据结构中存储消息副本的步骤的泳道图表200。在步骤1,Java消息服务(JMS)程序202利用通配符向Java命名和目录接口(JNDI)204发送需要用于发行的主题的请求。示例性代码可以是:
Topic topic=jndiContext.lookup(“jms/Hero*Topic”)
在步骤2,JNDI204向中间件206(SpecialTopicImplementation)发送实施请求(\getSpecialTopicImplementation),以通知中间件206要请求一个特殊主题。然后JNDI204(在步骤3)向代理208发送要该代理208创建特殊动态主题名称的指令(\createSpecialTopic\),该主题名称包括主题常备标识符(“Hero”)以及主题通配符指示符(“*”-表示没有被该存储消息定义的其它项目)。
代理208创建该特殊动态主题名称,然后中间件206(在步骤4)向代理208查询所有在其名称中包含常备主题(“Hero”)的主题。代理208返回所有这样的主题,中间件206为了重新使用而产生新创建的动态消息流指令(步骤5)以查询所有在其主题名称中包含“Hero”的主题。在一个实施例中,本地缓存该动态消息流指令以备将来使用。
中间件206将可重用动态消息流指令部署给代理208(步骤6),并向JMS程序202返回进入流向所有主题的消息流的动态进入点。因此当发布者102(如图1所示)向中间件206发布新消息(文档、文件、文章、发行物、应用数据等)(步骤7)时,中间件206向代理208发送指示代理208将该消息转发给在至少一部分主题名称中包含主题常备标识符(如“Hero”)的所有主题的消息(步骤8)。由此重新使用事先产生的特殊流来向在主题名称中包含“Hero”的每个主题发布该新消息。利用所描述的特殊动态主题名称,不需要在所有可能相关的主题中手动地重新创建该新消息。在一个实施例中,利用业务过程执行语言(BPEL)脚本来执行产生包含该动态特殊主题名称的消息流文档。BPEL消息流文档包含从新动态特殊主题名称(在步骤3产生的)读取消息并将该消息转发到每个相关主题的消息流。
图2描述的是在哪个点产生该消息流,而图3则描述该消息流是如何产生的。初始化方框302之后,在JMS程序中按照主题名称接收到对于主题的请求(方框304)。如果该主题请求是针对没有通配符的主题(查询方框306),则以正常方式向该特定名称的主题发送该消息(方框308),然后该过程结束(结束方框324)。
但是,如果需要主题的请求在该主题名称中包括通配符(查询方框306),则中间件产生特殊动态主题作为进入动态流的进入点(方框310)。然后利用已经进入的通配符主题名称向JMS代理查询所有包含常备主题名称的主题(步骤312)。然后产生消息流并可选择存储在代理中以备将来使用(方框314)。JMS程序接着向中间件206(如图2所示)发布消息以指示代理向该新动态主题发送该消息(方框316),该新动态主题反过来又使JMS代理执行该消息流,从而向满足使用该通配符的名称判断标准的每一个主题发送该消息副本(方框318)。然后代理为每个主题执行标准的发布-订阅技术(结束方框320)。
现在参考图4,其示出可以应用本发明的示例性客户计算机402的结构框图。客户计算机402包括与系统总线406耦合的处理器单元404。驱动/支持显示器410的视频适配器408也与系统总线406耦合。系统总线406通过总线桥412与输入/输出(I/O)总线414耦合。I/O接口416与I/O总线414耦合。I/O接口416提供与包括键盘418、鼠标420、致密盘-只读存储器(CD-ROM)驱动器422、软盘驱动器424和闪存驱动器426在内的各种I/O设备之间的通信。与I/O接口416连接的端口的格式可以是计算机体系结构领域的技术人员公知的任何格式,包括但不限于通用串行总线(USB)端口。
客户计算机402可以利用与系统总线406耦合的网络接口430通过网络428与服务供应商服务器502通信。网络428可以是诸如互联网的外部网络或者是诸如以太网或虚拟个人网络(VPN)的内部网络。客户计算机402利用网络428可以应用本发明来访问服务供应商服务器502。
硬盘驱动器接口432也与系统总线406耦合。硬盘驱动器接口432与硬盘驱动器434交互。在优选实施例中,硬盘驱动器434包括在也与系统总线406耦合的系统存储器436中。系统存储器436中的数据包括客户计算机402的操作系统(OS)438和应用程序444。
OS 438包括外壳程序(shell)440,用于向透明用户提供对诸如应用程序444的资源的访问。一般来说,外壳程序440是提供解释器以及用户和操作系统之间接口的程序。具体地说,外壳程序440执行进入命令行用户接口或来自文件的命令。因此外壳程序440(如在UNIX中所称的)-在Windows中也称为命令处理器-通常是操作系统软件层次的最高级别并用作命令解释器。该外壳程序提供系统提示符,解释由键盘、鼠标或其它用户输入媒体输入的命令,并将经过解释的命令发送给合适的操作系统的较低级别(如内核442)以进行处理。要注意尽管外壳程序440是基于文本、以行为导向的用户接口,但本发明同等地支持诸如图形、声音、姿势等其它用户接口模式。
如图所示,OS 438还包括内核442,该内核包括OS 438的较低级别的功能,这些功能包括提供由OS 438的其它部分和应用程序444请求的基本服务,该服务包括存储器管理、过程和任务管理、硬盘管理、鼠标和键盘管理。
应用程序444包括浏览器446。浏览器446包括可以使万维网(WWW)客户机(即客户计算机402)使用超文本传输协议(HTTP)消息向互联网发送和从互联网接收网络消息、并因此实现与服务供应商服务器502的通信的程序模块和指令。
客户计算机402的系统存储器中的应用程序444还包括动态订阅发现程序(DSDP)448。DSDP 448包括用于实施图2-3描述的过程的代码。在一个实施例中,客户计算机402可以从服务供应商服务器502下载DSDP 448。
在客户计算机402中示出的硬件元件不是涵盖性的,而只是代表性地说明本发明所需要的重要基本部件。例如,客户计算机402可以包括可替换的存储装置如磁带、数字多用盘(DVD)、伯努利磁带等等。这些和其它变形都包含在本发明的精神和范围内。
如上所述,DSDP 448可以从服务供应商服务器502下载到客户计算机502上,如图5中以示例形式所示的。服务供应商服务器502包括与系统总线506耦合的处理器单元504。视频适配器508也与系统总线506耦合。视频适配器508驱动/支持显示器510。系统总线506通过总线桥512与输入/输出(I/O)总线514耦合。I/O接口516与I/O总线514耦合。I/O接口516提供与包括键盘518、鼠标520、致密盘-只读存储器(CD-ROM)驱动器522、软盘驱动器524和闪存驱动器526在内的各种I/O设备之间的通信。与I/O接口516连接的端口的格式可以是计算机体系结构领域的技术人员公知的任何格式,包括但不限于通用串行总线(USB)端口。
服务供应商服务器502可以利用与系统总线506耦合的网络接口530通过网络428与客户计算机402通信。接入网络428使得服务供应商服务器502可以执行DSDP 448和/或将DSDP 448下载到客户计算机402上。
系统总线506还耦合到与硬盘驱动器534接口的硬盘驱动器接口532。在优选实施例中,硬盘驱动器534包括在与系统总线506耦合的系统存储器36中。系统存储器536中的数据包括服务供应商服务器502的操作系统538,该操作系统包括外壳程序540和内核542。外壳程序540组合在较高级别的操作系统层中,并用于向透明用户提供对诸如应用程序544的资源的访问,该应用程序包括浏览器546和上述可以部署到客户计算机402上的DSDP 448副本。
在服务供应商服务器502中示出的硬件元件不是涵盖性的,而只是代表性地说明本发明所需要的重要基本部件。例如,服务供应商服务器502可以包括可替换的存储装置如闪存、磁带、数字多用盘(DVD)、伯努利磁带等等。这些和其它变形都包含在本发明的精神和范围内。
还要注意在本发明的优选实施例中,服务供应商服务器502执行所有与本发明有关的功能(包括执行DSDP 448),由此使客户计算机402不必使用其资源。
应当理解,本发明的至少一些方面可以替换地实施在包含程序产品的计算机可用介质中。可以通过各种承载信号的介质将定义本发明的功能的程序发送给数据存储系统或计算机系统,该承载信号的介质包括但不限于只读存储介质(如CD-ROM)、可写存储介质(如硬盘驱动器、读/写CD ROM、光学介质)、诸如但不限于随机存取存储器(RAM)的系统存储器、诸如计算机和包括以太网、互联网、无线网络和类网络系统在内的电话网络的通信介质。因此应当理解这种承载信号的介质在携带或编码针对本发明方法功能的计算机可读指令时代表本发明的替换实施例。此外,还应当理解本发明可以通过具有在此所述的硬件形式、软件形式或硬件软件组合形式或其等价物形式的装置的系统来实施。
软件部署
因此,在此所述的方法、尤其是如图2-3所述的方法可以作为过程软件从服务供应商服务器502(如图5所示)部署到客户计算机402上(如图4所示)。
参照图6,步骤600开始部署该过程软件。第一件事就是确定在执行该过程软件时是否存在任何要驻留在服务器上的程序(查询方框602)。如果存在,则标识出将包含该可执行程序的服务器(方框604)。通过文件传输协议(FTP)或其它协议或通过使用共享文件系统来复制将用于该服务器的过程软件直接传送给该服务器的存储装置(方框606)。然后该过程软件被安装在该服务器上(方框608)。
接下来,确定是否通过使用户访问服务器上的过程软件来部署该过程软件(查询方框610)。如果用户要访问服务器上的过程软件,则标识出将存储该过程软件的服务器地址(方框612)。
确定是否要建立代理服务器(查询方框614)来存储该过程软件。代理服务器是位于诸如网页浏览器的客户机应用和真实服务器之间的服务器。其截取所有发送给该真实服务器的请求以检查代理服务器是否能执行这些请求。如果不能,则代理服务器将该请求转发给该真实服务器。代理服务器的两个主要优点是提高了性能并过滤了请求。如果请求了代理服务器,则安装代理服务器(方框616)。过程软件通过诸如FTP的协议发送给服务器,或者从源文件通过文件共享直接复制为服务器文件(方框618)。另一个实施例是向包含过程软件的该服务器发送事务,并使该服务器处理该事务,然后接收该过程软件并复制到服务器文件系统中。一旦该过程软件存储到服务器中,用户就通过其客户计算机访问该服务器上的过程软件并复制到其客户计算机文件系统中(方框620)。另一个实施例是使服务器自动将该过程软件复制到每个客户机上,然后在每个客户计算机上运行该过程软件的安装程序。用户在其客户计算机上执行安装该过程软件的程序(方框622),然后退出该过程(结束方框624)。
在查询步骤626中,确定是否通过用电子邮件向用户发送该过程软件来部署了该过程软件。与用户客户计算机的地址一起标识出将要部署该过程软件的用户组(方框628)。通过电子邮件将该过程软件发送给每个用户客户计算机(方框630)。然后用户接收该电子邮件(方框632),并将该过程软件从电子邮件分离到其客户计算机上的目录中(方框634)。用户在其客户计算机上执行安装该过程软件的程序(方框622),然后退出该过程(结束方框624)。
最后确定该过程软件是否要直接发送到用户的客户计算机上的用户目录中(查询方框636)。如果是,则标识出该用户目录(方框638)。将该过程软件直接发送到用户的客户计算机目录(方框640)。这可以通过几种方式来完成,例如但不限于共享该文件系统目录然后从发送者的文件系统复制到接收者的用户文件系统中,或者使用诸如文件传输协议(FTP)的传输协议。用户访问其客户机文件系统上的目录以准备安装该过程软件(方框642)。用户在其客户计算机上执行安装该过程软件的程序(方框622),然后退出该过程(结束方框624)。
VPN部署
作为服务的一部分当前软件可以部署到第三方,在该服务中第三方VPN服务被提供为安全部署媒介或者按特定部署所要求的按需要建立VPN。
虚拟个人网络(VPN)是可以用于保障通过不安全或不受信任的网络进行连接的安全的技术的任意组合。VPN提高了安全性并降低了操作成本。VPN利用公共网络-通常是互联网-将远程网址或用户连接起来。不是采用专用的、真实世界的连接如租用线路,而是VPN采用从公司私有网络通过互联网路由到远程站点或雇员的“虚拟”连接。通过为了发送或执行过程软件而特殊构建VPN(即软件驻留在其它地方),可以将通过VPN访问软件作为一种服务提供,其中该VPN的有效期限被限定为基于所支付的金钱而给定的时间段或部署个数。
可以通过远程访问VPN或站点到站点VPN来部署、访问和执行过程软件。在使用远程访问VPN时,通过公司私有网络和远程用户之间经由第三方服务供应商的安全的、加密的连接来部署、访问和执行该过程软件。企业服务供应商(ESP)设置网络访问服务器(NAS)并向远程用户提供用于其计算机的桌面客户机软件。然后该远程用户可以拨出免费号码或者直接通过电缆线或DSL调制解调器连接到NAS,并使用其VPN客户机软件来访问公司网络和访问、下载、执行该过程软件。
在使用站点到站点VPN时,使用用于通过诸如互联网的公共网络连接公司的多个固定站点的专用设备和大规模的加密来部署、访问和执行过程软件。
该过程软件由VPN通过通道建立来传输,所述通道建立是将一个完整的分组放置到另一个分组内并通过网络来发送的过程。外部分组的协议由网络和称为通道接口的两个点、即分组进入和退出该网络的两个点来理解。
图7描述了这种VPN部署的过程。开始方框702开始虚拟个人网络(VPN)过程。确定是否需要用于远程访问的VPN(查询方框704)。如果不需要,则跳至查询方框706。如果需要,则确定是否存在远程访问VPN(查询方框708)。
如果VPN存在,则跳至方框710。否则标识出将提供公司私有网络和公司远程用户之间的安全、加密连接的第三方供应商(方框712)。标识出公司远程用户(方框714)。然后该第三方供应商设立网络访问服务器(NAS)(方框716),其允许该远程用户拨出免费号码或直接通过宽带调制解调器来访问、下载和安装用于远程访问VPN的桌面客户机软件(方框718)。
建立远程访问VPN之后或者如果事先已安装了远程访问VPN,则远程用户可以通过拨入NAS或直接通过电缆线或DSL调制解调器连接到NAS来访问过程软件(方框710)。这使得可以进入要访问该过程软件的公司网络(方框720)。通过通道建立将过程软件经网络发送到远程用户的桌面。也就是说,该过程软件分为多个分组,每个包含数据和协议的分组被放置到另一个分组中(方框722)。当过程软件到达远程用户的桌面时,将该过程软件从分组中移出、重新建立、再在该远程用户的桌面上执行(方框724)。
接着确定是否需要用于站点到站点访问的VPN(查询方框706)。如果不需要,则退出该过程(结束方框726)。否则确定是否存在站点对站点VPN(查询方框728)。如果存在则跳至方框730。否则安装建立站点到站点VPN所需要的专用设备(方框738)。然后将大规模的加密设置到VPN中(方框740)。
建立站点到站点VPN之后或者如果事先已建立了站点到站点VPN,则用户通过VPN访问过程软件(方框730)。通过通道建立将过程软件经网络发送到站点用户。也就是说该过程软件分为多个分组,每个包含数据和协议的分组被放置到另一个分组中(方框734)。当过程软件到达远程用户的桌面时,将该过程软件从分组中移出、重新建立、再在该站点用户的桌面上执行(方框736)。然后该过程在结束方框726结束。
软件集成
由用于实施在此描述的过程的代码组成的过程软件可以通过提供该过程软件从而与应用程序、操作系统和网络操作系统软件共存、然后在该过程软件可以工作的环境中将该过程软件安装到客户机和服务器上而集成到客户机、服务器和网络环境中。
第一步骤是在将部署过程软件的网络操作系统的客户机和服务器上标识出任何该过程软件所需要或者与该过程软件协同工作的软件。该软件包括网络操作系统,其是通过增加联网特征而增强基本操作系统的软件。
接下来,标识出软件应用程序和版本号,并与测试过能与过程软件一起工作的软件应用程序和版本号列表进行比较。没有版本号的或与正确版本不匹配的软件应用程序将用正确的版本号来升级。检查将参数从过程软件传递给软件应用程序的程序指令以保证参数列表与该过程软件所需的参数列表匹配。反过来检查从软件应用程序传递给过程软件的参数以保证该参数与过程软件所需的参数匹配。标识出包括网络操作系统在内的客户机和服务器操作系统,并与测试过能与过程软件一起工作的操作系统、版本号和网络软件列表进行比较。与测试过的操作系统和版本号列表不匹配的操作系统、版本号和网络软件将在客户机和服务器上升级到需要的级别。
在保证将部署过程软件的软件处于已测试过能与过程软件一起工作的正确版本级别之后,通过在客户机和服务器上安装该过程软件来完成集成。
下面参考图8对该过程进行更进一步的描述。开始方框802开始过程软件的集成。第一个瓦形方框是要确定是否存在任何将在一个或多个服务器上执行的过程软件程序(方框804)。如果没有,则该集成过程跳至查询方框806。如果存在,则标识出服务器地址(方框808)。检查该服务器以确定其是否具有已用过程软件测试过的包括操作系统(OS)、应用程序、网络操作系统(NOS)在内的软件及其版本号(方框810)。还在方框810中检查该服务器以确定是否缺少任何过程软件所需要的软件。
确定版本号是否与已经用过程软件测试过的OS、应用程序和NOS的版本号相匹配(方框812)。如果所有版本都匹配而且不缺少所需要的软件,则该集成在查询方框806中继续。
如果一个或多个版本号不匹配,则用正确的版本在服务器上更新不匹配的版本(方框814)。此外,如果缺少所需要的软件,则在方框814所示的步骤中在服务器上更新。通过安装该过程软件来完成服务器集成(方框816)。
在方框804、812或816所示步骤之后的查询方框806所示的步骤确定是否存在任何将在客户机上执行的过程软件程序。如果在客户机上没有过程软件程序要执行,则该集成跳至结束方框818并退出。如果不是,则如方框820所示标识出该客户机地址。
检查客户机以确定该客户机是否具有已用过程软件测试过的包括操作系统(OS)、应用程序和网络操作系统(NOS)在内的软件及其版本号(方框822)。还在方框822描述的步骤中检查该客户机以确定是否缺少过程软件所需要的任何软件。
确定版本号是否与已经用过程软件测试过的OS、应用程序和NOS的版本号相匹配(方框824)。如果所有版本都匹配而且不缺少所需要的软件,则该集成跳至结束方框818并退出。
如果一个或多个版本号不匹配,则用正确的版本更新该客户机上不匹配的版本(方框826)。此外,如果缺少所需要的软件,则在该客户机上更新(方框826)。通过在客户机上安装该过程软件来完成客户机集成(方框828)。该集成跳至结束方框818并退出。
按照需要
该过程软件以灵活、自动的方式被共享并同时用于多个客户。该过程软件是标准化的,几乎不需要定制,并且是可扩展的,以量入为出的模式按需要提供容量。
该过程软件可以存储在可从一个或多个服务器访问的共享文件系统中。该过程软件通过包含使用被访问服务器上的CPU单位的数据和服务器处理请求的事物来执行。CPU单位是服务器的中央处理器上的时间单位如分、秒、小时。此外被访问的服务器可以请求其它需要CPU单位的服务器。CPU单位只是代表一种使用度量的例子。其它使用度量包括但不限于网络带宽、存储器使用量、内存使用量、分组传输量、完成的事物等等。
当多个用户使用相同的过程软件应用程序时,他们的事物由包含在该事物中的参数来区分,这些参数标识出唯一用户和针对该用户的服务类型。所有CPU单位和用于针对每个用户的服务的其它使用度量都被记录下来。当发送给任何一个服务器的事物数量达到开始影响该服务器的性能的数量时,访问其它服务器以增加容量并且共享工作负荷。类似的,当诸如网络带宽、存储器使用量、内存使用量等其它使用度量达到影响性能的容量时,增加额外的网络带宽、存储器使用量、内存等等以共享工作负荷。
用于每个服务和用户的使用度量都被发送到收集服务器,该收集服务器为在可以共享地执行该过程软件的服务器网络中任何地方所处理的每个服务累加每个客户的使用度量。相加后的使用单位度量定期与单位成本相乘,并选择将得到的过程软件应用程序服务总成本发送给客户或标明在由客户访问的网址上,然后该客户向服务供应商支付款项。
在另一个实施例中,服务供应商直接从客户在银行或金融机构的账户上扣除支付金额。
在另一个实施例中,如果服务供应商又是使用该过程软件应用程序的客户的客户,则应付给该服务供应商的款项与该服务供应商应付的款项一致,以便将该款项的传送次数降至最低。
现在参照图9,开始方框902开始按需过程。创建包含唯一用户标识、被请求的服务类型和任何进一步指定该服务类型的服务参数的事物(方框904)。然后将该事物发送给主服务器(方框906)。在按需环境中,主服务器最初可以是唯一的服务器,然后随着容量被消耗可以向该按需环境增加其它服务器。
查询服务器中央处理单元(CPU)在按需环境中的容量(方框908)。估计该事物对CPU的需求,然后将按需环境中服务器可用的CPU容量与该事物的CPU需求相比较,以确定在任何服务器中是否存在足够的CPU可用容量来处理该事物(查询方框910)。如果没有足够的服务器CPU可用容量,则分配额外的服务器CPU容量来处理该事物(方框912)。如果已经存在足够可用的CPU容量,则将该事物发送到所选服务器(方框914)。
在执行该事物之前,检查剩余的按需环境以确定该环境是否具有足够的可用容量来处理该事物。该环境容量包括例如网络带宽、处理器存储器、内存等,但不限于这些(方框916)。如果没有足够的可用容量,则向该按需环境增加容量(方框918)。接下来访问处理该事物所需的软件、加载到存储器中,然后执行该事物(方框920)。
记录使用度量(方框922)。该使用度量由在按需环境中用于处理该事物的功能部分组成。所记录的就是对诸如但不限于网络带宽、处理器存储器、内存和CPU周期的功能的使用。该使用度量被相加,与单位成本相乘,然后记录为对发出请求的客户的收费(方框924)。
如果该客户已请求将按需成本张贴在网址上(查询方框926),则张贴该按需成本(方框928)。如果该客户已请求将按需成本通过电子邮件发送到客户地址(查询方框930),则将该成本发送给客户(方框932)。如果客户已请求直接从容户账户支付该按需成本(查询方框934),则直接从该客户账户接收支付款(方框936)。然后在结束方框938退出该按需处理。
虽然参考优选实施例特别地展示和描述了本发明,但本领域的技术人员应当理解在不脱离本发明的精神和范围的情况下可以做出形式和细节上的各种更改。此外,在说明书和所附权利要求中使用的术语“计算机”或“系统”或“计算机系统”或“计算装置”包括任何数据处理系统,包括但不限于个人计算机、服务器、工作站、网络计算机、主机、路由器、交换机、个人数字助理(PDA)、电话、和可以处理、发送、接收、获取和/或存储数据的任何其它系统。
Claims (8)
1.一种计算机可实施的方法,包括:
向Java命名和目录接口(JNDI)发送对主题的存储请求,该主题通过包括主题常备标识符和主题通配符指示符在内的标识符来标识;
从该JNDI向中间件发送实施消息,以指示该中间件将新消息存储在具有该主题常备标识符的任何主题中,其中所述实施消息:
使中间件创建一个特殊主题作为进入所产生的动态流的进入点,
查询所有包含所述主题常备标识符的主题,
为代理产生可重用动态消息流指令,用于指导以后的将相关的新消息从发布者向每个具有所述主题常备标识符的主题的复制。
2.根据权利要求1所述的计算机可实施的方法,还包括:
从Java消息发送服务(JMS)发布者向代理发送请求,由此使得执行所述动态产生的消息流。
3.一种系统,包括:
处理器;
与该处理器耦合的数据总线;
体现计算机程序代码的计算机可用介质,该计算机可用介质与所述数据总线耦合,该计算机程序代码包括由处理器执行的指令,配置为:
向Java命名和目录接口(JNDI)发送对主题的存储请求,该主题通过包括主题常备标识符和主题通配符指示符在内的标识符来标识;
从该JNDI向中间件发送实施消息,以指示该中间件将新消息存储在具有该主题常备标识符的任何主题中,其中所述实施消息:
使中间件创建一个特殊主题作为进入所产生的动态流的进入点,
查询所有包含所述主题常备标识符的主题,
为代理产生可重用动态消息流指令,用于指导以后的将相关的新消息从发布者向每个具有所述主题常备标识符的主题的复制。
4.根据权利要求3所述的系统,其中所述指令还配置为:
从Java消息发送服务(JMS)发布者向代理发送请求,由此使得执行所述动态产生的消息流。
5.一种体现计算机程序代码的计算机可用介质,该计算机程序代码包括计算机可执行的指令,配置为:
向Java命名和目录接口(JNDI)发送对主题的存储请求,该主题通过包括主题常备标识符和主题通配符指示符在内的标识符来标识;
从该JNDI向中间件发送实施消息,以指示该中间件将新消息存储在具有该主题常备标识符的任何主题中,其中所述实施消息:
使中间件创建一个特殊主题作为进入所产生的动态流的进入点,
查询所有包含所述主题常备标识符的主题,
为代理产生可重用动态消息流指令,用于指导以后的将相关的新消息从发布者向每个具有所述主题常备标识符的主题的复制。
6.根据权利要求5所述的计算机可用介质,其中所体现的计算机程序代码还包括计算机可执行的指令,配置为:
从Java消息发送服务(JMS)发布者向代理发送请求,由此使得执行所述动态产生的消息流。
7.根据权利要求5所述的计算机可用介质,其中所述计算机可执行指令从远程位置的服务器部署到客户计算机上。
8.根据权利要求5所述的计算机可用介质,其中所述计算机可执行指令由服务供应商在按需基础上提供给客户。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/327,578 US20070174232A1 (en) | 2006-01-06 | 2006-01-06 | Dynamically discovering subscriptions for publications |
US11/327,578 | 2006-01-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101035093A true CN101035093A (zh) | 2007-09-12 |
CN100591056C CN100591056C (zh) | 2010-02-17 |
Family
ID=38286728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710002150A Expired - Fee Related CN100591056C (zh) | 2006-01-06 | 2007-01-04 | 用于处理消息的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070174232A1 (zh) |
JP (1) | JP5052126B2 (zh) |
CN (1) | CN100591056C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012114284A1 (en) * | 2011-02-24 | 2012-08-30 | International Business Machines Corporation | Peer-to-peer collaboration of publishers in a publish-subscription environment |
CN103020234A (zh) * | 2012-12-17 | 2013-04-03 | 东北大学 | 一种面向同构对称发布及订阅系统的Top-k查询方法 |
CN104657408A (zh) * | 2013-11-22 | 2015-05-27 | 国际商业机器公司 | 具有多个正交主题树的发布订阅代理器 |
CN110032690A (zh) * | 2017-11-30 | 2019-07-19 | 奥誓公司 | 将消息对话发布到电子论坛 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8250032B2 (en) * | 2009-06-02 | 2012-08-21 | International Business Machines Corporation | Optimizing publish/subscribe matching for non-wildcarded topics |
KR101079145B1 (ko) | 2010-02-01 | 2011-11-02 | 국방과학연구소 | 데이터 분산 서비스 시스템의 효율적 개발을 위한 토픽 통합 관리 서버, 토픽 통합 관리 시스템 및 토픽 통합 관리 방법 그리고 이를 행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체 |
CN106375462B (zh) * | 2016-09-13 | 2019-05-10 | 北京百度网讯科技有限公司 | 在分布式消息系统中实现消息持久化的方法及装置 |
US10491698B2 (en) * | 2016-12-08 | 2019-11-26 | International Business Machines Corporation | Dynamic distribution of persistent data |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1240964A (zh) * | 1998-06-25 | 2000-01-12 | 国际商业机器公司 | 发布/订阅数据处理设备、方法和计算机程序产品 |
US6817010B2 (en) * | 2000-12-27 | 2004-11-09 | International Business Machines Corporation | Monitoring messages during execution of a message flow |
GB0115404D0 (en) * | 2001-06-23 | 2001-08-15 | Ibm | Method and apparatus for message routing in a computer system |
US7167918B2 (en) * | 2001-10-29 | 2007-01-23 | Sun Microsystems, Inc. | Macro-based access control |
US20030126079A1 (en) * | 2001-11-12 | 2003-07-03 | Roberson James A. | System and method for implementing frictionless micropayments for consumable services |
GB0130626D0 (en) * | 2001-12-20 | 2002-02-06 | Ibm | Message filtering |
GB0212820D0 (en) * | 2002-06-01 | 2002-07-10 | Ibm | Method and system for information enrichment using distributed computer systems |
US7720910B2 (en) * | 2002-07-26 | 2010-05-18 | International Business Machines Corporation | Interactive filtering electronic messages received from a publication/subscription service |
US7392255B1 (en) * | 2002-07-31 | 2008-06-24 | Cadence Design Systems, Inc. | Federated system and methods and mechanisms of implementing and using such a system |
US7293262B2 (en) * | 2003-01-27 | 2007-11-06 | Bea Systems, Inc. | Web based interface for JAVA message service mark-up language |
US20040205174A1 (en) * | 2003-02-21 | 2004-10-14 | Snyder Joseph J. | XML driven WebDAV unit test framework |
US7472400B2 (en) * | 2003-02-28 | 2008-12-30 | Bea Systems, Inc. | Method for dynamically generating a wrapper class |
US7376832B2 (en) * | 2003-04-21 | 2008-05-20 | International Business Machines Corporation | Distributed method, system and computer program product for establishing security in a publish/subscribe data processing broker network |
GB0315190D0 (en) * | 2003-06-28 | 2003-08-06 | Ibm | Methods, apparatus and computer programs for visualization and management of data organisation within a data processing system |
US7546608B2 (en) * | 2004-01-14 | 2009-06-09 | International Business Machines Corporation | Enhanced search expressions for information kit integration architecture |
US7490183B2 (en) * | 2004-02-12 | 2009-02-10 | International Business Machines Corporation | Information kit integration architecture for end-user systems |
US8590019B2 (en) * | 2004-06-03 | 2013-11-19 | International Business Machines Corporation | Authentication with credentials in Java messaging service |
AU2005322969A1 (en) * | 2005-01-06 | 2006-07-13 | Tervela, Inc. | End-to-end publish/subscribe middleware architecture |
US20060248285A1 (en) * | 2005-04-29 | 2006-11-02 | Petev Petio G | Cache coherence protocol |
-
2006
- 2006-01-06 US US11/327,578 patent/US20070174232A1/en not_active Abandoned
- 2006-12-27 JP JP2006352577A patent/JP5052126B2/ja not_active Expired - Fee Related
-
2007
- 2007-01-04 CN CN200710002150A patent/CN100591056C/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012114284A1 (en) * | 2011-02-24 | 2012-08-30 | International Business Machines Corporation | Peer-to-peer collaboration of publishers in a publish-subscription environment |
US8489694B2 (en) | 2011-02-24 | 2013-07-16 | International Business Machines Corporation | Peer-to-peer collaboration of publishers in a publish-subscription environment |
GB2501656A (en) * | 2011-02-24 | 2013-10-30 | Ibm | Peer to peer collaboration of publishers in a publish-subscription environment |
GB2501656B (en) * | 2011-02-24 | 2014-08-20 | Ibm | Peer to peer collaboration of publishers in a publish-subscription environment |
US9246859B2 (en) | 2011-02-24 | 2016-01-26 | International Business Machines Corporation | Peer-to-peer collaboration of publishers in a publish-subscription environment |
CN103020234A (zh) * | 2012-12-17 | 2013-04-03 | 东北大学 | 一种面向同构对称发布及订阅系统的Top-k查询方法 |
CN103020234B (zh) * | 2012-12-17 | 2015-12-23 | 东北大学 | 一种面向同构对称发布及订阅系统的Top-k查询方法 |
CN104657408A (zh) * | 2013-11-22 | 2015-05-27 | 国际商业机器公司 | 具有多个正交主题树的发布订阅代理器 |
CN104657408B (zh) * | 2013-11-22 | 2019-01-04 | 国际商业机器公司 | 具有多个正交主题树的发布订阅代理器 |
CN110032690A (zh) * | 2017-11-30 | 2019-07-19 | 奥誓公司 | 将消息对话发布到电子论坛 |
Also Published As
Publication number | Publication date |
---|---|
CN100591056C (zh) | 2010-02-17 |
JP2007200308A (ja) | 2007-08-09 |
JP5052126B2 (ja) | 2012-10-17 |
US20070174232A1 (en) | 2007-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1291318C (zh) | 在计算网络中供应聚合服务的方法和系统 | |
CN101035093A (zh) | 用于处理消息的方法和系统 | |
CN1298151C (zh) | 用于获取网格中的状态信息的方法和设备 | |
US8423560B2 (en) | Filter range bound paged search | |
US20090125612A1 (en) | Configuration domains for the configuration of web services and consumer proxies | |
US20060235976A1 (en) | Method and apparatus for metadata driven web service mediation | |
US20090077164A1 (en) | Distributed workflow-enabled system | |
US7650609B2 (en) | Multi-environment document management system access | |
CN1526109A (zh) | 用于被分割的对等计算的方法与装置 | |
US7657609B2 (en) | Data transfer in a multi-environment document management system access | |
JP2005539298A (ja) | サーバを遠隔かつ動的に構成する方法およびシステム | |
MXPA03007661A (es) | Metodo y sistema para facturacion de aplicaciones basada en la transmision. | |
CN101076988A (zh) | 用于提供授权的远程访问应用程序会话的方法和设备 | |
US20070168554A1 (en) | System and method for providing trickle resource discovery | |
CN1886757A (zh) | 用于提供具有数字权利管理的深度链接功能的方法、系统和存储介质 | |
CN1217278C (zh) | 保证服务供应商所推荐的服务的可用性的方法和系统 | |
CN1767519A (zh) | 用于优化Web服务绑定的方法和装置 | |
WO2005074225A1 (fr) | Procede et systeme pour l'exploitation d'un reseau informatique destine a la publication de contenu | |
US7953622B2 (en) | Implementing meeting moderator failover and failback | |
US7536442B2 (en) | Method, system, and storage medium for providing autonomic identification of an important message | |
Arend et al. | The on-premise data sharing infrastructure e! DAL: Foster FAIR data for faster data acquisition | |
US20180081981A1 (en) | Dynamic data collection | |
CN1653423A (zh) | 交换基础设施系统和方法 | |
US20070198630A1 (en) | Delivery of archived content to authorized users | |
US20080163264A1 (en) | Directory Service that Provides Information from a Plurality of Disparate Data Sources |
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: 20100217 Termination date: 20110104 |