在n层交易中的同步方法

文档序号:6419577阅读:143来源:国知局
专利名称:在n层交易中的同步方法
技术领域
本发明涉及一种同步领域,具体涉及在n层架构中的同步。
背景技术
因特网正在改变我们的生活的许多方面,但是没有一个领域像企业操作的方式那样正在经历迅速和较大的改变。对于今天的企业,因特网技术不再是在形成企业策略中的事后聪明,而是已经变成一种驱动力。许多组织将电子商务定义为通过使用因特网技术的、关键企业处理的变换。电子商务经由因特网将重要的商业系统与消费者、雇员、供货商和批发商直接连接以改善达到市场的时间、访问更宽范围的消费者和供货商、改进效率和降低成本。
实现电子商务模型的公司的示例包括提供与在线供应链管理集成的在线购买的零售商或电子金融服务组织,它们降低了交易的高成本,同时改进地访问消费者帐户。电子商务已经从用于自动化特定商业功能的手段发展而变成有竞争力企业的必要元素。
框架是一种可重新使用的设计,它被表达为一组抽象模式和它们的接口协作的方式。它是用于软件系统的全部或部分的一种可重用的设计;用户接口框架仅仅提供用于系统的用户界面的设计,而应用框架提供了用于整个应用的设计。
应用框架正在变得对于开发复杂应用越来越重要。应用框架描述了应用可以获得的一组交互部件和服务、所述部件和服务的责任与在所述部件和服务之间的交互。开发人员通过编制和扩展在应用框架中可用的部件和服务来建立一个应用。应用框架通常处理具体的商业领域,诸如制造或金融。
早期的框架以编程语言为中心,诸如面向对象(OO)的设计框架。应用框架不必以面向对象的语言来实现,但是它们具有与OO设计类似的特征,因为框架的每个部件具有定义的接口和行为。应用框架提供了用于建立、部署和管理复杂电子商务应用所需要的软件、服务器和服务的环境。
由国际商业机器公司用于电子商务的应用框架提供了一种用于设计电子商务解决方案的模型。这种模型已经从传统的客户机/服务器计算模型演化出来,并且基于一种“n层(n-tier)”分布式环境,其中,从通过网络彼此通信的部件来构建应用逻辑和商业服务的层。
在其最基本的形式中,可以将框架描述为逻辑三层计算模型,表示存在逻辑的而不必然是物理的、处理的分离。参见图1,其中示出了三层模型100的一个示例,所述三层模型100包括客户层105、中间层110和第三层115。
客户层105包括具有逻辑的客户机(例如智能卡、数字无线电话、个人数字助理(PDA)),所述逻辑与向应用发送请求(例如通过浏览器或Java小应用程序)和向用户(经由图形用户界面)提供由应用产生的信息和结果相关联。所述客户机有时被称为”瘦”客户机,表示在所述客户机上执行很少的或不执行应用逻辑,因此需要较少的软件来安装在客户机上。通常,仅仅用户交互和输入验证功能运行在客户机上。使用工业标准技术和协议(例如,TCP/IP、HTTP、HTML/DHTML/XML和Java(Java和所有基于Java的商标是Sun Microsystems公司在美国、其他国家或两者中的商标))来实现客户机,所述工业标准技术和协议使得客户机能够与用户交互、与中间层通信以及发送和接收标准数据格式。
瘦客户机的使用改善了可管理能力、灵活性和达到市场的时间。有益的是,可以支持更宽范围的客户机设备,因为降低了对于设备能力的依赖性。而且,用户的应用环境可以被集中地管理和分布到不同类型和在不同位置的客户机设备以提供对于移动用户的支持。
中间层110包括应用服务器,它们是单应用或多应用服务器。在电子商务环境中,服务器是被优化用于因特网应用的万维网应用服务器。所述应用服务器是提供用于应用的业务逻辑的运行时间环境的平台。所述业务逻辑与客户机类型和用户界面风格无关地被执行。表示逻辑与应用逻辑的分离使得能够建立可以从多种不同风格的用户界面使用的可重用应用部件。
中间层服务器并入了几种用于与其他层中的应用、数据和服务通信的应用集成技术。万维网应用交易服务器在电子商务基础结构中是必要的,因为在线交易的数量正在大幅度增加。消费者需要高速的交易处理、强壮的系统可靠性、对任务为关键的应用的备份和快速恢复。万维网应用服务器也必须提供一种与其他系统的综合集成能力。它们也必须彼此连接以及与后端第三层连接以便能进行这些新的业务处理。
使用各种因特网和Java技术来实现万维网应用服务器,其中包括HTTP服务器和独立于平台的企业Java编程环境。后者消除了业务逻辑对于基础硬件、操作系统和联网基础结构的依赖性,因此提高了可移植性(portability)和降低了开发和维护成本。中间层并入使得能够在分布网络环境中迅速地开发和部署应用的网络基础设施和基础服务。应用120作为在万维网应用服务器和它的Java虚拟机中的小服务程序、服务器端脚本和企业Java组件(JavaBeans(EJB))的组合而运行。EJB提供一个应用的业务逻辑的大部分,特别是对于数据库和交易服务的访问。EJB使开发人员与基础数据库和交易服务的独特特征相分离,简化了与平台无关的业务逻辑的开发。
第三层115包括传统(legacy)系统,它们已经被使用多年(因此使用术语“传统”),它们支持新的和现有的内部应用、服务和数据;来自新的和现有的业务伙伴的外部应用、服务和数据。与这些服务的连接支配(leverage)了消费者、业务伙伴和雇员的值。外部服务和传统系统是万维网应用模型出现的基础,因为它们是在信息技术上多年的联合投资的结果。这些是任务重要的应用和每人日常依赖的数据,它们是需要以安全、可控的方式使其可用于万维网以使得公司能够平衡它们对于在内联网和外联网中的消费者、雇员和供货商的值的商业资产。在这个层中的服务器提供由万维网应用服务器处理使用的数据存储和交易应用。
在这三个逻辑层中驻留的应用元素通过一组工业标准的协议、服务和软件连接器连接。所述连接器125、126、127将在中间层中的新的、增值业务逻辑连接到在后台层中的一个公司的现有应用和数据系统中的大量积累的资产。运行在中间层上的业务逻辑接受来自客户机的请求,并且调用连接器来代表客户机与后台层服务安全地通信。
一种替代模型是“数据同步”模型。参见图2的分布系统200,一个应用驻留在服务器215上(例如在存储器220中),并且同一应用的复制品驻留在一个“肥客户机(fat client)”(例如个人计算机)205上(例如在存储器210中)。所述肥客户机执行应用的处理本身的全部或大多数。当用户离线时,它们可以在本地对所述复制数据进行工作,并且用户不时经由网络225连接到服务器215,并使所述复制数据与驻留在服务器215上的主数据同步。这个模型经常用于诸如日历、电子邮件等的个人信息管理(PIM)应用,并且对于移动客户机尤其有用,所述移动客户机仅仅间断地连接到网络。
当前,许多机构想包括数据同步来作为用于提供电子商务应用的方法。例如,银行想向消费者提供下述能力通过使PDA上的本地数据与后台层上的主数据定期同步,从PDA应用查看和操纵他们的帐户。但是,所述数据同步模型不能很好地适用于电子商务三层模型。具体上,机构不愿意或不能将它们的复杂的、高度保护的后端数据库直接与客户机同步。另一个复杂性是在万维网应用服务器上运行的应用的业务逻辑被HTTP请求驱动,并且产生HTTP响应。在客户机和后台层之间需要的同步协议不被业务逻辑理解。
一种可能的解决方案是从后台层向中间层提取数据的拷贝。客户机然后可以连接到中间层并更新数据。所更新的数据然后可以经由中间层与存储在后台层上的数据同步。
但是,这种解决方案具有缺点。首先,客户机工作的数据将总是过期,特别是如果所述数据是以通宵的批被提取的。而且,必须开发新的应用功能以使所更新的数据与在后台层上的数据同步,以便保持在后台层上的一致数据。这继而导致需要分布式的交易处理,这具有公知的缺点。例如,如果交易协调者向参加一个交易的所有资源管理者的“委托”了那个交易(例如银行A从帐户A划款,银行B将该款存入帐户B)但是然后网络出了故障(godown),则不能信赖交易状态的一致。一些资源管理者将所述交易登记为正在被完成,但是一些可能不。通常,需要澄清交易的结果的资源管理者需要联系交易协调者。但是,这直到网络再次工作并且同时帐户A和B可以被锁定一些时间才可能。另一个缺点是将所述解决方案扩大到几个瘦客户机,中间层必须通常包括几个万维网应用服务器。因此保持一致的问题大大地加剧。
美国专利第6,023,684号公开了一种三层的模型,由此,在使用客户机程序的逻辑会话启动时,一个应用服务通过使用经由主机接口从后端处理系统获得的数据来刷新用于与所述客户机程序相关联的消费者的数据。所述数据被存储在与所述应用服务相关联的本地数据存储器中,并且这个数据随后被所述应用服务使用来用于在逻辑会话期间处理客户机请求。所述本地数据存储器允许将客户机请求的处理与后端处理系统的更新相分离。
因此,需要这样的一种模型,它可以提供数据同步模型和所述“n层”模型的益处而不必大大改变所述“n层”模型。

发明内容
按照第一方面,提供了一种用于分布数据处理系统的同步的方法,所述分布数据处理系统包括至少一个传统计算机,它具有用于存储数据的主版本的部件;第一非传统计算机,它具有用于支持同步的部件;第二非传统计算机,它具有用于存储所述数据的主版本的拷贝的部件和用于对所述拷贝执行至少一个操作的部件,所述方法包括步骤通过所述第二非传统计算机来对所述拷贝执行所述至少一个操作;通过所述第二非传统计算机来向所述第一非传统计算机发送所述至少一个操作;由所述第一非传统计算机对在所述至少一个传统计算机上的所述主版本执行所述至少一个操作;确定所述执行步骤是否成功;响应于成功的执行步骤而通过应用所述至少一个操作来同步所述主版本;并且通过所述第一非传统计算机来发送来自对所述主版本执行所述至少一个操作的步骤的结果和数据的主版本的新拷贝。
因此,一旦已经在传统计算机上执行了所述至少一个操作,则第一非传统计算机向第二非传统计算机发送所述结果(即,成功/失败通知以及结果数据本身)和数据的主版本的新拷贝。
例如,传统计算机是主计算机。第一非传统计算机是万维网应用服务器,第二非传统计算机是PDA。优选是,所述方法还包括步骤通过第二非传统计算机向所述第一非传统计算机发送同步协议。所述协议通常对于第二非传统计算机的类型是专用的。在优选实施例中,如果存在要在传统计算机上执行的两个或多个操作,则所述操作依序被执行。优选是,如果不能对所述主版本执行所述至少一个操作(例如因为同时操作冲突),则主版本不同步。
按照第二方面,提供了一种用于同步的分布数据处理系统,包括至少一个传统计算机,它具有用于存储数据的主版本的部件;第一非传统计算机,它具有用于支持同步的部件;第二非传统计算机,它具有用于存储所述数据的主版本的拷贝的部件和用于对所述拷贝执行至少一个操作的部件,所述系统还包括用于通过所述第二非传统计算机来对所述拷贝执行所述至少一个操作的部件;用于通过所述第二非传统计算机来向所述第一非传统计算机发送所述至少一个操作的部件;用于由所述第一非传统计算机对在所述至少一个传统计算机上的所述主版本执行所述至少一个操作的部件;用于确定所述执行步骤是否成功的部件;用于响应于成功的执行步骤而通过应用所述至少一个操作来同步所述主版本的部件;以及用于通过所述第一非传统计算机来发送来自对所述主版本执行所述至少一个操作的所述部件的结果和数据的主版本的新拷贝的部件。
按照第三方面,提供了一种计算机程序,它包括计算机程序代码,被适配来当所述程序运行在计算机上时执行上述方法的所有步骤。


结合如下附图所示优选实施例,仅以举例方式来描述本发明,其中图1是现有技术的“n层”模型的示意图示;图2是现有技术的数据同步模型的示意图示;图3是按照本发明的“n层”模型的示意图示;图4是示出在图3中所示的模型中实现的、在数据同步处理中涉及的操作步骤的流程图;图5是图3的模型中的部件之间的数据同步处理中涉及的流程的时序图;图6是数据同步的结果的图示。
具体实施例方式
图3示出了其中可以实现本发明的三层模型300的图示。示出了具有相关联的存储部件(分别是310、320和330)的客户层305、中间层315和后台层325。客户层305和中间层315通过软件连接器331连接,中间层315和后台层325通过软件连接器332和333连接。在后台层325上的应用和服务被防火墙335保护。
现在参照图3、4和5来描述本发明的一个实施例。说明银行应用的一个示例,其中,瘦客户机305是PDA,中间层315是万维网应用服务器,后台层325是数据仓库,用于存储银行帐户数据的主版本。
优选的是,所述瘦客户机305包括一个功能,它在被执行时从后台层325的存储部件330获得用户的银行帐户数据的拷贝。优选的是,所述拷贝被本地存储在与瘦客户机305相关联的存储部件310中。在这个示例中,本地存储具有300英镑余额的银行帐户数据。用户对于本地数据执行(步骤400、500)操作(例如改变/更新),在这个实施例中,所述操作是·向所述帐户内转入50英镑·从所述帐户建立100英镑的长期汇票(standing order)·从所述帐户作出75英镑的一次支付但是,相对于驻留在后台层325上的主版本,本地数据更可能过期。这是因为一些用户启动的操作可能与在后台层325同时被应用到用户的银行帐户的主版本的操作冲突。例如,被支付的长期汇票,向存储帐户的货币转帐和抵押支付等。在这个实施例中,同时操作已经被应用到用户的银行帐户的主版本上。在这个示例中,已经从用户的银行帐户提取了200英镑的一次支付,因此,实际的余额在100英镑(即,300-200=100英镑)。
因为由用户启动的操作还没有与已经被应用到主版本的任何同时操作相互一致,因此优选的是,将用户的操作保留在一个列表中。瘦客户机305因此存储两种类型的数据,即“当前”(可能与主版本略微偏离)数据(即用户的银行帐户数据)的拷贝和待决操作的列表(即上述的操作1、2和3的列表)。
接着,在瘦客户机305的用户经由HTTP请求向中间层315发送(步骤405、505)一个请求(请求A)以使更新的本地数据与所述主版本同步。中间层315通过发回(步骤410、510)用于指令瘦客户机305进行同步的HTTP响应(响应A’)而确认接收到“请求A”。应当明白,这个请求/响应交换是一个选用级。接着,在瘦客户机305的用户向中间层315发送(步骤415、515)一个HTTP请求(请求B)以便开始同步。瘦客户机的标准同步协议也被发送到中间层315。有益的是,除了通过使用所述HTTP请求/响应模型来在中间层上开发业务应用逻辑,也开发了可以运行本地瘦客户机同步协议的、中间层的功能。
现在开始同步处理(步骤420)。具体上,要同步的数据是在瘦客户机305的用户要执行的操作(上述的操作1、2和3)的列表。在同步步骤中,操作的列表被从瘦客户机305安装到中间层315。中间层315然后在后台层325重新进行520在所述列表中的所述操作,即向帐户内转入50英镑,从帐户建立100英镑的长期汇票,以及从帐户进行75英镑的一次支付。应当明白,优选的是,所述重新进行步骤迅速发生,以便降低冲突的机会。而且,优选的是,依序重新进行操作的所述列表。
应当明白,根据是否任何冲突的同时操作已经被应用到在后台层325上驻留的主版本,一些用户启动的操作可能成功,而它们的一些可能失败。如果同时操作已经被应用到主版本,则这些在瘦客户机305已经接收到数据的“当前”拷贝后已经被应用。在步骤425,对于每个操作,对它是否成功进行确定。响应于确定结果,数据的主版本被同步以反映成功的用户启动操作,而响应于否定结果,数据的主版本不被同步(步骤435)。在这个示例中,实际的银行帐户余额为100英镑。因此,操作1成功(其后,实际的银行帐户余额=150英镑),操作2成功(其后,实际的银行帐户余额=50英镑),操作3失败(因为实际的银行帐户余额将为=-25英镑)。
接着,后台层325向中间层315发送(525)用户启动的操作的结果以及银行帐户的新(更新)的主版本的拷贝(在这个示例中,实际银行帐户余额=50英镑)。
中间层315监控(步骤440)这些操作的结果,并且向瘦客户机305发送(步骤445、530)所述结果和银行帐户的新主版本的拷贝。所述银行帐户的新主版本在步骤400替代用户使用的本地拷贝。
同步处理现在已经结束,并且通过从中间层315向瘦客户机305发送(步骤450,535)一个HTTP响应(响应B’)来向用户指示这一点。优选的是,随后可以向用户提供银行帐户的状态的更新视图、成功操作的列表和失败操作的列表。图6中示出了所述视图(600)的一个示例。在步骤455,如果不执行进一步的操作,则处理结束。但是,响应于肯定结果,处理返回步骤400,在此,例如,用户可以通过取消、修改、延期失败的操作等来处理它们。
有益的是,中间层只需要在发生同步后访问数据的主版本,以便向瘦客户机发送数据的新主版本的最新拷贝。而且,所述优选实施例包含下述可能同时操作可能已经被应用到数据的所述主版本。这种情况的处理不需要在瘦客户机和后台层的数据的一致拷贝。
另一个优点是数据同步模型的益处被提供,而不必大幅度地改变所述三层模型。因此,可以在已经被今天的许多组织支持的系统中使用本发明。例如,可以使用在瘦客户机和中间层之间的现有关系,即,当前可用的HTTP和PDA同步协议。但是,应当明白,可以使用其他协议来实现本发明。而且,虽然已经说明了三层模型,但是可以以具有“n”层的模型来实现本发明。而且,虽然已经说明了PDA、万维网应用服务器和后端主机,但是应当明白所述层可以包括任何其他的计算机机器。
权利要求
1.一种用于分布式数据处理系统的同步的方法,所述分布数据处理系统包括至少一个传统计算机,它具有用于存储数据的主版本的部件;第一非传统计算机,它具有用于支持同步的部件;第二非传统计算机,它具有用于存储所述数据的主版本的拷贝的部件和用于对所述拷贝执行至少一个操作的部件,所述方法包括步骤通过所述第二非传统计算机来对所述拷贝执行所述至少一个操作;通过所述第二非传统计算机来向所述第一非传统计算机发送所述至少一个操作;由所述第一非传统计算机对在所述至少一个传统计算机上的所述主版本执行所述至少一个操作;确定所述执行步骤是否成功;并且响应于成功的执行步骤而通过应用所述至少一个操作来同步所述主版本。
2.按照权利要求1的方法,还包括步骤通过第二非传统计算机向所述第一非传统计算机发送同步协议。
3.按照权利要求1或权利要求2的方法,其中,所述至少一个操作包括两个或多个操作,并且通过所述第一传统计算机依序执行所述操作。
4.按照任何前述权利要求的方法,还包括步骤通过所述第一非传统计算机来发送来自于对所述主版本执行所述至少一个操作的步骤的结果和数据的主版本的新拷贝。
5.按照权利要求1的方法,其中,响应于不成功的执行步骤,所述主版本不被同步。
6.一种用于同步的分布式数据处理系统,包括至少一个传统计算机,它具有用于存储数据的主版本的部件;第一非传统计算机,它具有用于支持同步的部件;第二非传统计算机,它具有用于存储所述数据的主版本的拷贝的部件和用于对所述拷贝执行至少一个操作的部件,所述系统还包括用于通过所述第二非传统计算机来对所述拷贝执行所述至少一个操作的部件;用于通过所述第二非传统计算机来向所述第一非传统计算机发送所述至少一个操作的部件;用于由所述第一非传统计算机对在所述至少一个传统计算机上的所述主版本执行所述至少一个操作的部件;用于确定所述执行步骤是否成功的部件;以及,用于响应于成功的执行步骤而通过应用所述至少一个操作来同步所述主版本的部件。
7.按照权利要求6的系统,还包括用于通过第二非传统计算机向所述第一非传统计算机发送同步协议的部件。
8.按照权利要求6或权利要求7的系统,其中,所述至少一个操作包括两个或多个操作,并且通过所述第一传统计算机依序执行所述操作。
9.按照权利要求6-8的任何一个的系统,还包括用于通过所述第一非传统计算机来发送来自对所述主版本执行所述至少一个操作的部件的结果和数据的主版本的新拷贝的部件。
10.按照权利要求6的系统,其中,响应于不成功的确定,所述主版本不被同步。
11.一种计算机程序,它包括计算机程序代码部分,被适配来在所述程序在计算机上运行时执行权利要求1-5的所有步骤。
全文摘要
一种用于分布数据处理系统的同步的方法,所述分布数据处理系统包括一个传统计算机,它具有用于存储数据的主版本的部件;一个应用服务器;存储数据的主版本的瘦客户计算机。首先,所述瘦客户机对于所述拷贝本地执行操作。所述操作在列表中被发送到所述应用服务器。所述应用服务器代表瘦客户机对于所述主数据执行所述操作。如果可以成功地对于主版本执行所述操作,则发生同步在成功的操作被应用到主版本。
文档编号G06F17/30GK1714341SQ03825562
公开日2005年12月28日 申请日期2003年4月8日 优先权日2002年12月4日
发明者盖伊·P·欣德尔, 劳伦斯·L·波特, 理查德·T·史密斯, 格雷厄姆·D·沃利斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1