用于运行数据处理设备的方法、模块单元、交换局及所属的计算机程序的制作方法

文档序号:6537217阅读:187来源:国知局
专利名称:用于运行数据处理设备的方法、模块单元、交换局及所属的计算机程序的制作方法
技术领域
本发明涉及一种用于运行数据处理设备的方法,其中至少有一个处理器来执行程序系统的指令。该程序系统包含有至少两个子系统,这些子系统确定了数据处理设备的给定功能,并且可以基本上相互独立地进行编制。该子系统包含有用于执行某种功能或某一子功能的软件模块。
程序系统通常被理解为由多个部分和大量指令组成的程序,以用于解决共同的重要任务。程序系统比如用于交换局中的连接组件上,以便控制不同传输协议的信令以及用户之间的通信控制。程序系统的另一例子是用于控制数据处理设备的基本功能的一种操作系统。程序系统也可以是一种应用程序,比如文本程序或表格计算。
有关的程序系统常常是在多年的发展过程中产生的,并且可以包含多至几百万条指令。在具有多个同样的连接组件的数据处理设备以及交换装置中,也可以同时处理单个或多个程序系统的指令。
程序系统一般包含多个子系统,这些子系统确定了数据处理设备的给定功能。子系统可以基本相互独立地来编制,也即这些子系统比如可以单独地汇编或编译。汇编或编译之后所形成的子系统的指令序列借助一种所谓的“链接”程序来组合成程序系统。在此,链接程序把符号地址替换为数据处理设备存储器的地址值。在交换局中,比如有一种子系统用于信令以及另一子系统用于通信控制。在操作系统中,比如由存储器子系统接管存储器管理的所有功能。文件子系统包含有需要被用来在数据处理设备上处理文件的数据。
子系统一般提供有多种功能。在用于通信控制的子系统中,有一种功能比如是来构造主叫用户与被叫用户之间的通信。为了执行一种功能往往需要几千条指令。为此常常把该功能划分成子功能。用于执行一种功能或子功能的指令被合并成软件模块。软件模块比如就是一种指令序列,其中该指令序列在起始地址处开始,并在结束地址处结束。通常在执行软件模块的指令之前提供一些参数。此外在执行指令的过程中也可以生成结果参数,其中该参数被存储下来用于继续处理。
编制和维护程序系统是困难而且耗费巨大的。所以必须标注源程序正文中或者其它位置处的变更,以使第三方能轻易地理解指令序列。但尤其在实践中,象指令序列自己的整个文档一样,很少能够实现完整而更新的变更文档。从而常常导致具有多个版本的程序系统。所以比如在程序系统的开发阶段,对于不同的地区具有不同的版本。在进一步开发程序系统的情况下,版本的数量会翻几倍。目前程序系统的进一步开发变得越来越困难和耗费巨大,原因是必须考虑多种变更和子系统之间的相互依赖性。在程序系统中改正错误也是耗费巨大的,原因是一般必须为每个版本单独地实施纠错。
本发明的任务在于提供一种方法,该方法能够实现简单地编制和维护在数据处理设备上所执行的程序系统。另外还提供了一种数据处理设备、交换局的模块单元、交换局以及计算机程序,其中借助它们能够实施本发明所述的方法。
本发明所涉及的任务通过具有权利要求1中所给出的方法步骤的方法而得到解决。其扩展方案在从属权利要求中给出。
本发明是以如下知识为出发点子系统不仅适合于根据功能特征来划分程序系统,而且子系统还能够被用来使程序系统中的地区匹配完全明显化。因此在本发明中,第一子系统包含有需要在程序系统及该程序系统的相同开发阶段的另一版本中执行的功能软件模块。第二子系统包含有需要在两个程序系统中不同地执行的功能软件模块(地区变型)。通过这种措施,关于某一特定版本的变更可以在第二子系统中进行编程,而且,需要在多个版本中以相同方式执行的功能包含在第一子系统中。这导致了需要在多个版本中以相同方式执行的功能总共只需要进行一次编程,而且版本之间的差别能够以简单的方式来确定,其方式是只需确定哪些功能属于第二子系统。从而不再会因缺少文档而让版本差别阻碍了进一步开发。
程序系统中的纠错也以简单的方式来实施。这样,首先确定错误是否位于第一子系统(中性地区部分)或者第二子系统(特定地区部分)中。如果错误位于第一子系统中,那么可以集中地针对相同开发阶段的所有程序版本而以相同的方式来进行纠错。通常情况是第一子系统明显大于第二子系统。只有当错误位于第二子系统中时才必须为相同开发阶段的各个版本另外对纠错进行编程。
如果程序系统的进一步开发一直是基于第一子系统,那么程序系统也会容易地被进一步开发成新的开发级。这意味着,在每个开发阶段中第二子系统基于被进一步开发的第一子系统而重新进行了匹配。通过这种措施避免了再次变更相对于第一子系统而已变化的第二子系统。一个开发阶段的所有地区项目都以第一子系统为基础。通过这种措施避免了多个地区版本的软件变得混杂。
在本发明的一个改进方案中,软件模块的起始地址被存储在程序系统的转移表格中。在执行软件模块之前,借助转移表格来求出软件模块的起始地址。本发明的该改进方案的出发点在于,一方面组合地运用了第一子系统与第二子系统,另一方面运用了转移表格,从而使得可简单地分离成第一子系统与第二子系统。通过改变转移表格中的起始地址,可以选择第一子系统中的软件模块或第二子系统中的软件模块。这比如根据软件模块是属于特定地区软件(子系统2)还是属于中性地区软件(子系统1)来实现。从而由转移表格中的录入项按照转接的方式来确定是否应该用第一子系统或第二子系统中的软件模块来执行某一确定的功能。
在另一扩展方案中,第一子系统的指令被存储在数据处理设备存储器的第一相关地址区域的存储单元中。通过这种措施简化了存储器模块至第一子系统的分配,其原因是只需要测出所涉及的软件模块是否存储在第一地址范围中。如果第二子系统的指令被存储在存储器的第二相关地址范围的存储器单元中,则也适用相应的考虑。
在本发明的一种方案中,针对在运行数据处理设备时所出现的各种事件而分别把所要执行的软件模块的起始地址存储在转移表格中。根据这种事件的类型来求出如下存储器单元的地址,即在该存储器单元中存储了要执行的软件模块的起始地址。
从而,事件和起始地址的分配可以以简单的方式来进行,其原因是在出现第一事件的情况下只须从第一存储器单元中读出起始地址,而在出现第二事件的情况下只须读出第二地址的存储器单元。存储器单元的存储器地址优选地构成了一个连续的区域。从而使事件号便成为了访问转移表格的指数。
转移表格优选地存放在第二子系统中。这样,转移表格中的变化就涉及到无论如何也要变化的第二子系统。第一子系统对于开发阶段的所有版本继续保持不变。
在下一扩展方案中,第一子系统至少包含有用于如下功能的辅助软件模块,即第二子系统针对该功能包含有不同于所述辅助软件模块的软件模块。该不同的软件模块的地址被存储在转移表格中,而辅助软件模块的地址则不。因而所述辅助软件模块的地址不能通过转移表格来调用。通常,辅助软件模块也不是通过处理器来执行的。如果稍后需要确定在开发阶段的基本版本中是怎样对某一特定功能进行编程的,那么该辅助软件模块则被用作比较基准。通过该扩展方案虽然在第一子系统中存储了没有被执行的指令,却避免了由于删除该指令而改变地址。如果对第一子系统中的错误进行校正,那么就可以以相同的方式对开发阶段的所有版本进行校正,其方式是通过在具有错误指令的相同地址上存储新的指令。校正的引入可以通过辅助程序来进行,由该辅助程序构造通向数据处理设备的数据传输链路。无错误的指令序列用英语也称为patch(修补程序)。
本发明的另一优点在于因中性项目软件(子系统1)中的错误而发生的变更对于开发阶段的所有地区变型来说只需要消除一次(子系统1),并从而可以同样地被引入到所有的地区变型中。
在一种方案中把本发明所述的方法应用于交换局的运行。软件模块根据事件以及根据交换局的转接状态来确定交换局的功能。软件模块的功能可以借助所谓的状态激发图或者SDL图(说明与描述语言)来进行描述。软件模块指令的执行在一个特定的状态下开始,并且也在一个特定的状态下结束。根据激发或者事件来选择有关状态所属的软件模块。在所选择的软件模块的指令被执行之后,交换局再次处于一个确定的状态并等待新的激发。如果在该扩展方案中也采用转移表格,那么在转移表格中对于每个状态所出现的每个激发恰好都有一个录入项。
在应用于交换局的本发明方法的改进方案中,软件模块也包含有用来调用子程序的跳转指令。在转移表格或者第二转移表格中也标注了子程序的起始地址。在调用子程序之前,借助转移表格来求出子程序的起始地址。通过该措施,子程序也可以被分配给子系统。上述针对软件模块所解释的技术效果也适合于所述的子程序。
此外本发明还涉及用于实施本发明方法的计算机程序和数据处理设备、具有该数据处理设备的模块单元以及含有这种模块单元的交换局。从而,上述技术效果也适合于这些装置。
下面借助附图对本发明的实施例进行详细解释。其中

图1示出了一种状态激发图,图2示出了在程序系统开发阶段的不同版本中的子系统的原理描述,图3示出了在子系统中所包含的软件模块,以及图4示出了基本版本和特定项目版本的开发阶段。
图1示出了用于构造两个用户之间的通信连接的一种状态激发图。在状态Z2中,由用户程序所确定的交换局信令处理来等待用户的拨号,参见方法步骤12。如果在状态Z2中交换局接收到数字,那么该数字则被输出到连接控制器中以用于继续分析,参见步骤14。
在步骤14之后,号码为“01”的时间监视器停止,参见步骤16。接着,根据所接收的数字是否涉及第一数字或者是否已接收了紧接于第一数字之后的数字来执行其他的步骤,以便处理“数字接收”事件,参见步骤18。这些步骤用划线箭头20和22来表示。执行完这些步骤之后,交换局再次返回到状态Z2,参见方法步骤24。
在借助方法步骤14至24所说明的控制过程旁边还考虑了在状态Z2中的其他事件。比如主叫用户A可能在拨号之前再次挂机,参见步骤26。在状态Z2中要处理的其他事件在图1中只进行了简单表示,参见箭头25。如果用户在一个时间界限内没有进行拨号,那么时间监视器“01”的过程就属于该事件。此外,在状态Z2中还必须由连接控制器对拨号者进行识别。
在方法步骤26之后复位时间监视器,参见方法步骤28。其他的方法步骤-譬如断开拨号接收器和断开拨号音-在图1中是用划线箭头30来表示的。在“用户挂机”事件被处理之后—参见步骤26,有关用户连接的信令处理被设置成状态Z1,参见步骤32。这是一种静止状态,其中由用户程序等待从其他功能单元、比如连接控制器到来的信息。
图2的a部分示出了交换局中用户程序的程序系统基本版本的子系统50和52的原理描述。该子系统50在程序系统开发阶段的所有版本中都是相同的。作为软件模块,它具有所谓的STEP TABLE(步骤表格),其中在图2的a部分中示出了步骤表格54。该步骤表格包含有在特定激发时和特定状态中需执行的方法步骤。这样,步骤表格54就包含有由处理器执行的指令,以执行方法步骤14至24,也参见图1。所述的处理器位于连接组件中,其中该连接组件在交换局处构成了连接外部线路的接口。
子系统52包含有转移表格56以及程序部分58。具有如下程序部分的子系统50也被称为子系统1,即该程序部分对于所有的开发阶段版本都是相同的。程序部分58包含有与开发阶段的各版本有关的程序部分。因此它用单独的子系统2来表示。开发阶段的基本版本没有单独的程序部分。因此程序部分58是空的,并用划线来表示。
转移表格56包含有起始地址的录入项,步骤表格在该起始地址处开始。在图2的a部分描绘了这种录入项,参见符号60。其他的录入项用三个点62来表示。当在状态Z2中接收到一个数字时-参见箭头64及图1-,那么就对录入项60进行分析。由处理器读出录入项60,并在录入项60所存储的地址处继续所述的处理。这就是步骤表格54的起始地址,参见箭头66。在执行步骤表格54的指令序列的过程中,是如前所述的那样执行方法步骤14至24,参见图1。然后返回到状态Z2,参见箭头68。
划线70是表示把程序系统分成两个子系统50和52。转移表格56中的录入项60、62具有转接器的功能,借助该功能可以从子系统50或52中把步骤表格选择出来。在基本版本中,转移表格56中的全部录入项都指向子系统50中的步骤表格,见转接位置I。
图2的b部分示出了用户程序子系统80和82的原理描述,其中该子系统是用于程序系统同一开发阶段的另一地区变型。比如图2的b部分所示出的用户程序适合于另一运营商的电信网络。
子系统80(子系统1)是基本版本的子系统50的拷贝。从而,子系统80也包含有步骤表格84,该表格与步骤表格54相同。
子系统82(子系统2)象子系统52一样也同样包含有转移表格86以及程序部分88。假定在其他运营商的子系统中必须在状态Z2出现数字的情况下执行另外的方法步骤,如图1中所示。因此可以不使用步骤表格84的指令序列。为另一电信网络而进行编程的指令序列被存储在步骤表格90中,其中该步骤表格是单独的编程部分88的一部分。如果在状态Z2中接收到了数字,那么转移表格86中的录入项91就由处理器读出来。录入项91象录入项60在转移表格56中一样位于转移表格86中相同的位置。然而录入项91是指向子系统82的程序部分88中的步骤表格90。这样,当在状态Z2中接收到数字时,处理器就读出录入项91,参见箭头92。所述的处理便继续到录入项91所存储的地址上。这是步骤表格90的起始地址,参见箭头94。在处理完步骤表格90的指令序列之后,用户程序被置为状态Z1,参见箭头96。
从而,录入项91也象转接器一样进行动作,借助这种转接器可以在步骤表格84和步骤表格90之间切换。在图2的b部分中“转接器”位于转接位置II,其中该位置指向子系统82中的步骤表格。
在转移表格86中,录入项91旁边还具有用三个点表示的另外录入项98。转移表格86中的录入项91、98的一部分指向子系统80中的步骤表格,而录入项91、98的另一部分则指向子系统82的步骤表格。
在图2的b部分中,划线100是表示把子系统80和82分开。分隔线100表示在相同开发阶段的其他版本中也均具有子系统80。然而不同的是在子系统82方面。这样,对于每个项目都具有自己的转移表格和自己的单独程序部分。
图3示出了在子系统80和82中所包含的转移表格和步骤表格。在子系统82的单独程序部分88中,除步骤表格90外还描绘了一个子程序110。子系统82除转移表格86之外还具有状态激发表格112以及第二转移表格114。状态激发表格112和转移表格86及114被包括在程序系统82的子系统116中。在子系统80中,除步骤表格84外还描绘了步骤表格118和子程序120。
在状态激发表格112中存储了存储器地址值,其中该存储器地址值被分配给特定的状态Z1、Z2和Z3以及特定的事件E1、E2、E3和E4。这种分配是通过一种矩阵表来表示的,其中状态Z1、Z2和Z3分别被分配给一行,而事件E1、E2、E3和E4分别被分配给一列。在相应行和相应列的交点处存储有存储器地址值。比如,状态激发表格112中第二行的第一存储器值被分配给在状态Z2中接收到数字的事件E1,参见符号122。在状态激发表格的该区域标注了存储器单元的地址,而在该存储器单元中存储有录入项91,参见箭头92。录入项91包含有地址值ADR0,其中在该地址值处开始步骤表格90,参见箭头94。状态Z2中的事件E1的处理已经借助图2的b部分进行了解释。
另外在状态激发表格112中还标有一个区域124,当在状态Z3中出现事件E4时由处理器读出该区域。区域124包含有转移表格86的录入项126的存储器地址值。在录入项126中存储有地址ADR1,该地址值为步骤表格118的指令序列的起始地址,参见箭头128。在步骤表格118中示出了汇编指令。MOV表示一种移位指令,借助该指令把数据从某一存储器地址中读出来,并将其写到另一存储器地址中。CALL表示一种跳转指令,在对步骤表格118中的指令进行处理的过程中借助该指令转移到某一子程序。
这样,当进行第一子程序调用时,在处理步骤表格118的指令时首先在转移表格114中读出录入项130,参见箭头132。在录入项130中存储有地址值ADR2,其中该地址值给出了子程序110的指令的起始地址。然后在地址ADR2处对子程序110的指令继续进行指令处理。从而,借助转移表格114来对子程序进行调用。处理完子程序110的指令之后,在步骤表格118中对位于所述子程序的调用指令之后的指令继续进行处理。子程序110被存储在子系统82中,原因是对于不同的版本有不同的子程序。
然后在处理步骤表格118的指令的过程中对子程序120进行子程序调用。在此,首先从转移表格114中读出录入项136,参见箭头137。在录入项136中存储有地址值ADR3,该地址值给出了子程序(120)的指令起始地址。从而借助录入项136来进行子程序(120)的调用,参见箭头138。处理完子程序(120)的指令之后再继续进行步骤表格118中的处理。子程序120包含在子系统80中,原因是对于一个开发阶段的所有版本来说该子程序都是相同的。
从而借助转移表格114对子系统80以及子系统82中的子程序进行了选择。转移表格86是在步骤表格之间进行选择,而在转移表格114中也对步骤表格中的子程序进行了选择。
图4示出了信令程序基本版本在垂直轴140上划分出来的开发阶段V1、V2和V3。在此假设版本V2具有基本版本V1十倍多的业务特征。基本版本V3再次具有基本版本V2十倍多的业务特征。图4的水平方向上针对不同开发阶段示出了地区版本的单独编程部分。地区特有的编程部分I1与基本版本的差别为Δ1。
在版本V2的地区特有程序部分I2的编程中,其出发点是基本版本V2,其方式是通过对基本版本V2与单独编程部分I2之间的差别Δ2进行编程。I1部分的变更没有直接在I2部分中进行,参见箭头142。从而避免了必须对已经变化的I1部分再次进行变更。版本I3的单独程序部分I3再次根据基本版本V3来编制,其方式是根据基本版本V3来对变化部分Δ3来进行编程。
通过使用共同的子系统和单独的子系统,可以避免对变化部分的改变以及对变化部分的多次改变。信令程序的编制、进一步开发和维护被明显简化。
在需要实施改变的多数情况下,子系统1中的修补程序可以在世界范围内没有变化地进行引用。只有当修补程序涉及如下程序部分,即该程序部分在特定项目中已由子系统2的一部分代替,那么就需要编制第二修补程序,以便把第一修补程序的功能性转换成子系统2的一部分。但需要编制第二修补程序的情况出现得相对较少,原因是子系统2比子系统1包含少得多的指令。
权利要求
1.用于运行数据处理设备的方法,其中至少有一个处理器来执行程序系统的指令,该程序系统包含至少两个子系统(80、82),这两个系统确定了数据处理设备的给定功能,并且可以基本相互独立地编制,子系统(80、82)包含有用于执行一种功能或子功能的软件模块(90、118),第一子系统(80)包含有需要在程序系统和该程序系统的另一版本中同样地执行的功能软件模块(118),以及其中,第二子系统(82)包含有需要在两个程序系统中不同地执行的功能软件模块(90)。
2.如权利要求1所述的方法,其特征在于,在程序系统的转移表格(86)中存储所述软件模块(90,118)的起始地址(ADR0,ADR1),在执行软件模块(90,118)的指令之前,借助转移表格(86)来求出软件模块(90,118)的起始地址(ADR0、ADR1)。
3.如前述权利要求之一所述的方法,其特征在于,第一子系统(80)的指令被存储在数据处理设备存储器的第一地址范围的存储器单元中,而且/或者第二子系统(82)的指令被存储在所述存储器的第二地址范围的存储器单元中。
4.如前述权利要求之一所述的方法,其特征在于,在转移表格(86)中针对不同的事件(E1至E4)而分别把在出现所述事件(E1至E4)时所要执行的软件模块(90、118)的起始地址(ADR1至ADR3)存储在数据处理设备存储器的存储器单元中,其中这些事件是在运行数据处理设备过程中出现的,并且,根据事件(E1至E4)的种类来求出如下存储器单元(90、126)的地址,即在该存储器单元中存储了所要执行的软件模块(90、118)的起始地址(ADR1、ADR2)。
5.如前述权利要求之一所述的方法,其特征在于,转移表格(86)是第二子系统(82)的一部分。
6.如前述权利要求之一所述的方法,其特征在于,第一子系统(80)包含有至少一种用于如下功能的辅助软件模块(84),即第二子系统针对该功能而包含有不同于所述辅助软件(84)的软件模块(90),并且,在转移表格(86)中存储所述不同的软件模块(90)的地址(ADR0),而不是辅助软件模块(84)的地址。
7.如前述权利要求之一所述的方法,其特征在于,该方法应用在交换局中,并且,软件模块(90、118)根据事件(E1至E4)并根据交换局的转接状态(Z1至Z3)来确定交换局的功能。
8.如前述权利要求7所述的方法,其特征在于,软件模块(80)至少包含有用于调用子程序(110)的跳转指令,在转移表格(114)中标注了子程序(110)的起始地址(ADR2),在执行子程序(110)之前,借助转移表格(114)来求出子程序(110)的起始地址(ADR2)。
9.用于执行如前述权利要求之一所述的方法的数据处理设备,具有用于存储程序系统指令的存储器,其中该程序系统包含有至少两个子系统(80、82),而这些子系统确定了数据处理设备的给定功能,并且可以基本相互独立地进行编制,具有包含在子系统(80、82)中的、用于执行一种功能或子功能的软件模块(90、118),具有至少一个用于执行指令的处理器,还具有存储在存储器中的转移表格(86),在该转移表格中存储了软件模块(90、118)的起始地址(ADR1、ADR2),其特征在于,第一子系统(80)包含有需要在程序系统中以及在该程序系统的另一版本中相同地执行的功能软件模块(118),第二子系统(82)包含有需要在两个程序系统中不同地执行的功能软件模块(90)。
10.用于交换局的模块单元,其特征在于如权利要求9所述的数据处理设备。
11.交换局,其特征在于如权利要求10所述的模块单元。
12.具有可以由计算机的处理器执行的指令序列的计算机程序,其特征在于,在执行指令序列过程中促使计算机执行如权利要求1至8之一所述的步骤。
全文摘要
本发明涉及一种用于运行数据处理设备的方法,其中由处理器来执行程序系统的指令。该程序系统由两个子系统(80、82)组成。第一子系统(80)包含有需要在程序系统和该程序系统的另一版本中同样地执行的功能软件模块(118)。第二子系统(82)包含有需要在两个程序系统中不同地执行的软件模块。
文档编号G06F9/44GK1390327SQ00814388
公开日2003年1月8日 申请日期2000年8月18日 优先权日1999年8月23日
发明者M·埃德, K·洛伊特纳, S·里德尔, B·茨廷格 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1