(57)【要約】【課題】本発明は、リバースプロキシ方式のＳＳＯシステムにおいて、Ｗｅｂブラウザーを有する画像処理装置がＷｅｂサーバーからの指示で適切に動作することが可能な仕組みを提供する。【解決手段】ＭＦＰ１１０と、ＭＦＰ１１０を制御するＷｅｂサーバー１４０と、ＭＦＰ１１０からＷｅｂサーバー１４０に対するアクセスを中継するリバースプロキシサーバー１２０とを備える画像処理システムにおいて、ＭＦＰ１１０は、Ｗｅｂサーバー１４０から、画像処理で利用するＵＲＬを含むスクリプトを受け付けた場合に、ＵＲＬ変換テーブル５０８をリバースプロキシサーバー１２０から取得し、ＵＲＬ変換テーブル５０８を元に、Ｗｅｂサーバー１４０から送信されたスクリプトデータを書き換える。【選択図】図８
2013008284.tif 000002
【特許請求の範囲】
【請求項１】
サーバーから中継装置を介してＵＲＬを含むスクリプトを受信した場合に、前記スクリプトに含まれるＵＲＬを他のＵＲＬに変換する変換情報を前記中継装置から取得し、前記変換情報を元に、前記サーバーから受信したスクリプトに含まれるＵＲＬを書き換えることを特徴とする画像処理装置。
【請求項２】
前記スクリプトに含まれるＵＲＬが前記サーバーのアドレスである場合に当該ＵＲＬを書き換えることを特徴とする請求項１記載の画像処理装置。
【請求項３】
サーバーから中継装置を介してＵＲＬを含むスクリプトを受信する受信工程と、
前記受信工程で受信したスクリプトに含まれるＵＲＬを他のＵＲＬに変換する変換情報を前記中継装置から取得する取得工程と、
前記取得工程で取得した前記変換情報を元に、前記サーバーから受信したスクリプトに含まれるＵＲＬを書き換える書換工程と、
を有することを特徴とする画像処理装置の制御方法。
【請求項４】
請求項３記載の制御方法を画像処理装置に実行させるためのコンピューターに読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びその制御方法、並びにプログラムに関し、特に、Ｗｅｂサーバーにより提供される操作画面をＷｅｂブラウザーで表示することが可能な画像処理装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
パーソナル・コンピュータ（ＰＣ）等の情報処理装置がネットワーク上のＷｅｂサーバーに接続し、Ｗｅｂサーバーにより提供される操作画面を、情報処理装置が備えるＷｅｂブラウザー上に表示するサービスが知られている。この場合、まず情報処理装置のＷｅｂブラウザーが、Ｗｅｂサーバーに対して操作画面を要求（リクエスト）する。そして、Ｗｅｂサーバー上のＷｅｂアプリケーションが情報処理装置からのリクエストに応えて、Ｗｅｂブラウザーに操作画面を表示させるためのＨＴＭＬファイルを情報処理装置に応答（レスポンス）する。情報処理装置のＷｅｂブラウザーは、受信したＨＴＭＬファイルを解析し、ＨＴＭＬファイルの記述に基づいた操作画面を表示する。
【０００３】
さらに、Ｗｅｂブラウザーに表示された操作画面を介してユーザーが指示情報の入力を行うと、入力された指示情報をＷｅｂブラウザーがＷｅｂサーバーに対して通知する。そして、この通知を受けたＷｅｂサーバー上のＷｅｂアプリケーションは、入力された指示情報に従って処理を実行する。
【０００４】
ところで、最近ではスキャナー機能やプリンター機能を備えたＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）の中にも、上述したようなＷｅｂブラウザーを備えているものがある。このようなＭＦＰでも、同様に、上述した手順を用いてＷｅｂサーバーにより提供される操作画面をＭＦＰのＷｅｂブラウザーに表示し、ユーザーからの各種指示を受け付ける。
【０００５】
例えば、特許文献１では以下に説明する技術が開示されている。まず、ＭＦＰのユーザーがＷｅｂブラウザー上に表示された操作画面を介してＭＦＰに指示情報を入力すると、入力された指示情報がＷｅｂブラウザーによってＷｅｂサーバーに通知される。この通知を受けたＷｅｂサーバーは、ユーザーから入力された指示情報に従って、ＭＦＰに対して各種処理の実行を依頼する。依頼を受けたＭＦＰは、依頼された処理を実行する。これにより、ＭＦＰを操作するためのすべてのメニューデータをＭＦＰ内で保持しておく必要がなくなり、またメニューデータの変更もＷｅｂサーバー上で容易に行うことができる。
【０００６】
また、特許文献２では、ＷｅｂサーバーとＷｅｂブラウザーを使用したシステムにおいて、ユーザーが最初に一度認証を受けると、その認証で許可されたすべての機能を利用できるようにするＳＳＯ（Ｓｉｎｇｌｅ  Ｓｉｇｎ−Ｏｎ）システムが開示されている。ＳＳＯには、ＳＳＯサーバーを配置し、必ずそのサーバーを通してＷｅｂサーバーとアクセスさせる方式で、Ｗｅｂサーバーから見てＳＳＯサーバーはプロキシサーバの役割を担うため、リバースプロキシ方式と呼ばれるものがある。例としては、日本ＨＰのＩｃｅＷａｌｌ（登録商標）ＳＳＯが挙げられる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１２７５０３号公報
【特許文献２】特開２００５−３２１９７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
リバースプロキシ方式のＳＳＯシステムの場合、Ｗｅｂブラウザー側からは、コンテンツがすべてリバースプロキシに存在するように見える。このため、リバースプロキシでは、コンテンツ内にリンクなどが設定してある場合、このリンク先のＵＲＬに変更が生じるため、これに伴ってコンテンツを書き換える必要がある。書き換える必要が生じるコンテンツは、例えば、ＨＴＭＬ、スタイルシート、Ｗｅｂブラウザー上で動作するスクリプト言語（Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ等）等である。
【０００９】
ＷｅｂサーバーからＭＦＰに対する各種処理の実行依頼には、ＨＴＴＰプロトコルによるスキャン画像の送信が含まれる場合がある。この時ＭＦＰはＨＴＴＰプロトコルで通信するために、リバースプロキシに対してアクセスする必要がある。しかし、Ｗｅｂサーバーは間にリバースプロキシを通過することを、Ｗｅｂブラウザーからのリクエストに含まれる情報からは把握できない。また、リバースプロキシがどのようなＵＲＬ変換を行っているかも把握できない。そのため、前述のコンテンツと同様に、Ｗｅｂサーバーからの送信処理実行依頼に含まれるＨＴＴＰプロトコルの通信先ＵＲＬアドレスをリバースプロキシで書き換える必要が出てくる。
【００１０】
しかしながら、ＷｅｂサーバーからＭＦＰへの処理の実行依頼のデータ形式は定まっておらず、すべての形式でコンテンツを書き換えることはリバースプロキシで対応しきれない。またデータ形式が変更になる度に、リバースプロキシの変更を行うのも煩わしい。このように、前述のＷｅｂサーバーとＭＦＰのシステムにおいてリバースプロキシ方式のＳＳＯシステムに参加させることが難しいという課題がある。
【００１１】
本発明は、上記課題を鑑みてなされたものであり、リバースプロキシ方式のＳＳＯシステムにおいて、Ｗｅｂブラウザーを有する画像処理装置がＷｅｂサーバーからの指示で適切に動作することが可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の画像処理装置は、サーバーから中継装置を介してＵＲＬを含むスクリプトを受信した場合に、前記スクリプトに含まれるＵＲＬを他のＵＲＬに変換する変換情報を前記中継装置から取得し、前記変換情報を元に、前記サーバーから受信したスクリプトに含まれるＵＲＬを書き換えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、リバースプロキシ方式のＳＳＯシステムにおいて、リバースプロキシで特別なＵＲＬ変換の対応を行わなくても、Ｗｅｂサーバーからの指示を画像処理装置で実行することを可能とする。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態における画像処理システムの全体構成を示す図である。
【図２】図１におけるＭＦＰのハードウェア構成の概略を示すブロック図である。
【図３】図１におけるリバースプロキシサーバーのハードウェア構成を示すブロック図である。
【図４】ＭＦＰのソフトウェア構成の概略を示すブロック図である。
【図５】リバースプロキシサーバーのソフトウェア構成の概略を示すブロック図である。
【図６】第１の実施形態におけるＵＲＬ変換テーブルの一例を示す図である。
【図７】図１におけるＷｅｂサーバーのソフトウェア構成の概略を示すブロック図である。
【図８】図１の画像処理システムで実施されるスキャンと送信の処理の流れを示すシーケンス図である。
【図９】図８のステップ８０４にてＷｅｂブラウザー４０２が表示する設定画面の一例を示す図である。
【図１０】第１の実施形態におけるスクリプトデータの一例を示す図である。
【図１１】第１の実施形態におけるスクリプト実行部のスクリプト実行処理の流れを示すフローチャートである。
【図１２】第２の実施形態におけるスクリプトデータの一例を示す図である。
【図１３】第２の実施形態におけるスクリプト実行部のスクリプト実行処理の流れを示すフローチャートである。
【図１４】第２の実施形態におけるＵＲＬ変換テーブルの一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１６】
［第１の実施形態］
まず、本発明の第１の実施形態について説明する。
【００１７】
図１は、本発明の第１の実施形態における画像処理システムの全体構成を示す図である。なお、画像処理システムを構成する機器は、図示例の数に限られるものではない。
【００１８】
図１において、ＭＦＰ１１０は、コピー機能と、原稿画像を読み取って得た画像データを、ＨＴＴＰプロトコルやＷｅｂＤＡＶプロトコル等を用いてネットワークに接続された装置に送信するデータ送信機能を有する画像処理装置である。ＭＦＰ１１０は、イーサネット(登録商標)などからなるＬＡＮ１００に接続され、ＬＡＮ１００上のリバースプロキシサーバー１２０を介してインターネット１３０に接続することができる。インターネット１３０上には、Ｗｅｂサーバー１４０が設置されている。
【００１９】
リバースプロキシサーバー１２０（第２サーバー）は、ＭＦＰ１１０からＷｅｂサーバー１４０へのリクエストの送信及びこのリクエストに対するレスポンスを中継する。
【００２０】
Ｗｅｂサーバー１４０（第１サーバー）は、Ｗｅｂアプリケーションにより、ＭＦＰからのリクエストに応じて、ＭＦＰ１１０に表示するＨＴＭＬページをレスポンスとして送信する。また、Ｗｅｂサーバー１４０は、ＭＦＰ１１０からのリクエストに応じて、ＭＦＰ１１０に画像処理指示をレスポンスとして送信する。
【００２１】
図２は、図１におけるＭＦＰ１１０のハードウェア構成の概略を示すブロック図である。
【００２２】
図２において、ＭＦＰ１１０は、画像入力装置であるスキャナー部１１２と、画像出力装置であるプリンター部１１３と、ＭＦＰ１１０の制御を司るコントローラー２００と、操作部１１１を備える。スキャナー部１１２は、置かれた原稿上の画像の読み取り動作を行い、画像データを作成する。プリンター部１１３は、コントローラー２００から受け取った画像データを用紙上に印刷画像として形成する。
【００２３】
コントローラー２００は、操作部１１１、スキャナー部１１２、及びプリンター部１１３と電気的に接続されている一方、ＬＡＮ１００にもＮｅｔｗｏｒｋＩ／Ｆ２０６を介して接続されている。すなわち、ＬＡＮ１００を経由して他の機器と接続されている。これにより、ＨＴＴＰプロトコルによる通信が可能となっている。
【００２４】
コントローラー２００は、図示のように次の構成要素から構成される。ＣＰＵ２０１は、ＲＯＭ２０２に記憶された制御プログラム等に基づいて、接続中の各種ＭＦＰへのアクセス及び他の装置からのアクセスを統括的に制御する。また、ＣＰＵ２０１は、コントローラー２００内部で行われる各種処理についても統括的に制御する。この制御には、後述のフローチャートを実現するためのプログラムの実行も含む。
【００２５】
ＲＯＭ２０２には装置のブートプログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するためのメモリでもある。ＲＡＭ２０３は、電源のバックアップ等により記憶した内容を装置本体の電源オフ後も保持しておく領域と、電源オフ後には記憶した内容が消去されてしまう領域により構成されている。
【００２６】
ＨＤＤ２０４はハードディスクドライブであり、システムソフトウェアや画像データを格納することが可能な大容量の記憶装置である。操作部Ｉ／Ｆ２０５は、システムバス２１１と操作部１１１とを接続するためのインターフェース部である。操作部Ｉ／Ｆ２０５は、操作部１１１に表示するための画像データをシステムバス２１１から受け取って操作部１１１に出力すると共に、操作部１１１から入力された情報をシステムバス２１１へと出力する。ＮｅｔｗｏｒｋＩ／Ｆ２０６は、ＬＡＮ１００及びシステムバス２１１に接続し、情報の入出力を行う。
【００２７】
スキャナーＩ／Ｆ２０７は、スキャナー部１１２から受け取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナーＩ／Ｆ２０７は、受け取った画像データがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定する機能を持つ。
【００２８】
画像処理部２０８は、画像データの方向変換、画像圧縮、伸張処理などを行う。また、ＨＤＤ２０４に保存されている画像同士を合成して一枚の画像にすることが可能である。
【００２９】
プリンターＩ／Ｆ２０９は、画像処理部２０８から送られた画像データを受け取り、この画像データに付随する属性データを参照しながら画像データに基づいて画像形成を行う。画像形成後の画像データは、プリンター部１１３に出力される。
【００３０】
本実施形態では、ＭＦＰ１１０はＵＩ表示を実行するネットワークＭＦＰであるが、汎用スキャナーや汎用プリンターなどを接続した汎用コンピューター等であっても、これら以外の画像処理装置であってもよい。
【００３１】
図３は、図１におけるリバースプロキシサーバー１２０のハードウェア構成を示すブロック図である。
【００３２】
図３において、リバースプロキシサーバー１２０は、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３、ハードディスクドライブ（ＨＤＤ）３０４、ＮｅｔｗｏｒｋＩ／Ｆ３０５を備え、これらがシステムバス３０６を介して互いに通信可能に接続されている。
【００３３】
ＲＯＭ３０３或いはＨＤＤ３０４には、オペレーティングシステム（ＯＳ）やアプリケーションなどの制御プログラムが格納された記憶装置である。ＣＰＵ３０１は、当該制御プログラムを必要に応じてＲＯＭ３０３或いはＨＤＤ３０４からＲＡＭ３０２上へ読み出して実行することで、コンピューターとしての機能を発揮する。また、ＣＰＵ３０１は、ＮｅｔｗｏｒｋＩ／Ｆ３０５を介して接続されているネットワーク上の他の装置との通信を行う。
【００３４】
なお、Ｗｅｂサーバー１４０のハードウェア構成についても図３で示したリバースプロキシサーバー１２０のハードウェア構成と同様である。
【００３５】
図４は、ＭＦＰ１１０のソフトウェア構成の概略を示すブロック図である。図示のソフトウェアモジュールは、ＭＦＰ１１０のＨＤＤ２０４に格納され、ＣＰＵ２０１が実行するものである。
【００３６】
図４において、ＨＴＴＰ通信部４０１は、ＮｅｔｗｏｒｋＩ／Ｆ２０６を操作してＨＴＴＰプロトコルにより通信を行うモジュールである。
【００３７】
Ｗｅｂブラウザー４０２は、ＨＴＴＰ通信部４０１を介して、ＬＡＮ１００やインターネット１３０を含むネットワーク上の機器と通信を行うＷｅｂブラウザーである。Ｗｅｂブラウザー４０２は、指定されたＵＲＬに応じたＷｅｂアプリケーションに対して、ＨＴＭＬで記載された操作画面のリクエストを行う。また、Ｗｅｂブラウザー４０２は、ＨＴＴＰ通信部４０１を介して受け取ったレスポンスに含まれる操作画面のＨＴＭＬデータをレンダリングして操作部１１１に表示する。また、Ｗｅｂブラウザー４０２は、操作部１１１に表示した操作画面に対する入力をリクエストとして送信する。
【００３８】
スクリプト実行部４０３は、Ｗｅｂブラウザー４０２から受け取ったスクリプトデータを解析し、スクリプトデータをジョブ毎に分割する。そして、各ジョブを、スクリプトデータで指定されている順に実行するようにジョブ管理部４０４に通知する。
【００３９】
ジョブ管理部４０４は、スクリプト実行部４０３からの指示を受けてジョブを管理し、順次ジョブの実行をジョブ実行部４０５に指示する。
【００４０】
ジョブ実行部４０５は、ジョブに設定されたジョブ設定に基づいて処理を実行するモジュールである。例えば、ジョブがスキャンジョブであれば、ジョブ実行部４０５は、スキャナー部１１２を制御して紙原稿を読み取らせてＨＤＤ２０４に画像データを保存させる。一方、ジョブが送信ジョブであれば、ジョブ実行部４０５は、ＮｅｔｗｏｒｋＩ／Ｆ２０６を制御してＨＤＤ２０４内の画像データを送信させる。
【００４１】
通信設定管理部４０６は、ＭＦＰ１１０のネットワーク通信の設定を管理するモジュールである。また、通信設定管理部４０６は、ＩＰアドレスの設定や、リバースプロキシを使用するかどうかの設定を保持している。
【００４２】
リバースプロキシ通信部４０７は、リバースプロキシサーバー１２０と通信を行い、リバースプロキシの設定を取得したり、設定を行ったりするためのモジュールである。
【００４３】
図５は、リバースプロキシサーバー１２０のソフトウェア構成の概略を示すブロック図である。図示のソフトウェアモジュールは、リバースプロキシサーバー１２０のＨＤＤ３０４に格納され、ＲＡＭ３０２にロードされてＣＰＵ３０１が実行するものである。
【００４４】
図５において、リバースプロキシ５０１は、リバースプロキシサーバーで動作するアプリケーションである。リバースプロキシには、以下に説明する各部が含まれる。
【００４５】
ＨＴＴＰリクエスト受信部５０２は、ＬＡＮ１００を介して送られたＨＴＴＰのリクエストパケットを受け付けるモジュールである。ＵＲＬ書き換え部５０３は、書換手段として、ＵＲＬ変換テーブル５０８の設定に基づいてＨＴＴＰのリクエストパケットを本来送るべき送信先に書き換えるモジュールである。ＨＴＴＰリクエスト送信部５０４は、ＵＲＬ書き換え部５０３が書き換えたＵＲＬに基づいて、インターネット１３０を介してＨＴＴＰリクエストを送信するモジュールである。
【００４６】
ＨＴＴＰレスポンス受信部５０５は、ＨＴＴＰリクエスト送信部５０４が送信したＨＴＴＰリクエストに応答したＨＴＴＰレスポンスを、インターネット１３０を介して受信するモジュールである。ＨＴＴＰコンテンツ書き換え部５０６は、ＨＴＴＰレスポンス受信部５０５が受信したＨＴＴＰレスポンスに含まれるコンテンツ内のＵＲＬをＵＲＬ変換テーブル５０８の設定に基づいて変更するモジュールである。
【００４７】
ＨＴＴＰレスポンス送信部５０７は、ＨＴＴＰコンテンツ書き換え部５０６が書き換えたＨＴＴＰレスポンスを、元々ＨＴＴＰリクエスト受信部５０２が受け取った送信元へ送信するモジュールである。ＵＲＬアドレスの変換情報であるＵＲＬ変換テーブル５０８は、リバースプロキシ５０１のＵＲＬ変換の設定を保持している設定テーブルである。ＵＲＬ変換の設定については後述する。
【００４８】
設定変更部５０９は、ＵＲＬ変換テーブル５０８を変更するためのインタフェースモジュールである。なお、設定変更部５０９は、外部装置からＵＲＬ変換テーブル５０８を変更可能であれば、どんな構成でもよい。本実施形態では、設定変更部５０９は、ＷｅｂアプリケーションやＷｅｂサービスとして、ＬＡＮ１００でつながった外部装置から設定の変更を受け付ける。
【００４９】
図６は、ＵＲＬ変換テーブル５０８の一例を示す図である。
【００５０】
図６において、ＵＲＬ変換テーブル５０８は、例えば、ＷｅｂアプリＵＲＬ、エイリアス、認証方式、ＩＤ、及びパスワードで構成される。ＷｅｂアプリＵＲＬ６０１には、インターネット１３０上の各ＷｅｂアプリケーションのＵＲＬ情報が格納されている。エイリアス６０２には、リバースプロキシ５０１がＬＡＮ１００に接続された機器からの接続を受け付ける際に利用するエイリアス情報が格納されている。
【００５１】
認証方式６０３には、ＷｅｂアプリＵＲＬ６０１のＵＲＬ情報に示すＷｅｂアプリケーションに接続する際に行う認証方式が格納されている。ＩＤ６０４とパスワード６０５には、認証方式６０３に示す認証方式で使用するＩＤとパスワードが格納されている。
【００５２】
図６の例では、ＭＦＰ１１０のＷｅｂブラウザー４０２から以下のＵＲＬでリバースプロキシサーバー１２０にＨＴＴＰリクエストを行ったとする。なお、＜ｒｅｖｅｒｓｅ  ｐｒｏｘｙ＞はリバースプロキシサーバーのドメインを示すものとする。
【００５３】
ｈｔｔｐ：／／＜ｒｅｖｅｒｓｅ  ｐｒｏｘｙ＞／ＡｐｐＡ／ｉｎｄｅｘ／ｉｎｄｅｘ．ｈｔｍｌ
この場合、リバースプロキシ５０１は、「ＡｐｐＡ」のエイリアスに対応する以下のＵＲＬに対してリクエストを行う。
【００５４】
ｈｔｔｐ：／／ｗｗｗ．ｓｅｒｖｅｒＡ．ｘｘｘ．ｃｏｍ／ｓｃａｎ／ｉｎｄｅｘ／ｉｎｄｅｘ．ｈｔｍｌ
そして、リクエストを行う際に、ＢＡＳＩＣ認証が行われる。
【００５５】
図７は、図１におけるＷｅｂサーバー１４０のソフトウェア構成の概略を示すブロック図である。図示のソフトウェアモジュールは、Ｗｅｂサーバー１４０のＨＤＤ３０４に格納され、ＣＰＵ３０１が実行するものである。
【００５６】
図７において、Ｗｅｂサーバー１４０は、Ｗｅｂアプリケーション７０１とＨＴＴＰ通信部７０４を備える。Ｗｅｂアプリケーション７０１には、プレゼンテーション部７０２とロジック部７０３が含まれる。
【００５７】
プレゼンテーション部７０２は、ＨＴＴＰ通信部７０４を介して、クライアントからのＨＴＴＰリクエストに応えて表示すべき操作画面をレスポンスとして送信する。また、クライアントに表示された操作画面を介して入力されたユーザーからの入力情報を、ＨＴＴＰ通信部７０４を介して受け取る。
【００５８】
ロジック部７０３は、プレゼンテーション部７０２から渡された入力情報に対して処理を行う。例えば、ユーザーからの入力に応じて、表示すべき画面を変更したり、ＭＦＰのデバイス機能実行のためのジョブ定義情報を作成したりする。
【００５９】
ＨＴＴＰ通信部７０４は、ＮｅｔｗｏｒｋＩ／Ｆ３０５を制御してＨＴＴＰプロトコルにより通信を行うモジュールである。
【００６０】
次に、図１の画像処理システムで実施されるスキャンと送信の処理の流れについて説明する。このスキャンと送信の処理とは、ＭＦＰ１１０のスキャナー部１１２を用いて原稿画像を読み取って画像データを生成し、生成した画像データをインターネット１３０上のＷｅｂアプリケーション７０１に送信する一連の処理である。
【００６１】
図８は、図１の画像処理システムで実施されるスキャンと送信の処理の流れを示すシーケンス図である。
【００６２】
まず、ユーザーが、ＭＦＰ１１０の操作部１１１に設けられた、送信を行うためのハードウェアボタン（不図示）を押下してＷｅｂブラウザー４０２を起動する。
【００６３】
Ｗｅｂブラウザー４０２は、処理実行のための設定画面を取得するため、リバースプロキシ５０１が代行しているＷｅｂアプリケーション７０１のＵＲＬに設定画面のリクエストを行う。本実施形態では、Ｗｅｂアプリケーション７０１の設定画面のＵＲＬは「ｗｗｗ．ｓｅｒｖｅｒＡ．ｘｘｘ．ｃｏｍ／ｓｃａｎ／ｓｅｔｔｉｎｇ．ｃｇｉ」である。また、本実施形態では、このＵＲＬに対応する、設定画面のリバースプロキシ５０１が代行するコンテンツを示すＵＲＬ「ｈｔｔｐ：／／＜ｒｅｖｅｒｓｅ  ｐｒｏｘｙ＞／ＡｐｐＡ／ｓｅｔｔｉｎｇ．ｃｇｉ」が予めＭＦＰ１１０に設定されているものとする。
【００６４】
ステップ８０１では、Ｗｅｂブラウザー４０２が上述したＵＲＬに示すリバースプロキシ５０１に対して、ＨＴＴＰのＧＥＴコマンドによるリクエストを行う。具体的には、Ｗｅｂブラウザー４０２がＨＴＴＰ通信部４０１にＨＴＭＬデータを渡す。それに応じて、ＨＴＴＰ通信部４０１がＨＴＴＰプロトコルにより、リバースプロキシサーバー１２０のＨＴＴＰリクエスト受信部５０２と通信を行う。これにより、Ｗｅｂブラウザー４０２からリバースプロキシ５０１へのリクエストが行われる。このとき、Ｗｅｂブラウザー４０２からの接続要求に対して、リバースプロキシ５０１から認証が必要であるという応答が行われた場合、Ｗｅｂブラウザー４０２は認証画面を表示し、ユーザーから認証情報を受け付け、再度リクエストを行う。
【００６５】
ステップ８０２では、リバースプロキシ５０１が、受け取ったＨＴＴＰのリクエストをＷｅｂアプリケーション７０１に送信する。具体的には、ＨＴＴＰリクエスト受信部５０２が、受け取ったＨＴＭＬリクエストをＵＲＬ書き換え部５０３に渡す。ＵＲＬ書き換え部５０３は、ＨＴＴＰリクエストのＵＲＬをＵＲＬ変換テーブル５０８に従って送信先のＵＲＬに変換する。本実施形態では、上述の設定画面のＵＲＬに変換される。また、本実施形態では、ＢＡＳＩＣ認証が必要となっているので、認証用のヘッダが作成される。そして、ＨＴＴＰリクエスト送信部５０４が書き換えたＵＲＬに設定画面のコンテンツを要求するＨＴＴＰリクエストをＷｅｂアプリケーション７０１に送信する。
【００６６】
上述した処理により、Ｗｅｂブラウザー４０２とリバースプロキシ５０１間の認証を元に、リバースプロキシ５０１とＷｅｂアプリケーション７０１のＳＳＯが実現される。
【００６７】
ステップ８０３では、Ｗｅｂアプリケーション７０１のプレゼンテーション部７０２が、ステップ８０２のリクエストに応じて、設定画面のＨＴＭＬデータを作成し、ＨＴＴＰのレスポンスとして、リバースプロキシ５０１にＨＴＭＬデータの送信を行う。
【００６８】
ステップ８０４では、リバースプロキシ５０１が、レスポンスとして受け取ったＨＴＭＬデータをＷｅｂブラウザー４０２に送信する。具体的には、ＨＴＴＰレスポンス受信部５０５が受け取ったＨＴＭＬデータを、ＨＴＭＬコンテンツ書き換え部５０６に渡す。ＨＴＭＬコンテンツ書き換え部５０６は、ＵＲＬ変換テーブル５０８を元にＨＴＭＬデータのリンクを変更する。そして、変更されたＨＴＭＬデータをＨＴＴＰレスポンス送信部５０７が、ステップ８０１のリクエスト元のＷｅｂブラウザー４０２に送信する。Ｗｅｂブラウザー４０２は、受け取ったＨＴＭＬデータを解析し、操作部１１１に設定画面の表示を行う。
【００６９】
図９は、図８のステップ８０４にてＷｅｂブラウザー４０２が表示する設定画面の一例を示す図である。
【００７０】
ＧＵＩパネル９０１には、ファイル名を設定するためのテキストボックス９０２と、画像フォーマットを選択するためのラジオボタン９０３が配置されている。図示例では、画像データに「ｔｅｓｔ．ｐｄｆ」というファイル名が付与され、画像データをＰＤＦフォーマットで生成するように設定された状態となっている。ＧＵＩボタン９０４は、機能の実行を指示するためのボタンであり、ユーザーにより押下されると、Ｗｅｂブラウザー４０２はスキャン開始の指示と判断する。
【００７１】
ステップ８０５では、Ｗｅｂブラウザー４０２からリバースプロキシ５０１に対して、処理の実行を要求する。ユーザーによりＧＵＩボタン９０４を押下されると、Ｗｅｂブラウザー４０２は、テキストボックス９０２やラジオボタン９０３に設定されたパラメーターをリバースプロキシ５０１に通知する。通知には、ＨＴＴＰプロトコルのＰＯＳＴコマンドを利用する。
【００７２】
ステップ８０６では、ステップ８０２と同様に、リバースプロキシ５０１がＷｅｂアプリケーション７０１にＨＴＴＰリクエストの中継を行う。
【００７３】
ステップ８０７では、Ｗｅｂアプリケーション７０１のプレゼンテーション部７０２が、ステップ８０６のＨＴＴＰリクエストに応じて、処理中画面のＨＴＭＬデータを作成する。また、ロジック部７０３がステップ８０６のＰＯＳＴコマンドに含まれる設定情報を元に、ＭＦＰ１１０での処理実行のためのスクリプトデータを生成する。そして、ＨＴＴＰリクエストのレスポンスとして、スクリプトデータをリバースプロキシ５０１に送信する。
【００７４】
図１０は、ステップ８０７でロジック部７０３により生成され、リバースプロキシ５０１に送信されるスクリプトデータの一例を示す図である。本実施形態では、図示のスクリプトデータを前提に説明を行う。また、本実施形態では、図示のようにＸＭＬでスクリプトデータが作成されるが、ＭＦＰ１１０のスクリプト実行部４０３が実行可能な形式であれば、そのフォーマットは問わない。
【００７５】
「Ｓｃａｎ」タグ１００１は、ＭＦＰ１１０で行うスキャン処理の設定情報である。本実施形態では、紙サイズ（ＤｏｃｕｍｅｎｔＳｉｚｅ）が自動（ＡＵＴＯ）で、カラー設定（ＣｏｌｏｒＭｏｄｅ）がグレースケール（ＧＲＡＹ＿ＳＣＡＬＥ）であることを示している。
【００７６】
「Ｓｅｎｄ」タグ１００２は、ＭＦＰ１１０で行う送信処理の設定情報である。タグ１００３では、ＨＴＴＰプロトコルでサーバー「ｈｔｔｐ：／／ｗｗｗ．ｓｅｒｖｅｒＡ．ｘｘｘ．ｃｏｍ／ｓｃａｎ／ｕｐｌｏａｄ．ｃｇｉ」への送信を示している。また、ファイルフォーマット（ＦｉｌｅＦｏｒｍａｔ）はＰＤＦフォーマットで、ファイル名（ＦｉｌｅＮａｍｅ）は「ｔｅｓｔ」であることを示している。
【００７７】
図８に戻り、ステップ８０８では、リバースプロキシ５０１がステップ８０７で受け取ったスクリプトデータをＷｅｂブラウザー４０２に送信する。上述したように、スクリプトデータはＨＴＭＬコンテンツ書き換え部５０６で変換ができないため、受け取ったスクリプトデータはそのままＷｅｂブラウザー４０２に送信される。
【００７８】
ステップ８０９では、Ｗｅｂブラウザー４０２がステップ８０８で受け取ったスクリプトデータをスクリプト実行部４０３に渡す。スクリプト実行部４０３は、スクリプトデータを受け取ると、スクリプトデータに記載された処理内容に従ってジョブを実行する。
【００７９】
次に、スクリプト実行部４０３がスクリプトデータを受け取ってジョブを実行する処理について説明する。
【００８０】
図１１は、第１の実施形態におけるスクリプト実行部４０３のスクリプト実行処理の流れを示すフローチャートである。
【００８１】
ステップＳ１１０１では、スクリプト実行部４０３が通信設定管理部４０６に問い合わせて、リバースプロキシ５０１を使用する設定になっているかどうかを判定する。リバースプロキシ５０１を使用する設定になっていると判定した場合はステップＳ１１０２に遷移し、そうでない場合はステップＳ１１０５に遷移する。
【００８２】
ステップＳ１１０２では、スクリプト実行部４０３がスクリプトデータを解析し、スクリプトを実行することでリバースプロキシ５０１を介してＨＴＴＰプロトコルによる通信を行うかどうかを判定する。リバースプロキシ５０１を介してＨＴＴＰプロトコルによる通信を行うと判定した場合、ステップＳ１１０３に遷移する。そうでない場合、ステップＳ１１０５に遷移する。例えば、スクリプトデータにＬＡＮ１００と同じネットワークＵＲＬが含まれていた場合、スクリプトの実行で同じネットワーク内でのＨＴＴＰ通信を行うことになり、リバースプロキシ５０１を介する必要がないと判断する。
【００８３】
ステップＳ１１０３では、スクリプト実行部４０３が、リバースプロキシ通信部４０７に指示して、リバースプロキシ５０１と通信し、ＵＲＬ変換テーブル５０８を取得する。このとき、リバースプロキシ通信部４０７は、リバースプロキシ５０１の設定変更部５０９と通信を行い、ＵＲＬ変換テーブル５０８の情報を取得する。
【００８４】
ステップＳ１１０４では、スクリプト実行部４０３が、ステップＳ１１０３で取得したＵＲＬ変換テーブル５０８の情報を元に、スクリプトデータに含まれるＵＲＬを書き換える。
【００８５】
ステップＳ１１０５では、スクリプト実行部４０３が、スクリプトデータをジョブ毎に分割し、ジョブ管理部４０４にジョブを登録する。図１０に示すスクリプトデータの場合、スキャンジョブと送信ジョブの２つのジョブに分割される。
【００８６】
ステップＳ１１０６では、ジョブ管理部４０４がジョブ実行部４０５にジョブを実行させる。
【００８７】
ステップＳ１１０７は、ジョブ管理部４０４がジョブ実行部４０５を監視し、ジョブの実行が終了したかどうかを判断する。ジョブの実行が終了していれば、ステップＳ１１０８に遷移する。
【００８８】
ステップＳ１１０８では、ジョブ管理部４０４がスクリプトデータに記載されたジョブをすべて実行したかどうか判断する。すべてのジョブが実行していない場合は、ステップＳ１１０６に遷移し、次のジョブを実行する。一方、すべてのジョブが実行された場合は、本処理を終了する。
【００８９】
次に、スクリプト実行部４０３が上述したスクリプトを実行した場合のＭＦＰ１１０におけるスキャンジョブと送信ジョブのシーケンス（図８のステップ８１０からステップ８１５に相当）について説明する。
【００９０】
図８において、ステップ８１０では、ステップ８０９のスクリプト実行指示の結果、図１１のステップＳ１１０２の判断によりステップＳ１１０３が実行される。そして、スクリプト実行部４０３からリバースプロキシ通信部４０７へＵＲＬ変換テーブル５０８の取得指示が行われる。
【００９１】
ステップ８１１では、図１１のステップＳ１１０３の処理が行われ、リバースプロキシ通信部４０７からリバースプロキシ５０１の設定変更部５０９への通信が行われ、ＵＲＬ変換テーブル５０８の情報が取得される。そして、ステップＳ１１０４の処理により、スクリプトデータに含まれるタグ１１０３を次のＵＲＬに書き換える。
【００９２】
「ｈｔｔｐ：／／＜ｒｅｖｅｒｓｅ  ｐｒｏｘｙ＞／ＡｐｐＡ／ｕｐｌｏａｄ．ｃｇｉ」
書き換えた結果、送信ジョブにおいて元々Ｗｅｂアプリケーション７０１に送信する指示が、対応したリバースプロキシ５０１に送信する指示に変更される。
【００９３】
ステップ８１２では、図１１のステップＳ１１０５の処理が行われる。本実施形態では、スキャンジョブと送信ジョブの２つのジョブがジョブ実行部４０５に登録される。
【００９４】
ステップ８１３は、ステップ８１２で登録されたスキャンジョブが実行される。具体的には、ジョブ実行部４０５が、スキャナーＩ／Ｆ２０７を介してスキャナー部１１２を駆動制御し、読み取った画像をＨＤＤ２０４に保存する。
【００９５】
ステップ８１４は、ステップ８１２で登録された送信ジョブが実行される。具体的には、ジョブ実行部４０５が、ステップ８１３で読み取った画像をＨＤＤ２０４から読み出し、画像処理部２０８で画像処理を行い、所定のファイルフォーマットのファイルを生成する。
【００９６】
ステップ８１５は、ステップ８１４の送信ジョブの続きである。具体的には、ジョブ実行部４０５が、前述のＵＲＬの書き換えにより変更となったリバースプロキシ５０１のＵＲＬに対してＨＴＴＰプロトコルによりファイルの送信を行う。本実施形態では、ＨＴＴＰ  ＰＯＳＴコマンドにより画像ファイルを送信するものとする。このとき、ジョブ実行部４０５とリバースプロキシ５０１との間で認証が必要な場合、通信設定管理部４０６から認証情報を取得して認証を行う。
【００９７】
ステップ８１６は、リバースプロキシ５０１が、受け取ったＨＴＴＰのリクエストをＷｅｂアプリケーション７０１に送信する。具体的には、上述したステップ８０２やステップ８０６の処理が実行される。
【００９８】
以上が、Ｗｅｂアプリケーション７０１からの指示で、スキャンとＨＴＴＰプロトコルによる送信を行うシーケンスである。
【００９９】
本実施形態によれば、リバースプロキシ５０１で、ＨＴＴＰ通信を含むＭＦＰ１１０へのジョブ実行指示の書き換えを行わなくても、ＭＦＰ１１０のソフトウェアモジュールが、リバースプロキシ５０１と通信を行う。これにより、リバースプロキシ方式のＳＳＯシステムに対応可能となる。この結果、リバースプロキシ方式のＳＳＯシステムにおいて、Ｗｅｂブラウザーを有する画像処理装置がＷｅｂサーバーからの指示で適切に動作することが可能となる。
【０１００】
本実施形態では、リバースプロキシ通信部４０７がスクリプトの実行指示に応じてリバースプロキシ５０１と通信を行っているが、ＵＲＬ変換テーブル５０８のキャッシュをリバースプロキシ通信部４０７が保持して、毎回取得しない構成も可能である。また、キャッシュを行うタイミングも、スクリプト実行のタイミングではなく、例えばリバースプロキシ５０１の設定を変更したタイミングでリバースプロキシ５０１から通知を受け取り、更新する方法も可能である。
【０１０１】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。上記第１の実施形態では、ＭＦＰ１１０が、リバースプロキシ方式のＳＳＯ環境において、Ｗｅｂサーバーからの指示に応じてスキャン画像の送信を行う場合について説明した。第２の実施形態では、ＭＦＰ１１０で実行するスクリプトにＷｅｂＤＡＶ送信のジョブが含まれる。また、Ｗｅｂアプリケーションからの指示には、ＷｅｂＤＡＶ通信を行う際に使用する認証方法が指定されている。なお、第２の実施形態におけるＭＦＰは、ハードウェア構成とソフトウェア構成が第１の実施形態におけるＭＦＰと同じであり、第１の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第１の実施の形態と異なる点のみを説明する。
【０１０２】
図１２は、第２の実施形態において、Ｗｅｂアプリケーション７０１からＷｅｂブラウザー４０２に渡されるスクリプトデータの一例を示す図である。
【０１０３】
図１２に示すスクリプトデータは、上記第１の実施形態における図１０のスクリプトデータとタグ１２０１の部分が異なる。タグ１２０１は、ＷｅｂＤＡＶプロトコルでの送信を意味する。認証方法（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ）はＢＡＳＩＣ認証であり、ＩＤ（ｉｄ）が「ａａａ」、そしてパスワード（ｐａｓｓｗｏｒｄ）が「ｂｂｂ」で以下のＵＲＬにファイルを作成することを示している。
【０１０４】
「ｈｔｔｐ：／／ｗｗｗ．ｓｅｒｖｅｒＤ．ｘｘｘ．ｃｏｍ／ｆｏｌｄｅｒ／ｔｍｐ００１」
図１２に示すスクリプトデータでは、ＷｅｂＤＡＶサーバーにアクセスする際の認証情報が指定されているため、リバースプロキシ５０１とＷｅｂアプリケーション７０１の通信時に、この認証情報を使用する必要がある。
【０１０５】
次に、スクリプト実行部４０３がスクリプトデータを受け取ってジョブを実行する処理について説明する。
【０１０６】
図１３は、第２の実施形態におけるスクリプト実行部４０３のスクリプト実行処理の流れを示すフローチャートである。
【０１０７】
ステップＳ１３０１では、スクリプト実行部４０３が通信設定管理部４０６に問い合わせて、リバースプロキシ５０１を使用する設定になっているかどうかを判定する。リバースプロキシ５０１を使用する設定になっていると判定した場合はステップＳ１３０２に遷移し、そうでない場合はステップＳ１３０５に遷移する。
【０１０８】
ステップＳ１３０２では、スクリプト実行部４０３がスクリプトデータを解析し、スクリプトを実行することでリバースプロキシ５０１を介してＨＴＴＰプロトコルによる通信を行うかどうかを判定する。リバースプロキシ５０１を介してＨＴＴＰプロトコルによる通信を行うと判定した場合、ステップＳ１３０３に遷移する。そうでない場合、ステップＳ１３０５に遷移する。
【０１０９】
ステップＳ１３０３では、スクリプト実行部４０３が、リバースプロキシ通信部４０７に指示して、リバースプロキシ５０１と通信し、ＵＲＬ変換テーブル５０８の設定を行う。このとき、リバースプロキシ通信部４０７は、リバースプロキシ５０１の設定変更部５０９と通信を行い、ＵＲＬ変換テーブル５０８にスクリプトデータに含まれるＵＲＬ変換情報を追加設定する。ステップＳ１３０３の処理によりＵＲＬ変換情報を追加設定された後のＵＲＬ変換テーブル１４００を図１４に示す。
【０１１０】
ＵＲＬ変換テーブル１４００では、欄１４０１にＵＲＬ変換情報としてスクリプトデータのタグ１２０１に対応したＵＲＬや認証情報が追加設定されている。
【０１１１】
図１３に戻り、ステップＳ１３０４では、スクリプト実行部４０３が、ステップＳ１３０３でＵＲＬ変換テーブル１４００に追加設定されたＵＲＬ変換情報を元に、スクリプトデータに含まれるＵＲＬを書き換える。本実施形態の場合、タグ１２０１のＵＲＬ部分を以下のＵＲＬに変更する。
【０１１２】
「ｈｔｔｐ：／／＜ｒｅｖｅｒｓｅ  ｐｒｏｘｙ＞／ＴＥＭＰ００１／」
ステップＳ１３０５では、スクリプト実行部４０３が、スクリプトデータをジョブ毎に分割し、ジョブ管理部４０４にジョブを登録する。図１２に示すスクリプトデータの場合、スキャンジョブと送信ジョブの２つのジョブに分割される。
【０１１３】
ステップＳ１３０６では、ジョブ管理部４０４がジョブ実行部４０５にジョブを実行させる。ステップＳ１３０５で、送信ジョブの送信先はリバースプロキシ５０１のＵＲＬに変更されているため、ジョブ実行部４０５からＷｅｂＤＡＶプロトコルによる送信先はリバースプロキシ５０１になる。リバースプロキシ５０１は、ジョブ実行部４０５からの通信を受けると、ＵＲＬ変換テーブル１４００の欄１４０１の情報を参照してＵＲＬの変換を行う。そのため、元々のスクリプトデータのタグ１２０１のＵＲＬで示されるＷｅｂＤＡＶサーバーに対して、スクリプトデータに記載された認証情報を利用してリバースプロキシ５０１から通信を行うことになる。
【０１１４】
ステップＳ１３０７は、ジョブ管理部４０４がジョブ実行部４０５を監視し、ジョブの実行が終了したかどうかを判断する。ジョブの実行が終了していれば、ステップＳ１３０８に遷移する。
【０１１５】
ステップＳ１３０８では、ジョブ管理部４０４がスクリプトデータに記載されたジョブをすべて実行したかどうか判断する。すべてのジョブを実行していない場合は、ステップＳ１３０６に遷移し、次のジョブを実行する。一方、すべてのジョブが実行された場合は、ステップＳ１３０９に遷移する。
【０１１６】
ステップＳ１３０９では、スクリプト実行部４０３が、リバースプロキシ通信部４０７に指示して、ステップＳ１３０３でＵＲＬ変換テーブル１４００に追加設定された、欄１４０１のＵＲＬ変換情報を削除する。なお、ステップＳ１３０３で追加設定がされていない場合には削除を行わない。
【０１１７】
以上のように、ＭＦＰ１１０のソフトウェアモジュールが、リバースプロキシ５０１と通信を行うことにより、リバースプロキシ５０１とＷｅｂアプリケーション７０１との通信における認証の制御を行うことが可能となる。その結果、Ｗｅｂアプリケーション７０１からの指示に含まれる認証方法を用いて、ＭＦＰ１１０で送信ジョブの実行が可能になる。
【０１１８】
本発明の目的は、上述した実施形態で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、システム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が、そのプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶した記憶媒体も本発明の一つを構成することになる。
【０１１９】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１２０】
また、コンピューターが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づきコンピューター上で稼動しているＯＳなどが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【０１２１】
さらに、次の場合も含まれる。記憶媒体から読出されたプログラムコードが、コンピューターに挿入された機能拡張ボードやコンピューターに接続された機能拡張ユニットに備わるメモリに書き込まれている。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される。
【符号の説明】
【０１２２】
１００  ＬＡＮ
１１０  ＭＦＰ
１２０  リバースプロキシサーバー
１３０  インターネット
１４０  Ｗｅｂサーバー
４０３  スクリプト実行部
４０４  ジョブ管理部
４０５  ジョブ実行部
５０８  ＵＲＬ変換テーブル 
【図１】
2013008284.tif 000003
【図２】
2013008284.tif 000004
【図３】
2013008284.tif 000005
【図４】
2013008284.tif 000006
【図５】
2013008284.tif 000007
【図６】
2013008284.tif 000008
【図７】
2013008284.tif 000009
【図８】
2013008284.tif 000010
【図９】
2013008284.tif 000011
【図１０】
2013008284.tif 000012
【図１１】
2013008284.tif 000013
【図１２】
2013008284.tif 000014
【図１３】
2013008284.tif 000015
【図１４】
2013008284.tif 000016