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