图像形成装置,程序控制方法及程序的制作方法

文档序号:2809232阅读:165来源:国知局
专利名称:图像形成装置,程序控制方法及程序的制作方法
技术领域
本发明涉及一种图像形成装置,程序控制方法及程序,特别涉及一种可 追加程序的图像形成装置,程序控制方法及程序。
背景技术
近年来,主要在称为复合机或联合机的图像形成装置中,已有可能在出 厂后,利用公开的应用程序界面(Application Program Interface,以下简 记为"API"),进行新的应用软件开发和安装的程序(例如,参照专利文献 1)。在这种图像形成装置中,能产生不仅可安装和利用该图像形成装置卖主 开发的应用软件,还可安装和利用其他软件卖主开发的应用软件的局面。
在图像形成装置这样的组合型机器场合,有关存储器等资源的限制,比 通用型计算机严格得多。因此, 一般都预先对应用软件的存储器占用等资源 使用量设置限制,要求各应用软件卖主,设计可在该限制(以下称为"资源 限制")的范围内运行的应用软件。
专利文献1日本特开2005—269619号公报
然而,从软件卖主来看,都愿意提供一种更便利、功能更强的应用软件。 一般来说,功能越强,程序对存储器的占用量(消耗量)越有增加的倾向。因 此,市场上存在着以过度考虑终端用户便利,而不遵守资源限制状态下提供 应用软件的可能性。
另外,即使每个应用软件都是遵守资源限制而编成,当多个应用软件并 列使用时,随着用户使用方式不同,也可能出现图像形成装置资源的枯竭。
在资源枯竭的情况下,应用软件的动作得不到保证,存在着不仅对终端 用户产生损失,而且对图像形成装置和开发应用软件的卖主都会产生因要査 明原因而造成工作负担等问题。

发明内容
本发明就是为解决上述先有技术所存在的问题而提出来的,本发明的目 的在于,提供一种可降低因程序造成误动作可能性的图像形成装置、程序控 制方法及程序。
为了实现上述目的,本发明提出以下方案
(1) 一种图像形成装置,可追加程序,其特征在于,包括 记录手段,在上述程序第一启动时,将满足进行该程序处理所需的存储
器占用量,记录在存储装置中;
控制手段,在上述程序第二启动中,进行该程序处理时,从上述存储装 置取得进行后的存储器占用量,当所取得的存储器占用量和被启动的其他程 序的存储器占用量的合计值,超过预设限定值的情况下,令上述处理进行转 为待机。 、
(2) 在上述(l)的图像形成装置中,其特征在于
上述控制手段进行控制,在进行上述某个程序处理时,在令处理进行为 待机的程序进行之后的存储器占用量和其他程序的存储器占用量之合计值, 处于上述限定值以下时,使得上述待机的程序的处理进行。
(3) 在上述(1)或(2)的图像形成装置中,其特征在于 进一步包括判断手段,上述程序第一启动时,根据记录在上述存储装置
的信息,判断该程序的存储器占用量的最大值,是否在预设限定值以下;
对通过上述判断手段判定为存储器占用量的最大值在上述限定值以下 的程序,准予进行上述第二启动。
(4) 在上述(3)的图像形成装置中,其特征在于
上述判断手段对上述存储器占用量的最大值和记录在第一文件中的限 定值进行比较。
(5) 在上述(1)或(2)的图像形成装置中,其特征在于 上述控制手段进行控制,在上述程序的第二启动之时,根据记录在上述
存储器中的信息,判断该程序存储器占用量的最大值,当该最大值超过预设 限定值时,使该程序不启动。
(6) 在上述(1)-(5)任一个的图像形成装置中,其特征在于
进一步包括操作手段,用于在上述程序的第一启动时,依照记录在第二 文件中的定义内容,产生对该程序操作画面的输入。
(7) —种程序控制方法,由可追加程序的图像形成装置执行,其特征在 于,包括
记录工序,在上述程序第一启动时,将满足进行该程序处理所需的存储 器占用量,记录在存储装置中;
控制工序,在上述程序第二启动中,进行该程序处理时,从上述存储器 取得进行后的存储器占用量,当所取得的存储器占用量和被启动的其他程序 的存储器占用量的合计值,超过预设限定值的情况下,令上述处理的进行转 为待机。
(8) 在上述(7)的程序控制方法中,其特征在于
上述控制工序进行控制,在进行上述某个程序处理时,在令处理的进行 待机的程序进行之后的存储器占用量和其他程序的存储器占用量之合计值, 处于上述限定值以下时,使得上述待机的程序的处理进行。
(9) 在上述(7)或(8)的程序控制方法中,其特征在于 进一步包括判断工序,在上述程序第一启动时,根据记录在上述存储器
的信息,判断该程序的存储器占用量的最大值,是否在预设限定值以下;
在上述判断工序中,对判定为存储器占用量的最大值在上述限定值以下 的程序,准予进行上述第二启动。
(10) 在上述(9)的程序控制方法中,其特征在于
上述判断工序对上述存储器占用量的最大值和记录在第一文件中的限 定值进行比较。
(11) 在上述(7)或(8)的程序控制方法中,其特征在于 上述控制工序进行控制,在上述程序的第二启动之时,根据记录在上述
存储器中的信息,判断该程序存储器占用量的最大值,当该最大值超过预设 限定值时,使该程序不启动。
(12) 在上述(7)-(ll)任一个的程序控制方法中,其特征在于 进一步包括操作工序,在上述程序的第一启动时,依照记录在第二文件
中的定义内容,产生对该程序操作画面的输入。
(13) —种程序,使可追加程序的图像形成装置起作为记录手段和控制
手段的功能,其中
上述记录手段在上述程序第一启动时,将满足进行该程序处理所需的存
储器占用量记录在存储装置中;
上述控制手段在上述程序第二启动中,进行该程序处理时,从上述存储 器取得进行后的存储器占用量,当所取得的存储器占用量和被启动的其他程 序存储器占用量的合计值超过预设限定值的情况下,令上述处理的进行转为 待机。
(14) 在上述(13)的程序中,其特征在于
上述控制手段在进行上述任一程序处理时,在令处理进行待机的程序进 行之后的存储器占用量和其他程序的存储器占用量之合计值处于上述限定 值以下时,使得上述待机的程序的处理进行。
(15) 在上述(13)或(14)的程序中,其特征在于
进一步包括判断手段,在上述程序第一启动时,根据记录在上述存储器 里的信息,判断该程序的存储器占用量的最大值,是否在预设限定值以下;
对由上述判断手段判断为存储器占用量的最大值在上述限定值以下的 程序,准予进行上述第二启动。
(16) 在上述(15)的程序中,其特征在于
上述判断手段将上述存储器占用量的最大值和记录在第一文件中的限 定值进行比较。
(17) 在上述(13)或(14)的程序中,其特征在于
上述控制手段根据在上述程序第二启动时,记录在上述存储器的信息, 判断该程序的存储器占用量的最大值,当该最大值超过预设限定值时,使该 程序不启动。
(18) 在上述(13)-(17)任一个的程序中,其特征在于 进一步包括操作手段,用于在上述程序的第一启动时,依照记录在第二
文件中的定义内容,产生对该程序操作画面的输入。
在这样的图像形成装置中,可降低因程序造成误动作的可能性。 下面说明本发明的效果。
按照本发明,可以提供一种能降低因程序造成误动作可能性的图像形成 装置、程序控制方法及程序。


图1是用于说明本发明实施形态概要的图。图2是表示本发明实施形态中的复合机硬件构成例子的图。图3是表示本发明实施形态中的复合机软件构成例子的图。图4是表示应用软件包和服务包的状态转移模型的实装例图。图5是用于说明请求路径控制部主要功能的图。
图6是用于说明临时启动脚本(script)及临时启动服务的图。图7A,7B是用于说明第一实施形态中的复合机的临时启动的处理工
序用的时序图,图7B是图7A的延续。
图8是表示记录在扫描应用软件的应用软件管理文件上的应用软件
信息例子的图。
图9是表示第一实施形态中的主脚本记述例子的图。
图10是表示第一实施形态中的方案脚本记述例子的图。
图ll是表示扫描应用软件的操作画面例子的图。
图12是表示第一实施形态中的动作脚本记述例子的图。
图13是表示说明临时启动记录句法例子用的图。
图14是表示临时启动记录具体例子的图。
图15是用于说明基于安全管理器的对象生成源识别方法的图。
图16是用于说明使用线程(thread)组的调用源的应用软件名识别方
法的图。
图17是用于说明将多个应用软件并列启动情况下存储器占用情况的图。
图18是表示第二实施形态中的主脚本记述例子的图。图19是用于说明第二实施形态中的SAS管理器的启动中的应用软件 的管理处理用的流程图。
图20是表示通过状态转移限制,合适地管理存储器占用量情况的图。
图21是用于说明使用第三实施形态中的临时启动进行障碍分析的方
法所用的图。.
图22是用于说明使用第四实施形态中的临时启动进行障碍分析的方 法所用的图。
图中,IO为复合机,30为JSDK应用软件,31为SAS管理器,32为应用软 件包,33为服务包,40为JSDK平台,50为请求路径控制部,60为本地服务网 络,70为临时启动脚本,80为临时启动记录,121为摄像部,122为印刷部, 201为控制器,202为操作面板,203为传真控制单元,211为CPU, 212为ASIC, 221为NB, 222为SB, 23为MEM-P, 232为MEM-C, 233为HDD, 234为存储卡插槽, 235为存储卡,241为NIC, 242为USB设备,243为IEEE1394设备,244为并口 移动硬盘(Centronics)设备,321为扫描应用软件,331为扫描服务,332为 面板服务,333为临时启动服务。
具体实施例方式
下面,参照附图详细说明本发明实施形态,在以下实施形态中,虽然对构 成要素,种类,组合,形状,相对配置等作了各种限定,但是,这些仅仅是例举, 本发明并不局限于此。
图l是说明本发明实施形态概要的图。在本发明的实施形态中,复合机 IO是可能追加应用软件图像形成装置之一例。图中,虽然上下表示两个复合 机IO,不过这是表示随时间变化的同一台复合机IO。
在本实施形态中,对于新安装到复合机10上的应用软件,首先,进行临 时启动(Sll)。所谓临时启动,是指为调査应用软件所需资源占用量和使用 应用软件的复合机10内之服务(功能)等(以下将表示这些的信息称为"应用 软件动作信息")而启动应用软件的过程。在本实施形态中,临时启动的应 用软件,不能对用户提供该应用软件本来的功能。在临时启动的时候,复合 机10将应用软件动作信息,以临时启动记录的形式输出(S12)。临时启动一 结束,复合机10便按照临时起动记录,判断临时启动成功与否(S13)。所谓 临时启动成功,是指被临时启动应用软^W勺动作,已被确认在预定的限定(有 关对资源占用量和所使用复合机10内的服务等的限制)范围之内。所谓临时
启动失败,是指被临时启动应用软件的动作,已被确认不遵守预定限制。
若临时启动成功,则该应用软件就安装到复合机io内,使正式启动成为
可能状态。因此,在有用户发启动指令时,便可进行正式启动(S14)。所谓 正式启动,是相对临时起动而言的用语,是指为发挥应用软件的本来功能而 启动应用软件。也就是说,通过正式启动即可进入应用软件的正常使用状态。 在正式启动时,复合机10根据临时启动记录来控制应用软件的动作。例如, 或者拒绝应用软件的启动,或者限制应用软件启动的时机,或者限制应用软
件状态的转移(处理的进行),或者限制由应用软件形成的对复合机10服务的使用。
如上所述,在复合机10的情况下,对新追加(安装)的应用软件,可先进
行临时启动,并根据临时启动时所取得的临时启动记录,来控制正式启动的 动作。因此,就可能限制不遵守预定资源占用量等限制的应用软件的动作, 还可能在多个应用软件同时(并列)启动之时,控制各应用软件对资源占用的 时机。
以下,进行具体说明。图2是表示在本发明实施形态中的复合机硬件构 成例的图。在图2中,复合机10包括控制器201、操作面板202、传真控制单 元(FCU)203、撮像部121和印刷部122等。
控制器201由以下部件构成CPU211、 ASIC212、 NB221、 SB222、 MEM— P231、 MEM—C232、 HDD(硬盘驱动器)233、存储卡插槽2 34、 NIC(网络界面 控制器)241、 USB设备242、 IEEE1394设备243、并口移动硬盘设备244。
CPU211是各种信息处理用的集成电路(IC) 。 ASIC212是各种图像处理 用的集成电路(IC) 。 NB221是控制器201的北桥。SB222是控制器201的南桥。 MEM — P231是复合机10的系统内存。MEM — C232是复合机10的本地内存。 HDD233是复合机10的存储器。存储卡插槽234是插置存储卡235用的狭槽。 NIC241是基于MAC地址的网络通讯用控制器。USB设备242是提供USB规格连接 终端用的设备。1EEE1394设备243是提供IEEE1394规格连接终端用的设备。 并口移动硬盘设备244是提供并口移动硬盘方式连接终端用的设备。
操作面板202是供操作员在复合机10上进行信息输入用的硬件(操作 部),同时又是为操作员从复合机10获得信息输出的硬件(显示部)。
图3是表示在本发明实施形态中的复合机的软件构成例子的图。在图3
中,复合机10的软件由JSDK应用软件30、 JSDK平台40、请求路径控制部50 以及本地服务网络(native service layer)60等构成。这些软件,是由记录 在存储卡235和其他存储器上的程序,通过CPU211处理而起作用的。
本地服务网络60对上位模块提供利用复合机10硬件和软件功能所用的 界面,按照该界面的调用(功能使用请求),进行实现该功能所用控制。例如, 在本地服务网络60中,包括以下模块提供有关网络通讯控制界面的模块、 提供有关传真控制界面的模块、提供有关储备文件(保存在HDD233中的文件 例如图像数据)送信处理控制界面的模块、提供有关摄像部121和印刷部122 控制界面的模块、提供有关存储器和HDD233等控制界面的模块、提供有关操 作面板202控制界面的模块、提供有关认证处理和计费处理控制界面的模块 和提供有关用户信息管理界面的模块等。
JSDK平台40是提供JSDK应用软件30运行环境的软件平台,对上位模块提 供相对于本地服务网络60的Java(注册商标)界面。JSDK平台40含有有关Java (注册商标)的标准类(class)和扩展用于复合机10级的类库(class libraries)以及Java (注册商标)虚拟机等。例如,在图中,作为JSDK平台 40—部分,示出了安全管理器41和记录服务42。
安全管理器41根据预先定义在策略文件(policy file)中的访问控制 信息,限制由JSDK应用软件30发出的对文件、网络插座以及打印机等资源的 访问。也就是说,安全管理器41是这样构成的当JSDK平台40请求产生对资 源访问时,对安全管理器41的调用即时生成。安全管理器41,按照该调用来 判断可否对资源访问。另外,安全管理器41也可以使用在Java标准中的安全 管理器(Security Manager)类来实现。
记录服务42在JSDK应用软件30临时启动之时,输出临时启动记录80。
另外,JSDK平台40实装有开放业务网关开发组织0SGi(0pen Service Gateway initiative)开发的平台。所谓OSGi平台,是由OSGi联合研发的标 准化技术,是提供基于Java(注册商标)语言的开放软件零件化技术编制而成 的软件部件运行环境的软件平台。在OSGi平台上,Java(注册商标)语言的软 件,以被称为"包"(bundle)的软件部件的形式而安装的。 一个包由一个
JAR (Java AR chive)文件构成,可各自独立地动态(无需装置重新启动)安装。 JSDK应用软件30是在JSDK平台40中,使用公开的专用SDK(软件开发工具 包)编制的应用软件(以下称为"SDK应用软件")。在SDK应用软件中,将使 用Java(登录商标)语言开发的应用软件,特称为JSDK应用软件,并作为临时 启动的对象。
图中,作为JSDK应用软件30的例子,有SAS(SDK Application Service) 管理器31、应用软件包32和服务包33等。SAS管理器31,进行其他的JSDK应 用软件30(应用软件包32和服务包33等)的安装(追加)、卸载(删除)、启动以
及启动解除等控制。
应用软件包32是将操作画面显示在操作面板202上,作为可由终端用户 通过该操作画面直接使用(操作)的JSDK应用软件30的包。图中,作为应用程 序包32的一个例子,示出了扫描应用软件321。扫描应用软件321,是实现从 撮像部121形成的原稿读出图像的应用软件。
服务包33是为对应用软件包32等提供服务的JSDK应用软件30的包。也就 是说,服务包33,按照来自应用软件包32等的调用,进行满足各服务包33 的处理,并将其处理结果返回应用软件包32等。图中,作为服务包33之一例, 示出扫描服务331 、面板服务332和临时启动服务333等。
扫描服务331提供有关图像读取功能的服务。面板服务332,提供有关操 作面板202显示控制的服务。临时启动服务333根据临时启动脚本(script) 70的记述内容,提供有关临时启动处理控制的服务。有关临时启动脚本70' 的情况,待后详述。
另外,在本实施形态中,应用软件面包32和服务包33等应用软件,按照 初始(iriit)状态一暂停(pause)状态一激活(active)状态一破坏(destroy) 状态的顺序,按照状态转移(处理进行)的状态转移模型产生动作。init状态 是初始状态,进行初期处理等。启动紧接之后的应用软件,首先,转移到init 状态。pause状态是待机状态。pause状态的应用软件, 一直待机到可能运行 为止。active状态,是应用软件本来的功能正被执行的状态。destroy状态 是终止状态。终止的应用软件转移到destroy状态,进行终止处理(资源开放. 等)结束之后,即行终止。为了实现这一状态转移模型,应用软件包32和服务包33,按如下构成。 图4是表示应用软件包和服务包的状态转移模型的实装例子的图。如图4所 示,应用软件包32和服务包33(在图4的说明中,称为"应用软件包32等"。), 每种状态都由实例化的对象来构成。也就是说,与init状态、pause状态、 active状态、destroy状态相对应,均实例化为init状态对象341、 pause状 态对象342、 active状态对象343、 destroy状态对象344。
应用软件包32等一接受到发生状态转移的事件(信息),就将从转移源的 对象向转移目标的对象的处理控制(该应用软件的控制)进行移动。例如,从 init状态对象341向pause状态对象342处理的控制移动。通过该控制的移动, 实现状态的转移。
另外,应用软件包32等依照状态转移模型动作,并不是为了应用本发明, 打算要按照某一状态转移模型实际安装应用软件。
请求路径控制部50监视对基于JSDK应用软件30的本地服务网络60的请 求(指定功能的使用请求),作为该请求发行源的JSDK应用软件30,按照是否 处于临时启动中,控制该请求的通知路径。也就是说,对于来自作为临时启 动中的JSDK应用软件30的请求,通知临时启动服务333,对于来自不是在临 时启动中(在正式启动中)的JSDK应用软件30的请求,则通知到本地服务网 络60。
图5是说明请求路径控制部主要功能用的图。图5中,对与图3属同一部 分的功,能赋予同一符号。在图5中,应用软件A322,是正式启动的应用软件 包32。应用软件B323是临时启动的应用软件包32。如图中所示,请求路径控 制部50对于正式启动的应用软件A322,让借助JSDK平台40进行的、对本地服 务网络60的调用通过(S21)。因此,在此情况下,通过基于本地服务网络60 的控制,复合机10实际动作。
另一方面,请求路径控制部50关于临时启动的应用软件B323,对通过 JSDK平台40进行的本地服务网络60的调用,不通知本地服务网络60,而对临 时启动服务333(S22)通知。在此情况下,临时启动服务333,象本地服务网 络60—样模拟动作,将其结果以与本地服务网络60同样的形式对应用软件 B323应答。由此,从应用软件B323可见,本地服务网络60被正常调用,其功
能已经实行。这样,在临时启动时,通过请求路径控制部50,不使本地服务
网络60以下起作用(即实际上不让复合机10动作),而进行JSDK应用软件30 的验证。
其次,详细说明临时启动脚本70及临时启动服务333。图6是说明临时启
动脚本及临时启动服务用的图。
如图6所示,临时启动脚本70由主脚本71,方案辨本72和动作脚本73之 三个脚本文件构成。主脚本71定义有鉴别临时启动中所使用的方案脚本72 和动作脚本73以及判断临时启动成功与否的准则等。方案脚本72定义有临时 启动的方案。所谓方案(scenario)是指通过操作面板202,对被临时启动的 应用软件进行操作的工序。在动作脚本73中,定义有通过请求路径控制部50, 对临时启动服务333通知的本地服务网络60的调用所进行的动作(仿真内 容)。
主脚本71由临时启动服务333解释。因此,临时启动服务333依照主脚本 71控制临时启动。临时启动服务333生成解释方案脚本72用的线程(thread, 程序内部的顺序控制流)(方案服务334)和解释动作脚本73用的线程(动作服 务335)。
方案服务334作为依照方案脚本72,对临时启动中的应用软件的输入操 作指示的模拟操作者起作用。按方案服务334的操作指示发生的、基于该应 用软件作出的对本地服务网络60的调用,通过请求路径控制部50通知到动作 服务335。动作服务335依照动作脚本73的定义,对被通知的调用进行仿真, 作为其结果,进行与本地服务网络60相同形式的应答。通过进行与本地服务 网络60相同形式的应答,便可从应用软件看到,本地服务网络60已被调用。
以下,说明复合机10的处理工序。图7A和图7B是说明有关第一实施形态 的复合机临时启动处理工序用的时序(sequence)图。
如果接到安装应用软件的指示,SAS管理器31便检索记录在插入复合机 10本体存储卡插槽234的SD卡上的应用软件管理文件,并从SD卡内读取被检 索出来的全部应用软件管理文件(SIOI)。这里,所谓应用软件管理文件, 是指记录有应用软件的构成要素和安装等所必要的信息及其他管理信息等 (以下,称为"应用软件信息")的文件。应用软件管理文件被附加到每一个应用软件上。因此,在SD卡内记录着多个JSDK应用软件30的情况下,便被取 出多个应用软件管理文件。
例如,图8是表示记录在扫描应用软件的应用软件管理文件中的应用软 件信息例子的图。如图8所示的应用软件信息410,是按照扩展了以 皿(extensible Markup Language)形式为基础的肌P (Java Net work Launching Protocol (JSR—56方法))的形式来表达的。
应用软件信息410主要由〈information〉标签包围的information要素 411、由〈resource〉标签包围的resource要素412、由〈pseudo-boot〉标签包 围的pseudo-boot要素413和由〈xlet-desc〉标签包围的xlet要素414等构成。
在information要素411中,主要记录着识别应用软件(扫描应用软件321) 用的信息。例如,在product-id要素4111中,记录着扫描应用软件321的产 品标识符(ID),在title要素4112上,记录着扫描应用软件321的标题(应 用软件名),在vendor要素4113上,记录着扫描应用软件321的开发卖主名(记 述4113)。
在resource要素412中,记录着有关扫描应用软件321执行所必要资源的 信息。例如,作为jar要素4121的href属性值,记录着扫描应用软件321的JAR 文件的文件名(通过名)。
在pseudo-boot要素413中,定义有有关临时启动的信息。例如,在 pseudo-boot要素413的trigger属性4131的值中,指定执行临时启动的时机。 图中的例子设定为"install"("安装")。它表示在扫描应用软件321 安装时候执行临时启动。另外,在platform属性4132的值中,指定进行临时 启动的平台。图中的例子设定为"same"。它表示在与正式启动同一平台上, 执行临时启动。同时,指定扫描应用软件321的临时启动脚本70的主脚本71 的文件名(ScanApp.pbj),作为pb要素4133的href属性的值。另外, pseudo-boot要素413,是在被认为有必要进行临时启动情况下才记录的。因 此,根据pseudo-boot要素413的有无,即可判断临时启动的需要与否。
在xlet要素414的visible属性4141的值中,记录着扫描应用软件321在 操作面板202上进行画面显示与否。图中的例子设定为"visible"。它表示 扫描应用软件32进行画面显示。
另外,图8是表示扫描应用软件321的应用软件信息的例子,对其他的应
用软件,也按同样的形式定义有应用软件信息。
其次,SAS管理器31根据已取得的应用软件管理文件,判断可在复合机 IO上安装的应用软件,将可安装的应用软件的一览表(例如应用软件名的一 览表)显示在操作面板202上(S102、 S103)。
操作者从显示在操作面板202上的应用软件一览表中,选择进行要安装 的应用软件。在这里,假定扫描应用软件321被选中。通过选择扫描应用软 件321,扫描应用软件321安装的开始请求,就被通知到SAS管理器31(S104)。
SAS管理器31按照安装开始的请求,根据扫描应用软件321的应用软件管 理文件的内容(应用软件信息410),向JSDK平台40请求扫描应用软件321的 安装(S105) 。 JSDK平台40,便将扫描应用软件321作为包而进行安装(S106)。
其次,SAS管理器31确认在应用软件信息410中是否记录着临时启动的指 示(pseudo-boot要素413),在记录有该指示的情况下,开始扫描应用软件321 的临时启动(S107)。在临时启动服务333未被启动的情况下,SAS管理器31 开始启动临时启动服务333(S108)。首先,SAS管理器31, 一对JSDK平台40 进行临时启动服务333的安装请求(S109) , JSDK平台40便安装临时启动服务 333(S110)。接着,SAS管理器31,对JSDK平台40进行临时启动服务333启动 的请求(Slll),则JSDK平台40即行启动临时启动服务333(S112)。
临时启动服务333—起动,就将自己(临时启动服务333)可提供的服务界 面信息登录到JSDK平台40上(S113)。接着,临时启动服务333自JSDK平台333 取得请求路径控制部50界面信息(S114)。这里,所谓界面信息,是指调用请 求路径控制部50所必要的信息。另外,请求路径控制部50,在复合机10启动 时等情况下启动,那时界面信息已被登录到JSDK平台40上。 ■ 其次,SAS管理器31从JSDK平台40取得临时启动服务333的界面信息 (S115)。然后,SAS管理器31参照应用软件信息410的pb要素4133,取得在pb 要素4133中指定着其文件名("ScanApp.pbj")的主脚本71。 SAS管理器31 通过将主脚本71和扫描应用软件321的应用软件名,转移到临时启动服务333 上,请求临时启动服务333对扫描应用软件321的临时启动进行控制(S116)。
图9是表示第一实施形态中的主脚本定义例子的图。如图9中记述的主脚本71的各记述的内容,在该记述被执行的步骤中说明。再者,在本实施形态
中,主脚本71、方案脚本72及动作脚本73,都被记录在与作为对象的应用软 件相同的SD卡内。
临时启动服务333对请求路径控制部50提出请求,将被看作临时启动对 象的扫描应用软件321的应用软件名通知请求路径控制部50,将来自扫描应 用软件321的本地服务网络60的调用请求(信息),通知临时启动服务333 (S117)。请求路径控制部50保持好在此被通知的应用软件名,识别被看作临 时启动对象的应用软件。
其次,临时启动服务333执行主脚本71的记述711。在记述711中,定义 着使用文件名为"ScanApp. s"的方案脚本72和文件名为"ScanA卯.b"的动 作脚本73执行临时启动的内容。因此,临时启动服务333,启动(生成)方 案服务334,对方案服务334转移方案脚本72(ScanApp. s)(S118)。同时,临 时启动服务333启动(生成)动作服务335,对动作服务335,转移动作脚本 73(S a由p. b) (S119)。
图10是表示在第一实施形态中的方案脚本的定义例子的图。在记述于图 10的方案脚本72中定义有以下内容扫描应用软件321的操作画面显示之后, 经过3秒钟按下开始按钮,如果可确定在操作画面上有"Co即lete"这一文 字显示,就做出已按方案动作了的判断。这一定义,被看作为是扫描应用软 件321的操作画面应该是如下所述的前提。
图ll是表示扫描应用软件操作画面例子的图。在图11中,显示有两个操 作画面。左侧操作画面510 a表示初期状态(操作画面刚刚显示之后的状态)。 右侧操作画面510b表示扫描应用软件321正常结束时的状态。另外,在以下 不区别左右双方的情况下,就是指"操作画面510"。
在本实施形态中,操作画面510由表示对象是扫描应用软件321的标签 511、开始按钮512和Result(结果)标签513构成。开始按钮512是为用户输入 扫描应用软件321执行开始指示的按钮。Result标签513是表示扫描应用软件 321处理结果的标签,在正常结束情况下(扫描成功情况下),如在操作画面 510b所示,将显示"Complete"这一字符串;在异常结束(扫描失败)情况下, 例如,则显示"Error"这一字符串。再者,如操作画面510b所示,在初期
状态下,Result标签513什么都不显示。
另外,图12是表示第一实施形态中动作脚本定义例的图。动作脚本73 中的各项记述并不是定义在每个步骤都执行,而是带有作为针对动作服务 335设定信息的意思。也就是说,在记述731中,设定有动作(模拟动作)内容, 以使其可按照扫描服务(在本地服务网络60中,是提供有关扫描仪(撮像部 121)服务的模块)发出的请求等进行正常动作。另外,在记述732中,也设定 有动作(模拟动作)内容,以使其可按照面板服务(在本地服务网络60中,是 提供有关操作面板202服务的模块)发出的请求等进行正常动作。
其次,SAS管理器31对JSDK平台40提出扫描应用软件321的启动请求 (S120)。但是,扫描应用软件321是通过临时启动服务333变成临时启动的。 JSDK平台40按照扫描应用软件321的启动请求,将扫描应用软件321的状态, 转移到init状态,并将扫描应用软件321已转移到init状态的信息,通知到 记录服务42(S121)。记录服务42将被通知的信息作为临时启动记录80记录下 来。
临时启动记录80根据例如以下那样的结构句法记录成文件。图13是用于 说明临时启动记录句法例子的图。在图13中, 一行(一次记录内容)临时启动 记录的句法,是按树形结构记载的。树的各个节点(node)表示构成临时启 动记录的项目。
如图所示,在临时启动记录80中,序号记录在第l项,日期为第2项,时 刻为第3项,应用软件名为第4项。序号是表示记录的记录顺序的编号。日期 及时刻是表示该记录做记录的日期和时间。应用软件名是被临时启动的应用 软件的应用软件名。但是,也可以是产品的标识符(ID号)。其次,在第5项 记录着所记录内容的类别。作为类别,记录有"Bundle"、 "Memory"、 "Scan"、 "Panel" 、 "hdd"。
"Bundle"表示有关包(应用软件)状态转移的记录。在此情况下,在第 6项中,作为转移后包的状态,记录有例如"initState"或"activeState"。 "initState',表示init状态。"activeState,,表示active状态。
"Memory"表示有关存储器的确保或开放的记录。在此情况下,在第6 项中,用该应用软件的堆(heap)存储器(或简称"堆内存")占用量的合计
值"Heap=〈Size>"的形式记录。在第7项中,用该应用软件在栈(stack) 区占用量的合计值"stack 二〈Size〉"的形式记录。在第8项中,作为被重新 确保存储器对象的类别,例如记录成"Object" 。 "Object"表示对象。在 第9项中,记录有被重新确保存储器对象的型号或类名及其大小。另外,在 图中虽然记载"Heap" 、 "stack" 、 "Object"似乎是选择的关系,但如 上所述,各项目都是串联记录着的。
"Scan"表示是有关扫描仪(撮像部121)操作的记录。在此情况下,作 为第6项,作为有关扫描仪操作的类别,例如,记录有"setup" 、 "Start"、 "complete" 。
"setup"表示扫描仪安装。"Start"表示扫描开始。 "co即lete"表示扫描成功。在"setup"的情况下,作为第6项,记录着表 示属性设定的值("attribute"),作为第7项,记录着是单色扫描("mono"), 还是彩色扫描("color")。
"Panel"表示有关操作面板202操作的记录。在此情况下,在第6项中, 作为操作面板202操作的类别,例如,记录着"show" 。 "show"表示显示 对于操作面板202的信息(画面或信息等)。
"hdd"表示有关HDD233操作的记录。在此情况下,在第6项中,作为操 作的类别,例如记录着"read"或"write" 。
"read"表示信息的读出。 "write"表示信息的写入。
图14是表示临时启动记录的具体例子的图。如图14所示的临时启动记录 80,是按照图13中所说明的句法记录而成的例子。在图14,示出各项目的值, 采用逗号分隔的CSV(Comma S印arated Values)形式记录的例子。图中,第l 行表示按照步骤S121的通知所记录的记录例子。也就是说,"0001"表示序 号,"2007. 05. 10"表示日期,"11:30:24:04"表示时刻,"ScanA卯"表 示扫描应用软件321的应用软件名。同时,因为第5项是"Bundle",第6项 是"initState",所以可知,第1行记录所记录的是扫描应用软件321已转 移到init状态。
回到图7。接在步骤S121之后,JSDK平台40,按照扫描应用软件321的启 动请求,将扫描应用软件321的状态,转向active状态,并将扫描应用软件 321已转移到active状态的信息,通知到记录服务42(S122)。记录服务42,
将被通知的信息记录作为临时启动记录80。在这里,被记录的记录内容,相
当于图14之第2行。另外,在图7,为了方便起见,省略了扫描应用软件321 往pause状态的转移。
其次,JSDK平台40启动扫描应用软件321的包(S123)。扫描应用软件321 一经启动,便从JSDK平台40取得扫描应用软件321自身使用的服务包33界面 信息(S124)。在这里,扫描服务331及面板服务332界面信息也被取得。另 外,扫描服务331及面板服务332,在复合机10启动时等中被启动,此时,界 面信息被登录到JSDK平台40。
其次,根据扫描服务331的界面信息,扫描应用软件321生成利用扫描服 务331所须要的扫描服务331的对象(ScanService类的实例)。以后,从扫描 应用软件321向扫描服务331发出请求的通知,严格地通过该对象进行。扫描 服务331等的服务包33对象的生成,被作为由安全管理器41进行的访问控制 的对象。因此,扫描服务331的对象的生成,在该对象的构造器(〕:/7卜, 夕夕)中是通知至安全管理器41的(S125)。安全管理器41按照该通知,识别 对象生成源(扫描应用软件321)的类名,并将由扫描应用软件321占用的存储 器,连同其类名和对象的大小,通知到记录服务42 (S126)。对象的大小可 根据类名判断。另外,有关安全管理器41是怎样识别对象生成源的内容将于 后述。
记录服务42将被通知的信息记录成临时启动记录80。这里所记录的记录 内容,相当于图14之第3行。在图14之第3行里,记录着"Mernory, Heap=2MB, Stack=100KB, Object。 ScanService=lMB"。它表示,用于扫描应用软件321 的堆(heap)存储器的现总占用量为2MB,在栈区域的现总占用量为100KB, ScanService类的对象已被生成,其大小为1MB。
其次,根据扫描服务331的界面信息,扫描应用软件321相对于扫描服务 331,进行用于构筑与扫描应用软件321的动作相对应的扫描处理用的初期设 定(即单色扫描的初始设定)(S127)。扫描服务331,通过请求路径控制部50, 将来自扫描应用软件321的初始设定请求通知到本地服务网络60上(S128)。 但是,由于初始设定的请求源的扫描应用软件321正在临时启动中,所以, 请求路径控制部50,不将初始设定请求通知本地服务网络60,而是通知动作
服务335(S129)。另外,有关请求路径控制部50如何判断调用源(在这里是初始设定的请求源)是否正在临时启动之中的问题,将于后述。
动作服务器335进行扫描仪初始设定的仿真,并将其结果经由请求路径 控制部50通知请求源(扫描应用软件321)。在这里,依照动作脚本73的记述 731中的设定,通知正常初始设定已经进行。因此,扫描应用软件321判断扫 描的初始设定已正常进行。又,如果扫描应用软件321不是在临时启动中(如 是在正式启动中),被通知到请求路径控制部50的请求,也被通知到本地服 务网络60,实际进行初始设定。
其次,动作服务335将被请求单色扫描的初始设定的信息通知记录服务 42 (S130)。记录服务42将被通知的信息记录为临时启动记录80。在这里被 记录的记录内容相当于图14之第4行。动作服务335还将单色扫描的初始设定 (的仿真)已完成的信息,通知方案服务334 (S131)。方案服务334是起应用 软件模拟操作者作用的服务。因此,不能起到在操作面板202上,让应用软 件的操作画面510a显示出来的作用。因而,方案服务334,在被通知操作面 板202的操作画面510a描画(表示)已完成之前,方案脚本72的定义内容不开 始执行,而忽视来自动作服务335的通知。
另外,由动作服务335发给记录服务42和方案服务334的通知,是按照预 先编入到动作服务335内的逻辑而执行的处理(而不是根据动作脚本73执行 的处理)。也就是说,动作脚本335被安装成这样当被通知到要按照请求路 径控制部50,进行路径变更的服务请求时,将接受到该服务请求的信息,通 知记录服务42,与此同时,按照该服务请求,将动作服务335仿真的结果, 通知方案服务42。
其次,扫描应用软件321,根据面板服务332的界面信息,生成利用面板 服务332所必要的面板服务332的对象(Panel Service类的实例)。以后,从 扫描应用软件321向面板服务332请求的通知,严格通过该对象进行。面板服 务332对象的生成,在该对象的构造器中通知到安全管理器41(S132)。安全 管理器41,依照该通知,识别对象的生成源(扫描应用软件321)的类名,将 由扫描应用软件321占用存储器的情况,连同该类名和对象的大小一起,通 知记录服务42 (S133)。记录服务42将被通知的信息记录作为临时启动记录 80。在这里,被记录的记录内容相当于图14之第5行。在图14之第5行中,记 录着"Memory, Heap=3MB, Stack二300KB, Object, PanelService=lMB"。 它显示由扫描应用软件321占用的堆存储器的现总占用量为3MB,在栈区的现 总占用量为300KB, PanelService类的对象已生成,其大小为1MB。
其次,扫描应用软件321利用面板服务332的界面信息,将扫描应用软件 321的操作画面510a的操作面板202的描画请求,通知面板服务332 (S134)。
其次,面板服务332,构筑(生成)为将扫描仪应用软件321操作画面510a 描绘在操作面板202上而应通知本地服务网络60的画面信息,还要将基于该 画面信息的操作画面510a的描画请求,通过请求路径控制部50,通知到本地 服务网络60(S135)。但因为作为操作画面510a的描画请求源的扫描应用软件 321正在临时启动中,所以请求路径控制部50不是将描画请求通知给本地服 务网络60,而是与画面信息一起通知到动作服务335 (S136)。
动作服务335进行基于画面信息的操作画面510a的描画仿真。其结果, 进行操作画面510a的虚拟性的描绘。在这里,所谓"虚拟性"意指,实际上 在操作面板202上不显示操作画面510 a 。但是,在动作服务335内,保存着 操作画面510a的画面信息。其次,动作服务335,将操作画面510a描画的仿 真结果,经由请求路径控制部50,通知给请求源(扫描应用软件321)。在这 里,将被通知依照动作脚本73的记述732中的设定,正常进行了描画的信息。
其次,动作服务335将已请求操作画面510a描画的信息,通知给记录服 务42(S137)。记录服务42将被通知的信息记录成临时启动记录80。在这里, 被记录的记录内容相当于图14之第6行。同时,动作服务335还将操作画面510 a的描画(之仿真)已完成的信息,通知到方案服务334(S138)。
按照操作画面510a的描画完成的通知,方案服务334开始进行对应方案 脚本72定义内容的处理。首先,根据图10的记述721,取得操作画面510a(图 11)中的开始按钮512的对象(以下称为"开始按钮对象")。开始按钮对象是 构成操作画面510画面信息的对象群之一,是按照记载于记述721函数的调 用,从动作服务335中取得的。其次待机,时间为根据记载在记述722里的函 数,由该函数自变量(变元)所指定的时间(3秒钟)。接着,根据记述723, 将显示开始按钮512己被按下的信息通知给请求路径控制部50 (S139)。另 外,之所以在进行开始按钮512按下的通知之前,待机3秒钟,是因为要将基
于方案服务334的模拟操作输入,调节成由实际用户的操作输入相近的缘故。 也就是说,实际用户并不是在操作画面510a—显示马上就按下开始按钮512, 而是大约等3秒钟左右之后才开始进行操作输入的。
其次,方案服务334按照方案脚本72的记述724,取得操作画面510的 Result标签513的对象(以下称为"Result标签对象")。Result标签对象是 构成操作画面510画面信息的对象群之一,按照被记载在记述724的函数的调 用,从动作服务335中取得。
其次,方案服务334根据方案脚本72的记述725,在Result标签513被更 新之前成为待机状态。因此,记述726以后的处理,在此阶段不被执行。
另一方面,在步骤S139中,从方案服务334接受到开始按钮512按下的通 知信息的请求路径控制部50,将该信息通知到面板服务332(S140)。
面板服务332收到开始按钮512按下的通知,对扫描应用软件321,通知 开始按钮512已被按下的信息(S141)。扫描应用软件321,收到开始按钮512 已按下的通知,便对扫描服务331请求扫描开始(S142)。扫描服务331,要将 来自扫描应用软件321的扫描开始请求,通过请求路径控制部50,通知到本 地服务网络60 (S143)。但是因为作为扫描开始请求源的扫描应用软件321 正在临时启动中,所以请求路径控制部50不是将扫描开始请求通知到本地服 务网络60,而是通知到动作服务335(S144)。
, 其次,动作服务335将被请求扫描开始的信息通知记录服务42(S145)。 记录服务42将被通知的信息记录成临时启动记录80。在这里,被记录的记录 内容相对于图14的第七行。动作服务335再将扫描已开始的信息通知到方案 服务334(S146)。在这里,因为方案服务334处于Result标签513等待更新状 态,所以什么也不进行。
其次,动作服务335进行扫描的仿真,将其处理结果通知请求路径控制 部50(S147)。在这里,将被通知得到表示按照动作脚本73的记述731中的设 定,扫描正常进行完了(正常结束)的信息。动作服务335同时将扫描正常结 束的信息,通知到记录服务42和方案服务334(S148, S149)。记录服务42将 被通知的信息记录成临时启动记录80。在这里,被记录的记录内容,相当于
图14之第8行。同时,因为方案服务334正处于Result标签513的等待更新状 态,所以按照扫描已正常结束的通知,什么都不进行。
另一方面,在步骤S147中,从动作服务335收到了通知扫描已正常结束 信息的请求路径控制部50,将该信息通知到扫描服务331(S150)。扫描服务 331,将扫描已正常结束的信息通知作为扫描开始请求源的扫描应用软件 321 (S151)。
扫描应用软件321,收到扫描已正常结束的通知,便对面板服务332请求, 请求在操作画面510的Result标签513上显示字符串"Complete" (S152)。面 板服务332,收到来自扫描应用软件321的请求,便通过请求路径控制部50, 以将显示字符串"Co即lete"的请求通知给本地服务网络60(S153)。但是因 为作为字符串"Complete"显示请求的请求源的扫描应用软件321正在临时 启动之中,所以请求路径控制部50,不将字符串"Complete"的显示请求通 知给本地服务网络60,而是通知到动作服务335 (S154)。
动作服务335虚拟地在Result标签513上显示字符串"Co即lete"。具体 地说,相对于正保持着的画面信息中的Result标签对象,通过设定字符串 "Complete",进行字符串"Complete"显示处理的仿真。其次,动作服 务335,将仿真的结果经由请求路径控制部50,通知到请求源(扫描应用软件 321)。在这里,将被通知以下内容已按动作脚本73的记述732中的设定, 正常进行了字符串"Complete"的显示。
其次,动作服务335将已请求操作画面510更新的信息,通知到记录服务 42(S155)。记录服务42将被通知的信息记录成临时启动记录80。在这里,被 记录的记录内容相当于图14之第9行。动作服务335,同时还将在Result标签 513上已显示字符串"Complete"的信息通知到方案服务334(S156)。
方案服务334按照该通知,从一直待机到Result标签513更新为止的状态 恢复,根据方案脚本72(图10)的记述726,判断显示在Result标签513的字符 串是不是"Complete"。当显示在Result标签513的字符串是"Complete" 的情况下,方案服务334根据记述727,将被作为临时启动对象的应用软件(扫 描应用软件321),已照方案动作(方案成功)的信息,通知到临时启动服务 333(S157)。另一方面,当显示在Result标签513的字符串不是"Co即lete"
的情况下,方案服务334,根据记述728,将被作为临时启动对象的应用软件, 未照方案动作(方案失败)的信息,通知到临时启动服务333(S158)。
临时启动服务333—旦收到方案成功的通知,就根据主脚本71 (图9)的记 述712,请求记录服务42进行应用软件名为"ScanApp"的应用软件(扫描应 用软件321)的临时启动记录检索。记录服务42根据应用软件名,自临时启动 记录80检索扫描应用软件321的临时启动记录,并将其检索结果通知临时启 动服务333 (S159)。在图14的临时启动记录80中,示出只记录了扫描应用软 件321的记录信息的例子。因此,在这里,到如图14所示临时启动记录80的 第9行为止的内容,原封不动地被通知到临时启动服务333。
其次,临时启动服务333根据主脚本71(图9)的记述713,进行临时启动 成功与否的判断。在记述713中,设定占用存储器在5MB以下、往HDD233无写 入以及扫描方式为单色作为临时启动成功的条件。.因此,临时启动服务333, 在临时启动记录80中,在以"Memory, Heap=X X XMB"的形式记录的堆存 储器的占用量记录中检索最大值,确认该最大值是否在5MB以下。同时,临 时启动服务333在临时启动记录80中,检索"hdd, write"这一记述,确认 有无往HDD233写入。并且,临时启动服务333,在临时启动记录80中,检索 "Scan、 Set叩、attribute、 mono" 这样的记述,确认扫描方式是否为单 色。
根据在本实施形态中的临时启动记录80,可知堆存储器占用量的最大 值,自第5行起是3MB,在5MB以下。同时,"hdd, write"这样的记述不存 在,未被进行往HDD233的写入。并且,在第4行上,存在"Scan, set叩, attribute, mono"这样的记述,扫描方式是单色。因此,临时启动的成功 条件被满足。因此,临时启动服务333,根据主脚本71的记述714,将临时启 动成功的信息,通知SAS管理器31 (S160)。
-5八3管理器31收到临时启动成功的通知,请求JSDK平台40结束临时启动 中的扫描应用软件321(S161) 。 JSDK平台40将转移扫描应用软件321至 destroy状态的信息,通知记录服务42(S162)。记录服务42,将被通知的信 息记录成临时启动记录80。在这里,被记录的记录内容,相当于图14之第10 行。其次,JSDK平台40使扫描应用软件321结束(S163)。 另一方面,SAS管理器31在步骤S161中请求扫描应用软件321结束之后, 将扫描应用软件321的安装完成的信息显示在操作面板202上(S164)。通过该 显示,操作者确认扫描应用软件321已被正常安装(S165)。因此,操作者为 使用扫描应用软件321,便通过操作面板202输入扫描应用软件321的正式启 动指示(S166)。扫描应用软件321的正式启动指示,被通知到SAS管理器 31(S167)。 SAS管理器31,对JSDK平台40请求扫描应用软件321的正式启动 (S168) 。 JSDK平台40正式启动扫描应用软件321 (S169)。
以后,来自被正式启动的扫描应用软件321的请求,经由请求路径控制 部50,不作路径变更就通知本地服务网络60。因此,在实际上进行操作画面 的显示,按照操作者通过操作画面的输入,执行扫描。
另外,在临时启动失败的情况下,例如,在被临时启动的扫描应用软件 321未按方案进行动作的情况下,或临时启动成功的条件(主脚本71的记述 713)未被满足的情况下,在步骤S160中,临时启动服务333,根据主脚本71 (图 9)的记述715,将临时启动失败的信息通知SAS管理器31。按照该通知,SAS 管理器31使扫描应用软件321安装失败的信息显示在操作面板202上,使扫描 应用软件321安装成为无效。因此,操作者不能正式启动(实际利用)扫描 应用软件321。
其次,说明在步骤S126等中,安全管理器41如何识别对象的生成源。图 15是说明依靠安全管理器识别对象生成源方法的图。在图15列举了 一个通过 扫描应用软件321生成扫描服务331的对象的例子。因此,与在图7中的步骤 S125与S126相对应。
图中,"ScanApp",是扫描应用软件321的类名。"ScanService", 是扫描服务331的类名。"a:ScanApp",表示ScanApp类的对象a(即被实例 化的扫描应用软件321)。同时,"b: ScanService"表示ScanService类的 对象b (即被实例化的扫描服务331)。
对象a如果调用ScanService类的构造器,生成对象b(S21),对象b的类 名("ScanApp")被容纳在栈中(S22)。对象b在其构造器内一调用安全管理 器41 (S23),对象b的类名("ScanService")便储存在堆(存储器)内(S24), 安全管理器41根据从对象b的调用,通过査索堆(存储器)内,即可识别调
用源的类名为"ScanApp",也就是说,对象b的生成源是扫描应用软件 321 (S25)。
其次,就在步骤S129等中,请求路径控制部50是如何判断本地服务网络 60的调用请求源的应用软件是否在临时启动中的情况作一说明。首先,作为 前提,在请求路径控制部50中,已预先登录作为临时启动对象的应用软件 (例如,步骤S116)。因此,在请求路径控制部50中,如果能识别调用请求源 的应用软件名,即可判断应用软件是否在临时启动中。
在本实施形态中,作为JSDK应用软件30的应用软件包32,被看作临时启 动的对象。在这里,JSDK应用软件30,是Java(注册商标)应用软件。因此, 例如,应用Java(注册商标)的标准类的线程组(ThreadGroup),即能识别应 用软件。所谓线程组,是线程(Thread)和线程组(TreadGroup)的集合,可 以将一个以上的Thread与TreadGroup相关联。另外,在线程组内,还可以附 加名字(线程名)。并且,在各线程内,可以识别该线程所属的线程组。另外, 在本实施形态中,应用软件包32及服务包33,都作为"包"而安装的,但所 谓包,是可能动态链接的程序库(函数或级的集合)。同时,请求线路控制部 50也是程序库(函数或类的集合),因此,并非哪一个都作为过程被启动,而 是被调用方才在调用源的线程上动作。
根据这样的结构,在请求路径控制部50,就可以象以下一样调用,识别 原来的应用软件名。图16是说明使用线程组的调用,识别原来应用软件名的 方法所用的图。在图16,为方便计,各模块的上下关系都与图3不同。
图中,GPx(x为a c),表示线程组。thx(x, a d)表示线程。在图16 的例子中,在扫描应用软件321中,线程组GPb被关联,作为线程组名,被附 加上了扫描应用软件321的应用软件名作为线程组名。另外,在扫描服务 331GPc上,被关联线程组GPc。
在扫描应用软件321里,存在着执行方法A中的线程tha和执行方法B中的 线程thb。在这里,线程tha和线程thb,都属于线程组GPb。例如,在自扫描 应用软件321的方法B内,调用扫描服务331的方法C时,方法C在线程thb上动 作。另外,自方法C调用请求路径控制部50的函数D的情况下,函数D在线程 thb上动作。因此,在函数D内, 一旦确认当前的线程,线程thb就被特别指 定,如果进一步确认线程thb所属的线程组,线程组GPb就被特别指定。因此,
在函数B内,通过取得线程组GPb的线程组名,函数B (即请求路径控制部50) 的调用源的应用软件名即取得。进一步,通过将所取得的应用软件名(线程 组名)和预先登录的临时启动中的应用软件名进行比较,即可判断函数B的调 用源是否在临时启动中。
但是,调用源的应用软件的识别方法,也可以未必使用线程组。例如, 也可以根据各方法和各函数的自变量(变元),使调用源的应用软件名连续。
如上所述,通过第一实施形态中的复合机IO,在应用软件被实际使用之 前,可对该应用软件执行临时启动,预先记录好该相关动作的记录(临时启 动记录80)。然后,根据临时启动记录80,可确认各应用软件是否满足预设 的限制。因此,可防止不满足预设限制的应用软件的动作,降低由应用软件 造成误动作的可能性。
另外,临时启动成功与否的判断准则、对临时启动时应用软件的操作内 容、临时启动时动作服务335的动作,都被定义在作为与程序分离的文件的 临时启动脚本70(主脚本71、方案脚本72、动作脚本73)中。因此,配合各应 用软件和复合机10的资源的变化(例如,存储器的增设等),可很容易变更这 些信息(判断准则、操作内容、_动作等)。特别是象本实施形态那样,如果是 文本形式的文件,其变更就更容易了。
另外,动作服务335是作为本地服务网络60(以与本地服务网络60同样的 形式),对应用软件进行应答的,所以不必意识应用软件是否临时启动。因 此,为了实现临时启动,不必重新进行各应用软件的安装。
另外,在临时启动中,本地服务网络60不被调用,复合机10所特有的硬 件(例如,进行图像处理的硬件)不被利用。因此,临时启动,也可以在一般 的PC(Personal Computer)等计算机上进行。在此情况下,在用该计算机时, 在图3中,除本地服务网络60以外的软件,也可以是可能动作的。
下面说明第二实施形态。在第一实施形态中,是根据临时启动记录80, 判断每个应用软件占用的存储器是否在限制值(5MB)以内。可是,在多个应
用软件并列启动的情况下,有时单靠第一实施形态中的判断是不够的。 图17是说明在多个应用软件并列启动情况下,存储器占用情况的图。
在图17中,(a)表示基于某应用软件包32(以下称为"应用软件A"。)、
随时间的变化(应用软件的状态转移)和堆存储器占用量最大值之间的关系。
如图所示,应用软件A,在init状态、pause状态、active状态的各状态中, 各自最大占用3MB、 1MB、 4MB的堆存储器。在此情况下,通过全状态,应用 软件A的堆存储器的最大占用量是4MB,可满足作为在第一实施形态中的限定 值5MB。因此,关于应用软件A,被判定临时启动是成功的,正式启动是可能 的。
图17(b)表示基于不同于应用软件A的其他应用软件包32(以下称为"应 用软件B"。)、随时间的变化(应用软件的状态转移)和堆存储器占用量最大 值之间的关系。如图所示,应用软件B,在"init"状态、pause状态和active 状态的各状态中,各自最大占用3MB、 1MB、 1MB的堆存储器。在此情况下, 通过全状态,应用软件B的堆存储器的最大占用量是3MB,满足作为第一实施 形态中限制值的5MB的条件。因此,关于应用软件B,被判定临时启动是成功 的,正式启动是可能的。
图17(c)表示与应用软件A和应用软件B同时启动情况下,时间的经过和 堆存储器占用量最大值之间的关系。也就是说,准许正式启动的二个应用软 件同时启动,在相同时机进行了状态转移的情况下,由两个应用软件,在init 状态、pause状态、active状态的各状态中,各自最大占用3+3二6MB、 1+1=2MB、 1十4=5鹏的栈存储器。这样一来,在init状态中,超过了作为限制值的5MB, 有可能应用软件正常不做动作。
因此,在第二实施形态中,就解决如此课题的例子进行说明。又,第二 实施形态是仅就与第一实施形态不同的部分进行说明。因此,关于未特别言 及的点,也可与第一实施形态相同。
在第二实施形态中,主脚本71如下定义。图18是表示第二实施形态中的 主脚本记述例的图。在图18中,对与图9属同一部分的,赋予同样符号,而 省略其说明。又,在第二实施形态中,主脚本71是取主脚本71a来说明。
主脚本71a与第一实施形态比较,记述716有所不同。也就是说,记述 716被定义为脚本函数pbCase l的界面。在第二实施形态中,容纳临时启动 记录的变量(PseudoBootLog log),被定义作为参照的OUT型的自变量(变元)。该自变量(变元)的值被存储在记述712中。
有关在第二实施形态中的复合机10临时启动的处理工序,大体上与图7 相同。但是,根据在主脚本71a中的记述716,在步骤S160中,临时启动服 务333将临时启动记录80内容,与表示临时启动成功与否的信息一起,通知 到SAS管理器31。 SAS管理器31,将被通知的临时启动记录80与作为临时启动 对象的应用软件包32(在图7例中为扫描应用软件321)有关联地,保存在,例 如HDD233中,进行管理。该关联,例如,也可以通过将临时启动记录80的文 件名,设定为该应用软件包32的应用软件名的方法进行。
在第二实施形态的情况下,在步骤S167中,收到应用软件启动请求时的 SAS管理器31 ,对启动中(也包括启动开始时)应用软件管理的处理是不同的。
图19是说明由第二实施形态中的SAS管理器进行的对启动中应用软件的 管理处理用的流程图。另外,图19的处理系就正式启动的应用软件(即临时 启动成功了的应用软件)相关进行。
在复合机10中, 一旦状态转移(也含往基于启动的init状态转移)必要的 应用软件(以下称为"应用软件A"。)发生(在S201步骤,Yes),贝ijSAS管理 器31就判断应用软件A转移目标状态的存储器占用量的最大值,和当前正 式启动中其他的应用软件之各自状态的存储器占用量最大值之和,是否在预
设限制值(例如,5MB)以下(S202)。
另外,SAS管理器31,基于与各应用软件关联的临时启动记录80,对应 用软件A转移目标状态的存储器占用量的最大值和各应用软件当前状态存储 器占用量的最大值进行判断。SAS管理器31,根据来自该应用软件的通知, 检测进行状态转移应用软件的发生。
当存储器占用量最大值的合计值在限制值以下的情况下(在步骤S202, Yes), SAS管理器31准许应用软件A的状态转移。其结果,应用软件A进行状 态转移(S203)。另一方面,当存储器占用量的合计值超过限制值的情况下(在 步骤S202, No), SAS管理器31即让应用软件A的状态转移待机,并将显示让 应用软件A的状态转移待机的信息(以下,称为"待机信息"。)登录到状 态转移待机尾接指令(cue)上。待机信息,例如,由应用软件A的识别信息 及转移目标的状态识别信息等所构成。但是,也可以不用转移目标的状态识
别信息,而将转移目标状态存储器占用量的最大值包含在待机信息中。籍此, 可以省去对应用软件A的转移目标状态存储器占用量,重新参照临时启动记 录80进行处理的步骤。另外,状态转移待机尾接指令,是待机信息的尾接指 令或目录。也就是说,通过状态转移待机尾接指令,可以掌握作为等待状态 转移的应用软件的一览表。
在步骤S203中,在应用软件A已进行了状态转移的情况下,由于应用软 件A的状态转移,各应用软件各自状态的存储器占用量最大值的合计值将变 化。因此,也有可能允许等待状态转移的应用软件进行状态转移。因此,SAS 管理器31执行步骤S205以后的处理。
艮P, SAS管理器31,通过确认状态转移待机尾接指令中有无待机信息, 来判断有无等待状态转移的应用软件(S205)。在不存在等待状态转移的应 用软件的情况下(状态转移待机尾接指令为空的情况下)(在S205步骤,No), 返回到步骤S201。
另一方面,在存在等待状态转移的应用软件的情况下(在S205步骤, Yes), SAS管理器31,自状态转移待机尾接指令取出一个待机信息(S206)。 从状态转移待机尾接指令取出待机信息的顺序,既可按照(First-in First-Out)或LRU(Least Recently Used)执行,也可以在应用软件附上优先 顺序而按照该优先顺序执行。该优先顺序,可预先记录在HDD233等里。
其次,SAS管理器31进行如下判断被取出的待机信息(以下称为"当前 待机信息"。)所涉及的应用软件的转移目标的状态存储器占用量最大值,. 和在其他应用软件各自状态下存储器占用量最大值的合计值,是否在预设的 限制值以下(S207)。
在存储器占用量最大值的合计值在限制值以下的情况下(在步骤S207, Yes), SAS管理器31,将当前待机信息从状态转移待机尾接指令中删除 (S208),并转移曾等待状态转移的应用软件的状态(S203)。另外,因为还要 根据(相应于)该应用软件的状态转移,判断其他等待状态转移的应用软件 可否进行状态转移,所以接着执行步骤S205以后的处理。
另一方面,在步骤S207中,在存储器占用量最大值合计值超过限制值的 情况下(在S207, No),返回步骤S201。但是,也可以返回到步骤S206。在此 情况下,在等待状态转移待机尾接指令中,在已登录该待机信息的应用软件 中,可能在限制值范围内转移的应用软件的状态转移优先执行。
以上,如图19中所说明地,通过限制应用软件的状态转移,可以避免图 17中所说明的状况发生。关于图17的例子,加以如下改进。图20是表示根据 状态转移的限制,对存储器的占用量进行适当管理情况的图。
在图20,因为如果应用软件A的init状态和应用软件B的init状态叠加, 则超过了限制值(5MB),所以,往应用软件A的init状态的转移,是在往应用 软件B的pause状态的转移之后进行。由此,在全过程中,应用软件A和应用 软件B的占用存储器的合计值都可抑制在服制值以内。
如上所述,按照第二实施形态的复合机IO,即使在多个应用软件并列动 作的情况下,根据各应用软件在临时启动中记录的临时启动记录80中所记录 的信息,可以改变应用软件的动作(工作)。也就是说,可以使基于多个应用 软件的存储器占用量合计值维持在预设的限制值以下。因此,可降低因应用 软件因素造成误动作的可能性。
另外,在第二实施形态中,还显示了判断在临时启动时,通过全状态的 存储器占用量最大值是否在限制值以下的例子(参照主脚本71a(图18)的记 述713)。因此,以仅满足该限制的应用软件,看作正式启动对象,以此为前 提,说明了图19的处理顺序。然而,也可以是应用软件在正式启动的时候, 参照该应用软件的临时启动记录80, SAS管理器31判断通过了全状态的存储 器占用量的最大值,在其最大值超过限制值的情况下,拒绝该应用软件的正 式启动。在此情况下,也可以不对临时启动时存储器占用量的最大值进行检 査。即,也可以删除在主脚本71a的记述713中的"log. Maxmem〈5MB"的记 述。
又,图19的处理,也可以由JSDK平台40执行。
如上所述,说明了利用临时启动作为事前检査应用软件适当与否的手段 的使用例子。可是,临时启动的用途并不仅限定于此。例如,也可用作对应 用软件在正式启动中所发生障碍的原因分析手段。以下,对运用临时启动来 进行故障原因的分析的例子,作为第三及第四实施形态来说明。
图21是说明使用第三实施形态中的临时启动的障碍分析方法的图。在图
21中,障碍对应服务器20,是通过互联网等网络与复合机10连接,遥控监视
复合机10的计算机。障碍对应服务器20,例如,由复合机10的卖主运用。
按照操作者的指示,复合机10的SAS管理器31,正式启动应用软件(例如, 扫描应用软件321) (S301)。如果在应用软件正式启动中发生障碍,面板服务 332,就在操作面板202上显示通知发生障碍的警告画面(S302)。其次,SAS 管理器31向障碍对应服务器2,发送显示障碍内容的信息(例如,错误编码 等)(S303)。
障碍对应服务器20根据显示障碍内容的信息,为调查障碍原因,将适当 的临时启动脚本70发送给复合机10的(S304)。例如,在障碍对应服务器20 的存储器中,针对每个应用软件,且针对每个障碍内容,都预先保存有调査 该障碍内容原因的适当的临时启动脚本70。所谓为调査障碍内容原因的适当 的临时启动脚本70,是指包括为分析该障碍而定义了适当方案的方案脚本 72,以及为分析该障碍而定义了适当的仿真内容的动作脚本73的临时启动脚 本70。
复合机10利用接收到的临时启动脚本70,临时启动发生过障碍的应用软 件(S305)。这时的处理工序,如图7中说明所示。其结果,生成临时启动记 录80。所以,复合机10的SAS管理器31将临时启动记录80发送给障碍对应服 务器20 (S306)。
障碍对应服务器20对临时启动记录80进行分析,进行原因的分析鉴别。 原因的分析鉴别,可以自动进行,也可以人工进行。原因已经分析鉴别出来, 就由操作者做出有关障碍的分析结果报告(S307)。该报告,也可以用电子 邮件等方式自动进行。另外,在是应用软件程序缺陷(bug)的情况下,也 可以从障碍对应服务器20,将修正版远程安装在复合机10上。
另外,也可以将每个障碍内容的临时启动脚本70,都预先保存在复合机 IO里,在复合机10旁边,进行原因的分析。此时,障碍对应服务器20就不一 定需要了。
其次,就第四实施形态作一说明。图22是说明使用第四实施形态中的临 时启动进行障碍分析的方法用的图。在图22中,对与图21相同的部分,均赋 予同一符号,并省略其说明。另外,在第四实施形态中,设定已安装了障碍对应服务器20、 JSDK应用软件30、 JSDK平台40以及请求路径控制部50等。 在图22中,步骤S401 S403与图21的步骤S301 S303同样。 其次,障碍对应服务器20根据显示障碍内容的信息,为调査障碍原因, 而从存储器中选择适当的临时启动脚本70(S404)。其次,障碍对应服务器20, 利用临时启动脚本70,临时启动发生过障碍的应用软件,分析由其结果生成 的临时启动记录80,进行原因的分析鉴别。如果原因被分析鉴别出来,障碍 对应服务器20,就对操作者进行有关障碍分析结果的报告(S406)。如是应用 软件程序缺陷的情况,也可以从障碍对应服务器20,远程安装修正板在复合 机10上。
如上所述,根据对应障碍的临时启动脚本70,执行应用软件的临时启动, 并根据其结果生成的临时启动记录80,可以适当地进行原因的分析。
上面参照

了本发明的实施例,但本发明并不局限于上述实施 例。在本发明技术思想范围内可以作种种变更,它们都属于本发明的保护范 围。
权利要求
1.一种图像形成装置,可追加程序,其特征在于,包括记录手段,在上述程序第一启动时,将满足进行该程序处理所需的存储器占用量,记录在存储装置中;控制手段,在上述程序第二启动中,进行该程序处理时,从上述存储装置取得进行后的存储器占用量,当所取得的存储器占用量和被启动的其他程序的存储器占用量的合计值,超过预设限定值的情况下,令上述处理进行转为待机。
2. 根据权利要求l记载的图像形成装置,其特征在于 上述控制手段进行控制,在进行上述某个程序处理时,在令处理进行为待机的程序进行之后的存储器占用量和其他程序的存储器占用量之合计值, 处于上述限定值以下时,使得上述待机的程序的处理进行。
3. 根据权利要求1或2记载的图像形成装置,其特征在于 进一步包括判断手段,上述程序第一启动时,根据记录在上述存储装置的信息,判断该程序的存储器占用量的最大值,是否在预设限定值以下;对通过上述判断手段判定为存储器占用量的最大值在上述限定值以下 的程序,准予进行上述第二启动。
4. 根据权利要求3记载的图像形成装置,其特征在于 上述判断手段对上述存储器占用量的最大值和记录在第一文件中的限定值进行比较。
5. 根据权利要求1或2记载的图像形成装置,其特征在于 上述控制手段进行控制,在上述程序的第二启动之时,根据记录在上述存储器中的信息,判断该程序存储器占用量的最大值,当该最大值超过预设 限定值时,使该程序不启动。
6. 根据权利要求1至5中任何一项记载的图像形成装置,其特征在于 进一步包括操作手段,用于在上述程序的第一启动时,依照记录在第二文件中的定义内容,产生对该程序操作画面的输入。
7. —种程序控制方法,由可追加程序的图像形成装置执行,其特征在 于,包括'记录工序,在上述程序第一启动时,将满足进行该程序处理所需的存储 器占用量,记录在存储装置中;控制工序,在上述程序第二启动中,进行该程序处理时,从上述存储器 取得进行后的存储器占用量,当所取得的存储器占用量和被启动的其他程序 的存储器占用量的合计值,超过预设限定值的情况下,令上述处理的进行转 为待机。
8. 根据权利要求7记载的程序控制方法,其特征在于 上述控制工序进行控制,在进行上述某个程序处理时,在令处理的进行待机的程序进行之后的存储器占用量和其他程序的存储器占用量之合计值, 处于上述限定值以下时,使得上述待机的程序的处理进行。
9. 根据权利要求7或8记载的程序控制方法,其特征在于 进一步包括判断工序,在上述程序第一启动时,根据记录在上述存储器的信息,判断该程序的存储器占用量的最大值,是否在预设限定值以下;在上述判断工序中,对判定为存储器占用量的最大值在上述限定值以下 的程序,准予进行上述第二启动。
10. 根据权利要求9记载的程序控制方法,其特征在于 上述判断工序对上述存储器占用量的最大值和记录在第一文件中的限定值进行比较。
11. 根据权利要求7或8记载的程序控制方法,其特征在于 上述控制工序进行控制,在上述程序的第二启动之时,根据记录在上述存储器中的信息,判断该程序存储器占用量的最大值,当该最大值超过预设 限定值时,使该程序不启动。
12. 根据权利要求7至11中任何一项所记载的程序控制方法,其特征在于进一步包括操作工序,在上述程序的第一启动时,依照记录在第二文件 中的定义内容,产生对该程序操作画面的输入。
13. —种程序,使可追加程序的图像形成装置起作为记录手段和控制手 段的功能,其中上述记录手段在上述程序第一启动时,将满足进行该程序处理所需的存 储器占用量记录在存储装置中;上述控制手段在上述程序第二启动中,进行该程序处理时,从上述存储 器取得进行后的存储器占用量,当所取得的存储器占用量和被启动的其他程 序存储器占用量的合计值超过预设限定值的情况下,令上述处理的进行转为 待机。
14. 根据权利要求13记载的程序,其特征在于上述控制手段在进行上述任一程序处理时,在令处理进行待机的程序进 行之后的存储器占用量和其他程序的存储器占用量之合计值处于上述限定 值以下时,使得上述待机的程序的处理进行。
15. 根据权利要求13或14记载的程序,其特征在于 进一步包括判断手段,在上述程序第一启动时,根据记录在上述存储器里的信息,判断该程序的存储器占用量的最大值,是否在预设限定值以下; 对由上述判断手段判断为存储器占用量的最大值在上述限定值以下的 程序,准予进行上述第二启动。
16. 根据权利要求15记载的程序,其特征在于上述判断手段将上述存储器占用量的最大值和记录在第一文件中的限 定值进行比较。
17. 根据权利要求13或14记载的程序,其特征在于 上述控制手段根据在上述程序第二启动时,记录在上述存储器的信息,判断该程序的存储器占用量的最大值,当该最大值超过预设限定值时,使该 程序不启动。
18. 根据权利要求13至17中的任何一项所记载的程序,其特征在于 进一步包括操作手段,用于在上述程序的第一启动时,依照记录在第二文件中的定义内容,产生对该程序操作画面的输入。
全文摘要
本发明涉及一种可追加程序的图像形成装置。其目的在于提供一种可降低由程序造成的误动作的可能性的图像形成装置、程序控制方法及程序。该图像形成装置具有记录手段和控制手段。所述记录手段系在上述程序第一启动时,将对应进行该程序处理所需的存储器占用量记录在存储器中的记录手段;所述控制手段系在上述程序第二启动中,进行该程序处理时,从上述存储器取得进行处理后的存储器占用量,当所取得的存储器占用量和被启动的其他程序存储器占用量的合计值超过预设限定值的情况下,令上述处理的进行转为待机。
文档编号G03G15/00GK101344740SQ200810136130
公开日2009年1月14日 申请日期2008年7月10日 优先权日2007年7月10日
发明者安藤光男 申请人:株式会社理光
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1