JP2017073035A - Information processing device and control method therefor - Google Patents
Information processing device and control method therefor Download PDFInfo
- Publication number
- JP2017073035A JP2017073035A JP2015200470A JP2015200470A JP2017073035A JP 2017073035 A JP2017073035 A JP 2017073035A JP 2015200470 A JP2015200470 A JP 2015200470A JP 2015200470 A JP2015200470 A JP 2015200470A JP 2017073035 A JP2017073035 A JP 2017073035A
- Authority
- JP
- Japan
- Prior art keywords
- application
- predetermined process
- information processing
- operation authority
- management
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
- Facsimiles In General (AREA)
Abstract
Description
本発明は、情報処理装置におけるアプリケーションの管理技術に関するものである。 The present invention relates to an application management technique in an information processing apparatus.
近年、画像形成装置においては、JAVA(登録商標)環境に代表されるようなアプリケーション(以降、単に「アプリ」と呼ぶ)動作環境が提供されている。JAVA(登録商標)の持つプログラムの可搬性を利用して、拡張可能なアプリを提供する技術が提案されている。画像形成装置の機能やユーザビィリティの向上を図るために、JAVA(登録商標)環境などの環境下で動作するアプリを作成し、画像形成装置にインストールすることで、当該アプリにより画像形成装置において所望の機能を実現できる。 In recent years, image forming apparatuses have been provided with an application environment (hereinafter simply referred to as an “application”) operating environment represented by a JAVA (registered trademark) environment. There has been proposed a technique for providing an expandable application by utilizing the portability of a program of JAVA (registered trademark). In order to improve the function and usability of the image forming apparatus, an application that operates in an environment such as JAVA (registered trademark) is created and installed in the image forming apparatus. A desired function can be realized.
アプリプラットフォームとしては、組み込み機器向けのJAVA(登録商標)アプリプラットフォームである、OSGi(Open Services Gateway Initiative)が知られている(非特許文献1)。OSGiでは、ソフトウェアモジュールの管理単位として“バンドル”を定義しており、インストール/開始/停止/更新/アンインストールからなるライフサイクルを管理するための仕様を定義している。ここで、バンドルとは、JAVA(登録商標)モジュールのことを指し、本発明においては、アプリと同義である。このようなアプリプラットフォームは、コピー、スキャン、プリント等の組み込み機能やアプリのライフサイクル管理機能をAPI(Application Programming Interface)として提供する。アプリは適切な権限(Permission)が与えられていれば、それらのAPIを利用することができる。 As an application platform, OSGi (Open Services Gateway Initiative), which is a JAVA (registered trademark) application platform for embedded devices, is known (Non-Patent Document 1). In OSGi, “bundle” is defined as a management unit of software modules, and specifications for managing a life cycle consisting of install / start / stop / update / uninstall are defined. Here, the bundle refers to a JAVA (registered trademark) module and is synonymous with an application in the present invention. Such an application platform provides built-in functions such as copying, scanning, and printing and an application life cycle management function as an API (Application Programming Interface). An application can use those APIs if appropriate permission is given.
しかしながら、上述の従来技術においては、アプリ毎にライフサイクル管理をおこなうアプリを制限することが出来ないという問題がある。また、ライフサイクル管理の権限を持つアプリが、権限を持たないアプリの提供するライフサイクル管理用のAPIを利用することが出来ないという問題がある。 However, in the above-described conventional technology, there is a problem that it is not possible to limit apps that perform life cycle management for each app. In addition, there is a problem in that an application having lifecycle management authority cannot use an API for lifecycle management provided by an application without authority.
本発明は、このような問題に鑑みてなされたものであり、アプリのライフサイクル管理をより柔軟に行うことを可能とする技術を提供することを目的とする。 The present invention has been made in view of such a problem, and an object of the present invention is to provide a technique that makes it possible to perform lifecycle management of an application more flexibly.
上述の問題点を解決するため、本発明に係る情報処理装置は以下の構成を備える。すなわち、処理手段を介してアプリケーションに関する処理を実行する情報処理装置において、アプリケーションに関する処理を指示する設定ジョブを取得する取得手段と、前記処理手段が前記設定ジョブに含まれる処理の操作権限を有しているか否かを判定する判定手段と、前記判定手段により前記処理手段が前記設定ジョブに含まれる所定の処理の操作権限を有していないと判定された場合、前記所定の処理の操作権限を前記処理手段に委譲する委譲手段と、前記委譲手段により前記所定の処理の操作権限が委譲された前記処理手段による前記所定の処理の完了後、前記処理手段から前記所定の処理の操作権限を剥奪する剥奪手段と、を有する。 In order to solve the above-described problems, an information processing apparatus according to the present invention has the following configuration. That is, in an information processing apparatus that executes processing related to an application via a processing means, an acquisition unit that acquires a setting job instructing processing related to the application, and the processing unit has an operation authority for processing included in the setting job. And determining means for determining whether or not the processing means has the operation authority for the predetermined process included in the setting job by the determination means. Delegation of the operation authority of the predetermined process from the processing means after the completion of the predetermined process by the delegation means for delegating to the processing means and the processing means to which the operation authority of the predetermined process has been delegated by the delegation means A stripping means.
本発明によれば、アプリのライフサイクル管理をより柔軟に行うことを可能とする技術を提供することができる。 ADVANTAGE OF THE INVENTION According to this invention, the technique which makes it possible to perform the life cycle management of an application more flexibly can be provided.
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。 Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. The following embodiments are merely examples, and are not intended to limit the scope of the present invention.
(第1実施形態)
本発明に係る情報処理装置の第1実施形態として、複合機を含む情報処理システムを例に挙げて以下に説明する。なお、以下の説明では、コピーやファックス、プリンタなどの複数の機能を一つの筐体に収納した複合機に適用した例を示す。しかしながら、他の形態の情報処理装置にも適用可能である。例えば携帯電話端末など、アプリを追加/削除可能な情報処理装置であれば本発明を適用することができる。
(First embodiment)
As an information processing apparatus according to a first embodiment of the present invention, an information processing system including a multifunction machine will be described below as an example. In the following description, an example in which a plurality of functions such as copying, faxing, and printers are applied to a multi-function machine housed in a single housing will be described. However, the present invention can be applied to other types of information processing apparatuses. For example, the present invention can be applied to any information processing apparatus capable of adding / deleting an application such as a mobile phone terminal.
<システム構成の説明>
図1は、複合機を含む情報処理システムの構成を例示的に示す図である。以下では、複合機100におけるアプリケーション(以下では単にアプリと呼ぶ)が、管理サーバー200及びアプリ配信サーバー300によって遠隔管理されている状況を想定して説明する。そのため、複合機100、管理サーバー200、アプリ配信サーバー300は、インターネットなどのネットワーク10を介して相互に通信可能に接続されている。なお、複合機100とネットワーク10との間には、ファイアウォール20を設けてもよい。
<Description of system configuration>
FIG. 1 is a diagram exemplarily showing a configuration of an information processing system including a multifunction peripheral. In the following description, it is assumed that an application (hereinafter simply referred to as an application) in the
ファイアウォール20は、公衆回線やインターネットなどの外部ネットワークを通じて複合機100に侵入した第三者により不正が行われないように、外部との境界を流れるデータを監視し、不正なアクセスを検出・遮断する。なお、ファイアウォール20は、必須というわけではなく、存在しなくともよい。
The
複合機100は、複写機にスキャナやプリンタ、ファクシミリ、ファイル送信機能等の複数の機能を統合した情報処理装置である。複合機100は、LAN(Local Area Network)などのネットワークによりファイアウォール20に接続されている。
The multifunction peripheral 100 is an information processing apparatus in which a plurality of functions such as a scanner, a printer, a facsimile, and a file transmission function are integrated into a copying machine. The MFP 100 is connected to the
管理サーバー200は、複合機100を遠隔管理する装置である。管理サーバー200は、複合機の開発企業や販売企業のサービスセンター等に設置されたサーバー装置であり、各種の管理データを格納するデータベースを備えている。データベースには、顧客ごとに、管理対象の複合機に関する管理情報が格納されている。管理情報は、例えば、製品番号、製品構成、機体識別番号、設置場所情報、インストール又はアンインストールしたアプリの情報等で構成される。これにより、管理対象である複合機におけるアプリの状態を特定することができる。
The
アプリ配信サーバー300は、管理サーバー200と同じく、複合機の開発企業や販売企業のデータセンター等に設置されたサーバー装置であり、複合機に追加することが出来るアプリを管理するデータベースを備えている。データベースには、アプリの名称やアプリを識別するID(以下「アプリID」)、アプリを使用する権利を識別する情報(以下「アプリ使用権ID」)等の情報が格納されている。また、指定されたアプリに対するアプリ使用権IDを発行する機能とアプリを複合機にインストールするために必要なライセンスファイルを発行する機能も有している。
Similar to the
そして、第1実施形態の情報処理システムは、遠隔管理を実現するため、各装置にRPC(Remote Procedure Call)により、相互実装するアプリのメソッドに対する処理の要求、応答を送受信する機能を有している。また、RPCを実現するために、HTTP(Hyper Text Transfer Protocol)、SOAP(Simple Object Access Protocol)等のプロトコルを利用することができる。 In order to realize remote management, the information processing system according to the first embodiment has a function of transmitting and receiving processing requests and responses to methods of applications to be mounted on each device by RPC (Remote Procedure Call). Yes. In order to implement RPC, protocols such as HTTP (Hyper Text Transfer Protocol) and SOAP (Simple Object Access Protocol) can be used.
また、複合機100とネットワーク10との間にファイアウォール20が存在する場合、管理サーバー200から直接に複合機100に要求を送信しようとしても、ファイアウォール20に要求が遮断される。しかし、先に複合機100から管理サーバー200に要求を送信し、HTTPレスポンスに管理サーバー200からの要求を載せるという方式を用いることで、管理サーバー200からの要求がファイアウォール20を通過して複合機100まで届くようになる。
Further, when the
<管理サーバー200およびアプリ管理サーバー300の説明>
図5は、管理サーバー200のハードウェア構成を示す図である。図6は、アプリ配信サーバー300のハードウェア構成を示す図である。
<Description of
FIG. 5 is a diagram illustrating a hardware configuration of the
管理サーバー200は、コントローラユニット2000、操作部2020、表示部2030を含む。コントローラユニット2000は、CPU(Central Processing Unit)2003を含む。同様に、アプリ管理サーバー300は、コントローラユニット3000、操作部3020、表示部3030を含む。コントローラユニット3000は、CPU3003を含む。管理サーバー200の構成及びアプリ管理サーバー300の構成はほぼ同様のため、以下では、主に管理サーバー200に関して説明する。
The
CPU2003は、ROM(Read Only Memory)2006に記憶されているブートプログラムによりOS(Operating System)を起動する。管理サーバー200の場合、CPU2003は、OS上で、HDD(Hard Disk Drive)2005に記憶されている管理アプリプログラムを実行して各種処理を実行する。アプリ配信サーバー300の場合、CPU3003は、OS上で、HDD3005に記憶されているアプリ配信プログラムを実行して各種処理を実行する。RAM(Random Access Memory)2004は、CPU2003のワーキングメモリとして用いられる。
The
管理サーバー200の場合、HDD2005は、管理プログラムと複合機にアプリ設置実施を指示するアプリ関連設定ジョブ情報等を記憶する。アプリ配信サーバー300の場合、HDD3005は、アプリ配信プログラムと配信可能なアプリに関する情報等を記憶する。
In the case of the
システムバス2010には、ROM2006およびRAM2004の他に、操作部I/F2001、表示部I/F2002、ネットワークI/F2007が接続されている。操作部I/F2001は、ポインティングデバイスやキーボード等を含む操作部2020とのインターフェースであり、操作部2020を介してユーザーから入力された情報をCPU2003に送信する。表示部I/F2002は、ディスプレイ等を含む表示部2030に表示すべき画面データを表示部2030に対して出力する。ネットワークI/F2007は、ネットワーク10を通じて接続している各装置との間でデータの送受信を行う。
In addition to the
管理サーバー200で管理されるアプリ関連設定ジョブ情報は、複合機を識別する情報とアプリを識別する情報、アプリの使用権情報を識別するアプリ使用権ID、アプリの状態を指示するアプリ状態指示情報等で構成される情報である。このアプリ関連設定ジョブ情報は後述する管理システム連携アプリがアプリをデバイスに設置するときに使用する。なお、アプリ関連設定ジョブ情報の詳細については図19及び図20を参照して後述する。
The application-related setting job information managed by the
アプリ配信サーバー300は、複合機100からのアプリ取得要求として複合機の識別番号とアプリ使用権IDを受付すると、そのアプリ使用権IDに対応したアプリのアプリファイルとライセンスファイルをセットで情報処理装置に返信する。
When the
<複合機100の説明>
図2は、複合機100のハードウェア構成を示す図である。複合機100はコントローラユニット1000を含み、コントローラユニット1000には、画像入力デバイスであるスキャナ1070や画像出力デバイスであるプリンタ1095が接続されるとともに、操作部1012が接続される。
<Description of
FIG. 2 is a diagram illustrating a hardware configuration of the multifunction peripheral 100. The
コントローラユニット1000は、スキャナ1070で読み取られた画像データをプリンタ1095により印刷出力するコピー機能を実現するための制御を行う。コントローラユニット1000は、CPU1001を有し、CPU1001は、ROM1003に格納されているブートプログラムによりOSを立ち上げる。
The
CPU1001は、このOS上で、HDD1004に格納されているプログラムを実行し、これによって各種処理を実行する。このCPU1001の作業領域としてはRAM1002が用いられる。RAM1002は、作業領域を提供するとともに、画像データを一時記憶するための画像メモリー領域を提供する。HDD1004は、上記プログラムや画像データを格納する。
The
CPU1001には、システムバス1007を介して、ROM1003およびRAM1002、操作部インターフェース(操作部I/F)1006、ネットワークインターフェース(ネットワークI/F)1010、USBホストインターフェース(USBホストI/F)1013、画像バスインターフェース(画像バスI/F)1005が接続される。
The
操作部I/F1006は、タッチパネルを有する操作部1012とのインターフェースであり、操作部1012に表示すべき画像データを操作部1012に対して出力する。
An operation unit I /
操作部I/F1006は、操作部1012においてユーザーにより入力された情報をCPU1001に送出する。
The operation unit I /
ネットワークI/F1010は、複合機100をネットワーク10に接続するためのインターフェースである。USBホストI/F1013は、USBストレージ1014と通信するインターフェース部である。USBホストI/F1013は、HDD1004に格納されているデータをUSBストレージ1014に出力する。また、USBホストI/F1013は、USBストレージ1014に格納されているデータを入力し、CPU1001にそれを伝える。USBホストI/F1013には、USBストレージ1014を含む複数のUSBデバイスが接続可能である。
The network I /
USBストレージ1014は、データを格納する外部記憶装置であり、USBホストI/F1013に対して着脱可能である。
The
画像バスI/F1005は、システムバス1007と、画像データを高速で転送する画像バス1008とを接続し、データ形式を変換するためのバスブリッジである。画像バス1008は、PCIバスまたはIEEE1394等によって構成される。画像バス1008上には、デバイスI/F1020、スキャナ画像処理部1080、プリンタ画像処理部1090が設けられる。
An image bus I /
デバイスI/F1020には、スキャナ1070およびプリンタ1095が接続され、デバイスI/F1020は、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部1080は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部1090は、プリント出力画像データに対してプリンタ1095に応じた補正、解像度変換などを行う。
A
<複合機100のソフトウェア構成>
図3は、複合機100のソフトウェア構成を示す図である。なお、各機能を実現するソフトウェアはROM1003、もしくは、HDD1004に保存され、CPU1001にて実行される。また、実行時に使用する各種情報はRAM1003もしくはHDD1004に保持してソフトウェア機能間での各種情報のやりとりを行う。さらに外部機器との通信は、ネットワークI/F1010を用いて通信を行う。
<Software configuration of
FIG. 3 is a diagram illustrating a software configuration of the multifunction peripheral 100. Note that software for realizing each function is stored in the
複合機100のソフトウェアは、OS301を有し、OS301上にアプリプラットフォーム302が構成されている。アプリプラットフォーム302は、基本的には、JAVA(登録商標)仮想マシン(VM)303のランタイム環境として構成されている。より詳細には、アプリプラットフォーム302は、インタプリタとしてのJAVA(登録商標)VM303、ライブラリ304、OSGiフレームワーク305、システムアプリ306を備えて構成されている。ライブラリ304は、JAVA(登録商標)標準のAPIライブラリを含んで構成されている。
The software of the multifunction peripheral 100 has an
OSGiフレームワーク305は、OSGi仕様に準拠した動作を行うモジュールである。OSGiフレームワーク305では、単一のJAVA(登録商標)VM303上に複数のアプリを動作させる事が可能であり、アプリのライフサイクルの管理やアプリ間通信機能などを提供する。
The
<システムアプリ(第1種のアプリケーション)>
システムアプリ306は、後述する拡張システムアプリ320や一般アプリ310を管理する。また、システムアプリ306は、拡張システムアプリ320や一般アプリ310に対して、複合機100を操作するためのAPIをOSGiサービスとして提供する。なお、システムアプリ306は、例えば出荷時に複合機100にプリインストールされ、出荷後においてはアップデート、停止、アンインストールすることは出来ない(禁止されている)ように構成されている。
<System application (first type of application)>
The
以下では、システムアプリの例として、アプリ配信インストールアプリ321、インストール制御アプリ307、アプリ管理UI提供アプリ308、ログインアプリ309、アプリライフサイクル管理アプリ312について説明する。
Hereinafter, as an example of a system application, an application
インストール制御アプリ307は、アプリとアプリを使用するためのライセンスとを関連付けて管理するためのアプリである。例えば、暗号化されたJAVA(登録商標)アプリのファイルをライセンスファイルに含まれる鍵情報で復号し、OSGiフレームワーク305にインストールする等、OSGiの仕様には無い機能を提供する。また、インストール制御アプリ307は、インストールやアップデート、開始や停止といった操作をAPIとして他のアプリに提供する。
The
アプリ管理UI提供アプリ308は、インストール制御アプリ307を利用して、アプリのインストール、開始、停止、アンインストールを行うための操作画面をWEBページとして提供するアプリである。アプリ管理UI提供アプリ308が提供する画面は、複合機100が接続しているのと同じLANに接続している管理用PC(不図示)にインストールされているブラウザでアクセスして使用する。アプリ管理UI提供アプリ308は、主に顧客(システム管理者)や複合機100の販売会社等に所属するサービスマンが使用する。
The application management
アプリ配信インストールアプリ321は、アプリ配信サーバー300と通信することでアプリとライセンスを取得し、インストールやアップデートをAPIとして他のアプリに提供するためのアプリである。なお、アプリ配信インストールアプリ321は、アプリ管理UI提供アプリ308と同様にインストール制御アプリ307を使用する。なお、アプリ配信インストールアプリ321は、後述する管理システムを使用したアプリのライフサイクル管理において、管理サーバー通信アプリ311の停止やアンインストールといった操作をおこなう権限を有さないアプリの例として使用する。
The application
ログインアプリ309は、複合機100を使用するユーザーを識別し、現在複合機100にログインしているユーザーのログイン情報を、図21に示すログインコンテキスト2200として他のアプリに提供するアプリである。
The
アプリライフサイクル管理アプリ312は、管理サーバー通信アプリ311を使用して管理サーバー200からアプリ関連設定ジョブ情報を取得し、アプリのライフサイクル管理をおこなうアプリである。そのため、ユーザー向けの操作画面を有さずともよい。アプリライフサイクル管理アプリ312は、インストールないしアップデートの場合はアプリ配信インストールアプリ321が提供するAPIを利用する。一方、開始や停止、アンインストールの場合は直接インストール制御アプリ307が提供するAPIを利用する。なお、アプリライフサイクル管理アプリ312は、後述する管理システムを使用したアプリのライフサイクル管理において、管理サーバー通信アプリ311の停止やアンインストールといった操作をおこなう権限を有するアプリの例として使用する。
The application life
<拡張システムアプリ(第2種のアプリケーション)>
拡張システムアプリ320は、アプリプラットフォーム302上で動作する複合機100の機能を拡張したり、複合機100を操作するためのAPIを提供したりするなど、主として複合機100の開発企業がインストールするアプリの総称である。拡張システムアプリ320は、複合機100にプリインストールされる場合もあれば、出荷後にインストールされる場合もある。なお、拡張システムアプリは、所定の条件に応じてアップデートや停止、アンインストールすることが可能である。以下では、所定の条件として、一時許可リスト2110を利用する例について説明するが、条件はこれに限定されない。
<Extended system application (
The
以下、拡張システムアプリの例として、管理サーバー通信アプリ311について説明する。
Hereinafter, the management
管理サーバー通信アプリ311は、管理サーバー200と通信してアプリ関連設定ジョブ情報を取得するためのアプリである。また、管理サーバー通信アプリ311は管理サーバー200のIPアドレスやURL、認証するための鍵などの接続情報を有するとともに、管理サーバー200の通信プロトコルに従って通信するアプリである。なお、管理サーバー通信アプリ311は、出荷状態で複合機100にプリインストールされるものの、市場でアップデートされることがある。例えば、接続する管理サーバー200のIPアドレスやURLなどの接続情報が変更になる場合や通信プロトコルが変更になる場合等で、アプリのアップデートが必要となるケースである。
The management
なお、管理サーバー通信アプリ311はアプリライフサイクル管理アプリ312がアプリのライフサイクル管理のために利用しているため、停止やアンインストールされてしまうとアプリライフサイクル管理アプリ312の動作に影響が出る。例えば、複合機100を利用する顧客がアプリの使用契約を結んだときに管理サーバー通信アプリ311が停止している場合、管理サーバー200からアプリのインストール指示を受けられないことになる。従って、管理サーバー通信アプリ311の停止やアンインストールといった操作は、UIを持たないアプリライフサイクル管理アプリ312のような、ユーザーが簡単に操作出来ないようなアプリに限定して許可する必要がある。なお、管理サーバー通信アプリ311は、後述する管理システムを使用したアプリのライフサイクル管理において、管理サーバー通信アプリ311の停止やアンインストールといった操作を特定のアプリに限定して許可するときの操作対象のアプリの例として使用する。
The management
図21は、各種ファイルの例を示す図である。マニフェストファイル2100は、管理サーバー通信アプリ311が宣言する項目を記述したファイルである。項目2101は、アプリのアプリタイプを記述する。例えば、ログインアプリ309を除いたシステムアプリ306の場合は“SystemApp”、ログインアプリ309の場合は“LoginApp”、拡張システムアプリ320の場合は“SystemApp−Ex”、一般アプリ310の場合は“NormalApp”を記述する。
FIG. 21 is a diagram illustrating examples of various files. The
また、拡張システムアプリ320の中でも、管理サーバー通信アプリ311のように開始や停止、アンインストールといった操作をある特定のアプリに限定して許可する場合は“SystemApp−PrivEx”を指定する。加えて、項目2102において、操作を許可する特定のアプリのアプリIDを記述する(本例では、アプリライフサイクル管理アプリ312のアプリID)。なお、操作するアプリが複数存在する場合は、カンマ(,)区切りで記述することが出来る。
Also, in the
<一般アプリ(第3種のアプリケーション)>
一般アプリ310は、アプリプラットフォーム302上で動作する複合機100の機能を拡張するなど、主として複合機100の開発企業とは異なるサードベンダーが開発するアプリの総称である。
<General application (type 3 application)>
The
以下、一般アプリの例として、サードベンダー製アプリ313について説明する。
Hereinafter, a
サードベンダー製アプリ313は、例えば印刷ジョブを一旦複合機の中に保存し、複合機のタッチパネル画面上で印刷設定を確認しながら、必要なジョブだけを印刷できる機能を有し、利用者は利用料金の支払い状況に応じてアプリを利用することが出来るようなアプリである。
The third-
図7は、アプリライフサイクル管理アプリ312と他のアプリとの関係を示す図である。具体的には、アプリ管理UI提供アプリ308、インストール制御アプリ307、管理サーバー通信アプリ311との関係を示している。
FIG. 7 is a diagram illustrating the relationship between the application life
<アプリ管理UI提供アプリ308を使用したアプリのライフサイクル管理>
顧客あるいは複合機100の販売会社等に所属するサービスマンが、顧客サイトにあるPCにインストールされたブラウザを使用して複合機100にアクセスすることで、アプリ管理UI提供アプリ308を使用したアプリのライフサイクル管理を行うことが出来る。以下、図4を参照して、アプリ管理UI提供アプリ308を使用したアプリの管理について説明する。また、併せてアプリの状態やアプリとライセンスの関係についても説明する。
<Application lifecycle management using application management
When a service person belonging to a customer or a sales company of the
図4は、アプリ管理UI提供アプリ308が提供するアプリ管理画面500を例示的に示す図である。アプリ管理画面500は、複合機100にインストールされているアプリの状態を操作するための画面である。
FIG. 4 is a diagram exemplarily showing an
アプリケーション名501は、インストール制御アプリ307を使用し、一般アプリ310と拡張システムアプリ320に該当するアプリケーション情報を取得し、アプリの名称を一覧に表示する。この例の場合、一般アプリ310に該当するアプリケーションA505とアプリケーションB506、拡張システムアプリ320に該当する管理サーバー通信アプリ311の3つが管理されている。
The
インストール日502は、各アプリがインストールされた日付である。アプリケーションID503は、各アプリに一意に割り振られたIDを表示している。状態504は、各アプリの状態を示している。アプリが開始状態であれば開始、停止状態であれば停止と表示される。
The
開始ボタン509/停止ボタン508は、アプリの開始停止を切り替える指示ボタンである。開始状態のアプリの場合、停止ボタンとなり、停止状態のアプリの場合、開始ボタンとなる。開始状態のアプリ(本例では、「アプリケーションA505」)の停止ボタン508を押下すると、その状態504は停止に変更される。一方、停止状態のアプリ(本例では、「アプリケーションB506」)の開始ボタン509を押下すると、その状態504は開始に変更される。
A
無効化状態停止ボタン510は、アプリ管理UI提供アプリ308が管理サーバー通信アプリ311に対して停止する権限を持っていないため、無効化されて押下することが出来ない状態となっている。
The invalidation
アンインストールボタン511は、アプリのアンインストールするための指示ボタンである。アプリケーションA505のアンインストールボタン511を押下すると、アプリケーションA505をアンインストールする。無効化状態アンインストールボタン513は、アプリ管理UI提供アプリ308が管理サーバー通信アプリ311に対してアンインストールする権限を持っていないため、無効化されて押下することが出来ない状態となっている。
The uninstall button 511 is an instruction button for uninstalling the application. When the uninstall button 511 of the
<管理システムによるアプリの管理>
アプリの管理は、複合機100の販売会社等に所属するオペレーターが、複合機100の販売会社等のサイトにあるPC(不図示)等にインストールされているブラウザを使用して、管理サーバー200が提供する管理システム操作画面にアクセスし、操作する事で管理サーバー200にアプリ関連設定ジョブを登録する。登録されたジョブは、複合機100にインストールされた管理サーバー通信アプリ311及びアプリライフサイクル管理アプリ312が、定期的にポーリングすることで取得し、ジョブの指示に従って複合機100を設定する事で行う。
<Application management by management system>
The management of the application is performed by the
図19は、管理サーバー200が提供する管理システム操作画面1900を例示的に示す図である。管理システム操作画面1900は、複合機一覧画面1910、複合機管理画面1920、インストール設定画面1940、状態操作設定画面1960によって構成される。
FIG. 19 is a diagram exemplarily showing a management
複合機一覧画面1910は、顧客毎に顧客が所有する複合機を一覧で表示するための画面である。複合機一覧画面1910は、顧客名1911、複合機ID1912、製品名1913、状態1914、参照ボタン1915によって構成される。顧客名1911は、顧客の名称、複合機ID1912は、顧客サイトで運用されている複合機を識別するID、製品名1913は、顧客サイトで運用されている複合機の製品名をそれぞれ表示する。
The
状態1914は、顧客サイトで運用されている複合機に対する操作の状態を表示する。状態としては、処理待ちと処理済みがある。アプリ関連設定ジョブを登録後、複合機側での設定処理が終了するまでの状態が処理待ちで、設定処理終了後に複合機のアプリの状態が通知されると処理済みとなる。参照ボタン1915は、複合機IDで識別される各機器の複合機管理画面1920に遷移するためのボタンである。
The
複合機管理画面1920は、複合機にインストール可能なアプリの状態を管理するための画面である。複合機管理画面1920は、詳細ボタン1915aが押下されたときに表示する、複合機IDが“XXX00001”である複合機(ここでは、複合機100)の複合機管理画面である。複合機管理画面1920は、顧客名1921及び複合機ID1922、製品名1923、アプリID1925、アプリ名1926、状態1927、状態操作1928、状態操作ボタン1929、アプリインストールボタン1930によって構成される。
The multifunction
顧客名1921は、複合機を所有している顧客の名称、複合機ID1922は、複合機を識別するID、製品名1923は、複合機の製品名をそれぞれ表示する。アプリID1925は、複合機にインストールされているか、インストールされる予定のアプリを識別するためのIDを表示する。アプリ名1926は、複合機にインストールされているか、インストールされる予定のアプリの名称を表示する。
The
状態1927は、複合機にインストールされているか、インストールされる予定のアプリの状態を表示する。状態操作1928は、複合機にインストールされているか、インストールされる予定のアプリに対して可能である状態操作をボタンとして表示する。
A
状態操作ボタン1929は、アプリの状態操作の設定を行うための状態操作設定画面1960に遷移するためのボタンである。アプリインストールボタン1930は、インストール設定画面1940に遷移するためのボタンである。
The
インストール設定画面1940は、アプリのインストール設定を行うための画面である。インストール設定画面1940は、複合機ID1941及びアプリ選択プルダウン1942、登録ボタン1945によって構成される。
The
複合機ID1941は、インストールするアプリを選択する複合機を識別するIDを表示する。アプリ選択プルダウン1942は、複合機IDで識別される複合機にインストールすることができるアプリを選択するプルダウンメニューである。登録ボタン1945は、選択したアプリをインストールするためのインストールジョブを登録するためのボタンである。
The
図20(a)は、管理サーバー200に登録されたアプリ関連設定ジョブのデータ構成を示す図である。
FIG. 20A is a diagram illustrating a data configuration of an application related setting job registered in the
アプリ関連設定ジョブ2000は、ジョブプロパティ2010によって構成される。ジョブプロパティ2010は、アプリ関連設定ジョブのプロパティである。アプリ関連設定ジョブ2010は、アプリID2011及びジョブ種別2012、アプリ使用権ID2013によって構成される。
The application related
アプリID2011は、状態を操作するアプリのIDである。ジョブ種別2012は、ジョブの種別である。インストールジョブであれば“Install”、開始ジョブであれば“Start”、停止ジョブであれば“Stop”、アップデートジョブであれば“Update”、アンインストールジョブであれば“Uninstall”となる。
The
アプリ使用権ID2013は、アプリ配信サーバー300からアプリを取得するために必要なアプリ使用権IDである。この情報は、インストールジョブとアップデートジョブの場合に必須となる。
The application usage right ID 2013 is an application usage right ID necessary for acquiring an application from the
図20(b)は、複合機100から管理サーバー200に送信するアプリ情報の例を示す図である。この情報により管理サーバー200は複合機100のアプリの状態を把握出来るようになる。
FIG. 20B is a diagram illustrating an example of application information transmitted from the
アプリ情報2020は、アプリ数情報2030及び個別アプリ情報2040によって構成される。アプリ数情報2030は、アプリライフサイクル管理アプリ312が管理しているアプリの数である。個別アプリ情報2040は、アプリライフサイクル管理アプリ312で管理しているアプリの情報である。個別アプリ情報2040は、アプリID情報2041、状態情報2042、バージョン情報2043によって構成される。アプリID情報2041は、アプリを識別するためのIDである。
The
状態情報2042は、アプリの状態を示す情報である。開始状態は“Started”、停止状態は“Stoped”、インストール済み状態は“Installed”となる。バージョン情報2043は、アプリのバージョン情報である。
The
図8は、アプリライフサイクル管理アプリの詳細構成を示す図である。アプリインストール配信アプリは、アプリ配信インストールアプリ321を備えている。アプリ配信インストールアプリ321は、アプリ配信サーバー300とHTTP等のプロトコルで通信し、アプリ配信サーバー300からアプリファイルとライセンスファイルを取得し、インストール制御アプリ307を使用して複合機100にアプリファイルとライセンスファイルをインストールする。なお、新規アプリのインストールの他、既存アプリのアップデートも実行することが出来る。
FIG. 8 is a diagram illustrating a detailed configuration of the application life cycle management application. The application installation / distribution application includes an application distribution /
管理サーバー通信アプリ311は、通信処理部851を備えている。アプリライフサイクル管理アプリ312は、周期処理部801と最終通信時刻管理部802、管理対象アプリ管理部803、アプリインストール処理部805、アプリアンインストール処理部806、アプリ開始処理部807、アプリ停止処理部808を備えている。
The management
通信処理部851は、管理サーバー200とHTTP等のプロトコルで通信し、レスポンスにより管理サーバー200からのアプリ関連設定ジョブ情報を受信する。また、複合機100にインストールされているアプリの情報を送信する。
The
周期処理部801は、管理サーバー通信アプリ311が備える通信処理部851を使用して、定期的に管理サーバー200と通信し、アプリ関連設定ジョブ情報を受信した場合には、アプリ関連設定ジョブ情報に従い複合機100の設定を行う。また、一定期間管理サーバー200と通信出来なかった場合には、管理サーバー200から受信したアプリ関連設定ジョブ情報をもとにインストールしたアプリを停止する。
If the
最終通信時刻管理部802は、管理サーバー200と最後に通信が成功した日時の情報を保管する。管理対象アプリ管理部803は、管理サーバー200から受信したアプリ関連設定ジョブ情報によりインストールしたアプリを識別する情報を保管する。
The last communication
アプリインストール処理部805は、インストール制御アプリ307を使用してアプリファイルとライセンスファイルを複合機100にインストールする。アプリアンインストール処理部806は、インストール制御アプリ307を使用して複合機100からアプリとライセンスをアンインストールする。
The application
アプリ開始処理部807は、インストール制御アプリ307を使用して停止状態のアプリを開始する。アプリ停止処理部808は、インストール制御アプリ307を使用して開始状態のアプリを停止する。アプリ停止処理部808が停止したアプリは、アプリ管理UI提供アプリ308からは開始することが出来ない。
The application
アプリ情報取得処理部810は、インストール制御アプリ307を使用してインストールされているアプリの情報を取得する。
The application information
<システムの動作>
図9は、複合機によるポーリング処理のフローチャートである。ここでは、ポーリング処理は、複合機100が管理サーバー200からアプリ関連設定ジョブを取得するために定期的に実行されることを想定する。
<System operation>
FIG. 9 is a flowchart of the polling process performed by the multifunction machine. Here, it is assumed that the polling process is periodically executed in order for the
ステップS901では、周期処理部801は、ポーリング終了指示があるか否かを判断する。ポーリング終了指示があった場合は、処理を終了する。そうで無い場合は、ステップS902に遷移する。
In step S901, the
ステップS902では、周期処理部801は、アプリ関連設定ジョブ実行処理を実行する。なお、ステップS902についての処理の詳細は、図10を参照して後述する。ステップS903では、周期処理部801は、一定時間スリープし、ステップS901に遷移する。
In step S902, the
図10は、アプリ関連設定ジョブ(S902)の実行処理を説明するフローチャートである。 FIG. 10 is a flowchart for explaining the execution process of the application related setting job (S902).
ステップS1001では、周期処理部801は、通信処理部851を使用して管理サーバー200からアプリ関連設定ジョブ情報を取得する。ステップS1002では、周期処理部801は、通信処理部851が管理サーバー200から受信したアプリ関連設定ジョブ情報を解析する。ステップS1003では、ステップS1002で解析により、アプリ関連設定ジョブが存在する場合はステップS1004に遷移し、ジョブが存在しない場合は処理を終了する。
In step S <b> 1001, the
ステップS1004では、周期処理部801は、ジョブの種別を判断する。ジョブがインストールジョブであった場合は、ステップS1005に遷移する。ジョブが停止ジョブであった場合は、ステップS1006に遷移する。ジョブが開始ジョブであった場合は、ステップS1007に遷移する。ジョブがアンインストールジョブであった場合は、ステップS1008に遷移する。ジョブがアップデートジョブであった場合は、ステップS1009に遷移する。
In step S1004, the
ステップS1005では、周期処理部801及びアプリインストール処理部805は、アプリ配信インストールアプリ321を使用し、インストール処理を実行する。なお、ステップS1005のインストール処理の詳細は、図11を参照して後述する。ステップS1006では、周期処理部801及びアプリ停止処理部808は、停止処理を実行する。なお、ステップS1006の停止処理の詳細は、図12を参照して後述する。ステップS1007では、周期処理部801及びアプリ開始処理部807は、開始処理を実行する。なお、ステップS1007の開始処理の詳細は、図13を参照して後述する。
In step S1005, the
ステップS1008では、周期処理部801及びアプリアンインストール処理部806はアンインストール処理を実行する。なお、ステップS1008のアンインストール処理の詳細は、図15を参照して後述する。ステップS1009では、周期処理部801及びアプリインストール処理部805は、アプリ配信インストールアプリ321を使用し、アップデート処理を実行する。なお、ステップS1009のアップデート処理の詳細は、図14を参照して後述する。
In step S1008, the
ステップS1010では、周期処理部801は、アプリ情報取得処理部810を使用してインストールされているアプリの情報を取得し、通信処理部851を使用して管理サーバー200にアプリの情報を送信する。これにより、管理サーバー200が管理する複合機100のアプリ情報が最新の状態に更新される。
In step S <b> 1010, the
ステップS1012では、周期処理部801は、アプリ関連設定ジョブをすべて処理したか否かを判定する。すべて処理した場合は、処理を終了する。アプリ関連設定ジョブが残っている場合は、S1004に進む。
In step S1012, the
<権限の委譲処理、アプリ操作処理(S1005〜S1009)の詳細>
以下、図11〜図15において、前述のステップS1005〜ステップS1009のジョブ実行処理について詳しく説明する。まず、図16〜図18において、これから述べる図11〜図15の説明に共通する、権限判定処理、および権限の委譲処理と剥奪処理について説明を述べる。
<Details of authority delegation processing and application operation processing (S1005 to S1009)>
Hereinafter, the job execution processing in steps S1005 to S1009 will be described in detail with reference to FIGS. First, in FIG. 16 to FIG. 18, a description will be given of the authority determination process, the authority delegation process, and the deprivation process that are common to the description of FIGS.
図21に示す一時許可リスト2110は、アプリに対して一時的に権限を委譲した場合に、権限移譲に関する情報が書き込まれる予め用意された管理ファイルである。以下の説明では、委譲した権限を剥奪した際に、委譲の際書き込まれた情報を削除する形態について説明している。ただし、一時許可リストをログとして構成してもよく、その場合は、委譲した権限を剥奪した際に、当該委譲が無効になったことを示す情報を追記する。
A
項目2111は、操作権限を委譲する処理をおこなったアプリのアプリIDである。項目2112は、操作権限が委譲されたアプリのアプリIDである。項目2113は、操作対象のアプリのアプリIDである。項目2114は、操作権限が委譲された処理を示しており、例えば、“update”はアップデート処理、“stop”は停止処理、“start”は開始処理、“install”はインストール処理、“uninstall”はアンインストール処理、にそれぞれ対応づけられる。
An
図16は、操作権限有無の判定処理を説明するフローチャートである。すなわち、アプリに関する所定の操作(インストール処理など)を行う権限を有しているか否かを判定する。 FIG. 16 is a flowchart for explaining the determination processing of the presence / absence of operation authority. That is, it is determined whether or not the user has authority to perform a predetermined operation (installation processing or the like) related to the application.
ステップS1601では、インストール制御アプリ307は、操作対象となるアプリのマニフェストファイル2100の項目2101を取得する。なお、マニフェストファイルについては非特許文献1に詳細に記載されているので、説明は省略する。
In step S1601, the
ステップS1602では、ステップS1601で取得した項目2101が“SystemApp”の場合は判定NGを返して処理を終了し、“SystemApp−PrivEx”の場合はステップS1603に遷移する。アプリタイプが“SystemApp”でも“SystemApp−PrivEx”でもない場合は判定OKを返して処理を終了する。
In step S1602, if the
ステップS1603では、インストール制御アプリ307は、操作対象となるアプリのマニフェストファイル2100の項目2102を取得する。ステップS1604では、インストール制御アプリ307は、操作要求をしたアプリのアプリIDを取得する。ステップS1605では、S1603で取得した項目2102とS1604で取得したアプリIDが一致する場合は判定OKを返して処理を終了し、一致しない場合はステップS1606に遷移する。
In step S1603, the
ステップS1606では、インストール制御アプリ307は、一時許可リスト2110を読み込む。ステップS1607では、S1606で読み込んだ一時許可リスト2110の項目2112と処理を要求したアプリのアプリIDが一致する場合はステップS1608に遷移し、一致しない場合は判定NGを返して処理を終了する。ステップS1608では、S1606で読み込んだ一時許可リスト2110の項目2113と処理対象のアプリのアプリIDが一致する場合はステップS1609に遷移し、一致しない場合は判定NGを返して処理を終了する。ステップS1609では、S1606で読み込んだ一時許可リスト2110の項目2114と要求された処理が一致する場合は判定OKを返して処理を終了し、一致しない場合は判定NGを返して処理を終了する。
In step S1606, the
図17は、操作権限の委譲処理を説明するフローチャートである。具体的には、アプリに関する所定の操作(インストール処理など)を行う権限を委譲する処理である。 FIG. 17 is a flowchart for explaining the operation authority delegation process. Specifically, it is a process of delegating authority to perform a predetermined operation (installation process or the like) related to the application.
ステップS1701では、インストール制御アプリ307は、操作対象となるアプリのマニフェストファイル2100の項目2101を取得する。ステップS1702では、ステップS1701で取得した項目2101が“SystemApp−PrivEx”の場合はステップS1703に遷移し、アプリタイプが“SystemApp−PrivEx”ではない場合は処理を終了する。
In step S1701, the
ステップS1703では、インストール制御アプリ307は、操作対象となるアプリのマニフェストファイル2100の項目2102を取得する。ステップS1704では、インストール制御アプリ307は、操作要求をしたアプリのアプリIDを取得する。
In step S1703, the
ステップS1705では、S1703で取得した項目2102とS1704で取得したアプリIDが一致する場合はステップS1706に遷移し、一致しない場合はエラー終了する。
In step S1705, if the
ステップS1706では、インストール制御アプリ307は、一時許可リスト2110に、操作権限を委譲する処理をおこなったアプリのアプリID、操作権限が委譲されたアプリのアプリID、操作対象のアプリのアプリID、操作権限を委譲する処理のデータを追加する。但し、既に全く同じデータが存在する場合は、新たに追加しない。
In step S1706, the
図18は、操作権限の剥奪処理を説明するフローチャートである。ここでは、図17の処理で委譲した操作権限を剥奪し、本来の操作権限の状態に戻す処理を行う。 FIG. 18 is a flowchart for explaining the operation authority removal process. Here, the operation authority delegated in the process of FIG. 17 is deprived and the process returns to the original operation authority state.
ステップS1801では、インストール制御アプリ307は、操作対象となるアプリのマニフェストファイル2100の項目2101を取得する。ステップS1802では、ステップS1801で取得した項目2101が“SystemApp−PrivEx”の場合はステップS1803に遷移し、アプリタイプが“SystemApp−PrivEx”ではない場合は処理を終了する。
In step S1801, the
ステップS1803では、インストール制御アプリ307は、操作対象となるアプリのマニフェストファイル2100の項目2102を取得する。ステップS1804では、インストール制御アプリ307は、操作要求をしたアプリのアプリIDを取得する。
In step S1803, the
ステップS1805では、S1803で取得した項目2102とS1804で取得したアプリIDが一致する場合はステップS1806に遷移し、一致しない場合はエラー終了する。
In step S1805, if the
ステップS1806では、インストール制御アプリ307は、一時許可リスト2110から、操作権限を委譲する処理をおこなったアプリのアプリID、操作権限が委譲されたアプリのアプリID、操作対象のアプリのアプリID、操作権限を委譲する処理をキーとしてデータを削除する。
In
ステップS1603では、インストール制御アプリ307は、操作対象となるアプリのマニフェストファイル2100の項目2102を取得する。ステップS1604では、インストール制御アプリ307は、操作要求をしたアプリのアプリIDを取得する。
In step S1603, the
ステップS1605では、S1603で取得した項目2102とS1604で取得したアプリIDが一致する場合は判定OKを返して処理を終了し、一致しない場合はステップS1606に遷移する。
In step S1605, if the
ステップS1606では、インストール制御アプリ307は、一時許可リスト2110を読み込む。ステップS1607では、S1606で読み込んだ一時許可リスト2110の項目2112と処理を要求したアプリのアプリIDが一致する場合はステップS1608に遷移し、一致しない場合は判定NGを返して処理を終了する。ステップS1608では、S1606で読み込んだ一時許可リスト2110の項目2113と処理対象のアプリのアプリIDが一致する場合はステップS1609に遷移し、一致しない場合は判定NGを返して処理を終了する。ステップS1609では、S1606で読み込んだ一時許可リスト2110の項目2114と要求された処理が一致する場合は判定OKを返して処理を終了し、一致しない場合は判定NGを返して処理を終了する。
In step S1606, the
図11は、インストールジョブの実行処理(S1005)の詳細フローチャートである。 FIG. 11 is a detailed flowchart of the installation job execution process (S1005).
ステップS1101では、周期処理部801は、アプリ関連設定ジョブ情報からアプリ使用権IDを取り出す。ステップS1102では、アプリインストール処理部805は、インストール制御アプリ307を使用し、アプリ配信インストールアプリ321に対して、アプリをインストールするための権限を委譲する。
In step S1101, the
ステップS1103では、アプリ配信インストールアプリ321は、アプリインストール処理部805から受け取ったアプリ使用権IDを使用してアプリ配信サーバー300からアプリファイルとライセンスファイルを取得する。ここでは、アプリファイルは、最新のバージョン、あるいは、指定されたバージョンのアプリファイルを取得する。さらに、アプリ配信インストールアプリ321は、インストール制御アプリ307のインストール処理を呼び出す。その際、アプリ配信サーバー300から取得したアプリファイルとライセンスファイルを渡す。
In step S1103, the application
ステップS1104では、インストール制御アプリ307は、アプリ配信インストールアプリ321がステップS1103で取得したアプリケーションに対して、インストール処理を実行する権限を有しているか否かの判定をおこなう。ステップS1105では、ステップS1104の判定に問題がない場合はステップS1106に進み、問題がある場合はエラー終了する。
In step S1104, the
ステップS1106では、インストール制御アプリ307は、アプリファイルとライセンスファイルをインストールする。インストール処理の完了後、ステップS1107では、アプリインストール処理部805は、インストール制御アプリ307を使用し、アプリ配信インストールアプリ321に対して、アプリをインストールするための権限を剥奪する。
In step S1106, the
ステップS1108では、周期処理部801は、ステップS1106でのインストール処理の結果を判断する。インストールに成功した場合はステップS1107に遷移し、失敗した場合は処理を終了する。
In step S1108, the
ステップS1109では、周期処理部801は、インストールしたアプリの識別情報とアプリ使用権IDを管理対象アプリ管理部803に保存する。
In step S1109, the
以上、説明した処理により、インストール対象のアプリによってインストールを許可されたアプリが、インストールが許可されていないアプリの機能を利用し、複合機100にアプリをインストールすることが出来るようになる。
As described above, the application that is permitted to be installed by the installation target application can use the function of the application that is not permitted to install to install the application in the
図12は、停止ジョブの実行処理(S1006)の詳細フローチャートである。 FIG. 12 is a detailed flowchart of the stop job execution process (S1006).
ステップS1201では、周期処理部801は、アプリ関連設定ジョブ情報から停止するアプリIDを取り出し、アプリ停止処理部808に渡す。更に、アプリ停止処理部808は、周期処理部801から受け取ったアプリIDを指定し、インストール制御アプリ307の停止処理を呼び出す。
In step S <b> 1201, the
ステップS1202では、インストール制御アプリ307は、アプリライフサイクル管理アプリ312がステップS1201で取得したアプリIDのアプリに対して、停止処理を実行する権限を有しているか否かの判定をおこなう。ステップS1203では、ステップS1202の判定に問題がない場合はステップS1204に進み、問題がある場合はエラー終了する。ステップS1204では、インストール制御アプリ307はアプリを停止する。
In step S1202, the
以上、説明した処理により、停止対象のアプリによって停止を許可されたアプリだけが、複合機100のアプリを停止することが出来るようになる。 As described above, only the application permitted to be stopped by the stop target application can stop the application of the multifunction peripheral 100.
図13は、開始ジョブの実行処理(S1007)の詳細フローチャートである。 FIG. 13 is a detailed flowchart of the start job execution process (S1007).
ステップS1301では、周期処理部801は、アプリ関連設定ジョブ情報から開始するアプリIDを取り出し、アプリ開始処理部807に渡す。更に、アプリ開始処理部807は、周期処理部801から受け取ったアプリIDを指定し、インストール制御アプリ307の開始処理を呼び出す。
In step S <b> 1301, the
ステップS1302では、インストール制御アプリ307は、アプリライフサイクル管理アプリ312がステップS1301で取得したアプリIDのアプリに対して、開始処理を実行する権限を有しているか否かの判定をおこなう。ステップS1303では、ステップS1302の判定に問題がない場合はステップS1304に進み、問題がある場合はエラー終了する。ステップS1304では、インストール制御アプリ307はアプリを開始する。
In step S1302, the
以上、説明した処理により、開始対象のアプリによって開始を許可されたアプリだけが、複合機100のアプリを開始することが出来るようになる。 As described above, only the application that is permitted to start by the start target application can start the application of the multifunction peripheral 100.
図14は、アップデートジョブの実行処理(S1009)の詳細フローチャートである。 FIG. 14 is a detailed flowchart of the update job execution process (S1009).
ステップS1401では、周期処理部801は、アプリ関連設定ジョブ情報からアプリIDを取り出す。ステップS1402では、周期処理部801は、管理対象アプリ管理部803からステップS1401で取り出したアプリIDに対応したアプリ使用権IDを取得する。ステップS1403では、アプリインストール処理部805は、インストール制御アプリ307を使用することで、アップデート対象のアプリの状態を取得する。
In step S1401, the
ステップS1404では、アップデート対象のアプリが開始している(すなわち実行中である)場合はステップS1405に遷移し、開始していない場合はステップS1408に遷移する。 In step S1404, if the application to be updated has started (that is, is being executed), the process proceeds to step S1405. If not started, the process proceeds to step S1408.
ステップS1405では、インストール制御アプリ307は、アプリライフサイクル管理アプリ312がステップS1401で取得したアプリIDのアプリに対して、停止処理を実行する権限を有しているか否かの判定をおこなう。ステップS1406では、ステップS1405の判定に問題がない場合はステップS1407に進み、問題がある場合はエラー終了する。
In step S1405, the
ステップS1407では、インストール制御アプリ307は、アプリを停止する。なお、ここでアプリを停止する理由としては、OSGiの仕様上、開始しているアプリはアップデートすることができないためである。
In step S1407, the
ステップS1408では、アプリインストール処理部805は、インストール制御アプリ307を使用し、アプリ配信インストールアプリ321に対して、アプリをアップデートするための権限を委譲する。
In step S1408, the application
ステップS1409では、アプリ配信インストールアプリ321は、ステップS1402で取得したアプリ使用権IDを使用してアプリ配信サーバー300からアプリファイルとライセンスファイルを取得する。ここでは、アプリファイルは、最新のバージョン、あるいは、指定されたバージョンのアプリファイルを取得する。続いて、アプリ配信インストールアプリ321は、インストール制御アプリ307のアップデート処理を呼び出す。その際、アプリ配信サーバー300から取得したアプリファイルとライセンスファイルを渡す。
In step S1409, the application
ステップS1410では、インストール制御アプリ307は、アプリ配信インストールアプリ321がステップS1408で取得したアプリケーションに対して、アップデート処理を実行する権限を有しているか否かの判定をおこなう。ステップS1411では、ステップS1410の判定に問題がない場合はステップS1412に進み、問題がある場合はエラー終了する。ステップS1412では、インストール制御アプリ307は、アプリファイルとライセンスファイルをアップデートする。
In step S1410, the
アップデート処理の完了後、ステップS1413では、アプリインストール処理部805は、インストール制御アプリ307を使用し、アプリ配信インストールアプリ321に対して、アプリをアップデートするための権限を剥奪する。
After completing the update process, in step S1413, the application
ステップS1414では、ステップS1407の停止処理がおこなわれていない場合は処理を終了し、停止処理がおこなわれていた場合はS1415に遷移し、アプリインストール処理部805は、インストール制御アプリ307を利用して、アプリの開始処理を呼び出す。
In step S1414, if the stop process in step S1407 has not been performed, the process ends. If the stop process has been performed, the process proceeds to S1415. The application
ステップS1415では、インストール制御アプリ307は、アプリライフサイクル管理アプリ312がステップS1401で取得したアプリIDのアプリに対して、開始処理を実行する権限を有しているか否かの判定をおこなう。ステップS1416では、ステップS1415の判定に問題がない場合はステップS1417に進み、問題がある場合はエラー終了する。ステップS1418では、インストール制御アプリ307は、アプリを開始する。
In step S1415, the
以上、説明した処理により、インストール対象のアプリによってインストールを許可されたアプリが、インストールが許可されていないアプリの機能を利用し、複合機100のアプリをアップデートすることが出来るようになる。 As described above, the application permitted to be installed by the application to be installed can update the application of the multifunction peripheral 100 using the function of the application not permitted to install.
図15は、アンインストールジョブの実行処理(S1008)の詳細フローチャートである。 FIG. 15 is a detailed flowchart of the uninstall job execution process (S1008).
ステップS1501では、周期処理部801は、アプリ関連設定ジョブ情報からアンインストールするアプリIDを取り出し、アプリアンインストール処理部806に渡す。更に、アプリアンインストール処理部806は、周期処理部801から受け取ったアプリIDを指定し、インストール制御アプリ307のアンインストール処理を呼び出す。
In step S1501, the
ステップS1502では、インストール制御アプリ307は、アプリライフサイクル管理アプリ312がステップS1501で取得したアプリIDのアプリに対して、アンインストール処理を実行する権限を有しているか否かの判定をおこなう。ステップS1503では、ステップS1502の判定に問題がない場合はステップS1504に進み、問題がある場合はエラー終了する。ステップS1504では、インストール制御アプリ307はアプリをアンインストールする。
In step S1502, the
ステップS1505では、周期処理部801は、ステップS1501で取り出したアプリIDに対応したアプリの識別情報とアプリ使用権IDを管理対象アプリ管理部803から削除する。
In step S1505, the
以上、説明した処理により、アンインストール対象のアプリによってアンインストールを許可されたアプリだけが、複合機100のアプリをアンインストールすることが出来るようになる。 As described above, only the application permitted to be uninstalled by the uninstall target application can uninstall the application of the multifunction peripheral 100.
以上説明したとおり第1実施形態によれば、アプリ毎にライフサイクル管理をおこなうアプリを制限することが可能になる。加えて、制限された状況下であっても、権限を持つアプリが権限を持たないアプリの提供するライフサイクル管理用のAPIを利用することが可能になり、アプリの操作に係る管理性を向上するとともに既存資源の有効利用が可能となる。 As described above, according to the first embodiment, it is possible to limit apps that perform life cycle management for each app. In addition, even under restricted circumstances, it becomes possible for an authorized app to use the lifecycle management API provided by an unauthorized app, improving the manageability of app operations In addition, existing resources can be used effectively.
(第2実施形態)
第2実施形態では、アプリの操作権限を持たないアプリに一時的に権限を委譲し、権限を必要とするアプリを操作する形態について説明する。例えば、OS資源の逼迫や障害発生等が発生した場合、緊急で停止やアンインストールが必要になることがある。しかし、アプリライフサイクル管理アプリ312は前述したように、管理サーバー200への定期的なポーリングによってアプリの処理要求を実行するため、ポーリング間隔によっては処理が実行されるまでに時間がかかり即時に対応が出来ない場合がある。
(Second Embodiment)
In the second embodiment, a mode will be described in which authority is temporarily delegated to an app that does not have app operation authority, and an app that requires authority is operated. For example, when an OS resource is tight or a failure occurs, it may be necessary to stop or uninstall it urgently. However, as described above, the application life
一方、アプリ管理UI提供アプリ308は複合機100の販売会社等に所属するサービスマンのみに操作が限定されているわけではない。すなわち、顧客(システム管理者)も操作が出来てしまうという問題がある。つまり、複合機100の販売会社等に所属するサービスマンに限り、アプリの操作権限を持たないアプリ管理UI提供アプリ308によるアプリの操作を許可する必要がある。そこで、第2実施形態では、ログインコンテキスト2200を利用して、現在操作しているユーザがサービスマンであるか否かを決定し、判定に基づいて一時的な権限の委譲を行う。
On the other hand, the operation of the application management
図21に示すログインコンテキスト2200は、ログインアプリ309を通して正規にログイン処理を実行した場合にのみ、ログインアプリ309から取得することが出来るデータである。項目2201はログインしたユーザーIDである。項目2202はログインしたユーザーが所属するドメインである。項目2203はログインしたユーザーのロールであり、管理者権限であれば“Administrator”、サービスマンであれば“Serviceman”、一般ユーザーであれば“General”、ゲストユーザーであれば“Guest”等が設定される。すなわち、コンテキスト2200を参照することにより、ログインしているユーザの権限を決定することが可能である。
The
図21に示すパーミッションファイル2300は、アプリ管理UI提供アプリ308が宣言するファイルである。項目2301はアプリ管理UI提供アプリ308の持つ権限を宣言する。本例では、OSGiフレームワークのライフサイクル管理機能にアクセスできる権限を有していることを示している。
A
図22は、手動操作に基づくアプリ関連設定ジョブの開始処理を説明するフローチャートである。 FIG. 22 is a flowchart for explaining an application-related setting job start process based on a manual operation.
ステップS2401では、アプリ管理UI提供アプリ308は、ログインアプリ309を利用してログインコンテキスト2200を取得し、アプリライフサイクル管理アプリ312が提供するAPIに渡す。
In step S2401, the application management
ステップS2402では、アプリライフサイクル管理アプリ312は、ステップS2401で取得したログインコンテキスト2200の項目2203が“Serviceman”であるかを判定し、YesであればステップS2403に遷移し、Noであればエラー終了する。すなわち、アプリライフサイクル管理アプリ312に関する操作権限を有するユーザであるか否かを判定する。
In step S2402, the application life
ステップS2403では、アプリライフサイクル管理アプリ312は、操作要求をしたアプリのパーミッションファイル2300を取得する。ステップS2404では、アプリライフサイクル管理アプリ312は、ステップS2403で取得したパーミッションファイル2300の項目2301が“org.osgi.framework.AdminPermission”であるかを判定し、YesであればステップS2405に遷移し、Noであればエラー終了する。ステップS2405では、アプリライフサイクル管理アプリ312は、アプリ関連設定ジョブ実行処理を実行し、処理を終了する。
In step S2403, the application life
以上説明したとおり第2実施形態によれば、本来は操作権限を持たないアプリであっても、一時的に操作権限を委譲することにより、操作権限を必要とするアプリを操作することが可能となる。 As described above, according to the second embodiment, even an app that originally does not have the operation authority can be operated by temporarily delegating the operation authority to operate the application that requires the operation authority. Become.
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other examples)
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
301:OSプラットフォーム; 302:アプリプラットフォーム; 303:JavaVM; 304:ライブラリ; 305:OSGiフレームワーク; 306:システムアプリ; 310:拡張システムアプリ; 320:一般アプリ 301: OS platform; 302: Application platform; 303: JavaVM; 304: Library; 305: OSGi framework; 306: System application; 310: Extended system application;
Claims (10)
アプリケーションに関する処理を指示する設定ジョブを取得する取得手段と、
前記処理手段が前記設定ジョブに含まれる処理の操作権限を有しているか否かを判定する判定手段と、
前記判定手段により前記処理手段が前記設定ジョブに含まれる所定の処理の操作権限を有していないと判定された場合、前記所定の処理の操作権限を前記処理手段に委譲する委譲手段と、
前記委譲手段により前記所定の処理の操作権限が委譲された前記処理手段による前記所定の処理の完了後、前記処理手段から前記所定の処理の操作権限を剥奪する剥奪手段と、
を有することを特徴とする情報処理装置。 An information processing apparatus that executes processing related to an application via a processing unit,
An acquisition means for acquiring a setting job instructing processing related to the application;
Determination means for determining whether or not the processing means has an operation authority for processing included in the setting job;
A delegation unit for delegating the operation authority of the predetermined process to the processing unit when the determination unit determines that the processing unit does not have the operation authority of the predetermined process included in the setting job;
A deprivation means for depriving the operation authority of the predetermined process from the processing means after the completion of the predetermined process by the processing means to which the operation authority of the predetermined process has been delegated by the delegation means;
An information processing apparatus comprising:
前記処理手段は、前記アプリケーションのタイプが前記第1種のアプリケーションである場合は、前記委譲手段による前記所定の処理の操作権限の委譲を行うことなく前記所定の処理をエラー終了し、前記アプリケーションのタイプが前記第2種のアプリケーションである場合は、前記委譲手段による前記所定の処理の操作権限の委譲を行い前記所定の処理を実行し、前記アプリケーションのタイプが前記第3種のアプリケーションである場合は、前記委譲手段による前記所定の処理の操作権限の委譲を行うことなく前記所定の処理を実行する
ことを特徴とする請求項1に記載の情報処理装置。 The determination means includes the first process in which the predetermined process is prohibited, the second type application in which the predetermined process can be performed according to a predetermined condition, and the predetermined process regardless of the condition. To determine which of the third type of applications is possible,
If the application type is the first type of application, the processing unit terminates the predetermined process with an error without delegating the operation authority of the predetermined process by the delegation unit, and When the type is the second type application, when the delegation unit delegates the operation authority of the predetermined process and executes the predetermined process, and the type of the application is the third type application The information processing apparatus according to claim 1, wherein the predetermined process is executed without delegating operation authority of the predetermined process by the delegation unit.
ことを特徴とする請求項2に記載の情報処理装置。 The information processing apparatus according to claim 2, wherein the predetermined condition is that the predetermined process for the application is included in a temporary permission list prepared in advance.
ことを特徴とする請求項2に記載の情報処理装置。 The information processing apparatus according to claim 2, wherein the predetermined condition is that the predetermined process for the application by the processing unit is included in a temporary permission list prepared in advance.
ことを特徴とする請求項3又は4に記載の情報処理装置。 The information processing apparatus according to claim 3, wherein the predetermined condition further includes that the information processing apparatus has a license for the application.
ことを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。 The information processing apparatus according to claim 1, wherein the acquisition unit acquires the setting job by periodically polling a management apparatus that manages the information processing apparatus.
前記所定の条件は、前記ユーザの権限が所定の権限を有していることを更に含む
ことを特徴とする請求項2乃至5の何れか1項に記載の情報処理装置。 When the acquisition unit acquires the setting job via an input by a user, the information processing apparatus further includes a determination unit that determines the authority of the user based on a login context.
The information processing apparatus according to claim 2, wherein the predetermined condition further includes that the authority of the user has a predetermined authority.
ことを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。 The information processing apparatus according to claim 1, wherein the predetermined process includes an installation process and an update process of the application.
アプリケーションに関する処理を指示する設定ジョブを取得する取得工程と、
前記処理手段が前記設定ジョブに含まれる処理の操作権限を有しているか否かを判定する判定工程と、
前記判定工程により前記処理手段が前記設定ジョブに含まれる所定の処理の操作権限を有していないと判定された場合、前記所定の処理の操作権限を前記処理手段に委譲する委譲工程と、
前記委譲工程により前記所定の処理の操作権限が委譲された前記処理手段による前記所定の処理の完了後、前記処理手段から前記所定の処理の操作権限を剥奪する剥奪工程と、
を含むことを特徴とする情報処理装置の制御方法。 A control method for an information processing apparatus that executes processing related to an application via a processing means,
An acquisition process for acquiring a setting job instructing processing related to the application;
A determination step of determining whether or not the processing means has an operation authority for processing included in the setting job;
A delegation step of delegating the operation authority of the predetermined process to the processing unit when the determination unit determines that the processing unit does not have the operation authority of the predetermined process included in the setting job;
A deprivation step of depriving the operation authority of the predetermined process from the processing means after the completion of the predetermined process by the processing means to which the operation authority of the predetermined process has been delegated by the delegation step;
A method for controlling an information processing apparatus, comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015200470A JP2017073035A (en) | 2015-10-08 | 2015-10-08 | Information processing device and control method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015200470A JP2017073035A (en) | 2015-10-08 | 2015-10-08 | Information processing device and control method therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017073035A true JP2017073035A (en) | 2017-04-13 |
Family
ID=58537790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015200470A Pending JP2017073035A (en) | 2015-10-08 | 2015-10-08 | Information processing device and control method therefor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017073035A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11392286B2 (en) | 2019-09-30 | 2022-07-19 | Fujifilm Business Innovation Corp. | Information processing apparatus, device control apparatus, and non-transitory computer readable medium for automatically cancelling prohibition of operation of device upon receipt of instruction to execute the operation |
US11747964B2 (en) | 2019-09-30 | 2023-09-05 | Fujifilm Business Innovation Corp. | Information processing apparatus, device control apparatus, and non-transitory computer readable medium for restricting predetermined input during transition to and from device setting mode |
-
2015
- 2015-10-08 JP JP2015200470A patent/JP2017073035A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11392286B2 (en) | 2019-09-30 | 2022-07-19 | Fujifilm Business Innovation Corp. | Information processing apparatus, device control apparatus, and non-transitory computer readable medium for automatically cancelling prohibition of operation of device upon receipt of instruction to execute the operation |
US11747964B2 (en) | 2019-09-30 | 2023-09-05 | Fujifilm Business Innovation Corp. | Information processing apparatus, device control apparatus, and non-transitory computer readable medium for restricting predetermined input during transition to and from device setting mode |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5173563B2 (en) | License management apparatus and method | |
US9635207B2 (en) | Management system and information processing apparatus managing installation and settings of an application | |
KR101337160B1 (en) | Information processing apparatus, information processing method and storage medium | |
JP5743724B2 (en) | Management apparatus and management method, management system and network device | |
JP6499423B2 (en) | Information processing system, information processing apparatus, and control method and program thereof | |
JP2020004158A (en) | Information processing apparatus, method of controlling information processing apparatus, and program | |
JP2016057697A (en) | Information processing system, information processor, control method thereof, and program | |
JP2013069077A (en) | System, information processing device and control method thereof, image formation device and control method thereof and program | |
JP6456028B2 (en) | Information processing apparatus, information processing method, and program | |
JP6066750B2 (en) | Image forming apparatus, control method therefor, and program | |
JP4344203B2 (en) | Image forming apparatus and information display method | |
US20100162407A1 (en) | Apparatus, method, and recording medium | |
JP2018033005A (en) | Information processing system, information processing apparatus, control method of the same, and program | |
JP2016018339A (en) | System and control method for system | |
JP4394740B2 (en) | Image forming apparatus, method, and program | |
JP5419637B2 (en) | Management device, method and program | |
JP2017073035A (en) | Information processing device and control method therefor | |
JP2019074995A (en) | Information processing device | |
JP5822581B2 (en) | Image forming apparatus, method thereof, and program | |
JP2009205262A (en) | Application program installation device, application program installation method, program, and recording medium | |
JP6057740B2 (en) | Image forming apparatus, information processing method, and program | |
JP4378338B2 (en) | Information processing apparatus, device setting method, storage medium, and program | |
JP6614987B2 (en) | Management system, management apparatus and control method thereof | |
JP2010218352A (en) | Device management apparatus, image forming apparatus, and device management program | |
JP2014178798A (en) | Image formation apparatus, control method thereof and computer program |