以下、本発明が適用された実施形態について、図面を用いて説明する。
図1は、第1実施形態の画像処理システムの概略構成を表すブロック図である。
同図に示すように、この画像処理システムは、複合機10と、ディレクトリサーバ20と、機能サーバ30とを備えており、これらはネットワーク(本実施形態ではインターネット等の広域ネットワーク(WAN:Wide Area Network))1を介して双方向通信可能に接続されている。具体的には、複合機10、ディレクトリサーバ20及び機能サーバ30は、それぞれルータ2,3,4を介してネットワーク1と接続されている。
ここで、複合機10とネットワーク1とを中継するルータ2としては、周知のブロードバンドルータが用いられている。このブロードバンドルータ2は、通常設定(デフォルト設定)の状態においては、すべてのポートが閉じられた状態となっており、内部から外部(複合機10側からネットワーク1側)への要求(リクエスト)が出されると、その要求に対する応答(レスポンス)として整合性のとれたパケットのみを通すようになっている。つまり、ブロードバンドルータ2は、通常設定の状態においては、外部から内部へ送信されてくるデータのうち、内部から外部への要求に対する応答については通過させ、それ以外については遮断する。このように、ブロードバンドルータ2は、ネットワーク1から複合機10に対する不正なアクセスを防ぐためのファイアウォールとして機能する。
さらに、ブロードバンドルータ2は、プロキシ機能を有しており、複合機10からのリクエストに対するレスポンスが所定のタイムアウト時間を超えてもされない場合に、通信エラーと判定する。
複合機10は、電話(音声通信)機能、スキャナ機能、プリンタ機能、コピー機能、ファクシミリ機能等を有している。そして、本画像処理システムにおいて、複合機10は、上記機能に関連する複数種類のサービスをネットワーク1を介して利用することが可能となっている。具体的には、ネットワーク1上に設けられた機能サーバ30が、複合機10からの要求に応じて、複合機10が有する上記機能に関連する複数種類のサービスを実行可能に構成されている。さらに、本画像処理システムでは、ネットワーク1上に設けられたディレクトリサーバ20が、複合機10がネットワーク1を介して利用可能なサービス(機能サーバ30が実行可能なサービス)についての情報を、複合機10へ提供可能に構成されている。
以下、複合機10、ディレクトリサーバ20及び機能サーバ30の各構成について説明する。
複合機10は、制御部11、操作部12、読取部13、記録部14、通信部15、記憶部16、音入力部17、及び、音出力部18を備えている。
制御部11は、図示しない周知のCPU、ROM、RAM等を備えており、本複合機10を構成する各部を統括制御する。なお、ROMには、後述する各種処理(図12,図14〜図19,図31,図32)をCPUに実行させるためのプログラムが記憶されている。
操作部12は、図2に示す操作パネル12aを介して、本複合機10の利用者(ユーザ)による入力操作の受け付け及び利用者に対する情報の表示を行う。具体的には、操作パネル12aは、利用者による入力操作を受け付けるためのキー群として、コピーキー41、スキャナキー42、FAXキー43、サービスキー44、設定キー45、上下左右の方向キー46,47,48,49、OKキー50、及び、キャンセルキー51を備えている。また、操作パネル12aは、利用者に対する情報の表示を行うための表示部としてディスプレイ52を備えている。
読取部(スキャナ)13は、用紙等のシート状記録媒体に記録(例えば印刷)された画像を読み取り、その画像を表す画像データを生成する。
記録部(プリンタ)14は、画像データの表す画像を用紙等のシート状記録媒体に印刷する。
通信部15は、ネットワーク1を介してデータを送受信するための処理を行う。
記憶部16は、図示しない不揮発性RAMを備えており、この不揮発性RAMにデータを記憶する。
音入力部17は、本複合機10が備える図示しないハンドセット(受話器)に設けられたマイクから音を入力し、その音を表す音データ(PCMデータ)を生成する。
音出力部18は、音データ(PCMデータ)の表す音を、図示しないハンドセットに設けられたスピーカ、又は、複合機本体に設けられた図示しないスピーカから出力する。
次に、ディレクトリサーバ20の構成について説明する。
ディレクトリサーバ20は、制御部21、通信部22、及び、記憶部23を備えている。
制御部21は、図示しない周知のCPU、ROM、RAM等を備えており、本ディレクトリサーバ20を構成する各部を統括制御する。なお、ROMには、後述する処理(図20)をCPUに実行させるためのプログラムが記憶されている。
通信部22は、ネットワーク1を介してデータを送受信するための処理を行う。
記憶部23は、図示しないハードディスクを備えており、このハードディスクにデータを記憶する。具体的には、記憶部23には、サービス定義情報25を記憶するためのサービス定義情報記憶部24が設けられている。
サービス定義情報25は、機能サーバ30が実行可能なサービスについての情報(サービスの種類及び要求先)を複合機10へ提供するためのものである。具体的には、サービス定義情報25は、複合機10で受信されることにより、複合機10が備える操作パネル12aのディスプレイ52にサービスの種類を示すサービス選択用画面(図5に例示)を表示させ、複合機10の利用者にサービスの選択を促す。ディレクトリサーバ20は、機能サーバ30が実行可能なサービスを、「データ保存サービス」、「印刷サービス」及び「コピー応用サービス」の3つのカテゴリに分類して管理しており、サービス選択用画面において、まず、上記3つのカテゴリを提示していずれか一つのカテゴリの選択を促し、次に、選択されたカテゴリに含まれるサービスを提示していずれか一つのサービスの選択を促すようにしている。そして、サービス定義情報記憶部24には、カテゴリの選択を促すサービス選択用画面に対応するサービス定義情報25(以下「トップのサービス定義情報25」という。)と、各カテゴリに含まれるサービスの選択を促すサービス選択用画面に対応する複数のサービス定義情報25とが記憶されている。
ここで、サービス定義情報25の具体例について説明する。
図3及び図4は、サービス定義情報25のデータ構成の一例を表す説明図である。具体的には、図3は、トップのサービス定義情報25のデータ構成を表しており、図4は、上記3つのカテゴリのうちの一つである「コピー応用サービス」についてのサービス定義情報25のデータ構成を表している。これらの図に示すように、サービス定義情報25は、XML(eXtensible Markup Language)により記述されており、図3及び図4で用いられている各タグの定義は表1に示すとおりである。
そして、トップのサービス定義情報25(図3)が複合機10で受信されると、複合機10が備える操作パネル12aのディスプレイ52には、図5(a)に示すサービス選択用画面が表示される。具体的には、表示用タイトル(Title)として「ディレクトリサービス」の文字がディスプレイ52における上部位置に表示され、その下には、選択可能なカテゴリを表す項目(Link_Title)として、「データ保存サービス」、「印刷サービス」及び「コピー応用サービス」の文字が表示される。この状態で、操作パネル12aにおける上下方向の方向キー46,47が操作されることにより、項目を選択するためのカーソル(図5に示す破線の四角形)が上下に移動し、操作パネル12aのOKキー50が押されることにより、その時点でカーソルによって指定されている項目の選択が確定される。ここで、各項目には、各カテゴリに対応するサービス定義情報25のIDがそれぞれ対応づけられており(Link_Location)、項目の選択が確定されると、その項目に対応するIDのサービス定義情報25が複合機10で受信される。
例えば、図5(a)に示すサービス選択用画面で「コピー応用サービス」が選択されると、図4のサービス定義情報25が複合機10で受信され、図5(b)に示すサービス選択用画面がディスプレイ52に表示される。具体的には、表示用タイトル(Title)として「コピー応用サービス」の文字がディスプレイ52における上部位置に表示され、その下には、選択可能なサービスを表す項目(Link_Title)として、「すかし入りコピー」、「翻訳コピー」、「原稿読み上げ」及び「音声テキスト変換」の文字が表示される。
ただし、ディスプレイ52の大きさの都合上、すべての項目を一度に表示することができないため、複合機10では、ディスプレイ52に表示されていない項目が存在する場合には、ディスプレイ52における項目表示位置の右側に上下の矢印(三角印)を表示し、矢印が示す方向に項目が存在する場合にはその矢印を黒く表し、項目が存在しない場合にはその矢印を白く表すことで、表示されていない項目の存在の有無を利用者が判断できるようにしている。例えば、図5(b)では下向きの矢印が黒くなっており、「原稿読み上げ」の下にも別の項目が存在することを示している。このため、図5(b)の状態で操作パネル12aにおける下向きの方向キー47によりカーソルが下へ移動されると、項目が全体的にスクロールして、図5(c)に示すように、「原稿読み上げ」の下に「音声テキスト変換」の文字が表示される。
そして、図5(b),(c)に示すサービス選択用画面においても、上述した操作により項目の選択が確定される。ここで、各項目には、各サービスを呼び出すためのURL(Uniform Resource Locator)がそれぞれ対応づけられており(Link_Location)、項目の選択が確定されると、その項目に対応するURLのサービスが呼び出される。
次に、機能サーバ30の構成について説明する。
機能サーバ30は、制御部31、通信部32、及び、記憶部33を備えている。
制御部31は、図示しない周知のCPU、ROM、RAM等を備えており、本機能サーバ30を構成する各部を統括制御する。なお、ROMには、後述する各種処理(図21,図22,図28〜図30,図33,図34)をCPUに実行させるためのプログラムが記憶されている。また、制御部31は、複合機10の制御部11に比べてはるかに高性能のものであり、複合機10の制御部11では実行困難な処理についても行うことができる。
通信部32は、ネットワーク1を介してデータを送受信するための処理を行う。
記憶部33は、図示しないハードディスクを備えており、このハードディスクにデータを記憶する。具体的には、記憶部33には、サービスI/F情報36を記憶するためのサービスI/F情報記憶部34と、サービスソフトウェア37を記憶するためのサービスソフト記憶部35とが設けられている。
サービスソフトウェア37は、複数種類のサービスを実行するためのものである。具体的には、サービスソフト記憶部35には、複数種類のサービスソフトウェア37が記憶されており、各サービスソフトウェア37ごとに異なるサービスを実行する。ここで、サービスとしては、例えば、複合機10の読取部13により生成された画像データに関するサービス、複合機10の音入力部17により生成された音データに関するサービス、複合機10の記録部14により印刷される画像を表す画像データに関するサービス、複合機10の音出力部18により出力される音を表す音データに関するサービス等が挙げられる。なお、後述する処理(図23〜図27)は、サービスソフトウェア37に基づき実行される。
また、サービスI/F情報36は、サービスを実行するために設定することが必要なパラメータを複合機10へ要求するためのものである。具体的には、サービスI/F情報36は、複合機10で受信されることにより、複合機10が備える操作パネル12aのディスプレイ52に設定すべきパラメータを示すパラメータ入力用画面(図9に例示)を表示させ、複合機10の利用者にパラメータの設定を促す。そして、サービスI/F情報記憶部34には、機能サーバ30が実行可能な複数種類のサービスのそれぞれに対応する複数種類のサービスI/F情報36が記憶されている。
ここで、サービスI/F情報36の具体例について説明する。
図6〜図8は、サービスI/F情報36のデータ構成の一例を表す説明図である。具体的には、複合機10の読取部13で読み取られた画像にOCR(Optical Character Recognition)処理を施してその画像の内容であるテキストを認識し、そのテキストを翻訳した内容の画像を表す画像データを生成して複合機10の記録部14に印刷させるというサービス(翻訳コピーサービス)に対応するサービスI/F情報36のデータ構成を表している。これらの図に示すように、サービスI/F情報36は、上述したサービス定義情報25と同じマークアップ言語により記述されており、図6〜図8で用いられている各タグの定義は表2に示すとおりである。なお、表2における基本データは、上述したサービス定義情報25の基本データ(表1)と同じである。
そして、図6〜図8に示すサービスI/F情報36が複合機10で受信されると、複合機10が備える操作パネル12aのディスプレイ52には、図9(a)に示すパラメータ入力用画面が表示される。具体的には、表示用タイトル(Title)として「翻訳コピー」の文字がディスプレイ52における上部位置に表示され、その下には、入力項目(Disp_Name)として「言語選択」の文字が表示され、更にその下には、入力項目「言語選択」について選択可能なパラメータを表す項目(Disp_Select)として、「英語→日本語」及び「日本語→英語」の文字が表示される。この状態で、操作パネル12aにおける上下方向の方向キー46,47が操作されることにより、上述のサービス選択用画面と同様、項目を選択するためのカーソルが上下に移動する。
ここで、「翻訳コピー」に関する入力項目(Disp_Name)としては、上記表示されている「言語選択」に加え、「スキャナ設定」、「印刷設定」及び「コメント」があるが(図7及び図8参照)、ディスプレイ52の大きさの都合上、すべての入力項目を一度に表示することができない。そこで、複合機10では、ディスプレイ52に表示されていない入力項目が存在する場合には、ディスプレイ52における入力項目表示位置の左右両側に左右の矢印(三角印)を表示し、矢印が示す方向に入力項目が存在する場合にはその矢印を黒く表し、入力項目が存在しない場合にはその矢印を白く表すことで、表示されていない入力項目の存在の有無を利用者が判断できるようにしている。例えば、図9(a)では右向きの矢印が黒くなっており、「言語選択」の右側にも別の入力項目が存在することを示している。このため、図9(a)の状態で操作パネル12aにおける右向きの方向キー49が押されると、図9(b)に示すように、「スキャナ設定」を入力項目としたパラメータ入力用画面に切り替わる。
図9(b)に示すパラメータ入力用画面では、表示用タイトル(Title)としての「翻訳コピー」の文字の下に、入力項目(Disp_Name)として「スキャナ設定」の文字が表示され、更にその下には、入力項目「スキャナ設定」について選択可能なパラメータを表す項目(Disp_Select)として、「普通の文字」及び「細かい文字」の文字が表示される。
ここで、「普通の文字」とは、スキャナ13のパラメータである解像度(読取解像度)を300×300dpiに設定することを意味し、「細かい文字」とは、解像度を600×600dpiに設定することを意味する。そして、この例では、「スキャナ設定」で設定可能な解像度が、複合機10で通常設定することが可能な解像度の一部に限定されている。すなわち、複合機10において、通常、用紙に印刷された画像を読み取る操作を行った場合には、図10(a)に示すように、操作パネル12aのディスプレイ52に表示される設定画面において、スキャナ13の解像度を、200×200dpi、300×300dpi及び600×600dpiの3種類から選択することができる。これに対し、翻訳コピーサービスにおいては、画像の解像度が粗いとOCR処理の精度が下がるという理由から、低解像度のパラメータである200×200dpiを設定不能としているのである。なお、この例では、OCRの精度を上げるためにモノクロでの読み取りに限定している。
一方、図9(b)の状態で操作パネル12aにおける右向きの方向キー49が押されると、図9(c)に示すように、「印刷設定」を入力項目としたパラメータ入力用画面に切り替わる。
図9(c)に示すパラメータ入力用画面では、表示タイトル(Title)としての「翻訳コピー」の文字の下に、入力項目(Disp_Name)として「印刷設定」の文字が表示され、更にその下には、入力項目「印刷設定」について選択可能なパラメータを表す項目(Disp_Select)として、「印刷速度優先」、「普通」及び「高精細」の文字が表示される。
ただし、ディスプレイ52の大きさの都合上、すべての項目を一度に表示することができないため、上述のサービス選択用画面(図5(b),(c))と同様、ディスプレイ52における項目表示位置の右側に上下の矢印(三角印)を表示し、矢印が示す方向に項目が存在する場合にはその矢印を黒く表し、項目が存在しない場合にはその矢印を白く表すことで、表示されていない項目の存在の有無を利用者が判断できるようにしている。例えば、図9(c)の状態で操作パネル12aにおける下向きの方向キー47によりカーソルが下へ移動されると、項目が全体的にスクロールして、図9(d)に示すように、「普通」の下に「高精細」の文字が表示される。
ここで、「印刷速度優先」とは、プリンタ14のパラメータである解像度(印刷解像度)を200×200dpiに設定することを意味し、「普通」とは、解像度を300×300dpiに設定することを意味し、「高精細」とは、解像度を600×600dpiに設定することを意味する。そして、この例では、「印刷設定」で設定可能な解像度が、複合機10で通常設定することが可能な解像度の一部に限定されている。すなわち、図示しないパーソナルコンピュータにおいて、通常、複合機10に対し画像の印刷を指示する操作を行った場合には、図10(b)に示すように、パーソナルコンピュータのディスプレイに表示される設定画面において、プリンタ14の解像度を、200×200dpi、300×300dpi、600×600dpi及び1200×1200dpiの4種類から選択することができる。これに対し、翻訳コピーサービスにおいては、スキャナ13で設定可能な読取解像度よりも高い印刷解像度を設定しても意味がないという理由から、高解像度のパラメータである1200×1200dpiを設定不能としているのである。なお、低解像度を設定可能としているのは、解像度を落としてでも早く印刷したいというニーズに応えるためである。また、この例では、スキャン画像がモノクロに限定されるため、これに合わせてモノクロ印刷に限定している。
一方、図9(c)又は図9(d)の状態で操作パネル12aにおける右向きの方向キー49が押されると、図9(e)に示すように、「コメント」を入力項目としたパラメータ入力用画面に切り替わる。
図9(e)に示すパラメータ入力用画面では、表示タイトル(Title)としての「翻訳コピー」の文字の下に、入力項目(Disp_Name)として「コメント」の文字が表示され、更にその下には、コメントの入力欄が表示される。なお、入力欄中の黒い正方形は文字入力のためのカーソルを表す。また、コメントとして入力された内容は、例えば、印刷画像のヘッダやフッタに記載されるという形で利用される。
このように、翻訳コピーサービスのパラメータ入力用画面(図9(a)〜(e))では、「言語選択」、「スキャナ設定」、「印刷設定」の各入力項目についてパラメータを選択し、さらに、コメントを入力する。そして、操作パネル12aのOKキー50が押されることにより、その時点でカーソルによって指定されている項目(ディスプレイ52に表示されていない入力項目については、最後に指定されていた項目)の選択が確定され、また、コメントの入力が確定する。そして、これらのパラメータは、入力データを受けて処理するプログラムのURL(Action)へ送信される。
なお、ある入力項目について選択されたパラメータに基づき、別の入力項目について選択可能なパラメータを変更するようにしてもよい。例えば、スキャナ設定についてのパラメータとして「普通の文字」が選択された場合には、印刷設定についてのパラメータとして「高精細」を選択不能とするようにすれば、読取解像度が300×300dpiに設定されているにもかかわらず、印刷解像度が600×600dpiに設定されてしまうことを防ぐことができる。
次に、本画像処理システムで行われる通信について説明する。
本画像処理システムでは、複合機10、ディレクトリサーバ20及び機能サーバ30が互いにデータを送受信するための通信プロトコルとして、HTTP1.1(HTTP:HyperText Transfer Protocol)が用いられており、HTTPリクエスト及びレスポンスに伴わせたメッセージにより、互いに指令及び指令に対する応答を送り合う。
ここで、通信し合う指令には、複合機10側から各サーバ20,30に対する指令(サーバ制御指令)と、各サーバ20,30側から複合機10に対する指令(複合機制御指令)とがあるが、いずれの通信も複合機10が常にHTTP通信のクライアント(HTTPリクエストを発信する側)となるようにしている。これにより、ブロードバンドルータ2が通常設定のまま用いられても、各サーバ20,30から複合機10への指令が遮断されてしまうことを防ぐことができる。
具体的には、複合機10は、HTTPリクエストのPOSTコマンドに伴わせたメッセージによりディレクトリサーバ20又は機能サーバ30に対する指令を送信する。一方、各サーバ20,30は、複合機10からのHTTPリクエストのPOSTコマンドに伴わせたメッセージによる複合機制御指令の問い合わせに対し、複合機制御指令が存在すれば、上記問い合わせに対するHTTPレスポンスのメッセージに複合機制御指令を伴わせて送信する。
さらに、本画像処理システムでは、機能サーバ30は、複合機10から複合機制御指令の問い合わせ(コマンド要求)を受信した時点で、複合機10へ送信すべきコマンド(複合機制御指令)が存在しない場合には、受信したリクエストに対するレスポンスを直ちには送信せず、所定の最長滞在時間(待機時間に相当)が経過するまでは待機する。そして、最長滞在時間が経過するまでに複合機制御指令が発生した場合にはレスポンスとして直ちに送信し、最長滞在時間が経過しても複合機制御指令が発生しない場合にはコマンドなしのレスポンスを送信する。
ここで、複合機10と機能サーバ30との間で行われる通信の一例について、図11のラダーチャートを用いて説明する。
複合機10と機能サーバ30とは、サービス起動からサービス終了までの間、一連の通信処理(セッション)を行う。このセッションにおいて、まず、複合機10は、機能サーバ30に対し、サービス起動を要求する。すると、機能サーバ30は、複合機10に対しセッションIDを送信する。ここで、セッションIDとは、機能サーバ30においてセッションを特定するための識別子であり、以降の通信において、複合機10はリクエストに伴いセッションIDを送信し、機能サーバ30はそのセッションIDに基づきセッションを特定する。これにより、機能サーバ30は、複数のセッションを同時に処理することが可能となる。
複合機10は、セッションIDを受信すると、以降は、本複合機10に対する指令の問い合わせである複合機指令問合せ(コマンド要求)を定期的に行い、これに対する機能サーバ30からの応答という形で指令(コマンド)を受ける。なお、機能サーバ30は、複合機指令問合せに対して送信すべき指令がない場合には、指令がない旨の送信(複合機指令無し)を行う。
この例において、機能サーバ30は、まず、UI(ユーザインターフェイス)ジョブ起動指令を複合機10へ送信する。ここで、UIジョブ起動指令とは、複合機10に設けられるUIデバイス(操作パネル12a)の利用開始を通知するものである。これにより、複合機10と機能サーバ30との間で、UIジョブの通信処理が開始される。このUIジョブの通信処理は、セッションと並行して行われる。また、機能サーバ30から複合機10へは、UIジョブ起動指令に伴い、機能サーバ30においてジョブを特定するためのジョブID(セッションにおいて固有の識別子)が送信される。そして、複合機10は、UIジョブの通信処理において、リクエストに伴いセッションID及びジョブIDを送信し、機能サーバ30は、そのセッションID及びジョブIDに基づきジョブを特定する。これにより、機能サーバ30は、複数のジョブを同時に処理することが可能となる。なお、UIジョブの通信処理の内容については後述する。
続いて、機能サーバ30は、所定のタイミングで、入力ジョブ起動指令を複合機10へ送信する。ここで、入力ジョブ起動指令とは、複合機10に設けられる入力デバイス(読取部13又は音入力部17)の利用開始を通知するものである。これにより、複合機10と機能サーバ30との間で、入力ジョブの通信処理が開始される。そして、この入力ジョブの通信処理も、UIジョブと同様、セッションと並行して行われる。また、機能サーバ30から複合機10へは、入力ジョブ起動指令に伴いジョブIDが送信される。そして、複合機10は、入力ジョブの通信処理において、リクエストに伴いセッションID及びジョブIDを送信し、機能サーバ30は、そのセッションID及びジョブIDに基づきジョブを特定する。なお、入力ジョブの通信処理の内容については後述する。
続いて、機能サーバ30は、所定のタイミングで、出力ジョブ起動指令を複合機10へ送信する。ここで、出力ジョブ起動指令とは、複合機10に設けられる出力デバイス(記録部14又は音出力部18)の利用開始を通知するものである。これにより、複合機10と機能サーバ30との間で、出力ジョブの通信処理が開始される。そして、この出力ジョブの通信処理も、UIジョブや入力ジョブと同様、セッションと並行して行われる。また、機能サーバ30から複合機10へは、出力ジョブ起動指令に伴いジョブIDが送信される。そして、複合機10は、出力ジョブの通信処理において、リクエストに伴いセッションID及びジョブIDを送信し、機能サーバ30は、そのセッションID及びジョブIDに基づきジョブを特定する。なお、出力ジョブの通信処理の内容については後述する。
続いて、機能サーバ30は、所定のタイミングで、出力ジョブを終了することの通知である出力ジョブ終了指令を複合機10へ送信する。
続いて、機能サーバ30は、所定のタイミングで、入力ジョブを終了することの通知である入力ジョブ終了指令を複合機10へ送信する。
続いて、機能サーバ30は、所定のタイミングで、UIジョブを終了することの通知であるUIジョブ終了指令を複合機10へ送信する。
続いて、機能サーバ30は、所定のタイミングで、サービスを終了することの通知であるサービス終了指令を複合機10へ送信する。
以上が、セッションの内容である。
次に、UIジョブの通信処理について説明する。
UIジョブの通信処理において、まず、複合機10は、機能サーバ30に対し、本複合機10に対する指令の問い合わせである複合機ジョブ指令問合せ(コマンド要求)を行う。すると、機能サーバ30は、複合機10に対しパラメータ要求を送信する。ここで、パラメータ要求とは、サービスの実行に必要なパラメータを複合機10の利用者に設定させるためのものであり、機能サーバ30から複合機10へは、パラメータ要求に伴いサービスI/F情報36が送信される。
複合機10は、機能サーバ30からパラメータ要求を受信すると、サービスI/F情報36に基づくパラメータ入力用画面を操作パネル12aのディスプレイ52に表示させる(例えば図9)。そして、利用者により設定されたパラメータを、機能サーバ30へ送信する。
機能サーバ30は、複合機10からパラメータを受信すると、機能サーバ30が複合機10からの情報を正常に受け取ることができたか否かを表す通知であるサーバ受取状況を送信する。
そして、複合機10は、機能サーバ30から受信したサーバ受取状況により機能サーバ30がパラメータを正常に受信したことを確認すると、機能サーバ30に対し、サービスの状態に関する情報の要求であるサービス状態情報要求を行う。
機能サーバ30は、複合機10からサービス状態情報要求を受信すると、機能サーバ30及びサービスの状態の通知であるサービス状態情報を複合機10へ送信する。
以降は、サービス状態情報要求と、これに対するサービス状態情報の送信が繰り返される。
次に、入力ジョブの通信処理について説明する。
入力ジョブの通信処理において、まず、複合機10は、機能サーバ30に対し、本複合機10の状態に関する情報である複合機状態情報を送信する。すると、機能サーバ30は、複合機10に対し複合機パラメータを送信する。ここで、複合機パラメータとは、UIジョブの通信処理で複合機10の利用者に設定させた入力デバイスのパラメータである。
複合機10は、機能サーバ30から複合機パラメータを受信すると、複合機10が機能サーバ30からの情報を正常に受け取ることができたか否かを表す通知である複合機受取状況を送信する。
そして、機能サーバ30は、複合機10からの複合機受取状況により複合機10が情報を正常に受信したことを確認すると、複合機10に対し、ジョブに対応した入力データの要求である入力データ要求を送信する。ここで、ジョブに対応した入力データとは、スキャンジョブ(読取部13で生成された画像データに関するサービスで実行されるジョブ)であれば読取部13で生成された画像データ、音声入力ジョブ(音入力部17で生成された音データに関するサービスで実行されるジョブ)であればPCMデータである。
複合機10は、機能サーバ30から入力データ要求を受信すると、入力操作(画像の読み取り操作や音声入力操作)を利用者に促す表示等を行い、その結果生成した入力データを機能サーバ30へ送信する。
機能サーバ30は、複合機10から入力データを受信すると、機能サーバ30及びサービスの状態の通知であるサービス状態情報を複合機10へ送信する。
次に、出力ジョブの通信処理について説明する。
出力ジョブの通信処理において、まず、複合機10は、機能サーバ30に対し、複合機10の状態に関する情報である複合機状態情報を送信する。すると、機能サーバ30は、複合機10に対し複合機パラメータを送信する。ここで、複合機パラメータとは、UIジョブの通信処理で複合機10の利用者に設定させた出力デバイスのパラメータである。
複合機10は、機能サーバ30から複合機パラメータを受信すると、複合機10が機能サーバ30からの情報を正常に受け取ることができたか否かを表す通知である複合機受取状況を送信する。
そして、機能サーバ30は、複合機10からの複合機受取状況により複合機10が情報を正常に受信したことを確認すると、複合機10に対し、出力データを送信する。ここで、出力データとは、印刷ジョブ(記録部14で印刷する画像を表す画像データに関するサービスで実行されるジョブ)であれば画像データ、音声出力ジョブ(音出力部18で出力する音声を表すPCMデータに関するサービスで実行されるジョブ)であればPCMデータである。
複合機10は、機能サーバ30から出力データを受信すると、出力データに基づく出力処理(画像の印刷や音声の出力)を行う。そして、複合機10は、複合機10の状態に関する情報である複合機状態情報を機能サーバ30へ送信する。
機能サーバ30は、複合機10から複合機状態情報を受信すると、機能サーバ30及びサービスの状態の通知であるサービス状態情報を複合機10へ送信する。
次に、複合機10、ディレクトリサーバ20及び機能サーバ30の各制御部11,21,31が行う処理について説明する。
まず、複合機10の制御部11が行う複合機処理について、図12のフローチャートを用いて説明する。なお、本複合機処理は、複合機10の電源が投入されることにより開始される。
この複合機処理が開始されると、まず、S101で、本複合機10の初期化処理を行う。
続いて、S102では、複合機10への入力を受ける。ここで、複合機10への入力とは、複合機10に何らかの処理を開始させるための入力であり、例えば、操作パネル12aでのキー入力や、図示しないパーソナルコンピュータ等からの指令の入力などが挙げられる。
続いて、S103では、S102で受けた入力が、機能サーバ30にサービスを要求する動作モードであるサービスモードへ移行するための入力であるか否かを判定する。具体的には、S102で受けた入力が、操作パネル12aにおけるサービスキー44の押し操作であるか否かを判定する。
このS103で、サービスモードへ移行するための入力でないと判定した場合には、S104へ移行し、S102で受けた入力に応じたその他のモードの処理(例えば、画像の印刷処理)を行い、S102へ戻る。
一方、S103で、サービスモードへ移行するための入力であると判定した場合には、S105へ移行し、機能サーバ30に要求するサービスをリストから選択するか否かを判定する。具体的には、図13に示す選択画面を操作パネル12aのディスプレイ52に表示させ、機能サーバ30に要求するサービスを決定する方法として、リストから選択するという方法及び所望のサービスの要求先URLを直接入力するという方法のうち、いずれか一方の方法を選択させる。
このS105で、機能サーバ30に要求するサービスをリストから選択すると判定した場合(「リストから選択」が選択された場合)には、S106へ移行し、ディレクトリサーバ20にサービス一覧の照会を要求する。具体的には、ディレクトリサーバ20に対しトップのサービス定義情報25(図3)の送信を要求する。なお、この例において、複合機10には、トップのサービス定義情報25を要求するための通信先アドレス(URL)が記憶部16にあらかじめ記憶されている。
そして、S107では、S106での要求に対してディレクトリサーバ20から送信されたトップのサービス定義情報25を受信する。
さらに、S108では、S107で受信したサービス定義情報25に基づくサービス選択用画面を操作パネル12aのディスプレイ52に表示させ(図5(a))、S110へ移行する。
一方、S105で、機能サーバ30に要求するサービスをリストから選択しないと判定した場合(「直接入力」が選択された場合)には、S109へ移行し、URLを直接入力するためのアドレス入力画面(図示せず)を操作パネル12aのディスプレイ52に表示させ、S110へ移行する。
S110では、機能サーバ30に要求するサービスを決定するための利用者による入力操作を操作パネル12aで受ける。
続いて、S111では、S110で受けた入力操作がリンク選択のための操作であるか否かを判定する。具体的には、S108で表示した情報に基づき選択操作が正常に行われた場合、又は、S109で表示したアドレス入力画面にURLの入力が正常に行われた場合に、リンク選択のための操作であると判定する。
このS111で、リンク選択のための操作でないと判定した場合には、S112へ移行し、S110で受けた入力操作が、サービスモードを終了するための停止操作であるか否かを判定する。
そして、S112で、サービスモードを終了するための停止操作であると判定した場合には、S102へ戻る。つまり、サービスモードとしての処理を終了する。
一方、S112で、サービスモードを終了するための停止操作でないと判定した場合には、S113へ移行し、拒否音(ブザー音等)を鳴動した後、S110へ戻る。つまり、S110で受けた入力操作が、リンク選択のための操作でなく、停止操作でもない場合に、拒否音によって利用者に報知するようにしている。
また、上記S111で、リンク選択のための操作であると判定した場合には、S114へ移行し、選択されたURLがサービスのURLであるか否かを判定する。
このS114で、サービスのURLでない(サービス定義情報25のURLである)と判定した場合には、S115へ移行し、Link_Locationが示す情報(URLを直接入力した場合には、そのURLが示す情報)に基づき、ディレクトリサーバ20へサービスの照会を要求(サービス定義情報25の送信を要求)し、要求したサービス定義情報25をディレクトリサーバ20から受信する。その後、S108へ戻る。これにより、新たなサービス選択用画面を操作パネル12aのディスプレイ52に表示させる。
一方、S114で、サービスのURLであると判定した場合には、S116へ移行し、後述するセッション処理(図14,15)を実施した後、S102へ戻る。
次に、複合機処理(図12)におけるS116で実行されるセッション処理について、図14及び図15のフローチャートを用いて説明する。
このセッション処理が開始されると、まず、S201で、利用するサービスを選択し、サービス定義情報25のLink_Location(URLを直接入力した場合には、そのURL)に基づきサービスを起動する。つまり、サービスのURLへサービス起動指令を送信することにより、利用者により選択されたサービスを起動させる。
続いて、S202では、機能サーバ30からセッションIDを受信する。なお、セッションIDは、機能サーバ30の制御部31により実行される後述の機能サーバ処理(図21)におけるS805の処理で生成され、S809の処理で送信される。
続いて、S203では、上述の最長滞在時間を、604800秒(一週間)に設定する。つまり、本実施形態の画像処理システムでは、最長滞在時間を複合機10側で設定するようになっており、本S203の処理では、最長滞在時間を604800秒(ブロードバンドルータ2が通信エラーを判定する基準であるタイムアウト時間に比べ十分大きな値の一例)に設定しているのである。
続いて、S204では、最長滞在時間設定済フラグをオンにし、タイムアウト記録フラグをオンにする。
続いて、S205でタイマを初期化し、S206でそのタイマを始動する。
続いて、S207では、最長滞在時間設定済フラグがオンであるか否かを判定する。ここで、本S207の判定処理は、本セッション処理において複数回繰り返して行われるが、そのうち、本セッション処理が開始されてから1度目のタイムアウトエラー検出直後の判定処理においてのみ、最長滞在時間設定済フラグがオンでないと判定し、それ以外の判定処理(タイムアウトエラー未検出時の判定処理及び最長滞在時間設定後の判定処理)では、最長滞在時間設定済フラグがオンであると判定する。なお、このような判定結果となるのは、S204,S212,S219の処理により最長滞在時間設定済フラグのオン/オフが切り替えられることによるものである。
そこで、本セッション処理の流れを分かりやすくするために、S207でのタイムアウトエラー未検出時の判定処理後の流れ、1度目のタイムアウトエラー検出直後の判定処理後の流れ、最長滞在時間設定後の判定処理後の流れについて、順に説明する。
[タイムアウトエラー未検出時の判定処理後の流れ]
S207でのタイムアウトエラー未検出時の判定処理では、S204の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、S213へ移行する。
S213では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、S203で設定した最長滞在時間(604800秒)とともに機能サーバ30へ送信する。これにより、機能サーバ30では、その最長滞在時間に基づく応答処理(複合機10からのリクエストに対し一週間後にレスポンスする応答処理)が行われる。なお、複合機指令問合せに伴い、S202の処理で受信したセッションIDが送信される。
続いて、S214では、S213で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このS214で、指令が受信されていないと判定した場合には、S215へ移行し、S213で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。なお、通信エラーの発生は、ブロードバンドルータ2からの通知に基づき検出可能となっている。
そして、S215で、タイムアウトによる通信エラーが発生していないと判定した場合には、S214へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ただし、最長滞在時間を、通常想定されるタイムアウト時間に比べ十分大きな値(604800秒)に設定しているため、長時間に渡って機能サーバ30からレスポンスの送信がない場合、機能サーバ30からレスポンスが送信される前にタイムアウト時間が経過し、通信エラーが発生することとなる。その結果、S215でタイムアウトによる通信エラーが発生したと判定し、S216へ移行する。
S216では、タイムアウト記録フラグがオンであるか否かを判定する。ここでは、S204でタイムアウト記録フラグがオンにされているため、タイムアウト記録フラグがオンであると判定して、S217へ移行する。
S217では、S206で始動したタイマを停止する。
続いて、S218では、S217で停止したタイマの計時時間を、タイムアウト時間の計測値Toとして記憶する。つまり、ブロードバンドルータ2が通信エラーの判定基準としているタイムアウト時間を計測しているのである。ただし、タイムアウト時間の計測値To(以下、単に「タイムアウト時間To」という。)は、ブロードバンドルータ2で実際に設定されているタイムアウト時間に比べ、通信に要した時間が加わる分、やや長めの値となる。
続いて、S219では、最長滞在時間設定済フラグをオフにする。
その後、S220へ移行し、所定インターバル待機した後、S205へ戻る。そして、S205でタイマを初期化し、S206でそのタイマを始動した後、S207へ移行する。
一方、S214で、指令が受信されたと判定した場合には、S221へ移行し、受信した指令がジョブ起動指令であるか否かを判定する。なお、ジョブ起動指令は、機能サーバ30の制御部31により実行される後述のセッション処理(図23)におけるS1003,S1007,S1011の各処理で出力される。また、ジョブ起動指令に伴い、ジョブIDとジョブの通信先URLとが送信されてくる。
このS221で、ジョブ起動指令であると判定した場合には、S222へ移行して、ジョブの起動に必要なリソースを確保し、更にS223へ移行して、指定ジョブの起動処理を開始する。その後、S220へ移行し、所定インターバル待機した後、S205へ戻る。そして、S205でタイマを初期化し、S206でそのタイマを始動した後、S207へ移行する。
一方、S221で、ジョブ起動指令でないと判定した場合には、S224へ移行し、受信した指令がジョブ終了指令であるか否かを判定する。なお、ジョブ終了指令は、機能サーバ30の制御部31により実行される後述のセッション処理(図24)におけるS1019,S1021,S1023の各処理で出力される。また、ジョブ終了指令に伴い、終了するジョブに対応するジョブIDが送信されてくる。
このS224で、ジョブ終了指令であると判定した場合には、S225へ移行して、ジョブIDに対応するジョブを停止し、リソースを解放する。その後、S220へ移行し、所定インターバル待機した後、S205へ戻る。そして、S205でタイマを初期化し、S206でそのタイマを始動した後、S207へ移行する。
一方、S224で、ジョブ終了指令でないと判定した場合には、S226へ移行し、受信した指令が「指令なし」を表すものであるか否かを判定する。つまり、S213で送信した「複合機指令問合せ」に対する返信が、指令がないことを表す送信であるか否かを判定するのである。
このS226で、受信した指令が「指令なし」を表すものであると判定した場合には、S220へ移行し、所定インターバル待機した後、S205へ戻る。そして、S205でタイマを初期化し、S206でそのタイマを始動した後、S207へ移行する。
一方、S226で、受信した指令が「指令なし」を表すものでないと判定した場合には、S227へ移行し、受信した指令がセッションの終了指令であるか否かを判定する。なお、セッションの終了指令は、機能サーバ30の制御部31により実行される後述のセッション処理(図24)におけるS1026の処理で送信される。
このS227で、終了指令であると判定した場合には、本セッション処理を終了する。
一方、S227で、終了指令でないと判定した場合、つまり、受信した指令が、ジョブ起動の指令、ジョブ終了の指令、「指令なし」を表すもの、及び、セッションの終了指令のうちのいずれでもない場合には、S228へ移行し、指令エラーの処理(例えば、エラーである旨のメッセージを操作パネル12aのディスプレイ52に表示させる処理)を行う。その後、本セッション処理を終了する。
[1度目のタイムアウトエラー検出直後の判定処理後の流れ]
S207での1度目のタイムアウトエラー検出直後の判定処理では、S219の処理で最長滞在時間設定済フラグがオフにされているため、最長滞在時間設定済フラグがオンでないと判定して、S208へ移行する。
S208では、最長滞在時間を0に設定し、その設定した最長滞在時間を「空の問い合わせ(指令の問合せではない単なるリクエスト)」とともに機能サーバ30へ送信する。これにより、機能サーバ30では、その最長滞在時間に基づく応答処理(複合機10からのリクエストに対し直ちにレスポンスする応答処理)が行われる。
続いて、S209では、S208で送信した問い合わせに対する機能サーバ30からのレスポンスを受信する。
続いて、S210では、S206で始動したタイマを停止し、そのタイマの計時時間をT1に代入する。つまり、S208〜S210の処理により、複合機10と機能サーバ30との間での通信時間T1を測定しているのである。
続いて、S211では、S218で記憶したタイムアウト時間Toから通信時間T1を減算し、更に通信時間T1を2倍した値を減算することによって得られる値を、最長滞在時間に設定する。つまり「最長滞在時間=To−T1−(2×T1)」として算出するのである。ここで、このように算出しているのは、タイムアウトによる通信エラーの発生を防止しつつ、最長滞在時間をできるだけ長い時間に設定するためである。すなわち、上述のように、タイムアウト時間Toは、ブロードバンドルータ2で実際に設定されているタイムアウト時間に比べ、通信に要した時間が加わる分、やや長めの値となるため、タイムアウト時間Toをそのまま最長滞在時間としたのでは、タイムアウトによる通信エラーが生じてしまう。そこで、通信時間T1を減算することで、実際のタイムアウト時間に近づけているのである。そしてさらに、通信時間T1を2倍した値を減算することで、最長滞在時間がブロードバンドルータ2で実際に設定されているタイムアウト時間に比べ確実に短くなるようにして、タイムアウトによる通信エラーを防止する効果を一層高めるようにしている。
続いて、S212では、最長滞在時間設定済フラグをオンにし、タイムアウト記録フラグをオフにする。
続いて、S213では、「複合機指令問合せ」を、S211で設定した最長滞在時間とともに機能サーバ30へ送信する。これにより、機能サーバ30では、その最長滞在時間に基づく応答処理が行われる。なお、複合機指令問合せに伴い、S202の処理で受信したセッションIDが送信される。
続いて、S214では、S213で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このS214で、指令が受信されていないと判定した場合には、S215へ移行し、S213で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
そして、S215で、タイムアウトによる通信エラーが発生していないと判定した場合には、S214へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ここでは、最長滞在時間をタイムアウト時間Toよりも短く設定しているため、タイムアウト時間が経過する前に機能サーバ30からレスポンスが送信されることが通常であるが、通信の混雑状態等により通信時間が長くなった場合には、タイムアウト時間が経過して通信エラーが発生することが考えられる。この場合、S215でタイムアウトによる通信エラーが発生したと判定し、S216へ移行する。
S216では、タイムアウト記録フラグがオンであるか否かを判定する。ここでは、S212でタイムアウト記録フラグがオフにされているため、タイムアウト記録フラグがオンでないと判定して、S213へ戻る。つまり、タイムアウトによる通信エラーが発生した場合には、複合機指令問合せを機能サーバ30へ再度送信するようにしている。
一方、S214で、指令が受信されたと判定した場合の流れは、上述した「タイムアウトエラー未検出時の判定処理」と同様である。
[最長滞在時間設定後の判定処理後の流れ]
S207での最長滞在時間設定後の判定処理では、S212の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、S213へ移行する。
S213では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、S211で設定した最長滞在時間(前回と同じ値)とともに機能サーバ30へ送信する。これにより、機能サーバ30では、その最長滞在時間に基づく応答処理が行われる。なお、複合機指令問合せに伴い、S202の処理で受信したセッションIDが送信される。
以降の流れは、上述した「1度目のタイムアウトエラー検出直後の判定処理後の流れ」と同様である。
このように、本セッション処理では、まず、最長滞在時間をタイムアウト時間に比べて十分大きな値に設定することで、タイムアウトによる通信エラーを故意に発生させることによりタイムアウト時間Toを求め、さらに、最長滞在時間を0に設定することで通信時間T1を求め、これらの値に基づき最長滞在時間を自動的に設定して機能サーバ30へ送信する。これにより、通信エラーを防止しつつ、機能サーバ30からの指令の待ち時間を短縮するようにしているのである。
次に、セッション処理(図15)におけるS223の処理により開始される指定ジョブの起動処理について、図16のフローチャートを用いて説明する。
この指定ジョブの起動処理が開始されると、まず、S301で、ジョブ起動指令で指定されたジョブがUIジョブであるか否かを判定する。
そして、S301で、ジョブ起動指令で指定されたジョブがUIジョブであると判定した場合には、S302へ移行し、ジョブID、ジョブの通信先URLを渡してUIジョブを起動した後、本指定ジョブの起動処理を終了する。
一方、S301で、ジョブ起動指令で指定されたジョブがUIジョブでないと判定した場合には、S303へ移行し、ジョブ起動指令で指定されたジョブがスキャンジョブ(Scanジョブ)であるか否かを判定する。
このS303で、ジョブ起動指令で指定されたジョブがスキャンジョブでないと判定した場合には、S304へ移行し、ジョブ起動指令で指定されたジョブがボイスジョブ(Voiceジョブ)であるか否かを判定する。
そして、S304で、ジョブ起動指令で指定されたジョブがボイスジョブでないと判定した場合には、S306へ移行する。
一方、S303で、ジョブ起動指令で指定されたジョブがスキャンジョブであると判定した場合、又は、S304で、ジョブ起動指令で指定されたジョブがボイスジョブであると判定した場合には、S305へ移行し、ジョブID、ジョブの通信先URLを渡して入力ジョブを起動した後、本指定ジョブの起動処理を終了する。
S306では、ジョブ起動指令で指定されたジョブがプリントジョブ(Printジョブ)であるか否かを判定する。
このS306で、ジョブ起動指令で指定されたジョブがプリントジョブでないと判定した場合には、S307へ移行し、ジョブ起動指令で指定されたジョブがスピーカジョブ(Speakerジョブ)であるか否かを判定する。
そして、S307で、ジョブ起動指令で指定されたジョブがスピーカジョブでないと判定した場合、つまり、ジョブ起動指令で指定されたジョブがUIジョブ、スキャンジョブ、ボイスジョブ、プリントジョブ及びスピーカジョブのうちのいずれでもないと判定した場合には、そのまま本指定ジョブの起動処理を終了する。
一方、S306で、ジョブ起動指令で指定されたジョブがプリントジョブであると判定した場合、又は、S307で、ジョブ起動指令で指定されたジョブがスピーカジョブであると判定した場合には、S308へ移行し、ジョブID、ジョブの通信先URLを渡して出力ジョブを起動した後、本指定ジョブの起動処理を終了する。
次に、指定ジョブの起動処理(図16)におけるS302でセッション処理と並列に動作するように起動されるUIジョブについて、図17のフローチャートを用いて説明する。
このUIジョブが開始されると、まず、S400で、送信用データとして、複合機10に対する指令の問合せである複合機ジョブ指令問合せを所定領域へ書き込む。この送信用データは、後述するS406の処理で利用される情報であり、このデータとして書き込まれている情報がセッションID及びジョブIDとともに機能サーバ30へ送信される。なお、送信用データの格納領域は、複合機10の制御部11内に備えられた図示しないRAMの所定領域に設けられている。
次に、S401で、セッションからの終了指示があったか否かを判定する。なお、セッションからの終了指示は、複合機10の制御部11により実行されるセッション処理(図15)におけるS225の処理により出力される。
このS401で、セッションからの終了指示があったと判定した場合には、S402へ移行し、セッションへ終了を通知した後、本UIジョブを終了する。
一方、S401で、セッションからの終了指示がないと判定した場合には、S403へ移行し、操作パネル12aがビジー状態であるか否かを判定する。具体的には、操作パネル12aがビジー状態であるか否かを表すビジーフラグFuに基づき、ビジーフラグFuが立っている場合にはビジー状態であると判定し、ビジーフラグFuが下りている場合にはビジー状態でないと判定する。
そして、S403で、操作パネル12aがビジー状態であると判定した場合には、S404へ移行し、操作パネル12aのビジー状態が解除されるまで待機した後、S403へ戻る。
一方、S403で、ビジー状態でないと判定した場合には、S405へ移行し、ビジーフラグFuを立てる。
続いて、S406では、上述した送信用データとして書き込まれている情報をセッションID及びジョブIDを伴わせて機能サーバ30へ送信する。
続いて、S407では、S406で送信した情報に対して返信される複合機指令を受信する。
続いて、S408では、S407で受信した複合機指令がパラメータ要求であるか否かを判定する。なお、パラメータ要求は、機能サーバ30の制御部31により実行される後述のUIジョブ処理(図25)におけるS1102の処理で送信される。また、パラメータ要求に伴い、サービスI/F情報36が送信されてくる。
このS408で、パラメータ要求であると判定した場合には、S409へ移行し、サービスI/F情報36に基づきパラメータ入力用画面を操作パネル12aのディスプレイ52に表示させ、パラメータを設定するための入力操作を利用者に促す。そして、S410へ移行し、入力されたパラメータを機能サーバ30へ送信するために、そのパラメータを送信用データとして送信用データの格納領域へ書き込む。さらに、S411へ移行し、ビジーフラグFuを下げた後、S401へ戻る。なお、送信用データとして書き込まれたパラメータは、その後、セッションからの終了指示がなく(S401:NO)、操作パネルがビジーではない(S403:NO)状態になると、S406の処理にて機能サーバ30へ送信される。
一方、S408で、パラメータ要求でないと判定した場合には、S412へ移行し、S407で受信した複合機指令がサービス状態情報であるか否かを判定する。なお、サービス状態情報は、機能サーバ30の制御部31により実行される後述のUIジョブ処理(図25)におけるS1113の処理で送信される。また、サービス状態情報に伴い、エラーコードとサービスI/F情報36とが送信されてくる。
このS412で、サービス状態情報であると判定した場合には、S413へ移行し、このサービス状態情報に基づく情報を、操作パネル12aのディスプレイ52に表示させる。そして、S421へ移行し、機能サーバ30で稼動するサービスの稼動状態の情報を要求する指令であるサービス状態情報要求を機能サーバ30へ送信するために、そのサービス状態情報要求を送信用データとして送信用データの格納領域へ書き込む。そして、S411へ移行し、ビジーフラグFuを下げた後、S401へ戻る。なお、送信用データとして書き込まれたサービス状態情報要求は、その後、セッションからの終了指示がなく(S401:NO)、操作パネルがビジーではない(S403:NO)状態になると、S406の処理にて機能サーバ30へ送信される。
一方、S412で、サービス状態情報でないと判定した場合には、S414へ移行し、S407で受信した複合機指令が状態情報要求であるか否かを判定する。
このS414で、状態情報要求であると判定した場合には、S415へ移行し、複合機10の状態に関する情報である複合機状態情報を機能サーバ30へ送信するために、その複合機状態情報を送信用データとして送信用データの格納領域へ書き込む。そして、S411へ移行し、ビジーフラグFuを下げた後、S401へ戻る。なお、送信用データとして書き込まれた複合機状態情報は、その後、セッションからの終了指示がなく(S401:NO)、操作パネルがビジーではない(S403:NO)状態になると、S406の処理にて機能サーバ30へ送信される。
一方、S414で、状態情報要求でないと判定した場合には、S416へ移行し、S407で受信した複合機指令が、機能サーバ30が複合機10からの情報を正常に受け取ることができたか否かを表す通知であるサーバ受取状況であるか否かを判定する。
このS416で、サーバ受取状況であると判定した場合には、S417へ移行し、このサーバ受取状況の内容が異常受取(NG)を表すものであるか否かを判定する。
そして、S417で、異常受取(NG)を表すものであると判定した場合には、S418へ移行し、機能サーバ30に対し、前回送信した情報を再送信するために、その再送信する情報を送信用データとして送信用データの格納領域へ書き込む。その後、S411へ移行し、ビジーフラグFuを下げた後、S401へ戻る。
一方、S417で、異常受取(NG)を表すものでないと判定した場合には、S422で、サービスの稼動状態の情報を要求する指令であるサービス状態情報要求を機能サーバ30へ送信するために、そのサービス状態情報要求を送信用データとして送信用データの格納領域へ書き込んだ後、S411へ移行し、ビジーフラグFuを下げた後、S401へ戻る。
なお、S418、S422にて送信用データとして書き込まれた再送信する情報、サービス状態情報要求は、その後、セッションからの終了指示がなく(S401:NO)、操作パネルがビジーではない(S403:NO)状態になると、S406の処理にて機能サーバ30へ送信される。
また、S416で、サーバ受取状況でないと判定した場合には、S419へ移行し、S407で受信した複合機指令が「指令なし」を表すものであるか否かを判定する。つまり、S406で送信した「複合機ジョブ指令問合せ」に対する返信が、指令がないことを表す送信であるか否かを判定するのである。
このS419で、S407で受信した複合機指令が「指令なし」を表すものであると判定した場合には、S423で、複合機10に対する指令の問合せである複合機ジョブ指令問合せを機能サーバ30へ送信するために、その複合機ジョブ指令問合せを送信用データとして送信用データの格納領域へ書き込んだ後、S411へ移行し、ビジーフラグFuを下げた後、S401へ戻る。なお、送信用データとして書き込まれた複合機ジョブ指令問合せは、その後、セッションからの終了指示がなく(S401:NO)、操作パネルがビジーではない(S403:NO)状態になると、S406の処理にて機能サーバ30へ送信される。
一方、S419で、S407で受信した複合機指令が「指令なし」を表すものでないと判定した場合には、S420へ移行し、指定エラーの処理を行う。その後、S411へ移行し、ビジーフラグFuを下げた後、S401へ戻る。
次に、指定ジョブの起動処理(図16)におけるS305でセッション処理及びUIジョブ処理と並列動作するように起動される入力ジョブについて、図18のフローチャートを用いて説明する。
この入力ジョブが開始されると、まずS501で、入力装置(読取部13で生成された画像データに関するサービスであれば読取部13、音入力部17で生成された音データに関するサービスであれば音入力部17)がビジー状態であるか否かを判定する。具体的には、入力装置がビジー状態であるか否かを表すビジーフラグFiに基づき、ビジーフラグFiが立っている場合にはビジー状態であると判定し、ビジーフラグFiが下りている場合にはビジー状態でないと判定する。
そして、S501で、入力装置がビジー状態であると判定した場合には、S502へ移行し、入力装置のビジー状態が解除されるまで待機した後、S501へ戻る。
一方、S501で、ビジー状態でないと判定した場合には、S503へ移行し、ビジーフラグFiを立てる。
続いて、S504では、複合機状態情報を機能サーバ30へ送信する。なお、複合機状態情報に伴い、セッションID、ジョブID及びエラーコードが送信される。
続いて、S505では、S504で送信した「複合機状態情報」に対して返信される複合機パラメータを機能サーバ30から受信する。なお、複合機パラメータは、機能サーバ30の制御部31により実行される後述のスキャンジョブ処理(図26)におけるS1203の処理により送信される。
続いて、S506では、セッションからの終了指示があったか否かを判定する。なお、セッションからの終了指示は、複合機10の制御部11により実行されるセッション処理(図15)におけるS225の処理により出力される。
このS506で、セッションからの終了指示がないと判定した場合には、S507へ移行し、S505で複合機パラメータを正常に受信できたか否かを判定する。
そして、S507で、正常に受信できなかったと判定した場合には、S508へ移行し、複合機10が機能サーバ30からの情報を正常に受け取ることができたか否かの通知である複合機受取状況として異常受取(NG)である旨を機能サーバ30へ通知し、S505へ戻る。なお、複合機受取状況に伴い、セッションID及びジョブIDが送信される。
一方、S507で、正常に受信できたと判定した場合には、S509へ移行し、複合機受取状況として正常受取(OK)である旨を機能サーバ30へ通知する。
続いて、S510では、入力データ要求を機能サーバ30から受信する。なお、入力データ要求は、機能サーバ30の制御部31により実行される後述のスキャンジョブ処理(図26)におけるS1209の処理で送信される。
続いて、S511では、S506と同様、セッションからの終了指示があったか否かを判定する。
このS511で、セッションからの終了指示がないと判定した場合には、S512へ移行し、S510で入力データ要求を正常に受信できたか否かを判定する。
そして、S512で、正常に受信できなかったと判定した場合には、S513へ移行し、異常受取(NG)である旨を機能サーバ30へ通知し、S510へ戻る。
一方、S512で、正常に受信できたと判定した場合には、S514へ移行し、パラメータをセットし、入力操作を利用者に促す出力(例えば、「原稿をセットしてOKキーを押してください」、「受話器をとって音声を入力してください」等のメッセージを操作パネル12aのディスプレイ52に表示)を行い、これにより入力される入力データを機能サーバ30へ順次送信する処理を行う。なお、入力データとしては、メモリカード等の半導体製メモリに記憶された画像データを読み込むことによる入力や、記憶部16に記憶されている画像データの入力等も挙げられる。また、入力データに伴い、セッションID及びジョブIDが送信される。
続いて、S515では、S514でセットしたパラメータを元に戻す。
続いて、S516では、サービス状態情報を機能サーバ30から受信した後、S517へ移行する。なお、サービス状態情報は、機能サーバ30の制御部31により実行される後述のスキャンジョブ処理(図26)におけるS1208,S1212の各処理で送信される。
一方、S506又はS511で、セッションからの終了指示があったと判定した場合には、そのままS517へ移行する。
S517では、S503で立てたビジーフラグFiを下ろす。
そして、S518で、セッションへ終了を通知した後、本入力ジョブを終了する。
次に、指定ジョブの起動処理(図16)におけるS308でセッション処理、UIジョブ処理及び入力ジョブ処理と並列動作するように起動される出力ジョブについて、図19のフローチャートを用いて説明する。
この出力ジョブが開始されると、まずS601で、出力装置(記録部14で印刷する画像を表す画像データに関するサービスであれば記録部14,音出力部18から出力する音データに関するサービスであれば音出力部18)がビジー状態であるか否かを判定する。具体的には、出力装置がビジー状態であるか否かを表すビジーフラグFoに基づき、ビジーフラグFoが立っている場合にはビジー状態であると判定し、ビジーフラグFoが下りている場合にはビジー状態でないと判定する。
そして、S601で、出力装置がビジー状態であると判定した場合には、S602へ移行し、出力装置のビジー状態が解除されるまで待機した後、S601へ戻る。
一方、S601で、ビジー状態でないと判定した場合には、S603へ移行し、ビジーフラグFoを立てる。
続いて、S604では、複合機状態情報を機能サーバ30へ送信する。なお、複合機状態情報に伴い、セッションID、ジョブID及びエラーコードが送信される。
続いて、S605では、S604で送信した「複合機状態情報」に対して返信される複合機パラメータを機能サーバ30から受信する。なお、複合機パラメータは、機能サーバ30の制御部31により実行される後述の印刷ジョブ処理(図27)におけるS1303の処理で送信される。
続いて、S606では、セッションからの終了指示があったか否かを判定する。なお、セッションからの終了指示は、複合機10の制御部11により実行されるセッション処理(図15)におけるS225の処理により出力される。
このS606で、セッションからの終了指示がないと判定した場合には、S607へ移行し、S605で複合機パラメータを正常に受信できたか否かを判定する。
そして、S607で、正常に受信できなかったと判定した場合には、S608へ移行し、複合機10が機能サーバ30からの情報を正常に受け取ることができたか否かの通知である複合機受取状況として異常受取(NG)である旨を機能サーバ30へ通知し、S605へ戻る。なお、複合機受取状況に伴い、セッションID及びジョブIDが送信される。
一方、S607で、正常に受信できたと判定した場合には、S609へ移行し、複合機受取状況として正常受取(OK)である旨を機能サーバ30へ通知する。
続いて、S610では、出力データ(例えば画像データや音データ)を機能サーバ30から受信する。なお、出力データは、機能サーバ30の制御部31により実行される後述の印刷ジョブ処理(図27)におけるS1309の処理で送信される。
続いて、S611では、S606と同様、セッションからの終了指示があったか否かを判定する。
このS611で、セッションからの終了指示がないと判定した場合には、S612へ移行し、S610で出力データを正常に受信できたか否かを判定する。
そして、S612で、正常に受信できなかったと判定した場合には、S613へ移行し、異常受取(NG)である旨を機能サーバ30へ通知し、S610へ戻る。
一方、S612で、正常に受信できたと判定した場合には、S614へ移行し、パラメータをセットし、出力データを出力する処理(例えば、画像データが表す画像の印刷や、音データが表す音声の出力)を行う。
続いて、S615では、S614でセットしたパラメータを元に戻す。
続いて、S616では、複合機状態情報を機能サーバ30へ送信する。なお、複合機状態情報に伴い、セッションID、ジョブID及びエラーコードが送信される。
続いて、S617では、サービス状態情報を機能サーバ30から受信した後、S618へ移行する。なお、サービス状態情報は、機能サーバ30の制御部31により実行される後述の印刷ジョブ処理(図27)におけるS1308,S1312の各処理で送信される。
一方、S606又はS611で、セッションからの終了指示があったと判定した場合には、そのままS618へ移行する。
S618では、S603で立てたビジーフラグFoを下ろす。
そして、S619で、セッションへ終了を通知した後、本出力ジョブを終了する。
次に、ディレクトリサーバ20の制御部21が行うディレクトリサーバ処理について、図20のフローチャートを用いて説明する。なお、本ディレクトリサーバ処理は、ディレクトリサーバ20がHTTPリクエストを受信することにより開始される。
このディレクトリサーバ処理が開始されると、まず、S701で、HTTPリクエストを受信する。
続いて、S702では、S701で受信したHTTPリクエストがサービス登録の指令であるか否かを判定する。なお、サービス登録の指令は、機能サーバ30の制御部31により実行される後述のサービス追加処理(図28)におけるS1406の処理で送信される。
このS702で、サービス登録の指令であると判定した場合には、S703へ移行し、サービス定義情報25の内容を受信して、サービスを登録する。具体的には、記憶部23のサービス定義情報記憶部24に記憶されているサービス定義情報25に新規サービスについての情報が登録される。そして、S704へ移行し、HTTPレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
一方、S702で、サービス登録の指令でないと判定した場合には、S705へ移行し、S701で受信したHTTPリクエストがサービス更新(例えば、サービス要求先URLの変更)の指令であるか否かを判定する。なお、サービス更新の指令は、機能サーバ30の制御部31により実行される後述のサービス変更処理(図29)におけるS1503の処理で送信される。
このS705で、サービス更新の指令であると判定した場合には、S706へ移行し、サービス定義情報25の内容を受信して、サービスを更新する。具体的には、記憶部23のサービス定義情報記憶部24に記憶されているサービス定義情報25における該当するサービスについての情報が更新される。そして、S704へ移行し、HTTPレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
一方、S705で、サービス更新の指令でないと判定した場合には、S707へ移行し、S701で受信したHTTPリクエストがサービス削除の指令であるか否かを判定する。なお、サービス削除の指令は、機能サーバ30の制御部31により実行される後述のサービス削除処理(図30)におけるS1602の処理で送信される。
このS707で、サービス削除の指令であると判定した場合には、S708へ移行し、指定したサービス定義情報25を削除する。具体的には、記憶部23のサービス定義情報記憶部24に記憶されているサービス定義情報25における該当するサービスについての情報が削除される。そして、S704へ移行し、HTTPレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
一方、S707で、サービス削除の指令でないと判定した場合には、S709へ移行し、S701で受信したHTTPリクエストがサービス一覧照会の要求であるか否かを判定する。なお、サービス一覧照会の要求は、複合機10の制御部11により実行される上述の複合機処理(図12)におけるS106の処理で送信される。
このS709で、サービス一覧照会の要求であると判定した場合には、S710へ移行し、記憶部23のサービス定義情報記憶部24からトップのサービス定義情報25を読み出す。そして、S704へ移行し、読み出したサービス定義情報25を含むHTTPレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
一方、S709で、サービス一覧照会の要求でないと判定した場合には、S711へ移行し、S701で受信したHTTPリクエストがサービス照会の要求であるか否かを判定する。なお、サービス照会の要求は、複合機10の制御部11により実行される上述の複合機処理(図12)におけるS115の処理で送信される。
このS711で、サービス照会の要求であると判定した場合には、S712へ移行し、記憶部23のサービス定義情報記憶部24からID又はURLで指定されたサービス定義情報25を読み出す。そして、S704へ移行し、読み出したサービス定義情報25を含むHTTPレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
一方、S711で、サービス照会の要求でないと判定した場合には、S713へ移行し、S701で受信したHTTPリクエストが、ディレクトリサーバ20を管理するためのサーバ管理の指令であるか否かを判定する。なお、サーバ管理の指令を送信する処理については、本発明とは直接関係ないため説明を省略している。
このS713で、サーバ管理の指令であると判定した場合には、S714へ移行し、サーバ管理機能を起動する。そして、S704へ移行し、HTTPレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
一方、S713で、サーバ管理の指令でないと判定した場合には、そのままS704へ移行し、HTTPレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
次に、機能サーバ30の制御部31が行う機能サーバ処理について、図21のフローチャートを用いて説明する。なお、本機能サーバ処理は、機能サーバ30がHTTPリクエストを受信することにより開始される。
この機能サーバ処理が開始されると、まず、S801で、HTTPリクエストを受信する。
続いて、S802では、S801で受信したHTTPリクエストがサービス起動の指令であるか否かを判定する。なお、サービス起動の指令は、複合機10の制御部11により実行される上述のセッション処理(図14)におけるS201の処理で送信される。
このS802で、サービス起動の指令であると判定した場合には、S805へ移行し、セッションIDを生成して送信データを生成する。また、サービスを実行するプロセスを起動する(具体的には、後述するセッション処理(図23)を開始させる)。そして、S809へ移行する。
一方、S802で、サービス起動の指令でないと判定した場合には、S806へ移行し、S801で受信したHTTPリクエストがサービス終了の指令であるか否かを判定する。なお、サービス終了の指令は、複合機10が利用者からの停止指令(例えば、サービス実行中のキャンセルキー51押下など)を割り込み処理により受け、その指令に応じて複合機10より送信される。
このS806で、サービス終了の指令であると判定した場合には、S807へ移行し、セッションID及び確保したリソースを解放し、S809へ移行する。
一方、S806で、サービス終了の指令でないと判定した場合には、S808へ移行し、サービス制御情報処理を実行した後、S809へ移行する。なお、サービス制御情報処理の具体的内容については後述する(図22)。
S809では、生成した情報を含むHTTPレスポンスの送信処理を行う。
続いて、S810では、S808のサービス制御情報処理を実施したか否かを判定する。
このS810で、サービス制御情報処理を実施したと判定した場合には、S811へ移行し、セッションID又はジョブIDに対応するメモリアドレスに「送信済み」をセットした後、本機能サーバ処理を終了する。
一方、S810で、サービス制御情報処理を実施していないと判定した場合には、そのまま本機能サーバ処理を終了する。
次に、機能サーバ処理(図21)におけるS808で実行されるサービス制御情報処理の具体的内容について、図22のフローチャートを用いて説明する。
このサービス制御情報処理が開始されると、まず、S901で、サービスに送信する情報が存在するか否かを判定する。具体的には、機能サーバ処理(図21)のS801で受信したHTTPリクエストに、サービス(セッション又はジョブ)に対する情報が含まれているか否かを判定する。
このS901で、サービスに送信する情報が存在すると判定した場合には、S902へ移行し、セッションID又はジョブIDに対応する送信するプロセスを特定する。つまり、受信したHTTPリクエストに含まれている情報の送信先となるプロセスを特定するのである。
続いて、S903では、プロセスが特定できないか否かを判定する。
このS903で、何らかの異常によりプロセスが特定できないと判定した場合には、S904へ移行し、エラー通知情報を生成した後、本サービス制御情報処理を終了する。
一方、S903で、プロセスが特定できると判定した場合には、S905へ移行し、特定したプロセスに情報を送信した後、S906へ移行する。
また、S901で、サービスに送信する情報が存在しないと判定した場合には、そのままS906へ移行する。
S906では、セッションID又はジョブIDに対応する返信情報の格納メモリを特定する。
続いて、S907では、格納メモリが特定できないか否かを判定する。
このS907で、格納メモリが特定できないと判定した場合には、S904へ移行し、エラー通知情報を生成した後、本サービス制御情報処理を終了する。
一方、S907で、格納メモリが特定できると判定した場合には、S908へ移行し、最長滞在時間を、複合機10から受信した最長滞在時間の数値に設定する。なお、最長滞在時間は、機能サーバ30の制御部31により実行される上述のセッション処理(図14)におけるS208,S213の処理で送信される。
続いて、S909では、複合機10に送信する情報(複合機10へ送信すべきコマンド)が存在するか否かを判定する。
このS909で、複合機10に送信する情報が存在しないと判定した場合には、S910へ移行し、複合機10からのリクエストを受信してから最長滞在時間(S908で設定した最長滞在時間)が経過したか否かを判定する。
このS910で、最長滞在時間が経過していないと判定した場合には、S911へ移行し、コネクションの切断を検知したか否かを判定する。なお、コネクションの切断は、例えば、アプリケーションレベルでコネクションの切断を監視するプログラムを用いることにより検知することができる。
そして、S911で、コネクションの切断を検知したと判定した場合には、そのまま本サービス制御情報処理を終了する。
一方、S911で、コネクションの切断を検知していないと判定した場合には、S909へ戻る。
また、S910で、最長滞在時間が経過したと判定した場合には、S912へ移行し、複合機指令無しの情報を生成した後、本サービス制御情報処理を終了する。
一方、S909で、複合機10に送信する情報が存在すると判定した場合には、S913へ移行し、返信情報に基づき、複合機制御指令を生成した後、本サービス制御情報処理を終了する。
このように、本サービス制御情報処理では、複合機10からのリクエストに対し、複合機10へ送信すべきコマンドが存在しない場合、最長滞在時間が経過するまではレスポンスを行わず、その間に送信すべきコマンドが発生した場合には、直ちにレスポンスを行うようにしているのである。
次に、機能サーバ30の制御部31が行うセッション処理について、図23及び図24のフローチャートを用いて説明する。なお、セッション処理の内容はサービスの種類によって異なるため、ここでは、翻訳コピーのサービスについてのセッション処理を例にとって説明する。また、本セッション処理は、上記機能サーバ処理(図21)におけるS805の処理により機能サーバ処理と並列動作するように開始される。
このセッション処理が開始されると、まず、S1001で、初期化処理を行う。
続いて、S1002では、サービス側UIジョブを起動する。なお、サービス側UIジョブの具体的内容については後述する(図25)。
続いて、S1003では、UIジョブ起動指令を複合機指令として出力する。具体的には、返信情報を格納するメモリに対してその複合機指令を書き込む処理を行い、その後、上述の機能サーバ処理(図21)におけるS811の処理により「送信済み」がセットされることで出力を確認する。なお、このUIジョブ起動指令に伴い、ジョブIDとジョブの通信先URLとが出力される。
続いて、S1004では、パラメータの入力が完了したか否かを判定する。なお、パラメータの入力が完了したか否かは、後述のUIジョブ処理(図25)におけるS1111の処理によってパラメータ入力済みの通知がされたか否かにより判定する。
このS1004で、パラメータの入力が完了していないと判定した場合には、S1005へ移行し、停止が通知されたか否かを判定する。なお、停止の通知は、後述のUIジョブ処理(図25)におけるS1109の処理で行われる。
そして、S1005で、停止が通知されていないと判定した場合には、S1004へ戻る。
一方、S1005で、停止が通知されたと判定した場合には、後述するS1024の処理へ移行する。
また、S1004で、パラメータの入力が完了したと判定した場合には、S1006へ移行し、サービス側スキャンジョブを起動する。なお、サービス側スキャンジョブの具体的内容については後述する(図26)。
続いて、S1007では、スキャンジョブ(入力ジョブ)起動指令を複合機指令として出力する。なお、このスキャンジョブ起動指令に伴い、ジョブIDとジョブの通信先URLとが出力される。
続いて、S1008では、スキャナの準備が完了したか否かを判定する。なお、スキャナの準備が完了したか否かは、後述のスキャンジョブ処理(図26)におけるS1213の処理による通知を受けることにより判定する。
このS1008で、スキャナの準備が完了していないと判定した場合には、S1009へ移行し、停止が通知されたか否かを判定する。なお、停止の通知は、後述のスキャンジョブ処理(図26)におけるS1207の処理で行われる。
そして、S1009で、停止が通知されていないと判定した場合には、S1008へ戻る。
一方、S1009で、停止が通知されたと判定した場合には、後述するS1022の処理へ移行する。
また、S1008で、スキャナの準備が完了したと判定した場合には、S1010へ移行し、サービス側印刷ジョブを起動する。なお、サービス側印刷ジョブの具体的内容については後述する(図27)。
続いて、S1011では、印刷ジョブ(出力ジョブ)起動指令を複合機指令として出力する。なお、この印刷ジョブ起動指令に伴い、ジョブIDとジョブの通信先URLとが出力される。
続いて、S1012では、印刷の準備が完了したか否かを判定する。なお、印刷の準備が完了したか否かは、後述の印刷ジョブ処理(図27)におけるS1313の処理による通知を受けることにより判定する。
このS1012で、印刷の準備が完了していないと判定した場合には、S1013へ移行し、停止が通知されたか否かを判定する。なお、停止の通知は、後述の印刷ジョブ処理(図27)におけるS1307の処理で行われる。
そして、S1013で、停止が通知されていないと判定した場合には、S1012へ戻る。
一方、S1013で、停止が通知されたと判定した場合には、後述するS1020の処理へ移行する。
また、S1012で、印刷の準備が完了したと判定した場合には、S1014へ移行し、入力データ(読取部13で生成した画像データ)を読み出す。
続いて、S1015では、S1014で読み出した画像データについてOCR処理を施すことにより画像に含まれるテキストを認識し、その認識したテキストに対して翻訳処理を行い、更に翻訳後のテキストについて印刷レイアウトを設定することにより、印刷用の画像データを生成する。
続いて、S1016では、S1015で生成した印刷用の画像データを出力する。
続いて、S1017では、全データの入力が完了したか否かを判定する。
このS1017で、入力が完了していないと判定した場合には、S1014へ戻る。
一方、S1017で、入力が完了したと判定した場合には、S1018へ移行し、全データの出力が完了したか否かを判定する。
そして、S1018で、出力が完了していないと判定した場合には、S1014へ戻る。
一方、S1018で、出力が完了したと判定した場合には、S1019へ移行し、印刷ジョブ終了指令を複合機指令として出力する。なお、印刷ジョブ終了指令に伴い、終了する印刷ジョブに対応するジョブIDが出力される。
続いて、S1020では、サービス側印刷ジョブを終了する。
続いて、S1021では、スキャンジョブ終了指令を複合機指令として出力する。なお、スキャンジョブ終了指令に伴い、終了するスキャンジョブに対応するジョブIDが出力される。
続いて、S1022では、サービス側スキャンジョブを終了する。
続いて、S1023では、UIジョブ終了指令を複合機指令として出力する。なお、UIジョブ終了指令に伴い、終了するUIジョブに対応するジョブIDが出力される。
続いて、S1024では、サービス側UIジョブを終了する。
続いて、S1025で、終了処理(メモリの解放等)を行い、S1026で、サービスの終了を複合機指令として出力した後、本セッション処理を終了する。
次に、セッション処理(図23)におけるS1002の処理で機能サーバ処理及びセッション処理と並列動作するように起動されるUIジョブ処理について、図25のフローチャートを用いて説明する。
このUIジョブ処理が開始されると、まずS1101で、複合機10から複合機ジョブ指令問合せを受信する。なお、複合機ジョブ指令問合せは、複合機10の制御部11により実行される上述のUIジョブ(図17)におけるS400又はS423の処理で送信用データとしてセットされ、S406の処理で送信される。
続いて、S1102では、サービスの実行に必要なパラメータを設定させるためのパラメータ要求指令を複合機指令として複合機10へ送信する。なお、パラメータ要求に伴い、記憶部33のサービスI/F情報記憶部34に記憶されているサービスI/F情報36(この例では、翻訳コピーのサービスに対応するサービスI/F情報36)が送信される。
続いて、S1103では、エラーカウントを初期化する。
続いて、S1104では、複合機10からパラメータを受信する。なお、パラメータは、複合機10の制御部11により実行される上述のUIジョブ(図17)におけるS410の処理で送信用データとしてセットされ、S406の処理で送信される。
続いて、S1105では、S1104で受信されたパラメータが正常であるか否かを判定する。
このS1105で、パラメータが正常でないと判定した場合には、S1106へ移行し、正常でないと判定された回数が2回目であるか否かを判定する。具体的には、S1103で初期化したエラーカウントに基づき判定する。
そして、S1106で、2回目でない(1回目である)と判定した場合には、S1107へ移行し、機能サーバ30が複合機10からの情報を正常に受け取ることができたか否かの通知であるサーバ受取状況としてサーバ受取NG(異常受取)を出力する。さらに、S1108へ移行し、エラーカウントをカウントアップした後、S1104へ戻る。
一方、S1106で、2回目であると判定した場合には、S1109へ移行し、セッションへ停止を通知した後、本UIジョブ処理を終了する。
また、S1105で、パラメータが正常であると判定した場合には、S1110へ移行し、サーバ受取状況としてサーバ受取OK(正常受取)を出力する。
続いて、S1111では、セッションへパラメータ入力済みを出力する。
続いて、S1112では、複合機10からサービス状態情報要求を受信する。なお、サービス状態情報要求は、上述のように、UIジョブ(図17)におけるS421又はS422の処理で送信用データとしてセットされ、S406の処理で送信される。
続いて、S1113では、サービス状態情報を複合機10へ送信する。その後、S1112へ戻る。つまり、他の処理によって停止されるまで、複合機10から複合機ジョブ指令問合せを受信し、サービス状態情報を返信するという処理を繰り返すようになっている。なお、サービス状態情報に伴い、エラーコードと、サービスI/F情報36とが送信される。
次に、セッション処理(図23)におけるS1006の処理で機能サーバ処理、セッション処理及びUIジョブ処理と並列動作するように起動されるスキャンジョブ処理について、図26のフローチャートを用いて説明する。
このスキャンジョブ処理が開始されると、まずS1201で、複合機10から複合機状態情報を受信する。なお、複合機状態情報は、複合機10の制御部11により実行される上述の入力ジョブ(図18)におけるS504の処理で送信される。
続いて、S1202では、エラーカウントを初期化する。
続いて、S1203では、UIジョブ処理(図25)におけるS1104の処理で受信したパラメータに基づき、スキャナ13のパラメータを複合機パラメータとして複合機10へ送信する。
続いて、S1204では、複合機10において複合機パラメータが正常に受信されたか否かを判定する。具体的には、複合機10の制御部11により実行される上述の入力ジョブ(図18)におけるS509の処理により、複合機受取状況として正常受取である旨が通知された場合に正常に受信されたと判定し、S508の処理により、複合機受取状況として異常受取である旨が通知された場合に正常に受信されなかったと判定する。
このS1204で、複合機パラメータが正常に受信されなかったと判定した場合には、S1205へ移行し、正常に受信されなかったと判定された回数が2回目であるか否かを判定する。具体的には、S1202で初期化したエラーカウントに基づき判定する。
そして、S1205で、2回目でない(1回目である)と判定した場合には、S1206へ移行し、エラーカウントをカウントアップした後、S1203へ戻る。
一方、S1205で、2回目であると判定した場合には、S1207へ移行し、セッションへ停止を通知する。さらに、S1208へ移行し、異常終了をサービス状態情報として複合機10へ送信した後、本スキャンジョブ処理を終了する。
また、S1204で、複合機パラメータが正常に受信されたと判定した場合には、S1213へ移行し、セッションへスキャナ準備の完了を通知した後、S1209へ移行し、ジョブに対応したデータ種の入力要求である入力データ要求を複合機10へ送信する。
続いて、S1210では、複合機10からの入力データを受信する。なお、入力データは、複合機10の制御部11により実行される上述の入力ジョブ(図18)におけるS514の処理で送信される。
続いて、S1211では、正常終了であるか否かを判定する。
このS1211で、正常終了でないと判定した場合には、S1208へ移行し、異常終了をサービス状態情報として複合機10へ送信した後、本スキャンジョブ処理を終了する。
一方、S1211で、正常終了であると判定した場合には、S1212へ移行し、正常終了をサービス状態情報として複合機10へ送信した後、本スキャンジョブ処理を終了する。
次に、セッション処理(図23)におけるS1010の処理で機能サーバ処理、セッション処理、UIジョブ処理及びスキャン処理と並列動作するように起動される印刷ジョブ処理について、図27のフローチャートを用いて説明する。
この印刷ジョブ処理が開始されると、まずS1301で、複合機10から複合機状態情報を受信する。なお、複合機状態情報は、複合機10の制御部11により実行される上述の出力ジョブ(図19)におけるS604の処理で送信される。
続いて、S1302では、エラーカウントを初期化する。
続いて、S1303では、UIジョブ処理(図25)におけるS1104の処理で受信したパラメータに基づき、印刷のパラメータを複合機パラメータとして複合機10へ送信する。
続いて、S1304では、複合機10において複合機パラメータが正常に受信されたか否かを判定する。具体的には、複合機10の制御部11により実行される上述の出力ジョブ(図19)におけるS609の処理により、複合機受取状況として正常受取である旨が通知された場合に正常に受信されたと判定し、S608の処理により、複合機受取状況として異常受取である旨が通知された場合に正常に受信されなかったと判定する。
このS1304で、複合機パラメータが正常に受信されなかったと判定した場合には、S1305へ移行し、正常に受信されなかったと判定された回数が2回目であるか否かを判定する。具体的には、S1302で初期化したエラーカウントに基づき判定する。
そして、S1305で、2回目でない(1回目である)と判定した場合には、S1306へ移行し、エラーカウントをカウントアップした後、S1303へ戻る。
一方、S1305で、2回目であると判定した場合には、S1307へ移行し、セッションへ停止を通知する。さらに、S1308へ移行し、異常終了をサービス状態情報として複合機10へ送信した後、本印刷ジョブ処理を終了する。
また、S1304で、複合機パラメータが正常に受信されたと判定した場合には、S1313へ移行し、セッションへ印刷準備の完了を通知した後、S1309へ移行し、生成された印刷データを順次複合機10へ送信する。
続いて、S1310では、複合機10からの複合機状態情報を受信する。なお、複合機状態情報は、複合機10の制御部11により実行される上述の出力ジョブ(図19)におけるS616の処理で送信される。
続いて、S1311では、正常終了であるか否かを判定する。
このS1311で、正常終了でないと判定した場合には、S1308へ移行し、異常終了をサービス状態情報として複合機10へ送信した後、本印刷ジョブ処理を終了する。
一方、S1311で、正常終了であると判定した場合には、S1312へ移行し、正常終了をサービス状態情報として複合機10へ送信した後、本印刷ジョブ処理を終了する。
次に、機能サーバ30の制御部31が行うサービス追加処理について、図28のフローチャートを用いて説明する。なお、本サービス追加処理は、機能サーバ30の管理者により所定の操作が行われることにより開始される。
このサービス追加処理が開始されると、まずS1401で、追加するサービスのプログラム(サービスソフトウェア37)を所定のディレクトリにコピーする操作を、機能サーバ30の管理者に行わせる。
続いて、S1402では、S1401でコピーしたプログラムのアドレスをURLに変換する処理を行う。
続いて、S1403では、追加したサービスのタイトル(サービス名)を機能サーバ30の管理者に入力させる。
続いて、S1404では、追加したサービスのカテゴリを機能サーバ30の管理者に入力させる。なお、ここで入力させるカテゴリは、上述した「データ保存サービス」、「印刷サービス」及び「コピー応用サービス」の3つのカテゴリのうちのいずれかである。
続いて、S1405では、S1403で入力されたタイトルとS1404で入力されたカテゴリを、S1402でアドレスを変換して生成されたURLと対応づけて記憶する。
続いて、S1405で記憶したタイトル、カテゴリ、URLを伴い、ディレクトリサーバ20にサービスの登録を通知する。その後、本サービス追加処理を終了する。
次に、機能サーバ30の制御部31が行うサービス変更処理について、図29のフローチャートを用いて説明する。なお、本サービス追加処理は、機能サーバ30の管理者により所定の操作が行われることにより開始される。
このサービス変更処理が開始されると、まずS1501で、サービスに関する属性データを変更する操作を機能サーバ30の管理者に行わせる。
続いて、S1502では、変更後のサービスのタイトルとカテゴリを、URLと対応づけて記憶する。
続いて、S1503では、タイトル、カテゴリ、URLを伴い、ディレクトリサーバ20にサービスの変更を通知する。その後、本サービス変更処理を終了する。
次に、機能サーバ30の制御部31が行うサービス削除処理について、図30のフローチャートを用いて説明する。なお、本サービス追加処理は、機能サーバ30の管理者により所定の操作が行われることにより開始される。
このサービス削除処理が開始されると、まず、S1601で、属性データを選択することによる削除の指示を機能サーバ30の管理者に行わせる。
続いて、S1602では、タイトル、カテゴリ、URLを伴い、ディレクトリサーバ20にサービスの削除を通知する。
続いて、S1603では、属性データからレコードを削除する。
続いて、S1604では、URLに対応したプログラム(サービスソフトウェア37)を削除する。その後、本サービス削除処理を終了する。
なお、本第1実施形態の画像処理システムでは、複合機10が、本発明のクライアントに相当し、セッション処理(図14)におけるS211の処理が、本発明の待機時間設定手段に相当する。また、機能サーバ30が、本発明のサーバに相当し、サービス制御情報処理(図22)におけるS908〜S910,S912,S913の処理と、機能サーバ処理(図21)におけるS809の処理とが、本発明のデータ返信手段に相当する。さらに、ブロードバンドルータ2が、本発明の通信監視手段に相当する。
以上説明したように、本第1実施形態の画像処理システムは、複合機10と、複合機10からの要求に応じたサービスを実行可能な機能サーバ30と、機能サーバ30が実行可能なサービスについての情報を複合機10へ提供するディレクトリサーバ20とを備えており、複合機10では、ディレクトリサーバ20から送信されるサービス定義情報25に基づき、機能サーバ30に要求するサービスを決定する。また、機能サーバ30から送信されるサービスI/F情報36に基づき、要求したサービスの実行に必要なパラメータを設定する。
このため、本画像処理システムによれば、インターネット上の一般サーバのように日々サービスが無秩序に増減する環境にも適応させることができる。すなわち、本画像処理システムでは、機能サーバ30が実行可能なサービスの種類や要求先については、ディレクトリサーバ20から送信されるサービス定義情報25に基づき把握することができるため、サービスの種類や要求先についての情報を複合機10に登録する必要がない。このため、機能サーバ30で実行可能なサービスが頻繁に増減する環境においても、複合機10及びその利用者の負担を抑えることができ、また、利用可能なサービスの種類が膨大な量になっても、複合機10に設ける記憶領域の負担を抑えることができる。しかも、複合機10に不要な情報が登録されたままの状態になるという問題も生じない。加えて、サービスの実行に必要なパラメータの仕様が変更される状況下においても、複合機10の負担を抑えることができる。
また、本実施形態の画像処理システムにおいて、サービス定義情報25及びサービスI/F情報36は、複合機10からのリクエストに対するレスポンスとして送信される。このため、本画像処理システムによれば、ブロードバンドルータ2の設定を変更することなく、サービス定義情報25やサービスI/F情報36を複合機10で受信することができる。
さらに、本実施形態の画像処理システムでは、複合機10から機能サーバ30に対しサービスの要求を行う場合にのみサービス定義情報25やサービスI/F情報36が送信されるようにしている。このため、本画像処理システムによれば、サービス定義情報25やサービスI/F情報36が複合機10へ必要以上に送信されることを防ぐことができる。この結果、複合機10の負担を軽減することができる。
一方、本実施形態の画像処理システムでは、サービス定義情報25やサービスI/F情報36に基づく情報を複合機10が備える操作パネル12aのディスプレイ52に表示させ、機能サーバ30に要求するサービスの選択及びそのサービスに関するパラメータの設定を複合機10の利用者に行わせるようにしている。このため、本画像処理システムによれば、複合機10の利用者が望むサービスを実行することができる。
また、本実施形態の画像処理システムでは、機能サーバ30の実行可能なサービスに変更が生じた場合に、その内容が機能サーバ30からディレクトリサーバ20へ通知される。このため、本画像処理システムによれば、ディレクトリサーバ20側で機能サーバ30が実行可能なサービスの内容等を調査する処理を行う必要がなく、効果的な情報収集が可能となり、常に最新の情報を複合機10に提供することができる。特に、サービスが複数のサーバに点在するシステムにおいては、ディレクトリサーバ20側ですべてのサービスを調査することが困難となるため、機能サーバ30側から通知することによる効果が高い。
さらに、本実施形態の画像処理システムでは、サービスI/F情報36により設定可能なパラメータを、サービスの内容に応じて、複合機10において設定可能なパラメータの一部に限定する。このため、本画像処理システムによれば、設定が好ましくないパラメータが設定されてしまうことを防ぐことができる。この結果、サービスを効果的に実行することができる。
そして特に、本実施形態の画像処理システムは、次のような優れた効果を奏する。
すなわち、本画像処理システムにおいて、機能サーバ30は、複合機10から受信したリクエストに対するレスポンスとして、複合機10へ送信すべきコマンドが存在する場合には、そのコマンドを含む返信データを複合機10へ直ちに送信し、複合機10へ送信すべきコマンドが存在しない場合には、コマンドの存在しない状態が、コマンド要求の受信から、タイムアウト時間に基づき設定された最長滞在時間継続した時点で、コマンドなしの返信データを送信する。このため、本画像処理システムによれば、ネットワークトラフィックを増大させることなく、複合機10が機能サーバ30からのコマンドを受信する待ち時間を効果的に短縮することができる。しかも、機能サーバ30において複合機10へ送信すべきコマンドが発生しなくても最長滞在時間が経過した時点でコマンドなしの返信データが送信されるようにしているため、ネットワークにおける通信エラーを防止することができる。
さらに、本画像処理システムでは、複合機10が、機能サーバ30へコマンド要求を繰り返し送信するようにしているため、機能サーバ30からのコマンドを確実に受信することができる。
加えて、本画像処理システムでは、複合機10側で最長滞在時間を自動的に設定するようにしているため、複合機10の利用者が、ブロードバンドルータ2で設定されているタイムアウト時間を把握していない場合にも、最長滞在時間をネットワーク環境等に応じた適切な値に設定することができる。しかも、機能サーバ30が複数の複合機10と通信を行う場合にも、複合機10ごとに適切な値の最長滞在時間を用いることができる。
ところで、上記第1実施形態の画像処理システムでは、複合機10が、セッション処理の開始時に、最長滞在時間を、タイムアウト時間Toと通信時間T1とに基づき算出した値に設定し、以降はその最長滞在時間に基づき機能サーバ30との通信を行うようにしている。しかしながら、実際には、最適な最長滞在時間の値はネットワークにおける通信の混雑状態によって変化する。
そこで、ネットワークにおける通信の混雑状態に応じて最長滞在時間の値を調整する第2実施形態の画像処理システムについて説明する。
第2実施形態の画像処理システムは、上記第1実施形態の画像処理システムと基本的にはほぼ同一であるが、複合機10の制御部11が実行するセッション処理の内容が異なる。
ここで、第2実施形態の画像処理システムを構成する複合機10の制御部が実行するセッション処理について、図31のフローチャートを用いて説明する。このセッション処理は、上記第1実施形態のセッション処理(図14)と比較すると、図14のS204の処理に代えてS231の処理を行う点と、図14のS212及びS216の処理を行わない点とが異なる。その他、図14と同一内容の処理については、同一のステップ番号を付しており、詳細な説明は省略する。なお、S221〜S228の処理は、図15と同一であるため、図示を省略している。
図31のセッション処理が開始されると、まず、S201で、利用するサービスを選択し、サービス定義情報25のLink_Location(URLを直接入力した場合には、そのURL)に基づきサービスを起動する。
続いて、S202では、機能サーバ30からセッションIDを受信する。
続いて、S203では、最長滞在時間を、604800秒に設定する。
続いて、S231では、最長滞在時間設定済フラグをオンにする。
続いて、S205でタイマを初期化し、S206でそのタイマを始動する。
続いて、S207では、最長滞在時間設定済フラグがオンであるか否かを判定する。ここで、本S207の判定処理は、本セッション処理において複数回繰り返して行われるが、そのうち、タイムアウトエラー未検出時の判定処理においては、最長滞在時間設定済フラグがオンであると判定し、タイムアウトエラー検出後の判定処理では、最長滞在時間設定済フラグがオンでないと判定する。なお、このような判定結果となるのは、S231,S219の処理により最長滞在時間設定済フラグのオン/オフが切り替えられることによるものである。
そこで、本セッション処理の流れを分かりやすくするために、S207でのタイムアウトエラー未検出時の判定処理後の流れ、タイムアウトエラー検出後の判定処理後の流れについて、順に説明する。
[タイムアウトエラー未検出時の判定処理後の流れ]
S207でのタイムアウトエラー未検出時の判定処理では、S231の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、S213へ移行する。
S213では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、S203で設定した最長滞在時間(604800秒)とともに機能サーバ30へ送信する。これにより、機能サーバ30では、その最長滞在時間に基づく応答処理が行われる。
続いて、S214では、S213で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このS214で、指令が受信されていないと判定した場合には、S215へ移行し、S213で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
そして、S215で、タイムアウトによる通信エラーが発生していないと判定した場合には、S214へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ただし、最長滞在時間を、通常想定されるタイムアウト時間に比べ十分大きな値(604800秒)に設定しているため、長時間に渡って機能サーバ30からレスポンスの送信がない場合、機能サーバ30からレスポンスが送信される前にタイムアウト時間が経過し、通信エラーが発生することとなる。その結果、S215でタイムアウトによる通信エラーが発生したと判定し、S217へ移行する。
S217では、S206で始動したタイマを停止する。
続いて、S218では、S217で停止したタイマの計時時間を、タイムアウト時間Toとして記憶する。
続いて、S219では、最長滞在時間設定済フラグをオフにする。
その後、S220へ移行し、所定インターバル待機した後、S205へ戻る。そして、S205でタイマを初期化し、S206でそのタイマを始動した後、S207へ移行する。
一方、S214で、指令が受信されたと判定した場合には、S221(図15)へ移行する。以降の処理の説明については省略する。
[タイムアウトエラー検出後の判定処理後の流れ]
S207でのタイムアウトエラー検出後の判定処理では、S219の処理で最長滞在時間設定済フラグがオフにされているため、最長滞在時間設定済フラグがオンでないと判定して、S208へ移行する。
S208では、最長滞在時間を0に設定し、その設定した最長滞在時間を「空の問い合わせ」とともに機能サーバ30へ送信する。
続いて、S209では、S208で送信した問い合わせに対する機能サーバ30からのレスポンスを受信する。
続いて、S210では、S206で始動したタイマを停止し、そのタイマの計時時間をT1に代入する。
続いて、S211では、S218で記憶したタイムアウト時間Toから通信時間T1を減算し、更に通信時間T1を2倍した値を減算することによって得られる値を、最長滞在時間に設定する。
続いて、S213では、「複合機指令問合せ」を、S211で設定した最長滞在時間とともに機能サーバ30へ送信する。これにより、機能サーバ30では、その最長滞在時間に基づく応答処理が行われる。このように第2実施形態のセッション処理では、複合機指令問合せを送信するタイミングごとに、タイムアウト時間Toと通信時間T1とに基づき最長滞在時間を算出する。ここで、通信時間T1は、ネットワークにおける通信が混雑するほど長くなることから、算出値は通信の混雑状態が加味された値となる。この結果、機能サーバ30で用いられる最長滞在時間の値は、通信の混雑状態の変化に応じて調整されることとなる。
続いて、S214では、S213で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このS214で、指令が受信されていないと判定した場合には、S215へ移行し、S213で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
そして、S215で、タイムアウトによる通信エラーが発生していないと判定した場合には、S214へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ただし、最長滞在時間をタイムアウト時間Toよりも短く設定しており、しかも通信の混雑状態に応じて長さが変化する通信時間T1を用いて最長滞在時間を算出しているため、タイムアウト時間が経過する前に機能サーバ30からレスポンスが送信され、S215でタイムアウトによる通信エラーが発生したと判定する前に、S214で指令が受信されたと判定することとなる。
そして、S214で、指令が受信されたと判定した場合には、S221(図15)へ移行する。以降の処理の説明については省略する。
なお、本第2実施形態の画像処理システムでは、セッション処理(図31)におけるS208〜210の処理が、本発明の通信状態検出手段に相当する。
以上説明したように、本第2実施形態の画像処理システムによれば、最長滞在時間を、ネットワークにおける通信の混雑状態に応じた最適な値に調整することが可能となる。この結果、通信エラーを防止しつつ、複合機10が機能サーバ30からのコマンドを受信する待ち時間を効果的に短縮することができる。
なお、上記第2実施形態の画像処理システムでは、計算式に基づき最長滞在時間を算出するようにしているが、これに限ったものではなく、例えば、通信の混雑状態(通信速度等)に対応する最適な最長滞在時間の値をデータテーブルとして記憶しておき、このデータテーブルを参照して最長滞在時間を設定するようにしてもよい(後述する第3実施形態についても同様である。)。
ところで、上記第2実施形態の画像処理システムでは、通信の混雑状態を複合機10側で検出して最長滞在時間の調整を行うようにしているが、これに限ったものではなく、例えば、通信の混雑状態を機能サーバ30側で検出して最長滞在時間の調整を行うようにすることも可能である。
そこで、通信の混雑状態を機能サーバ30側で検出して最長滞在時間の値を調整する第3実施形態の画像処理システムについて説明する。
第3実施形態の画像処理システムは、上記第1実施形態の画像処理システムと基本的にはほぼ同一であるが、複合機10の制御部11が実行するセッション処理の内容と、機能サーバ30の制御部31が実行する機能サーバ処理及びサービス制御情報処理とが異なる。
以下、各処理について具体的に説明する。
まず、複合機10の制御部11が実行するセッション処理について、図32のフローチャートを用いて説明する。このセッション処理は、上記第1実施形態のセッション処理(図14)と比較すると、図14のS213の処理に代えてS241の処理を行う点のみが異なる。その他、図14と同一内容の処理については、同一のステップ番号を付しており、詳細な説明は省略する。なお、S221〜S228の処理は、図15と同一であるため、図示を省略している。
図32のセッション処理が開始されると、まず、S201で、利用するサービスを選択し、サービス定義情報25のLink_Location(URLを直接入力した場合には、そのURL)に基づきサービスを起動する。
続いて、S202では、機能サーバ30からセッションIDを受信する。
続いて、S203では、最長滞在時間を、604800秒に設定する。
続いて、S204では、最長滞在時間設定済フラグをオンにし、タイムアウト記録フラグをオンにする。
続いて、S205でタイマを初期化し、S206でそのタイマを始動する。
続いて、S207では、最長滞在時間設定済フラグがオンであるか否かを判定する。ここで、本S207の判定処理は、本セッション処理において複数回繰り返して行われるが、そのうち、本セッション処理が開始されてから1度目のタイムアウトエラー検出直後の判定処理においてのみ、最長滞在時間設定済フラグがオンでないと判定し、それ以外の判定処理(タイムアウトエラー未検出時の判定処理及び最長滞在時間設定後の判定処理)では、最長滞在時間設定済フラグがオンであると判定する。なお、このような判定結果となるのは、S204,S212,S219の処理により最長滞在時間設定済フラグのオン/オフが切り替えられることによるものである。
そこで、本セッション処理の流れを分かりやすくするために、S207でのタイムアウトエラー未検出時の判定処理後の流れ、1度目のタイムアウトエラー検出直後の判定処理後の流れ、最長滞在時間設定後の判定処理後の流れについて、順に説明する。
[タイムアウトエラー未検出時の判定処理後の流れ]
S207でのタイムアウトエラー未検出時の判定処理では、S204の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、S241へ移行する。
S241では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、S203で設定した最長滞在時間(604800秒)と、現在時刻(送信時刻)とともに機能サーバ30へ送信する。
続いて、S214では、S241で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このS214で、指令が受信されていないと判定した場合には、S215へ移行し、S241で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
そして、S215で、タイムアウトによる通信エラーが発生していないと判定した場合には、S214へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ただし、最長滞在時間を、通常想定されるタイムアウト時間に比べ十分大きな値(604800秒)に設定しているため、長時間に渡って機能サーバ30からレスポンスの送信がない場合、機能サーバ30からレスポンスが送信される前にタイムアウト時間が経過し、通信エラーが発生することとなる。その結果、S215でタイムアウトによる通信エラーが発生したと判定し、S216へ移行する。
S216では、タイムアウト記録フラグがオンであるか否かを判定する。ここでは、S204でタイムアウト記録フラグがオンにされているため、タイムアウト記録フラグがオンであると判定して、S217へ移行する。
S217では、S206で始動したタイマを停止する。
続いて、S218では、S217で停止したタイマの計時時間を、タイムアウト時間Toとして記憶する。
続いて、S219では、最長滞在時間設定済フラグをオフにする。
その後、S220へ移行し、所定インターバル待機した後、S205へ戻る。そして、S205でタイマを初期化し、S206でそのタイマを始動した後、S207へ移行する。
一方、S214で、指令が受信されたと判定した場合には、S221(図15)へ移行する。以降の処理の説明については省略する。
[1度目のタイムアウトエラー検出直後の判定処理後の流れ]
S207での1度目のタイムアウトエラー検出直後の判定処理では、S219の処理で最長滞在時間設定済フラグがオフにされているため、最長滞在時間設定済フラグがオンでないと判定して、S208へ移行する。
S208では、最長滞在時間を0に設定し、その設定した最長滞在時間を「空の問い合わせ」とともに機能サーバ30へ送信する。
続いて、S209では、S208で送信した問い合わせに対する機能サーバ30からのレスポンスを受信する。
続いて、S210では、S206で始動したタイマを停止し、そのタイマの計時時間をT1に代入する。
続いて、S211では、S218で記憶したタイムアウト時間Toから通信時間T1を減算し、更に通信時間T1を2倍した値を減算することによって得られる値を、最長滞在時間に設定する。
続いて、S212では、最長滞在時間設定済フラグをオンにし、タイムアウト記録フラグをオフにする。
続いて、S241では、「複合機指令問合せ」を、S211で設定した最長滞在時間と、現在時刻(送信時刻)とともに機能サーバ30へ送信する。
続いて、S214では、S241で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このS214で、指令が受信されていないと判定した場合には、S215へ移行し、S241で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
そして、S215で、タイムアウトによる通信エラーが発生していないと判定した場合には、S214へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ここでは、最長滞在時間をタイムアウト時間Toよりも短く設定しているため、タイムアウト時間が経過する前に機能サーバ30からレスポンスが送信されることが通常であるが、仮に通信エラーが発生した場合には、S215でタイムアウトによる通信エラーが発生したと判定し、S216へ移行する。
S216では、タイムアウト記録フラグがオンであるか否かを判定する。ここでは、S212でタイムアウト記録フラグがオフにされているため、タイムアウト記録フラグがオンでないと判定して、S241へ戻る。つまり、タイムアウトによる通信エラーが発生した場合には、複合機指令問合せを機能サーバ30へ再度送信するようにしている。
一方、S214で、指令が受信されたと判定した場合には、S221(図15)へ移行する。なお、S221以降の処理についての説明は省略する。
[最長滞在時間設定後の判定処理後の流れ]
S207での最長滞在時間設定後の判定処理では、S212の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、S241へ移行する。
S241では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、S211で設定した最長滞在時間(前回と同じ値)とともに機能サーバ30へ送信する。
以降の流れは、上述した「1度目のタイムアウトエラー検出直後の判定処理後の流れ」と同様である。
次に、機能サーバ30の制御部31が実行する機能サーバ処理について、図33のフローチャートを用いて説明する。この機能サーバ処理は、上記第1実施形態の機能サーバ処理(図21)と比較すると、S805の処理の後にS821の処理を行う点のみが異なる。その他、図21と同一内容の処理については、同一のステップ番号を付しており、詳細な説明は省略する。
この機能サーバ処理が開始されると、まず、S801で、HTTPリクエストを受信する。
続いて、S802では、S801で受信したHTTPリクエストがサービス起動の指令であるか否かを判定する。
このS802で、サービス起動の指令であると判定した場合には、S803へ移行し、指定サービスが存在しないか否かを判定する。
そして、S803で、何らかの異常により指定サービスが存在しないと判定した場合には、S804へ移行し、エラー通知情報を生成し、S809へ移行する。
一方、S803で、指定サービスが正常に存在すると判定した場合には、S805へ移行し、セッションIDを生成して送信データを生成する。また、サービスを実行するプロセスを起動する。
続いて、S821で、複合機10と機能サーバ30との間の基準通信時間を表す変数T2の初期値を604800秒(一週間)に設定する。そして、S809へ移行する。なお、ここでの604800秒は、十分に長い値の一例であり、最長滞在時間に設定する604800秒とは直接関係がない。
また、S802で、サービス起動の指令でないと判定した場合には、S806へ移行し、S801で受信したHTTPリクエストがサービス終了の指令であるか否かを判定する。
このS806で、サービス終了の指令であると判定した場合には、S807へ移行し、セッションID及び確保したリソースを解放し、S809へ移行する。
一方、S806で、サービス終了の指令でないと判定した場合には、S808へ移行し、サービス制御情報処理(後述する図34の処理)を実行した後、S809へ移行する。
S809では、生成した情報を含むHTTPレスポンスの送信処理を行う。
続いて、S810では、S808のサービス制御情報処理を実施したか否かを判定する。
このS810で、サービス制御情報処理を実施したと判定した場合には、S811へ移行し、セッションID又はジョブIDに対応するメモリアドレスに「送信済み」をセットした後、本機能サーバ処理を終了する。
一方、S810で、サービス制御情報処理を実施していないと判定した場合には、そのまま本機能サーバ処理を終了する。
次に、機能サーバ処理(図33)におけるS808で実行されるサービス制御情報処理の具体的内容について、図34のフローチャートを用いて説明する。このサービス制御情報処理は、上記第1実施形態のサービス制御情報処理(図22)と比較すると、S921〜S925の処理が加えられている点が異なる。その他、図22と同一内容の処理については、同一のステップ番号を付しており、詳細な説明は省略する。
このサービス制御情報処理が開始されると、まず、S901で、サービスに送信する情報が存在するか否かを判定する。
このS901で、サービスに送信する情報が存在すると判定した場合には、S902へ移行し、セッションID又はジョブIDに対応する送信するプロセスを特定する。
続いて、S903では、プロセスが特定できないか否かを判定する。
このS903で、何らかの異常によりプロセスが特定できないと判定した場合には、S904へ移行し、エラー通知情報を生成した後、本サービス制御情報処理を終了する。
一方、S903で、プロセスが特定できると判定した場合には、S905へ移行し、特定したプロセスに情報を送信した後、S906へ移行する。
また、S901で、サービスに送信する情報が存在しないと判定した場合には、そのままS906へ移行する。
S906では、セッションID又はジョブIDに対応する返信情報の格納メモリを特定する。
続いて、S907では、格納メモリが特定できないか否かを判定する。
このS907で、格納メモリが特定できないと判定した場合には、S904へ移行し、エラー通知情報を生成した後、本サービス制御情報処理を終了する。
一方、S907で、格納メモリが特定できると判定した場合には、S921へ移行し、現在時刻(受信時刻)と複合機10から受信した「送信時刻」との差分をT3とする。つまり、複合機10から機能サーバ30への通信時間T3を算出しているのである。
続いて、S922では、受信した最長滞在時間が0であるか否かを判定する。なお、値が0の最長滞在時間は、上述のセッション処理(図32)におけるS208の処理で送信される。
このS922で、受信した最長滞在時間が0であると判定した場合には、S923へ移行し、複合機10と機能サーバ30との間の基準通信時間を表す変数T2に、S921で算出した通信時間T3を代入した後、S908へ移行する。つまり、値が0の最長滞在時間を受信した時点での通信時間T3を、基準通信時間T2とするのである。なお、値が0の最長滞在時間が受信されるのは1度だけであるため、以降はその基準通信時間T2の値が用いられる。
一方、S922で、受信した最長滞在時間が0でないと判定した場合には、そのままS908へ移行する。
S908では、最長滞在時間を、複合機10から受信した最長滞在時間の数値に設定する。
続いて、S924では、S921で算出した通信時間T3が、基準通信時間T2よりも長いか否かを判定する。
このS924で、通信時間T3が基準通信時間T2よりも長いと判定した場合には、S925へ移行し、通信時間T3と基準通信時間T2との差分を2倍した値を最長滞在時間から減算することにより、最長滞在時間の調整を行った後、S909へ移行する。つまり「最長滞在時間=最長滞在時間−(2×(T3−T2))として算出するのである。このように、複合機10で最長滞在時間が設定された時点での通信時間である基準通信時間T2に比べ、現時点での通信時間T3が長い場合(通信が混雑している場合)には、最長滞在時間を短く調整してタイムアウトによるエラーの発生を防止するようにしているのである。
一方、S924で、通信時間T3が基準通信時間T2よりも長くない(通信時間T3が基準通信時間T2以下である)と判定した場合には、そのままS909へ移行する。
S909では、複合機10に送信する情報(複合機10へ送信すべきコマンド)が存在するか否かを判定する。
このS909で、複合機10に送信する情報が存在しないと判定した場合には、S910へ移行し、複合機10からのリクエストを受信してから最長滞在時間(S908で設定した最長滞在時間であって、S925を経由した場合には調整後の最長滞在時間)が経過したか否かを判定する。
このS910で、最長滞在時間が経過していないと判定した場合には、S911へ移行し、コネクションの切断を検知したか否かを判定する。
そして、S911で、コネクションの切断を検知したと判定した場合には、そのまま本サービス制御情報処理を終了する。
一方、S911で、コネクションの切断を検知していないと判定した場合には、S909へ戻る。
また、S910で、最長滞在時間が経過したと判定した場合には、S912へ移行し、複合機指令無しの情報を生成した後、本サービス制御情報処理を終了する。
一方、S909で、複合機10に送信する情報が存在すると判定した場合には、S913へ移行し、返信情報に基づき、複合機制御指令を生成した後、本サービス制御情報処理を終了する。
なお、本第3実施形態の画像処理システムでは、サービス制御情報処理(図34)におけるS921の処理が、本発明の通信状態検出手段に相当する。
以上説明したように、本第3実施形態の画像処理システムによれば、上記第2実施形態と同様、最長滞在時間を、ネットワークにおける通信の混雑状態に応じた最適な値に調整することが可能となる。この結果、通信エラーを防止しつつ、複合機10が機能サーバ30からのコマンドを受信する待ち時間を効果的に短縮することができる。
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
例えば、上記実施形態の画像処理システムでは、最長滞在時間を自動的に設定するようにしているが、これに限ったものではなく、外部からの入力操作により入力された値に基づき設定するようにしてもよい。すなわち、複合機10の利用者がタイムアウト時間を予め把握しているような場合には、例えば、複合機10の操作パネル12aにおいて所望の最長滞在時間を入力するよう利用者に促し、入力された値を機能サーバ30へ送信することにより機能サーバ30に所望の最長滞在時間を設定させるように構成することができる。また、例えば、最長滞在時間の入力に代えてタイムアウト時間の入力を促し、その入力されたタイムアウト時間に基づき最長滞在時間を算出して、その算出値を機能サーバ30へ送信することにより機能サーバ30にその最長滞在時間を設定させるように構成することもできる。
一方、上記実施形態の画像処理システムでは、複合機10は、ディレクトリサーバ20のサービス定義情報記憶部24に記憶されている複数のサービス定義情報25のうち、まずトップのサービス定義情報25を受信してカテゴリを選択し、次に、その選択したカテゴリに対応するサービス定義情報25を受信してサービスを選択するようにしているが、これに限ったものではない。すなわち、ディレクトリサーバ20のサービス定義情報記憶部24に記憶されている複数の(例えばすべての)サービス定義情報25を一度に受信するようにしてもよい。
また、サービスI/F情報36が設定を要求するパラメータとしては、上記実施形態で例示したもの(解像度等)に限らず、サービスの内容に応じて様々なものが考えられる。例えば、モノクロ/カラーの選択、トナーの濃さ(印刷濃度)、音声のボリューム(音量)等が挙げられる。
さらに、サービスI/F情報36により設定不能とするパラメータは、高いパラメータ又は低いパラメータのいずれかに限られるものではない。例えば、読取解像度として200dpi、300dpi及び600dpiから設定可能な場合に、300dpiを設定不能とし、200dpi及び600dpiを設定可能としてもよい。
ところで、上記実施形態の画像処理システムでは、複合機10、ディレクトリサーバ20及び機能サーバ30をそれぞれ1台ずつ備えた構成を例示しているが、このような構成はあくまでも説明を容易にするための構成例にすぎず、これ以外にも様々な構成をとることが可能である。
すなわち、画像処理システムにおいて、複合機10は複数設けられていてもよい。具体的には、複数の複合機10が、共通のディレクトリサーバ20からのサービス定義情報25を受信し、共通の機能サーバ30にサービスを要求するようにすることができる。
また、画像処理システムにおいて、ディレクトリサーバ20は複数設けられていてもよい。具体的には、例えば、トップのサービス定義情報25を送信するディレクトリサーバ20と、各カテゴリのサービス定義情報25を送信するディレクトリサーバ20とを、別々のサーバで構成することも可能である。
さらに、画像システムにおいて、機能サーバ30は複数設けられていてもよい。具体的には、例えば、サービスI/F情報36を送信する機能サーバ30と、サービスを実行する機能サーバ30とを、別々のサーバで構成することも可能である。また、サービスを実行する機能サーバ30についても、例えば、セッション処理を実行する機能サーバ30と、ジョブ処理を実行する機能サーバ30とを、別々のサーバで構成することも可能である。一方、例えば、複数種類のサービスについて、サービスAを実行する機能サーバ30、サービスB〜Dを実行する機能サーバ30、サービスE,Fを実行する機能サーバ30、というように、複数の機能サーバ30が各自のサービスを実行するというように構成することもできる。この場合、サービスI/F情報36は、例えば、サービスを実行する機能サーバ30がそのサービスに対応するサービスI/F情報36を送信するようにしてもよく、サービスを実行する機能サーバ30とは別の機能サーバ30が送信するようにしてもよい。
また、ディレクトリサーバ20と機能サーバ30とが共通のコンピュータにより構成されていてもよい。
また、ディレクトリサーバ20や機能サーバ30が、画像システムを構成する複数の複合機10のうちの一部に内蔵されていてもよい。
1…ネットワーク、2,3,4…ルータ、10…複合機、11…制御部、12…操作部、12a…操作パネル、13…読取部(スキャナ)、14…記録部(プリンタ)、15…通信部、16…記憶部、17…音入力部、18…音出力部、20…ディレクトリサーバ、21…制御部、22…通信部、23…記憶部、24…サービス定義情報記憶部、30…機能サーバ、31…制御部、32…通信部、33…記憶部、34…サービスI/F情報記憶部、35…サービスソフト記憶部