JP6388405B2 - 情報処理装置、情報処理装置の制御方法およびプログラム - Google Patents

情報処理装置、情報処理装置の制御方法およびプログラム Download PDF

Info

Publication number
JP6388405B2
JP6388405B2 JP2014265014A JP2014265014A JP6388405B2 JP 6388405 B2 JP6388405 B2 JP 6388405B2 JP 2014265014 A JP2014265014 A JP 2014265014A JP 2014265014 A JP2014265014 A JP 2014265014A JP 6388405 B2 JP6388405 B2 JP 6388405B2
Authority
JP
Japan
Prior art keywords
application
type
installation
bundle
information processing
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
JP2014265014A
Other languages
English (en)
Other versions
JP2016126419A (ja
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
Priority to JP2014265014A priority Critical patent/JP6388405B2/ja
Priority to US14/977,781 priority patent/US9916149B2/en
Publication of JP2016126419A publication Critical patent/JP2016126419A/ja
Application granted granted Critical
Publication of JP6388405B2 publication Critical patent/JP6388405B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

本発明は、アプリケーションプログラム(以下、「アプリ」)のインストール方法に関するものである。
近年、画像形成装置においては、JAVA(登録商標)環境に代表されるようなアプリ動作環境が提供されている。JAVA(登録商標)の持つプログラムの可搬性を利用して、拡張可能なアプリを提供する技術が提案されている。画像形成装置の機能やユーザビィリティの向上を図るために、上記JAVA(登録商標)環境などの環境下で動作するアプリを作成し、画像形成装置にインストールすることで、当該アプリにより所望の機能を実現できる。
アプリプラットフォームとしては、組み込み機器向けのJAVA(登録商標)アプリプラットフォームである、OSGi(Open Services Gateway Initiative)Service Platform(以下、「OSGi」)がある。これについては、例えば、非特許文献1に記載がある。OSGiでは、ソフトウェアモジュールの管理単位としてバンドルを定義しており、インストール/開始/停止/更新/アンインストールからなるライフサイクルを管理するための仕様を定義している。ここで、「バンドル」とは、JAVA(登録商標)モジュールのことを指す。このようなアプリプラットフォームは、コピー、スキャン、プリント等の組み込み機能をアプリに提供することができる。
従来、アプリを画像形成装置にインストールする方法は、クライアント端末からネットワーク経由でインストールする方法が知られている。しかし、そのようなインストール方法の場合、予めネットワークの設定等が必要となるため、インストールを行うユーザの負荷となっていた。そこで、USBメモリに代表されるようなフラッシュメモリの中にドライバソフトを配置しておき、該メモリが画像形成装置のようなデバイスに挿入されたことを検知して、該メモリの中に配置されたドライバソフトをインストールする仕組みが提案されている。この仕組みは、例えば、特許文献1に記載されている。この仕組みを応用し、ドライバソフトの代わりにアプリとアプリを復号化するライセンスをフラッシュメモリの中に配置しておき、フラッシュメモリを画像形成装置に挿入されたことを検知して、アプリをインストールする方法が考えられる。更に、インストールしたアプリを開始状態にすれば、USBを挿すだけで手軽にアプリを利用することができ、ユーザにとって作業負荷が軽減される。
OSGi Service Platform,Release 4, http://www.osgi.org/Download/Release4V40, 2005年10月
特開2006−178534号公報
しかしながら、OSGiのバンドルの種類には、ホストバンドルとフラグメントバンドルという仕組みがあり、これらのアプリを考慮するときには、以下に述べるようなフラグメントバンドルの制限によりインストールと開始する順番に注意を払う必要がある。
フラグメントバンドルとは、単独では動作せず、ホストバンドルのクラスローダ空間にバンドル自身を追加(アタッチ)する形式のバンドルである。このフラグメントバンドルをインストールする時には、ホストバンドルが停止していることがOSGiの規約として求められている(制限1)。また、フラグメントバンドルは単独では動作しないので、インストール時には、必ずホストバンドルがインストールされている必要がある(制限2)。
このような順番依存を考慮するときに、予めユーザがインストーする順番を記載した設定ファイルをフラッシュメモリの中に配置しておき、その順番に従ってインストールすることが考えられる。しかし、そのためには、フラッシュメモリ(USBメモリ)を用意するユーザがホストバンドルとフラグメントバンドルを認識する必要があり、ユーザにとっての負荷が発生するという課題があった。
上記課題を解決するため、本発明は、情報処理装置であって、第1種別のアプリケーションと、当該アプリケーションの機能を拡張するため当該アプリケーションに付加される第2種別のアプリケーションとを含む複数のアプリケーションを記憶する可搬媒体の接続を検知する検知手段と、検知手段による検知に応じて、第1種別のアプリケーションを先にインストールし、その後、第2種別のアプリケーションをインストールするという順番を規定したインストールタスクリストを作成する作成手段と、作成手段により作成されたインストールタスクリストに基づき、第1種別のアプリケーションを先にインストールし、その後、第2種別のアプリケーションをインストールするインストール手段と、インストール手段によるインストールの後、第2種別のアプリケーションを有効化した後に、第1種別のアプリケーションを開始する制御手段とを有し、作成手段は、第1の種別のアプリケーションおよび第2の種別のアプリケーションの夫々のアプリケーションのペアとなる、可搬媒体に記憶されたライセンスファイルが情報処理装置に対応しているか否か確認し、対応していないライセンスファイルのペアとなる第1の種別および/または第2の種別のアプリケーション除外たインストールタスクリストを作成することを特徴とする情報処理装置を提供する。
本発明は、フラッシュメモリに、アプリとライセンスを配置しておき、画像形成装置へのフラッシュメモリの挿入をトリガーとして、アプリをインストールする技術を対象とする。本発明によれば、アプリがホストバンドルとフラグメントバンドルの場合でも、通常アプリと同様に任意に配置するだけでインストール可能となる。
画像形成装置のハードウェア構成図である。 画像形成装置のソフトウェアモジュール階層図である。 アプリのインストールする流れを示したブロック図である。 フラグメントバンドルの概念図である。 アプリ管理画面、インストール画面のUIを示した図である。 フラグメントバンドルの仮インストール状態を説明するためのブロック図である。 フラグメントバンドルの有効化、無効化を説明するためのブロック図である。 イックインストールサービスにおける基本的なクイックインストールを説明するためのブロック図である。 ライセンスファイルとバンドルのマニフェストを示したものである。 イックインストールサービスにおける、クイックインストールのフローチャートである。 イックインストールサービスにおける、jarとlicのペア抽出処理のフローチャートである。 実施例1における、ホストバンドルとフラグメントバンドルを含むクイックインストールを説明するためのブロック図である。 実施例1における、ホストバンドルとフラグメントバンドルを含むクイックインストールのフローチャートである。 実施例1における、インストールタスクのグループごと並べ替え処理のフローチャートである。 実施例1における、クイックインストールサービスからフラグメントバンドルを仮インストールする時のシーケンス図である。 実施例1における、クイックインストールサービスから仮インストールされたアプリを有効化する時のシーケンス図である。 実施例2における、ホストバンドルが開始している状態から、フラグメントバンドルを含むアプリのクイックインストールを説明するためのブロック図である。 実施例2における、ホストバンドルの状態を考慮したフラグメントバンドルを含むアプリのクイックインストールのフローチャートである。
以下、本発明を実施するための最良の形態について図面を用いて説明する。初めに、以下の記載において用いる用語の定義を行う。
<用語の定義>
「バンドル」とは、JAVA(登録商標)モジュールのことを指し、本発明においてはアプリ(アプリケーション)と同義である。
「ホストバンドル」とは、フラグメントバンドルの追加対象となるバンドルである。
「フラグメントバンドル」とは、単独では動作せず、ホストバンドルのクラスローダ空間に自分自身を追加するバンドルである。後入れで機能を付加していくプラグインアプリケーションとしての使い方を想定するものである。
ホストバンドルへフラグメントバンドルを追加すること、つまりホストバンドルへアタッチすることを、以降「フラグメントバンドルのインストール」と呼ぶ。なお、OSGiの仕様上、ホストバンドル:フラグメントバンドル=1:Nの関係にあり、フラグメントバンドルは、1つのホストバンドルにのみ追加できるものとなる。ここで、「OSGi」はOpen Services Gateway Initiativeの略称である。
「一般アプリ」とは、フラグメントバンドルでもホストバンドルでもないバンドルを指す。
「クイックインストール」とは、USBメモリにバンドルとライセンスを配置しておき、そのUSBメモリの画像形成装置への挿入をトリガーとして、それらのバンドルをインストールし、インストール完了後開始状態まで進めるインストール方法のことを指す。
<クイックインストールの背景と課題>
最初に図1〜図7において、以降に述べる全ての実施例に共通なクイックインストールの背景と課題について説明する。また、図8〜図11において、イックインストールの基本形である一般アプリのクイックインストールについて説明する。
図1は、印刷機能やスキャン機能、ネットワーク通信機能などを備える情報処理装置(画像形成装置)130のハードウェア構成図である。コントローラ100は、画像形成装置130を制御するコントローラである。コントローラ100はスキャナ部113やプリンタ部114と電気的に接続され、一方でLAN116を介して外部デバイスと接続される。
CPU101は、ROM102に記憶された制御プログラム等に基づいて接続中の各種ハードウェアとのアクセスを統括的に制御し、またコントローラ内部で行われる各種処理についても統括的に制御する。ROM102は、読み出し専用の不揮発記憶領域であり、画像形成装置130のブートプログラムなどが格納される。RAM103はCPU101が動作するためのシステムワークメモリであり、各種データを一時記憶するためのメモリである。このRAM103は、記憶した内容を電源off後も保持可能なFRAMおよびSRAM、電源off後に記憶内容が消去されるDRAMなどにより構成される。HDD104は不揮発記憶領域であり、システムアプリなどを格納する。図3で説明するインストールするアプリを含むファームウェアは、HDD104に格納される。
操作部I/F105は、システムバス119と操作部118を接続するインタフェース部である。具体的には操作部118に表示するデータをシステムバス119から受取り表示すると共に、操作部118からの入力情報をシステムバス119へ出力する。画像形成装置130に対するユーザの指示や情報提示は、操作部118を介して行う。ネットワークI/F106はLAN116、WAN117及びシステムバス119に接続し、外部との情報の入出力を行う。
スキャナI/F108は、スキャナ部113から受取った画像データに対して、補正、加工、及び編集を行う。画像形成部109は、画像データの方向変換、画像圧縮、伸張部などを行う。プリンタI/F110は、画像形成部109から送られた画像データを受取り、画像形成後にプリンタ部114にて印刷する。USBインタフェース120は、種々の周辺機器を画像形成装置130に接続する汎用インタフェースであり、USBへの接続制御を行う。ここでは可搬媒体としてフラッシュメモリ121が接続される。
図2は、画像形成装置130のソフトウェアモジュール階層図である。なお、図2以降に示す各ソフトウェアはROM102、もしくはHDD104に保存され、CPU101にて実行される。また、実行時に使用する各種情報はRAM103もしくはHDD104に保持してソフトウェア機能間での各種情報のやりとりを行う。さらに外部機器との通信は、ネットワークI/F106を用いて通信を行う。
ソフトウェアは、オペレーティングシステム(以下、「OS」)プラットフォーム201を有し、OS201上にソフトウェアプラットフォーム202が構成される。ソフトウェアプラットフォーム202は、JAVA(登録商標)VM203のランタイム環境として構成され、インタプリタとしてのJAVA(登録商標)VM203、ライブラリ204、フレームワーク群205を備える。ライブラリ204は、標準のApplication Programming Interface(API)ライブラリを含む。
フレームワーク群205はOSGi206を含み、OSGi206は、単一のJAVA(登録商標)VM203上に複数のアプリを動作させる。更に、OSGi拡張部213は、OSGi206に対し必要に応じて機能を拡張可能であることを示す。OSGi206はアプリのライフサイクルの管理やアプリ間通信機能などを提供する。画像形成装置130の起動時に、OSGi206は、HDD104に保存されたサービス起動順リストに従い、後述するログインアプリ211、インストール制御サービス207、アプリ管理サービス208などのシステムサービスを起動していく。このOSGi206上には、複数のシステムサービスがプリインストールされる。システムサービスには、複数のアプリ群を管理し、新たなアプリの追加、更新、削除をするためのアプリ管理サービス208がある。アプリ管理サービス208は、インストール制御サービス207を利用して、アプリの追加、更新、削除を行う。また、アプリ管理を目的とするUIをサーブレットアプリとして提供する。
ストレージサービス210は、フラッシュメモリ121を管理するサービスである。フラッシュメモリ121を画像形成装置130に接続すると、USBインタフェース120がフラッシュメモリ121の接続を認識し、USBドライバを介して、ストレージサービス210に伝える。フラッシュメモリ121の内容は、USBドライバを介してUSBインタフェース120に伝わり把握可能となる。
クイックインストールサービス209は、クイックインストールを制御するサービスであり、フラッシュメモリ121の接続を認識すると、後述する方法によりそのデバイスに適切なアプリを抽出し、クイックインストールを行う。このときのUSBストレージの接続の認識は、ストレージサービス210にイベントリスナーを登録することにより実現している。
ログインアプリ211は、ログインユーザを管理するためのアプリである。ログインアプリ211は、ログイン中に任意のアプリから任意のタイミングでログイン情報の問い合わせが来る可能性があるため、停止できない特性を持つアプリである。ログインアプリが停止するとログイン情報の取得ができなくなるため、例えば、ログイン情報に紐づくデータを利用するアプリの場合、データの取得に失敗し、その動作に支障が生じる。ここで、ログイン情報とは、現在画像形成装置130にログインしているユーザのログイン名やメールアドレスなどの情報を指す。前記特性を持つため、画像形成装置130が起動中において、このログインアプリ211は必ず1つが動作する。ログインアプリ211は、図4で述べるような、ホストバンドルとフラグメントバンドルという形態で提供することが可能である。
一般アプリ212は、画像形成装置130において各種処理をユーザに提供する。例えば、画像の加工や圧縮アプリ、印刷制限などの部門管理を行うアプリなどがある。各種機能を実現する一般アプリ212は、アプリ管理サービス208の管理下で動作する。アプリ管理サービス208は、管理下に追加されたアプリのバージョンを含むアプリ情報、ライセンス情報などを保持する。さらに、画像形成装置130内のアプリのアンインストール指示に応答し、アプリ管理サービス208は一般アプリ212を管理対象から外す。一般アプリ212は、ログインアプリ211と同様に、図4のホストバンドルとフラグメントバンドルという形態で提供することが可能である。
図3は、ユーザがPC300から画像形成装置130へアプリをインストールする流れを示すブロック図である。PC300のWEBブラウザ(不図示)に図5のインストール画面530で示すWEBページで構成されたアプリのインストールUI301を表示し、このインストールUI301からインストールしたいアプリを指定し、インストールを行なう。インストールUI301で指定されたアプリを受信したアプリ管理サービス208は、それをインストール制御サービス207に渡す。アプリファイルを受信したインストール制御サービス207は、OSGi206にインストールを依頼し、OSGi206がインストールを行う。インストールされたアプリは、アプリ管理サービス208によって管理される。
図4は、フラグメントバンドルの概念を説明する図である。ここでは、ホストバンドル400に対して、言語ローカライズリソースをもつフラグメントバンドル401と402がインストールされる例を示している。ホストバンドルにフラグメントバンドルをインストールするためには、OSGi206の規約上、以下のマニフェスト、及びバンドルパーミッションの指定が必要となる。
■ホストバンドルのマニフェスト403
Bundle−ManifestVersionに、「2」と指定する。Bundle−SymbolicNameには、フレームワーク内で一意な名前を付ける。
■フラグメントバンドルのマニフェスト405
Bundle−ManifestVersionに、「2」と指定する。Fragment−Hostには、ホストバンドルのマニフェスト403に記載の<ホストのバンドルシンボリック名>を指定する。本値が一致することでホストバンドルとフラグメントバンドルが同一アプリの構成要素であることを示すものとなる。
■ホストバンドルのパーミッション404
BundlePermission[バンドルシンボリック名、 HOST]
■フラグメントバンドルのパーミッション406
BundlePermission[バンドルシンボリック名、FRAGMENT]
これらの条件を満足する状態でフラグメントバンドルをインストールすると、OSGi206がフラグメントバンドルのマニフェスト情報からホストバンドルを特定し、ホストバンドルのクラスパスにフラグメントバンドル自身のクラスパスの追加を行う。なお、「クラスパス」は、JAVA(登録商標)アプリ実行するときに、JAVA(登録商標)VMがどの場所からクラスファイルを読み込めばよいかを指定するためのものである。更に、ホストバンドルのクラスローダによって、フラグメントバンドル内の全てのクラスとリソースがロードされる。ここで、「クラスローダ」は、クラスのロードやリソースの検索を担当するオブジェクトであり、全てのクラスはクラスローダによってJAVA(登録商標)VMにロードされアプリから利用可能となる。このホストバンドルのクラスローダのロードの実行は、ホストバンドル起動時に行われるため、必ずホストバンドルを一度停止し、クラスパスを追加したうえでロードする必要がある。よって、ホストバンドルが停止していないときは、インストールに失敗する。フラグメントバンドルがインストールされた後は、ホストバンドルの一部として利用可能となる。
本例では、フラグメントバンドルとして日本語リソース401、中国語リソース402が本体であるホストバンドル400にインストールされ、その後、ホストバンドル400がこれらの日本語、中国語リソースを利用する。その結果、リソースの言語切替えが可能となる。つまり、ホストバンドルのUI上の表示は英語であるが、ホストバンドルのUI上でリソース切替指定をすることで、日本語表示や中国語表示にするようにホストバンドルを作ることが可能である。
ホストバンドルがログインアプリの場合、次のような構成が可能である。即ち、ホストバンドル部分でログインに関する基本的な処理を担い、フラグメントバンドル部分で、例えばICカード認証のようなICカードをかざすことで、そのICカードに載っている情報によりログインするといったUI部分を補うといった構成が可能となる。
図5〜7を参照して、アプリ管理サービスが提供するアプリ管理画面において、一般アプリ、ホストバンドル、フラグメントバンドルがどのように管理されるかについて説明する。また、フラグメントバンドルの仮インストールとフラグメントバンドルの有効化/無効化について説明する。
図5は、アプリ管理サービス208における、一般アプリの管理画面500とインストール画面530を示した図である。ここでは、一般アプリの管理画面で説明するが、ログインアプリの管理画面についても同様の画面となる。
まず、一般アプリの管理画面500から説明する。アプリケーション名501は、管理されている一般アプリ名を表示する。この例では、アプリケーションA505とアプリケーションB506の2つが管理されている。更に、このアプリケーションA505をホストバンドルとして、フラグメントバンドルA507、フラグメントバンドルB508が管理されている。この場合、そのホストバンドルに紐づいていることがわかるように、アプリケーションA505と関連付けて表示される。インストール日502は、各アプリがインストールされた日付である。アプリケーションID503は、各アプリに一意に割り振られたアプリケーションIDを表示している。
状態504は各アプリの状態を示す。アプリの状態が開始であれば開始、停止であれば停止と表示される。また、フラグメントバンドルの場合、ホストバンドルにインストールされている場合は有効と表示され、図6で示す仮インストール状態の場合は無効と表示される。開始ボタン516/停止ボタン513はアプリの開始停止を切り替える指示ボタンである。開始状態のアプリの場合は停止ボタン、停止状態のアプリの場合は開始ボタンとなる。有効化ボタン515/無効化ボタン514はフラグメントバンドルの有効無効を切替える指示ボタンである。開始状態のアプリ(本例では、「アプリケーションA505」)の停止ボタン513を押下すると、その状態504は停止に変更される。一方、停止状態のアプリ(本例では、「アプリケーションB506」)の開始ボタン516を押下すると、その状態504は開始に変更される。有効状態のアプリ(本例では、「フラグメントバンドルA507」)の無効化ボタン514を押下すると、その状態504は無効に変更される。一方、無効状態のアプリ(本例では、「フラグメントバンドルB508」)の有効化ボタン515を押下すると、その状態504は有効に変更される。
アンインストールボタン517〜520は、各アプリをアンインストールする指示ボタンである。フラグメントバンドルのアンインストールはフラグメントバンドルのみが対象となる。例えば、フラグメントバンドルA507のアンインストールボタン518が押下されると、フラグメントバンドルA507だけがアンインストールされる。一方、ホストバンドルであるアプリケーションA505のアンインストールボタン517が押下されると、アプリケーションA505に紐づいたフラグメントバンドルA507とフラグメントバンドルB508も同時にアンインストールされる。
次に、インストール画面530について説明する。参照ボタン533はファイルパスを選択する画面を表示する。その画面でアプリファイルを指定すると、アプリケーションファイルのパス531にアプリファイルへのパスが入力される。アプリはセキュリティやビジネス上の観点からインストール処理において、アプリを復号するためのライセンスファイルが必要となる場合がある。その場合、参照ボタン534を押下するとファイルパスを選択する画面を表示する。そこでアプリ指定と同様にライセンスファイルを指定すると、ライセンスファイルのパス532にライセンスファイルへのパスが入力される。インストールボタン535が押下されると、アプリケーションファイルのパス531で指定したアプリのインストールが開始される。フラグメントバンドルがインストールに指定された場合、フラグメントバンドルは一旦仮インストールされる。
図6は、フラグメントバンドルの仮インストール状態を説明するためのブロック図である。ホストバンドルである一般アプリA600に、フラグメントバンドルであるフラグメントX601を仮インストールする場合を示す。
インストール制御サービス207は、同時に指定されたライセンスファイル610によりフラグメントX601を復号化し、インストール作業フォルダ602に配置する。その後、インストール制御サービス207は、復号化されたフラグメントX605のマニフェストに記載されているホストバンドル情報から、ホストバンドルが一般アプリAであることを特定したうえで、仮インストールフォルダ604に配置する。この仮インストールフォルダ604に配置されているフラグメントバンドルは、仮インストール状態であり、OSGi206の管理上にはない。また607で示すように、ホストバンドルである一般アプリAのユニークなアプリIDのフォルダ名の下に、フラグメントX606を配置する。
図7は、図6で仮ンストールされたフラグメントバンドルX606を有効化するときの流れを示したブロック図である。ユーザの有効化指示S701により、インストール制御サービス207は、無効状態でインストールされているフラグメントX606の有効化処理を行なう。インストール制御サービス207は、フラグメントX606を有効化、つまりホストバンドルにインストールすることにより、アプリフォルダ603にインストールされる。この状態では、OSGi206の管理上にあり、一般アプリAとフラグメントXの関連性をOSGi206が保持している。一方、ユーザの無効化指示S702により、インストール制御サービス207は、有効状態でインストールされているフラグメントX700の無効化処理を行う。無効化処理により、フラグメントX700は、再び仮インストールフォルダ604に無効状態として配置される。
次に、図8〜11を参照して、本的なクイックインストールについて説明する。図8は、クイックインストールサービスによる、クイックインストールを説明するためのブロック図である。インストール対象は一般アプリのみを考える。
USBメモリ801の中のストレージ802の中にインストール対象のフォルダ850(Quickinstall)があり、その配下に以下のファイルが配置される。即ち、複数のアプリファイル851(拡張子jar)とアプリを復号化するためのライセンスファイル852(拡張子lic)である。画像形成装置130には、個別の画像形成装置を特定するためのユニークなシリアル番号「ABC12345」が割り振られる。この画像形成装置130に、USBメモリ801が挿入されると、ストレージサービス210がそれを検知し、クイックインストールサービス209に通知する。クイックインストールサービス209は、それをトリガーとして、USBメモリ801の中のインストール対象フォルダ850に含まれるアプリファイル851とライセンスファイル852のインストール処理を開始する。このとき、シリアル番号「ABC12345」が割り振られている画像形成装置130に適切なアプリファイルとライセンスファイルのペアを図11で示す方法により抽出する(S820)。この例では、app1.jar/app1.licのペア803と、app2.jar/app2.licのペア804が抽出される。クイックインストールサービス209は、これらのペアを順次アプリフォルダ603にインストール(S821、S822)する。更に、全てのインストールが完了後、クイックインストールサービス209は、順次アプリを開始(S823)する。
図9は、ライセンスファイル900とアプリファイルに含まれるマニフェストファイル903を示す。ライセンスファイル900には、このライセンスファイルが対応するアプリのアプリID901が記載される。一方、マニフェストファイル903には、そのアプリのアプリID904が割り振られる。よって、これらの値を付け合わせることで、アプリファイルとライセンスファイルのペアを作ることができる。
更に、ライセンスファイル900には、このライセンスファイルでインストール可能な画像形成装置130のシリアル番号902が記載される。一方、図8で示したように、画像形成装置を特定するためのユニークなシリアル番号「ABC12345」が割り振られる。よって、これらの値を付け合わせることで、その画像形成装置に適切なライセンスファイルを見つけることができる。また、シリアル番号902の値としてはワイルドカード*の指定が可能である。この場合、画像形成装置のシリアル番号に依らずにライセンスが利用可能となる。
図10は、クイックインストールサービス209におけるクイックインストールのフローチャートである。まずS1000において、クイックインストール処理が開始される。S1001において、クイックインストールサービス209がストレージサービス210からのUSBメモリ挿入のイベント通知を検知すると、S1002において、アプリファイル(jar)とライセンスファイル(lic)のペア抽出を行う。このペア抽出の方法については、図11で示す。
抽出されたjarとlicのペアは抽出された順に、インストールタスクリストに登録され、S1003においてインストールタスクリストが作成される。「インストールタスクリスト」とは、このリストの順番にインストールやアプリの開始を行うリストのことを指す。S1004において、インストールタスクリストの最初のタスクに登録されたjarとlicのインストールを行う。S1005において、最後のインストールタスクであるかどうかを確認し、他にもインストールタスクが残っている場合は、S1004に戻り、引き続き処理を行う。こうしてインストールタスクリストの全てのインストールタスクのインストールが完了した後、S1006に進む。
S1006において、今度は、インストールタスクリストの最初のタスクに登録されたjarに対してアプリの開始処理を行う。S1007において、最後のインストールタスクであるかどうかを確認し、他にもインストールタスクが残っている場合は、S1006に戻り、引き続き処理を行う。こうしてインストールタスクリストの全てのインストールタスクのアプリの開始が終了した後、S1008に進み、クイックインストールの処理を終了する。
図11は、クイックインストールサービス209における、jarとlicのペア抽出処理のフローチャートである。まず、S1100において、ペア抽出処理が開始される。S1101において、インストール対象フォルダ850にある全てのライセンスファイルに対して次のチェックを行う。S1102において、ライセンスファイルに記載されるシリアル番号902が、インストール対象の画像形成装置のシリアル番号と一致するかどうかを判断する。あるいは、シリアル番号902がワイルドカード*指定されているかどうかを判断する。
S1102の結果、一致する、もしくは、ワイルドカード指定の場合は、S1103に進み、ライセンスファイル候補リストに追加し、S1104に進む。S1102の結果、一致しない場合は、S1104に進み、全てのライセンスファイルをチェックしたかどうかを判断する。他にもライセンスファイルが残っている場合は、S1102に戻り引き続き処理を行う。こうして全てのライセンスファイルのチェックが完了した後、S1105に進む。この時点で、画像形成装置130で利用可能な、ライセンスファイル候補リストが作成されているので、次に、このライセンスファイルに対応するアプリを探索する。
S1105において、インストール対象フォルダ850にある全てのアプリに対して次のチェックを行う。S1106において、ライセンスファイル候補リストについてチェックを行う。S1107において、既にそのライセンスファイルがインストールタスクリストに登録済みの場合、S1110に進む。未登録の場合は、S1108に進み、アプリのマニフェストに割り振られているアプリID904とライセンスファイルに記載のアプリIDが一致しているかどうかを判断する。一致していない場合はS1110に進む。一致している場合、S1109に進み、インストールタスクを生成し、インストールタスクリストに登録し、そしてS1111に進む。S1110において、最後のライセンスファイル候補リストであるかどうかを確認し、他にもライセンスファイル候補が残っている場合は、S1007に戻り、次のライセンスファイル候補に対して処理を行う。
こうして全てのライセンスファイル候補のチェックが完了した後、S1111に進む。S1111において、最後のインストール対象フォルダ850にあるアプリであるかどうかを確認し、他にもアプリファイルが残っている場合は、S1006に戻り次のアプリに対して処理を行う。こうして全てのアプリファイルのチェックが完了した後、S1112に進み、ペア抽出処理が終了する。
<実施例1>
図12〜図16を用いて、本発明の実施例1の構成を説明する。なお、本実施例では、ホストバンドル(第1の種別のアプリ)とフラグメントバンドル(第2の種別のアプリ)を含むクイックインストールを行なう。
図12は、ホストバンドルとフラグメントバンドルを含むクイックインストールサービスにおけるクイックインストールを説明するためのブロック図である。図12において、USBメモリ801の中のストレージ1202の中に、インストール対象フォルダ850(quickinstall)があり、その配下に以下の2つのファイルが配置される。アプリファイル1251は、複数の一般アプリ(app1.jar/app2.jar)、ホストバンドル(host1.jar/host2.jar)、及びフラグメントバンドル(fragment1.jar/fragment2.jar)を含む。ライセンスファイル1252(拡張子lic)は、アプリを復号化するためのものである。この例では、fragment1.jarのホストバンドルはhost1.jar、fragment2.jarのホストバンドルはhost2.jarであるとする。さらに、host1.jar/host2.jarおよびfragment1.jar/fragment2.jarともにログインアプリでないとする。
画像形成装置130には、個別の画像形成装置を特定するためのユニークなシリアル番号「ABC12345」が割り振られている。画像形成装置130にUSBメモリ801が挿入されると、ストレージサービス210がそれを検知し、クイックインストールサービス209に通知する。クイックインストールサービス209はその通知をトリガーとして、USBメモリ801の中のインストール対象フォルダ850に含まれるアプリファイル1251とライセンスファイル1252のインストール処理を開始する。このとき、シリアル番号「ABC12345」が割り振られている画像形成装置130に適切なアプリファイルとライセンスファイルのペアを、図11で示す方法により抽出する(S820)。この場合、抽出されるペアは以下の通りである。即ち、一般アプリグループ1211においては、ペア1203(app1.jar/app1.lic)とペア1204(app2.jar/app2.lic)が抽出される。フラグメントバンドルグループ1210ではペア1205(fragment1.jar/fragment1.lic)とペア1206(fragment2.jar/fragment2.lic)が抽出される。ホストバンドルグループ1209ではペア1207(host1.jar/host1.lic)とペア1208(host2.jar/host2.lic)が抽出される。
クイックインストールサービス209は、更にアプリのマニフェストからホストバンドル、フラグメントバンドルおよび一般アプリの3グループに分け、ホストバンドル>フラグメントバンドル>一般アプリの順にインストールタスクを並べ替える(S1220)。次に、S1221において、クイックインストールサービス209は、これらのペアを以下の順にインストールする。即ち、最初にホストバンドルグループ1209のペア1207(host1.jar/host1.lic)およびペア1208(host2.jar/host2.lic)をインストールする。その次に、フラグメントバンドルグループ1210のペア1205(fragment1.jar/fragment1.lic)およびペア1206(fragment2.jar/fragment2.lic)をインストールする。そして最後に、一般アプリグループ1211のペア1203(app1.jar/app1.lic)とペア1204(app2.jar/app2.lic)をインストールする。こうすることで、必ずホストバンドルの方が先にインストールされることになる。よって、前記課題における制限2(フラグメントバンドルは単独では動作しないので、インストール時には必ずホストバンドルがインストールされている必要があるという制限)を回避することができる。
全インストールの完了後、S1222において、クイックインストールサービス209は以下の順でアプリの開始、有効化を行なう。即ち、最初に一般アプリグループ1211のペア1203(app1.jar/app1.lic)及びペア1204(app2.jar/app2.lic)を開始する。次に、フラグメントバンドルグループ1210のペア1205(fragment1.jar/fragment1.lic)及びペア1206(fragment2.jar/fragment2.lic)を有効化する。最後にホストバンドルグループ1209のペア1207(host1.jar/host1.lic)およびペア1208(host2.jar/host2.lic)を開始する。この結果、必ずフラグメントバンドルの方から先に有効化されることになる。よって前記課題における制限1(フラグメントバンドルをインストールする時には、ホストバンドルが停止していることが求められるという制限)を回避することができる。
図13は、ホストバンドルとフラグメントバンドルを含むクイックインストールサービス209における、クイックインストールのフローチャートである。まず、S1300において、クイックインストール処理が開始される。S1301において、クイックインストールサービス209が、ストレージサービス210からのUSBメモリ挿入のイベント通知を検知すると、S1302において、アプリファイル(jar)とライセンスファイル(lic)のペア抽出を行う。このペア抽出の方法については、図11で示した方法と同じである。
抽出されたjarとlicのペアは抽出された順に、インストールタスクリストに登録され、S1303において、インストールタスクリストが作成される。次に、S1304において、このS1303で作成されたインストールタスクリストをグループごとに並べ替え処理を行い、並べ替え済みインストールタスクリストが作成される。この並べ替え済みインストールタスクリストを作成する方法については、図14で示す。
S1305において、並べ替え済みインストールタスクリストの最初のタスクに登録されたjarとlicのインストールを行う。S1306において、最後のインストールタスクであるかどうかを確認し、他にもインストールタスクが残っている場合はS1305に戻り、引き続き処理を行う。こうしてインストールタスクリストの全てのインストールタスクのインストールが完了した後、S1307に進む。
S1307において、今度は、並べ替え済みインストールタスクリストの最後のタスクに登録されたjarに対してアプリの開始、有効化処理を行う。S1308において、インストールタスクの対象アプリの種類を判断する。そのアプリがホストバンドルであればS1309に進み、一般アプリであればS1311に進み、フラグメントバンドルであればS1312に進む。
S1309において、ホストバンドルがログインアプリかどうかを判断する。ホストバンドルがログインアプリである場合、S1310に進む。ログインアプリの場合、開始するためには現在の開始中のログインアプリから切り替える必要があり、その場合再起動が必要なので、S1310において再起動後開始状態にし、S1313に進む。ホストバンドルが一般アプリである場合、S1311に進む。S1311においてアプリの開始処理を行い、S1313に進む。S1312において、フラグメントバンドルの有効化処理を行い、S1313に進む。
S1313において、最後のインストールタスクであるかどうかを確認し、他にもインストールタスクが残っている場合は、S1308に戻り、引き続き処理を行う。こうしてインストールタスクリストの全てのインストールタスクのアプリの開始が終了した後、S1314に進み、クイックインストールの処理を終了する。
図14は、図13のS1304における、インストールタスクをグループごとに並べ替えて、並べ替え済みインストールタスクリストを作成する処理のフローチャートである。まず、S1400において、グループごと並べ替え処理が開始される。S1401において、S1303で作成したインストールタスクリスト全てをチェックし、S1402において、インストールタスクのインストール対象が何かを判断する。
S1402において、インストール対象がホストバンドルであればS1403に進み、一般アプリであればS1404に進み、フラグメントバンドルあればS1405に進む。S1403において、インストールタスクをホストタスクリストに登録し、S1406に進む。S1404において、インストールタスクを一般アプリタスクリストに登録し、S1406に進む。S1405において、インストールタスクをフラグメントタスクリストに登録し、S1406に進む。S1406において、最後のインストールタスクであるかどうかを確認し、他にもインストールタスクが残っている場合は、S1402に戻り、引き続き処理を行う。こうしてインストールタスクリストの全てのインストールタスクについての処理が終了した後、S1407に進む。
S1407において、並べ替え済みインストールタスクリストにホストタスクリストを追加し、S1408に進む。S1408において、並べ替え済みインストールタスクリストにフラグメントタスクリストを追加し、S1409に進む。S1409において、並べ替え済みインストールタスクリストに一般アプリタスクリストを追加し、S1410に進む。S1410において、グループごと並べ替え処理を終了する。こうして、並べ替え済みインストールタスクリストは、ホストバンドル>フラグメントバンドル>一般アプリの順番のタスクリストとなる。
図15は、クイックインストールサービス209が、フラグメントバンドルを仮インストールするまでの各サービスの処理の流れ、およびデータの流れを示したシーケンス図である。初めに、S1500において、クイックインストールサービス209は、インストール制御サービス207にインストールを依頼する。次に、S1501において、インストール制御サービス207は、USBメモリ801内のインストール対象フォルダ850(quickinstall)にあるインストール対象のライセンスファイルとアプリのペア1205を参照する。そして、ライセンスファイルからアプリを復号化する。更に、インストール制御サービス207は、アプリのマニフェストの値からフラグメントバンドルであると判断すると、復号化したアプリファイル1552をアプリのアプリIDにファイル名を変更して、仮インストールフォルダ604に配置する(S1502)。以上の処理により、フラグメントバンドルは仮インストールされ、無効状態となる。
図16は、クイックインストールサービス209が無効状態のフラグメントバンドルを有効化するまでの各サービスの処理の流れ、データの流れを示したシーケンス図である。初めに、S1600において、クイックインストールサービス209は、インストール対象のアプリのアプリIDとともに、インストール制御サービス207に有効化処理を依頼する。S1601において、インストール制御サービス207は、OSGi206に、ファイルパスを指定してインストールを依頼する。ここで、ファイルパスは、クイックインストールサービス209から受信したアプリIDを基に作成する。S1602において、OSGi206は、インストール制御サービス207から受信したファイルパスで指示された、仮インストールフォルダに配置されているアプリファイル1552をインストールする。S1603において、OSGi206は、インストールのために、アプリフォルダ603にアプリファイルを「ins0.jar」(1650)という名前でインストールする。インストールが成功した後、S1604において、インストール制御サービス207は、仮インストールフォルダに配置したアプリファイル1552を削除する。以上によりフラグメントバンドルは有効化され、有効状態となる。
以上説明したように、実施例1においては、ホストバンドルとフラグメントバンドルを含むクイックインストールが可能となる。
<実施例2>
実施例2では、既にホストバンドルがインストールされている画像形成装置に、それに対応したフラグメントバンドルをインストールする処理を説明する。ここで、ホストバンドルが開始状態の場合、フラグメントバンドルをインストールするためには、ホストバンドルを一旦停止させる必要がある。フラグメントバンドルのインストール後、再度ホストバンドルを開始状態に戻すことで、ユーザはアプリを利用できるようになる。
図17は、実施例2を説明するブロック図である。この例では、アプリフォルダ603にホストバンドル(host1.jar)1753が開始状態でインストールされているものとする。また、host1.jarは、ログインアプリでないホストバンドルであるとする。USBメモリ801の中のストレージ1702の中に、インストール対象フォルダ850(quickinstall)があり、その配下に、以下の2つのファイルが配置される。即ち、フラグメントバンドル1751(fragment1.jar)と、アプリを復号化するためのライセンスファイル1752(拡張子lic)である。ここで、fragment1.jarのホストバンドルは、host1.jarであるとする。
この画像形成装置130に、USBメモリ801が挿入されると、クイックインストールサービス209は、それをトリガーとし、以下の2つのファイルのインストール処理を開始する。即ち、USBメモリ801の中のインストール対象フォルダ850に含まれるアプリファイル1751とライセンスファイル1752である。このとき、シリアル番号「ABC12345」が割り振られている画像形成装置130に適切なアプリファイルとライセンスファイルのペアを、図11で示す方法により抽出する(S820)。この場合、ペア1703(fragment1.jar/fragment1.lic)が抽出される。クイックインストールサービス209は、フラグメントバンドルグループ1704にこのペア1703をグループ分けする(S1220)。
クイックインストールサービス209は、インストール対象のフラグメントバンドルペア1703のホストバンドルであるホストバンドル1753が開始状態であることを検知し、S1720において停止させる。次に、S1721において、クイックインストールサービス209はペア1703のインストールを行う。インストール完了後、S1722において、クイックインストールサービス209は、ペア1703のフラグメントバンドルを有効化する。最後に、S1723において、クイックインストールサービス209はホストバンドル1753を再度開始させる。この結果、フラグメントバンドルをインストール/有効化するときに、ホストバンドルを停止させる必要がなくなる。
図18は、ホストバンドルの状態を考慮した、フラグメントバンドルを含むクイックインストールサービス209における、クイックインストールのフローチャートである。なお、S1800〜S1805までは、図13で示したS1300〜S1305までと同じ処理であるので説明は省略する。
S1806において、クイックインストールサービス209は、インストールタスクのインストール対象アプリがフラグメントバンドルであるかどうかを判断する。フラグメントバンドルでない場合はS1811に、フラグメントバンドルである場合はS1807に進む。S1807において、クイックインストールサービス209は、ホストバンドルがログインアプリであるかどうかを判断する。ログインアプリである場合はS1811に、ログインアプリでない場合はS1808に進む。
S1808において、クイックインストールサービス209は、ホストバンドルの状態が開始であるか停止であるかを判断する。開始状態である場合はS1809に進み、停止状態である場合はS1811に進む。S1809において、クイックインストールサービス209は、ホストバンドルを停止させ、S1810に進む。S1810において、クイックインストールサービス209は、再開ホストバンドルリストにインストールタスクを登録し、S1811に進む。S1811において、クイックインストールサービス209は、最後のインストールタスクであるかどうかを確認し、他にもインストールタスクが残っている場合は、S1806に戻り、引き続き処理を行う。こうしてインストールタスクリストの全てのインストールタスクのインストールが完了した後、S1813に進む。
S1813〜S1819までは、図13で示したS1307〜S1313までと同じ開始、有効化処理であるので説明は省略する。全てのインストールタスクの開始、有効化処理が完了した後、S1820において、S1809で停止したホストバンドルの再開バンドルリストに登録されているホストバンドルの開始処理を行う。S1821において、最後の再開ホストバンドルタスクであるかどうかを確認し、他にも再開ホストバンドルタスクが残っている場合は、S1820に戻り、引き続き処理を行う。こうして再開ホストバンドルリストの全ての開始処理が完了した後、S1822に進む。S1822において、クイックインストール処理を終了する。
以上説明したように、実施例2においては、ホストバンドルの状態に関係なく、フラグメントバンドルのクイックインストールが可能となる。
<その他の実施例>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (9)

  1. 情報処理装置であって、
    第1の種別のアプリケーションと、前記アプリケーションの機能を拡張するため前記アプリケーションに付加される第2の種別のアプリケーションとを含む複数のアプリケーションを記憶する可搬媒体の接続を検知する検知手段と、
    前記検知手段による検知に応じて、前記第1の種別のアプリケーションを先にインストールし、その後、前記第2の種別のアプリケーションをインストールするという順番を規定したインストールタスクリストを作成する作成手段と、
    前記作成手段により作成されたインストールタスクリストに基づき、前記第1の種別のアプリケーションを先にインストールし、その後、前記第2の種別のアプリケーションをインストールするインストール手段と、
    前記インストール手段によるインストールの後、前記第2の種別のアプリケーションを有効化した後に、前記第1の種別のアプリケーションを開始する制御手段と、
    を有し、
    前記作成手段は、前記第1の種別のアプリケーションおよび前記第2の種別のアプリケーションの夫々のアプリケーションのペアとなる、前記可搬媒体に記憶されたライセンスファイルが前記情報処理装置に対応しているか否か確認し、対応していないライセンスファイルのペアとなる前記第1の種別および/または第2の種別のアプリケーション除外た前記インストールタスクリストを作成することを特徴とする情報処理装置。
  2. 前記可搬媒体に記憶されている複数のアプリケーションのうち、前記第1の種別に属するアプリケーションと、前記第2の種別に属するアプリケーションにグループ分けする手段をさらに有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記インストール手段は、前記第2の種別のアプリケーションを一旦仮インストールすることを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記制御手段は、前記インストール手段が仮インストールした前記第2の種別のアプリケーションを有効化する際に、前記第1の種別のアプリケーションを停止し、停止した前記第1の種別のアプリケーションを前記有効化の後に開始することを特徴とする請求項3に記載の情報処理装置。
  5. 前記インストール手段は、前記第1の種別のアプリケーションが開始されている場合、前記第1の種別のアプリケーションの停止の後、前記第2の種別のアプリケーションをインストールし、前記制御手段は、前記インストールの後、前記第1の種別のアプリケーションを開始することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記制御手段は、前記第1の種別のアプリケーションの開始が前記情報処理装置の再起動を必要とする場合、再起動後に前記第1の種別のアプリケーションを開始する状態にすることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記第1の種別のアプリケーションおよび第2の種別のアプリケーションは、OSGi(Open Services Gateway Initiative)におけるホストバンドルに対応するアプリケーションおよびフラグメントバンドルに対応するアプリケーションであることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 情報処理装置の制御方法であって、
    第1の種別のアプリケーションと、前記アプリケーションの機能を拡張するため前記アプリケーションに付加される第2の種別のアプリケーションとを含む複数のアプリケーションを記憶する可搬媒体の接続を検知する検知ステップと、
    前記検知ステップによる検知に応じて、前記第1の種別のアプリケーションを先にインストールし、その後、前記第2の種別のアプリケーションをインストールするという順番を規定したインストールタスクリストを作成する作成ステップと、
    前記作成ステップにより作成されたインストールタスクリストに基づき、前記第1の種別のアプリケーションを先にインストールし、その後、前記第2の種別のアプリケーションをインストールするインストールステップと、
    前記インストールステップによるインストールの後、前記第2の種別のアプリケーションを有効化した後に、前記第1の種別のアプリケーションを開始する制御ステップと、
    を有し、
    前記作成ステップは、前記第1の種別のアプリケーションおよび前記第2の種別のアプリケーションの夫々のアプリケーションのペアとなる、前記可搬媒体に記憶されたライセンスファイルが前記情報処理装置に対応しているか否か確認し、対応していないライセンスファイルのペアとなる前記第1の種別および/または第2の種別のアプリケーション除外た前記インストールタスクリストを作成することを特徴とする情報処理装置の制御方法。
  9. 請求項1乃至7のいずれか1項に記載の情報処理装置をコンピュータで実現させるためのプログラム。
JP2014265014A 2014-12-26 2014-12-26 情報処理装置、情報処理装置の制御方法およびプログラム Active JP6388405B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014265014A JP6388405B2 (ja) 2014-12-26 2014-12-26 情報処理装置、情報処理装置の制御方法およびプログラム
US14/977,781 US9916149B2 (en) 2014-12-26 2015-12-22 Information processing apparatus, control method for information processing apparatus, and storage medium of program for executing control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014265014A JP6388405B2 (ja) 2014-12-26 2014-12-26 情報処理装置、情報処理装置の制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2016126419A JP2016126419A (ja) 2016-07-11
JP6388405B2 true JP6388405B2 (ja) 2018-09-12

Family

ID=56164253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014265014A Active JP6388405B2 (ja) 2014-12-26 2014-12-26 情報処理装置、情報処理装置の制御方法およびプログラム

Country Status (2)

Country Link
US (1) US9916149B2 (ja)
JP (1) JP6388405B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761827B2 (en) * 2016-11-30 2020-09-01 Vmware, Inc. WIN32 software distribution architecture
JP6935291B2 (ja) * 2017-09-29 2021-09-15 キヤノン株式会社 画像形成装置及びその制御方法
US10855436B2 (en) * 2017-11-09 2020-12-01 Google Llc System and method for automatically synchronizing responses to conditions on devices
JP2020201719A (ja) * 2019-06-10 2020-12-17 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP7342443B2 (ja) * 2019-06-18 2023-09-12 株式会社リコー 情報処理装置、方法、およびプログラム
WO2021124467A1 (ja) * 2019-12-18 2021-06-24 エムオーテックス株式会社 対話型プログラム紹介導入装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346473A (ja) * 2004-06-03 2005-12-15 Canon Inc 情報処理方法、情報処理装置、撮像装置
JP2006178534A (ja) 2004-12-20 2006-07-06 Ntt Docomo Inc 情報処理装置及びドライバソフトのインストール制御方法
EP1816562A1 (en) * 2006-02-03 2007-08-08 Research In Motion Limited System and method for extending a component-based application platform with custom services
US8135685B2 (en) * 2006-09-18 2012-03-13 Emc Corporation Information classification
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
JP4557993B2 (ja) * 2007-02-21 2010-10-06 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US8365164B1 (en) * 2008-02-21 2013-01-29 T-APP Ltd. Portable software applications
JP2011170465A (ja) * 2010-02-16 2011-09-01 Ricoh Co Ltd ソフトウェア配信システム、ソフトウェア配信方法およびプログラム
JP5342522B2 (ja) * 2010-08-26 2013-11-13 株式会社デジタル インストール方法及びプログラム
JP5960005B2 (ja) * 2012-09-18 2016-08-02 キヤノン株式会社 画像形成装置、アプリケーションのプレインストール方法、およびプログラム
JP6057740B2 (ja) * 2013-01-24 2017-01-11 キヤノン株式会社 画像形成装置、情報処理方法及びプログラム
US8739151B1 (en) * 2013-03-15 2014-05-27 Genetec Inc. Computer system using in-service software upgrade
JP6147139B2 (ja) 2013-08-23 2017-06-14 キヤノン株式会社 情報処理装置、その制御方法、及びコンピュータプログラム
US10992747B2 (en) * 2014-02-27 2021-04-27 Clevx, Llc Data storage system with removable device and method of operation thereof

Also Published As

Publication number Publication date
US9916149B2 (en) 2018-03-13
JP2016126419A (ja) 2016-07-11
US20160188310A1 (en) 2016-06-30

Similar Documents

Publication Publication Date Title
JP6388405B2 (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
US11599348B2 (en) Container image building using shared resources
EP3336690B1 (en) Extensible data transformation authoring and validation system
US20200065124A1 (en) Shortening just-in-time code warm up time of docker containers
US10846073B2 (en) Methods, apparatuses, terminals, servers, and systems for container generation
CN109983434A (zh) 用于在操作系统的初始机器配置期间消除重启的系统和方法
US9942433B2 (en) Image forming apparatus and recording medium
CN107704312B (zh) 一种使qemu-kvm虚拟机执行任意命令的方法及存储介质
US8601439B2 (en) Networked program dependency compatibility analysis
JP4938869B2 (ja) Sdk使用制限付加装置及び使用制限付ソフトウェア開発システム
JP6147139B2 (ja) 情報処理装置、その制御方法、及びコンピュータプログラム
EP2953023B1 (en) Information processing apparatus, application management method, and program
US10129418B2 (en) Image forming apparatus having translation data application and non-transitory computer-readable recording medium storing translation data application
JP6403559B2 (ja) 情報処理装置およびその制御方法、並びにプログラム
CN106250068B (zh) 图像形成装置以及应用的删除方法
EP3462363B1 (en) Image forming apparatus and control method therefor
JP6057740B2 (ja) 画像形成装置、情報処理方法及びプログラム
US9940334B2 (en) Image forming apparatus and control method thereof
JP2015197845A (ja) 情報処理装置及びその制御方法、並びにプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170725

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170808

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20171006

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180810

R151 Written notification of patent or utility model registration

Ref document number: 6388405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151