一种用于在电信交换系统内不中断现有 通信更新软件的方法和系统 本专利文件披露的内容含有已申请版权保护的材料。当它出现在专利商标局的专利文件或资料中时,版权所有者不反对任何人对专利文件或专利内容进行传真复制,但仍保留其它的所有权利。
本发明一般涉及更新电信交换系统中的软件。更具体地说,本发明涉及一种在不用重新启动电信交换系统的条件下通过用新软件版本交换旧软件版本从而更新旧软件的方法和系统。
在现代电信工业中,计算机软件(软件)经常用于对电信交换系统内处理呼叫的各个方面进行控制。遗憾的是,电信软件和其它类型的软件经常含有错误或不需要的响应。这些错误或不需要的响应通常由旨在用于代替有缺陷的版本的新的软件版本进行校正。
在某些类型的计算机系统中,例如独立处理系统或批处理系统,用较新的版本交换旧的软件存在一些障碍。一般地说,计算机系统只有在一天当中没有多少活动并且容易得到维修人员时才关机。然后简单地除去旧的软件,用较新的版本代替。此后,计算机系统被重新启动,用新地软件版本进行处理将来的所有数据。
在另一类型的计算机系统中,例如现代存储程序控制(SPC)电信交换系统(通常在工业中简称为“交换机”(Switches)),在系统中软件的交换不象在独立处理系统或批处理系统中那样简单。
设计电信交换系统旨在不间断地永久运行以便在社区内满足连续通信业务的需要。换句话说,通过交换系统,即使在白天下班时间或在夜间也能处理电信业务量的连续流量。交换系统操作中的任何间断将引起在该交换系统内的电信业务的中断。在电信工业中,这种中断是非常不希望的。
电信交换系统的实时要求对在不中断由交换系统正在处理的现有的电信业务的情况下用含有错误校正或“故障修复”的软件新版本更换软件旧版本提出了严格的限制。在电信工业中,非常希望有一种不需要任何的停机时间便能在操作期间更换交换系统内的软件的方法和系统。
因此,在电信工业内能够在电信交换系统的实际操作期间,不中断正在进行的交换系统内的通信业务便能更换软件将是十分有用的。本发明便提供这样一种方法与系统。
本发明的目的在于,提供一种在电信交换系统内不用重新启动交换系统便能用新的软件版本更换旧软件版本的方法和系统。
在一个方面,本发明是一种在电信交换系统内不用重新启动交换系统便能用新软件版本更换旧软件版本的方法。所述交换系统包括存储器,软件加载子系统,数据库管理子系统,和程序交换子系统。所述方法包括用软件加载子系统把新软件版本装入存储器的步骤,以及用数据库管理子系统在程序交换子系统中登记新的软件版本的步骤。所述方法还包括用程序交换子系统钝化旧软件版本的步骤,和用程序交换子系统激活记录的新的软件版本的步骤。
在另一个方面,本发明是一种用于在电信交换系统中不用重新启动交换系统便能用新软件版本交换旧软件版本的方法。所述交换系统包括存储器,软件加载子系统,数据库管理子系统和程序交换子系统。该方法包括用软件加载子系统把新软件版本装进存储器中的步骤,以及使用数据库管理子系统在程序交换子系统中登记新的软件版本的步骤。该方法还包括用程序交换子系统激活登记的新软件版本的步骤以及用程序交换子系统钝化旧软件版本的步骤。该方法还包括用程序交换子系统确认激活的新软件版本的步骤和用程序交换子系统证明确认的新软件版本的步骤。
通过参看以下附图并结合所附的说明,本领域的技术人员将会更好地理解本发明并更清楚地看出本发明的若干目的和优点,其中:
图1是说明在本发明的最佳实施例中使用的电信交换系统和计算机系统的方块图;
图2是更详细地说明按照本发明最佳实施例的图1的电信交换系统的存储器的程序存储区,参考存储区,数区存储器的结构和内容的方块图;
图3是说明按照本发明最佳实施例的在图1的电信交换系统内的程序交换(PXCP)子系统的元件及其和软件加载子系统以及加载中央处理器子系统的元件的相互作用的方块图;
图4是说明按照本发明最佳实施例的在图1的交换系统内用新软件单元交换旧软件单元的程序交换方法的步骤的流程图;
图5是说明按照本发明最佳实施例的图4中的新软件单元的登记步骤的详细流程图;
图6A-6B是说明按照本发明的最佳实施例的图4中的新软件单元的激活步骤的详细流程图;
图7是说明按照本发明的最佳实施例的图4中的新软件单元的确认步骤的详细流程图;
图8A至8B是说明按照本发明最佳实施例的图4中的新软件单元的证实步骤的详细流程图;
图9A-9B是说明按照本发明最佳实施例的图4中的新软件单元的钝化步骤的详细流程图;
图10A-10B是说明按照本发明最佳实施例的图4中的除去新软件单元的步骤的详细流程图;
图11是说明当通过本发明的程序交换方法执行新的软件单元时的新的软件单元的不同程序交换状态的方块图;以及
图12是说明在本发明的程序交换方法期间新和旧软件单元执行的各个阶段的例子的方块图。
现在参看图1,其中说明了在本发明的最佳实施例中使用的电信交换系统104和计算机系统102的方块图。交换系统104包括存储装置110,软件108,硬件106,存储器122和数据库管理子系统(DBS)124。例如,交换系统104可以是一种存储程序控制交换系统,例如由瑞典的Telefonaktiebolaget LM Ericsson生产的AXE 10。储存装置110例如可以是软盘驱动器,硬盘驱动器,磁带驱动器或光驱动器。
如图2中详细示出的,存储器122被分成数据存储(DS)区206,参考存储(RS)区204,以及程序存储(PS)区202。软件108从存储装置110被装入存储器122,并驻留在每个PS202,DS206和RS204区内。软件108用于通过通信通路112和114(图1)控制硬件106。计算机系统102通过通信通路116和交换系统104通信。计算机系统102例如可以是单独的个人计算机系统,操作与维护中心系统,网络管理中心系统或其它类似类型的系统。DBS 124例如可以是半关系式(Semi-relational)的数据库管理系统。
现在参看图2,图2的方块图详细说明了按照本发明最佳实施例的图1的存储器122的PS202,RS204以及DS206每个存储区的结构和内容。程序存储(PS)区202用于存储多个功能块(计算机程序),其中的每个用唯一的识别数识别。在PS202区内存储的每个功能块可以具有例如和其相关的变量的数据。在PS区202内存储的由功能块参考的任何变量被分别存储在DS区206中。在DS区206中存储的每个变量也可被唯一的变量识别数识别。参考存储(RS)区204被用作确定存储在PS区202内的功能块的位置及其存储在DS区206中的相关变量。
RS区204使用几个参考表和基本表,用来跟踪在PS区202内存储的功能块的各个位置及其在DS区206内的相关变量。在PS区202内存储的每个功能块具有一个在RS区204内的相关的参考表,它以功能块的唯一的识别数标识为索引。由在PS区202内特定的功能块使用的每个变量具有其在DS区206中的由基本地址表(BAT)规定的位置。参考表包括程序开始地址(PSA),和基本开始地址(BSA)。PSA表示存储在PS区202内的相关的功能块的开始地址。BSA表示存储在RS区204中的和功能块相关的BAT的位置。
信号分配表(SDT)存在于在PS区202内存储的每个功能块的开始地址上。SDT规定功能块内任务(程序/功能)的位置。功能块208及其相关表以及变量的例子也示于图2中。功能块208被存储在PS区202内,并可用功能块号01(No.01)来识别。SDT210位于功能块208的开始地址处,并被用于分配功能块208内的特定任务。功能块208具有在RS区204内的相关的参考表212。参考表212在RS区204内由功能块No.01索引。参考表212包括PSA 220和BSA 222。PSA 220识别功能块208的开始地址。BSA 222识别在RS区204内存储的BAT 224的位置。BAT 224识别由功能块208使用的变量的位置。这些变量例如可以是变量状态214,Distcnt 216以及MUP 218。
下面说明如何调用在功能块208内规定的任务的一个例子。首先,RS区204被访问并检索任何由功能块No.01索引的参考表。在这个特定的例子中,参考表212和检索一致。接着,使用PSA 220为功能块208确定开始地址。开始地址被用来和特定任务结合使用以便访问SDT 210并调用特定任务。在执行特定任务期间,功能块208可以请求使用变量状态214,Distcnt 216或MUP 218。如果功能块208请求使用这些变量,则它使用BSA 222访问BAT 224,从而确定在DS区206内变量的位置。
现在参看图3,其中示出了用于说明按照本发明最佳实施例在图1的交换系统中的子系统程序交换(PXCP)394的元件及其与软件加载子系统(CPS)390以及加载中央处理器子系统(LOCP)392的元件之间的相互作用的方块图。PXCP 394包括下列元件:程序交换管理器(PXZA)320,程序交换数据差处理器(PXZD)318,程序交换信号差处理器(PXZS)316,以及程序交换机相关例行程序(PXZMD)314。PXCP 394和以下的CPS 390的元件通信:检查功能控制器(AFCO)302,程序试验监视器(TEM)304,加载管理器参考信息处理器(LARI)308,以及系统事件信息广播器(KEED)306。PXCP 394还和以下的LOCP 392元件通信:加载管理控制器(LACO)310和加载管理符号处理器(LASYMB)312。下面简单地说明PXCP 394的每个元件及其与CPS 390和LOCP 392的元件的相互作用。
PXZA 320协调程序交换的执行。PXZA 320通过双向逻辑通路324,326,348,328和322分别和PXZD 318,PXZS 316,KEED306,PXZMD 314,以及LACO 310通信。PXZD 318证实旧的和新的软件单元存储的数据变量之间的兼容性,并对在程序交换期间新软件单元所需的RS区204和DS区206的数量进行最佳化。PXZD 318通过双向逻辑通路324,334和330分别和PXZA 320,LACO 310,以及LARI 308通信。PXZS 316证实旧的和新的软件单元的信号接口之间的兼容性,并存储关于信号接口之间任何差别的信息。PXZS通过通信通路326和332分别和PXZA 320以及LARI 308通信。PXZMD 314使用汇编例行程序执行程序交换,从而直接更新对于新软件单元的参考表和BAT。对于在AXE 10交换系统中使用的每个不同的硬件平台,需要完成基本相同功能的PXZMD的不同版本。PXZMD 314通过双向通信通路342,344,340,338和328分别和AFCO 302,TEM 304,LASRMB 312,LACO 310以及PXZA 320通信。
在附录A中列出了在执行这种程序交换方法期间通过每个逻辑通路324,326,330,332,334,338,340,342,344和348的通信信号。
LACO 310通知PXCP 394新软件单元已被装入进行程序交换的时间,并作为PXCP 394和CPS 390的存储功能之间的接口。LASYMB 312为要被交换的新和旧软件单元管理信号与变量名符号。
AFCO 302执行PXCP 394和CPS 390的检查功能之间的接口功能,TEM 304包括程序试验系统的中心功能。LARI 308是和机器有关的,并包括多个服务程序,用来读出并更新由交换系统104的操作系统(OS)使用的参考信息(图1)。
现在参看图4,其中示出了说明按照本发明的最佳实施例的图1的交换系统104内,新软件单元和旧软件单元(功能块)进行交换的程序交换方法的一般步骤,该方法从步骤402开始,进入步骤404,在步骤404把要和旧软件单元进行交换的新软件单元装入交换系统104(图1)的存储单元122中。然后进入步骤406,登记新软件单元,然后继续进入步骤408,新软件单元被激活,在新软件单元已被激活之后,该方法进入步骤410进行确认新软件单元。然后继续进入步骤412,确定新软件单元是否正在正确地运行。如果是,则进入步骤418。然而,如果确定新软件操作不正确,则进入步骤414。在步骤414,新软件单元被钝化,然后进入步骤416,把被钝化的新软件单元从交换系统104中除去,然后进入步骤422结束。在步骤418新软件单元被证实,则方法继续进入步骤420,从交换系统104(图1)的存储器122中除去旧软件单元,然后进入步骤422结束。下面详细说明图4中的上述步骤。
在本发明的一个最佳实施例中,在DBS 124(图1)内的命令事务处理可被用来规定几个替换相关的旧软件单元的新软件单元。
在图4的步骤404,新软件单元被装进交换系统104(即PS 202,RS204,和DS206)的存储器122中。在新软件单元已被成功地装入以便进行程序交换之后,DBS 124通过LACO 310使用PLEX-SQL(DBS)语句把交换信息插入PXPROGRAM数据库表中。交换信息例如可以包括新软件单元的块名,旧的和新的软件单元的块数,旧的和新的软件单元的产品号(product number)以及旧的和新的软件单元的R状态。把交换信息装入PXPROGRAM表中使得在步骤406对新的软件单元进行登记。
现在参看图5,其中示出了详细说明按照本发明的最佳实施例,在图4的步骤406进行的新的软件的登记过程。新软件单元的登记从步骤500开始,然后进入步骤504,确定是否允许在PXPROGRAM表中插入表的一行。表的一行必须由程序交换子系统(PXCP)394(图3)插入PXPROGRAM表中而不由操作员插入。如果确定允许插入表的一行,则该方法进入步骤506,但是如果确定不允许,则该方法进入步骤514。
在步506,确定新的软件单元是否和旧软件单元兼容。当在新的软件单元内存在下述条件时,则新软件单元可以和旧软件单元兼容:块的类型和块的外部类型(block type External)和旧软件单元的块的类型和块的外部类型相同,在校正区内不存在校正,信号接口和旧软件单元的信号接口兼容,以及变量结构和旧软件单元变量结构兼容。PXZS 316进行确定旧的软件单元和新的软件单元的信号接口是否兼容。如果它们相同,则信号接口兼容。PXZD 318也确定新和旧软件单元的变量结构是否兼容。PXZD 318在DBS 124(图1)内的VARIABLEDIFF数据库中存储任何兼容的变量差。如果确定新软件单元是兼容的,则方法进入步骤508。然而,当确定新软件不兼容时,则进入步骤510。
在步骤508,当前存在于旧软件单元内的和新软件单元内相同的变量从新软件单元中除去。可移去相同的变量以节省DS区206(图2)的空间,由于新软件继承了旧软件的变量。在从新软件单元中移去了相同的变量之后,压缩新软件单元的BAT,以对每个增加的、改变的、删除的变量只有一个位置存在。在压缩新软件单元的BAT之后,更新VARIABLEDIFF表以确定压缩的BAT中的变量的位置和旧软件单元的BAT中变量的位置之间的映象关系。该方法继续到步骤512。在步骤510,将变量result-code设置成表示新软件单元和旧软件单元不兼容,并且该方法进入到步骤512。在步骤514,确定是否执行了有效表操作。如果确定执行了有效表操作,则方法继续到步骤512。然而,如果确定执行了无效表操作,则方法继续到步骤516。
在步骤516,将表明执行了无效表操作的错误返回结DBS 124(图1),该方法继续到步骤518结束。在步骤512,调用LACO 310中的函数,该方法继续到步骤518结束。在LACO 310中所调用的函数结束对新软件单元进行登记。
图6A-6B是更加详细描述根据本发明优选实施例的图4中激活新软件单元的步骤408。激活的新软件单元由PXZA 320(图3)执行。激活的新软件单元由可使其能被执行的通用DBS命令启动。如果在程序交换过程中交换系统104重新启动系统,则钝化该“活动”的新软件单元。在此,“钝化”一词用于定义一个软件单元能够执行,但不允许执行。
现在参看图6A,在PXPROGRAM表内规定的新的软件单元的活动在步骤600开始,然后进入步骤604,确定是否允许从LACO 310中授权更新系统参考信息。如果确定LACO 310允许,则进入步骤610。然而,如果确定LACO 310不允许,则进入步骤606,向DBS 124(图1)报告功能故障码,然后在步骤652结束。
在步610,PXPROGRAM表被访问,以便选择一个新软件单元和其中规定的旧软件单元;并且确定对于选择的新和旧软件单元程序交换状态是否有效。当新软件单元的程序交换状态等于“ACTIVE”时则有效。当旧软件单元的程序交换状态等于“INACTIVE”时,则它是有效的。如果确定所选的新和旧软件单元的程序交换状态(PXSTATE)是有效的,则进入步骤614。然而,如果确定所选新和旧软件单元的程序交换状态无效,则进入步骤624。在步骤624,故障码被返回DBS 124(图1),并且方法进入步骤626,所选新和旧软件单元被返回其各自的先前状态,并且方法进入步骤642(图6B)。
在步骤614,确定所选的旧和新软件单元的信号接口是否兼容。由于许多原因可以使旧和新软件单元的信号接口不兼容。例如,在新软件单元的加载和激活之间可能存在的时间间隔期间,可能在旧软件单元(即“ACTIVE”单元)中插入信号校正。在所选的旧和新软件单元的信号接口之内的差是不允许的,因为在程序交换期间信号联系信息不被更新。所选旧和新软件单元的信号接口兼容性的确定在PXZS 316(图3)中执行。如果PXZS316确定所选旧和新软件单元的信号接口是兼容的,则进入步骤616。然而,如果PXZS 316确定信号接口是不兼容的,则进入步骤628。在步骤628,向DBS 124(图1)返回故障码,然后方法进入步骤630,所选的旧和新软件单元返回其各自的先前状态,方法进入步骤642(图6B)。
在步骤616,进入程序交换的准备。所述准备包括使PXZA 320向PXZMD 314(图3)发出所选新和旧软件单元的块数。然后,PXAMD314装配在程序交换期间将要更新的有关参考表位置;基本地址表位置以及变量区信息字的信息。然后,方法进入步骤618,确定程序交换的准备是否完成。如果已完成,则进入步骤620。然而,如果确定没有完成,则进入步骤632。在步骤632,故障码被返回DBS 124(图1),并且方法进入步634,所选的旧和新软件单元被返回其各自的先前状态,并且,方法进入步骤642(图6B)。
在步骤620,PXZA 320(图3)对所选的新软件单元的程序交换状态(PXSTATE)设定为“ACTIVE”,并使方法进入步骤622。如果在DBS命令事务处理中说明新软件单元的数太大,则结束规定的新软件单元的激活。在步622,确定在PXPROGRAM表内是否有其他要被激活的新软件单元。如果确定有,则方法返回步610,对不同的所选的新软件单元和旧软件单元重复上述列举的步骤。然而,如果确定没有,则方法以进入步骤636(图6B)。
现在参看图6B,在步骤636,交换在PXPROGRAM表中规定的旧的和新的软件单元。交换被PXZA(图3)启动,对于除去其替代的旧软件单元的现有的变量之外还有变量的新软件单元,命令增加规定的新软件单元的基本地址表的容量。相反,PXZA 320对于比其代替的旧软件单元的现有变量少的规定的新软件单元,则命令减少其基本地址表的容量。
PXZA 320通过向PXZMD 314发出信号以便实现“低级”(计算机平台相关)执行程序交换。响应所述信号,PXZMD 314除去为要被进行程序交换的规定软件单元可能已经设定的任何的跟踪措施。然后,PXZMD 314通过禁止高的优先级中断继续进行程序交换。在高的优先级中断被禁止的期间,PXZMD 314把每个规定的旧软件单元的参考表中的数据,BAT和变量复制到代替它们的各个新软件单元中。然后,PXZMD 314重新启动高优先级中断并命令AFCO 302(图3)转换规定的旧和新软件单元的程序存储检查和。PXZMD 314还命令LASYMB312转换规定的旧和新软件单元的变量符号信息。
在步骤638,检查变量result-code,以便确定程序交换是否成功。如果确定变量result-code表示程序交换成功,则方法进入步640。然而,如果确定变量result-code表示程序交换不成功,则方法进入步骤644。在步骤644,PXPROGRAM表被访问,以便选择一个规定的新软件单元在其中被激活。所选的新单元的程序交换状态(PXSTATES)被设定为“INACTINE”,并且方法进入步骤646。在步骤646,确定规定用于激活的其它新软件单元是否存在于PXPROGRAM表内。如果确定存在,则进入步骤644,并对于所选的一个不同的新软件单元重复上述步骤。然而,如果确定在PXPROGRAM表内不存在一个规定用于激活的其它的新软件单元,则方法进入步骤648。在步骤648,向DBS 124(图1)返回功能故障码,方法进入步骤642。
在步640,向DBS 124(图1)返回表示处理成功的报告,方法进入步骤642,停止允许更新系统参考信息,并在步骤652结束。
现在参看图7,其中示出了用于详细说明按照本发明最佳实施例在图4的步骤410确认新软件单元的流程图。新软件单元的确认从步700开始,然后进入步704,确定是否允许访问系统参考信息。为了访问系统参考表,PXZA 320(图3)向LACO 310(图3)发出请求允许的信号。如果LACO 310得到允许,则方法进入步骤708。然而,如果LACO拒绝允许,则方法进入步骤706,向DBS 124(图1)报告故障码,然后在步骤730结束。
在步骤708,访问PXPROGAM表,从而选择规定的被证实的新软件单元,并确定所选的新软件单元的程序交换状态(PXSTATE)是否有效。当所选的新软件单元的PXSTATE等于“ACTIVE”时,则为有效。如果确定所选的新软件单元的PXSTATE无效,则进入步骤710。然而,如果确定所选的新软件单元的PXSTATE有效,则进入步骤714。在步骤710,向DBS 124(图1)返回功能故障码,并且进入步712,使所选的新的软件单元返回其先前的状态,然后进入步骤728。
在步骤714,确定在DBS命令事务处理内规定的要被证实的新软件单元的数量是否太多。如果是太多,则进入步骤716。然而,如果确定规定的用于程序交换的新软件的数量是可接受的,则进入步骤722。在步骤716,向DBS(图1)返回功能故障码,然后进入步骤718,使所选的新软件单元返回其先前状态,然后进入步骤728。
在步骤722,所选择的新软件单元的程序交换状态被设为等于“CONFIRM”,并进入步724,确定在PXPROGRAM表中是否存在规定要被确认的其它新的软件单元。如果确定在PXPROGRAM表内存在其它新的软件单元,则方法返回步骤708,并对不同的新软件单元重复以上列举的步骤。然而,如果确定在PXPROGRAM表内没有规定的要被确认的其它新软件单元,则进入步骤726,向DBS 124(图1)返回表示处理成功的报告,然后进入步骤728,停止允许更新系统参考信息,然后在步骤730结束。
现在参看图8A-8B,其中详细示出了用于说明按照本发明的最佳实施例在图4的步骤418执行的证实新软件单元的流程图。证实处理用于证实一个或几个被确认的新软件单元,并从系统中除去相关的旧版本的软件单元。一旦规定的新的软件单元被证实,对于被证实的新软件单元或它替换的旧软件单元就不可能重新运行。不过,被替换的旧软件单元可以被从交换系统104(图1)中除去并被再装入,以便和证明的新软件单元进行程序交换。此外,交换系统可以用较早的系统备份重新安装。
证实方法从步骤800开始,然后进入步骤804,确定是否允许访问系统参考信息。PXZA 320(图3)向LACO 310(图3)发出信号,请求允许更新系统参考信息。如果LACO 310拒绝允许,则方法进入步骤806。然而,如果LACO 310得到允许,则方法进入步骤810、
在步骤806,向DBS 124(图1)返回故障码,并且方法在步骤842结束。在步骤810,PXPROGRAM表被访问,选择规定的要被证实的新的软件单元;然后确定所选的新的软件单元的程序交换状态(PXSTATE)是否有效。当它等于“CERTIFY”时,则所选新的软件单元的交换状态有效。如果确定所选的新的软件单元的交换状态有效,则进入步骤816。然而,如果确定新的软件单元的PXSTATE无效,则方法进入步骤812。在步骤812,向DBS 124(图1)报告功能故障码,然后方法进入步骤814,所选的新的软件单元按照恢复到原先的状态,并且方法进入步骤838(图8B)。
在步骤816,确定在用于证实的DBS命令事务中规定的新的软件单元的数量是否太大。如果确定是太大,则方法进入步骤818。然而,如果确定规定被证明的新的软件单元的数量是可接受的,则方法进入步骤822。
在步骤818,向DBS 124(图1)返回故障码,然后进入步骤820,使所选的新的软件单元按其原先的条件重新运行,并使方法进入步骤838(图8B)。在步骤832,PXZA 320(图3)把所选的新的软件单元的程序交换状态(PXSTATE)设置为:CERTIFY“,然后方法进入步骤824。在步骤824,确定在PXPROGRAM表中是否存在要被证明的其它新的软件单元。如果确定存在,则方法返回步骤810并对于不同的新软件单元重复上述列举的步骤。然而,如果确定在PXPROGRAM表内不存在要被证明的其它新的软件单元,则方法进入步骤826(图8B)。
现在参见图8B,在步骤826,PXZA 320向LACO 310(图3)发送要被除去的规定的旧软件单元的块名。然后PXZA 320命令LACO310除去位于各个程序交换块数中的规定的旧软件单元。PXZA 320还对由LACO 310成功地除去的每个规定的旧软件单元从PXPROGRAM表中除去程序交换信息。
在步骤828,确定所有规定的旧软件单元是否已被成功地除去。如果确定所有规定的旧软件单元已被成功地除去,则方法进入步骤836,然而,如果确定任一规定的旧软件单元未被成功地除去,则方法进入步骤830。在步骤830,从PXPROGRAM表中选择要被证明的规定的新的软件单元,并把所选的新的软件单元的程序交换状态设为“CONFIRM”。然后方法进入步骤832,确定在PXPROGRAM表中是否存在规定的要被证明的其它新的软件单元。如果确定存在,则方法返回步骤830,对不同的新软件单元重复上面列举的步骤。然而,如果确定在PXPROGRAM表内不存在其它的规定被证明的新的软件单元,则方法进入步骤834,向DBS 124(图1)报告故障码,然后方法进入步骤838。
在步骤836,向DBS 124(图1)返回表明证明成功的指示,然后方法进入步骤840,停止允许更新系统参考信息,然后进入步骤842结束。
现在参看图9A-9B,其中示出了用于详细说明按照本发明最佳实施例的在图4的步骤414执行的钝化新的软件单元的流程图。钝化方法从步骤900开始,并进入步骤902,PXZA 320向LACO 310发出请求允许更新系统参考信息的信号。如果LACO 310获得允许,则方法进入步骤906。然而,如果LACO 310拒绝允许,则方法进入步骤904,向DBS 124(图1)返回故障码,然后进入步骤942结束。
在步骤906,访问PXPROGRAM表,选择规定要被钝化的新软件单元及其相关的旧软件单元;并确定所选的旧和新软件单元的程序交换状态是否有效。当它等于“INACTIVE”时,所选的新软件单元的程序交换状态为有效。当所选的旧软件单元的程序交换状态等于“ACTIVE”或“CONFIRM”时,则它为有效。如果所选的新和旧软件单元具有有效的程序交换状态,则方法进入步骤912。然而,如果所选的旧和新软件单元任一个具有无效的程序交换状态,则方法进入步骤908,向DBS 124(图1)返回故障码,并且方法进入步骤910。在步骤910,所选的旧和新软件单元返回其先前的各自的状态,然后方法进入步骤942(图9B)。
在步骤912,确定所选的旧和新软件单元的信号接口是否兼容。因为在程序交换期间PXCP 318不更新信号链接信息,所以不允许存在信号接口中的不同。PXZA 320命令PXZS 316执行兼容确认。如果确定信号接口是兼容的,则方法进入步骤918。然而,如果确定信号接口不兼容,则方法进入步骤922,向DBS 124(图1)报告故障码,然后进入步骤924。在步骤924,所选的旧和新软件单元回到其各自的先前操作状态,并使方法进入步骤942(图9B)。
在步骤918,进行程序交换的准备,如果所选的旧软件单元除去要被替代的新软件单元的现有的变量之外还有变量,则准备由PXZA 320(图3)命令增加所选的旧软件的基本地址表开始。相反,如果所选的旧软件单元比要被替代的新软件单元具有较少的变量,则PXZA 320命令减少旧软件单元的基本地址表。在完成程序交换的准备之后,方法进入步骤920,确定准备是否成功。如果确定准备成功,则进入步骤926(图9B)。然而,如果确定准备是不成功的,则方法进入步骤922,向DBS 124(图1)返送故障码,然后方法进入步骤924。在步骤924,所选的旧和新软件单元回到其先前的各自的状态,并使方法进入步骤942(图9B)。
现在参见图9B,在步骤926,把所选的新软件单元的程序交换状态(PXSTATE)变为“INACTIVE”并使方法进入步骤928。在步骤928,确定在PXPROGRAM表中是否存在其它规定被钝化的新和旧软件单元对。如果确定存在,则方法返回步骤906,对不同的新和旧软件单元对执行以上列举的步骤。然而,如果确定在PXPROGRAM表中不存在其它规定被钝化的旧和新软件对,则方法进入步骤930。在步骤930,进行规定被钝化的旧和新软件单元对的交换。通过使PXZMD 314命令TEM 304除去为规定的旧和新软件单元可能已经设定的任何跟踪措施执行交换。PXZMD 314也禁止较高的优先级的中断,例如话务处理等级(THL)。在较高的优先级中断被禁止的期间内,PXZMD 314(图3)把规定的新软件单元参考表的每个中的数据、BAT以及变量复制到替代新软件单元的相关的旧软件单元中。PXZMD 314然后重新启动较高等级的中断,命令AFCO 302转换PS检查和,并命令LASYMB 312转换规定的旧和新软件单元的变量符号信息。变量result-code也被设置为等于表明程序交换是否成功的值。然后方法进入步骤932,对变量result-code进行析,从而确定程序交换是否成功。如果确定变量result-code表示程序交换成功,则方法进入步骤938。然而,如果确定变量result-code表示程序交换是不成功的,则方法进入步骤934。
在步骤934,访问PXPROGRAM表,选择规定钝化的新和旧软件单元。此外,所选的新软件单元的程序交换状态被设定等于“ACTIVE”,并使方法进入步骤936。在步骤936,确定在PXPROGRAM表中是否存在其它的规定钝化的新和旧软件单元对。如果存在,则方法返回步骤934,对不同的新软件单元重复以上所列的步骤。然而,如果确定在PXPROGRAM表中不存在其它规定的旧和新软件单元对,则方法进入步骤940。在步骤940,向DBS 124(图1)返送故障码,然后使方法进入步骤942。在步骤938,向DBS 124(图1)返回表示程序交换成功的指示,然后使方法进入步骤942。在步骤942,停止允许更新系统参考信息表,然后方法进入步骤944结束。
现在参见图10A-10B,其中示出了用于详细说明按照本发明最佳实施例在图4的步骤416执行的除去新软件单元的流程图。除去新软件单元的方法从步骤1000开始,并且进入步骤1002。在步骤1002,PXZA320向LACO 310发出请求允许更新系统参考信息的信号。如果LACO310获得允许,则方法进入步骤1006。然而,如果LACO 310拒绝允许,则方法进入步骤1004,向DBS 124(图1)返回故障码,然后方法进入步骤1032结束。
在步骤1006,访问PXPROGRAM表,以便选择规定被除去的新的软件单元,并确定所选的新的软件单元的程序交换状态(PXSTATE)是否等于“INACTIVE”。如果确定所选的新软件单元的PXSTATE等于“INACTIVE”,则方法进入步骤1012。然而,如果确定所选的新软件单元的程序交换状态不等于“INACTIVE”,则方法进入步骤1008,向DBS 124(图1)返送故障码。然后进入步骤1012,使所选的新软件单元返回其先前状态,并使方法进入步骤1030(图10B)。
在步骤1012,确定在DBS命令事务处理内规定被除去的新软件单元的数是否太大。如果确定是太大,则方法进入步骤1014。然而,如果确定结果为规定被除去的新的软件单元的数量可以接受,则方法进入步骤1018,在步骤1014,向DBS 124(图1)返送故障码,并使方法进入步骤1016,使所选的新软件单元返回其先前状态,并使方法进入步骤1030(图10B)。在步骤1018,从PXPROGRAM表内的相关的行中选择的新软件单元的块数被记录,然后方法进入步骤1020。在步骤1020,确定在PXPROGRAM表内是否存在其它的规定被除去的新的软件单元。如果确定存在,则方法返回步骤1006,并对不同的新软件单元重复以上列出的步骤。然而,如果确定在PXPROGRAM表内不存在其它的规定被除去的新软件单元,则使方法进入步骤1022(图10B)。
现在参看图10B,在步骤1022,进行除去无效的软件单元(即无效的新软件单元)。这由PXZA 320(图3)通过向LACO 310发出无效的软件单元的块名执行。PXZA 320还命令LACO 310除去以各自的程序交换数加载的无效的软件单元。然后,PXZA 320从PXPROGRAM表中除去了由LACO 320成功地除去的每个无效软件单元的程序交换信息,并使方法进入步骤1024。
在步骤1024,确定是否所有规定的除去被成功地完成。如果是,则方法进入步骤1028。然而,如果确定规定的除去中任何一个不成功,则方法进入步骤1026。在步骤1026,向DBS 124(图1)返送故障码,并使方法进入步骤1030。在步骤1028,向DBS 124报告规定的无效软件单元已被成功地除去的指示,并使方法进入步骤1030。在步骤1030,停止允许更新系统参考信息,并使方法进入步骤1032结束。
除去和前述的每个软件单元的规则相反之外,以上所述用于除去无效软件单元的步骤基本上和在图4中步骤420执行的除去旧软件单元的步骤相同。
PXZMD 314也能恢复由交换系统内的再启动作用中断的程序交换。PXZMD 314通过从LACO 310获得允许更新系统参考信息执行所述的恢复,并且如果需要,能够在重新启动时恢复被更新的参考信息。然后,PXZMD 314转换在被中断的程序交换内的所有未被处理的软件单元的参考信息。PXZMD 314还转换PS 202区(图2)CHECKSUM和所选的新和旧软件单元的变量符号信息。
对打算由本程序交换方法引入的新软件单元的修正或校正的范围被限制。这种限制能使新的软件单元在不干扰交换系统104内正在进行的话务处理的条件下和旧软件单元进行交换,从而使系统不用重新启动。
对新软件单元的限制包括:块特性必须和旧软件单元相同,信号接口必须和旧软件单元的信号接口相同,不改变含有任何没有STATIC标记的变量的现有的容量不能改变的数据文件的记录结构,并且不改变含有任何没有STATIC标记的变量的容量不能改变的数据文件的初始容量。所述限制还包括不改变没有STATIC标记的变量的以下属性:变量长度,索引变量数,指示字指示符,子记录数,数据文件号以及缓冲区特性。
现在参看图11,其中示出了用于说明按照本发明的程序交换方法,当新软件单元和旧软件单元交换时新软件单元的各种程序交换状态的方块图。当新软件单元被装进交换系统中时,它具有“INACTIVE”的程序交换状态,如1102所示。在执行新软件单元期间,其程序交换状态由操作员改为“ ACTIVE”,如1104所示。一旦新软件单元被证明操作正确,其程序交换状态便被操作员改为“CONFIRMED”,如1106所示。最后,完成交换新软件单元时,新软件单元的程序交换状态被操作员改为:CERTIFIED“,如1108所示。
现在参看图12,其中示出了用于说明按照本发明的程序交换方法新和旧软件单元进行交换的各个阶段的例子的方块图。在本例中,旧软件单元的地址为C7TST,并具有R1A的R-STATE,以后称为C7TSTR1A,新软件单元的地址为C7TST,并具有R1B的R-STATE,以后称为C7TST R1B。图12中示出的旧和新软件单元的每个转移由操作员使用DBS 124(图1)完成。
在本例中,旧软件单元C7TST R1A最初正在交换系统内执行,并具有“ACTIVE”的状态,如阶段11202所示。在阶段1204,新的软件单元C7TST R1B被装入,并具有“INACTIVE”的程序交换状态。在这个期间内,旧软件单元C7TST R1A仍然被执行着,因此其状态仍为“ACTIVE”。在程序交换的这一阶段,新软件单元可以由操作员从交换系统中除去,借以结束程序交换。在阶段31206,新软件单元由操作员激活,使其程序交换状态变为“ACTIVE”,并使旧软件单元的程序交换状态变为“INACTIVE”。如果操作员选择钝化新软件单元,或者如果在程序交换期间发生系统重新启动,则上述在阶段31206的旧和新软件单元的程序交换状态相反。
在阶段41208,操作员使用DBS命令,把新软件单元的程序交换状态改变为“CONFIRM”。在程序交换的这一阶段,操作员可以钝化新软件单元并激活旧软件单元,使处理返回阶段21204。在阶段51210,旧软件单元C7TST R1A被从交换系统中除去。
因此可以确信,本发明的操作和结构从上述的说明中已经清楚。虽然所述的方法以最佳实施例进行了说明,但是显然,不脱离下面权利要求限定的本发明的范围和构思可以作出各种改变和变型。