CN1047450C - 计算机系统中的动态联编方法及其装置 - Google Patents

计算机系统中的动态联编方法及其装置 Download PDF

Info

Publication number
CN1047450C
CN1047450C CN93106449A CN93106449A CN1047450C CN 1047450 C CN1047450 C CN 1047450C CN 93106449 A CN93106449 A CN 93106449A CN 93106449 A CN93106449 A CN 93106449A CN 1047450 C CN1047450 C CN 1047450C
Authority
CN
China
Prior art keywords
interface
service
software
dynamic binding
explanation
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
CN93106449A
Other languages
English (en)
Other versions
CN1081006A (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 CN1081006A publication Critical patent/CN1081006A/zh
Application granted granted Critical
Publication of CN1047450C publication Critical patent/CN1047450C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Abstract

一种不扰乱整个系统当前活动用新软件单元(104)替代旧软件单元(102)的连接过程调用机构。该机构包含:一交换器(80),它将系统运行进程引向旧软件单元或新软件单元,这取决于该进程何时产生。替代发生前产生的进程将继续用于旧软件单元,而替代发生后产生的进程可被控制用于新软件单元。当旧软件单元中的活动结束时,替代就完成,且旧软件单元能移开存贮器。

Description

计算机系统中的动态联编方法及其装置
本发明涉及软件的修改,尤其是在一个运行的计算机系统中置换软件,在该计算机中共同存在着所修改的软件的新、老版本且两者可同时在其中执行。
本发明的系统是一种在计算机系统运行期间动态联编(binding)分离但同时可执行的软件版本使软件能透明、不中断地更新的连接过程调用机构,从把软件的修改与运行的计算机系统结合起来这样一个更大的问题的角度来考虑,能够最好地理解本发明的系统。计算机软件的一个方面在于:为了不断向用户提供适当的功能使软件最佳化和纠正该软件的整个生命期中产生的错误和偏差,必须周期性地用修改、添加和/或删除来更新它。当新的特性被加给软件时,为了将该新的软件特性提供给用户希望尽可能早和方便地用新的版本替换旧的软件。
在某些类型的计算机系统中,如独立或批处理系统,软件从一个版本变化到另一版本存在的障碍不多。通常,计算机系统只在一天中使用不多的这段时间里关机,维修人员可用以进行维护工作。然后,旧的软件简单地移离而用更新的软件版本来替代。此后,该计算系统重新起动而全部未来数据处理用新的软件版本来进行。当然,该过程假定新的软件已在脱机系统上经过适当的测试和排错且调试到软件人员和操作管理人员确信:它将能恰当地完成它要完成的功能而不会过分地要求整个计算机系统因暂停和再起动而中断。
在其它一些类型的计算机系统中,如现代存贮程序控制(SPC)电信通信交换系统(通常工业上简称为交换机(“Switches”)),无论是软件的新版本的测试或改变系统中的软件都没有像在独立、批处理系统中那样容易,例如,新的软件版本没有放入实际操作处理调用是不能被有效地测试的。该软件必须在操作中测试,以便确定该软件在当前操作条件下其功能是否恰当,还需确定该新的部分与运行中的SPC交换系统的所有其它软件块是否有适当的接口。另外,电信交换系统事实上是不允许停止运行的。理想的情况下,这些系统将永不间断地运行,因为某个地区内需要不断的通信服务而不能中断。这就是说,即使在白天或晚上的通信空闲时间,系统也处理着连续不断的电信通话流、并且交换操作中的任何中断都会造成电信通话的崩溃。这样的崩溃会极大地损害系统的运行和它的有效性,这样的系统也不能为用户或顾客接受。
这些电信交换变化的实时性要求对改进了的软件版本的测试,或其包含新的或改进的功能部分提出了严格的限制,对于将具有错误校正或“故障定位”(“bugfixes”)的软件在交换系统中进行替换而不破坏正由该交换系统处理的电信通话流也提出了同样的限制。因此,使用传统的“编辑-编译-连接-装载-运行”(“edit-compile-link-load-run”)方式将软件的组成部分或单元的新版本装入系统是不理想的。最理想的方法是,当系统处于运行中能修改或扩展软件而不需停机进行。
人们已在致力于解决把新软件运行中的计算机系统结合起来的问题。例如,当前使用的某些不按独立的或批处理方式工作的改进的在线操作系统,以明显不同于独立的或批处理系统的方法来解决替换旧软件的问题。然而,这种系统虽然比独立系统更透明,但还是需要用户个人或用户组主动地选择是否要使用新的或修改的软件版本进行处理因而仍然是人工进行软件置换。这种选择可以是用户通过修改由他们个人用户标识(user-id)操作的进程所使用的级联软件来决定。这种选择通常在数星期或数日的固定期间内仍适用于用户,在这期间,在每个先前级成功地运行之后,软件在这种级联结构中可向上移动几级,而不会有任何不一致性。当达到级联的最高级后,该软件可宣告为“可操作”的,且老的版本不再用于系统的用户。将新软件置入系统,及它在各级向上移动将由一个配置管理(configurationmanagement)过程进行控制-这是一种报告、批准、跟踪每个等级上的软件版本和执行所批准的改变的人工过程(manualprocess)。
如用批或独立系统上所用的更新软件的方法,众所周知,对于把新的或修改过的软件和系统结合起来这样一种修改方式必定会存在诸多障碍。这是一种人工劳动强度很大的既复杂又费时的系统。不论是对于完全不用逐步修改的软件,只是进行严格的,在线的使用,因而不会使错误扩散的用户,还是对立即会影响所有正在进行的操作的用户,当系统将用某种新的软件进行操作时,都需要进行控制。控制对新的或修改的软件的访问的方法直接连接和限制各个用户正在执行的软件。
在目前应用的典型的电信系统中,改变软件或部分软件的问题甚至更为严厉。虽然这样的系统不能合适地称为批或独立的系统,但要改变软件它们的运行也必须暂停。然后装入新软件并将数据及老的软件转移给新软件。在这种转移发生期间,该系统完全停止运行。这期间能持续一小时,这就必须把软件的改变安排在运行的非高峰时间。即便如此,在电信交换系统中一个小时的中断也是太长和代价太大,这是因为在这段时间内不能处理呼叫也不能为任何紧急通信提供服务。
在一个计算机系统中,当全部或部分软件需连接时,这种执行期间改变软件的问题将变得更为复杂。通常,在这样的系统中,软件的各部分必须被开发且各自再编译。然后所有部分相互配合重新连接才能运行。也必须建立和维护为整个软件使用的所有外部符号提供信息的各符号表。连接进程产生存贮在表中的这种信息并且识别任何未标识的引用。部分软件被修改时,不管什么原因,符号信息多半也发生变化。因此,保留在存贮器中的任何符号信息必须消除,否则它将由不正确的符号引用引起处理中的错误。
在尼森等人(Nilsson)的题为“计算机运行期间改变软件”的且已转让给TelefonaktiebolaqetLMEricsson的美国专利申请(1992年7月1日递交的申请号为07/907,294)中所揭示的一个系统,这里结合作为参考,它描述了克服软件在“飞行中”(onthefly)进行修改的某些限制的方法。该系统提供了将新软件安装进电信系统的存贮器中与老软件并存。在这种系统中,计算机系统中当前的通话最初由老软件处理,而测试通话通过处理开关转向由新软件处理。此后,如果新软件处理测试通话成功,则实际的当前通话的一部分可选择地转向通过新软件进行,当前通话的剩余部分仍由老软件处理。一旦抽样通话由新软件顺利执行,则全部通话转换到新软件上。一旦由老软件处理的所有呼叫处理完毕,则系统不再使用老软件并且可将其移去。
所揭示的系统对新的或修改的软件提供了平滑的验证。它允许数据逐步地受控地流经新的软件,仍然作为当前操作着的系统的一部分。由于开始时转向新的软件的数据只是由系统产生的测试数据,所以系统提供的早期的出错和不一致性检测对于电信交换系统的实际操作的影响很小或没有影响。如果在处理测试数据中电信系统检测到一个错误,进一步的通话就不引向新软件,即使新软件已经处理过实际数据,因此对整个系统的通话的干扰减至最小。
该揭示的系统也能以逐渐的方式将通话从老的软件导向新的软件。所揭示的系统包括能够用老软件开始处理的事务仅用老软件使它的处理完成。只有在新软件安装之后开始的事务将由新软件处理。所揭示系统的这种情况只有在从某个老软件到它被新软件置换或扩充的过渡阶段才对用户产生最小的干扰。而且,这种情况使需变换和/或转移到一套不同的软件的数据量比最初处理的数据量来减为最少。
试图至少解决与运行的计算机系统中更新软件关联的某些问题的其它努力已集中到仅代表整个问题一部分的若干个不同方面,尤其是连接问题,例如,在申请号为No.734456、申请日为1991年7月19日的美国专利申请中包含着由AndersAbrahamsson和LarsHolmqvist的发明,且已转让给TelefonaktiebolagetLMEricsson,那里揭示了一种在运行期间动态连接软件的系统。然而,该系统包括一个需使用特殊的或扩展的操作系统和/或专门的编译器的间接寻址的复杂的系统。该系统有几个其它的限制,包括需要非标准的操作系统。而且,这种系统不能用标准的应用软件进行工作。
其它相关的已有技术已在各种刊物中作了讨论。例如,在“字节杂志”(BYTEMAGAZINE)上刊登的题为“未来文件”(FutureDocuments)的文章涉及到连接和嵌入目标,而Stevenson等人的美国专利No.4791550涉及连接指针,和Freeman等人的美国专利No.4667546涉及侵入无保护存贮区(unguardedregionsofmemory)的问题。这些参考文献没有揭示解决上面讨论的问题的方法。
因此,在电信工业中能在各个装入计算机系统中的程序单元之间实行有效的动态运行时间连接(链连)将是非常有用的。本发明的系统提供了这样一种方法和装置。
本发明的动态联编分别包含在第一和第二软件应用中的第一和第二软件模块的方法,其中一计算系统具有一内核,所述方法包含步骤为:
提供一个具有交换器部分的连接过程调用机构:
提供一用户接口,该用户接口能访问所述交换器部分;
提供一服务接口,该服务接口能访问所述交换器部分;
将所述用户接口置入所述第一软件模块中;
将所述服务接口置入所述第二软件模块中;
通过执行所述第一软件模块识别所述用户接口;
用所述被识别的用户接口访问所述交换器部分识别所述服务接口;和
在执行所述第一软件模块期间,用所述服务接口代替所述被识别的用户接口,动态联编所述第一和第二软件模块。
本发明的动态联编分别包含在第一和第二软件应用中的第一和第二软件模块的方法,其中一计算系统具有一共享的存贮器和一内核,所述方法包含步骤为:
提供一具有交换器部分的连接过程调用机构;
把所述第一软件模块装进所述计算系统的所述共享存贮器,所述第一软件模块包含一用户接口;
把所述第二软件模块装进所述计算系统的所述共享存贮器,所述第二软件模块包含一服务接口;
把所述服务接口的一存贮器地址置入所述交换器部分;
通过执行所述第一软件模块识别所述用户接口;
通过用所述被识别的用户接口访问所述交换器部分,识别所述服务接口;和
在执行所述第一软件模块期间用所述服务接口代替所述被识别的用户接口,动态联编所述第一和第二软件模块。
本发明的动态联编分别包含在第一和第二软件应用中的第一和第二软件模块的联编装置,其中一计算系统具有一内核,所述装置包含:
用于提供一具有一交换器部分的连接过程调用机构的装置;
提供一用户接口的装置,所述用户接口能够访问所述交换器部分;
提供一服务接口的装置,所述服务接口能够访问所述交换器部分;
将所述用户接口置入所述第一软件模块的装置;
将所述服务接口置入所述第二软件模块的装置;
通过执行所述第一软件模块识别所述用户接口的装置;
通过用所述被识别的用户接口访问所述交换器部分识别所述服务接口的装置;和
在执行所述第一软件模块期间用所述服务接口代替所述被识别的用户接口动态联编所述第一和第二软件模块的装置。
本发明的系统涉及在两个或多个各自可装入的软件应用之间对软件模块进行动态联编(binding)的系统。本发明系统的这方面具体体现在将一个连接过程调用机构与在各自可装入计算机系统中的程序单元之间进行动态运行时间联编的能力相结合。
一方面,本发明的系统包含一个连接过程调用机构,它在操作系统内核中配备了一个交换器(trader),可用作不同的软件单元之间的接口。这种连接过程调用机构也用于完成老的和新的软件在运行期间的相互连接和联编。在本发明的系统中采用这种连接过程调用机构中,使用本发明系统的另一个方面是建立必要的接口说明。这是指一种称为面向目标的接口说明语言(ELIN)的特定语言,如Lundin等人的已转让给TelefonaktiebolaqetLMEricsson的美国专利申请(申请号NO.907,293,申请日1992年7月1日)和EllemtelUtvecklingsAktiebolag在1991年11月6日获版权的“ELIN参考手册”中所揭示的,这里结合作为参考。这种语言包含专门为开发本发明的系统的连接过程调用方面的接口而设计的特定结构。由于这些接口说明包含由面向目标范例(paradigm)支持的属性(attributes),所以具有公共的库(base)接口说明的目标的同素异构(polymorphism)和动态联编能很容易地获得。
另一方面,本发明的系统包含一个程序单元可由其构成的机构,并且在后来的运行系统中可分别地修改这些程序单元而不会对计算或其运行的电信系统的当前运行产生任何干扰。按照这方面,使用一种语言一独立的接口说明,分别构成程序单元并对其进行编译。只要接口保持不变,这方面允许程序单元独立地被修改和变化。本发明的系统的这方面所提供的附加优点是不需要为连接而存贮符号信息,这是因为这种联编发生在运行时间。
本发明的系统的还有一个方面是,连接过程调用(LPC)目标以类似于面向目标范例中的局部类(localclasses)的目标的方式产生和受控。连接过程调用机构的这方面对系统的编程人员是透明的。在本发明系统的这方面透明性是通过自动产生按照接口说明执行运行时间联编的编码而获得的。本发明这方面所提供的优点是标准语言编译器不需要任何扩展和修改LPC模型就可应用。
本发明的还有一方面是,本发明的系统包含一套方向点(directionpoints)用于在运行系统中对于新的或老的修改过的软件单元的版本进行动态地指向事务处理(也称为“线索”或“事件链”(“threads”or“chainsofevents”)。该系统通过一些装置完成动态指向,包括由功能标题寻址的消息分析,这样就能够将消息导向执行软件单元的新版本的进程或导向执行老版本的进程。另一类型的方向点是软件单元间的动态运行时间的联编(例如,联接程序调用),它能在一个进程中执行软件单元的新的或老的版本。
正如该特定技术领域中的普通技术人员很容易理解的那样,本发明所揭示的各个方面和原理除了电信交换系统外还可用来改进各种计算机应用中的软件的运行时间变换。
为了理解本发明及其进一步的目的和优点,现在结合附图参照下面的描述。
图1A-1B图示说明已有技术将新的或修改的软件控制引入运行的软件系统;
图2图示表示按照上面涉及的共同待批申请的发明,软件块可动态连接的方法;
图3是图示说明按照上面涉及的共同待批申请题为“计算机运行期间改变软件”的发明的改变运行期间软件的进程的流程图;
图4是图示说明本发明系统的软件中寻址目标操作方法的方框图;
图5是图示说明本发明的系统中寻址软件方法的方框图;
图6是图示说明本发明的系统中利用交换器(trader)能够寻址软件的方法的方框图;
图7是用面向目标的接口说明语言构成本发明系统的方法的说明图;和
图8是图示说明本发明系统的某些方面的图表。
本发明的系统,在某些方面,使用了面向目标的编程原理。面向目标编程主要包含四个元素(elements):类(classec),目标,实例变量(instancevariable)(或C++中执行的数据元(datamembers))和方法(或C++中的元功能(memberfunctions)。一个类简单地说是用于定义目标的一种模板(template),它是由构成该类的实例组成的。类有两类组成:实例变量和方法。实例变量用作数据元(dataelemeuts)而方法用作功能(functions),即它们定义一个目标的行为(behavior)。实例变量和方法能在执行期间结合于一个共同的目标中。这就是说,一个目标包封着一个能由使用所结合的方法控制的实例变量。因此,编程将集中于目标而不是集中于要完成的功能或任务。
已有技术中周知的某些面向目标的编程技术被结合进本发明的系统中,用编程语言C++较佳地构成本发明的系统。这种技术包括继承(inheritance),同素异构(polymorphism)和封闭(encapsulation)。继承能从存在的类导出新的类以便编码容易再利用,结果是数据和编码能加给类或类的行为能被改变而不必改变存在的类。同素异构是这样一种特性,即有能力将同样的方法用于不同的目标类因为它们分享一个公共的接口,它能以同样的方式使用不同类型的目标。接口的继承具有这样的特性,即它能由共同的分母(denomintor)导出其它目标类。最后,封闭是一种把数据和处理这些数据所需要的操作都放在同一个“屋顶”下的技术。它进一步能防止对数据过度或不必要的访问和隐蔽数据结构的细节。
首先参看图1A,它图示了已有技术系统中使用的软件控制方案,该方案管理着将新的或修改的软件引入一个运行的软件系统。图1A表明分层的一套软件等级,每一级的内容由检查委员会的成员(themembersofareviewboard)控制。软件的所有改变必须由该委员会先于这种改变在系统中执行之前对其批准。直到检查委员会做出:该软件是需要的,它已被适当地测试,和它不可能损害或中断系统的正式决定之前,该软件是不会加入系统的。
等级的分层系统可由个人用户将几个分离的层连在一起组成,该用户有访问和需要这些级或软件“库”完成他的功能。在层1的顶部是实时运行软件,通常该软件以最大限度被使用且受到最严格的控制(”AB.D”)。该级下面是改变库2,它由在后面附加字母C指定(“AB.DC”)。该层中更低的运行软件级属于系统中的不同用户组,并且它们将受到那些级的检查委员会的控制。新的或修改的实时软件在批准后,在最低的适当改变级上即如在2和3上用字母C结尾的级上进入系统。
一旦新的或修改的软件进入系统,它停留在进入的级上直到通过规定的时间和该软件不再产生检测错误为止。然后它将移入下一个最高级。在某些情况中,需要由规定的检查委员会进一步批准;在其它情况下,转移将自动进行,作为有规律制定的系统活动的一部分。这种转移对用户是透明的,且该软件将直接按照转移被使用或进入用户已构成他们的包含新的或改变的软件库中的访问软件的软件级联的层中。
图1A还表明,同样的过程可重复且同时产生驻留在同一系统中的非实时工程型软件。在这种情况下,唯一的差别在于控制进程由一个不同组的人管理,且该进程不可能如通常用于整个系统作为临界进程(criticalprocesses)的运行软件那样严格。然而,对这种工程软件,软件的累积以与运行软件相同的方式出现。新的或修改的软件、如在4上,进入如在尾部的最后的字母用一个C标明的最低的适当的改变级的层中。然后,它在整个时间上向上转移、直到它到达该层的顶5为止。对于工程或运行软件,一旦它移到下一个级,它不再驻留在较低的级上。
是否利用新的或修改的软件进入系统的分层库中留给个人用户或用户组去决定。用户可选择系统在级联软件中所使用的库的等级作为他们的应用。他们可选择越过一段较低的软件级或他们可简单选择避开包含最新和最后测试的软件的最低改变级。当然,分层的每部分的最高级包含大块的可用的运行软件。
图1B图示表明为了保持对基线(baseline)和在某个日期(adailybasis)上引入系统的新的或修改过的软件两者的控制而施加于图1A中表明的软件库分层的配置控制的人工进程(humanprocess)。如上所述,新软件在由检查委员会批准后进入最低适当改变级的分层中。如果新软件产生出错或不一致,则该软件从分层中移出并返回以便在6上进行附加软件维修工作。一旦问题校正且该软件重新被测试,它可以再一次经委员会批准在最低改变级上进入系统。如果在允许设定的期间内没有检测到问题,除非下一个级在7上需要另一个委员会的批准,否则软件将自动移到下一个级。要不然,它在适当的批准后移到一个固定的计划表(fixedschedule)上。该进程将继续重复直到该软件到达那分层部分的最高级为止,此时它将被肯定宣告为运行软件。
下面参看图2,那里显示了按照先前揭示的发明在模块软件系统中转移软件信号信息的图形表示。一个模块软件11的块,称为块A,它包含多个部分:程序编码列表部分12、信号分配表13和软件信号发送表14。另外,一个作业缓冲区15包含多个暂时存贮软件信号的寄存器16,这些信号等待中央处理器的处理,必须将那些信号送给如软件的请求块。另一软件块、块B17,也包括一个程序编码列表部分18和一个信号分配表19。该发明所表示的实施例也包括一个全局信号分配表20,其中保持一个用于存放装在本系统中的每个软件块中的特定信号的全部局部信号号码的列表。
按照上面的简单讨论,全局信号分配表20是一个保持不同软件模块之间地址连接的基本元件。该全局信号分配表20在对应于从一个模块或块发送到另一模块的特定信号的全局信号编号和对应于系统中每个单独块中的每一个那些信号的全局信号编号之间保持交叉引用。当一个软件块装入系统时,全局信号分配表20的对应于那个块的部分被重写,以便对包含在那个软件块中的每个信号的局部信号编号后放入。传统的做法是通过一个异进程(exclusive-orprocess)或某种其它组合技术,将那个特定信号的全局信号编号与包含那个信号的软件块的块编号相组合。于是,当一个软件块从系统中被移走,被修改或以某种在块中对各个信号产生改变的方式被增强功能时,软件信号分配表的那部分必须重写以反映该块中信号的新内容和对于该块中每个那些信号的局部信号编号的新计算。
作为图2的进一步说明,一个软件信号S1从块A1发送到块B17。块B17称为接收块,而块A11称为发送块。该接收块的块编号也称为BNR。该系统发送所需要的信号S1给接收块。首先利用包含块A11的程序起始地址(PSAA)的它的地址加上信号发送指针(SSP)的值通过访问块A11的信号发送表14而获得信号S1的全局信号编号。一旦获得S1的全局信号编号,它直接被装入作业缓冲器15中的寄存器16,并且按照中央处理单元的优先权协议和该优先权转让给要传送的特定信号,等待传送到块B。在这期间,信息以S1的全局信号编号和接收块的块编号的形式被保留,一旦信号传送操作已达到足够执行传送的优先权等级,则系统访问全局信号分配表20以便获得块B17中的S1的局部信号编号。取全局信号编号并与块编号BNR的值进行异操作来找到地址,按照这一地址进入全局信号分配表20从而完成这一信号传送。在该表中的那个地址上就可找到接收块B17中的S1的局部信号编号。
一旦获得块B17中的S1的局部信号编号,那么系统通过确定块B17中信号应进入的指令地址IA21而进入块B17。由取块B17的程序起动地址(PSAB)减去块B17中的局部信号编号从而读出指令地址21,通过获得块B17的信号分配表19完成上述过程。一旦获得指令地址21,则信号S1进入块B17并完成传送。此后,指令定位在IA21上开始执行。
有一点要注意,这就是与该揭示的系统的应用相关联,当修改编码影响块中的信号进入点时,必须注意:如果修改了数据结构,则那新的或修改过的编码的调用可能达到老的参数值,如,信号数据伴随着包含地址的作业缓冲区中的信号和/或修改前使用的数据结构格式的数据。然而,另一方面,如果块在重新装入新修改的软件块时已返回地址。则局部信号编号在已修改的返回地址栈上在老的和新的版本之间由操作系统对其更新。
下面参看图3,那里显示了一个图示说明从一个老(旧)软件版本到一个新软件版本过渡的平滑的修改方法。尤其是,该系统预先假定当前的软件正有效地在系统中运行,在30上开始把新版本软件装入存贮器。在32上,系统复制新版本中具有变化的数据并将它与新软件连接。在34上,系统开始用新软件运行测试调用(calls)而正常的通话继续用旧(老)软件和旧的数据在系统中运行。在36上,系统询问“新软件工作在测试通话上吗?”如果不是,系统转到38,在这点上,新软件和数据库从系统移走且过程结束在40上。如果新软件在36上工作在测试通话上,则系统移到42,在这点上,它用新软件运行实际通话的样例,同时保持正常通话的其余部分依旧沿用旧软件和旧数据。接着到44,系统再一次询问新软件是否工作在样例通话上。如果不是,系统转移到38,且新软件和数据库移到进程的结束。然而,如果新软件在44上成功地处理着样例通话,则系统在46上转移到用新软件和数据运行所有未来的调用。因此,在48上,系统再一次询问新软件是否正在工作,如果不是,转到38移掉新软件并在40结束。如果新软件在48上工作运行在正常通话上,系统在50上询问所有旧的调用是否已在系统中完成,如果没有,在54上询问改变的时限是否届满,如果没有届满,则继续到:(1)用新软件运行所有新调用,和(2)在46上用旧软件运行所有旧的调用直到在50上接收到yes或在54上时限届满为止。如果在54上时限届满,则系统在56上中止或将所有剩余调用传送到新软件并转到52。因此,系统移到52且旧软件及旧数据被移开,而系统在运行期间已完成一个从旧软件到新软件的转换而不会过分地危及或延误电信交换中当前的通话。
在实现各个调用到软件的不同块的连接中,例如在一个样例中,新的电信处理软件如果在正常调用从旧软件改道到新软件之前已用测试调用先进行了测试,则本发明系统可看作包含一个调用识别(ID)类(aCallIdentification(ID)category)和一个指针ID类(aPointerIDcategory)。对于系统中每个测试调用地址,给出一个新软件的指针,同时对于包含一个正常识别的所有调用IDs,给旧软件一个指针。这种指针的使用解释了本发明系统能够把普通的现有通话和测试通话两者适当地导向适当的软件版本的方法。
然而,这是本发明系统中对新、老软件寻址方法的一般的简单解释,事实上,详细的连接过程调用机构用来产生在各装入的程序单元之间的动态运行时间联编。换言之,当在上面讨论的样例中置换一个程序单元时,软件的老的和新的版本共同存在一段时间,直至新版本能被证实是正确的且在老版本中执行的活动能如上所述结束时为止。本发明系统用作为通过接口经连接过程调用访问软件的交换装置。在装载时间中,所有能进入连接过程调用的接口对核内的交换器功能(traderfunction)是公开的。每个接口公开它的识别码(identity)和涉及产生来自接口的目标的方法的地址。软件版本之间的联编在运行时进行,并且每次为规定的接口产生一个目标,为寻址产生方法,一个请求引向交换器,然后,该方法被调用并向产生的目标返回一个目标指针。
下面参看图4,这里图示说明了对类X60的一个目标每个操作间接通过如下步骤中的目标被调用:(1)目标指针66寻址目标的数据区域;(2)在从目标区域的起始部的一个预定的偏移上能找到操作表68的地址62(该表68对某个类型的所有目标是共用的);(3)操作的程序码起动的地址能在操作表68中在对应于所选操作的偏移量上找到。由于目标数据和命令(order)中的操作表中的地址存贮于其中的操作表地址存贮单元是固定和已知的,所以操作能被调用而不用交换器的支援。一个能被调用而不用交换器的接口中的这种操作是一种删除所产生的目标的操作。
使用这些操作表提供了获得同素异构(polymorphism)的能力,一种能应用如编程语言C++和它的虚拟表(virtualtables)结构的概念。同素异构,意思是“许多形状”(“maryshapes”)。它是一种能由不同目标共享的一种组成部分的行为能被改变的技术。换言之,一个组成部分可相同地出现在所有情况中,但是它可具有以与相关联的不同目标有关的稍有(somewhat)不同的方式去执行的本领。同素异构在允许建立相关的同族目标方面是有用的,即,它们有一共同的源或库(orignorbase),但它们在不同的情况中执行不同。这使得虽然每个目标的方法的实际码可有很大差别。但一族中的每个目标有同一名称的方法和功能。本发明的系统利用了同素异构及其它面向目标的编程原理。然而,本发明系统为了获得动态、透明、交互连接运行期间的不同软件版本、以崭新的和更有应用价值的方法运用和扩展了这些原理。
下面参见图5,这里图示了这样一种情况,本发明中应用的连接过程调用机构具体化为包含在内核82中的交换器80,它能构成一对软件单元84和86之间的接口关系,这对软件分别包含目标90的用户类(clientclass)88和服务类(serverclass)。图5详细说明了为了产生如图4中所示系统中的目标所需要的步骤。
目标是类的运行时的实例,它们把定义数据和功能放在一个包或单元中。由于它们能包含数据和编码,所以它们可作为小型的独立的程序。因此,它们能用作产生更复杂程序中的积木块而不必再开发那些功能所需要的编码。由于它们能被保持且能独立地被修改,所以使程序的维护和修改简化了。
一个类是一块用于定义一个目标的模板(template),而一个目标是一个类的实例。一个类包含两个组成类型,实例变量(instancevariables)或数据构件和方法(datamembersandmethods)或构件功能(memberfunctions)。为了支援编程人员开发在计算机系统中起用户角色的程序,则通过使用接口说明自动地产生用户类。所产生的用户类为服务类(server-class)担任某种代理人(agent)。系统的用户为了确保调用传送到驻留在服务类中的软件实行(softwareimplementation)则调用来自用户类目标的操作。因此,所有涉及动态联编功能的编码在用户类中可找到。
类说明(classdeclarations)控制着编译器(compiler)将地址存入目标数据(objects-data)的方法,并控制着在什么命令中获得操作表中的地址。某些类说明由系统自动产生。当一个目标在系统中产生,它的“产生方法”能通过对位于内核(Kernel)82的操作系统的交换器80部分的请求确定。交换器80包含全由连接过程调用访问系统中的类的全部接口信息,即,它包含着可为其它目标访问,也可访问其它目标的每个目标的信息。
图6说明了运行中的一个进程能由连接过程调用将其连接到应用一个新的或旧的软件单元的方法。内核82中的交换器80能将软件单元100的运行导向旧软件单元102或新软件单元104。当进行置换时,来自旧的和新的版本的两服务类,每个在交换器80中有它们的被公开的接口。交换器80包含进入每一项的两个地址,一个用于旧软件单元102而另一个用于新软件单元104。置换前产生的进程将继续使用旧软件单元102和它的服务类,而置换期间和之后产生的进程可引向使用新软件单元104和它的服务类。
在置换已完成之后且旧软件单元102中的活动已结束,旧软件单元102能从存贮器中移走,且由旧软件单元102中的服务类公开的接口可撤走。如果旧软件单元中的所有进程运行结束前企图撤走存贮器中的这些服务类,则系统从内核82产生一个异常调用。系统中的一个异常处理进程使未完成的进程有机会重引自己并使用新软件单元104,否则将中止。
本发明使用存贮包含在软件单元中的可执行程序编码的共享存贮器,这使得处理器中的所有进程能执行该共享存贮器中的程序码。这意味着处理器中不同进程中的活动当进行运行时联编时不必复制和再定位程序码。因此,动态运行时联编(或连接过程调用)是一种很快和具有实时性效果的机构,因为在运行时不需要程序的再定位或拷贝。
将交换器机构用于动态运行时联编的优点之一在于当包含在另一软件模块中的服务部分改变时不必修改包含接口的用户部分的软件模块。这就是说,对于服务部分的引用不必改变只要接口说明不变。
当用接口说明语言ELIN定义一个单独的接口说明时,如下所述,为了那个接口与其它接口分开而在脱机情况下产生唯一的编号。通过服务部分在交换器中要公开一个接口和通过交换机构由动态运行的用户部分联编时实时利用该编号。使用这一编号代替包含单一接口名的一字符串使得一个接口找到服务部分的算法更实时有效。在交换器机构中找到服务部分的算法例如能使用散列技术(hashtechnic)或索引表,这使得它几乎与编码的静态联编一样有效,但确具有能使软件模块以平滑的方式改变而不会干扰使用旧软件的当前活动的优点。
在使用本发明的连接过程调用机构中,用面向目标的接口说明语言(ELIN)写接口说明。在这种语言中,有一特殊结构(ADT),它专门针对连接过程调用接口的说明的。ELIN语言中的一个ADT是由某些类型的目标所提供的接口说明。如果使用面向目标的编程语言,则这些目标很适合作为类实例来执行。用ELIN语言的连接过程调用接口的说明包含如下信息:
(a)说明的名称;
(b)作为一个库(base)用于这名称的其它接口;
(c)一个或多个结构(用于产生实例);和
(d)零个或多个方法说明,其中每一个由一个方法名、自变量(arguments)、返回类型和异常组成。
下面以编码形式说明了一个接口说明的例子、该接口说明能用作这种连接过程调用机构的一部分并且描述了与一种称为栈的目标的接口:
ADT Stack IS

     BASE

        TelecomObject;

     METHODS

        DONSTRUCTOR(IN size Int);

        push(IN data Int);

        pop()RETURNS Int;

    END ADT Stack;

<superscript></superscript>1992 Telefonaktiebolaget LM Ericsson
这种接口说明定义一个ADT命名的栈,库ADT称为“电信目标”(“Telecomobject”)。这种ADT目标能接收来自列表功能构件(thelistedfunctionmembers)的进程或信息调用。具有识别这种ADT的一个库(abase)表明存在另一个称为电信目标的这种类型的ADT的说明。那个库ADT也已确实规定了当前的ADT作为库ADT的实例将要继承的方法。功能构件或上面ADT定义中规定的方法加到在库ADT中规定的那些功能构件和方法中。大体上,上面的编码包含能在系统中产生的一种类型的接口说明的ADT说明。
一个接口能从另一个接口导出,这另一个接口称为该被导出接口的库接口。一些接口能从多于一个的其它接口导出,被导出的接口继承它的每一个库接口的操作。另外,虽然它不可以定义具有与从库接口继承的那些相同名的操作,但该被导出的接口可以说明它自己的附加操作。很清楚继承仅仅影响接口的等级而不影响执行的等级。
如图7所示,本发明系统也包括一个桩编码(stub-code)产生工具112,该工具用来证实通过接口运行时动态连接在一起的用户和服务之间的协调性。该接口用一种独立形式的语言而不用面向目标的范例来规定。桩编码产生进程确保获得对于几个编程语言之一的变换且在随后的部分中,有一个关于这样的C++表示的变换是怎样能执行的简短说明。参看图7,那里图示说明了一种一个接口说明110使用与一套本发明系统中产生的文件相关联的桩产生工具112的方式。图7特别说明了以那种语言执行的C++变换的整个结构。用本发明系统中使用的语言(ELIN)写的一个接口说明类似于以编程语言C++使用的一个类定义。同样,通过目标访问操作的机构类同于编程语言C++处理虚拟功能(virtualfunctions)的方法。因此,图7中表明的关于C++变换对于本发明系统的这方面的操作是指示性的。
桩产生工具112为用户方和服务方两者产生两个文件。一个文件具有后缀“.h”(标题)而另一个具有后缀“.CC”(编码)。对于用户,该“.h”或标题文件包含两个类定义。一个类是服务的“.h”或标题文件中的对应类的精确复制。这确保用户和服务之间的兼容性并且使得用户能够调用由服务产生的目标。然而,这类的建造者是专有的,所以这种类不能用来在堆栈上产生自动目标。第二个类是用于用户的,它起代理人的作用,通过它能访问服务产生的目标。
对于服务方,对应的两个“.h”(标题)和“.cc”(编码)文件由桩产生工具112产生。“.h”文件的内容包含一个确保与用户兼容的类定义。这是用作执行基础的类。执行能直接以产生的类为基础或所产生的类能用作导出其它类的基础。“.cc”文件包含“产生方法”(“createmethod”)的框架和一个带有每个连接过程调用接口的一个入口的产生的表格、它的产生方法的地址应登记在交换器中。产生方法的主体的职责是产生一个与所产生的类兼容的目标并如图4所示也把一个指针返回到新产生的目标。
存在着为用户和服务两方产生不相同的可兼容的类定义而不是一个共享类定义的几个原因。首先,它为用户和服务中的构件(members)提供不同等级的可见度。例如,一个建造者对服务是公开的,但是他如果驻留在用户中就不一定要公开。其次,用户和服务程序能连接在一起以完成测试,如果使用不同的类就不会遇到名称冲突的问题。
下面参看图8,这里显示了图示说明本发明系统中采用的某些典型编码框和它们的相互关系的某种图表结构。图8表示了某些产生的文件和书写的说明的逻辑结构,它们可在本发明系统中执行。在最高级上,公共接口说明120定义一个ADT“X”和方法或可访问那ADT的目标的操作。在下一级定义上,逻辑上从属于这个ADT的是一个接口说明120的用户单元122的说明和一个公共接口说明120的提供者(provider)单元124的说明。用户单元说明122定义公共接口ADTX的一个用户。提供者单元说明124定义ADTX的一个服务。
在单元说明122和124以下的逻辑级上是为用户和提供者分别产生的类定义。为X用户(XUSer)126产生的类定义表明为公开和专有(pubicandprivate)应用两者定义的某些用户类。为X提供者(XProvider)128产生的类定义表明为提供者数据和功能的某些公开和专有的定义。
如上所述,本发明的系统能在实时运行中以某种方式将一个进程连接到新软件或旧软件,这种方式能够在电信网络和交换系统中进行有效的实时测试和平滑而透明的替换而不会扰乱网络中的电信通话。
前面的描述清楚地说明了本发明的操作和结构。当作为较佳实施例已描述了所示方法装置和系统时,则可在不脱离如下面权利要求书所限定的本发明精神范围内显然可作出种种变化和修改。

Claims (35)

1.一种动态联编分别包含在第一和第二软件应用中的第一和第二软件模块的方法,其中一计算系统具有一内核,所述方法包含步骤为:
提供一个具有交换器部分的连接过程调用机构:
提供一用户接口,该用户接口能访问所述交换器部分;
提供一服务接口,该服务接口能访问所述交换器部分;
将所述用户接口置入所述第一软件模块中;
将所述服务接口置入所述第二软件模块中;
通过执行所述第一软件模块识别所述用户接口;
用所述被识别的用户接口访问所述交换器部分识别所述服务接口;和
在执行所述第一软件模块期间,用所述服务接口代替所述被识别的用户接口,动态联编所述第一和第二软件模块。
2.如权利要求1所述的动态联编方法,其特征在于,可进一步包含步骤:
按照公共接口说明产生所述用户接口和所述服务接口。
3.如权利要求2所述的动态联编方法,其特征在于,
所述按照公共接口说明产生所述用户接口和所述服务接口的步骤可包含步骤为:
用脱机桩产生工具(off-line stub generation tool)按照所述公共接口说明产生用户目标和服务目标两者,所述脱机桩产生工具提供所述用户目标和所述服务目标之间的配合。
4.如权利要求3所述的动态联编方法,其特征在于,
所述用脱机桩产生工具按照所述公共接口说明产生用户目标和服务目标两者可包含步骤为:
产生包含至少一个用户目标的文件;和
产生包含至少一个服务目标的文件。
5.如权利要求4所述的动态联编方法,其特征在于,所述产生包含至少一个用户目标的文件可包含步骤:
产生一个包含与一关联的服务目标兼容的一个用户目标的文件,该服务目标在所述产生的包含所述服务目标的文件中。
6.如权利要求2所述的动态联编方法,其特征在于,可进一步包含步骤:
用一面向目标的接口说明语言产生所述公共接口说明。
7.如权利要求6所述的动态联编方法,其特征在于,所述产生所述公共接口说明的步骤可进一步包含步骤为:
命名该公共接口说明;
识别用作所述被命名的公共接口说明的一个库的其它接口;
产生至少一个建造者,所述建造者说明如何产生说明所述被命名的公共接口说明的目标实例;和
产生至少一个用于完成所述被命名的公共接口说明功能的方法说明,所述方法说明包含一方法名,自变量,返回类型和异常。
8.如权利要求6所述的动态联编方法,其特征在于,所述用一面向目标的接口说明语言产生所述公共接口说明的步骤可包含步骤为:
由一库接口产生所述公共接口说明,所述公共接口说明继承所述库接口指明的方法。
9.如权利要求2所述的动态联编方法,其特征在于,可进一步包含步骤为:
以使用面向目标范例的独立于计算机程序语言的形式产生所述公共接口说明。
10.如权利要求9所述的动态联编方法,其特征在于,所述提供一用户接口的步骤可包含步骤为:
提供一用户目标,所述用户目标能够访问所述交换器部分。
11.如权利要求9所述的动态联编方法,其特征在于,可进一步包含步骤为:
将所述服务接口单元置入所述交换器部分中。
12.如权利要求9所述的动态联编方法,其特征在于,所述提供一服务接口的步骤可包含步骤为:
提供一服务目标,所述服务目标能够访问所述交换器部分。
13.如权利要求12所述的动态联编方法,其特征在于,可进一步包含步骤为:
将一包含一个第三软件模块的第三软件应用装载进所述计算系统中,所述第三软件模块包含与置入所述第二软件模块的所述服务目标兼容的服务目标;和
将包含在所述第三软件模块中的所述服务目标单元置入所述交换器部分中。
14.如权利要求13所述的动态联编方法,其特征在于,可进一步包含步骤为:
通过用所述内核访问所述交换器部分,将装载所述第三软件模块之前产生的一进程引向所述第二软件模块。
15.如权利要求13所述的动态联编方法,其特征在于,可进一步包含步骤为:
通过用所述内核访问所述交换器部分,将继装载所述第三软件模块后产生的一进程引向所述第三软件模块。
16.一种动态联编分别包含在第一和第二软件应用中的第一和第二软件模块的方法,其中一计算系统具有一共享的存贮器和一内核,所述方法包含步骤为:
提供一具有交换器部分的连接过程调用机构;
把所述第一软件模块装进所述计算系统的所述共享存贮器,所述第一软件模块包含一用户接口;
把所述第二软件模块装进所述计算系统的所述共享存贮器,所述第二软件模块包含一服务接口;
把所述服务接口的一存贮器地址置入所述交换器部分;
通过执行所述第一软件模块识别所述用户接口;
通过用所述被识别的用户接口访问所述交换器部分,识别所述服务接口;和
在执行所述第一软件模块期间用所述服务接口代替所述被识别的用户接口,动态联编所述第一和第二软件模块。
17.如权利要求16所述的动态联编方法,其特征在于,可进一步包含步骤为:
将多个软件模块装进所述计算系统的所述共享存贮器,所述多个软件模块的每一个包含一关联的用户接口;和
用所述服务接口代替每个运行的所述关联的用户接口。
18.如权利要求17所述的动态联编方法,其特征在于,可进一步包含步骤为:
将多个服务接口置入所述第一软件模块;
将可与所述多个服务接口兼容的多个用户接口置入所述第二软件模块;和
将所述多个服务接口的每一个的地址置入所述交换器部分。
19.如权利要求18所述的动态联编方法,其特征在于,可进一步包含步骤为:
产生一识别所述用户接口和所述服务接口两者的唯一编号。
20.如权利要求19所述的动态联编方法,其特征在于,可进一步包含步骤为:
将所述产生的唯一编号置入所述交换器部分中;
将所述服务接口的存贮器地址置入所述交换器部分。
21.一种动态联编分别包含在第一和第二软件应用中的第一和第二软件模块的联编装置,其中一计算系统具有一内核,所述装置包含:
用于提供一具有一交换器部分的连接过程调用机构的装置;
提供一用户接口的装置,所述用户接口能够访问所述交换器部分;
提供一服务接口的装置,所述服务接口能够访问所述交换器部分;
将所述用户接口置入所述第一软件模块的装置;
将所述服务接口置入所述第二软件模块的装置;
通过执行所述第一软件模块识别所述用户接口的装置;
通过用所述被识别的用户接口访问所述交换器部分识别所述服务接口的装置;和
在执行所述第一软件模块期间用所述服务接口代替所述被识别的用户接口动态联编所述第一和第二软件模块的装置。
22.如权利要求21所述的动态联编装置,其特征在于,可进一步包含:
由一公共接口说明产生所述用户接口和所述服务接口的装置。
23.如权利要求22所述的动态联编装置,其特征在于,所述由一公共接口说明产生所述用户接口和所述服务接口的装置可包含:
用脱机桩产生工具按照所述公共接口说明产生用户目标和服务目标两者的装置,所述脱机桩产生工具提供所述用户目标和所述服务目标之间的配合。
24.如权利要求23所述的动态联编装置,其特征在于,所述用脱机桩产生工具按照所述公共接口说明产生用户目标和服务目标两者的装置可包含:
产生包含至少一个用户目标文件的装置;和
产生包含至少一个服务目标文件的装置。
25.如权利要求24所述的动态联编装置,其特征在于,所述产生包含至少一个用户目标文件的装置可包含:
产生包含一个与一关联服务目标相兼容的用户目标文件的装置,该服务目标在所述产生的服务目标文件中。
26.如权利要求22所述的动态联编装置,其特征在于,可进一步包含:
使用一面向目标的接口说明语言产生所述公共接口说明的装置。
27.如权利要求26所述的动态联编装置,其特征在于,所述产生所述公共接口说明的装置可进一步包含:
用于命名所述公共接口说明的装置;
识别用作所述被命名的公共接口说明的一个库的其它接口的装置;
产生至少一个建造者的装置,所述建造者说明如何产生说明所述被命名的公共接口说明的目标实例;和
产生至少一个用于完成所述被命名的公共接口说明功能的方法说明的装置,所述方法说明包含一方法名,自变量,返回类型和异常。
28.如权利要求26所述的动态联编装置,其特征在于,所述使用一面向目标的接口说明语言产生所述公共接口说明的装置可包含:
由一库接口产生所述公共接口说明的装置,所述公共接口说明继承所述库接口指明的方法。
29.如权利要求22所述的动态联编装置,其特征在于,可进一步包含:
以使用面向目标范例的独立于计算机程序语言的形式产生所述公共接口说明的装置。
30.如权利要求21所述的动态联编装置,其特征在于,所述提供一用户接口的装置可包含:
提供一用户目标的装置,所述用户目标能够访问所述交换器部分。
31.如权利要求21所述的动态联编装置,其特征在于,可进一步包含:
将所述服务接口单元置入所述交换器部分的装置。
32.如权利要求21所述的动态联编装置,其特征在于,所述提供一服务接口的装置可包含:
提供一服务目标的装置,所述服务目标能够访问所述交换器部分。
33.如权利要求32所述的动态联编装置,其特征在于,可进一步包含:
将一包含一个第三软件模块的第三软件应用装进所述计算系统中的装置,所述第三软件模块包含与置入所述第二软件模块的所述服务目标兼容的服务目标;和
将包含在所述第三软件模块中的所述服务目标单元置入所述交换器部分的装置。
34.如权利要求33所述的动态联编装置,其特征在于,可进一步包含:
通过用所述内核访问所述交换器部分、将装载所述第三软件模块之前产生的一进程引向所述第二软件模块的装置。
35.如权利要求33所述的动态联编装置,其特征在于,可进一步包含:
通过用所述内核访问所述交换器部分、将继装载所述第三软件模块后产生的一进程引向所述第三软件模块的装置。
CN93106449A 1992-07-01 1993-05-26 计算机系统中的动态联编方法及其装置 Expired - Lifetime CN1047450C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/907,307 US5339430A (en) 1992-07-01 1992-07-01 System for dynamic run-time binding of software modules in a computer system
USNO.07/907,307 1992-07-01
US907,307 1992-07-01

Publications (2)

Publication Number Publication Date
CN1081006A CN1081006A (zh) 1994-01-19
CN1047450C true CN1047450C (zh) 1999-12-15

Family

ID=25423875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN93106449A Expired - Lifetime CN1047450C (zh) 1992-07-01 1993-05-26 计算机系统中的动态联编方法及其装置

Country Status (14)

Country Link
US (1) US5339430A (zh)
EP (1) EP0648352B1 (zh)
KR (1) KR100303548B1 (zh)
CN (1) CN1047450C (zh)
AU (1) AU664813B2 (zh)
BR (1) BR9306652A (zh)
DE (1) DE69327243T2 (zh)
DK (1) DK0648352T3 (zh)
ES (1) ES2139663T3 (zh)
FI (1) FI946193A (zh)
GR (1) GR3032498T3 (zh)
MX (1) MX9303777A (zh)
NO (1) NO311387B1 (zh)
WO (1) WO1994001818A1 (zh)

Families Citing this family (232)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479614A (en) * 1989-09-14 1995-12-26 Fujitsu Limited Object sensor processing method and processor
JP2741994B2 (ja) * 1992-08-28 1998-04-22 富士通株式会社 ジョブ環境動的変更機能を持つ処理装置および処理方法
US5404525A (en) * 1992-09-30 1995-04-04 International Business Machines Corporation Efficient method router that supports multiple simultaneous object versions
US6209040B1 (en) * 1992-10-09 2001-03-27 Microsoft Corporation Method and system for interfacing to a type library
US5625845A (en) * 1992-10-13 1997-04-29 International Business Machines Corporation System for facilitating continuous, real-time, unidirectional, and asynchronous intertask and end-device communication in a multimedia data processing system using open architecture data communication modules
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
US5390325A (en) * 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
US5459837A (en) * 1993-04-21 1995-10-17 Digital Equipment Corporation System to facilitate efficient utilization of network resources in a computer network
US5664106A (en) * 1993-06-04 1997-09-02 Digital Equipment Corporation Phase-space surface representation of server computer performance in a computer network
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
US5615400A (en) * 1993-06-30 1997-03-25 Apple Computer, Inc. System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers
US6430738B1 (en) * 1993-07-01 2002-08-06 International Business Machines Corporation Method and system for reversible installation of software applications in a data processing system utilizing an automated archival process
US5603031A (en) * 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US6684261B1 (en) 1993-07-19 2004-01-27 Object Technology Licensing Corporation Object-oriented operating system
GB9316948D0 (en) * 1993-08-14 1993-09-29 Ibm Programming aid for distributed computing systems
JPH0773050A (ja) * 1993-09-01 1995-03-17 Fujitsu Ltd プログラム間のデータ授受制御方式
US5742848A (en) * 1993-11-16 1998-04-21 Microsoft Corp. System for passing messages between source object and target object utilizing generic code in source object to invoke any member function of target object by executing the same instructions
US5548779A (en) * 1993-12-21 1996-08-20 Taligent System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects
US5548718A (en) * 1994-01-07 1996-08-20 Microsoft Corporation Method and system for determining software reliability
US5537542A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Apparatus and method for managing a server workload according to client performance goals in a client/server data processing system
US5754855A (en) * 1994-04-21 1998-05-19 International Business Machines Corporation System and method for managing control flow of computer programs executing in a computer system
US6243765B1 (en) * 1994-04-28 2001-06-05 Nortel Networks Limited Method and apparatus for data communication
JP2580536B2 (ja) * 1994-06-02 1997-02-12 工業技術院長 オブジェクト指向言語における動的オブジェクトの管理方式
US5903754A (en) * 1994-06-21 1999-05-11 Microsoft Corporation Dynamic layered protocol stack
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
SE504943C2 (sv) * 1994-12-09 1997-06-02 Ericsson Telefon Ab L M Synkroniseringsförfarande som tillåter tillståndsöverföring
US5764985A (en) * 1994-12-13 1998-06-09 Microsoft Corp Notification mechanism for coordinating software extensions
US5819091A (en) * 1994-12-22 1998-10-06 Arendt; James Wendell User level control of degree of client-side processing
US6202098B1 (en) * 1995-01-04 2001-03-13 International Business Machines Corporation Method and system for object oriented notification
DE19502728A1 (de) * 1995-01-28 1996-08-01 Philips Patentverwaltung Telekommunikationsvorrichtung
CA2143488C (en) * 1995-02-27 2000-01-11 Robert Paul Duncan Dynamic link libraries without linker or loader support
US5802291A (en) * 1995-03-30 1998-09-01 Sun Microsystems, Inc. System and method to control and administer distributed object servers using first class distributed objects
EP0735472A3 (en) * 1995-03-31 2000-01-19 Sun Microsystems, Inc. Method and apparatus for conspiracy among objects
US6715148B1 (en) 1995-04-03 2004-03-30 International Business Machines Corporation Efficient method router that supports multiple simultaneous object versions
JP3590688B2 (ja) * 1995-04-05 2004-11-17 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーションを導入するための導入計画オブジェクトを構築する方法、及びそのシステム
US5867713A (en) * 1995-04-05 1999-02-02 International Business Machines Corporation Committing an install plan object for the network installation of application programs
EP0819274B1 (en) 1995-04-07 2002-11-06 DreamTechnologies Co., Ltd. Method and system for executing an application program
US5799181A (en) * 1995-04-07 1998-08-25 Sofmap Future Design, Inc. Bossless architecture and digital cell technology for computer programs
US5727212A (en) * 1995-04-12 1998-03-10 International Business Machines Corporation Object oriented device driver system for procedural device drivers
US5625804A (en) * 1995-04-17 1997-04-29 International Business Machines Corporation Data conversion in a multiprocessing system usable while maintaining system operations
US5727154A (en) * 1995-04-28 1998-03-10 Fry; Shawn C. Program synchronization on first and second computers by determining whether information transmitted by first computer is an acceptable or unacceptable input to second computer program
US5987505A (en) * 1995-04-28 1999-11-16 Fry; Shawn C. Method for emulation of terminal-resident GUI application by transmitting macros having information and command instructing the terminal how to process the information
US6212575B1 (en) * 1995-05-05 2001-04-03 Apple Computer, Inc. Extensible, replaceable network component system
US5802531A (en) * 1995-05-08 1998-09-01 Apple Computer, Inc. Method and system for embedding parts of documents and synchronizing multiple views thereof
US5664208A (en) * 1995-05-16 1997-09-02 Apple Computer, Inc. Methods and apparatuses for seamless compound document processing
US5740455A (en) * 1995-05-16 1998-04-14 Apple Computer, Inc. Enhanced compound document processing architectures and methods therefor
US5805891A (en) * 1995-07-26 1998-09-08 International Business Machines Corporation System and method for managing maintenance of computer software
WO1997008623A1 (en) * 1995-08-23 1997-03-06 Symantec Corporation Coherent file system access during defragmentation operations on a storage media
DE19533961A1 (de) * 1995-09-13 1997-03-20 Siemens Ag Verfahren zum Laden von Software in Kommunikationssystemen mit nichtredundanten, dezentralen Einrichtungen
US6332168B1 (en) * 1995-09-28 2001-12-18 International Business Machines Corporation Method of, system for, and computer program product for providing a run time subsystem for run time libraries
US6226691B1 (en) * 1995-10-02 2001-05-01 International Business Machines Corporation System, method, and article of manufacture for adding object services to a binary class in an object oriented server
US5732263A (en) * 1995-10-03 1998-03-24 International Business Machines Corporation Systems, methods and computer program products for generating and validating user defined object classes in an object oriented programming environment after build time
US6684259B1 (en) 1995-10-11 2004-01-27 Citrix Systems, Inc. Method for providing user global object name space in a multi-user operating system
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
US5864862A (en) * 1996-09-30 1999-01-26 Telefonaktiebolaget Lm Ericsson (Publ) System and method for creating reusable components in an object-oriented programming environment
US6467085B2 (en) 1995-10-17 2002-10-15 Telefonaktiebolaget L M Ericsson (Publ) System and method for reducing coupling in an object-oriented programming environment
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
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
US6421679B1 (en) * 1995-10-27 2002-07-16 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
US5787245A (en) * 1995-11-13 1998-07-28 Object Technology Licensing Corporation Portable debugging service utilizing a client debugger object and a server debugger object
US5778230A (en) * 1995-11-13 1998-07-07 Object Technology Licensing Corp. Goal directed object-oriented debugging system
US5812850A (en) * 1995-11-13 1998-09-22 Object Technology Licensing Corp. Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution
US6158045A (en) * 1995-11-13 2000-12-05 Object Technology Licensing Corporation Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support
US5815653A (en) * 1995-11-13 1998-09-29 You; Lawrence L. Debugging system with portable debug environment-independent client and non-portable platform-specific server
US5956479A (en) * 1995-11-13 1999-09-21 Object Technology Licensing Corporation Demand based generation of symbolic information
US5790132A (en) * 1995-12-07 1998-08-04 Object Technology Licensing Corp. Image rendering system with extensible mechanism for providing visual user feedback when an image graphic is selected
US5793982A (en) * 1995-12-07 1998-08-11 International Business Machine Corporation Validating an installation plan containing multiple transports and redirectors by adding data structure of the modules to the plan if the indicated transport and redirector modules are unavailable
US5742823A (en) * 1996-01-17 1998-04-21 Nathen P. Edwards Total object processing system and method with assembly line features and certification of results
US5822580A (en) * 1996-01-19 1998-10-13 Object Technology Licensing Corp. Object oriented programming based global registry system, method, and article of manufacture
US5838972A (en) * 1996-02-09 1998-11-17 Sun Microsystems, Inc. Method and apparatus for dynamically loading an input run-time module and an output run-time module
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6421704B1 (en) * 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6272559B1 (en) * 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6938263B2 (en) * 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6466947B2 (en) * 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6138238A (en) * 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6074434A (en) 1996-06-07 2000-06-13 International Business Machines Corporation Selection of code updates, data updates or new data for client
US5752042A (en) * 1996-06-07 1998-05-12 International Business Machines Corporation Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer
US5877768A (en) 1996-06-19 1999-03-02 Object Technology Licensing Corp. Method and system using a sorting table to order 2D shapes and 2D projections of 3D shapes for rendering a composite drawing
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5960204A (en) * 1996-10-28 1999-09-28 J.D. Edwards World Source Company System and method for installing applications on a computer on an as needed basis
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software
US6003095A (en) * 1996-10-31 1999-12-14 International Business Machines Corporation Apparatus and method for demand loading a dynamic link library
US6769126B1 (en) 1996-12-10 2004-07-27 International Business Machines Corporation Apparatus and method for demand load analysis
US5946486A (en) * 1996-12-10 1999-08-31 International Business Machines Corporation Apparatus and method for tracing entries to or exits from a dynamic link library
GB2323944A (en) * 1997-04-01 1998-10-07 Ibm Parallel data processing system
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
US5822748A (en) * 1997-02-28 1998-10-13 Oracle Corporation Group by and distinct sort elimination using cost-based optimization
US6366581B1 (en) 1997-04-02 2002-04-02 Fujitsu Network Communications, Inc. Method and apparatus for generating permanent virtual connections using graphical user interface
US6324411B1 (en) * 1997-05-20 2001-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Background software loading in cellular telecommunication systems
US6189145B1 (en) * 1997-05-28 2001-02-13 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
US20090043907A1 (en) * 1997-09-11 2009-02-12 Digital Delivery Networks, Inc. Local portal
US6072953A (en) * 1997-09-30 2000-06-06 International Business Machines Corporation Apparatus and method for dynamically modifying class files during loading for execution
JPH11110194A (ja) * 1997-10-06 1999-04-23 Toshiba Corp 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
US6957427B1 (en) 1997-10-15 2005-10-18 Sun Microsystems, Inc. Remote object activation in a distributed system
EP1038221B1 (de) * 1997-12-09 2002-02-13 Siemens Aktiengesellschaft Verfahren zur überprüfung der pfadüberdeckung bei software-tests
US6031623A (en) * 1997-12-11 2000-02-29 Hewlett-Packard Company Computer system with evolving printer
US6151708A (en) 1997-12-19 2000-11-21 Microsoft Corporation Determining program update availability via set intersection over a sub-optical pathway
US5911073A (en) * 1997-12-23 1999-06-08 Hewlett-Packard Company Method and apparatus for dynamic process monitoring through an ancillary control code system
US5953534A (en) * 1997-12-23 1999-09-14 University Of Washington Environment manipulation for executing modified executable and dynamically-loaded library files
WO1999034600A1 (en) * 1997-12-24 1999-07-08 I-See-You Corporation Portable, stand-alone video telephone system
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
CN1292115A (zh) * 1998-02-26 2001-04-18 太阳微系统公司 分布系统中动态验证信息的装置和方法
EP1057107A1 (en) * 1998-02-26 2000-12-06 Sun Microsystems, Inc. Dynamic lookup service in a distributed system
US6484214B1 (en) * 1998-03-05 2002-11-19 Mcdonnell Douglas Helicopter Company Method for distributed object communications based on dynamically acquired and assembled software components
SE9800696D0 (sv) * 1998-03-05 1998-03-05 Nokia Satellite Systems Ab Sätt vid datorsystem
US20020046228A1 (en) * 1998-03-20 2002-04-18 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6681266B2 (en) 1998-04-14 2004-01-20 Dell Usa, L.P. Late binding dynamic software configuration information
US6345387B1 (en) 1998-04-30 2002-02-05 Cosa Technologies, Inc. Coherent object system architecture
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
US5983021A (en) * 1998-05-27 1999-11-09 Sun Microsystems Dynamically switching statically bound function calls to dynamically bound function calls without recompilation
US6351843B1 (en) * 1998-08-31 2002-02-26 International Business Machines Corporation Dynamically inserting a function into an application executable at runtime
US7159222B1 (en) * 1998-09-09 2007-01-02 Microsoft Corporation Highly componentized system architecture with object mutation
US8434099B2 (en) 1998-09-09 2013-04-30 Microsoft Corporation Efficient linking and loading for late binding and platform retargeting
US7127701B2 (en) * 1998-09-18 2006-10-24 Wylci Fables Computer processing and programming method using autonomous data handlers
US6651080B1 (en) * 1998-10-16 2003-11-18 Sun Microsystems, Inc. Techniques for implementing pluggable virtual machines
US6163794A (en) * 1998-10-23 2000-12-19 General Magic Network system extensible by users
WO2000036506A1 (en) 1998-12-16 2000-06-22 Kent Ridge Digital Labs Process oriented computing environment
US6249783B1 (en) 1998-12-17 2001-06-19 International Business Machines Corporation Method and apparatus for efficiently executing built-in functions
US6397384B1 (en) * 1998-12-18 2002-05-28 Adobe Systems Incorporated Run-time addition of interfaces
US6510551B1 (en) * 1998-12-22 2003-01-21 Channelpoint, Inc. System for expressing complex data relationships using simple language constructs
JP4809968B2 (ja) * 1999-04-09 2011-11-09 キヤノン株式会社 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体
DE19917165C2 (de) * 1999-04-16 2001-02-08 Karlsruhe Forschzent Verfahren zum Abreinigen von rohrförmigen Filterelementen und Vorrichtung zur Ausübung des Verfahrens
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
US6842903B1 (en) * 1999-05-19 2005-01-11 Sun Microsystems, Inc. System and method for providing dynamic references between services in a computer system
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
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 設定情報自動復帰方法及び装置並びに設定情報自動復帰プログラムを記録した記録媒体
EP1079302A1 (de) * 1999-08-23 2001-02-28 Siemens Aktiengesellschaft Verfahren zum Betreiben einer Datenverarbeitungsanlage, Baueinheit und Vermittlungsstelle sowie zugehöriges Computerprogramm
JP3671759B2 (ja) * 1999-08-26 2005-07-13 株式会社日立製作所 ソフトウェア配布方法およびシステム
US6356933B2 (en) * 1999-09-07 2002-03-12 Citrix Systems, Inc. Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
US6330560B1 (en) 1999-09-10 2001-12-11 International Business Machines Corporation Multiple manager to multiple server IP locking mechanism in a directory-enabled network
US6622170B1 (en) 1999-09-10 2003-09-16 International Business Machines Corporation System and method for DEN/LDAP client database access with a backoff capability
US7146608B1 (en) * 1999-09-28 2006-12-05 Cisco Technology, Inc. Method and system for a software release process
US7089300B1 (en) * 1999-10-18 2006-08-08 Apple Computer, Inc. Method and apparatus for administering the operating system of a net-booted environment
US6751658B1 (en) 1999-10-18 2004-06-15 Apple Computer, Inc. Providing a reliable operating system for clients of a net-booted environment
JP3655152B2 (ja) * 1999-11-29 2005-06-02 富士通株式会社 ソフトウェア編集装置及び記憶媒体
US6871344B2 (en) * 2000-04-24 2005-03-22 Microsoft Corporation Configurations for binding software assemblies to application programs
US7287259B2 (en) 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs
EP1160952A3 (en) * 2000-05-29 2004-05-26 Omron Corporation Power supply module and power supply unit using the same
US6941353B1 (en) * 2000-06-29 2005-09-06 Auran Holdings Pty Ltd E-commerce system and method relating to program objects
US7346842B1 (en) * 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7194743B2 (en) * 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
US7296275B2 (en) * 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US20020100034A1 (en) * 2001-01-22 2002-07-25 Croix John F. Application personality
US7076496B1 (en) * 2001-02-23 2006-07-11 3Com Corporation Method and system for server based software product release version tracking
US7389515B1 (en) * 2001-05-21 2008-06-17 Microsoft Corporation Application deflation system and method
US7243346B1 (en) 2001-05-21 2007-07-10 Microsoft Corporation Customized library management system
JP2002373077A (ja) * 2001-06-14 2002-12-26 Nec Corp 実行時ライブラリ検索方法及び装置、動的リンカ並びにプログラム
US20030051030A1 (en) * 2001-09-07 2003-03-13 Clarke James B. Distributed metric discovery and collection in a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US20030051029A1 (en) * 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US20030131347A1 (en) * 2001-10-12 2003-07-10 Allison David S. Method and apparatus for runtime binding of object members
US7210145B2 (en) * 2001-10-15 2007-04-24 Edss, Inc. Technology for integrated computation and communication; TICC
US6915513B2 (en) * 2001-11-29 2005-07-05 Hewlett-Packard Development Company, L.P. System and method for dynamically replacing code
US6981268B2 (en) * 2001-12-05 2005-12-27 Microsoft Corporation System and method for persisting and resolving application assembly binds
KR100462860B1 (ko) * 2002-01-11 2004-12-17 삼성전자주식회사 개방형 교환시스템에서 새 버전 소프트웨어 패키지 설치방법
US7657616B1 (en) 2002-06-10 2010-02-02 Quest Software, Inc. Automatic discovery of users associated with screen names
US20080196099A1 (en) * 2002-06-10 2008-08-14 Akonix Systems, Inc. Systems and methods for detecting and blocking malicious content in instant messages
US7707401B2 (en) * 2002-06-10 2010-04-27 Quest Software, Inc. Systems and methods for a protocol gateway
US20040111623A1 (en) 2002-06-10 2004-06-10 Akonix Systems, Inc. Systems and methods for detecting user presence
US7428590B2 (en) * 2002-06-10 2008-09-23 Akonix Systems, Inc. Systems and methods for reflecting messages associated with a target protocol within a network
US7774832B2 (en) * 2002-06-10 2010-08-10 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US7818565B2 (en) * 2002-06-10 2010-10-19 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US7076312B2 (en) * 2002-08-02 2006-07-11 Fisher-Rosemount Systems, Inc. Integrated electronic signatures for approval of process control and safety system software objects
US7185331B2 (en) * 2002-08-27 2007-02-27 Inrange Technologies Corporation Method and apparatus for downloading executable code in a non-disruptive manner
US7234056B2 (en) * 2002-09-24 2007-06-19 Inrange Technologies Corp. Method and apparatus for downloading executable code in a non-disruptive manner
US7730155B1 (en) 2002-10-01 2010-06-01 Apple Inc. Method and apparatus for dynamically locating resources
US7200840B2 (en) * 2002-10-24 2007-04-03 International Business Machines Corporation Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture
US7213123B2 (en) * 2002-10-24 2007-05-01 International Business Machines Corporation Method and apparatus for mapping debugging information when debugging integrated executables in a heterogeneous architecture
US7225431B2 (en) * 2002-10-24 2007-05-29 International Business Machines Corporation Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture
US7222332B2 (en) * 2002-10-24 2007-05-22 International Business Machines Corporation Method and apparatus for overlay management within an integrated executable for a heterogeneous architecture
US7243333B2 (en) * 2002-10-24 2007-07-10 International Business Machines Corporation Method and apparatus for creating and executing integrated executables in a heterogeneous architecture
US7313267B2 (en) * 2002-11-13 2007-12-25 Lockheed Martin Corporation Automatic encoding of a complex system architecture in a pattern recognition classifier
US7243336B2 (en) * 2002-12-17 2007-07-10 International Business Machines Corporation System and method of extending application types in a centrally managed desktop environment
US7865251B2 (en) * 2003-01-28 2011-01-04 Fisher-Rosemount Systems, Inc. Method for intercontroller communications in a safety instrumented system or a process control system
US20050039196A1 (en) * 2003-08-13 2005-02-17 Sasidharan Prasanth Nalini Method and system for using a library
WO2005026915A2 (en) * 2003-09-11 2005-03-24 Akonix Systems, Inc. Systems and methods for dynamically updating software in a protocol gateway
GB2406663B (en) * 2003-10-01 2006-03-22 Toshiba Res Europ Ltd Flexible protocol stack
US7774774B1 (en) 2003-10-22 2010-08-10 Apple Inc. Software setup system
US20050091259A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Redmond Wa. Framework to build, deploy, service, and manage customizable and configurable re-usable applications
US8381207B2 (en) * 2003-12-02 2013-02-19 International Business Machines Corporation Script generation engine and mapping semantic models for target platform
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
EP2408126A1 (en) 2004-02-19 2012-01-18 Landmark Digital Services LLC Method and apparatus for identification of broadcast source
US7516459B2 (en) * 2004-02-20 2009-04-07 Intel Corporation Methods and apparatus to optimize managed application program interfaces
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US7444197B2 (en) 2004-05-06 2008-10-28 Smp Logic Systems Llc Methods, systems, and software program for validation and monitoring of pharmaceutical manufacturing processes
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7594217B2 (en) * 2004-12-07 2009-09-22 International Business Machines Corporation Matching client interfaces with service interfaces
US7779430B2 (en) * 2004-12-15 2010-08-17 International Business Machines Corporation Method, system, and article of manufacture for providing service components
US7739656B2 (en) * 2004-12-15 2010-06-15 International Business Machines Corporation Generating asynchronous interfaces and methods from synchronous interfaces and methods
US20060179421A1 (en) * 2005-02-09 2006-08-10 International Business Machines Corporation Dynamic interface binding using XML transformations
US9542175B2 (en) * 2005-06-24 2017-01-10 Oracle International Corporation Continuous deployment
US9063725B2 (en) * 2005-06-24 2015-06-23 Oracle International Corporation Portable management
US9075596B2 (en) * 2005-06-24 2015-07-07 Oracle International Corporation Deployment
EP1746499A1 (de) * 2005-07-05 2007-01-24 Siemens Aktiengesellschaft System und Verfahren zur Entwicklung einer Software oder einer Softwarekomponente sowie Verfahren zum Betrieb einer solchen Software
US7844957B2 (en) * 2005-08-19 2010-11-30 Sybase, Inc. Development system with methodology providing optimized message parsing and handling
US7756981B2 (en) 2005-11-03 2010-07-13 Quest Software, Inc. Systems and methods for remote rogue protocol enforcement
US20070226731A1 (en) * 2005-11-16 2007-09-27 Tseitlin Ariel D Modularity
US20070250828A1 (en) * 2005-11-16 2007-10-25 Tseitlin Ariel D Portable libraries
WO2007123527A1 (en) * 2006-04-20 2007-11-01 Srinivasan Chitoor V Technology for integrated computation and communication; ticc
EP1850260A1 (en) * 2006-04-26 2007-10-31 Macrovision Corporation A computer-implemented method and system for binding digital rights management executable code to a software application
US8458673B2 (en) * 2006-04-26 2013-06-04 Flexera Software Llc Computer-implemented method and system for binding digital rights management executable code to a software application
US20070277170A1 (en) * 2006-05-25 2007-11-29 International Business Machines Corporation Merger driven application installation
CN100464522C (zh) * 2007-05-17 2009-02-25 华为技术有限公司 一种进程升级的方法及进程升级系统
US7996347B2 (en) * 2008-04-04 2011-08-09 International Business Machines Corporation Adaptive information technology solution design and deployment
US8627306B2 (en) * 2008-08-06 2014-01-07 Caterpillar Inc. Method and system for updating an information management system configuration
US10410117B2 (en) 2008-09-21 2019-09-10 Brainchip, Inc. Method and a system for creating dynamic neural function libraries
KR101255685B1 (ko) * 2008-12-22 2013-04-24 한국전자통신연구원 로봇 응용 프로그램 실행 장치 및 방법
US8832676B2 (en) * 2009-09-30 2014-09-09 Zynga Inc. Apparatuses, methods and systems for a social networking application updater
US8954929B2 (en) * 2010-03-29 2015-02-10 Microsoft Corporation Automatically redirecting method calls for unit testing
US20110314256A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Data Parallel Programming Model
US8589867B2 (en) 2010-06-18 2013-11-19 Microsoft Corporation Compiler-generated invocation stubs for data parallel programming model
EP2469407A1 (en) * 2010-12-21 2012-06-27 Robert Bosch GmbH Method of bypassing an AUTOSAR software component of an AUTOSAR software system
US8468507B2 (en) 2011-06-10 2013-06-18 Microsoft Corporation Binding executable code at runtime
US8990515B2 (en) 2011-06-14 2015-03-24 Microsoft Technology Licensing, Llc Aliasing buffers
US9141356B2 (en) 2011-12-14 2015-09-22 Microsoft Technology Licensing, Llc Process for generating dynamic type
US9160653B2 (en) 2012-06-07 2015-10-13 International Business Machines Corporation Dynamic redirection of network traffic within a system under test
US9152410B2 (en) * 2012-06-21 2015-10-06 Vaibhav KHANDELWAL Auto-update while running client interface with handshake
US8997047B2 (en) * 2012-12-13 2015-03-31 International Business Machines Corporation Dynamically updating code without requiring processes to restart
US9542172B2 (en) 2013-02-05 2017-01-10 Apple Inc. Automatic updating of applications
US9720651B2 (en) * 2015-07-15 2017-08-01 Bank Of America Corporation Strategy maintenance system
US10594555B2 (en) 2016-12-16 2020-03-17 Intelligent Platforms, Llc Cloud-enabled testing of control systems
US11424865B2 (en) 2020-12-10 2022-08-23 Fisher-Rosemount Systems, Inc. Variable-level integrity checks for communications in process control environments

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01307825A (ja) * 1988-06-06 1989-12-12 Nec Corp インターフェイスモジュールを介する動的リンク実行方式
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4369983A (en) * 1980-10-27 1983-01-25 The Firestone Tire & Rubber Company Trailer with mass restraint
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
JPH01239633A (ja) * 1988-03-22 1989-09-25 Nec Corp 動的リンク構造ロードモジュール作成方式
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
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
US5185742A (en) * 1990-12-31 1993-02-09 At&T Bell Laboratories Transparent signaling for remote terminals
US5182751A (en) * 1990-12-31 1993-01-26 At&T Bell Laboratories Switching system using identical switching nodes
US5182750A (en) * 1990-12-31 1993-01-26 At&T Bell Laboratories Transparent remoting of switching network control over a standard interface link
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
JPH0778775B2 (ja) * 1991-06-12 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション アプリケーション・プログラム間における情報交換システム及び方法
US5297285A (en) * 1991-07-23 1994-03-22 Telefonaktiebolaget L M Ericsson System for dynamically linking modular portions of computer software

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01307825A (ja) * 1988-06-06 1989-12-12 Nec Corp インターフェイスモジュールを介する動的リンク実行方式
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
BR9306652A (pt) 1998-12-08
EP0648352A1 (en) 1995-04-19
NO945053L (no) 1995-02-28
GR3032498T3 (en) 2000-05-31
KR100303548B1 (ko) 2001-11-22
ES2139663T3 (es) 2000-02-16
NO945053D0 (no) 1994-12-27
WO1994001818A1 (en) 1994-01-20
DE69327243T2 (de) 2000-04-06
FI946193A0 (fi) 1994-12-30
EP0648352B1 (en) 1999-12-08
CN1081006A (zh) 1994-01-19
US5339430A (en) 1994-08-16
AU4516393A (en) 1994-01-31
MX9303777A (es) 1994-01-31
DE69327243D1 (de) 2000-01-13
NO311387B1 (no) 2001-11-19
DK0648352T3 (da) 2000-05-29
AU664813B2 (en) 1995-11-30
FI946193A (fi) 1994-12-30

Similar Documents

Publication Publication Date Title
CN1047450C (zh) 计算机系统中的动态联编方法及其装置
CN1045829C (zh) 用于计算机运行期间改变软件的系统
CN100498699C (zh) 在运行时系统中共享对象
CN1989489B (zh) 数据处理方法和装置
CN100489778C (zh) Java程序可动态更新化实现方法
CN1989488B (zh) 运行时系统的鲁棒共享
CN1781075B (zh) 电子文件更新期间的设备存储器管理
EP2169547B1 (en) Compilation model for programmable logic controllers (PLC).
US5481713A (en) Method and apparatus for patching code residing on a read only memory device
CN1119756C (zh) 用于进行静态初始化的方法和系统
CN100388193C (zh) 修改面向对象的程序的方法、运行时系统和自动化系统
CN1361891A (zh) 用于可扩展宏语言的方法和系统
CN1105507A (zh) 模型化系统
CN1577268A (zh) 共享库系统及构建该系统的方法
CN1961292A (zh) 用于受管运行时环境的线程同步方法和装置
CN1851645A (zh) 一种单片机系统在运行中升级的装置和方法
CN1232201A (zh) 动态图形用户界面特征设定配置
CN102147743A (zh) 加快嵌入式系统应用程序启动速度的方法
US20010047512A1 (en) Method and system for linking multiple processors having shared memory
CN1973262A (zh) 使用集中动态寻址(da)管理器的动态寻址
CN1296834C (zh) 编程对象简化的内存重新分配方法
CN1813243A (zh) 用于在受控运行时环境中使面向对象的软件应用去同步的装置和方法
CN103645888A (zh) 一种自动构建操作系统的系统及方法
CN109933345B (zh) 一种控制器的无扰下装方法及相关装置
CN1141654C (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
C17 Cessation of patent right
CX01 Expiry of patent term

Expiration termination date: 20130526

Granted publication date: 19991215