CN1231745A - 业务数据库系统中的事件记录 - Google Patents
业务数据库系统中的事件记录 Download PDFInfo
- Publication number
- CN1231745A CN1231745A CN97198251.1A CN97198251A CN1231745A CN 1231745 A CN1231745 A CN 1231745A CN 97198251 A CN97198251 A CN 97198251A CN 1231745 A CN1231745 A CN 1231745A
- Authority
- CN
- China
- Prior art keywords
- counter
- group
- value
- time
- interval
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/4228—Systems providing special services or facilities to subscribers in networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/22—Arrangements for supervision, monitoring or testing
- H04M3/36—Statistical metering, e.g. recording occasions when traffic exceeds capacity of trunks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2201/00—Electronic components, circuits, software, systems or apparatus used in telephone systems
- H04M2201/12—Counting circuits
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Monitoring And Testing Of Exchanges (AREA)
- Exchange Systems With Centralized Control (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及业务数据库系统中一种处理事件记录的方法。该数据库包括一些含有连续行(Ri)的测量表(MT)。单一一行包括有关单个测量对象的数据。为了能有效地记录正确的计数器值,测量表的行中的计数器已被拷贝,并且在每一记录间隔中,所述行中的一个给定的计数器组中的计数器值被增加,按预定的循环规则,所述行中的另一给定的计数器组中的计数器值被记录。在本系统中,保存与特定测量对象相关的时间标记以及与特定测量组相关的时间标记,据此,判断是否允许记录计数器值。
Description
本发明一般涉及业务数据库系统,尤其涉及一种能用来完成各种事件记录的方法。智能网的这些业务数据库系统构成一种更好的应用环境。
电信业的快速发展使得运营者可向用户提供大量的各种业务。提供高级业务的网络体系结构称为智能网。智能网的通用缩写是IN。
智能网的功能结构如图1中所示,图中,椭圆形代表该网络的功能实体。下面将简要描述这一结构,因为后面将要参照该智能网环境来描述本发明。
终端使用者(用户)接入该网络由CCAF(呼叫控制代理功能)来控制。对现有数字交换机添加功能之后,可实现接入IN业务。这采用基本呼叫状态模型BCSM来完成,BCSM描述了用来对两个用户间的呼叫进行处理的现有功能。BCSM是建立和保持用户间的连接路由所需要的呼叫控制功能CCF的一个高层状态自动机描述。利用业务交换功能SSF(参见图1中的实体CCF和SSF的部分重叠)将功能加入这一状态模型,从而可以确定何时必须调用智能网的业务(IN业务)。调用了IN业务后,含有智能网的业务逻辑的业务控制功能SCF控制与业务有关的(呼叫尝试)处理。业务交换功能SSF于是将呼叫控制功能CCF连接到业务控制功能SCF,并使得业务控制功能SCF可控制呼叫控制功能CCF。例如,SCF可请求SSF/CCF执行特定呼叫或连接功能,如计费或路由选择操作。SCF还可向业务数据功能SDF发送请求,SDF控制对智能网的与业务有关的数据和网络数据的访问。SCF于是例如可请求SDF检索特定的与业务有关的数据或更新这一数据。
特殊资源功能SRF还对上述功能进行补充,SRF提供一些实现智能网提供的某些业务所需要的特殊功能。这些业务的例子有协议转换、语音识别和话音邮件。SCF例如可请求SSF/CCF功能首先建立终端用户和SRF之间的连接,然后它可请求SRF向终端用户发出话音消息。
智能网的其他功能实体是一些与控制有关的各种功能,如SCEF(业务生成环境功能)、SMF(业务管理功能)和SMAF(业务管理接入功能)。其中,SMF包括业务控制,SMAF提供与SMF的连接,而SCEF使得可定义、开发、测试和经SMF馈送IN业务到SCF。由于这些功能只与网络运营者的操作有关,因而未在图1中示出。
图1中所示的与IN业务有关的这些功能实体的作用简述如下。CCAF接收主叫方发出的业务请求。该业务请求通常包括起动接收机和/或主叫方所拨出的一串数字。CCAF再向CCF/SSF发送该业务请求以进行处理。呼叫控制功能CCF没有业务数据但它已被编程可以识别业务请求的要求。CCF将呼叫建立过程中断片刻并将该呼叫的状态通知给业务交换功能SSF。SSF的任务是,利用预定条件解释该业务请求,并由此判断该请求是否是一个与IN业务有关的业务请求。如果是,则SSF形成一个标准的IN业务请求并将该请求连同有关业务请求的状态的信息一同发送到SCF。SCF接收该请求并将其解码。然后,它与SSF/CCF、SRF和SDF相配合,将所需业务提供给该终端用户。
智能网的物理级结构描述了上述功能实体如何配置于该网络的物理实体中。智能网的物理结构如图2所示,图中,矩形或圆形代表物理实体,椭圆形代表功能实体。信令连接用虚线和实际传递表示,该实际传递比如是连线表示的语音。可选功能实体用虚线标出。图中所示的信令网是一个根据SS7(七号信令系统是一个众所周知的“CCITT(现称为ITU-T)篮皮书《Specifications of Signalling System No.7》,墨尔本,1988”中所述的信令系统)的网络。
可包括例如电话、计算机或传真机的用户设备SE,可以直接连接到业务交换点SSP也可以连接到网络接入点NAP。
业务交换点SSP向用户提供网络接入,并控制所有必要的选择功能。SSP还可检测任何IN业务请求。就其功能而言,SSP包括呼叫控制和业务选择功能。
网络接入点NAP是一个包括呼叫控制功能CCF的普通电话交换机,如DX 220交换机,它能区分需要IN业务的呼叫和普通的呼叫,并将需要IN业务的呼叫接到适当的SSP。
业务控制点SCP包含用来产生IN业务的业务程序。
业务数据点SDP是一个包含用户和网络数据的数据库,该数据库可被SCP的业务程序用以产生定制业务。SCP可直接或通过信令网使用SDP业务。
智能外设IP提供特殊业务,如语音通知和话音及多选择识别。
业务交换和控制点SSCP包括位于同一节点上的SCP和SSP(换言之,如果图中所示的SSP节点既包括一个SCF实体又包括一个SSF实体,则该节点是一个SSCP)。
业务管理点SMP的任务包括数据库(SDP)的管理、网络的监控和测试以及收集网络数据。它可与所有其他物理实体连接。
业务生成环境点SCEP用来定义、开发和测试IN业务,和将业务输入SMP。
业务辅助控制点AD功能上与业务控制点SCP等同,但AD用快速数据连接(例如,用ISDN 30B+D连接)直接连接到SSP,而不通过公共信道信令网SS7。
业务节点SN可控制IN业务并完成用户的数据传递。它直接与一个或多个SSP通信。
业务管理接入点SMAP是一个向特定用户提供与SMP连接的物理实体。
以上是智能网的简要描述,它将作为根据本发明的方法的描述的背景。感兴趣的读者例如可在ITU-T规范Q.121X中或在Bellcore的AIN规范中得到更详细的IN描述。
如上所述,SSF在呼叫建立的特定阶段向SCF发送标准的IN业务请求。由于业务控制点SCP(或业务辅助控制点AD)一般是为多个交换机服务的网络的一个集中式节点,因此在这种集中式业务点的数据库中连续进行各种负载测量也是重要的。例如,为了这些测量,该SCP(或AD)可分为一些如图3所示的功能部分。最底层用所谓的平台层31构成,该平台层包括硬件和基本操作系统(如Unix)。平台层的上面是专用应用层32,该专用应用层可分为以下三个部分:业务数据库(SDB)32a,业务逻辑程序块(SLP)32b,和测量程序块(MP)32c。业务逻辑程序是一些可被到达该节点的业务请求所触发的并可提供实际IN业务的程序。这些程序于是完成基于逐个呼叫的处理任务。另一方面,测量程序块是执行与SCP负载有关的处理的实体。因此,该测量程序块虽然不完成基于逐个呼叫的处理任务,但它却例如通过记录间隔或在某些情况如过载情况下,完成它的操作。
业务数据库通常包括数据表(DT),表中,每个用户都有自己的一行Ri(i=1,2,…n)。用户标识符OI作为关键词包含在每一行的起始处。对本发明而言,与上述测量有关的数据表是必不可少的。一个这样的测量表对应于叫作(测量)模块的一组测量对象。若干测量模块的测量表可置于同一数据表,或者每个测量模块的测量表可形成一个单独的数据表。因此,一个测量表是指这样一个与特定模块相关的数据集合,该数据集合可以是系统中数据表的一部分,或是整个数据表。测量模块也可以称作测量组。
本系统中,每个用户都有专用的一组计数器,这些计数器其值随着与该用户有关的各种事件的增加而递增;例如,呼叫计数器的值随每一呼叫而递增。这些计数器的值通过记录间隔来收集。
图3仍用智能网的业务控制点SCP作为例子,示出了本方法的应用环境。一般来说,可以认为本方法能适用于任何业务数据库系统,该业务数据库系统随机接收业务请求,由系统作出应答。下面对这种系统作总体层次上的描述,而不局限于智能网的SCP节点的描述。
为了呼入的业务请求可被应答,接到数据库的处理器必须进行与特定业务相关的处理。与这些业务请求有关的(测量)对象用数据库系统的数据表中的各个行来表示,这些行由该处理器来管理。系统在特定长度的记录间隔期间记录这些请求和特定事件的数量。
这些对象可分类成一些对象类别,使得一个类别中的所有对象具有同一类型(如用户),如果从正被记录的这些事件角度检查到这种情况的话。同一类型的对象可组成一个测量组,并可在每个对象类别中定义一个以上的测量组。在每个测量组中,各对象有一些用来记录这些事件的相应的计数器。计数器值可以随对象的不同而变化,但每个对象对特定事件的解释是相同的;例如,某些事件对各用户而言(即对各对象而言)可能表示一个号码翻译请求。
与测量有关的功能包括以下一些与业务数据库系统所处的环境无关的记录功能。
当接收到各个请求时,生成一个业务逻辑过程的专用实例,从数据表中检索所需对象的数据行,并执行所请求业务逻辑处理。在一个测量组中,每一单独的数据行都有一个相应的计数器组,用来记录各事件的出现。在业务逻辑处理期间,根据被记录的所需事件的出现,增加计数器值。
再者,对于多个不同的测量组,最好用同一处理器来管理业务处理、与记录事件(增加计数器值)有关的功能和计数器值的记录。计数器值的记录是指这样的操作,在该操作中,以固定间隔检索计数器值,使得这些计数器值可被写入到存储器(记录文件)或被发送到一个用于处理的外部系统。实际上,使用一个处理器可能是唯一的选择。其原因是,这些业务请求往往有严格的响应时间要求,这样,该数据库必须在RAM存储器中(而不是在磁盘上)实现。甚至在所有商用计算机系统中,都不可能具有一个以上的处理器对单个RAM存储器进行存取。若干处理器共亨RAM存储器实现起来也是困难的,因为必须避免重叠存储操作。
常规业务数据库系统采用累计计数器,并用单独的处理器来计算差值。这不可能以可靠的方式来计算差值,或至少难以保证可靠的计数器值。这是因为,在两个记录值之间,可能会发生异常情况(例如,在采用备份式处理器单元的系统中的处理器单元之间的切换)。另外,对于模块/对象激活后的第一记录间隔的处理,在系统控制中还需要外部智能,因为,在这些情况下,不存在前一计数器值,因而无法计算差值。
再者,还存在计数器翻转的问题,尤其当由于某种原因例如因通过某一传送连接(差值经该连接传送到管理系统)而错过计数器的记录时。
另外,在这种系统中,在一部分数据表的行连续地剩下未被处理的情况下,不同对象的记录间隔将具有不同的长度。这也增加了系统管理的难度。
本发明的目的是为了消除上述缺陷并提供一种系统,这种系统使得,(a)可用一种简单有效的方法记录计数器值,和(b)在各种情况下,只记录正确的计数器值。
利用根据本发明的一种方法可达到这一目的,这种方法在独立权利要求中阐述。
本发明的思想是:在一种数据库中保存至少两个与具体对象相关的时间标记,在该数据库中,每个对象都配置了若干个计数器组,这些计数器组按间隔使用,一方面用来增加计数器值,另一方面用来记录计数器值。将这些与具体对象相关的时间标记与(也保存在系统中的)间隔的变化时刻进行比较,这些时间标记用来确定其间可预先将当前要被记录和置零的计数器组置零的时间间隔。如果这些时间标记中的任何一个以预期方式介于所讨论的间隔的变化时刻之间,则该对象的惰态计数器组在最新结束的记录间隔之前肯定已适当地被置零。
根据一个优选实施方式,单个测量计数器被成对地保存,这样,第一计数器属于第一计数器组而第二计数器属于第二计数器组。在每隔一个的记录间隔中,第一计数器组中的计数器被增值而第二计数器组中的计数器值被记录和置零,又在每隔一个的记录间隔中,第二计数器组中的计数器被增值而第一计数器组中的计数器值被记录和置零。
只有当两个条件之一满足时,才能允许记录,这一原则基于这样的事实:所讨论的惰态计数器组最近被处理,这一处理不是在上一结束的记录间隔中,而是在上一间隔之前的间隔中(或者甚至更早,如果有两个以上的计数器组),这样,所讨论的行在上一记录间隔期间是否到达无关紧要。换言之,例如就成对计数器而言,允许在第二和第三最新的间隔的变化时刻之间有行的最新处理标记。
根据另一优选实施方式,系统中所用的时间被划分为离散的单元,使得,所有所用的时间标记都是与分钟读数相应的整数。该离散间隔(一分钟)对应于最短的可能的记录间隔。
下面,参照根据附图中图4至11e的例子来详述本发明及其优选实施方式,在附图中:
图1示出了智能网的功能结构,
图2示出了智能网的物理结构,
图3说明了事件记录必不可少的SCP节点的各部分,
图4说明了根据本发明的业务数据库系统,
图5a示出了说明图4的系统中所采用的循环规则的时间轴,
图5b示出了说明图4的系统中所采用的一般性循环规则的时间轴,
图6是说明系统从空闲状态转变到正常工作状态的流程图,和
图7a至7d构成了描述记录和置零过程的进程的流程图。
图8a至8e在时间轴上示出了第一系列确立计数器值的有效性的事件,
图9a至9d在时间轴上示出了第二系列确立计数器值的有效性的事件,
图10a至10e在时间轴上示出了第三系列确立计数器值的有效性的事件,和
图11a至11e在时间轴上示出了第四系列确立计数器值的有效性的事件。
图4说明了根据本发明的数据库系统DBS,该系统可以处于例如智能网的SCP节点中。该数据库包括至少一个基本数据表BT和至少一个包含很多连续的行的测量表MT。本图示出了一个基本表和三个测量表。
基本表中的一行对应于一个单独的测量对象(例如,一个用户)。对象标识符OI位于行的起始处。一个基本表中的这些对象属于同一测量对象类别;换言之,一个基本表中的这些对象是同一类型的。该基本表中的一个对象可包括在几个不同的测量表MT中,例如,同一用户可包括在一个记录间隔例如为5分钟的呼叫计数测量中,和包括在一个记录间隔例如为24小时的呼叫计数测量中。另外,基本表中的每一行都包括这样一些参数,这些参数表示所讨论的对象作为一个激活对象包括在哪些测量组中。以后,这些参数的标识符用ObiActj(j=1…测量组的个数)表示。这些参数值可由用户设定。
单个测量表由标题行HR和连续的行Ri(i=1…n)构成。测量表的单一一行Ri包括与具体对象相关的参数和专用的一组与具体测量组相关的计数器。每个测量表都构成一个如前面所述的特定测量组。因此,每个测量表都包括一些为其进行同样测量的对象。例如,图中的一个测量表可能包括一些正为其进行呼叫计数记录的用户,第二个表可能包括一些正为其进行事件计数器记录的用户,而第三个表可能包括一些正为其进行呼叫长度记录的用户。正如前面所述,即使一个类型的测量(例如,呼叫计数记录)也可以有几个不同的测量表。
整个测量组的公共参数位于测量表的标题行HR中。这些参数将在后面进行描述。
业务逻辑程序实例SLPi要读出基本表BT中的行,所以基本表的行也包括用于产生该业务的参数。不过,由于它们不属于本发明的范围,因此这里不对它们作详细描述。
SSP所发送的业务请求SR含有用户(对象)标识符。当SCP接收到这种业务请求时,便生成一个业务逻辑程序的业务逻辑程序实例SLPi,然后这一实例开始为这一业务请求服务。这可用一种已知的方法来实现,使得,包括在本系统中的业务逻辑执行块SLE通过拷贝存储在块SLPT中的业务逻辑程序模板,生成一个业务逻辑实例SLPi。这一拷贝(即SLPi)被应用于所接收的业务请求。业务逻辑执行块SLE从存储呼入业务请求的缓冲器BF中检索业务请求。
SLPi读出业务请求中的用户标识符,然后,从基本表中读出与该标识符对应的行。从该行中,SLPi找出参数ObjActj(j=1,2…)的值。如果该对象是激活的,则SLPi根据包括所讨论对象的测量表的标题行辨别该测量组是否也是激活的。这用包括在该测量表的标题行中的参数来指示,这一参数以后将用名称ActNew表示。如果该对象和测量组均是激活的,则SLPi增加位于测量表的所讨论对象的行中的一个或多个计数器的值。正如图4所示,用户通过管理系统(SMP)给出参数ObjActj和ActNew的值。由于参数ObjActj以后将被认为是一个与特定测量组相关的参数,因此指示测量组的下标j将被省略。
位于测量表的行中的计数器最好是成对的,使得,在该行中形成用标记CG1和CG2表示的两个计数器组。这些组包括相同的计数器(在一个组中的一个或多个计数器),这意味着,一个组中的每个计数器,在其他组中都有一个相应的计数器。这些计数器依次被增值,使得,时间轴被分为连续的记录间隔TP,其中每隔一个用标记F表示,而中间的一个用标记T表示,如图5a所示。在记录间隔F期间,例如计数器组CG1中的计数器被增值,而在记录间隔T期间,计数器组CG2中的计数器被增值,(反之亦然)。依次在每一时刻的间隔由保存在测量表的标题行中的奇偶性参数来确定。当SLPi读出测量表中的标题行时,它也读出奇偶性参数的值,并因此识别出它必须增加位于测量表的行中的哪个计数器的值。奇偶性参数是一个可以具有值T(真)或F(假)的布尔变量,这就是为何图中每隔一个时间间隔用标记T表示,而中间的时间间隔用标记F表示的原因。
上述循环规则对应于计数器成对的本发明的优选实施方式。不过,这种循环规则也可应用到每个计数器有两个以上拷贝的情况。这种一般性规则如图5b所示,其中每个计数器有N个拷贝,这样,与测量对象对应的测量表的行包括与特定测量组相关的N组计数器(其中,每个组包括一个或多个计数器)。当有两个以上的拷贝计数器时,时间轴也可分为连续的记录间隔(TP),使得,在每个记录间隔中,只有某个计数器组的值被增加,并且将需要增值的计数器组从一个记录间隔切换到另一个记录间隔。由于有N个计数器组,因此,每N个记录间隔有一个选定的计数器组被增值。单个计数器组中的计数器值的记录和置零在这样一些记录间隔期间被执行,这些记录间隔介于所讨论的计数器组中的计数器被增值的记录间隔之间。记录和置零被分配于所讨论的记录间隔中的这种方法也可以变化。某个计数器组的记录和置零例如往往可以在一个记录间隔期间进行。如果记录和置零不能完成,则可在另一个记录间隔中继续进行,前提是与该特定记录间隔对应的计数器组的记录和置零已经完成。这样,能够有效地利用可用时间,但运行逻辑变得更复杂了。
不过,由于计数器的成对是优选实施方式,因此,以下将以它作为例子。然而,必须注意,N越大,需要被记录的与特定组相关的记录间隔的变化时刻的数目越多。另外,N的值的增大改变了这样一些时间标记,这些时间标记用来确定其间可预先将当前要被记录和置零的计数器组置零的间隔。例如,当N=3,则第四和第三最新的间隔的变化时刻限制了所述间隔(假定,例如总是只在一个记录间隔期间执行某一计数器组的记录和置零)。
业务逻辑程序实例SLPi独立地执行一些事件计数器的增值,这意味着,即使它检测到所讨论的测量组和测量对象是激活的,它也盲目地增加这些计数器值。另一方面,测量程序块执行这些行中的计数器的记录和置零。测量程序块可以包括用于对每个测量组中的计数器进行记录和置零的子块CRj。另外,该测量程序块(或子块CRj)在每个记录间隔TP的起点处,通过转换奇偶性值来控制计数器的变化时刻。在SLPi增加计数器组CG1中的计数器值的记录间隔中,测量程序决对计数器组CG2中的计数器进行处理,而在SLPi增加计数器组CG2中的计数器值的记录间隔中,测量程序块对计数器组CG1中的计数器进行处理。因此,计数器增值(或者说,记录事件)用与计数器记录和置零过程分开的一个过程来进行,所述分开的过程只需利用奇偶性参数的值而无需知道有关计数器记录过程进行阶段的其他事情。以后,这些其值正被增加的计数器被称为激活计数器,而那些其值正被记录和置零的计数器被称为惰态计数器。在某一记录间隔期间被增加的计数器值于是在紧随所讨论记录间隔的记录间隔期间被处理。另一方面,在该随后的记录间隔期间,上一记录间隔期间被处理的计数器组被增值。应当知道,尽管这一描述谈到了记录和置零过程,但这指的是计数器值的记录及其置零的处理过程。计数器值不必立刻写入记录文件,而可以例如将计数器值发送到一个外部系统。该过程在测量对象的单一处理期间未必进行记录和置零,而能跳过这两者或只进行置零。
该系统的另一个必不可少的部件是唤醒定时器TM,该定时器用于使处理器PR以短间隔WP(图5a和5b)启动测量程序块(对计数器进行记录和置零)。唤醒间隔的长度可以是例如10秒,这意味着该唤醒间隔相对于记录间隔TP而言是非常短的。该一个或多个唤醒定时器可能是与特定组相关的或几个测量组公用的。
利用一个用户指定的参数,可逐个测量组地确定最大对象数,测量程序块可在一个执行期间(即在一个唤醒期间)来处理这些对象的计数器。以后,这一参数将被称为Batch。如果在记录间隔期间(或者说,在检测到记录间隔的新的变化时刻之前)有足够的时间对所有对象的惰态计数器组进行处理,则为该测量组设置一个标志,作为在所讨论的记录间隔期间不再需要对测量对象进行处理的一个标记。即便利用唤醒定时器仍会以短间隔唤醒计数器的记录和置零过程,在所讨论的间隔期间也不再对测量对象进行处理。
正如前面所述,最好使同一处理器既执行测量程序又执行业务逻辑程序SLPi。图4中,这一公共处理器用标记PR表示。测量程序的执行总是在该间隔WP已过去时由定时器TM来启动。
具有其数据表的数据库以及测量程序和业务逻辑程序可以都置于同一RAM存储器中,而该系统还可以使具有其数据表的数据库置于磁盘上。这样,系统包括了两个处理器,使得,其中一个处理器执行业务逻辑程序,而另一个处理器处理保存在磁盘上的计数器值。总之,某些存储区MA1…MA3与配置了测量程序块、业务逻辑程序块和具有其数据表的数据库的处理器相关联。业务执行块的存储区用标记MA4表示,而业务逻辑模板存储区用标记MA5表示。然而,正如以上所述,对于响应时间而言,最好是使用RAM存储器和一个处理器。
如果在所分配的记录间隔TP中没有足够的时间对所有对象(用户)的惰态计数器组进行处理,例如由于处理器过载,则还剩下一些对象未被处理。原则上,未完成的任务不能堆积。不过,记录和置零过程利用与特定行相关的时间标记来标记所处理过的那些行。(如果有未被处理的行,则不可能被写入记录文件并且计数器不被置零。)
业务逻辑程序实例盲目地增加包括未处理的行上的计数器在内的所有计数器的值。然而,这些行以后不能被处理,因为它们的值不再来自长度为记录间隔的一个间隔,例如5分钟的间隔。当测量程序开始处理这些行时,分别检查计数器值是否能写入记录文件。因此,虽然这些计数器值盲目地被增加,但在随后的处理间隔期间,检查其值是否有效,可否写入记录文件。
利用快速重复的唤醒,可以处理不同测量组的变化的记录间隔。因此,对于不同测量组所具有的不同长度的每个记录间隔,系统不包含各自的计数器(定时器),但系统却有唯一一个以短间隔例如每10秒钟唤醒测量程序的计数器。在每一唤醒期间,测量程序检查它是否必须开始对与具体对象相关的计数器进行处理(记录和置零)。于是,例如在处理器过载的情况下,可以确信,在过载减轻的某点处,该定时器将计满而该定时器所触发的记录和置零过程知道在每一情况下它必须做什么。因此,利用一种比使用一些单独的定时器更容易的方法,来解决处理器滞后问题。如果使用单独的定时器,由于定时器总是被置为同一间隔值,因此,由超负荷的处理器负载所造成的滞后会引起一些问题。这样的话,则应当用某种方法来处理该时间和触发时刻之间的同步。
下面是根据本发明的一种系统中必不可少的参数的描述。下列参数是测量对象组的公共参数,这些参数包括在每个测量表MT的标题行中:
参数 | 描述 | 类型 |
ModuleIdentifier | 测量模块的标识符 | I |
Act | 使用中的激活参数 | B |
ActNew | 新的激活参数 | B |
Interv | 使用中的记录间隔的长度 | I |
IntervNew | 新的记录间隔的长度 | I |
LatInterTime | 最新的记录间隔的变化时刻 | I |
SecondInterTime | 第二最新的记录间隔的变化时刻 | I |
ThirdInterTime | 第三最新的记录间隔的变化时刻 | I |
FollInterTime | 下一记录间隔的变化时刻 | I |
LatParityTime | 最新的奇偶性的变化时刻 | D |
PreParityTime | 第二最新的奇偶性的变化时刻 | D |
Parity | 奇偶性 | B |
Batch | 某段时间所处理的最多行数 | I |
LatFinished | 指示一个表中的所有行是否已被处理的参数 | B |
参数类型为整数变量I、布尔变量B和实时标记D(日、时、分、秒)。记录间隔的长度以分钟数给出。
用户可以定义测量组激活参数ActNew、记录间隔长度IntervNew和某段时间所处理的最多行数Batch的值。表中所列的其他参数是系统内部参数,它们不能被用户定义。指示最新记录间隔的变化时刻(LatInterTime)、第二最新记录间隔的变化时刻(SecondInterTime)、再以前的记录间隔的变化时刻(ThirdInterTime)和下一记录间隔的变化时刻(FollInterTime)的时间标记最好是分钟指示值,使得它们为整数变量类型,因为系统中所用的时间是离散的。
最新奇偶性的变化时刻(LatParityTime)和此前的奇偶性的变化时刻(PreParityTime)也必须被保留,因为它们通常不是精确地与所确定的记录间隔的变化时刻一样。其原因是,如果测量程序例如每10秒启动,则奇偶性的变化时刻一般比所确定的记录间隔的变化时刻迟几秒钟。因此,需要这些参数,以便可以确定由其得到计数器值的准确的间隔的长度。参数LatFinished指示在当前记录间隔期间一个测量表中的所有行的处理是否已完成(计数器值是否已被记录和置零)。
测量表中的单一一行至少包括下列与特定测量对象相关的参数:
参数 | 描述 | 类型 |
ObjAct | 对象的激活参数 | B |
LatMade | 最新的行的处理时间 | I |
PreMade | 第二最新的行的处理时间 | I |
与特定行相关的时间标记(LatMade和PreMade)是分钟指示值,类似于指示记录间隔的变化时刻的参数。以后,这些与特定行相关的时间标记用标记P(PreMade)和标记L(LatMade)来表示。
图4示出了位于测量组的对象行和标题行中的这些参数。
图6示出了系统从空闲状态600转换到正常工作状态即所谓热启动状态700的流程图。当系统接收到所谓冷启动信号时(阶段601),与特定模块相关的标志(参数Alive)被置为零,以指示所讨论的激活是一个冷启动(阶段602)。接着,在阶段603使唤醒定时器(TM,如图4)在短唤醒间隔(WP,如图5a)后计满,然后系统转变到所谓热启动状态700。
图7a至7d示出了测量程序块所执行的记录和置零过程的进程的流程图。当该过程处于热启动状态并且定时器TM计满(阶段701)时,计数器的记录和置零过程开始。在最终阶段,使定时器又在预定时间WP后计满(阶段745,如图7d)。当定时器又计满时,便又执行一遍记录过程,然后象前面阶段中那样,使定时器又计满。正如以上所述,计满之间的间隔可以是例如10秒钟。实际上,测量表的一行的一个执行过程所用的时间可能是约50μs,因此,如果在10个不同的模块中在某段时间有例如100行要处理时,则一个执行所用的时间约50ms。
当定时器已计满时,系统进到阶段702,在此,从模块的标题行中检索当前时间的值和模块(或者说,测量组)参数。该当前时间的值等同于定时器计满的时刻,并且这一值在由计满(唤醒)引起的一个执行所占用的整个时间段内保持相同。这一时间值用来确定当前分钟指示值(例如,以某年的起始点来计)。正如前面所述,本系统中所用的时间是离散的。优选离散间隔是一分钟,同时,这是最短的可能的记录间隔。
该程序从测量表的标题行中检索用户可指定的参数ActNew、IntervNew和Batch的值。接着,程序在阶段703a中检测所讨论的激活是否是冷启动信号后记录过程的第一次激活。这通过检测与上述模块相关的标志的值是否为零来实现。如果为零,则程序在阶段703b中检测与用户指定的模块相关的激活参数ActNew的值是否大于零(或者说,模块是否已被激活)。如果大于零,则将上述参数的值置为ActNew=1,它表示该用户所完成的最新的模块激活,而冷启动标志被关掉,或者说,将参数Alive的值置为1(阶段704)。据此,只有通过冷启动并当模块激活时,才进到阶段704。在任何其他情况下,程序从阶段703a或703b进到阶段705,在此,程序检测所讨论的模块是否连续为惰态(测量是否还未被激活)。这通过检测使用中的激活参数Act是否小于或等于零以及用户指定的激活参数ActNew是否也小于或等于零(或者说,是不是模块激活参数的原值为零而新值也为零)来实现。如果是(或者说,模块连续为惰态),则程序直接进到阶段745,在此,使唤醒定时器TM又计满。
如果不是这样,则程序进到阶段706,在此,检测在计数器记录和置零过程的最新唤醒后(测量已被终止)模块是否已切换到惰态。这通过检测使用中的激活参数Act是否大于零以及用户指定的激活参数ActNew是否小于或等于零来实现。如果是,则将使用中的激活参数置为零。这在阶段708中被实现,但是只有在该时刻适合计数器值的记录和置零过程进行所讨论的变化时,程序才能进到这一阶段。该时刻的合适与否在阶段707中被检测,在此,程序检测所有的行是否已被处理完或者记录间隔的下一变化时刻是否已过去。这通过检测参数LatFinished的值是否为1或者激活时所确定的参数CurrentMinute的值是否大于或等于指示下一个预期的间隔的变化时刻的参数FollInterTime的值来实现。
当在阶段708中通过将使用中的激活参数置为零而终止测量模块时,程序直接到终点,在此,使定时器又计满。
如果变化时刻还不合适或模块尚未被终止(或者说,如果模块是激活的),则程序在阶段709中检测在前一执行后模块是否被切换到激活状态,或者说,在前一执行后模块是否被起动。这通过检测用户指定的激活参数ActNew的值是否小于100(用户的激活对应于值1,表示模块正被激活)来实现。如果是,即,如果在前一唤醒后模块已被起动,则程序进到初始化阶段710。在任何其他情况下,程序进到阶段711,在此,检测记录间隔的长度是否已改变。
在上述的阶段704中,用户指定的激活参数ActNew的值因此被人为地置为1,使得,在所有必要的情况下,程序可从阶段709进到初始化阶段710。这种情况可以是例如在备份式计算机系统中出现的切换。当后备方启动(冷启动)时,这可以确保,即使在切换出现时与用户指定的模块相关的激活参数具有一个指示激活状态的值(本例中,值为1或101),记录过程也将进到初始化阶段710。因此该切换不需要任何附加操作,而即使在测量组已激活的情况下系统也按照用户刚激活了测量组的情况运行。
在初始化阶段710中,使用中的激活参数Act被赋予用户指定的参数ActNew的值,指示使用中的记录间隔的长度的参数Interv被赋予用户定义的参数IntervNew的值,而用户指定的激活参数的值增加了100,使得,此后在阶段709中可以检测到模块此刻尚未被激活。另外,将时间标记LatInterTime、SecondInterTime、ThirdInterTime和FollInterTime置为上舍入到下一整分钟的当前时间(CurrentMinute)的值。
与特定模块相关的参数于是必须初始化到一个迟于激活时间的时间。这种恰当的初始化尤其确保了所有与原行相关的时间标记早于或等于间隔的变化时刻,这样,判断程序是否写记录文件的不等式(以后描述)也就是真或假,而与例如与具体对象相关的测量被起动的时间无关。
在初始化阶段,将奇偶性变量Parity的值置为零,而将参数LatFinished的值置为1,使得,在模块起动后的第一不足分钟期间,不对测量表的行进行处理。另外,系统保存关于两个最新的奇偶性的变化时刻的信息。在初始化阶段,将这些参数(LatParityTime和PreParityTime)置为一个指示当前确切时间的时间标记(日、时、分、秒)。
在阶段711中,如上所述,程序检测记录间隔的长度是否已改变。这通过检测新值(IntervNew)是否等于原值(Interv)来实现。如果是(或者说,没有改变),则程序直接进到阶段716,在此检测预期的记录间隔的变化时刻是否已经到来或已过去。
如果用户已经改变了记录间隔的值,则在阶段713中将该值更新为新的记录间隔的值,并在阶段715中计算下一记录间隔的变化时刻。不过,这些操作只有在当前时刻合适时才被执行。该时刻的合适与否在阶段712中通过执行与阶段707中相同的检测来检测。于是,只有当在当前记录间隔期间有足够的时间来处理所有的行,或者当下一记录间隔的变化时刻(它根据记录间隔的原长度来计算,或在模块激活情况下在阶段710中被初始化到下一整分钟)已经到来或已过去,才执行这些操作(阶段713中的更新)。如果这两个条件有一个被满足,则在阶段713中将记录间隔的长度更新为其新值。在下一记录间隔的变化时刻的更新(阶段715)可被执行之前,有一个附加条件必须被满足并在阶段714中被检测。在这一阶段中,程序检测自模块激活以后第一整分钟的变化是否已过去。这通过检测FollInterTime的值是否等于参数LatInterTime的值(这些值直到第一整分钟后第一唤醒出现时才相等;当第一整分钟已过去后,参数FollInterTime立刻被更新,如后面所述)来实现。如果这些值不相等,则该第一分钟已过去而程序可执行下一变化时刻的更新。因此,模块的激活时刻后的第一间隔的变化时刻(FollInterTime)总是被置为第一整分钟,只有在此以后,才被置为例如数小时,如果新的记录间隔的长度为一小时的话。因此,这一第一间隔的变化时刻(第一整分钟)是指示间隔的变化时刻的时间标记在阶段710中所初始化的时刻。所期望的是,程序在模块激活后的第一不足分钟期间并不对行进行处理。为此,在阶段710中将参数LatFinished的值置为1。这是因为,与特定行相关的处理标记无论如何都将被置为下一分钟,这样,在第一不足分钟期间所做的任何行的处理不被利用(因为在这种情况下,与特定行相关的标记没有指示它是原标记还是新标记,或者说,它出现在激活前的时间还是在激活后的时间)。因此,仅在第一整分钟后才进行模块激活后的行处理(记录和置零计数器值)。
为下一间隔的变化时刻计算一个新的估算(阶段715),使得,首先将当前分钟(CurrentMinute)的值除以记录间隔的长度并保存余数。通过将当前分钟减去所得到的余数来得到这一新的估算,并将记录间隔的长度与该差值相加(即,FollInterTime:=CurrentMinute-mod(CurrentMinute/Interv)+Interv)。于是,根据该当前时间和记录间隔的长度来确定下一变化时刻。因此,该计算不用考虑参数LatInterTime的值,因为,例如在过载情况下,处理器可能已滞后,这样,相应的滞后会出现在下一变化时刻的值中。
然后,程序在阶段716中检测下一记录间隔的变化时刻是否已经到来。这通过检测参数CurrentMinute的值(或者说,忽略秒数时从时钟时间得到的分钟数)是否大于或等于参数FollInterTime的值来实现。如果不是,则程序直接进到阶段720。在任何其他情况下,程序转向阶段718,在此,向前推进与间隔的变化时刻有关的时间标记。这样,指示最新的记录间隔的变化时刻的参数LatInterTime被赋予值CurrentMinute-mod(CurrentMinute/Interv),指示此前的记录间隔的变化时刻的参数SecondInterTime被赋予参数LatInterTime的原值,而指示第三最新的记录间隔的变化时刻的参数ThirdInterTime被赋予参数SecondInterTime的原值。此时,程序于是不象参数LatInterTime的值那样给出参数FollInterTime的值(即,已经过去的变化时刻的值),而是根据当前分钟的值以上述方法来计算参数LatInterTime的值,使得,任何可能的处理器滞后都不会影响该参数的值。参数LatInterTime的值于是更新为等于下舍入到一个整分钟的当前时间减去上述余数的值,该余数用以补偿任何滞后,其值一般为零。
然而,如果阶段716中所检测到的间隔的变化时刻是模块激活后的第一整分钟,那么时间标记不向前推进。这一事实可在阶段717中通过利用与阶段714中类似的检测(即,如果此时参数Foll-InterTime的值不等于参数LatInterTime的值,则模块激活后的第一整分钟已经过去)来检测。在阶段718中时间标记推进后,程序在阶段719中为下一间隔的变化时刻计算一个新的值(或者说,FollIn-terTime=CurrentMinute-mod(CurrentMinute/Interv)+Interv)。这也可以这样来执行,即在阶段717中检测间隔的变化时刻究竟是不是模块激活后的第一整分钟。在阶段719中,程序还变换奇偶性值,并向前推进最新和第二最新的奇偶性的变化时刻,使得,将参数LatParityTime置为当前实际时间标记的值,和将参数PreParity-Time置为参数LatParityTime的原值。另外,由于正进行该行的处理,因此,此时将参数LatFinished置为零,使得,系统知道该行的处理还未结束。还应注意,即便该行的处理未完成而程序检测到间隔的变化时刻已经过去,参数LatFinished仍被重置为零。
然后,程序在阶段720(程序可能已直接从阶段716到达该阶段)中检测该行的处理过程是否已结束,或者说,所有的行是否已经被处理完(参数LatFinished的值是否为1)。如果是,则程序直接进到阶段745,在此将定时器复位。如果该行的处理未结束或如果还未开始(即,参数LatFinished的值为零),则程序进到阶段721,在此将该行的计数器初始化。接着,程序在模块的测量表中读下一行。如果顺利读出了新的行,则程序进到阶段725。在任何其他情况下,程序将所有行标记为已读(将参数LatFinished置为值1,阶段724),并且程序直接进到阶段745,在此使定时器又计满。
在阶段725中,程序从行中检索对象的参数,如用户标识符(OI)、与具体对象相关的激活参数(ObjAct)、最新行的处理的时间标记(LatMade)和第二最新的行的处理的时间标记(PreMade)。然后,将该行的计数器的值加1(阶段726)。当计数器值被增加后,程序进到阶段727,在此,检测所讨论的对象是否连续处于惰态。这通过检测与具体对象相关的激活参数ObjAct的值是否为100(它被选定为检测中所要用的值)来实现。如果是,则程序经阶段744进到阶段722,以便读下一行(它是根据该行的计数器的值到达的),或者进到阶段745以设置定时器。在任何其他情况下,程序在阶段728中检测该对象在最新唤醒后是否可能被切换到惰态。这通过检测与具体对象相关的激活参数ObjAct是否小于或等于零来实现。如果是,则与具体对象相关的激活参数的值被置为100,从现在开始它将表示该对象连续为惰态。这在阶段729中实现,程序由此直接进到阶段741。如果在阶段728所进行的检测结果为否(或者说,对象是激活的),则程序进到阶段730,在此,检测该对象在最新执行后是否被切换到激活状态,或者说,与该对象有关的测量是否正好已被启动。这通过检测与具体对象相关的激活参数ObjAct的值是否小于100而大于零(或者说,该值是否为1)来实现。如果是,即如果该对象正好已被激活,则程序进到对象初始化阶段732,在此,程序将位于该行中的时间标记LatMade和PreMade初始化为紧随当前分钟的下一分钟,并将该对象的激活参数置为该参数的上一个值(1)加100(ObjAct:=ObjAct+100)。然后,程序直接进到阶段741,在此检查奇偶性值,随后将一个或另一个计数器组置零(阶段742或阶段743)。将被复位的计数器组取决于奇偶性值。程序从这些阶段进到阶段744,在此检测该行的计数器是否已达到用户指定的某段时间所处理的行数(Batch)。如果已达到,则程序进到阶段745,在此使定时器又计满,而如果未达到,则程序返回到阶段722,以便读下一行。
如果程序在阶段730中检测到所讨论的事件不是对象从惰态转换到激活状态的事件,则程序进到阶段734,在此检测上述关于时间标记P的不等式[ThirdInterTime]<P≤[SecondInterTime]是否成立(其中,中括号代表时间标记的值)。如果成立,则程序直接跳到阶段736,在此检查奇偶性值,随后根据奇偶性值,转向读出第一或第二计数器组的值(阶段737或阶段738)。然后,程序在阶段739中写记录文件。如果与时间标记P相关的不等式不成立,则程序在阶段735中检测与时间标记L(LatMade)相关的不等式[ThirdInterTime]<L≤[SecondInterTime]是否成立,如果成立,则程序进到阶段736,以检查奇偶性变量的值,程序由此按上述方式继续进行,直至写记录文件。除了将位于行中的模块和对象标识符以及与具体对象相关的计数器值写入记录文件之外,程序还将上述参数的值写入记录文件。
写完以后,或如果与时间标记L相关的不等式不成立而离开阶段735后,程序进到阶段740,在此更新位于行中的这些时间标记(标记P和L)。标记P被赋予标记L的原值,而标记L被赋予等于上舍入的当前分钟的值。时间标记更新后,程序进到阶段741,以检查奇偶性,过程由此按上述方式继续进行。因此,当行已被处理完后,与特定行相关的时间标记被更新。
因此,利用图5a(或5b)所示的循环规则,以短间隔完成了上述计数器值的记录和置零过程,其中,(奇偶性)参数的值在每一间隔中确定计数器组,该计数器组的值在每一行记录的。
另外,应当注意,上述记录和置零过程是处理一个测量表的描述。为了补充以上描述,可以认为,当记录和置零过程检测到模块刚被激活时(阶段709),时间标记LatInterTime、Second-InterTime和ThirdInterTime被初始化(阶段710)到最近的下一整分钟,或者说,初始化到与时间标记FollInterTime相同的时刻。在第一整分钟后的唤醒期间,程序检测到间隔的变化时刻FollInterTime已经过去(阶段716),但不必更新间隔的变化时刻LatInterTime、SecondInterTime和ThirdInterTime,因为它们已经被初始化。换言之,程序直接从阶段717进到阶段719,以更新下一预期的间隔的变化时刻FollInterTime。记录和置零过程需要变化时刻LatInterTime、SecondInterTime和ThirdInterTime的上述初始化值,使得,这些时间标记没有一个会比其间程序检测到模块已被激活的唤醒的时间早。这使得例如仅在几秒钟后,就可启动模块的去激活和其再激活。
根据图8a至8e开始,下一节介绍了时间轴上作为例子的各个系列事件,这些事件利用上述过程验证计数器值的有效性。在这些例子中,假定,在每一记录间隔中,记录和置零过程至少有启动一次的时间,这样,该过程可从标记1推进到标记3。如果在该记录间隔中,记录和置零过程连启动一次的时间都没有,那么仅此一个记录间隔长度反常,而在其他情况下不影响以下说明。
图中,圆圈中的数字1表示最新的记录间隔的变化时刻(LatInterTime),圆圈中的数字2表示第二最新的记录间隔的变化时刻(SecondInterTime),而圆圈中的数字3表示第三最新的记录间隔的变化时刻(ThirdInterTime)。以下,这些时刻分别称为时间标记1、2和3。在第一记录间隔的起点,有一个小方格,它代表测量组作为一个组已被激活,即,激活参数已被设定。当记录和置零过程在激活后第一次启动时,首先识别该变化。接着,记录和置零过程将时间标记1至3初始化到启动时的分钟(到下一整分钟,如以上阶段710)。这些图示出了单个测量对象的情况,该测量对象作为某一行存在于含有特定测量对象(如特定用户)的一个表中。由于记录和置零过程以短间隔重复地被启动,因此,该过程通常有时间到达所讨论的行。这一时刻在图8a中用实心圆圈表示。如上所述,测量表的单一一行包含两个时间标记PreMade和LatMade,就对象初始化而言(本例中,假定对象也刚被初始化),过程将这些时间标记初始化到所讨论的时刻(下一整分钟,如阶段732)。此后该第一不完整的记录间隔结束,过程进入图8b中所示的阶段,在该阶段,再对同一行进行处理。此前,在记录间隔的实际变化时刻后,记录和置零过程已推进了用圆圈表示的与特定测量组相关的参数(阶段718),并且时间标记1向前移动。如果标记P或L两者中有一个处于标记ThirdInterTime和SecondInterTime之间,使得,方程式[ThirdInterTime]<P≤[SecondInterTime]或方程式[ThirdInterTime]<L≤[SecondInterTime]成立,则所讨论的计数器值可被写入记录文件中。换言之,如果这两个方程式之一成立,则计数器在适当的时候已被置零,因此计数器值是可靠的。由于重要的只是在标记ThirdInterTime和SecondInterTime之间计数器已被置零,因此,只要这两个方程式之一成立就行。
第一整个记录间隔内(图8b)所进行的比较表明两个不等式均不成立。比较用双箭头表示。
该比较结束后,时间标记P和L的值被更新(阶段740),使时间标记L推进到该行的当前处理时刻,而时间标记P被赋予时间标记L的上一值(图8b)。
下一记录间隔即第二整个记录间隔(图8c)是这样的,在该间隔期间没有时间处理所讨论的行(用该间隔中的一个空心圆标记)。然而,时间标记1和2却向前推进,因为在记录间隔的变化时刻之后,记录和置零过程有时间至少启动一次并完成这一推进。另一方面,该对象的时间标记P和L未被更新,因为比较情况没有达到。下一步,过程进至图8d,该图说明了该行的第三处理(实心圆圈表示该行可被处理的时刻)。此时,时间标记P和L滞后(图8c),因为,在上一记录间隔期间没有时间处理所讨论的行。当过程进入该行并对它进行处理时,指示记录间隔的变化时刻的时间标记已经具有如图8d所示的值(因为在阶段718中它们被更新),反之,时间标记P和L还是如图8c中所示的原先值。这样,时间标记L位于时间标记2和3之间,并允许写入记录文件。但时间标记P不在时间标记2和3之间。
因此,当该行的处理开始时,将行中的时间标记(P和L)与当前有效时间标记1至3进行比较,当在当前记录间隔期间,记录和置零过程第一次启动时,时间标记1至3已被更新。单独一行中的时间标记(P和L)仅在比较进行以后才被向前推进。当所述行下一次被处理时(图8e中用圆圈表示的时刻),时间标记1至3具有如图8e所示的值,因为在当前记录间隔的起始点,它们已被推进,而时间标记P和L具有如图8d所示的值。当将这些时间标记与时间标记2和3进行比较时,注意它们都不在时间标记2和3之间,因此,不会写记录文件。这是因为,在上一处理间隔期间,没有时间将该计数器置零。
图9a至9d作为第二个例子示出了开头部分相似的一系列事件,即,在第一不完整记录间隔期间有时间处理该行(图9a)。过程还可在下一整个记录间隔期间到达所讨论的行(图9b)。但不可能写记录文件,因为上述不等式不成立。当该行进入第三次处理时(图9c),当前时间标记P位于时间标记3和2之间,因此可写入记录文件。在下一记录间隔中,这同样是可能的,因为在这种情况下,时间标记P也在时间标记1和2之间。因此,在每一记录间隔期间,如果有时间对当前行进行处理,则时间标记P连续地处于时间标记3和2之间。
图10a至10e作为第三个例子示出了稍有不同的一系列事件。在第一不完整记录间隔期间有时间处理所讨论的行和将记录间隔的变化时刻向前推进。然而,在下一记录间隔中(图10b,用空心圆指示的记录间隔),没有时间处理该行。当到达随后的记录间隔时(图10c),又有足够的时间完成该处理。此时,注意时间标记P和时间标记L均在时间标记3和2之间,因此可以写记录文件。在下一记录间隔期间(图10d),该行又可以被处理,但现在注意标记P和L均不在时间标记3和2之间。因此,不允许写记录文件。在再下一记录间隔中(图10e),该行又可以被处理,可以发现,在该行的时间标记中,时间标记P位于时间标记3和2之间。
图11a至11e作为第四个例子示出了一系列事件,其中,两个连续的记录间隔(图11b和11c)是这样的,在这些间隔期间,在处理测量表时,没有到达所讨论的行。当在下一间隔期间到达该行时,注意时间标记P或L均不在时间标记2和3之间。在再下一间隔期间也能处理该行时,而即使此时,时间标记P或L仍不在时间标记2和3之间。
即便,模块被启动时,测量对象已经被激活,这种方法仍然有效。在这种情况下,标记P和L至多具有相应于紧随该激活后的记录间隔的变化时刻的值(即使,该激活是同一间隔期间的一种重激活情况,并且在去激活前的激活期间和所述重激活期间,该行已被处理)。
如上所述,这种方法即使对这样的记录间隔也起作用:在这种记录间隔期间,记录和置零过程甚至一次启动都没有进行,在这种情况下,记录间隔的变化时刻也不向前推进。如果这一情况碰巧发生,则时间标记之间相距的长度反常,但不会有其他不利影响。如果在该记录间隔期间记录和置零过程根本不启动,则奇偶性也不被改变,而仅此一个记录间隔长度反常,此后,过程以正常方式继续进行。
尽管参照根据附图的例子对本发明进行了以上描述,显然,本发明并不局限于本例子,而可以在以上和附属权利要求书中所述的本发明的思想的范围内变化。例如,与时间标记P和L有关的不等式中的等号是否允许,取决于时间标记的舍入方向。因此,后面的权利要求书中有这样的描述:“如预期的那样,介于这样一些与特定测量组相关的时间标记之间,这些时间标记用来限定其间可预先将当前要被记录和置零的计数器组置零的间隔”。在上述例子中,对于时间标记2等号可被认可,因为该值被上舍入。另外也不必用记录和置零过程来保存和比较这些时间标记,尽管最好执行与行处理有关的所述操作。本系统还可以保存一个辅助变量,该变量指示是否允许计数器值的记录。如上所述,根据与时间标记有关的不等式之一是否正好成立,来确定该辅助变量的值。使用该辅助变量有这样的优点:例如在某些情况下,记录可以完全被禁止,即便不等式可能允许记录。在测量表的行中,还可以使用与特定计数器组相关的时间标记,它们指示最新和第二最新的组处理时刻。不过在这种情况下,系统还有指示在测量对象行中已完成置零的最新和第二最新时刻(尽管还有其他一些与特定测量对象相关的时间标记,总计2N个时间标记,其中N为拷贝因子)。另外,对于记录,可能有一些附加条件,例如,只记录那些超出某些限值和其有效性已被确立的计数器值。
Claims (8)
1.一种业务数据库系统中的用于完成事件记录的方法,该数据库包括一些含有连续行(Ri)的测量表(MT),据此,单一一行包括有关单个测量对象的数据,并且一个测量表中的测量对象属于同一类型,使得,它们可构成一个测量组,这种方法包括以下步骤:
-接收业务请求(SR)进入到该系统,在其处理期间,必须对每一测量对象的事件发生数进行计数,
-作为该业务请求的响应,激活业务的提供,
-在由某一预定的记录间隔所确定的一段时间内,对于业务请求处理期间的每一不同事件,通过增加与特定测量对象相关的计数器的值来完成事件记录,和
-通过存储每一记录间隔后的与特定测量对象相关的计数器值,来完成计数器值的记录,
其特征在于,该方法还包括以下步骤:
-将拷贝了N个拷贝的单个测量计数器保存于测量表的行中,使得,N个计数器中的每一个属于一个不同的计数器组,从而有N个计数器组位于该行中,
-将时域划分为连续的记录间隔(TP),使得,每一记录间隔期间只增加位于该行中的一个选定的计数器组的值,并且要被增值的计数器组随不同的记录间隔变化,
-在一个记录间隔期间,通过一次一行地处理测量表的行,来一次一个测量对象地处理计数器值的记录和置零,使得,单个计数器组中的计数器值的记录和置零在这样一些记录间隔期间被执行,这些记录间隔介于所讨论的计数器组中的计数器被增值的记录间隔之间,
-在系统中保存这样一些与特定测量对象相关的时间标记,这些时间标记至少指示在测量对象行中已将一个计数器组置零的最新和第二最新时刻,并保存一些与特定测量组相关的时间标记,这些时间标记至少指示三个最新的记录间隔的变化时刻,和
-将这些与特定测量对象相关的时间标记和这些与特定测量组相关的时间标记进行比较,并且如果这些与特定测量对象相关的时间标记至少有一个如预期的那样,介于这样一些与特定测量组相关的时间标记之间,这些时间标记用来限定其间可预先将当前要被记录和置零的计数器组置零的间隔,则认为该测量对象的计数器值有效。
2.如权利要求1所述的方法,其特征在于,该方法包括如下步骤:
-成对地将每个计数器保存在与测量对象对应的测量表的行中,据此,第一计数器属于第一计数器组(CG1)而第二计数器属于第二计数器组(CG2),并且在每隔一个的记录间隔中,增加第一计数器组中的计数器值而记录和置零第二计数器组中的计数器值,又在每隔一个的记录间隔中,增加第二计数器组中的计数器值而记录和置零第一计数器组中的计数器值。
-对于记录,如果与特定测量对象相关的时间标记至少有一个如预期的那样,介于指示第二最新和第三最新的记录间隔的变化时刻的时间标记之间,则认可该测量对象的计数器值。
3.如权利要求1所述的方法,其特征在于,通过计数器值的记录和置零的执行过程来处理时间标记的保存和比较,所述过程在每一记录间隔期间重复启动,并在该记录间隔期间对单一一行至多处理一次。
4.如权利要求1所述的方法,其特征在于,系统中所用的时间被划分为离散的单元,使得,所有所述时间标记都是与整分钟相应的整数。
5.如权利要求4所述的方法,其特征在于,关于行的处理,指示与测量对象对应的行中置零的最新时刻的时间标记,被设定为上舍入到下一整分钟的当前时间。
6.如权利要求5所述的方法,其特征在于,在记录间隔改变后更新与特定测量组相关的时间标记时,指示间隔的最新变化时刻的时间标记,根据当前时间,被设定为比所述时间小的分钟读数。
7.如权利要求5所述的方法,其特征在于,在启动一个测量组的测量时,与特定测量组相关的时间标记被设定为一个与上舍入到下一整分钟的当前时间相应的值。
8.如权利要求7所述的方法,其特征在于,在启动该测量组中的一个测量对象的测量时,与具体对象相关的时间标记被设定为一个与上舍入到下一整分钟的当前时间相应的值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI963366A FI104595B (fi) | 1996-08-29 | 1996-08-29 | Tapahtumien tallettaminen palvelutietokantajärjestelmässä |
FI963366 | 1996-08-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1231745A true CN1231745A (zh) | 1999-10-13 |
Family
ID=8546547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN97198251.1A Pending CN1231745A (zh) | 1996-08-29 | 1997-08-29 | 业务数据库系统中的事件记录 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6292793B1 (zh) |
EP (1) | EP0922261A2 (zh) |
JP (1) | JP2000517118A (zh) |
CN (1) | CN1231745A (zh) |
AU (1) | AU728567B2 (zh) |
BR (1) | BR9711263A (zh) |
CA (1) | CA2263594A1 (zh) |
FI (1) | FI104595B (zh) |
WO (1) | WO1998009231A2 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1003096A1 (en) * | 1998-11-19 | 2000-05-24 | Alcatel | Mediation device development method |
AU2001274762A1 (en) * | 2000-06-15 | 2001-12-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for obtaining measurement data for performance analysis in a radio network |
US20020143901A1 (en) * | 2001-04-03 | 2002-10-03 | Gtech Rhode Island Corporation | Interactive media response processing system |
US10445312B1 (en) * | 2016-10-14 | 2019-10-15 | Google Llc | Systems and methods for extracting signal differences from sparse data sets |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4446336A (en) * | 1981-02-09 | 1984-05-01 | Bell Telephone Laboratories, Incorporated | Method for recording and updating stored messages in an announcement system |
US4918593A (en) * | 1987-01-08 | 1990-04-17 | Wang Laboratories, Inc. | Relational database system |
JP2510696B2 (ja) * | 1988-09-26 | 1996-06-26 | 株式会社日立製作所 | 計算機システム自動運転制御方式 |
US5067099A (en) * | 1988-11-03 | 1991-11-19 | Allied-Signal Inc. | Methods and apparatus for monitoring system performance |
US5065321A (en) * | 1989-06-15 | 1991-11-12 | Pulse Electronics, Inc. | Solid state event recorder |
US4998272A (en) * | 1989-06-15 | 1991-03-05 | Digital Voice Technologies, Inc. | Personal voice mail system |
US5140436A (en) * | 1989-11-02 | 1992-08-18 | Eastman Kodak Company | Pre-event/post-event recording in a solid state fast frame recorder |
JP3126225B2 (ja) * | 1991-07-12 | 2001-01-22 | 富士通株式会社 | データベース・システム |
US5446884A (en) * | 1992-02-13 | 1995-08-29 | International Business Machines Corporation | Database recovery apparatus and method |
US5657077A (en) * | 1993-02-18 | 1997-08-12 | Deangelis; Douglas J. | Event recording system with digital line camera |
US5499358A (en) * | 1993-12-10 | 1996-03-12 | Novell, Inc. | Method for storing a database in extended attributes of a file system |
US5570410A (en) | 1994-10-13 | 1996-10-29 | Bellsouth Corporation | Dynamic resource allocation process for a service control point in an advanced intelligent network system |
US5581610A (en) * | 1994-10-19 | 1996-12-03 | Bellsouth Corporation | Method for network traffic regulation and management at a mediated access service control point in an open advanced intelligent network environment |
FI98973C (fi) * | 1994-11-22 | 1997-09-10 | Nokia Telecommunications Oy | Menetelmä ryhmätietojen ylläpitämiseksi matkaviestinjärjestelmässä ja matkaviestinjärjestelmä |
US6092067A (en) * | 1996-05-30 | 2000-07-18 | Microsoft Corporation | Desktop information manager for recording and viewing important events data structure |
US5857190A (en) * | 1996-06-27 | 1999-01-05 | Microsoft Corporation | Event logging system and method for logging events in a network system |
-
1996
- 1996-08-29 FI FI963366A patent/FI104595B/fi active
-
1997
- 1997-08-29 AU AU40171/97A patent/AU728567B2/en not_active Ceased
- 1997-08-29 CA CA002263594A patent/CA2263594A1/en not_active Abandoned
- 1997-08-29 BR BR9711263A patent/BR9711263A/pt not_active Application Discontinuation
- 1997-08-29 CN CN97198251.1A patent/CN1231745A/zh active Pending
- 1997-08-29 WO PCT/FI1997/000501 patent/WO1998009231A2/en not_active Application Discontinuation
- 1997-08-29 EP EP97937603A patent/EP0922261A2/en not_active Withdrawn
- 1997-08-29 JP JP10511319A patent/JP2000517118A/ja active Pending
-
1999
- 1999-02-16 US US09/249,871 patent/US6292793B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
AU728567B2 (en) | 2001-01-11 |
JP2000517118A (ja) | 2000-12-19 |
EP0922261A2 (en) | 1999-06-16 |
FI963366A0 (fi) | 1996-08-29 |
FI963366A (fi) | 1998-03-01 |
US6292793B1 (en) | 2001-09-18 |
FI104595B (fi) | 2000-02-29 |
AU4017197A (en) | 1998-03-19 |
CA2263594A1 (en) | 1998-03-05 |
WO1998009231A3 (en) | 1998-04-16 |
WO1998009231A2 (en) | 1998-03-05 |
BR9711263A (pt) | 1999-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2357857B1 (en) | Method and apparatus for generating phone bill | |
CN1124061A (zh) | 由报酬计量器管理的数据收集和检索系统 | |
CN1231747A (zh) | 业务数据库系统中负载情况的监测 | |
CN110245145A (zh) | 关系型数据库到Hadoop数据库的结构同步方法和装置 | |
CN113762106B (zh) | 人脸识别方法、装置、电子设备及存储介质 | |
CN1231743A (zh) | 业务数据库系统中的事件记录 | |
CN101727624A (zh) | 一种展现任务列表的方法及系统 | |
CN1231745A (zh) | 业务数据库系统中的事件记录 | |
CN1231748A (zh) | 业务数据库系统中的事件记录 | |
CN1231749A (zh) | 业务数据库系统中的事件记录 | |
CN101094428A (zh) | 一种智能网业务数据库查询统计系统及其方法 | |
CN1231746A (zh) | 业务数据库系统中的事件记录 | |
CN1231744A (zh) | 业务数据库系统中的事件记录 | |
CN112463233A (zh) | 一种系统配置方法、系统、设备以及介质 | |
US20020026263A1 (en) | Method of monitoring manufacturing apparatus | |
CN110457344B (zh) | 预计算模型生成、预计算方法、装置、设备及存储介质 | |
CN112069021A (zh) | 流量数据的存储方法、装置、电子设备和存储介质 | |
CN114547182A (zh) | 人员信息同步方法、终端设备及存储介质 | |
CN111368207A (zh) | 数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质 | |
CN112631642B (zh) | 智能合约的升级方法、装置、区块链节点及存储介质 | |
CN116346920A (zh) | 一种分布式数据库实时采集入湖方法及系统 | |
JPH0761110B2 (ja) | 課金方式 | |
CN117314607A (zh) | 一种交易任务管理方法、装置、设备及可读存储介质 | |
CN116881360A (zh) | 一种解决基于雪花算法时钟回拨问题的方法、系统、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |