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