CN1169190A - 允许状态转换的同步方法 - Google Patents
允许状态转换的同步方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/42—Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
- H04Q3/54—Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
- H04Q3/545—Circuit 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/54575—Software application
- H04Q3/54583—Software development, e.g. procedural, object oriented, software generation, software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/42—Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
- H04Q3/54—Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
- H04Q3/545—Circuit 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/54508—Configuration, initialisation
- H04Q3/54516—Initialization, software or data downloading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/1305—Software aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13057—Object-oriented software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13109—Initializing, personal profile
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13376—Information 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所述的同步方法,其特征在于如果新软件没能成功地处理测试业务,那么新软件被消除,资源对象保持在旧软件的控制之中。
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)
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)
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)
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 |
-
1995
- 1995-09-27 SE SE9503339A patent/SE504943C2/sv unknown
- 1995-12-04 AT AT95941286T patent/ATE222658T1/de not_active IP Right Cessation
- 1995-12-04 EP EP95941286A patent/EP0796461B1/en not_active Expired - Lifetime
- 1995-12-04 US US08/849,334 patent/US6101327A/en not_active Expired - Lifetime
- 1995-12-04 KR KR1019970703856A patent/KR100310304B1/ko not_active IP Right Cessation
- 1995-12-04 BR BR9509893A patent/BR9509893A/pt not_active IP Right Cessation
- 1995-12-04 WO PCT/SE1995/001452 patent/WO1996018146A1/en active IP Right Grant
- 1995-12-04 CA CA002205481A patent/CA2205481A1/en not_active Abandoned
- 1995-12-04 DE DE69527852T patent/DE69527852T2/de not_active Expired - Lifetime
- 1995-12-04 JP JP8517530A patent/JPH10510376A/ja active Pending
- 1995-12-04 AU AU42757/96A patent/AU717645B2/en not_active Ceased
- 1995-12-04 CN CN95196679A patent/CN1090778C/zh not_active Expired - Lifetime
-
1997
- 1997-06-06 FI FI972405A patent/FI972405A/fi not_active Application Discontinuation
- 1997-06-06 NO NO972595A patent/NO972595L/no not_active Application Discontinuation
Cited By (5)
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 |