(57)【要約】【課題】Ｗｅｂブラウザ上で、ユーザーがデバイスの制御を指示した後、継続してＷｅｂアプリケーションの同一画面上で、処理結果の確認と継続した操作を可能にする情報処理システムを提供する。【解決手段】このシステムは、サーバ装置と、当該サーバ装置に接続された画像処理装置とを含む情報処理システムである。画像処理装置は、サーバ装置により提供される操作画面を表示する表示制御手段と、サーバ装置から受信した処理要求に応じた処理を実行する処理手段とを備える。また、表示制御手段は、サーバ装置からの操作画面を介した要求に対する応答を受信する受信手段と、処理手段による処理結果を送信したことに対する応答としてスクリプトを受信した場合、操作画面を更新することなくスクリプトを実行する実行手段と、を備える。さらに、サーバ装置は、操作画面を介した要求に対して応答する応答手段を備える。【選択図】図５
2016009364.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と、前記サーバ装置に接続された画像処理装置とを含む情報処理システムであって、
前記サーバ装置は、
操作画面を前記画像処理装置に提供する提供手段と、
前記画像処理装置で行われた前記操作画面を介した操作に対して応答する応答手段と、を備え、
前記画像処理装置は、
前記サーバ装置により提供される操作画面を表示する表示制御手段と、
前記操作画面を介した操作に対する応答として処理要求を前記サーバ装置から受信した場合、前記処理要求に応じた処理を実行する処理手段と、
を備え、
前記表示制御手段は、
前記処理手段による前記処理の結果を前記サーバ装置に送信したことに対する応答としてスクリプトを前記サーバ装置から受信した場合、前記操作画面を更新することなく前記スクリプトを実行する実行手段
を備えることを特徴とする情報処理システム。
【請求項２】
前記表示制御手段は、前記実行手段が前記スクリプトを実行することによって、前記操作画面に追加して、前記スクリプトに従ったダイアログを表示する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記応答手段は、前記処理手段による処理結果を受信したことに対する応答として、前記スクリプトを送信し、前記操作画面を介した操作が前記処理手段で処理を実行するための操作である場合、応答として前記処理要求を送信する
ことを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記処理結果は、前記処理手段による処理が正常に完了したか否かの情報を含み、
前記サーバ装置は、前記情報に応じたスクリプトを生成する
ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理システム。
【請求項５】
前記実行手段は、前記受信したスクリプトが予め指定されたサーバ装置から送信されている場合に限り、前記スクリプトを実行する
ことを特徴とする請求項１〜４のいずれか１項に記載の情報処理システム。
【請求項６】
前記サーバ装置は、Ｗｅｂサーバであり、前記表示制御手段は、Ｗｅｂブラウザである
ことを特徴とする請求項１〜５のいずれか１項に記載の情報処理システム。
【請求項７】
サーバ装置と、前記サーバ装置に接続された画像処理装置とを含む情報処理システムの制御方法であって、
前記サーバ装置において、
操作画面を前記画像処理装置に提供する工程と、
前記画像処理装置で行われた前記操作画面を介した操作に対して応答する工程と、
を有し、
前記画像処理装置において、
前記サーバ装置により提供される操作画面を表示する工程と、
前記操作画面を介した操作に対する応答として処理要求を前記サーバ装置から受信した場合、前記処理要求に応じた処理を実行する工程と、
前記処理を実行する工程において、前記処理の結果を前記サーバ装置に送信したことに対する応答としてスクリプトを前記サーバ装置から受信した場合、前記操作画面を更新することなく前記スクリプトを実行する工程と、
を有することを特徴とする情報処理システムの制御方法。
【請求項８】
サーバ装置に接続された画像処理装置であって、
前記サーバ装置により提供される操作画面を表示する表示制御手段と、
前記操作画面を介した操作に対する応答として処理要求を前記サーバ装置から受信した場合、前記処理要求に応じた処理を実行する処理手段と、
を備え、
前記表示制御手段は、
前記処理手段による前記処理の結果を前記サーバ装置に送信したことに対する応答としてスクリプトを前記サーバ装置から受信した場合、前記操作画面を更新することなく前記スクリプトを実行する実行手段
を備えることを特徴とする画像処理装置。
【請求項９】
請求項７に記載の情報処理システムの制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバと、Ｗｅｂサーバサーバに接続され、当該Ｗｅｂサーバにより提供される操作画面を表示するＷｅｂブラウザを備えた画像処理からなる情報処理システム、情報処理システムの制御方法、プログラムに関する。
【背景技術】
【０００２】
近年、Ｗｅｂブラウザを備えているスキャナやプリンタなどの機能を備えたＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）が存在する。Ｗｅｂブラウザを備えているＭＦＰは、Ｗｅｂサーバにより提供される操作画面をＭＦＰのＷｅｂブラウザに表示し、ユーザーからの各種指示を受け付ける。また、ＭＦＰが備える各機能を利用するための指示を入力する操作画面をＷｅｂサーバが提供し、ユーザーがＷｅｂブラウザ上に表示された操作画面を介して、ＭＦＰに対する指示を入力するシステムも存在する。
【０００３】
このシステムでは、Ｗｅｂサーバは、ユーザーから入力された指示の内容に従って、ＭＦＰに対して各種処理の実行を依頼する。そして、この依頼を受けたＭＦＰのジョブ実行モジュールは、依頼された処理を実行する。これにより、ＭＦＰを操作するための操作画面をＭＦＰ内で保持しておく必要がなくなり、また操作画面の変更もＷｅｂサーバ上で容易に行うことができるようになる。
【０００４】
具体的には、ＭＦＰの各機能をＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）的に公開し、Ｗｅｂサーバから適宜呼び出す方法が考えられている。この方法によれば、Ｗｅｂサーバ側に処理のメインロジックを持たせ、ＭＦＰの制御やユーザーとの対話的処理をＷｅｂサーバに実行させて、ＭＦＰの処理の負荷を軽減させることができる。この方法では、ＭＦＰがファイアウォールで守られていたり、ネットワークアドレス変換を用いる環境にいたりする場合、ＭＦＰは、外部ネットワークに存在するＷｅｂサーバからのＲＰＣ要求を受け付けることができない。すなわち、ファイアウォールは、一般的に内部から外部への接続は許可するが、外部から内部への接続は許可しない。また、ＭＦＰがアドレス変換を用いる環境にいる場合は、サーバ側からＭＦＰを特定できない。
【０００５】
そこで、特許文献１のような技術が考えられている。具体的には、Ｗｅｂブラウザに表示された操作画面を介して入力された指示に基づいてＷｅｂサーバが制御スクリプトを提供し、デバイスがその制御スクリプトを実行することでＭＦＰを操作する。制御スクリプトは、Ｗｅｂブラウザからのリクエストに対する応答としてＷｅｂブラウザが受信し、ジョブ実行モジュールに転送される。そのため、ＷｅｂサーバからＭＦＰにコネクションを張る必要がなく、ＭＦＰがファイアウォールで守られていたり、ネットワークアドレス変換を用いる環境にいたりする場合でも利用が可能である。また、制御スクリプトを実行した結果を、Ｗｅｂブラウザを介してＷｅｂサーバにアップロードすることで、Ｗｅｂサーバは処理結果に応じた画面をＷｅｂブラウザに返し、表示させることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１０５０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１で開示された方法を用いた場合、ＷｅｂブラウザがＷｅｂサーバに対して処理結果を通知すると、必ずレスポンスを受信して画面の更新を行ってしまう。このとき、Ｗｅｂサーバがレスポンスを返さなければ画面の更新はされないが、ユーザーが処理結果を知ることができなくなってしまう。そのため、ユーザーが処理結果を確認しつつ、継続してＷｅｂアプリケーションの同一画面を操作することができなかった。
【０００８】
これに対して、例えば、Ａｊａｘ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ（登録商標）＋ＸＭＬ）を用いて画面遷移のない動的なＷｅｂアプリケーションを構築する方法も提案されている。しかしながら、ＭＦＰなどの組込み機器に搭載されるＷｅｂブラウザではＡｊａｘへの対応が不十分であったり、Ａｊａｘを利用するためのアプリケーションフレームワークに対応していなかったりといったことが発生する可能性がある。そのため、Ａｊａｘを用いたＭＦＰ向けＷｅｂアプリケーションの開発は難しい。
【０００９】
本発明は、上記の問題に鑑みてなされたものであり、Ｗｅｂブラウザ上で、ユーザーがデバイスの制御を指示した後、継続してＷｅｂアプリケーションの同一画面上で、処理結果の確認と継続した操作を可能にする情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の情報処理システムは、サーバ装置と、前記サーバ装置に接続された画像処理装置とを含む情報処理システムであって、前記画像処理装置は、前記サーバ装置により提供される操作画面を表示する表示制御手段と、前記サーバ装置から受信した処理要求に応じた処理を実行する処理手段と、を備え、前記表示制御手段は、前記サーバ装置からの前記操作画面を介した要求に対する応答を受信する受信手段と、前記処理手段による前記処理結果を送信したことに対する応答としてスクリプトを受信した場合、前記操作画面を更新することなく前記スクリプトを実行する実行手段と、を備え、前記サーバ装置は、前記操作画面を介した要求に対して応答する応答手段を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、Ｗｅｂブラウザ上で、ユーザーがデバイスの制御を指示した後、継続してＷｅｂアプリケーションの同一画面上で、処理結果の確認と継続した操作を可能にする情報処理システムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係る情報処理システムの全体構成を示す図である。
【図２】本発明の一実施形態に係るＭＦＰの構成を示すブロック図である。
【図３】本発明の一実施形態に係るＷｅｂサーバの構成を示すブロック図である。
【図４】ＭＦＰおよびＷｅｂサーバのソフトウェア構成を示す図である。
【図５】情報処理システムの全体の処理を示すシーケンス図である。
【図６】情報処理装置における処理のフローチャートである。
【図７】Ｗｅｂサーバにおける処理のフローチャートである。
【図８】レスポンスヘッダの一例を示す図である。
【図９】レスポンスボディの一例を示す図である。
【図１０】Ｗｅｂアプリケーション画面の具体例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面などを参照して説明する。
【００１４】
図１は、本実施形態に係る情報処理システムの構成例を示す図である。この情報処理システムは、ネットワーク１００を介して接続されるＭＦＰ１０１と、Ｗｅｂサーバであるサーバ（サーバ装置）１０２から構成される。ネットワーク１００は、各装置間で通信を行うための基盤であって、インターネット１０３に接続されている。ＭＦＰ１０１は、画像処理装置であってよく、Ｗｅｂブラウザ機能を有すれば、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）に限定されるものではない。さらに、ＭＦＰ１０１は、ローカルなＩＰアドレスで管理されていてもよい。この場合、ネットワーク１００とＭＦＰ１０１との間にゲートウェイ（不図示）が存在し、このゲートウェイは、アドレス変換を行ってよい。例えば、ゲートウェイにはルーターが含まれる。また、ゲートウェイや、ＭＦＰ１０１がファイアウォール機能を備えていてもよい。サーバ１０２は、Ｗｅｂコンテンツを、ネットワークを介して配信する機能を持っており、ＭＦＰ１０１からのリクエストに応じてＷｅｂコンテンツを返信する。各装置及びネットワークは、インターネットに必ずしも接続されている必要はなく、ローカルネットワーク上に存在してもよい。
【００１５】
図２は、本実施形態に係るＭＦＰ１０１の機器構成図の一例を示す図である。ＭＦＰ１０１は、ＭＦＰ１０１の全体を制御するＣＰＵ２０１と、ＣＰＵ２０１のワークエリアを提供するＲＡＭ２０２と、画像を読み取る読取装置２０３と、画像を印刷する印刷装置２０４と、プログラムや様々な設定を記憶する記憶装置２０５を含む。なお、記憶装置２０５は、ＨＤＤやＮＶＲＡＭ等であってよい。さらに、ユーザーがコマンドの入力を行うユーザー入力装置２０６、画面表示を行うＵＩ表示装置２０７、他機器とネットワークによる通信を行うネットワーク装置２０８、メインバス２００により構成されている。なお、本実施形態では特に断らない限り、ＭＦＰ１０１は、ＣＰＵ２０１がメインバス２００を介してＲＡＭ２０２〜ネットワーク装置２０８をそれぞれ制御する。また、タッチパネルディスプレイのようにＵＩ表示装置２０７がユーザー入力装置２０６を兼ねてもよい。
【００１６】
図３は、本実施形態に係るサーバ１０２のハードウェア構成図の一例を示す図である。サーバ１０２は、全体を制御するＣＰＵ３０１と、ＣＰＵ３０１のワークエリアを提供するＲＡＭ３０２と、プログラムや設定を記憶する記憶装置３０３と、他機器とネットワークによる通信を行うネットワーク装置３０４と、メインバス３００から構成される。なお、本実施形態では特に断らない限り、ＣＰＵ３０１がメインバス３００を介してＲＡＭ３０２、記憶装置３０３、ネットワーク装置３０４をそれぞれ制御する。
【００１７】
図４は、本実施形態に係る情報処理システム全体のソフトウェア構成を示す図である。図４に示す各機能部は、ＭＦＰ１０１／サーバ１０２のそれぞれが有しているＣＰＵ２０１／ＣＰＵ３０１が制御プログラムを実行することにより実現される。サーバ１０２は、Ｗｅｂアプリケーション４１０と、通信部４０１を有する。さらに、Ｗｅｂアプリケーション４１０には、プレゼンテーション部４１１及びロジック部４１２が含まれる。プレゼンテーション部４１１は、通信部４０１を介して、ＭＦＰ１０１からのリクエストを受信する。さらに、ＭＦＰ１０１のＷｅｂブラウザ（表示制御手段）４２０で表示すべき操作画面や結果画面、またはサービスプロバイダー４４０への処理要求をＭＦＰ１０１にレスポンスとして送信する。また、ＭＦＰ１０１のＷｅｂブラウザ４２０に表示された操作画面を介して入力されたユーザーからの入力情報を、通信部４０１を介してＭＦＰ１０１から受け取る。ロジック部４１２は、プレゼンテーション部４１１から渡されたＭＦＰ１０１からの入力情報に対して処理を行う。例えば、ユーザーからの入力に応じて、表示すべき画面を変更したり、ＭＦＰのデバイス機能実行のための処理要求を作成したりする。通信部４０１は、ネットワーク装置３０４を制御してＨＴＴＰプロトコルにより通信を行うソフトウェアモジュールである。
【００１８】
ＭＦＰ１０１は、Ｗｅｂブラウザ４２０と、転送アプリケーション４３０と、サービスプロバイダー４４０とを有している。Ｗｅｂブラウザ４２０、転送アプリケーション４３０、およびサービスプロバイダー４４０のそれぞれは、画像処理装置１０１が有しているＣＰＵ２０１が制御プログラムを実行することにより実現される。なお、Ｗｅｂブラウザ４２０は、サーバ１０２のコンテンツを表示するものに限定しない。同様に、サーバ１０２もＨＴＴＰプロトコルに従ってリクエスト／レスポンスを送受信するＷｅｂサーバに限定しない。Ｗｅｂブラウザ４２０は、任意のサーバと通信を行うことによってコンテンツを取得し、画面に表示するといった機能を有するものであればよい。
【００１９】
Ｗｅｂブラウザ４２０は、通信部４２１、解析部４２２、画面表示部４２３、転送アプリ起動部４２４、およびアップロード処理部４２５を有する。通信部４２１は、ＨＴＴＰプロトコルに従って、ネットワーク装置２０８を介し、サーバ１０２の通信部４０１を介してＷｅｂアプリケーション４１０のプレゼンテーション部４１１と通信する。具体的には、通信部４２１は、Ｗｅｂブラウザ４２０で表示した操作画面を介して入力される情報をＷｅｂアプリケーション４１０に対するリクエストとして送信する。また、通信部４２１は、Ｗｅｂアプリケーション４１０から送信されるレスポンスを受信する。
【００２０】
解析部４２２は、Ｗｅｂアプリケーション４１０から受信したレスポンスを解析する。レスポンスの中にはＷｅｂブラウザ４２０に表示すべき操作画面の内容を示す記述であるＨＴＭＬデータや、サービスプロバイダーへの処理要求またはＪａｖａＳｃｒｉｐｔ（登録商標）による結果ダイアログ表示指示が記載されている。解析部４２２は、ＨＴＴＰレスポンスヘッダのＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドがａｐｐｌｉｃａｔｉｏｎ／ｖｎｄ．ｃａｎｏｎ．Ｗｅｂｓｅｒｖｉｃｅと一致するかどうか確認する。一致する場合は転送アプリ起動部４２４に受信したレスポンスに対する処理を依頼する。また、Ｃｏｎｔｅｎｔ−Ｔｙｐｅフィールドが、ｔｅｘｔ／ｓｃｒｉｐｔと一致する場合は、受信したレスポンスをＳｃｒｉｐｔと見なし、画面表示部４２３に実行を依頼する。Ｃｏｎｔｅｎｔ−Ｔｙｐｅフィールドが、ｔｅｘｔ／ｈｔｍｌで合った場合は、ＨＴＭＬデータであるとみなし、画面表示部４２３に表示を依頼する。
【００２１】
画面表示部４２３は、解析部４２２による解析結果に基づいて、ＨＴＭＬデータをＵＩ表示装置２０７に操作画面を表示したり、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイルを現在表示しているコンテンツ上で実行したりする。転送アプリ起動部４２４は、解析部４２２による解析結果に基づいて、Ｗｅｂアプリケーション４１０から受信したレスポンスを処理要求とみなして、転送アプリケーション４３０に対し、転送するように依頼する。なお、レスポンスが本発明におけるＭＦＰ１０１への処理要求であるかどうかの判別が可能であれば、ＨＴＴＰレスポンスヘッダを参照する以外の方法でもよい。アップロード処理部４２５は、デバイス内部からの要求に応じて、指定されたデータを、通信部４２１を介してサーバ１０２に送信する。なお、本実施形態では、ＨＴＴＰ  ＰＯＳＴコマンドを用いて指定のデータをアップロードするが、Ｗｅｂブラウザ４２０が処理可能なプロトコルであれば他のコマンドであってもよい。
【００２２】
転送アプリケーション４３０は、通信部４３１、処理部４３２を有する。通信部４３１は、処理部４３２から依頼を受け、サービスプロバイダー４４０の通信部４４１にＨＴＴＰ  ＰＯＳＴコマンドを用いて処理要求を転送し、また、処理要求に対する結果を受信する。処理部４３２は、Ｗｅｂブラウザ４２０の転送アプリ起動部４２４からの依頼を受け、サービスプロバイダーへの処理要求を、通信部４３１を介して転送する。このとき前記Ｗｅｂアプリケーションから受信したレスポンスのヘッダに記載されている宛先８２１に転送を行う。なお、宛先８２１の詳細については後述する。転送アプリケーション４３０は、一般的にＷＥＢブラウザで対応できない形式のファイル（音声や動画，アニメーションなど）を処理できるようにするヘルパーアプリケーションとして動作し、Ｗｅｂブラウザと独立して動作する。しかしながら、処理要求の転送を行う機能を有すれば、転送アプリケーション４３０は、ヘルパーアプリケーションではなく、プラグインや、Ｗｅｂブラウザ内の一機能、または受信したレスポンス内に記載されたＪａｖａＳｃｒｉｐｔ（登録商標）として存在してもよい。
【００２３】
サービスプロバイダー４４０は、通信部４４１、判断部４４２、処理部４４３を有する。通信部４４１は、転送アプリケーション４３０から処理要求を受け付ける。処理部４４２は、通信部４４１が受け付けた処理依頼を受け取り、依頼された処理を実行する。処理部４４３は、処理要求に応じて処理を実行する。本実施形態では、指定されたＵＲＬからドキュメントを取得して印刷を実行する。
【００２４】
図５は、本実施形態に係る情報処理システムの一連の処理を示すシーケンス図である。図５を参照して、情報処理システムで実施される処理の詳細な説明を行う。この処理は、ユーザー操作に基づいて、Ｗｅｂアプリケーション４１０がＭＦＰ１０１に対して印刷を指示し、実行するものである。まず、ＭＦＰ１０１は、ユーザー入力装置２０６から、ユーザー操作によるＷｅｂブラウザ４２０の起動を行うためのボタン（不図示）押下を受けると、Ｗｅｂブラウザ４２０を起動する。このボタンは、ハードウェアボタンに限ったものではなく、タッチパネル上に表示されたボタンでもよく、ボタンでなくとも、ユーザーが操作できるものであればよい。Ｗｅｂブラウザ４２０は、起動するとサーバ１０２上のＷｅｂアプリケーション４１０に画面のリクエストを行う。なお、本実施形態では、画面のコンテンツを示すＵＲＬが予めＭＦＰ１０１に設定されているものとする。また、併せて図１０に示す画面の具体例と共に本処理について説明する。
【００２５】
ここで、図１０に示す画面の具体例について説明する。図１０（Ａ）は、設定画面の一例を示す図である。設定画面には、ファイルリスト１００１と印刷開始ボタン１００２が含まれる。ユーザーは、ファイルリスト１００１から印刷したいファイルを選択し、印刷開始ボタン１００２を押下する。次に、図１０（Ｂ）は、結果表示ダイアログ画面の一例を示す図である。結果表示ダイアログ画面には、結果表示ダイアログ９１１が含まれる。結果表示ダイアログ９１１は、設定画面の上に重ねて表示され、印刷ジョブの実行結果が表示されている。ユーザーが実行結果の確認を済ませると、結果表示ダイアログ９１１が消えて、設定画面に戻る。これにより、印刷実行後にユーザーは、元の画面に戻って継続して作業ができる。
【００２６】
まず、ステップＳ５０１で、Ｗｅｂブラウザ４２０は、ＵＲＬで示されるコンテンツを保持するＷｅｂアプリケーション４１０に対して、ＨＴＴＰのＧＥＴコマンドによるリクエスト（画面要求）を行う。具体的には、Ｗｅｂブラウザ４２０が通信部４２１を介してＨＴＴＰプロトコルによりサーバ１０２の通信部４０１と通信を行う。通信部４０１は、受け取ったＵＲＬに応じて、適切なＷｅｂアプリケーションに受け取ったデータを渡す。これにより、Ｗｅｂブラウザ４２０からＷｅｂアプリケーション４１０へのリクエストが行われる。以下、通信部４０１と通信部４２１の動作は省略して説明する。
【００２７】
次に、ステップＳ５０２で、Ｗｅｂアプリケーション４１０のロジック部４１２は、ステップＳ５０１で受信した情報を元に、ＨＴＴＰレスポンスヘッダ８１０と、ＨＴＴＰレスポンスボディとして設定画面のＨＴＭＬデータを生成する。そして、ＨＴＴＰレスポンスヘッダと、ＨＴＴＰレスポンスボディを合わせてＨＴＴＰレスポンス（応答）としてＷｅｂブラウザ４２０に送信する。Ｗｅｂブラウザ４２０は、Ｗｅｂアプリケーション４１０が送信したＨＴＴＰレスポンスを受信する。なお、ＨＴＴＰレスポンスヘッダ８１０については後述する。解析部４２２は、受信したＨＴＴＰレスポンスヘッダのＣｏｎｔｅｎｔ−ｔｙｐｅフィールドを確認する。Ｃｏｎｔｅｎｔ−ｔｙｐｅがｔｅｘｔ／ｈｔｍｌであるため、受信した設定画面のＨＴＭＬデータを画面表示部４２３に依頼してＵＩ表示装置２０７に表示する。
【００２８】
次に、ステップＳ５０３で、Ｗｅｂブラウザ４２０は、ステップＳ５０２で表示した画面に対するユーザーの操作に従って、Ｗｅｂアプリケーション４１０に対して、印刷ジョブ実行のリクエスト（実行要求）を送信する。
【００２９】
次に、ステップＳ５０４で、Ｗｅｂアプリケーション４１０のロジック部４１２がステップＳ５０３で送信されたリクエストを元に、ＨＴＴＰレスポンスヘッダ８２０と、ＨＴＴＰレスポンスボディとして処理要求９１０を生成する。そして、ＨＴＴＰレスポンスヘッダと、ＨＴＴＰレスポンスボディを合わせてＨＴＴＰレスポンス（ＳＯＡＰリクエスト）としてＷｅｂブラウザ４２０に送信する。Ｗｅｂブラウザ４２０は、Ｗｅｂアプリケーション４１０が送信したＨＴＴＰレスポンスを受信する。なお、ＨＴＴＰレスポンスヘッダ８２０と、処理要求９１０の詳細については後述する。
【００３０】
次に、ステップＳ５０５で、解析部４２２は、ステップＳ５０２で受信したＨＴＴＰレスポンスヘッダのＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドがａｐｐｌｉｃａｔｉｏｎ／ｖｎｄ．ｃａｎｏｎ．Ｗｅｂｓｅｒｖｉｃｅと一致するか確認する。一致することが確認できると、転送アプリ起動部４２４が、転送アプリケーション４３０の処理部４３２に対して、ステップＳ５０２で受信したＨＴＴＰレスポンスボディ（ＳＯＡＰリクエスト）を送信し、サービスプロバイダー４４０に転送するように依頼する。
【００３１】
次に、ステップＳ５０６で、転送アプリケーション４３０の処理部４３２は、ステップＳ５０５で受信したレスポンスヘッダに記載されている宛先８２１に対してステップＳ５０５で受信したＨＴＴＰレスポンスボディを、通信部４３１を介して送信する。本実施形態では、ＨＴＴＰ  ＰＯＳＴコマンドを用いて、サービスプロバイダー４４０に対して送信するが、送信方法については他の方法であってもよい。そして、サービスプロバイダー４４０は、転送アプリケーション４３０が送信した処理要求９１０を通信部４４１で受信する。本実施形態では、サービスプロバイダー４４０は、転送アプリケーション４３０からリクエストを受信するが、Ｗｅｂアプリケーション４１０から直接通信が可能な環境であれば、Ｗｅｂアプリケーション４１０から直接リクエストを受け取ることができる。
【００３２】
次に、ステップＳ５０７で、サービスプロバイダー４４０の処理部４４３は、ステップＳ５０６で受信した処理要求９１０に従って処理を実行する。本実施形態では、処理要求９１０で指定されたＵＲＬからドキュメントを取得し、印刷を実行する。次に、ステップＳ５０８で、サービスプロバイダー４４０は、処理結果をステップＳ５０６で受信したリクエストのレスポンス（ＳＯＡＰレスポンス）として、通信部４４１を介して、ＭＦＰ１０１の転送アプリケーション４３０に対して送信する。そして、転送アプリケーション４３０の処理部４３２は、処理結果を、通信部４３１を介して受信する。
【００３３】
次に、ステップＳ５０９で、転送アプリケーション４３０の処理部４３３は、Ｗｅｂブラウザ４２０のアップロード処理部４２５に対して、処理結果をＷｅｂアプリケーション４１０に対してアップロードするように依頼する。この依頼に際して、処理部４３２は、アップロード処理部４２５に対してアップロードの宛先としてアップロード宛先８２４を指定する。なお、宛先８２４については、後述する。アップロード宛先８２４は、ＨＴＴＰレスポンスヘッダに記載されており、転送アプリケーション４３０からアップロード処理部４２５に指定せず、Ｗｅｂブラウザ４２０がこの情報を記憶しておいてその情報を使用してもよい。また、宛先を固定値とし、Ｗｅｂアプリケーション４１０から指定しないシステムとしてもよい。
【００３４】
次に、ステップＳ５１０で、アップロード処理部４２５は、通信部４２１を介してＨＴＴＰ  ＰＯＳＴコマンドで、処理部４３２からの依頼に従って処理結果をアップロードする。このとき、転送アプリケーション４３０の処理部４３２から依頼された宛先８２４に対してアップロードを行う。次に、ステップＳ５１１で、Ｗｅｂアプリケーション４１０は、Ｗｅｂブラウザ４２０に対して、ステップＳ５１０でアップロードを受け付けた処理結果に応じた画面を表示するためのＳｃｒｉｐｔ９００生成し、レスポンスする。ここでは、Ｗｅｂアプリケーション４１０は、表示用のＨＴＭＬコンテンツは生成せず、Ｓｃｒｉｐｔのみを生成している。そしてＷｅｂブラウザ４２０はレスポンスを受信する。なお、Ｓｃｒｉｐｔ９００についての詳細は後述する。
【００３５】
次に、ステップＳ５１２で、解析部４２２は、ステップＳ５１１で受信したＨＴＴＰレスポンスヘッダのＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドがｔｅｘｔ／ｓｃｒｉｐｔと一致するか確認する。一致すると、解析部４２２は、受信したＳｃｒｉｐｔ９００を、Ｗｅｂブラウザ上に表示しているコンテンツ上で実行する。このとき、セキュリティ性確保の観点から、ＭＦＰ１０１にあらかじめ信頼する通信先として、サーバのアドレスや、ドメイン、またはプロトコルなどの情報を保持しておき、その条件に一致する場合のみＳｃｒｉｐｔを実行するようにしてもよい。画面表示部４２３は、解析部４２２によるＳｃｒｉｐｔ９００の解析／実行の結果に基づいて、ＵＩ表示装置２０７に結果表示ダイアログ９１１を表示する。
【００３６】
図６は、ＭＦＰ１０１における処理フローの詳細を示すフローチャートである。まず、ステップＳ６０１で、ユーザーがＷｅｂブラウザ４２０を操作し、コンテンツ上のボタンやリンクを押下する。その結果に従って、Ｗｅｂブラウザ４２０は、Ｗｅｂアプリケーション４１０に対してリクエストを送信する。次に、ステップＳ６０２で、Ｗｅｂブラウザ４２０は、ステップＳ６０１におけるリクエストのレスポンスとして、Ｗｅｂアプリケーション４１０からレスポンスを受信する。
【００３７】
次に、ステップＳ６０３で、解析部４２２は、受信したレスポンスがＳｃｒｉｐｔであるか否かを、レスポンスヘッダのＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドに基づいて判定する。Ｓｃｒｉｐｔである場合（ＹＥＳ）、ステップＳ６０４に進む。そして、ステップＳ６０４で、解析部４２２は、受信したＳｃｒｉｐｔを、Ｗｅｂブラウザ上に表示しているコンテンツ上で実行する。次に、ステップＳ６０５で、画面表示部４２３は、Ｓｃｒｉｐｔの内容に従ってＵＩ表示装置２０７に結果表示ダイアログ９１１を操作画面に追加するように表示する。具体的には、図１０（Ｂ）に示すように、ＵＩ表示装置２０７に表示されている画面の前面に結果表示ダイアログ９１１を表示する。なお、本処理におけるステップＳ６０４およびステップＳ６０５の動作の詳細は、図５に示すステップＳ５１２と同様である。
【００３８】
一方、ステップＳ６０３で、Ｓｃｒｉｐｔでなかった場合（ＮＯ）、ステップＳ６０６に進む。そして、ステップＳ６０６で、解析部４２２は、受信したレスポンスがサービスプロバイダー４４０への処理要求であるか否かを、レスポンスヘッダのＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドに基づいて判定する。具体的には、受信したレスポンスがＳＯＡＰリクエストではないか否かを判定する。処理要求でない（ＳＯＡＰリクエストでない）場合（ＹＥＳ）、ステップＳ６０７に進む。なお、本処理におけるステップＳ６０６およびステップＳ６０７の動作の詳細は、図５に示すステップＳ５０２と同様である。そして、ステップＳ６０７で、解析部４２２は、受信したＨＴＴＰレスポンスヘッダのＣｏｎｔｅｎｔ−ｔｙｐｅフィールドがｔｅｘｔ／ｈｔｍｌであるため、受信した設定画面のＨＴＭＬデータを画面表示部４２３に依頼してＵＩ表示装置２０７に表示する。すなわち、画面を更新する。
【００３９】
一方、ステップＳ６０６で、処理要求である（ＳＯＡＰリクエストである）場合（ＮＯ）、ステップＳ６０８に進む。なお、本処理におけるステップＳ６０８は、図５に示すステップＳ５０５と同様である。ステップＳ６０８で、転送アプリ起動部４２４は、転送アプリケーション４３０の処理部４３２に対して、受信したＳＯＡＰリクエストを送信し、サービスプロバイダー４４０に転送するように依頼する。次に、ステップＳ６０９で、サービスプロバイダー４４０の処理部４４３は、受信したＳＯＡＰリクエストに従って印刷処理を実行する。なお、本処理におけるステップＳ６０９は、図５に示すステップＳ５０７と同様である。次に、ステップＳ６１０で、Ｗｅｂブラウザ４２０のアップロード処理部４２５は、サービスプロバイダー４４０からＳＯＡＰレスポンスとして処理結果を、転送アプリケーション４３０の処理部４３２を介して受信する。次に、ステップＳ６１０で、アップロード処理部４２５は、受信したＳＯＡＰレスポンスをサーバ１０２に送信する。なお、本処理におけるステップＳ６１０およびステップＳ６１１は、図５に示すステップＳ５０８〜ステップＳ５１０と同様である。
【００４０】
図７は、サーバ１０２における処理フローの詳細を示すフローチャートである。まず、ステップＳ７０１で、Ｗｅｂアプリケーション４１０は、Ｗｅｂブラウザ４２０からリクエストを受信する。次に、ステップＳ７０２で、Ｗｅｂアプリケーション４１０は、ステップＳ７０１で受信したリクエストが、サービスプロバイダー４４０の処理結果であるか否かを判定する。具体的には、リクエストヘッダに含まれる、Ｃｏｎｔｅｎｔ−Ｔｙｐｅフィールドがａｐｐｌｉｃａｔｉｏｎ／ｓｏａｐ＋ｘｍｌと一致するか否かを確認する。一致する（すなわち、ＳＯＡＰレスポンスである）場合（ＹＥＳ）、ステップＳ７０３に進む。一方、一致しない（すなわち、ＳＯＡＰレスポンスでない）場合（ＮＯ）、ステップＳ７０６に進む。
【００４１】
そして、ステップＳ７０３で、Ｗｅｂアプリケーション４１０は、受信したリクエストに含まれる処理結果から、印刷ジョブが成功したか否か（すなわち、ジョブが正常に終了（完了）したか否か）を判定する。なお、処理結果にはジョブが成功したか失敗したかを判別するための情報が含まれており、Ｗｅｂアプリケーション４１０は、その情報を確認することで判定する。ジョブが成功した（すなわち、ジョブが正常に終了した）場合（ＹＥＳ）、ステップＳ７０４に進む。一方、失敗した（すなわち、ジョブが正常に終了しなかった）場合（ＮＯ）、ステップＳ７０５に進む。
【００４２】
そして、ステップＳ７０４で、Ｗｅｂアプリケーション４１０は、ユーザーに印刷ジョブが正常に終了したことを知らせるダイアログを表示するためのＳｃｒｉｐｔを生成する。そして、Ｗｅｂブラウザ４２０に対して、ステップＳ７０１で受信したリクエストに対するレスポンスとして送信する。一方、ステップＳ７０５で、Ｗｅｂアプリケーション４１０は、ユーザーに印刷ジョブがエラー終了したことを知らせるダイアログを表示するためのＳｃｒｉｐｔを生成する。そして、Ｗｅｂブラウザ４２０に対して、ステップＳ７０１で受信したリクエストに対するレスポンスとして送信する。
【００４３】
次に、ステップＳ７０６で、Ｗｅｂアプリケーション４１０は、ステップＳ７０１で受信したリクエストが、サービスプロバイダー４４０への処理要求であるか否かを判定する。すなわち、ステップＳ７０１で受信したリクエストがジョブ実行のリクエストか否かを判定する。処理要求である場合場合（ＹＥＳ）、ステップＳ７０７に進む。一方、処理要求でない場合（ＮＯ）、ステップＳ７０８に進む。
【００４４】
そして、ステップＳ７０７で、Ｗｅｂアプリケーション４１０は、ステップＳ７０１で受信したリクエスト内容に従って、印刷ジョブ実行のための印刷処理要求９１０を生成する。そして、Ｗｅｂブラウザ４２０に対して、ステップＳ７０１で受信したリクエストに対するレスポンスとして送信する。一方、ステップＳ７０８で、Ｗｅｂアプリケーション４１０は、ステップＳ７０１で受信したリクエスト内容に応じた画面情報であるＨＴＭＬデータを、受信したリクエストに対するレスポンスとして送信する。
【００４５】
図８は、本実施形態に係るＷｅｂアプリケーション４１０がＷｅｂブラウザ４２０に対して返すＨＴＴＰレスポンスヘッダの一例を示す図である。図８（Ａ）は、図７に示すステップＳ７０４、ステップＳ７０５において、Ｗｅｂアプリケーション４１０がＷｅｂブラウザ４２０に対して、Ｓｃｒｉｐｔをレスポンスとして返す際のＨＴＴＰレスポンスヘッダの一例を示す。Ｓｃｒｉｐｔをレスポンスとして返す際のＨＴＴＰレスポンスヘッダ８００には、値がｔｅｘｔ／ｓｃｒｉｐｔであるＣｏｎｔｅｎｔ−Ｔｙｐｅフィールド８０１が含まれる。
【００４６】
図８（Ｂ）は、図７に示すステップＳ７０８において、Ｗｅｂアプリケーション４１０がＷｅｂブラウザ４２０に対して、画面を構成するためのＨＴＭＬコンテンツをレスポンスとして返す際のＨＴＴＰレスポンスヘッダの一例を示す。ＨＴＭＬコンテンツをレスポンスとして返す際のＨＴＴＰレスポンスヘッダ８１０には、値がｔｅｘｔ／ｈｔｍｌであるＣｏｎｔｅｎｔ−Ｔｙｐｅフィールド８１１が含まれる。
【００４７】
図８（Ｃ）は、図７に示すステップＳ７０７において、Ｗｅｂアプリケーション４１０がＷｅｂブラウザ４２０に対して、プリント（印刷ジョブ）を実行させるための処理要求をレスポンスとして返す際のＨＴＴＰレスポンスヘッダの一例を示す。処理要求をレスポンスとして返す際のＨＴＴＰレスポンスヘッダ８２０は、宛先８２１、タイムアウト時間８２２、転送時コンテントタイプ８２３、アップロード宛先８２４、コンテントタイプ８２５を有する。宛先８２１は、前述の通り、図６に示すステップＳ６０８において、転送アプリケーション４３０が処理要求９１０であるＨＴＴＰレスポンスボディを転送する際の宛先である。宛先８２１は、複数のサービスプロバイダーが公開するサービスの何れかを指し示す。
【００４８】
転送時コンテントタイプ８２３は、図６に示すステップＳ６０８において、転送アプリケーション４３０が、サービスプロバイダー４４０にＨＴＴＰレスポンスボディを転送する際にＨＴＴＰヘッダのＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドに記載する内容である。ＨＴＴＰ  Ｐｏｓｔコマンドを用いた転送の際に、転送先のサービスプロバイダー４４０が正しく理解できるＣｏｎｔｅｎｔ−Ｔｙｐｅを記載する必要があるためである。転送時コンテントタイプ８２３が省略されている場合、転送アプリケーションが転送時にデフォルトの値を設定するようにしてもよい。アップロード宛先８２４は、前述の通り、図６に示すステップＳ６１１において、Ｗｅｂブラウザ４２０が処理結果をＷｅｂアプリケーション４１０にアップロードする際の宛先である。コンテントタイプ８２５は、前述の通り、図６に示すステップＳ６０６において、ステップＳ６０２で受信したＨＴＴＰレスポンスボディの内容が、処理要求か、Ｗｅｂブラウザ４２０に表示するＨＴＭＬコンテンツかを判定するために用いる。
【００４９】
図９は、本実施形態に係るレスポンスボディの一例を示す図である。図９（Ａ）は、Ｗｅｂアプリケーション４１０が生成し、図７に示すステップＳ７０４でＷｅｂブラウザ４２０にレスポンスとして返すＳｃｒｉｐｔの内容を示す図である。Ｓｃｒｉｐｔには、画面にダイアログを表示して、処理要求に対する結果をユーザーに通知する記述がされている。図９（Ｂ）は、Ｗｅｂアプリケーション４１０が生成し、図７に示すステップＳ７０８でＷｅｂブラウザ４２０にレスポンスとして返す処理要求の内容を示す図である。処理要求９１０には、プリント設定９１１が記述されており、受け取ったＳｅｒｖｉｃｅＰｒｏｖｉｄｅｒはプリント設定９１１に従って印刷処理を実行する。プリント設定９１１には、取得するドキュメントの場所や、用紙サイズ、カラーモードなど、プリントを実行時のパラメータが記載されている。処理要求９１０は、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）フォーマットで記載されているが、ＭＦＰ１０１に対する処理が記載できて、ＭＦＰ１０１が処理できる形式であればフォーマットを限定しない。
【００５０】
以上、本実施形態によれば、Ｗｅｂブラウザは、操作画面データではなくＳｃｒｉｐｔを受信した際に、現在表示中のコンテンツ上で、そのスクリプトを実行する。これにより、ユーザーがデバイスの制御を指示した後、継続してＷｅｂアプリケーションの同一画面上で、処理結果の確認と操作を行うシステムを容易に実現することができる。
【００５１】
（他の実施例）
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
ここで、本発明は、上述した実施形態の機能を実現する１以上のソフトウェア（プログラム）を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の１以上のコンピュータ（ＣＰＵやＭＰＵ等）によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピュータにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路（例えば、ＡＳＩＣ）によっても、本発明は実現可能である。
【００５２】
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2016009364.tif 000003
【図２】
2016009364.tif 000004
【図３】
2016009364.tif 000005
【図４】
2016009364.tif 000006
【図５】
2016009364.tif 000007
【図６】
2016009364.tif 000008
【図７】
2016009364.tif 000009
【図８】
2016009364.tif 000010
【図９】
2016009364.tif 000011
【図１０】
2016009364.tif 000012