CN1290362A - 用于客户/服务器计算的设备、方法和计算机程序产品 - Google Patents

用于客户/服务器计算的设备、方法和计算机程序产品 Download PDF

Info

Publication number
CN1290362A
CN1290362A CN98813919A CN98813919A CN1290362A CN 1290362 A CN1290362 A CN 1290362A CN 98813919 A CN98813919 A CN 98813919A CN 98813919 A CN98813919 A CN 98813919A CN 1290362 A CN1290362 A CN 1290362A
Authority
CN
China
Prior art keywords
affairs
transaction
client
server
particular value
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
CN98813919A
Other languages
English (en)
Other versions
CN100377090C (zh
Inventor
阿曼达·伊丽莎白·切塞尔
凯思琳·莎拉·沃尔
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 CN1290362A publication Critical patent/CN1290362A/zh
Application granted granted Critical
Publication of CN100377090C publication Critical patent/CN100377090C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/466Transaction 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

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 Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一种在客户/服务器计算系统中用于执行事务的客户处理设备,该设备具有:用于发出一条开始命令以便标志一个事务的开始的装置;用于发送一条命令至远程服务器中的一个对象的装置,该命令包括一个具有一个特定值的事务上下文,该特定值标示一个事务已经开始但尚未建立代表该事务的事务对象;及一旦所述远程服务器已经建立所述事务对象,即用于自所述远程服务器接收一个修改的事务上下文的装置。

Description

用于客户/服务器计算的 设备、方法和计算机程序产品
本发明涉及客户/服务器(也称为“分布式的”)计算领域,其中一个计算设备(“客户”)请求另一个计算设备(“服务器”)完成一部分客户工作。客户和服务器也能够都位于同一物理计算设备上。
过去几年来在信息技术领域内客户/服务器计算已经愈来愈重要。这类分布式计算允许一个机器分配它的某些工作给另一个例如可能更适合于完成该工作的机器。例如,服务器可以是一个高性能计算机,它所运行的数据库程序管理极大量数据的存储,而客户机只是一个简单的台式个人计算机(PC),它向数据库请求信息以便用于它的一个本地程序中。
由于采用众所周知的所谓面向对象编程(OOP)的计算机编程技术,从而加强了客户/服务器计算的优点,OOP允许客户机和服务器位于不同(多机种)“平台”上。一个平台是一个机器用以完成其工作的具体硬件/软件/操作系统/通信协议的组合。OOP允许客户应用程序和服务器应用程序各在它们自己平台上运行而不必操心如何发送客户应用程序的工作请求和服务器应用程序如何接收该请求。类似地,服务器应用程序不必操心OOP系统如何接收、翻译和发回服务器应用程序的处理结果至请求的客户应用程序。
在美国专利5,440,744和欧洲专利公开申请EP 0 677,943 A2中描述了OOP技术与多机种客户/服务器系统相结合的细节。这后面两项公布此处引为参考。然而,下面将给出一个基本体系结构的例子,以便在上下文环境中解释本发明。
如图1中所示,客户计算机10(它可能是例如一个具有在其上安装的IBM OS/2操作系统的个人计算机)具有一个在其操作系统上运行的应用程序40(“IBM”和“OS/2”是国际商业机器公司的商标)。应用程序40将周期地要求在服务器计算机20上完成工作和/或自服务器20送回数据以备应用程序40以后使用。服务器计算机20可以是例如一个运行IBM的MVS操作系统的高性能主机计算机(“MVS”也是IBM公司的商标)。对于本发明的实施而言,不论对于准备由服务器进行通信服务的请求是由用户与第一应用程序40的交互作用而发动的,还是由应用程序40独立于用户交互作用而进行操作并在程序运行期间自动地作出请求的,都不重要。
当客户计算机10希望请求服务器计算机20的服务时,第一应用程序40将所需服务通知第一逻辑装置50。例如可以通过一起发送一个远程过程名称及输入和输出参数列表给第一逻辑装置而做到此点。该第一逻辑装置50然后参照存于存储设备60中的可用通信服务的定义来完成建立与第二计算机20的必要通信。所有可能的服务都定义为对象类70的一个内聚框架,这些类自单个对象类派生而来。以此方式定义服务,在性能和可重用性方面具有大量优点。
为建立与服务器20的必要通信,第一逻辑装置50判断需要使用框架中哪个对象类,然后在该服务器处建立该对象的一个实例,发送一条消息至该对象以使该对象能调用其方法中的一个。由此,通过连接装置80建立与服务器计算机20的连接,并随后发送一个请求至第二逻辑装置90。
第二逻辑装置90然后将该请求传送至在服务器计算机20上运行的第二应用程序100(今后称为服务应用程序)以使服务应用程序能够完成由该请求所要求的具体任务,例如运行一个数据检索过程。一旦完成此任务,服务应用程序可能需要将结果送回至第一计算机10。在完成所请求的任务期间和当结果送回至第一计算机10时,服务器应用程序100与第二逻辑装置90交互作用。第二逻辑装置90建立对象实例,并在服务器应用程序100需要时调用这些对象中的合适方法,这些对象实例从存于存储设备110中的对象类的内聚框架中建立。
使用以上技术,客户应用程序40不暴露于通信结构。此外,服务应用程序100通过其环境的标准机理来调用;它并不知道它是远程地调用的。
对象管理组(OMG)是一个在具有如图1中所示分布式对象的多机种平台上从事不同方面的客户/服务器计算的各组织之间的国际性协议。OMG已经发布过标准,客户计算机(例如10)按照该标准与服务器计算机(例如20)通信(以OOP形式)。作为这些标准的一部分,定义了一个对象请求经纪人(称为CORBA-公共对象请求经纪人体系结构),它提供客户和服务器计算机之间的面向对象的桥梁。ORB将客户和服务器应用程序与面向对象的实施细节隔开,完成第一和第二逻辑装置50和90以及连接装置80的至少一部分工作。
作为CORBA软件结构的一部分,OMG提出了关于“事务”的标准及这些标准称为OTS或对象事务服务。见例如CORBA对象事务服务规范1.0,OMG文件94.8.4。计算机实施的事务处理系统用于不少工业中的重要商业任务中。一个事务定义一个或者必须全部完成或者必须全部清除而不采取动作的工作单元。例如,在一个顾客从其取钱的银行自动取款机的情况下,发钱、减去机器中当前结算和减去顾客帐户的银行结算的这些动作必须或者全部进行或者什么都不做。附属动作中一个的失败将导致记录和实际操作之间的不一致。
分布式事务处理涉及影响多个物理或逻辑位置处的资源的事务。在以上例子中,一个事务影响由本地自动取款机管理的资源,也影响由银行主计算机管理的银行结算。这些事务涉及一个通过一系列由服务器处理的客户请求与一个具体服务器计算机(例如20)通信的具体客户计算机(例如10)。OMG的OTS负责协调这些分布式事务。
通常,一个在客户过程上运行的应用程序开始一个事务,它可能涉及调用多个不同服务器,其中每个服务器启动一个服务器过程以便按照事务中包含的指令改变其本地数据库。该事务结束时或者执行该事务(由此所有服务器都最后完成对它们本地数据库的改变)或者使该事务流产(由此所有服务器都“滚动回”或忽略对它们的本地数据库的改变)。为在事务期间与服务器通信(例如指令它们或者执行或者流产事务中它们那部分),所涉及的过程中之一必须维持事务的状态数据。这通常涉及用于设置一系列事务对象的过程,它们中之一是一个协调对象,后者对于不同服务器协调事务。
图2中显示由国际商业机器公司所开发的并且包括于1997年5月发布的它的Component Broker Series(IBM公司的一个商标)中的OTS的常规实施。一个希望开始一个事务(例如从银行帐户中取钱)的客户过程21需要寻找一个能够建立和保持用于维持事务状态的事务对象的过程。由于当今趋势是建立“薄”客户(由此只具有最少功能),客户过程21通常不能在本地维持事务对象,因此必须为此目的寻找一个服务器过程。
根据现有技术方案,OTS(或另一个服务,例如CORBA生命周期服务)寻找一个服务器过程并且在找到的服务器过程上建立事务对象221(它包括协调、控制和终结对象)。始终根据此现有技术选择相同服务器过程(图2中的服务器A过程22)。在找到服务器A过程22后,客户过程21发送(带有圆圈号1的箭头)一条消息至服务器A过程22以便指令服务器A过程22建立事务对象221。服务器A过程22然后建立事务对象221并发送一个包含事务上下文的回答(带有圆圈号2的箭头)至客户21。客户21然后发送一个借方银行帐户命令(带有圆圈号3的箭头)至服务器B过程23(该过程包含客户过程21希望从其中取钱的银行帐户对象231)。这后一命令随身携带由服务器A过程22提供给客户21的事务上下文。以此方式,银行帐户对象231在过程23中能够将它自己(带有圆圈号4的箭头)向过程22中的事务对象221登记以便能够命令银行帐户对象231在事务结束时由事务对象221执行或滚动回(带有圆圈号5的箭头)。
此实施至少在两方面是低效的。首先,由于当一个客户寻找一个远程过程用于建立和维持事务对象时该相同服务器始终在使用,此服务器过程将要很快过载,因此无法有效地执行它自己的任务(例如更新本地资源的内容)。第二,在事务中涉及的不同过程之间存在着许多交叉过程流。即使在一个任意服务器上建立和维持一个事务对象,仍然存在着大量交叉过程调用的问题。
此外,此实施在涉及哪个服务器用于放置事务对象方面不给客户任何选择。客户可能尝试寻找一个服务器上的事务工厂(CosTransaction::TransactionFactory),客户可能愿意在该服务器上设置事务对象,调用一个工厂上的建立方法,以及最后调用CosTransaction::Current::resume()方法以使该事务成为“current”,但这涉及客户部分的许多处理步骤。如果客户能够使用简单得多的CosTransaction::Current接口,则将要容易得多,并且仍然能够选择在其上找到事务对象的服务器,但现有技术不允许如此做。
根据第一方面,本发明提供一个在客户/服务器计算系统中用于执行事务的客户处理设备,该设备具有:一个用于发出一条开始命令以标志事务开始的装置;一个用于发送一条命令至远程服务器中的对象的装置,该命令包括的事务上下文具有一个特定值,用于标示已经开始一个事务但尚未建立代表该事务的事务对象;以及一个当远程服务器一旦建立事务对象后用于立即接收修改的事务上下文的装置。
优选地,该特定值是一个NULL值。优选地,该客户处理设备还包括一个用于选择一个它判断为最适合于建立事务对象的远程服务器的装置,以及其中用于发送命令的装置将该命令指向由用于选择的装置所选择的远程服务器中的对象。优选地,用于选择的装置判断哪个远程服务器具有已在事务中更新过的资源以及将此远程服务器选为最适合于建立事务对象的服务器。
在本发明的一个实施例中,用于发送的装置发送一条命令至一个伪商业对象,而在另一个实施例中用于发送的装置发送一条对应于对象上一个伪方法的命令。
根据第二方面,本发明提供一个在客户/服务器计算系统中用于执行事务的客户处理设备,该设备具有:一个用于接收一条来自被指向位于所述服务器处理设备中的对象的客户的命令的装置,该命令包括的事务上下文具有一个特定值,用于标示已经开始一个事务但尚未建立代表该事务的事务对象;以及一个用于确认事务上下文中特定值和用于响应于该特定值而就地建立事务对象的装置。
根据第三方面,本发明提供一个用于执行以上在第一方面中描述的客户功能的方法。
根据第四方面,本发明提供一个用于执行以上在第二方面中描述的服务器功能的方法。
根据第五方面,本发明提供一个计算机程序产品,当它在计算机上运行时执行第一方面的功能。
根据第六方面,本发明提供一个计算机程序产品,当它在计算机上运行时执行第二方面的功能。
由于客户可以容易地选择在哪个服务器中建立事务对象,及这类对象可以例如被选择以建立于实际上参与执行事务的服务器过程(例如具有用于事务中的资源)中,因此可以很大地减去交叉过程流的数量。通过简单地比较图2(现有技术)和图3(本发明的优选实施例),即可清楚地看出此点。图2具有五个交叉过程调用而图3只有两个。
参照下面附图阅读以下本发明优选实施例的描述,将能更好地理解本发明。
图1是众所周知的使用对象技术的多机种客户/服务器体系结构的框图,本发明的优选实施例可以应用于其上下文中;
图2是用于显示一个常规OTS实施的框图;
图3是用于显示一个根据本发明优选实施例的OTS实施的框图;
图4用于显示当客户发出一条根据图3的OTS实施的开始命令时所执行步骤的流程图;
图5是用于显示一个根据本发明优选实施例的OTS实施的框图;及
图6是用于显示一个根据本发明优选实施例的服务器过程的框图。
公共对象请求经纪人(CORBA)对象事务服务(OTS)提供一个称为“Current”的接口对象,它具有一个“begin”方法,供客户应用程序(源代码)用于向基础软件层发信号标示事务的开始。根据本发明的优选实施例,当客户应用程序正在一个具体客户体系结构中建立或运行以及包含“begin”方法时,基础软件将进而恰当地在一个实际上参与事务中的服务器(例如具有用于事务中的服务器资源的服务器)中设置事务状态对象而建立事务。
在本发明的优选实施例中,一个在客户过程31(见图3)中运行的应用程序按照通常那样调用一个“Current”接口对象上的“begin”方法而开始一个事务。该客户过程然后通过例如就地建立一个最小对象集而记录它已发出此命令的事实。以上操作阐述于图4的流程图中步骤41处。在此阐述性例子中,假定正在执行的事务是从一个银行帐户中取钱,这是一个世界范围内普通的日常执行的事务操作,这里使用自动取款机(ATM)作为客户。
应该注意到,在现有技术中,在此阶段找到一个远程过程22并且在该远程过程22中建立事务对象(图2中的221)。本发明将这些事务对象的建立推后一段时间,这将在下面解释。
然后在客户过程31中运行的应用程序发出一个借方命令至服务器B过程33中的银行帐户对象331,作为取钱事务的第一个实质部分。在此例中,借方命令是客户过程在发出“begin”命令之后在事务中所作第一个远程流。在制成此命令时,客户过程必须在命令中包括某些事务上下文,以使银行帐户对象331知道该命令是事务的一部分及识别该特定事务。
在现有技术中(见图2),该客户过程21自远程过程22中设置的事务对象221中接收事务上下文。然而在本发明的优选实施例中,尚未建立事务对象,因此无法提供带有事务上下文的客户过程。因此,在优选实施例中,当客户过程31发送借方命令至远程过程33中的银行帐户对象331时,在命令中包括了一个特定事务上下文(例如一个NULL事务上下文)(图3中带有圆圈号1的箭头)。一个NULL事务上下文意味着事务上下文的所有域都设置为零。此特定事务上下文标志一个事务已经开始但尚未建立事务对象。这后一操作阐述于图4流程图中步骤42处。
当服务器B过程33确认此具体事务上下文(例如NULL事务上下文)时,它得到通知,即事务已经开始但尚未建立事务对象。服务器B过程33然后就地建立事务对象332(步骤43)。既然已经建立了事务对象332,现在事务具有一个有效事务上下文,这一有效事务上下文即赋予该事务。服务器B过程33然后发送一个回答(带有圆圈号2的箭头)至客户过程31以便通知客户过程31存在着有效事务上下文(图4中步骤44)。现在客户过程已经完全了解所建立的事务。
在此阶段,银行帐户对象331以通常方式与事务对象332通信(步骤45),所不同之处在于所有这些通信都是在同一过程内进行的,因此这些通信不需要任何交叉过程流。在此例子中,进行的通信涉及向事务对象332登记的银行帐户对象331,以及当事务结束时,事务对象332发送回一个执行或滚动回命令至银行帐户对象331。
客户可能调用其他服务器来参加事务,这些服务器应该向在服务器B过程中建立的事务对象登记,其结果是在服务器之间存在交叉过程流。然而,客户使用本发明可以使交叉过程流的总数量最少,因为至少在服务器B过程中的本地资源与事务对象之间的交互不会产生任何交叉过程流。还有,对于只涉及一个服务器过程的事务而言,唯一交叉过程流存在于客户过程与此单个服务器过程之间。
在一个选代实施例中,服务器B过程33将在稍后时间建立事务对象,例如在资源登记期间而不是与NULL事务上下文进入服务器B过程33的同时。
虽然NULL事务上下文(其所有域都设置为零)已经用于阐述性实施例中,但也可使用事务上下文的其他特定值。例如,事务上下文的私有数据域可以设置为具体值。
以上描述了一个IBM对其阐述于图2中的初始ComponentBroker Series产品的改进,该改进的结果是智能地放置在事务中调用的第一服务器过程上的事务对象。已在于1998年1月16日提交的IBM的共同未决UK专利申请9800830.3中描述了此改进。然而,其中调用第一服务器过程的事务中有许多事务对于建立事务对象不是最有用。
例如,假定事务中的第一调用是一个为了证实客户而对证实商业对象的证实调用(例如为证实该客户已授权能执行此类事务)。在包含此商业对象的服务器过程中设置事务对象并不能减去交叉过程流的数量,因为此服务器过程不具有一个代表正在事务中更新的资源的商业对象。也即,如果该事务对象是在此具有证实商业对象的服务器过程中建立的,则在事务结束时将会需要许多交叉过程流,因为所有代表在事务期间更新的资源的商业对象都驻留在其他服务器过程中。
另一个例子是对事务中的商业对象的第一调用是对代表一个资源的商业对象的只读调用。例如,事务中的第一调用只请求读取银行帐户结余值而不请求更新代表银行帐户资源的商业对象中的任何值。再次,在此情况下,在包含此商业对象的服务器过程中建立事务对象并不有利。
为使客户能对选择服务器过程来建立事务对象之事具有更多控制,已经开发了本发明,并将继续描述优选实施例从而解释此附加功能。
在图5中,客户过程51指令处理事务。对事务中的远程服务器过程的第一调用是对服务器B过程53中一个证实商业对象531的调用,用于证实客户51的目的。对事务中的一个远程过程的第二调用是一个对服务器A过程52中银行帐户对象521的调用,用于简单地读取银行帐户的结余值。对事务中的远程过程的第三调用是对服务器C过程54中银行帐户对象541的调用,用于减去此银行帐户的结余值以便实现取钱。
在以上描述的事务中,在服务器A过程52中或在服务器B过程53中建立事务对象并不有利,因为并无商业对象位于这些代表一个在事务中更新的资源的过程中。相反,在服务器C过程54中建立事务对象非常有利,因为这个过程具有正在事务中更新的银行帐户对象541。
本发明的优选实施例分别将伪商业对象522、532和542置于服务器过程52、53和54中。这些伪商业对象中的每一个被赋予一个众所周知的密钥(例如,由服务器名称所生成的)以使客户51能够容易地寻找任何一个伪商业对象。这些伪商业对象可以被赋予任何类型的功能,只要它们是从CosTransaction::Transactional对象中继承的。它们的用途是提供一个位于多个服务器中的每一个之上的可容易地访问的对象以使客户可以选择多个服务器中的任何一个用作放置事务对象的场所。客户51保证对事务中远程过程的第一调用是一个对服务器过程中伪商业对象的调用,客户希望在该服务器过程中建立事务对象。如果一个伪商业对象置于服务器中,则该服务器是一个供客户选择以便设置事务对象的候选人。
例如,在图5中使用以上所给例子,客户事务的前两个调用是对过程53中证实商业对象531和过程52中银行帐户对象521的调用。然而,客户过程51修改该事务以使真正第一个远程调用(它被置于这两个调用之前进行)是对服务器C过程54中伪商业对象542的调用,因为这是将在事务中更新的银行帐户对象541所在之处,因此是在其中放置事务对象的最佳过程。
因此,如图5中所示,客户过程51对服务器C过程54中的伪商业对象542发出第一调用(带有圆圈号1的箭头)。这对应于图4的步骤42,但客户发出带有NULL事务上下文的调用至伪商业对象542而不是发至银行帐户对象。此调用的唯一目的是在服务器C过程54中设置事务对象543(见图6)。该伪商业对象确认来自客户的此第一调用中的NULL事务上下文,并且响应于此确认而进而建立事务对象(这对应于步骤43)。第二,客户过程发出第二调用(带有圆圈号2的箭头)至服务器B过程53中的证实商业对象531以供证实客户之用。第三,客户过程发出第三调用(带有圆圈号3的箭头)至服务器A过程52中的银行帐户对象521以便读取此银行帐户的结余。第四,客户过程发出第四调用(带有圆圈号4的箭头)至服务器C的过程中的银行帐户对象541以便减去此帐户的结余(因为是从它取钱的)。
一旦服务器B过程53就地建立了事务对象,过程53用有效事务上下文对客户作出响应(这对应于步骤44)。
因此,本发明的优选实施例涉及一个客户,该客户注视它将要执行的事务,确定哪个服务器过程最适合于在其上设置事务对象,以及在事务之初附加一个对位于确定的服务器过程中的伪商业对象的调用。其结果是在此所确定的服务器过程中建立事务对象。
在第二实施例中不使用伪商业对象。相反,在现有对象(例如银行帐户对象541)上调用伪方法。因此,在此实施例中,以上图5例子中真正第一个调用将是从客户过程51对银行帐户对象541的调用,用于调用对象541的伪方法,例如bankacount.hello(),其结果是在银行帐户对象541所在的服务器过程中建立事务对象。

Claims (15)

1.一种在执行事务的客户/服务器计算系统中所用的客户处理设备,所述设备包括:
用于发出一条开始命令以便标志一个事务的开始的装置;
用于发送一条命令至远程服务器中的一个对象的装置,所述命令包括一个具有一个特定值的事务上下文,所述特定值标示一个事务已经开始但尚未建立代表该事务的事务对象;及
一旦所述远程服务器已经建立所述事务对象,即用于自所述远程服务器接收一个修改的事务上下文的装置。
2.权利要求1的设备,其中所述特定值是一个NULL值。
3.权利要求1的设备,其中所述客户处理设备还包括用于选择一个它确定为最适合于建立事务对象的远程服务器的装置,及其中所述用于发送命令的装置将所述命令指向由所述用于选择的装置所选择的远程服务器中的一个对象。
4.权利要求3的设备,其中所述用于选择的装置确定哪个远程服务器具有在事务中更新的资源及选择此远程服务器作为最适合于建立该事务对象的服务器。
5.权利要求1的设备,其中所述用于发送的装置发送一条命令至一个伪商业对象。
6.权利要求1的设备,其中所述用于发送的装置发送一条对应于对象上的一个伪方法的命令。
7.一种在执行事务的客户/服务器计算系统中所用的服务器处理设备,所述设备包括:
用于接收一条来自客户的指向位于所述服务器处理设备中的对象的命令的装置,所述命令包括一个具有一个特定值的事务上下文,所述特定值标示已经由客户开始一个事务但尚未建立代表该事务的事务对象;及
用于确认事务上下文中的特定值和用于响应于所述特定值而就地建立所述事务对象的装置。
8.权利要求7的设备,其中所述特定值是一个NULL值。
9.权利要求7的设备,其中所述设备还包括用于将一个本地的涉及事务的资源向就地建立的事务对象登记的装置。
10.权利要求7的设备,其中所述用于接收的装置接收一条位于所述服务器处理设备中的伪商业对象上的命令。
11.权利要求7的设备,其中所述用于接收的装置接收一条对应于位于所述服务器处理设备中的一个对象上的伪方法的命令。
12.一种在执行事务的客户/服务器计算系统中所用的客户处理方法,所述方法包括以下步骤:
发出一条开始命令以便标志一个事务的开始;
发送一条命令至远程服务器中的一个对象,所述命令包括一个具有一个特定值的事务上下文,所述特定值标示一个事务已经开始但尚未建立代表该事务的事务对象;及
一旦所述远程服务器已经建立所述事务对象,即自所述远程服务器接收一个修改的事务上下文。
13.一种在执行事务的客户/服务器计算系统中所用的服务器处理方法,所述方法包括以下步骤:
接收一条来自客户的指向位于所述服务器处理设备中的对象的命令,所述命令包括一个具有一个特定值的事务上下文,所述特定值标示已经由客户开始一个事务但尚未建立代表该事务的事务对象;及
确认事务上下文中的特定值和响应于所述特定值而就地建立所述事务对象。
14.一种存于一个计算机可读存储媒体上的计算机程序产品,当所述程序在计算机上运行时,执行一个在执行事务的客户/服务器计算系统中所用的客户处理方法,所述方法包括以下步骤:
发出一条开始命令以便标志一个事务的开始;
发送一条命令至远程服务器中的一个对象,所述命令包括一个具有一个特定值的事务上下文,所述特定值标示一个事务已经开始但尚未建立代表该事务的事务对象;及
一旦所述远程服务器已经建立所述事务对象,即自所述远程服务器接收一个修改的事务上下文。
15.一种存于一个计算机可读存储媒体上的计算机程序产品,当所述程序在计算机上运行时,执行一个在执行事务的客户/服务器计算系统中所用的服务器处理方法,所述方法包括以下步骤:
接收一条来自客户的指向位于所述服务器处理设备中的对象的命令,所述命令包括一个具有一个特定值的事务上下文,所述特定值标示已经由客户开始一个事务但尚未建立代表该事务的事务对象;及
确认事务上下文中的特定值和响应于所述特定值而就地建立所述事务对象。
CNB988139197A 1998-03-31 1998-12-18 用于客户/服务器计算的方法 Expired - Lifetime CN100377090C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9806779A GB2336006A (en) 1998-03-31 1998-03-31 Client/server computing with client selectable location of transaction objects
GB9806779.6 1998-03-31

Publications (2)

Publication Number Publication Date
CN1290362A true CN1290362A (zh) 2001-04-04
CN100377090C CN100377090C (zh) 2008-03-26

Family

ID=10829527

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB988139197A Expired - Lifetime CN100377090C (zh) 1998-03-31 1998-12-18 用于客户/服务器计算的方法

Country Status (10)

Country Link
US (1) US6374283B1 (zh)
EP (1) EP1068571B1 (zh)
JP (1) JP3579353B2 (zh)
KR (1) KR100404786B1 (zh)
CN (1) CN100377090C (zh)
DE (1) DE69814697T2 (zh)
GB (1) GB2336006A (zh)
IL (1) IL135479A (zh)
PL (1) PL193051B1 (zh)
WO (1) WO1999050745A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382021C (zh) * 2004-07-26 2008-04-16 三星电子株式会社 用于提供上下文感知服务的设备和方法
CN101295269B (zh) * 2008-05-26 2010-06-09 浙江大学 一种基于事务的构件交互同步的方法
CN101556720B (zh) * 2009-05-21 2011-11-30 中国建设银行股份有限公司 一种零售网点销售方法及系统

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643670B2 (en) * 2001-02-27 2003-11-04 Microsoft Corporation Efficient replication of an expanded partial database
US20020152145A1 (en) * 2001-04-13 2002-10-17 Rebecca Wanta Apparatus and method for standardized banking data system interfaces
US20050261914A1 (en) * 2002-07-19 2005-11-24 Microsoft Corporation Method and system for managing long running transactions
US8108920B2 (en) * 2003-05-12 2012-01-31 Microsoft Corporation Passive client single sign-on for web applications
US7607008B2 (en) * 2004-04-01 2009-10-20 Microsoft Corporation Authentication broker service
US7702917B2 (en) 2004-11-19 2010-04-20 Microsoft Corporation Data transfer using hyper-text transfer protocol (HTTP) query strings
US7603555B2 (en) * 2004-12-07 2009-10-13 Microsoft Corporation Providing tokens to access extranet resources
US20060123472A1 (en) * 2004-12-07 2006-06-08 Microsoft Corporation Providing tokens to access federated resources
US9485322B2 (en) 2007-07-07 2016-11-01 Qualcomm Incorporated Method and system for providing targeted information using profile attributes with variable confidence levels in a mobile environment
US9392074B2 (en) 2007-07-07 2016-07-12 Qualcomm Incorporated User profile generation architecture for mobile content-message targeting
US20090124241A1 (en) 2007-11-14 2009-05-14 Qualcomm Incorporated Method and system for user profile match indication in a mobile environment
US20090157512A1 (en) 2007-12-14 2009-06-18 Qualcomm Incorporated Near field communication transactions with user profile updates in a mobile environment
US8949596B2 (en) * 2012-07-10 2015-02-03 Verizon Patent And Licensing Inc. Encryption-based session establishment
US11266868B2 (en) 2018-09-04 2022-03-08 John Ronan Muscle stimulation device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2333379A (en) * 1941-04-26 1943-11-02 Melvin M Johnson Bayonet
US5089954A (en) * 1988-08-08 1992-02-18 Bell Communications Research, Inc. Method for handling conversational transactions in a distributed processing environment
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
US5424938A (en) * 1992-10-13 1995-06-13 First Chicago Corporation Method and apparatus for providing access to a plurality of payment networks
KR950012212A (ko) * 1993-10-19 1995-05-16 이헌조 클라이언트 및 서버 프로세스의 트랜잭션 동기 처리방법
US5404523A (en) * 1993-11-10 1995-04-04 Digital Equipment Corporation Method of managing requests in a transaction processing system
GB2288477A (en) * 1994-04-05 1995-10-18 Ibm Communications system for exchanging data between computers in a network.
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
WO1997040457A2 (en) * 1996-04-19 1997-10-30 Intergraph Corporation System and method for data access
KR970078205A (ko) * 1996-05-02 1997-12-12 양승택 클라이언트-서버 분산 트랜잭션 통신 제어방식
US6012059A (en) * 1997-08-21 2000-01-04 Dataxel Corporation Method and apparatus for replicated transaction consistency

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382021C (zh) * 2004-07-26 2008-04-16 三星电子株式会社 用于提供上下文感知服务的设备和方法
CN101295269B (zh) * 2008-05-26 2010-06-09 浙江大学 一种基于事务的构件交互同步的方法
CN101556720B (zh) * 2009-05-21 2011-11-30 中国建设银行股份有限公司 一种零售网点销售方法及系统

Also Published As

Publication number Publication date
GB9806779D0 (en) 1998-05-27
KR100404786B1 (ko) 2003-11-07
DE69814697D1 (de) 2003-06-18
EP1068571A1 (en) 2001-01-17
US6374283B1 (en) 2002-04-16
JP3579353B2 (ja) 2004-10-20
DE69814697T2 (de) 2004-04-08
EP1068571B1 (en) 2003-05-14
WO1999050745A1 (en) 1999-10-07
IL135479A (en) 2003-11-23
JP2002510084A (ja) 2002-04-02
IL135479A0 (en) 2001-05-20
PL343101A1 (en) 2001-07-30
KR20010042008A (ko) 2001-05-25
PL193051B1 (pl) 2007-01-31
CN100377090C (zh) 2008-03-26
GB2336006A (en) 1999-10-06

Similar Documents

Publication Publication Date Title
CN100377090C (zh) 用于客户/服务器计算的方法
CN1291315C (zh) 有状态程序实体的数据处理方法和系统
US6466965B1 (en) Centralized affinity maintenance in a workload managed client/server data processing system
US7127437B2 (en) Method and apparatus for receiving a reward for the use of a processor in a parallel processing environment
CN1225472A (zh) 服务器内调度和分派排队客户请求的装置和方法
US7305678B2 (en) Method and system for reducing synchronization waits when allocating sequenced identifiers in a multi-threaded server
CN1207669C (zh) 将应用程序数据分配至不相似格式分布式数据库的方法
US20060218061A1 (en) Integrated financial services platform
CN1096638C (zh) 用于客户/服务器计算的方法
CN1819576A (zh) 在客户机和服务器之间分配应用任务的方法以及应用服务系统
WO1999009475A1 (en) Method and apparatus for concurrent data processing
CN1325515A (zh) 用于更新网络中远程数据库的系统和方法
CN1201245C (zh) 用于基于法定个数的操作的不严格法定个数的判定的方法和系统
CN1160619C (zh) 用于客户机/服务器计算的装置和方法
CN1714341A (zh) 在n层交易中的同步方法
CN1225473A (zh) 服务器内分派客户请求时执行语义并发控制的装置和方法
CN1143207C (zh) 执行事务处理的客户机/服务器处理装置和方法
US7284018B1 (en) Logless transaction coordination
US20060026379A1 (en) Effective memory management method and device in object-oriented application
US6542922B1 (en) Client/server transaction data processing system with automatic distributed coordinator set up into a linear chain for use of linear commit optimization
AU5680894A (en) Interception system and method including user interface
CN1804795A (zh) 用于自主探查器启用的方法和系统
Ardagna et al. A cost-oriented methodology for the design of web based IT architectures
CN1042979C (zh) 执行具有多个可调用过程的单线程计算机程序的方法
CN1236918A (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
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080326