(57)【要約】【課題】外部サービス、および外部サービスを提供する外部サーバー側に特別な管理機能を設けることなく、外部サービスによる画像処理装置の利用を管理する。【解決手段】画像処理装置によるサービスを提供するためのサービスプロバイダーと、外部装置に対してサービスの提供を要求するアプリケーションおよびＷｅｂブラウザーとを有し、Ｗｅｂブラウザーは、サービスの要求先のＷｅｂアプリケーションのＵＲＬを登録するＵＲＬ登録部を含み、Ｗｅｂアプリケーションからのサービスの提供の要求を受信した際に、サービスプロバイダーは、サービスの提供の要求元のＷｅｂアプリケーションのＵＲＬが登録されているか否か判定し、登録されている場合には要求されたサービスを提供し、登録されていない場合にはサービスの提供を拒否する。【選択図】図５
2018019240.tif 000002
【特許請求の範囲】
【請求項１】
外部装置と接続可能な画像処理装置であって、
前記画像処理装置によるサービスを提供するためのサービス提供手段と、
外部装置に対してサービスの提供を要求するサービス要求手段と
を有し、
前記サービス要求手段は、サービスの要求先の識別情報を登録する登録手段を含み、
前記外部装置からのサービスの提供の要求を受信した際に、前記サービス提供手段は、前記外部装置からのサービスの提供の要求の要求元の識別情報が、前記登録手段により登録されているか否か判定し、登録されている場合には要求されたサービスを提供し、登録されていない場合にはサービスの提供を拒否する
ことを特徴とする画像処理装置。
【請求項２】
前記サービス要求手段は、前記外部装置が提供するアプリケーションに対してサービスを要求し、前記登録手段は、前記外部装置が提供する前記アプリケーションの識別情報を登録することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記識別情報は前記外部装置が提供する前記アプリケーションのＵＲＬであることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
表示および操作を行うための操作表示手段を更に有し、
前記操作表示手段は、前記外部装置が提供する前記アプリケーションから受信した画面情報に基づいて操作画面を表示し、
前記サービス要求手段は、前記操作表示手段により表示された前記操作画面の操作に応じた前記外部装置が提供する前記アプリケーションに対して、サービスの提供を要求することを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記サービス提供手段は、前記画像処理装置のハードウェアを用いたサービスを提供することを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記ハードウェアには、プリンターおよびスキャナまたはそのいずれかを含むことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
アプリケーションをインストール可能であり、
前記サービス要求手段は、インストールされた前記アプリケーションによる要求に基づいて前記外部装置に対してサービスの提供を要求することを特徴とする請求項１乃至６のいずれか一項に記載の画像処理装置。
【請求項８】
前記登録手段はさらに、前記サービスの要求元である前記アプリケーションに対して許可された前記画像処理装置によるサービスを、前記サービスの要求先の前記識別情報に関連付けて登録し、
前記サービス提供手段は、前記サービスの提供の要求元の識別情報と前記登録手段により登録され、要求された前記サービスが、登録された前記識別情報に関連づけて登録されている場合に、要求されたサービスを提供することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記アプリケーションの実行を終了した場合に、前記登録手段により登録された情報を削除することを特徴とする請求項７または８に記載の画像処理装置。
【請求項１０】
請求項１乃至９のいずれか一項に記載の画像処理装置としてコンピュータを機能させるためのプログラム。
【請求項１１】
外部装置と接続可能な画像処理装置の制御方法であって、
前記画像処理装置によるサービスを提供するためのサービス提供工程と、
外部装置に対してサービスの提供を要求するサービス要求工程と
を有し、
前記サービス要求工程は、サービスの要求先の識別情報を登録する登録工程を含み、
前記外部装置からのサービスの提供の要求を受信した際に、前記サービス提供工程では、前記外部装置からのサービスの提供の要求の要求元の識別情報が、前記登録工程により登録されているか否か判定し、登録されている場合には要求されたサービスを提供し、登録されていない場合にはサービスの提供を拒否する
ことを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および、画像処理装置の制御方法およびプログラムに関するものである。
【背景技術】
【０００２】
近年、画像処理装置にソフトウェアをインストールさせて機能を拡張させる環境が整備されてきている。このようなソフトウェア（以下、「アプリケーション」）は画像処理装置外部のサービスと連携し、画像処理装置の機能を拡張することが可能になっている。例えば、画像処理装置のコピーに関して、画像処理装置固有の機能より高度な設定を可能とする等である。拡張が容易になったことにより、動作保障できない外部サービスとの組み合わせによる不具合の発生や、悪意のある外部サービスによる不正利用が懸念される。画像処理装置と連携する外部サービスを制限する従来技術として、アプリケーションにアクセス先を示すアクセス先情報を含む、アクセス可否を判断するための情報を付加し、画像処理装置が保持するアクセス許可リストに登録する方法が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2015-176382号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１で開示している方法では、画像形成装置にインストールされた本体アプリケーションが外部サービスと通信する際に、そのアクセス先をアクセス許可リスト記載のアクセス先情報（ＵＲＬ等）と照合し、外部サービスがアクセス許可リストに存在すると、外部サービスとのアクセスを許可していた。すなわち、アクセス許可リスト記載のアクセス先情報で示される外部サービスと連携が可能になる。
【０００５】
しかしながら、アクセス許可リスト記載のアクセス先情報は、本体アプリケーションが保持しているアクセス先情報を転記したものであり、本体アプリケーションは、予め決められたアクセス先リストに掲載された外部サービスに限って連携することができ、任意の外部サービスと連携できるものではなかった。たとえば、外部サービス提供元で、外部サービスへのアクセス先を変更すると、変更したアクセス先とは連携ができない。
【０００６】
また、特許文献１で開示している方法では、外部サービスと通信を開始する際にアクセス先の検証を行い、一旦外部サービスとのアクセス許可が下りたあとの検証はしていない。よって、一旦外部サービスとのアクセス許可が下りると、許可されていないアクセス先情報（ＵＲＬ等）からのサービスとの連携が出来てしまう。つまり、許可されていない外部サービスによってデバイスを使用されてしまうおそれがあった。
【０００７】
本発明は、上記問題に鑑みてなされたものであり、外部サービス、および外部サービスを提供する外部サーバー側に特別な管理機能を設けることなく、外部サービスによる画像処理装置の利用を管理することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明は以下の構成を有する。
【０００９】
外部装置と接続可能な画像処理装置であって、
前記画像処理装置によるサービスを提供するためのサービス提供手段と、
外部装置に対してサービスの提供を要求するサービス要求手段と
を有し、
前記サービス要求手段は、サービスの要求先の識別情報を登録する登録手段を含み、
前記外部装置からのサービスの提供の要求を受信した際に、前記サービス提供手段は、前記外部装置からのサービスの提供の要求の要求元の識別情報が、前記登録手段により登録されているか否か判定し、登録されている場合には要求されたサービスを提供し、登録されていない場合にはサービスの提供を拒否することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画像処理装置に外部サービス、および外部サービスを提供する外部サーバー側に特別な管理機能を設けることなく、外部サービスによる画像処理装置の利用を管理できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の好適な実施の形態に係る、画像処理装置の一例であるＭＦＰを備えるネットワークシステムを構成する図である。
【図２】画像処理装置（ＭＦＰ）の装置構成例を示すブロック図である。
【図３】本発明のソフトウェア構成を示すブロック図である。
【図４】本発明の画像処理装置とＷｅｂサーバーのソフトウェア構成例を示すブロック図である。
【図５】本発明の画像処理システムのシーケンス図である。
【図６】本発明の実施の形態における画像処理システムの基本フローである。
【図７】本発明の第一の実施の形態におけるサービスプロバイダーの基本フローである。
【図８】本発明のアプリケーションの構造の一例を示す図である。
【図９】本発明のＵＲＬリストの一例を示す図である。
【図１０】本発明のアプリケーション画面の一例を示す図である。
【図１１】本発明の第一の実施の形態におけるＵＲＬ登録処理の基本フローである。
【図１２】本発明の第二の実施の形態におけるＵＲＬ登録処理の基本フローである
【図１３】本発明の第二の実施の形態におけるサービスプロバイダーの基本フローである
【発明を実施するための形態】
【００１２】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１３】
［第一の実施形態］
図１は、本発明の好適な実施の形態に係る画像処理装置を備えるネットワークシステムを構成する図である。図１中、Ｗｅｂサーバー１００は、外部サービスを提供する情報処理装置である。このＷｅｂサーバー１００には、サービスとしてのＷｅｂアプリケーション１０１を有する。Ｗｅｂアプリケーション１０１は、後述のＷｅｂブラウザーの指示に基づき、Ｗｅｂブラウザーにコンテンツ情報を送付する。管理装置１０２はシステムの管理を司る情報処理装置である。ネットワークシステムの管理者は、管理装置１０２を用い、複合機（ＭＦＰ）１１０の設定および／または管理や、アプリケーションのインストールを行う。ＭＦＰ１１０は画像処理装置であり、各種アプリケーションをインストールすることが可能なデバイスである。各種アプリケーションが動作可能なあらゆる情報処理装置が、本実施形態におけるデバイスになり得る。本実施形態では、説明の簡便のため、プリンター部、スキャナ部等の複数の機能を持つ複合機（ＭＦＰ）をデバイスの例とする。以降の説明において、ＭＦＰとは、アプリケーションをインストールできる画像処理装置を指す。ネットワーク１２０はインターネットなどのネットワークである。ＭＦＰ１１０は、ネットワーク１２０を介して、Ｗｅｂサーバー１００、管理装置１０２や図示しない情報処理装置と接続可能である。
【００１４】
＜画像処理装置の構成＞
図２はＭＦＰの装置構成例を示すブロック図である。図２において、制御部２０８は、ＣＰＵ２１０、ＲＯＭ２１１、及びＲＡＭ２１２を含み、ＭＦＰ１１０全体の動作を制御する。ＣＰＵ２１０は、ＲＯＭ２１１に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理を実行する。ＲＡＭ２１２は、ＣＰＵ２１０の主メモリ、ワークエリア等の一時記憶領域として用いられる。また、制御部２０８は、機能部２０１と接続され、機能部２０１に含まれた操作表示部２０２、スキャナ部２０３、及びプリンター部２０４の動作を制御する。
【００１５】
操作表示部２０２には、タッチパネル機能を有する液晶等の表示部やキーボード等が配置されている。スキャナ部２０３は、原稿の画像を読み取って画像データを生成し、制御部２０８に出力する。プリンター部２０４は、制御部２０８から出力された画像データを印刷する。インターフェース部２０６は、制御部２０８をネットワーク１２０に接続して外部の情報処理装置（不図示）から印刷用の画像データを受信したり、操作表示部２０２で表示する画面データを受信したりする。ＨＤＤ２０９は、画像データや各種プログラムを記憶する。なお、外部の情報処理装置から受信した印刷用の画像データは、画像メモリ２０７に一時的に格納され、制御部２０８を介してプリンター部２０４により印刷される。
【００１６】
＜画像処理装置のソフトウェア＞
図３は、本実施形態におけるＭＦＰ１１０のソフトウェア構造の一例を示す図である。図３に示される各ソフトウェアは、ＲＯＭ２１１あるいはＨＤＤ２０９に格納され、ＣＰＵ２１０によって実行される。
【００１７】
ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）３０１は、一般的にはリアルタイムＯＳが使用されるが、Ｌｉｎｕｘ（登録商標）等の汎用ＯＳを用いても良い。ＪａｖａＶＭ３０２は、Ｊａｖａ（登録商標）などの仮想マシンであり、アプリケーションの実行環境を提供する。アプリケーションフレームワーク３０３は、アプリケーションのライフサイクルを管理する機能を提供する。アプリケーションフレームワークはまた、その上にアプリケーションプログラム（すなわちアプリケーション）がインストール可能であり、インストールされたアプリケーションが実行されることからアプリケーションプラットフォームと呼ばれることもある。
【００１８】
Ｎａｔｉｖｅ機能部３０４は、ＭＦＰ１１０に組み込まれた機能を提供する。Ｎａｔｉｖｅ機能部３０４が提供する機能をデバイスサービスと呼ぶ。デバイスサービスの例として、インターフェース部２０６を介して受信した印刷データに基づき、プリンター部２０４で印刷する印刷機能がある。もちろんこれは一例であって、たとえば機能部２０１で提供されるスキャナ部２０３やプリンター部２０４、あるいはインターフェース部１０４、ＨＤＤ２０９等を用いた機能は、デバイスサービスとしてＮａｔｉｖｅ機能部３０４により提供し得る。
【００１９】
Ｗｅｂブラウザー部３０５は、ＭＦＰ１１０に搭載されたウェブブラウザを機能させるアプリケーションである。Ｗｅｂブラウザー部３０５は操作表示部２０２にハイパーテキスト型の情報の表示や、操作表示部２０２から入力された操作情報等のＷｅｂサーバー１００への送信等を行うことができる。また、Ｗｅｂブラウザー部３０５は、アプリケーションからの依頼により、アプリケーションから渡されたＵＲＬ情報で指定されるＷｅｂアプリケーションと通信を行い、Ｗｅｂアプリケーションから画面情報を含むデータを受け取り、アプリケーション３０７に渡すことができる。Ｗｅｂアプリケーションの利用は、たとえばＯＳ３０１が提供するＷｅｂＶｉｅｗと呼ばれる機能をアプリケーションから呼び出すことにより実現することもできる。ＷｅｂＶｉｅｗは、ＯＳ３０５が提供しているＷｅｂブラウザー３０５の構成要素を用いて実現されるので、Ｗｅｂブラウザー３０５とほぼ同等の機能を実現できる。このため、Ｗｅｂブラウザー３０５に代えてＷｅｂＶｉｅｗをアプリケーションから利用する場合でも、本実施形態の「Ｗｅｂブラウザー３０５」を「ＷｅｂＶｉｅｗ」と読み替えれば、本実施形態に係る特徴的な機能を実現できる。
【００２０】
インストーラサービス３０６は、一つまたは複数のアプリケーションを、アプリケーションフレームワーク３０３に登録することでインストール処理を行う。本システムで管理されるアプリケーションを有効化するためには、ＭＦＰ１１０へライセンスファイルのインストールを必要とする。ライセンスファイルをインストールしないとアプリケーションは、図示しないアプリケーション管理機能によって動作を停止させられる。ライセンスファイルには、対象アプリケーションの識別情報と、アプリケーションのインストール先のＭＦＰを識別する情報を埋め込む。ＭＦＰを識別する情報とは、例えばＭＦＰのシリアルナンバーである。複数のＭＦＰに対して同じひとつのアプリケーションをインストールするには、該当するＭＦＰの識別情報を埋め込んだライセンスファイルをそれぞれのＭＦＰへインストールすることが必要となる。これにより、ソフトウェアの無断複製の防止可能となっている。
【００２１】
アプリケーション３０７は、インストーラサービス３０６によってインストールされたアプリケーションである。アプリケーション３０７は、予め備えられた（すなわちコーディングされた）、または、操作表示部２０２を介しユーザーから通知されたＷｅｂアプリケーションを特定するための特定情報たとえばＵＲＬ情報をＷｅｂブラウザー３０５に渡す。Ｗｅｂブラウザー３０５は、渡されたＵＲＬ情報を元に、Ｗｅｂアプリケーションと通信を行い、Ｗｅｂアプリケーションから画面情報を含むデータを受け取り、アプリケーション３０７に渡す。アプリケーション３０７は受け取ったデータを元に、操作表示部２０２に画面表示する。
【００２２】
サービスプロバイダー３０８は、Ｎａｔｉｖｅ機能部３０４が提供するデバイスサービスを利用したジョブの実行指示を、Ｗｅｂブラウザー３０５を介して受け付ける。例えば、Ｗｅｂブラウザー３０５を介して印刷の指示を受けると、サービスプロバイダー３０８は、Ｎａｔｉｖｅ機能部３０４を介し、プリンター部２０４の制御を行い、印刷ジョブの実行を行うことができる。
【００２３】
なお、本実施形態では、ＪａｖａＶＭ３０２、アプリケーションフレームワーク３０３、インストーラサービス３０６、Ｗｅｂブラウザー３０５、アプリケーション３０７、サービスプロバイダー３０８はＨＤＤ２０９に格納されているものとする。また、Ｎａｔｉｖｅ機能３０４はＲＯＭ２１０に格納されているものとする。
【００２４】
＜Ｗｅｂサーバー及びＭＦＰのソフトウェア＞
図４は、本発明の第一の実施形態における画像処理装置（ＭＦＰ１１０）とＷｅｂサーバー１００のソフトウェア構成例、特にそれらの連携を示すブロック図である。図４記載の各機能部は、ＭＦＰ１１０についてはＭＦＰ１１０が有しているＣＰＵ２１０が、Ｗｅｂサーバー１００についてはＷｅｂサーバー１００が有している図示しないＣＰＵが制御プログラムを実行することにより実現される。なお、以下では、画像処理システムのソフトウェア構成について説明するが、これらの機能ブロックはハードウェアや、ハードウェアとソフトウェアの組み合わせによって実現されてもよい。
【００２５】
Ｗｅｂブラウザー３０５及びサービスプロバイダー３０８及びアプリケーション３０７のそれぞれは、ＭＦＰ１１０が有しているＣＰＵ２０１が制御プログラムを実行することにより実現される。なお、Ｗｅｂブラウザー３０５は、Ｗｅｂサーバー１００のコンテンツを表示するものに限定するものではない。同様に、Ｗｅｂサーバー１００もＨＴＴＰプロトコルに従ってリクエスト／レスポンスを送受信するＷｅｂサーバーに限定するものではない。したがって、Ｗｅｂブラウザー３０５は、任意のサーバーと通信を行うことによってコンテンツを取得し、画面に表示するといった機能を有するものであればよい。ここで、コンテンツとは、ＭＦＰ１１０が操作表示部２０２に表示する表示画面の情報を示す。
【００２６】
Ｗｅｂサーバー１００は、Ｗｅｂアプリケーション１０１と通信部４１３とを有している。さらに、Ｗｅｂアプリケーション１０１は、プレゼンテーション部４１１とロジック部４１２を有している。プレゼンテーション部４１１は、通信部４１３を介して、ＭＦＰ１０１のＷｅｂブラウザー３０５からのリクエストを受信する。さらに、ＭＦＰ１０１のＷｅｂブラウザー３０５で表示する操作画面や結果画面、またはサービスプロバイダー３０８への処理要求を、ＭＦＰ１０１にレスポンスとして送信する。また、ＭＦＰ１０１のＷｅｂブラウザー３０５に表示された操作画面を介して入力されたユーザーからの入力情報を、通信部４１３を介してＭＦＰ１０１から受け取る。ロジック部４１２は、プレゼンテーション部４１１から渡されたＭＦＰ１０１からのユーザーによる入力情報に対して処理を行う。例えば、ユーザーからの入力に応じて、表示すべき画面の更新や、ＭＦＰ１０１のデバイスサービス実行のための処理要求を作成する。通信部４１３は、ＨＴＴＰプロトコル等のプロトコル制御を行う通信ソフトウェアモジュールである。
【００２７】
ここで本実施形態のＷｅｂアプリケーション１０１は、サービスの一つとしてＭＦＰを用いた印刷やスキャン等を提供する。また本実施形態では、それらのサービスに含まれる印刷やスキャンは、それらのサービスを要求する要求元のＭＦＰにより実行される。そのためたＭＦＰはＷｅｂアプリケーション１０１からの要求に応じて外部にスキャナ部２０３やプリンター部２０４によるデバイスサービスを提供している。Ｗｅｂアプリケーション１０１は、印刷サービスやスキャンサービスの要求をＭＦＰから受信すると、印刷やスキャンの実行をその要求元ＭＦＰに要求する。
【００２８】
ＭＦＰ１１０は、Ｗｅｂブラウザー３０５、サービスプロバイダー３０８、アプリケーション３０７、およびＵＲＬリスト４４０を有している。Ｗｅｂブラウザー３０５は、通信部４２１、解析部４２２、画面表示部４２３およびＵＲＬ登録部４２４を備える。
【００２９】
通信部４２１は、ＨＴＴＰプロトコルに従って、Ｗｅｂサーバー１００のＷｅｂアプリケーション１０１におけるプレゼンテーション部４１１と通信を行う。より具体的には、通信部４２１は、操作表示部２０２に表示した操作画面を介して入力される情報をＷｅｂアプリケーション１０１に対するリクエストとして送信する。また、通信部４２１は、Ｗｅｂアプリケーション１０１から送信されるレスポンス（処理結果）を受信する。Ｗｅｂブラウザー３０５がリクエスト送信およびレスポンス受信を行っている相手先であるＷｅｂアプリケーション１０１のアドレス（ＵＲＬ）はＷｅｂブラウザー３０５内部で保持している。インストール済のアプリケーションや後述のサービスプロバイダー３０８からの求めに応じ、いつでも提供可能とする。
【００３０】
解析部４２２は、Ｗｅｂアプリケーション１０１から受信したレスポンスを解析する。レスポンスの中にはＷｅｂブラウザー３０５に表示すべき操作画面の内容を示す記述であるＨＴＭＬデータが含まれている。画面表示部４２３は、表示制御手段として機能し、解析部４２２によるＨＴＭＬデータ（表示画面情報）の解析結果に基づいて、操作表示部２０２に操作画面を表示する。
【００３１】
ＵＲＬ登録部４２４は、Ｗｅｂブラウザー３０５がリクエストを送信する相手先のＷｅｂアプリケーション１０１のアドレス（ＵＲＬ）をＵＲＬリスト４４０に登録する。登録したＵＲＬは外部からのサービス提供要求（あるいはサービス要求）の検証のために利用されるので、ＵＲＬの登録はリクエストに先立って行うことが望ましい。ＵＲＬリスト４４０に登録されたＵＲＬは、インストール済のアプリケーションや後述のサービスプロバイダー３０８により参照できる。
【００３２】
ＵＲＬリスト４４０は、ＨＤＤ２０９等の記憶装置に備えられた、Ｗｅｂブラウザー３０５やサービスプロバイダー３０８から参照可能な情報であり、ＵＲＬ検証部４３４によって、ジョブの実行許可の判断基準として使われる。
【００３３】
サービスプロバイダー３０８は、通信部４３１、ジョブ生成部４３２、コンテンツ生成部４３３、及びＵＲＬ検証部４３４を備える。通信部４３１は、Ｗｅｂアプリケーション１０１内のロジック部４１２から処理依頼を受け付ける。また、通信部４３１は、ＭＦＰ１１０の通信部４２１からリクエストを受けた場合、後述のコンテンツ生成部４３３によって生成されたコンテンツ情報（ＨＴＭＬデータ）をレスポンスとして返す。ジョブ生成部４３２は、通信部４３１が受け付けた処理依頼を受け取り、依頼された処理を実行するためのジョブを生成して実行する。コンテンツ生成部４３３は、通信部４３１がＭＦＰ１１０の通信部４２１からリクエストを受けた場合に、Ｗｅｂブラウザー３０５が画面表示を行うためのコンテンツ情報（ＨＴＭＬデータ）を生成する。また、コンテンツ生成部４３３は、動的にコンテンツを生成せず、ＨＤＤ２０９等の記憶装置に予め記憶したコンテンツを参照して使用してもよい。ＵＲＬ検証部４３４は、通信部４３１が、Ｗｅｂアプリケーション１０１などの外部装置からの処理依頼を受けたときに、依頼元のＵＲＬがＵＲＬリスト４４０に含まれるか判定し、含まれる場合はジョブ生成部４３２にジョブの生成を許可する。一致しない場合は、ジョブの生成を許可しない。なおＨＴＴＰリクエストにはＵＲＬが含まれるものの、ＨＴＴＰレスポンスにはＵＲＬは通常含まれない。そこで画像処理装置１００から送信したＨＴＴＰリクエストに対するＨＴＴＰレスポンスで処理依頼を行う場合には、ＳＯＡＰメッセージをＨＴＴＰレスポンスで送信し、ＳＯＡＰメッセージにＵＲＬを含める。ＳＯＡＰは、オブジェクト間通信あるいは遠隔手続呼出しのための、ＸＭＬをベースとしたプロトコルであり、たとえばＨＴＴＰなどの通信プロトコルを介してＷｅｂサービスの利用を実現できる。
【００３４】
＜アプリケーションファイル＞
図８（ａ）を用いて、アプリケーションファイルについて説明する。アプリケーションファイルとは、アプリケーションプログラムのファイル（圧縮済みでもよい）およびそのメタデータファイルを含むファイルである。本図において、アプリケーションファイル８００は、ＣＡＢファイルや、ＪＡＲ（Ｊａｖａ（登録商標）ＡＲｃｈｉｖｅ）ファイル、ＺＩＰファイルのように複数のファイルを圧縮して１ファイルが構成される。アプリケーションファイル８００の内部にはマニフェストファイル８０１、およびアプリケーションプログラム８０２を格納する。マニフェストファイル８０１には、アプリケーション名や、本アプリケーションを一意に識別すためのアプリケーションＩＤ、バージョンなどのアプリケーション付属情報を記載する。マニフェストファイル８０１は、インストーラサービス３０６によって、インストール時に読み込まれる。インストールされたアプリケーションのマニフェストファイル記載の情報は、アプリケーションフレームワーク３０３を介して、他のインストール済アプリケーションや、サービスプロバイダー３０８から参照可能とする。アプリケーションファイル８００内のアプリケーションプログラム８０２は、第三者によるプログラムの改ざんなどを防止するため暗号化されている。アプリケーションファイル８００は、ＣＤなどの記録媒体や、インターネットなどのメディアを介して使用者に配布され、インストール対象のＭＦＰで解読されて実行される。
【００３５】
本実施形態では、マニフェストファイル８０１に記述する項目を下記のように定義する。
アプリケーション名８０３は、アプケーションの名称を表す。
アプリケーションＩＤ８０４は、アプリケーションを一意に特定するための識別子を表す。
アプリケーションタイプ８０５は、アプリケーションの種別を表す。例えば、値１００は、無期限のライセンス期間を持ち、起動回数等に制限を持たないパッケージアプリを表す。
バージョン８０６は、アプリケーションのバージョンを表す。
【００３６】
＜ＵＲＬリスト＞
図９（ａ）はＵＲＬリスト４４０の一例を示す図である。本実施例では、ＵＲＬリストに記述する項目を以下のように定義する。
図９（ａ）中、Ｄａｔｅ９０１はＵＲＬリスト４４０を登録した日時を示す項目である。
図９（ａ）中、ＵＲＬ９０２は、ＵＲＬ登録部４２４によって登録される。ＵＲＬ検証部４３４によって、本リストを参照して到着メッセージの送信元アプリケーションのＵＲＬは検証され、本リストに登録されているＵＲＬで特定されるＷｅｂアプリケーションがデバイスサービスの利用を許可される。
【００３７】
＜Ｗｅｂアプリケーションの画面例＞
図１０（ａ）は、本実施形態におけるＷｅｂアプリケーションの初期画面の一例である。Ｗｅｂアプリケーション１０１が送信する画面情報は、そのリクエスト元によって、たとえばＷｅｂブラウザー３０５あるいはアプリケーション３０７によって操作表示部２０２に表示される。Ｗｅｂアプリケーション１０１の初期画面は、Ｐｒｉｎｔボタン１００１、Ｓｃａｎボタン１００２、Ｃｏｐｙボタン１００３、ＦＡＸボタン１００４、終了ボタン１００５を持つ。ユーザーによって、タッチパネルを操作される等により操作指示を受ける。ユーザーによってＰｒｉｎｔボタン１００１を押下されると、操作表示部２０２に後述の図１０（ｂ）で示す図を表示する。ユーザーによってＳｃａｎボタン１００２を押下されると、操作表示部２０２に後述の図１０（ｃ）で示す図を表示する。ユーザーによってＣｏｐｙボタン１００３を押下されると、図示しないコピー操作画面に遷移する。ユーザーによってＦＡＸボタン１００４を押下されると、図示しないコピー操作画面に遷移する。ユーザーによって終了ボタン１００５を押下されると、Ｗｅｂアプリケーションを終了し、操作表示部２０２は図示しないＭＦＰ１１０の標準の操作画面を表示する。いずれの機能もＮａｔｉｖｅ機能部３０４により提供されるデバイスサービスを使用する機能である。
【００３８】
図１０（ｂ）は、本実施形態におけるＷｅｂアプリケーション１０１のプリント操作画面の一例である。Ｗｅｂアプリケーション１０１のプリント操作画面は、設定ボタン１０１１、実行ボタン１０１２、戻るボタン１０１３、ドキュメント選択リストボックス１０１４を持つ。ユーザーによって設定ボタン１０１１を押下されると、図示しないプリント設定画面に遷移する。ユーザーはプリント設定画面で種々の印刷設定を行うことができる。ユーザーによって実行ボタン１０１２を押下されると、Ｗｅｂアプリケーション１０１にプリント実行指示をする。実行指示をされたＷｅｂアプリケーション１０１は、応答としてＳＯＡＰリクエストによりサービスプロバイダー３０８に印刷実行要求を送付する。この印刷実行要求により、ＭＦＰ１１０は印刷を実行する。ユーザーによって戻るボタン１０１３を押下されると、Ｗｅｂアプリケーション１０１の初期画面に戻る。ドキュメントリストボックス１０１４は、ＭＦＰ１０１によって印刷可能なドキュメントの一覧である。ユーザーのタッチパネル操作によって、リスト一覧されたドキュメントを選択し、前述の実行ボタン１０１２を押下することで、Ｗｅｂアプリケーション１０１は選択されたドキュメントを印刷する。
【００３９】
図１０（ｃ）は、本実施形態におけるＷｅｂアプリケーション１０１のスキャン操作画面の一例である。Ｗｅｂアプリケーション１０１のスキャン操作画面は、設定ボタン１０２１、実行ボタン１０２２、戻るボタン１０２３を持つ。ユーザーによって設定ボタン１０２１を押下されると、図示しないスキャン設定画面に遷移する。ユーザーはスキャン設定画面で種々の印刷設定を行うことができる。ユーザーによって実行ボタン１０２２を押下されると、Ｗｅｂアプリケーション１０１にスキャン実行指示をする。実行指示をされたＷｅｂアプリケーション１０１は、応答としてＳＯＡＰリクエストによりサービスプロバイダー３０８にスキャン実行要求を送付する。このスキャン実行要求により、ＭＦＰ１１０はスキャンを実行する。読み取られた画像データは、設定に応じてＷｅｂアプリケーション１０１に対して送信され、あるいは設定されたファイル名でＭＦＰ１１０に保存されることができる。ユーザーによって戻るボタン１０２３を押下されると、Ｗｅｂアプリケーション１０１の初期画面に戻る。
【００４０】
＜Ｗｅｂアプリケーションによる処理シーケンス＞
次に、図５を参照して、本実施形態における画像処理システムの一連の処理について説明する。なお、ＭＦＰ１１０では１つのアプリケーション３０７が起動し、アプリケーション３０７は予め、接続要求をするＷｅｂアプリケーションのＵＲＬを保持しているものとする。またサービスプロバイダー３０８、Ｗｅｂブラウザー３０５も起動されているものとする。本シーケンスは、ＭＦＰ１１０のアプリケーション３０７がユーザーによって起動されることにより開始される。なお前述のように図５においてもＷｅｂブラウザーをＷｅｂＶｉｅｗと読み替えてもよく、その場合にはＷｅｂブラウザー３０５に代えて、アプリケーション３０７が、ＷｅｂＶｉｅｗが提供するＷｅｂブラウザー相当の機能を呼び出すことになる。その場合にはＵＲＬ登録部へのアクセス先ＵＲＬの登録（Ｓ５０２に相当）をアプリケーション３０７が行ってもよい。
【００４１】
まず、Ｓ５０１において、アプリケーション３０７はＷｅｂブラウザー３０５に接続要求をする。アプリケーション３０７は、予め接続要求先のＵＲＬを保持しているものとし、起動されると保持しているＵＲＬをＷｅｂブラウザー３０５に渡し、接続要求をする。
【００４２】
次にＳ５０２でＷｅｂブラウザー３０５のＵＲＬ登録部４２４は、Ｓ５０１で接続要求のあったＵＲＬを図９（ａ）に示すＵＲＬリストにＵＲＬを登録する。例えば、ｈｔｔｐ：／／ＣＣＣ．ｃｏｍ／Ｗｅｂ／ＣＣＣへの接続要求があるときは、接続要求のあった日時と共にそのＵＲＬをリストに登録する。
【００４３】
次にＳ５０３でＷｅｂブラウザー３０５は、ＨＴＴＰプロトコルによるＧｅｔコマンドによるリクエスト（画面要求）を行う。例えば、Ｗｅｂブラウザー３０５は、通信部４２１を介し、ＨＴＴＰプロトコルに基づきＷｅｂサーバー１００の通信部４１３と通信を行う。通信部４１３は、受けとったＵＲＬに応じて適切なＷｅｂアプリケーションに受け取ったデータを渡す。これにより、Ｗｅｂブラウザー３０５からＷｅｂアプリケーション１０１へのリクエストが行われる。以下、通信部４２１と通信部４１３の動作は省略して説明する。
【００４４】
次にＳ５０４でＷｅｂアプリケーションのロジック部４１２は、Ｓ５０３で受信した情報を元に、画面情報を含むＨＴＴＰデータを生成し、ＨＴＴＰプロトコルに基づき、Ｗｅｂブラウザー３０５にＨＴＴＰレスポンスを返す。
【００４５】
次にＳ５０５でＷｅｂブラウザー３０５は、Ｓ５０４でＷｅｂアプリケーション１０１から受けとったページ情報を含む画面データをアプリケーション３０７送付する。
【００４６】
次にＳ５０６でアプリケーション３０７は、Ｓ５０５で受けったページデータを元に操作表示部２０２に画面描画する。例えば、図１０（ａ）に示す画面を操作表示部２０２に表示する。
【００４７】
ユーザーによる操作表示部２０２に描画した画面の操作に従い、アプリケーション３０７は、前述したＳ５０１〜５０６を繰り返す。例えば、ユーザーによって図１０（ａ）に示す図のＰｒｉｎｔボタン１００１を押下されるとする。またＰｒｉｎｔボタン１００１のフォームは以下で定義されているとする。＜form＞＜input type="button" onclick="location.href='http://BBB.com/Web/Print'" value="Ｐｒｉｎｔ"＞＜/form＞
上記定義によってＰｒｉｎｔボタン１００１をクリックすることで、http://BBB.com/Web/Printをアクセス先のサービスとしてＨＴＴＰリクエストが送信されることになる。そのためＷｅｂブラウザー３０５によりＳ５０２においてＵＲＬリスト４４０には、http://BBB.com/Web/Printおよびアクセス日時がエントリとして追加される。
アプリケーション３０７は、http://BBB.com/Web/Printで示されるページ情報を含む画面データを受け取り、例えば図１０（ｂ）に示す図を操作表示部２０２に描画する。
【００４８】
ユーザーによって実行ボタン１０１２が押下されると、Ｓ５０７でアプリケーション３０７は、Ｗｅｂブラウザー３０５に対し、実行要求する。例えば、図１０（ｂ）の、実行ボタン１０１２のフォームの一例を以下に示す。＜form method = "POST" action="http://CCC.com/cgi/print"＞＜input type="submit" value="実行" /＞＜/form＞
この例では、実行ボタンを押下されると、http://CCC.com/cgi/printで特定されるプログラムに実行要求をする。例えば、図１０（ｂ）の例では、選択されているドキュメント名「ＡＡＡ．ｔｘｔ」の印刷実行を要求する。その他、印刷処理の実行に必要なパラメータは、図示しない設定画面を介し、ユーザーにより適宜設定されているものとする。
【００４９】
次にＳ５０８でＷｅｂブラウザー３０５のＵＲＬ登録部４２４は、Ｓ５０７で実行要求のあったＵＲＬを日時とともにＵＲＬリスト４４０に登録する。図９に示すＵＲＬリストの最終行にＵＲＬを追記する。図９（ｂ）に、http://CCC.com/cgi/printが追記された例を示す。
【００５０】
次にＳ５０９で、Ｗｅｂブラウザー３０５は、Ｓ３０５でアプリケーション３０７から実行要求先として渡されたＵＲＬよって示されるＷｅｂアプリケーション１０１に対して、ジョブの実行リクエストをＨＴＴＰポストリクエストにより行う。印刷処理におけるドキュメント名や、印刷属性等、処理実行に必要なパラメータは適宜リクエストのデータに含まれているものとする。
【００５１】
次にＳ５１０で、Ｗｅｂアプリケーション１０１のロジック部４１２は、ＨＴＴＰプロトコルに基づき、Ｗｅｂブラウザー３０５にＨＴＴＰレスポンスを返す。このレスポンスのＨＴＴＰデータには、Ｓ５０９でＷｅｂアプリケーション１０１が受信したリクエストに含まれる実行指示及び処理の実行に必要なパラメータ値に基づいてＳＯＡＰリクエストが含まれている。さらに、ＳＯＡＰリクエストには、ＭＦＰによるデバイスサービスを受けるためのパラメータに加えて、送信元のＷｅｂアプリケーションのＵＲＬも含まれている。
【００５２】
次にＳ５１１で、Ｗｅｂブラウザー３０５は、Ｓ５１０で受信したＨＴＴＰレスポンスに含まれたＳＯＡＰリクエストをサービスプロバイダー３０８に送付する。
【００５３】
次にＳ５１２で、サービスプロバイダー３０８のＵＲＬ検証部４３４は、Ｓ５１１で受け取ったＳＯＡＰリクエストの送付元（Ｗｅｂアプリケーション１０１）が、デバイスサービスの使用許可を持つか判断する。すなわち、ＵＲＬリスト４４０のＵＲＬ９０２を検索し、Ｓ５１１で受け取ったＳＯＡＰリクエストの送付元のＷｅｂアプリケーション１０１を示すＵＲＬが存在するときは、該ＵＲＬによって示されるＷｅｂアプリケーション１０１は該デバイスのサービス使用許可を持つと判断する。すなわちＳ５１１で受け取ったＳＯＡＰリクエストで要求されるデバイスサービスの使用は許可される。逆に、該当するＵＲＬがＵＲＬリスト４４０になければ、そのリクエストは拒否される。
【００５４】
次にＳ５１３で、サービスプロバイダー３０８のジョブ生成部４３２は、Ｓ５１２でＷｅｂアプリケーション１０１がデバイスサービスの使用許可を持つと判断したときは、ＳＯＡＰリクエストに基づき、その依頼された処理内容に従って、ジョブを実行する。例えば、ドキュメント「ＡＡＡ．ｔｘｔ」の印刷がリクエストの内容であれば、ＭＦＰのプリンター部２０４を用いてドキュメント名「ＡＡＡ．ｔｘｔ」を印刷実行する。
【００５５】
次にＳ５１４で、サービスプロバイダー３０８は、処理結果をステップＳ５１１で受信したＳＯＡＰリクエストのレスポンスとして、通信部４３１を介して、Ｗｅｂブラウザー３０５に送信する。処理結果とは、例えば、Ｗｅｂアプリケーション１０１にはデバイスサービスの使用許可があって且つ印刷成功または印刷失敗であったこと、あるいは、使用許可がないためにリクエストに失敗した等である。
【００５６】
次にＳ５１５で、Ｗｅｂブラウザー３０５の通信部４２１は、ＨＴＴＰ  ＰＯＳＴコマンドで、Ｓ５１４で受け取った処理結果を含むＳＯＡＰレスポンスをＷｅｂアプリケーション１０１へ送信する。
【００５７】
ユーザーから「終了」ボタンを押下されると、Ｓ５１６でアプリケーション３０７は、所定のアプリケーション終了処理、およびＳ５０２、Ｓ５０８でＵＲＬリスト４４０に登録したＵＲＬのエントリを削除する。
【００５８】
＜アプリケーションとＷｅｂブラウザーの基本フロー＞
次に、図６を用いてアプリケーション３０７とＷｅｂブラウザー３０５の基本フローを説明する。説明の簡便のため、ＵＲＬリスト４４０は予めＭＦＰ１１０に備えられているものとする。図６の手順は、ＣＰＵ２１０によりＲＡＭ２１２あるいはＲＯＭ２１１に格納したプログラムを実行することで実現される。
【００５９】
Ｓ６０１で、ユーザーによるアプリケーション起動を受け付ける。つまり、ユーザーはＭＦＰ１１０にインストール済のアプリケーション３０７をＭＦＰ１１０に予め備えられた方法に基づき起動する。アプリケーション３０７は起動すると、自身が保持しているＵＲＬをＷｅｂブラウザー３０５に渡し、ＵＲＬで示されるＷｅｂアプリケーションに接続を依頼する。本ステップは図５におけるＳ５０１に相当する。
【００６０】
次にＳ６０２で、Ｗｅｂブラウザー３０５のＵＲＬ登録部４２４は、ＵＲＬ登録処理を行ない、Ｓ６０１で渡されたＵＲＬをＵＲＬＬリスト４４０に登録する。本ステップは図５におけるＳ５０２に相当する。
【００６１】
次にＳ６０３で、Ｗｅｂブラウザー３０５の通信部４２１は、Ｓ６０１で渡されたＵＲＬに対して所定の手続きに基づきアクセスし、画面データを、通信部４１３を介してＷｅｂアプリケーション１０１から受け取り、アプリケーション３０７に画面データを渡す。
【００６２】
次にＳ６０４で、アプリケーション３０７は、Ｓ６０３で受けとった画面データを操作表示部２０２に表示する。本ステップは図５におけるＳ５０６に相当する。
【００６３】
次にＳ６０５で、アプリケーション３０７は、ユーザーによって画面遷移が指示されたか判断する。例えば、操作表示部２０２に図１０（ａ）を表示中において、Ｐｒｉｎｔボタン１００１やＳｃａｎボタン１００２を押下された時や、図１０（ｂ）を表示中において戻るボタン１０１３を押下されたときは、画面遷移が指示されたと判断する。
【００６４】
Ｓ６０５で画面遷移が指示されたと判断したときは、アプリケーション３０７は押下されたボタンに関連付けられたＵＲＬとともに、そのＵＲＬへの接続依頼をＷｅｂブラウザー３０５に対して出す。Ｓ６０６で、接続依頼を受けたＷｅｂブラウザー３０５のＵＲＬ登録部４２４は、ＵＲＬリスト４４０に接続先のＵＲＬを登録する。例えば、操作表示部２０２に図１０（ａ）に図示する図を表示中に、ユーザーによってＰｒｉｎｔボタン１００１等の別画面へ遷移するボタンを押下されたときは、アプリケーション３０７は該ボタンのフォームに定義されているＵＲＬから遷移先ＵＲＬを取得する。さらに、アプリケーション３０７は、取得したＵＲＬをＷｅｂブラウザー３０５に渡し、該ＵＲＬへ接続を依頼する。Ｗｅｂブラウザー３０５のＵＲＬ登録部４２４は、ＵＲＬ登録処理を行ない、該ＵＲＬをＵＲＬリスト４４０に登録する。
【００６５】
次にＳ６０７で、Ｗｅｂブラウザー３０５は、指定されたＵＲＬに対してＨＴＴＰリクエストを送信する。Ｗｅｂブラウザー３０５は、ＨＴＴＰリクエストに対するレスポンスとして、指定したＵＲＬで特定されるＷｅｂアプリケーションから画面データを取得し、アプリケーション３０７に渡す。画面データを受け取ったアプリケーション３０７は、画面データに基づく画面を作成し、操作表示部２０２に表示する。その後Ｓ６０５へ戻って、アプリケーション３０７により画面遷移の指示のテストを繰り返す。
【００６６】
一方、Ｓ６０５で画面遷移が指示されたと判断しなかったときはＳ６０８で、アプリケーション３０７は、ユーザーによって、操作表示部２０２に表示したアプリケーション画面から「実行」ボタンが押下されたか判断する。例えば、操作表示部２０２に図１０（ｂ）を表示中において、実行ボタン１０１２ボタンを押下された時は、「実行」ボタンが押下されたと判断する。
【００６７】
Ｓ６０８で「実行」ボタンを押下されたと判断したときは、アプリケーション３０７は実行ボタンに関連付けられたＵＲＬとともに接続依頼をＷｅｂブラウザー３０５に対して出す。接続依頼を受けたＷｅｂブラウザー３０５のＵＲＬ登録部４２４は、Ｓ６０９で、ＵＲＬリスト４４０に接続先のＵＲＬを登録する。例えば、操作表示部２０２に図１０（ｂ）に図示する画面を表示中に、ユーザーによって実行ボタン１０１２を押下された時は、アプリケーション３０７はＳ６０８で、該ボタンのフォームに定義されているＵＲＬをＷｅｂブラウザー３０５に渡し、実行処理の通知を依頼する。Ｗｅｂブラウザー３０５のＵＲＬ登録部４２４は、Ｓ６０９でＵＲＬ登録処理を行ない、該ＵＲＬをＵＲＬリスト４４０に登録する。本ステップは図５におけるＳ５０８に相当する。
【００６８】
次にＳ６１０で、Ｗｅｂブラウザー３０５は、Ｓ６０８でアプリケーション３０７から渡されたＵＲＬで特定されるＷｅｂアプリケーション１０１に実行を依頼する。例えば、操作表示部２０２に図１０（ｂ）を表示中の場合は、印刷実行を依頼する。依頼は例えばＨＴＴＰリクエストの送信により行われる。依頼を受けたＷｅｂアプリケーション１０１のロジック部４１２は、依頼に基づき、ＭＦＰ１０１に印刷処理を依頼するＳＯＡＰリクエストを作成してそれを含むＨＴＴＰレスポンスをＷｅｂブラウザー３０５に送信する。Ｗｅｂブラウザー３０５はＳＯＡＰリクエストを取り出してサービスプロバイダー３０８に渡し、そこに記述された処理を実行依頼する。実行依頼されたサービスプロバイダー３０８は、ＳＯＡＰリクエストの送信元のＷｅｂアプリケーション１０１のＵＲＬをＵＲＬリスト４４０の中から探索する。一致するＵＲＬがあれば、すなわち認証が成功すればＳＯＡＰリクエストを受け付けて依頼を実行する。そして、Ｗｅｂブラウザー３０５を介し、実行結果を含むＳＯＡＰレスポンスをＨＴＴＰリクエストでＷｅｂアプリケーション１０１に通知する。本ステップは図５におけるＳ５０５〜５１５に相当する。
【００６９】
次にＳ６１１で、アプリケーション３０７は、実行結果を操作表示部２０２に表示する。例えば、印刷成功の場合は印刷枚数や完了時刻、あるいは、印刷失敗の場合は失敗した理由等を所定のフォーマットに従い、図示しない画面を作成し操作表示部２０２に表示する。このアプリケーション３０７により表示される結果は、たとえば、Ｓ６１０でＷｅｂアプリケーション１０１に送信した実行結果を含むＨＴＴＰリクエストに対するレスポンスとしてＷｅｂアプリケーション１０１から受信したもので良い。この場合にはたとえば、サービスプロバイダー３０８からＷｅｂアプリケーション１０１に送信した実行結果を示す情報が、Ｗｅｂアプリケーション１０１からそのまま返送され、それを受信したＷｅｂブラウザー３０５がアプリケーション３０７に引き渡す。引き渡された実行結果情報が、Ｓ６１１でアプリケーション３０７により表示される。その後Ｓ６０５へ戻って、アプリケーション３０７により画面遷移の指示のテストを繰り返す。
【００７０】
一方Ｓ６０８で「実行」ボタンを押下されたと判断しなかった時はＳ６１２で、アプリケーション３０７は、「終了」ボタン押下されたか判断する。例えば、操作表示部２０２に図１０（ａ）に図示する図を表示中に、ユーザーによって、終了ボタン１００５を押下されたときは、「終了」ボタンを押下されたと判断する。
【００７１】
Ｓ６１２で「終了」ボタンを押下したと判断したときは、Ｓ６１３で、アプリケーション３０７は、アプリケーション３０７の所定の終了処理を行い、ＵＲＬリスト４４０にエントリがある各リストを削除する。このステップは図５におけるＳ５１６に相当する。Ｓ６１２で「終了」ボタンを押下したと判断しなかったときは、Ｓ６０５へ進む。
【００７２】
以上説明したように、ユーザーが画像処理装置の画面からジョブの実行を指示する操作を行うと、ジョブ実行を司るＷｅｂアプリケーションを示すＵＲＬがＵＲＬリストに登録される。Ｗｅｂサーバーと通信する毎にＵＲＬリストに登録するため、予め許可ＵＲＬを画像処理装置に登録する必要がない。また、Ｗｅｂアプリケーションを特定するＵＲＬは、画面データを構成するフォームに含まれるため、Ｗｅｂサーバー側でフォームに登録しているＵＲＬを変更しても、画像処理装置側では登録済ＵＲＬの更新作業は必要ない。新しいフォームを読み込み、実行ボタンを押下すれば、自動で新しいＵＲＬがＵＲＬリストに登録される。
【００７３】
なお図６は説明の便宜のために、ボタンが押されない限りＳ６５０，Ｓ６０８，Ｓ６１２のループ処理が継続するように記載されている。しかし、Ｓ６１２で「Ｎｏ」と判断された場合には、いずれかのボタンがタップされたならアプリケーション３０７が再開されるようトリガをセットした上でいったんアプリケーション３０７を停止してもよい。
【００７４】
＜サービスプロバイダーの基本フロー＞
次に、図７を用いてサービスプロバイダー３０８の基本フローを説明する。なお、以下で説明する処理は、ＣＰＵ２１０でＨＤＤ２０９等の記憶装置から読みだしたプログラムを実行することで実現される。
【００７５】
Ｓ７０１で、サービスプロバイダー３０８の通信部４３１は、Ｗｅｂアプリケーション１０１のロジック部４１２から、Ｗｅｂブラウザー３０５を介してジョブ実行の指示を受け付ける。ジョブに関する詳細情報は、Ｗｅｂアプリケーション１０１からのＳＯＡＰリクエストによりサービスプロバイダー３０８に伝達される。これは図５のＳ５１０、Ｓ５１１に相当する。
【００７６】
次にＳ７０２で、サービスプロバイダー３０８は、ジョブ実行指示依頼元のＷｅｂアプリケーション１０１からＵＲＬを取得する。Ｗｅｂアプリケーション１０１が発したジョブ実行依頼のリクエスト（たとえばＳＯＡＰリクエスト）のヘッダーあるいはボディにＷｅｂアプリケーション１０１を特定するＵＲＬが記載され、サービスプロバイダー３０８はそのＵＲＬを、Ｗｅｂブラウザー３０５を介して取得可能である。
【００７７】
次にＳ７０３で、サービスプロバイダー３０８は、Ｓ７０２で取得したＵＲＬがリスト４４０に存在するか判断する。すなわち、ＵＲＬリスト４４０のリストを１件毎にＳ７０２で取得したＵＲＬと照合し、Ｓ７０２で取得したＵＲＬと同じエントリがある場合は、ＵＲＬリストにＵＲＬが存在すると判断する。本ステップは図５におけるＳ５１２に相当する。
【００７８】
Ｓ７０３で、Ｓ７０２で取得したＵＲＬがＵＲＬリストに存在すると判断したときは、Ｓ７０４でサービスプロバイダー３０８は、ジョブを実行する。すなわちＳ７０１で、Ｗｅｂアプリケーション１０１から指示されたジョブを実行する。本ステップは図５におけるＳ５１３に相当する。
【００７９】
Ｓ７０３で、Ｓ７０２で取得したＵＲＬがＵＲＬリストに存在すると判断しなかったときは、Ｓ７０５でサービスプロバイダー３０８は、ジョブを実行せず、認証エラーをＷｅｂアプリケーション１０１に通知する。すなわち、Ｓ７０１で受け付けたジョブ実行指示の送付元であるＷｅｂアプリケーション１０１に対してエラー情報（認証エラー）を通知するよう、Ｗｅｂブラウザー３０５に依頼する。Ｗｅｂブラウザー３０５は、依頼されたエラー情報をＨＴＴＰリクエストでＷｅｂアプリケーション１０１に送信する。本ステップは図５におけるＳ５１４およびＳ５１５に相当する。なおジョブを実行した場合にも、そのジョブの結果を同様の方法でＷｅｂアプリケーション１０１に通知する。
【００８０】
以上説明したように、ジョブ実行を依頼されたサービスプロバイダーは依頼元のＵＲＬがＵＲＬリストに登録済の場合はジョブを実行し、登録されていないときはジョブを実行しない。
【００８１】
＜ＵＲＬ登録処理＞
次に図１１を用い、Ｓ６０２、Ｓ６０６、およびＳ６０９の、ＵＲＬ登録部４２４のＵＲＬ登録処理を説明する。ＵＲＬ登録部４２４には、ブラウザー３０５から登録すべきＵＲＬを渡されているものとする。
【００８２】
Ｓ１１０１でＵＲＬ登録部４２４は、登録対象のＵＲＬがＵＲＬリスト４４０に登録済か判断する。すなわち、ＵＲＬリスト４４０のＵＲＬを検証し、ブラウザー３０５から渡されたＵＲＬと一致するエントリを探す。リスト中に同じＵＲＬが見つかったときは、登録済と判断する。
【００８３】
Ｓ１１０１で登録済と判断しなかった場合はＳ１１０２で、ＵＲＬ登録部４２４はＵＲＬリスト４４０に新規にエントリを追加して、日付、ＵＲＬを記載する。Ｓ１１０１で登録済と判断した場合はＳ１１０３で、ＵＲＬ登録部４２４はＵＲＬリスト４４０の該当リストの日付を更新する。
【００８４】
以上説明したように、第一の実施の形態における画像処理システムでは、Ｗｅｂアプリケーションからの画像処理装置の利用を簡単に管理できる。すなわち、画像処理装置にジョブ実行を許可するＷｅｂアプリケーションを特定する情報を登録し、当該画像処理装置に登録済のＷｅｂアプリケーションに限り、画像処理装置においてジョブの実行が許可される。画像処理装置の利用が許可されるＷｅｂアプリケーションとしては、画像処理装置から接続したＷｅｂアプリケーションが自動的に選択されて登録される。ただし本実施形態では、画像処理装置からＷｅｂアプリケーションへの処理要求に応じてそのＷｅｂアプリケーションが当該画像処理装置に対して発行した処理要求に限り、そのＷｅｂアプリケーションは許可される。よって、管理者等によって事前に登録する必要がない。画像処理装置への許可Ｗｅｂアプリケーションの登録、および、ジョブ実行許可判断は、画像処理装置だけで実現し、ＷｅｂアプリケーションおよびＷｅｂサーバーに特別な変更を施すことがない。
【００８５】
［第二の実施形態］
画像処理装置にインストールされるネイティブアプリケーションには、ライセンスの形態によって機能を制限されるものがある。例えば、製品版は機能の制限は設けないが、お試し版やサンプル版では一部の機能（例えばＦＡＸ）に制限を設け、印刷、コピーのみ実行可能としている。画像処理装置からＷｅｂアプリケーションを呼び出し、Ｗｅｂアプリケーションがデバイスサービス（印刷、コピー、ＦＡＸ等）を利用し機能を実現するシステムでも同様な制限を設けることがある。そこで、本実施形態では、画像処理装置にインストールするアプリケーションに機能制限を示す情報を持たせ、その機能制限情報に従い、Ｗｅｂアプリケーションからデバイスサービスの利用に制限を設ける。
【００８６】
説明の簡便のため、第一の実施の形態と異なる点のみ説明する。図８（ｂ）、図９（ｃ）、図１２、図１３を用いて説明する。図８（ｂ）は第二の実施形態におけるアプリケーションファイルの一例である。図中、アプリケーションタイプ８１７は、機能制限のあるお試し版アプリケーションを示す「７０」を値として持つ。デバイスサービス８１８は、このアプリケーションに許可されるデバイスサービスを記載する。この例では、印刷とコピーを許可する。アプリケーションはマニフェストファイル８１０のデバイスサービス８１８に記載されていないデバイスサービスを、直接または間接にかかわらず利用することはできない。
【００８７】
図９（ｃ）は第二の実施形態におけるＵＲＬリストの一例である。図中、サービス９１１は許可されるデバイスサービスを示す。図９（ｃ）のＵＲＬリストでは、上から順にプリント（印刷）、プリントおよびファクシミリ、プリントおよびコピーのデバイスサービスが許可されている例を示す。
【００８８】
次に、図１２を用いて、ＵＲＬ登録処理を説明する。Ｓ１２０２は、図１１におけるＳ１１０１に相当する本実施形態における手順である。
【００８９】
Ｓ１２０１で、ＵＲＬ登録部４２４は、アプリケーションから許可サービスを取得する。例えば、図８（ｂ）の例ではアプリケーションは印刷とコピーを許可されている。ＵＲＬ登録部４２４は、アプリケーションフレームワーク３０３に備えられた機能を用いて、アプリケーションのマニフェストファイルを参照し、許可されているサービスを取得する。なおこのためには、ＵＲＬ登録部４２４が、登録対象のＵＲＬを指定してＷｅｂブラウザー３０５に接続要求あるいは実行要求を出したアプリケーションを特定する必要がある。そこでアプリケーション３０７は、Ｗｅｂブラウザー３０５に接続要求あるいは実行要求を出す際に、アプリケーション３０７の識別情報たとえばＩＤを引き渡す。ＵＲＬ登録部４２４は、引き渡されたアプリケーションＩＤを持つマニフェストファイルを探し、該当するマニフェストファイルのデバイスサービスとして記述されたサービスを取得する。
【００９０】
Ｓ１２０２で登録太陽のＵＲＬが登録済みか否かを判定し、未登録であればＳ１２０３へ分岐する。
【００９１】
Ｓ１２０３で、ＵＲＬ登録部４２４は、ＵＲＬリスト４４０に新規にエントリを追加して、日付、ＵＲＬ、およびＳ１２０１で取得したサービスを記載する。
【００９２】
一方、登録対象のＵＲＬが登録済みであれば、Ｓ１２０４で、ＵＲＬ登録部４２４はＵＲＬリスト４４０の該当リストの日付、およびサービスを更新する。サービスは変更されている可能性があるためである。
【００９３】
＜サービスプロバイダー３０８の基本フロー＞
次に、図１３を用いてサービスプロバイダー３０８の基本フローを説明する。図１３は、第１実施形態の図７に代えて本実施形態で実行される手順である。Ｓ１３０１〜Ｓ１３０３、Ｓ１３０５、およびＳ１３０７は、それぞれ図７におけるＳ７０１〜Ｓ７０３、Ｓ７０４、およびＳ７０５と同じである。
【００９４】
Ｓ１３０３でＵＲＬリストに該当するＵＲＬが登録されていると判定した場合、サービスプロバイダー３０８はＳ１３０４を実行する。Ｓ１３０４において、サービスプロバイダー３０８は、ＵＲＬリストに登録された許可サービスと、Ｗｅｂアプリケーション１０１により要求されたサービスが一致するか判断する。すなわち、ＵＲＬリスト４４０の該当レコードのサービス９１１に、Ｗｅｂアプリケーション１０１で要求されたサービスが含まれるときは、許可サービスが一致すると判断する。例えば、サービスプロバイダーがデバイスサービス「印刷」の実行を要求されたとすると、ＵＲＬリストの該当レコードの許可サービスに「印刷」を意味する「Ｐｒｉｎｔ」が含まれるときは、許可サービスが一致すると判断する。なおＷｅｂアプリケーション１０１からのデバイスサービスの要求はたとえばＳＯＡＰリクエストに記載されており、それを読み取ってＵＲＬリスト４４０と照合すればよい。
【００９５】
Ｓ１３０４で要求されたサービスと許可サービスとが一致すると判断したときは、Ｓ１３０５へすすむ。Ｓ１３０４で要求されたサービスと許可サービスとが一致すると判断しなかったときは、Ｓ１３０６で、サービスプロバイダー３０８は、ジョブを実行せず、不許可エラーを通知する。すなわち、Ｓ１３０１で受け付けたジョブ実行指示の送付元であるＷｅｂアプリケーション１０１に、予め定められた方法を用いてエラー情報（不許可エラー）を通知する。このエラーはたとえば、Ｗｅｂアプリケーション１０１で履歴に記録され、またＷｅｂブラウザー３０５を介してＷｅｂアプリケーション１０１へのサービスの要求元であるアプリケーション３０７に戻され、表示されるなどしてユーザーに通知される。
【００９６】
本発明の好ましい実施形態について説明したが、本発明は、これらの実施の形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【００９７】
以上説明した通り、第二の実施の形態における画像処理システムでは、Ｗｅｂサーバー、Ｗｅｂアプリケーションに特別な機構を設けることなく、Ｗｅｂアプリケーションからのデバイスサービスの使用制限を実現することができる。
【００９８】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９９】
１００  Ｗｅｂサーバー、１０１  Ｗｅｂアプリケーション、１１０  ＭＦＰ、２０２  操作表示部、３０５  Ｗｅｂブラウザー、３０８  サービスプロバイダー
【図１】
2018019240.tif 000003
【図２】
2018019240.tif 000004
【図３】
2018019240.tif 000005
【図４】
2018019240.tif 000006
【図５】
2018019240.tif 000007
【図６】
2018019240.tif 000008
【図７】
2018019240.tif 000009
【図８】
2018019240.tif 000010
【図９】
2018019240.tif 000011
【図１０】
2018019240.tif 000012
【図１１】
2018019240.tif 000013
【図１２】
2018019240.tif 000014
【図１３】
2018019240.tif 000015