CN1464401A - 使用影子对象进行核准控制的面向对象系统和方法 - Google Patents

使用影子对象进行核准控制的面向对象系统和方法 Download PDF

Info

Publication number
CN1464401A
CN1464401A CN02125131A CN02125131A CN1464401A CN 1464401 A CN1464401 A CN 1464401A CN 02125131 A CN02125131 A CN 02125131A CN 02125131 A CN02125131 A CN 02125131A CN 1464401 A CN1464401 A CN 1464401A
Authority
CN
China
Prior art keywords
business
business object
shadow
connector
management devices
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
CN02125131A
Other languages
English (en)
Other versions
CN1464401B (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
Priority to CN02125131A priority Critical patent/CN1464401B/zh
Priority to US10/457,170 priority patent/US7899787B2/en
Publication of CN1464401A publication Critical patent/CN1464401A/zh
Application granted granted Critical
Publication of CN1464401B publication Critical patent/CN1464401B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Technology Law (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种使用影子对象进行核准控制的面向对象方法,包括下列步骤:(1)调用一业务操作;(2)判断所述业务操作是否需要得到核准;(3)如果需要核准,则建立与原业务对象和连接器对应的影子业务对象和连接器,在所述影子业务对象和连接器上执行所述业务操作,并将所有的操作结果保存在所述影子业务对象中,将所有待发送的消息缓存在所述连接器中;(4)如果所述业务操作得到核准,则用影子业务对象替换所述原业务对象。该系统和对象灵活、高效、易于修改和补充。

Description

使用影子对象进行核准控制的面向对象 系统和方法
                      技术领域
本发明涉及电子商务应用中的信息系统,具体涉及用影子方式(shadowing)进行核准控制的面向对象的系统和方法。
                      背景技术
信息系统正在成为我们日常生活中的重要组成部分,利用信息系统控制谁在什么时间对什么信息执行什么样的操作是非常重要的。B2B的交易常常涉及大量的货物和资金的转移,而对这些交易的核准(approval)却通常都是由手工进行的,因此,有必要利用电子商务的信息系统使这些交易(如下订单、订合同、创建RFQ、选择中标者、银行的金融交易等)根据某些预定的规则得到指定核准人员的核准。
在访问控制方面,已经有了很多的专利,如US5911143、US6085191等,并且每个系统都具有一定的访问控制机制,但是所有这些都是在允许用户进行操作之前的控制。这些控制是基于用户的角色和操作的名称的,当得到允许后,该用户才可以自由地进行这些操作。
控制的另一方面则基于操作的结果,即根据操作的结果内容决定是否应该核准或被拒绝,这就是通常所称的核准控制。因为判断所得结果的标准的复杂性和多样性,大多数的信息系统都是给业务操作代码增加了特殊的核准代码,用来进行核准控制。在如何检查和核准结果的方面也有很多专利,如US5963641、US6269344B1等,在这些情况中,实际对信息进行业务操作的代码和对操作结果进行显示、分析和核准的代码是混杂在一起的。
在当今快速变化的业务环境中,核准及其标准是经常变化的。例如,根据不同的资金情况,一个组织内可能有不同的规则来决定哪种采购定单需要得到核准。还例如,学生报名上某一门课程通常是由某一系统基于教室的容量来控制的,但是,负责上课的教授也可以决定批准或拒绝某一个学生的报名请求。
这样,在业务操作代码和核准代码混杂的现有技术中,要在不影响业务逻辑的情况下改变核准的标准和过程是很困难的,反之也是如此。即要使那些没有被设计的业务操作能够变成为可以进行核准的业务操作是不可能的,而使所有的业务操作都可以进行核准的费用很高,并且不实用。
在各种业务系统中,存在对核准的多种多样的需要。迄今为止,大多数的电子商务系统使用硬代码来实现核准控制。由于一个企业内核准请求经常随着时间和环境的变化而变化,所以要实现一个灵活的系统来满足所有的核准请求是很困难的。在现有的系统中,常常需要进行一些脱机的手工核准处理,这就造成了对客户响应缓慢和系统中信息不完整的问题。
WCS(IBM公司的一种产品)是一个用来构建电子商务应用程序的工具。
WCS Mpe 4.x为WCS4.1编程模型实现了一个简单的核准模型。但命令开发商必须将执行逻辑的代码分成6个方法,即核准前、核准后、拒绝前、拒绝后、取消前、取消后。如果一个操作需要核准,则系统将调用核准前的方法进行准备,然后核准人员可以查看中间结果。如果核准人员决定予以核准,则系统将执行核准后方法,以将数据最终决定下来。
尽管上述方法具有允许开发商构建可进行核准命令的某些能力,但由于这种方法将一个业务操作分为几个方法的调用,因此也具有很多的缺点。最明显的缺点有两个:第一,不适当的方法划分引起了系统的缺陷,其中很多缺陷必须在全部的功能和性能测试以后,或对系统进行修改后才能被发现,但是对于新命令较少的系统,这是不太可能发生的,即这些缺陷是不太容易得到更正的;第二,不能够将核准逻辑从业务逻辑中分离出来。不能将它们分开,也就不能进行灵活地开发等工作,系统的性能就很难得到提高。当然还有其它一些缺点,如复杂的访问控制、引起死锁、很难实现变化(如多层级、代理、批处理)等。
使用WCS的命令开发商在决定分别把什么情况放入每一种方法时,需要特别小心。WCS中的命令可由现场的开发商为具体的业务需要而进行扩展,但是对核准进行命令划分使这种扩展非常困难并且容易出错。
                        发明内容
针对上述现有技术中的缺点,本发明的目的是提供一种以面向对象的影子方式实现的灵活、高效、易于修改和补充的核准控制系统和方法,其中将业务逻辑实现为代码片段(命令)、业务对象和原连接器等,其中记载与业务逻辑相关的原始真实数据,和在核准过程中经用户创建、更新、修改和删除的一切变化了的数据;而对于核准逻辑进行独立地实现,使其与业务逻辑分离。
为了达到上述目的,本发明提供了一种使用影子对象进行核准控制的面向对象方法:包括下列步骤:
(1)调用一业务操作;
(2)判断所述业务操作是否需要得到核准;
(3)如果需要核准,则建立与原业务对象和连接器对应的影子业务对象和连接器,在所述影子业务对象和连接器上执行所述业务操作,并将所有的操作结果保存在所述影子业务对象中,将所有待发送的消息缓存在所述连接器中;
(4)如果所述业务操作得到核准,则用影子业务对象替换所述原业务对象。
本发明还提供了一种使用影子对象进行核准控制的面向对象系统,包括:
业务操作装置,用于执行业务操作;
执行管理装置,用于对所述业务操作装置的操作进行管理;
判断单元,与执行管理装置相连,用于判断业务操作是否需要核准;
核准管理装置,用于进行核准管理,如果业务操作需要核准,则为该业务操作产生与一原业务对象和连接器相应的影子业务对象和连接器,用于保存该业务操作后的结果,并在得到核准后用所述影子业务对象替换所述相应的原业务对象,以产生核准后的处理结果。
通过使用本发明,系统中的任何业务操作都可以高效地得到分析该操作结果的指定核准人员或核准代码的核准或拒绝。实现业务操作的系统开发商只需要关注业务逻辑的实现,不用考虑核准逻辑,而核准逻辑可以由另一组开发商独立地处理,或如果使用该结构的默认核准工具,根本就不需要对其进行处理;业务逻辑的代码和核准逻辑代码可以独立地进行改变,因此可以更容易地将业务操作定制为代码片段、业务对象和连接器等,并构建更复杂的核准逻辑(如核准代理(delegation)、批处理、多层级核准);通过保持原业务对象和经修改的对象(影子),可以向核准人员(或核准代码)提供更丰富的信息,使其可以检查业务操作之前的原始内容,也可以检查业务操作之中或之后的内容,而在传统的方法中,业务逻辑常常修改原始对象中的信息并将其标记为“等待核准”,这样,核准人员只能看到修改后的信息或将原始数据备份的特殊代码。因此,从应用开发和修改的观点来看,本发明比前述的现有技术具有更大的能力和灵活性。
                        附图说明
通过下面参照附图对具体实施例的详细说明,本发明的上述以及其它目的、特点和优点将变得更加清楚,其中:
图1是本发明使用影子进行核准控制的面向对象系统的一个实施例的方框图;
图2是本发明图1的系统的实施例产生影子对象和连接器的一个实例的示意图;
图3是本发明图1的系统中的操作过程的流程图。
                       具体实施方式
在构建信息系统中,面向对象的设计和开发是当前的主流方法。广泛使用的系统结构的面向对象模型是MVC(Model-模型、View-查看、Control-控制)和命令,并适合于诸如J2EE和San Fransisco等的流行的编程模型。
在这些结构中,应用程序代码被分为两个装置,即执行瞬态逻辑操作的代码(称为代码片段(snippet))和实现持久信息存储的代码(称为业务对象和连接器)。本发明系统的核准结构适合于这种面向对象系统,它将遵从如下的情况:业务逻辑以瞬态代码(如servlet和session bean(会话豆))和导致状态变化的持久代码(如entity bean(实体豆)和数据记录)来实现。
系统开发商为指定的业务任务建立对业务对象和连接器进行操作的各个代码片段(如命令、控制器类)。这些代码片段和业务对象(以及连接器)需要遵从编程指南并实现一定的接口,或从各种生成单元(基类(baseclass))中导出。这些代码片段和业务对象分别由执行管理装置和核准管理装置进行管理,核准管理装置还管理连接器以与其它系统进行通信。
下面结合图1对本发明的使用影子进行核准控制的面向对象系统进行详细的说明。
如图1所示,使用影子进行核准控制的面向对象系统(以下简称为“系统”)100包括:执行管理装置101、业务操作装置102、核准管理装置103、核准装置104、以及连接执行管理装置101与业务操作装置102的接口105和连接执行管理装置101与核准管理装置103的接口106,接口105和106例如可以是应用程序编程接口(API)。另外,执行管理装置101连接于判断单元210;核准管理装置103连接于冲突检测单元212;业务操作装置102连接于代码片段214;以及连接上述各部件并使其相互作用的API(未示出),用于实现本系统100中各单元之间的允许的通信和调用。
上述系统可以实现为一个台式机(如工作站、个人计算机等),也可以实现为通过局域网、企业内部网、或广域网(如因特网)相连接的用户端和核准端。
执行管理装置101是一个控制点,它将所有的业务操作都映射为具体的代码片段(命令)214的实例(instance),给所述代码片段实例设置执行上下文,并调用所述代码片段的适当功能和对所有代码片段进行管理。一个业务操作可以映射为一个或几个代码片段实例。每个代码片段实例在被用户或客户应用程序调用前都需要在执行管理装置101中进行注册和有效性检查。执行管理装置101还负责向用户显示可用的代码片段(命令)实例,供用户进行选择和调用。
业务操作装置102是用户用来请求执行某一业务操作(即执行某一代码片段实例)的装置。
代码片段214可以通过一代码片段生成单元(未示出)按照执行管理装置101的要求生成代码片段的实例,该代码片段生成单元提供了简化编码的功能,同时提供与执行环境交互操作和处理这种结构中的事件和异常情况的缺省机制。
执行管理装置101接收用户对执行一个业务操作(执行代码片段实例)的请求,经由接口105通过业务操作装置102调用代码片段214中的实例,使其在执行管理装置101中执行,并通过判断单元210来判断这个业务操作是否需要得到核准;执行管理装置101还通过接口106与核准管理装置103连接,进行命令和数据的交换。
核准管理装置103管理所有的业务对象和连接器,并且所有的业务对象和连接器在被代码片段实例使用前也都需要进行注册和有效性检查。
开发商可以用执行管理装置101从配置文件中创建核准管理装置103。在核准端,可以只有一个核准管理装置103的实例,来对所有的资源进行协调管理,也可以有多个核准管理装置103的实例,但这时对并发的资源访问需要进行特殊的关注,其功能由核准管理装置103中包含的冲突检测单元来完成(后面将描述这种多个会话同时访问一个对象的情况)。所有的用户请求都通过请求执行管理装置101调用指定的代码片段实例(命令)在永久对象(业务对象和连接器)上进行操作来实现,操作的结果是业务数据的变化(存储为影子业务对象)和信息的发送(经由连接器实现)。
核准管理装置103通过接口106与执行管理装置101连接,并接收来自执行管理装置101的指令,如果所述指令表示用户的业务操作是创建一新业务对象,则利用一对象和连接器生成单元(未示出)创建一相应的业务对象和连接器,并标记为影子对象和连接器,其相应的原业务对象和连接器为空。
上述的对象和连接器生成单元(未示出)是现有技术中生成业务对象和连接器的基类,它提供了简化业务对象编码的功能,同时提供了处理该结构中的事件和异常情况的缺省机制。
上述的连接器可以对要传送的消息数据进行缓冲存储,它还应该负责通知核准管理装置103远程系统(未示出)是否也支持这种核准。如果支持,则核准管理装置103将该连接器设置为等待核准并发送消息,而不再对该消息进行缓冲存储。由此,在业务操作得到核准或被拒绝后,核准管理装置103可以将结果通知给远程系统。该连接器发送消息的操作可以通过一发送单元(未示出)来实现,该发送单元可以是现有技术中与连接器接口的任何结构。
在上述的业务操作需要得到核准的情况下,核准管理装置103生成与一原业务对象对应的影子业务对象,用来存储用户操作的所有结果数据。
此外,执行管理装置101最好还在核准管理装置103中建立一个会话对象,供该业务操作对该影子业务对象进行操作和供核准装置104进行查看。如果该会话对象涉及多个业务对象和影子业务对象,则需对上述业务对象及其影子业务对象关联地进行操作和查看。所述影子业务对象只能由该会话对象进行查看和操作,而不能由其它无关的会话对象查看。该会话对象具有核准设置标识,该标识指示这个操作需要得到核准。
核准装置104连接于核准管理装置103,来查看由核准管理装置103保持的会话对象及其存储在影子业务对象、对应的原业务对象和连接器中的相关数据,该核准装置104的功能至少包括:列出所有未决会话、列出未决会话中的对象存根(stub)、列出对象存根中的所有对象、查看对象、核准会话、拒绝会话等所代表的操作。
图2给出了采用本发明的系统产生影子的一个实例。如图2所示,其中执行管理器作为执行管理装置,资源管理器作为核准管理装置。对于原对象O1产生了影子对象O11,对于原对象O2产生了影子对象O21,对于原对象O3产生了影子对象O31,对于原连接器C产生了影子连接器C1,所有这些影子都由会话S1在核准管理装置中进行操作和管理,并相互通信。
下面结合图3对本发明中使用影子进行核准控制的面向对象系统的操作进行详细地说明。
图3是在本发明的系统100中实施的方法的流程图。
如图3所示,在步骤S100中,用户通过执行管理装置101调用一业务操作(例如在银行中的存取款操作),即执行一个代码片段实例(与在银行中的存取款操作相对应的代码片段)。
在步骤S104,执行管理装置101(例如通过检查存储器(未示出)存储的访问控制中的核准设置参数等)判断该代码片段实例的执行是否需要被核准。该核准设置参数是执行管理装置101判断某一代码片段的执行是否需要得到核准的判断依据,如在该银行系统中,可根据存取款的金额等划分核准的标准,在某一金额以下,不需要核准,在某一金额以上,则需要被核准。
在步骤S110,核准管理装置103建立与原业务对象和连接器对应的影子(在本文中称为“影子业务对象”)(即银行帐户及其中所有数据的副本),并把它标记为“影子”。
同时,在执行管理装置101中执行的代码片段实例通过接口106,从核准管理装置103中获得影子业务对象和用于与外部系统进行通信的连接器,并通过所述的会话对象在其上进行对应的操作(即在银行帐户的副本上进行操作),而不对原业务对象进行操作。
这些操作包括对影子业务对象中的所有数据的创建、更新、修改和删除等(在后面将更详细地描述这些用户操作)。用户所有的操作结果保存在影子业务对象中,所有有关的消息则保存在连接器中。
如果需要核准,则执行管理装置101还可以在核准管理装置103中建立一个会话对象,该会话对象具有核准设置标识,该标识指示这个操作需要得到核准。
然后,在步骤S114,核准装置(或核准代码)104可以查看所有未决的会话及其相关的影子业务对象、原业务对象、和连接器中缓存的各种消息,来决定是否核准或拒绝这个操作。
如果该操作得到核准,则在步骤S116,核准管理装置103将用经过修改的影子业务对象替换原业务对象,并将这个影子业务对象标记为正常的业务对象。同时影子连接器也替换原连接器,并将缓冲存储在连接器中的消息发送给其它系统(即用经过更新的银行帐户的副本代替原帐户,使用户操作装置对帐户的存取款的操作得到确认)。
如果没有得到核准,则在步骤S118,核准管理装置103将所有的临时数据和消息进行存档,为将来进行参考,并清除被标记的业务对象上的所有标记。至此,全部处理过程结束。
此外,如果步骤S104判断不需要核准,则处理过程前进到步骤S106,执行管理装置101通知核准管理装置103向其提供原业务对象和连接器,由业务操作装置102在该原业务对象中记录业务操作的各种数据(即在原来已经建立的帐户中进行存取款的操作),以备将来参考之用。该步骤将导致处理过程的结束。
下面对用户的操作进行说明。代码片段实例的执行(即用户的业务操作操作)包括使用由核准管理装置103提供的接口对所有的业务对象进行创建、更新查看、修改、删除和显示等操作,并对于不同的操作使用不同的影子方法。
对于创建(例如开立一个新的帐户),执行管理装置101首先指示核准管理装置103创建一个初始的业务对象和连接器,标记为影子业务对象和连接器,用户然后可以输入其它业务操作。
对于查看,核准管理装置103将要被查看的原业务对象进行标记,但当其他用户试图修改这个业务对象时,建立与该业务对象对应的会话对象的用户和试图进行修改的用户都会得到异常(exception)通知。开发商可以决定在这种情况下使用什么样的异常代码。
对于修改,核准管理装置103将创建一个原业务对象的影子,即影子业务对象,该影子业务对象具有原业务对象的所有数据,并使修改在影子业务对象上进行。异常程序会将本业务对象正在被修改的状态通知给后续进行的查看和修改操作。
对于删除,核准管理装置103将在会话中建立与原业务对象对应的特殊的空对象,作为影子业务对象,这个空的影子业务对象中不具有原业务对象中的数据。所以当前会话所看到的是该对象已经被删除,而其他用户可以看见原始真实的业务对象。
对于显示,如果显示的结果在允许用户看见以前需要被核准,则显示内容将被缓冲存储在连接器中,等待核准装置104的核准或拒绝。如果得到核准,显示内容将由连接器通过适当的通信信道传送给一显示装置(未示出)。如果被拒绝,则把拒绝信息传送给该显示装置。
如前所述,当某一个会话对象试图获得由其它的会话对象已经或正在修改的业务对象时,可以将代码片段编码为:由执行管理装置101和核准管理装置103将这种情况通知给相关的会话。
可以在执行管理装置101和核准管理装置103的接口中使用锁机制来解决这个冲突的问题,下面将描述一个与数据库锁相近似的锁规则的例子。
当一个会话对象需要访问某一业务对象时,可以在函数new()和find()中指定锁类型,并写入代码来解决由其它会话对象产生的冲突所引起的异常情况。核准管理装置103将根据锁类型来标记原业务对象和影子业务对象。这样,如果其它的会话对象需要访问相同的对象,核准管理装置103就知道如何进行响应了,例如它可以执行发送通知或丢弃异常等操作。
锁类型可以有4种:查询、修改查询、修改、删除。其中查询是缺省的锁,它不影响其它的锁。修改查询会对原业务对象进行标记,所以如果其它会话对象想在查询时对某一业务对象进行修改和删除,具有修改查询锁的会话可以得到通知,同时其中的应用程序代码可以忽略这种异常情况,也可以对其进行处理。修改和删除锁与修改查询锁相同,唯一的不同点就是:在修改和删除锁的情况中,核准管理装置103需要创建影子业务对象。
下面将说明一个使用锁来解决多个会话同时访问一个业务对象的实例。
如下所示:
ResourceManager rm=new ResourceManager(context)

    Finished=fause;failed=fause;

    While(!finished and!failed){

    Try
        <!-- SIPO <DP n="9"> -->
        <dp n="d9"/>
    Order o1=rm.get(Order,orderid,update)

    O1.price=123;

    Finished=true;

    }catch(ExcludeLock e){

        flag=rm.killothers(e.lock);

        If(flag=0)failed=fause;

            Else failed=true;

        }

    }
示例的伪代码试图修改一个定单(order),并应用修改锁方式来获得该定单。当另一个会话施加了异常情况ExcludeLock(修改查询、修改)时,该伪代码就会捕获该异常情况ExcludeLock,同时该伪代码会通知核准管理装置103检查其它相关活动的、或未决的会话对象。如果其它会话对象处于未决的状态(如等待核准等),则该伪代码将拒绝这个会话;如果该其它会话对象还处于活动状态,则该伪代码会向核准管理装置103发送杀死这个会话对象的请求。其它的会话对象将接到这个异常情况的通知,并根据它们各自的代码进行运做。
如果已经杀死了所有其它的会话,则核准管理装置103将返回flag=0的值,因此释放了该锁,否则,它将返回带有错误消息的负代码。
另外,为了开发并运行这个核准系统,应用程序系统开发商需要遵从实现这个结构的基本结构的编程规则,即所有的业务操作都应该由对稳态的业务对象和连接于其它系统的连接器进行操作的瞬态代码片段来实现,并且业务对象和连接器中的代码不应该相互调用,或反向调用代码片段中的方法。
同时,代码片段需要实现指定的接口并从预定的生成单元中产生,以便通过用户的请求可以由执行管理装置101执行,并与执行环境进行交互操作。
代码片段应该具有处理异常情况的代码,例如,获得的对象被标记为正在修改、某些修改的对象已经由核准的会话改变等。尽管由于代码片段214为这些情况提供了缺省的处理机制,而不需要这些特殊的处理,但能够处理由于这种结构和其它会话引起的更多的异常情况将使代码片段的功能更加完善。
另外,使操作得到核准将需要机器更强大的处理和存储能力。当一个操作不需要得到核准时,核准管理装置103不需要创建一个影子业务对象,而直接把原业务对象提供给该代码片段实例,这样就不会需要更大的处理和存储能力。而当一个操作需要核准时,核准管理装置103就需要创建一个影子业务对象,并对其进行存储,这样就会需要更大的处理和存储能力。
另外,为了简化开发,本发明的结构可以通过一定的规则在会话层级上进行锁设定,而不用开发商象上述一样对锁进行编码。例如,核准管理装置103可以具有下列的规则:如果修改请求是由业务对象的所有者提出,则其它所有有妨碍的会话都将被杀死(拒绝或释放);如果该修改请求是由其他人提出的,则该请求总会引起FailedException(异常失败)的情况。这样的话,开发商就不需要用killothers()函数来解决锁的问题了。
上面对本发明的实施例进行了详细地说明。本领域的普通技术人员应该明白,按照本发明的精神及指导思想对本发明做出的各种修改都在本发明后附的权利要求书所要求保护的范围内。

Claims (18)

1.一种使用影子对象进行核准控制的面向对象方法,包括下列步骤:
(1)调用一业务操作;
(2)判断所述业务操作是否需要得到核准;
(3)如果需要核准,则建立与原业务对象和连接器对应的影子业务对象和连接器,在所述影子业务对象和连接器上执行所述业务操作,并将所有的操作结果保存在所述影子业务对象中,将所有待发送的消息缓存在所述连接器中;
(4)如果所述业务操作得到核准,则用影子业务对象替换所述原业务对象。
2.根据权利要求1所述的方法,其特征在于在所述步骤(4)进一步包含将缓存在所述连接器中的消息发送给其它系统的步骤。
3.根据权利要求1所述的方法,其特征在于:
如果调用的所述业务操作是创建新业务对象,则先创建一相应的业务对象和连接器,并标记为影子对象和连接器,其相应的原业务对象和连接器为空;
如果所述业务操作是修改,则在执行业务操作之前,所述影子业务对象具有所述原业务对象的所有数据;
如果所述业务操作是删除,则在步骤(3)建立原业务对象的空对象,作为影子业务对象,这个空影子业务对象中不具有原业务对象中的数据。
4.根据权利要求3所述的方法,其特征在于所述步骤(3)还包括:建立一会话对象,所述会话对象具有核准设置;所述影子业务对象、连接器和核准管理装置通过所述会话对象进行通信。
5.根据权利要求4所述的方法,其特征在于所述步骤(4)之间还包括步骤:查看未决的所述会话、影子业务对象及其所述原业务对象、和存储在所述连接器中的各种消息,以决定是否核准或拒绝所述业务操作。
6.根据权利要求5所述的方法,其特征在于还包括步骤:(5)如果所述业务操作被拒绝,则所述核准管理装置将所有的临时数据和消息进行存档,并清除被标记的业务对象上的所有标记。
7.根据权利要求1所述的方法,其特征在于如果步骤(2)的判断结果为不需要核准,则对所述原业务对象和连接器执行业务操作。
8.一种使用影子对象进行核准控制的面向对象系统,包括:
业务操作装置,用于执行业务操作;
执行管理装置,用于对所述业务操作装置的操作进行管理;
判断单元,与执行管理装置相连,用于判断业务操作是否需要核准;
核准管理装置,用于进行核准管理,如果业务操作需要核准,则为该业务操作产生与一原业务对象和连接器相应的影子业务对象和连接器,用于保存该业务操作后的结果,并在得到核准后用所述影子业务对象替换所述相应的原业务对象,以产生核准后的处理结果。
9.根据权利要求8所述的系统,其特征在于所述业务操作装置连接于多个代码片段,用于执行各种业务操作。
10.根据权利要求9所述的系统,其特征在于所述代码片段是由所述执行管理装置转换来的;所述执行管理装置还用于产生代码片段实例,给所述代码片段实例设置执行上下文,并调用所述代码片段的适当功能和对所有代码片段进行管理;在需要核准的情况下,在所述核准管理装置中产生一带有核准标识的会话对象,所述影子业务对象、连接器和核准管理装置通过所述会话对象进行通信。
11.根据权利要求10所述的系统,其特征在于所述业务操作的所有结果都保存在所述影子业务对象中,所有要发送给其它系统的消息保存在所述连接器中。
12.根据权利要求11所述的系统,其特征在于
如果所述业务操作是创建新业务对象,则建立相应的业务对象和连接器,将其标记为影子对象和连接器,并使其相应的原业务对象和连接器为空;
如果所述业务操作是修改,则所述核准管理装置将建立所述原业务对象的影子业务对象,所述影子业务对象具有所述原业务对象的所有数据,并使所述修改在所述影子业务对象上进行;
如果所述业务操作是删除,则所述核准管理装置将建立原业务对象的空对象,作为影子业务对象,这个空影子业务对象中不具有原业务对象中的数据。
13.根据权利要求8至12中任一所述的系统,其特征在于所述执行管理装置与一核准装置相连,所述核准装置查看所述会话及其影子业务对象、相应的原业务对象和连接器中的相关数据,以核准或拒绝该业务操作;如果核准,所述核准管理装置用该修改后的影子业务对象替换所述原业务对象,并由所述连接器将所述结果发送到其它系统;否则,所述核准管理装置将所有临时数据和消息存档,并清除被标记的业务对象上的所有标记。
14.根据权利要求13所述的系统,其特征在于所述核准管理装置还连接于一冲突检测单元,所述冲突检测单元用于检测多个会话同时对相同的业务对象的访问,并利用锁机制进行冲突管理。
15.根据权利要求14所述的系统,其特征在于所述核准管理装置通过一API接口与所述核准管理装置相连,以建立、引用、修改和删除所述业务对象和连接器。
16.根据权利要求15所述的系统,其特征在于所述执行管理装置通过另一API接口与所述业务操作装置相连,以调用各个代码片段来执行相应的业务操作。
17.根据权利要求16所述的系统,其特征在于该系统包括用于代码片段的各个基类。
18.根据权利要求13所述的系统,其特征在于所述核准装置的核准为人工核准和应用程序核准中的一种。
CN02125131A 2002-06-28 2002-06-28 使用影子对象进行核准控制的面向对象系统和方法 Expired - Fee Related CN1464401B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN02125131A CN1464401B (zh) 2002-06-28 2002-06-28 使用影子对象进行核准控制的面向对象系统和方法
US10/457,170 US7899787B2 (en) 2002-06-28 2003-06-09 Object-oriented system and method using shadowing object for approval control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN02125131A CN1464401B (zh) 2002-06-28 2002-06-28 使用影子对象进行核准控制的面向对象系统和方法

Publications (2)

Publication Number Publication Date
CN1464401A true CN1464401A (zh) 2003-12-31
CN1464401B CN1464401B (zh) 2010-05-26

Family

ID=29743991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN02125131A Expired - Fee Related CN1464401B (zh) 2002-06-28 2002-06-28 使用影子对象进行核准控制的面向对象系统和方法

Country Status (2)

Country Link
US (1) US7899787B2 (zh)
CN (1) CN1464401B (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7113980B2 (en) * 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US7870265B2 (en) * 2005-06-30 2011-01-11 Oracle International Corporation System and method for managing communications sessions in a network
US20070143305A1 (en) * 2005-11-02 2007-06-21 Sourcecode Technology Holding, Inc. Methods and apparatus for storing functions associated with an electronic form
US8010940B2 (en) 2005-11-02 2011-08-30 Sourcecode Technologies Holdings, Inc. Methods and apparatus for designing a workflow process using inheritance
US8239226B2 (en) * 2005-11-02 2012-08-07 Sourcecode Technologies Holdings, Inc. Methods and apparatus for combining properties and methods from a plurality of different data sources
US7996758B2 (en) * 2005-11-02 2011-08-09 Sourcecode Technologies Holding, Inc. Methods and apparatus for storing data associated with an electronic form
US8224853B2 (en) * 2005-11-02 2012-07-17 Sourcecode Technologies Holdings, Inc. Methods and apparatus for updating a plurality of data fields in an electronic form
US20070143711A1 (en) * 2005-11-02 2007-06-21 Sourcecode Technology Holding, Inc. Methods and apparatus for displaying a setup sequence
US20070136367A1 (en) * 2005-11-02 2007-06-14 Sourcecode Technology Holding, Inc. Methods and apparatus for dynamically modifying a business object definition
EP1955201A4 (en) * 2005-11-02 2011-04-20 Sourcecode Technology Holding Inc METHODS AND APPARATUS FOR PROCESSING BUSINESS OBJECTS, ELECTRONIC FORMS, AND WORKSTREAM
US20070130138A1 (en) * 2005-11-02 2007-06-07 Sourcecode Technology Holding, Inc. Methods and apparatus for storing a collaboratively designed workflow process
CN101346634B (zh) * 2005-11-04 2012-10-24 甲骨文国际公司 用于通信网络中的网守的系统和方法
US8001250B2 (en) * 2006-05-16 2011-08-16 Oracle International Corporation SIP and HTTP convergence in network computing environments
US8171466B2 (en) 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US8112525B2 (en) * 2006-05-16 2012-02-07 Oracle International Corporation Engine near cache for reducing latency in a telecommunications environment
US8219697B2 (en) * 2006-05-17 2012-07-10 Oracle International Corporation Diameter protocol and SH interface support for SIP server architecture
US20080086567A1 (en) * 2006-10-10 2008-04-10 Bea Systems, Inc. SIP server architecture for improving latency in message processing
US7661027B2 (en) * 2006-10-10 2010-02-09 Bea Systems, Inc. SIP server architecture fault tolerance and failover
WO2008067310A2 (en) * 2006-11-27 2008-06-05 Sourcecode Technology Holding, Inc. Method and apparatus for displaying interprocess communication thumbnails
WO2008067312A2 (en) * 2006-11-27 2008-06-05 Sourcecode Technology Holding, Inc. Methods and apparatus for modeling a workflow process in an offline environment
WO2009082379A2 (en) * 2006-11-27 2009-07-02 Sourcecode Technology Holding, Inc. Methods and apparatus for debugging a workflow process
US20080155518A1 (en) * 2006-11-27 2008-06-26 Sourcecode Technology Holding, Inc. Methods and apparatus for tokenizing workflow process objects
US20080147551A1 (en) * 2006-12-13 2008-06-19 Bea Systems, Inc. System and Method for a SIP Server with Online Charging
US9667430B2 (en) * 2006-12-13 2017-05-30 Oracle International Corporation System and method for a SIP server with offline charging
US8078737B2 (en) * 2006-12-13 2011-12-13 Oracle International Corporation System and method for efficient storage of long-lived session state in a SIP server
US8141128B2 (en) * 2007-02-20 2012-03-20 Source Code Technologies Holdings, Inc. Methods and apparatus for building and executing natural language workflow functions
US20080320405A1 (en) * 2007-03-22 2008-12-25 Sourcecode Technology Holding, Inc. Methods and apparatus for providing context sensitive templates for a web based workflow design
AU2008230964A1 (en) * 2007-03-23 2008-10-02 Sourcecode Technology Holding, Inc. Methods and apparatus for dynamically allocating tasks
US20090037397A1 (en) * 2007-05-03 2009-02-05 Sourcecode Technology Holding, Inc. Methods and apparatus for providing context search results in process design
AU2008101325A4 (en) * 2007-05-08 2014-01-30 Sourcecode Technology Holding, Inc. Methods and apparatus for exposing workflow process definitions as business objects
US20080319813A1 (en) * 2007-05-24 2008-12-25 Sourcecode Technology Holding, Inc. Methods and apparatus for collaborative process modeling
US7895475B2 (en) * 2007-07-11 2011-02-22 Oracle International Corporation System and method for providing an instrumentation service using dye injection and filtering in a SIP application server environment
US9388492B2 (en) 2011-12-27 2016-07-12 Asm America, Inc. Vapor flow control apparatus for atomic layer deposition
US10331765B2 (en) 2013-05-24 2019-06-25 Sourcecode Technology Holdings, Inc. Methods and apparatus for translating forms to native mobile applications
US10662527B2 (en) 2016-06-01 2020-05-26 Asm Ip Holding B.V. Manifolds for uniform vapor deposition
US11492701B2 (en) 2019-03-19 2022-11-08 Asm Ip Holding B.V. Reactor manifolds

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367573A (en) * 1993-07-02 1994-11-22 Digital Equipment Corporation Signature data object
US5761511A (en) * 1994-01-28 1998-06-02 Sun Microsystems, Inc. Method and apparatus for a type-safe framework for dynamically extensible objects
DE69427347T2 (de) * 1994-08-15 2001-10-31 International Business Machines Corp., Armonk Verfahren und System zur verbesserten Zugriffssteuerung auf Basis der Rollen in verteilten und zentralisierten Rechnersystemen
US5692195A (en) * 1994-08-31 1997-11-25 International Business Machines Corporation Parent class shadowing
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US5832483A (en) * 1995-12-15 1998-11-03 Novell, Inc. Distributed control interface for managing the interoperability and concurrency of agents and resources in a real-time environment
US6085172A (en) * 1996-10-02 2000-07-04 Nintendo Of America Inc. Method and apparatus for efficient handling of product return transactions
US6058426A (en) * 1997-07-14 2000-05-02 International Business Machines Corporation System and method for automatically managing computing resources in a distributed computing environment
US6385660B2 (en) * 1997-10-06 2002-05-07 Sun Microsystems, Inc. Site specific message dispatch in object-oriented systems
US6085191A (en) * 1997-10-31 2000-07-04 Sun Microsystems, Inc. System and method for providing database access control in a secure distributed network
US6789252B1 (en) * 1999-04-15 2004-09-07 Miles D. Burke Building business objects and business software applications using dynamic object definitions of ingrediential objects
US6668285B1 (en) * 1999-05-12 2003-12-23 Koninklijke Philips Electronics N.V. Object oriented processing with dedicated pointer memories
US6199195B1 (en) * 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US7200563B1 (en) * 1999-08-20 2007-04-03 Acl International Inc. Ontology-driven information system
US6640249B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
US6571232B1 (en) * 1999-11-01 2003-05-27 Sun Microsystems, Inc. System and method for browsing database schema information
AU3436401A (en) 1999-12-23 2001-07-03 Permitsnow, Inc. A system and method for inter-enterprise workflow and document management
US6647420B2 (en) * 2001-01-18 2003-11-11 Reynolds And Reynolds Holdings, Inc. Enterlink for providing a federated business to business system that interconnects applications of multiple companies
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US20030212987A1 (en) * 2001-02-28 2003-11-13 Demuth Steven J. Client container for building EJB-hosted java applications
US7062516B2 (en) * 2001-09-18 2006-06-13 Sun Microsystems, Inc. Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure
US7761337B2 (en) * 2001-12-18 2010-07-20 Siebel Systems, Inc. Data structure for a complex order processing system
US7076474B2 (en) * 2002-06-18 2006-07-11 Hewlett-Packard Development Company, L.P. Method and system for simulating a business process using historical execution data

Also Published As

Publication number Publication date
US20040002881A1 (en) 2004-01-01
US7899787B2 (en) 2011-03-01
CN1464401B (zh) 2010-05-26

Similar Documents

Publication Publication Date Title
CN1464401A (zh) 使用影子对象进行核准控制的面向对象系统和方法
CN100465937C (zh) 通过网络以事务形式办理文件操作的方法与系统
US8126920B2 (en) Enterprise security management system using hierarchical organization and multiple ownership structure
US7516440B2 (en) System and method for providing a java interface to an application view component
US20040176968A1 (en) Systems and methods for dynamically configuring business processes
US20150213146A1 (en) Content management application for an interactive environment
CN1526109A (zh) 用于被分割的对等计算的方法与装置
CN1777881A (zh) 展示过程流以及作为万维网服务的安排控制器
CN1674023A (zh) 项目时间和费用
WO2003019326A2 (en) Method and system for facilitating creation, presentation, exchange, and management of documents to facilitate business transactions
CN1244267A (zh) 用于建立、执行和保持跨企业过程的系统和方法
CN1525328A (zh) 为复制文件管理多个文件状态的方法
CN1487414A (zh) 具有可扩展功能的元目录代理
WO2002093364A2 (en) General and reusable components for defining net-centric application program architectures
US20070240166A1 (en) System and method of providing inter-application communications
CN1689008A (zh) 企业间对话的系统和方法
CN1298503A (zh) 分布式系统中的动态查找服务
CN1714341A (zh) 在n层交易中的同步方法
US20050182641A1 (en) Collaborative information system for real estate, building design, construction and facility management and similar industries
KR20070053127A (ko) 웹 서비스의 메시지 지향 구축
CN1856784A (zh) 用于存储平台中的锁定和隔离的系统和方法
CN1581071A (zh) 具有xml驱动的体系结构的信息处理方法、装置和程序
JP4660483B2 (ja) コンピューティング環境において使用するためのアイデンティティシステム
US7165251B2 (en) In-context launch management method, system therefor, and computer-readable storage medium
EP0774725A2 (en) Method and apparatus for distributing conditional work flow processes among a plurality of users

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100526

Termination date: 20160628

CF01 Termination of patent right due to non-payment of annual fee