信息处理装置、用于信息处理装置的控制方法、和程序与流程

文档序号:14395242阅读:159来源:国知局

本发明涉及信息处理装置、用于信息处理装置的控制方法、以及程序,并且涉及例如实施异步处理的信息处理装置、用于该信息处理装置的控制方法、以及程序。



背景技术:

存在作为将扩展程序作为插件安装在其上以扩展功能的信息处理装置的已知图像形成装置。这种图像形成装置具有用于执行扩展程序的执行环境以及用于执行旨在实现基本功能的控制程序的执行环境。

具体而言,在图像形成装置中,用于控制图像形成装置的打印机单元、传真单元和扫描仪单元的控制程序和作为用于执行扩展程序的执行环境的扩展程序执行平台在操作系统(os)上运行。扩展程序系统服务和扩展程序在扩展程序执行平台上运行(例如,参见专利文献1)。

引文列表

专利文献

{ptl1}日本公开专利公报(特开)no.2014-75088



技术实现要素:

技术问题

在实施通过执行扩展程序获得和打印存储于外部装置中的图像数据的打印处理的情况下,可以异步实施与外部装置通信的处理和用户接口(ui)处理。为了异步实施通信处理和ui处理,即,为了实施异步处理,需要在os上的扩展程序中使用多个线程。

但是,在使用线程和其它功能的执行环境中,在一次允许使用一个线程的情况下,不能实施异步处理。

本发明的一个目的是,提供能够实施异步处理的信息处理装置、用于该信息处理装置的控制方法、以及程序。

问题的解决方案

为了实现以上的目的,在本发明的第一方面中,提供一种信息处理装置,该信息处理装置包括:用于执行多个虚拟机的执行部件(means),多个虚拟机中的每一个与os分开设置、是解释和执行包含于扩展程序中的命令的程序并且关于线程的使用一次被允许使用一个线程,以及用于控制通过使用在os上运行的本机程序来实施用于通过执行部件执行的一个虚拟机的线程与用于与该一个虚拟机不同的另一虚拟机的线程之间的通信的处理的控制部件。

为了实现以上的目的,在本发明的第二方面中,提供一种用于信息处理装置的控制方法,该控制方法包括:执行多个虚拟机的执行步骤,多个虚拟机中的每一个与os分开设置、是解释和执行包含于扩展程序中的命令的程序并且关于线程的使用一次被允许使用一个线程,以及控制通过使用在os上运行的本机程序实施用于在执行步骤中执行的一个虚拟机的线程与用于与该一个虚拟机不同的另一虚拟机的线程之间的通信的处理的控制步骤。

为了实现以上的目的,在本发明的第三方面中,提供一种用于使计算机执行以下步骤的控制程序:执行多个虚拟机的执行步骤,多个虚拟机中的每一个与os分开设置、是解释和执行包含于扩展程序中的命令的程序并且关于线程的使用一次被允许使用一个线程,以及控制通过使用在os上运行的本机程序实施用于在执行步骤中执行的一个虚拟机的线程与用于与该一个虚拟机不同的另一虚拟机的线程之间的通信的处理的控制步骤。

本发明的有利效果

根据本发明,能够实施异步处理。

附图说明

图1是示意地示出根据本发明的实施例的作为信息处理装置的mfp的主要部分的布置(arrangement)的框图。

图2是可用于解释用于在图1中出现的mfp中的扩展应用的示例性执行环境的框图。

图3是可用于解释在图2中出现的os上启动扩展应用的处理的流程的示图。

图4是可用于解释在图3中的步骤s304中生成的线程管理信息的示例性布置的示图。

图5是可用于解释在图2中出现的os上从扩展应用生成新的vm线程的处理的流程的示图。

图6是可用于解释在图5中的步骤s501中发送的线程信息的示例性布置的示图。

图7是可用于解释包含图1中的mfp的打印系统的示例性设备布置的图。

图8是可用于解释执行用于获得和打印存储于在图7中出现的外部装置中的图像数据的扩展应用的处理的流程的示图。

图9是示出在图8中的步骤s803中显示的示例性操作画面的图。

图10是可用于解释在图8中的步骤s802和步骤s813中在两个vm之间实施的消息发送处理的示图。

图11是可用于解释在图10中的步骤s1002中在vm与扩展vm系统服务之间实施的处理的流程的示图。

图12是可用于解释在mfp中安装存储于作为外部装置的主机pc中的扩展应用的处理的流程的示图。

具体实施方式

现在将参照示出本发明的优选实施例的附图来详细描述本发明。

从示例性实施例的以下描述(参见附图),本发明的另外的特征将变得清楚。

首先,给出本发明的比较例的描述。例如,在实施通过执行扩展程序获得和打印存储于外部装置中的图像数据的打印处理的情况下,可以异步实施与外部装置通信的处理和用户接口(ui)处理。在这种情况下,在与外部装置通信的处理处于执行中的同时,ui处理暂停(suspended),由此,如果出于一些原因,与外部装置通信的处理花费长的时间,那么ui处理不被实施,并且不能按需要接收通过ui等的输入。为了应对这一点,在打印处理中,通常异步实施通信处理和ui处理。从而,即使在外部装置通信处理处于执行中时,ui处理也不暂停,由此,即使当在通信处理期间发生任何麻烦时,也实施ui处理。作为结果,通过ui等的输入被按需要接收。

为了异步实施通信处理和ui处理即实施异步处理,需要在扩展程序中使用多个os线程。这里,在被允许配备有根据本发明的比较例的具有余地(leeway)的执行环境(例如,允许使用java(注册商标)的执行环境)的图像形成装置中,执行扩展程序的虚拟机(vm)被允许使用多个os线程。作为结果,能够在被允许配备有具有余地的执行环境的图像形成装置中实施异步处理。

接下来,将参照附图详细描述本发明的实施例。在实施例的以下描述中,假定本发明应用于作为信息处理装置的图像形成装置,诸如mfp(多功能外设)。但是,本发明也可以被应用于作为图像形成装置的打印机,并且还可以被应用于没有图像形成功能的信息处理装置,例如,服务器、pc或智能家用电器。具体而言,本发明可被应用于任何信息处理装置,只要它们安装有作为插件的扩展程序以实施异步处理即可。

首先,将给出本发明的第一实施例的描述。

图1是示意性地示出作为根据本实施例的信息处理装置的mfp的主要部分的布置的框图。在本实施例中,假定mfp100仅配备有具有很小的余裕(margin)的执行环境,例如,使用lua的执行环境,并且,可以使用线程和其它功能的vm关于线程的使用一次被允许使用一个线程。

参照图1,mfp100具有控制器单元101,并且,不仅作为图像输入设备的扫描仪102和作为图像输出设备的打印机103连接到控制器单元101,而且操作单元104连接到控制器单元101。控制器单元101提供控制以实现使打印机103打印出由扫描仪102读取的图像数据的复印功能。控制器单元101还具有cpu105、rom106、ram107和储存器(storage)108,并且cpu105通过使用存储于rom106中的引导程序启动os。cpu105通过在启动的os上执行存储于储存器108中的程序来实施各种处理。ram108提供用于cpu105的工作区域,并且还提供用于暂时存储图像数据的图像存储器区域。储存器108存储程序和图像数据。

控制器单元101还具有操作单元i/f(操作单元接口)109、网络i/f(操作接口)110、usb主机i/f111和图像总线i/f(图像总线接口)112。不仅rom106、ram107和储存器108,而且操作单元i/f109、网络i/f110、usb主机i/f111以及图像总线i/f112经由系统总线114连接到cpu105。操作单元i/f109是与具有触摸面板的操作单元104的接口,并且把要显示于操作单元104的画面上的图像数据输出到操作单元104。操作单元i/f109将由用户在操作单元104上输入的信息发送给cpu105。网络i/f110是用于连接mfp100到lan的接口。usb主机i/f111是用于与存储数据的作为外部存储设备的usb储存器113通信的接口,并且将存储于储存器108中的数据发送到usb储存器113,使得数据可以存储于usb储存器113中。usb主机i/f111还接收存储于usb储存器113中的数据,并将接收的数据传送给cpu105。usb储存器113可以从usb主机i/f111移除。应当注意,包括usb储存器113的多个usb设备可以连接到usb主机i/f111。图像总线i/f112是将系统总线114和以高速传送图像数据的图像总线115相互连接,并且执行数据格式转换的总线桥。图像总线115包括pci总线、ieee1394等。设备i/f116、扫描仪图像处理单元117和打印机图像处理单元118连接到图像总线115。扫描仪102和打印机103连接到设备i/f116,并且设备i/f116对图像数据执行同步或异步转换。扫描仪图像处理单元117校正、处理或编辑输入的图像数据。打印机图像处理单元118对输出的图像数据执行适于打印机103的校正和分辨率转换等。

图2是可用于解释在图1中出现的mfp中的扩展应用(扩展程序)的示例性执行环境的框图。在本实施例中,通过cpu105将存储于储存器108中的程序加载于ram107中并且执行该程序而在os上实现下文描述的图2中的模块。

参考图2,用于实现打印机功能、传真功能和扫描仪功能的本机程序202和vm203正在由cpu105启动的os201上运行。vm203是解释和执行控制扩展应用的程序的模块,并且扩展应用总是在vm203上运行。在本机程序202中,存在用于控制诸如打印机103和扫描仪102的图像处理单元的本机线程204和用于运行vm203的vm线程205。在本实施例中,生成三个vm(即vm203a、vm203b和vm203c)作为vm203。而且,相应地生成三个vm线程(即用于vm203a、vm203b和vm203c的vm线程205a、vm线程205b和vm线程205c)作为vm线程205。vm系统服务206是被扩展应用207a和207b共同使用并且提供多个功能的实用库。扩展应用207a和207b从vm系统服务206选择执行它们自身所需要的功能。在mfp100,从扩展应用207a和207b调用由vm系统服务206提供的功能,并且这节省必须开发扩展应用的负担并且进一步使得能够访问mfp100的模块。vm系统服务206具有标准vm系统服务208和扩展vm系统服务209作为模块。标准vm系统服务208提供文件系统的基本服务,诸如“打开”、“关闭”、“读取”和“写入”,并实现vm203用作vm的最低必需功能。扩展vm系统服务209实现访问mfp100的模块的功能和os的功能。

vm203解释和执行扩展应用207a和207b。vm203是对于扩展应用的各个线程生成的。在图2所示的执行环境中,对于实施异步处理的扩展应用207a生成两个vm线程205a和205b,并且,对于各个vm线程205a和205b生成两个vm203a和203b。对实施同步处理的扩展应用207b生成一个vm线程205c,并且,对于vm线程205c生成一个vm203c。

再次参照图1,在mfp100的操作单元104上的画面上显示表示扩展应用207a和207b的图标。在检测到用户经由操作单元104对任何图标的选择时,操作单元i/f109向cpu105发送带有此意的通知。在接收到带有此意的通知时,cpu105启动由用户选择的扩展应用207a或扩展应用207b。

图3是可用于解释在图2中出现的os上启动扩展应用的处理的流程的示图。

首先,对本机线程204通知扩展应用启动请求(步骤s301),接下来,在步骤s302中,本机线程204实施vm线程生成处理。此时,本机线程204向os201发送vm线程生成请求。响应于线程生成请求,os201(线程生成部件)生成vm线程205(步骤s303)。然后,生成的vm线程205(虚拟机生成部件、线程管理信息生成部件)生成要在后面描述的线程管理信息400(参见图4),并且还生成要在vm线程205上运行(使用)的vm203(步骤s305)。生成的vm203执行扩展应用的读取并且向标准vm系统服务208发送读取请求(步骤s306)。响应于读取请求,标准vm系统服务208使vm203读取用于执行扩展应用的数据(下文称为“扩展应用数据”)(步骤s307)。然后,vm203基于已经读取的扩展应用数据执行扩展应用(步骤s308)。即,在图3中的处理中,当要启动扩展应用时,生成与本机线程204不同的新的vm线程205,并且进一步生成使用vm线程205的vm203。

图4是可用于解释在图3中的步骤s304中生成的线程管理信息的示例性布置的示图。

线程管理信息400用于管理当启动扩展应用时生成的vm线程205。线程管理信息400具有应用id401、线程id402和队列id403。应用id401是用于识别与生成的vm线程205相关联的应用的识别号码。线程id402是用于识别各个vm线程205的识别号码。队列id403是用于识别在其中存储与各个vm线程205相关联的消息的队列的识别号码。在图4中的线程管理信息的示例性布置中,生成用于应用a且其队列id为1的vm线程1以及用于应用a且其队列id为2的vm线程2。此外,生成用于应用b且其队列id为3的vm线程3。

图5是可用于解释在图2中的os上从扩展应用生成新的vm线程的处理的流程的示图。假定当执行图5中的处理时,图3中的处理已经被实施以生成vm线程205a和vm203a。

首先,响应于来自扩展应用207a的请求,vm203a实施线程生成处理(步骤s501)并且向扩展vm系统服务209发送请求生成新的vm线程205(205b)的线程生成请求。此时,图6中的线程信息600作为线程生成请求被发送。线程信息600指示关于在生成新的vm线程205b之后执行的扩展应用207b的执行文件的信息601和关于由扩展应用207b执行的执行功能的信息602。此外,线程信息600指示关于vm线程205b的优先级的信息603和关于vm线程205b的栈大小的信息604。

再次参照图5,已经接收了线程信息600的扩展vm系统服务209实施vm线程生成处理,并且向os201发送线程生成请求(步骤s502)。在步骤s502中发送的线程生成请求请求生成以下这样的vm线程205b:该vm线程205b具有适于关于线程信息中的优先级的信息603和关于栈大小的信息604的资源。然后,os201生成适于在线程生成请求中请求的优先级和栈大小的vm线程205b(步骤s503)。生成的vm线程205b生成线程管理信息400(步骤s504)并且还生成要在vm线程205b上运行(使用)的新的vm203b(步骤s505)。然后,生成的vm203b执行扩展应用的读取并且向标准vm系统服务208发送读取请求(步骤s506)。响应于读取请求,标准vm系统服务208使vm203b读取扩展应用数据(步骤s507)。具体而言,标准vm系统服务208使vm203b读取由线程信息600中的关于执行文件的信息601指定的文件。vm203b然后基于已经读取的扩展应用数据执行扩展应用(步骤s308)。具体而言,vm203b执行由线程信息600中的关于执行功能的信息602指定的功能。

根据图5中的处理,响应于扩展应用207b的执行而生成与vm线程205a不同的新的vm线程205b,并且进一步生成使用新的vm线程205b的新的vm203b。从而,能够基本上使用多个线程(vm线程205a和vm线程205b)。作为结果,即使在关于线程的使用一次允许vm使用一个线程的紧张执行环境中,也能够实施异步处理。

图7是可用于解释包含图1中的mfp的打印系统的示例性设备布置的图。

参照图7,打印系统700具有mfp100、网络路由器701和外部装置702。用于获得和打印存储于外部装置702中的图像数据的扩展应用安装于mfp100上。网络路由器701调停(mediate)mfp100与外部装置702之间的通信。外部装置702存储图像数据,并且响应于来自mfp100的图像获得请求,向mfp100发送图像数据。应当注意,外部装置702可以存在于内联网或互联网中的任一个上。

图8是可用于解释执行用于获得和打印存储于图7中的外部装置中的获得图像数据的扩展应用的处理的流程的示图。假定当执行图8中的处理时,已经实施图3中的处理以生成vm线程205a和vm203a。

首先,虚拟机203a实施图5中的处理,以响应于扩展应用的执行而生成vm线程205b并进一步生成vm203b(步骤s801)。vm203b使用生成的vm线程205b作为在用于获得图像数据的处理中使用的线程。接下来,vm203a实施打印图像获得处理,在该打印图像获得处理中vm203a请求vm203b以获得图像数据(步骤s802),并且实施操作画面显示处理,在该操作画面显示处理中,vm203a显示图9中出现的操作画面(步骤s803)。此外,vm203a实施事件等待处理,在该事件等待处理中,vm203a等待来自另一线程的事件(步骤s804)。然后,在接收到某事件时,vm203a确定接收的事件的类型(步骤s805)。作为步骤s805中的确定的结果,当接收的事件指示已经完成了图像数据的获得时,处理前进到实施打印处理以打印获得的图像数据的步骤s806。当接收的事件指示取消请求时,vm203a实施结束处理,在该结束处理中,vm203a向vm203b发送结束请求(步骤s807),之后,vm203a结束该处理。

作为步骤s801中的执行的结果,生成的vm203b实施事件等待处理,在该事件等待处理中,vm203b等待来自另一线程的事件(步骤s811),并且在接收到某事件时,vm203b确定接收的事件的类型(步骤s812)。作为步骤s812中的确定的结果,当接收的事件指示结束请求时,vm203b结束处理。当接收的事件指示图像数据获得请求时,处理前进到步骤s813,并且vm203b实施图像数据获得处理,在该图像数据获得处理中,vm203b从外部装置702获得图像数据,并且在完成图像数据的获得之后向vm203a发送图像获得完成通知。之后,vm203b使处理返回到步骤s811。

图10是可用于解释在图8中的步骤s802和步骤s813中在两个vm之间实施的消息发送处理的示图。

首先,vm203a和vm203b(消息发送部件)参照线程管理信息400。接下来,vm203a和vm203b相互比较作为发送者的vm线程的应用的识别号码和作为目的地的vm线程的应用的识别号码(步骤s1001)。例如,在步骤s802中,由作为发送者的vm203a使用的vm线程205a的应用的识别号码和由作为目的地的vm203b使用的vm线程205b的应用的识别号码被相互比较。作为步骤s1001中的确定的结果,当相互比较的两个应用的识别号码相同时,vm203a和vm203b实施发送处理,在该发送处理中,它们发送消息(步骤s1002)。在步骤s1002中的发送处理中,目的地的队列id403从线程管理信息400被获得,消息存储于与获得的队列id403对应的队列中,并且该队列被发送。例如,在步骤s802中,vm203a将“图像数据获得请求”作为消息存储于队列中并且将该队列发送到vm203b。之后,vm203a和vm203b结束处理。作为步骤s1001中的确定的结果,当相互比较的两个应用的识别号码不同时,vm203a和vm203b实施发送错误处理,在该发送错误处理中,它们在例如操作单元104的画面上指示错误而不发送任何消息(步骤s1003)。之后,vm203a和vm203b结束处理。

根据图10中的处理,由vm203a使用的vm线程205a的应用的识别号码和由vm203b使用的vm线程205b的应用的识别号码被相互比较。当相互比较的两个应用的识别号码不同时,在vm203a与vm203b之间不发送消息。从而,仅当由vm203a使用的vm线程205a的应用的识别号码和由vm203b使用的vm线程205b的应用的识别号码相同时,消息才被发送。作为结果,基于消息的发送而防止没有限制地执行每个应用。即,防止执行不期望执行的应用。

图11是可用于解释在图10中的步骤s1002中在vm与扩展vm系统服务之间实施的处理的示图。在步骤s802中消息被发送的先决条件下实施图11中的处理。

首先,向扩展vm系统服务209发送消息发送请求,以便从作为发送者的vm203a发送消息(步骤s1101)。此时,vm203a将由作为目的地的vm203b使用的vm线程205b的线程id和期望发送的消息(图像数据获得请求)一起发送到扩展vm系统服务209。接下来,在接收到消息发送请求时,扩展vm系统服务209实施图10中的处理(步骤s1102)。然后,作为目的地的vm203b向扩展vm系统服务209发送消息请求以便接收消息(步骤s1103)。此时,vm203b向扩展vm系统服务209发送由vm203b自身使用的vm线程205b的线程id。扩展vm系统服务209获得由已经发送消息请求的vm203b使用的vm线程205b的线程id,并且基于线程管理信息400检查对应于获得的线程id402的队列id403。扩展vm系统服务209然后实施消息接收处理,在该消息接收处理中,它获得存储于具有检查的队列id403的队列中的消息(步骤s1104)。

图12是可用于解释存储于作为外部装置的主机pc中的扩展应用被安装于mfp上的处理的流程的示图。

首先,主机pc1200向mfp100发送安装画面显示请求(步骤s1201)。mfp100接收安装画面显示请求(步骤s1211),并且还发送用于在安装画面上显示的html内容(步骤s1212)。主机pc1200在主机pc1200所具有的显示单元的画面上显示用于在安装画面上显示的接收的html内容(步骤s1202)。此外,主机pc1200压缩要安装于mfp100上的扩展应用,并且将压缩的扩展应用作为安装文件上载到mfp100(步骤s1203)。mfp100接收上载的安装文件(步骤s1213)并且还对压缩的安装文件进行解压缩(步骤s1214)。mfp100将解压缩的安装文件的程序代码转换成字节码(步骤s1215)并且开始将已经被转换成字节码的程序代码写入自身(步骤s1216)。mfp100然后确定是否已经完成安装文件的安装(步骤s1217),并且,当已经完成安装时,mfp100向主机pc1200发送安装完成通知(步骤s1218)。已经接收到安装完成通知的主机pc1200在显示单元的画面上显示安装完成画面(步骤s1204)。之后,主机pc1200和mfp100结束处理。

根据图12中的处理,安装文件的程序代码被转换成字节码,并且转换成字节码的程序代码被写入于mfp100中。即,安装文件的程序代码被转换成作为设备相关代码的字节码,由此,不管程序代码被写入到什么设备中,程序代码都被转换成允许写入该设备中的码。作为结果,不管执行环境(设备)如何,扩展应用都被允许安装。

已经借助实施例描述了本发明,但是本发明不限于上述的实施例。

其它实施例

本发明的(一个或多个)实施例也可以通过读出并执行记录于存储介质(也可被更完整地称为“非暂时性计算机可读存储介质”)上的计算机可执行指令(例如,一个或更多个程序)以执行上述(一个或多个)实施例中的一个或多个的功能和/或包含用于执行上述(一个或多个)实施例中的一个或多个的功能的一个或多个电路(例如,专用集成电路(asic))的系统或装置的计算机来实现,或者通过由系统或装置的计算机通过例如读出并执行来自存储介质的计算机可执行指令以执行上述(一个或多个)实施例中的一个或多个的功能和/或控制一个或更多个电路以执行上述(一个或多个)实施例中的一个或多个的功能而执行的方法来实现。计算机可以包括一个或多个处理器(例如,中央处理单元(cpu)、微处理单元(mpu)),并且可包含单独的计算机或单独的处理器的网络,以读出并执行计算机可执行指令。计算机可执行指令可以例如从网络或存储介质被提供给计算机。存储介质可以包含例如硬盘、随机存取存储器(ram)、只读存储器(rom)、分布式计算系统的储存器、光盘(诸如紧凑盘(cd)、数字多功能盘(dvd)或蓝光盘(bd)tm)、闪存存储器设备和存储卡等中的一个或多个。

虽然已经参照示例性实施例描述了本发明,但是要理解,本发明不限于公开的示例性实施例。所附权利要求的范围要被赋予最广泛的解释以涵盖所有这样的修改和等同的结构和功能。

附图标记列表

100mfp

105cpu

201os

203vm

205vm线程

206vm系统服务

207扩展应用

400线程管理信息

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1