CN108027752B - 信息处理装置、用于信息处理装置的控制方法、和程序 - Google Patents

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

Info

Publication number
CN108027752B
CN108027752B CN201680052887.6A CN201680052887A CN108027752B CN 108027752 B CN108027752 B CN 108027752B CN 201680052887 A CN201680052887 A CN 201680052887A CN 108027752 B CN108027752 B CN 108027752B
Authority
CN
China
Prior art keywords
virtual machine
thread
identification information
application identification
processing apparatus
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.)
Active
Application number
CN201680052887.6A
Other languages
English (en)
Other versions
CN108027752A (zh
Inventor
木暮岳史
冢田祥弘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of CN108027752A publication Critical patent/CN108027752A/zh
Application granted granted Critical
Publication of CN108027752B publication Critical patent/CN108027752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Facsimiles In General (AREA)
  • Stored Programmes (AREA)

Abstract

一种能够实施异步处理的信息处理装置。在设有关于线程的使用一次被允许使用一个线程的执行环境的MFP中,当扩展应用207a启动时,生成VM线程205a和使用VM线程205a的VM 203a,此外,响应于来自扩展应用207a的请求生成另一新的VM线程205b,并且生成使用新的VM线程205b的新的VM 203b。

Description

信息处理装置、用于信息处理装置的控制方法、和程序
技术领域
本发明涉及信息处理装置、用于信息处理装置的控制方法、以及程序,并且涉及例如实施异步处理的信息处理装置、用于该信息处理装置的控制方法、以及程序。
背景技术
存在作为将扩展程序作为插件安装在其上以扩展功能的信息处理装置的已知图像形成装置。这种图像形成装置具有用于执行扩展程序的执行环境以及用于执行旨在实现基本功能的控制程序的执行环境。
具体而言,在图像形成装置中,用于控制图像形成装置的打印机单元、传真单元和扫描仪单元的控制程序和作为用于执行扩展程序的执行环境的扩展程序执行平台在操作系统(OS)上运行。扩展程序系统服务和扩展程序在扩展程序执行平台上运行(例如,参见专利文献1)。
引文列表
专利文献
{PTL 1}日本公开专利公报(特开)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的主要部分的布置的框图。在本实施例中,假定MFP 100仅配备有具有很小的余裕(margin)的执行环境,例如,使用Lua的执行环境,并且,可以使用线程和其它功能的VM关于线程的使用一次被允许使用一个线程。
参照图1,MFP 100具有控制器单元101,并且,不仅作为图像输入设备的扫描仪102和作为图像输出设备的打印机103连接到控制器单元101,而且操作单元104连接到控制器单元101。控制器单元101提供控制以实现使打印机103打印出由扫描仪102读取的图像数据的复印功能。控制器单元101还具有CPU 105、ROM 106、RAM 107和储存器(storage)108,并且CPU 105通过使用存储于ROM 106中的引导程序启动OS。CPU 105通过在启动的OS上执行存储于储存器108中的程序来实施各种处理。RAM 108提供用于CPU 105的工作区域,并且还提供用于暂时存储图像数据的图像存储器区域。储存器108存储程序和图像数据。
控制器单元101还具有操作单元I/F(操作单元接口)109、网络I/F(操作接口)110、USB主机I/F 111和图像总线I/F(图像总线接口)112。不仅ROM 106、RAM 107和储存器108,而且操作单元I/F109、网络I/F 110、USB主机I/F 111以及图像总线I/F 112经由系统总线114连接到CPU 105。操作单元I/F 109是与具有触摸面板的操作单元104的接口,并且把要显示于操作单元104的画面上的图像数据输出到操作单元104。操作单元I/F 109将由用户在操作单元104上输入的信息发送给CPU 105。网络I/F 110是用于连接MFP 100到LAN的接口。USB主机I/F 111是用于与存储数据的作为外部存储设备的USB储存器113通信的接口,并且将存储于储存器108中的数据发送到USB储存器113,使得数据可以存储于USB储存器113中。USB主机I/F 111还接收存储于USB储存器113中的数据,并将接收的数据传送给CPU105。USB储存器113可以从USB主机I/F 111移除。应当注意,包括USB储存器113的多个USB设备可以连接到USB主机I/F 111。图像总线I/F 112是将系统总线114和以高速传送图像数据的图像总线115相互连接,并且执行数据格式转换的总线桥。图像总线115包括PCI总线、IEEE 1394等。设备I/F 116、扫描仪图像处理单元117和打印机图像处理单元118连接到图像总线115。扫描仪102和打印机103连接到设备I/F 116,并且设备I/F 116对图像数据执行同步或异步转换。扫描仪图像处理单元117校正、处理或编辑输入的图像数据。打印机图像处理单元118对输出的图像数据执行适于打印机103的校正和分辨率转换等。
图2是可用于解释在图1中出现的MFP中的扩展应用(扩展程序)的示例性执行环境的框图。在本实施例中,通过CPU 105将存储于储存器108中的程序加载于RAM 107中并且执行该程序而在OS上实现下文描述的图2中的模块。
参考图2,用于实现打印机功能、传真功能和扫描仪功能的本机程序202和VM 203正在由CPU 105启动的OS 201上运行。VM 203是解释和执行控制扩展应用的程序的模块,并且扩展应用总是在VM203上运行。在本机程序202中,存在用于控制诸如打印机103和扫描仪102的图像处理单元的本机线程204和用于运行VM 203的VM线程205。在本实施例中,生成三个VM(即VM 203a、VM 203b和VM 203c)作为VM 203。而且,相应地生成三个VM线程(即用于VM203a、VM 203b和VM 203c的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提供文件系统的基本服务,诸如“打开”、“关闭”、“读取”和“写入”,并实现VM 203用作VM的最低必需功能。扩展VM系统服务209实现访问MFP 100的模块的功能和OS的功能。
VM 203解释和执行扩展应用207a和207b。VM 203是对于扩展应用的各个线程生成的。在图2所示的执行环境中,对于实施异步处理的扩展应用207a生成两个VM线程205a和205b,并且,对于各个VM线程205a和205b生成两个VM 203a和203b。对实施同步处理的扩展应用207b生成一个VM线程205c,并且,对于VM线程205c生成一个VM 203c。
再次参照图1,在MFP 100的操作单元104上的画面上显示表示扩展应用207a和207b的图标。在检测到用户经由操作单元104对任何图标的选择时,操作单元I/F 109向CPU105发送带有此意的通知。在接收到带有此意的通知时,CPU 105启动由用户选择的扩展应用207a或扩展应用207b。
图3是可用于解释在图2中出现的OS上启动扩展应用的处理的流程的示图。
首先,对本机线程204通知扩展应用启动请求(步骤S301),接下来,在步骤S302中,本机线程204实施VM线程生成处理。此时,本机线程204向OS 201发送VM线程生成请求。响应于线程生成请求,OS 201(线程生成部件)生成VM线程205(步骤S303)。然后,生成的VM线程205(虚拟机生成部件、线程管理信息生成部件)生成要在后面描述的线程管理信息400(参见图4),并且还生成要在VM线程205上运行(使用)的VM 203(步骤S305)。生成的VM 203执行扩展应用的读取并且向标准VM系统服务208发送读取请求(步骤S306)。响应于读取请求,标准VM系统服务208使VM 203读取用于执行扩展应用的数据(下文称为“扩展应用数据”)(步骤S307)。然后,VM 203基于已经读取的扩展应用数据执行扩展应用(步骤S308)。即,在图3中的处理中,当要启动扩展应用时,生成与本机线程204不同的新的VM线程205,并且进一步生成使用VM线程205的VM 203。
图4是可用于解释在图3中的步骤S304中生成的线程管理信息的示例性布置的示图。
线程管理信息400用于管理当启动扩展应用时生成的VM线程205。线程管理信息400具有应用ID 401、线程ID 402和队列ID 403。应用ID 401是用于识别与生成的VM线程205相关联的应用的识别号码。线程ID 402是用于识别各个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和VM 203a。
首先,响应于来自扩展应用207a的请求,VM 203a实施线程生成处理(步骤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线程生成处理,并且向OS 201发送线程生成请求(步骤S502)。在步骤S502中发送的线程生成请求请求生成以下这样的VM线程205b:该VM线程205b具有适于关于线程信息中的优先级的信息603和关于栈大小的信息604的资源。然后,OS 201生成适于在线程生成请求中请求的优先级和栈大小的VM线程205b(步骤S503)。生成的VM线程205b生成线程管理信息400(步骤S504)并且还生成要在VM线程205b上运行(使用)的新的VM 203b(步骤S505)。然后,生成的VM 203b执行扩展应用的读取并且向标准VM系统服务208发送读取请求(步骤S506)。响应于读取请求,标准VM系统服务208使VM 203b读取扩展应用数据(步骤S507)。具体而言,标准VM系统服务208使VM 203b读取由线程信息600中的关于执行文件的信息601指定的文件。VM 203b然后基于已经读取的扩展应用数据执行扩展应用(步骤S308)。具体而言,VM 203b执行由线程信息600中的关于执行功能的信息602指定的功能。
根据图5中的处理,响应于扩展应用207b的执行而生成与VM线程205a不同的新的VM线程205b,并且进一步生成使用新的VM线程205b的新的VM 203b。从而,能够基本上使用多个线程(VM线程205a和VM线程205b)。作为结果,即使在关于线程的使用一次允许VM使用一个线程的紧张执行环境中,也能够实施异步处理。
图7是可用于解释包含图1中的MFP的打印系统的示例性设备布置的图。
参照图7,打印系统700具有MFP 100、网络路由器701和外部装置702。用于获得和打印存储于外部装置702中的图像数据的扩展应用安装于MFP 100上。网络路由器701调停(mediate)MFP 100与外部装置702之间的通信。外部装置702存储图像数据,并且响应于来自MFP 100的图像获得请求,向MFP 100发送图像数据。应当注意,外部装置702可以存在于内联网或互联网中的任一个上。
图8是可用于解释执行用于获得和打印存储于图7中的外部装置中的获得图像数据的扩展应用的处理的流程的示图。假定当执行图8中的处理时,已经实施图3中的处理以生成VM线程205a和VM 203a。
首先,虚拟机203a实施图5中的处理,以响应于扩展应用的执行而生成VM线程205b并进一步生成VM 203b(步骤S801)。VM 203b使用生成的VM线程205b作为在用于获得图像数据的处理中使用的线程。接下来,VM 203a实施打印图像获得处理,在该打印图像获得处理中VM 203a请求VM 203b以获得图像数据(步骤S802),并且实施操作画面显示处理,在该操作画面显示处理中,VM 203a显示图9中出现的操作画面(步骤S803)。此外,VM 203a实施事件等待处理,在该事件等待处理中,VM 203a等待来自另一线程的事件(步骤S804)。然后,在接收到某事件时,VM 203a确定接收的事件的类型(步骤S805)。作为步骤S805中的确定的结果,当接收的事件指示已经完成了图像数据的获得时,处理前进到实施打印处理以打印获得的图像数据的步骤S806。当接收的事件指示取消请求时,VM 203a实施结束处理,在该结束处理中,VM 203a向VM 203b发送结束请求(步骤S807),之后,VM 203a结束该处理。
作为步骤S801中的执行的结果,生成的VM 203b实施事件等待处理,在该事件等待处理中,VM 203b等待来自另一线程的事件(步骤S811),并且在接收到某事件时,VM 203b确定接收的事件的类型(步骤S812)。作为步骤S812中的确定的结果,当接收的事件指示结束请求时,VM 203b结束处理。当接收的事件指示图像数据获得请求时,处理前进到步骤S813,并且VM 203b实施图像数据获得处理,在该图像数据获得处理中,VM 203b从外部装置702获得图像数据,并且在完成图像数据的获得之后向VM 203a发送图像获得完成通知。之后,VM203b使处理返回到步骤S811。
图10是可用于解释在图8中的步骤S802和步骤S813中在两个VM之间实施的消息发送处理的示图。
首先,VM 203a和VM 203b(消息发送部件)参照线程管理信息400。接下来,VM 203a和VM 203b相互比较作为发送者的VM线程的应用的识别号码和作为目的地的VM线程的应用的识别号码(步骤S1001)。例如,在步骤S802中,由作为发送者的VM 203a使用的VM线程205a的应用的识别号码和由作为目的地的VM 203b使用的VM线程205b的应用的识别号码被相互比较。作为步骤S1001中的确定的结果,当相互比较的两个应用的识别号码相同时,VM 203a和VM203b实施发送处理,在该发送处理中,它们发送消息(步骤S1002)。在步骤S1002中的发送处理中,目的地的队列ID 403从线程管理信息400被获得,消息存储于与获得的队列ID403对应的队列中,并且该队列被发送。例如,在步骤S802中,VM 203a将“图像数据获得请求”作为消息存储于队列中并且将该队列发送到VM 203b。之后,VM203a和VM 203b结束处理。作为步骤S1001中的确定的结果,当相互比较的两个应用的识别号码不同时,VM 203a和VM 203b实施发送错误处理,在该发送错误处理中,它们在例如操作单元104的画面上指示错误而不发送任何消息(步骤S1003)。之后,VM 203a和VM 203b结束处理。
根据图10中的处理,由VM 203a使用的VM线程205a的应用的识别号码和由VM 203b使用的VM线程205b的应用的识别号码被相互比较。当相互比较的两个应用的识别号码不同时,在VM 203a与VM 203b之间不发送消息。从而,仅当由VM 203a使用的VM线程205a的应用的识别号码和由VM 203b使用的VM线程205b的应用的识别号码相同时,消息才被发送。作为结果,基于消息的发送而防止没有限制地执行每个应用。即,防止执行不期望执行的应用。
图11是可用于解释在图10中的步骤S1002中在VM与扩展VM系统服务之间实施的处理的示图。在步骤S802中消息被发送的先决条件下实施图11中的处理。
首先,向扩展VM系统服务209发送消息发送请求,以便从作为发送者的VM 203a发送消息(步骤S1101)。此时,VM 203a将由作为目的地的VM 203b使用的VM线程205b的线程ID和期望发送的消息(图像数据获得请求)一起发送到扩展VM系统服务209。接下来,在接收到消息发送请求时,扩展VM系统服务209实施图10中的处理(步骤S1102)。然后,作为目的地的VM 203b向扩展VM系统服务209发送消息请求以便接收消息(步骤S1103)。此时,VM 203b向扩展VM系统服务209发送由VM 203b自身使用的VM线程205b的线程ID。扩展VM系统服务209获得由已经发送消息请求的VM203b使用的VM线程205b的线程ID,并且基于线程管理信息400检查对应于获得的线程ID 402的队列ID 403。扩展VM系统服务209然后实施消息接收处理,在该消息接收处理中,它获得存储于具有检查的队列ID 403的队列中的消息(步骤S1104)。
图12是可用于解释存储于作为外部装置的主机PC中的扩展应用被安装于MFP上的处理的流程的示图。
首先,主机PC 1200向MFP 100发送安装画面显示请求(步骤S1201)。MFP 100接收安装画面显示请求(步骤S1211),并且还发送用于在安装画面上显示的HTML内容(步骤S1212)。主机PC 1200在主机PC 1200所具有的显示单元的画面上显示用于在安装画面上显示的接收的HTML内容(步骤S1202)。此外,主机PC 1200压缩要安装于MFP 100上的扩展应用,并且将压缩的扩展应用作为安装文件上载到MFP 100(步骤S1203)。MFP 100接收上载的安装文件(步骤S1213)并且还对压缩的安装文件进行解压缩(步骤S1214)。MFP100将解压缩的安装文件的程序代码转换成字节码(步骤S1215)并且开始将已经被转换成字节码的程序代码写入自身(步骤S1216)。MFP100然后确定是否已经完成安装文件的安装(步骤S1217),并且,当已经完成安装时,MFP 100向主机PC 1200发送安装完成通知(步骤S1218)。已经接收到安装完成通知的主机PC 1200在显示单元的画面上显示安装完成画面(步骤S1204)。之后,主机PC 1200和MFP 100结束处理。
根据图12中的处理,安装文件的程序代码被转换成字节码,并且转换成字节码的程序代码被写入于MFP 100中。即,安装文件的程序代码被转换成作为设备相关代码的字节码,由此,不管程序代码被写入到什么设备中,程序代码都被转换成允许写入该设备中的码。作为结果,不管执行环境(设备)如何,扩展应用都被允许安装。
已经借助实施例描述了本发明,但是本发明不限于上述的实施例。
其它实施例
本发明的(一个或多个)实施例也可以通过读出并执行记录于存储介质(也可被更完整地称为“非暂时性计算机可读存储介质”)上的计算机可执行指令(例如,一个或更多个程序)以执行上述(一个或多个)实施例中的一个或多个的功能和/或包含用于执行上述(一个或多个)实施例中的一个或多个的功能的一个或多个电路(例如,专用集成电路(ASIC))的系统或装置的计算机来实现,或者通过由系统或装置的计算机通过例如读出并执行来自存储介质的计算机可执行指令以执行上述(一个或多个)实施例中的一个或多个的功能和/或控制一个或更多个电路以执行上述(一个或多个)实施例中的一个或多个的功能而执行的方法来实现。计算机可以包括一个或多个处理器(例如,中央处理单元(CPU)、微处理单元(MPU)),并且可包含单独的计算机或单独的处理器的网络,以读出并执行计算机可执行指令。计算机可执行指令可以例如从网络或存储介质被提供给计算机。存储介质可以包含例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的储存器、光盘(诸如紧凑盘(CD)、数字多功能盘(DVD)或蓝光盘(BD)TM)、闪存存储器设备和存储卡等中的一个或多个。
虽然已经参照示例性实施例描述了本发明,但是要理解,本发明不限于公开的示例性实施例。所附权利要求的范围要被赋予最广泛的解释以涵盖所有这样的修改和等同的结构和功能。
附图标记列表
100 MFP
105 CPU
201 OS
203 VM
205 VM线程
206 VM系统服务
207 扩展应用
400 线程管理信息

Claims (19)

1.一种信息处理装置,具有多个虚拟机,所述多个虚拟机包括第一虚拟机和第二虚拟机,所述信息处理装置包括
控制器,被配置为:
通过第一虚拟机执行由第一应用识别信息识别的应用;
通过第二虚拟机执行由第二应用识别信息识别的应用;
在第一应用识别信息与第二应用识别信息相同的情况下,从第一虚拟机控制下的上下文向第二虚拟机控制下的上下文发送消息;以及
在第一应用识别信息与第二应用识别信息不同的情况下,控制不从第一虚拟机控制下的上下文向第二虚拟机控制下的上下文发送消息。
2.根据权利要求1所述的信息处理装置,其中:
控制器还被配置为生成线程并执行与第一虚拟机和第二虚拟机分开设置的操作系统(OS),
第一虚拟机使用第一线程,第二虚拟机使用第二线程,以及
第一虚拟机请求生成第二线程,并且,响应于生成第二线程的请求,控制器生成第二线程。
3.根据权利要求1所述的信息处理装置,其中,第一虚拟机使用第一线程,第二虚拟机使用第二线程,并且控制器还被配置为生成线程管理信息以用于管理线程中的至少一个,以及
其中,线程管理信息至少具有对应于(i)第一应用识别信息和第一线程以及(ii)第二应用识别信息和第二线程的识别号码。
4.根据权利要求3所述的信息处理装置,其中,在第一应用识别信息与第二应用识别信息相同的情况下,与第一应用识别信息和第二应用识别信息对应的识别号码相同,而在第一应用识别信息与第二应用识别信息不同的情况下,与第一应用识别信息和第二应用识别信息对应的识别号码彼此不同。
5.根据权利要求1所述的信息处理装置,其中,第一虚拟机使用本机程序中包括的第一线程,与第一线程对应的第一虚拟机被生成,并且第一虚拟机解释和执行扩展程序中包括的命令。
6.根据权利要求1所述的信息处理装置,其中第一虚拟机使用第一线程,第二虚拟机使用第二线程,并且控制器还被配置为:
根据包括由第一虚拟机解释和执行的命令的扩展程序的运行,生成新线程;以及
生成使用所生成的新线程的新虚拟机,
其中,第二线程被生成为新线程,并且第二虚拟机被生成为新虚拟机。
7.根据权利要求1所述的信息处理装置,还包括:
显示器,
其中,控制器还被配置为在第一应用识别信息与第二应用识别信息不同的情况下使显示器指示错误。
8.根据权利要求1所述的信息处理装置,其中所述消息是请求图像数据获得的消息。
9.根据权利要求1所述的信息处理装置,其中所述消息是通知图像获得完成的消息。
10.根据权利要求1所述的信息处理装置,其中,控制器还被配置为通过第一虚拟机为由第一应用识别信息识别的应用生成线程。
11.一种用于信息处理装置的控制方法,所述信息处理装置具有多个虚拟机,所述多个虚拟机包括第一虚拟机和第二虚拟机,所述控制方法包括:
通过第一虚拟机执行由第一应用识别信息识别的应用;
通过第二虚拟机执行由第二应用识别信息识别的应用;
在第一应用识别信息与第二应用识别信息相同的情况下,从第一虚拟机控制下的上下文向第二虚拟机控制下的上下文发送消息,以及
在第一应用识别信息与第二应用识别信息不同的情况下,不从第一虚拟机控制下的上下文向第二虚拟机控制下的上下文发送消息。
12.根据权利要求11所述的用于信息处理装置的控制方法,其中,第一虚拟机使用本机程序中包括的第一线程,与第一线程对应的第一虚拟机被生成,以及包括由第一虚拟机解释和执行的命令的扩展程序在第一虚拟机上运行。
13.根据权利要求11所述的用于信息处理装置的控制方法,还包括:
根据包括由使用第一线程的第一虚拟机解释和执行的命令的扩展程序的运行,生成新线程;以及
生成使用所生成的新线程的新虚拟机,
其中,第二虚拟机使用的第二线程为生成的新线程,并且第二虚拟机为生成的新虚拟机。
14.根据权利要求11所述的控制方法,还包括在第一应用识别信息与第二应用识别信息不同的情况下使显示器指示错误。
15.根据权利要求11所述的用于信息处理装置的控制方法,其中所述消息是请求图像数据获得的消息。
16.根据权利要求11所述的用于信息处理装置的控制方法,其中所述消息是通知图像获得完成的消息。
17.根据权利要求11所述的用于信息处理装置的控制方法,还包括通过第一虚拟机为由第一应用识别信息识别的应用生成线程。
18.一种信息处理装置,具有多个虚拟机,所述多个虚拟机包括第一虚拟机和第二虚拟机,所述信息处理装置包括
控制器,被配置为:
通过第一虚拟机执行由第一应用识别信息识别的应用;
通过第二虚拟机执行由第二应用识别信息识别的应用;
在第一应用识别信息与第二应用识别信息相同的情况下,从第一虚拟机向第二虚拟机发送消息;以及
在第一应用识别信息与第二应用识别信息不同的情况下,控制不从第一虚拟机向第二虚拟机发送消息。
19.一种用于信息处理装置的控制方法,所述信息处理装置具有多个虚拟机,所述多个虚拟机包括第一虚拟机和第二虚拟机,所述控制方法包括:
通过第一虚拟机执行由第一应用识别信息识别的应用;
通过第二虚拟机执行由第二应用识别信息识别的应用;
在第一应用识别信息与第二应用识别信息相同的情况下,从第一虚拟机向第二虚拟机发送消息;以及
在第一应用识别信息与第二应用识别信息不同的情况下,不从第一虚拟机向第二虚拟机发送消息。
CN201680052887.6A 2015-09-16 2016-09-01 信息处理装置、用于信息处理装置的控制方法、和程序 Active CN108027752B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015183180A JP6771874B2 (ja) 2015-09-16 2015-09-16 情報処理装置、その制御方法及びプログラム
JP2015-183180 2015-09-16
PCT/JP2016/076358 WO2017047476A1 (en) 2015-09-16 2016-09-01 Information processing apparatus, control method therefor, and program

Publications (2)

Publication Number Publication Date
CN108027752A CN108027752A (zh) 2018-05-11
CN108027752B true CN108027752B (zh) 2021-10-29

Family

ID=58289178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680052887.6A Active CN108027752B (zh) 2015-09-16 2016-09-01 信息处理装置、用于信息处理装置的控制方法、和程序

Country Status (5)

Country Link
US (1) US11397603B2 (zh)
JP (1) JP6771874B2 (zh)
CN (1) CN108027752B (zh)
DE (1) DE112016004212T5 (zh)
WO (1) WO2017047476A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7030426B2 (ja) * 2017-05-31 2022-03-07 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
JP2023027468A (ja) * 2021-08-17 2023-03-02 富士フイルムビジネスイノベーション株式会社 情報処理装置、情報処理システム、およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826276B1 (en) * 2011-06-21 2014-09-02 Google Inc. Multi-threaded virtual machine processing on a web page
CN104598298A (zh) * 2015-02-04 2015-05-06 上海交通大学 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法
CN104798061A (zh) * 2012-12-17 2015-07-22 英特尔公司 在虚拟化环境中控制对存储器页面组的访问
CN104823157A (zh) * 2012-09-12 2015-08-05 格林伊登美国控股有限责任公司 用于提供联络中心资源的动态弹性的系统和方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH075088A (ja) 1993-06-18 1995-01-10 Kumamoto Pref Gov ヤング率測定装置
US6453392B1 (en) * 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
US7680877B2 (en) 2006-12-18 2010-03-16 Ricoh Company, Ltd. Implementing a web service application on a device with multiple threads
WO2009133669A1 (ja) * 2008-04-28 2009-11-05 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
US20110154327A1 (en) * 2009-09-11 2011-06-23 Kozat Ulas C Method and apparatus for data center automation
JP5742125B2 (ja) * 2010-07-21 2015-07-01 富士通株式会社 プログラム、情報生成装置及び情報生成方法
JP5653151B2 (ja) * 2010-09-17 2015-01-14 キヤノン株式会社 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
US9495183B2 (en) * 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9183015B2 (en) * 2011-12-19 2015-11-10 Vmware, Inc. Hibernate mechanism for virtualized java virtual machines
JP5955148B2 (ja) * 2012-07-27 2016-07-20 キヤノン株式会社 画像形成装置及び仮想マシンプログラム
US9128899B1 (en) * 2012-07-31 2015-09-08 Google Inc. Predictive failover planning
JP6091142B2 (ja) 2012-10-05 2017-03-08 キヤノン株式会社 画像形成装置、制御方法、およびそのプログラム。
AU2013378115B2 (en) 2013-02-14 2016-07-28 VMware LLC Method and apparatus for application awareness in a network
EP2979183B1 (en) * 2013-03-28 2017-08-16 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for fault management in infrastructure as a service clouds
US10386900B2 (en) * 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US10282222B2 (en) * 2014-10-13 2019-05-07 Vmware, Inc. Cloud virtual machine defragmentation for hybrid cloud infrastructure
US9858101B2 (en) * 2014-11-13 2018-01-02 Red Hat Israel, Ltd. Virtual machine input/output thread management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826276B1 (en) * 2011-06-21 2014-09-02 Google Inc. Multi-threaded virtual machine processing on a web page
CN104823157A (zh) * 2012-09-12 2015-08-05 格林伊登美国控股有限责任公司 用于提供联络中心资源的动态弹性的系统和方法
CN104798061A (zh) * 2012-12-17 2015-07-22 英特尔公司 在虚拟化环境中控制对存储器页面组的访问
CN104598298A (zh) * 2015-02-04 2015-05-06 上海交通大学 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法

Also Published As

Publication number Publication date
JP2017058952A (ja) 2017-03-23
JP6771874B2 (ja) 2020-10-21
WO2017047476A1 (en) 2017-03-23
DE112016004212T5 (de) 2018-06-14
CN108027752A (zh) 2018-05-11
US11397603B2 (en) 2022-07-26
US20190042291A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
EP2060975A2 (en) Screen sharing system and data transfer method
CN110321086B (zh) 非暂时性计算机可读记录介质以及控制信息处理装置的方法
US20120092689A1 (en) Information processing apparatus, method for controlling the same, and storage medium
US20080068655A1 (en) Data processing apparatus and recording medium
US11115547B2 (en) Image forming apparatus that notifies a specific control unit of operation information depending on an operation screen being displayed, and control method therefor
JP6468937B2 (ja) 情報処理装置、制御方法、制御プログラム
CN108027752B (zh) 信息处理装置、用于信息处理装置的控制方法、和程序
WO2014136429A1 (en) Information processing apparatus and method for the same
EP3470981A1 (en) Information processing apparatus and control method thereof
US11720390B2 (en) Information processing apparatus that determines whether an extended application can reuse a virtual machine, method of controlling the same, and storage medium
US10855852B2 (en) Image processing apparatus, control method thereof, and storage medium
US20170031668A1 (en) Peripheral apparatus and method
KR101641903B1 (ko) 문서 타입 변환 시스템 및 그 제공방법
US20190187878A1 (en) Icon display control apparatus that prevents messed-up display of icons, method of controlling same, and storage medium
JP6768544B2 (ja) 情報処理装置、制御方法およびプログラム
US20180173479A1 (en) Image forming apparatus capable of mounting application and method for controlling the same
JP5879807B2 (ja) 印刷制御装置、制御プログラム及び記録媒体
JP2016218887A (ja) 端末装置、プログラム及び出力システム
KR20180056389A (ko) 화상 형성 장치, 그 제어 방법, 및 기억 매체
JP2005301890A (ja) 拡張制御装置および画像形成システムおよびアプリケーション起動切り替え方法および画像形成システムの制御方法およびプログラムおよび記録媒体
US9030683B2 (en) Information processing apparatus, control method, and storage medium with deletion unit deleting a virtual device object
CN112445439A (zh) 图像形成控制方法及装置、设备、系统、存储介质
JP6204281B2 (ja) 画像形成装置、画像形成方法及び画像形成プログラム
JP6728590B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP2014029633A (ja) 情報処理装置および印刷システム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant