具有对数据存取兼容性进行自动调整的远程软件下载方法

文档序号:6415887阅读:158来源:国知局
专利名称:具有对数据存取兼容性进行自动调整的远程软件下载方法
技术领域
本发明一般地涉及将软件由远端源下载到一个程序存储器和,更具体地,涉及一个具有自动调整数据存取兼容性的工具的这种远端软件下载。
背景技术
在数据处理领域中,软件设计员连续地开发和发布相对于老版本软件而言具有改进功能的新版本软件。在传统的计算机系统中,对于用一个较新版本的软件替换较老版本软件,和用一个较老版本的软件替换较新版本软件而言,这有各种原因。
例如,当一个新版本的软件相对于较老版本的这种软件而言,包括改进的功能和/或改进的诊断能力,则它经常令人想要用一个较新,改进版本的软件替换一个较老版本的软件。如另一个例子,如果一个已用较老版本软件编程的多余或替换组件被引入一个其中其他组件使用一个较新版本软件的系统中,则我们希望修改该多余软件,以用在其他系统组件中使用的较新的软件版本来替换它的较老软件版本,使得,例如,所有系统组件运行相同版本的软件。
在其他情况中,我们可能希望用一个较老版本的软件替换一个较新版本的软件。例如,如果一个已用较新版本软件编程的多余或替换组件被引入一个其中其他组件使用一个较老版本软件的系统中,则我们希望修改该新组件,以用在其他系统组件中使用的较老软件版本来替换它的较新软件版本,使得,例如,确保所有系统组件运行相同版本的软件。如另一个例子,如果系统的一个组件被更新以运行一个新版本的软件,从而该系统出现操作问题,则我们希望将一个组件的该软件修改回该操作问题出现之前的较老版本。
在一个其中各个组件可以在地理上相互处于远端的分布式计算机系统中,人们经常希望在用一个版本的软件替换另一个版本的软件时,将所希望的版本的软件由一个远端源下载到在所希望目的地中的程序存储器中。该下载过程典型地是经由一个连接执行的,它是不同地用于在远端源和数据处理器之间的其他类型通信。例如,该远端源可以是在系统中的另一个数据处理器,而该连接可以是一个连接在两个数据处理器之间的通信总线。这如

图1所示,其中,远端源11由通信总线23连接到数据处理器13并经由总线23执行到数据处理器13的程序存储器15的远端软件下载。
图2显示了图1的远端软件下载的效果。更明确地,当前执行的软件SWc由数据处理器13的执行部分21来运行直至所下载的软件SWd由远端源11下载完,此时,SWd开始由执行部分21来运行。因为系统已提供了总线23用于在远端源11和数据处理器13之间的通信,以及因为数据处理器13的地理位置可能使得它难以物理地或人为地访问数据处理器13,则总线23有利地用于执行下载到数据处理器13中的远端软件。
图3和图4分别以图表方式显示了SWc和SWd。SWc和SWd是软件的不同版本。SWc包括一个处理来自图1的数据存储器17的出局的数据管理部分31,它与图4中SWd的数据管理部分41不同。从而,由图3中SWc的数据管理器31在33存取的数据将不需要与图4中SWd的数据管理器41兼容,而SWd的数据管理器41在43存取的数据将不需要与图3中SWc的数据管理器31兼容。例如,各个软件版本SWc和SWd的每一不同数据管理器31和41可以要求与另一个不同的数据格式和/或要求与另一个不同的数据存储格式(或结构)。
图3和4中所存取的数据可以是,例如,一个数据库,一个诸如RAM的易失性存储器,软磁盘或硬磁盘,或一个文件格式。如上所述,SWc可以要求所存取的数据具有不同于SWd所要求的格式,而SWc可以要求数据存储器17的结构与SWd所要求的存储器结构不同。从而,如图1和2所示的通过远端下载来用SWd替换SWc经常导致SWd试图访问一个其数据格式和存储器结构与SWd所要求的不一致的数据存储器17。
该问题的一个传统解决方案是设计一个具有一个提供将来版本软件可能需要的所有可能数据格式和存储器结构参数的数据管理器的初始软件版本。以此方式,当任何版本的软件被下载以替换另一版本时,它将发现数据存储器17具有一个它所要求的数据格式和存储器结构。这当然是一个非常难的任务,因为事实上不可能预测未来版本的软件所要求的数据格式和存储器结构。即使可能执行这一任务,也由于对于预测将来所要求的所有可能数据格式和存储器结构所需要的延长时间量而使得执行费用非常地高。
数据兼容性问题的另一种传统的解决方案是在SWd被下载时,访问数据存储器17的地点和人为地重新格式化数据和重新构造存储器。这一人为方案成本非常高并且费时(数据存储器17可以位于非常远的位置),并可能导致流到在图1中19所示的其他系统组件和由其流出的数据流中的主要干扰。
另一种传统方案认识到较新版本软件的数据管理器可以,在多数情况中,处理在所要以前发布的版本软件中的数据管理器所要求的数据格式和存储器结构。这种方法如图5和6的流程图所示。
图5显示了SWc的下载控制。回忆图2中SWc是在数据处理器13上被执行直至SWd由远端源11下载。SWc的下载控制部分50接收和保存在51下载的SWd,并在53等待一个来自远端源11的允许SWd开始运行的指令。当远端源命令运行SWd时,SWc在55使得数据处理器13重新启动,运行SWd。
图6显示了SWd的下载重格式化部分60。在61,SWd确定它是否支持当前数据库(DB)格式,而它在大多数情况下都支持,这是由于它是比SWc更新的版本文件。否则,如果SWd不支持当前数据库格式,则SWd,它可以管理数据库的SWc的格式,在63将数据库简单地重格式化为它的优选格式。在65,SWd确定它是否支持当前存储结构,而它在大多数情况下都支持,这是由于它是比SWc更新的版本文件。否则,如果SWd不支持当前存储结构,它使用其能力来管理SWc存储结构并在67处简单地将该结构改变为它的优选结构。
再次强调,在图5和6中所示的,下载一个较新版本软件和当需要时,用该较新版本软件重新格式化数据和重新构建存储器的技术,只提出了当一个较新版本软件替换一个较老版本软件时在数据存取不兼容性方面的相对次要的问题。另一方面,一个较老版本的软件通常不能管理由后来版本软件使用的数据格式和存储器结构。从而,在类似上述当一个较老版本软件替换一个较新版本软件的情况中,必须在数据存储器17处进行人为干涉以便于为了与已下载的较老版本软件的数据管理器的兼容性,而人为地重新格式化数据和重新构建存储器。
另一个传统解决方案是只要发布一个具有不同数据管理器和不同数据格式和数据结构要求的新版本软件,就刷新每一个已有版本软件的数据管理器。这对于软件销售者当然非常昂贵和费事。此外,这还难于使这种刷新的软件在所有商业系统中运用。顾客相对于绝对地需要而言,更不希望“干扰”系统,这可能迫使厂商提供各种系统组件,其中每一种由不同的软件版本预编程而其他方面是相同的。厂商可以跟踪顾客所使用的软件版本,并为设备分发在此所编的顾客所使用的软件版本以避免上述当设备被安装在系统中时,用较老的软件版本替换较新的软件版本的过程。为各种设备提供不同软件版本并跟踪顾客系统所使用的软件版本的要求为设备的制造增加了更多复杂性,这对于厂商是成本非常高并费时的。
因此,我们希望提供一种远端下载一个较老版本的软件以替换一个较新版本的软件,其中为较老版本软件提供的数据格式和存储结构与较老版本的软件兼容,而无需在数据存储器处进行人为干涉,无需当发布一个新软件版本就刷新每一软件版本的数据管理器部分,和无需设计最早的软件版本以使其数据管理器将能与将来每一软件版本的数据管理器兼容。
本发明提供一种远端下载一个较老版本的软件以替换一个较新版本的软件,其中所下载的较老版本软件考虑到一个它所兼容的数据格式和存储结构。本发明的技术不要求在数据存储器处的人为干涉,不要求当发布一个新软件版本就刷新每一软件版本的数据管理器部分,不要求第一版本软件的数据管理器适应于将来所发布的每一后续版本的所有数据管理,数据格式化和存储器结构要求。
附图简述图1显示了一个传统分布式计算机系统,其中来自位于数据处理器远端的源的软件被下载到数据处理器的一个程序存储器。
图2概念性显示将来自远端源的软件下载到图1的数据处理器的影响。
图3显示了与图2中所示的当前软件版本有关的数据管理器部分和所存取的数据。
图4显示了与图2中所示的所下载的软件版本有关的数据管理器部分和所存取的数据。
图5为图2的当前软件版本的传统下载控制部分的流程图。
图6为图2的所下载软件版本的传统下载重新格式化部分的流程图。
图7为根据本发明的由当前软件版本所执行的下载控制部分的流程图。
图8为根据本发明的所下载软件版本所执行的下载重新格式化部分的流程图。
图9显示了根据本发明的所有新软件版本的相关部分。
图10示意性显示了一个包括本发明的软件下载技术的蜂窝电话系统。
图11详细显示了一个基站控制器和图10的一个基本收发器站。
详细描述例子图7显示了一个根据本发明的将由当前运行的软件SWc下载控制例程70。在71处,所下载的软件SWd被接收和保存。在73处,SWc等待来自远端源11的指令以开始运行SWd。当它接收到开始运行SWd的指令,SWc在75确定SWd是否是一个比SWc更老的版本。这可以,例如,通过将在SWd中的状态域与在SWc中的相应状态域进行比较来确定。
如果SWd不是比SWc更老的版本,则SWc在77使数据处理器重新启动,运行SWd。如果所下载软件SWd是比当前运行的软件SWc更老的版本,则SWc依靠是比SWd较后的版本,在79处确定SWd是否支持数据库。如果SWd不支持数据库,则SWc在72重新格式化数据库。在74,SWc确定SWd是否支持当前的存储器结构。如果SWd不支持当前的存储器结构,则SWc在76改变存储器结构以与SWd兼容。从而,SWc在需要与SWd兼容时才重新格式化数据库,而SWc在需要与SWd兼容时才改变存储器结构。如果当前数据库与SWd兼容,则它保持不变,而如果当前的存储器结构与SWd兼容,则它保持不变。
例如,图8显示了一个根据本发明的将由当前运行的软件SWd下载控制例程80。当SWc在图7的77处使得数据处理器13重新启动运行SWd时。则SWd在81处确定SWd是否是一个比SWc更老的版本。如果是,则任何必须的数据格式化和存储器构建已在图7中SWc的下载控制部分的72和76处已进行。如果SWd在81处确定为不比SWc更老,则SWd是一个比SWc更新的版本。从而,SWd在83处确定它是否支持当前数据库格式,并在85处当需要时重新格式化,和在87处确定它是否支持当前的存储器结构,并在89处当需要时改变结构。
由前面对图7和8的描述可见,SWc下载控制例程70和SWd重新格式化例程80的组合无论所下载的软件SWd是一个比当前运行的软件SWc更新或更老的版本,都提供了数据格式和存储器结构兼容性。
例子图9显示了本发明的另一个特性,其中所有新的版本SNEW包括随着与特殊版本软件有关的独特数据管理器部分91(其他未示出的功能性部分在本发明中不需理解)的,来自图7的下载控制例程70和来自图8的下载重新格式化例程。由于下载控制70和下载重新格式化80包含在所有软件版本中,无论何时当任何软件版本被下载来替换任何其他软件版本时,并无论哪一版本更老,下载过程将自动实施与数据管理器91的要求兼容的数据格式化和存储器构建。当前执行的软件将执行下载控制例程,同时所下载的软件将执行下载重新格式化例程80。从而,数据处理器将按需要来存取数据以实施它的与数据管理器91兼容的构建和数据格式化。
虽然数据格式化和存储器构建的目的是在图7和8的例子中的调整,任何希望的数据存取参数可以使用图7和8的处理过程来调整。例如,任何希望的目标参数可以在83或79处被考虑,并在85或72处按需要进行调整。
同时,每一个新软件的发布SNEW的数据管理器有利地包括完全知识方式,所有以前版本的数据管理器以此方式来管理数据(例如,数据格式,存储器结构)。这种信息易于使用并易于包含在新软件发布中。该信息允许软件SNEW确定如图7和8所示的重新格式化和重新构建的需要,并按需要实施该过程。
例子图10显示了一个包括本发明的上述特性的蜂窝电话系统。如传统的,一个公共交换电话网101被连接到一个移动服务交换中心103,该中心又依次连接到基站控制器105,该控制器又依次连接到基本收发机站107。该基本收发机站然后经由空中接口(airinterface)连接到诸如在109处的移动电话的移动通信设备。
例子图11显示了一个图10的基本收发机站105,它执行着一个下载到一个基本收发机站107的数据处理器113的程序存储器111的远端软件。在107处的基本收发机站(BTS)还包括连接到数据处理器113的数据存储器117,而数据处理器113包括执行部分以执行保存在程序存储器111中的软件。
应注意到,由SWc所管理和重新格式化的“数据”可以是纯数据或诸如库例程的程序,而“数据”存储器17和117可以保持纯数据和/或一个或更多的程序。
一些对于数据库中的数据为何需要被重新格式化的示例性理由包括(1)为了增加一个被SWc移走但被SWd要求的数据库元素/参数(具有某些缺省值);(2)为了去除一个由SWc增加但SWd不支持的数据库元素/参数;和(3)为了将一个数据库元素/参数的大小改变为SWd所支持的大小,例如,误差记录的大小由一个软件发布到另一个可能已经增大或减小。
一些对于存储器结构的示例性理由包括(1)为了改变一个诸如误差记录的数据库元素/参数的存储器位置;(2)为了改变保存在存储器中的一个程序的保存结构。(3)为了改变诸如保存在存储器中的一个库例程的程序的存储结构,例如,在一个“堆栈”存储结构(其中软件模块连续地,一个接一个地保存在存储器中)和“分段”存储结构(其中软件被分为小段并保存在下一个自由段中)之间变化。
通过使用上述的本发明,这样更加可能将新功能引入一个分布式系统中,而更少地考虑前向和后向的软件兼容性。而且,上述与传统解决方案有关的缺点被避免了,这是因为根据本发明在每一新软件版本中所有需要的包括下载控制例程70和重新格式化例程80,这实质上在时间和金钱上可以忽略。
虽然上面详细描述本发明的示例性实施例,但这对本发明范围没有限制,它可以在各种实施例中实现。
权利要求
1.一种用第二版本的软件替换第一版本软件的方法,包括在一个数据处理器上运行第一版本软件;将第二版本的软件装载到数据处理器;和使用第一版本软件来确定第二版本的软件是否一个比第一版本软件更老。
2.权利要求1的方法,包括如果第二版本的软件比第一版本软件更老,则使用第一版本软件来修改一个存储器以与第二版本的软件兼容。
3.权利要求2的方法,其中,第一版本的软件修改(a)在存储器中的数据格式和(b)存储器中的存储结构。
4.权利要求2的方法,包括如果第一版本的软件比第二版本软件更老,则选择性地使用第二版本的软件来修改存储器以与第二版本的软件兼容。
5.权利要求1的方法,包括如果第一版本的软件比第二版本软件更老,则选择性地使用第二版本的软件来修改存储器以与第二版本的软件兼容。
6.权利要求1的方法,其中,数据处理器包含在一个蜂窝电话系统的基本收发机站中,和其中第二版本的软件由蜂窝电话系统的基站控制器装载在数据处理器中。
7.权利要求1的方法,其中,所述装载过程包括将第二版本软件从一个源装置经由一个在数据处理器与源装置之间的通信路径下载到数据处理器中,该通信路径也可以用于在源装置与数据处理器之间的其他通信。
8.一种用第二版本的软件替换第一版本软件的方法,包括在一个数据处理器上运行第一版本软件;将第二版本的软件装载到数据处理器;和使用第一版本软件来修改一个存储器以与第二版本的软件兼容。
9.权利要求8的方法,包括执行仅当第二版本的软件比第一版本软件更老时,才使用第一版本软件的所述步骤。
10.权利要求8的方法,其中,所述装载第二版本软件的过程包括将第二版本软件从一个源装置经由一个在数据处理器与源装置之间的通信路径下载到数据处理器中,该通信路径也可以用于在源装置与数据处理器之间的其他通信。
11.权利要求8的方法,其中,数据处理器和存储器包含在一个蜂窝电话系统的基本收发机站中,和其中第二版本的软件由蜂窝电话系统的基站控制器装载在数据处理器中。
12.权利要求8的方法,其中,第一版本的软件修改(a)在存储器中的数据格式和(b)存储器中的存储结构。
13.一种数据处理系统,包括一个存储器;一个连接到所述存储器的数据处理器,所述数据处理器包括一个程序存储器和一个用于执行在所述程序存储器中保存的一个第一版本软件的执行部分,所述数据处理器具有一个用于接收一个第二版本软件的输入端;和所述数据处理器,在执行所述第一版本软件的同时,负责在所述输入端接收第二版本软件以使用所述第一版本软件来存取和修改该存储器以与所述第二版本软件兼容。
14.权利要求13的系统,包括一个用于提供所述第二版本软件的一个源装置,和一个连接在所述源装置和所述数据处理器的输入端之间的通信路径,其中所述通信路径将所述第二版本软件由所述源装置传载到所述数据处理器,而其中所述通信路径也可以在所述源装置和所述数据处理器之间传载除了软件之外的其他信息。
15.权利要求13的系统,其中,所述数据处理系统是一个蜂窝电话系统,和其中所述存储器和所述数据处理器被配置在一个蜂窝电话系统的基本收发机站中,并包括一个连接到所述数据处理器的所述输入端,用以将所述第二版本软件提供给所述数据处理器的所述输入端的一个基站控制器。
16.权利要求13的系统,其中,包括如果第二版本的软件比第一版本软件更老,所述数据处理器使用所述第一版本软件来存取和修改所述存储器。
17.权利要求13的系统,其中,所述数据处理器修改(a)在存储器中的数据格式和(b)存储器中的存储结构。
18.权利要求14的系统,其中,所述通信路径包括一个通信总线。
全文摘要
在一种用第二版本的软件替换第一版本软件的方法中,第二版本的软件被装载到一个其上运行着第一版本软件的数据处理器中。在第一版本软件在一个数据处理器上运行的同时,该第一版本软件被用于修改一个存储器以与第二版本的软件兼容。
文档编号G06F9/445GK1278343SQ9881082
公开日2000年12月27日 申请日期1998年10月27日 优先权日1997年10月30日
发明者H·J·P·勒杰斯塔 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1