CN1508701A - 发送用于目标服务执行操作的请求的方法和系统 - Google Patents
发送用于目标服务执行操作的请求的方法和系统 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 11
- 238000005755 formation reaction Methods 0.000 claims description 87
- 230000015572 biosynthetic process Effects 0.000 claims description 70
- 238000003491 array Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 abstract description 8
- 238000012546 transfer Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application 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的装置,其中所述队列是伪队列,所述伪队列映射到实际队列。
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)
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)
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 |
-
2002
- 2002-12-18 GB GBGB0229540.0A patent/GB0229540D0/en not_active Ceased
-
2003
- 2003-03-20 US US10/394,324 patent/US7203705B2/en not_active Expired - Fee Related
- 2003-07-25 CN CN03143613.7A patent/CN1258151C/zh not_active Expired - Fee Related
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 |