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