发送用于目标服务执行操作的请求的方法和系统.pdf

上传人:32 文档编号:647788 上传时间:2018-03-01 格式:PDF 页数:12 大小:511.74KB
返回 下载 相关 举报
摘要
申请专利号:

CN03143613.7

申请日:

2003.07.25

公开号:

CN1508701A

公开日:

2004.06.30

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 13/00申请日:20030725授权公告日:20060531|||授权|||实质审查的生效|||公开

IPC分类号:

G06F13/00; G06F9/06; G06F12/10

主分类号:

G06F13/00; G06F9/06; G06F12/10

申请人:

国际商业机器公司

发明人:

斯蒂芬·J·托德

地址:

美国纽约州

优先权:

2002.12.18 GB 0229540.0

专利代理机构:

北京市柳沈律师事务所

代理人:

郭定辉;黄小临

PDF下载: PDF下载
内容摘要

本发明提供了一种系统,其中在消息传送系统中的队列和对象/服务可以经由同一结构来容纳(消息群集)。

权利要求书

1: 一种用于发送对于目标服务的请求以执行操作的方法,所述方法包括 步骤: 接收对于目标服务的请求以执行操作; 建立用于消息队列的消息,所述消息代表所述请求,所述消息包括对所 述消息队列和要执行的操作的指示; 确定所述消息队列的位置,所述队列是在消息传送簇中的簇队列; 向该队列发送消息,其中所述队列表示目标服务。
2: 按照权利要求1的方法,其中所述队列是伪队列,所述伪队列映射到 实际队列。
3: 一种用于请求目标服务以执行操作的系统,所述系统包括: 目标服务; 用于接收对于目标服务的请求以执行操作的装置; 用于建立表示所述请求的消息的装置,所述消息包括对目标服务和要执 行的操作的指示; 表示目标服务的队列,所述队列是在消息传送簇中的簇队列; 用于确定所述队列的位置的装置; 用于响应于确定所述队列的位置而向所述队列发送消息的装置; 用于从所述队列读取消息的代理程序,和 用于对目标服务执行操作的装置。
4: 按照权利要求3的系统,其中所述队列是伪队列,所述伪队列映射到 实际队列。
5: 按照权利要求4的系统,包括多个伪队列,每个队列表示一个目标服 务并且映射到实际的队列。
6: 按照权利要求4或5的系统,其中所述代理程序从实际队列读取消息。
7: 一种计算机程序,包括程序代码,用于当在计算机上被执行的时候执 行权利要求1或2的方法。
8: 一种用于发送对于目标服务的请求以这些操作的装置,所述装置包括: 用于接收对目标服务的请求以执行操作的装置; 用于为消息队列建立消息的装置,所述消息表示请求,所述消息包括对 消息队列和要进行的操作的指示; 用于确定所述消息队列的位置的装置,所述队列是在消息传送簇中的簇 队列;以及 用于向所述队列发送所述消息的装置,其中所述队列表示目标服务。
9: 按照权利要求8的装置,其中所述队列是伪队列,所述伪队列映射到 实际队列。

说明书


发送用于目标服务执行操作的请求的方法和系统

    【技术领域】

    本发明涉及一种分布对象/服务系统,具体涉及在这样的系统中的对象/服务的位置(location)。

    背景技术

    分布对象/服务系统一般包括三个主要部分:

    1)用于容纳(locate)对象/服务和对象/服务工厂的机构;

    2)数据传输格式;

    3)传送机构。

    这三个部分一般经由非常独立的机构来实现。例如,人们可以注意这样一个系统,其中一个LDAP(简便目录存取协议)目录结构被用于容纳对象/服务;SOAP(简单对象存取协议)被用作数据传输格式;诸如IBM的WebSphere MQ的消息传送产品被用作传送机构。

    图1提供了具有独立可维护的目录结构一般如何运行的整体视图。客户端10从服务器20(例如银行)请求对象/服务40。服务器20在目录30中执行查找,并且发现银行驻留在系统1上。服务器20随后向系统1发出对于银行对象/服务的请求。这可能涉及调用关于银行的方法并且传送相关的参数(如记入借方的款项(S Todd,100))。

    独立实现上述三个机构的每个是困难和耗时的。例如,实现容纳对象/服务的机构不仅需要建立和维护目录30,而且需要用于在目录故障时提供容错性的代码。这样的容错性通常通过与初始副本(即复制)同步地保留目录的备份来提供。另外,也有诸如安全这样的其他考虑。

    因此,在工业中需要减少与实现一个分布对象/服务系统的这三个部分相关的开销。

    【发明内容】

    因此,本发明的第一方面提供了一种用于发送对于目标服务的请求以执行操作地方法,所述方法包括步骤:接收对于目标服务的请求以执行操作;建立用于消息队列的消息,所述消息代表所述请求,所述消息包括对所述消息队列和要执行的操作的指示;确定所述消息队列的位置,所述队列是在消息传送簇中的簇队列;向该队列发送消息,其中所述队列表示目标服务。

    因此在诸如WebSphere MQ这样的消息传送系统被用作分布服务系统中的传送机构的地方,用于容纳队列(即消息群集)的基础结构可以被应用来容纳在分布系统中的服务。因此避免了保留用于容纳服务的独立目录结构的必要。由消息传送系统提供的所有优点将更好地应用来容纳服务。

    优选的是,所述队列是映射到实际队列的伪队列。

    按照另一个方面,本发明提供了一种用于请求目标服务以执行操作的系统,所述系统包括:目标服务;用于接收对于目标服务的请求以执行操作的装置;用于建立表示所述请求的消息的装置,所述消息包括对目标服务和要执行的操作的指示;表示目标服务的队列,所述队列是在消息传送簇中的簇队列;用于确定所述队列的位置的装置;用于响应于确定所述队列的位置而向所述队列发送消息;用于从所述队列读取消息的代理程序,和用于对目标服务执行操作的装置。

    注意,在一个实施例中,所述代理程序执行对目标服务的操作。在另一个实施例中,代理程序将消息传送到另一个分量以执行操作。

    优选的是,所述队列是映射到实际队列的伪队列。

    优选的是,存在多个伪队列,每个队列表示一个目标服务并且映射到实际的队列。

    优选的是,所述代理程序从实际队列读取消息。因此,一个代理程序优选地从同一队列中读取与不同服务相关的消息。这相对于一个代理程序从多个队列或甚至多个代理程序读取更容易管理。

    值得赞赏的是,本发明可以以计算机软件来实现。

    按照另一个方面,本发明提供了一种用于发送对于目标服务的请求以执行这些操作的装置,所述装置包括:用于接收对目标服务的请求以执行操作的装置;用于为消息队列建立消息的装置,所述消息表示请求,所述消息包括对消息队列和要进行的操作的指示;用于确定所述消息队列的位置的装置,所述队列是在消息传送簇中的簇队列;以及用于向所述队列发送所述消息的装置,其中所述队列表示目标服务。

    【附图说明】

    现在参照附图通过示例来说明本发明的优选实施例。

    图1示出了按照现有技术的、具有独立可维护的目录结构的系统如何运行的整体视图;

    图2图解了按照现有技术的消息传送系统;

    图3示出了使用现有技术的群集技术的消息传送系统;

    图4示出了按照本发明的一个优选实施例的分布服务/对象系统的组成。

    【具体实施方式】

    消息传送系统是本领域公知的。如上所述,一种这样的系统是IBM的WebSphere MQ。图2提供了这样的系统如何运行的整体视图。系统100执行程序120和130。系统110执行程序140。这些程序经由消息编队接口(MQI)150与在队列管理器160、170上运行的队列180、Q1、Q2通信。例如,程序120可能希望将一个消息放到Q1上以便由程序130检索。该程序将这个请求放到它的本地队列管理器160,队列管理器160立即知道Q1在哪里,因为它管理那个队列。于是,可以直接将消息放到Q1。另一方面,程序120(运行在系统100中)可能希望将消息放到Q2(运行在系统110中)以便由程序140的检索(GET)。在这种情况下,Q2对于程序的本地队列管理器160不是本地的。当它接收到要放到Q2的请求的时候,队列管理器160将查找远程队列的本地定义(即关于在哪里找到Q2的指针)。在已经找到本地定义的时候,该消息被放到TransmitQ 180以便经由信道190传送到由队列管理器170管理的Q2。一旦消息到达Q2,就可以由程序140进行检索。于是,对于每个远程队列,队列管理器保持本地定义是必要的。这当然强加了管理的负担。

    部分由于这个原因,发明了消息群集(clustering)。图3提供了按照现有技术的消息群集的整体视图。以一定方式关联的队列管理器可以一起编组到簇120中。例如,每个队列管理器210、220、230可以分别表示以纽约、伦敦和巴黎为基础的商店。纽约队列管理器210管理一个库存队列(InventQ)205,它被定义为在簇200内的簇队列。簇队列是对簇公开的队列。一个或多个、最好是两个队列管理器保留“全仓库”208,它包括关于在特定簇内的所有簇队列的信息。在这个示例中,纽约和伦敦队列管理器掌握全仓库。在该簇中的其他队列管理器掌握“部分仓库”(未示出)。因此,当客户端240连接到巴黎队列管理器230来请求将一个消息250放到InventQ 205的时候,巴黎QM首先查看它的部分仓库以看是否它知道InventQ 205的位置。部分仓库包括关于巴黎QM 230先前已经请求的队列的信息。如果从未请求巴黎向InventQ 205发送消息,则它与包含全仓库210、220的队列管理器之一联系。一般,每个部分仓库队列管理器选择一个这样的全仓库队列管理器,并且总是与那个队列管理器连接。在这个示例中,巴黎的所选择的队列管理器是伦敦QM 230。因此巴黎QM连接到伦敦以发现InventQ 205的位置,并且在已经发现这个信息的时候,巴黎能够向在纽约QM 210上的其目的地205发送消息250。

    于是,在本发明的一个优选实施例中,消息簇(cluster)提供一种有效的方式来将队列容纳在消息传送系统中,因为所有定义为簇队列的队列经由全仓库对相关的簇公开。其他部分仓库队列管理器可以通过从全仓库队列管理器请求位置信息来容纳这样的簇队列。

    关于有关消息群集的更多的信息,请参看可以从http://www-3.ibm.com/software/ts/mqseries/library/mqpdfs.html下载的、IBM的MQ系列队列管理器簇手册(SC34-5349-00)。

    因此,在本发明的一个优选实施例中--其中诸如WebSphere MQ的一个消息传送(messaging)系统被用做在分布对象/服务系统中的传送机构,用于容纳队列的基本结构(即消息群集)被应用来容纳在分布系统中的对象/服务。这有利地避免了保留一个独立目录结构来容纳对象/服务的位置的需要。

    图4图解了按照本发明的一个优选实施例的分布服务/对象系统的组成。对象服务器330和380被编组到簇300。每个对象服务器具有对象服务器(Object Server)定义的队列350、400。(注意当这个实施例描述在每个对象服务器330、380上的具有相同名称的队列350、400的时候,不必是这种情况)对于在一个对象服务器上实现的每类对象380、385、430、430,本地伪队列被定义为CLASS<classid〉(Class Insurance、Class Bank、Class Travel、Class HireCars)260、370、410、420。(注意classid可能是类名或类UUID(通用唯一标识符))每个本地伪队列地址转换为对象服务器队列。例如,Class Bank 370转换为(resolve to)对象服务器队列350。每个伪队列360、370、410、420被定义为簇队列,因此将其公开到在簇300中的队列管理器。换句话说,关于每个伪队列的位置的信息被存储在簇300内保留的任何全仓库中。(在这个情况下,信息被存储在全仓库308中)。对象客户端310向它的本地队列管理器320提交对簇队列的请求(方法),传入适当的参数(如Class Bank(信用(S Todd,100)))。本地队列管理器向其所选择的全仓库队列管理器(在这个示例中是对象服务器380)提交请求,并且包含在全仓库308中的信息将本地队列管理器320引导到对象服务器330,在对象服务器330上容纳了伪队列Class Bank。与来自对象客户端的每个请求有关的一个消息被建立,并且这被映射到适当的对象服务器队列350。每个对象服务器330、380实现一个代理程序340、380,从它的对象服务器队列读取消息并且处理它们。每个代理程序知道它的本地对象的位置(如代理程序340知道银行380和保险385的位置),因此可以执行客户端的请求(如对S Todd的帐户给£100的信用)。

    从上面内容,应当理解本发明的一个优选实施例中的消息群集的使用提供了有效的机构来用于容纳队列以及对象/服务。

    当图4指定在系统上的每个伪队列映射到单个主队列(object server)的时候,这仅仅是一个示例配置。也可能伪队列是真实的队列,并且代理程序(或其几个实例)340、390从每个真实队列读取消息。但是应当理解,更容易(并且更少地消耗资源)使得一个代理程序(或如果工作的级别要求的话是几个)实例从一个队列(即对象服务器队列)读取消息。

    应当理解,术语“服务”包括术语“对象”。

    应当注意,所述详细的说明主要涉及客户端在与对象服务器相同的簇的情况。这不是必须的。在客户端和对象服务器在不同的簇的时候,可以使用标准MQ簇结合技术。当客户端不是在一簇内的时候也是这样,可以使用用于将消息放到在簇内的队列的标准技术。

    总之,本发明的优选实施例提供了一个系统,其中可以利用相同的机构(消息传送)来容纳队列和对象/服务。消息传送系统提供的所有优点将因此也最好地应用到对象/服务的容纳。因此,例如,通过在消息群集情况中由一般利用至少两个全仓库而提供的信息的复制来提供对队列信息和对象/服务信息的备份。通过消息传送系统提供的安全性现在可以不仅应用到传送机构,而且可以应用到对象/服务容纳机构(因为它们现在是相同的)。

发送用于目标服务执行操作的请求的方法和系统.pdf_第1页
第1页 / 共12页
发送用于目标服务执行操作的请求的方法和系统.pdf_第2页
第2页 / 共12页
发送用于目标服务执行操作的请求的方法和系统.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《发送用于目标服务执行操作的请求的方法和系统.pdf》由会员分享,可在线阅读,更多相关《发送用于目标服务执行操作的请求的方法和系统.pdf(12页珍藏版)》请在专利查询网上搜索。

本发明提供了一种系统,其中在消息传送系统中的队列和对象/服务可以经由同一结构来容纳(消息群集)。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1