(57)【特許請求の範囲】
【請求項１】
外部装置と画像処理装置とを有するシステムであって、
前記画像処理装置は、
ユーザから設定を受け付ける受付手段と、
前記受付手段で受け付けた設定を含む通信要求を前記外部装置へ送信する通信要求送信手段と、
前記通信要求送信手段により送信された通信要求に対応する、前記画像処理装置の機能を利用するための処理コマンドを含む通信応答を前記外部装置から受信する通信応答受信手段と、
前記通信応答に含まれる処理コマンドに従って複数のジョブを実行する実行手段と、
前記実行手段が実行した各ジョブの実行結果をまとめて送信するか個別に送信するかを判断する判断手段と、
前記判断手段によりまとめて送信すると判断された場合、前記実行手段により実行された複数のジョブの実行結果を含む一つの通信要求を送信し、前記判断手段により個別に送信すると判断された場合、前記実行手段により実行されたジョブの実行結果を含む通信要求を個別に送信するように前記通信要求送信手段を制御する制御手段とを有し、
前記外部装置は、
前記画像処理装置でユーザから受け付けた設定を含む通信要求を前記画像処理装置から受信する通信要求受信手段と、
前記通信要求受信手段により受信された通信要求に含まれる設定に基づいて、前記画像処理装置の機能を利用するための処理コマンドを生成する生成手段と、
前記生成手段により生成された処理コマンドを含む通信応答を前記画像処理装置へ送信する通信応答送信手段と、
を有することを特徴とするシステム。
【請求項２】
前記判断手段によるまとめて送信するか個別に送信するかの判断は、前記通信応答受信手段により受信された通信応答に含まれる、同期または非同期を示す情報に基づいて行われることを特徴とする請求項１に記載のシステム。
【請求項３】
画像データを入力する入力手段を更に有し、
前記実行手段により実行されるジョブは、前記入力手段により入力された画像データを他の装置へ送信する送信ジョブ、及び前記入力手段により入力された画像データに基づいて印刷する印刷ジョブの何れかであることを特徴とする請求項１に記載のシステム。
【請求項４】
前記判断手段は、前記実行手段により実行される複数のジョブのうちの１つが前記印刷ジョブである場合に個別に送信すると判断することを特徴とする請求項３に記載のシステム。
【請求項５】
前記判断手段により個別に送信すると判断された場合、前記通信要求送信手段が送信するジョブの実行結果を含む複数の通信要求は、ジョブの実行が完了した順番で送信されることを特徴とする請求項１ないし４のいずれか１項に記載のシステム。
【請求項６】
前記通信応答受信手段により受信される通信応答は、マルチパートの形式で記述されていることを特徴とする請求項１ないし５のいずれか１項に記載のシステム。
【請求項７】
前記実行手段は、前記マルチパートの形式で記述されている通信応答に従って複数のジョブを生成することを特徴とする請求項６に記載のシステム。
【請求項８】
前記通信要求と前記通信応答は、ＨＴＴＰ（Ｈｙｐｅｔ  Ｔｅｘｔ  ＴｒａｎｓｆｅｒＰｒｏｔｏｃｏｌ）に従ったメッセージであることを特徴とする請求項１ないし７のいずれか１項に記載のシステム。
【請求項９】
前記通信応答に含まれる処理コマンドは、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）に従ったメッセージであることを特徴とする請求項８に記載のシステム。
【請求項１０】
外部装置とネットワークを介して通信可能な画像処理装置であって、
ユーザから設定を受け付ける受付手段と、
前記受付手段で受け付けた設定を含む通信要求を前記外部装置へ送信する通信要求送信手段と、
前記通信要求送信手段により送信された通信要求に対応する、前記画像処理装置の機能を利用するための処理コマンドを含む通信応答を前記外部装置から受信する通信応答受信手段と、
前記通信応答に含まれる処理コマンドに従って複数のジョブを実行する実行手段と、
前記実行手段が実行した複数のジョブのそれぞれに関連する複数の実行結果を一括して送信するか個別に送信するかを判断する判断手段と、
前記判断手段によりまとめて送信すると判断された場合、前記実行手段により実行された複数の実行結果を含む一つの通信要求を送信し、前記判断手段により個別に送信すると判断された場合、前記実行手段により実行されたジョブの実行結果を含む複数の通信要求を個別に送信するように前記通信要求送信手段を制御する制御手段と
を有することを特徴とする画像処理装置。
【請求項１１】
請求項１０に記載の画像処理装置が備える各手段を実行させるための、コンピュータが読取可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置の機能をＷｅｂサービスとして利用することが可能なシステム、画像処理装置、システムの制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、スキャナやプリンタ、ファクシミリ、ネットワーク送信装置などの各装置の機能を１つの筺体内に収納したＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎａｌ  Ｐｅｒｉｐｈｅｒａｌ）が一般的に知られている。また上述のＭＦＰの機能をＷｅｂサービスとして外部装置からのコマンドで利用する形態も一般的に知られている。
【０００３】
特許文献１によると、ＭＦＰは、外部装置からＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）に従って生成されたＷｅｂサービスの要求を受信する。ＭＦＰは、受信した要求に基づいてＭＦＰが提供するＷｅｂサービスを呼び出し、ジョブ（例えばプリントジョブや画像データの送信ジョブなど）を生成し、実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２０３８６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のようなシステムでは、外部装置から受信したＷｅｂサービスの要求に基づいて、ＭＦＰで複数のジョブが生成される場合がある。例えばＷｅｂサービスの要求が、画像データを印刷するとともにＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）のサーバへ送信する、というような要求である場合を考える。この場合、ＭＦＰは、画像データを印刷する印刷ジョブと画像データを送信する送信ジョブの２つのジョブを生成することになる。
【０００６】
ところで、ＳＯＡＰに従ってＷｅｂサービスの要求を外部装置から受信した場合には、ＭＦＰは、Ｗｅｂサービスの要求に対応する応答（例えばジョブの実行結果）をＭＦＰから外部装置へ送信（アップロード）する必要がある。しかしながら、上述のようにＷｅｂサービスの要求に基づいて複数のジョブが生成されたような場合、実行するジョブの処理にかかる時間はジョブの内容やジョブの種類、ジョブの設定などに依って当然異なる。そのためジョブの実行結果を送信（アップロード）可能となるタイミングも異なる。例えば、印刷ジョブと送信ジョブの場合、通常は、印刷ジョブの印刷処理にかかる時間の方が送信ジョブの送信処理にかかる時間よりも大きくなり、印刷ジョブの方が実行結果を送信可能となるタイミングは遅くなる。
【０００７】
Ｗｅｂサービスの要求に従って生成された複数のジョブの実行結果をＭＦＰから外部装置へアップロードするタイミングを、それぞれのジョブが完了したタイミングで個別に送信するようにすると、ＭＦＰと外部装置との間の通信回数が増える。そのため通信トラフィックの増加を誘発する。
【０００８】
かといって、ジョブの実行に要する時間が異なるもの同士を一括して送信すると、時間がかからないジョブの実行結果を迅速に外部装置へ応答することができない。
【０００９】
処理にかかる時間が異なる複数のジョブを画像処理装置で実行する場合に、実行されたジョブの実行結果を個別に外部装置へ送信するか一括して外部装置へ送信するかを一律にして行うと、ジョブの種類やジョブの設定等に応じて通信回数が必要以上に増えたりジョブの実行結果を迅速に応答できなかったりする場合が生じる。
【００１０】
本発明は、このような課題に鑑みて、外部装置からのＷｅｂサービスの要求に基づいて生成された複数のジョブを実行した場合、ジョブの実行結果をどのように外部装置へ送信するかを判断する手段を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明におけるシステムは、
外部装置と画像処理装置とを有するシステムであって、
前記画像処理装置は、
ユーザから設定を受け付ける受付手段と、
前記受付手段で受け付けた設定を含む通信要求を前記外部装置へ送信する通信要求送信手段と、
前記通信要求送信手段により送信された通信要求に対応する、前記画像処理装置の機能を利用するための処理コマンドを含む通信応答を前記外部装置から受信する通信応答受信手段と、
前記通信応答に含まれる処理コマンドに従って複数のジョブを実行する実行手段と、
前記実行手段が実行した各ジョブの実行結果をまとめて送信するか個別に送信するかを判断する判断手段と、
前記判断手段によりまとめて送信すると判断された場合、前記実行手段により実行された複数のジョブの実行結果を含む一つの通信要求を送信し、前記判断手段により個別に送信すると判断された場合、前記実行手段により実行されたジョブの実行結果を含む通信要求を個別に送信するように前記通信要求送信手段を制御する制御手段とを有し、
前記外部装置は、
前記画像処理装置でユーザから受け付けた設定を含む通信要求を前記画像処理装置から受信する通信要求受信手段と、
前記通信要求受信手段により受信された通信要求に含まれる設定に基づいて、前記画像処理装置の機能を利用するための処理コマンドを生成する生成手段と、
前記生成手段により生成された処理コマンドを含む通信応答を前記画像処理装置へ送信する通信応答送信手段と、
を有することを特徴とする。
【発明の効果】
【００１２】
外部装置からのＷｅｂサービスの要求に基づいて生成された複数のジョブを実行する場合、適切な送信方法でジョブの実行結果を外部装置へ送信することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態におけるＭＦＰと外部装置を有する情報処理システムを示す図である。
【図２】図１に示す情報処理システムのハードウェア構成を示すブロック図である。
【図３】図１に示す情報処理システムのソフトウェア構成を示すブロック図である。
【図４】図１に示すＭＦＰが備える表示装置に表示される操作画面の一例を示す図である。
【図５】図１に示す外部装置により実行される処理のフローチャートである。
【図６】ＭＦＰが外部装置から受信するＨＴＴＰレスポンスの一例を示す図である。
【図７】図１に示すＭＦＰにより実行される処理のフローチャートである。
【図８】図１に示すＭＦＰの結果管理部で管理する情報の一例を示す図である。
【図９】図１に示すＭＦＰにより実行される処理のフローチャートである。
【図１０】図１に示す情報処理システムで、複数のジョブの実行結果を一括して送信する場合の処理手順を説明するためのシーケンス図である。
【図１１】図１に示す情報処理システムで、複数のジョブの実行結果を個別に送信する場合の処理手順を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面を用いて説明する。本実施形態では、ユーザからの指示により、本発明の画像処理装置の一例であるＭＦＰが複数の処理を実行し、実行結果を外部装置へ送信するまでを記載する。
【００１５】
図１は、本発明を適用可能なシステムの全体構成を示すブロック図である。本システムはネットワーク１００を介してＭＦＰ１０１と外部装置１０２とが通信可能に接続されている。ネットワーク１００は各装置間で通信を行うための基盤である。ネットワーク１００は、イントラネット、インターネット、またはその他のネットワークシステムでもよい。ＭＦＰ１０１はＷｅｂブラウザ機能を有する。本実施形態では、ＭＦＰ１０１は、ローカルＩＰアドレスで管理されている。そして、ネットワーク１００とＭＦＰ１０１の間にゲートウェイ（不図示）が存在し、ゲートウェイはアドレス変換を行う。例えばゲートウェイにはルーターが含まれる。ゲートウェイは、ＭＦＰ１０１がファイアウォール機能を備えていても良い。外部装置１０２は、Ｗｅｂコンテンツを、ネットワークを介して配信する機能を持っており、ＭＦＰ１０１からのリクエストに応じてＷｅｂコンテンツを返す。
【００１６】
図２は、図１に示す情報処理システムのハードウェア構成の一例である。まずＭＦＰ１０１のハードウェア構成から説明する。ＭＦＰ１０１は、装置全体を制御するＣＰＵ２０１、ＣＰＵ２０１のワークエリアを提供するＲＡＭ２０２を有する。更にＭＦＰ１０１は、原稿画像を読み取る読取装置２０６、画像データを印刷する印刷装置２０７を有する。更にＭＦＰ１０１は、データや各種の設定パラメータや制御プログラムを記憶する記憶装置２０３（例えば、ＨＤＤやＮＶＲＡＭ）を有する。更にＭＦＰ１０１は、ユーザからの操作を受け付けるユーザ入力装置２０５（例えば、キーボードやマウスなど）、ＭＦＰ１０１の操作画面を表示する表示装置２０５（例えば、液晶ディスプレイ）を有する。更にＭＦＰ１０１は、外部装置１０２や他の機器とのネットワーク通信を行うネットワーク装置２０４、バス２０８を構成する。なお、図２ではユーザ入力装置２０５と表示装置２０５が別々の装置として記載しているが、これら装置が一体となった操作部としてもよい。
【００１７】
次に外部装置１０２のハードウェア構成について説明する。外部装置１０２は、外部装置１０２を制御するＣＰＵ２１１、ＣＰＵ２１１のワークエリアを提供するＲＡＭ２１２、データや各種の設定パラメータや制御プログラムを記憶する記憶装置２１３、ＭＦＰ１０１や他の機器とネットワークによる通信を行うネットワーク装置２１４、及びバス２１５を構成する。
【００１８】
図３は、図１の情報処理システムのソフトウェア構成を説明するための図である。外部装置１０２で動作するＷｅｂアプリケーション３１０は記憶装置２１３に記憶されており、ＣＰＵ２１１により実行される。
【００１９】
Ｗｅｂアプリケーション３１０は、ＭＦＰ１０１から受信したＨＴＴＰに従うメッセージに応じて処理を実行するアプリケーションである。例えば、Ｗｅｂブラウザ３２０で表示する操作画面のＨＴＭＬ（Ｈｙｐｅｔ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）コンテンツを生成する。又は、この操作画面を介して受け付けたユーザの操作に従い、ＭＦＰ１０１（サービスプロバイダ３４０〜３６０）へＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｃｏｔｏｌ）に従う処理の要求を生成する。
【００２０】
一方ＭＦＰ１０１は、Ｗｅｂブラウザ３２０、転送アプリケーション３３０、及びサービスプロバイダ３４０〜３６０を有する。これら各部の機能は、ＭＦＰ１０１のＣＰＵ２０１が記憶装置２０３に記憶されたプログラムを実行することにより実現される。
【００２１】
Ｗｅｂブラウザ３２０は、外部装置１０２で動作するＷｅｂアプリケーション３１０と通信し、外部装置１０２が提供するＷｅｂコンテンツを表示装置２０５に表示するためのアプリケーションである。
【００２２】
Ｗｅｂブラウザ３２０の解析部３２１は、Ｗｅｂアプリケーション３１０から受信したメッセージを解析する。画面表示部３２２は、受信したメッセージに含まれるＨＴＭＬコンテンツに基づく操作画面を表示装置２０５に表示する。なおＨＴＭＬコンテンツは、外部装置１０２が提供する画面情報の一例である。
【００２３】
転送アプリ起動部３２４は、解析部３２１の解析結果に基づいて転送アプリケーション３３０を起動する。転送アプリケーション３３０は、Ｗｅｂブラウザ３２０が受信した処理コマンドをサービスプロバイダ３４０〜３６０へ転送したり、サービスプロバイダ３４０〜３６０の処理結果をＷｅｂブラウザへ転送したりするためのアプリケーションである。転送アプリケーションは、一般的にＷｅｂブラウザで対応できない形式のファイル（音声や動画，アニメーションなど）を処理できるようにするヘルパーアプリケーションとして動作し、Ｗｅｂブラウザと独立して動作する。しかしながら、処理コマンドの転送を行う機能を有すれば、転送アプリケーションはヘルパーアプリケーションではなく、プラグインや、Ｗｅｂブラウザの一機能、または受信したレスポンス内に記載されたＪａｖａ（登録商標）Ｓｃｒｉｐｔとしてもよい。
【００２４】
転送部３３１は、Ｗｅｂブラウザ３２０の転送アプリ起動部３２４からの依頼を受け、サービスプロバイダ３４０〜３６０へ処理コマンドを転送する。また、サービスプロバイダ３４０〜３６０から受信したジョブの実行結果をＷｅｂブラウザ３２０へ転送する。
【００２５】
結果管理部３３２は、各サービスプロバイダに処理を依頼した結果を管理する。
【００２６】
ＦＴＰ送信サービスプロバイダ３４０、ＳＭＢ送信サービスプロバイダ３５０、及びプリントサービスプロバイダ３６０は、転送アプリケーション３３０または外部装置１０２から受信したＷｅｂサービスの要求に応じてジョブを生成し、各種のハードウェア資源（読取装置２０６、印刷装置２０７、記憶装置２０３、ネットワーク装置２０４など）を用いてジョブを実行させるアプリケーションである。ＦＴＰ送信サービスプロバイダ３４０は、ＦＴＰ送信受付部３４１、ＦＴＰ送信ジョブ生成部３４２を有する。ＦＴＰ送信受付部３４１は、転送アプリケーション３３０から転送されて処理コマンドを受け付ける。ＦＴＰ送信ジョブ生成部３４２は、ＦＴＰ送信受付部３４１が受け付けた処理コマンドに基づいて、依頼された処理を実行するためのＦＴＰ送信のジョブを生成する。
【００２７】
ＳＭＢ送信サービスプロバイダ３５０は、ＳＭＢ送信受付部３５１とＳＭＢ送信ジョブ生成部３５２を有する。ＳＭＢ送信受付部３５１は、転送アプリケーション３３０から処理コマンドを受け付ける。ＳＭＢ送信ジョブ生成部３５２は、ＳＭＢ送信受付部３５１が受け付けた処理コマンドを受け取り、依頼された処理を実行するためのＳＭＢ送信のジョブを生成する。
【００２８】
プリントサービスプロバイダ３６０は、プリント受付部３６１、プリントジョブ生成部３６２を有する。プリント受付部３６１は、転送アプリケーション３３０から処理コマンドを受け付ける。プリントジョブ生成部３６２は、プリント受付部３６１が受け付けた処理コマンドを受け取り、依頼された処理を実行するためのプリントジョブを生成する。
【００２９】
このように、ＭＦＰ１０１は複数のサービスプロバイダを有している。
【００３０】
図４は、表示装置２０５に表示する操作画面である。本実施形態では、ＭＦＰ１０１のＷｅｂブラウザ３２０が起動されると、Ｗｅｂブラウザ３２０が外部装置１０２からＨＴＭＬコンテンツを取得することにより操作画面４００を表示する。この例では、操作画面４００には領域４０１〜４０３と実行ボタン４０４とが配置されている。
【００３１】
領域４０１は、指定されたサーバに送信する画像データの入力元（読取装置２０６または記憶装置２０３）を選択する領域である。「スキャン画像」のラジオボタンを押すと、読取装置２０６で読み取って得られた画像データ（以下、スキャン画像）をサーバへ送信する動作をＭＦＰ１０１が行う。「ボックス画像」のラジオボタンを押下すると、記憶装置２０３に記憶されている画像データ（以下、ボックス画像）を送信する送信動作を行う。送信動作は、ＭＦＰ１０１の機能をＷｅｂサービスとして実行するものである。具体的には、スキャン画像とボックス画像の何れかのラジオボタンが押し、更にそのラジオボタンに対応づけられた設定ボタンを押すと、Ｗｅｂブラウザ３２０は、詳細設定の画面（不図示）のコンテンツをＷｅｂアプリケーション３１０から受信する。スキャン画像の詳細設定画面では解像度等のスキャン設定を受け付ける。ボックス画像の詳細設定画面であれば、記憶装置２０３に記憶されている画像データの選択を受け付ける。
【００３２】
領域４０２は、スキャン画像またはボックス画像の送信先の設定を受け付けるための領域である。この例では「ＦＴＰサーバ」と「ＳＭＢサーバ」の選択を受け付けるチェックボックスがある。「ＦＴＰサーバ」の選択を受け付けると、入力された画像（スキャン画像またはボックス画像）を、ＦＴＰプロトコルに従いＦＴＰサーバへ送信する動作をＭＦＰ１０１が行う。「ＳＭＢサーバ」の選択を受け付けると、入力された画像（スキャン画像またはボックス画像）を、ＳＭＢでサーバへ送信する送信動作を行う。この送信動作もＭＦＰ１０１のＷｅｂサービスとして実行するものである。本実施形態では「ＦＴＰサーバ」と「ＳＭＢサーバ」の両方の選択を受け付けることが可能である。「ＦＴＰサーバ」と「ＳＭＢサーバ」のそれぞれには設定ボタンがあり、Ｗｅｂブラウザ３２０は、設定ボタンの押下を受け付けるとそれぞれの詳細設定の画面（不図示）をＷｅｂアプリケーション３１０から取得する。ＳＭＢサーバの詳細設定画面では、ＳＭＢサーバのパスの設定等を受け付ける。ＦＴＰサーバの詳細設定画面では、ＦＴＰサーバのパスの設定等を受け付ける。
【００３３】
領域４０３は、プリントの設定を受け付けるための領域である。この例では、プリントを実行するか否かの選択を受け付けるためのチェックボックスを有する。また、設定ボタンがあり、Ｗｅｂブラウザ３２０は、設定ボタンの押下を受け付けると詳細設定の画面（不図示）をＷｅｂアプリケーション３１０から取得する。プリントの詳細設定画面では、両面で印刷するか等の設定を受け付ける。
【００３４】
実行ボタン４０４は、ジョブの実行の開始を受け付けるためのボタンである。実行ボタン４０４が押下されると、図４の操作画面を介してユーザから受け付けた設定を含む通信要求を外部装置１０２へ送信する。
【００３５】
図５は、本実施形態における外部装置１０２の処理を説明するためのフローチャートである。図５のフローチャートの各ステップを実行するためのプログラムは、外部装置１０２の記憶装置２１３に記憶されており、ＲＡＭ２１２にロードされてＣＰＵ２１１によって実行される。
【００３６】
なお以降の説明では、Ｗｅｂブラウザ３２０がＷｅｂアプリケーション３１０へ送信する情報を「ＨＴＴＰリクエスト」と呼ぶ。そしてＷｅｂアプリケーション３１０がＷｅｂブラウザへ送信する情報を「ＨＴＴＰレスポンス」と呼ぶ。Ｗｅｂアプリケーション３１０は、ＨＴＴＰレスポンスの中に、ＭＦＰ１０１に対するＦＴＰ送信やＳＭＢ送信処理を要求するコマンド、あるいは印刷処理を要求するコマンド等を含むことができる。ＨＴＴＰリクエストは通信要求の一例であり、ＨＴＴＰレスポンスは通信応答の一例である。
【００３７】
図５のフローチャートは、図４の操作画面に配置されている実行ボタン４０４が押下され、ＨＴＴＰリクエスト（通信要求）がＷｅｂブラウザ３２０からＷｅｂアプリケーション３１０へ送信されたことにより開始する。
【００３８】
Ｓ５０１では、Ｗｅｂアプリケーション３１０は、Ｗｅｂブラウザ３２０により送信されたＨＴＴＰリクエストを受信する。受信したＨＴＴＰリクエストは、Ｗｅｂブラウザ３２０で表示装置２０５に表示した操作画面を介して行われたユーザから受け付けた設定を含む。本実施形態では、Ｓ５０１で受信するＨＴＴＰリクエストには、図４の操作画面の４０１〜４０３で設定された値が含まれている。
【００３９】
Ｓ５０２では、Ｗｅｂアプリケーション３１０は、Ｓ５０１で受信したＨＴＴＰリクエストに含まれる設定に基づいてＷｅｂサービスを要求するコマンドを複数生成するか（マルチパートにするか）否かを判断する。この判断は、図４の操作画面を介して設定された４０１〜４０３の情報に基づく。領域４０１で設定されたＦＴＰ送信、領域４０２で設定されたＳＭＢ送信、領域４０３で設定されたプリント処理の内、２つ以上の処理があるかで判断を行う。例えば、図４の操作画面の例では、ＦＴＰ送信とＳＭＢ送信の２つが選択されている。そのため複数のコマンドを生成すると判断する。複数のコマンドを生成すると判断した場合（Ｓ５０２でＹＥＳ）Ｓ５０３へ進む。単一のコマンドを生成すると判断した場合（Ｓ５０２でＮＯ）Ｓ５０８へ進む。
【００４０】
Ｓ５０３では、Ｗｅｂアプリケーション３１０は、ＭＦＰ１０１側で実行されるジョブの結果を、ＭＦＰ１０１から外部装置１０２へ送信する際に、どのような送信方法で送るべきかを判断する。
【００４１】
具体的には、Ｓ５０２で複数のＷｅｂサービスを要求するコマンドを生成すると判定された場合には、その複数のコマンドに基づいてＭＦＰ１０１側で複数のジョブを実行することになる。実行された複数のジョブのそれぞれにかかる時間は、ジョブの種類や、ジョブの設定などによって異なる。そのため、実行されたジョブの結果をＭＦＰ１０１から外部装置１０２へ送信（アップロード）可能となるタイミングも異なる。特に、印刷ジョブの印刷処理にかかる時間は、送信ジョブの画像ファイルの送信処理に比べて時間がかかる場合が多い。
【００４２】
ジョブの実行に要する時間が異なるもの同士を一括して送信すると、時間がかからない処理を含むジョブ（例えば送信ジョブ）が、時間がかかる処理を含むジョブ（例えば印刷ジョブ）にあわせて処理結果を送信することになるので、送信ジョブの実行結果を即座に送信することができない。そのため、送信ジョブは早く完了したにも関わらず、印刷ジョブの完了をＭＦＰ１０１で待たされることになり、外部装置１０２は次の処理に移ることができない。
【００４３】
そこで本実施形態では、ＭＦＰ１０１で実行される複数のジョブのなかに印刷ジョブがある場合には、印刷ジョブの実行結果だけは個別に送信するようにし、複数のジョブのなかに送信ジョブがある場合には、送信ジョブの実行結果については一括して送信するようにした。
【００４４】
例えば、図６の操作画面では、ＳＭＢ送信処理とＦＴＰ送信処理が選択されている。そのため、ＳＭＢ送信処理とＦＴＰ送信処理のそれぞれは一括して送信すると判断する。もし印刷処理が選択されている場合には、その印刷処理については個別に送信すると判断する。
【００４５】
なお本実施形態では、プリント処理は個別送信、送信処理は一括送信というような判断をしている。しかし、プリント処理における印刷枚数が多い場合のみ個別送信にするなど、Ｗｅｂアプリケーション３１０が結果を処理しやすいように判断してよい。一括送信と判断した場合（Ｓ５０３でＹＥＳ）、Ｓ５０４へ進む。個別送信と判断した場合（Ｓ５０３でＮＯ）、Ｓ５０７に遷移する。
【００４６】
Ｓ５０４で、Ｗｅｂアプリケーション３１０は、ＭＦＰ１０１へ送信するＨＴＴＰレスポンスをマルチパートの形式で送信するためのヘッダ部を生成する。
【００４７】
図６（ａ）は、Ｓ５０４でＷｅｂアプリケーション３１０により生成されるＨＴＴＰレスポンスのヘッダ部の一例である。この例では、図４の操作画面でＦＴＰサーバとＳＭＢサーバへの送信が設定された場合に生成するヘッダ部を示している。
【００４８】
コンテントタイプ６０１は、ＨＴＴＰレスポンスがマルチパートの形式で記述されているものであるか否かを識別する識別子である。コンテントタイプ６０１が「ｍｕｌｔｉＰａｒｔ／ｍｉｘｅｄ：ｂｏｕｎｄａｒｙ＝ｍｆＰ＿ｂｏｕｎｄａｒｙ」と記述されている場合、そのＨＴＴＰレスポンスはマルチパートの形式で記述されていることを示している。
【００４９】
第１のバウンダリ６０２は、６０２以降の記述が第１パートであることを示す識別子である。
【００５０】
第１パートのコンテントタイプ６０３は、第１パートのボディ部がサービスプロバイダ３４０〜３６０に処理を要求する処理コマンドを含むか否かを識別する識別子である。第１パートのコンテントタイプ６０３が「ａｐｐｌｉｃａｔｉｏｎ／ｖｎｄ．ａｂｃ．ｗｅｂｓｅｒｖｉｃｅ」である場合、第１パートはサービスプロバイダ３４０〜３６０に処理を要求する処理コマンドであることになる。
【００５１】
第１パートの転送宛先６０４は、第１パートのボディ部に含まれる処理コマンドを転送する宛先である。この例では、第１パートの宛先６０４は「ｈｔｔＰ：／／ｘｘｘ．０．０．１：８０００／ＳｃａｎｔｏｆｔＰ」を示している。本実施形態では、「ｈｔｔＰ：／／ｘｘｘ．０．０．１：８０００／ＳｃａｎｔｏｆｔＰ」は、ＦＴＰ送信サービスプロバイダ３４０に割り当てられているパスであるので、第１パートの転送宛先６０４は、ＦＴＰ送信サービスプロバイダ３４０を示している。
【００５２】
第１パートのマルチパートのＩＤ６０５は、マルチパートの形式で記述されたＨＴＴＰレスポンスがそれぞれのパートに分割された後、分割前はＨＴＴＰレスポンスであったことを特定する際に使用する識別子である。第２パートのマルチパートＩＤ６１２も同じ値となっている。
【００５３】
第１パートの処理結果通知方法６０６は、処理結果を他のパートの処理コマンドに関する処理結果を一括または個別に送信することを示している。第１パートの処理結果通知方法６０６が「同期（ｓｙｎｃ）」を示す場合、ＭＦＰ１０１から外部装置１０２へ通知すべき複数の処理結果を一括して送信することを示している。「非同期（ａｓｙｎｃ）」を示す場合は、ＭＦＰ１０１側でジョブの処理結果が出たタイミングで適宜個別に送信することを示している。
【００５４】
第１パートの転送時コンテントタイプ６０７は、転送アプリケーション３３０がサービスプロバイダにＨＴＴＰレスポンスのボディ部を転送する際にＨＴＴＰヘッダの“Ｃｏｎｔｅｎｔ−Ｔｙｐｅ”フィールドに記載する内容である。
【００５５】
第１パートのアップロード宛先６０８は、Ｗｅｂサービスの要求に応じてＭＦＰ１０１で実行したジョブの実行結果を送信（アップロード）する際の宛先である。
【００５６】
第１パートのボディ部に含まれる処理コマンド６５０は、ＦＴＰ送信サービスプロバイダへの処理コマンドが記載されている。第１パートのボディ部に記載されている処理コマンドは、ＦＴＰ送信サービスプロバイダ３４０へ転送される。第１パートのＨＴＴＰレスポンスのボディ部に記載されている処理コマンド６５０については図６（ｂ）を用いて後述する。
【００５７】
第２のバウンダリ６０９は、６０９以降の記述が第２パートであることを示している。
【００５８】
第２パートのコンテントタイプ６１０、第２パートの転送宛先６１１、第２パートのマルチパートのＩＤ６１２、第２パートの処理結果通知方法６１３、第２パートの転送時コンテントタイプ６１４、第２パートのアップロード宛先６１５のそれぞれについては、基本的に第１パートの６０３、６０４、６０５、６０６、６０７、６０８と同様であるので説明を省略する。
【００５９】
図５の説明に戻る。Ｓ５０５で、Ｗｅｂアプリケーション３１０は、Ｓ５０１にて受信したＨＴＴＰリクエストを元にＨＴＴＰレスポンスの各パートに記述するボディ部を生成する。生成するＨＴＴＰレスポンスのボディ部の一例については図８（ｂ）を用いて説明する。
【００６０】
図８（ｂ）は、第１パートのボディ部に含まれる処理コマンド６５０の一例である。処理コマンド６５０は、ボックス画像データを取得することを要求するコマンド６５１と、画像データをＦＴＰで送信することを要求するコマンド６５２を更に有する。処理コマンド６５０はＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）のフォーマットで記述されている。
【００６１】
コマンド６５１は、ＭＦＰ１０１の記憶装置２０３に記憶されているボックス画像データの取得を要求する命令である。６５１には、ボックス画像データを特定するＩＤ（１０１０１１）が含まれる。
【００６２】
コマンド６５２は、ＭＦＰ１０１に対してボックス画像データの送信を要求する命令である。コマンド６５２には、ＦＴＰ送信の制御に関わる設定を記述することができる。例えば、“ＦｔｐＡｄｄｒｅｓｓ”タグで、送信する宛先を示すＩＰアドレスを指定し、“ＦｉｌｅＦｏｒｍａｔ”タグで送信する際にＰＤＦなどの画像フォーマットに変換してから送信するかを指定することができる。
【００６３】
Ｓ５０６で、Ｗｅｂアプリケーション３１０は、生成されたヘッダ部とボディ部を含む複数のパートを結合し、マルチパートの形式の１つのＨＴＴＰレスポンスとしてＷｅｂブラウザ３２０に送信して本処理を終了する。
【００６４】
Ｓ５０７は、Ｓ５０３で個別に送信すると判定された場合の処理である。Ｓ５０７で、Ｗｅｂアプリケーション３１０は、マルチパートで送信するための各パートのＨＴＴＰレスポンスのヘッダ部を生成する。この際、各パートのヘッダ部にはジョブの処理結果を個別に送信することを示す情報（ａｓｙｎｃ）を付加する。それ以外の点については、Ｓ５０４の処理と同一である。
【００６５】
なお、図５には図示していないが、Ｓ５０２でマルチパートにすると判定された場合には、マルチパートにすると判定された際のパート数だけＳ５０３、Ｓ５０４（またはＳ５０７）、Ｓ５０５を繰り返すことになる。
【００６６】
Ｓ５０８は、Ｓ５０２でＨＴＴＰレスポンスを生成する際にマルチパートの形式にしないと判定された場合の処理である。Ｓ５０８では、Ｗｅｂアプリケーション３１０は、Ｓ５０１で受信したＨＴＴＰリクエストを元にＨＴＴＰレスポンスのヘッダ部を生成する。
【００６７】
Ｓ５０９では、Ｗｅｂアプリケーション３１０は、Ｓ５０１で受信したＨＴＴＰリクエストを元に、ＨＴＴＰレスポンスに記述するボディ部を生成する。
【００６８】
Ｓ５１０では、Ｗｅｂアプリケーション３１０は、Ｓ５０８、Ｓ５０９で生成したＨＴＴＰレスポンスのヘッダ部と、ＨＴＴＰレスポンスのボディ部を結合してＨＴＴＰレスポンスとしてＷｅｂブラウザ３２０に送信する。
【００６９】
図７は、本実施形態におけるＭＦＰ１０１の処理を説明するためのフローチャートである。図７のフローチャートの各ステップを実行するためのプログラムは、ＭＦＰ１０１の記憶装置２０３に記憶されており、ＲＡＭ２０２にロードされてＣＰＵ２０１によって実行される。
【００７０】
図７のフローチャートは、図５のＳ５０６またはＳ５１０でＷｅｂアプリケーション３１０がＷｅｂブラウザ３２０へＨＴＴＰレスポンスを送信したことにより処理を開始する。
【００７１】
Ｓ７０１で、Ｗｅｂブラウザ３２０は、外部装置１０２のＷｅｂアプリケーション３１０により送信されたＨＴＴＰレスポンスを受信する。受信したＨＴＴＰレスポンスは、図６で示したようなヘッダ部とボディ部をもつメッセージである。
【００７２】
Ｓ７０２で、Ｗｅｂブラウザ３２０は、Ｓ７０１で受信したＨＴＴＰレスポンスがマルチパートの形式で記述されているかを判断する。具体的には、Ｓ７０１で受信したＨＴＴＰレスポンスのヘッダ部に記載の、コンテントタイプ６０１が“ｍｕｌｔｉＰａｒｔ”を示すかを否か判断する。マルチパートの形式で記述されていると判断した場合（Ｓ７０２でＹＥＳ）Ｓ７０３に遷移する。マルチパートの形式で記述されていないと判断した場合（Ｓ７０２でＮＯ）Ｓ７０４に遷移する。
【００７３】
Ｓ７０３で、Ｗｅｂブラウザ３２０の解析部３２１はマルチパートのＨＴＴＰレスポンスを分割する。Ｓ７０１で受信したＨＴＴＰレスポンスのメッセージは、バウンダリ６０２、６０９の“ｍｆｐ＿ｂｏｕｎｄａｒｙ”で区切られている。解析部３２１は、この“ｍｆｐ＿ｂｏｕｎｄａｒｙ”を識別して、この識別子の前後で複数のパートに分割する。分割された複数のパートは、別々のＨＴＴＰレスポンスとする。
【００７４】
Ｓ７０４は、Ｓ７０５ないしＳ７０９の繰り返しが所定の数（分割されたＨＴＴＰレスポンスの数）だけ終了したかを判断する。図６の例では、ＨＴＴＰレスポンス６００のパートは２つなので、２回処理が繰り返し行われたかを判断する。なお、もしＳ７０１で受信したＨＴＴＰレスポンスがマルチパートの形式でない場合は１度だけＳ７０５からＳ７０９を処理する。
【００７５】
Ｓ７０５で、Ｗｅｂブラウザ３２０の解析部３２１は、Ｓ７０３で分割されたＨＴＴＰレスポンス、またはマルチパートの形式でない場合はＳ７０１で受信したＨＴＴＰレスポンスのヘッダ部を解析する。そして、ＨＴＴＰレスポンスのヘッダ部のＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドがａｐｐｌｉｃａｔｉｏｎ／ｖｎｄ．ｘｘｘ．ｗｅｂｓｅｒｖｉｃｅの値をもつかどうかを判断する。この値は、ＨＴＴＰレスポンスのボディ部を転送アプリケーションへ転送すべきか、Ｗｅｂブラウザ３２０が通常のＷｅｂコンテンツとして処理すべきかを判断するための識別子である。ａｐｐｌｉｃａｔｉｏｎ／ｖｎｄ．ｘｘｘ．ｗｅｂｓｅｒｖｉｃｅの値をもつ場合（Ｓ７０５でＹＥＳ）Ｓ７０６に進む。そうでない場合（Ｓ７０５でＮＯ）Ｓ７０９に進む。
【００７６】
Ｓ７０６で、Ｗｅｂブラウザ３２０の転送アプリ起動部３２４は、転送アプリケーション３３０を起動する。このとき起動とともに、転送アプリケーション３３０に対して、ヘッダ部にａｐｐｌｉｃａｔｉｏｎ／ｖｎｄ．ｘｘｘ．ｗｅｂｓｅｒｖｉｃｅの値をもつＨＴＴＰレスポンスを引き渡す。
【００７７】
Ｓ７０７で、転送アプリケーション３３０は、Ｓ７０６で受け取ったＨＴＴＰレスポンスのヘッダ部に記述されている転送宛先（６０４または６１１）に、Ｓ７０３で分割されたＨＴＴＰレスポンスのボディ部の処理コマンドをサービスプロバイダへ送信する。
【００７８】
図６の例では、第１パートの宛先６０４はＦＴＰ送信サービスプロバイダ３４０の宛先を表している。そのため、第１パートに対応する処理コマンドはＦＴＰ送信サービスプロバイダに送信される。また第２パートの宛先６１１は、ＳＭＢ送信サービスプロバイダの表しているため、第２パートに対応する処理コマンドはＳＭＢ送信サービスプロバイダ３５０に送信される。
【００７９】
第１パートに対応する処理コマンドを受信したＦＴＰ送信サービスプロバイダ３４０は、転送アプリケーション３３０から処理コマンドをＦＴＰ送信受付部３４１で受信する。ＦＴＰ送信ジョブ生成部３４２は処理コマンドに従ってＦＴＰ送信ジョブを生成する。ＦＴＰ送信ジョブを生成すると、ＭＦＰ１０１は、Ｗｅｂサービスとして読取装置２０６で画像を読み取りネットワーク装置２０４により画像データを送信する。
【００８０】
第２パートに対応する処理コマンドを受信したＳＭＢ送信サービスプロバイダ３５０は、転送アプリケーション３３０から処理コマンドをＳＭＢ送信受付部３５１で受信する。ＳＭＢ送信ジョブ生成部３５２は処理コマンドに従ってＳＭＢ送信ジョブを生成する。ＳＭＢ送信ジョブを生成すると、ＭＦＰ１０１は、Ｗｅｂサービスとして読取装置２０６で画像を読み取りネットワーク装置２０４によりＳＭＢのプロトコルで画像データを送信する。
【００８１】
Ｓ７０８で、転送アプリケーション３３０の結果管理部３３２は、ＨＴＴＰレスポンスのヘッダ部に記述されている情報を記憶装置２０３に格納する。具体的には、結果管理部３３２が、ＨＴＴＰレスポンスのヘッダ部に記述されている次の情報を図８のような管理テーブルとして管理する。
【００８２】
図８は、Ｓ７０８で転送アプリケーション３３０により格納された情報を管理している管理テーブルの一例である。
【００８３】
マルチパートＩＤ（ＭｕｌｔｉＩＤ）８０１は、Ｓ７０６でＷｅｂブラウザ３２０から転送されたＨＴＴＰレスポンスに記述されているマルチパートＩＤである。マルチパートＩＤ６０５や６１２で指定されている値がこの項目に設定される。
【００８４】
サービスプロバイダ転送宛先（ＳｅｒｖｉｃｅＡｄｄｒｅｓｓ）８０２は、どのサービスプロバイダへ処理コマンドを転送したかを特定する情報（Ｘ−ＷｅｂｓｅｒｖｉｃｅＡｄｄｒｅｓｓ）として転送宛先６０４や６１１で指定されている値が設定される。
【００８５】
アップロード宛先（ＵｐｌｏａｄＡｄｄｒｅｓｓ）８０３には、ジョブの実行結果を送信する宛先としてアップロード宛先６０８や６１５で指定されている値が設定される。
【００８６】
同期／非同期（ｓｙｎｃ／ａｓｙｎｃ）８０４には、ジョブの実行結果の送信方法を既定する属性として、処理結果通知方法６０６や６１３で指定されている値が設定される。
【００８７】
例えば、図６のＨＴＴＰレスポンス６００の第１パートであれば、第１パートのマルチパートのＩＤ６０５で指定されている「１１１２２２」の値と、転送宛先６０４で指定されている「ｈｔｔｐ：／／１２７．０．０．１：８０／Ｓｃａｎｔｏｆｔｐ」の値と、アップロード宛先６０８で指定されている「ｈｔｔｐ：／／ａａａ．ｃｏ．ｊｐ／ｂｂｂ／ｃｃｃ」の値と、第１パートの処理結果通知方法６０６で指定されている「ｓｙｎｃ」の値とを関連づけて格納する。
【００８８】
状態８０５は、該当するレコードによって特定されるジョブの状態を示す。この状態８０５の値が「アップロード済み」を示しているときは、該当レコードのジョブの実行結果を既に外部装置へ送信した（アップロード済みである）ことを示す。この状態８０５の値が「サービスプロバイダの処理結果待ち」を示しているときは、該当レコードのジョブの実行結果をサービスプロバイダから待機していることを示す。
【００８９】
更に、この状態８０５の値が、「他のサービスプロバイダの処理結果待ち」を示しているときは、該当レコードのジョブの実行結果については既に受信しているが、複数ジョブの実行結果を一括して送信するために他のサービスプロバイダによるジョブの実行結果を受信するのを待機していることを示す。この場合は、同じマルチパートＩＤを示し、かつ、８０４の値が「同期（ｓｙｎｃ）」を示しているレコードのジョブの実行結果を受信するのを待機していることになる。
【００９０】
Ｓ７０９は、Ｓ７０５でコンテントタイプに所定の値が含まれないと判定された場合の処理である。Ｗｅｂブラウザ３２０の解析部３２１は、ＨＴＴＰレスポンスのボディ部に記述されたＨＴＭＬデータを解析し、その結果に基づいて表示装置２０５に操作画面を表示する。
【００９１】
図９は、図７のフローチャートの続きの処理である。
【００９２】
Ｓ９１１で、転送アプリケーション３３０は、ＦＴＰ送信サービスプロバイダ３４０、ＳＭＢ送信サービスプロバイダ３５０、またはプリントサービスプロバイダ３６０からの応答（ジョブの実行結果）を受信したかの監視を開始する。受信するジョブの実行結果は、ジョブの完了や実行エラーなどである。応答を受信した場合（Ｓ９１１でＹＥＳ）Ｓ９１２に遷移する。応答を受信していない場合（Ｓ９１１でＮＯ）は監視を続ける。
【００９３】
Ｓ９１２で、転送アプリケーション３３０の結果管理部３３２は、サービスプロバイダ３４０〜３６０からの応答に含まれる結果を格納する。
【００９４】
Ｓ９１３で、転送部３３１は、サービスプロバイダ３４０〜３６０から受信した処理結果の処理結果通知方法を確認する。確認には、Ｓ７０８で格納した処理結果の通知方法（Ｘ−Ｗｅｂｓｅｒｖｉｃｅ−ＭｕｌｔｉＲｅｓｐｏｎｓｅ）を用いる。ＨＴＴＰレスポンス６００の第１パートであれば、第１パートの処理結果通知方法６０６の値である。処理結果の通知方法が同期（Ｓｙｎｃ）である場合は、Ｓ９１４に遷移する。非同期（Ａｓｙｎｃ）である場合はＳ９１８に遷移する。
【００９５】
本実施形態では、Ｓ７０８で格納した同期／非同期（ｓｙｎｃ／ａｓｙｎｃ）８０４の値に基づいてジョブの処理結果を一括して送信するか個別に送信するかを判断している。しかし、変形例として、Ｓ７０８で格納したアップロード宛先（ＵｐｌｏａｄＡｄｄｒｅｓｓ）８０３の値を参照して同期であるか非同期であるかを確認してもよい。この場合、マルチパートＩＤ（ＭｕｌｔｉＩｄ）８０１が同じ値で、アップロード宛先（ＵｐｌｏａｄＡｄｄｒｅｓｓ）８０３が同一の値であれば、その同一の宛先へジョブの実行結果を一括して送信する。一方、マルチパートＩＤ（ＭｕｌｔｉＩｄ）８０１が同じ値で、アップロード宛先（ＵｐｌｏａｄＡｄｄｒｅｓｓ）８０３が異なる宛先であれば、個別に送信する。
【００９６】
また別の変形例として、処理結果を外部装置１０２へ送信（アップロード）する順番を指定できるようにしてもよい。例えば、ＨＴＴＰレスポンスの第１パートの処理結果通知方法６０６を「ｓｙｎｃ」ではなく「１」とし、第２パートの処理結果通知方法６１３を「ｓｙｎｃ」ではなく「２」とする。これにより、転送アプリケーション３３０は、第２パートの処理であるＳＭＢ送信サービスプロバイダの処理が先に完了したとしても、第１パートの処理が終了するまでは、処理結果の通知をＷｅｂブラウザ３２０に依頼しない構成が可能となる。
【００９７】
また別の変形例として、処理結果通知方法が「ｓｙｎｃ」と指定されていたとしても、Ｓ９１１で受信したジョブの実行結果がエラーを示すものであれば、他のジョブの実行結果を待たずに即座に外部装置１０２へ送信するようにしてもよい。
【００９８】
Ｓ９１４で、転送アプリケーション３３０の転送部３３１は、結果管理部３３２を参照して、マルチパートＩＤ（ＭｕｌｔｉＩｄ）８０１が同じ値であって、同期／非同期（ｓｙｎｃ／ａｓｙｎｃ）８０４の値がｓｙｎｃとなっているジョブの実行結果がすべて揃っているかを確認する。実行結果がすべて揃っている場合（Ｓ９１４でＹＥＳ）Ｓ９１５に遷移する。揃っていない場合（Ｓ９１４でＮＯ）Ｓ９１１に遷移する。
【００９９】
Ｓ９１５で、転送アプリケーション３３０は、Ｗｅｂブラウザ３２０のアップロード部３２３に対して、サービスプロバイダ３４０〜３６０の処理結果をマルチパートの形式でＷｅｂアプリケーション３１０に対して送信（アップロード）することを依頼する。このとき転送アプリケーション３３０は、結果管理部３３２に格納されているマルチパートＩＤ（ＭｕｌｔｉＩｄ）８０１の値が同じであって、かつ、同期／非同期（ｓｙｎｃ／ａｓｙｎｃ）８０４の値がｓｙｎｃを示す全ての処理結果をアップロード部３２３に渡す。依頼に際して、転送アプリケーション３３０は、アップロード部３２３に対してアップロードの宛先としてアップロード宛先を指定する。
【０１００】
本実施形態では、各パートのＨＴＴＰレスポンスのヘッダ部に指定するアップロード宛先は、同じ宛先となっている（６０８、６１５）。しかし、異なる宛先が指定されていてもよい。更に、異なる宛先であると判断した場合は，個別に送信するようにしてもよい。
【０１０１】
また本実施形態では各パートのレスポンスのヘッダ部にアップロード宛先（Ｘ−Ｗｅｂｓｅｒｖｉｃｅ−ＵｐｌｏａｄＡｄｄｒｅｓｓ）を指定する構成となっている。しかし変形例として、例えば、アップロード宛先をＭＦＰ１０１で予め決められた値とし、外部装置１０２（Ｗｅｂアプリケーション３１０）から指定しないシステムとしても良い。
【０１０２】
また転送アプリケーション３３０からアップロード部３２３にアップロード宛先を指定することはせず、Ｗｅｂブラウザ３２０自身がジョブの処理結果をアップロードする宛先を記憶しておきその情報を使用してもよい。
【０１０３】
Ｓ９１６で、Ｗｅｂブラウザ３２０は、指定されたアップロード宛先に処理結果をマルチパートの形式でアップロードする。具体的には、解析部３２１が転送アプリケーション３３０から受け取った複数の処理結果を結合し、マルチパートの形式で一つのＨＴＴＰリクエストを生成する。アップロード部３２３は、指定されたアップロードの宛先に対してアップロードを行う。
【０１０４】
Ｓ９１７で、転送アプリケーション３３０は、サービスプロバイダ３４０ないし３６０へ要求した処理がすべて終了したかを判断する。転送アプリケーション３３０は、結果管理部３３２にデータが残っているかで判断を行う。データが残っていない場合はすべての処理は終了していると判断し、本処理を終了する。データが残っている場合は、Ｓ９１１に遷移する。
【０１０５】
Ｓ９１８で、転送アプリケーション３３０は、Ｗｅｂブラウザ３２０のアップロード部３２３に対して、処理結果をＷｅｂアプリケーション３１０に対してアップロードするように依頼し、Ｓ９１９に遷移する。
【０１０６】
Ｓ９１９で、アップロード部３２３は、転送アプリケーション３３０から指定されたアップロード宛先に対して処理結果をアップロードし、Ｓ９１７に遷移する。
【０１０７】
図１０は、ＭＦＰ１０１と外部装置１０２を有する情報処理システムにおける処理手順を示すシーケンス図である。図１０のシーケンス図は、外部装置１０２が複数のサービスプロバイダに処理を要求し、要求された処理の結果を、外部装置１０２へ送信する場合についての処理手順である。なお図１０は、複数の処理結果を一括して外部装置１０２へ送信する場合の一例であり、図１１は複数の処理結果を個別に外部装置１０２へ送信する場合の一例である。
【０１０８】
まず、ユーザ入力装置２０５からＷｅｂブラウザ３２０の起動を行うためのボタン（不図示）押下をユーザから受け付けると、ＭＦＰ１０１はＷｅｂブラウザ３２０を起動する。受け付けるボタンは、ユーザ入力装置２０５のハードウェアボタンでも表示装置２０５のタッチパネルに表示されたボタンでもよい。
【０１０９】
Ｓ１００１で、Ｗｅｂブラウザ３２０は、起動すると外部装置１０２のＷｅｂアプリケーション３１０に図４の画面のコンテンツを特定するＵＲＬを含む通信要求（ＨＴＴＰリクエスト）を送信する。本実施形態では、このＵＲＬは予めＷｅｂブラウザ３２０に設定されている。ＨＴＴＰリクエストの送信方法にはＧＥＴコマンドを利用する。
【０１１０】
Ｓ１００２で、Ｗｅｂアプリケーション３１０は、Ｓ１００１で送信した通信要求に応じて表示装置２０５に表示する操作画面のＨＴＭＬデータを生成する。そして、生成したＨＴＭＬデータを含む通信応答（ＨＴＴＰレスポンス）をＷｅｂブラウザ３２０へ送信する。Ｗｅｂブラウザ３２０は、受信した通信応答に含まれるＨＴＭＬデータを解析し、表示装置２０５に図４の画面を表示する。
【０１１１】
Ｓ１００３で、Ｗｅｂブラウザ３２０は、図４の画面で実行ボタン４０４がユーザに押されことに応じて、図４の画面で設定されたパラメータ（領域４０１〜４０３に入力された値等）を含む通信要求をＷｅｂアプリケーション３１０へ送信する。ＨＴＴＰリクエストの送信方法にはＰＯＳＴコマンドを利用する。
【０１１２】
Ｓ１００４では、通信応答を受信したＷｅｂアプリケーション３１０は、ＭＦＰ１０１の機能をＷｅｂサービスとして利用するため、Ｗｅｂサービスを要求する処理コマンドを生成する。なおＷｅｂサービスの要求は、リモートプロシージャコールと呼ばれる技術により遠隔からサービスプロバイダ３４０〜３６０を呼び出すものである。Ｗｅｂアプリケーション３１０は、生成した処理コマンドを含む通信応答をＷｅｂブラウザ３２０へ送信する。複数のＷｅｂサービスを要求する場合には、上述のようにマルチパートの形式で記述された通信応答を送信する。
【０１１３】
Ｗｅｂブラウザ３２０は、受信した通信応答に基づいて転送アプリケーション３３０を呼び出す（Ｓ１００５、Ｓ１００７）。この例では、Ｓ１００５の呼び出しは、ＦＴＰ送信サービスプロバイダ３４０にＷｅｂサービスを要求するための呼び出しである。この例では、Ｓ１００５の呼び出しは、ＳＭＢ送信サービスプロバイダ３５０にＷｅｂサービスを要求するための呼び出しである。
【０１１４】
転送アプリケーション３３０は、通信応答に記述されている宛先（サービスプロバイダ３４０〜３６０のいずれか）へ処理コマンドを転送する。この例では、通信応答にＦＴＰ送信サービスプロバイダ３４０とＳＭＢ送信サービスプロバイダ３５０の宛先が記述されている。転送アプリケーション３３０は、Ｓ１００４で受信した通信応答に含まれる、ＦＴＰ送信サービスプロバイダ３４０に処理を要求するための処理コマンドを抽出してＦＴＰ送信サービスプロバイダ３４０へ転送する（Ｓ１００６）。ＦＴＰ送信サービスプロバイダ３４０は、転送された処理コマンドを受け付け、処理コマンドに従ったＦＴＰ送信ジョブを生成する。
【０１１５】
更に転送アプリケーション３３０は、Ｓ１００７の呼び出された際に受信したＳＭＢ送信サービスプロバイダに処理を要求するための処理コマンドをＳＭＢ送信サービスプロバイダへ転送する（Ｓ１００８）。
【０１１６】
Ｓ１００９で、ＦＴＰ送信サービスプロバイダ３４０は、実行されたジョブの結果を転送アプリケーション３３０へ送信する。同様に、Ｓ１０１０では、ＳＭＢ送信サービスプロバイダは、実行されたＳＭＢ送信ジョブの結果を転送アプリケーション３３０へ送信する。Ｓ１００９とＳ１０１０で送信された２つの実行結果を受け取った転送アプリケーション３３０は、その２つの実行結果を一括してＷｅｂアプリケーション３１０に送信（アップロード）するように、Ｗｅｂブラウザ３２０に依頼する（Ｓ１０１１）。Ｓ１０１２で、Ｗｅｂブラウザは、Ｓ１００９とＳ１０１０で受け取った結果を含む通信要求（ＨＴＴＰリクエスト）をＷｅｂアプリケーション３１０へ送信する。
【０１１７】
Ｓ１０１２によると、ＭＦＰ１０１は、ＦＴＰ送信サービスプロバイダ３４０による処理の結果と、ＳＭＢ送信サービスプロバイダ３５０による処理の結果を、一括して、外部装置１０２へ送信（アップロード）する。そのため、少ない通信回数で済む。
【０１１８】
図１１は、ＭＦＰ１０１のＦＴＰ送信サービスプロバイダ３４０と、プリントサービスプロバイダ３６０とを呼び出すものであり、これらのサービスプロバイダの実行結果を、個別に外部装置１０２へ送信（アップロード）する点が図１０と異なる。Ｓ１００１〜Ｓ１０１０については図１０と実質的に同様なので説明を省略する。
【０１１９】
Ｓ１０１３では、転送アプリケーション３３０は、Ｓ１００９でＦＴＰ送信ジョブの実行結果を受け取ると、その実行結果を外部装置１０２へアップロードするようＷｅｂブラウザ３２０へ依頼する。このとき転送アプリケーション３３０は、別のサービスプロバイダによるジョブの実行結果を受け取っていなくても、その実行結果の受け取りを待たずにＷｅｂブラウザ３２０へ依頼する。Ｗｅｂブラウザ３２０は、Ｓ１０１３での依頼に従い、実行結果を含む通信要求（ＨＴＴＰリクエスト）を外部装置１０２のＷｅｂアプリケーション３１０へＰＯＳＴコマンドで送信する。
【０１２０】
Ｓ１０１４では、転送アプリケーション３３０は、Ｓ１０１０でプリントジョブの実行結果を受け取ると、その実行結果を外部装置へアップロードするように、Ｗｅｂブラウザ３２０へ依頼する。Ｗｅｂブラウザ３２０は、Ｓ１０１３での依頼に従って、実行結果を含む通信要求をＷｅｂアプリケーション３１０へＰＯＳＴコマンドで送信する。
【０１２１】
Ｓ１０１３やＳ１０１４のよると、ＭＦＰ１０１は、ジョブの実行結果を受け取ると即座にＷｅｂアプリケーション３１０へ送信するので、外部装置１０２は迅速に次の処理に移ることができる。
【０１２２】
本実施形態においては、外部装置１０２で生成したＷｅｂサービスの要求である処理コマンドを受信した場合、ＭＦＰ１０１は、複数のジョブを並行して実行する。このときジョブの実行結果を一括して外部装置１０２へ送信するか個別に送信するかを判断し、その判断結果に基づいて送信方法を変えることにより、ジョブの内容やジョブの種類、ジョブの実行時間などを考慮して適切な送信方法を決定することができる。
【０１２３】
更に、一括して送信するか個別に送信するかの判断は、外部装置１０２が送信する処理コマンドに付加された情報（ＳｙｎｃまたはＡｓｙｎｃ）に基づいて判断するようにした。この結果、ＭＦＰ１０１での処理結果をどのように送信（アップロード）するかを外部装置１０２が指定することができる。
【０１２４】
（他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１２５】
１０１  ＭＦＰ
１０２  外部装置
３１０  Ｗｅｂアプリケーション
３２０  Ｗｅｂブラウザ
３３０  転送アプリケーション
３４０  ＦＴＰ送信サービスプロバイダ
３５０  ＳＭＢ送信サービスプロバイダ
３６０  プリントサービスプロバイダ
【図１】
0005641921.tif 000002
【図２】
0005641921.tif 000003
【図３】
0005641921.tif 000004
【図４】
0005641921.tif 000005
【図５】
0005641921.tif 000006
【図６】
0005641921.tif 000007
【図７】
0005641921.tif 000008
【図８】
0005641921.tif 000009
【図９】
0005641921.tif 000010
【図１０】
0005641921.tif 000011
【図１１】
0005641921.tif 000012