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

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

Info

Publication number
CN1508701A
CN1508701A CNA031436137A CN03143613A CN1508701A CN 1508701 A CN1508701 A CN 1508701A CN A031436137 A CNA031436137 A CN A031436137A CN 03143613 A CN03143613 A CN 03143613A CN 1508701 A CN1508701 A CN 1508701A
Authority
CN
China
Prior art keywords
formation
message
request
destination service
bunch
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
CNA031436137A
Other languages
English (en)
Other versions
CN1258151C (zh
Inventor
˹�ٷҡ�J���е�
斯蒂芬·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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1508701A publication Critical patent/CN1508701A/zh
Application granted granted Critical
Publication of CN1258151C publication Critical patent/CN1258151C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

发送用于目标服务执行操作的请求的方法和系统
技术领域
本发明涉及一种分布对象/服务系统,具体涉及在这样的系统中的对象/服务的位置(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簇结合技术。当客户端不是在一簇内的时候也是这样,可以使用用于将消息放到在簇内的队列的标准技术。
总之,本发明的优选实施例提供了一个系统,其中可以利用相同的机构(消息传送)来容纳队列和对象/服务。消息传送系统提供的所有优点将因此也最好地应用到对象/服务的容纳。因此,例如,通过在消息群集情况中由一般利用至少两个全仓库而提供的信息的复制来提供对队列信息和对象/服务信息的备份。通过消息传送系统提供的安全性现在可以不仅应用到传送机构,而且可以应用到对象/服务容纳机构(因为它们现在是相同的)。

Claims (9)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0229540.0A GB0229540D0 (en) 2002-12-18 2002-12-18 The location of object/services in a distributed objects/services system
GB0229540.0 2002-12-18

Publications (2)

Publication Number Publication Date
CN1508701A true CN1508701A (zh) 2004-06-30
CN1258151C CN1258151C (zh) 2006-05-31

Family

ID=9949947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03143613.7A Expired - Fee Related CN1258151C (zh) 2002-12-18 2003-07-25 发送用于目标服务执行操作的请求的方法和系统

Country Status (3)

Country Link
US (1) US7203705B2 (zh)
CN (1) CN1258151C (zh)
GB (1) GB0229540D0 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8349241B2 (en) 2002-10-04 2013-01-08 Molecular Imprints, Inc. Method to arrange features on a substrate to replicate features having minimal dimensional variability
US8898318B2 (en) * 2010-06-03 2014-11-25 Microsoft Corporation Distributed services authorization management
US9311214B2 (en) * 2012-11-29 2016-04-12 Dynatrace Llc System and methods for tracing individual transactions across a mainframe computing environment
US10114722B2 (en) * 2015-08-24 2018-10-30 International Business Machines Corporation Test of the execution of workloads in a computing system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742050B1 (en) * 1997-03-31 2004-05-25 Intel Corporation Inter-object messaging
US6944662B2 (en) * 2000-08-04 2005-09-13 Vinestone Corporation System and methods providing automatic distributed data retrieval, analysis and reporting services
US6718327B1 (en) * 2001-08-31 2004-04-06 Openwave Systems Inc. Fault-tolerant queue with autonomous client operation

Also Published As

Publication number Publication date
GB0229540D0 (en) 2003-01-22
US20040122862A1 (en) 2004-06-24
US7203705B2 (en) 2007-04-10
CN1258151C (zh) 2006-05-31

Similar Documents

Publication Publication Date Title
CN1221898C (zh) 刷新网络代理高速缓存服务器对象的系统和方法
US5894554A (en) System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests
EP1010310B1 (en) Universal adapter framework and providing a global user interface and global messaging bus
US6209029B1 (en) Method and apparatus for accessing data sources in a three tier environment
EP1620808B1 (en) Accessing data based on user identity
US5931900A (en) System and process for inter-domain interaction across an inter-domain connectivity plane
CN100418057C (zh) 用于应用程序分布式管理的启用网格的虚拟机的方法和系统
US6625604B2 (en) Namespace service in a distributed file system using a database management system
US6460071B1 (en) System and method for managing client application state in a stateless web browser environment
US7478122B2 (en) Web server system and method
CZ20011203A3 (cs) Systémy, způsoby a produkty počítačových programů pro přiřazování, sestavování a doručování obsahu intranetovým uživatelům
CN1447937A (zh) 从因特网访问传统应用程序
US8171497B2 (en) Method for efficient location of corba objects based on an unmarshaled object key in a request
EP1623558B1 (en) Accessing data in a computer network
US6601110B2 (en) System and method for translating file-level operations in a non-door-based operating system to door invocations on a door server
US20040054652A1 (en) Data filtering for adapting data delivery to diverse client devices
WO2004097669A2 (en) Accessing data stored in multiple locations
KR100538371B1 (ko) 분산데이터처리환경에 레거시 어플리케이션을 통합시키기위한 방법 및 시스템
WO2002048900A2 (en) Method and system for off-loading parts of a document to a document repository
GB2347244A (en) Processing class files
US20040163037A1 (en) System and method for invoking WebDAV methods via non-WebDAV protocols
EP0812090B1 (en) Method and apparatus for running a client computer without a server software
CN1258151C (zh) 发送用于目标服务执行操作的请求的方法和系统
CN1656450A (zh) 用于管理操作系统选项值的系统和方法
Kutvonen et al. Broadening the User Environment with Implicit Trading.

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: 20060531