事件队列管理装置和事件队列管理方法

xiaoxiao2020-7-22  4

专利名称:事件队列管理装置和事件队列管理方法
技术领域
本发明涉及进行事件的队列管理的事件队列管理装置和事件队列管理方法。
背景技术
以往,公知有在发生了大量事件的情况下进行这些事件的队列管理的队列管理装置(例如参照专利文献1)。该现有的队列管理装置在发生超过系统处理负荷的大量事件时,删除存储在事件队列中的事件中的不满足规定基准的队列,由此,抑制负荷的急剧上升。另一方面,在计算机或移动型小型信息终端的软件内部处理中,有时使用事件配送系统模型等进行软件模块之间的信号传达。例如,当发生用户的操作事件、由于硬件定时器等而在指定时刻或经过指定时间后发生的事件、由于受理特定硬件处于特定状态而发生的中断所引起的事件等的事件时,应用程序利用事件处理程序受理事件,进行与已发生的事件对应的适当处理。现有技术文献专利文献专利文献1 日本特开平04-345248号公报

发明内容
发明要解决的课题但是,在便携电话等的移动机中,在VM(Virtual Machine)等的应用程序执行环境中,利用各种事件处理程序受理事件的应用程序能够工作。另一方面,在语音通话中等,VM 成为暂停状态而临时成为停止状态,因此,即使在移动机中发生事件,也成为不向应用程序的事件处理程序配送事件的状态。而且,在VM成为暂停状态时,在移动机中发生了事件时,将该期间内发生的全部事件存储在事件队列中,然后,当VM从暂停状态恢复时,将存储在事件队列中的全部事件一口气地连续传递给VM。因此,例如当在事件队列中重复存储相同事件时,在从暂停状态恢复时,应用程序连续起动相同的事件处理程序,因此,存在连续执行相同处理的问题。因此,以往存在如下问题在制作应用程序时,需要考虑由于VM的恢复而将不必要事件或不期待事件一口气地连续传递给VM的情况。另外,在专利文献1记载的技术中存在如下问题根据在系统中发生的事件的量, 优先基准值变动,因此,在制作应用程序时,需要考虑不执行特定事件的事件处理程序的情况,应用程序的制作成本升高,成为阻碍丰富内容的流通的要因。因此,本发明的目的在于,提供如下的事件队列管理装置和事件队列管理方法在应用程序执行环境从暂停状态恢复时,能够防止由于不必要事件而连续执行应用程序的情况。
用于解决课题的手段本发明的事件队列管理装置在应用程序执行环境中工作的应用程序由于发生事件而进行处理的情况下,进行事件的队列管理,其特征在于,该事件队列管理装置具有队列管理单元,其将已发生的事件存储在队列中,进行事件的队列管理;事件类别检测单元, 其检测由队列管理单元进行队列管理的事件的事件类别;停止状态检测单元,其检测应用程序执行环境的停止状态;以及事件删除单元,其在停止状态检测单元检测到应用程序执行环境的停止状态时,在由队列管理单元存储在队列中的事件中,根据由事件类别检测单元检测到的事件的事件类别,检索不必要事件,删除不必要事件。本发明的事件队列管理方法在应用程序执行环境中工作的应用程序由于发生事件而进行处理的情况下,该事件队列管理方法进行事件的队列管理,其特征在于,该事件队列管理方法具有以下步骤队列管理步骤,将已发生的事件存储在队列中,进行事件的队列管理;事件类别检测步骤,检测由队列管理步骤进行队列管理的事件的事件类别;停止状态检测步骤,检测应用程序执行环境的停止状态;以及事件删除步骤,在停止状态检测步骤中检测到应用程序执行环境的停止状态时,在由队列管理步骤存储在队列中的事件中,根据由事件类别检测步骤检测到的事件的事件类别,检索不必要事件,删除不必要事件。根据本发明的事件队列管理装置和事件队列管理方法,将已发生的事件存储在队列中进行队列管理,当应用程序执行环境成为停止状态时,在存储于队列中的事件中,根据事件类别来检索并删除不必要事件,因此,在应用程序执行环境从停止状态即暂停状态恢复时,能够防止由于不必要事件而连续执行应用程序的情况,能够实现节电化。而且,在制作应用程序时,不用考虑由于不必要事件而连续执行应用程序的情况,因此,能够降低应用程序的制作成本。该情况下,优选事件队列管理装置还具有新事件检测单元,该新事件检测单元检测新事件的发生,在由新事件检测单元新检测到事件时,事件删除单元删除不必要事件。根据该事件队列管理装置,每当新发生事件时,从队列中删除不必要事件,因此,成为在队列中始终没有不必要事件的状态。因此,能够与应用程序执行环境恢复的时期无关地,防止由于不必要事件而连续执行应用程序的情况。而且,优选事件删除单元删除存储在队列中的事件中的、事件类别与新发生的事件的事件类别相同的事件。根据该事件队列管理装置,删除存储在队列中的事件中的、事件类别与新事件的事件类别相同的事件,因此,在应用程序执行环境恢复时,能够防止由于相同事件而连续执行应用程序的情况。发明的效果根据本发明,在应用程序执行环境从停止状态恢复时,能够防止由于不必要事件而连续执行应用程序的情况。


图1是搭载有本实施方式的事件队列管理模块的移动机的结构图。图2是示出事件对象的结构例的图。图3是示出事件队列管理模块的结构的图。图4是例示出移动机的硬件结构的图。
图5是用于说明事件队列管理模块的处理动作的流程图。
具体实施例方式下面,参照附图对本发明的事件队列管理装置和事件队列管理方法的实施方式进行说明。在本实施方式中,对将本发明的事件队列管理模块应用于便携电话等移动机的情况进行说明。另外,在各图中,对同一要素标注同一标号并省略重复说明。图1是搭载有本实施方式的事件队列管理模块的移动机的结构图。如图1所示, 本实施方式的事件队列管理模块101搭载于移动机100。另外,移动机100是折叠式的能够开闭的结构。而且,在移动机100中设有基本软件部103、应用程序执行环境104、应用程序安装主体105。基本软件部103组入了用于实现移动机100的各种功能的基本软件。而且,在基本软件部103中设有消息发送接收部107、开闭检测开关108、定时器模块109、消息箱110 作为低位层,还设有消息箱增减检测部111、终端开闭状态检测部112、指定定时器时刻检测部113,作为对在各低位层发生的事件进行检测的事件检测单元。消息发送接收部107在与移动机100外部之间进行邮件或消息等的发送接收。而且,消息发送接收部107在发送接收邮件或消息时,将该发送接收的邮件或消息保存在消息箱110中。开闭检测开关108对设于移动机100的铰链部分等的开关传感器进行监视,由此, 检测移动机100的开闭状态是否变动。定时器模块109在检测到已成为由搭载于内部的实时时钟指定的时刻时,发送中
断信号。消息箱110是保存消息发送接收部107发送接收的邮件或消息的存储装置。而且, 消息箱110以文件夹为单位对该保存的邮件或消息进行管理。消息箱增减检测部111是对存储在消息箱110中的邮件以文件夹为单位增减的情况进行检测的事件检测单元。而且,消息箱增减检测部111检测到邮件以文件夹为单位增减的事件后,向应用程序执行环境104通知事件类别为“消息BOX事件”的事件对象。终端开闭状态检测部112是对移动机100的形状从打开变化为关闭或者从关闭变化为打开的情况进行检测的事件检测单元。而且,终端开闭状态检测部112检测到移动机 100的开闭状态变化的事件后,向应用程序执行环境104通知事件类别为“移动机打开变化事件”或“移动机关闭变化事件”的事件对象。指定定时器时刻检测部113是如下的事件检测单元根据来自上位应用程序的请求,检测已成为利用定时器模块109指定的时刻的情况。而且,指定定时器时刻检测部113 检测到已成为指定的时刻的事件后,向应用程序执行环境104通知事件类别为“指定时刻事件”的事件对象。图2是示出事件对象的结构例的图。如图2所示,从基本软件部103的各事件检测单元111 113通知的事件对象130由类别管理部131和参数部132构成。在类别管理部131中记述有表示事件类别的信息,表示事件是由基本软件部103的哪个检测部发生的事件。在参数部132中记述有根据针对事件的每个类别而定义的构造来保存事件的信息。 另外,在图2所示的事件对象130中,在类别管理部131中记述有“消息BOX事件”作为事件类别,在参数部132中,作为参数,针对消息箱110的BOX编号1,记述有消息于2008年5 月12日11时4分23秒到达。另外,参数部132的BOX编号对应于消息箱110的文件夹。并且,如图1所示,应用程序安装主体105是在应用程序执行环境104上工作的应用程序安装的主体部分,能够经由事件处理程序取得各种事件。事件发生,由此,预定并制作从应用程序执行环境104调出的事件处理程序(由应用程序执行环境104执行的事件处理程序)。而且,在应用程序安装主体105中设有消息箱状态处理程序122、终端开闭状态处理程序123、指定定时器时刻检测处理程序124,作为事件处理程序。消息箱状态处理程序122进行如下处理当发生在消息箱110中邮件以文件夹为单位增减的事件时,从应用程序执行环境调出消息箱状态处理程序122,向应用程序通知在该文件夹中邮件增减。终端开闭状态处理程序123进行如下处理当发生移动机100的开闭状态变化的事件时,向应用程序通知该开闭状态的变化,变更应用程序的动作。指定定时器时刻检测处理程序IM进行如下处理当发生已成为指定的时刻这样的事件时,向应用程序通知已成为指定的时刻,例如,接收到通知的应用程序能够调出产生
警报音等的处理。而且,应用程序执行环境104是在组入基本软件部103中的基本软件上工作的执行环境,是用于使应用程序安装主体105工作的VM (Virtual Machine)。即,在从基本软件部103的各事件检测单元(内部的消息箱增减检测部111、终端开闭状态检测部112和指定定时器时刻检测部11 通知了事件对象130后,应用程序执行环境104调出事件处理程序 122 124。该应用程序执行环境104通常成为能够利用事件处理程序122 IM受理事件的状态,但是,在语音通话中等,临时成为无法利用事件处理程序122 IM受理事件的暂停状态(停止状态)。而且,在应用程序执行环境104中设有对从基本软件部103通知的事件对象130进行队列管理的事件队列管理模块101。图3是示出事件队列管理模块的结构的图。如图3所示,在事件队列管理模块101 中设有事件队列117,该事件队列117存储从基本软件部103的各事件检测单元(消息箱增减检测部111、终端开闭状态检测部112和指定定时器时刻检测部113)通知的事件对象 130。而且,在事件队列管理模块101中设有队列管理部118、事件类别检测部119、停止状态检测部120、事件删除部121的各功能。队列管理部118按照事件的发生顺序,在事件队列117中存储从基本软件部103 的各事件检测单元(消息箱增减检测部111、终端开闭状态检测部112和指定定时器时刻检测部113)通知的事件对象130,进行队列管理。事件类别检测部119检测由队列管理部118进行队列管理的事件对象130的事件类别和参数。即,在从基本软件部103的各事件检测单元111 113通知了新的事件对象 130后,事件类别检测部119参照该事件对象130的类别管理部131和参数部132,判定新发生的事件的类别和参数。例如,在图2所示的事件对象130是新发生的事件的情况下,检测到该事件的类别是消息BOX事件、该参数是消息已到达BOX编号1。然后,在事件队列117 中存储有事件对象130时,事件类别检测部119登记该事件对象130的事件类别和参数,作为队列管理部118的队列管理信息。停止状态检测部120监视应用程序执行环境104的执行状态,由此,检测应用程序执行环境104是否是停止状态。事件删除部121在应用程序执行环境104为停止状态时,删除存储在事件队列117 中的事件对象130中的、特定的不必要的事件对象130。即,在停止状态检测部120在应用程序执行环境104为停止状态的情况下检测到事件到达时,事件删除部121参照由事件类别检测部119登记的事件对象130的事件类别和参数,在存储于事件队列117中的事件对象130中,检索特定的不必要的事件对象130并删除。该特定的事件对象130例如是事件类别与新的事件对象130的事件类别相同的事件对象130,是在事件队列117中存储多个没有意义的事件对象130等。图4是例示出移动机的硬件结构的图。另外,如图4所示,在物理上,移动机100具有CPU 201、ROM 202、RAM 203、辅助存储装置204、通信模块205、操作部206、显示器207。 而且,事件队列管理模块101作为移动机100的一个功能进行工作,在图4所示的CPU 201 或RAM 203上读入规定的计算机软件,从而在CPU 201的控制下使通信模块205进行工作, 并且,进行RAM 203或辅助存储装置204中的数据的读出和写入,由此,实现图3中说明的各功能。接着,参照图5对本实施方式的事件队列管理模块101的处理动作进行说明。图5 是用于说明事件队列管理模块的处理动作的流程图。另外,图5示出移动机100进行语音通话的情况等、应用程序执行环境104成为暂停状态时的处理动作。如图5所示,在应用程序执行环境104成为暂停状态时,事件队列管理模块101成为事件等待状态,进行等待直到新发生事件为止(步骤Si)。然后,在基本软件部103中发生事件时,事件队列管理模块101从事件检测单元 111 113通知事件对象130(步骤S2)。然后,事件队列管理模块101确认已发生的事件的类别和参数(步骤S; )。S卩,在步骤S3中,在事件类别检测部119中,参照在步骤S2中通知的事件对象130的类别管理部 131和参数部132,由此,确认新发生的事件的类别和参数。然后,事件队列管理模块101判定事件类别是否是移动机开闭变化事件(步骤 S4)。在步骤S4中判定为事件类别是移动机开闭变化事件的情况下(步骤S4 是),事件队列管理模块101进入步骤S5,通过事件删除部121删除存储在事件队列117中的事件对象130中的、事件类别与新发生的事件的事件类别相同的事件对象130(步骤SQ。如上所述,在事件类别检测部119中,在将事件对象130存储到事件队列117时,登记事件类别作为队列管理信息。因此,在步骤S5中,对登记在队列管理信息中的事件类别与在步骤S3 中判定出的新发生的事件的事件类别进行比较,由此,在存储于事件队列117中的事件对象130中,检索事件类别与新发生的事件的事件类别相同的事件对象130并删除。然后,事件队列管理模块101在事件队列117的最末尾追加存储新发生的事件的事件对象130(步骤S6)。由此,存储在事件队列117中的事件对象130中的、仅移动机100 的开闭状态发生变化的事件的事件对象130成为追加存储在最末尾的事件对象130。另一方面,在上述步骤S4中判定为事件类别不是移动机开闭变化事件的情况下 (步骤S4 否),事件队列管理模块101进入步骤S7,判定事件类别是否是消息BOX事件(步骤 S7)。
在步骤S7中判定为事件类别是消息BOX事件的情况下(步骤S7 是),事件队列管理模块101进入步骤S8,通过事件删除部121,删除存储在事件队列117中的事件对象130 中的、事件类别和参数与新发生的事件的事件类别和参数相同的事件对象130(步骤S8)。 如上所述,在消息箱110中以文件夹为单位对邮件的增减进行管理,因此,即使是相同的事件类别,只要邮件增减的文件夹不同,也认为是不同的事件。因此,在步骤S7中,在存储于事件队列117中的事件对象130中,检索新发生的事件的事件类别相同且参数的BOX编号相同(邮件增减的文件夹相同)的事件对象130并删除。另外,在步骤S8中,即使事件对象130(参照图2)的参数中的变更时刻不同,只要BOX编号和变更种类相同,就判断为参数相同。然后,事件队列管理模块101在事件队列117的最末尾追加存储新发生的事件的事件对象130(步骤S6)。由此,存储在事件队列117中的事件对象130中的、仅在同一文件夹(BOX编号)中邮件增减的事件的事件对象130成为在最末尾追加存储的事件对象130。另一方面,在步骤S7中判定为事件类别不是消息BOX事件的情况下(步骤S7 否),事件队列管理模块101进入步骤S6,在事件队列117的最末尾追加存储新发生的事件的事件对象130(步骤S6)。这样,根据本实施方式的事件队列管理模块101,在应用程序执行环境104成为暂停状态时,将新发生的事件的事件对象130存储在事件队列117中进行队列管理,但是,删除存储在事件队列117中的事件对象130中的、特定的不必要的事件对象130,因此,在应用程序执行环境104从暂停状态恢复时,能够防止由于不必要的事件对象130而调出事件处理程序122 IM并连续执行应用程序的情况,在制作应用程序时,不用考虑由于不必要的事件对象130而连续调出相同的事件处理程序122 124的情况,因此,例如,能够省去 “在连续发生事件的情况下使后续事件的处理程序无效”这样的代码的记载,能够降低应用程序的制作成本和测试成本。并且,每次新发生事件时,从事件队列117中删除不必要的事件对象130,因此,成为在事件队列117中始终没有不必要事件的状态。因此,能够与应用程序执行环境104从暂停状态恢复的时期无关地,防止由于不必要的事件对象130而调出事件处理程序并连续执行应用程序的情况。并且,删除存储在事件队列中的事件对象130中的、事件类别与新发生的事件的事件类别相同的事件对象130,因此,在应用程序执行环境104从暂停状态恢复时,能够防止由于相同事件类别的事件对象130而调出事件处理程序并连续执行应用程序的情况。以上,根据实施方式具体说明了本发明,但是,本发明不限于上述实施方式。例如, 在上述实施方式中,对发生3种事件并通过应用程序执行与该事件对应的处理的情况进行了说明,但是,事件的内容和类别数、应用程序的处理内容没有特别限定。而且,事件队列管理模块101也可以根据事件的类别和应用程序的处理内容,对删除存储在事件队列117中的事件对象130的基准进行适当变更。并且,在上述实施方式中,作为不必要事件,删除事件类别与新的事件对象130的事件类别相同的事件对象130,但是,例如,也可以对关联或类似的事件类别进行编组并登记,参照该登记信息,作为不必要事件,删除事件类别与新的事件对象130的事件类别关联或类似的事件对象130。
并且,在上述实施方式中,对在应用程序执行环境104中设置事件队列管理模块 101的情况进行了说明,但是,例如,也可以设置在基本软件部103或应用程序安装主体105 等中,还可以独立地设置在移动机100中。标号说明100 移动机;101 事件队列管理模块;103 基本软件部;104 应用程序执行环境;105 应用程序安装主体(应用程序);107 消息发送接收部;108 开闭检测开关;109 定时器模块;110 消息箱;111 消息箱增减检测部;112 终端开闭状态检测部;113 指定定时器时刻检测部;117 事件队列;118 队列管理部;119 事件类别检测部;120 停止状态检测部;121 事件删除部;122 消息箱状态处理程序;123 终端开闭状态处理程序; 124 指定定时器时刻检测处理程序;130 事件对象;131 类别管理部;132 参数部。
权利要求
1.一种事件队列管理装置,在应用程序执行环境中工作的应用程序由于发生事件而进行处理的情况下,该事件队列管理装置进行所述事件的队列管理,其特征在于,该事件队列管理装置具有队列管理单元,其将已发生的事件存储在队列中,进行所述事件的队列管理; 事件类别检测单元,其检测由所述队列管理单元进行队列管理的所述事件的事件类别;停止状态检测单元,其检测所述应用程序执行环境的停止状态;以及事件删除单元,其在所述停止状态检测单元检测到所述应用程序执行环境的停止状态时,在由所述队列管理单元存储在所述队列中的事件中,根据由所述事件类别检测单元检测到的所述事件的事件类别,检索不必要事件,删除所述不必要事件。
2.根据权利要求1所述的事件队列管理装置,其特征在于,该事件队列管理装置还具有新事件检测单元,该新事件检测单元检测新事件的发生, 在由所述新事件检测单元新检测到事件时,所述事件删除单元删除所述不必要事件。
3.根据权利要求1或2所述的事件队列管理装置,其特征在于,所述事件删除单元删除存储在所述队列中的事件中的、事件类别与新发生的事件的事件类别相同的事件。
4.一种事件队列管理方法,在应用程序执行环境中工作的应用程序由于发生事件而进行处理的情况下,进行所述事件的队列管理,其特征在于,该事件队列管理方法具有以下步骤队列管理步骤,将已发生的事件存储在队列中,进行所述事件的队列管理; 事件类别检测步骤,检测由所述队列管理步骤进行队列管理的所述事件的事件类别; 停止状态检测步骤,检测所述应用程序执行环境的停止状态;以及事件删除步骤,在所述停止状态检测步骤中检测到所述应用程序执行环境的停止状态时,在由所述队列管理步骤存储在所述队列中的事件中,根据由所述事件类别检测步骤检测到的所述事件的事件类别,检索不必要事件,删除所述不必要事件。
全文摘要
本发明的目的在于,在应用程序执行环境从暂停状态恢复时,防止由于不必要事件而连续执行应用程序的情况。在事件队列管理模块(101)中设有队列管理部(118),其按照事件的发生顺序,在事件队列(117)中存储从基本软件部(103)的各事件检测单元通知的事件对象(130),进行队列管理;事件类别检测部(119),其检测由队列管理部(118)进行队列管理的事件对象(130)的事件类别和参数;停止状态检测部(120),其检测应用程序执行环境(104)的停止状态;以及事件删除部(121),其在应用程序执行环境(104)为停止状态时,删除存储在事件队列(117)中的事件对象(130)中的不必要事件。
文档编号G06F9/48GK102203738SQ200980143279
公开日2011年9月28日 申请日期2009年10月28日 优先权日2008年10月30日
发明者土屋二朗, 户部章子, 津田雅之 申请人:株式会社Ntt都科摩

最新回复(0)