使用共享高速缓存更新版本化软件的方法

文档序号:6596689阅读:329来源:国知局
专利名称:使用共享高速缓存更新版本化软件的方法
技术领域
本发明涉及例如在软件更新过程中用版本化软件的新版本来替换版本化软件的现有版本
背景技术
许多软件组件具有相关联的数据储存,在其中存储由软件组件使用、产生或处理的数据。虽然技术人员也能设想出其他形式的数据储存,但通常,数据储存可以是数据库。数据储存具有逻辑结构或模式(schema),其定义例如关于对象存储哪些信息或属性。每个对象都有按照模式存储的相关联的数据。当要更新软件时,出现了ー种常见的情況。除了新的软件外,典型地,还需要新数据储存,并且新数据储存可能具有与现有数据储存不同的模式。一般而言,新版本软件接管现有版本软件的操作,并且作为结果,在新版本软件能够成为可操作的之前,现有数据储存中的数据必须转换为新数据储存模式并存储在新数据储存中。目前有许多可用的软件更新方法。在划分集群(split cluster)的布置中,具有集群中间件的两个服务器提供有被镜像和共享的存储盘。这种布置允许如果检测到第一主服务器的硬件故障就启动在第二集群的服务器上的软件。在升级软件的过程的期间,必须划分盘以转换数据,并且,在此时期内数据不能被改变,否则,当升级的主机被提升为集群中的主服务器时,会出现不一致。数据改变冻结的这段时期可占用较长时间,甚至是几个小时,并且在此时期内系统视为在功能上是不可用的。在另ー种升级方法中,安装了另一台主机。来自正在操作的主机的数据被备份。然后,数据被恢复,并且开始转换。在转换后,原来的主机被关闭,并且另一台提升为主要的主机。再一次,在数据转换期间,在原来系统上的应用不能改变数据。从上面的描述中可以看出,一般来说,现有软件版本的软件组件必须停止,并且新软件版本的新实例必须启动。然后新版本软件创建带有相关联的模式的新版本数据储存,并用来自现有版本数据储存的数据填充新版本数据储存。一旦新版本数据储存已经被来自现有版本数据储存的数据填充,新版本软件就能开始操作,并且可以去除现有版本软件。然而,在现有版本软件组件被停止和新版本软件的新实例被启动的这段时期内,软件将不提供服务。此外,在将现有版本数据储存转换为新版本数据储存时期内,在现有版本数据储存中的数据必须不改变。因此,改变数据储存中的数据的软件应用在此时期内无法访问数据储存,因此在功能上是不可用的。此外,在一些升级方法中,需要复杂的和昂贵的硬件基础设施以方便升级过程,从而增加了系统成本。此外,在镜像盘必须在升级过程期间划分的系统(例如上文所述的划分集群系统)中,盘的划分造成在升级过程中的増加的复杂性和出错的风险。本发明试图缓解现有技术中的至少ー些问题,并提供用版本化软件的新版本来替换版本化软件的现有版本的新方法。

发明内容
根据本发明的第一方面,提供了ー种方法,其使用共享高速缓存以新版本软件和相关联的新版本数据储存来替换现有版本软件和相关联的现有版本数据储存,其中,软件被版本化,并且每ー个版本的软件在共享高速缓存内具有用于存储至少包括软件识别信息和版本信息的数据的相关联的区域。在本方法的数据储存改变过程的第一步骤中,创建新版本数据储存,该新版本数据储存具有新版本数据储存模式,并包含在数据迁移阶段的开始的起始点处从现有版本数据储存中的数据导出的数据。在本方法的数据储存改变过程的第二步骤中,将改变信息转换为与对新版本数据储存的相应改变有关的重演(replay)信息,该改变信息由现有版本软件存储在共享高速缓存中,并且与在创建新版本数据储存的步骤期间由现有版本软件做出的、对现有版本数据储存的改变有夫。在本方法的数据改变过程的第三步骤中,在数据储存改变过程的重演阶段期间使用重演信息更新新版本数据储存。 根据本发明的第二方面,提供了包括指令的可机读介质,该指令引起处理器执行ー种方法,其使用共享高速缓存以新版本软件和相关联的新版本数据储存来替换现有版本软件和相关联的现有版本数据储存,其中,软件被版本化,并且每ー个版本的软件在共享高速缓存内具有用于存储至少包括软件识别信息和版本信息的数据的相关联的区域。在本方法的数据储存更新过程的第一步骤中,创建新版本数据储存,该新版本数据储存具有新版本数据储存模式,包含在数据迁移阶段的开始的起始点处从现有版本数据储存中的数据导出的数据。在本方法的数据储存改变过程的第二步骤中,将改变信息转换为与对新版本数据储存的相应改变有关的重演信息,该改变信息由现有版本软件存储在共享高速缓存中,并且与在创建新版本数据储存的步骤期间由现有版本软件做出的、对现有版本数据储存的改变有夫。在本方法的数据改变过程的第三步骤中,在数据储存改变过程的重演阶段期间使用重演信息更新新版本数据储存。根据本发明的第三个方面,提供了具有存储在可机读介质上的版本化软件程序的网络单元。网络单元还具有与存储在存储介质上的版本化软件程序相关联的数据储存。网络单元还具有与在高速缓存存储介质上形成的软件程序相关联的高速缓存区,高速缓存区在其内存储有数据,该数据至少包括相关联的软件程序的软件识别信息和版本信息,并且高速缓存区是共享高速缓存的一部分。版本化软件包括创建新数据储存功能,其在ー种方法的数据储存改变过程期间可操作成创建数据储存,该方法以版本化软件程序和与版本化软件程序相关联的数据储存来替换现有版本软件和相关联的现有版本数据储存,数据储存具有数据储存模式,数据储存包含在数据迁移阶段的开始的起始点处从现有版本数据储存中的数据导出的数据。版本化软件还包括创建重演信息功能,其在数据储存改变过程期间可操作成将改变信息转换为与对数据储存的相应改变有关的重演信息,该改变信息由现有版本软件存储在共享高速缓存中,并且与在创建数据储存的步骤期间由现有版本软件做出的、对现有版本数据储存的改变有关。版本化软件还包括更新数据储存功能,其在数据储存改变过程期间可操作成在数据储存改变过程的重演阶段期间使用重演信息来更新数据储存。本发明的方法可使现有软件在新版本软件初始化期间能够继续为終端用户提供现有软件功能性,与在新版本软件初始化时期内软件系统功能性暂停或对系统数据的访问暂停的系统相比,导致软件功能性或对系统数据的访问不可用的时间减少。


现在将參照附图通过举例的方式来描述本发明
图I是用于实现本发明的实施例的装置的示意 图2示出在本发明的实施例的方法期间的、软件程序的不同软件操作状态;
图3是示出根据本发明的实施例的更新版本化软件的示范性方法的流程 图4示出本发明的实施例的操作。
具体实施例方式现在将參照附图的图广图4来描述本发明的实施例。在一个实施例中,本发明涉及使用共享高速缓存以新版本软件程序替换现有版本软件程序的方法。示范性描述的实施例在以新版本软件替换现有版本软件期间使用共享高速缓存。共享高速缓存功能性通常使得一些实体(在此情况下为现有版本软件和新版本软件)成为组或集群的ー个成员。组或集群的每ー个成员可接收由另ー个成员发送给它的消息,并且能够与组的其他成员共享应用数据。本文使用的术语“共享高速缓存(shared cache)”意于涵盖允许在不同的软件程序之间(在某些情况下是在不同的主机计算机上)进行自动数据共享和消息传递(messaging)的所有这样的机制。如将对技术人员显而易见的那样,共享高速缓存功能性可以以不同的方式实现。目前有一些产品可用来实现这一功能性例如,开源产品Shoal (https://shoal. dev.java. net/)和 Memcached (http://www. danga. com/memcached/);以及商业上可得到的产品 Gigaspace XAP (http://www.gigaspaces.com/datagrid)。但是,本发明不限于使用这些产品,并且可使用提供共享高速缓存功能的任何布置。共享高速缓存功能性由新版本软件中和现有版本软件中的各自的共享高速缓存功能提供,它们互相通信来为共享高速缓存创建所描述的共享高速缓存功能性。 在本发明的实施例中,新版本软件程序可安装在与现有版本软件程序相同的计算机主机上,或者可安装在不同的计算机主机上。通常,在一些实施例中,可提供客户端软件以使用户能够与软件程序进行交互。再次,在本发明的不同实施例中,客户端软件可安装在相同的计算机主机上或不同的计算机主机上。在示范性实施例中,当安装新版本软件程序时,现有版本软件程序被安装和操作。通常,新版本软件将是现有版本软件的新发行,并且在这种情况下,本发明提供了更新软件的新方法。本发明广泛适用于许多不同类型的软件,并且特别适合于将在软件程序升级期间软件程序不可用的时间保持为最小的应用。在一些实施例中,本发明可应用于软件单元的远程升级。一个这样的应用是在通信网络中的软件程序単元的升级。然而,将明确的是,本发明不限于这ー应用,而是广泛适用于许多软件程序単元的替换或升级。
所公开的方法使现有版本软件程序能够继续操作,并在从新版本软件程序刚一安装后到新版本软件程序准备好提供软件程序功能性的时期内提供软件程序的功能性。因此,软件程序的功能性是不可用的时间被最小化。图1是用于实施本发明的一个实施例的装置的示意图。现有版本软件程序(PROGvI. 0)2在计算机主机4上安装和操作。本发明可应用到的软件程序的示例是通信网络的网络管理系统内的网络控制器。通常,网络控制器安装在网络管理服务器上。然而,如技术人员将意识到的,本发明可应用到其他软件程序。现有版本软件程序2在操作上耦合到主机计算机4上的相关联的现有版本(vl. 0)数据储存6,以存储由现有版本软件程序2创建或使用的信息。将对技术人员显而易见的是,现有版本数据储存6可以是数据库,或可以是文件系统或任何其他数据储存。在示范性实施例中,现有版本数据储存6是数据库。现有版本软件程序2具有共享高速缓存功能2a,共享高速缓存功能2a可操作成附连到共享高速缓存8。如将在下文更详细描述的那样,共享高速缓存8是由共享高速缓存功能2a和新版本软件程序14的共享高速缓存功能14d创建的逻辑架构。如技术人员所知的那样,现有软件程序2能够在共享高速缓存8中存储信息。还在客户端主机12上提供了在操作上耦合到现有版本软件程序2的现有版本软件程序客户端(PROG Client vl. 0) 10。如技术人员所熟知的那样,现有版本客户端10进行操作以控制现有版本软件程序2并从现有版本软件程序2接收信息,并使用户能够与现有版本软件程序2交互和控制现有版本软件程序2。客户端主机12示出为与主机4分离,因为如技术人员将知道的那样,客户端主机12可以远离主机4,但在ー些实施例中,客户端主机12可以是主机4的一部分。新版本软件程序14安装在计算机主机16上。新版本软件程序14至少包括以下功能创建新数据储存功能14a ;创建重演信息功能14b ;以及更新数据储存功能14c ;以及共享高速缓存功能14c。如将对技术人员显而易见的那样,新版本软件程序也将具有与软件程序操作的详细功能性有关的附加功能,该附加功能与本发明无关而因此被省略。此外,设想在一些实施例中,新版本软件程序也将提供有主调度功能,该主调度功能至少在软件安装后的操作的初始时期内是操作的,并负责调用功能14a 14d以执行本发明的实施例的方法。然而,为清楚起见,主调度功能被省略了。如将对技术人员显而易见的那样,可以使用更多的或更少的功能模块达到所描述的功能性,并且,在软件内的软件功能模块的内部结构或功能性布置是技术人员的设计选择的问题。虽然计算机主机16示出和描述为与主机4分离,但显而易见的是,在本发明的备选实施例中,新版本软件程序14可同等地安装在主机上4。新版本软件程序14在操作上耦合到在计算机主机16上的相关联的新版本数据储存18,来存储由新版本软件程序14在操作期间、以与为现有版本软件程序2提供的现有版本数据储存6类似的方式创建或使用的信息。再一次,将对技术人员显而易见的是,新版本数据储存18可以是数据库或文件系统或任何其他数据储存。在示范性实施例中,新版本数据储存18是数据库。
如技术人员所知的那样,共享高速缓存功能14d可操作成附连到共享高速缓存8,以及能够在共享高速缓存8中存储信息,并且从共享高速缓存8读取信息。还在客户端主机12上提供了新版本软件程序客户端(PROG Client v2.0)20,并且其在操作上耦合到新版本软件程序14。如技术人员所熟知的那样,新版本客户端20进行操作以控制新版本软件程序14和从新版本软件程序14接收信息,并使用户能够与新版本软件程序14交互和控制新版本软件程序14。
在共孚闻速缓存8内,现有版本软件程序2提供有相关联的现有版本共孚闻速缓存区22,其在示出的实施例中形成于计算机主机4的存储器或存储区域中。现有版本共享高速缓存区22被用于存储与现有版本软件程序2有关的状态信息和动作信息两者。因此,在现有版本共享高速缓存区22中至少存在区域24,包含与现有版本软件程序2的标识和版本有关的信息(状态信息);以及区域26,包含现有数据储存更新记录信息(动作信息)。此夕卜,诸如现有版本数据储存的地址(例如互联网协议地址)的其它信息也可以被存储在现有版本共享高速缓存区22中(在图I中未示)。在共孚闻速缓存8内,新版本软件程序14也提供有相关联的新版本共孚闻速缓存区28,其在示出的实施例中形成于计算机主机16的存储器或存储区域中。新版本共享高速缓存区28被用于存储与新版本软件程序2有关的状态信息和动作信息两者。因此,在新版本共享高速缓存区28中至少存在区域30,包含与相关联的新版本软件程序14的标识和版本有关的信息;以及区域32,包含改变信息;以及区域34,包含重演信息。如上所述,由现有版本软件程序和新版本软件程序中的各自的共享高速缓存功能2a和14d实现的共享高速缓存功能性,使存储在一个共享高速缓存区的数据被自动复制到另ー个共享高速缓存区。如将在下面的描述中更详细描述的那样,这一功能性被应用在描述的实施例中,以将存储在现有版本共享高速缓存区的区域26中的现有数据储存更新记录信息复制到新版本共享高速缓存区的区域32。此外,如将在下面更详细地解释的那样,可以使用共享高速缓存功能2a和14d在新版本软件程序和现有版本软件程序之间发送消息。最后,如将在以下更详细地解释的那样,在主机16上提供作为现有版本数据储存6的副本而形成的现有版本(vl. 0)数据储存副本36。数据储存副本36耦合到新版本软件程序14以向其提供数据。从上面的描述将明确的是,使用本发明的方法的软件程序是版本化的,并且可知道其程序标识和版本标识。因此,在描述的实施例中,现有版本共享高速缓存区22和新版本共享高速缓存区28具有各自的区域24、30来存储程序及各自的版本标识信息。现在參照图2解释根据本发明的实施例的、在版本化软件的替换期间的软件程序的不同的软件操作状态。在图2中,直到将相同软件14的新版本安装成备用(standby)状态42,现有版本软件程序2以在线状态40操作。新版本软件程序14确定现有版本软件程序2的存在,因此新版本软件程序14进入数据储存改变过程44(为清晰起见,在图2中未示出没有检测到现有版本软件程序的情況)。现有版本软件程序2继续操作并提供软件功能性。在数据储存改变过程44期间,现有版本软件程序2处于记录数据储存更新状态46,在该状态中记录与现有数据储存中的改变有关的信息。当数据储存是数据库时,能由现有版本软件程序2记录的动作是创建(Create)、删除(Delete)和更新(Update)。如将在以下更详细地解释的那样,在本发明的实施例中,仅有必要在共享高速缓存中记录最后的动作,并且存储的每ー个新的动作可以覆盖(overwrite)前ー动作,而没有必要在共享高速缓存中记录所有更新的日志或历史。在数据储存改变过程44期间,新版本软件程序14首先进入数据迁移状态48,在该状态中,新版本数据储存18被创建并被填充了在数据储存改变过程开始时来自现有版本数据储存6的数据。新版本软件还确定要求对新版本数据储存进行什么更新,以反映自数据储存改变过程的开始以来在现有版本数据储存6中的改变。
一旦数据迁移已经结束,新版本软件程序14就进入重演状态50,在该状态中,与自数据储存改变过程的开始以来对现有版本数据储存6的改变对应地更新新版本数据储存18。将參照图3和图4更详细地描述在数据迁移状态48和重演状态50期间由新版本软件程序14执行的动作。一旦在重演状态50的終点新版本数据储存完成和待用,新版本软件程序14就过渡到在线状态52,而现有版本软件程序2就从记录状态46过渡到离线状态54。因此,在安装后,新版本软件程序14以备用状态42开始,并经过数据迁移状态48到重演状态50并且然后到在线状态52。同时,最初处于在线状态40的现有版本软件程序2在数据储存改变过程44期间处于记录状态46。一旦数据储存改变过程44完成,当新版本软件程序14从重演状态50过渡到在线状态52时,现有版本软件程序2过渡到离线状态54。现在将參照示出了更新版本化软件60的示范性方法的图3来描述示范性实施例的方法。在更新版本化软件的方法60的开始,新版本软件程序14处于备用状态42。正如图3所示,新版本软件程序14在步骤62检测是否有软件的现有版本存在。在示范性实施例中,这ー步骤使用由共享高速缓存功能14d提供的共享高速缓存功能性来执行。因此,共享高速缓存功能在主机16中的合适存储区域内建立新版本共享高速缓存区28。然后共享高速缓存功能14d搜索具有相同的标识信息(PROG)但是具有不同的版本号(版本I. 0而不是v2. 0)的另ー个共享高速缓存功能。如传统上的那样,如果软件的现有版本不存在(未在图2中示出),步骤62为否,则新版本软件程序14就在步骤64中创建新版本数据储存18,并在方法60的步骤66将新版本状态改变为在线。然而,如在示出的实施例中的那样,如果检测到具有相同的识别信息(PROG)但是具有不同的版本号(版本I. 0而不是v2. 0)的共享高速缓存功能2a,则确定软件的现有版本已存在,步骤62为是。当确定软件的现有版本已经存在吋,步骤62为是,在步骤67,共享高速缓存功能14d建立与共享高速缓存功能2a的共享高速缓存8。共享高速缓存功能2a、14d能够共享在其各自的共享高速缓存区22和28中的数据并访问存储在任何共享高速缓存区中的数据。此外,共享高速缓存功能能够彼此发送指令。在描述的实施例中,共享高速缓存功能14d请求由共享高速缓存功能2a将数据复制到共享高速缓存功能14d,该数据存储在用于存储对现有数据储存6的更新的区域26中,并存储在新版本共享高速缓存区28的改变区域32中。
此后,新版本软件程序14进入在示出的实施例中同时执行的数据迁移创建步骤68和数据迁移转换步骤70。在数据迁移创建步骤68,创建新数据储存功能14a创建新版本数据储存18。新版本数据储存18可能具有与现有版本数据储存6不同的逻辑结构或模式,但应该用来自现有版本数据储存6的数据填充。因此 ,在本实施例的数据迁移创建步骤68中,创建新数据储存功能14a首先通过在数据迁移阶段的开始时复制现有版本数据储存6来创建现有版本数据储存副本36。在本发明的实施例中,复制可以由共享高速缓存功能14d以如下方式来完成,即经由共享高速缓存功能2a访问存储在现有版本共享高速缓存区22 (未示出)中的现有版本数据储存6的地址信息,并且然后将地址传给创建新数据储存功能14a。创建新数据储存功能14a也创建新版本数据储存18,并以来自现有版本数据储存副本36的数据填充新版本数据储存18。在本发明的一些实施例中,没有必要建立现有版本数据储存副本36,并且新版本数据储存18可以用直接取自现有版本数据储存6的数据来填充。在数据迁移创建步骤68期间,如上所述,当创建新数据储存功能14a在创建新版本数据储存18时,现有版本软件程序2在记录更新信息,该更新信息与对现有版本共享高速缓存区22的区域26中的现有版本数据储存6的更新有夫。如上所述,由于由共享高速缓存功能2a和共享高速缓存功能14d提供的共享高速缓存功能性的操作,存储在现有版本共享高速缓存区22的区域26中的更新信息被自动复制到新版本共享高速缓存区28中的区域32,在那里它被记录为改变信息。在数据迁移转换步骤70期间,创建重演信息功能14b访问在新版本共享高速缓存区28的区域32中的改变信息,并创建重演信息。重演信息考虑到两个数据储存的逻辑结构或模式上的不同,限定对新版本数据储存18的数据的改变,该改变要求与对现有版本数据储存6的数据做出的改变对应。重演信息例如可作为对新版本数据储存18做出的所有更新的日志而存储。现在将给出在无线电通信网络的情形下的转化的示例,该转化在数据迁移转换步骤70期间由创建重演信息功能14b执行,以将改变信息转化为重演信息,该改变信息与通过共享高速缓存功能性而为新版本软件程序14可得到的、现有版本数据储存6中的改变有关,该重演信息对应于对新版本数据储存18的改变而发挥作用。在示例中,我们假设现有版本数据储存6是数据库,该数据库具有带有属性(列)“Id”、“频率”、“地点”和“操作状态”且名为UtranCell的表。新版本数据储存18具有带有属性(列)“ID”、“低带频率”、“高带频率”、“功率级另IJ”、“地点”和”操作状态”且名为UtranCell的表。因此,能看出,数据储存模式已经改变新版本数据存储在频率以及通过属性“功率级别”増加的新功能性上具有不同的属性。在数据迁移阶段的开始,假设在表中有10个UtranCell。如上所述,在数据迁移阶段期间,现有版本软件程序14继续工作,井能更新在现有版本数据储存6中的数据。这些改变被记录在现有版本共享高速缓存区22的区域26中,并且由共享高速缓存功能性自动复制到新版本共享高速缓存区28的区域32,并作为改变信息存储在那里。然后创建重演信息功能14b从改变信息创建重演信息。示范性的三对改变信息及相应的重演信息陈列如下
示例I :改变信息DELETE UtranCell Id=I
重演信息DELETE UtranCell Id=I
示例2
改变信息UPDATE UltranCell Id=2,
频率=1231
重演信息UPDATE UltranCell Id=2,
低带频率=31,
高带频率=12
示例3
改变信息CREATE UtranCell I lFrequency=1443,
地点=London_l,
操作状态=UP,
重演信息CREATEUtranCell 11 频率=1443,
低带频率=43,
高带频率=14,
功率级别=23 (默认值),
地点=London_l, 操作状态=UP.
在一些实施例中,可以指定当在现有版本数据储存模式中没有捕捉到相应的信息时在生成重演信息中使用的默认值。因此,在示例3中,在要被应用到新版本数据储存的重演信息中提供了功率级别的默认值,因为这一信息没有存储在现有版本数据库中。在示出的实施例中,重演信息被存储在新版本共享高速缓存区28的区域34中,但将对技术人员显而易见的是,没有必要使重演信息存储在高速缓存中,如将对技术人员显而易见的那样,取而代之,重演信息可被存储在任何适当的储存中。虽然在示范性实施例中数据迁移创建步骤68和数据迁移转换步骤70是被示为同时执行的,但这不是必要的,并且在一些实施例中,这些活动可以依次执行。在一些实施例中,改变信息的日志可在数据迁移期间累积,并且在改变信息的累积日志中的改变信息可在数据迁移已经完成之后转化成重演信息。一旦数据迁移步骤68和70已经完成,创建新数据储存功能14a就已创建了新版本数据储存18,新版本数据储存18具有新数据储存模式并由在数据迁移阶段的开始时来自现有版本数据储存6的数据来填充。此外,创建重演信息功能14b已生成重演信息,该重演信息限定对新版本数据储存18的改变,该改变要求与自数据迁移阶段的开始以来对现有版本数据储存6做出的改变对应。此后,在方法60的步骤72中,更新功能14c使用重演信息更新新版本数据储存18,在这ー实施例中,重演信息存储在新版本共享高速缓存区28的区域34中。一旦新版本数据储存18已经被功能14c使用存储的重演信息更新,则在新版本数据储存18中的数据就完全是最新的。现在软件更新完成从而在方法60的步骤74中,新版本软件程序14的状态被改变为在线,并且现有版本软件程序2的状态被改变为离线。现有版本软件程序2的状态可以以多种方式改变为离线。在本发明的示范性实施例中,进入离线的指令能经由共享高速缓存功能14d和共享高速缓存功能2a来发送。现在将參照图4描述对图I所示的发明的实施例的操作的详解。最初,现有版本软件程序2处于在线状态40。在步骤81 “开始”中,将新版本软件程序14安装在主机16上并以备用状态42开始。接着,在步骤82 “创建状态(PROG,v2. 0,data)”中,新版本软件程序14创建新版本共享高速缓存区28。如上所述,现有版本软件程序的共享高速缓存区28包含与区域30中的程序标识和版本号有关的信息。在步骤83 “获取状态”中,新版本软件程序14询问共享高速缓存8,以确定程序的先前版本是否存在。在本示例中,假定程序的先前版本存在以及因而以上所述的更新安装方法60将是必要的。将记录的更新动作从现有版本共享高速缓存区22的区域26复制到新版本共享高速缓存区28的区域32是通过共享高速缓存机制来启动的。在一些实施例中,在步骤84 “在高速缓存中记录动作”中,共享高速缓存8发送消息给现有版本软件程序2,以开始在更新记录区域26中记录对现有版本数据储存6的更新动作。然而,在本发明的一些实施例中,设想现有版本软件程序2将已经在记录动作,以及因而可能不必要在所有的实施例中启动记录。既然新版本软件程序14已经确立了程序的先前版本存在,则进入数据迁移状态,并且新版本软件程序14在步骤85 “备份”中创建数据储存6的现有版本数据储存副本36。新版本软件程序14还以步骤86 “创建消息”来创建带有新模式的新版本数据储存18。在这个阶段,新版本数据储存18没有填充任何数据。新版本软件程序14在步骤87 “迁移数据”中开始将来自现有版本数据储存副本36的数据迁移到新版本数据储存18。同时,现有版本软件程序2在步骤88“改变”中继续进行对现有版本数据储存6的更新,并将在步骤88 “改变”中对现有版本数据储存6的改变在步骤89 “更新状态”中记录到现有版本共享高速缓存区22的区域26。在一些实施例中,并不要求一个单独的步骤,并且动作的记录可自动发生。共享高速缓存功能性将在步骤89 “更新状态”期间存储在现有版本共享高速缓存区22的区域26中的信息复制到新版本共享高速缓存区28的区域32。如将对技术人员显而易见的那样,在一些实现中,步骤89可作为步骤88的一部分执行。备选地,在数据储存改变过程44期间,在步骤88 “改变”中更新在现有数据储存6中的数据实际上并不是总是必要的,取而代之,动作可以只在步骤89 “更新状态”中被记录。在步骤90 “通知改变”中,新版本软件程序14被通知了改变信息被复制到新版本共享高速缓存区28的区域32,并且然后新版本软件程序14创建重演信息并在步骤91 “存储重演动作”中将重演信息存储在新版本共享高速缓存区28的区域34中。如上所述,在示范性实施例中,重复步骤88、1,直到步骤87“迁移数据”已经完成并且存储在数据储存副本36中的所有数据都已转移到新版本数据储存18为止。—旦数据迁移阶段已经完成,步骤92 “迁移”结束,新版本软件程序14进入重演状态50。在重演状态50中,在步骤93 “获取重演动作”,在示范性实施例中,新版本软件程序14检索存储在新版本共享高速缓存区28的区域34中的重演信息,并在步骤94“重演动 作”使用检索的重演信息更新新版本数据储存18。一旦所有的重演动作已经完成,新版本数据储存18就完全是最新的,并充分反映了在现有版本数据储存6中的最新数据。因此,在示范性实施例中,新版本软件程序14通过经由共享高速缓存8发送停止消息来指示现有版本软件程序2进入离线状态。因此,在步骤95 “停止状态(PROG vl. 0)”中,使用共享高速缓存功能2a和14d从新版本软件程序14发送停止现有软件程序2的操作的指令。作为响应,在步骤96 “销毁消息”中,共享高速缓存功能2a指示现有版本软件程序2停止操作。在一些实施例中,共享高速缓存也销毁与现有版本软件程序2相关联的现有版本共享高速缓存区22。响应在步骤96 “销毁消息”中的来自共享高速缓存8的指令的接收,现有版本软件程序2进入离线状态54。用于现有版本数据储存6的存储不再是现有版本软件程序所要求的,并且现在可以被在主机计算机4中的其他过程使用。因此,在描述的实施例中,在步骤97 “销毁消息”中,新版本软件程序14也删除现有版本数据储存6。现有版本软件程序不再是操作的,并且新版本软件程序14进入在线状态52和开始使用相关联的新版本数据储存18进行操作。在描述的实施例中,现有版本软件在数据储存改变过程44期间进入记录更新状态46。然而,在其他的实施例中,设想数据储存更新的记录已经被记录在现有版本共享高速缓存区22的区域26中。在这种情况下,共享高速缓存将只是将新的更新记录从现有版本共享高速缓存区22的区域26复制到新版本共享高速缓存区28的区域32。在描述的实施例中,用于存储重演信息的区域34被提供在新版本共享高速缓存区28中。然而,没有必要在新版本共享高速缓存区28中存储重演信息,并且在一些实施例中,如将对技术人员显而易见的那样,重演信息可存储在另ー个存储区域中。在说明书中,术语软件或软件程序意于也适用于软件程序段以及完整的软件程序,并且意于指能够被处理器服从的任何指令集。因此能看出,本发明提供了使用共享高速缓存更新软件的新方法。受益于在以上描述以及相关附图中提出的教导的本领域技术人员将会想到所公开的发明的修改和其它实施例。因此,可以理解的是,本发明并不限于公开的具体实施例,并且修改和其他实施例意于包括在这一公开的范围内。虽然本文可能采用了特定的术语,但它们仅仅在通用性和描述性的意义上被使用,而不是出于限制的目的。权利要求
1.一种方法,其使用共享高速缓存以新版本软件和相关联的新版本数据储存来替换现有版本软件和相关联的现有版本数据储存,其中,所述软件被版本化,并且每一个版本的所述软件在所述共享高速缓存内具有用于存储至少包括软件识别信息和版本信息的数据的相关联的区域,所述方法包括数据储存改变过程,所述数据储存改变过程包括以下步骤 创建新版本数据储存,所述新版本数据储存具有新版本数据储存模式,包含在数据迁移阶段的开始的起始点处从所述现有版本数据储存中的所述数据导出的数据;以及 将改变信息转换为与对所述新版本数据储存的相应改变有关的重演信息,所述改变信息由所述现有版本软件存储在所述共享高速缓存中,并且与在创建所述新版本数据储存的所述步骤期间由所述现有版本软件做出的、对所述现有版本数据储存的改变有关;和 在所述数据储存改变过程的重演阶段期间使用所述重演信息更新所述新版本数据储存。
2.如权利要求I所述的方法,在初始备用阶段还包括以下步骤 创建高速缓存区来至少存储软件识别信息和版本信息数据。
3.如权利要求2所述的方法,在初始备用阶段还包括以下步骤 通过确定具有相同的识别信息和不同的版本信息的区域是否存在来检测所述软件的现有版本是否存在;并且,如果检测到所述软件的现有版本,则还包括以下步骤 以所述软件的所述现有版本创建所述共享高速缓存;以及 启动数据储存改变过程。
4.如在前的任一项权利要求所述的方法,还包括以下步骤经由共享高速缓存指令指示所述现有版本软件记录改变信息,所述改变信息与数据改变动作有关,在所述现有版本共享高速缓存区中的所述现有版本数据储存中做出。
5.如在前的任一项权利要求所述的方法,还包括以下步骤指示所述共享高速缓存将随后添加到所述现有版本共享高速缓存区的改变信息复制到所述新版本共享高速缓存区。
6.如权利要求5所述的方法,还包括以下步骤访问所述新版本共享高速缓存区以获取所述改变信息,所述改变信息与在所述数据迁移阶段期间由所述现有版本软件做出的、对所述现有版本数据储存中的所述数据的改变有关。
7.如在前的任一项权利要求所述的方法,包括以下步骤 在所述新版本共享高速缓存区中创建改变区域,以及 指示所述共享高速缓存将随后添加到所述现有版本共享高速缓存区的改变信息复制到在所述新版本共享高速缓存区中的所述改变区域。
8.如在前的任一项权利要求所述的方法,还包括以下步骤将重演信息存储在所述新版本共享高速缓存区的重演区域。
9.如在前的任一项权利要求所述的方法,其中,一旦通过用在所述数据迁移阶段期间累积的所述重演信息更新所述新版本数据储存来完成所述数据储存改变过程,所述方法还包括以下步骤 将所述现有版本软件的所述状态改变为离线;以及 去除与所述现有版本软件相关联的所有数据结构。
10.如权利要求9所述的方法,还包括以下步骤使用共享高速缓存指令来将现有版本软件的状态改变为离线。
11.如在前的任一项权利要求所述的方法,其中,一旦通过用所述重演信息更新所述新版本数据储存来完成所述数据储存改变过程,所述方法还包括以下步骤 将所述新版本软件的所述状态改变为在线。
12.一种包括指令的可机读介质,所述指令引起处理器执行一种方法,其使用共享高速缓存以新版本软件和相关联的新版本数据储存来替换现有版本软件和相关联的现有版本数据储存,其中,所述软件被版本化,并且每一个版本的所述软件在所述共享高速缓存内具有用于存储至少包括软件识别信息和版本信息的数据的相关联的区域,所述方法包括数 据储存更新过程,所述数据储存更新过程包括以下步骤 创建新版本数据储存,所述新版本数据储存具有新版本数据储存模式,包含在所述数据迁移阶段的开始的起始点处从所述现有版本数据储存中的数据导出的数据;和 将改变信息转换为与对所述新版本数据储存的相应改变有关的重演信息,所述改变信息由所述现有版本软件存储在所述共享高速缓存中,并且与在创建所述新版本数据储存的所述步骤期间由所述现有版本软件做出的、对所述现有版本数据储存的改变有关;以及在所述数据储存改变过程的重演阶段期间使用重演信息更新所述新版本数据储存。
13.如权利要求12所述的可机读介质,还包括导致所述处理器在初始备用阶段执行以下步骤的指令 通过确定具有相同的识别信息和不同的版本信息的区域是否存在来检测所述软件的现有版本是否存在; 并且,如果检测到所述软件的现有版本,则还包括以下步骤 以所述软件的所述现有版本创建所述共享高速缓存;以及 启动数据储存改变过程。
14.一种网络单兀,具有 存储在可机读介质上的版本化软件程序; 数据储存,与存储在存储介质上的所述版本化软件程序相关联;以及高速缓存区,与在高速缓存存储介质上形成的所述软件程序相关联,所述高速缓存区在其内存储有至少包括所述相关联的软件程序的软件识别信息和版本信息的数据,并且所述高速缓存区是共享高速缓存的一部分; 其中,所述版本化软件包括在一种方法的数据储存改变过程期间可操作的以下功能,所述方法以所述版本化软件程序和与所述版本化软件程序相关联的所述数据储存来替换现有版本软件和相关联的现有版本数据储存 创建新数据储存功能,其可操作成创建所述数据储存,所述数据储存具有数据储存模式,所述数据储存包含在数据迁移阶段的开始的起始点处从所述现有版本数据储存中的所述数据导出的数据; 创建重演信息功能,其可操作成将改变信息转换为与对所述数据储存的相应改变有关的重演信息,所述改变信息由所述现有版本软件存储在所述共享高速缓存中,并且与在创建所述数据储存的步骤期间由所述现有版本软件做出的、对所述现有版本数据储存的改变有关;以及 更新数据储存功能,其可操作成在所述数据储存改变过程的重演阶段期间使用所述重演信息来更新所述数据储存。
15.如权利要求14所述的网络单元,其中,所述版本化软件程序还包括 共享高速缓存功能,可操作成通过确定具有相同的识别信息和不同的版本信息的区域是否存在来检测所述软件的现有版本是否存在,并且,如果检测到所述软件的现有版本,则可操作成用所述软件的所述现有版本的相应的共享高速缓存功能来创建所述共享高速缓存。
全文摘要
本发明涉及使用共享高速缓存以版本化软件的新版本替换版本化软件的现有版本,其中软件被版本化,并且每一个版本的软件在共享高速缓存内具有用于存储至少包括软件识别信息和版本信息的数据的相关联的区域。在数据储存改变过程的第一步骤中,创建新版本数据储存,新版本数据储存具有新版本数据储存模式,包含在数据迁移阶段的开始的起始点处从现有版本数据储存中的数据导出的数据。在数据储存改变过程的第二步骤中,将改变信息转换为与对新版本数据储存的相应改变有关的重演信息,该改变信息由现有版本软件存储在共享高速缓存中,并且与在创建新版本数据储存的步骤期间由现有版本软件做出的、对现有版本数据储存的改变有关。在数据存储改变过程的第三步骤中,在数据储存改变过程的重演阶段期间使用重演信息更新新版本数据储存。
文档编号G06F9/445GK102652306SQ200980162942
公开日2012年8月29日 申请日期2009年12月15日 优先权日2009年12月15日
发明者A.米莱诺维奇 申请人:瑞典爱立信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1