(57)【要約】【課題】Ｗｅｂアプリケーションのライセンスの管理を、画像処理装置にインストールされるアプリケーションと同様に行う。【解決手段】画像処理装置にインストールされるアプリケーションとして、ＷｅｂアプリケーションのＵＲＬを含んだデバイスアプリケーションを用意する。そのデバイスアプリケーションを呼び出すと、そのアプリケーションに含まれるＷｅｂアプリケーションのＵＲＬをＷｅｂブラウザに設定して表示する。これによりＷｅｂアプリケーションについてもライセンスを管理する。【選択図】図１３
2018022295.tif 000002
【特許請求の範囲】
【請求項１】
インストールされたアプリケーションプログラムを実行するためのプラットフォーム手段と、
インストールされた前記アプリケーションプログラムのライセンスが有効であるか判定し、有効であると判定された場合には前記アプリケーションプログラムの実行を許すライセンス管理手段とを有し、
前記ライセンス管理手段は、前記ライセンスと共にインストールされた、特定のウエブアプリケーションを呼び出すためのアクセス先情報が固有に関連付けられたアプリケーションプログラムであって、呼び出し指示に応じて、前記アクセス先情報により示されるアクセス先へとアクセスする第１のアプリケーションプログラムのライセンスが有効であるか判定し、有効であると判定された場合には前記第１のアプリケーションプログラムの実行を許すことを特徴とする情報処理装置。
【請求項２】
前記ライセンス管理手段はさらに、前記ライセンスと共にインストールされた、前記情報処理装置の有する機能を利用する第２のアプリケーションプログラムのライセンスが有効であるか判定し、有効であると判定された場合には前記第２のアプリケーションプログラムの実行を許すことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１のアプリケーションプログラムがインストールされていることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
第１のウエブアプリケーションに対応した第１のアプリケーションプログラムと、第１のウエブアプリケーションとは異なる第２のウエブアプリケーションに対応した第１のアプリケーションプログラムが、インストールされていることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
画面を表示する表示手段を更に有し、
指定されたアクセス先へとアクセスし、画面情報を取得して画面に表示するとともに、前記画面での操作を受け付けて前記アクセス先に送信できるブラウザ手段を更に有し、
前記第１のアプリケーションプログラムは、前記ブラウザ手段を用いて前記アクセス先へとアクセスすることを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記プラットフォーム手段は、前記第１のアプリケーションプログラムを実行して前記情報処理装置の追加の情報を取得し、前記ブラウザ手段を用いて前記アクセス先へと前記追加の情報を送信することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記追加の情報は、前記情報処理装置のデバイス情報を含むことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記追加の情報は、電子署名を含むことを特徴とする請求項６または７に記載の情報処理装置。
【請求項９】
前記プラットフォーム手段は、前記第１のアプリケーションプログラムを実行して前記ブラウザ手段の設定を行うことを特徴とする請求項５乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記プラットフォーム手段は、前記第１のアプリケーションプログラムがインストールされた際に、前記第１のアプリケーションプログラムの起動のためのボタンをメニュー画面に追加し、前記呼び出し指示は、前記ボタンの押下をきっかけとすることを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
スキャナ部およびプリンタ部と、
前記スキャナ部および前記プリンタ部それぞれの機能を前記ウエブアプリケーションに対して提供する手段とをさらに有することを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
特定のウエブアプリケーションによるサービスを受けるためのアクセス先を関連付けたデバイスアプリケーションがインストールされ、前記デバイスアプリケーションのライセンス管理を通して前記ウエブアプリケーションのライセンス管理を行うことを特徴とする情報処理装置。
【請求項１３】
インストールされたプログラムのライセンスが有効であるか判定し、有効であると判定された場合には前記プログラムの実行を許すライセンス管理手段を有する情報処理装置にインストールされるプログラムであって、
特定のウエブアプリケーションを呼び出すためのアクセス先情報が固有に関連付けられており、
呼び出し指示に応じて、前記アクセス先情報により示されるアクセス先へとアクセスして前記ウエブアプリケーションを呼び出すよう前記情報処理装置を機能させるためのプログラム。
【請求項１４】
前記情報処理装置はウエブブラウザをさらに有しており、
前記ウエブブラウザを用いて前記アクセス先へとアクセスすること特徴とする請求項１３に記載のプログラム。
【請求項１５】
インストールされたアプリケーションプログラムを実行するためのプラットフォーム手段を有する情報処理装置におけるアプリケーション管理方法であって、
インストールされた前記アプリケーションプログラムのライセンスが有効であるか判定し、有効であると判定された場合には前記アプリケーションプログラムの実行を許すライセンス管理工程を有し、
前記ライセンス管理工程では、前記ライセンスと共にインストールされた、特定のウエブアプリケーションを呼び出すためのアクセス先情報が固有に関連付けられたアプリケーションプログラムであって、呼び出し指示に応じて、前記アクセス先情報により示されるアクセス先へとアクセスする第１のアプリケーションプログラムのライセンスが有効であるか判定し、有効であると判定された場合には前記第１のアプリケーションプログラムの実行を許すことを特徴とするアプリケーション管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びアプリケーション管理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、スキャン機能やプリント機能を備えた複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）には、アプリケーションを複合機内にインストールすることで複合機の機能を拡張できるシステムが普及している。また、複合機毎にアプリケーションのライセンスを管理する仕組みが知られている（例えば特許文献１参照）。
【０００３】
一方、ネットワークで接続されたＷｅｂサーバから提供されるＷｅｂアプリケーションの操作画面を、複合機が備えるＷｅｂブラウザにより表示して、ユーザがその操作画面を操作することが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−４０２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、Ｗｅｂアプリケーションは複合機毎にライセンスを管理する仕組みがなかった。Ｗｅｂアプリケーションを複合機毎にライセンス管理しようとしても、Ｗｅｂアプリケーションは複合機にインストールされるアプリケーションではないため、既存のアプリケーションのライセンス管理の仕組みをそのまま使用することはできないという課題があった。さらに、既存のライセンス管理の仕組みとは別にＷｅｂアプリケーション専用の仕組みを用意する場合、ひとつの複合機に対して、複数の異なるライセンス管理の仕組みを用意することになり、販売者や管理者にとって利便性が低下するという課題があった。
【０００６】
本発明は上記従来例に鑑みて成されたもので、Ｗｅｂアプリケーションのライセンス管理を、情報処理装置にインストールされるアプリケーションと同様に実現できる情報処理装置とアプリケーション管理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は以下の構成を有する。すなわち、その第１の側面によれば、本発明は、インストールされたアプリケーションプログラムを実行するためのプラットフォーム手段と、
インストールされた前記アプリケーションプログラムのライセンスが有効であるか判定し、有効であると判定された場合には前記アプリケーションプログラムの実行を許すライセンス管理手段とを有し、
前記ライセンス管理手段は、前記ライセンスと共にインストールされた、特定のウエブアプリケーションを呼び出すためのアクセス先情報が固有に関連付けられたアプリケーションプログラムであって、呼び出し指示に応じて、前記アクセス先情報により示されるアクセス先へとアクセスする第１のアプリケーションプログラムのライセンスが有効であるか判定し、有効であると判定された場合には前記第１のアプリケーションプログラムの実行を許すことを特徴とする情報処理装置にある。
【０００８】
また第２の側面によれば、本発明は、特定のウエブアプリケーションによるサービスを受けるためのアクセス先を関連付けたデバイスアプリケーションがインストールされ、前記デバイスアプリケーションのライセンス管理を通して前記ウエブアプリケーションのライセンス管理を行うことを特徴とする情報処理装置にある。
【発明の効果】
【０００９】
本発明によれば、Ｗｅｂアプリケーションのライセンス管理を、情報処理装置にインストールされるアプリケーションと同様に実現できるという効果がある。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る情報処理システムの全体構成を示す図。
【図２】実施形態に係るＭＦＰのハードウェア構成を説明するブロック図。
【図３】実施形態に係るライセンス管理サーバのハードウェア構成を示すブロック図。
【図４】実施形態に係るライセンス管理サーバのソフトウェアモジュールの構成を説明するブロック図。
【図５】実施形態に係るＭＦＰアプリ管理テーブルの一例を示す図（Ａ）、ライセンス管理テーブルの一例を示す図（Ｂ）。
【図６】実施形態に係るライセンス管理サーバが発行するライセンスファイルの一例を示す図。
【図７】実施形態に係るＭＦＰのアプリケーション及びソフトウェアモジュールの構成を示す図。
【図８】実施形態に係るＷｅｂ接続用ＭＦＰアプリのソフトウェアモジュールの構成を示す図。
【図９】実施形態に係るＷｅｂ接続用ＭＦＰアプリのマニフェストファイルの一例を示す図。
【図１０】実施形態に係るＷｅｂアプリサーバのソフトウェアモジュールの構成を示す図。
【図１１】実施形態に係るＭＦＰにおける処理の一例を示すフローチャート。
【図１２】実施形態に係るＭＦＰの操作部に表示されるＧＵＩの一例を示す図。
【図１３】本発明の実施形態に係る情報処理システムにおける処理の一例を示すシーケンス図。
【図１４】実施形態に係るＭＦＰにおける処理の一例を示すフローチャート。
【図１５】実施形態に係るＷｅｂアプリサーバにおける処理の一例を示すフローチャート。
【図１６】実施形態に係るローカルＭＦＰアプリのソフトウェアモジュールの構成を示す図。
【図１７】実施形態に係るローカルＭＦＰアプリのマニフェストファイルの一例を示す図。
【図１８】実施形態に係るライセンス情報テーブルの一例を示す図。
【図１９】実施形態に係るＭＦＰにおける処理の一例を示すフローチャート。
【図２０】実施形態に係るＭＦＰにおける処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１２】
本実施形態では、アプリケーションを次のように定義する。ネットワークで接続されたＷｅｂサーバから提供されるタイプのアプリケーションをＷｅｂアプリケーション（あるいはウエブアプリケーション、以降、Ｗｅｂアプリ）と呼ぶ。Ｗｅｂアプリの操作画面は、複合機が備えるＷｅｂブラウザ（ウエブブラウザ）を用いて表示する。一方、複合機にインストールするタイプのアプリケーションをＭＦＰアプリケーション（あるいはデバイスアプリケーション、以降、ＭＦＰアプリ）と呼ぶ。インストールされたＭＦＰアプリは、複合機内にデータ及びプログラムとして格納されている。
【００１３】
●情報処理システム
図１は、本発明の実施形態に係る情報処理システムの全体構成を示す図である。この情報処理システムでは、ＬＡＮ１００を介してＭＦＰ１１０とＰＣ１４０とが接続されており、またこのＬＡＮ１００は、インターネット１５０に接続されている。更にこのインターネット１５０には、ライセンス管理サーバ１２０とＷｅｂアプリサーバ（Ｗｅｂサーバ）１３０が接続されている。
【００１４】
ＭＦＰ１１０は、操作部１１１、スキャナ部１１２、プリンタ部１１３を有する複合機（多機能処理装置）である。実施形態に係るＭＦＰ１１０は、内蔵する（すなわちインストール済みの）Ｗｅｂブラウザを利用してＷｅｂアプリの操作画面を表示及び操作するクライアント端末としても機能する。またＭＦＰ１１０は、Ｗｅｂアプリの指示に応じて、プリンタ部１１３を利用してＷｅｂアプリから取得した画像を印刷でき、スキャナ部１１２を利用して原稿を読み取って得られた画像データをＷｅｂアプリに送信できる。このためにＭＦＰ１１０には、Ｗｅｂアプリに対してデバイス（ＭＦＰのこと）の持つプリンタやスキャナなどの機能を提供するサービスプロバイダを有する。これによりＭＦＰ１１０からアクセスされたＷｅｂアプリは、そのＭＦＰ１１０のサービスプロバイダに対して所望の機能を用いたサービスの提供を要求することができる。尚、この実施形態に係るＭＦＰにはデバイスＩＤという識別子が割り当てられており、この識別子により一意に、各ＭＦＰを特定、認識できる。
【００１５】
ライセンス管理サーバ１２０は、ＭＦＰアプリのライセンスを管理するサーバである。Ｗｅｂアプリサーバ１３０は、Ｗｅｂアプリを実行するサーバである。ＰＣ１４０は、ＭＦＰ１１０に対して各種設定を行うための端末装置として機能している。但し、上述のシステム構成はあくまでも一例であり、これらの機器の数などは、本実施形態に限定されない。
【００１６】
●画像形成装置（ＭＦＰ）のハードウェア
図２は、実施形態に係るＭＦＰ１１０のハードウェア構成を説明するブロック図である。操作部１１１は、タッチパネル機能を有する表示部や各種ハードキー等を有し、制御部２００からのデータに従ってユーザに対して情報を表示したり、ユーザの操作に応じた情報を制御部２００に入力したりする。スキャナ部１１２は、原稿上の画像を読み取って、その画像の画像データを作成して制御部２００に供給する。プリンタ部１１３は、制御部２００から受け取った画像データに基づいて用紙上に画像を印刷する。
【００１７】
制御部２００は、操作部１１１、スキャナ部１１２、プリンタ部１１３と電気的に接続されており、またＬＡＮ１００にもネットワークインターフェース（Ｉ／Ｆ）２０６を介して接続されている。これによりＬＡＮ１００を介した、ＴＣＰ／ＩＰ等の通信プロトコルによる通信が可能となっている。制御部２００において、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、操作部Ｉ／Ｆ２０５、ネットワークＩ／Ｆ２０６、スキャナＩ／Ｆ２０７、画像処理部２０８及びプリンタＩ／Ｆ２０９がシステムバス２１１を介して接続されている。ＣＰＵ２０１は、ＲＯＭ２０２のブートプログラムを実行してＨＤＤ２０４に記憶されたＯＳや制御プログラムをＲＡＭ２０３に展開し、そのプログラムに基づいてこのＭＦＰ１１０を統括的に制御する。この制御には、後述のフローチャートを実現するためのプログラムの実行も含む。ＲＯＭ２０２には、このＭＦＰ１１０のブートプログラムや各種データが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１が動作するためのワークメモリを提供し、また画像データを一時記憶するための画像メモリも提供している。ＨＤＤ２０４はハードディスクドライブであり、ＯＳや各種プログラムや画像データを格納している。操作部Ｉ／Ｆ２０５は、システムバス２１１と操作部１１１とを接続するためのインターフェース部である。ネットワークＩ／Ｆ２０６は、ＬＡＮ１００及びシステムバス２１１に接続し、ネットワークを介して情報の入出力を行う。スキャナＩ／Ｆ２０７は、スキャナ部１１２と制御部２００との間のインターフェースを制御する。画像処理部２０８は、スキャナ部１１２から入力した画像データ、及びプリンタ部１１３に出力する画像データに対して、回転、色変換、画像圧縮／伸張処理などの画像処理を行う。プリンタＩ／Ｆ２０９は、画像処理部２０８で処理された画像データを受け取り、この画像データに付随している属性データに従ってプリンタ部１１３による印刷を制御する。尚、実施形態では、操作部１１１を用いたＵＩ表示が可能なＭＦＰの例で説明するが、このＭＦＰ１１０に代えて、例えば汎用コンピュータ等のような情報処理装置を採用してもよい
●ライセンス管理サーバのハードウェア
図３は、実施形態に係るライセンス管理サーバ１２０のハードウェア構成を示すブロック図である。
【００１８】
ライセンス管理サーバ１２０は、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３、ハードディスクドライブ（ＨＤＤ）３０４、ネットワークＩ／Ｆ３０５を有し、これらはシステムバス３０６を介して互いに通信可能に接続されている。ＲＯＭ３０３はブートプログラムを格納しており、ＣＰＵ３０１は電源オン時に、このブートプログラムを読み出してＨＤＤ３０４にインストールされているＯＳや制御プログラム等をＲＡＭ３０２に展開する。そしてＣＰＵ３０１が、ＲＡＭ３０２に展開したプログラムを実行することにより、このライセンス管理サーバ１２０の機能が実現される。またＣＰＵ３０１は、ネットワークＩ／Ｆ３０５を介して接続されているネットワーク上の他の装置との通信を行う。尚、Ｗｅｂアプリサーバ１３０とＰＣ１４０のハードウェア構成も、図３で示したライセンス管理サーバ１２０のハードウェア構成と同様であるため、その説明を省略する。
【００１９】
●ライセンス管理サーバのソフトウェア
図４は、実施形態に係るライセンス管理サーバ１２０のソフトウェアモジュールの構成を説明するブロック図である。これらモジュールを実現するプログラムはライセンス管理サーバ１２０のＨＤＤ３０４に格納されており、それをＲＡＭ３０２に展開してＣＰＵ３０１が実行することにより、これらモジュールの機能が達成される。
【００２０】
本実施形態に係るライセンス管理サーバ１２０は、ＭＦＰアプリの暗号化、個々のＭＦＰにＭＦＰアプリをインストールするためのライセンスの発行、個々のライセンスを管理するライセンスアクセス番号の発行の３つの処理を行う。
【００２１】
通信部４０１は、ネットワークを介して外部装置と通信して処理要求の受け付けを行い、その処理要求に応じて、ＭＦＰアプリ管理部４０２とライセンス管理部４０４に要求を振り分ける。ＭＦＰアプリ管理部４０２は、暗号化前のＭＦＰアプリを受け取って、そのＭＦＰアプリを暗号化する。ＭＦＰアプリ管理部４０２は、インターネット１５０に接続された端末（不図示）を通じて、アプリケーション開発ベンダーからＭＦＰアプリを受け取る。そして、そのＭＦＰアプリを一意に識別するためのＩＤ（以降、ＭＦＰアプリＩＤ）と、そのＭＦＰアプリの暗号共通鍵を生成してＭＦＰアプリ管理テーブル４０３に登録する。ＭＦＰアプリＩＤは、個々のＭＦＰアプリを識別するための識別情報である。ＭＦＰアプリの暗号共通鍵は、そのＭＦＰアプリを暗号化するための暗号鍵である。そして、その暗号共通鍵を用いてＭＦＰアプリを暗号化し、その暗号化したＭＦＰアプリと、ＭＦＰアプリＩＤとを要求元に送信する。ＭＦＰアプリ管理テーブル４０３は、ＭＦＰアプリ管理部４０２が生成したＭＦＰアプリＩＤとＭＦＰアプリの暗号共通鍵を関連付けて保存するデータベースである。
【００２２】
図５（Ａ）は、実施形態に係るＭＦＰアプリ管理テーブル４０３の一例を示す図である。列５０１は、ＭＦＰアプリＩＤ、列５０２は、ＭＦＰアプリの暗号共通鍵を示している。
【００２３】
ライセンス管理部４０４は、各ＭＦＰにＭＦＰアプリをインストールするためのライセンスの発行を行い、また、ライセンスの発行を行うためのライセンスアクセス番号を管理する。アプリケーションを販売する販売者から、販売対象のＭＦＰアプリに対応するライセンスアクセス番号の発行要求を受け取ると、ライセンス管理部４０４は、そのＭＦＰアプリに対応したライセンスアクセス番号を発行する。そして、そのライセンスアクセス番号をライセンス管理テーブル４０６に登録する。ここでライセンスアクセス番号は、一意にそのＭＦＰアプリの一つのライセンスを管理するための番号であり、アプリケーションの販売者は、前述の暗号化されたＭＦＰアプリと、このライセンスアクセス番号とを併せて販売する。またライセンス管理部４０４は、ＭＦＰアプリの購入者から、ライセンスアクセス番号とデバイスＩＤを受け取ると、その購入者（ユーザ）に対してライセンスを発行する。このライセンスの発行は、ＭＦＰアプリ管理テーブル４０３とライセンス管理テーブル４０６とを参照して、ライセンスアクセス番号に対応したライセンスファイルを作成する処理である。
【００２４】
ここではまず、ライセンス管理部４０４は受け取ったライセンスアクセス番号から対応するＭＦＰアプリＩＤを取得し、ＭＦＰアプリＩＤに紐づくＭＦＰアプリの暗号共通鍵を取得する。そしてライセンスＩＤを発行し、ライセンス管理テーブル４０６にデバイスＩＤとライセンスＩＤとを記録するとともに、これら情報を１つのファイルとしてライセンスファイルを作成する。こうして作成されたライセンスファイルは、ライセンス管理部４０４が内部に保持するライセンスファイルの暗号鍵４０５で暗号化して要求元に送信する。ライセンスファイルの暗号鍵４０５は、公開鍵暗号化方式における公開鍵である。尚、これに対応する秘密鍵は後述するＭＦＰ１１０のソフトウェアに含まれている。ライセンス管理テーブル４０６は、ライセンスに関係する情報を保存するデータベースである。
【００２５】
図５（Ｂ）は、実施形態に係るライセンス管理テーブル４０６の一例を模式的に示す図である。列５１１はＭＦＰアプリＩＤ、列５１２はライセンスアクセス番号、列５１３はライセンスの有効期限を日数で示している。この日数は、ＭＦＰアプリをＭＦＰにインストールした日時から数えて何日間有効であるかを示している。列５１４はデバイスＩＤ（ＭＦＰアプリをインストールしたＭＦＰのＩＤ）、列５１５はライセンスＩＤを示している。行５１６は、ライセンスアクセス番号を発行しているが、ライセンスが未発行のＭＦＰアプリの例であり、ここではデバイスＩＤとライセンスＩＤは空である。行５１７はライセンスを発行済みのＭＦＰアプリの例を示し、デバイスＩＤ（ＤＥＶ００１）とライセンスＩＤ（ＬＩＣ００１）が登録されている。また行５１８もライセンスを発行済みのＭＦＰアプリの例を示し、有効期限は６０日、デバイスＩＤ（ＤＥＶ００２）とライセンスＩＤ（ＬＩＣ００２）が登録されている。
【００２６】
このようにライセンス管理テーブル４０６には、ＭＦＰアプリのＩＤとＭＦＰ１１０のデバイスＩＤとが対応付けて登録されている。このため、このライセンス管理テーブル４０６を参照することにより、どのＭＦＰに、どのＭＦＰアプリのライセンスが発行されているかが分かる。
【００２７】
図６は、実施形態に係るライセンス管理サーバ１２０が発行するライセンスファイルの一例を示す図である。ここでは、図５（Ｂ）のライセンス管理テーブル４０６の行５１８に対応するライセンスファイルの一例を示している。ここでは図５（Ｂ）のライセンス管理テーブル４０６から、ラインセンスＩＤ（ＬＩＣ００２）、ＭＦＰアプリＩＤ（ＡＰＰ７１２），デバイスＩＤ（ＤＥＶ００２）、有効期限（６０日）が得られる。また図５（Ａ）のＭＦＰアプリ管理テーブル４０３から、アプリケーション（ＡＰＰ７１２）の暗号共通鍵（WasiIDcQR6dYj...）が得られている。このようにライセンスファイルは、ライセンス管理部４０４が、ＭＦＰアプリ管理テーブル４０３とライセンス管理テーブル４０６から取得した情報に基づいて作成されている。このようにしてＭＦＰアプリの購入者は、その購入したＭＦＰアプリのライセンスアクセス番号を基に、暗号化されたライセンスファイルを取得することができる。
【００２８】
●ＭＦＰのソフトウェア
図７は、実施形態に係るＭＦＰ１１０のソフトウェアモジュールの構成を示す図である。これらソフトウェアモジュールは、ＭＦＰ１１０のＨＤＤ２０４に格納され、実行時にはＲＡＭ２０３に展開されてＣＰＵ２０１により実行される。なおＭＦＰアプリに関しては、それがアプリケーションプラットフォームにインストールされている場合、アプリケーションプラットフォームにより実行されるものということもできる。この場合にもアプリケーションプラットフォームはソフトウェアモジュールなので、ＣＰＵにより実行されることになる。
【００２９】
インストール処理部７０１は、ＭＦＰアプリのインストールを制御する。インストール処理部７０１は、ネットワークＩ／Ｆ２０６を介してＰＣ１４０に接続され、ＰＣ１４０からの指示によりＭＦＰアプリのインストールを実行する。またインストール処理部７０１は、暗号化されたライセンスファイルを復号化するためのライセンスファイル復号鍵７０２を含んでいる。このライセンスファイル復号鍵７０２は、前述のライセンスファイル暗号鍵４０５に対応している。ＭＦＰアプリ管理部７０３は、ＭＦＰ１１０にインストールされているＭＦＰアプリを管理する。ライセンス情報テーブル７２０は、インストールされたＭＦＰアプリおよびライセンスファイルに関係する情報を保存するデータベースである。
【００３０】
図１８は、実施形態に係るライセンス情報テーブル７２０の一例を模式的に示す図である。このライセンス情報テーブル７２０は、ＭＦＰアプリＩＤ１８０１、ライセンスの有効期限１８０２、ライセンスＩＤ１８０３、ライセンスＩＤ履歴１８０４を保持している。ライセンスＩＤ履歴１８０４は、過去にインストールしたライセンスＩＤの履歴であり、ライセンスの再利用を防止するために保持している。
【００３１】
行１８１１は、ＭＦＰアプリＩＤが「ＡＰＰ７１１」であるＭＦＰアプリに対して、有効期限が無期限のライセンスがライセンスＩＤ「ＬＩＣ０１０」で発行されていることを示している。行１８１２は、ＭＦＰアプリＩＤが「ＡＰＰ７１２」であるＭＦＰアプリに対して、有効期限が２０１６年１２月１０日のライセンスがライセンスＩＤ「ＬＩＣ００２」で発行されていることを示している。また、過去にライセンスＩＤ「ＬＩＣ００３」のライセンスがインストールされたことを示している。行１８１３は、ＭＦＰアプリＩＤが「ＡＰＰ７１３」であるＭＦＰアプリに対して、有効期限が無期限のライセンスがライセンスＩＤ「ＬＩＣ０１１」で発行されていることを示している。
【００３２】
メニューアプリ７０４は、ＭＦＰ１１０にインストールされているＭＦＰアプリを選択して実行させるためのＧＵＩを表示する。Ｗｅｂブラウザ７０５は、Ｗｅｂアプリサーバ１３０と通信を行う。Ｗｅｂブラウザ７０５は、Ｗｅｂアプリサーバ１３０にＨＴＴＰプロトコルを用いて要求を送信し、その要求に応答して返送されるＨＴＭＬデータ（画面情報）をレンダリングして操作部１１１に表示したり、応答されたＪａｖａＳｃｒｉｐｔ（登録商標）を解釈して実行したりする。
【００３３】
次に、ＭＦＰアプリの購入者によるＭＦＰアプリのインストールについて説明する。ユーザはＰＣ１４０を用いて、インストール処理部７０１に対して、暗号化されたアプリケーション（アプリケーションプログラムファイル）と、暗号化されたライセンスファイルを送信する。インストール処理部７０１は、受信したそれぞれのファイルを用いてそのＭＦＰアプリのインストール処理を行う。このときまずインストール処理部７０１はライセンスファイル復号鍵７０２を用いて、ライセンスファイルを復号する。そして、その復号したライセンスファイルに含まれるＭＦＰアプリの暗号共通鍵を用いて、暗号化されたＭＦＰアプリを復号する。こうして復号されたＭＦＰアプリは、アプリケーション管理部７０３に渡されてＨＤＤ２０４に保存される。この時、復号されたライセンスファイルに記載されているデバイスＩＤと、ＭＦＰ１１０に予め設定されているデバイスＩＤとを比較し、正しいライセンスファイルかどうかを判定する。またライセンスファイルに記載されている有効期限と現在の日時とから、そのＭＦＰアプリが無効となる日時を計算し、有効期限日としてＭＦＰアプリ管理部７０３で管理する。
【００３４】
図７では、実施形態の一例としてＡＰＰ７１１、ＡＰＰ７１２、ＡＰＰ７１３の３本のＭＦＰアプリがインストールされているものとする。なお、本実施形態ではＭＦＰアプリとして、Ｗｅｂ接続用ＭＦＰアプリとローカルＭＦＰアプリという２種類のＭＦＰアプリを定義する。また、単にＭＦＰアプリと記述した場合は、Ｗｅｂ接続用ＭＦＰアプリとローカルＭＦＰアプリを総称したものとする。ＡＰＰ７１１とＡＰＰ７１２はＷｅｂ接続用ＭＦＰアプリで、ＡＰＰ７１３はローカルＭＦＰアプリである。
【００３５】
Ｗｅｂ接続用ＭＦＰアプリは、Ｗｅｂサーバに配置されたＷｅｂアプリが提供する機能をＭＦＰ１１０から実行するためのアプリである。Ｗｅｂ接続用ＭＦＰアプリは、Ｗｅｂブラウザ７０５を用いてＷｅｂアプリに接続して、Ｗｅｂアプリが提供する機能をＭＦＰ１１０から実行する。Ｗｅｂ接続用ＭＦＰアプリの詳細は図８で後述する。
【００３６】
一方、ローカルＭＦＰアプリは、ＭＦＰ１１０のスキャナ部１１２、プリンタ部１１３、画像処理部２０８などを利用した機能をソフトウェアモジュールとしてＭＦＰ１１０に提供するアプリである。ローカルＭＦＰアプリは、自身が持つソフトウェアモジュールを呼び出すことで、自身が提供する機能をＭＦＰ１１０で実行する。ローカルＭＦＰアプリの詳細は図１６で後述する。なお、ＭＦＰにインストールされているＭＦＰアプリの種類、本数はＭＦＰごとに異なる。
【００３７】
ＭＦＰアプリは例えばＪＡＶＡ（登録商標）で記述されたプログラムであり、ＭＦＰ１１０に設けたたとえばＪＡＶＡ（登録商標）実行環境などをベースにしたプラットフォームにインストールされる。
【００３８】
●ローカルＭＦＰアプリ
図１６は実施形態に係るローカルＭＦＰアプリのソフトウェアモジュールの構成を示す図である。ローカルＭＦＰアプリは、提供する機能によりソフトウェアモジュールの構成が異なる。図１６では一例として、スキャナ部１１２で読み取った原稿を、ネットワークＩ／Ｆ２０６を通して外部に送信する機能を提供するローカルＭＦＰアプリのソフトウェアモジュール構成を示す。図１６に提示したこれらソフトウェアモジュールは、ＭＦＰ１１０のＨＤＤ２０４に格納され、実行時にはＲＡＭ２０３に展開されてＣＰＵ２０１により実行される。ローカルＭＦＰアプリは、ＭＦＰアプリ管理４０２によるＭＦＰアプリの暗号化に際して暗号化対象とはならないマニフェストファイル１６０１と、暗号化対象となるアプリケーションプログラムファイル本体部とを含む。
【００３９】
マニフェストファイル１６０１は、ＭＦＰアプリがその機能に関わらず含むファイルであり、ＭＦＰアプリの基本情報を記述したファイルである。図１７に実施形態に係るマニフェストファイルの一例を示す。マニフェストファイルにはＭＦＰアプリＩＤ１７０１、アプリケーション名１７０２が定義されている。ＭＦＰアプリＩＤ１７０１は、ＭＦＰアプリ管理テーブル４０３で管理されているものと同じＩＤである。アプリケーション名１７０２は、ＭＦＰアプリの名称を表す。これらの基本情報は、アプリケーションプログラムファイル本体が暗号化されていても復号することなく参照することができる。
【００４０】
アプリケーションプログラムファイル本体には、ＭＦＰアプリの機能に応じた処理モジュールが含まれる。メニューアプリ連携部１６１１は、メニューアプリ７０４と連携するモジュールで、メニューアプリ７０４に、ローカルＭＦＰアプリを呼び出すためのＧＵＩボタンを登録する。スキャナ処理部１６１２は、スキャナ部１１２を用いて原稿を読み取るためのモジュールである。送信処理部１６１３は、スキャナ処理部１６１２が読み取った原稿をネットワークＩ／Ｆ２０６を通して外部へ送信するためのモジュールである。画面処理部１６１４は、ローカルＭＦＰアプリＡＰＰ７１３の操作画面を操作部１１１に表示するためのモジュールである。
【００４１】
ローカルＭＦＰアプリは、アプリごとに実現する機能が異なるため、アプリケーション開発ベンダーがアプリごとに機能を実現するためのソフトウェアモジュールをプログラミングする必要がある。
【００４２】
作成したローカルＭＦＰアプリはライセンス管理サーバ１２０に送信することにより、マニフェストファイル１６０１以外のソフトウェアモジュールが暗号化され、１つのファイルとしてまとめられる。アプリケーション開発ベンダーは、このアプリケーションの暗号化機能を利用することにより、このアプリケーションの中身を第３者が解析するのを防止できる。
【００４３】
●Ｗｅｂ接続用ＭＦＰアプリ
図８は実施形態に係るＷｅｂ接続用ＭＦＰアプリのソフトウェアモジュールの構成を示す図である。Ｗｅｂ接続用ＭＦＰアプリは、Ｗｅｂアプリごとに必要となる設定情報をマニフェストファイル８０１や電子署名用鍵８１５に保持する。つまり、ひとつのＷｅｂアプリに対して、ひとつのＷｅｂ接続用ＭＦＰアプリが必要となる。ＭＦＰ１１０には、使用するＷｅｂアプリに応じたＷｅｂ接続用ＭＦＰアプリをインストールする。複数のＷｅｂアプリを使用する場合、複数のＷｅｂ接続用ＭＦＰアプリをＭＦＰ１１０にインストールする。その場合、複数のＷｅｂ接続用ＭＦＰアプリは、ひとつのＷｅｂブラウザ７０５を共有して使用することになる。Ｗｅｂ接続用ＭＦＰアプリも、ＭＦＰアプリ管理４０２によるＭＦＰアプリの暗号化に際して暗号化対象とはならないマニフェストファイル８０１と、暗号化対象となるアプリケーションプログラムファイル本体部とを含む。図８に提示したこれらソフトウェアモジュールは、ＭＦＰ１１０のＨＤＤ２０４に格納され、実行時にはＲＡＭ２０３に展開されてＣＰＵ２０１により実行される。
【００４４】
マニフェストファイル８０１は、ＭＦＰアプリの基本情報とＷｅｂアプリへ接続するための情報を記述したファイルである。図９に実施形態に係るマニフェストファイルの一例を示す。マニフェストファイルにはＭＦＰアプリＩＤ９０１、アプリケーション名９０２、ＷｅｂアプリケーションＵＲＬ９０３、コンテキストルートＵＲＬ９０４、ＳＳＢ設定９０５、デバイス情報リスト９０６が定義されている。
【００４５】
ＭＦＰアプリＩＤ９０１とアプリケーション名９０２は、図１７で提示したローカルＭＦＰアプリのマニフェストファイル１６０１と同様の定義である。ＷｅｂアプリケーションＵＲＬ９０３、コンテキストルートＵＲＬ９０４、ＳＳＢ設定９０５、デバイス情報リスト９０６は、Ｗｅｂ接続用ＭＦＰアプリ固有の情報である。
【００４６】
ＷｅｂアプリケーションＵＲＬ９０３は、ＷｅｂアプリのトップページのＵＲＬを表す。すなわちＷｅｂアプリケーションＵＲＬ９０３は、Ｗｅｂアプリによるサービスを受けるためのアクセス先情報を示す。コンテキストルートＵＲＬ９０４は、Ｗｅｂアプリの最上位パスを表す。ＳＳＢ（Ｓｉｔｅ  Ｓｐｅｃｉｆｉｃ  Ｂｒｏｗｓｅｒ）設定９０５は、このＭＦＰアプリがＷｅｂアプリに接続する際に、Ｗｅｂブラウザに設定する設定値を表す。ＳＳＢ設定はＷｅｂブラウザのＵＩに関する設定と通信に関する設定を含む。ＷｅｂブラウザのＵＩに関する設定の例として、ツールバーの非表示やＵＲＬ入力の制限、お気に入り追加の制限などがある。通信に関する設定の例として、Ｃｏｏｋｉｅの処理方法、ＨＴＴＰＳ／ＨＴＴＰ混在ページの表示制限、キャッシュの使用可否などがある。Ｗｅｂアプリに接続するＭＦＰアプリ毎に、ＳＳＢ設定を行うことによって、Ｗｅｂアプリ毎に専用のＷｅｂブラウザ設定を行うことができる。ＳＳＢ設定を使用しない場合、マニフェストファイルにＳＳＢ設定９０５を定義しないことも許される。デバイス情報リスト９０６は、Ｗｅｂアプリのトップページを呼び出す際に通知するデバイス情報の一覧を表す。デバイス情報とは、ＭＦＰ１１０に関する情報のことで、例えば、ＭＦＰ１１０の個体や機種を特定する情報、ＭＦＰ１１０で有効なオプション機能、ログインしているユーザ名、ソフトウェアのバージョンなどである。デバイス情報の取得が不要な場合、マニフェストファイルにデバイス情報リスト９０６を定義しないことも許される。マニフェストファイルに記録された情報は、対応するＭＦＰアプリごとに固有に関連付けられた情報である。
【００４７】
アプリケーションプログラムファイル本体において、メニューアプリ連携部８１１は、メニューアプリ７０４と連携するモジュールで、メニューアプリ７０４にＷｅｂ接続用ＭＦＰアプリを呼び出すためのＧＵＩボタンを登録する。Ｗｅｂブラウザ連携部８１２は、Ｗｅｂブラウザ７０５を操作するためのモジュールで、Ｗｅｂブラウザ７０５へＷｅｂアプリのＵＲＬを渡したり、Ｗｅｂブラウザ７０５を操作部１１１の前面に表示したりする。デバイス情報取得部８１３は、デバイス情報リスト９０６で指定されたデバイス情報を取得する。署名処理部８１４は、Ｗｅｂアプリへ接続する際に付加する電子署名を生成する。電子署名は、電子署名用鍵８１５を使って生成する。電子署名は、Ｗｅｂ接続用ＭＦＰアプリからの呼び出しであることをＷｅｂアプリがチェックするために使用する。Ｗｅｂアプリが、このチェックを省略することは自由であり、その場合、電子署名は不要であるため、Ｗｅｂ接続用ＭＦＰアプリは電子署名用鍵８１５を含まない構成となる。
【００４８】
なお、個々のＷｅｂ接続用ＭＦＰアプリで異なるのは、マニフェストファイル８０１の記述と電子署名用鍵８１５のみであり、他のソフトウェアモジュールは全てのＷｅｂ接続用ＭＦＰアプリで同一である。つまり、ソフトウェアモジュールを流用すれば、Ｗｅｂアプリに関する情報を定義するだけで、Ｗｅｂ接続用ＭＦＰアプリを作成することができる。例えば、Ｗｅｂアプリに関する情報を入力すると、Ｗｅｂ接続用ＭＦＰアプリを出力するようなツールを用意することで、簡単にＷｅｂ接続用ＭＦＰアプリを作成することができる。
【００４９】
作成したＷｅｂ接続用ＭＦＰアプリはライセンス管理サーバ１２０に送信することにより、マニフェストファイル８０１以外のソフトウェアモジュール、ファイルが暗号化され、１つのファイルとしてまとめられる。アプリケーション開発ベンダーは、このアプリケーションの暗号化機能を利用することにより、このアプリケーションの中身を第三者が解析するのを防止できる。また内部に含んでいる電子署名用鍵８１５が取り出されるのを防止できる。
【００５０】
●Ｗｅｂアプリサーバのソフトウェア
図１０は、本実施形態に係るＷｅｂアプリサーバ１３０のソフトウェアモジュールの構成を示す図である。これらソフトウェアモジュールは、Ｗｅｂアプリサーバ１３０のＨＤＤ３０４に格納されており、実行時にＲＡＭ３０２に展開されＣＰＵ３０１により実行されることにより、これらソフトウェアモジュールの機能が達成される。
【００５１】
通信部１００１は、ネットワークを介して外部装置と通信して要求の受け付けや応答を行う。Ｗｅｂアプリ処理部１００２は、ＨＴＴＰプロトコルによるＭＦＰ１１０からの要求に応じて、ＭＦＰ１１０のＷｅｂブラウザ７０５により表示されるＨＴＭＬコンテンツを生成したり、ＭＦＰ１１０を操作するためのコンテンツを生成したりする。署名検証部１００３は、図８で示したＷｅｂ接続用ＭＦＰアプリに含まれる電子署名用鍵８１５に対応する電子署名用鍵１００４を含んでおり、この鍵で電子署名した署名情報の検証を行う。電子署名を検証することで、Ｗｅｂ接続用ＭＦＰアプリがインストールされたＭＦＰ１１０からの要求であるかどうかを判断することができる。本実施例では一例として電子署名技術にＨＭＡＣ（Ｈａｓｈ−ｂａｓｅｄ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を用いるものとする。つまり、電子署名用鍵８１５と電子署名用鍵１００４は同一の秘密鍵（共通鍵）である。なお、電子署名は他の技術を用いてもよい。例えば、電子署名技術としてデジタル署名を用いた場合、デジタル署名は公開鍵暗号方式であるため、Ｗｅｂ接続用ＭＦＰアプリの電子署名用鍵８１５は秘密鍵で、Ｗｅｂアプリサーバ１３０の電子署名用鍵１００４はその秘密鍵に対応する公開鍵となる。
【００５２】
●ＭＦＰアプリのインストール処理
図１１は、ＭＦＰ１１０が行うＭＦＰアプリのインストール処理を説明するためのフローチャートである。ＭＦＰ１１０のＨＤＤ２０４に記憶されているプログラムを、ＣＰＵ２０１がＲＡＭ２０３に読み出し、解析、実行することで、図１１のフローチャートの各ステップが実行される。事前準備として、ＭＦＰアプリ購入者は、前述したように、暗号化されたＭＦＰアプリとライセンスアクセス番号をＭＦＰアプリの販売者から受け取り、ライセンス管理サーバ１２０からライセンスファイルを受け取り、ＰＣ１４０に格納しているものとする。
【００５３】
先ずインストール処理部７０１は、ＭＦＰアプリ購入者が操作するＰＣ１４０からインストールの指示として暗号化されたＭＦＰアプリと、暗号化されたライセンスファイルを受け取る（ステップＳ１１０１）。インストール処理部７０１は、ライセンスファイル復号鍵７０２を用いて、受け取ったライセンスファイルを復号する。そして、その復号したライセンスファイルに含まれるＭＦＰアプリの暗号共通鍵を用いて、暗号化されたＭＦＰアプリを復号する（ステップＳ１１０２）。ここでＭＦＰアプリがＷｅｂ接続用ＭＦＰアプリだった場合は、メニューアプリ連携部８１１、Ｗｅｂブラウザ連携部８１２、デバイス情報取得部８１３、署名処理部８１４の各モジュールと、電子署名用鍵８１５のファイルが復号される。また、ＭＦＰアプリがローカルＭＦＰアプリだった場合は、メニューアプリ連携部１６１１、スキャナ処理部１６１２、送信処理部１６１３の各モジュールが復号される。
【００５４】
インストール処理部７０１は、ライセンスファイルとＭＦＰアプリが両方とも復号できたかどうかをチェックする（ステップＳ１１０３）。インストール処理部７０１は、両方とも復号できた場合はステップＳ１１０４へ処理を進める。インストール処理部７０１は、どちらか一方または両方とも復号できなかった場合はエラーを通知（ステップＳ１１１０）して処理を終了する。
【００５５】
ステップＳ１１０４で、インストール処理部７０１は、復号したライセンスファイルに記載されているデバイスＩＤと、ＭＦＰ１１０に予め設定されているデバイスＩＤとを比較し、そのＭＦＰ１１０に適合した正しいライセンスファイルかどうかを判定する。インストール処理部７０１は、ライセンスファイルが正しいと判定すると、ステップＳ１１０５に処理を進める。インストール処理部７０１は、正しいライセンスファイルでないと判定すると、エラーを通知（ステップＳ１１１０）して処理を終了する。
【００５６】
ステップＳ１１０５で、インストール処理部７０１は、ライセンス情報をライセンス情報テーブル７２０に格納する。ライセンス情報とは、ＭＦＰアプリＩＤ、ライセンスＩＤ，ライセンスの有効期限を含む。ここで、インストール処理部７０１は、ライセンスファイルに記録されている有効期限と現在の日時から、ＭＦＰアプリが無効となる日時を計算してライセンスの有効期限として登録する。ライセンスファイルに記録されている有効期限が無期限の場合は、そのまま無期限として登録する。
【００５７】
次にインストール処理部７０１は、復号したＭＦＰアプリとライセンスファイルをＨＤＤ２０４に保存する。続けてインストール処理部７０１は、ＨＤＤ２０４に保存したＭＦＰアプリをＲＡＭ２０３に読み出し、起動する（ステップＳ１１０７）。起動したＭＦＰアプリは、メニューアプリにＭＦＰアプリを呼び出すためのＧＵＩボタンを登録する（ステップＳ１１０８）。このとき、起動したＭＦＰアプリがＷｅｂ接続用ＭＦＰアプリの場合は、メニューアプリ連携部８１１がステップＳ１１０７の処理を行う。一方、起動したＭＦＰアプリがローカルＭＦＰアプリの場合は、メニューアプリ連携部１６１１がステップＳ１１０７の処理を行う。また、操作部１１１に表示する画面を持たず、メニューアプリにＧＵＩボタンを登録する必要がないローカルＭＦＰアプリの場合は、ステップＳ１１０８の処理をスキップする。
【００５８】
図１２は、実施形態に係るＭＦＰ１１０にＭＦＰアプリＡＰＰ７１１、ＡＰＰ７１２、ＡＰＰ７１３をインストールした状態で、ＭＦＰ１１０のメニューアプリ７０４を呼び出したときに操作部１１１に表示されるＧＵＩの一例を示す図である。ＧＵＩボタン１２０１、１２０２、１２０３は、ＭＦＰ１１０に最初から備わっているアプリケーションを呼び出すためのＧＵＩボタンである。
【００５９】
ＧＵＩボタン１２０４は、Ｗｅｂ接続用ＭＦＰアプリＡＰＰ７１１を呼び出すためのＧＵＩボタンである。ＧＵＩボタン１２０５は、Ｗｅｂ接続用ＭＦＰアプリＡＰＰ７１２を呼び出すためのＧＵＩボタンである。ＧＵＩボタン１２０６は、ローカルＭＦＰアプリＡＰＰ７１３を呼び出すためのＧＵＩボタンである。図１２に示したようにメニューアプリ７０４はＭＦＰアプリの種類を区別せずにＧＵＩボタンを表示する。
【００６０】
ＧＵＩボタンは、ライセンスが有効な期間のみ選択可能である。例えば、ＡＰＰ７１２を６０日間有効なライセンスでインストールした場合、インストールしてから６０日目まではＧＵＩボタン１２０５は有効であるが、６１日目からはＧＵＩボタン１２０６は無効となる。ＧＵＩボタン１２０６が無効になると、それに対応するＭＦＰアプリＡＰＰ７１２の呼び出しができなくなるため、Ｗｅｂアプリへの接続もできない。
【００６１】
●メニューアプリによる処理
図１９は、ＭＦＰ１１０にインストールされたメニューアプリ７０４が呼び出し指示を受けたときに行う処理を説明するためのフローチャートである。メニューアプリ７０４は、ＧＵＩボタンに対応するＭＦＰアプリのライセンスを確認し、ライセンスが有効なＭＦＰアプリのボタンのみを選択可能にする。ＭＦＰ１１０のＨＤＤ２０４に記憶されているプログラムを、ＣＰＵ２０１がＲＡＭ２０３に読み出し、解析、実行することで、図１９のフローチャートの各ステップが実行される。
【００６２】
メニューアプリ７０４は呼び出しの指示を受け付ける（ステップＳ１９０１）と、自身に登録されているＧＵＩボタンの一覧をリストアップする（ステップＳ１９０２）。呼び出しの指示は例えばＭＦＰ１１０の起動時やユーザによる所定の操作に応じて出される。次に、メニューアプリ７０４は、リストアップしたＧＵＩボタンの有効性を検証するためにステップＳ１９０３からステップＳ１９０８の処理をＧＵＩボタンごとに繰り返す。
【００６３】
メニューアプリ７０４は、ＧＵＩボタンが最初から備わっているアプリケーションに対応するＧＵＩボタンかどうかを判別する（ステップＳ１９０４）。最初から備わっているアプリケーションに対応するＧＵＩボタンであればステップＳ１９０６へ処理を進め、後からインストールされたＭＦＰアプリに対応するＧＵＩボタンであればステップＳ１９０５へ処理を進める。ステップＳ１９０５で、メニューアプリ７０４はＧＵＩボタンに対応するＭＦＰアプリのライセンス有効期限を、ライセンス情報テーブル７２０を用いて判別する。すなわちライセンスの有効性を判定する。ライセンスが有効期限内であればステップＳ１９０６へ処理を進め、ライセンスが有効期限切れであればステップＳ１９０７へ処理を進める。ステップＳ１９０６で、メニューアプリはＧＵＩボタンを有効にする。一方、ステップＳ１９０７で、メニューアプリはＧＵＩボタンを無効にする。ＧＵＩボタンを無効にする例としては、ＧＵＩボタン自体を非表示にしたり、ＧＵＩボタンは表示するが押下できない状態にしたりする。もしくは、ＧＵＩボタンを押下した後にライセンスの有効期限切れであることのメッセージを表示するようにしてもよい。メニューアプリ７０４は、すべてのＧＵＩボタンの処理が終われば、ステップＳ１９０９へ処理を進める。最後に、メニューアプリ７０４は、図１２で示したメニューアプリの画面を操作部１１１に表示して処理を終了する（ステップＳ１９０９）。メニューアプリにより表示されたＧＵＩボタンが操作されてＭＦＰアプリが実行された後、再度メニュー画面に戻るためにはメニューアプリが呼び出されて図１９が実行される。そのため、メニュー画面が表示される都度、標準でないＭＦＰアプリのライセンスの有効期限がチェックされることになる。
【００６４】
●ローカルＭＦＰアプリによる処理
図２０は、ローカルＭＦＰアプリが図１２に示した画面から呼び出し指示を受けた際の処理を説明するためのフローチャートである。ＭＦＰ１１０のＨＤＤ２０４に記憶されているプログラムを、ＣＰＵ２０１がＲＡＭ２０３に読み出し、解析、実行することで、図２０のフローチャートの各ステップが実行される。ここでは、図１６で示したローカルＭＦＰアプリＡＰＰ７１３が呼び出しをうけた場合を例に説明を行う。
【００６５】
ローカルＭＦＰアプリのメニューアプリ連携部１６１１は、ユーザによるＧＵＩボタン押下を受け取ったメニューアプリ７０４からの呼び出し指示を受け取る（ステップＳ２００１）。次に画面処理部１６１４は、ローカルＭＦＰアプリＡＰＰ７１３の初期画面であるスキャン設定画面を操作部１１１に表示して処理を終了する（ステップＳ２００２）。ここでＳ２００２の処理は、ローカルＭＦＰアプリの機能に応じた処理となる。
【００６６】
●Ｗｅｂアプリの呼び出し及び実行
図１３は、ＭＦＰ１１０からＷｅｂアプリを利用する際の一連の処理の流れを示したシーケンス図である。ここでは例としてメニューアプリ７０４に表示したＧＵＩボタン１２０５がユーザによって選択された場合の処理を説明する。
【００６７】
最初にＭＦＰ１１０のメニューアプリ７０４はユーザによるＧＵＩボタン１２０５の押下を受け付けると、ＧＵＩボタン１２０５に対応したＭＦＰアプリＡＰＰ７１２を呼び出す（ステップＳ１３０１）。呼び出されたＭＦＰアプリＡＰＰ７１２はＭＦＰアプリＡＰＰ７１２のマニフェストファイルに定義された情報に基づいてＷｅｂアプリのトップページを呼び出すために必要な情報を作成する（ステップＳ１３０２）。Ｗｅｂアプリのトップページを呼び出すために必要な情報には、デバイス情報リスト９０６で定義したデバイス情報や電子署名用鍵８１５を用いて作成した電子署名などが含まれる。続いてＭＦＰアプリＡＰＰ７１２は、マニフェストファイルに定義されたＳＳＢ設定７０５を適用した状態のＷｅｂブラウザ７０５を用いて、ステップＳ１３０２で作成した情報に基づきＷｅｂアプリのトップページを呼び出す（ステップＳ１３０３）。
【００６８】
呼び出しを受けて、Ｗｅｂアプリサーバ１３０は、呼び出しに対する検証を行う（ステップＳ１３０４）。呼び出しに対する検証として、例えば、電子署名の正当性をチェックすることで、Ｗｅｂ接続用ＭＦＰアプリＡＰＰ７１２がインストールされたＭＦＰ１１０からの呼び出しであることを確認する。検証の結果を踏まえて、Ｗｅｂアプリサーバ１３０は、呼び出しに対する応答をＭＦＰ１１０（Ｗｅｂブラウザ７０５）に対して行う（ステップＳ１３０５）。この応答にはたとえば検証の結果としてＯＫ（検証成功）あるいはＮＧ（検証失敗）などを示す情報が含まれる。検証の結果がＯＫであれば、Ｗｅｂアプリサーバ１３０は次の操作に必要な画面を構成するためのＨＴＭＬコンテンツを応答する。
【００６９】
Ｗｅｂブラウザ７０５は受け取ったＨＴＭＬをレンダリングし、操作部１１１に画面を表示する（ステップＳ１３０６）。次にＷｅｂブラウザ７０５は、ユーザの画面操作指示を受け取る（ステップＳ１３０７）と、それに対応するリクエストをＨＴＴＰプロトコルでＷｅｂアプリサーバ１３０へ送信する（ステップＳ１３０８）。
【００７０】
リクエストを受け取ったＷｅｂアプリサーバ１３０は、リクエストに対する処理を行い（ステップＳ１３０９）、処理結果にもとに次の画面を構成するためのＨＴＭＬコンテンツをＭＦＰ１１０（Ｗｅｂブラウザ７０５）へ応答する（ステップＳ１３１０）。以降、ステップＳ１３０６からステップＳ１３１０を繰り返すことで、Ｗｅｂアプリの処理および画面遷移を実現する。
【００７１】
図１４は、Ｗｅｂ接続用ＭＦＰアプリがＷｅｂアプリのトップページを呼び出す際の処理を説明するためのフローチャートである。ＭＦＰ１１０のＨＤＤ２０４に記憶されているプログラムを、ＣＰＵ２０１がＲＡＭ２０３に読み出し、解析、実行することで、図１４のフローチャートの各ステップが実行される。図１４のフローチャートは、図１３のステップＳ１３０１からステップＳ１３０３の処理を詳細に説明したものである。図１３のステップＳ１３０１は、図１４ではステップＳ１４０１に相当する。図１３のステップＳ１３０２は、図１４ではステップＳ１４０２からステップＳ１４１１に相当する。図１３のステップＳ１３０３は、図１４ではステップＳ１４１２に相当する。
【００７２】
Ｗｅｂ接続用ＭＦＰアプリのメニューアプリ連携部８１１は、ユーザによるＧＵＩボタン押下を受け取ったメニューアプリ７０４からの呼び出し指示を受け取る（ステップＳ１４０１）。次にＷｅｂブラウザ連携部８１２は、マニフェストファイル８０１からＷｅｂアプリの情報であるトップページＵＲＬ９０３、ＳＳＢ設定９０５、デバイス情報リスト９０６を取得する（ステップＳ１４０２）。なお、Ｗｅｂ接続用ＭＦＰアプリによっては、マニフェストファイル８０１にＳＳＢ設定９０５、デバイス情報リスト９０６が定義されていない場合がある。その場合は、定義されている情報のみを取得する。
【００７３】
デバイス情報取得部８１３は、ステップＳ１４０２でデバイス情報リスト９０６を取得していれば、そのデバイス情報リスト９０６に列挙されているデバイス情報を取得する（ステップＳ１４０３、Ｓ１４０４）。図９に提示したマニフェストファイル８０１に従うと、デバイス情報取得部８１３は、ｕｓｅｒ＿ｉｄ、ｄｅｖｉｃｅ＿ｉｄ、ｄｅｖｉｃｅ＿ｍｏｄｅｌ、ｅｎｃｒｙｐｔ＿ｐｄｆ、ｐｒｉｎｔ＿ｓｅｒｖｉｃｅ＿ｖｅｒに該当するデバイス情報を取得する。ｕｓｅｒ＿ｉｄは、ＭＦＰ１１０にログインしているユーザのＩＤを表す。ｄｅｖｉｃｅ＿ｉｄは、ＭＦＰ１１０のデバイスＩＤを表す。ｄｅｖｉｃｅ＿ｍｏｄｅｌは、ＭＦＰ１１０の機種を表す。ｅｎｃｒｙｐｔ＿ｐｄｆは、暗号化ＰＤＦオプションの装着状況を表す。ｐｒｉｎｔ＿ｓｅｒｖｉｃｅ＿ｖｅｒは、ＷｅｂアプリからＭＦＰ１１０に印刷を依頼するためのＷｅｂＳｅｒｖｉｃｅモジュールのソフトウェアバージョンを表す。図９のデバイス情報リスト９０６は一例であり、取得可能なデバイス情報は、これらに制限されるものではない。
【００７４】
次に、署名処理部８１４は、Ｗｅｂ接続用ＭＦＰアプリに電子署名用鍵８１５が含まれている場合、電子署名を作成する（ステップＳ１４０５、Ｓ１４０６）。署名処理部８１４は、署名用文字列をメッセージ、電子署名用鍵８１５を秘密鍵としてハッシュ関数を用いてメッセージダイジェスト（ＨＭＡＣ値）を算出し、電子署名とする。署名用文字列は、トップページＵＲＬ９０３と、ＭＦＰ１１０のシステム時刻（以降、タイムスタンプ）と、ステップＳ１４０４で取得した取得したデバイス情報があればその情報を文字列として連結したものである。
【００７５】
続いて、Ｗｅｂブラウザ連携部８１２は、Ｗｅｂアプリのトップページを呼び出すためのＵＲＬを組み立てる（ステップＳ１４０７）。Ｗｅｂブラウザ連携部８１２は、ステップＳ１４０４で取得したデバイス情報があれば、その情報をトップページＵＲＬ９０３にクエリ文字列として付加する。さらに、Ｗｅｂブラウザ連携部８１２は、ステップＳ１４０６で取得したタイムスタンプおよび電子署名があれば、それらの情報もトップページＵＲＬ９０３にクエリ文字列として付加する。
【００７６】
Ｗｅｂブラウザ連携部８１２は、ＳＳＢ設定９０５を取得しているか否かを判別し（ステップＳ１４０８）、ＳＳＢ設定を取得していなければ、Ｗｅｂブラウザ７０５のＳＳＢ設定を解除し、Ｗｅｂブラウザの各種設定を初期状態に戻す（ステップＳ１４２０）。一方、Ｗｅｂブラウザ連携部８１２は、ステップＳ１４０２でＳＳＢ設定を取得していればそのＳＳＢ設定をＷｅｂブラウザ７０５へ適用する（ステップＳ１４０９）。図９に提示したＳＳＢ設定９０５に従うと、Ｗｅｂブラウザ連携部８１２は、ｃｏｏｋｉｅ、ａｄｄｒｅｓｓ＿ｂａｒ、ｃａｃｈｅ、ｗａｒｎ＿ｎｏｔ＿ｅｘｉｓｔ＿ｒｏｏｔｃｅｒｔに該当するＳＳＢ設定をＷｅｂブラウザ７０５へ適用する。ｃｏｏｋｉｅ＝ｏｎは、Ｃｏｏｋｉｅ機能を有効にすることを表す。ａｄｄｒｅｓｓ＿ｂａｒ＝ｏｆｆは、ＷｅｂブラウザのＵＩからＵＲＬを入力するためのアドレスバーを非表示にすることを表す。ｃａｃｈｅ＝ｏｆｆは、キャッシュを使用しないことを表す。ｗａｒｎ＿ｎｏｔ＿ｅｘｉｓｔ＿ｒｏｏｔｃｅｒｔ＝ｏｎは、暗号化通信時にルート証明書が存在しない場合の警告表示を有効にすることを表す。図９のＳＳＢ設定９０５は一例であり、指定可能なＳＳＢ設定は、これらに制限されるものではない。
【００７７】
次にＷｅｂブラウザ連携部８１２は、ステップＳ１４０７で組み立てたＵＲＬを接続先としてＷｅｂブラウザ７０５に設定する（ステップＳ１４１０）。Ｗｅｂブラウザ連携部８１２は、操作部１１１の表示をメニューアプリ７０４からＷｅｂブラウザ７０５のＧＵＩウィンドウに切り変える（ステップＳ１４１１）。操作部１１１に表示されたＷｅｂブラウザ７０５は、Ｗｅｂアプリのトップページを呼び出すため、ステップＳ１４１０で設定されたＵＲＬへアクセスする（ステップＳ１４１２）。
【００７８】
以上の処理を実行することによって、メニューアプリ７０４で指示されたＧＵＩボタンに対応するＷｅｂ接続用ＭＦＰアプリが、Ｗｅｂアプリのトップページを呼び出すことができる。
【００７９】
●Ｗｅｂアプリサーバによるリクエストの処理
図１５は、Ｗｅｂアプリサーバ１３０がＭＦＰ１１０からＨＴＴＰによるリクエストを受けた場合に実行する処理を説明するためのフローチャートである。Ｗｅｂアプリサーバ１３０のＨＤＤ３０４に記憶されているプログラムを、ＣＰＵ３０１がＲＡＭ３０３に読み出し、解析、実行することで、図１５のフローチャートの各ステップが実行される。
【００８０】
図１５のフローチャートは、図１３のステップＳ１３０３からＳ１３０５およびステップＳ１３０８からＳ１３１０の処理を詳細に説明したものである。図１３のステップＳ１３０３は、図１５ではステップＳ１５０１からステップＳ１５０２に相当する。図１３のステップＳ１３０４は、図１５ではステップＳ１５０３からステップＳ１５０８に相当する。図１３のステップＳ１３０５は、図１５ではステップＳ１５０９に相当する。図１３のステップＳ１３０８は、図１５ではステップＳ１５０１からステップＳ１５０２に相当する。図１３のステップＳ１３０９は、図１５ではステップＳ１５２０に相当する。図１３のステップＳ１３１０は、図１５ではステップＳ１５０９に相当する。
【００８１】
まず通信部１００１は、ＭＦＰ１１０からＨＴＴＰによるリクエストを受け付ける（ステップＳ１５０１）。次にＷｅｂアプリ処理部１００２は、受け付けたリクエストがトップページの呼び出しか否かを判別し、トップページの呼び出しならステップＳ１５０３へ処理を進め、それ以外ならステップＳ１５２０へ処理を進める（ステップＳ１５０２）。
【００８２】
ステップＳ１５２０で、Ｗｅｂアプリ処理部１００２はステップＳ１５０１で受け取ったリクエストに応じた処理を行う。例えば、スキャン設定画面を呼び出すためのリクエストであれば、スキャン設定画面を構成するＨＴＭＬを生成する。そして、通信部１００１はステップＳ１５２０で処理した結果を、ＭＦＰ１１０へ応答して処理を終了する（ステップＳ１５０９）。
【００８３】
一方、ステップＳ１５０３で、Ｗｅｂアプリ処理部１００２はステップＳ１５０１で受け取ったリクエストに含まれるクエリ文字列を解析して、各項目を取りだす。本実施例では、ここで電子署名、タイムスタンプ、デバイス情報の各項目を取得したものとして、以降の説明を行う。
【００８４】
次に署名検証部１００３は、ステップＳ１５０３で取りだした電子署名の検証を行う（ステップＳ１５０４）。具体的には、署名検証部１００３は、署名用文字列をメッセージ、電子署名用鍵１００４を秘密鍵としてハッシュ関数を用いてメッセージダイジェストを算出し、その値がステップＳ１５０３で取りだした電子署名と一致していれば、有効な署名であるとみなす。署名用文字列は、ステップＳ１５０１で受け取ったリクエストＵＲＬと、ステップＳ１５０３で取りだしたタイムスタンプとデバイス情報を文字列として連結したものである。つまり、ＭＦＰ１１０が図１４のステップＳ１４０６で電子署名を作成するために行った処理と同じ処理を、Ｗｅｂアプリサーバ１３０で行い、その結果が一致するか否かで電子署名の有効性を確認している。ＭＦＰ１１０が持つ電子署名用鍵８１５と、Ｗｅｂアプリサーバ１３０が持つ電子署名用鍵１００４が同じ場合、結果は一致する。結果が一致していれば、Ｗｅｂ接続用ＭＦＰアプリがインストールされたＭＦＰ１１０からのリクエストであるとみなすことができる。
【００８５】
Ｗｅｂアプリ処理部１００２は電子署名が無効であれば、リクエスト元にエラーを応答して処理を終了する（ステップＳ１５３０）。一方、Ｗｅｂアプリ処理部１００２は電子署名が有効であれば、電子署名の検証結果をセッションと紐づけて保存する（ステップＳ１５０６）。電子署名の検証結果をセッションと紐づけて保存することで、以降のリクエストに対する処理において、Ｗｅｂ接続用ＭＦＰアプリがインストールされたＭＦＰ１１０からの通信であると確認することが可能になる。なお、Ｗｅｂアプリによっては、電子署名ではなく別の情報を用いてリクエスト元をチェックするようにしてもよい。その場合、ステップＳ１５０４からＳ１５０６はスキップして、代わりとなる情報をチェックする。例えば、リクエスト元のＩＰアドレスやＷｅｂブラウザのユーザエージェントをチェックするようにしてもいいし、ステップＳ１５０３で取りだしたデバイス情報をチェックするようにしてもよい。
【００８６】
ステップＳ１５０７で、Ｗｅｂアプリ処理部１００２は、ステップＳ１５０３で取りだしたデバイス情報のチェックを行う。ＭＦＰ１１０のデバイス情報を必要としないＷｅｂアプリであれば、このステップは不要である。ＭＦＰ１１０のデバイス情報が必要なＷｅｂアプリであれば、Ｗｅｂアプリ処理部１００２は、デバイス情報をチェックし、問題があればリクエスト元にエラーを応答して処理を終了する（ステップＳ１５３０）。一方、Ｗｅｂアプリ処理部１００２は、デバイス情報に問題がなければ次のステップＳ１５０８へ処理を進める。デバイス情報のチェックの例として、「ユーザＩＤの確認」や「有効なオプション機能の確認」、「ソフトウェアバージョンの確認」などがあげられる。
【００８７】
ステップＳ１５０８で、Ｗｅｂアプリ処理部１００２は、トップページを表示するためのＨＴＭＬコンテンツを生成する。最後に通信部１００１は、ステップＳ１５０８で生成したＨＴＭＬコンテンツを、ＭＦＰ１１０へ応答して処理を終了する（ステップＳ１５０９）。
【００８８】
以上において説明した手順により、Ｗｅｂアプリのライセンス管理を、情報処理装置にインストールされるＭＦＰアプリと同様に実現することが可能となる。複数のローカルＭＦＰアプリをＭＦＰ１１０で使用するためには、それぞれのローカルＭＦＰアプリをＭＦＰ１１０にインストールする必要がある。同様に、複数のＷｅｂアプリをＭＦＰ１１０で使用するためには、それぞれのＷｅｂアプリに対応したＷｅｂ接続用ＭＦＰアプリをＭＦＰ１１０にインストールする必要がある。ＭＦＰアプリをＭＦＰ１１０にインストールするためには、インストールするＭＦＰアプリ毎にライセンスが必要である。ローカルＭＦＰアプリとＷｅｂ接続用ＭＦＰアプリは、どちらもＭＦＰアプリであるため、同様のライセンス管理を実現することが可能となる。また、Ｗｅｂアプリのライセンス管理をサーバ側で行ったり、ＭＦＰにＷｅｂアプリ専用のライセンス管理の仕組みを用意したりする場合に比べ、ＭＦＰアプリのラインセスという統一した形でライセンス管理を行うことができ、販売者や管理者の利便性が向上する。
【００８９】
［その他の実施例］
なお上記実施形態ではＷｅｂ接続用ＭＦＰアプリはＷｅｂブラウザを呼び出すものとしたが、Ｗｅｂブラウザの呼び出しは、たとえばＷｅｂＶｉｅｗを用いてもよい。ＷｅｂＶｉｅｗを用いることで、アプリケーションの中からＷｅｂブラウザの機能を呼び出すことができる。
また本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９０】
１１０  ＭＦＰ、１２０  ライセンス管理サーバー、１３０  Ｗｅｂアプリサーバー、１４０  ＰＣ、４０２  ＭＦＰアプリ管理部、４０４  ライセンス管理部、７０３  ＭＦＰアプリ管理部、７２０  ライセンス情報テーブル
【図１】
2018022295.tif 000003
【図２】
2018022295.tif 000004
【図３】
2018022295.tif 000005
【図４】
2018022295.tif 000006
【図５】
2018022295.tif 000007
【図６】
2018022295.tif 000008
【図７】
2018022295.tif 000009
【図８】
2018022295.tif 000010
【図９】
2018022295.tif 000011
【図１０】
2018022295.tif 000012
【図１１】
2018022295.tif 000013
【図１２】
2018022295.tif 000014
【図１３】
2018022295.tif 000015
【図１４】
2018022295.tif 000016
【図１５】
2018022295.tif 000017
【図１６】
2018022295.tif 000018
【図１７】
2018022295.tif 000019
【図１８】
2018022295.tif 000020
【図１９】
2018022295.tif 000021
【図２０】
2018022295.tif 000022