CN109597659A - 图像形成设备及其控制方法 - Google Patents

图像形成设备及其控制方法 Download PDF

Info

Publication number
CN109597659A
CN109597659A CN201811140096.6A CN201811140096A CN109597659A CN 109597659 A CN109597659 A CN 109597659A CN 201811140096 A CN201811140096 A CN 201811140096A CN 109597659 A CN109597659 A CN 109597659A
Authority
CN
China
Prior art keywords
license
host
plug
host application
image forming
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
Application number
CN201811140096.6A
Other languages
English (en)
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 CN109597659A publication Critical patent/CN109597659A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1222Increasing security of the print job
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1286Remote printer device, e.g. being remote from client or server via local network
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Abstract

本发明提供一种图像形成设备及其控制方法。保持与宿主应用程序相关联的针对宿主应用程序的许可列表,并且将插件应用程序添加到宿主应用程序,将插件应用程序中包括的许可添加到宿主应用程序的许可列表并更新该许可列表,以及基于更新后的许可列表来判断否要执行宿主应用程序和插件应用程序中的处理。

Description

图像形成设备及其控制方法
技术领域
本发明涉及应用程序的管理。
背景技术
近年来,对于图像形成设备,提供了诸如JAVA(注册商标,以下省略)环境等的应用程序(以下为“app”)运行环境。已经提出了通过应用JAVA的程序可移植性来提供可扩展的app的技术。为了改善图像形成设备的功能性和可用性,可以生成在诸如JAVA环境等的环境中运行的app并将其安装在图像形成设备中,使得app可以提供期望的功能。
作为app平台,提供针对集成设备的JAVA app平台,诸如OSGi(开放服务网关协议)服务平台(以下为OSGi)(参见2005年8月的“OSGi Service Platform,Release 4”,https://www.osgi.org/developer/downloads)。OSGi具有包括被称为宿主束(hostbundle)和片段束(fragment bundle)的机制的规范。宿主束是要添加片段束的束。片段束是不单独运行、而是将束添加(附加)到宿主束的类加载器空间(class loader space)的束。
包括这种片段束的各束具有被称为JAVA标准规范中提供的许可的安全访问授权机制。可以针对各束单独定义许可。
宿主束所保持的许可定义文件的许可可以以必要的最低安全性来保持。另一方面,可以根据对宿主束的许可来处理用于处理片段束的许可。这可能导致用于处理片段束的许可不充分。在用于处理片段束的许可不充分的情况下,每次都要修正宿主束中保持的许可定义文件,从而损失了片段束的便利性。
发明内容
本发明的方面提供在无需修正在宿主束中保持的许可定义文件并且不缺少用于处理片段束的许可的情况下可执行的片段束的技术。
根据本发明的方面的一种图像形成设备,包括:保持单元,其被配置为保持与宿主应用程序相关联的针对所述宿主应用程序的许可列表;添加单元,其被配置为将插件应用程序添加到所述宿主应用程序;更新单元,其被配置为将所述插件应用程序中所包括的许可添加到针对所述宿主应用程序的许可列表并对该许可列表进行更新;以及判断单元,其被配置为基于更新后的许可列表来判断是否要执行所述宿主应用程序和所述插件应用程序中的处理。
根据本发明的方面的一种图像形成设备的控制方法,所述控制方法包括:将插件应用程序添加到宿主应用程序;将所述插件应用程序中所包括的许可添加到与所述宿主应用程序相关联的针对所述宿主应用程序的许可列表并对该许可列表进行更新;以及基于更新后的许可列表来判断是否要执行所述宿主应用程序和所述插件应用程序中的处理。
通过以下参考附图对典型实施例的说明,本发明的其它特征将变得明显。
附图说明
图1是示出图像形成设备的硬件结构图。
图2是示出图像形成设备的软件模块层次图。
图3是示出用于安装束的流程的框图。
图4是示出片段束的概念图。
图5示出与束管理画面和安装画面有关的用户界面。
图6示出一般JAVA的许可机制。
图7示出OSGi中的许可机制。
图8A和8B示出束中保持的许可定义文件。
图9示出OSGi扩展单元在存储器上保持的许可列表和许可文件。
图10A和10B是与当安装束时和当图像形成设备启动时OSGi扩展单元中的许可有关的流程图。
图11是与从束调用的API中的许可处理有关的序列图。
图12示出OSGi中的宿主束和片段束的许可机制。
图13示出宿主束和片段束的许可定义文件。
图14示出当片段束附加到宿主束时保持在宿主束中的许可列表的变化。
图15A和15B是示出当片段束附加到宿主束时要对OSGi扩展单元中的宿主束进行的许可处理的流程图。
图16是示出当从宿主束分离片段束时OSGi扩展单元中的宿主束的许可处理的流程图。
图17示出当分离片段束时在宿主束中保持的许可列表的变化。
具体实施方式
将参考附图来描述用于实施本发明的最佳模式。
首先,将在将片段束附加(添加)到宿主束的情况下描述OSGi扩展单元中的许可处理。应当注意,术语“宿主束”是“宿主应用程序(宿主app)”的同义词,并且术语“片段束”是“插件应用程序(插件app)”的同义词。
图1是示出包括打印功能、扫描功能和网络通信功能的图像形成设备130的硬件结构图。
图像形成设备130电连接到扫描器单元单元113和打印机单元114,另一方面,通过LAN 116电连接到外部装置。CPU 101被配置为通常基于存储在ROM 102中的控制程序来控制对连接到图像形成设备的硬件模块的访问,并且还通常控制控制器内的处理。
ROM 102是只读非易失性存储区域,并且被配置为存储用于图像形成设备130的引导程序和固件。RAM 103是CPU 101用于操作而使用的系统工作存储器,并且被配置为临时存储各种数据。RAM 103可以包括可以在断电之后保持所存储的数据的FRAM(注册商标)或SRAM、以及在断电之后所存储的数据被删除的DRAM。
HDD 104是非易失性存储区域,并且被配置为存储系统束。将参考图3描述的包括要安装的束的固件存储在HDD 104中。操作单元I/F 105是被配置为连接系统总线119和操作单元118的接口单元。更具体地,操作单元I/F 105可以从系统总线119接收要在操作单元118上显示的数据,并且可以将输入信息从操作单元118输出到系统总线119。用户指示和信息可以通过操作单元118呈现给信息图像形成设备130。网络I/F 106被配置为连接LAN116、WAN 117和系统总线119,并且可用于相对于外部设备输入/输出信息。
扫描器I/F 108被配置为校正、处理和编辑从扫描器单元单元113接收到的图像数据。图像形成单元109被配置为对图像数据进行方向转换、图像压缩和解压缩。打印机I/F110被配置为接收从图像形成单元109发送的图像数据,根据该图像数据进行图像形成并在打印机单元114中将其进行打印。
图2示出根据本发明的图像形成设备130的软件模块层次200。
图2和随后的图中所示的软件可以存储在ROM 102或HDD 104中,并且可以由CPU101执行。用于执行的信息可以保持在RAM 103或HDD 104中,并在软件功能之间交换。网络I/F 106可以用于与外部设备通信。
接着,将在下面描述软件模块。首先,该软件具有操作系统(OS)平台201。用户接口202是用户接口模块,该用户接口模块被配置为当操作者在图像形成设备130上进行操作和设定时,在图像形成设备130和用户操作之间进行传达。该模块还被配置为根据操作者的操作将输入信息传送到模块,并请求处理或改变数据的设置。
接着,将描述JAVA侧配置。
JAVA侧软件平台被配置为Java VM 207的运行时环境,并且包括Java VM 207(作为解释器)、库208和框架组209。库208包括默认API库。框架组209包括OSGi 210,并且OSGi210使单个Java VM 207运行多个束。
OSGi将束定义为软件模块的管理单元,并定义用于管理包括安装/启动/停止/更新/卸载的生命周期的规范。这里,术语“束”指的是JAVA模块,并且根据本发明是“app”的同义词。因此,以下将app记载为束。在这样的app平台上,可以通过束提供复印、扫描和打印等的集成功能。
OSGi扩展单元211是负责作为接口规范的OSGi 210的实现部分的模块。OSGi扩展单元211定义是否可以在满足OSGi 210的规范的范围内根据需要扩展功能。OSGi 210和OSGi扩展单元211可以提供用于管理束的生命周期的功能和束之间的通信功能。
OSGi 210具有一组多个系统束212。系统束组212可以包括被配置为管理多个束并添加、更新或删除新束的束管理服务214。束管理服务214是接收来自PC的安装指示的接收口。已经接收到安装指示的束管理服务214使用安装控制服务213来添加或更新束。
系统束组212包括负责图像形成设备130的认证功能的认证束215。认证束215是不能被停用(deactivate)的束,这是因为它要在图像形成设备对用户进行认证期间回答来自任意束的任意时间的关于认证信息的查询。
另一方面,提供了后续安装的后入(last-in)束组217。将参考图3来描述束安装。后入束组217包括后入束219,并且被配置为在图像形成设备130中向用户提供处理。例如,后入束219可以是被配置为进行图像处理或压缩并且进行与例如打印限制有关的部门管理的束。在束管理服务214的管理下,运行被配置为实现功能的后入束219。束管理服务214被配置为保持包括在管理下添加的束的版本的束信息和许可证信息。
图3是示出用户将来自PC 300的后入束219安装到图像形成设备130的流程的框图。
市面上可买到的后入束219具有数字签名并被加密以防止篡改。后入束219保持许可定义文件301。许可定义文件301是在安装后入束219之后可用于使用各种功能的许可。这里,术语“许可”是指JAVA标准规范中提供的安全访问授权机制。如果不必要,可以不保持许可定义文件301。许可通常如下所述以包括许可名称以及“name(名称)”和“action(动作)”的格式来定义。“name”和“action”可以具有取决于许可的类型的值。可以指定“*”以使得可以指定通配符。
(XXXPermission,“name”,“action”)
束安装用户界面302可以显示在PC 300的WEB浏览器上,并且可以从束安装用户界面302指定和安装要安装的后入束219。已经接收到通过束安装用户界面302指定的束的束管理服务214被传递到安装控制服务213。已经接收到束文件的安装控制服务213对所接收到的后入束219进行解密处理,并且确认用于判断束是否具有表示有效性的数字签名的处理。如果确认处理成功,则安装控制服务213最终请求OSGi扩展单元211安装束。OSGi扩展单元211被配置为针对各束在存储器上生成许可列表303,使得当安装束时可以实现束的许可管理。这是为了回答来自Java VM 207的与束所保持的许可有关的查询而生成的。将参考图7来详细描述许可列表303。不仅在安装时而且在图像形成设备启动时,包括在图像形成设备中的所有束的许可将被读回到许可列表303。因此,生成包括与所有束有关的许可信息的许可文件304。对许可的这种管理包括在OSGi 210的协议中。将参考图9来详细描述许可文件304。
图4示出片段束的概念。
图4示出具有语言本地化资源的片段束401和402被附加到宿主束400的示例。
为了将片段束附加到宿主束,根据OSGi 210的协议,在以下清单和许可定义文件中指定束许可。
宿主束的清单403
针对Bundle-ManifestVersion,指定“2”。
针对Bundle-SymbolicName,赋予框架内的唯一名称。
片段束的清单405
针对Bundle-ManifestVersion,指定“2”。
针对Fragment-Host,指定宿主束的清单403中写入的[宿主束符号名]。该值的一致表示宿主束和片段束是相同束的组件。
宿主束的许可404
BundlePermission[束符号名,HOST]
片段束的许可406
BundlePermission[束符号名,FRAGMENT]
如果满足这些条件并且在附加片段束的情况下,则OSGi 210从片段束的清单信息中识别宿主束,并将片段束的类路径(class path)添加到宿主束的类路径。这里,“类路径”指定在执行JAVA应用程序时JAVAVM读出的类文件的位置。宿主束的类加载器加载片段束内的所有类和资源。这里,术语“类加载器”指的是被配置为加载类和搜索资源的对象,并且类加载器将所有类加载到JAVAVM,使得这些类可以被相应的应用程序使用。由于宿主束的类加载器的加载是在启动宿主束时执行的,因此宿主束一度被停用,并且在加载之前添加类路径。
根据本实施例,主要具有日文资源401和中文资源402的片段束被安装在宿主束400中。之后,宿主束400可以使用日文和中文资源来改变资源语言。换句话说,宿主束的用户界面以英文显示,但是可以在宿主束的用户界面上指定资源改变,从而以日文显示或中文显示生成宿主束。
通常,根据OSGi协议,片段束遵从宿主束的许可的指定。换句话说,通过遵从宿主束的许可来处理从片段束调用的功能。根据OSGi协议,在附加和分离之间切换时,宿主束的许可不会改变。
当app被修正或扩展时,可以使用片段束来修正或扩展宿主束的功能,使得可以安装具有较小尺寸的文件以进行有效率的模块分发。
图5示出束管理服务214中的束管理画面500和安装画面530。
首先,将描述束管理画面500。
束名称501显示管理下的束名称。在该示例中,管理束A 505和束B 506这两个。束A被定义为宿主束,并且管理片段束A 507和片段束B 508。在这种情况下,为了清楚地呈现宿主束和片段束的关联(对应关系),片段束A 507和片段束B 508与束A 505相关联地显示。安装日期502是安装束的日期。束ID 503显示唯一分配给束的束ID。束ID是用于标识束的标识信息。状态504显示束的状态。如果启动束,则显示“开始”;如果停止束,则显示“停止”。当将片段束附加到宿主束时,将显示“有效”。附加片段束的状态被称为有效状态。当没有附加片段束时,即当片段束分离时,显示“无效”。片段束分离的状态被称为无效状态。在无效状态中,片段束不与宿主束相关联,但片段束的jar的实体保留在HDD 104上。因此,如果将无效状态转变成有效状态,则可以在不指定jar的情况下转变成有效状态。开始按钮516/停止按钮513是用于在束的开始和停止之间切换的指示按钮(接收按钮)。如果束具有开始状态,则显示停止按钮,而如果束具有停止状态,则显示开始按钮。有效按钮515/无效按钮514是用于在片段束的有效状态和无效状态之间切换的指示按钮。当针对具有有效状态的束(在该示例中为“片段束A 507”)按下无效按钮514时,状态504被改变为无效状态。另一方面,当针对无效状态束(在该示例中为“片段束B 508”)按下有效按钮515时,状态504被改变为有效状态。卸载按钮517至520是用于卸载束的指示按钮。当指示卸载时,删除HDD 104上剩余的jar的实体。
接着,将描述安装画面530。浏览按钮533可用于显示用于选择文件路径的画面。当在画面上指定束文件时,束文件的路径被输入到束文件的路径531。从安全性或业务角度对束进行加密,并对束进行解密以进行安装处理。因此,可能需要持有密钥的许可证文件。在这种情况下,当按下浏览按钮534时,显示用于选择文件路径的画面。当以与用于束指定的方式相同的方式指定许可证文件时,将至许可证文件的路径输入到至许可证文件的路径532。当按下安装按钮535时,开始在束文件路径531上指定的束的安装。当指定要安装的片段束时,则片段束一度以无效状态安装。
图6示出根据JAVA的许可机制。
JAVA应用程序环境的策略使得能够指定可以利用来自各种源中的任何一个源的代码使用的访问权限。能够指定代码可使用的访问权限的文件被称为策略文件601。
这里假设策略文件601指定Java VM 207。策略文件601表示/java_home/lib/ext/*下的jar文件保持有许可,“java.io.FilePermission“/data/foo.dat”“read,write””。
该许可意味着写入和读取的许可被赋予/log/foo.dat的文件。
因此,参考图6,/java_home/lib/ext/602下的Sample 1.jar 603和Sample 2.jar604具有许可。另一方面,/java_home/etc 605下的Sample 3.jar 606不具有许可。
在API请求授权确认的情况下,Java VM 207参考默认策略文件601。参考由调用束保持的许可和API请求确认的许可,判断调用束是否保持有许可。如果调用束不具有许可,则API不可用。因此,中止处理,并返回错误。
例如,将检查如下情况:使用API,该API根据特定jar新生成JAVA默认库中的被称为java.io.File.createNewFile 600的文件,以生成文件“/data/foo.dat”。被称为createNewFile 600的API被配置为仅使得对指定路径具有写入许可的束能够进行写入处理。因此,针对来自具有对文件的读取/写入许可的Sample 1.jar 603和Sample 2.jar 604的调用(610,611),不返回错误。另一方面,针对来自Sample 3.jar 606的调用(612),返回错误,因为该bundle不具有写入许可。
图7示出OSGi许可的机制。
基于图6所示的JAVA许可管理机制,配置为通过OSGi扩展单元211来管理由JavaVM 207引用的调用束所保持的许可。
OSGi扩展单元211在存储器上的许可列表705中管理由各束保持的许可。Java VM207参考许可列表705来获得由调用束保持的许可的类型。
默认策略文件700表示/java_home/lib/ext/*下的jar文件保持有三个许可。应当注意,默认策略文件是通常给予所有束的许可。
/java/bundles/701下的Bundle 1.jar 702保持许可定义文件704。另一方面,假设Bundle 2.jar 703没有保持束定义文件。Bundle 1.jar 702根据通过将许可定义文件中的许可添加到默认策略文件中的许可而获取到的许可来运行。由于Bundle 2.jar 703没有保持束定义文件,因此Bundle 2.jar 703根据默认策略文件中的许可来运行。
接着,将参考图8A和8B来描述由束保持的许可定义文件。
图8A示出束中保持的许可定义文件。束jar文件800可以保持许可定义文件802以及清单文件801。
图8B示出Bundle 1.jar 702中的许可定义文件704。更具体地说,定义了如下三个许可:
(java.lang.RuntimePermission“*”“XXX”)
(java.security.SecurityPermission“*”“YYY”)
(java.io.FilePermission“/log/foo.log”“read,write”)。
返回参考图7,将描述Bundle 1.jar 702中保持的许可。当首次安装束时,OSGi扩展单元211将默认策略文件700和束定义文件704的添加结果作为许可列表705在存储器上进行管理。将参考图9来描述在这种情况下的许可列表705的状态。图10A和10B示出用于由OSGi扩展单元211生成束列表705的流程。
图9示出由OSGi扩展单元保持在RAM 103的存储器上的许可列表900和901以及从OSGi扩展单元输出到HDD 104的许可文件902。
Bundle 1.jar 702的许可900是默认策略文件700的许可910和束定义文件704的许可911的添加结果。
Bundle 2.jar 703的许可901仅对应于默认策略文件700的许可910。
针对各束保持的许可列表900和901的内容被总地输出到许可文件902。许可文件902逐个束地接收安装在图像形成设备中的所有束的许可。Bundle 1.jar 702保持许可920并且具有与许可列表900的内容相同的内容。束ID 921是分配给Bundle 1.jar 702的唯一ID。Bundle 2.jar 703保持具有与许可列表901相同的内容的许可922。Bundle ID 923是分配给Bundle 2.jar 703的唯一ID。
图10A是当安装束时由OSGi扩展单元211生成束列表705的流程图。图10A所示的术语“束”对应于不包括片段束的宿主束。
在S1000中,开始束安装处理中的许可处理。这里,如图3所示,从束安装用户界面(或束安装UI)302安装束。
在S1001中,读取默认策略文件700,并且将写入其中的默认许可添加到束许可列表。
在S1002中,确认要安装的束是否保持有许可定义文件。如果是,则处理移动至S1003。如果不是,则处理移动至S1004。
在S1003中,读取许可定义文件704中的许可,并且将写入其中的许可添加到束许可列表以进行更新。应当注意,为了防止重复,不添加写入宿主束的许可定义文件中并且已经包括在许可列表中的许可。
在S1004中,将束许可列表作为许可文件902输出。
在S1005中,安装时的许可处理结束。
图10B示出在图像形成设备的启动时如何使用S1005中输出的许可文件。
在S1010中,在图像形成设备启动时开始OSGi扩展单元211的许可处理。
在S1011中,基于来自许可文件902的束ID 921,针对各束生成许可列表。参考图9,Bundle 1.jar中的许可列表900是根据Bundle 1.jar 702中的许可920生成的。Bundle2.jar中的许可列表901是根据Bundle 2.jar 703中的许可922生成的。
在S1012中,启动时的许可处理结束。
因此,在启动之后,在存储器上对束的许可列表进行解压缩,并且当Java VM 207查询束中保持的许可时可以参考束的许可列表。
图11是与从图7所示的Bundle 1.jar 702和Bundle 2.jar 703调用createNewFile 600时的许可处理有关的序列图。
在S1100中,束(例如,在调用Bundle 1.jar 702或Bundle 2.jar 703的情况下)通过使用createNewFile 600将日志输出到“/log/foo.log”。尽管将被配置为进行日志输出处理的束作为示例进行描述,但是可以应用被配置为进行其它类型的处理的任何其它束。以相同的方式对任何束进行S1101至S1105、S1106和S1108中的处理。将参考不包括片段束的束(即,对应于宿主束的束)来描述示例。然而,即使对包括片段束的束(即,包括宿主束和片段束的束)也将进行相同的许可处理。
在S1101中,createNewFile 600进行许可确认。在这种情况下,createNewFile600向Java VM 207查询调用源是否保持有所需许可。在S1102中,Java VM 207返回到当前线程的堆栈中,并针对该许可获得要确认的束的束ID列表。这里,要确认的束是保持通过该处理加载的类的束。根据该示例,要确认的束是Bundle 1.jar 702和Bundle 2.jar 703中的一个束。然而,在从另一个束调用Bundle 1.jar 702或Bundle 2.jar 703的情况下,也包括该调用束。接着,在S1103中,Java VM 207对在S1102中获得的列表上的所有束进行许可确认。在S1104中,Java VM 207基于束ID来向OSGi扩展单元211查询束所保持的许可。在S1105中,OSGi扩展单元211返回由Java VM 207查询的束(Bundle 1.jar 702或Bundle2.jar 703)的许可列表。在S1106中,Java VM 207判断createNewFile 600所需的许可是否包括从OSGi扩展单元211返回的许可列表。在S1103中,对所有束进行确认。
作为S1103中的处理的结果,如果所有束中包括所需的许可,则Java VM 207在S1107中返回OK值。另一方面,即使其中一个束不具有许可,也返回NG值。
如果返回的值是NG,则createNewFile 600在S1108中向该束返回NG值。另一方面,如果返回OK值,则createNewFile 600在S1109中执行文件创建处理。之后,在S1110中,将返回的OK值返回到束。
如果束是Bundle 1.jar 702,则意味着其包括对/log/foo.log的写入许可,(java.io.FilePermission“/log/foo.log”“read,write”)。
因此,在S1107中,针对许可保持判断为OK。然后,创建文件。
另一方面,如果束是Bundle 2.jar 703,则不包括对/log/foo.log的写入许可。因此,在S1107,针对许可保持判断为NG。因此,文件生成失败。
到此为止,已经描述了与根据OSGi管理的束的许可有关的操作。此外,已经描述了当包括作为OSGi的功能的片段束时要进行的操作。
图12示出根据OSGi的宿主束和片段束的许可机制。
由于Java VM 207、createNewFile 600、OSGi扩展单元211和策略文件700扮演与参考图7描述的角色相同的角色,因此将省略任何重复的描述。
/java/bundles/701下的Host.jar 1200是宿主束。Fragment 1.jar和Fragment2.jar是Host.jar 1200的片段束。Fragment 1.jar 1202和Fragment 2.jar 1203保持束定义文件1204和1205。
接着,将参考图13来描述各束中保持的许可定义文件。
图13示出各束中保持的许可定义文件。Host.jar 1200的许可定义文件1201包括以下描述:
(org.osgi.framework.BundlePermission“4d 06d 282-deb 4-462e-bd 48-71167c177”“HOST”)
Fragment 1.jar 1202的许可定义文件1204描述了以下两个许可:
(org.osgi.framework.BundlePermission“4d 06d 282-deb 4-462e-bd 48-71167c177”“FRAGMENT”)
(java.io.FilePermission“/log/foo 1.log”“read,write”)
Fragment 2.jar 1203的许可定义文件1205描述了以下两个许可:
(org.osgi.framework.BundlePermission“4d 06d 282-deb 4-462e-bd 48-71167c177”“FRAGMENT”)
(java.io.FilePermission“/log/foo 2zu.log”“read,write”)
返回参考图12,Host.jar 1200保持许可。OSGi扩展单元211将通过在首次安装束时添加默认策略文件700和束定义文件1201而获取到的许可列表1206在存储器上进行管理。这里的状态为状态(1)。当将Fragment 1.jar 1202附加到Host.jar 1200时,将Fragment 1.jar 1202中保持的束定义文件1204的许可添加到许可列表1206以进行管理。以相同的方式,当将Fragment 2.jar 1203附加到Host.jar 1200时,将Fragment 2.jar1203中保持的束定义文件1205的许可添加到许可列表1206以进行管理(其中状态是状态(2))。
将参考图14来描述在这种情况下的许可列表1206的状态。图15A和15B示出OSGi扩展单元211生成束列表1206的流程。
图14示出当将片段束附加到宿主束时保持在宿主束中的许可列表的变化。
许可列表1400表示具有状态(1)的许可。
许可列表1401表示具有状态(2)的许可。许可1410是在Fragment 1.jar 1202和Fragment 2.jar 1203中保持的许可定义文件1204和1205中描述的许可。然而,任何重复和相同的许可都不会以重复的方式包含在列表中。
保持在宿主束中的许可列表1401的内容被输出到许可文件1402。许可文件1402逐个束地接收安装在图像形成设备中的所有束的许可。许可1420由Host.jar 1200保持,并且具有与许可列表1401相同的内容。束ID 1421是分配给Host.jar 1200的唯一ID。
图15A是示出当将片段束附加到宿主束时要由OSGi扩展单元211进行的许可处理的流程图。
在S1500中,开始用于将片段束附加到宿主束的处理。这里,可以按下如图5所示的有效按钮515以将片段束附加到宿主束。
在S1501中,判断要附加的片段束是否保持有许可定义文件。如果是,则处理移动至S1502。如果不是,则处理移动至S1503。
在S1502中,读取许可定义文件1204/1205中的许可,并且将写入的许可添加到束的许可列表1206。然而,如果许可列表1206以重复方式具有相同的许可,则不以重复方式将该许可添加到列表。
在S1503中,定义束的许可列表并将其输出为许可文件1402。
在S1504中,结束在附加片段束时所要进行的针对许可的处理。
接着,图15B示出当启动图像形成设备时如何使用在S1503中输出的许可文件1403。
在S1510中,针对在图像形成设备启动时通过OSGi扩展单元211对宿主束中的许可的处理开始。
在S1511中,基于来自许可文件1402的束ID 1421生成针对各束的许可列表。参考图14,基于Host.jar 1200中的许可1420生成Host.jar的许可列表1401。
在S1512中,针对启动时的许可处理结束。
因此,在启动之后,片段束中保持的许可定义文件的内容在存储器上被解压缩在宿主束的许可列表1206中。因此,当从Java VM 207查询由束保持的许可时,可以参考该内容。
与调用包括片段束的束时的许可处理有关的序列图与图11中的处理相同。图11中的束702/703对应于包括片段束和宿主束的束。
如上所述,当附加片段束时,片段束中保持的许可定义文件的内容被添加到宿主束的许可列表中。因此,与一般束同样的机制可以提供使得能够使用片段束所需的许可的效果。
接着,将描述OSGi扩展单元的许可处理,以相反地从宿主束中分离(删除)附加到宿主束的片段束。
图16是示出OSGi扩展单元211对宿主束进行的用于从宿主束中分离片段束的许可处理的流程图。
更具体地,参考图12,从Fragment 1.jar 1202和Fragment 2.jar 1203附加到Host.jar 1200的状态分离Fragment 1.jar 1202。
在S1600中,开始从宿主束分离片段束的处理。这里,可以按下如图5所示的无效按钮514以从宿主束中分离片段束。
在S1601中,判断要分离的片段束是否保持有许可定义文件。如果是,则处理移动至S1602。如果不是,则处理移动至S1607。
在S1602中,读取许可定义文件1204的许可,并且从束的许可列表1206中删除所写入的许可。
在S1603中,判断是否剩余了与分离的宿主束相关联的任何片段束。如果是,则处理移动至S1604。如果不是,则处理移动至S1605。
在S1604中,读取剩余片段束的许可定义文件,并且将写入的许可添加到束的许可列表1206。应当注意,在不重复的情况下,不添加写入片段束的许可定义文件中但是已经包括在许可列表中的许可。
通过描述具体示例,读取剩余片段束Fragment 2.jar 1203的许可定义文件1205,并且将写入其中的许可添加到束的许可列表1206。虽然这是与Fragment 1.jar 1202的许可定义文件1204中的重复的许可,(org.osgi.framework.BundlePermission“4d06d282-deb4-462e-bd48-71167c177”“FRAGMENT”),但是其在S1602中被删除,并且此处不再添加。
在S1605中,读取宿主束的许可定义文件,并且将写入其中的许可添加到束的许可列表1206中。应当注意,为了防止重复,不添加写入宿主束的许可定义文件中并且已经包括在许可列表中的许可。
在S1606中,输出束的许可列表作为许可文件1402。
在S1607中,针对分离片段束时的许可的处理结束。
在S1604和S1605中,在不重复的情况下,不添加已经包括在许可列表中的许可。然而,在添加了在片段束的许可定义文件中写入的许可以及写入宿主束的许可定义文件中的许可之后,可以删除重复许可。
图17示出当分离片段束时在宿主束中保持的许可列表的变化。
当将Fragment 1.jar 1202和Fragment 2.jar 1203附加到Host.jar 1200时,宿主束的许可列表1700具有与许可列表1401相同的状态。
当Fragment 1.jar 1202从该状态分离时,最终将许可1701添加到宿主束的许可列表1206。图17示出默认策略的许可1702、Host.jar中定义的许可1703以及在Fragment2.jar 1203中定义的许可1704。
当分离片段束时,如上所述,删除从宿主束的许可列表中分离的片段束中保持的许可定义文件的内容。因此,宿主束的许可列表的内容被更新为仍具有所需许可的状态,这有利地是期望的安全状态。
根据本实施例,如上所述,片段束的附加和分离的生命周期和许可的添加和删除的生命周期是同步的。因此,可以根据需要来使用所需数量的片段束许可。
宿主束本身可以保持所需数量的许可。
下面将具体描述本实施例的优点。
具有诸如管理员授权的强许可的束可能在图像形成设备内具有不良影响。出于安全原因,通常不会向app赋予超过必要的授权。因此,可以建议宿主束中保持的许可在宿主束的实现范围内具有必要且充分的许可。
另一方面,将片段束用于添加或替换宿主束的功能。显然,必要的许可可能因此而有所不同。在这种情况下,由片段束添加或替换的功能基于宿主束中定义的许可来进行处理。因此,束所需的许可片段可以预先保持意味着宿主束中被称为java.security.AllPermission的所有许可的许可。然而,这违反了束应当具有必要的最低限度的许可的建议规则。
可以考虑要在宿主束中保持的许可的定义以及片段束的添加。然而,基于片段束再次生成宿主束,这可能导致在片段束内具有可扩展功能的片段束的特征的丢失。
针对这些问题,本实施例可以提供用于根据片段束相对于宿主束的附加和分离来适当地管理许可的机制。
上述实施例可以提供如下技术,该技术使得保持在宿主束中的许可定义文件可以在不进行修正的情况下并且在不缺乏用于由片段束进行处理的必要许可的情况下来执行。
其它实施例
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
尽管已经参考典型实施例说明了本发明,但是应该理解,本发明不局限于所公开的典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有这类修改、等同结构和功能。

Claims (12)

1.一种图像形成设备,包括:
保持单元,其被配置为保持与宿主应用程序相关联的针对所述宿主应用程序的许可列表;
添加单元,其被配置为将插件应用程序添加到所述宿主应用程序;
更新单元,其被配置为将所述插件应用程序中所包括的许可添加到针对所述宿主应用程序的许可列表并对该许可列表进行更新;以及
判断单元,其被配置为基于更新后的许可列表来判断是否要执行所述宿主应用程序和所述插件应用程序中的处理。
2.根据权利要求1所述的图像形成设备,其中,所述插件应用程序保持包括对所述插件应用程序的许可的许可定义文件。
3.根据权利要求1所述的图像形成设备,其中,针对所述宿主应用程序的许可列表包括用于标识所述宿主应用程序的标识信息。
4.根据权利要求1所述的图像形成设备,还包括:
第一接收单元,其被配置为接收用以将所述插件应用程序添加到所述宿主应用程序的指示,
其中,所述添加单元基于所述第一接收单元所接收到的指示来将所述插件应用程序添加到所述宿主应用程序。
5.根据权利要求1所述的图像形成设备,还包括删除单元,所述删除单元被配置为从所述宿主应用程序删除所述插件应用程序。
6.根据权利要求5所述的图像形成设备,还包括第二接收单元,所述第二接收单元被配置为接收用以从所述宿主应用程序删除所述插件应用程序的指示。
7.根据权利要求6所述的图像形成设备,其中,所述删除单元基于所述第二接收单元所接收到的指示来从所述宿主应用程序删除所述插件应用程序。
8.根据权利要求6所述的图像形成设备,还包括删除单元,所述删除单元被配置为基于所述第二接收单元所接收到的指示来从所述更新后的许可列表删除所述插件应用程序中所包括的许可。
9.根据权利要求8所述的图像形成设备,其中,所述删除单元从所述更新后的许可列表删除所述插件应用程序中所包括的许可,并且添加所述宿主应用程序中所包括的许可。
10.一种图像形成设备的控制方法,所述控制方法包括:
将插件应用程序添加到宿主应用程序;
将所述插件应用程序中所包括的许可添加到与所述宿主应用程序相关联的针对所述宿主应用程序的许可列表并对该许可列表进行更新;以及
基于更新后的许可列表来判断是否要执行所述宿主应用程序和所述插件应用程序中的处理。
11.根据权利要求10所述的图像形成设备的控制方法,其中,所述插件应用程序保持包括对所述插件应用程序的许可的许可定义文件。
12.根据权利要求10所述的图像形成设备的控制方法,其中,针对所述宿主应用程序的许可列表包括用于标识所述宿主应用程序的标识信息。
CN201811140096.6A 2017-09-29 2018-09-28 图像形成设备及其控制方法 Pending CN109597659A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-191762 2017-09-29
JP2017191762A JP6935291B2 (ja) 2017-09-29 2017-09-29 画像形成装置及びその制御方法

Publications (1)

Publication Number Publication Date
CN109597659A true CN109597659A (zh) 2019-04-09

Family

ID=63528533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811140096.6A Pending CN109597659A (zh) 2017-09-29 2018-09-28 图像形成设备及其控制方法

Country Status (4)

Country Link
US (1) US10545704B2 (zh)
EP (1) EP3462363B1 (zh)
JP (1) JP6935291B2 (zh)
CN (1) CN109597659A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586746B2 (en) * 2019-11-08 2023-02-21 Microsoft Technology Licensing, Llc Integration management of applications
US11762978B1 (en) * 2023-03-31 2023-09-19 Snowflake Inc. Granular access control of packages

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604371A (zh) * 2009-07-22 2009-12-16 阿里巴巴集团控股有限公司 插件权限的控制方法及系统
CN101702715A (zh) * 2009-11-13 2010-05-05 中国电信股份有限公司 应用软件的使用权限控制点、使用权限控制方法和系统
CN103761472A (zh) * 2014-02-21 2014-04-30 北京奇虎科技有限公司 基于智能终端设备的应用程序访问方法与装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291466B2 (en) * 2006-10-19 2012-10-16 International Business Machines Corporation Method and system for synchronized policy control in a web services environment
JP4909756B2 (ja) * 2007-02-09 2012-04-04 株式会社リコー 情報処理装置、外部アプリケーション利用方法及びプログラム
JP5037422B2 (ja) * 2008-04-30 2012-09-26 株式会社リコー 画像形成装置、アクセス制御方法、及びアクセス制御プログラム
JP6403559B2 (ja) * 2014-12-08 2018-10-10 キヤノン株式会社 情報処理装置およびその制御方法、並びにプログラム
JP6388405B2 (ja) * 2014-12-26 2018-09-12 キヤノン株式会社 情報処理装置、情報処理装置の制御方法およびプログラム
JP2017004114A (ja) * 2015-06-05 2017-01-05 キヤノン株式会社 画像形成装置及びアプリケーションの削除方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604371A (zh) * 2009-07-22 2009-12-16 阿里巴巴集团控股有限公司 插件权限的控制方法及系统
CN101702715A (zh) * 2009-11-13 2010-05-05 中国电信股份有限公司 应用软件的使用权限控制点、使用权限控制方法和系统
CN103761472A (zh) * 2014-02-21 2014-04-30 北京奇虎科技有限公司 基于智能终端设备的应用程序访问方法与装置

Also Published As

Publication number Publication date
JP2019067131A (ja) 2019-04-25
JP6935291B2 (ja) 2021-09-15
EP3462363A1 (en) 2019-04-03
US10545704B2 (en) 2020-01-28
US20190102121A1 (en) 2019-04-04
EP3462363B1 (en) 2020-07-22

Similar Documents

Publication Publication Date Title
JP4827523B2 (ja) 情報処理装置、情報処理方法、ならびに制御プログラム
JP5875351B2 (ja) 情報処理システム、情報処理装置、認証方法、及びコンピュータプログラム
KR101603910B1 (ko) 장치, 제어 방법, 및 기억매체
JP5078660B2 (ja) 認証制御装置、認証制御方法及びプログラム
US10769268B2 (en) Information processing device, information processing system, and information processing method
US10051154B2 (en) Information processing apparatus, control method in information processing apparatus, and image processing apparatus
US20090210859A1 (en) Infromation processing apparatus, information processing method, and function expansion program
JP5072715B2 (ja) 履歴情報記録装置、履歴情報記録方法、プログラム、及び履歴情報記録システム
JP2008072427A (ja) 画像形成装置及びクライアント/サーバ型情報処理システム並びに情報処理方法
JP6971597B2 (ja) 情報処理装置、表示制御方法、及びプログラム
JP2009025865A (ja) 情報処理装置、情報処理プログラム及び記録媒体
CN109597659A (zh) 图像形成设备及其控制方法
JP2018081384A (ja) 情報処理装置および権限管理方法とプログラム
US20090300478A1 (en) Image forming apparatus, information processing method and program
CN106250068B (zh) 图像形成装置以及应用的删除方法
JP3986721B2 (ja) ソフトウェア・モジュール動的交換方法及びソフトウェア・モジュール動的交換プログラム記録媒体
KR20180077034A (ko) 화상 처리 장치 및 정보 처리 방법
JP2009205262A (ja) アプリケーションプログラムインストール装置、アプリケーションプログラムインストール方法、プログラム、および記録媒体
US9940334B2 (en) Image forming apparatus and control method thereof
US20060106915A1 (en) Apparatus for providing service in response to user request and method therefor
US20130067452A1 (en) Management server, host device, and application management method
JP6057740B2 (ja) 画像形成装置、情報処理方法及びプログラム
JP2015225479A (ja) 情報処理システム、情報処理装置、情報処理方法、及びコンピュータプログラム
JP5206257B2 (ja) 情報処理装置、プログラム起動方法、起動プログラム
JP2019070884A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190409