CN1045829C - 用于计算机运行期间改变软件的系统 - Google Patents

用于计算机运行期间改变软件的系统 Download PDF

Info

Publication number
CN1045829C
CN1045829C CN93107664A CN93107664A CN1045829C CN 1045829 C CN1045829 C CN 1045829C CN 93107664 A CN93107664 A CN 93107664A CN 93107664 A CN93107664 A CN 93107664A CN 1045829 C CN1045829 C CN 1045829C
Authority
CN
China
Prior art keywords
software
new
data
old
interface
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.)
Expired - Lifetime
Application number
CN93107664A
Other languages
English (en)
Other versions
CN1081010A (zh
Inventor
里卡德·尼尔松
乌尔夫·马克斯特伦
莱夫·克劳夫佛
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
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN1081010A publication Critical patent/CN1081010A/zh
Application granted granted Critical
Publication of CN1045829C publication Critical patent/CN1045829C/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • 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交换系统的一部分是否能与所有其它的软件模块适当衔接。此外,电信交换系统事实上永远不会停止运行。理想情况下,这些系统将永远不停地运转而不中断,因为在一个社区内要求通信设施连续服务。即,通过该系统所处理的电信业务是一个连续流,即使在白天或晚间的空闲时间也是同样,并且该交换操作中的任何中断都将导致该电信业务的混乱。这样一种混乱可能对该系统的运行及其有效性,以及系统在用户或顾客中的接受程度造成极大的损害。
电信交换的这些实时要求在两方面提出了严格的要求:在含有新的或改进的功能的软件提高版本或其若干部分的测试方面,以及在交换中包含错误纠正或“错误修改”而不影响由交换正在处理的电信业务的软件的替换方面。然而,用传统的“编辑-编译-链接-装入-运行”方式把软件成分或单元的新版本集成并入该系统的方法并不是令人满意的。人们宁愿选择这样一种方法,即在系统运行过程中修改或扩展软件的能力,而不需要停机。
人们为解决与把新软件并入运行中的计算机系统有关的问题进行了尝试。例如,当今使用的一些并不以独立或批处理方式运行的先进的连机运行系统是用与独立或批处理系统中显著不同的方式解决替换旧软件的问题。然而,尽管比独立系统中的更透明,这些系统仍然是人工地替换软件,即要求各个用户或用户组积极地选择是否使用软件的新版本或修改版本来进行处理。这一选择可以由用户通过修改在其各自的用户标识符之下运行的过程所利用的软件的相互联系来实施。这一选择在一段时间内通常以数周或数月来计算-保留给用户,在这段时间里经过在每一个先前的层次上的成功运行而没有任何不一致之后软件在相互联系的结构中向上迁移若干层次。到达该相互联系的顶层时,就宣告该软件是“可运行的”,同时该系统的用户就不再使用较旧的版本。新软件插入该系统,以及在不同层次的迁移,是由一个配置管理过程控制的,该过程是一个报告、批准、跟踪每一个层次上的软件版本并且实施已批准的改变的人工过程。
正如采用在批处理或独立系统上更新软件的方法那样,以这种方式使新的或修改的软件并入系统具有人所其知的弊端。这在很大程度上是一个人工的、工作量大的系统,复杂且费时。它把何时何种情况下系统应使用某种新软件运行的控制留给了用户,而不是实施逐步的、限定的、联机的使用新软件,以至于造成错误迅速的扩散或直接影响所有后续的操作。对新的或已修改的软件的访问进行控制的方法是直接连接到并且限制在执行该软件的单个用户。
用于解决至少某些与在运行的计算机系统中的软件更新有关的问题的其它尝试采用了一种不同的方式。如,在一项美国专利中,包含了Anders Abrahamsson和Lars Holmqvist发明并转让给L.M.埃利克逊电话股份有限公司(Telefonaktiebolagat L M Erics-son)的技术,其中透露了一个在运行期间动态连接软件的系统。然而,该系统涉及到一个间接寻址的复杂系统,它需要用到一个或是特殊的或是扩展的操作系统,以及/或者一个特别的编译程序。该系统也有若干弊端,包括需要一个非标准的操作系统。此外,该系统不能与标准应用软件一起工作。该系统的局限性还在于,它仅仅涉及全部问题的一个部分,而且对于现有的与修改的软件模块之间控制的渐进测试与改变方面并未提供帮助。
在当今使用的典型的电信系统中,改变软件或软件的若干部分的问题甚至更严峻。虽然这样的系统不能恰当地称为批处理或独立系统,但无论何时只要进行了软件的改变系统的操作就会受到影响。装入新软件,从属于旧软件的数据被转移并传送给新软件。在传送进行之中的这段时间,系统不能登记任何新的呼叫。失去功能的这一阶段可以持续一小时或更长时间,这样就必需在操作的非峰荷时间安排软件的变更。即使这样,在一个电信交换系统中一个小时的故障时间也是相当长和代价巨大的,因为在这段时间里不能处理任何新的呼叫,也不能为应急通信的任何要求提供服务。
因此,在电信产业中,在电信交换系统的实际操作期间,在不影响通过该系统正在进行的电信业务的情况下,如果能够测试和改变软件将是极为有用的。如果有能力通过新软件或软件的新的组成部分指挥一个限定的和指定部分的通讯业务,从而使该软件能够在一个运行环境中优先于处理正在使用的数据而被测试,这样对电信产业将更为有益。这样,在不需要特别的编译程序的系统运行期间改变软件的一种平稳的、透明的方法就是令人高度期待的。本发明的系统提供了这样一种方法。
SPC电信交换系统这样的计算系统的动态特征,从本质上可以描述为一系列平行的、相对独立的事务处理(也称为“线索”或“事件链”),其中每一个事务处理由若干相关活动所组成。一个事务处理一般完成对系统的外部用户来说是可见的和具有功能用途的一项工作。在电信交换系统中一个典型的事务处理可以是一次呼叫。
采用本发明的平稳软件改变技术的连机软件替代利用了面向软件的事务处理,以及在同一时间内既能存贮老版本也能存贮新版本的存储器。转到软件新版本的一个平稳的改变是用软件老版本使正在进行的事务处理,即“老业务”,运行结束来实现的。在软件改变已经开始之后启动的事务处理,即“新业务”,将用软件的新版本以一种渐进的和受控制的方式运行。
能为本发明的平稳的软件改变技术所满足的首要需求包括使用户的干扰最小或者消失以及高水平的系统可用性。本发明的首要特征包括下列事实:(1)在一个事务处理(如,一次呼叫)期间系统的一个单独的用户所经历的干扰最小或者消失,因为一个并且只有一个软件版本控制着每一个特定的事务处理,即,从事务处理的开始到结束,系统或者使用软件的老版本或者使用软件的新版本;(2)系统的一个单独的用户没有系统不可用性的经历,因为作了软件改变,在此项改变期间软件的两种版本是平行地使用的。如果后一特征没有出现,一个简单的解决办法就是对系统软件作一个简单的脱机改变。
将由系统处理的数据可以根据前后关系分成两种不同的类别:(1)动态数据,它是在一个事务处理期间所产生和使用的并且在该事务处理结束后就被消除;(2)半永久性数据,这是由若干个事务处理所使用的并且生存于若干事务处理期间,如在电信系统中,有关与该系统相联的用户数目的数据或由特定用户们使用的短缺数目的数据。
与要求最小干扰的连机软件替换相联系的一个决定性的问题在于,软件老版本的状态必须转移为软件新版本。根据本发明,采用平稳的软件修改技术,动态数据与半永久性数据的分离使这一问题变得简单,因为只有半永久性数据-如果存在的话-需要从软件老版本传送到软件的新版本。此外,半永久性数据一般是作为一个单独的数据库中的对象提供的,并且比一个电信软件系统中的其它部分有更难得的改变。
本发明的系统为将新软件装入电信系统的存贮器中(与老软件在一起,并且除了新软件还有老软件)作了准备。在本发明的系统中,系统中现存的业务开始是由老软件处理,测试业务是通过开关按预定的路线由新软件处理的。然后,如果测试业务由新软件进行了成功的处理,实际正在进行的业务(或正常业务)的一部分就有选择地由新软件按预定路线处理,同时该实际正在进行的业务的其余部分仍由老软件进行处理。由新软件处理的正在进行的取样业务的百分比可以在零到百分之一百之间变化。该取样业务应当由新软件适当地执行,所有业务都被引向新软件。一旦由老软件所进行的所有呼叫的处理已经结束,系统就不再用到老软件,可以从系统中将其消去。
另一方面,本发明的系统包含了一个对新的或修改的软件进行平稳验证的系统。本发明的系统允许按一种渐进的和受控制的方式使数据通过新软件而流动,但是是作为实际运行的该系统的组成部分。该系统在对电信交换系统的实际运行只有很小的或没有影响的情况下提供了错误和差异的早期探测,因为流向新软件的初始数据仅仅是由该系统产生的测试数据。在处理测试数据时如果电信系统探测到一个错误,就没有更多的业务引向新软件,这样,即使该新软件已经在处理实际的数据了,对系统整个业务的干扰也被最小化了。
本发明的系统的另一方面是,该系统以渐进的方式使业务从老软件引向新软件。本发明的系统包含了允许这样进行事务处理的能力,即用老软件开始处理,到结束处理时仍用老软件。只有随装入新软件后开始的事务处理将由新软件进行处理。本发明的系统的这一特征使得在由给定的老软件到用新软件替代它或扩展它的这段过渡时期对用户仅有很小的干扰。此外,这一特征使要求转换到和/或传送到不同的一组软件的数据量比一开始所处理的数据量减到最小。
还有另一个特征,本发明的系统包含了软件的平稳修改,这是一个过程,它把软件的操作模型看作是一系列可辨认的和可维护的事务处理。在本发明的系统中,这样一个链在整个处理过程中始终被辨认并维护。此外,在这一特征方面,本发明的系统在软件的新、老版本同时驻留在电信交换系统中的这段时间内,控制着将每个事务处理连接到老版本或者是新版本上。
本发明的系统的另一特征是,它具有这样的机制,即把包含在老软件中且由老软件直接控制的可能存在的半永久性数据转换并移动到新软件中。
本发明的系统的另一特征是,它包含一系列的方向指针,可用于在运行着的系统内将事务处理动态地引向系统的老版本或者是新版本。该系统通过许多途径包括由函数名称寻址的消息的分析和运行期间的动态连接实现软件部件的动态定向。
本发明的系统的另一特征是,它包含一种即时修改方法。此方法用于软件的两种版本不可能同时存在的时候,并且提供从软件的老版本到软件新版本的瞬时改变。所有的业务都自动地被引向新版本,除非探测到在新版本中存在着使用它进行操作是不可能的或不实际的这样一些错误。在这种关头,系统如果停机就可以通过一个新的即时修改返回到采用软件旧版本处理所有业务。在此特征下系统将老版本以被动状态保留在系统内。
本发明的系统还有另一个特征,它包括一个连接过程(调用)的机制,它包含了一个商人和一个核心使不同类别的软件部件之间的接口能起作用。这一连接过程调用机制在运行期间也用于实现内部连接和新旧软件单元的汇集。在使用本发明的系统中的这一连接过程调用机制方面,利用本发明的系统的另一个特征建立所需要的接口说明,使用了一种特殊的面向目标的接口描述语言并称为ELIN。该语言含有适于为本发明的系统的连接过程调用特征开发接口的一种特殊构造。
本发明的系统还有另一个特征,它含有用一个函数名地址对消息寻址的机制,该函数名地址包含了一个商人,或者是使可被分布在该系统中的软件单元之间的接口能起作用的消息路径选择机制。在运行期间这一机制也用来将消息引向旧软件或新软件。在使用本发明的系统的这一寻址机制方面,利用本发明的系统的另一个特征建立所需要的接口说明,这种特殊的语言如上所述称为ELIN。该语言含有适于为本发明的系统的消息协议方面开发接口的一种特殊构造。
如同很容易被具有此特殊技术中的普通技巧的人们所欣赏那样,此项发明的原则和特征也可以在除了电信交换系统之外的各种计算机应用中用来帮助进行软件在运行期间的转换。
为理解本发明并为了进一步了解本发明的目标及其优点,现在可以提交如下的描述,连同相关的图示,在这些图示中:
图1A-1B是将新的或修改过的软件引入一个运行的软件系统的现有的技术系统的图示说明;
图2是一个框图,说明在本发明的系统中将处理从一个老的软件单元重新引向一个新的软件单元的示例过程;
图3A-3E是根据本发明的系统从老软件改变到新软件的处理的图示说明;
图4是一个流程图,说明根据本发明的系统在运行期间改变软件的处理;
图5是一个框图,说明在本发明的系统中对新老两种软件有选择地寻址的方法;
图6是一个框图,说明在本发明的系统的软件内对目标寻址的方法;
图7是一个框图,说明在本发明的系统内寻访软件的方法;
图8是一个框图,说明在本发明的系统中商人寻访软件的方法;
图9是一个面向目标的接口描述语言用来实现本发明的系统的方法的示意图;
图10是本发明的系统的特定方面的示意图;
图11是使本发明的系统内给定的协议容易接口的方法的示意图。
本发明的系统在某些方面采用了面向目标程序设计的原则。面向目标程序设计实质涉及四个元素-类,目标,实例变量(或象在C++中所实现的数据成员),以及方法(或在C++中的成员函数)。一个类简单说来就是用以定义目标的模板,这些目标就是它们从其中产生的那个类的实例。类有两种类型的组成成份-实例变量和方法。实例变量用作数据元素而方法用作函数,即它们定义了一个目标的性质。其中每一个结合成运行中的模块上的一个简单普通的目标。因此,程序设计是围绕各种目标完成的,而不是围绕待完成的函数和任务而完成的。
在此项技术中众所周知的、面向目标程序设计的给定技术已用程序设计语言C++,以所提出的本发明的系统的实现方式,在本发明的系统中得以具体化。这些技术包括继承、同素异构和封闭。继承可以从一个现存的类中推出一个新类,从而使代码可以重复使用,因而数据和代码可以加到一个类中,或者可以在没有改变现存类的情况下改变一个类的性质。同素异构是这样一种特性,它提供改变由不同目标分享的一个成分的性质的能力,允许成分或目标的不同实例有不同的表现,尽管它们看来是完全相同的。最后,封闭是一种将数据与处理这些数据所必需的操作全都结合在一个“屋顶”下。此外它还允许能够保护数据使之避免多余的或不必要的访问并将数据组织的细节隐蔽起来。
首先参考图1A,这里阐明了在先前的技术系统中采用的有关将新的或修改过的软件引入一个运行着的软件系统的管理的软件控制方案。图1A阐明了软件的等级层次序列,其中每一层的内容是由一个考察板(board)的成员所控制的。对软件的所有改变在系统中实现之前必须由该板批准。在考察板作出一个正式的决定(即需要一个软件,它已经经过适当的测试并且它不象会引起危险或使系统中断运行)之前,软件是不会被并入该系统的。
该等级层次可由连接在一起的几个单独的等级所组成,由已经访问过或者需要这些层次或软件的“库”以实现他或她的功能的一个个别的用户把这些等级连接在一起。在等级1的顶端是实时、运行的软件,它们一般使用最广泛且控制最严格(“AB.D”)。在该层次之下是一个改变库2,在后缀中附加字母C来标示(“AB.DC”)。在该等级内运行的软件的较低层次可以从属于系统内用户的不同群体,并将由这些层次上的考察板进行控制。得到批准之后,新的或修改的实时软件进入系统,到最低的适合于改变的层次,即象在2和3那样的以字母C结尾的层次。
一旦新的或修改过的软件进入系统,它就保留在所进入的层次上,直到经过一个特定阶段并且软件已不产生出可探测到的错误为止。然后它将迁移到下一个最高层次上。有些情况下,这将需要一个特定考察板的预先批准;另一些情况下,迁移将自动产生,作为系统活动的有规律安排中的一部分。迁移对用户是透明的,迁移或进入该等级的软件对于用户将是立即有用的,这些用户是已经将其软件与包含新的或改变的软件的库中的软件的联系结构化的。
正如图1A也阐明的,对于驻留在同一系统中的非实时工程型软件而言,相同的处理可以重复并同时发生。这种情况下仅有的差别在于,控制处理是由不同的一批人进行管理的,而且该处理可以不象一般在整个系统所用的运行的软件对紧要过程处理那样精密。然而,就这种工程软件来说软件的并入是以与运行的软件同样的方式而发生的。新的或修改过的软件进入以C作为后缀中的最后一个字母的最低的适于改变的层次的那个等级,如在4。然后它在取得必要的批准的情况下,经过一段时间按向上方向迁移,直至到达该等级的其所在部分的顶端5。在或是工程软件或是运行软件的情况下,一旦它已经迁移到下一个层次它就不再驻留在较低的层次上。
是否利用进入到系统的等级库中的新的或修改过的软件留给单个的用户或用户组来决定。用户可以选择系统将用来把软件联在一起以便使用的库的层次。他们可以选择绕过软件的全部较低层次,或者他们可以简单地选择避免最低的改变层次,该层包含有最新的和地位最低的已测试的软件。当然,等级中每一部分的最高层次含有大批的在使用的运行软件。
图1B阐明了把配置控制强加给图1A中的软件库的等级上、以便维持对基准和根据日常根据引入该系统的新的或修改过的软件的控制的人工处理过程。如上所述,新软件根据考察板的批准而进入等级制度中最低的适于改变的层次。如果新软件导致出错和差异,该软件就从等级体系中移走并且如6所示返回去进行额外的软件维护工作。一旦问题已被纠正且软件已被重新测试,就可以根据考察板的批准,再试一次,把该软件并入系统的最低的适于改变的层次。如果在所允许的固定的阶段内没有探测到问题,软件将自动迁移到下一个层次,除非下一层需要如7所示的另一次考察板的批准。否则,在得到适当的批准之后它将根据一个确定的安排而迁移。这一过程将连续重复,直到软件到达等级体系的那一部分里的最高层次,此时它将完全被宣布为运行软件。
下面参见图2,这里阐明了本发明的一个方面,描述了可以对软件进行一种平稳的修改或改变的机制。这种平稳的修改特性是这样一种性质,即在一个特定的时间阶段内,允许系统将软件的老版本和新版本同时存储在主存储器内。新业务然后就可以逐渐地引向软件的新版本,随着这种引导的进行,就使得老的事务处理由老的软件版本执行到结束,同时新的事务处理就由新的软件版本执行。在图2中给出了一个未加改变的软件单元11并通过一个称为定向点的寻址机构12与一个老的修改单元13和一个新的修改单元14结合起来。未加改变的接口15和16将老的修改单元13和新的修改单元14与寻址机构12连在一起。
在本发明的系统中一次仅替换软件的一个部分是完全可能的并且事实上是典型的情况。将被替换的软件称作为一个修改单元。图2给出了这样一个情况,有一个修改单元R,它既在软件老版本即老的修改单元13中,也在软件新版本即新的修改单元R’14中。新的修改单元R’通过定义选择有了一个接口16,它是与连接未加改变的软件11的现存接口相一致的。这意味着未加改变的软件是能够既与老版本软件配合也能够与新版本软件(修改单元)配合。
本发明的这一特征,印提供了事务处理的动态定向或重新定向,通过定向点的引导和使用而变得容易。这些定向点由分布式系统中的这样一些区段所组成,在这些区段事务处理可用一种特别的方式定向。如图2中所示的寻址机构12表示定向点的实现以及系统的事务处理被各自地引向软件的新版本或老版本的途径。这些定向点可以按三种方式运行。首先,可以通过分析由系统处理的业务相关联的函数名来触发。根据这一操作方法,业务可以被引导到要求完成必要处理的特定函数的软件新版本或是老版本。其次,事务处理可以被引导去执行一个程序的软件新版本或老版本,该程序是以作为运行时间软件连接的结果而提供的信息为基础的。
一个软件部分的多种版本在系统内一段特定时间可以共存这样一个事实具有一系列后果。例如,本发明的这种平稳修改特征要求,万一改变半永久性数据表示法,软件的不论是新版本还是老版本都能够访问适当的数据表示法。
下一个参见图3A-3E,这里阐明了一个修改单元在修改的一般情况下可以经历的各阶段。在系统的实际运行中,一个特定的修改单元看起来将只经历图示各阶段的一个子集合。此外,在实际操作中,图示各阶段并不是将要完成的系列操作的一个精确的集合。更确切地说,一个或多个阶段在修改的过程中可以重复。本发明这一方面的一个重要特征在于,修改过程各阶段的控制对系统的用户是透明的,对应用软件程序本身也几乎是透明的。图示的各阶段是由一个在系统内操作各种现存的定向点的协调装置控制的。
图3A表示系统21含有一个体现于其中的修改单元R22。这代表了在修改过程开始时系统的状态。此时,系统将所有的常规业务引向软件老版本。图3B表示通过与数据修改信息24结合起来的新版本R’23对修改单元22的修改。图3A阐明了修改开始的状态,而图3B则代表了初始或装入阶段,此时新版本R’23、以及某些情况下在数据修改信息24中所包含的新数据方案被连同老的修改单元22一起装入。数据修改信息24在软件开发系统中已被说明,基于已知知道老版本和新版本的数据表示法这样一个事实。
图3C用图描述了修改处理的数据阶段的改变。这一阶段的目标是,在适当的时刻,移动可能存在的半永久性数据的相关部分,如上所述,这些由老的软件部分包含并直接控制的数据移入新的软件部分,即用来取代老的软件部分,以避免不可接受的干扰。本发明这一持征的实现是通过完成几个不同的活动来管理的。首先,活动集中在数据修改阶段,包括:(a)数据从旧表示法到新表示法的转换,其结果是替换的新软件部分中的数据表示法比在老软件部分中所用的数据表示法已经作了改变;(b)数据从老的软件部分向新的软件部分的传送。其次,在测试阶段和完成阶段即新老软件平行使用的这些阶段延续的活动,包含对或者是新软件部分或者是老软件部分中的半永久性数据的每一次“初始的”更新,这里在另一个软件部分中随后就有一个相应的半永久性数据的更新。即,如果初始的更新是对新软件而进行的,那么随后的更新就是在老软件中进行的,反之亦然。这就意味着,一般情况下,每次的数据转换和传送,半永久性数据都是由新或老软件更新的。数据转换取决于数据修改信息,它们在软件开发期间创建于支持系统中,在初始/装入阶段被装入目标系统,在图3中称为之“数据修改信息”。
关于数据转换,系统的一种可供选择的实现方案可以是仅仅把数据的表示法转换为由新软件在一种所需要的基础上所使用的形式,然后,在老软件从系统中移去之前,转换到那时为止系统仍不需要的全体剩余数据。同样地,所有这些数据开始就可以转移成新软件所使用的表示法,以便节省存储空间,然后,可以用一个再转移程序来将数据转回到由老软件在一种所需要的基础上所使用的形式,直到它被移去。
图3C也用图描述了修改处理的第三阶段,即测试阶段。该阶段打算允许软件新版本装入系统,最初仅对测试数据进行操作以便在使用软件与实际业务一同运行之前确定软件的质量水平。该测试阶段可以被分为两个子阶段:(a)用测试业务测试,即只有人工产生的事务处理将采用新版软件;(b)用简单业务测试,即,经过选择的实际业务的一定比例,大约在零到百分之百之间的新的事务处理将被引去用新版软件运行之。到第二个子阶段结束时,实际业务的大部分或全部将在新版软件之下运行。
测试业务是由特殊软件或利用特殊测试电话用户所产生的。测试业务是受控制的,以便保证修改单元R’23被使用。通过给测试业务加注测试标志可以确保这一结果,该测试标志将自动地在所有的定向点上把测试业务引向新版软件,在定向点上存在一个引向新版软件还是现存的老版软件的选择问题。对于常规的实际业务,究竟是使用新版还是使用老版的软件,将在遇到的第一个定向点上作出决定,该定向点上有一个选择。此后,该业务或事务处理仅由所选择的软件版本进行处理。在后面的某个定向点如要改变到另一个软件版本,在系统中是被禁止的。在此阶段期间,如果测试指出了因使用新版软件而导致发生的问题或错误,就转回去进行修改,所有新的事务处理都被引向老版软件。
值得注意的是,在特定的实施情况下,在成功地处理了测试业务之后使用新版软件的样本业务量可以减少到零。这种情况下,一旦新版软件已被测试业务检验过,满载的所有新的事务处理都可以传送给新版软件,当所有的旧的事务处理已经结束时就允许新版软件完全取代旧版软件。
图3D中图示了第四阶段即结束阶段。在此阶段,已经在使用旧版软件的事务处理继续使用老的修改单元R22,直到系统内不再存在使用老的修改单元R22的事务处理为止。当新的事务处理使用新版软件时前述情况将自然发生。在此阶段,两个版本的软件留在系统存储器内,新版软件依然被认为是处在测试阶段。
结束阶段可以或者是持续下去、直到使用老版软件的所有老的业务已经结束,或者可以是在一个特定的时间将它置为结束。如果到结束阶段的最后还有任何仍使用老版软件的老业务,那么它们将被终止,或者如果可能的话,传送给新版软件。此后,由老版软件所拥有的半永久性数据将不再被更新,老的修改单元将被堵住,结束阶段终止。应当注意的是,在结束阶段之前的测试阶段可以已经由一长段时间来结束,在此期间所有新业务已经被分类成为样本业务,所有老业务已经结束。在这种情况下,结束阶段将非常短,并且仅仅意味着半永久性数据不再被更新和老的修改单元被堵住。
结束阶段的终止意味着整个软件修改过程已经终结。图3D表示了这一状态。
老的修改单元R22及其修改信息不再受到维护,在此关头,它不再可能转回去在老版软件之下运行。此时,如果新软件有一个问题,就要求一个全新的修改。老版软件现在也可以从系统中移去。图3E图示了这一状态。
本发明的系统的另一特征,包含了瞬时修改法作为平稳修改的补充。这一方法为处理所有业务的目的提供了从老版软件到新版软件的即时的或瞬间的转换能力。当应用过程禁止两种不同版本的软件在系统内共存时就可使用这种类型的修改。利用瞬时修改法,如果需要就可以在转换时立即把软件状态变换到新版本。在系统中这是可能的,因为应用软件有能力在新版软件中再造其状态。本发明的系统的这一方面的一个重要性质就在于,尽管修改在内部是相当突然的,对系统用户以及正被处理的业务来说则是透明的。可以在不引起任何可以看得见的中断处理的情况下将业务再引向新版软件。本发明在这一方面的另一个优点是,老版软件留在系统内,虽然是以一种被动模式存在。因此,如果已经显示出新版软件有问题或有错,返回到老版软件就仍然是可能的,这时的处理并不需要重大的或较长的中断。
下面参看图4,这里给出了从老版软件转换为新版软件的平稳修改方法的流程图。特别是,系统预先假设现存软件在系统中是有效地运行着的,并从101开始,此时将新版软件装入内存。在102,系统对数据及其在新版软件中的改变进行复制,并连接数据到新软件上。在103,系统开始用新软件运行测试事务,正常的业务在系统内继续用老软件和老数据运行。在104,系统询问“新软件是在进行测试业务工作吗?”如果不是,系统转到105,在此点新软件和新数据从系统中移走,进程在106结束。在104点如果新软件是在进行测试业务工作,系统转到107,在该点系统用新软件运行实际业务的样本,同时对常规业务的其余部分与老软件和老数据一起进行维护。通过新软件运行的样本业务的百分比可以在实际业务总量的零到百分之百之间有选择地变化。此后,在108,系统再次询问新软件是否在对样本业务进行工作。如果不是,系统转到105,新软件和新数据移出,处理结束。然而,如果在108点处新软件正在成功地处理样本业务,系统就转到109用新软件和数据运行将来所有的呼叫。此后,在110,系统再次询问新软件是否在工作,如果不是,转到105,移去新软件,在106结束。如果在110处,系统中新软件正在进行处理常规业务的工作,系统就询问所有老的事务处理在系统内是否已经完成,这是在111处。如果在111处得到的回答为“不是”,就在113处询问用于改变的时间期限是否已满,如果期限未满,就在109处继续做:(1)用新软件执行所有新的事务处理,(2)用老软件执行所有老的事务处理,直到在111处接收到一个“是”或者在113处时间期限已满。如果在113处时间期限已满,系统就终止或传送所遗留的呼叫,并转到112。如果在111处接收的是一个“是”,系统就移到112,老软件与老数据一道被移走。系统在从老软件转到新软件的运行期间,在没有不适当地使现有业务遭受危险或延迟的情况下,在电讯交换系统内完成了一次交换转换。
下面看图5,这里给出了表120,其中包含一个呼叫标识(ID)类目和一个ID指针类目。对于系统内的每一个是测试的调用寻址,给出了一个指向新软件121的指针,与此同时对于所有包含常规标识的呼叫标识(ID),给出了指向老软件122的指针。图5阐明了这样一个方法,据此方法本发明的系统能够将普通的、实际的业务和测试业务适当地引向合适的软件版本。
尽管这是关于在本发明的系统内对老软件和新软件的寻址方式的一种概括的过分简单的解释,事实上,详细的连接过程调用机制被用来在分别装入的程序单元之间创建动态的运行时间汇集。即,在替换一个程序单元时,软件的新老版本要共存一段时间,直到新版本经验证是正确的并且由老版本所执行的活动可以如上所述予以终止。一种合适的连接过程机制在同样是未决的一项美国专利申请书中已被揭示,该专利申请书的名称是“计算机系统中用于同时执行软件模块的动态运行时间汇集的系统”,由K.Lundin等人发明并转让给L.M.埃利克逊电话股份有限公司(TelefonaktiebolagetL M Ericsson),特在此引用使之具体化。本发明的系统将顾客作为借助于连接过程调用通过一个接口访问软件的一种途径。在装入期间,对连接过程调用可访问的所有接口对核心中的一个商人函数都是公布的。每个接口是用其标识和地址公布的,这涉及到从接口创建一个目标的一种方法。在软件版本间的汇集在运行时间内完成,每当对一个特定的接口建立了一个目标,就向此后将被调用的创建方法的商人或地址发出一个请求,并向所创建的目标返还一个目标指针。
如图6所示,类X131的每个目标由目标一数据133内的表132通过一个目标指针134进行调用,这里目标指针134本身又指向目标131内的一个操作表135,即其中包含该类目标所定义的操作定义的地址。服务员的程序单元内的操作表所涉及的一些地址存贮在目标-数据中。操作表本身又含有属于指定接口的操作的地址。因为在目标-数据内的操作表地址的存储单元和操作表中的地址所存贮的顺序是固定的和已知的,就可以在不借助于商人的情况下调用操作。在接口中可以在没有商人的情况下被调用的一种操作是删除所创建的一个目标。
这些操作表的使用提供了达到同素异构的能力,这里的同素异构是可以通过使用例如程序设计语言C++及其关于虚拟表的构造而实现的一个概念。同素异构,意味着“多形状”,是一种可用以改变由不同目标所分享的一个组成成份的性质的技术。换句话说,一个组成成份在各种情况下可以看起来是相同的,但是对于它所联系的不同的目标可以用有点不同的方式去完成。同素异构是有用的,它可允许创建相关联的目标族,即,这样的目标具有共同的来源或基础,但它们在不同的情况下以不同的方式去完成。这就允许一个目标族里用同样的名称的每个目标含有多种方法或功能,尽管对于每个目标的多种方法的实际代码可以有很大的差别。本发明的系统使用同素异构,以及面向目标程序设计的其它原理。然而,本发明的系统以一种新的更有用的方式实现和扩展了这些原理,以达到执行期间不同软件版本的动态的、透明的内部连接。
下面参看图7,那里图示了这样一个事实,即连接过程调用技术体现在核心142中所包括的商人141的概念中,核心142使一对软件单元143和144之间具有接口关系,143和144中分别含有目标的一个顾客类145和一个服务员类146。图7详细给出了为在也如图6中所示的系统内创建目标所要求的步骤。
目标是一种语言构造,它将数据和代码或函数包含在一个单个的程序包或单元之内。因为它们可以包含数据和代码,它们就作为微型的、独立的程序。因此,在创建更复杂的程序时就可以把它们作为积木块而不必重新为这些功能进行所需的编码。因为它们可以被单独地维护和修改,所以程序的维护和修改就简化了。
类是用以定义目标的模板,而目标则是类的一个例子。一个类包含两种类型成分,实例变量或数据成员和方法或成员函数。为支持计算机系统的顾客或非服务员节点,通过利用作为服务员类的一种媒介的接口说明自动产生出一种顾客类。系统的顾客节点从顾客类中调用操作,以确信调用被传送给了服务员类中驻留的软件工具。因此,所有与动态汇集功能相关的编码都可以在顾客类中找到。
类说明控制着这样一种方式,编译程序将按这种方式在目标-数据中存储地址,操作表中的地址将依该方式的次序加以陈述。某些类说明是由系统自动产生的。当一个目标在系统中创建出来时,其“创建方法”部分函数就可以通过向定位在核心142内的操作系统的商人141部分发出一项请求来加以定位。商人141含有由系统内的连接过程调用可访问的所有类的所有接口信息,即,它含有每个目标可被其它目标访问或访问其它目标的信息。
图8阐明了程序单元的老软件和新软件在运行期间通过连接过程调用进行内部连接和汇集所采用的方法。核心142内的商人141可以将软件单元151的执行引向或者是老软件单元152或者是新软件单元153。在进行替换时,来自老版本和新版本的服务员类每种都有其在商人141中所公布的接口。商人141对每个项目都提供了两个地址入口,一个是到老软件单元152,另一个是到新软件单元153。在替换之前所创建的事务处理将接收到一个指向老软件单元152及其服务员类的地址,而另一个事务处理可以接收到指向服务员类的新版本的地址。
替换完成以后,采用旧软件单元152的事务处理已经结束以后,老软件单元152可以从存储器中移走,由老软件单元152中的服务员类所公布的接口就可以撤销。如果在老软件单元内所有的事务处理运行结束之前试图从存储器中撤销这些服务员类,系统就从核心142中产生一个例外调用。然后系统内的例外管理事务处理就允许未结束的处理有一个机会,将它自己重新定向并且使用新软件单元153,或者否则就终止它。
本发明中使用连接过程调用技术时,接口说明是用一种称为ELIN的面向目标的接口描述语言书写的,该语言在一项美国专利申请中被揭示,该专利以K.Lundin的名义申请,并转让给L.M.埃利克逊电话股份有限公司(Telefonaktiebolaget L M Ericsson),特在此引用使之具体化。在该语言中,有一个特别的构造(类),它特别有助于连接过程调用接口的说明。ELIN语言中的类是特定类型的目标所提供的接口的一种说明。如果使用一种面向目标的程序设计语言,这些目标就尤其适合作为一个类的例子而加以实现。ELIN语言中连接过程调用接口的说明包括下列信息。
(a)说明的名称;
(b)用作该名称的基础的其他接口;
(c)(用于创建示例的)一个或多个设计师;以及
(d)零个或多个方法说明,其中每个包括一种方法名称,主题,返回类型和例外。
如下所述,是一个代码形式的接口说明的示例,它可以被用作为该连接过程调用技术的一部分,它描述了堆栈目标的一个接口。
CLASS Stack;
   BASE
      CLASS TelecomObject;
   ACCEPTS
      CONSTRUCTOR(IN size Int);
      METHOD push(IN data Int);
      METHOD pop()RETURNS Int;
      DESTRUCTOR();
END CLASS Stack;
1992 L.M.埃利克逊电话股份有限公司
这一接口说明定义了一类堆栈目标,其基础类被称为“电讯目标(TelecomObject)”。此类目标可以从列出的函数成员中接收消息呼叫。有了这一类所标示的基础,就表明,还有一个称为“电讯目标”的类的这种说明。该基础类也有特定的详细说明的方法,作为该基础类的一个示例的当前类将继承这些方法。在上述类定义中所说明的函数成员或方法是在基础类中所说明的函数成员或方法之外的。总之,上述代码包含了一种类说明,它是在系统内可创建的接口说明的类型之一。
一个接口可以由另一个接口推出,那么后一个接口就被称为所推出接口的基础接口。接口可以由一个以上的其它接口推出,所推出的接口继承了作为其基础的每一个接口的操作。此外,所推出的接口要说明它自己附加的操作,尽管它对从其基础接口所继承的那些同名操作可以不加定义。应该明白,继承仅仅影响类的接口层次,而不影响执行层次。
如图9所示,本发明的系统也包括存根-代码生成工具162,它用来证明顾客与服务员之间的协调,在运行期间顾客与服务员是通过一个接口动态地连接在一起的。该接口是用一种语言无关形式加以说明的,但是采用面向目标的示例说明。存根-代码生成处理确保达到向几种程序设计语言之一的变换,在以下的部分里,有关于如何实现C++中的变换的简短说明。参看图9,其中阐明了在本发明的系统中一个接口说明161采用存根生成工具162而和一组所生成的文件164相关的方法。图9尤其是阐明了在该语言中完成变换的C++的整个结构。接口说明在本发明的系统中使用时以面向目标的接口描述语言ELIN写出,它类似于程序设计语言C++中所用的类定义。与此相似,通过目标的访问操作技术类似于程序设计语言C++处理虚拟函数的方法。因此,图9所示的关于C++的变换对于本发明的系统这一方面的操作是有指导性的。
存根生成工具162既为顾客一方也为服务员一方产生两个文件,一个以“.h”(header的首字母)为后缀,一个以“.cc”(code的首字母)为后缀。对于顾客,“.h”或首标(header)文件包括两个类定义。一类是服务员的“.h”或首标文件里的相应类别的精确复制件。这就确保了顾客与服务员之间的协调一致,并且使顾客调用由服务员创建的目标成为可能。然而,这一类的设计师是专有的,从而使该类不能被用来在堆栈上创建自动的目标。第二类是将用于顾客的一个类,它用作一个媒介,通过它可以访问由服务员创建的目标。
对于服务员,由存根生成工具162产生同样的两个文件-“.h”(header)文件和“.cc”(code)文件。“.h”文件的内容包括一个类定义,它将确保与顾客的协调一致。就是这个类被用作工具的基础。该工具可以直接以所产生的类为基础,或者说所产生的类可以用作推出其它类的基础。“.cc”文件含有“创建方法”的一个轮廓以及实现创建方法地址的公开的代码。创建方法的主体担负着创建一个与所产生的类兼容的目标和返还一个指向也如图6所示的新创建目标的指针的工作。
为顾客和服务员两方面产生出不同的然而是兼容的类定义而不是一个共享的类定义,这样做有几条理由。首先,它为顾客和服务员中的成员提供了不同层次的清晰度。例如,一个设计师在服务员中必须是公共的,但如果它是驻留在顾客中就并不需要是公共的。其次,如果使用不同的类,在为测试的目的把顾客和服务员程序连接在一起时就不会遇到名称冲突的问题。下面参看图10,这里给出了一个特定的框图布局,阐明了给定的示例代码模块及在本发明的系统中它们的相互关系。图10阐明了给定的所产生的文件和所书写的说明的逻辑结构,它们在本发明的系统内可被实现。在最高层次,公共接口说明171定义了一个类“X”以及该类将接受调用时采用的方法。该类的逻辑下属,在定义的下一层次,是接口说明171的一个用户单元172的说明书,和公共接口说明171的一个供应者单元173的说明书。用户单元说明书172定义了公共接口-类别X的一个顾客。供应者单元说明书173定义了类X的一个服务员。
在单元说明书172和173之下的下一逻辑层次是为用户和供应者分别产生的类定义。为X用户(XUser)所产生的类定义174阐明了既为公共用途也为个人用途所定义的特定的用户类。为X供应者(Xprovider)所产生的类定义175阐明了关于供应者数据和函数的特定的公共定义和专有定义。
最后参看图11,它阐明了一个协议说明是如何被用来产生存根-代码的,这样确保了使用消息的两个通讯当事人之间完全的协调一致。存根-代码的结构如图11所示,包括用户书写代码181,生成代码182和核心代码183。在分布式和模块的计算机系统中,它的一个例子是电讯系统,使用许多应用层次的协议以方便在系统各部分之内及系统各部分之间的通讯。
协议可以看作是系统内各对当事人之间契约的集合,这些当事人同意按照一种特定的方式和格式通讯。有的协议可以被描述为顾客-服务员协议,在那里仅有一方当事人是引发者。另外一些协议,称为同等协议,允许两方当事人引发通讯。与其它现存的系统不同,在本发明的系统中,当事人之间全部的协定或协议是用一个单独的接口说明加以说明的,该接口说明是与当事人的具体的执行过程相分离的。因此,这意味着该单独的说明可以用作为一个普通的协议,它可以系统内部任何一对当事人之间重新用作协议。
本发明的系统以一种有专利权的面向目标的接口描述语言ELIN来实现单独的接口/协议说明。例如,同等类型的协议说明包含下列组成成份:(1)操作形式上被分为协议,每个协议有两方当事人;(2)相互作用的约束的说明书。同等协议说明的存在与使用协议执行通讯的执行过程相分离。同等协议说明根据下列格式而组成:(1)协议名称;(2)第一方当事人的名称及其可接受的操作表;(3)第二方当事人的名称及其可接受的操作表;(4)相互作用约束(可选的)。
以下为带有相互作用约束的代码形式的一个协议说明的示例。该协议说明中所包含的信息可以用于生成存根代码:PROTOCOL CommunicationService;PARTY DataProducer;
     ACCEPTS
     StartTransmission,Terminate Transmission,ReSendData;END PARTY DataProducerPARTY DataConsumer
  ACCEPTS
     StringData,IntegerData,NoMoreDataToSend;
END PARTY DataConsumer;
INTERACTION
   STATE START
      WHEN StartTransmission THEN Started;
STATE Started
   WHEN TerminateTransmission THEN START;
   WHEN IntegerData THEN Dataphase;
   WHEN StringData THEN Dataphase;
   STATE Dataphase
      WHEN IntegerData THEN Dataphase;
      WHEN StringData THEN Dataphase;
      WHEN ResendData THEN Dataphase;
      WHEN NoMoreDataToSend THEN DataphaseEnded;
   STATE DataphaseEnded
      WHEN ResendData THEN ResendOrdered;
      WHEN TerminateTransmission THEN START;
   STATE ResendOrdered
      WHEN StringData THEN DataphaseEnded;
      WHEN IntegerData THEN DataphaseEnded;END PROTOCOL CommunicationService;
1992L.M.埃利克逊电话股份有限公司
在系统内通讯的一方当事人的逻辑结构也在图11中给出。如图11所示,ELIN语言被用于描述分布跨越该系统的目标之间的通讯,以及在该系统内所使用的数据类型之间的通讯。在本发明的这一特征中使用的和定义的协议允许设备起相同作用,在任何一方当事人引发通讯的情况下。并不预先定义任何一方在通讯中是主方或是从方。本发明的系统的这一特征允许在不同的和遥远的地方开发和操作的系统容易进行相互间的操作,只要每个系统是使用单独加以说明的接口开发的。本发明的系统的这一方面的协议说明与该系统内任何应用工具是分离的和有区别的。
如图11中所进一步阐明的,用户书写的代码181作为通讯协议的一方当事人既可根据协议说明发送消息也可根据协议说明接收消息。数据接收过程184,185和186处理按协议到达的输入消息。数据发送过程187,188,189包含由存根生成工具所自动生成的代码,以便在用户呼叫时根据协议说明建立并发送消息到系统中去。接收消息的活动190和发送消息的活动191都是通过一个接口媒介192引导的,192是生成代码182的一部分。该接口说明192是生成代码的命令部分,为了接口和协议适当地发挥作用该部分必须给出。
调度程序193是一个函数,它由存根生成工具产生并由协议说明中加以说明的每个输入消息调用。调度程序193接收消息,对消息进行译码,从消息主体中分离出消息标识符,然后将其如图中194所示分配给将以此工具书写的过程。
协议警察195是生成代码182的一个可选部分,用来监督业务并确定在任一给定的瞬间通讯双方当事人在发送或接收消息时是否遵守了接口规则。协议警察195在遵守协议规则的监督方面象一台状态机器那样运作。该状态机器的逻辑在上面提供的示例代码中已作表达。
在图11所示的核心代码183中驻留了一个通讯端口196。该通讯端口196由本发明的系统的寻址机制视为一个被动的支持工具。通讯端口196不知道通过它正在传递的协议,但是用以使通讯更加便利。通讯支持197是存在于操作系统中的总的通讯支持。它可以在同一处理器中的处理之间进行操作,也可以对定位在不同的处理器上的处理进行操作。如果它正在对分布在处理器之间的目标进行操作,通讯支持197就将组成一个硬件通讯链路。在图11中包含的整个说明的镜象将代表发生在该支持中的相应活动以及在系统中第二个通讯当事人的操作。
如上所述,本发明的系统使得运行期间新软件与旧软件的蕴含或连接成为可能,这种蕴含或连接所采用的方式使得软件既能被实时有效地测试,也能在远程通讯网络中平稳地和透明地被替换,而该网络中的电讯业务并不受干扰。
这样,可以相信,本发明的操作和构造从前面的描述中已经显而易见。图示的和描述的方法、装置和系统已经按所愿意的方式来刻划,人们将容易看到,在不离开以下的权利要求所定义的本发明的精神和范围的情况下,是能够进行各种改变和修改的。

Claims (98)

1.一种在对以现有软件处理现有数据无重大干扰,并允许两种软件版本同时产生输出数据的情况下将计算机装置的数据处理控制自动转移给新软件的方法,该方法与计算机装置一起使用,以现有软件处理现有数据并接受待处理的新数据,其特征在于,所述方法包括下述步骤:
在计算机装置中装入新软件;
在用现有软件处理现有数据和新数据的同时,用新软件来处理测试数据;
在新软件对所述测试数据作了成功的处理之后,当继续用现有软件处理现有数据并由新软件和旧软件同时产生输出数据时,自动地将所有新数据的处理控制转移至给新软件;以及
在新软件对所述新数据作了成功的处理之后,自动地将全部的数据处理控制转移至新软件。
2.如权利要求1所述的方法,其特征在于,在多个并行、独立和同时的事务处理中的处理现有数据和新数据,用下述步骤把这些事务处理动态地引至现有的或新的软件版本:
用一标帜与每个事务处理相关联,该标帜指出事务处理的模式;以及
根据由相关联的标帜指出的模式,把每个事务处理的整体动态地引至新的或现有的软件版本。
3.如权利要求2所述的方法,其特征在于,指出测试模式的标帜与基于输入到系统的测试数据的所有的事务处理相关联,而把具有一相关联的测试标帜的所有的事务处理引至新软件,以对其整体进行处理。
4.如权利要求2所述的方法,其特征在于,指出一现有数据模式的标帜与基于在新数据输入至新软件之前输入至系统的所有实际数据的所有事务处理相关联,而把具有一相关联的现有数据标帜的所有的事务处理引至现有软件,以对其整体进行处理。
5.一种在对以现有软件处理现有数据无重大干扰的情况下将计算机装置的数据处理控制自动转移至新软件的方法,该方法与计算机装置一起使用,以现有软件处理现有数据并接受待处理的新数据,其特征在于,所述方法包括下述步骤:
在计算机装置中装入新软件;
用新软件来处理测试数据,测试数据模拟由现有软件处理的实际数据;
响应于新软件成功地处理测试数据,允许新软件对实际数据的一个样本部分进行处理,否则这一部分将由老软件来处理;以及
在新软件成功地处理了实际数据的所述预定样本部分之后,自动地将全部的数据处理控制转移至新软件。
6.如权利要求5所述的方法,其特征在于,在所述允许步骤和自动转移步骤之间还包括下述步骤:
用新软件处理所有的新数据,而用现有软件处理现有数据。
7.如权利要求6所述的方法,其特征在于:
响应于在开始在新软件内处理所有新数据而用现有软件来处理现有数据的所述步骤之后一预选的时间间隔的结束,进行所述自动转移的步骤。
8.如权利要求7所述的方法,其特征在于,在所述预选的时间间隔结束后,强制终止仍由老软件处理的所有事务处理。
9.如权利要求7所述的方法,其特征在于,在所述预选的时间间隔结束后,仍由老软件处理的所有事务处理都转移至新软件以完成处理。
10.如权利要求7所述的方法,其特征在于,在所述预选的时间间隔结束后,试图把能够留下干扰的所有事务处理都转移至新软件作处理,而终止所有其他的事务处理。
11.如权利要求6所述的方法,其特征在于:
所述自动转移步骤是在以现有软件对现有数据处理完成后实行的。
12.如权利要求11所述的方法,其特征在于:
响应于以新软件成功地处理所有的新数据并且以现有软件完成对现有数据的处理,实行所述自动转移步骤。
13.一种在对以现有软件处理现有数据无重大干扰情况下将计算机装置的数据处理控制自动转移至新软件的方法,它与计算机装置一起使用,以现有软件处理现有数据并接受待处理的新数据,其中,现有数据和新数据都是在一系列事务处理中处理的,现有数据和新数据都包括动态数据和半永久性数据,动态数据在每个事务处理期间建立和使用而在处理完成后删除,半永久性数据由多个事务处理过程使用并且留存于其中,其特征在于,所述方法包括下述步骤:
在计算机装置中装入新软件;
将数据从现有软件转移至新软件;
用新软件来处理测试数据,测试数据模拟由现有软件处理的实际数据;
在新软件成功地对模拟实际数据的所述测试数据完成处理后,自动地将全部的数据处理控制转移至新软件。
14.如权利要求13所述的方法,其特征在于,新软件中的数据表示法不同于现有软件中的数据表示法,并且将数据从现有软件转移至新软件的所述步骤包括下述步骤:
将所述数据从所述现行的表示法转换至所述新的表示法。
15.如权利要求14所述的方法,其特征在于:
将所述数据从所述现行的表示法转换至所述新的表示法的所述步骤是在所述新软件所需的基础上完成的。
16.如权利要求14所述的方法,其特征在于:
将所述数据从所述现行的表示法转换至所述新的表示法的所述步骤包括一次将所有的所述数据转换至所述新的表示法的下述附加步骤:
在所述老软件所需的基础上,将所述数据从所述新的表示法再转换至所述现行的表示法。
17.如权利要求14所述的方法,其特征在于,在将所述数据从现有软件转移至新软件的所述步骤之后,还包括下述附加步骤:
响应于在现有软件或新软件内半永久性数据的每次初始更新,更新在另一软件内的半永久性数据。
18.如权利要求13所述的方法,其特征在于:
只将半永久性数据从现有软件转移至新软件。
19.如权利要求13所述的方法,其特征在于,在将所述数据从现有软件转移至新软件的所述步骤之后,还包括下述附加步骤:
响应于在现有软件或新软件内半永久性数据的每次初始更新,更新在另一软件内的半永久性数据。
20.一种在电信交换系统连续运行期间平稳而自动地从老的呼叫处理软件改变至新的呼叫处理软件的方法,它没有系统干扰的重大风险,并从老的和新的呼叫处理软件同时产生输出数据,其特征在于,所述方法包括下述步骤:
在老软件继续处理呼叫时,将新软件装入系统;
通过系统运行多个测试呼叫并将所有的所述测试呼叫送至新软件作处理而同时用老软件来处理实际呼叫;
响应于新软件成功地处理所述测试呼叫,而用老软件处理所有的现有呼叫并同时由老软件和新软件产生输出数据,将由系统接收到的所有的新呼叫送至新软件;以及
响应于新软件未能成功地处理所述测试呼叫,将系统接收到的所有新呼叫送至老软件。
21.如权利要求20所述的方法,其特征在于,在多个并行、独立、同时的事务中处理老数据和新呼叫事务,这些事务由下述步骤动态地引至老的或新的呼叫处理软件:
与每个呼叫事务相关联,用一标帜来指出事务的模式;以及
根据由相关联的标帜指出的模式,将每个事务的整体动态地引至新的或老的呼叫处理软件。
22.如权利要求21所述的方法,其特征在于,一个指出测试呼叫模式的标帜与基于输入至系统的测试呼叫的所有事务相关联,而把具有与之相关联的一测试标帜的所有事务引至新软件,由此对整体作处理。
23.如权利要求21所述的方法,其特征在于,一个指出现有呼叫模式的标帜与基于所有实际呼叫的所有事务相关联,所有这些实际呼叫是在把新呼叫送至新软件之前输入至系统的,而对于处理的整体,把具有与之相关联的现有呼叫标帜的所有的呼叫事务引至老软件。
24.一种在电信交换系统连续运行期间平稳而自动地从老的呼叫处理软件改变至新的呼叫处理软件的方法,它没有系统干扰的重大风险,其特征在于,所述方法包括下述步骤:
在老软件继续处理呼叫时,将新软件装入系统;
通过系统运行多个测试呼叫并将所有的所述测试呼叫送至新软件作处理;
响应于新软件成功地处理所述测试呼叫,把选定数目的实际呼叫送至新软件作处理,而实际呼叫的剩余部分仍继续由老软件处理;
响应于新软件成功地处理所述测试呼叫和所述选定数目的实际呼叫,把系统接收到的所有的新呼叫送至新软件;以及
响应于新软件未能成功地处理所述测试呼叫或所述选定数目的实际呼叫,把系统接收到的所有的新呼叫送至老软件。
25.如权利要求20或24所述的方法,其特征在于,它还包括下述步骤:
响应于新软件成功地处理所有的新呼叫而从系统中移去老软件,并终止由老软件处理的所有呼叫。
26.如权利要求24所述的方法,其特征在于,在把由系统接收到的所有的新呼叫送至新软件之后,包括要完成下述步骤:
用新软件处理所有的新呼叫,而用老软件处理现有呼叫。
27.权利要求26所述的方法,其特征在于,包括下述附加步骤:
响应于在开始在新软件内处理所有的新呼叫而用老软件处理现有呼叫的所述步骤之后一预选的时间间隔的结束,将全部的呼叫处理控制转移至新软件。
28.如权利要求27所述的方法,其特征在于,在所述预选的时间间隔结束后,强制终止仍由老软件处理的所有的呼叫。
29.如权利要求27所述的方法,其特征在于,在所述预选的时间间隔结束后,把仍在处理的所有的呼叫转移至新软件以完成处理。
30.如权利要求27所述的方法,其特征在于,在所述预选的时间间隔结束后,试图把能够留下干扰的所有的呼叫转移给新软件,而终止所有其他的呼叫。
31.一种在电信交换系统连续运行期间平稳而自动地从老的呼叫处理软件改变至新的呼叫处理软件的方法,它没有系统干扰的重大风险,而其中,现有呼叫和新呼叫都是在一系列事务处理中处理的,并且它们都有相关的动态数据和半永久性数据,动态数据在每个事务处理期间建立和使用而在处理完成后删除,半永久性数据由多个事务处理过程使用并且留存于其中,其特征在于,所述方法包括下述步骤:
在老软件继续处理呼叫时,将新软件装入系统;将数据从老软件转移至新软件;
通过系统运行多个测试呼叫,并把所有的所述测试呼叫送至新软件作处理;
响应于新软件成功地处理所述测试呼叫,把系统接收到所有的新呼叫送至新软件;以及
响应于新软件未能成功地处理所述测试呼叫,把系统接收到的所有的新呼叫都送至老软件。
32.如权利要求31所述的方法,其特征在于,新软件中的数据表示法不同于老软件中的数据表示法,并且把数据从老软件转移至新软件的所述步骤包括下述步骤:
将所述数据从所述老的表示法转换至所述新的表示法。
33.如权利要求32所述的方法,其特征在于,将所述数据从所述现行的表示法转换至所述新的表示法的所述步骤是在所述新软件所需的基础上完成的。
34.如权利要求32所述的方法,其特征在于:
将所述数据从所述现行的表示法转换至所述新的表示的所述步骤包括一次将所有的所述数据转换至所述新的表示法的下述附加步骤:
在所述老软件所需的基础上,把所述数据从所述新的表示法再转换至所述现行的表示法。
35.如权利要求32所述的方法,其特征在于,在将所述数据从老的表示法转换至新的表示法之后,还包括下述附加步骤:
响应于在老软件或新软件内半永久性数据的每次初始更新,更新在另一软件内的半永久性数据。
36.如权利要求31所述的方法,其特征在于,只将半永久性数据从老软件转移至新软件。
37.如权利要求31所述的方法,其特征在于,在将所述数据从老软件转移至新软件之后,还包括下述附加步骤:
响应于老软件或新软件内半永久性数据的每次初始更新,更新在另一软件内的半永久性数据。
38.一种在电信交换系统连续运行期间平稳而自动地从老的呼叫处理软件改变至新的呼叫处理软件,并允许老的和新的呼叫处理软件同时产生输出数据的方法,其特征在于,所述方法包括下述步骤:
在老软件继续处理呼叫时,把新软件装入系统;
通过系统运行多个测试呼叫,并将所有的所述测试呼叫送至新软件作处理,而不停止到老软件的所有的实际电信业务;
响应于新软件成功地处理所述测试呼叫并同时从老软件和新软件产生输出数据,把由系统接收到的所有的新呼叫送至新软件;以及
响应于新软件成功地处理所有的新呼叫,并首先响应于终止由老软件处理的所有的呼叫或响应于在把由系统接收到的所有新呼叫送至新软件后一预选的时间间隔的结束,把所有的老软件从系统中移去。
39.如权利要求38所述的方法,其特征在于,在所述预选的时间间隔结束后,强制终止仍由老软件处理的所有的事务处理。
40.如权利要求38所述的方法,其特征在于,在所述预选的时间间隔结束后,把仍由老软件处理的所有的事务处理转移至新软件以完成处理。
41.如权利要求38所述的方法,其特征在于,在所述预选的时间间隔结束后,打算把可能留下干扰的所有的事务处理转移至新软件作处理,而终止其他所有的事务处理。
42.一种在电信交换系统连续运行期间平稳而自动地从老的呼叫处理软件改变至新的呼叫处理软件,其特征在于,所述方法包括下述步骤:
在老软件继续处理呼叫时,把新软件装入系统;
由下述步骤通过系统运行多个测试呼叫,并将所有的所述测试呼叫送至新软件作处理,而不停止到老软件的所有的实际电信业务:
只将模拟呼叫送至新软件作处理;以及
响应于新软件成功地处理所述模拟呼叫,除了所述模拟呼叫之外,还将多个新呼叫的样本送至新软件作处理;
响应于新软件成功地处理所述测试呼叫,把由系统接收到的所有的新呼叫送至新软件;以及
响应于新软件成功地处理所有的新呼叫,并首先响应于终止由老软件处理的所有的呼叫或响应于在把由系统接收到的所有新呼叫送至新软件之后一预选的时间间隔的结束,把所有的老软件从系统中移去。
43.一种在电信交换系统连续运行期间平稳而自动地从老的呼叫处理软件改变至新的呼叫处理软件,其中,在一系列事务处理中处理现有呼叫和新呼叫,并且两者都有相关的动态数据和半永久性数据,动态数据在每个事务处理中建立和使用并在处理完成后删除,而半永久性数据由多个事务处理使用并存于其中,其特征在于,所述方法包括:
在老软件继续处理呼叫时,把新软件装入系统;
将数据从老软件转移至新软件;
通过系统运行多个测试呼叫,并将所有的所述测试呼叫送至新软件作处理,而不停止到老软件的所有的实际电信业务;
响应于新软件成功地处理所述测试呼叫,把由系统接收到的所有的新呼叫送至新软件;以及
响应于新软件成功地处理所有的新呼叫,并首先响应于终止由老软件处理的所有的呼叫或响应于在把由系统接收到的所有的新呼叫送至新软件之后一预选的时间间隔的结束,把所有的老软件从系统中移去。
44.如权利要求43所述的方法,其特征在于,新软件中的数据表示法不同于老软件中的数据表示法,而把数据从老软件转移至新软件包括下述步骤:
将所述数据从所述老的表示法转换至所述新的表示法。
45.如权利要求44所述的方法,其特征在于,在所述新软件所需的基础上进行把所述数据从所述老的表示法转换至所述新的表示法的所述步骤。
46.如权利要求44所述的方法,其特征在于,把所述数据从所述老的表示法转换至所述新的表示法包括一次把所有的所述数据转换至所述新的表示法以及下述附加步骤:
在所述老软件所需的基础上把所述数据从所述新的表示法再转换至所述现行的表示法。
47.如权利要求44所述的方法,其特征在于,在把数据从老软件转移至新软件的所述步骤之后,还包括下述附加步骤:
响应于在老软件或新软件内半永久性数据的每次初始更新,更新另一软件内的半永久性数据。
48.如权利要求43所述的方法,其特征在于:
只将半永久性数据从老软件转移至新软件。
49.如权利要求43所述的方法,其特征在于,在把数据从老软件转移至新软件的所述步骤之后,还包括下述附加步骤:
响应于在老软件或新软件内半永久性数据的每次初始更新,更新在另一软件内的半永久性数据。
50.一种在一计算机系统中把数据处理操作从先前装入的第一软件移至新近装入的第二软件的方法,在此系统中,当由计算机系统接收新数据时,由第一软件处理现有数据并由第一和第二软件同时产生输出数据,其特征在于,所述方法包括下述步骤:
把测试数据传送至所述第二软件作处理,所述测试数据模拟要被处理的实际数据;
响应于所述第二软件成功地处理所述测试数据,而所述第一和第二软件同时产生输出数据,在由所述第一软件继续处理所述现有数据时,把所有的所述新数据传送至所述第二软件;以及
响应于所述第一软件完成对所述现有数据的处理,把其他所有的数据送至所述第二软件作处理,
在计算机系统运行期间,在对数据处理操作的连续性不产生重大干扰的情况下,自动地实现从所述第一软件至所述第二软件的转换。
51.一种在一计算机系统中把数据处理操作从先前装入的第一软件转移至新近装入的第二软件的方法,在此系统中,当由计算机系统接收新数据时,由第一软件处理现有数据,其特征在于,所述方法包括下述步骤:
将所述测试数据传送至所述第二软件作处理,所述测试数据模拟要被所述第一软件处理的实际数据;
响应于所述第二软件成功地处理所述测试数据,将实际数据的一预定有限数量的样本传送至所述第二软件,否则这些样本将由所述第一软件处理;
响应于所述第二软件成功地处理测试数据和实际数据的有限数量的样本,在所述第一软件继续处理所述现有数据时,将所有的所述新数据传送至所述第二软件;以及
响应于所述第一软件完成对所述现有数据的处理,把其他所有的数据送至所述第二软件作处理,
在计算机系统对数据处理操作的连续性无重大干扰的运行期间自动地实行从所述第一软件至所述第二软件的转换。
52.如权利要求50或51所述的方法,其特征在于:
所述计算机系统是一电信交换系统;以及
所述现有数据和新数据是所述电信交换系统接收到的呼叫。
53.一种与电信交换系统一起使用,在交换系统运行期间对连续的呼叫处理无重大干扰情况下把呼叫逐渐改道至后来装入的第二软件以作处理的方法,在此交换系统中,当由系统接收新呼叫时,由先前装入的第一软件处理现有呼叫,其特征在于,所述方法包括:
把测试呼叫传送至所述第二软件,该测试呼叫模拟由所述第一软件处理的实际呼叫,与此同时,所述第一软件处理现有呼叫和新的实际呼叫;
当所述第一软件继续处理所述现有呼叫,而由所述第一和第二软件同时产生输出数据时,把由电信交换系统接收到的所有的新呼叫传送至所述第二软件;
顺序地完成所述第一和第二步骤并顺序地使第二软件经受下述测试:
(1)采用在所述第一步骤中传送至所述第二软件的测试呼叫的第一呼叫处理测试,以及
(2)随着所述第二软件成功地完成所述第一呼叫处理测试,采用在所述第二步骤中传送至所述第二软件的新呼叫的第二呼叫处理测试;以及
在所述第二软件成功地完成所述第二呼叫处理测试之后,将所有的呼叫处理控制从所述第一软件转移至第二软件。
54.一种与电信交换系统一起使用,在交换系统运行期间对连续的呼叫处理无重大干扰的情况下把呼叫逐渐改道至后来装入的第二软件以作处理的方法,在此交换系统中,当由系统接收新呼叫时,由先前装入的第一软件处理现有呼叫,其特征在于,所述方法包括:
把测试呼叫传送至所述第二软件,该测试呼叫模拟由所述第一软件处理的实际呼叫;
将实际呼叫的一样本部分传送至所述第二软件,否则这些样本将由所述第一软件处理;
将由电信交换系统接收到的所有的新呼叫传送至所述第二软件;
顺序地完成所述第一、第二和第三步骤,再顺序地使所述第二软件经受下述测试:
(1)采用在所述第一步骤中传送至所述第二软件的测试呼叫的第一呼叫处理测试;
(2)随着所述第二软件成功地完成所述第一呼叫处理测试,采用在所述第二步骤中传送至所述第二软件的实际呼叫的一样本部分的第二呼叫处理测试;以及
(3)随着所述第二软件成功地完成所述第一和第二呼叫处理测试,采用在所述第三步骤中传送至所述第二软件的新呼叫的第三呼叫处理测试;以及
在所述第二软件成功地完成所述第三呼叫处理测试后,将所有的呼叫处理控制从所述第一软件转移至所述第二软件。
55.如权利要求53或54所述的方法,其特征在于:
在进行把所有的呼叫处理控制从所述第一软件转移至所述第二软件的步骤之前,先完成下述步骤:
(1)所述第二软件成功地完成所述第二呼叫处理测试,以及
(2)所述第一软件完成现有呼叫的处理。
56.如权利要求53或54所述的方法,其特征在于:
在进行把所有的呼叫处理控制从所述第一软件转移至所述第二软件的步骤之前,先完成下述步骤:
(1)所述第二软件成功地完成所述第二呼叫处理测试,以及
(2)在把由电信交换系统接收到的所有的新呼叫传送至所述第二软件后再经过一预选的时间间隔。
57.如权利要求56所述的方法,其特征在于,在所述预选的时间间隔结束后,强迫终止仍由所述第一软件处理的所有的事务处理。
58.如权利要求56所述的方法,其特征在于,在所述预选的时间间隔结束后,把仍由所述第一软件处理的所有的事务处理转移至第二软件以完成处理。
59.如权利要求56所述的方法,其特征在于,在所述预选的时间间隔结束后,试图把可能留下干扰的所有的事务处理转移至所述第二软件,而终止其他所有的事务处理。
60.一种把分别处于第一和第二软件应用程序中的第一和第二模块动态地连接起来的方法,通过提供一组定向点,以将运行软件系统内的事件链动态地引至所述第一或第二应用程序的一个或另一个之中,其特征在于,所述方法包括下述步骤:
分析由函数名寻址的消息;
将这些消息引至所述第一或第二模块的每一个中的进程;以及
藉动态运行时间汇集,将进程的执行引至所述第一或所述第二软件模块中,以有选择地执行所述进程。
61.在一计算系统中,将第一软件单元与第二软件单元动态连结的一种方法,所述方法包括下述步骤:
在所述计算系统中建立一商人部分;
将所述第一软件单元装入所述计算系统,所述第一软件单元具有一顾客接口;
将所述第二软件单元装入所述计算系统,所述第二软件单元具有一与所述顾客接口兼容的服务员接口;
在所述第一软件执行一连接过程调用,所述连接过程调用规定所述顾客接口;
用所述规定的顾客接口访问所述商人部分,以识别所述服务员接口;以及
在执行所述第一软件单元时,用所述经识别的服务员接口来代替所述顾客接口,由此动态地连接所述第一和第二软件单元。
62.如权利要求61所述的方法,其特征在于,还包括下述步骤:
从一公共的接口说明产生出所述顾客接口和所述服务员接口。
63.如权利要求62所述的方法,其特征在于,所述公共接口说明是面向目标的,而所述方法还包括下述步骤:
建立与计算机程序语言无关的所述公共接口说明。
64.如权利要求63所述的方法,其特征在于,还包括下述步骤:
把第三软件单元装入所述计算系统,所述第三软件单元具有一第二服务员接口,该接口与所述顾客接口兼容;以及
在所述商人部分中公布所述第二服务员接口的实际位置。
65.如权利要求64所述的方法,其特征在于,装入所述第一软件单元的所述步骤包括下述步骤:
在所述商人部分中公布所述顾客接口的实际位置。
66.如权利要求65所述的方法,其特征在于,装入所述第二软件单元的所述步骤包括下述步骤:
在所述商人部分中公布所述服务员接口的实际位置。
67.如权利要求66所述的方法,其特征在于,访问所述商人部分的所述步骤包括下述步骤:
用所述规定的顾客接口访问所述商人部分,以识别所述第二服务员接口。
68.如权利要求67所述的方法,其特征在于,所述替代步骤包括下述步骤:
在执行所述第一软件单元时,用所述经识别的第二服务员接口替代所述顾客接口,由此把所述第一和第三软件单元动态地连接起来。
69.如权利要求68所述的方法,其特征在于,所述顾客接口是C++计算机程序设计语言中的一类,而所述服务员接口是C++计算机程序设计语言中的一类。
70.如权利要求69所述的方法,其特征在于,所述替代方法包括下述步骤:
用所述第二服务员接口实际位置,从所述第二服务员接口建立一第二服务接口目标;以及
在执行所述第一软件单元时,把所述第二服务员接口目标表示为用类型分配从所述顾客接口建立的目标,由此把所述第一软件单元与所述第三软件单元动态地连接起来。
71.如权利要求70所述的方法,其特征在于,所述计算系统是一电信交换系统。
72.如权利要求70所述的方法,其特征在于,所述计算系统是一个人计算机。
73.如权利要求70所述的方法,其特征在于,所述计算系统是一计算机网络。
74.如权利要求66所述的方法,其特征在于,还包括下述步骤:
在所述第一软件单元中接受一进程,所述进程具有规定所述第二服务员接口的标志。
75.如权利要求74所述的方法,其特征在于,执行所述连接过程调用的所述步骤包括下述步骤:
响应于所述已接受的进程,在所述第一软件单元中执行所述连接过程调用,所述连接过程调用规定所述顾客接口和所述第二服务员接口。
76.如权利要求75所述的方法,其特征在于,所述访问步骤包括下述步骤:
用所述规定的顾客接口访问所述商人部分,以识别所述第二服务员接口。
77.如权利要求76所述的方法,其特征在于,所述替代步骤包括下述步骤:
在执行所述第一接口时,用所述第二服务员接口替代所述顾客接口,由此把所述顾客接口和所述第二服务员接口动态地连接起来。
78.如权利要求66所述的方法,其特征在于,还包括下述步骤:
在所述第一软件单元中接受一进程,所述进程具有一规定所述服务员接口的标志。
79.如权利要求78所述的方法,其特征在于,执行所述连接过程调用的所述步骤包括下述步骤:
响应于所述已接受的进程,在所述第一软件单元中执行所述连接过程调用,所述连接过程调用规定所述顾客接口和所述服务员接口。
80.如权利要求79所述的方法,其特征在于,所述计算系统是一电信交换系统。
81.如权利要求79所述的方法,其特征在于,所述计算系统是一台个人计算机。
82.如权利要求79所述的方法,其特征在于,所述计算系统是一计算机网络。
83.如权利要求63所述的方法,其特征在于,所述顾客接口与所述服务员接口与单一的识别号相关联。
84.如权利要求83所述的方法,其特征在于,访问所述商人部分的所述步骤包括下述步骤:
用与所述顾客接口相关联的单一的识别号访问所述商人部分,以识别所述服务员接口。
85.如权利要求62所述的方法,其特征在于,装入所述第一软件单元的所述步骤包括下述步骤:
在所述商人部分中公布所述顾客接口的实际位置。
86.如权利要求85所述的方法,其特征在于,装入第二软件单元的所述步骤包括下述步骤:
在所述商人部分中公布所述服务员接口的实际位置。
87.如权利要求86所述的方法,其特征在于,所述顾客接口是C++计算机程序设计语言中的一类,而所述服务员接口是C++计算机程序设计语言中的一类。
88.如权利要求87所述的方法,其特征在于,所述的替代步骤包括下述步骤:
用由所述服务员接口的实际位置,从所述服务员接口建立服务员接口目标;以及
在执行所述第一软件单元时,将所述服务员接口目标表示为用类型分配由所述顾客接口建立的目标,由此把所述第一软件单元与所述第二软件单元动态地连接起来。
89.如权利要求88所述的方法,其特征在于,所述计算系统是一电信交换系统。
90.如权利要求88所述的方法,其特征在于,所述计算系统是一台个人计算机。
91.如权利要求88所述的方法,其特征在于,所述计算系统是一计算机网络。
92.如权利要求62所述的方法,其特征在于,所述产生步骤包括下述步骤:
用一脱机存根产生工具,从一公共接口说明产生所述顾客接口和所述服务员接口,所述脱机存根产生工具在所述顾客接口和所述服务员接口之间提供协调。
93.如权利要求92所述的方法,其特征在于,所述产生的步骤包括下述步骤:
产生包含至少一个顾客接口的顾客文件;以及
产生包含至少一个服务员接口的服务员文件。
产生包含一个顾客接口的顾客文件,该顾客接口与所述已产生的服务员文件中的相关联的服务员接口兼容。
95.如权利要求62所述的方法,其特征在于,它还包括下述步骤:
用一种面向目标的接口描述语言建立所述公共接口说明。
96.如权利要求95所述的方法,其特征在于,建立所述公共接口说明的所述步骤包括下述步骤:
从一具有规定方法的基本接口建立所述公共接口说明,所述公共接口说明继承所述基本接口的所述规定的方法。
97.一种用于动态地连接初始和替代软件模块的方法,其中,所述初始和替代软件模块由相同的函数名识别,并且所述模块包括操作实时计算机系统的多个进程,其特征在于,所述方法包括下述步骤:
在所述计算机系统中生成包含所述初始和替代软件模块的所述函数名的表;
在所述计算机系统中接收事件链,其中,每个事件包括一个目的地函数名和一个事件方向参数;
如果所述事件的目的地函数名与所述表函数名相同,则在所述事件链中用所述事件的目的地函数名过滤每个所述事件,以将所述事件送至所述表;以及
使用所述事件的的事件方向参数,把所述经过滤的事件引向所述初始软件模块或所述替代软件模块,以在所述实时计算机系统中实行所述初始和替代软件模块的动态运行时间汇集。
98.如权利要求97所述的方法,其特征在于,所述表还包含一个表方向参数,并且所述引向的步骤包括下述步骤:
如果所述事件方向参数满足所述表方向参数的条件,则把所述经过滤的事件引向所述替代软件模块;以及
否则把所述经过滤的事件引向所述初始软件模块。
99.如权利要求98所述的系统,其特征在于,所述表方向参数包括一个时间标记阈值,而所述事件方向参数包括一个时间标记值,
其中,如果所述时间标记值等于或大于所述时间标记阈值,则把所述经过滤的事件引向所述替代软件的步骤包括把所述经过滤的事件引向所述替代软件模块的步骤,以及
其中,如果所述时间标记值小于时间标记阈值,则把所述经过滤的事件引向所述初始软件的步骤包括把所述经过滤的事件引向所述初始软件模块的步骤。
CN93107664A 1992-07-01 1993-06-28 用于计算机运行期间改变软件的系统 Expired - Lifetime CN1045829C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/907,294 1992-07-01
US07/907294 1992-07-01
US07/907,294 US5410703A (en) 1992-07-01 1992-07-01 System for changing software during computer operation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN99104801A Division CN1233011A (zh) 1992-07-01 1999-04-02 用于计算机运行期间改变软件的系统

Publications (2)

Publication Number Publication Date
CN1081010A CN1081010A (zh) 1994-01-19
CN1045829C true CN1045829C (zh) 1999-10-20

Family

ID=25423853

Family Applications (2)

Application Number Title Priority Date Filing Date
CN93107664A Expired - Lifetime CN1045829C (zh) 1992-07-01 1993-06-28 用于计算机运行期间改变软件的系统
CN99104801A Pending CN1233011A (zh) 1992-07-01 1999-04-02 用于计算机运行期间改变软件的系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN99104801A Pending CN1233011A (zh) 1992-07-01 1999-04-02 用于计算机运行期间改变软件的系统

Country Status (13)

Country Link
US (2) US5410703A (zh)
EP (1) EP0648353B1 (zh)
KR (1) KR100323881B1 (zh)
CN (2) CN1045829C (zh)
AU (1) AU667559B2 (zh)
BR (1) BR9306651A (zh)
DE (1) DE69326464T2 (zh)
DK (1) DK0648353T3 (zh)
ES (1) ES2140462T3 (zh)
FI (1) FI106752B (zh)
GR (1) GR3031915T3 (zh)
MX (1) MX9303648A (zh)
WO (1) WO1994001819A1 (zh)

Families Citing this family (309)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0458495A3 (en) * 1990-05-21 1993-04-14 Texas Instruments Incorporated Apparatus and method for managing versions and configurations of persistent and transient objects
US5841991A (en) * 1992-11-18 1998-11-24 Canon Information Systems, Inc. In an Interactive network board, a method and apparatus for storing a media access control address in a remotely alterable memory
US5623604A (en) * 1992-11-18 1997-04-22 Canon Information Systems, Inc. Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral
US5590347A (en) * 1992-12-07 1996-12-31 Microsoft Corporation Method and system for specifying alternate behavior of a software system using alternate behavior indicia
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
US6684261B1 (en) * 1993-07-19 2004-01-27 Object Technology Licensing Corporation Object-oriented operating system
US5809237A (en) * 1993-11-24 1998-09-15 Intel Corporation Registration of computer-based conferencing system
US5845090A (en) 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
JP3140906B2 (ja) * 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
ATE165174T1 (de) * 1994-05-10 1998-05-15 Siemens Ag Datenverwaltungssystem eines realzeitsystems
JP3160149B2 (ja) * 1994-05-13 2001-04-23 株式会社日立製作所 ディスク制御装置の無停止プログラム変更方法およびディスク制御装置
DE69534316T2 (de) * 1994-07-15 2006-04-20 Koninklijke Philips Electronics N.V. Telekommunikationsanlage mit einem prozessorsystem und ein prozessorsystem
US5684952A (en) * 1994-07-25 1997-11-04 Apple Computer, Inc. Supervisory control system for networked multimedia workstations that provides reconfiguration of workstations by remotely updating the operating system
WO1996003818A1 (fr) * 1994-07-26 1996-02-08 Sony Corporation Systeme serveur d'informations
DE4429969A1 (de) * 1994-08-24 1996-02-29 Sel Alcatel Ag Verfahren für einen Programmpaketeaustausch in einem Mehrrechnersystem und Rechner dafür
US5682533A (en) * 1994-09-27 1997-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Updating software within a telecommunications switch without interrupting existing communication and neither moving nor converting data
EP0786121B1 (fr) * 1994-10-12 2000-01-12 Touchtunes Music Corporation Systeme de reproduction audio-visuelle numerique intelligent
US8661477B2 (en) 1994-10-12 2014-02-25 Touchtunes Music Corporation System for distributing and selecting audio and video information and method implemented by said system
US7188352B2 (en) 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US7424731B1 (en) * 1994-10-12 2008-09-09 Touchtunes Music Corporation Home digital audiovisual information recording and playback system
SE504943C2 (sv) * 1994-12-09 1997-06-02 Ericsson Telefon Ab L M Synkroniseringsförfarande som tillåter tillståndsöverföring
WO1996018947A1 (en) * 1994-12-13 1996-06-20 Novell, Inc. Method and apparatus to update or change a network directory
US5680549A (en) * 1994-12-30 1997-10-21 Compuserve Incorporated System for transferring network connections from first to second program where the first enters an inactive state and resumes control of connections when second terminates
DE19502728A1 (de) * 1995-01-28 1996-08-01 Philips Patentverwaltung Telekommunikationsvorrichtung
IL117221A0 (en) * 1995-02-28 1996-06-18 Gen Instrument Corp Configurable hybrid medium access control for cable metropolitan area networks
US5892910A (en) * 1995-02-28 1999-04-06 General Instrument Corporation CATV communication system for changing first protocol syntax processor which processes data of first format to second protocol syntax processor processes data of second format
JPH08249136A (ja) * 1995-03-10 1996-09-27 Sony Corp 記録再生装置及び伝送方法
DE19518266A1 (de) * 1995-05-18 1996-11-21 Philips Patentverwaltung Kommunikationssystem mit Mitteln zum Austausch von Software
US5878246A (en) * 1995-07-05 1999-03-02 Sun Microsystems, Inc. System for linking an interposition module between two modules to provide compatibility as module versions change
US5805891A (en) * 1995-07-26 1998-09-08 International Business Machines Corporation System and method for managing maintenance of computer software
DE19533961A1 (de) * 1995-09-13 1997-03-20 Siemens Ag Verfahren zum Laden von Software in Kommunikationssystemen mit nichtredundanten, dezentralen Einrichtungen
US5838981A (en) * 1995-10-05 1998-11-17 Ricoh Company, Ltd. Data communication apparatus with a program renewal function
US6112253A (en) * 1995-10-12 2000-08-29 International Business Machines Corporation Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
US6389483B1 (en) * 1995-10-17 2002-05-14 Telefonaktiebolaget L M Ericsson (Publ) System and method for reducing coupling between modules in a telecommunications environment
US6421679B1 (en) * 1995-10-27 2002-07-16 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
US5727215A (en) * 1995-11-30 1998-03-10 Otis Elevator Company Method for replacing software modules utilizing a replacement address table
US5708812A (en) * 1996-01-18 1998-01-13 Microsoft Corporation Method and apparatus for Migrating from a source domain network controller to a target domain network controller
US5946490A (en) * 1996-03-22 1999-08-31 Northeastern University Automata-theoretic approach compiler for adaptive software
US5999946A (en) 1996-04-10 1999-12-07 Harris Corporation Databases in telecommunications
DE19617976A1 (de) * 1996-05-06 1997-11-13 Philips Patentverwaltung Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE59604300D1 (de) * 1996-05-22 2000-03-02 Siemens Ag Verfahren zum Austausch von Software in laufenden Steuerungssystemen
US5857106A (en) * 1996-05-31 1999-01-05 Hewlett-Packard Company Runtime processor detection and installation of highly tuned processor specific routines
GB2315637B (en) * 1996-07-19 2000-09-13 Ericsson Telefon Ab L M Testing mechanism
US5896535A (en) * 1996-08-20 1999-04-20 Telefonaktiebolaget L M Ericsson (Publ) Method and system for testing computer system software
FR2753868A1 (fr) 1996-09-25 1998-03-27 Technical Maintenance Corp Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede
US5911069A (en) * 1996-09-30 1999-06-08 Apple Computer, Inc. Exception handling techniques for native methods bound to SOM classes
US5832274A (en) * 1996-10-09 1998-11-03 Novell, Inc. Method and system for migrating files from a first environment to a second environment
DE19652629A1 (de) * 1996-12-18 1998-06-25 Philips Patentverwaltung System zum Austausch von Software
US6175855B1 (en) * 1996-12-20 2001-01-16 Siemens Aktiengesellschaft Method for instantiating a class having different versions
US5922072A (en) * 1997-01-03 1999-07-13 Ncr Corporation Method and apparatus for creating alternate boot environments in a computer
TW325551B (en) * 1997-01-04 1998-01-21 Inventec Corp Auto switching memory space method capable of judging if there is updated version stored in memory circuit to automatically select program stored in ROM or memory circuit as execution stating location
US6058396A (en) * 1997-02-06 2000-05-02 Sterling Software, Inc. Product interface method and system which allow class evolution
US6263376B1 (en) 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US5938766A (en) * 1997-03-21 1999-08-17 Apple Computer, Inc. System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables
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
FR2762737B1 (fr) * 1997-04-24 1999-06-11 Alsthom Cge Alcatel Procede pour changer de version de logiciel dans un systeme informatique comportant plusieurs stations, et systeme informatique pour la mise en oeuvre de ce procede
US7162519B2 (en) * 1998-05-01 2007-01-09 Stratum Technologies Corporation Structure and method for providing customized web pages-therefor
US6401114B1 (en) 1997-05-01 2002-06-04 Stratum Technologies Corporation Method and apparatus for dynamic programming across a computer network
US6324411B1 (en) * 1997-05-20 2001-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Background software loading in cellular telecommunication systems
JPH10320205A (ja) 1997-05-20 1998-12-04 Fujitsu Ltd 情報処理装置
US6189145B1 (en) 1997-05-28 2001-02-13 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
GB9711920D0 (en) * 1997-06-09 1997-08-06 Honeywell Oy Computer system
US5913023A (en) * 1997-06-30 1999-06-15 Siemens Corporate Research, Inc. Method for automated generation of tests for software
SE521056C2 (sv) * 1997-07-21 2003-09-23 Ericsson Telefon Ab L M Metod för genomförande av schemaförändringar i en databas
US5974429A (en) * 1997-09-03 1999-10-26 Northern Telecom Limited Method and apparatus for updating distributed databases in a telecommunications network
US6044461A (en) * 1997-09-16 2000-03-28 International Business Machines Corporation Computer system and method of selectively rebooting the same in response to a system program code update
FR2769165B1 (fr) 1997-09-26 2002-11-29 Technical Maintenance Corp Systeme sans fil a transmission numerique pour haut-parleurs
JP2914360B2 (ja) 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US6074435A (en) * 1997-10-30 2000-06-13 Telefonakiebolaget Lm Ericsson (Publ) Remote software download with automatic adjustment for data access compatibility
KR100247467B1 (ko) 1997-11-07 2000-03-15 윤종용 엠엠씨 커맨드를 이용한 교체 블록 로딩 방법
US6620204B1 (en) * 1997-11-25 2003-09-16 International Business Machines Corporation Automated HTML test page and test data generation for javascript objects
EP1071991A4 (en) * 1997-12-11 2002-03-13 Digits Corp OBJECT CODE ANALYSIS AND IMPROVEMENT SYSTEM AND METHOD
US6105037A (en) 1997-12-12 2000-08-15 International Business Machines Corporation Apparatus for performing automated reconcile control in a virtual tape system
US5911073A (en) * 1997-12-23 1999-06-08 Hewlett-Packard Company Method and apparatus for dynamic process monitoring through an ancillary control code system
US6360363B1 (en) 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
US6141683A (en) * 1998-01-30 2000-10-31 Lucent Technologies, Inc. Method for remotely and reliably updating of the software on a computer with provision for roll back
DE19803697C2 (de) * 1998-01-30 2000-03-16 Ericsson Telefon Ab L M Verfahren zum Aufrüsten eines Softwaresystems und Vorrichtung zur Durchführung des Verfahrens
US6345382B1 (en) 1998-02-12 2002-02-05 International Business Machines Corporation Run-time customization in object-oriented design
US6151709A (en) * 1998-02-13 2000-11-21 Novell, Inc. Processes and apparatuses for uploading instructions to a computer
DE19810802A1 (de) 1998-03-12 1999-09-16 Ericsson Telefon Ab L M Störungsfreies Aktualisieren von Daten
DE19810807A1 (de) * 1998-03-12 1999-09-23 Ericsson Telefon Ab L M Gerät und Verfahren zum Umsetzen von Meldungen
DE19810843B4 (de) 1998-03-12 2004-11-25 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Zugriffseinrichtung zum Bestimmen der Speicheradresse eines Datenwerts in einer Speichereinrichtung
DE19810814B4 (de) * 1998-03-12 2004-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem und Zustandskopierverfahren zur skalierbaren Software-Aktualisierung
DE19810784B4 (de) * 1998-03-12 2006-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem
US7770123B1 (en) * 1998-05-08 2010-08-03 Apple Inc. Method for dynamically generating a “table of contents” view of a HTML-based information system
US6330715B1 (en) * 1998-05-19 2001-12-11 Nortel Networks Limited Method and apparatus for managing software in a network system
US6070012A (en) * 1998-05-22 2000-05-30 Nortel Networks Corporation Method and apparatus for upgrading software subsystems without interrupting service
US6222916B1 (en) 1998-05-22 2001-04-24 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for introducing and modifying telecommunications services
FR2781582B1 (fr) 1998-07-21 2001-01-12 Technical Maintenance Corp Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels
FR2781580B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent
FR2781591B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Systeme de reproduction audiovisuelle
US8028318B2 (en) 1999-07-21 2011-09-27 Touchtunes Music Corporation Remote control unit for activating and deactivating means for payment and for displaying payment status
US6564369B1 (en) 1998-08-20 2003-05-13 Pearson Technical Software, Inc. Conflict checking using configuration images
JP4101368B2 (ja) * 1998-08-24 2008-06-18 松下電器産業株式会社 ボタン電話装置およびそのメンテナンス方法並びに記録媒体
DE19843048C2 (de) * 1998-09-19 2000-08-17 Nokia Networks Oy Verfahren für einen Softwarezugriffswechsel in einem Netzwerkknoten eines Telekommunikationsnetzwerkes sowie ein zum Durchführen eines solchen Verfahrens geeigneter Netzwerkknoten
DE69907709T2 (de) * 1998-10-09 2004-03-25 Sun Microsystems, Inc., Santa Clara Prozessüberwachung in einem rechnersystem
JP3837244B2 (ja) 1998-10-23 2006-10-25 松下電器産業株式会社 プログラムリンク装置及び方法
US6526523B1 (en) * 1998-10-27 2003-02-25 Microsoft Corporation Kernel streaming test method and system
US6237091B1 (en) * 1998-10-29 2001-05-22 Hewlett-Packard Company Method of updating firmware without affecting initialization information
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
US6269442B1 (en) * 1998-11-13 2001-07-31 Hewlett-Packard Company Apparatus and method for on-line replacement of a running program code and data using checkpoints
JP3674351B2 (ja) * 1999-01-08 2005-07-20 富士通株式会社 マスタサーバ
US6795967B1 (en) * 1999-01-26 2004-09-21 Microsoft Corporation Changing user identities without closing applications
US6385770B1 (en) 1999-01-29 2002-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Software upgrade
US8726330B2 (en) * 1999-02-22 2014-05-13 Touchtunes Music Corporation Intelligent digital audiovisual playback system
GB2348304B (en) 1999-03-24 2003-07-09 Ibm Optimising Device Driver Debug Tracing
US6813629B1 (en) * 1999-04-02 2004-11-02 Oracle International Corporation Method and apparatus for facilitating object communication across a network
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
US6425126B1 (en) * 1999-05-19 2002-07-23 International Business Machines Corporation Apparatus and method for synchronizing software between computers
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
PL351957A1 (en) * 1999-06-03 2003-07-14 Igt Reno Nev Method of and apparatus for implementation of a system for transferring software downloaded from network
AU4982100A (en) * 1999-06-03 2000-12-28 Sycamore Networks, Inc. Software translation using metadata
US8033913B2 (en) * 1999-06-03 2011-10-11 Igt Gaming machine update and mass storage management
US6501995B1 (en) * 1999-06-30 2002-12-31 The Foxboro Company Process control system and method with improved distribution, installation and validation of components
FR2796482B1 (fr) 1999-07-16 2002-09-06 Touchtunes Music Corp Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
US6715145B1 (en) * 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
JP3669619B2 (ja) * 1999-09-06 2005-07-13 富士通株式会社 無線端末装置のソフトウェア更新方法及びその装置
US7016944B1 (en) * 1999-09-30 2006-03-21 Apple Computer, Inc. System and method for passive detection and context sensitive notification of upgrade availability for computer information
EP1585350B1 (en) 1999-10-14 2015-11-18 Nokia Technologies Oy A method and system for software updating
US6560614B1 (en) * 1999-11-12 2003-05-06 Xosoft Inc. Nonintrusive update of files
CA2397912A1 (en) * 2000-01-20 2001-07-26 Q3Dm, Llc Method and system for extensible data processing
FR2805377B1 (fr) 2000-02-23 2003-09-12 Touchtunes Music Corp Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede
FR2805060B1 (fr) 2000-02-16 2005-04-08 Touchtunes Music Corp Procede de reception de fichiers lors d'un telechargement
FR2805072B1 (fr) 2000-02-16 2002-04-05 Touchtunes Music Corp Procede d'ajustement du volume sonore d'un enregistrement sonore numerique
GB2359385B (en) 2000-02-16 2004-04-07 Data Connection Ltd Method for upgrading running software processes without compromising fault-tolerance
GB0004090D0 (en) * 2000-02-22 2000-04-12 Innovation Venture Ltd Application programming system and method of operation thereof
DE10008245A1 (de) * 2000-02-23 2001-09-06 Siemens Ag Verfahren zur Sicherstellung der Kompatibilität und Verfahren zur Datensicherung innerhalb eines mehrere Teilrechnersysteme aufweisenden verteilten Rechnersystems
JP3888827B2 (ja) * 2000-03-15 2007-03-07 富士通株式会社 プログラム置換システム、分散処理システム及びプログラム置換方法
DE10109365A1 (de) 2000-03-17 2001-09-20 Heidelberger Druckmasch Ag Vorrichtung zur Erkennung von Funktionseinheiten
GB2362064A (en) * 2000-05-04 2001-11-07 Marconi Comm Ltd Switching of software in a communications system
FR2808906B1 (fr) 2000-05-10 2005-02-11 Touchtunes Music Corp Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles
US6711572B2 (en) 2000-06-14 2004-03-23 Xosoft Inc. File system for distributing content in a data network and related methods
US7951002B1 (en) 2000-06-16 2011-05-31 Igt Using a gaming machine as a server
FR2811175B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles
FR2811114B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement
US6618805B1 (en) 2000-06-30 2003-09-09 Sun Microsystems, Inc. System and method for simplifying and managing complex transactions in a distributed high-availability computer system
US6931636B2 (en) * 2000-08-08 2005-08-16 Texas Instruments Incorporated Multiprocessor emulation support using dynamic linking
AU2001283264B2 (en) * 2000-08-18 2007-10-18 Igt Gaming system with player tracking
FR2814085B1 (fr) 2000-09-15 2005-02-11 Touchtunes Music Corp Procede de divertissement base sur les jeux concours a choix multiples
CA2435624C (en) * 2000-09-22 2013-05-07 Richard B. Levine Systems and methods for preventing unauthorized use of digital content
US7237123B2 (en) * 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
US20040180721A1 (en) * 2000-12-21 2004-09-16 Igt Gaming terminal data repository and information distribution system
US8556698B2 (en) * 2000-10-19 2013-10-15 Igt Executing multiple applications and their variations in computing environments
US9251647B2 (en) * 2000-10-19 2016-02-02 Igt Remote configuration of gaming terminals
US8636596B2 (en) * 2000-11-04 2014-01-28 Igt Dynamic player notices for operational changes in gaming machines
US6645077B2 (en) * 2000-10-19 2003-11-11 Igt Gaming terminal data repository and information distribution system
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US20050153778A1 (en) * 2004-01-14 2005-07-14 Dwayne Nelson Methods and apparatus for gaming data downloading
US7168089B2 (en) 2000-12-07 2007-01-23 Igt Secured virtual network in a gaming environment
US20070136817A1 (en) * 2000-12-07 2007-06-14 Igt Wager game license management in a peer gaming network
US7515718B2 (en) * 2000-12-07 2009-04-07 Igt Secured virtual network in a gaming environment
US7972214B2 (en) * 2000-12-07 2011-07-05 Igt Methods and devices for downloading games of chance
US20080214300A1 (en) * 2000-12-07 2008-09-04 Igt Methods for electronic data security and program authentication
US20020073410A1 (en) * 2000-12-13 2002-06-13 Arne Lundback Replacing software at a telecommunications platform
US6961773B2 (en) * 2001-01-19 2005-11-01 Esoft, Inc. System and method for managing application service providers
EP1237078A1 (de) 2001-01-19 2002-09-04 Siemens Aktiengesellschaft Durchführung eines zeitoptimierten Austausches einer Software-Applikation
US7186181B2 (en) * 2001-02-02 2007-03-06 Igt Wide area program distribution and game information communication system
DE10105454A1 (de) * 2001-02-07 2002-08-29 Bosch Gmbh Robert Verfahren zur automatischen Ergänzung von Software
US7086060B2 (en) * 2001-02-15 2006-08-01 Sun Microsystems, Inc. Method for programmatic representation and enforcement of resource controls
US7031989B2 (en) * 2001-02-26 2006-04-18 International Business Machines Corporation Dynamic seamless reconfiguration of executing parallel software
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.
US7328453B2 (en) * 2001-05-09 2008-02-05 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
ITMI20010997A1 (it) * 2001-05-16 2002-11-16 Cit Alcatel Metodi per testare il software di controllo di una apparecchiatura per telecomunicazioni dotata di un controllo di tipo distribuito
US20030005408A1 (en) * 2001-07-02 2003-01-02 Pradeep Tumati System and method for creating software modifiable without halting its execution
US20060059479A1 (en) * 2001-07-02 2006-03-16 Pradeep Tumati System and method for modifying software without halting its execution
AU2002318246A1 (en) * 2001-07-16 2003-03-03 Vibrant Solutions System and method for class transitioning
US20030037313A1 (en) * 2001-07-16 2003-02-20 Joel Halpern System and method for class transitioning
US7089559B2 (en) * 2001-07-31 2006-08-08 International Business Machines Corporation Method, apparatus, and program for chaining server applications
US7931533B2 (en) 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US8708828B2 (en) 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
US7131909B2 (en) * 2002-09-10 2006-11-07 Igt Method and apparatus for managing gaming machine code downloads
US6902481B2 (en) * 2001-09-28 2005-06-07 Igt Decoupling of the graphical presentation of a game from the presentation logic
US7210145B2 (en) * 2001-10-15 2007-04-24 Edss, Inc. Technology for integrated computation and communication; TICC
EP1306754A1 (en) * 2001-10-23 2003-05-02 Telefonaktiebolaget L M Ericsson (Publ) Device and method for software maintenance
US7162710B1 (en) * 2001-11-01 2007-01-09 Microsoft Corporation Dynamic modifications to a heterogeneous program in a distributed environment
US6931409B2 (en) * 2002-01-08 2005-08-16 International Business Machines Corporation Method, apparatus, and program to efficiently serialize objects
US20030140339A1 (en) * 2002-01-18 2003-07-24 Shirley Thomas E. Method and apparatus to maintain service interoperability during software replacement
US7168008B2 (en) * 2002-01-18 2007-01-23 Mobitv, Inc. Method and system for isolating and protecting software components
JP2003216449A (ja) * 2002-01-23 2003-07-31 Nec Corp パッチ処理システム
DE10206903A1 (de) 2002-02-19 2003-09-04 Siemens Ag Softwareapplikation, Softwarearchitektur und Verfahren zur Erstellung von Softwareapplikationen, insbesondere für MES-Systeme
US6997803B2 (en) * 2002-03-12 2006-02-14 Igt Virtual gaming peripherals for a gaming machine
US8597116B2 (en) * 2002-03-12 2013-12-03 Igt Virtual player tracking and related services
US20030191870A1 (en) * 2002-04-02 2003-10-09 Dominic Duggan Method and apparatus for updating software libraries
US20040010474A1 (en) * 2002-05-15 2004-01-15 Lockheed Martin Corporation Method and apparatus for estimating the refresh strategy or other refresh-influenced parameters of a system over its life cycle
US7918730B2 (en) * 2002-06-27 2011-04-05 Igt Trajectory-based 3-D games of chance for video gaming machines
US8140635B2 (en) * 2005-03-31 2012-03-20 Tripwire, Inc. Data processing environment change management methods and apparatuses
US7307979B2 (en) * 2002-07-31 2007-12-11 Jeremy Benjamin As Receiver For Chiaro Networks Ltd Configuration rollback
US7185331B2 (en) * 2002-08-27 2007-02-27 Inrange Technologies Corporation Method and apparatus for downloading executable code in a non-disruptive manner
US7263698B2 (en) * 2002-08-29 2007-08-28 Sap Aktiengesellschaft Phased upgrade of a computing environment
US7171432B2 (en) 2002-08-29 2007-01-30 Sap Aktiengesellschaft Phased upgrade of a computing environment
US8083585B2 (en) * 2002-09-10 2011-12-27 Igt Apparatus and method for copying gaming machine configuration settings
US11029823B2 (en) 2002-09-16 2021-06-08 Touchtunes Music Corporation Jukebox with customizable avatar
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US9646339B2 (en) 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8151304B2 (en) 2002-09-16 2012-04-03 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US10373420B2 (en) 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US7234056B2 (en) * 2002-09-24 2007-06-19 Inrange Technologies Corp. Method and apparatus for downloading executable code in a non-disruptive manner
DE10246097A1 (de) * 2002-10-02 2004-04-15 Siemens Ag Verfahren zum Testen eines Softwaresystems für technische Anlagen
US7284234B2 (en) * 2002-11-06 2007-10-16 Alcatel Canada Inc. System and method for implementing maintenance functions for a switch
US6996818B2 (en) * 2002-11-22 2006-02-07 Bitfone Corporation Update system for facilitating software update and data conversion in an electronic device
JP4417123B2 (ja) * 2003-02-19 2010-02-17 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
US7698700B2 (en) * 2003-04-17 2010-04-13 International Business Machines Corporation System quiesce for concurrent code updates
US7356577B2 (en) * 2003-06-12 2008-04-08 Samsung Electronics Co., Ltd. System and method for providing an online software upgrade in load sharing servers
US7379419B2 (en) * 2003-08-13 2008-05-27 Samsung Electronics Co., Ltd. Apparatus and method for performing an online software upgrade of resource servers
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US20050114853A1 (en) * 2003-11-26 2005-05-26 Glider Joseph S. Software upgrade and downgrade in systems with persistent data
US7305672B2 (en) * 2004-01-06 2007-12-04 International Business Machines Corporation Dynamic software update system, method and program product
US20050198022A1 (en) * 2004-02-05 2005-09-08 Samsung Electronics Co., Ltd. Apparatus and method using proxy objects for application resource management in a communication network
JP2005259113A (ja) * 2004-02-12 2005-09-22 Ricoh Co Ltd プロセス編集装置、プロセス管理装置、プロセス編集プログラム、プロセス管理プログラム、記録媒体、プロセス編集方法及びプロセス管理方法
US7650593B2 (en) * 2004-03-25 2010-01-19 Microsoft Corporation Proxy objects for display
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US20050262495A1 (en) * 2004-05-18 2005-11-24 Bea Systems, Inc. Administration mode for server applications
US20050262494A1 (en) * 2004-05-18 2005-11-24 Bea Systems, Inc. Production redeployment through application versioning
US7660879B2 (en) 2004-05-20 2010-02-09 Ananthan Bala Srinivasan System and method for application deployment service
US7908047B2 (en) * 2004-06-29 2011-03-15 General Electric Company Method and apparatus for run-time incorporation of domain data configuration changes
US7617501B2 (en) 2004-07-09 2009-11-10 Quest Software, Inc. Apparatus, system, and method for managing policies on a computer having a foreign operating system
US20060217929A1 (en) * 2004-08-06 2006-09-28 Lockheed Martin Corporation Lifetime support process for rapidly changing, technology-intensive systems
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7404184B2 (en) * 2004-09-13 2008-07-22 International Business Machines Corporation Efficient firmware update for hierarchical data storage systems
US8146073B2 (en) * 2004-09-30 2012-03-27 Microsoft Corporation Updating software while it is running
US7219279B2 (en) * 2005-01-18 2007-05-15 International Business Machines Corporation Software testing
US20060179421A1 (en) * 2005-02-09 2006-08-10 International Business Machines Corporation Dynamic interface binding using XML transformations
US20070028208A1 (en) * 2005-06-07 2007-02-01 Alec Maki Runtime generative programming method and system
US8549172B2 (en) * 2005-08-19 2013-10-01 International Business Machines Corporation Distribution of software based on scheduled time to deploy software dynamic resource state of systems involved in deployment of software and based upon environmental conditions
ATE486316T1 (de) * 2005-08-30 2010-11-15 Sony Ericsson Mobile Comm Ab Verfahren und software für die optimierung der positionierung von software-funktionen in einem speicher
US7887420B2 (en) 2005-09-12 2011-02-15 Igt Method and system for instant-on game download
US8287379B2 (en) 2005-09-12 2012-10-16 Igt Distributed game services
CN100459630C (zh) * 2005-09-30 2009-02-04 西安大唐电信有限公司 一种业务动态加载的方法
JP4732864B2 (ja) * 2005-11-15 2011-07-27 株式会社リコー プログラム配布サーバ、プログラム配布方法、及び、プログラム配布プログラムとその記録媒体
US7882503B2 (en) * 2005-11-17 2011-02-01 Oracle International Corporation Production redeployment
US7788660B2 (en) * 2005-11-17 2010-08-31 Bea Systems, Inc. Resource adapter classloading
US7904949B2 (en) 2005-12-19 2011-03-08 Quest Software, Inc. Apparatus, systems and methods to provide authentication services to a legacy application
US8087075B2 (en) 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
JP4946141B2 (ja) * 2006-04-11 2012-06-06 ブラザー工業株式会社 構成変更プログラム、および情報処理装置
WO2007123527A1 (en) * 2006-04-20 2007-11-01 Srinivasan Chitoor V Technology for integrated computation and communication; ticc
US7996837B2 (en) * 2006-05-03 2011-08-09 Oracle International Corporation Recovery mechanism for transactions
JP5208104B2 (ja) * 2006-05-12 2013-06-12 ニュアンス コミュニケーションズ オーストリア ゲーエムベーハー 第1の適応化データ処理バージョンから第2の適応化データ処理バージョンに切り替えるための方法
US8429712B2 (en) 2006-06-08 2013-04-23 Quest Software, Inc. Centralized user authentication system apparatus and method
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US20070299999A1 (en) * 2006-06-21 2007-12-27 Vicky Duerk Link protocol control for serial protocols
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
US8117461B2 (en) 2006-09-13 2012-02-14 Igt Method of randomly and dynamically checking configuration integrity of a gaming system
US8086710B2 (en) 2006-10-30 2011-12-27 Quest Software, Inc. Identity migration apparatus and method
US7895332B2 (en) * 2006-10-30 2011-02-22 Quest Software, Inc. Identity migration system apparatus and method
US7886270B2 (en) * 2006-11-28 2011-02-08 International Business Machines Corporation Methods, systems, and computer program products for file version control management
US9330529B2 (en) 2007-01-17 2016-05-03 Touchtunes Music Corporation Game terminal configured for interaction with jukebox device systems including same, and/or associated methods
US9171419B2 (en) 2007-01-17 2015-10-27 Touchtunes Music Corporation Coin operated entertainment system
US9953481B2 (en) 2007-03-26 2018-04-24 Touchtunes Music Corporation Jukebox with associated video server
CN100464522C (zh) * 2007-05-17 2009-02-25 华为技术有限公司 一种进程升级的方法及进程升级系统
US8132165B2 (en) * 2007-05-25 2012-03-06 Samsung Electronics Co., Ltd. Interception proxy-based approach for in-service software upgrade
US20090048022A1 (en) * 2007-08-13 2009-02-19 Igt Dynamic reconfiguration of promotional programs
US8868781B2 (en) * 2007-08-28 2014-10-21 Red Hat, Inc. Service forwarding addresses in distributed computing
US10290006B2 (en) 2008-08-15 2019-05-14 Touchtunes Music Corporation Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations
US8332887B2 (en) 2008-01-10 2012-12-11 Touchtunes Music Corporation System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US8484376B2 (en) * 2007-10-31 2013-07-09 Red Hat, Inc. Hot-swappable services in distributed computing
US20090177862A1 (en) * 2008-01-07 2009-07-09 Kuo-Shu Cheng Input device for executing an instruction code and method and interface for generating the instruction code
US8689203B2 (en) * 2008-02-19 2014-04-01 Microsoft Corporation Software update techniques based on ascertained identities
US20090248397A1 (en) * 2008-03-25 2009-10-01 Microsoft Corporation Service Initiation Techniques
US20090247254A1 (en) * 2008-03-25 2009-10-01 Igt Physics modeling for gaming machine displays
US8101543B2 (en) * 2008-06-30 2012-01-24 Weyerhaeuser Nr Company Biodegradable superabsorbent particles
US8849435B2 (en) 2008-07-09 2014-09-30 Touchtunes Music Corporation Digital downloading jukebox with revenue-enhancing features
US8315996B2 (en) * 2008-08-13 2012-11-20 International Business Machines Corporation Efficient management of customized functionality within shared data objects
US8312447B2 (en) * 2008-09-25 2012-11-13 Microsoft Corporation Managing updates using compiler and linker information
US10235832B2 (en) * 2008-10-17 2019-03-19 Igt Post certification metering for diverse game machines
CN102449658A (zh) 2009-03-18 2012-05-09 踏途音乐公司 娱乐服务器及相关的社交网络系统
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
EP2241977B1 (en) 2009-04-17 2015-05-27 Accenture Global Services Limited Exchangeable application components
US8255984B1 (en) 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US8589904B2 (en) * 2009-08-10 2013-11-19 Symantec Corporation Systems and methods for updating a software product
JP4957765B2 (ja) * 2009-08-24 2012-06-20 日本電気株式会社 ソフトウェアプログラム実行装置、ソフトウェアプログラム実行方法、及びプログラム
US8335820B1 (en) * 2009-12-15 2012-12-18 Emc Corporation Techniques for persistence of connections
KR101446403B1 (ko) 2010-01-26 2014-11-04 터치튠즈 뮤직 코포레이션 개선된 사용자 인터페이스를 갖는 디지털 쥬크박스 장치, 및 관련된 방법
US8881134B2 (en) * 2010-04-29 2014-11-04 International Business Machines Corporation Updating elements in data storage facility using predefined state machine over extended time period
US9134996B2 (en) * 2011-04-28 2015-09-15 F-Secure Corporation Updating anti-virus software
GB2522772B (en) 2011-09-18 2016-01-13 Touchtunes Music Corp Digital jukebox device with karaoke and/or photo booth features, and associated methods
US11151224B2 (en) 2012-01-09 2021-10-19 Touchtunes Music Corporation Systems and/or methods for monitoring audio inputs to jukebox devices
US9160653B2 (en) 2012-06-07 2015-10-13 International Business Machines Corporation Dynamic redirection of network traffic within a system under test
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9152410B2 (en) * 2012-06-21 2015-10-06 Vaibhav KHANDELWAL Auto-update while running client interface with handshake
US9292881B2 (en) 2012-06-29 2016-03-22 Crowdstrike, Inc. Social sharing of security information in a group
US20140053144A1 (en) * 2012-08-14 2014-02-20 Microsoft Corporation Service environment upgrades based on upgrade health of service units
CN103677878B (zh) * 2012-09-12 2017-07-14 国际商业机器公司 一种打补丁的方法和装置
CN102880495A (zh) * 2012-10-15 2013-01-16 华为终端有限公司 移动终端及其软件升级方法
US8997047B2 (en) * 2012-12-13 2015-03-31 International Business Machines Corporation Dynamically updating code without requiring processes to restart
US20140229928A1 (en) * 2013-02-11 2014-08-14 Claes Göran Edström Upgrading software in production environments
US9158534B2 (en) * 2013-03-15 2015-10-13 Wolters Kluwer United States Inc. Smart endpoint architecture
US8739151B1 (en) * 2013-03-15 2014-05-27 Genetec Inc. Computer system using in-service software upgrade
US9921717B2 (en) 2013-11-07 2018-03-20 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
JP6777545B2 (ja) 2014-03-25 2020-10-28 タッチチューンズ ミュージック コーポレイションTouchtunes Music Corporation 改善されたユーザインターフェースを備えたデジタルジュークボックス装置および関連する方法
US9947048B2 (en) * 2014-06-04 2018-04-17 Nasdaq Technology Ab Apparatus and methods for implementing changed monitoring conditions and/or requirements using dynamically-modifiable control logic
US9298590B2 (en) * 2014-06-26 2016-03-29 Google Inc. Methods and apparatuses for automated testing of streaming applications using mapreduce-like middleware
KR101907418B1 (ko) 2014-07-01 2018-10-12 한국전자통신연구원 동적 모듈, 이를 구비한 동적 업그레이드 장치 및 방법
GB2531546B (en) 2014-10-21 2016-10-12 Ibm Collaborative maintenance of software programs
CN111683380B (zh) * 2015-02-18 2023-12-08 华为技术有限公司 移动网络功能的升级
US10580006B2 (en) 2015-07-13 2020-03-03 Mastercard International Incorporated System and method of managing data injection into an executing data processing system
US10339316B2 (en) 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
US10698675B2 (en) * 2016-12-19 2020-06-30 International Business Machines Corporation Decentralized automated software updates via blockchain
US10740459B2 (en) 2017-12-28 2020-08-11 Crowdstrike, Inc. Kernel- and user-level cooperative security processing
DE102018204188A1 (de) * 2018-03-20 2019-09-26 Audi Ag Verfahren zum Durchführen eines Updates einer Softwareapplikation in einem Gerät, das sich im Betrieb befindet, sowie Gerät und Kraftfahrzeug
CN108959102B (zh) * 2018-07-27 2020-01-17 百度在线网络技术(北京)有限公司 用于生成测试数据、测试待测试应用的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991008534A1 (de) * 1989-11-29 1991-06-13 Siemens Aktiengesellschaft Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2472234A1 (fr) * 1979-12-21 1981-06-26 Philips Ind Commerciale Protocoles de communication geres par les modules de communication utilises dans un systeme de traitement de donnees reparti
US4688170A (en) * 1983-09-22 1987-08-18 Tau Systems Corporation Communications network for communicating with computers provided with disparate protocols
US4649473A (en) * 1985-06-17 1987-03-10 International Business Machines Corporation Flexible data transmission for message based protocols
US4787028A (en) * 1985-09-03 1988-11-22 Ncr Corporation Multicommunication protocol controller
US5093916A (en) * 1988-05-20 1992-03-03 International Business Machines Corporation System for inserting constructs into compiled code, defining scoping of common blocks and dynamically binding common blocks to tasks
US5008814A (en) * 1988-08-15 1991-04-16 Network Equipment Technologies, Inc. Method and apparatus for updating system software for a plurality of data processing units in a communication network
US4954941A (en) * 1988-08-31 1990-09-04 Bell Communications Research, Inc. Method and apparatus for program updating
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
US5297285A (en) * 1991-07-23 1994-03-22 Telefonaktiebolaget L M Ericsson System for dynamically linking modular portions of computer software
JPH06510150A (ja) * 1991-11-27 1994-11-10 テレフオンアクチーボラゲツト エル エム エリクソン 通信スィッチングシステムのソフトウエア構造

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991008534A1 (de) * 1989-11-29 1991-06-13 Siemens Aktiengesellschaft Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components

Also Published As

Publication number Publication date
FI946195A0 (fi) 1994-12-30
AU4516493A (en) 1994-01-31
CN1233011A (zh) 1999-10-27
DE69326464T2 (de) 2000-02-03
US5410703A (en) 1995-04-25
ES2140462T3 (es) 2000-03-01
BR9306651A (pt) 1998-12-08
GR3031915T3 (en) 2000-03-31
DE69326464D1 (de) 1999-10-21
WO1994001819A1 (en) 1994-01-20
FI946195A (fi) 1994-12-30
EP0648353A1 (en) 1995-04-19
AU667559B2 (en) 1996-03-28
EP0648353B1 (en) 1999-09-15
DK0648353T3 (da) 2000-04-03
KR100323881B1 (ko) 2002-07-08
FI106752B (fi) 2001-03-30
CN1081010A (zh) 1994-01-19
US5555418A (en) 1996-09-10
MX9303648A (es) 1994-01-31

Similar Documents

Publication Publication Date Title
CN1045829C (zh) 用于计算机运行期间改变软件的系统
CN1047450C (zh) 计算机系统中的动态联编方法及其装置
CN106709704B (zh) 一种基于许可链的智能合约升级方法
US20070089090A1 (en) Method and system for protecting source code
CN101040260A (zh) 平台无关的动态链接
EP0860773B1 (en) Method of generating a software application
US20040098427A1 (en) Device memory management during electronic file updating
CN1906580A (zh) 对于具有可移动对象的启用网格的虚拟机的方法和系统
CN1221539A (zh) 可编程的呼叫处理系统和方法
CN1645330A (zh) 用于应用程序分布式管理的启用网格的虚拟机的方法和系统
CN1232201A (zh) 动态图形用户界面特征设定配置
CN1674025A (zh) 计划操作管理支持系统,以及计划操作管理支持程序
CN1804803A (zh) 具有对异步程序流程建模的软件工具
CN1229944A (zh) 用于减少预装类的脚印的系统和方法
CN106126204A (zh) 一种基于模块化设计的信息系统迭代式扩展开发方法
CN1580994A (zh) 用于工业自动化的cil代码程序的在线修改
JP2007511816A (ja) 集中daマネージャを用いた動的アドレシング(da)
CN106569880A (zh) 一种Android应用间动态共享资源的方法及系统
CN106873969A (zh) 一种j2ee项目的开发方法及开发平台
US20140082587A1 (en) Method And System For Generating A Source Code For A Computer Program For Execution And Simulation Of A Process
CN103645888A (zh) 一种自动构建操作系统的系统及方法
CN1091842A (zh) 包括用户接口的中断系统和方法
CN1828533A (zh) 在软件系统环境中控制软件维护处理的方法和计算机系统
CN101754156A (zh) 局数据管理方法、装置及计费系统
CN102523229B (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
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CX01 Expiry of patent term

Expiration termination date: 20130628

Granted publication date: 19991020