为远程通信交换机建立软件的方法

文档序号:7567522阅读:267来源:国知局
专利名称:为远程通信交换机建立软件的方法
技术领域
本发明涉及建立用于控制复杂电子系统的软件的方法,更具体地涉及建立用于控制远程通信交换机的软件的方法。


图1(现有技术)是大致说明在远程通信系统中所使用的现代远程通信交换机102的框图。交换机102包括至少一个交换机软件模块110,交换机硬件(HW)108,多个到交换机102的数据输入端104,以及多个来自交换机102的数据输出端106。交换机硬件108允许以非常高的数据速率传送数据。
交换机软件模块110向交换机用户软件100提供交换机102的逻辑视图。逻辑视图向交换机用户提供多个格式(每个格式指示如何在交换机102中接收和发送数据),以及连接类型(例如,点-对-点,点-对-多点,多点-对-点,或者多点-对-多点)。后文中,交换机的逻辑视图称为承载业务处理程序(BSH)。BSH也使得具有交换机硬件108有限知识的交换机用户能够控制交换机硬件108。
在数据输入端104以一种特定格式接收输入数据,并且在数据输出端106以另一特定格式发送数据。交换机用户软件100经过用户接口112与交换机102通信。交换机用户软件100指定将在一个或多个数据输入端104以第一种特定格式接收的数据交换到一个或多个数据输出端106,并且以第二种特定格式发送。特定格式的某些例子是异步传输模式-虚拟通路(ATM-VP),异步传输模式-虚拟通道(ATM-VC),同步传输模式-64千位每秒(STM-64k),和同步传输模式-2兆位每秒(STM-2M)。
ATM是基于固定长度53-字节单元的单元-交换技术。所有宽带传输,不管是音频、数据、图象还是视频,都被分为单元系列,并经过包括由ATM交换机连接的链路的ATM网络传送。每条ATM链路包括一恒定流的ATM单元间隙,在间隙中放入传输,或者如果未被使用则闲置。ATM最显著的优点是它均匀地处理业务,允许一个网络满足许多宽带业务的需要。考虑到ATM对传输和交换两者的灵活性和适用性,1988年国际电话电报咨询委员会(CCITT)国际标准化组织选定它来实现宽带综合业务数字网络(B-ISDN)。在ATM-VP中,交换是通过利用虚拟通路标识符(VPI)值来实现的。相反,ATM-VC交换是通过利用VPI值和虚拟通道标识符(VCI)值两者来实现的。
STM是依赖于对于某个基准以比如帧模式这样的规则的和固定的模式发生的信息的传输和交换方法。
远程通信交换机是根据交换机硬件所支持的交换格式的类型而分类的。例如,支持STM格式的交换机称为“STM交换机”,而支持ATM格式的交换机称为“ATM交换机”。在现代远程通信业中,交换机被建立来支持多种特定的格式。例如,ATM交换机可以既支持ATM-VP特定格式也支持ATM-VC特定格式,STM交换机既支持STM-64k也支持STM-2M。
图2(现有技术)是显示具有交换机软件和交换机硬件的远程通信交换机306的框图。交换306包括类型A的交换机硬件(SH-A)314,和交换机软件单元(SS1)308、(SS2)310和(SS-1-2-A)312。交换机306也支持类型1的BSH(BSH1)和类型2的BSH(BSH2)(未示出)。软件单元SS1308和SS2310分别依赖于BSH1和BSH2。软件单元SS-1-2-A312依赖于BSH1、BSH2和SH-A。用户接口UI-BSH1302和UI-BSH2304分别支持BSH1和BSH2,并且向用户提供在交换机306上选择BSH1或BSH2的能力。
在现代远程通信业中,软件单元SS1308、SS2310和SS-1-2-A312是仅对在具有特定类型的硬件且实现至少一种BSH的交换机中的一种交换机(ATM或STM)上进行操作而建立的。换言之,软件单元SS1308、SS2310和SS-1-2-A312不是从通用公用软件模板(UCST)建立的。
对于远程通信交换机的软件单元的当前设计有几点不利。一种不利来自于对依赖于具体类型的BSH或交换机硬件的每个软件单元的更新或修改。例如,对交换机硬件的修改必须反映到对依赖于交换机硬件的每个软件单元的更新,而且对具体BSH的修改必须反映到对依赖于BSH的每个软件单元的更新。当前软件单元设计的另一不利来自于不同组的开发人员建立每种类型交换机的软件单元。在建立软件单元期间,不同组的开发人员经常使用不一致的术语、概念和结构。软件单元的非一致性造成在设计与软件单元接口的交换机用户软件时增加了困难。
具有能够建立对于多种类型的交换机硬件和BSH的公用软件单元的通用公用软件模板(UCST)有显著优点。本发明提供这样一种UCST。
本发明的一个目的在于提供一种不需要重复更新或修改的能够设计和建立公用功能性软件单元的通用公用软件模板(UCST)。
本发明的另一目的在于建立自动反映对UCST的任何修改的公用功能性软件单元。
本发明仍有一个目的在于降低设计、建立、维护和更新公用功能性软件单元所用的时间和费用。时间和费用的降低是由于设计人员只需熟悉UCST而不需熟悉各种公用功能性软件单元。
本发明还有一个目的在于将软件文档减少到用于实现所有公用功能性软件单元的单个集合的文档。单个集合的文档避免了术语和短语使用中的不一致和混乱。
参照附图,结合相应说明,将更好地理解本发明,并且其多个目的和优点对于熟练的技术人员将会更加明显。
图1(现有技术)是大致说明在远程通信系统中使用的现代远程通信交换机102的框图;图2(现有技术)是说明具有交换机软件和交换机硬件的远程通信交换机的框图;图3是示出本发明方法的功能性框图;图4是大致说明在本发明最佳实施方式中用于建立公用功能性软件单元的操作的流程图;图5是更详细地说明图4的建立通用公用软件模板(UCST)、参数定义文档(PDD)和抽象数据类型定义集合(CADTD)的步骤的流程图6是更详细地说明图4的建立公用功能软件单元(CS)的步骤的流程图;图7是说明包括根据本发明的指教从通用公用软件模板(UCST)和抽象数据类型定义集合(CSDTD)建立的公用功能软件单元的远程通信交换机的框图。
图3是示出本发明方法的功能性框图。在领域分析542中研究所有类型的远程通信交换机502。领域分析542得出对交换机502的BSH和HW的所有可能组合的公用概念、术语、行为和功能。公用行为和功能是在通用公用软件模板(UCST)548、相关联的参数定义文档(PDD)544和相关联的抽象数据类型定义集合(CADTD)546中实现的。PDD544包括在UCST548中所用的参数的章和节。CADTD546包括多个与UCST548的参数相关联的抽象数据类型定义。实现UCST548和CADTD546的计算机代码具有指示BSH依赖性、HW依赖性或者BSH和HW两者依赖性的前缀。利用CADTD546的子集编译和测试UCST548。在已经编译和测试UCST548之后,从UCST548和CADTD546建立BSH和HW不同组合的多个公用功能软件单元(CS)。公用功能软件单元(CS)是通过从UCST548和CADTD546复制相关联的计算机代码来建立的。利用标识CS将在其中运行的交换机所支持的BSH和HW的组合的前缀替换存在于所复制的计算机代码中的前缀。例如,可以通过从UCST548和CADTD546复制相关联的计算机代码来建立公用功能性软件单元(CS)555。利用标识CS555将在其中运行的交换机的BSH和HW的前缀替换存在于所复制的计算机代码中的前缀。
图4是大致说明在本发明最佳实施方式中用于建立公用功能性软件单元的操作的流程图。首先,在步骤604标识一组远程通信交换机的承载业务处理程序和硬件类型的所有可能组合。接着,在步骤605,对以上所标识的承载业务处理程序和硬件进行领域分析。在步骤606从领域分析建立通用控制软件模板(UCST)、参数定义文档(PDD)和抽象数据类型定义集合(CADTD)。在步骤608,从UCST和CADTD建立公用功能性软件单元。下面更详细地说明以上各步骤。
在步骤604,标识一组交换机的承载业务处理程序和不同硬件类型的所有组合。例如,对于一特定组交换机,可能存在承载业务处理程序1、2、3和4以及硬件类型A、B、C和D。上述承载业务处理程序和硬件类型的可能组合可以如以下表II所示存在。
表II
因此,承载业务处理程序1在类型A或C的硬件上运行,承载业务处理程序2在类型A的硬件上运行,承载业务处理程序3在类型B或D的硬件上运行,承载业务处理程序4在类型B或D的硬件上运行。
在步骤605,进行领域分析,以确定在步骤604所确定的组合的公用功能和行为。存在几种可以采用的领域分析技术。一种领域分析技术一般包括(1)召集具有每种承载业务处理程序和硬件类型知识的专家;以及(2)定义公用概念和术语。
图5更详细地示出在图4步骤606建立UCST、PDD和CADTD的步骤的流程图。首先,在步骤706建立描述公用功能和术语的文档。在建立UCST、PDD和CADTD的过程中,不断更新该文档。在本发明的最佳实施方式中,在步骤708使用诸如Borland C++(Borland国际公司出品)或Visual C++(Microsoft公司出品)这样的面向对象的编程语言来定义和实现对象,每个对象实现公用功能的一个子集。后文中,面向对象的编程语立是指C++。
在步骤712,为每个对象建立用于实现公用功能的一个子集的部件功能。一个部件功能是由一个名字和可选变元表表示的独立处理操作。部件功能与C++中为一个类定义的函数类似并与常规软件系统中宣称的过程和函数相近。
在步骤716,确定和定义所定义对象的参数。一个参数是一个当唤醒部件功能时由所提供的变量替换的符号。每个参数与具体数据类型定义相关联。从领域分析以及相关联的变元表建立的每个部件功能代表一个公用功能性概念。因此,每个部件功能包括相同的名字和相同个数的变元,而不管所用的BSH和硬件类型的组合。
每个变元具有一个由参数定义的相关联的数据类型定义。每个变元的参数也对BSH和HW的每种组合具有相同的名字。然而,BSH和HW的不同组合需要不同的数据类型定义。因此,参数所定义的数据类型定义对其所需的BSH和HW组合也必须不同。例如,提供具体BSH的ATM-VC交换机可能要求一个称为通道号(ChannelNumber)的参数具有(整数,整数)(即,(Integer,Integer))的数据类型定义,分别指示VPI和VCI,而实现相同BSH的ATM-VP交换机可能要求通道号具有(整数)(即,(Integer))的数据类型定义,指示VPI。
在步骤718建立PDD。PDD包括一个参数名字列表,对于BSH和HW的每种组合具有相关联的数据类型定义。在步骤722,将前缀加到每个参数上。前缀是为每个所标识的BSH、HW类型和BSH与HW类型的组合而选择的。每个所选择的前缀在保持能够适当标识BSH、HW类型或BSH与HW的组合的同时必须尽可能短。每个所选择的前缀也必须具有相同长度。另外,使用一组三个模板前缀来标识一个参数是否是(1)仅依赖于BSH;(2)仅依赖于HW;或者(3)依赖于BSH和HW两者。也要求模板前缀具有与所选择的前缀相同的长度。再者,每个模板前缀是专用的,并且不可以在部件功能的计算机代码(包括注释)内的任何其他组合中使用。例如,表I的模板前缀可以是BSH、HWR和BHW,分别代表仅依赖于BSH、仅依赖于HW和依赖于BSH及HW的参数。
在步骤722将所选择前缀加到PDD中的每个参数。然而,在增加所选前缀之前,将每个参数分类为PDD内的各节。这些节如下“类属”、仅仅“BSH依赖”、仅仅“HW依赖”和“BSH及HW依赖”。对于所有类型的BSH和HW都具有相同数据类型定义的参数被分类并放置在“类属”节中。仅依赖于BSH并对所有类型的BSH都具有相同数据类型定义的参数被分类并放置在“BSH依赖”节中。仅依赖于HW并对所有类型的HW都具有相同数据类型定义的参数被分类和放置在“HW依赖”节中。依赖于BSH和HW并对所有类型的BSH和HW都具有相同数据类型定义的参数被分类和放置在“BSH和HW依赖”节中。另外,对每种类型的BSH、HW和BSH与HW的组合,建立单独的章。
类属参数没有增加到其名字中的前缀。依赖于BSH的参数具有增加到其名字的指示BSH依赖性的前缀。例如,用于通过交换机建立连接的部件功能可以要求一个称为地址(Address)的参数,表示为地址=[整数,通道号,整数,通道号](即,Address=[integer,ChannelNumber,integer,ChannelNumber])。地址参数包括交换机的输入的数字Id、输入通道号、交换机的输出的数字Id和输出通道号。没有前缀增加到代表交换机的输入和输出的数字Id的参数上,因为它们是类属的。然而,通道号参数对于每种BSH类型具有不同的定义,因此,将前缀“BSH”加到该参数的名字中。另外,地址参数的定义依赖于BSH的类型,也具有增加到参数名字的前缀“BSH”。具有增加的前缀的地址类型定义可以表示为“BSH地址[整数,BSH通道号,整数,BSH通道号]”(即,BSHAddress[integer,BSHChannelNumber,integer,BSHChannelNumber])。因此,类型定义BSH地址(BSHAddress)是依赖于BSH的,对于BSH和HW的所有组合具有相同的数据类型定义。
依赖于HW的参数具有增加到其名字的指示HW依赖性的前缀。依赖于BSH和HW的参数具有增加到其名字的指示BSH和HW依赖性的前缀。依赖于BSH并对每种BSH类型具有不同数据类型定义的所有参数被分类并放置在PDD中每种类型BSH的单独节中。例如,表I中的每个BSH类型BSH1-BSH4对于依赖于它们的参数在PDD中具有单独的节。依赖于HW并对每种HW类型具有不同数据类型定义的所有参数被分类并放置在PDD中每种类型HW的单独节中。例如,表I中的每个HW类型A-D对于依赖于它们的参数在PDD中具有单独的节。依赖于BSH和HW并对BSH和HW的每种组合具有不同类型定义的每个参数被分类并放置在PDD中对于每种组合的单独节中。例如,表I中标以“X”的每种BSH和HW组合对于依赖于它们的参数在PDD中具有单独的节。
在步骤724,定义用于测试UCST的模板参数。对于BSH和HW的不同组合具有不同定义的每个参数被定义为模板参数。模板参数以与以上结合依赖于BSH和HW的参数所述的方式相同的方式接收一个前缀。依赖于BSH、HW及BSH和HW的模板参数被分类并放置在PDD中对于每种依赖性的节中。
在步骤728建立CADTD。在本发明的最佳实施方式中,利用C++建立CADTD。然而,对于本领域内熟练的技术人员而言,显然可以采用任何面向对象的编程语言。面向对象的编程语言向用户提供建立用户定义的数据类型(后文中称为抽象数据类型(ADT))的能力。ADT可以包括其他ADT和/或已经由编程语言定义的基本数据类型(例如,整数(integer)、浮点(float)、长整数(long integer)和双长型(double))。PDD中的每个参数由一个ADT或基本数据类型定义。
在步骤750,确定是否利用模拟模板实现UCST。如果编程语言不支持模板,则通过在步骤730向文档中的所有对象增加前缀来实现模拟模板。否则,对文档中的所有对象建立语言模板。诸如C++提供的那样的模板可以用来建立类属部件功能,这些功能具有独立于任何数据类型定义的参数。C++编译器利用该类属部件功能(模板)产生实现每个ADT唯一组合的计算机代码(非类属部件功能)。换言之,C++编译器从事在建立对于ADT的每个唯一组合的各部件功能中所涉及的工作。
在步骤730,将模板前缀增加到文档中所有对象的名字上(即,未曾使用的模板)。这与将前缀增加到参数上的处理类似。将对象分类为或者是类属的、依赖于BSH的、依赖于HW的、或者是依赖于BSH和HW的。将一个前缀增加到代表每个对象分类的对象名字上。在步骤732定义UCST检测实例。对UCST中的每个单独对象定义检测实例,以便验证该对象根据其设计发挥作用。
在步骤736建立包括UCST的计算机代码。根据文档(它包括模板前缀和CADTD模板前缀)建立实现UCST的所有对象。在本发明最佳实施方式中,用C++将对象实现为类,但是对于本领域内熟练的技术人员而言,能够采用任何面向对象的计算机编程结构。另外,在步骤736建立测试UCST所需的计算机代码。在步骤738,对UCST进行测试。UCST是根据先前定义的每种检测实例得以测试的。
图6是更详细说明图4中在步骤608建立CS的步骤的流程图。建立CS时,首先在步骤804确定CS将在其上运行的交换机的BSH和HW的组合。在步骤806,从UCST复制用于实现CS的计算机代码,并且复制相关联的CADTD子集。该相关子集包括是类属的、依赖于BSH的、依赖于HW的所有相关联的ADT,以及专用于BSH和HW组合的ADT。在步骤808,利用BSH和HW组合的前缀替换所复制的代码中的模板前缀。在已经替换了所复制的代码中的前缀之后,在步骤810保存(存储)所复制的代码。在步骤812,将所复制的代码编译为能够在远程通信交换机上执行的可执行格式。
对UCST的维护直接反映到从其建立的CS中。例如,在UCST中修正了一个错误或者进行了一次更新,则该更新或修正自动地反映到之后从UCST建立的所有CS中。
图7是说明包括根据本发明的指教从UCST和CADTD建立的公用功能软件单元CS1A408和CS2A410的远程通信交换机406的框图。该远程通信交换机406包括公用功能软件单元CS1A408和CS2A410,专用软件单元SPS-1-2-A,和类型A的硬件414(SH-A)。交换机406支持类型1和2的承载业务处理程序(BSH1和BSH2)。CS1A408依赖于BSH1和类型A的硬件。CS2A410依赖于BSH2和类型A的硬件。专用软件单元SPS-1-2-A412依赖于BSH1、BSH2和类型A的硬件。
因此认为根据以上所述,本发明的工作和结构是清楚的。尽管所示和所述的方法是较佳的,但是显然易于做出各种变化和修改而不背离如权利要求所限定的本发明的实质和范围。
权利要求
1.为多个远程通信交换机中的一个指定的交换机建立公用功能性软件单元的方法,所述多个远程通信交换机中的每个具有特定硬件类型并技术特定的承载业务处理程序,所述方法包括下述步骤建立包括多个公用功能性软件单元的通用公用软件模板,所述多个公用功能性软件单元中的每一个具有多个模板前缀和至少一个参数;建立一个抽象数据类型定义集合,所述集合包括每个所述参数的数据类型定义;从所述通用公用软件模板复制所述多个公用功能性软件单元中的一个,所述所复制的公用功能性软件单元与所述指定的远程通信交换机的所述特定承载业务处理程序和所述特定硬件类型兼容;以及用标识所述指定的远程通信交换机的所述特定承载业务处理程序和所述特定硬件类型的所选择的前缀替换所述所复制的公用功能性软件单元中的多个模板前缀。
2.权利要求1的方法,还包括步骤建立包括每个所述参数的至少一个定义的参数定义文档。
3.权利要求1的方法,其中所述建立通用公用软件模板的步骤包括步骤标识多个组合,所述多个组合中的每一个包括所述多个承载业务处理程序之一和所述多个硬件类型之一;标识存在于所述多个组合的每一个中的多个公用功能;以及建立多个类, 以实现所述多个公用功能的每一个;
4.权利要求3的方法,其中所述建立多个类的步骤包括步骤将一个模板前缀附加到所述多个类中的每一个。
5.权利要求4的方法,其中所述建立抽象数据类型定义集合的步骤包括步骤将一个独立的模板前缀附加到所述数据类型定义的每一个,所述独立模板前缀独立于所述多个承载业务处理程序和所述多个硬件类型。
6.权利要求5的方法,其中所述建立抽象数据类型定义集合的步骤包括步骤将第一从属模板前缀附加到所述数据类型定义的每一个,所述第一从属模板前缀依赖于所述多个承载业务处理程序之一,并独立于所述多个硬件类型。
7.权利要求6的方法,其中所述建立抽象数据类型定义集合的步骤包括步骤将第二从属模板前缀附加到所述数据类型定义的每一个,所述第二从属模板前缀依赖于所述多个硬件类型之一,并独立于所述多个承载业务处理程序。
8.权利要求7的方法,其中所述建立抽象数据类型定义集合的步骤包括步骤将第三从属模板前缀附加到所述数据类型定义的每一个,所述第三从属模板前缀依赖于所述多个组合之一。
9.权利要求6的方法,其中所述替换所述所复制的公用功能性软件单元中的多个模板前缀的步骤包括步骤用标识所述指定交换机的所述特定承载业务处理程序的第一所选前缀替换所述第一从属模板前缀中的每一个。
10.权利要求7的方法,其中所述替换所述所复制的公用功能性软件单元中的多个模板前缀的步骤包括步骤用标识所述指定交换机的所述特定硬件类型的第二所选前缀替换所述第二从属模板前缀中的每一个。
11.权利要求8的方法,其中所述替换所述所复制的公用功能性软件单元中的多个模板前缀的步骤包括步骤用标识所述指定交换机的所述特定硬件类型和所述特定承载业务处理程序的第三所选前缀替换所述第三从属模板前缀中的每一个。
12.为多个远程通信交换机建立通用公用软件模板的方法,所述多个远程通信交换机中的每一个具有特定硬件类型并支持特定承载业务处理程序,所述方法包括步骤标识多个组合,所述多个组合中的每一个包括所述多个承载业务处理程序之一和所述多个硬件类型之一;标识存在于所述多个组合的每一个中的多个公用功能;以及建立多个类,以实现所述多个公用功能的每一个。
13.权利要求12的方法,其中所述建立多个类的步骤包括步骤将一个模板前缀附加到所述多个类中的每一个。
14.权利要求13的方法,其中所述多个类中的每一个包括至少一个参数。
15.权利要求14的方法,其中所述建立多个类的步骤包括步骤建立抽象数据类型定义集合,所述集合包括每个所述参数的数据类型定义。
16.权利要求15的方法,其中所述建立抽象数据类型定义集合的步骤包括步骤将一个独立的模板前缀附加到所述数据类型定义的每一个,所述独立模板前缀独立于所述多个承载业务处理程序和所述多个硬件类型。
17.权利要求16的方法,其中所述建立抽象数据类型定义集合的步骤包括步骤将第一从属模板前缀附加到所述数据类型定义的每一个,所述第一从属模板前缀依赖于所述多个承载业务处理程序之一,并独立于所述多个硬件类型。
18.权利要求17的方法,其中所述建立抽象数据类型定义集合的步骤包括步骤将第二从属模板前缀附加到所述数据类型定义的每一个,所述第二从属模板前缀依赖于所述多个硬件类型之一,并独立于所述多个承载业务处理程序。
19.权利要求18的方法,其中所述建立抽象数据类型定义集合的步骤包括步骤将第三从属模板前缀附加到所述数据类型定义的每一个,所述第三从属模板前缀依赖于所述多个组合之一。
全文摘要
本发明是一种建立适于控制远程通信交换机的公用功能性软件单元(555)的方法。公用功能性软件单元(555)是通过对所有现有远程通信交换机(502)进行领域分析(542)、然后对交换机的承载业务处理程序(BSH)和硬件类型的所有可能组合的公用概念、术语、行为和功能进行标识而得以建立的。公用行为和功能是利用通用公用软件模板(UCST)(548)、相关联的参数定义文档(PDD)(546)和相关联的抽象数据类型定义集合(CADTD)(546)实现的。对UCST进行编译并用CADTD的子集进行测试。在编译和测试UCST之后,可以从UCST和CADTD建立BSH和HW的不同组合的多个公用软件功能单元(CS)。
文档编号H04Q3/00GK1150844SQ9519359
公开日1997年5月28日 申请日期1995年6月7日 优先权日1994年6月14日
发明者富莱吉克·斯范菲尔德 申请人:Lm爱立信电话有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1