在分布计算机系统中保持数据完整性的方法与设备技术方案

技术编号:2874825 阅读:209 留言:0更新日期:2012-04-11 18:40
公开了一种维护数据在整个分布计算机系统的完整性的方法和设备。在一个实施例中,本发明专利技术的方法包含从服务器应用程序发送一个对象到客户应用程序的步骤。本方法也包含从服务器应用程序发送一个对象的状态到客户应用程序的步骤。本方法进一步包含对象和对象状态在服务器应用程序和客户应用程序间的同步;在同步步骤之后用调用服务器应用程序的方法来改变对象。实施本方法的各个步骤的设备和制造的文章也一起公开。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
1、专利技术名称在分布计算机系统中保持数据完整性的方法和设备1A专利技术者Anders Vinberg等1B受让人计算机合作者思维公司2、相关申请的相互参考,有则附本申请是美国临时专利申请,系列号为60/131,019(于1999年4月26日提出)的继续申请,它又是美国系列号为09/408,213(于1999年9月17日提出)的部分的继续申请,它又是美国系列号为08/829,919(于1997年7月15日提出)的继续申请;它又是美国临时专利申请系列号为60/021,480(于1996年7月18日提出)的继续申请。每一个相关申请在这里作为参考的一部分。3、联邦政府资助的研究与开发的权利说明,有则附本专利技术不基于任何联邦政府资助的研究与开发项目。在许多情况下,通信技术提供同样的服务给同一计算机中不同程序的通信,或者不同计算机程序的通信,甚至在某些情况下同一程序内部的通信。在另一些情况下,不同的技术,用于不同配置下的通信。然而,现有的技术引起某些实际问题。没有现存的服务满足现代分布应用的所有要求。不同的服务很少被集成,这意味着,一个需要几个服务组合起来的程序,必须做许多工作去组合它们。在实践上这种作法很难不引入小错误,从而削弱数据的完整性。另外,许多服务的闭合特性常常使开发者组合它们是不可行的。例如,微软公司提供一种ORB服务叫做COM,它是基于通常的以连接为基础的通信。微软也提供一种存储转发报文系统叫做MSMQ。无论如何,COM不支持用MSMQ于通信中来得到非同步的服务调用。状态传送技术对象请求代理程序在现在的技术中有一些系统提供调出在远方服务器的服务。这些通常称作远方过程调用(RPC)服务。当它们是基于对象模型时,就叫作对象请求代理程序。这种系统根本的标志是在服务器中保留对象的状态。当建立分布系统时,希望客户端的程序去访问服务端对象的组成其状态的各个单个属性,开发者一般可在两个可选当中选择,但是没有一个是有吸引力的。对象服务器可以单独地暴露属性,用这种getCurrent Balance型的属性回收方法和像SetCorrent Balance的属性设置方法。但是这会是效率很低的;为了检索一个对象状态的全部情况,客户程序需要做大量的请求。现代网络系统和数据库管理系统不是设计成能有效地处理大量的小的请求的,在网络和数据两者的额外开销和等待时间,将使它花费很多。对象服务器可以展示一种getState方法,它回收一个包含整个状态的数据结构。这是比较有效的,因为整个状态在一次对话中就送到客户,但是它破坏对象模型。首先,如果状态是被编码在一个通用的非对象语言的典型的Struct中时,我们由于混合对象与非对象技术而破坏了编程模型。如果状态被编码成一个对象,我们有两个具有非常不同特性的对象状态是本地的,客户端对象没有方法和没有与服务器的关系;原始服务是一个有方法的对象,但是没有属性。为了改变服务器对象的属性,应用程序必需改变本地对象的状态,然后再调用如setState(the state)的方法来把它送回到服务器。这种技术一定可以工作,但是它不是一个清晰的或者易于维护的编程模型。另外,在客户端状态已经修改,但还没有写回到服务器期间,我们有两个不一致的状态版本,处理逻辑将得到不同的结果,取决于它是访问哪一个版本。由于在发送期间的这些限制,希望扩展对象请求代理程序,使它具有更加有效地处理状态的服务。数据库存取系统有一些系统提供对数据库服务器的远方存取,这些系统中的一部分包含自动高速缓存管理。当一个记录已经从服务器检索出来,应用程序可以再回收此记录的值而不用重新去取;对多个记录的更改可保持在高速缓存中,而当Commit(提交)操作执行时,一次写回服务器。某些这样的系统是基于对象技术,在那里被检索的数据用对象的形式表示在应用程序编程语言中。该系统有严重的局限性,其在于,它们检索对象给客户,但是不能够调用在服务器上的此对象的方法。一旦对象的状态已经传送到客户,调用一个对象在服务器上的方法将引起困难;此对象是在客户处维护,其状态可在客户处改变,而执行在服务器上的方法可以是没有意义的。应该注意,这个问题也发生在一般的关系(SQL)数据库中,它们通常提供执行存储过程的支持,例如,假定一个记录被取到客户,然后对此记录的更改是在客户端高速缓存里进行,并且假设这些更改尚未写回到服务器;而现在就调用在服务器端的存储过程,此存储过程将在不正确的数据基础上操作。由于在支持分布处理时,有这些限制,希望扩展的数据库存取系统具有更加一致的管理分布处理的服务。具有存储转发技术的高速缓存高速缓存的管理高速缓存的管理是一种众所周知的技术;许多系统(从数据库存取工具到Web浏览器)提供本地的信息高速缓存以改善反应时间和减少网络的通信量。一个可读的高速缓存用于保存已经被检索的信息;如果应用程序再要求同样的信息,就可以从高速缓存中取。这种缓存可以是暂时的,信息仅在一次对话中存活,也可以是长久的,保存的信息在磁盘中,存在于多个对话中或者甚至计算机断电后也继续存在。自然,如果在服务器上的信息更改,高速缓存的信息成为无效的。在某些情况下,如Web浏览器,这种失效性是可以接受的,从服务器修改信息的责任留给用户。在另一些情况下,它是不能接受的。或者是因为信息是更加动态的,或者是因为应用程序是更加重要的。服务器端更改的异步事件通知是一个被证明有用的技术,用于维持分布的应用程序其各元件间的同步性。一个应用程序可以与长久地存储在数据库中的对象一起工作,而用高速缓存来获得众所周知的性能上的好处。如果在网络中某个地方的另一个应用程序改变在数据库中的一个对象的值,系统源发送一个事件通知到这个应用程序,所以此应用程序可以修改这个值在它的计算机过程中或者在屏幕上。一个可写的高速缓存用于暂时保存数据的改变。当一个客户端应用程序改变其高速缓存里的对象时,这些改变是保存在客户端写的高速缓存中。最终,这些改变要被写到数据库服务器。一旦客户与服务器连接,当应用程序执行一个Commit操作时,这些改变将写回去,依赖于高速缓存管理器和同时控制管理器的策略,改变可以被写回早一些或晚一些,但是至少在Commit执行的时间里完成。具有传统的高速缓存管理的系统,事件通知(从服务器到客户的同步改变)和高速缓存写回(从客户到服务器的同步改变)两者只有在客户计算机连接到数据库服务器时才能有效地工作。这样的系统不能处理失去连接的情形。如果数据库服务器在Cominit操作时是不可访问的,改变不能写回,并且会失去。类似地,当系统未连接时,任何发生在数据库的改变都将失去,因为没有通知有可能送给客户。有时一个应用程序能够对故障异常有一定程度的反应,而走入悬挂状态(Pending State),等待连接重新建立,使Commit操作可以完成;由于有这样一些理由,这种解决办法是没有吸引力的。首先,它把处理这种问题的负担加给应用程序开发者。正确地处理这种中断是困难的,不希望所有的应用程序开发者都需要有正确处理这种问题的技巧和预算。其次,在这种等待期间,应用程序基本上是停止的;停在一个没有完成的处理中,没有其他的数据库操作能够进行,因为它可以是同一个处理的一部分,而这破坏应用程序的语义学。进一步,如果应用程序被关掉,不管是有意的还本文档来自技高网...

【技术保护点】
一种用于保持存储在整个分布计算机系统的数据完整性的方法,此方法包含:发送一个对象从服务器应用程序到客户应用程序;发送一个对象的状态,从服务器应用程序到客户应用程序;在服务器应用程序和客户应用程序间同步此对象和对象的状态;并且 在同步步骤之后用调用应用程序方法来修改此对象。

【技术特征摘要】

【专利技术属性】
技术研发人员:鲁文巴塔特迈克尔黑尔安德斯文伯格查德拉斯卡山德瑞斯西德尼王
申请(专利权)人:计算机合作者思维公司
类型:发明
国别省市:US[美国]

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利