在电话交换机中存贮分析数据的方法 本发明涉及按照所附的权利要求1前序的一种用于在电话交换机中存贮分析数据的方法。本发明地方法特别是用来存贮在电话交换机的数字分析中使用的数据结构,但是正如下面详细解释将会表明的那样,相同的原理也可用来存贮执行其他分析的电话交换机数据。
当电话网的用户进行一次呼叫时,该呼叫的目的地(用户B)就根据拨号的数字组合(即电话号码)来确定。电话网的每个节点通过分析这些数字来找出输入呼叫的目的地。在下面称为数字分析的这个过程是电话交换机的一个功能部分,它响应于一个已知的电话号码,并恢复相应的目的地。
在电话交换机中(例如在申请人的DX200中)数字分析是基于一个数据结构,其中记录组成一个有层次的树结构。例如每个记录包括16个信息组,每个相应于一个确定的电话按键(0,1,2,…9,*,#等)。一个单独的信息组或者是空的(即它没有使用因而不包含什么),或者包含一个指针。该指针(实际上它是一些二进制数)可能指向后面的记录,或是指向数字分析结果的一个目的地。一个空的信息组实际上意味着对于相应的电话按键没有执行数字分析。
图1示出上述原理,一个数据结构由几个记录11组成,每个包含16个信息组,它们用参考符号0,…9,a,…f作为标志。例如,为电话号码408178而执行的分析恢复目的地D,而为电话号码504178而执行的分析恢复目的地E。该分析的进行是由树结构中某一时刻一个拨号的数字开始,检查相应于拨号数字的信息组的内容,并且进行到由该信息组包括的指针所指向的记录,检查在这个记录中相应于后面数字的信息组的内容等等。对应于要检查的数字的信息组最后提供分析的结果(目的地)。
现在的一个问题就是用于数字分析的数据结构的规模趋于增长成非常大并要求交换机中有很大的存贮容量。其原因就是例如电话交换机容量的增大,电话交换机提供了新的业务,特别是话务员使用随意(即无层次)编号的愿望。
在现有技术中,层次结构已用于编号,由此在电话网的每个节点中目的地可仅用整个电话号码的一部分来确定。编号的现有技术方法和由于随意编号产生的问题示于图2…4。图2表明一个中转交换机21,它经过互连线路连接到本地交换机22和23,而用户设备SD经过用户线路连接到本地交换机。这个例子包含总数为1000的用户线路。我们假定位于中转交换机21区域内的用户的电话号码是在0…999范围内,电话号码在000……199范围内的用户连接到本地交换机22,而电话号码在200……999范围内的用户连接到本地交换机23。因此,用于中转交换机21中数字分析的数据结构类似示于图3中的结构,它包含一个记录31,它的头两个信息组指向本地交换机22,信息组2…9指向本地交换机23而信息组a…f是空的。在此情况下,数据结构是非常简单的,为了使一个呼叫能在中转交换机中正确地发送,在那里只需分析电话号码的第一个数字。
我们现在假定一个电话号码是000的用户,从本地交换机22的区域移到本地交换机23的区域,而他的电话号码维持不变。因此,情况就类似图4所示,即具有电话号码000和200…999的用户位于本地交换机23的区域内。中转交换机的树状数据结构在此情况下生长了一个新分支(记录32和33)如图5所示。如果某些其他用户从一个本地交换机的区域移到另一区域而他的电话号码维持不变,则另外新的分支将生长到树上。如果用户号码是随机地分布在本地交换机之间,电话号码的每个数字必须单独地分析。在此情况下,数据结构包含(在这个实例的情况)111个记录,即如同对应于图2和图3的层次结构中的111倍。
由上述可见,转换到随意(无层次)编号会产生用于数字分析的数据结构的巨大扩展,因而对存贮器产生了比以前在网络节点(交换机)中更要大得多的要求。可以通过增加存贮器这样直接的方法来试图解决这个问题,可是在长期运行中,这总不是一个实际的解决方案。
另一可能的解决方案是建立一个集中式的数据库(例如类似GSM移动通信网的HLR(本地位置寄存器)的一个数据库),网络的节点经过一个高速信令链路发送查询信号到那里。可是这类集中式的数据库要求网络作很多改变,因而是一个很昂贵的解决方案。因此,例如对于希望提供新业务的电话公司在不购置任何大型设备的条件下来实行随意编号不是一个合宜的解决方案。引入一个集中式数据库也不能消除实际问题,而仅是将问题转移到更容易解决的其它(集中式的)地方。
本发明的目的是消除上述问题,并提供一种解决方法,例如借助它就可以不需要不断地增加存贮器或购买其它设备来实现随意编号。利用本发明的方法可实现此目标,这个方法的特点就是权利要求1的特征部分中所描述的内容。
本发明的思想是压缩在电话网的节点(电话交换机)中用于分析的数据结构,这是通过将该结构的每个层次中相同的记录综合成一个记录,并且通过转换已经指向来自结构其他层的删除记录的所有指针使得它们指向上述的一个记录来实现的。
由于本发明的解决方案所要求的存贮容量可以根本性的减少,或者说更多的数据可以存贮在相同的存贮容量中。所得到的压缩因子取决于要分析的电话号码的数(N)和结果(目的地)的数(R)之比,使得比例N/R越大,压缩因子越好。因此,当电话号码的数显著地超过了目的地的数时(这是正常情况)用本发明就得到了非常好的压缩效果。
下面,参考按照附图6-11的实例将更详细地说明本发明及其优选的实施例,其中,
图1表明当使用一个常规的层次编号时,用于电话交换机中数字分析的数据结构,
图2表明当使用层次编号时一个中转交换机的区域,
图3表明用于图2的中转交换机中数字分析的数据结构,
图4表明对于常规层次编号作为一个例外时图2的情况,
图5表明用于图4中转交换机中数字分析的数据结构
图6表明一个未压缩的电话交换机的数据结构,
图7表明部分压缩的图6的数据结构,
图8表明完全压缩的图6的数据结构,
图8b示出与本发明的方法相连系的位屏蔽的使用,
图9示出在常规情况下提供一个外加信息组的记录,
图10示出按照本发明的情况装有一个外加信息组的记录,以及
图11表明利用一个按照本发明的优选实施例的外加压缩相位移去的冗余的数据文件。
在本发明的方法中,用于数字分析的树状数据结构首先被分为层,每层由一组那样的记录组成,它们与数字分析结果的最大距离相同。如果存贮在数据结构中所有分析的最大长度是n,则树将有n层。每层含有一个或多个记录。图6示出这些层的组成。记录D,E,F位于零层(0)(因为它们的信息组仅指向分析的结果X),记录B和C位于一层,而记录A位于二层(树的根永远位于最后一层)。
按照本发明数据结构可压缩如下。起始过程发生在最后一层(或零层)。如果该层的多于一个的记录是相同的,换句话说,它们对一个电话号码(即对应的按键)的每个单独数提供相同的结果,则它们将会合并为一个记录。在合并过程中,一个保留的记录是从要合并的记录中选出,其它的记录被删除,而来自后面(上面)各层(一层,二层等)的已经指向删除记录的所有指针要改变使得它们指向保留的记录。在图6实例的情况下,上述方法意味着零层的记录D,E和F(已发现它们是相等的,因为相等的信息组提供相同的结果)被合并,从而一个保留的记录例如记录D首先被选出。记录E和F被删除,已指向它们的那些指针(即记录C信息组5的指针和记录A信息组6的指针)被改变,使它们指向记录D,此后,情况类似于图7中所示。
当所有可能的合并在最低层完成后,可以进行到下一层并执行相应的办法。此后,再进行到下一层。这样继续直到得到树的根为止。在此阶段数据已被压缩。在图6和图7实例的情况下,因此在零层后进行到一层,在这里发现记录B和C是相同的。记录B被选为保留的记录,所以记录C被删除,而从上层来的已指向它的指针(即记录A信息组7的指针)被改变,使它们指向记录B。因为没有要合并的其它记录,就可以进行到下一层,那就是结构的根,因此压缩工作完成。用这种方法完成的结果示于图8。记录的数已减少到原来数的一半。
如果人们按照上述方法运作,用于数字分析的数据结构就被转换为一个定向的非循环的图(DAG)。(该图是用于网络理论中的一个概念,它包含一组节点和一组连接这些节点的边线。例如,节点可代表记录而边线可代表指针。如果它的边线是节点的编组对则这个图是定向的。如果没有形成一个环路的边线序列,则这个图是非循环的。
在上述过程中,相同的记录可以多种方式来搜寻。最直接的方法就是成对地(信息组对信息组)相互比较记录。一个更先进和一个更快(但要实现就更复杂)的方法是将记录按字典式地分类:首先选择对第一个数提供相同结果的所有记录,然后从那些记录中选出对第二个数提供相同结果的记录等等,这样继续一直延伸到最后一个数,保留的记录是相同的因而它们可被合并。
在合并过程中,必须检查位于下层的记录,必须搜寻对于删除记录的标记,并且必须用对于保留记录的新标记来代替它们。如果每个记录有一个位屏蔽,它的大小对应于可能的位数的数目,则这个操作可加速进行。例如在上述的实例中,一个记录包含16个信息组(16个可能的按键),位屏蔽的大小是16比特。在位屏蔽中,例如,位1在位置i将指示对应于位置i的数有一个分析结果。位0在位置i将指示对应于位置i的数没有分析结果(即对应的信息组不包含指针)。利用一个位屏蔽,操作可以仅瞄准现有的分析,而其它的操作可被忽略,这就保证了操作的最大速度。位屏蔽示于图8b,那里示于图8的所有记录分别有一个对应的位屏蔽MA,MB和MD,那里指示存在有分析结果的屏蔽位用参考符号M来标记,而其它的位的位置是留下的空位。
如果人们知道对于每个记录指向它的记录数(我们称这些记录为“本源”),则以上说明的数据结构的压缩和维护就得到简化。在本发明的一个优选实施例中,记载每个记录“本源”数的一个外加信息组附属于每个记录。借助为此目的提供的一个计数器,这个信息组的值是保持更新的。每当数据结构作相应更改时,计数器值就减少或增加。我们定义:对应于一串数字(电话号码)的数字分析组成了树的一个“分支”。常规的树除了根记录外,每个记录有一个也仅有一个本源,所以根记录的外加信息组的值为0,而所有其他记录的外加信息组的值为1。这种情况示于图9,这里外加信息组用参考号91作为标记。在使用按照本发明的压缩方法时,可以合并几个“分支”,因而,用于外加信息组的计数器的值等于要合并的“分支”的数。这种情况示于图10,它对应于图8的实例。记录的外加信息组B和D现在的值为2。
按照本发明的优选实施例,借助于移去冗余记录也可以实现外加的压缩。为了示出这个外加的实施例,让我们回到与图2和图3有关的实例。我们假设开始时电话号码是随机地分布在本地交换机22和23之间,但几年后,有些用户已经移到其它本地交换机的区域而没有改变他们的电话号码,这些电话号码被分为两个顺序的组:号码000…199连接到本地交换机22,而号码200…999连接到本地交换机23。在中转交换机中,对用于数字分析的数据结构已经用上述方法实行压缩时,这将类似于图11中的情况。由此发现,除了位于根部的记录外,所有其它记录都是冗余的。(如果一个记录是一个分析分支的最后记录,而不是分析分支的第一个记录,并且如果所有它的信息组(使用中)指向相同的结果(目的地),则这个记录是冗余的)。在实际压缩后增加一个后压缩环路就可以移去冗余的记录,情况如下:如果位于零层的记录的所有信息组指向相同的结果,则该记录被删除,而在上层记录中所有已经指向它的信息组得到改变使得它们指向上述结果。这个操作的结果,某些“本源”(已经指向被删除记录的记录)可能变成冗余的。该操作应该继续到没有留下冗余记录为止。
按照本发明,只有当两个分析分支导致相同的结果时,他们才可以合并。所得到的压缩因子取决于要分析的电话号码数N对结果数R的比例。比例N/R越大,压缩效果越好。因为实际上电话号码数N通常是显著地大于结果数R,所以用此方法通常能得到很好的压缩效果。
所附的附录利用伪码实例说明插入一个新分支到树并且将一个旧分支从树移去。两种情况说明一个常规树结构的例子和一个按照本发明压缩的结构的例子。从附录可见:打算维护按照本发明压缩的数据的程序比起用来维护已知数据结构(树结构)的程序没有很大改变。这是本发明方法的另一优点。可以注意到读取数据结构的程序完全没有改变。
当一个新的分析分支插入到一个按照本发明压缩的数据结构时,情况就会改变,使得数据结构的规模不再减至最少。因此每隔一定的时间按照本发明来实行压缩是很有利的。压缩可以自动地进行,这总是当配置的记录数(已被使用)已经增加了一定的数,例如在最后压缩后增加了一百的时候。
虽然上面参照附图已说明了本发明,显然本发明不局限于此,它可以在上述发明的概念的范围内以及所附的权利要求中进行修改。本发明的原理也可用于存贮打算在电话交换机内(或是进行这类分析的一个相应的地方)进行其它分析的数据,或是用于电话交换机中压缩类似的数据结构。
附录A.定义:
“新”是一个配置新记录的功能,使它初始化并提供该记录一个标志符,
“删除”是一个过程,它删除一个记录(以便该记录移到空闲记录的存贮区),
d0d1d2…dnEOS是由一个电话号码组成的数字串。EOS是串标记的末端。
一个结果是分析的结果,在进行修改之前,必须确认它是否是允许的,即分析在删除之前,即在插入之前没有分析。B.插入:
插入一个新分支到树进行如下:
插入一个新分支到按照本发明压缩的结构进行如下:
C.删除:
从树中删除一个分支进行如下:
从按照本发明压缩的结构中删除一个分支进行如下:
]]>
由上述可见,在按照本发明压缩结构的维护方面,比较先前已知的维护方法只需要很少的改动。