説明

中継装置、その制御方法、および制御プログラム

【課題】MFPなどの情報処理装置が備えるインタフェースに機能拡張などの変更が行われても、情報処理装置が備えるモジュールの変更を行う必要がないようにする。
【解決手段】仲介アプリケーション420はMFP101に表示された操作画面の操作に応じたリクエストをサーバー102に送信するとともに、リクエストに対するレスポンスをサーバーから受信する。仲介アプリケーションはレスポンスの内容に応じてレスポンスをWebブラウザー430およびサービスプロバイダー部440の双方又はいずれに送信するかを判定する。仲介アプリケーションは判定結果に応じてレスポンスをWebブラウザーおよびサービスプロバイダー部の双方又はいずれに送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、中継装置、その制御方法、および制御プログラムに関し、特に、外部装置から提供される操作画面を表示して当該操作画面による操作に応じた処理を行う情報処理装置と外部装置と情報処理装置とを仲介する中継装置に関する。
【背景技術】
【0002】
従来、スキャナやプリンタ、ファクシミリ、ネットワーク送信装置などの各装置の機能を1つの筺体内に収納した画像処理装置が一般的に知られている。このような画像処理装置の操作部にWebブラウザーを用いる形態も一般的である。ここで、Webブラウザーで表示する操作画面で上述の各機能を利用する形態として特許文献1のような方法が知られている。
【0003】
特許文献1によると、画像処理装置が備えているWebブラウザーは、ネットワーク上の外部装置から受信した画面情報(画面データ)に基づいて画像処理機能に関する操作画面を操作部に表示する。そして、その操作画面を用いてユーザーの操作を受けると、Webブラウザーは、ユーザーから受け付けた操作の内容を外部装置へ送信する。その後、画像処理装置は、外部装置からそのユーザーの操作に基づくWebサービスの要求を受信する。画像処理装置は、Webサービスの要求に応じて画像処理装置のスキャン機能又はプリント機能を実行する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−203869号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
Webブラウザーを備える情報処理装置と、ネットワーク上に存在する外部装置との間にファイアウォールが存在する場合がある。ファイアウォールは一般的に内部から外部への接続は許可するが外部から内部への接続は許可しない。そのため上述した従来の方法では、外部装置からのWebサービスの要求を受け付けることができない場合がある。
【0006】
また、ネットワークアドレス変換装置(NAT)によりIPアドレスとプライベートアドレスを相互に変換してアドレスを使用する環境にMFPが存在する場合には、Webサービスを要求するMFPをインターネット上の外部装置からは特定できない、という問題がある。
【0007】
本発明は、上述のような課題にかんがみて、MFPと外部装置との間にファイアウォールが存在する場合や、MFPがアドレス変換を用いる環境に存在する場合でも、好適に外部装置からのWebサービスの要求をMFPに処理させるための手段を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明による中継装置は、外部装置とネットワークを介して接続され、前記外部装置から提供される操作画面の操作に応じてジョブ処理を実行する情報処理装置と前記外部装置とを仲介する中継装置であって、前記情報処理装置には、前記操作画面を表示部に表示する表示制御手段と、前記ジョブ処理を実行するジョブ処理手段とが備えられており、前記操作画面の操作に応じたリクエストを前記情報処理装置から受信して前記外部装置に送信し、前記リクエストに対するレスポンスを前記外部装置から受信する送受信手段と、前記レスポンスの内容に応じて前記レスポンスを前記表示制御手段および前記ジョブ処理手段のいずれに送信するかを判定する判定手段と、前記判定手段による判定結果に応じて前記レスポンスを前記表示制御手段および前記ジョブ処理手段のいずれに送信する送信手段とを有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、ネットワーク上に存在する外部装置との間にファイアウォールが存在する場合や、MFPがアドレス変換を用いる環境に存在する場合でも、外部装置から送信されたWebサービスの要求であってWebブラウザーでの操作に基づくWebサービスの要求を好適に処理することができる。
【図面の簡単な説明】
【0010】
【図1】本発明の実施の形態による中継装置および情報処理装置が収容されたネットワークシステムの一例を示す図である。
【図2】図1に示す情報処理装置についてその構成の一例を示すブロック図である。
【図3】図1に示すサーバーおよび仲介装置のハードウェア構成の一例を示すブロック図である。
【図4】図4は、図1に示す情報処理装置、サーバー、および仲介装置のソフトウェア構成の一例を示す図である。
【図5】図4に示す情報処理装置(MFP)、サーバー、および仲介装置における処理を説明するためのシーケンス図である。
【図6】仲介装置における処理を説明するためのフローチャートである。
【図7】仲介装置における処理を説明するためのフローチャートである。
【図8】仲介装置がMFPのWebサービスを呼び出した際のタイムアウト処理を説明するためのフローチャートである。
【図9】図4に示すWebアプリケーションが仲介アプリケーションに送信するHTTPレスポンスヘッダーの構成を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態による中継装置の一例について図面を参照して説明する。
【0012】
図1は、本発明の実施の形態による中継装置および情報処理装置が収容されたネットワークシステムの一例を示す図である。図示の例では、情報処理装置101と中継装置(以下仲介装置あるいはプロキシサーバとも呼ぶ)103がローカルエリアネットワーク(LAN)100を介して互いに通信可能に接続されている。またインターネット上にはサーバー(Webサーバー)102が存在する。
【0013】
本実施形態では、図1には図示しないが、インターネットとLAN100との間にはファイアウォール及びNAT(Network Address Translator)が設けられている。ファイアウォールはインターネットからLAN100内への不正アクセスを防止する機能を持っている。
【0014】
またNATは、IPアドレスとLAN100内で使用するプライベートアドレスとを相互に変換するアドレス変換テーブルを持つ。このアドレス変換テーブルによるアドレス変換により、プライベートアドレスしか持たないLAN100内の装置がインターネット上の外部装置に透過的にアクセスすることができる。
【0015】
なお以降では、情報処理装置101の一例として画像形成(印刷)機能、画像読取機能、画像送信機能などの各種の画像処理機能を備えたMFP(Multiple Function Peripheral)について説明する。
【0016】
MFP101は所謂Webブラウザー機能を有しており、サーバー102はWebコンテンツを、ネットワーク100を介して配信する配信機能を有している。そして、サーバー102はMFP101からのリクエストに応じてWebコンテンツをMFP101に返送する。なお、MFP101は通信を行うための複数のインタフェースを備えている。
【0017】
MFP101は、上述のブラウザー機能を用いてサーバー102にリクエストを送信する場合、必ず中継装置(仲介装置)103を介するよう設定されている。そのため、MFP101のWebブラウザーで送信されたサーバー102へのリクエスト及びそのリクエストに対するレスポンスは、全て中継装置(仲介装置)103を介することになる。
【0018】
仲介装置103は、サーバー102とMFP101との間の通信を仲介する。例えば、サーバー102からMFP101にリクエスト又はレスポンスを送信する際、仲介装置103はその通信内容を解析して、この解析結果に応じて、MFP101が備える複数のインタフェースのいずれかを選択する処理を行う。さらに、仲介装置103はMFP101で実行された処理結果(ジョブ処理結果)をサーバー101に送る。
【0019】
なお、本実施形態ではサーバー(Webサーバー)を外部装置の一例として説明するが、汎用のパーソナルコンピュータを外部装置として適用してもよいことはいうまでもない。
【0020】
図2は、図1に示すMFP101についてその構成の一例を示すブロック図である。
【0021】
図2において、MFP101は、CPU201を有しており、CPU201はMFP101全体の制御を司る。さらに、MFP101は、CPU201のワークエリアとして用いられるRAM202、原稿から画像を読み取る読取装置203、および画像データに応じて印刷を行う印刷装置204を備えている。また、MFP101は、記憶装置205、ユーザー入力装置206、UI(ユーザーインタフェース)表示装置207、およびネットワーク装置208を備えている。そして、これらCPU201、RAM202、読取装置203、印刷装置204、記憶装置205、ユーザー入力装置206、UI表示装置207、およびネットワーク装置208はメインバス200で相互に接続されている。
【0022】
記憶装置205にはプログラムおよび各種設定情報が記憶され、例えば、HDD又はNVRAM等が用いられる。ユーザー入力装置206はユーザーがコマンドの入力を行うためのものであり、UI表示装置207には各種画面表示が行われる。ネットワーク装置208は外部機器(例えば、サーバー102)とネットワーク100を介して通信を行うためのものである。なお、図示の例では、CPU201はメインバス200を介してRAM202、読取装置203、印刷装置204、記憶装置205、ユーザー入力装置206、UI表示装置207、およびネットワーク装置208を制御する。また、タッチパネルディスプレイを用いてUI表示装置207がユーザー入力装置206を兼ねるにしてもよい。
【0023】
図3は、図1に示すサーバー102および仲介装置103のハードウェア構成の一例を示すブロック図である。
【0024】
図3において、サーバー102は、CPU301、RAM302、記憶装置303、およびネットワーク装置304を有しており、これらはメインバス300によって相互に接続されている。RAM302はCPU301のワークエリアとして用いられ、記憶装置303にはプログラムおよび各種設定情報が記憶される。ネットワーク装置304はネットワーク100を介してMFP101と通信を行う。
【0025】
図示の例では、CPU301はメインバス300を介してRAM302、記憶装置303、およびネットワーク装置304を制御する。なお、仲介装置103はサーバー102と同様のハードウェア構成を有している。
【0026】
図4は、図1に示すMFP101、サーバー102、および仲介装置103のソフトウェア構成の一例を示す図である。なお、図4に示すソフトウェア(制御プログラム)はMFP101のCPU201又はサーバー102および仲介装置103のCPU301で実行される。
【0027】
図4において、サーバー102上ではWebアプリケーション410が動作する。そして、Webアプリケーション410は、プレゼンテーション部411、ロジック部412、および通信部413を備えている。
【0028】
プレゼンテーション部411は、通信部413を介して、仲介装置103と通信を行って、情報処理装置(以下MFPとも呼ぶ)101からのリクエストに応答して、MFP101に表示される操作画面又は処理要求を、MFP101にレスポンスとして送信する。また、プレゼンテーション部411はMFP101に表示された操作画面を介して入力された入力情報を、通信部413を介してMFP101から受け取る。
【0029】
ロジック部412は、プレゼンテーション部411から通知された上記の入力情報に対する処理を行う。例えば、ロジック部412は、入力情報に応じて、表示する画面を変更し、そして、MFP101におけるデバイス機能実行のための処理要求を作成する。
【0030】
通信部413は、ネットワーク装置304(図3)を制御してHTTPプロトコルにより通信を行うソフトウェアモジュールである。
【0031】
仲介装置103は、仲介アプリケーション420を備えている。そして、この仲介アプリケーション420は、通信部421および処理部422を有している。通信部421はMFP101から送信されたリクエストを受け付ける。そして、通信部421は通信部413を介してプレゼンテーション部411およびロジック部412に当該リクエストを送信する。
【0032】
また、通信部421はWebアプリケーション410から送られたレスポンスを受けると、当該レスポンスを処理部422に渡す。処理部422はこのレスポンスを解析して、解析結果に応じて後述するように通信部421を介してMFP101と通信を行う。
【0033】
MFP101は、Webブラウザー430およびサービスプロバイダー部440を有している。Webブラウザー430およびサービスプロバイダー部440の各々は、MFP101のCPU201によって実行される。なお、Webブラウザー430は、サーバー102から送られたコンテンツを表示するものに限定するものではない。同様に、サーバー102および仲介装置103もHTTPプロトコルに従ってリクエスト/レスポンスを送受信する機器に限定するものではない。Webブラウザー430は、任意のサーバーと通信を行うことによってコンテンツを取得して、画面に表示するといった機能を有すればよい。
【0034】
図示の例では、Webブラウザー430は、通信部431、解析部432、および画面表示部433を有している。通信部431は、HTTPプロトコルに従って、通信部421を介して(つまり、仲介装置103を介して)、サーバー102と通信を行う。サービスプロバイダー部440は、通信部441およびジョブ生成部442を有している。通信部441は、HTTPプロトコルに従って、通信部421を介してサーバー102と通信を行う。
【0035】
つまり、MFP101において、Webブラウザー430又はサービスプロバイダー部440がWebアプリケーション410からのレスポンスに対してリクエストを行う場合、通信部421が通信部431又は441からリクエストを受ける。そして、通信部421は通信部413を介してプレゼンテーション部411にリクエストを通知する。
【0036】
例えば、通信部431は、Webブラウザー430で表示した操作画面を介して入力される情報(入力情報)を、仲介装置103を介してWebアプリケーション410に対するリクエストとして送信する。そして、通信部431は、Webアプリケーション410から仲介装置103を介して送信されるレスポンスを受信する。
【0037】
解析部432は、Webアプリケーション410から仲介装置103を介して受信したレスポンスを解析する。レスポンスにはWebブラウザー430が表示する操作画面の内容を示す記述であるHTMLデータが記載されている。
【0038】
画面表示部433は、解析部432による解析結果に基づいて、サーバーが提供したHTMLデータを操作画面としてUI表示装置207(図2)に画面表示する。
【0039】
サービスプロバイダー部440において、通信部441は、仲介アプリケーション部420から処理依頼を受け付ける。処理依頼を受け付ける際に用いられるインタフェースとして、例えば、Webサービスインタフェースが用いられる。ジョブ生成部442は、通信部441で受け付けた処理依頼を受け取って、依頼された処理を実行するためのジョブを生成して当該ジョブを実行する。
【0040】
図5は、図4に示す情報処理装置(MFP)101、サーバー102、および仲介装置103における処理を説明するためのシーケンス図である。
【0041】
図2〜図5を参照して、ここでは、MFP101がリクエストを行って、仲介装置103が当該リクエストに係る処理を仲介してレスポンスとしてサーバー102に送信する例について説明する。
【0042】
いま、ユーザーがMFP101においてUI表示装置207から送信を行うためのハードウェアボタン(図示せず)を押下げると、Webブラウザー430が起動される。
【0043】
Webブラウザー430は、ジョブ処理実行に係る設定画面を取得するため、サーバー102上のWebアプリケーション410に設定画面に係るリクエストを行う。図示の例では、メニュー画面(設定画面)のコンテンツを示すURLが予めMFP101に設定されている。
【0044】
Webブラウザー430はURLで示されるコンテンツを保持するWebアプリケーション410に対して、HTTPのGETコマンドによるリクエストを行う。具体的には、Webブラウザー430において、通信部431はHTMLデータ(URL)に応じてHTTPプロトコルによって仲介装置103の通信部421と通信を行う。そして、通信部421は、サーバー102の通信部413と通信を行う。
【0045】
これによって、通信部413は受信したURLに応じてWebアプリケーション410にHTMLデータを渡す。この結果、Webブラウザー430からWebアプリケーション410に対するリクエストが行われることになる。なお、以下の説明では、通信部431、通信部421、および通信部431の動作(処理)について説明を省略する。
【0046】
前述のように、Webブラウザー430から仲介アプリケーション420に対してリクエストが行われると(ステップS501)、仲介アプリケーション420はWebブラウザー430から受けたリクエストをWebアプリケーション410に転送する(ステップS502)。
【0047】
Webアプリケーション410はリクエストの内容に応じた処理を行って、その処理結果をレスポンスとして仲介アプリケーション420に送る(ステップS503)。仲介アプリケーション420は、レスポンスを受けると後述する判断処理を行って、当該レスポンスをWebブラウザー430およびサービスプロバイダー部440の双方又はいずれか一方に送るか否かを決定する。
【0048】
仲介アプリケーション420は、判断処理の結果に応じてWebブラウザー430およびサービスプロバイダー部440の双方又はいずれか一方に送る(ステップS504およびS505)。
【0049】
Webブラウザー430はレスポンスを受けると、当該レスポンスが示す処理結果をUI表示装置207(図2)に表示して処理を終了する。一方、サービスプロバイダー部440はレスポンスを受けると、レスポンスに応じた処理を行ってその結果を仲介アプリケーション420に送る(ステップS506)。そして、仲介アプリケーション420は、サービスプロバイダー部440から受信した処理結果をWebアプリケーション410に送って処理を終了する。
【0050】
図6は、図4に示す仲介アプリケーション420においてMFP101(Webブラウザー430とサービスプロバイダー部440)とWebアプリケーション410とを仲介する処理を説明するためのフローチャートである。
【0051】
なお以降の説明では、MFP101がインターネット上のサーバー102(Webアプリケーション410)宛てに送信するメッセージのことを「HTTPリクエストメッセージ」と呼ぶ。そして、サーバー102(Webアプリケーション410)がそのHTTPリクエストメッセージの応答として送信するメッセージのことを「HTTPレスポンスメッセージ」と呼ぶ。Webブラウザー430は、HTTPリクエストメッセージの中に、サーバー102が提供する操作画面のコンテンツを要求するコマンドや、その他にもWebアプリケーション410に各種の処理を実行するためのコマンドを含めて送信することができる。
【0052】
一方、Webアプリケーション410は、HTTPリクエストメッセージの応答であるHTTPレスポンスメッセージの中にMFP101に処理を要求するコマンドを含めることができる。例えば、MFP101に対するスキャン処理を要求するコマンドやファイルを送信する処理を要求するコマンド等をHTTPレスポンスメッセージに含めて送信し、そのメッセージに含まれるコマンドに従って情報処理装置にジョブを実行させる。このような構成とすることで、MFP101とサーバー102との間にファイアウォールが存在する場合でも、サーバー102が情報処理装置に対して処理を要求することができる。
【0053】
図6及び図7のフローチャートは、MFP101が備えるWebブラウザー430からHTTPリクエストメッセージを受信したことにより、処理が開始される。
【0054】
図4および図6を参照して、いま、仲介アプリケーション420はWebブラウザー430からWebアプリケーション410宛てのHTTPリクエストメッセージを受信すると、当該HTTPリクエストメッセージをWebアプリケーション410に転送する(ステップS601)。そして仲介アプリケーション420は、Webアプリケーション410からHTTPリクエストメッセージの応答としてHTTPレスポンスメッセージを受信する(ステップS602)。
【0055】
ここで、Webアプリケーション410が仲介アプリケーション420に送信するHTTPレスポンスヘッダーについて図9を参照して説明する。図9は、Webアプリケーション410が仲介アプリケーション420に送信するHTTPレスポンスメッセージのヘッダー部の構成を示す図である。
【0056】
図9に示すように、HTTPレスポンスメッセージのヘッダー部900は、宛先901(X−Web Service−Address)、タイムアウト時間902(X−Web service−Request Time out)、およびコンテントタイプ903(Content−Type)を備えている。仲介アプリケーション420は、例えば、図5に示すステップS505において、宛先901に応じてHTTPレスポンスメッセージのボディー部に記述されたコマンドを送信する。送信するコマンドは、ここでは図示しないがSOAP(Simple Object Access Protocol)に従ったXML形式のメッセージであり、サービスプロバイダー部440にスキャンやプリント、ファイル送信等のジョブを実行させるものである。
【0057】
タイムアウト時間902は、例えば、仲介装置103がサービスプロバイダー部440と通信する際のタイムアウト時間であり、秒単位で示される。仲介装置103は、サービスプロバイダー部440と通信を行う際に時間を計測し、タイムアウト時間902で指定された時間が経過すると通信を停止し、仲介装置103はタイムアウトエラーレスポンスをWebアプリケーション410に送る。図6のフローチャートの説明に戻る。S602でHTTPレスポンスメッセージをWebアプリケーション410から受信すると、仲介アプリケーション420は、HTTPレスポンスメッセージに含まれるヘッダー部のContent−Typeフィールド(コンテントタイプフィールド)803がapplication/vnd.canon.webserviceであるか否かを判定する(ステップS603)。
【0058】
Content−Typeフィールド803がapplication/vnd.canon.webserviceでないと判定した場合には(ステップ603において、NO)、判定結果に応じて、仲介アプリケーション420はそのHTTPレスポンスメッセージをWebブラウザー430に送信し(ステップS604)、本フローチャートの処理を終了する。
【0059】
一方Content−TypeフィールドがWebサービスの呼び出しを要求する属性、すなわち、application/vnd.canon.webserviceであると判定した場合(ステップ603において、YES)、ステップS606に進む。ステップS606では、仲介アプリケーション420はHTTPレスポンスメッセージに含まれるSOAPのコマンドをサービスプロバイダー部440に送信してWebサービスを呼び出す(ステップS606)。一般に、クライアント/サーバシステムにおいては、HTTPリクエストメッセージに対するHTTPレスポンスメッセージはリクエストを発行したクライアント(ここではWebブラウザー430)に返却される。ただしステップS606に処理を進めた場合には、Webブラウザー430が送信したHTTPリクエストメッセージの応答がWebブラウザー430ではなくサービスプロバイダー部440に送信される。そのため、Webブラウザー430はこの時点ではHTTPリクエストメッセージに対する応答の待ち状態となっている。
【0060】
S606で仲介装置103(仲介アプリケーション420)がSOAPのコマンドをMFP101のサービスプロバイダー部440に送信すると、サービスプロバイダー部440ではその送信されたコマンドに従いジョブ生成部442でジョブ(スキャンジョブや送信ジョブなど)を生成し、WebサービスとしてMFP101の処理手段に画像処理を実行させる。例えば、受け取ったコマンドがスキャンの要求である場合には画像読取機能により原稿を読み取って画像データを生成する。そして、ファイル送信の要求である場合には画像送信機能により指定宛先へ画像データを送信する。
【0061】
図7は、図6のフローチャートの処理の続きを説明するためのフローチャートである。ここでは、サービスプロバイダー部440から仲介アプリケーション420経由で処理結果をWebアプリケーション410に送信した後、再度Webアプリケーション410から仲介装置103に処理依頼があったものとする。図示の例では、サービスプロバイダー部440に返却されるべきHTTPレスポンスメッセージについて、当該HTTPレスポンスメッセージのヘッダー部におけるContent−Typeフィールドを解析して、その解析結果に応じてHTTPレスポンスメッセージをサービスプロバイダー部440及びWebブラウザー430のいずれに送信すべきかを決定する。
【0062】
前述したように、ステップS606で仲介装置103(仲介アプリケーション420)がWebサービスを呼び出し、その結果サービスプロバイダー部440によりジョブが実行されると、その後、仲介アプリケーション420はサービスプロバイダー部440から処理結果(例えば、ジョブ処理結果)を取得する(ステップS801)。そして、仲介アプリケーション420は取得した処理結果を含むHTTPリクエストメッセージをWebアプリケーション410に送信する(ステップS802)。
【0063】
続いて、仲介アプリケーション420は再度サーバー102(Webアプリケーション410)から処理に関する指示を含むHTTPレスポンスメッセージを受信する(ステップS803)。仲介アプリケーション420はステップS603の処理と同様にHTTPレスポンスメッセージのヘッダー部のContent−Typeフィールドを解析する。Content−Typeフィールドが再度サービスプロバイダー部440にWebサービスを要求する属性(application/vnd.canon.webservice)である場合には(ステップS804でYES)ステップS807に進む。ステップS807では、S803で受信したHTTPリクエストメッセージに含まれるSOAPのコマンドを再度サービスプロバイダー部440に送信しWebサービスを呼び出す。一方Webサービスを要求する属性でなければ(ステップS804でNO)、Webアプリケーション410からの指示はサービスプロバイダー部440への指示ではなくWebブラウザー430への指示と判断し、ステップS805に進む。ステップS805では、仲介アプリケーション420はWebブラウザー430にHTTPレスポンスメッセージを送信し(ステップS808)本フローチャートの処理を終了する。
【0064】
以上、図6及び図7で説明したように、仲介アプリケーション420はコンテントタイプ903に応じて、HTTPレスポンスメッセージのボディー部の内容がサービスプロバイダー部440に対する処理要求であるか又はWebブラウザー430で表示するHTMLコンテンツであるかを判定する。具体的には、HTTPレスポンスメッセージのヘッダー部にWebサービスの要求を示す属性(application/vnd.canon.webservice)があるか否かを解析することで上記判定を行う。そして、Webサービスの要求を示す属性がある場合、そのHTTPレスポンスメッセージに含まれるWebサービスの要求を示すコマンドをサービスプロバイダー部440に送信する。
【0065】
本実施形態では、Webブラウザー430が送信したHTTPリクエストメッセージの応答であるHTTPレスポンスメッセージにWebサービスを要求する属性を含む場合は、そのメッセージはWebブラウザー430で受信せず、仲介アプリケーション420がサービスプロバイダー部440へ転送するように構成した。そのため、Webブラウザーには特別な機能を拡張する必要がない。
【0066】
以上のように、本実施の形態によれば、MFPなどの情報処理装置が備えるインタフェースに機能拡張などの変更が行われても、MFPが備えるモジュール(特にWebブラウザー)の変更を行う必要がない。つまり、情報処理装置においてジョブ処理を司るサービスプロバイダー部が拡張されても柔軟に対応することができる。そして、情報処理装置に呼び出しのためのアプリケーションを組み込むことなく、サーバーとは別に仲介装置を配置して、当該仲介装置で動作する仲介アプリケーションによって呼び出しを行うようにしたので、ユーザーに対する影響を少なくして、システムの拡張を行うことができる。
【0067】
図8は、図4に示す仲介アプリケーション420がサービスプロバイダー部440のWebサービスを呼び出した際のタイムアウト処理を説明するためのフローチャートである。
【0068】
図4および図7を参照して、図6で説明したように、Content−Typeフィールドがapplication/vnd.canon.webserviceであると、仲介アプリケーション420はHTTPレスポンスメッセージに記載されたサービスプロバイダー部440に係るWebサービスを呼び出す。つまり、仲介アプリケーション420はサービスプロバイダー部440のインタフェースであるWebサービスを呼び出す(ステップS701)。そして、仲介アプリケーション420はWebサービス呼び出しを行った後、所定のタイムアウト時間の監視を開始する(ステップS702)。
【0069】
仲介アプリケーション420はタイムアウト時間が経過したか否かをチェックする(ステップS703)。タイムアウト時間が経過しないと(ステップ703において、NO)、仲介アプリケーション420はサービスプロバイダー部440から処理結果を受信したか否かをチェックする(ステップS704)。
【0070】
サービスプロバイダー部440から処理結果を受信しないと(ステップS704において、NO)、仲介アプリケーション420はステップS703の処理に戻る。一方、サービスプロバイダー部440から処理結果を受信すると(ステップS704において、YES)、仲介アプリケーション420は処理を終了する。
【0071】
タイムアウト時間が経過すると(ステップ703において、YES)、仲介アプリケーション420はタイムアウトエラーと判定して、タイムアウトエラーレスポンスをWebアプリケーション410に通知する(ステップS705)。そして、仲介アプリケーション420は処理を終了する。
【0072】
上述の説明から明らかなように、図4において、Webブラウザー430が表示制御手段として機能し、サービスプロバイダー部440がジョブ処理手段として機能する。また、仲介アプリケーション420が送受信手段、判定手段、および送信手段として機能する。加えて、仲介アプリケーション420はカウント手段および通知手段として機能する。
【0073】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【0074】
例えば、上記の実施の形態の機能を制御方法として、この制御方法を、中継装置(仲介装置)に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、この制御プログラムを中継装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【0075】
この際、制御方法および制御プログラムは、少なくとも送受信ステップ、判定ステップ、および送信ステップを有することになる。
【0076】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0077】
410 Webアプリケーション
411 プレゼンテーション部
412 ロジック部
413,431,441 通信部
430 Webブラウザー
432 解析部
432 画面表示部
440 サービスプロバイダー部
442 ジョブ生成部

【特許請求の範囲】
【請求項1】
外部装置とネットワークを介して接続され、前記外部装置から提供される操作画面の操作に応じてジョブ処理を実行する情報処理装置と前記外部装置とを仲介する中継装置であって、
前記情報処理装置には、前記操作画面を表示部に表示する表示制御手段と、前記ジョブ処理を実行するジョブ処理手段とが備えられており、
前記操作画面の操作に応じたリクエストを前記情報処理装置から受信して前記外部装置に送信し、前記リクエストに対するレスポンスを前記外部装置から受信する送受信手段と、
前記レスポンスの内容に応じて前記レスポンスを前記表示制御手段および前記ジョブ処理手段のいずれに送信するかを判定する判定手段と、
前記判定手段による判定結果に応じて前記レスポンスを前記表示制御手段および前記ジョブ処理手段のいずれかに送信する送信手段と、
を有することを特徴とする中継装置。
【請求項2】
前記判定手段による判定結果が前記レスポンスを前記ジョブ処理手段に送信することを示していると、前記送受信手段は前記ジョブ処理手段によるジョブ処理結果を示す通知を前記外部装置に送信することを特徴とする請求項1に記載の中継装置。
【請求項3】
前記レスポンスはHTTPプロトコルに応じたレスポンスであり、
前記レスポンスのヘッダーにおけるコンテントタイプフィールドに応じて、前記判定手段は前記レスポンスを前記表示制御手段および前記ジョブ処理手段の双方又はいずれに送信するかを判定することを特徴とする請求項1又は2に記載の中継装置。
【請求項4】
前記レスポンスを前記ジョブ処理手段に送信すると、カウントを開始するカウント手段と、
前記カウント手段によるカウントが所定のタイムアウト時間を経過すると、タイムアウトエラーを前記外部装置に通知する通知手段とを有することを特徴とする請求項2に記載の中継装置。
【請求項5】
外部装置にネットワークを介して接続され、前記外部装置から提供される操作画面を表示部に表示する表示制御手段と、前記操作画面の操作に応じてジョブ処理を実行するジョブ処理手段とを備える情報処理装置と前記外部装置とを仲介する中継装置の制御方法であって、
前記操作画面の操作に応じたリクエストを前記外部装置に送信し、前記リクエストに対するレスポンスを前記外部装置から受信する送受信ステップと、
前記レスポンスの内容に応じて前記レスポンスを前記表示制御手段および前記ジョブ処理手段のいずれに送信するかを判定する判定ステップと、
前記判定ステップによる判定結果に応じて前記レスポンスを前記表示制御手段および前記ジョブ処理手段のいずれかに送信する送信ステップと、
を有することを特徴とする制御方法。
【請求項6】
外部装置にネットワークを介して接続され、前記外部装置から提供される操作画面を表示部に表示する表示制御手段と、前記操作画面の操作に応じてジョブ処理を実行するジョブ処理手段とを備える情報処理装置と前記外部装置とを仲介する中継装置で用いられる制御プログラムであって、
前記中継装置が備えるコンピュータに、
前記操作画面の操作に応じたリクエストを前記外部装置に送信し、前記リクエストに対するレスポンスを前記外部装置から受信する送受信ステップと、
前記レスポンスの内容に応じて前記レスポンスを前記表示制御手段および前記ジョブ処理手段のいずれに送信するかを判定する判定ステップと、
前記判定ステップによる判定結果に応じて前記レスポンスを前記表示制御手段および前記ジョブ処理手段のいずれかに送信する送信ステップと、
を実行させることを特徴とする制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−244405(P2012−244405A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−112448(P2011−112448)
【出願日】平成23年5月19日(2011.5.19)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】