CN1169190A - 允许状态转换的同步方法 - Google Patents

允许状态转换的同步方法 Download PDF

Info

Publication number
CN1169190A
CN1169190A CN95196679A CN95196679A CN1169190A CN 1169190 A CN1169190 A CN 1169190A CN 95196679 A CN95196679 A CN 95196679A CN 95196679 A CN95196679 A CN 95196679A CN 1169190 A CN1169190 A CN 1169190A
Authority
CN
China
Prior art keywords
software
new
old
static process
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN95196679A
Other languages
English (en)
Other versions
CN1090778C (zh
Inventor
A·霍尔根·罗斯特
R·富克斯
U·马克斯特朗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from SE9404297A external-priority patent/SE9404297D0/xx
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN1169190A publication Critical patent/CN1169190A/zh
Application granted granted Critical
Publication of CN1090778C publication Critical patent/CN1090778C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54575Software application
    • H04Q3/54583Software development, e.g. procedural, object oriented, software generation, software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54508Configuration, initialisation
    • H04Q3/54516Initialization, software or data downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1305Software aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13057Object-oriented software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13109Initializing, personal profile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13376Information service, downloading of information, 0800/0900 services

Abstract

本发明相关与在运行的计算机系统中对软件的替换,特别是旧软件中的进程与新软件中的进程之间的状态转换的同步,在旧软件和新软件中执行的进程之间的状态转换同步包括以下步骤:使旧软件中的旧静态进程为即将到来的运转停止做好准备,并为状态转换的目的将其启动;准备新软件中的新静态进程来进行接管,以便将旧静态进程中的所有资源对象转移到新静态进程中;指示旧静态进程消除所有服务,终止旧静态进程;指定新静态进程进行接管,以指示新静态进程是先前由旧静态进程声明的所有资源对象的唯一拥有者。

Description

允许状态转换的同步方法
本发明相关于在运行的计算机系统中对软件的替换,特别是旧软件中的进程与新软件中的进程之间的状态转换的同步。
计算机软件的一个方面是必须通过修改、增和/或减来对它进行周期性的更新,以便继续为用户提供适当的功能、使软件最优化、以及改正在软件使用过程中出现的错误和差异。当软件中加入了新的特征后,为了给用户提供新软件的特征,需要尽快用新版本取代旧软件。
在某些类型的计算机系统,如独立或批处理系统中,将软件从一个版本变为另一个版本几乎没有任何障碍。典型的处理方式是在一天中没有什么任务的时间关闭计算机系统,并且维修人员随时待命,然后将旧软件去掉,换上新版本软件,此后重新启动计算机系统,所有未来的数据处理都由新版本软件来进行。当然,这一处理过程假定新软件已经在一个脱机系统中作了适当的检测和调试,使得软件人员和运行管理者相信该软件会适当地执行它所赋予的功能,而不会出现需要整个计算机系统暂停并重新启动的不适当中断。
在其他类型的计算机系统,如现代化的存储程序控制(SPC)电信交换系统(在工业界简称为“交换机”)中,在系统中检测新版本软件或改变软件都不如在独立或批处理系统中那么简单。例如,如果不放在实际的操作处理呼叫中,新的软件版本就不能有效地进行测试。而软件必须在运行时进行测试,以便确定它在实际操作条件下是否会适当地运行,以及新的软件部分是否能与构成运行的SPC交换机系统一部分的所有其它软件块适当接口。另外,电信交换机系统事实上从不停止运行。由于人类社会对电信服务的持续需要,理想的情况是这些系统永远不停止运行,没有任何中断。也就是说,即使在下班时间或晚上,系统中也有持续的电信业务量在进行处理,交换机操作的任何中断都会导致电信业务不希望的破坏,这种破坏会严重地损坏系统的操作和效力以及系统用户对它的认可程度。
电信交换系统的这些实时要求给包括新的或改进功能的软件强化版本或其部分的测试、以及在交换机中包括错误校正或“故障修理”的软件替换而不破坏交换机处理的现有电信业务量做了严格的限制。因此,采用传统的“编辑--编译--连接--装载--运行”方法将新版本的软件成分或单元集成到系统中是不符合要求的。
在运行的计算机系统,如电信交换机中替换软件的另一个问题是旧软件中的进程与新软件中的进程之间的状态转换,特别是它们的同步。一个进程使用或包括资源对象,该资源对象是在一个硬件资源或内部数据结构中处理信息的对象类型。在本发明中应该理解状态转换是资源对象的状态转换。一个资源对象的状态具有分配或解除分配的特征。在旧软件中的进程和新软件中的进程之间的状态转换对系统的用户是必不可少的,原因是资源对象的状态可以由多个事务利用并存活。进程的状态随时间变化,这使得它不能事先将这些进程的状态结合到新版本软件中,从而如果它要存活下来的话,它必须在旧软件与新软件的替换过程中从旧软件转换为新软件。人们所欢迎的是这样一种方法,该方法提供这样一种可能性,即在系统运行时与旧版本软件和新版本软件的状态转换一起修改或扩展软件,而不需要任何停机时间。
在解决与将新软件结合到正运行的计算机系统相关的问题上已经做了许多努力,例如,一些目前使用的不以独立或批量方式操作的先进的联机操作系统将以与独立或批量系统所使用的方法明显不同的方式来解决替换旧软件的问题。然而,尽管比在独立系统下更透明一些,这种系统仍然是由人工替换软件,需要单个用户或用户组主动选择是否采用新的或修改的软件版本来处理。这一选择可以由用户通过修改将要由在其单个用户标识下运行的进程所使用的软件的串接来执行。该选择在以周或月来计的一段固定的时间对用户保持有效,在这一时间软件在每个在先级别中无差异地成功运行之后在串接结构中升迁几级。当到达串接结构的顶级时,声明该软件是“可操作的”,这时旧版本软件不再让系统用户使用。将新软件插入系统以及该软件在各个级别的升迁,是由一个配置管理过程和在每个级别报告、批准、跟踪软件版本和执行批准的改变的一个手动过程来控制的。
就用于在批量或独立系统中更新软件的方法而言,以这种方式将新的或修改的软件结合到系统中具有公知的缺点。系统主要是手动的高劳动强度系统,非常复杂并耗费时间,它将是否以及在何种情况下系统将以某个新软件来操作留给用户控制,没有任何方式来执行逐步的、被限制的联机使用以使得错误不会扩展或立即影响所有正在进行的操作。控制对新的或修改的软件的存取的方法直接与执行该软件的单个用户发生联系并局限于该用户。
另外,这一方法不提供任何手段从旧版本软件到新版本软件转换状态,因此,从旧软件到新软件的状态转换丢失了,这当然会对用户产生不利的影响。
还作过其它努力来解决至少某些与在运行的计算机系统中更新软件相关的问题。例如,在Telefonaktiebolaget L. M.Ericsson的美国申请07/907294中,公开了在正运行的计算机系统中替换软件的一个方法,采用这个方法可以在电信交换机的实际运行中测试和改变软件,而不破坏正经过系统的电信业务量。然而,这个方法并不直接针对从旧版本软件到新版本软件转换状态。即使该方法意识到这种状态转换的需要,它也没有描述任何手段来同步从旧软件到新软件的数据转换。
因此,在电信工业中如果能够在电信交换机的实际操作中测试和改变软件,包括从旧软件到新软件进程的状态转换,而不破坏正通过系统的电信业务量是非常有用的。本发明提供了这样一种方法。
计算机系统如SPC电信交换机系统的动态行为可以主要被描述为一系列并行、相对独立的事务(也被称之为“线程”或“事件串”),其中每个事务包括一些相关的活动。一个事务通常执行系统的外界用户看得见并对他们功能上有用的作业。在电信交换机系统中一个典型的事务可能是一次呼叫。
根据本发明采用具有状态转换的平滑改变技术的联机软件替换使用面向事务的软件和能够同时存储旧软件版本和新软件版本的一个存储器。将状态转换到新版本的一次平滑改变通过允许不断进行中的事务,即“旧的业务量”,使用旧的软件版本运行完成来实现。在软件改变已经开始后起动的事务,即“新业务量”,以逐渐和受控的方式使用新软件版本运行。包括将要从旧软件版本转换为新软件版本的状态的进程在软件改变的一开始是在旧软件的控制之下的。通过不同的同步信号,新软件能够在“有所需求的基础上”存取旧软件控制的进程的状态,以便最后成为包括所更新的状态的进程的所有者,前提是新软件的测试没有任何干扰。
由本发明的具有状态转换的平滑软件改变技术所满足的主要要求包括最小或无用户干扰和高度的系统可用性。本发明的主要特征包括:(1)在一次事务处理(如一次呼叫)中一个单独的系统用户感受最小或无干扰,原因是一个也只有一个软件版本控制每个特定的事务处理,即从事务处理的开始到结束系统或者使用旧的软件版本或者使用新的软件版本;  (2)系统的单个用户不会由于软件的改变而经历任何不可用性,原因是在改变时两个软件版本是并行使用的;(3)由于在旧版本和新版本软件之间受控制的状态转换,在旧软件中不会丢失任何进程的状态。
要由系统处理和传送的进程的状态在本文中可以分成两种不同的类别:(1)在一个事务处理过程中被处理并使用而在事务处理结束后被删除的动态进程;(2)由多个事务处理使用并使其存活的静态进程,例如在电信系统中,包括关于连接到系统的用户号或由某些用户使用的缩位号码的状态的进程。
与要求最小干扰的联机软件替换相关的一个关键问题是必须将旧软件版本的状态转移到新软件版本。由于旧软件版本和新软件版本在软件改变过程中是并行运行的,显然不需要转移动态进程,即进程将在它开始被启动的软件版本中结束。然而,为了能够控制例如一个新的呼叫将在哪一个软件版本中执行,需要提供一个选择点来指示业务量到适当的软件版本运行。
本发明提供了在系统升级时识别使用哪个软件版本的机制。除了常规的业务测试外,通信业务还要在选择点被予以识别,然后被指引到新的软件版本,后者在它执行常规(实际)的业务之前必须进行测试。
另一方面,本发明的方法也提供了从旧版本软件到新版本软件静态进程的状态转移的同步手段。根据本发明,在旧版本软件和新版本软件中执行的进程之间的状态转移的同步包括以下操作:
PrepareShutdown(准备关机)是在旧软件(即由于系统升级将要被替换的软件)中声明的一个静态进程上的第一操作,该操作使应用程序为将要被替换的软件的即将结束作出准备。当收到PrepareShutdown信号之后,旧软件中的静态进程公布或启动一个应用程序特定接口来传送资源对象(状态)。资源对象是一种对象类型,它的主要目的是处理在一个硬件源或一个内部数据结构中的信息,即随着资源对象的转移这种信息的状态也被转移。
当该第一操作完成之后,开始应用程序在新软件中的静态进程,用测试业务调用新的静态进程,并通过旧静态进程拥有的状态转移的接口从旧静态进程得到必要的资源。如果测试业务在新版本软件上无干扰运行,那么将由新版本软件执行正常的业务,但状态转移的接口仍然由旧静态进程所拥有。
如果该正常业务也没有受到任何干扰,那么将一个Takeover(接管)信号加到新软件内的静态进程中,利用该操作,新软件将通过由旧静态进程拥有的状态转移的接口获得对所有旧静态进程中的剩余资源的控制。
此后将CommitShutdown(执行关机)操作施加到旧静态进程上。应用程序接着清除用PrepareShutdown操作公布或启动的状态转移的接口。
最后将CommitTakeover(执行接管)操作施加到新版本软件上。新的静态进程被告之新的软件被提交。与旧软件系统部分相关的进程被终止。
如果新软件不能适当地运行,那么升级过程可能被反向。如果反向是在Takeover操作前进行的,那么可以在对用户不产生任何干扰的情况下执行该反向。反向是通过将CommitTakeover操作施加到旧版本软件而非新版本软件来执行的。
为了更好地理解本发明及其进一步的目的与优点,下面将结合附图来进行描述,其中:
图1示出了一个通用的电信系统;
图2示出了通用电信系统中的系统结构;
图3的方框图示出了重新定向从旧软件单元到新软件单元的进程的示例程序;
图4示出了根据本发明在没有反向的系统升级过程中的同步;
图5示出了根据本发明在有反向的系统升级过程中的同步;
图6示出了系统升级过程中的同步和状态转移;
图7a--7n示出了平滑系统升级方法被用于一个资源服务器的实际例子。
根据本发明包括了状态转换的用新软件替换旧软件的方法可以以举例的方式用于SPC电信交换系统(下面称为交换机)中。图1示出了一个通用的电信系统,包括交换机2、分布式处理器4、应用软件6、数据库8和电话10。交换机2与一个或多个处理器4相连。处理器4也连接到应用软件6和数据库8,这在现有技术中是公知的。
为了完全理解本发明的方法是如何用于这样一个系统中的,下面将对图2所示的系统结构进行描述。
这个结构中的最基本单元是操作系统,其中包括了最基本的功能。根据本发明的操作系统包括例如称之为系统升级的一个功能。本发明方法使用的系统升级功能可以由面向对象的程序设计如C++来实现。系统升级功能在Telefonaktiebolaget L.M.Ericsson的美国申请07/907294,“在计算机操作过程中改变软件的系统”中做了比较接近的描述,该申请在此作为参考文献。在操作系统的顶部是应用软件,在这个例子中它被分为两个部分,即与所有软件应用程序通用的一部分(APP),如作为电信系统通信标准的#7信令,和每个应用的特定软件,如ISDN、POTS、GSM、VLL等等。
在例如上面描述的电信系统中,被频繁替换或升级的软件是应用软件,如ISDN、GSM等等。在本发明中应该理解软件替换或升级可以是从替换全部应用软件到其中一小部分的任何行为。
采用本发明的方法,在升级过程中新版本软件将与旧版本软件共存,这样可以用测试业务测试新软件,与此同时正常的业务在旧版本软件中运行。如果出现可以与新软件相联系的故障,升级将被反向,并且新软件将被去掉。系统升级过程中的反向是由在系统升级软件内的内部检测的异常启动的。故障管理可以强制执行一次反向,维护工程师也可以中断升级并反向。
如上所述,典型的是一次只替换部分软件。要被替换的软件被称为一个变化单元。在图3中示出了一个未变化软件单元20通过称为方向点的一个寻址机构22连接到一个旧的变化单元12和一个新的变化单元14。未变化的接口16和18将旧的变化单元12和新的变化单元14与寻址机构22相连。图3示出了在旧的软件版本和新的软件版本中都有一个变化单元的情况,即旧的变化单元12和新的变化单元14。新的变化单元14通过定义被选择为接口16,它与未变化软件20的现有接口18兼容,这意味着未变化软件与旧软件版本和新软件版本(变化单元)都能够合作。
本发明的这一方面,即提供事务处理的动态定向或重新定向,通过引入和使用方向点而被简化。这些方向点包括事务处理可以在其中以特定的方式被定向的分布式系统中的位置。图3中所示的寻址机构22表示方向点的实现和系统的事务处理被单个指向新的或者旧的软件版本的装置。这些方向点能够以三种不同的方式操作。第一,它们可以通过分析与系统正处理的业务量相联系的功能名称来触发,根据这一操作方法,业务量可以指向需要执行必要处理的特定功能的新的或者旧的软件版本。第二,根据作为与软件的运行链接的的结果所提供的信息,事务处理可以被指示执行一个程序的新的或旧的软件版本。
现在介绍同步的两种不同情况,一种是没有反向,这意味着升级成功,一种是在系统升级过程中启动反向。没有反向的第一种情况示于图4,有反向的第二种情况示于图5。图中进程用切掉了四角的一个矩形表示。一个资源可以拥有一个或多个资源对象。资源对象的例子是时隙、声音提示装置等等。
图4示出了当一个旧版本软件由一个新版本软件替换时的没有反向的系统升级过程中同步的不同阶段。
在第一阶段,在新软件被装入并且新的静态进程开始之前,用PrepareShutdown信号调用旧软件内的旧静态进程,位于旧软件内的静态进程通过该信号意识到即将到来的终止和取消,并准备状态转换,旧静态进程公布或启动一个应用程序定义的接口来转换资源对象的状态,这里公布用来定义本进程与其他进程的通信方式。这个接口可能以后会由新版本软件内的静态进程调用来分配资源对象。根据上面提及的美国申请07/907294,旧静态进程也可以通知邻近的进程,例如一个分配器进程,关于即将到来的终止,以便路径可以朝向冗余的其它选择。在第一阶段所有业务量都由旧版本软件按原样处理,第一阶段在新软件装入后结束。
在第二阶段,新软件内的静态进程以一种不同于初始启动的状态开始,即该静态进程必须以一种指示在新旧版本软件内的新旧静态进程之间将有一个状态转换的方式开始。在这一阶段,新的静态进程接收测试业务,如果测试业务的执行没受到任何干扰,那么随后接收正常(实际)的业务。在测试业务过程中的状态转换的同步将结合图6作详细的描述,图6说明系统升级过程中的状态转换。在该第二阶段,正常业务首先由旧版本软件进行处理,与此同时测试业务由新版本软件进行处理。此后所有在测试业务结束之后起始的“新”业务将由新版本软件进行处理,“旧”业务,即测试业务结束之前的正常业务,将由旧版本软件处理,直到其结束为止。
由于这个例子描述了没有反向的系统升级,因此测试业务以及其后执行的正常业务都没有任何干扰。因此,在第三阶段,用Takeover信号指令新软件内的静态进程要求旧软件内的静态进程的所有资源对象,这是由系统升级功能引进的对新软件内声明的静态进程的第一操作。为状态转换公布或启动的应用程序定义的状态接口由这个新静态进程调用,来转换资源对象的控制并接收所有资源对象。在这个第三阶段,除了由旧软件处理的剩余旧业务外,几乎所有业务量都由新软件处理。
在第四阶段,用CommitShutdown信号指示旧进程消除所有服务,即旧进程将不再获得资源对象。有关这个CommitShutdown信号施加到旧进程的时间可以采用两个不同的准则。第一,可以在旧软件处理的所有旧业务都结束后施加到旧进程上,这保证在系统升级时不会干扰正在进行中的业务,因为旧软件的服务要直到没业务处理后才消除。第二,在系统升级启动后某个时间将该信号作用到旧进程,这常常会加快升级过程,但要冒丢失一些业务(呼叫)的风险。当该服务被消除后,用于资源对象转换的接口被撤消。当CommitShutdown信号被发出之后,所有业务都将由新版本软件进行处理。
此后,在第五阶段,旧软件被限制并消除,在第六阶段,新进程是先前由旧进程要求的资源对象的唯一拥有者。这由CommitTakeover信号指示给新进程。这个信号在系统升级功能被保证时发出,并且静态进程将使该升级得以生存。
图5示出了当一个旧版本软件由一个新版本软件替换时的有反向的系统升级过程中同步的不同阶段。与图4相比这一情况的主要差别是CommitTakeover信号的接收者。在这一情况下在旧软件中执行的静态进程是资源对象的接受者和拥有者。反向可以由运行与维护技术员启动,也可以自动进行。
系统升级过程中的反向可以在CommitShutdown信号之前的任何时间进行,CommitShutdown信号如上结合图4所述被施加到旧的静态进程。升级过程反向的阶段不同,得到的结果也会不同。下面参考图5来描述两个不同的反向情况。
在第一种情况下,如箭头CommitTakeover1所示,反向在第二阶段进行,即在新的静态进程接受Takeover信号之前进行。在第二阶段,第一测试业务以及随后的正常业务将由新的静态进程处理。如果在测试业务期间由于新软件的原因发生了问题,反向将通过将CommitTakeover信号施加到旧的静态进程来启动,既可以自动也可以由升级工程师进行。由于在这个例子中旧的静态进程仍然是所有资源对象的拥有者,因此旧静态进程的状态不会因为反向而丢失。唯一发生的事件是测试业务被暂停。测试业务的时间是最常用也最适合进行反向的时间,因为用户不会受到任何影响。反向也可以在第二阶段的稍后时间发生,即在新软件开始执行正常业务时发生。如果反向在这一时间发生,旧静态进程的状态仍然不会因为反向而丢失。如果新软件有严重的问题,那么执行正在进行的正常业务就会有问题,但新软件仍然会试图处理正常业务直到它终止为止。反向之后,即信号CommitTakeover被施加到旧的静态进程之后,开始的所有正常业务都将由旧软件处理。
在第二种情况下,如箭头CommitTakeover2所示,反向在信号Takeover施加到新的静态进程后进行,即在第四阶段进行。在Takeover信号之后,如上所述,新软件已经控制了所有的资源对象。通过将信号CommitTakeover加到旧的静态进程,可以进行反向,但在Takeover信号和CommitTakeover信号之间的时间被改变的新静态进程的状态将被丢失。
在信号CommitShutdown施加到旧的静态进程之后也可以反向,但所有状态都会丢失,原因是旧软件必须要初始启动。
参考图6来描述系统升级期间状态转换的同步。如上所述在第一阶段被启动或公布的状态转换接口必须由应用程序指定,以使得新静态进程可以协调并转移来自旧进程的资源对象的控制。在图6和下面的描述中将在接口内采用下述一般操作。
GetResource(获得资源),该操作将一个特定资源对象的控制从旧静态进程转移到新静态进程,当新静态进程需要旧静态进程控制的一个特定的资源对象时这个操作被调用。
GetAnyResource(获得任何资源),该操作将一个任意资源对象的控制从旧静态进程转移到新静态进程,当新静态进程需要旧静态进程控制的任意资源对象时这个操作被调用。
GetAllResource(获得所有资源),该操作将旧静态进程中的所有剩余资源对象的状态信息控制转移到新静态进程,当新静态进程收到信号Takeover之后这一操作才能执行。
下面将结合图6对系统升级期间的同步与状态转移作较详细的描述,其中将升级过程分为八个阶段。
在升级过程开始之前,业务量将在旧软件中照常运行。在第一阶段,用PrepareShutdown操作通知旧静态进程由于系统升级而即将终止,此后,如上所述,应用程序启动或公布使后继的系统升级成为可能的状态转移接口。然后在第二阶段开始新软件内的应用程序的静态进程。在这一阶段启动或公布的端口名与旧软件中相同。
之后新软件在第三阶段准备接收测试业务。测试业务可以是计算机产生的业务,也可以是由运行和维护工程师执行的“实际”业务。在测试业务期间,新软件将需要旧版本软件的静态进程所拥有的资源对象。新静态进程通过状态转移接口采用GetAnyResource操作从旧静态进程得到必要的资源对象。但即使新静态进程能够对资源对象进行存取,它们仍然由旧静态进程拥有。
如果测试业务期间没有任何干扰,那么在第四阶段新的静态进程将由正常业务调用,并通过状态转移接口由GetResource或GetAnyResource操作从旧的静态进程得到必要的资源对象。在新的业务由新软件处理期间,已由新的静态进程要求但仍然由旧的静态进程拥有的资源对象的状态可以改变。这个改变被转回到旧静态进程,因为它们是这些资源对象的拥有者。如果没这么做,那么在反向成为必须时这个更新的状态信息就会丢失。在这个阶段之后,没有丢失状态信息风险的反向将不再存在。
在第五阶段,新的静态进程由系统升级功能Takeover调用,后者又启动GetAllResources操作。新的静态进程现在具有对来自旧静态进程的所有资源对象的控制。在第六阶段,旧的静态进程由CommitShutdown操作调用,并且应用程序消除在第一阶段启动或公布的接口。此后,在第七阶段,旧静态进程由系统升级功能终止。在最后的第八阶段,由系统升级通知新的静态进程新软件被指定使用。与旧软件系统部分相关的进程将被终止。
下面将结合图7a--7n对平滑系统升级方法作用到一个资源服务器的实际例子进行描述。资源服务器是控制资源池分配与解除分配的一个静态进程,资源池是相互等同的那些资源对象,即一个池内的所有资源对象都是可以相互交换的,如DTMF接收器、一条路径中的信道或回波消除器。在图7中R指定表示一个资源池的对象。如果资源是空闲的,那么它的背景是明的,如图7a的左侧所示,如果资源被分配,那么它是暗的,如图7a的右侧所示,不受资源服务器控制的一个资源用虚线标识,如图7c的右侧所示。
在启动系统升级之前,资源的分配与解除以正常的方式操作,如图7a所示。如果被请求的一个资源不能被分配,那么通知请求程序没有资源,这一行为即使在有一个正在进行的系统升级并且通过状态转换接口做了分配时也不改变。
下面将结合图6描述的8个阶段来说明作用到资源服务器的平滑系统升级方法。
如图7b所示,应用程序被告之由于系统升级而即将终止。如上所述,当收到信号PrepareShutdown后资源服务器公告状态转换接口,此后,如图7c所示,一个新的资源服务器在第二阶段开始,新的资源服务器中的资源是图7c所示的未由资源服务器控制的资源。旧的资源服务器仍然照常执行资源分配与解除分配的调用。
在第三阶段,测试业务向着新的资源服务器发送,而正常业务向着旧的服务器发送,如图7d所示。对新资源服务器所需要的资源的控制由GetResource操作经由状态转换的接口取出。如图7e所示,在图7d中由测试业务请求的资源在新的资源服务器中被分配。
当新资源服务器成功地处理了测试业务之后,正常业务将在第四阶段被指向新资源服务器,如图7f所示。对资源的控制在需要时由GetAnyResource操作经由状态转换接口取出。在第四阶段有两种可能性:资源被从新资源服务器分配和解除分配,如图7g和7h所示,在右下角的资源在图7g中被分配并在图7h返回;另一种情况是如果资源早在第三阶段由旧资源服务器分配时,那么在新资源服务器中被解除分配,在这种情况下,新资源服务器用GetResource操作经由状态转换的接口请求对这个特定资源的控制,如图7i所示。图7b中在左上角的资源在第一阶段保留在旧资源服务器中,在第四阶段返回到新资源服务器。用GetResource操作经由状态转换的接口请求对资源的控制。
在第五阶段,如图7j和7k所示,经由状态转换接口取得对所有剩余资源的控制。新资源服务器由系统升级功能用Takeover操作调用,剩余的资源用GetAllResources操作经由状态转换接口取出,如图7j所示。在GetAllResources操作之后,新资源服务器控制了所有的资源,如图7k中左下角中的资源向新资源服务器的转移所示。
在第六阶段,如图7l所示,用CommitShutdown操作从系统升级调用旧资源服务器,如前面结合图6所描述的那样。在第七阶段,如图7m所示,旧资源服务器由系统升级功能终止。在最后的第八阶段,与旧软件系统部分相关的动态进程由系统升级功能CommitTakeover终止。
通过前面的描述相信本发明的方法已清楚明白。尽管图中所示和描述的方法是优选的,但显然在不脱离权利要求书限定的本发明精神和范围的前提下是可以作出各种变化和改进的。

Claims (10)

1、在用新软件版本替换旧软件版本时,在不干扰正在进行的工作的情况下,允许资源对象从在旧软件版本中声明的旧静态进程向在新软件版本中声明的新静态进程进行状态转换的同步方法,包括以下步骤:
使旧软件中的旧静态进程为即将到来的运转停止作好准备,并为状态转换的目的将其激活,
准备新软件中的新静态进程来进行接管,以便将旧静态进程中的所有资源对象转移到新静态进程中,
指示旧静态进程消除所有服务,终止旧静态进程,
指定新静态进程进行接管,以指示新静态进程是先前由旧静态进程声明的所有资源对象的唯一拥有者。
2、根据权利要求1所述的同步方法,其特征在于使旧静态进程为运转停止作好准备的步骤包括启动或公布一个状态转换接口。
3、根据权利要求2所述的同步方法,其特征在于准备新静态进程进行接管的步骤包括在新静态进程接收测试数据的一个期间内,通过状态转换接口对新静态进程需要的旧静态进程中的某些资源对象进行分配和解除分配。
4、根据权利要求3所述的同步方法,其特征在于当新软件成功地处理了测试数据之后,所有资源对象都由旧静态进程转移到新静态进程。
5、根据权利要求3所述的同步方法,其特征在于如果新软件没能成功地处理测试数据,那么新软件被消除,资源对象保持在旧软件的控制之中。
6、在电信系统中,在不干扰正在进行的工作的情况下,用新版本软件替换旧版本软件的方法,包括以下步骤:
使旧软件中的旧静态进程为即将到来的运转停止做好准备,并为状态转换的目的将其启动,
在旧软件处理正常业务时将新软件装入到所述电信系统中,
与正常业务在旧软件上的处理并行地用测试业务测试新软件,
与用旧软件处理旧的正常业务并行地用新软件处理新的正常业务,
准备新软件中的新静态进程来进行接收,以便将旧静态进程中的所有资源对象转移到新静态进程中,
指示旧静态进程消除所有服务,终止旧静态进程,
指定新静态进程进行接管,以指示新静态进程是先前由旧静态进程声明的所有资源对象的唯一拥有者。
7、根据权利要求6所述的方法,其特征在于使旧静态进程为运转停止作好准备的步骤包括启动或公布一个状态转换接口。
8、根据权利要求6或7所述的方法,其特征在于测试新软件的步骤包括在测试业务期间通过状态转换接口对新静态进程需要的旧静态进程中的某些资源对象进行分配和解除分配。
9、根据权利要求8所述的方法,其特征在于当新软件成功地处理了测试业务之后,所有资源对象都由旧静态进程转移到新静态进程。
10、根据权利要求8所述的同步方法,其特征在于如果新软件没能成功地处理测试业务,那么新软件被消除,资源对象保持在旧软件的控制之中。
CN95196679A 1994-12-09 1995-12-04 允许状态转换的同步方法 Expired - Lifetime CN1090778C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
SE9404297A SE9404297D0 (sv) 1994-12-09 1994-12-09 Sätt och anordning vid telekommunikation
SE94042975 1994-12-09
SE9404297-5 1994-12-09
SE9503339-5 1995-09-27
SE95033395 1995-09-27
SE9503339A SE504943C2 (sv) 1994-12-09 1995-09-27 Synkroniseringsförfarande som tillåter tillståndsöverföring

Publications (2)

Publication Number Publication Date
CN1169190A true CN1169190A (zh) 1997-12-31
CN1090778C CN1090778C (zh) 2002-09-11

Family

ID=26662183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN95196679A Expired - Lifetime CN1090778C (zh) 1994-12-09 1995-12-04 允许状态转换的同步方法

Country Status (14)

Country Link
US (1) US6101327A (zh)
EP (1) EP0796461B1 (zh)
JP (1) JPH10510376A (zh)
KR (1) KR100310304B1 (zh)
CN (1) CN1090778C (zh)
AT (1) ATE222658T1 (zh)
AU (1) AU717645B2 (zh)
BR (1) BR9509893A (zh)
CA (1) CA2205481A1 (zh)
DE (1) DE69527852T2 (zh)
FI (1) FI972405A (zh)
NO (1) NO972595L (zh)
SE (1) SE504943C2 (zh)
WO (1) WO1996018146A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101393430B (zh) * 2007-09-18 2014-04-09 费舍-柔斯芒特系统股份有限公司 在过程设备中升级及提供控制冗余的方法及设备
CN106909410A (zh) * 2015-12-23 2017-06-30 鼎捷软件股份有限公司 一种用于服务器系统的更新方法以及服务器系统
CN107066294A (zh) * 2017-03-17 2017-08-18 深圳市邦华电子有限公司 一种应用安装方法、装置和一种智能终端

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19617976A1 (de) * 1996-05-06 1997-11-13 Philips Patentverwaltung Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
US6745224B1 (en) * 1996-12-06 2004-06-01 Microsoft Corporation Object framework and services for periodically recurring operations
US6223343B1 (en) * 1997-04-04 2001-04-24 State Farm Mutual Automobile Insurance Co. Computer system and method to track and control element changes throughout application development
US6360363B1 (en) * 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
DE19810814B4 (de) * 1998-03-12 2004-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem und Zustandskopierverfahren zur skalierbaren Software-Aktualisierung
DE19810807A1 (de) * 1998-03-12 1999-09-23 Ericsson Telefon Ab L M Gerät und Verfahren zum Umsetzen von Meldungen
US6108669A (en) * 1998-04-02 2000-08-22 Lucent Technologies, Inc. Method and apparatus for creating and modifying databases derived from a database warehouse for a telecommunication system
US6301477B1 (en) * 1998-04-02 2001-10-09 Lucent Technologies Inc. Method for creating and modifying similar and dissimilar databases for use in GSM wireless network configurations for telecommunication systems
US6314567B1 (en) * 1998-11-13 2001-11-06 Hewlett-Packard Company Apparatus and method for transferring state data when performing on-line replacement of a running program code and data
US6931440B1 (en) * 1999-04-21 2005-08-16 Emc Corporation Method and apparatus for dynamically determining whether access to a resource connected to a computer has changed and determining how to access the resource with a new identifier
US7107329B1 (en) * 1999-05-21 2006-09-12 Lucent Technologies Inc. In networks of interconnected router nodes for routing data traffic, a method of and system for imperceptibly upgrading router node software and the like without traffic interruption
GB2363879B (en) * 1999-05-27 2004-03-10 Invensys Plc Fieldbus upgradable apparatus and method
US6698017B1 (en) 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
JP2001043070A (ja) * 1999-07-29 2001-02-16 Nec Corp 設定情報自動復帰方法及び装置並びに設定情報自動復帰プログラムを記録した記録媒体
KR100762583B1 (ko) * 2000-01-26 2007-10-01 엘지전자 주식회사 디지털 방송 수신기의 소프트웨어 업그레이드 방법 및 장치
GB2362064A (en) * 2000-05-04 2001-11-07 Marconi Comm Ltd Switching of software in a communications system
EP1195951A3 (en) * 2000-08-10 2002-11-20 Alcatel Method and apparatus for maintaining data communication during a line card soft reset operation
US20020073410A1 (en) * 2000-12-13 2002-06-13 Arne Lundback Replacing software at a telecommunications platform
EP1238901B2 (en) 2001-03-05 2008-07-30 Shimano Inc. Bicycle hub transmission with coaster brake
ITTO20010264A1 (it) * 2001-03-21 2002-09-21 Telecom Italia Lab Spa Procedimento per l'aggiornamento delle condizioni di programmazione di server di rete, relativo sistema e prodotto informatico.
US7107313B2 (en) * 2001-04-13 2006-09-12 Hewlett-Packard Development Company, L.P. Adding and removing processes in a single view
US20030092438A1 (en) * 2001-11-14 2003-05-15 Moore Brian J. Method and apparatus for stabilizing calls during a system upgrade or downgrade
US7096383B2 (en) 2002-08-29 2006-08-22 Cosine Communications, Inc. System and method for virtual router failover in a network routing system
US7234056B2 (en) * 2002-09-24 2007-06-19 Inrange Technologies Corp. Method and apparatus for downloading executable code in a non-disruptive manner
DE10254531A1 (de) * 2002-11-22 2004-06-09 Abb Research Ltd. Verfahren und System zur Transformation von Programmen, die sich auf die Softwarekonfiguration eines verteilten Leitsystems beziehen
US6978452B2 (en) * 2003-04-02 2005-12-20 Beach Unlimited Llc Upgrading digital media servers
US7698700B2 (en) * 2003-04-17 2010-04-13 International Business Machines Corporation System quiesce for concurrent code updates
WO2004092951A2 (en) * 2003-04-18 2004-10-28 Sap Ag Managing a computer system with blades
US20040210887A1 (en) * 2003-04-18 2004-10-21 Bergen Axel Von Testing software on blade servers
US7590683B2 (en) 2003-04-18 2009-09-15 Sap Ag Restarting processes in distributed applications on blade servers
US20040210888A1 (en) * 2003-04-18 2004-10-21 Bergen Axel Von Upgrading software on blade servers
CN1868174A (zh) 2003-08-15 2006-11-22 汤姆森特许公司 广播路由器中的可改变功能性
US7404184B2 (en) * 2004-09-13 2008-07-22 International Business Machines Corporation Efficient firmware update for hierarchical data storage systems
US9201641B2 (en) * 2004-12-24 2015-12-01 Telecom Italia S.P.A. Method and system for upgrading the software of a telecommunication terminal, in particular of a video telephone, and related computer program product
US9378099B2 (en) 2005-06-24 2016-06-28 Catalogic Software, Inc. Instant data center recovery
CN102117233B (zh) * 2005-06-24 2013-07-17 信科索尔特公司 用于高性能企业数据保护的系统和方法
CN100464522C (zh) * 2007-05-17 2009-02-25 华为技术有限公司 一种进程升级的方法及进程升级系统
US8276136B2 (en) * 2007-12-11 2012-09-25 Red Hat, Inc. Transparent configuration of a network appliance
US8418164B2 (en) 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
EP3757778B1 (en) * 2015-02-18 2023-10-04 Huawei Technologies Co., Ltd. Upgrading of a mobile network function
US10365641B2 (en) * 2017-06-19 2019-07-30 Fisher-Rosemount Systems, Inc. Synchronization of configuration changes in a process plant
US10983857B2 (en) * 2018-10-26 2021-04-20 International Business Machines Corporation Continuing a running script after modification
US11048549B2 (en) 2019-04-04 2021-06-29 Google Llc Transferral of process state and/or components in computing environments
WO2021201914A1 (en) * 2020-03-31 2021-10-07 Arris Enterprises Llc Cloud-based computer with runtime-mapped software versions
US20220164221A1 (en) * 2020-11-23 2022-05-26 Motorola Solutions, Inc. Preserving persistent link connections during a cloud-based service system upgrade

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62271019A (ja) * 1985-12-24 1987-11-25 Mitsubishi Electric Corp ソフトウエア開発システム
US5155847A (en) * 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5175828A (en) * 1989-02-13 1992-12-29 Hewlett-Packard Company Method and apparatus for dynamically linking subprogram to main program using tabled procedure name comparison
US5155837A (en) * 1989-03-02 1992-10-13 Bell Communications Research, Inc. Methods and apparatus for software retrofitting
US5185742A (en) * 1990-12-31 1993-02-09 At&T Bell Laboratories Transparent signaling for remote terminals
US5212787A (en) * 1991-03-12 1993-05-18 International Business Machines Corporation Method and apparatus for accessing a relational database without exiting an object-oriented environment
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
SE500940C2 (sv) * 1993-02-10 1994-10-03 Ellemtel Utvecklings Ab Sätt och system för att i ett distribuerat operativsystem demontera en kedja av sammanlänkade processer
US5654901A (en) * 1995-01-30 1997-08-05 Telefonaktiebolaget Lm Ericsson Loading software into field test equipment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101393430B (zh) * 2007-09-18 2014-04-09 费舍-柔斯芒特系统股份有限公司 在过程设备中升级及提供控制冗余的方法及设备
CN106909410A (zh) * 2015-12-23 2017-06-30 鼎捷软件股份有限公司 一种用于服务器系统的更新方法以及服务器系统
CN106909410B (zh) * 2015-12-23 2024-04-30 鼎捷软件股份有限公司 一种用于服务器系统的更新方法以及服务器系统
CN107066294A (zh) * 2017-03-17 2017-08-18 深圳市邦华电子有限公司 一种应用安装方法、装置和一种智能终端
CN107066294B (zh) * 2017-03-17 2020-12-29 深圳市邦华电子有限公司 一种应用安装方法、装置和一种智能终端

Also Published As

Publication number Publication date
DE69527852D1 (de) 2002-09-26
CN1090778C (zh) 2002-09-11
BR9509893A (pt) 1997-12-30
KR100310304B1 (ko) 2001-12-17
FI972405A0 (fi) 1997-06-06
EP0796461A1 (en) 1997-09-24
SE9503339L (sv) 1996-06-10
AU4275796A (en) 1996-06-26
DE69527852T2 (de) 2003-04-10
ATE222658T1 (de) 2002-09-15
SE504943C2 (sv) 1997-06-02
WO1996018146A1 (en) 1996-06-13
AU717645B2 (en) 2000-03-30
SE9503339D0 (sv) 1995-09-27
US6101327A (en) 2000-08-08
JPH10510376A (ja) 1998-10-06
NO972595D0 (no) 1997-06-06
CA2205481A1 (en) 1996-06-13
FI972405A (fi) 1997-06-06
NO972595L (no) 1997-07-14
EP0796461B1 (en) 2002-08-21
KR980700608A (ko) 1998-03-30

Similar Documents

Publication Publication Date Title
CN1090778C (zh) 允许状态转换的同步方法
US5987511A (en) Communication system capable of exchanging software and restarting with all information preserved
AU667559B2 (en) System for changing software during computer operation
US6385668B1 (en) Method and apparatus for compound hardware configuration control
US7912858B2 (en) Data synchronization method
US20050078611A1 (en) Flexible network platform and call processing system
CA2126962C (en) Method for updating a system program in a switching equipment
SE502423C2 (sv) System för hantering av interaktion mellan tilläggstjänster i ett telekommunikationssystem
CN110134489A (zh) 应用迁移方法及装置、系统、存储介质、应用上云工具
US5321844A (en) Method for error correction of software errors in a communication system
CN101169740B (zh) 一种ejb构件的动态迁移方法
US6047384A (en) Rapid recovery and start-up system for peripheral systems
CN1192642C (zh) 更新电信网内与用户有关的数据的方法
EP0655182B1 (en) Centralized command system for a telecommunications network
CN1385785A (zh) 主机板测试程序处理系统及方法
KR0162761B1 (ko) 네트워크 파일 시스템 상에서의 이동통신 교환기 소프트웨어 컴파일 관리방법
CN1503502A (zh) 一种分级通讯系统的业务互助方法
CA2186777A1 (en) Method of linking data processing units, method of controlling an exchange, data processing unit, controller, and exchange
US20030070163A1 (en) Method for distributing data in a data net
Arnold et al. Object oriented software technologies applied to switching system architectures and software development processes
CN1610365A (zh) 一种具有信令消息内容服务功能的七号信令消息处理装置
CN1082320C (zh) 构成呼叫处理的方法和电话呼叫处理的交换系统
KR100270702B1 (ko) 통신 관리 네트워크 에이젼트의 엠.아이.티 관리방법
CN1144938A (zh) 管理和维修通信系统的方法和服务个人计算机
CN1472667A (zh) 具有延展性的客户数据系统及其方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant