以下、本発明が適用された実施形態について、[全体構成の説明]、[サービス提供の仕組み]、[効果]、[変形例]、[本発明との対応関係]の順に説明する。
[全体構成の説明]
本発明が適用された、ネットワークを介したサービスの提供が行われるサービス提供システムは、図1に示すように、複合機10,ディレクトリサーバ20,機能サーバ30などからなり、これらがネットワーク(本実施形態ではインターネット等の広域ネットワーク)1を介してデータ通信可能に接続されている。具体的にいうと、複合機10,ディレクトリサーバ20および機能サーバ30は、それぞれルータ(R;周知のブロードバンドルータ)2〜4を介してネットワーク1と接続されている。
複合機10は、制御部11,操作部12,読取部13,記録部14,通信部15,記憶部16,音入力部17および音出力部18などを備えている。
これらのうち、制御部11は、CPU,ROM,RAM等を備え、このCPUが、ROMに記憶されているプログラムに従って複合機10全体を統括制御する。
また、操作部12は、図2に示すように、コピーボタン41,スキャナボタン42,FAXボタン43,サービスボタン44,設定ボタン45,上下左右の方向ボタン46〜49,OKボタン50,キャンセルボタン51,ディスプレイ52,表示ボタン53,印刷ボタン54,音声ボタン55,音声+表示ボタン56,音声+印刷ボタン57およびおすすめボタン58などからなるユーザインタフェースとして構成されている。
図1に説明を戻し、また、読取部13は、スキャナとしての機能を実現するための入力デバイスであり、用紙等のシート状記録媒体に記録(例えば印刷)された画像を読み取り、その画像を表す画像データを生成する。
また、記録部14は、プリンタとしての機能を実現するための出力デバイスであり、画像データの表す画像を用紙等のシート状記録媒体に印刷する。
また、通信部15は、複合機10をネットワーク1に接続すると共に、このネットワーク1を介してデータを送受信するための処理を行う。
また、記憶部16は、図示しないハードディスク等の不揮発性の記憶媒体を備えており、入出力したデータ等を記憶することができる。
また、音入力部17は、本複合機10が備える図示しないハンドセット(受話器)に設けられたマイクから音を入力し、その音を表す音データ(PCMデータ)を生成する。
そして、音出力部18は、音データ(PCMデータ)の表す音を、図示しないハンドセットに設けられたスピーカ、又は、複合機10本体に設けられた図示しないスピーカから出力する。
ディレクトリサーバ20は、制御部21,通信部22および記憶部23を備えている。
これらのうち、制御部21は、CPU,ROM,RAM等を備え、このCPUが、ROMに記憶されているプログラムに従ってディレクトリサーバ20全体を統括制御する。
また、通信部22は、ディレクトリサーバ20をネットワーク1に接続すると共に、このネットワーク1を介してデータを送受信するための処理を行う。
そして、記憶部23は、図示しないハードディスクを備えており、このハードディスクにデータを記憶する。この記憶部23には、後述するサービス定義情報25を記憶するためのサービス定義情報記憶部24が設けられている。このサービス定義情報25は、XML(eXtensible Markup Language)により記述されたデータであり、この記述内容に従って後述するサービス選択用画面を表示することで(図12(a)参照)、機能サーバ30が提供可能なサービス一覧(各サービスの種類及び要求先アドレス(URL)を提供することができる。なお、このサービス定義情報25における各タグの定義付けを図3および図4に示す。
機能サーバ30は、制御部31,通信部32および記憶部33などを備えている。
これらのうち、制御部31は、CPU,ROM,RAM等を備え、このCPUが、ROMに記憶されているプログラムに従って機能サーバ30全体を統括制御する。なお、この制御部31は、複合機10の制御部11に比べて充分に高性能な構成とされており、複合機10の制御部11では実行困難な処理についても行うことができる。
また、通信部32は、機能サーバ30をネットワーク1に接続すると共に、このネットワーク1を介してデータを送受信するための処理を行う。
そして、記憶部33は、図示しないハードディスクを備えており、このハードディスクにデータを記憶する。この記憶部33は、後述するサービスI/F情報36を記憶するためのサービスI/F情報記憶部34と、それぞれ異なるサービスを提供するための処理を実行するサービスソフトウェア37を記憶するためのサービスソフト記憶部35と、からなる。このサービスI/F情報36は、XMLにより記述されたデータであり、この記述内容に従って後述するパラメータ入力用画面が複合機10に表示されることで(図18参照)、機能サーバ30に対してサービスの提供を要求するための情報(サービスの詳細内容等)の設定を行うインタフェースが実現される。
なお、このサービスI/F情報36における各タグの定義付けを図5に示す。
[サービス提供の仕組み]
次に、サービスが提供される際、複合機10と機能サーバ30との間で行われる通信の一例について、図6のラダーチャートを用いて説明する。
複合機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デバイス(操作部12)の利用開始を通知するものである。これにより、複合機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に基づくパラメータ入力用画面を操作部12のディスプレイ52に表示させる(例えば図18)。そして、利用者により設定されたパラメータを、機能サーバ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が行う処理について説明する。
(1)ディレクトリサーバ20による処理
まず、ディレクトリサーバ20の制御部21により実行されるディレクトリサーバ処理を図7に基づいて説明する。
このディレクトリサーバ処理は、複合機10からHTTPリクエストがあると実行が開始される。まず、HTTPリクエストを受信し(S71)。そのHTTPリクエストの内容がトップのサービス定義情報25を要求するものであるか否かをチェックする(S72)。ここでHTTPリクエストの内容がトップのサービス定義情報25を要求するものであれば(S72:YES)、複合機10の機種をHTTPレスポンスにより複合機10へ要求する(S73)。
続いて、複合機10からHTTPリクエストにより機種情報を受信すると、その機種情報を記憶部23に記憶する(S74)。そして、図8に示す機種別サービス定義情報IDテーブルに従って要求されているサービス定義情報IDを変換し、変換したIDに対応するサービス定義情報25をサービス定義情報記憶部24から読み出す(S75)。なお、図8に示す機種別サービス定義情報IDテーブルは、機種名と要求サービス定義情報IDの交差したところにあるIDを、置換後の要求サービス定義情報IDとして用いるためのテーブルである。つまり、置換後のIDに対応するサービス定義情報25は、当該機種の機能や能力に適したものとなっており、例えば、A4サイズのカラー印刷が可能な機種であればPrint_Descriptionタグによって定義されるデータは当該機種の能力に対応したデータから構成されており、B4サイズのモノクロ印刷が可能な機種であればPrint_Descriptionタグによって定義されるデータが当該機種に対応したデータから構成されている。
図7に説明を戻し、S75の処理を終えると、S79に移行する。
一方、S72において、HTTPリクエストの内容がトップのサービス定義情報25を要求するものでなければ(S72:NO)、HTTPリクエストの内容がトップ以外のサービス定義情報25の要求であるか否かをチェックする(S76)。ここでHTTPリクエストの内容がトップ以外のサービス定義情報25を要求するものであれば(S76:YES)、記憶部23に記憶しておいた機種情報と要求されたサービス定義情報IDとに基づき機種別サービス定義情報IDテーブルを参照し、機種に応じたサービス定義情報25をサービス定義情報記憶部24から読み出す(S77)。そして、S79に移行する。
また、S76において、HTTPリクエストの内容がトップ以外のサービス定義情報25を要求するものでなければ(S76:NO)、エラー情報をセットし(S78)、S79に移行する。
S79では、サービス定義情報25またはエラー情報をHTTPレスポンスとして要求もとの複合機10へ送信し、本ディレクトリサーバ処理を終了する。
(2)複合機10による処理
次に複合機10の制御部11により実行される各種処理について説明する。
(2−1)複合機処理
まず、複合機10が起動された以降、繰り返し実行される処理である複合機処理を図9に基づいて説明する。
この複合機処理が起動されたら、まず、初期化処理を行う(S102)。
この初期化処理を終えた後、外部からの指令,例えば、操作部12への入力操作やネットワーク1を介した指令信号の入力などが発生したら(S104)、この入力が動作モードをサービスモードへ移行させるための内容であるか否かをチェックする(S106)。ここでは、S104による入力が操作部12のサービスボタン44を押下する操作であれば、サービスモードへ移行させるための内容であると判定する。なお、この「サービスモード」とは、以下の処理で示すように、機能サーバ30に対してサービスの提供を要求するための処理を実行するための動作モードである。
S106で、サービスモードへ移行させるための内容でないと判定されたら(S106:NO)、その入力内容に応じて他の動作モードに対する処理(その他のモードの処理)を行った後(S108)、S104へ戻る。
一方、S106で、サービスモードへ移行させるための内容であると判定されたら(S106:YES)、機能サーバ30に要求すべきサービスを指定する方法をユーザに指定させる(S110)。ここでは、図10に示す方法選択画面をディスプレイ52に表示させ、サービスをリストから指定するか(図10における「リストから選択」)、要求先アドレスを直接入力により指定するか(図10における「直接入力」)の選択を促す。この選択画面が表示された後、ユーザは、操作部12により、いずれにより指定するかの選択を行うことができる。
このS110で、リストから指定する旨が選択されたら(S110:YES)、ディレクトリサーバ20にトップのサービス定義情報25を要求する(S111)。ここでは、ディレクトリサーバ20に対してトップのサービス定義情報25の送信を要求するためのアドレスとして、あらかじめ記憶部16に記憶されたアドレス宛にHTTPリクエストを送信することにより、サービス一覧を要求する。
ところで、トップのサービス定義情報25を要求したときに、ディレクトリサーバ20から本複合機10の機種情報をHTTPレスポンスによって要求される場合がある。このため、ディレクトリサーバ20から本複合機10の機種情報を要求されたか否かをチェックし(S112)、ディレクトリサーバ20から機種情報を要求された場合は(S112:YES)、本複合機10の機種情報をHTTPリクエストによってディレクトリサーバ20に送信する(S113)。ディレクトリサーバ20から機種情報を要求されなかった場合(S112:NO)、または機種情報をディレクトリサーバ20に送信した後は、ディレクトリサーバ20からトップのサービス定義情報25が送られてくるため、そのサービス定義情報25を受信する(S114)。そして、受信したサービス定義情報25に基づいてサービス選択用画面をディスプレイ52に表示させる(S116)。
このS116の処理がトップのサービス定義情報25を受信した後に行われる場合には、図11に示すようなトップのサービス定義情報25(XMLの記述)に従って、図12(a)に示すように、表示用タイトル(Title)として「ディレクトリサービス」の文字がディスプレイ52の表示領域上部に配置され、選択可能なカテゴリを表す項目(Link_Title)である「データ保存サービス」,「印刷サービス」および「コピー応用サービス」の文字が表示領域下部に配置されてなるサービスのカテゴリ選択画面の表示を行う。なお、この場合のサービスのカテゴリ選択画面には、カテゴリに対応する別のサービス定義情報25のIDがリンク先として割り当てられており(図11における「Link_Location」参照)、いずれかの項目が選択された後、OKボタン50がユーザによって押下されると、その項目に対応するIDのサービス定義情報25がディレクトリサーバ20に要求される。また、いずれかの項目(表示用タイトルを含む)が選択された後、表示ボタン53,印刷ボタン54,音声ボタン55,音声+表示ボタン56,音声+印刷ボタン57,おすすめボタン58の何れかが押下されると、対応する方法で選択項目の詳細説明がなされる。詳細は後述する。
説明を図9に戻し、また、S116の処理がトップ以外のサービス定義情報25を受信した後に行われる場合,具体的な例として、「コピー応用サービス」に関するサービス定義情報25を受信した場合には、図13に示すようなサービス定義情報25(XMLの記述)に従って、図12(b),図12(c)に示すように、表示用タイトル(Title)として「コピー応用サービス」の文字が表示領域上部に配置され、選択可能なサービスを表す項目(Link_Title)である「すかし入りコピー」,「翻訳コピー」,「原稿読み上げ」および「音声テキスト変換」の文字が表示領域下部に配置されてなるサービス選択画面の表示を行う。なお、本実施形態において、表示領域の制約上、すべての項目を一度に表示することができない場合には、画面をスクロールさせることで各項目の配置が上下に移動するように構成されており、図12(b),図12(c)では、そのようなスクロール前後の状態を示している。また、この場合のサービス選択画面には、サービスに対応する別のサービス定義情報25のIDがリンク先として割り当てられており(図13における「Link_Location」参照)、いずれかの項目が選択された後、OKボタン50がユーザによって押下されると、その項目に対応するIDのサービスの提供が機能サーバ30に要求される。また、いずれかの項目(表示用タイトルを含む)が選択された後、表示ボタン53,印刷ボタン54,音声ボタン55,音声+表示ボタン56,音声+印刷ボタン57,おすすめボタン58の何れかが押下されると、対応する方法で選択項目の詳細説明がなされる。例えば、サービスの項目「翻訳コピー」が選択された後、表示ボタン53が押下されると、図12(d)に示すような、翻訳コピーサービスの詳細説明がディスプレイ52に表示される。詳細は後述する。
また、上述したS110で、要求先アドレスを直接入力により指定する旨が選択された場合には(S110:NO)、要求先アドレスを入力するための図示しないアドレス入力画面をディスプレイ52に表示させた後(S118)、次の処理(S117)へ移行する。
こうして、サービス選択画面またはアドレス入力画面が表示された以降、ユーザは、操作部12により、いずれかの項目を選択する操作(アドレスを入力する操作)や、各ボタンを押下する操作や、サービスモードを終了する操作(停止操作)を行うことができる。
S116に続くS117では、現在のディスプレイ52の状態が詳細説明を表示させている状態か否かをチェックする。その結果、詳細説明を表示させていない場合には(S117:NO)、ディスプレイ52に表示させている項目(表示用タイトルを含む)の選択を利用者から受け付け(S119)、S120に移行する。
一方、現在のディスプレイ52の状態が詳細説明を表示させている場合には(S117:YES)、S120に移行してユーザからのボタン操作を受け付ける。
次に、こうして行われたボタン操作がOKボタン50が押下された操作であるか否かをチェックする(S122)。
このS122で、OKボタン50が押下された操作でないと判定された場合(S122:NO)、詳細説明ボタン(表示ボタン53,印刷ボタン54,音声ボタン55,音声+表示ボタン56,音声+印刷ボタン57,おすすめボタン58)の何れかが押下された操作であるか否かをチェックする(S123)。詳細説明ボタンが押下されたと判定された場合(S123:YES)、後述する詳細説明処理を実行し(S124)、S117へ処理を戻す。
一方、詳細説明ボタンが押下されたと判定されなかった場合(S123:NO)、)、ボタン操作がキャンセルボタン51が押下された操作であるか否かをチェックする(S125)。キャンセルボタン51が押下された操作であると判定された場合(S125:YES)、S104へ戻ることによりサービスモードとしての処理を終了する。一方、キャンセルボタン51が押下された操作でなければ(S125:NO)、拒否音(ブザー音など)を鳴動させた後(S126)、S117へ戻る。
また、S122で、OKボタン50が押下された操作であると判定された場合(S122:YES)、その際に選択されているリンクがサービスへのリンク,つまり機能サーバ30にサービスの提供を要求するためのIDであるか否かをチェックする(S128)。
このS128で、サービスへのリンクでないと判定された場合,つまり別のサービス定義情報25のIDである場合には(S128:NO)、ディレクトリサーバ20に対してそのIDのサービス定義情報25を要求し、該当するサービス定義情報25を受信した後(S130)、S116へ戻ってサービス選択用画面をディスプレイ52に表示させる。
そして、S128で、サービスへのリンクであると判定された場合には(S128:YES)、後述するセッション処理(図14)を行った後(S132)、S104へ戻ることによりサービスモードとしての処理を終了する。
(2−2)セッション処理
続いて、図9におけるS132であるセッション処理の詳細な処理手順を図14,図15に基づいて説明する。
このセッション処理では、まず、利用するサービスを選択し、サービス定義情報25のLink_Location(アドレスを直接入力した場合には、そのアドレス)に基づきサービスを起動する(S202)。つまり、サービスのアドレス宛にサービス起動指令をHTTPリクエストにより送信することで、ユーザに選択されたサービスを機能サーバ30側において起動させる。このサービス起動指令を受信した機能サーバ30からは、セッションIDがHTTPレスポンスにより返信されてくる。
次に、S204によるサービス起動指令に応じて機能サーバ30から返信されてくるセッションIDを受信する(S204)。なお、以降の処理で送信するHTTPリクエストおよびHTTPレスポンスには、特に明示しない限り、全てセッションIDが含まれた状態で送信されることとし、このHTTPリクエストを受信した機能サーバ30側では、このセッションIDに基づいて通信中のデバイスを管理(周知のセッション管理)するように構成されている。
次に、複合機10に対する指令の有無を問い合わせるための「複合機指令問合せ」をHTTPリクエストにより機能サーバ30へ送信する(S206)。この「複合機指令問合せ」を受信した機能サーバ30は、複合機10に対する指令が発生していれば、その内容を示す指令(指令が発生していない場合には「指令なし」を示す指令)をHTTPレスポンスにより返信してくる。
次に、S206による問い合わせにより返信されてくる指令(複合機指令)を受信したら(S208)、その指令がジョブ起動指令であるか否かを判定する(S210)。この「ジョブ起動指令」とは、後述のように、S202にてサービス起動指令を送信した以降、機能サーバ30側で発生する指令であり、そのタイミングやサービスの内容に応じて「UIジョブ」,「入力ジョブ(スキャンジョブまたはボイスジョブ)」,「出力ジョブ(プリントジョブまたはスピーカジョブ)」のいずれかの起動を指令する内容となっている。なお、このジョブ起動指令には、起動すべきジョブのジョブID、ジョブの種類(UIジョブ、入力ジョブ(スキャンジョブまたはボイスジョブ)、出力ジョブ(プリントジョブまたはスピーカジョブ))およびジョブの通信先アドレスが付加されている。
このS210で、ジョブ起動指令であると判定された場合(S210:YES)、ジョブの起動に必要なリソースを確保した後(S212)、以下に示すS252〜S266によりジョブ起動指令で指令されたジョブの起動を行う。
以下に、このS252〜S266について図15に基づいて説明する。
ここでは、まず、ジョブ起動指令で指令されたジョブがUIジョブであるか否かをチェックし(S252)、UIジョブであると判定された場合には(S252:YES)、ジョブ起動指令に付加されたジョブIDおよび通信先アドレスに基づいてUIジョブを起動した後(S254)、次の処理(図14におけるS214)へ移行する。このUIジョブは、このS254の処理で起動された以降、他の処理と並行して実行されるものであり、これについては、後述する「UIジョブ」(図16)において詳述する。
また、ジョブ起動指令で指令されたジョブがUIジョブでないと判定された場合(S252:NO)、その指令されたジョブが入力ジョブの一種であるスキャンジョブ(S256:YES)またはボイスジョブ(S256:NO,S262:YES)であれば、ジョブ起動指令に付加されたジョブIDおよび通信先アドレスに基づいて入力ジョブを起動した後(S260)、次の処理(図14におけるS214)へ移行する。この入力ジョブは、このS260の処理で起動された以降、他の処理と並行して実行されるものであり、これについては、後述する「入力ジョブ」(図19)において詳述する。
また、ジョブ起動指令で指令されたジョブが上述したいずれのジョブでないと判定された場合(S258:NO)、その指令されたジョブが出力ジョブの一種であるプリントジョブ(S262:YES)またはスピーカジョブ(S262:NO,S264:YES)であれば、ジョブ起動指令に付加されたジョブIDおよび通信先アドレスに基づいて出力ジョブを起動した後(S266)、次の処理(図14におけるS214)へ移行する。この出力ジョブは、このS266の処理で起動された以降、他の処理と並行して実行されるものであり、これについては、後述する「出力ジョブ」(図20)において詳述する。
なお、ジョブ起動指令で指令されたジョブが上述したいずれのジョブでもないと判定された場合(S264:NO)、ジョブの起動を行うことなく、次の処理(図14におけるS214)へ移行する。
こうして、ジョブの起動を行った後、図14へ戻り、所定インターバル待機した後(S214)、S206へ戻る。
また、上述したS210で、ジョブ起動指令でないと判定された場合(S210:NO)、S208で受信した指令がジョブ終了指令であるか否かをチェックする(S216)。この「ジョブ終了指令」とは、後述のように、図15における各処理でジョブを起動した以降、このジョブが終了した際に機能サーバ30側で発生する指令である。なお、このジョブ終了指令には、その終了したジョブのジョブIDが付加されている。
このS216で、ジョブ終了指令であると判定された場合(S216:YES)、このジョブ終了指令に付加されたジョブIDのジョブを停止させる(該当するジョブに対して終了指示を渡す)と共に、このジョブを起動する前にS212にて確保したリソースを解放した後(S218)、S214へ移行する。
また、上述したS216で、ジョブ終了指令でないと判定された場合(S216:NO)、「指令なし」を示すものであるか否かをチェックし(S220)、「指令なし」を示すものであれば(S220:YES)、S214へ移行する。一方、「指令なし」を示すものでなければ(S220:NO)、セッション終了指令であるか否かを判定する(S222)。この「セッション終了指令」とは、この複合機10に対するサービスの提供が終了した際に機能サーバ30側で発生する処理である。
そして、このS222で、セッション終了指令であると判定された場合(S222:YES)、本セッション処理を終了する。一方、S208で受信した指令が上述したいずれの指令でもない場合、エラーを報知するための処理(指令エラーの処理)を行った後(S224)、本セッション処理を終了する。このS224では、エラーである旨のメッセージをディスプレイ52に表示させることによりエラーを報知する。
(2−3)UIジョブ
続いて、図15におけるS254にて起動されるUIジョブの処理手順を図16に基づいて説明する。
このUIジョブが開始されると、まず、機能サーバ30にサービスI/F情報36を送信してもらうための要求である「サービスI/F情報送信要求」およびその要求対象を特定するURLを送信用データとして所定領域へ書き込む。この送信用データは、後述するS321の処理で利用される情報であり、このデータとして書き込まれている情報がセッションID及びジョブIDとともに機能サーバ30へ送信される。なお、送信用データの格納領域は、複合機10の制御部11内に備えられた図示しないRAMの所定領域に設けられている(S301)。
続いて、上述したセッション処理からの終了指示(図14のS218において出力される指示)があったか否かを判定する(S303)。
このS303で、セッション処理からの終了指示があったと判定された場合には(S303:YES)、セッション処理に対してUIジョブの終了を通知した後(S305)、本UIジョブを終了する。なお、このセッション終了指令は、上述した図14のセッション処理のS218における処理の中で受信される。S218の内部ではこの指令を受信することによりジョブが完全に停止したと判断し、以降の手順を実施する。
一方、セッション処理からの終了指示がないと判定された場合には(S303:NO)、操作部12がビジー状態であるか否かを判定する(S309)。ここでは、各ジョブの起動中に立つ(「1」がセットされる)ように設定されたビジーフラグFuに基づき、ビジーフラグFuが立っていればビジー状態であると判定し、ビジーフラグFuが下りて(「0」がセットされて)いればビジー状態でないと判定する。
このS309で、ビジー状態であると判定された場合には(S309:YES)、操作部12のビジー状態が解除されるまで,つまりビジーフラグFuが下りるまで待機した後(S307)、S309へ戻る。一方、ビジー状態でないと判定した場合には(S309:NO)、ビジーフラグFuを立てて(S311)、本UIジョブにより操作部12がビジー状態になっているものとする。
次に、送信用データとして格納領域に書き込まれている情報をセッションIDおよびジ
ョブIDを伴わせて機能サーバ30へHTTPリクエストにより送信する(S321)。このHTTPリクエストを受信した機能サーバ30は、本UIジョブに対する指令があれば、その内容を示す複合機指令をHTTPレスポンスにより返信してくる。なお、本UIジョブに対する指令がなければ、「指令なし」を示す複合機指令をHTTPレスポンスにより返信してくる。
次に、HTTPレスポンスにより返信されてくる複合機指令を受信すると(S323)、その指令がパラメータ要求であるか否かを判定する(S325)。この「パラメータ要求」とは、機能サーバ30で実行される後述のUIジョブ処理(図25)におけるS904の処理で送信される要求であり、このパラメータ要求に付加されたサービスI/F情報36に基づいて、サービスの利用に必要なパラメータの指定要求がユーザに対してなされる。
このS325で、パラメータ要求であると判定された場合(S325:YES)、サービスI/F情報36に基づきパラメータ入力用画面を操作部12のディスプレイ52に表示させ、パラメータの設定するための入力操作を利用者に促す(S327)。
ここで、サービスI/F情報36のうち、翻訳コピーサービスに対応するサービスI/F情報36を例示してパラメータ入力画面が表示される様子について説明する。なお、翻訳コピーサービスとは、複合機10における読取部13で読み取られた画像データに基づき、機能サーバ30が、この画像データで表される画像に対してOCR(Optical Character Recognition )処理でテキストを認識し、そのテキストを所定の言語に翻訳した内容の画像を表す画像データを生成して提供することにより、この画像を複合機10における記録部14に印刷させるサービスである。
まず、図17に示すようなXMLの記述内容に従って、図18(a)に示すように、表示用タイトル(Title)として「翻訳コピー」の文字が表示領域上部に配置され、その下に入力項目(Disp_Name)として「言語選択」の文字が配置され、さらにその下に入力項目「言語選択」について選択可能なパラメータを表す項目(Disp_Select)である「英語→日本語」及び「日本語→英語」の文字が配置されたパラメータ入力用画面を表示させる。ここで、「翻訳コピー」に関する入力項目(Disp_Name)としては、上記表示されている「言語選択」に加え、「スキャナ設定」,「印刷設定」及び「コメント」があるが、この時点では、「言語選択」についての入力項目のみが表示される。これは、単にディスプレイ52の大きさの制限によるものであり、この状態から操作部12を操作する(左右の方向キー48,49)ことで、図18(b)〜図18(e)に示すように、表示領域下部に表示される入力項目を、「スキャナ設定」,「印刷設定」及び「コメント」を含む4種類の中から切り替えることができる。
なお、これら入力項目について選択可能なパラメータについて説明すると、「スキャナ設定」について選択可能なパラメータを表す項目(Disp_Select)としては、「普通の文字」及び「細かい文字」の文字が表示されることとなる(図18(b)参照)。ここでいう「普通の文字」とは、読取部13のパラメータである解像度(読取解像度)を300×300dpiに設定することを意味し、「細かい文字」とは、解像度を600×600dpiに設定することを意味する。
また、「印刷設定」について選択可能なパラメータを表す項目(Disp_Select)としては、「印刷速度優先」,「普通」及び「高精細」の文字が表示されることとなる。なお、ディスプレイ52の大きさの制限により、「高精細」については、初めは表示されていないが(図18(c)参照)、画面をスクロールさせることで表示される(図18(d)参照)。ここでいう「印刷速度優先」とは、記録部14のパラメータである解像度(印刷解像度)を200×200dpiに設定することを意味し、「普通」とは、解像度を300×300dpiに設定することを意味し、「高精細」とは、解像度を600×600dpiに設定することを意味する。
そして、「コメント」については、「コメント」の文字の下に、コメントの入力欄が表示され、設定されている文字列(Default_String)が入力された状態となる(図18(e)参照)。こうして、コメントとして入力欄に入力された文字列は、例えば、印刷画像のヘッダやフッタに記載されるという形で利用される。
こうして、パラメータ入力用画面を表示させた後、ユーザにより、各入力項目に対するパラメータの指定,入力欄への文字列の入力,および,指定内容を確定するための操作などが行われると、これらの入力情報(パラメータ)を送信用データとして格納領域へ書き込む(S329)。そして、ビジーフラグFuを下げて(S319)、S303へ処理を戻す。
次に、上述したS323において受信した複合機指令が、パラメータ要求でないと判定された場合には(S325:NO)、S323にて受信した複合機指令がサービス状態情報の表示指令であるか否かを判定する(S331)。ここで言う「サービス状態情報の表示指令」とは、機能サーバ30側で発信される指令(図25におけるS926で送信される指令)であり、機能サーバ30において問題なくサービスに関わる処理が実行されていること、または、問題がありサービスを停止することなどを報知するための指令である。
このS331で、サービス状態情報の表示指令であると判定されたら(S331:YES)、このサービス状態情報に基づく表示をディスプレイ52に行わせた後(S333)、機能サーバ30で稼働するサービスの稼働状態の新たな情報を要求する「サービス状態情報要求」を送信用データとして格納領域へ書き込む(S335)。そして、ビジーフラグFuを下げて(S319)、S303へ処理を戻す。
また、S331において、サービス状態情報の表示指令でないと判定されたら(S331:NO)、S323にて受信した複合機指令が状態情報要求であるか否かをチェックする(S337)。この「状態情報要求」とは、複合機10の状態に関する情報送信を要求するための指令である。
このS337で、状態情報要求であると判定されたら(S337:YES)、複合機10の状態に関する情報(例えば、用紙なし、カバーオープンなどを示す情報)を送信用データとして格納領域を書き込む(S339)。そして、ビジーフラグFuを下げて(S319)、S303へ処理を戻す。
また、S337で、状態情報要求でないと判定されたら(S337:NO)、S323にて受信した複合機指令がサーバ受取状況を表す指令であるか否かをチェックする(S341)。この「サーバ受取状況」とは、機能サーバ30が複合機10からの情報を正常に受け取ることができたか否かを通知するために送信する指令である。
このS341で、サーバ受取状況であると判定されたら(S341:YES)、このサーバ受取状況の内容が異常受取(NG)を表すものである場合(S343:YES)、このサーバ受取状況を送信する契機となった情報を送信用データとして格納領域へ書き込む(S346)。そして、ビジーフラグFuを下げて(S319)、S303へ処理を戻す。一方、異常受取(NG)を表すものでない場合(S343:NO)、上述した「サービス状態情報要求」を送信用データとして格納領域へ書き込み(S345)、ビジーフラグFuを下げて(S319)、S303へ処理を戻す。
一方、S341において、S323で受信した複合機指令が「サーバ受取状況」でないと判定されたら(S341:NO)、S323にて受信した複合機指令が「指令なし」を示すものか否かをチェックし(S338)、「指令なし」を示すものであれば(S338:YES)、複合機10に対する指令の問い合わせである「複合機指令ジョブ指令問合わせ」を送信用データとして格納領域へ書き込み(S349)、ビジーフラグFuを下げて(S319)、S303へ処理を戻す。一方、「指令なし」を示すものでなければ(S338:NO)、エラー処理を行った後(S347)、ビジーフラグFuを下げて(S319)、S303へ処理を戻す。このエラー処理の具体的な内容は、エラーが発生した旨を表す情報を送信用データとして格納領域に書き込んだり、ディスプレイ52にエラー発生の旨を表示させること等である。
(2−4)入力ジョブ
続いて、図15におけるS260にて起動される入力ジョブの処理手順を図19に基づいて説明する。この入力ジョブは、上述したセッション処理およびUIジョブと並列動作する処理である。
この入力ジョブが開始されると、まず、入力デバイスがビジー状態であるか否かを判定する(S402)。ここでは、入力デバイスがビジー状態である場合に立つ(「1」がセットされる)ように設定されたビジーフラグFiに基づき、ビジーフラグFiが立っていればビジー状態であると判定し、ビジーフラグFiが下りて(「0」がセットされて)いればビジー状態でないと判定する。なお、ここでいう「入力デバイス」とは、読取部13で生成された画像データに関するサービスの提供を受ける場合であれば読取部13であり、音入力部17により出力される音を表す音データに関するサービスを受ける場合であれば音入力部17のことである。
このS402で、入力デバイスがビジー状態であると判定された場合には(S402:YES)、入力デバイスのビジー状態が解除されるまで待機した後(S404)、S402の処理へ戻る一方、入力デバイスがビジー状態ではないと判定された場合には(S402:NO)、ビジーフラグFiを立てる(S406)。
次に、複合機10の状態に関する情報である複合機状態情報を、セッション処理におけるS260にて渡されたジョブIDと共に、HTTPリクエストにより機能サーバ30へ送信する(S408)。この複合機状態情報を受信した機能サーバ30は、後述のように、図16におけるS321にて機能サーバ30に送信しておいたパラメータに基づく情報である複合機パラメータをHTTPレスポンスにより返信してくる。
次に、S408にて送信した複合機状態情報に対して複合機パラメータが返信されてきたら(S410)、セッション処理から終了指示が渡されたか否か(セッションからの終了指示があるか)を判定する(S412)。この終了指示は、図14におけるS218により終了するジョブが入力ジョブである場合において、セッション処理から本入力ジョブに渡される指示である。
このS412で、セッション処理から終了指示が渡されていないと判定された場合には(S412:NO)、S410にて返信されてきた複合機パラメータを正常に受信できていなければ(S414:NO)、機能サーバ30からの情報を正常に受け取ることができない旨(異常受取(NG)である旨)を通知するための複合機受取状況を、セッション処理におけるS260にて渡されたジョブIDと共に、HTTPリクエストにより機能サーバ30へ送信する(S416)。この複合機受取状況を受信した機能サーバ30は、後述のように、再度、複合機パラメータをHTTPレスポンスとして返信してくるため、このS416の後、S410へ戻る。
一方、S410にて複合機パラメータを正常に受信できていれば(S414:YES)、機能サーバ30からの情報を正常に受け取ることができた旨(正常受取(OK)である旨)を通知するための複合機受取状況を、セッション処理におけるS260にて渡されたジョブIDと共に、HTTPリクエストにより機能サーバ30へ送信する(S418)。この複合機受取状況を受信した機能サーバ30は、後述のように、機能サーバ30側で処理すべきデータの送信を要求するための入力データ要求を返信してくる。
次に、複合機受取状況を受信した機能サーバ30から入力データ要求が返信されてきたら(S420)、S412と同様に、セッション処理から終了指示が渡されたか否かを判定する(S422)。
このS422で、セッション処理から終了指示が渡されていないと判定された場合には(S422:NO)、S420にて返信されてきた入力データ要求を正常に受信できていなければ(S424:NO)、S416と同様に、異常受取(NG)である旨を通知するための複合機受取状況を機能サーバ30へ送信する(S426)。この複合機受取状況を受信した機能サーバ30は、後述のように、再度、入力データ要求を返信してくるため、このS426の後、S420へ戻る。
一方、S420にて返信されてきた入力データ要求を正常に受信できていれば(S424:YES)、機能サーバ30側で処理させるべき入力データを、セッション処理におけるS260にて渡されたジョブIDと共に、HTTPリクエストにより機能サーバ30へ送信する(S428)。ここでは、まず、入力デバイスの設定値をS410にて受信した複合機パラメータで示されるパラメータに変更した後、機能サーバ30側で処理させるべきデータの入力を促すためのデータ入力画面をディスプレイ52に表示させることにより、データを複合機10に入力するための操作をユーザに促す。その後、ユーザによりデータを入力するための操作が行われることにより取得したデータ(入力データ)を、セッション処理におけるS260にて渡されたジョブIDと共に、HTTPリクエストにより機能サーバ30へ送信する。具体的な例としては、例えば、「原稿をセットしてOKボタンを押してください」,「受話器をとって音声を入力してください」などのメッセージをディスプレイ52に表示し、この後、読取部13または音入力部17により取得されるデータを機能サーバ30へ順次送信する。この入力データを受信した機能サーバ30は、この入力データに基づくデータ処理が正常に終了したか否かを通知するためのサービス状態情報を返信してくる、といった構成が考えられる。
なお、この処理におけるデータの取得方法については、図示されないメモリカードスロットにセットされたメモリーカードから読み出したり、記憶部16における特定の記憶領域から読み出すといった方法であってもよく、その場合には、データの取得先となる記憶領域を指定すべきメッセージをディスプレイ52に表示させればよい。
こうして、入力データを機能サーバ30へ送信した後、S428の処理で変更された入力デバイスの設定値を元に戻し(S430)、その後、機能サーバ30から返信されるサービス状態情報を受信する(S432)。
そして、S432にてサービス情報を受信した後、または、S412,S422でセッション処理から終了指示が渡されていると判定された場合には(S412:YES,S422:YES)、S406にて立てたビジーフラグFiを下ろした後(S434)、セッション処理におけるS260にて渡されたジョブIDと共にセッション処理へ入力ジョブの終了を通知して(S436)、本入力ジョブを終了する。この入力ジョブの終了の通知は、上述した図14のセッション処理のS218における処理の中で受信される。S218内部ではこの指令を受信することでジョブが完全に停止したと判断し、以降の処理手順を実施する。
(2−5)出力ジョブ
次に、図15におけるS266にて起動される出力ジョブの処理手順を図20に基づいて説明する。この入力ジョブは、上述したセッション処理およびUIジョブと並列動作する処理である。
この出力ジョブが開始されると、まず、出力デバイスがビジー状態であるか否かを判定する(S502)。ここでは、出力デバイスがビジー状態である場合に立つ(「1」がセットされる)ように設定されたビジーフラグFoに基づき、ビジーフラグFoが立っていればビジー状態であると判定し、ビジーフラグFoが下りて(「0」がセットされて)いればビジー状態でないと判定する。なお、ここでいう「出力デバイス」とは、記録部14で印刷する画像データに関するサービスの提供を受ける場合であれば記録部14であり、音出力部18により出力される音を表す音データに関するサービスの提供を受ける場合であれば音出力部18のことである。
このS502で、出力デバイスがビジー状態であると判定された場合には(S502:YES)、出力デバイスのビジー状態が解除されるまで待機した後(S504)、S502の処理へ戻る一方、出力デバイスがビジー状態ではないと判定された場合には(S502:NO)、ビジーフラグFoを立てる(S506)。
次に、複合機10の状態に関する情報である複合機状態情報を、セッション処理におけるS266にて渡されたジョブIDと共に、HTTPリクエストにより機能サーバ30へ送信する(S508)。この複合機状態情報を受信した機能サーバ30は、後述のように、図16におけるS321にて機能サーバ30に送信しておいたパラメータに基づく情報である複合機パラメータをHTTPレスポンスにより返信してくる。
次に、S508にて送信した複合機状態情報に対して複合機パラメータが返信されてきたら(S510)、セッション処理から終了指示が渡されたか否か(セッションからの終了指示があるか)を判定する(S512)。この終了指示は、図14におけるS218により終了するジョブが出力ジョブである場合において、セッション処理から本出力ジョブに渡される指示である。
このS512で、セッション処理から終了指示が渡されていないと判定された場合には(S512:NO)、S510にて返信されてきた複合機パラメータを正常に受信できていなければ(S514:NO)、機能サーバ30からの情報を正常に受け取ることができない旨(異常受取(NG)である旨)を通知するための複合機受取状況を、セッション処理におけるS266にて渡されたジョブIDと共に、HTTPリクエストにより機能サーバ30へ送信する(S516)。この複合機受取状況を受信した機能サーバ30は、後述のように、再度、複合機パラメータを返信してくるため、このS516の後、S510へ戻る。
一方、S510にて複合機パラメータを正常に受信できていれば(S514:YES)、機能サーバ30からの情報を正常に受け取ることができた旨(正常受取(OK)である旨)を通知するための複合機受取状況を、セッション処理におけるS266にて渡されたジョブIDと共に、HTTPリクエストにより機能サーバ30へ送信する(S518)。この複合機受取状況を受信した機能サーバ30は、図19におけるS428にて送信した入力データに基づいて処理してなるデータ(出力データ)を返信してくる。
次に、複合機受取状況を受信した機能サーバ30から出力データが返信されてきたら(S520)、S512と同様に、セッション処理から終了指示が渡されたか否かを判定する(S522)。
このS522で、セッション処理から終了指示が渡されていないと判定された場合には(S522:NO)、S520にて返信されてきた出力データを正常に受信できていなければ(S524:NO)、S516と同様に、異常受取(NG)である旨を通知するための複合機受取状況を機能サーバ30へ送信する(S526)。この複合機受取状況を受信した機能サーバ30は、後述のように、再度、出力データを返信してくるため、このS526の後、S520へ戻る。
一方、S520にて返信されてきた出力データを正常に受信できていれば(S524:YES)、この出力データを出力デバイスにより出力する(S528)。ここでは、まず、出力デバイスの設定値をS510にて受信した複合機パラメータで示されるパラメータに変更した後、この出力デバイスにより出力データを出力(例えば、画像データが表す画像の印刷や、音データが表す音声の出力)する。
こうして、出力データの出力デバイスによる出力を終えた後、S528で変更された出力デバイスの設定値を元に戻し(S530)、複合機10の状態に関する情報である複合機状態情報を、セッション処理におけるS266にて渡されたジョブIDと共に、HTTPリクエストにより機能サーバ30へ送信する(S532)。この複合機状態情報を受信した機能サーバ30は、後述のように、サービス状態情報を返信してくる。
そして、機能サーバ30から返信されるサービス状態情報を受信した後(S534)、または、S512,S522でセッション処理から終了指示が渡されていると判定された場合には(S512:YES,S522:YES)、S406にて立てたビジーフラグFoを下ろした後(S536)、セッション処理におけるS266にて渡されたジョブIDと共にセッション処理へ入力ジョブの終了を通知して(S538)、本入力ジョブを終了する。この入力ジョブの終了の通知は、上述した図14のセッション処理のS218における処理の中で受信される。S218内部ではこの指令を受信することでジョブが完全に停止したと判断し、以降の手順を実施する。
(2−6)詳細説明処理
次に、図28のフローチャートに基づき、図9におけるS124にて起動される詳細説明処理について説明する。なお、本詳細説明処理を終了した際には、図9におけるS124に続くステップに処理を戻す。
この詳細説明処理を開始すると、まず、表示ボタン53が押下されたか否かを判定する(S351)。表示ボタン53が押下されていなければ(S351:NO)、印刷ボタン54が押下されたか否かを判定する(S363)。印刷ボタン54が押下されていなければ(S363:NO)、音声ボタン55が押下されたか否かを判定する(S371)、音声ボタン55が押下されていなければ(S371:NO)、複合ボタン(音声+表示ボタン56,音声+印刷ボタン57)の何れかが押下されたか否かを判定する(S379)。複合ボタンが押下されていなければ(S379:NO)、おすすめボタン58が押下されたか否かを判定する(S383)。おすすめボタン58が押下されていなければ本詳細説明処理を終了し、図9におけるS124に続くステップに処理を戻す。
一方、上述したS351において、表示ボタン53が押下されていたと判定した場合は(S351:YES)、現在、詳細説明の表示中か否かを判定する(S353)。現在、詳細説明の表示中である場合には(S353:YES)、サービス選択画面に表示を戻し(S355)、本詳細説明処理を終了する。
また、S353において、現在詳細説明の表示中でないと判定した場合には(S353:NO)、ディスプレイ52に表示されているタイトルが選択された状態であるか否かを判定する(S357)。ここで言うタイトルというのは、サービス定義情報25における<Title>タグと</Title>タグとによって挟まれた文字列に対応するディスプレイ52上の表示を意味する(以下同様)。ディスプレイ52に表示されているタイトルが選択された状態である場合には(S357:YES)、サービス定義情報25における<Description>タグと</Description>タグとによって挟まれた文字列(以下、開始タグと終了タグとによって挟まれた項目を単に「(タグ名)項目」と言う。)をディスプレイ52に表示させた詳細説明画面に表示を切り替え(S359)、本詳細説明処理を終了する。一方、ディスプレイ52に表示されているタイトルが選択された状態でない場合、つまりリンクが選択された状態の場合は(S357:NO)、選択されているリンクに対応するLink_Description項目をディスプレイ52に表示させ詳細説明画面に表示を切り替え(S361)、本詳細説明処理を終了する。なお、このDescription項目およびLink_Description項目は、例えば、図34(a)に示すような文字列から構成される。この図34(a)に示すものは、翻訳コピーに関する詳細説明であるが、ユーザは自身の意志によってディスプレイ52に表示させたこの詳細説明を見ることによって翻訳コピーがどのようなものであるかを知ることができる。
図28に説明を戻し、また、上述したS363において、印刷ボタン54が押下されていたと判定した場合(S363:YES)、ディスプレイ52に表示されているタイトルが選択された状態であるか否かを判定する(S365)。ディスプレイ52に表示されているタイトルが選択された状態である場合には(S365:YES)、Print_Description項目を記録部14に印刷物として出力させ(S367)、本詳細説明処理を終了する。一方、ディスプレイ52に表示されているタイトルが選択された状態でない場合、つまりリンクが選択された状態の場合は(S367:NO)、選択されているリンクに対応するLink_Print_Description項目を記録部14に印刷物として出力させ(S369)、本詳細説明処理を終了する。なお、このPrint_Description項目およびLink_Print_Description項目は、例えば図34(b)に示すような印刷物が得られるようなデータがBase64アルゴリズムによってエンコードされたものによって構成される。この図34(b)に示すものは、翻訳コピーに関する詳細説明であるが、ユーザは、自身の意志によって印刷出力させたこの印刷物を見ることによって翻訳コピーがどのようなものであるかを知ることができる。
また、上述したS371において、音声ボタン55が押下されていたと判定した場合(S371:YES)、ディスプレイ52に表示されているタイトルが選択された状態であるか否かを判定する(S373)。ディスプレイ52に表示されているタイトルが選択された状態である場合には(S373:YES)、Audio_Description項目を音出力部18に出力させる。なお、Audio_Description項目はBASE64アルゴリズムによってエンコードされているため、デコードして音出力部18に出力させる(以下、音出力部18に出力させるデータについては同様とする)。一方、ディスプレイ52に表示されているタイトルが選択された状態でない場合、つまりリンクが選択された状態の場合は(S373:NO)、選択されているリンクに対応するLink_Audio_Description項目を音出力部18に出力させる。なお、このAudio_Description項目およびLink_Audio_Description項目は、例えば図34(c)に示すような文字列がBase64アルゴリズムによってエンコードされたものによって構成される。この図34(c)に示すものは、翻訳コピーに関する詳細説明であるが、ユーザは、自身の意志によって音声出力させたこの詳細説明を聞くことによって翻訳コピーがどのようなものであるかを知ることができる。
また、上述したS379において、複合ボタン(音声+表示ボタン56,音声+印刷ボタン57)の何れかが押下されていたと判定した場合(S379:YES)、後述する複合詳細説明処理を実行する(S381)。この複合詳細説明処理を終えた後は、本詳細説明処理を終了する。
また、上述したS383において、おすすめボタン58が押下されたと判定した場合(S383:YES)、後述するおすすめ詳細説明処理を実行する(S385)。このおすすめ詳細説明処理を終えた後は、本詳細説明処理を終了する。
(2−7)複合詳細説明処理
次に、図29のフローチャートに基づき、図28におけるS381にて起動される複合詳細説明処理について説明する。なお、本複合詳細説明処理を終了した際には、図28におけるS381に続くステップに処理を戻す。
この複合詳細説明処理を開始すると、まず、音声+表示ボタン56が押下されたか否かを判定する(S451)。音声+表示ボタン56が押下されたと判定した場合には(S451:YES)、後述する音声・表示による複合詳細説明処理を実行し(S453)、本複合詳細説明処理を終了する。
一方、音声+表示ボタン56が押下されなかったと判定した場合には(S451:NO)、音声+印刷ボタン57が押下されたか否かを判定する(S455)。音声+印刷ボタン57が押下されたと判定した場合には(S455:YES)、後述する音声・印刷による複合詳細説明処理を実行し(S457)、本複合詳細説明処理を終了する。
一方、音声+印刷ボタン57が押下されなかったと判定した場合は(S455:NO)、本複合詳細説明処理を終了する。
(2−8)音声・表示による複合詳細説明処理
次に、図30のフローチャートに基づき、図29におけるS453にて起動される音声・表示による複合詳細説明処理について説明する。なお、本音声・表示による複合詳細説明処理を終了した際には、図29におけるS453に続くステップに処理を戻す。
この音声・表示による複合詳細説明処理を開始すると、まず、受話器の取り上げを検知する(S461)。なお、受話器の取り上げが検知されるまでは、本ステップにとどまる。受話器の取り上げを検知すると(S461)、後述する詳細説明表示プロセスを起動する(S463)。この詳細説明表示プロセスは、本音声・表示による複合詳細説明処理と並列実行する。
続いて、ディスプレイ52に表示されているタイトルが選択された状態であればAudio_Description_dispセクションのAudio_Data項目をサービス定義情報25から読み出して音出力部18に出力させることを開始する(S465)。または、ディスプレイ52に表示されているリンクが選択された状態であればLink_Audiro_Description_dispセクションのAudio_data項目をサービス定義情報25から読み出して音出力部18に出力させることを開始する(S465)。
そして、上記項目の出力を全て終えると(S467)、S463において起動した詳細表示プロセスに対して終了指令を通知し(S469)、本音声・表示による複合詳細説明処理を終了する。
(2−9)詳細説明表示プロセス
次に、図31のフローチャートに基づき、図30のS463において起動される詳細説明表示プロセスについて説明する。
この詳細説明表示プロセスの実行を開始すると、ディスプレイ52に表示されているタイトルが選択された状態であればAudio_Description_dispセクションの最初のSegmentセクションからCaption項目とwait_time項目をサービス定義情報25から読み込む(S471)。または、ディスプレイ52に表示されているリンクが選択された状態であればLink_Audio_Description_dispセクションの最初のSegmentセクションからCaption項目とwait_time項目を、サービス定義情報25から読み込む(S471)。
続いて、読み込んだCaption項目をディスプレイ52に表示させる(S473)。続いて、S471で読み込んだwait_time項目分だけ時間が経過したか否かを判定し(S475)、経過していなければ経過するまでS471で読み込んだCaption項目をディスプレイ52に表示させる(S475:NO,S473)。
一方、S475において、S471で読み込んだwait_time項目分だけ時間が経過した場合(S475:YES)、次のSegmentセクションが存在するか否かを判定する(S477)。次のSegmentセクションが存在する場合は(S477:YES)、次のSegmentセクション内のCaption項目とwait_time項目とをサービス定義情報25から読み込み(S479)、上述したS473に処理を戻す。
一方、S477において、次のSegmentセクションが存在しないと判定した場合は(S477:NO)、上述した音声・表示による複合詳細説明処理からの終了指令(図30のS469参照)を待ち受け(S481)、終了指令受信後、本詳細説明表示プロセスを終了する。
ここで、上述した(2−8)の音声・表示による複合詳細説明処理(図30参照)および(2−9)の詳細説明表示プロセス(図31参照)の実行結果の一例について説明する。
図35に示すサービス定義情報25に基づいて処理が行われるという前提のもと、ディスプレイ52に表示された翻訳コピーのリンクがユーザによって選択された状態でさらにて音声+表示ボタン56が押下されると、まず、図36の上段左側に示した画面がディスプレイ52に3秒間表示される。具体的には「翻訳コピー」と表示される。これは、図35に示すサービス定義情報25の1つ目のSegmentセクションのCaption項目に対応する。また、この表示開始と同時に、図36の上段右側に示した音声が音出力部18から出力される。具体的には「翻訳コピーとは、スキャナから読み込まれた文章を翻訳して印刷するサービスです。」という音声が出力される。この音声は、図35に示したサービス定義情報25のAudio_Data項目をBase64アルゴリズムによってデコードされた結果に基づいて出力されるものである。
また、図36の上段左側に示した画面がディスプレイ52に表示された後、3秒が経過すると、図36の中段左側に示した画面がディスプレイ52に5秒間表示される。具体的には「1.日本語 2.英語 3.フランス語 4.中国語」と表示される。これは、図35に示した2つ目のSegmentセクションのCaption項目に対応する。また、この表示開始と同じ頃、先のAudio_Data項目に基づく音声出力が引き続いており、図36の中段右側に示した音声が音出力部18からちょうど出力される。具体的には「このサービスに対応する言語は、日本語、英語、フランス語、中国語、それぞれ相互翻訳が可能です。」という音声が出力される。
このようにして図35のサービス定義情報25に基づいて、詳細説明の表示と音声出力がなされていく。そして、最後は図36の下段左側に示した画面がディスプレイ52に5秒間表示される。具体的には「利用料金 ¥200/ページ」と表示される。そして、この表示開始と同じ頃、先のAudio_Data項目に基づく音声出力が引き続いており、図36の下段右側に示した音声が音声出力部18から出力される。これらの出力が終わると、ディスプレイ52には本処理の前の画面が再び表示され、音声出力は停止される。(2−10)音声・印刷による複合詳細説明処理
次に、図32のフローチャートに基づき、図29のS457において起動される音声・印刷による複合詳細説明処理について説明する。なお、本音声・印刷による複合詳細説明処理を終了した際には、図29におけるS457に続くステップに処理を戻す。
この音声・印刷による複合詳細説明処理の実行を開始すると、まず、ディスプレイ52に表示されているタイトルが選択された状態であればPrint_Description_audio項目をサービス定義情報25から読み出して記録部14に出力させる(S491)。または、ディスプレイ52に表示されているリンクが選択された状態であればLink_Print_Description_audio項目をサービス定義情報25から読み出して記録部14に出力させる(S491)。
そして、上記項目の出力を全て終えると(S493)、受話器の取り上げを検知する(S495)。なお、受話器の取り上げが検知されるまでは、本ステップにとどまる。受話器の取り上げを検知すると(S495)、ディスプレイ52に表示されているタイトルが選択された状態であればAudio_Description_print項目をサービス定義情報25から読み出して音出力部18に出力させる(S497)。または、ディスプレイ52に表示されているリンクが選択された状態であればLink_Audio_Description_print項目をサービス定義情報25から読み出して音出力部18に出力させる(S497)。
そして、上記項目の出力を全て終えると(S499)、本音声・印刷による複合詳細説明処理を終了する。
ここで、音声・印刷による複合詳細説明処理の実行結果の一例について説明する。
図37に示すサービス定義情報25に基づいて処理が行われるという前提のもと、ディスプレイ52に表示された翻訳コピーのリンクがユーザによって選択された状態でさらに音声+印刷ボタン57が押下されると、図38の左側に示すような、翻訳コピーの動作を説明した印刷物が記録部14から出力される。この印刷物は、図37に示すサービス定義情報25のLink_Print_Description_audio項目をBase64アルゴリズムによってデコードされた結果に基づいて出力されるものである。また、この出力が終了し、ユーザが受話器を取り上げると図38の右側に示すような、翻訳コピーの動作を説明する音声が音出力部18から出力される。これは、図37の示すサービス定義情報25のLink_Audio_Description_print項目をBase64アルゴリズムによってデコードされた結果に基づいて出力されるものである。
(2−11)おすすめ詳細説明処理
次に、図33のフローチャートに基づき、図28のS385において起動されるおすすめ詳細説明処理について説明する。なお、本おすすめ詳細説明処理を終了した際には、図28におけるS385に続くステップに処理を戻す。
このおすすめ詳細説明処理の実行を開始すると、まず、サービス定義情報25からrecommended項目を読み込む(S561)。そして、そのrecommended項目が何であるかによって処理を分岐する(S563,S571,S579,S587,S591)。具体的には、まず”Display”であるか否かを判定する(S563)。recommended項目が”Display”でない場合は(S563:NO)、recommended項目が”Audio”であるか否かを判定する(S571)。recommended項目が”Audio”でない場合は(S571:NO)、recommended項目が”Print”であるか否かを判定する(S579)。recommended項目が”Print”でない場合は(S579:NO)、recommended項目が”Audio+Display”であるか否かを判定する(S587)。Rcommanded項目が”Audio+Display”でない場合は(S587:NO)、recommended項目が”Audio+Print”であるか否かを判定する(S591)。そして、reccommanded項目が”Audio+Print”でない場合は(S591:NO)、)、本おすすめ詳細説明処理を終了する。
一方、上述したS563において、recommended項目は”Display”であると判定した場合は(S563:YES)、現在、ディスプレイ52に表示されているタイトルが選択された状態であるか否かを判定し(S565)。タイトルが選択されている場合には(S565:YES)、サービス定義情報25のDescription項目を表示させた詳細説明表示にディスプレイ52を切り替え(S567)、一方、タイトルではなくリンクが選択されている場合には(S565:NO)、サービス定義情報25のLink_Description項目を表示させた詳細説明表示にディスプレイ52を切り替える(S569)。そして、本おすすめ詳細説明処理を終了する。
また、上述したS571において、recommended項目は”Audio”であると判定した場合は(S571:YES)、現在、ディスプレイ52に表示されているタイトルが選択された状態であるか否かを判定し(S573)、タイトルが選択されている場合には(S573:YES)、Audio_Description項目をサービス定義情報25から読み込んで音出力部18に出力させ(S575)、一方、タイトルではなくリンクが選択されている場合は(S575:NO)、Link_Audio_Description項目をサービス定義情報25から読み込んで音出力部18に出力させる(S577)。そして、本おすすめ詳細説明処理を終了する。
また、上述したS579において、recommended項目は”Print”であると判定した場合は(S579:YES)、現在、ディスプレイ52に表示されているタイトルが選択された状態であるか否かを判定し(S581)、タイトルが選択されている場合には(S581:YES)、Print_Description項目をサービス定義情報25から読み込んで記録部14に出力させ(S583)、一方、タイトルではなくリンクが選択されている場合は(S581:NO)、Link_Print_Description項目をサービス定義情報25から読み込んで記録部14に出力させる(S585)。そして、本おすすめ詳細説明処理を終了する。
また、上述したS587において、recommended項目は”Audio+Display”であると判定した場合(S587:YES)、または上述したS591において、recommended項目は”Audio+Print”であると判定した場合は(S591:YES)、上述した複合詳細説明処理を実行する(S589)。そして、複合詳細説明処理の実行を終えると本おすすめ詳細説明処理を終了する。
ここで、おすすめ詳細説明処理の実行結果の一例を説明する。
図39に示すサービス定義情報25に基づいて処理が行われるという前提のもと、ディスプレイ52に表示された翻訳コピーのリンクがユーザによって選択された状態でさらにおすすめボタン58が押下されると、図39に示すサービス定義情報25の該当するLinkセクションのrecomended項目、つまり”Print”という文字列が読み込まれる。そして、recomended項目が”Print”であった場合の処理、つまり、Link_Print_Description項目がサービス定義情報25から読み込まれ、印刷物として記録部14に出力される(例えば図34(c)や図38の左側参照)。なお、この印刷物は、Link_Print_Description項目がBase64アルゴリズムによってデコードされた結果に基づいて出力される。
(3)機能サーバ30による処理
次に、機能サーバ30の制御部31により実行される各種処理について説明する。
(3−1)機能サーバ処理
次に、HTTPリクエストが受信される毎に行われる機能サーバ処理の処理手順を図21,図22に基づいて説明する。
この機能サーバ処理が起動されると、まず、受信したHTTPリクエストがサービス起動指令であるか否かをチェックする(S702)。この「サービス起動指令」は、図14におけるS202にて複合機10により送信されるものである。
このS702で、サービス起動指令であると判定された場合には(S702:YES)、セッションIDを生成し、このセッションIDを示す送信データを生成すると共に、サービスの実行のためのリソースを確保して該当するプロセスを起動した後(S708)、次の処理(S734)へ移行する。ここで起動するプロセスとは、後述するセッション処理(図23)のことである。
また、S702で、サービス起動指令でないと判定された場合には(S702:NO)、HTTPリクエストがサービス終了指令であるか否かをチェックする(S710)。
このS710で、サービス終了指令であると判定された場合には(S710:YES)、セッションIDおよびS708にて確保されたリソースを解放し、サービス終了を表す送信データを作成した後(S712)、次の処理(図22のS734)へ移行する。一方、サービス終了指令ではないと判定された場合には(S710:NO)、サービス(セッション又はジョブ)に関する情報が含まれているか否か,具体的には複合機10がセッション処理またはジョブ(UIジョブ,入力ジョブ,出力ジョブ)において送信してきたHTTPリクエストであるか否かをチェックする(S714)。
このS714で、サービスに関する情報が含まれていると判定された場合には(S714:YES)、そのHTTPリクエストを送信してきたプロセス(セッション処理,UIジョブ,入力ジョブ,出力ジョブのいずれか)を特定する(S716)。
このS716によりプロセスを特定できなければ(S718:YES)、エラーを通知するための情報(エラー通知情報)を生成した後(S720)、次の処理(S734)へ移行する。
一方、S716によりプロセスを特定できれば(S718:NO)、その特定したプロセスにHTTPリクエストにて送信されてきた情報を渡す(S722)。
こうして、S722を終えた後、または、S714にてサービスに関する情報が含まれていないと判定された場合(S714:NO)、セッションIDまたはジョブIDに対応する情報の記憶領域を特定する(S724)。
このS724により記憶領域を特定できなければ(S726:YES)、S720へ移行してエラー通知情報を生成して次の処理(S734)へ移行する。一方、記憶領域を特定できれば(S726:NO)、この記憶領域に複合機10へ返信すべき情報が存在しているか否かをチェックする(S728)。
そして、このS728で、返信すべき情報が存在していないと判定されたら(S728:NO)、「指令なし」の情報を生成した後(S730)、次の処理(S734)へ移行する。一方、送信すべき情報が存在していると判定されたら(S728:YES)、その返信情報に基づいて複合機制御指令を生成した後(S732)、次の処理(S734)へ移行する。
こうして、S708,S712,S720.S730,S732にて生成した情報をHTTPレスポンスとして複合機10へ返信する(S734)。ここで返信されるHTTPレスポンスのうち、S708にて生成された送信データは、図14におけるS204にて複合機10が受信するものである。また、S712にて生成されたサービス終了を表す送信データは、図14におけるS208にて複合機10が受信し、S222にてYESで判定されるものである。また、S720にて生成されたエラー通知情報は、図14におけるS208にて複合機10が受信し、S222にてNOと判定され、S224の処理が実施されるものである。また、S730にて生成された「指令なし」の情報は、図14におけるS208にて複合機10が受信し、S220にてYESと判定されるものである。そして、S732にて生成された複合機制御指令は、後述する各ジョブにおいて異なる内容のものとなり、それぞれ複合機10側で対応するジョブにおいて受信されるものである。
そして、サービス制御情報処理(S714〜S732)が実施されたのであれば(S736:YES)、セッションID又はジョブIDに対応するメモリアドレスに「送信済み」をセットした後(S738)、本機能サーバ処理を終了する。一方、サービス制御情報処理が実施されていなければ(S736:NO)、メモリアドレスのセットを行うことなく、本機能サーバ処理を終了する。
(3−2)セッション処理
続いて、機能サーバ処理と並行して実行されるセッション処理の処理手順を図23,図24に基づいて説明する。なお、本実施形態においては、翻訳コピーのサービスについてのセッション処理を例に説明する。
このセッション処理が開始されると、まず、初期化処理を行う(S802)。
次に、サービス側UIジョブを起動する(S804)。このUIジョブは、本セッション処理と並行して実行される処理であって、詳細な処理手順は後述する。
次に、UIジョブの起動指令を複合機指令として出力する(S806)。ここでは、ジョブIDおよび通信先アドレスと共にUIジョブの起動指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に起動指令として送信されることとなる。この起動指令は、図14におけるS208にて複合機10側で受信され、これに基づいて、複合機10側においてUIジョブが起動されることとなる(図15のS254)。
次に、複合機10側からのパラメータの入力が完了したか否かをチェックする(S808)。上述したS804にて起動したUIジョブにおいては、後述のように、複合機10側からパラメータを取得し、その旨を本セッション処理に対して通知してくるように構成されている。そのため、このS808では、このUIジョブからのパラメータ取得の通知がなされた場合に、複合機10側からのパラメータの入力が完了したと判定する。
このS808で、パラメータの入力が完了していないと判定された場合には(S808:NO)、UIジョブが停止したか否かをチェックする(S810)。上述したS804にて起動したUIジョブにおいては、後述のように、複合機10側からのパラメータの取得が正常に行われなかった場合に、UIジョブ自体を停止(終了)すると共に、その旨を本セッション処理に対して通知してくるように構成されている。そのため、このS810では、このUIジョブからの停止の通知がなされた場合に、UIジョブが停止したと判定する。
このS810で、UIジョブが停止していないと判定された場合(S810:NO)、S808へ戻る一方、UIジョブが停止していると判定された場合(S810:YES)、後述するS848へ移行する。
また、S808で、パラメータの入力が完了していると判定された場合には(S808:YES)、サービス側入力ジョブの一種であるスキャンジョブを起動する(S812)。このスキャンジョブは、本セッション処理と並行して実行される処理であって、詳細な処理手順は後述する。
次に、スキャン(入力)ジョブの起動指令を複合機指令として出力する(S814)。ここでは、ジョブIDおよび通信先アドレスと共にスキャンジョブの起動指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に起動指令として送信されることとなる。この起動指令は、図14におけるS208にて複合機10側で受信され、これに基づいて、複合機10側において入力ジョブが起動されることとなる。
次に、複合機10側でスキャナ(読取部13)の準備が完了したか否かをチェックする(S816)。上述したS812にて起動したスキャンジョブにおいては、後述のように、複合機10側においてスキャナの準備が完了したことの通知を受け、その旨を本セッション処理に通知してくるように構成されている。そのため、このS816では、このスキャンジョブからのスキャナの準備が完了したことの通知がなされた場合に、複合機10側でスキャナの準備が完了したと判定する。
このS816で、複合機10側でスキャナの準備が完了していないと判定された場合には(S816:NO)、スキャンジョブが停止したか否かをチェックする(S818)。上述したS812にて起動したスキャンジョブにおいては、後述のように、複合機10側からスキャナの準備が完了したことの通知を正常に受けられなかった場合に、スキャンジョブ自体を停止(終了)すると共に、その旨を本セッション処理に対して通知してくるように構成されている。そのため、このS818では、このスキャンジョブからの停止の通知がなされた場合に、スキャンジョブが停止したと判定する。
このS818で、スキャンジョブが停止していないと判定された場合(S818:NO)、S816へ戻る一方、スキャンジョブが停止していると判定された場合(S818:YES)、後述するS844へ移行する。
また、S816で、スキャナの準備が完了していると判定された場合には(S816:YES)、サービス側出力ジョブの一種である印刷ジョブを起動する(S820)。この印刷ジョブは、本セッション処理と並行して実行される処理であって、詳細な処理手順は後述する。
次に、印刷(出力)ジョブの起動指令を複合機指令として出力する(S822)。ここでは、ジョブIDおよび通信先アドレスと共に印刷ジョブの起動指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に起動指令として送信されることとなる。この起動指令は、図14におけるS208にて複合機10側で受信され、これに基づいて、複合機10側において出力ジョブが起動されることとなる(図15のS266)。
次に、複合機10側で印刷準備(記録部14)の準備が完了したか否かをチェックする(S824)。上述したS820にて起動した印刷ジョブにおいては、後述のように、複合機10側において印刷準備が完了したことの通知を受け、その旨を本セッション処理に通知してくるように構成されている。そのため、このS824では、この印刷ジョブからの印刷準備が完了したことの通知がなされた場合に、複合機10側で印刷準備が完了したと判定する。
このS824で、複合機10側で印刷準備が完了していないと判定された場合には(S824:NO)、印刷ジョブが停止したか否かをチェックする(S826)。上述したS820にて起動した印刷ジョブにおいては、後述のように、複合機10側から印刷準備が完了したことの通知を正常に受けられなかった場合に、印刷ジョブ自体を停止(終了)すると共に、その旨を本セッション処理に対して通知してくるように構成されている。そのため、このS826では、この印刷ジョブからの停止の通知がなされた場合に、印刷ジョブが停止したと判定する。
このS826で、印刷ジョブが停止していないと判定された場合(S826:NO)、S824へ戻る一方、印刷ジョブが停止していると判定された場合(S826:YES)、後述するS840へ移行する。
また、S824で、印刷準備が完了していると判定された場合には(S824:YES)、複合機10側から取得された入力データを読み出す(S828)。上述したS812にて起動したスキャンジョブにおいては、後述のように、複合機10から、この複合機10の読取部13にて読み取られた画像データを取得するように構成されているため、このS828では、こうして取得されて所定の記憶領域に格納されたデータ(入力データ)のうち、1頁分に相当するデータ領域を読み出す。
次に、S828にて読み出された入力データに対してOCR,翻訳,印刷レイアウトなどの処理を施してなる画像データを生成する(S830)。ここでは、まず、S828にて読み出された入力データに対してOCR処理を施すことにより、この入力データで表される画像に含まれるテキスト部分を認識する。次に、このテキスト部分に対して翻訳処理を行うことによりテキスト部分を所定の言語で表現されたテキストに変換する。なお、ここでの翻訳処理は、上述したS804にて起動したUIジョブにおいて取得されるパラメータに基づいて行われるものであり、このパラメータで示される言語への変換が行われることとなる。そして、こうして認識されたテキスト部分について、所定の印刷レイアウトを設定してなる印刷用の画像データを生成する。
次に、S830にて生成された画像データを出力する(S832)。ここでは、ジョブIDおよび通信先アドレスと共にS830にて生成された画像データを、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に出力データとして送信されることとなる。この出力データは、図20におけるS520にて複合機10側で受信され、これに基づいて出力データで示される画像の記録部14による記録が行われる。
次に、S828にて全ての入力データ(全ページ分のデータ領域)についての読み出しが完了したか否かをチェックし(S834)、完了していなければ(S834:NO)、S828へ戻る一方、完了していれば(S834:YES)、S832による出力データの出力(記憶領域への書き込み)が終了したか否かをチェックする(S836)。
このS836で、出力データの出力が完了していなければ(S836:NO)、S828へ戻る一方、出力データの出力が完了していれば(S836:YES)、印刷(出力)ジョブの終了指令を複合機指令として出力する(S838)。ここでは、ジョブIDと共に印刷ジョブの終了指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に終了指令として送信されることとなる。この終了指令は、図14におけるS208にて複合機10側で受信され、これに基づいて、複合機10側において出力ジョブが停止(終了)されることとなる(図14のS218)。
こうして、印刷ジョブの終了指令を出力した後、または、上述したS826で印刷ジョブが停止されたと判定された場合(S826:YES)、S820で起動させたサービス側印刷ジョブを終了させる(S840)。
次に、スキャン(入力)ジョブの終了指令を複合機指令として出力する(S842)。ここでは、ジョブIDと共にスキャンジョブの終了指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に終了指令として送信されることとなる。この終了指令は、図14におけるS208にて複合機10側で受信され、これに基づいて、複合機10側において入力ジョブが停止(終了)されることとなる(図14のS218)。
こうして、スキャンジョブの終了指令を出力した後、または、上述したS818でスキャンジョブが停止されたと判定された場合(S818:YES)、S812で起動させたサービス側スキャンジョブを終了させる(S844)。
次に、UIジョブの終了指令を複合機指令として出力する(S846)。ここでは、ジョブIDと共にスキャンジョブの終了指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に終了指令として送信されることとなる。この終了指令は、図14におけるS208にて複合機10側で受信され、これに基づいて、複合機10側においてUIジョブが停止(終了)されることとなる(図14のS218)。
そして、各ジョブにおいて確保されていたリソースを解放するなどの終了処理を行った後(S850)、サービスの終了指令を複合機指令として出力した後(S852)、本セッション処理を終了する。このS848では、サービスの終了指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に終了指令として送信されることとなる。この終了指令は、図14におけるS208にて複合機10側で受信され、これに基づいて、複合機10側においてセッション処理が終了されることとなる(図14のS222)。
(3−3)UIジョブ
続いて、図23におけるS804にて起動されるUIジョブの処理手順を図25に基づいて説明する。
このUIジョブが開始されると、まず、複合機10から複合機ジョブ指令問合せを受信するまで待機し、この複合機ジョブ指令問合せを受信したら(S902)、サービスの実行に必要なパラメータの設定を要求するためのパラメータ要求指令を複合機指令として複合機10へ返信する(S904)。このS902において受信する「複合機ジョブ指令問合せ」とは、図16におけるS321にて複合機10から送信されるHTTPリクエストである。また、S904にて送信する複合機指令とは、図16のS323にて複合機10に受信されるHTTPレスポンスであり、サービスI/F情報36(例えば、翻訳コピーのサービスに対応するもの)が付加されたものである。この複合機指令を受信した複合機10は、パラメータを図16のS321にてHTTPリクエストを送信してくる。
次に、エラーカウントを初期化する(S906)。ここでは、後述のようにパラメータを正常に受信できない自体が連続して発生した回数をカウントするためのカウンタをリセット(「0」をセット)する。
次に、S904にて送信した複合機指令を受信した複合機10からパラメータが送信されてくるまで待機し、パラメータを受信したら(S908)、このパラメータを正常に受信できているか否かをチェックする(S910)。
このS910にてパラメータが正常に受信できていないと判定された場合には(S910:NO)、このような正常に受信できない状況が所定の回数(本実施形態においては2回)連続して発生しているか否かをエラーカウントによるカウント値に基づいてチェックし(S912)、所定の回数連続して発生していなければ(S912:NO)、パラメータを正常に受信できなかった旨(サーバ受取NG;異常受取)を通知するためのサーバ受取状況を出力し(S914)、エラーカウントをカウントアップした後(S926)、S908へ戻る。このS914では、サーバ受取状況を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側にサーバ受取状況として送信されることとなる。このサーバ受取状況は、図16におけるS323にて複合機10側で受信され、これに基づいて、複合機10側においてパラメータの再送信が行われることとなる(図16のS341,S343等)。
また、S912で、正常に受信できない状況が所定の回数連続して発生していたら(S912:YES)、セッション処理に対してUIジョブの停止(終了)を通知した後(S918)、本UIジョブを終了する。このS918による通知は、図23におけるS810にてセッション処理が受けるものである。
また、上述したS910で、パラメータが正常に受信できていると判定された場合には(S910:YES)、パラメータを正常に受信できた旨(サーバ受取OK;正常受取)を通知するためのサーバ受取状況を出力する(S920)。ここでは、サーバ受取状況を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側にサーバ受取状況として送信されることとなる。このサーバ受取状況は、図16におけるS323にて複合機10側で受信され、これに基づいて、複合機10側においてパラメータの再送信が必要ないことが確認される(図16のS341,S343)。
次に、セッション処理に対してパラメータの入力が完了(パラメータを取得)した旨を通知する(S922)。ここでの通知は、図23におけるS808にてセッション処理が受けるものである。
そして、このS922を終えた以降、複合機10から複合機ジョブ指令問合せを受信す
るまで待機し、この複合機ジョブ指令問合せを受信したら(S924)、サービス状態情報を出力する(S926)、といった処理を、他の処理(例えば、図24におけるS844)により本UIジョブが停止(終了)されるまで繰り返し行う。このS926では、サービス状態情報を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側にサービス状態情報として送信されることとなる。
(3−4)スキャンジョブ
続いて、図23におけるS812にて起動されるスキャンジョブの処理手順を図26に基づいて説明する。
このスキャンジョブが開始されると、まず、複合機10から複合機状態情報を受信するまで待機し、この複合機状態情報を受信したら(S1002)、図25におけるS906と同様にエラーカウントを初期化した後(S1004)、複合機パラメータを出力する(S1006)。このS1002にて受信される複合機状態情報は、図19におけるS408にて複合機10から送信されてくるHTTPリクエストであり、これに応答する形でS1006にて複合機パラメータをHTTPレスポンスとして返信する。この複合機パラメータは、図25におけるS908にて受信されたものであって、S1002にて受信された複合機状態情報の送信元である複合機10に対応するパラメータである。
この複合機パラメータを受信した複合機10からは、この複合機パラメータを正常に受信できたか否かを示す複合機受取状況が送信されてくるため、この複合機受取状況に基づいて複合機10側で正常に受け取ることができたか否かをチェックする(S1008)。具体的には、複合機受取状況が、異常受取(NG)である旨の内容であれば正常に受け取ることができていないと判定し、正常受取(OK)である旨の内容であれば正常に受け取ることができていると判定する。
このS1008で、複合機10側で複合機パラメータを正常に受け取ることができていないと判定された場合(S1008:NO)、このような正常に受信できない状況が所定の回数(本実施形態においては2回)連続して発生しているか否かをエラーカウントによるカウント値に基づいてチェックし(S1010)、所定の回数連続して発生していなければ(S1010:NO)、エラーカウントをカウントアップした後(S1012)、S1006へ戻る。
また、S1010で、正常に受信できない状況が所定の回数連続して発生していたら(S1010:YES)、セッション処理に対してスキャンジョブの停止(終了)を通知した後(S1014)、異常終了を通知するための通知指令をサービス状態情報として出力する(S1016)。このS1014による通知は、図23におけるS818にてセッション処理が受けるものである。また、S1016では、通知指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に通知指令として送信されることとなる。この通知指令は、図19におけるS410にて複合機10側で受信される。
また、上述のS1008で、複合機10側で複合機パラメータを正常に受け取ることができていると判定された場合(S1008:YES)、複合機パラメータの受信をもって複合機10側でスキャナ(読取部13)の準備が完了しているものとし、セッション処理に対してスキャナの準備完了を通知するS1018)。この通知は、図23におけるS816にてセッション処理が受けるものである。
次に、機能サーバ30側で処理すべきデータの送信を要求するための入力データ要求を出力する。ここでは、入力データ要求を、返信情報を格納する記憶領域に書き込む処理を行う(S1020)。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に入力データ要求として送信されることとなる。この入力データ要求は、図19におけるS420にて複合機10側で受信され、これにより、ユーザの操作を受けて入力データが送信されてくる。
こうして、入力データ要求を受信した複合機10から入力データを受信したら(S1022)、この入力データの受信が正常に終了していれば(S1024:YES)、正常終了を通知するための通知指令をサービス状態情報として出力した後(S1026)、本スキャンジョブを終了する。このS1026では、通知指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に通知指令として送信されることとなる。この通知指令は、図19におけるS432にて複合機10側で受信される。
一方、入力データの受信が正常に終了しなければ(S1024:NO)、S1016へ移行し、異常終了を通知するための通知指令をサービス状態情報として出力した後、本スキャンジョブを終了する。この通知指令は、図19におけるS432にて複合機10側で受信される。
(3−5)印刷ジョブ
続いて、図23におけるS820にて起動される印刷ジョブの処理手順を図27に基づいて説明する。
この印刷ジョブが開始されると、まず、複合機10から複合機状態情報を受信するまで待機し、この複合機状態情報を受信したら(S1102)、図25におけるS906と同様にエラーカウントを初期化した後(S1104)、複合機パラメータを出力する(S1106)。このS1102にて受信される複合機状態情報は、図20におけるS508にて複合機10から送信されてくるHTTPリクエストであり、これに応答する形でS1106にて複合機パラメータをHTTPレスポンスとして返信する。この複合機パラメータは、図25におけるS908にて受信されたものであって、S1102にて受信された複合機状態情報の送信元である複合機10に対応するパラメータである。
この複合機パラメータを受信した複合機10からは、この複合機パラメータを正常に受信できたか否かを示す複合機受取状況が送信されてくるため、図26におけるS1008と同様、この複合機受取状況に基づいて複合機10側で正常に受け取ることができたか否かをチェックする(S1108)。
このS1108で、複合機10側で複合機パラメータを正常に受け取ることができていないと判定された場合(S1108:NO)、このような正常に受信できない状況が所定の回数(本実施形態においては2回)連続して発生しているか否かをエラーカウントによるカウント値に基づいてチェックし(S1110)、所定の回数連続して発生していなければ(S1110:NO)、エラーカウントをカウントアップした後(S1112)、S1106へ戻る。
また、S1110で、正常に受信できない状況が所定の回数連続して発生していたら(S1110:YES)、セッション処理に対して印刷ジョブの停止(終了)を通知した後(S1114)、異常終了を通知するための通知指令をサービス状態情報として出力する(S1116)。このS1114による通知は、図23におけるS826にてセッション処理が受けるものである。また、S1116では、通知指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に通知指令として送信されることとなる。この通知指令は、図20におけるS510にて複合機10側で受信される。
また、上述のS1108で、複合機10側で複合機パラメータを正常に受け取ることができていると判定された場合(S1108:YES)、複合機パラメータの受信をもって複合機10側で印刷(記録部14)の準備が完了しているものとし、セッション処理に対して印刷の準備完了を通知する。この通知は、図23におけるS824にてセッション処理が受けるものである。セッション処理では、この通知を受けて、図24におけるS828〜S836を行い、印刷データの送信を行うこととなる。
次に、セッション処理にて生成された印刷データ(図24におけるS832)を複合機10が処理可能な印刷データに変換して送信情報を格納する記憶領域に書き込む処理を行う(S1120)。これに基づいて図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に通知指令として送信される。この通知指令は図20におけるS520にて複合機10側で受信される。
こうして、送信される印刷データを受信した複合機10は、図20におけるS532にて複合機状態情報をHTTPリクエストにより送信してくる。
こうして、印刷データを受信した複合機10から複合機状態情報を受信したら(S1122)、この複合機状態情報の受信が正常に終了していれば(S1124:YES)、正常終了を通知するための通知指令をサービス状態情報として出力した後(S1126)、本印刷ジョブを終了する。このS1126では、通知指令を、返信情報を格納する記憶領域に書き込む処理を行う。これに基づいて、図21におけるS732にて複合機制御指令が生成され、図22におけるS734にて複合機10側に通知指令として送信されることとなる。この通知指令は、図20におけるS534にて複合機10側で受信される。
一方、複合機状態情報の受信が正常に終了しなければ(S1124:NO)、S1116へ移行し、異常終了を通知するための通知指令をサービス状態情報として出力した後、本印刷ジョブを終了する。この通知指令は、図20におけるS534にて複合機10側で受信される。
[効果]
このように構成された実施形態のサービス提供システムにおいて、複合機10は、機能サーバ30によるサービスの提供を受けて機能を実現することとなるが、これに先立ち、ユーザが利用するサービスを決定するためのメニューに当たるサービス定義情報25がディレクトリサーバ20から複合機10へダウンロードされる。このとき、複合機10の機種情報がディレクトリサーバ20に送信され(図9のS113参照)、ディレクトリサーバ20は受け取った機種情報に基づいてその機種の機能や能力に適したサービス定義情報25が送信される(図7のS75,S77参照)。このため、複合機10は自身の機能や能力を活かしたメニュー等を出力できる。例えば、3行の表示しかできない液晶ディスプレイを備えた複合機10であれば3行表示用のメニューが出力され、10行表示が可能な液晶ディスプレイを備えた複合機10であれば10行表示用のメニューが出力される。
また、サービス定義情報25は、表示タイトルであるTitle項目やリンクの表示タイトルであるLink_Title項目だけでなく、表示タイトルの詳細説明情報であるDescription項目や、リンクの表示タイトルの詳細説明情報であるLink_Description項目も、一ファイル内に有するようになっている(図3,図4参照)。そして、複合機10は、これらのうち、Title項目やLink_Title項目は、ユーザが当該サービスを利用するために選択する際には必ずディスプレイ52に表示されるが、Description項目やLink_Description項目は、ユーザによって詳細説明ボタン(表示ボタン53,印刷ボタン54,音声ボタン55,音声+表示ボタン56,音声+印刷ボタン57およびおすすめボタン58)の何れかが押下された際にはじめて出力される(図9のS123,S124参照)。
このため、ユーザがメニューの内容をよく理解している場合にはそのユーザにとって不必要な情報は出力されず、ユーザは軽快に操作を行うことができる。一方、ユーザがメニュー項目の詳細説明情報を知りたい場合には詳細説明ボタンを押下することにより詳細説明情報が出力されるようになっている。しかも、複合機10は一度の通信でTitle項目やLink_Title項目だけでなく、Description項目やLink_Description項目も取得するようになっているため、通信を行うことなく詳細説明情報を出力することができる。つまり、複合機10はレスポンスよく詳細説明情報を出力することができる。
また、ユーザにより、音声+表示ボタン56,音声+印刷ボタン57が押下された場合には詳細説明情報の出力が、音声出力と表示出力、または音声出力と印刷出力によってなされる(図29〜図32参照)。しかもこれらの各出力は、予め定められたタイミングによってなされる。
したがって、詳細説明情報を多面的にユーザに提供することができる上、例えばまず概要を理解させ、その後に具体的な内容を理解させたりといったことや、具体例を印刷媒体により視覚的に提供しておき、その説明を音声によって行うといったことが可能である。つまり、利用者がサービスの内容を非常に理解しやすい。
また、ユーザがどの出力方法によって詳細説明情報を得る場合が一番よいかわからない場合には、おすすめボタン58を押下することにより、サービス定義情報25の設定者の考える望ましい出力方法によって詳細説明情報が出力される。このため、利用者の使い勝手もよい。
[変形例]
以上、本発明の実施の形態について説明したが、本発明は、上記実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
例えば、上記実施形態においては、本発明における端末装置として、複合機10に適用した構成を例示したが、機能サーバ30により提供されるサービスを受けて機能を実現できる端末装置であれば、複合機以外の装置として、例えば、プリンタ装置,スキャナ装置,ファクシミリ装置などに適用することも可能である。
また、上記実施形態のサービス提供システムでは、複合機10、ディレクトリサーバ20および機能サーバ30それぞれ1台ずつ備えた構成を例示しているが、このような構成はあくまでも説明を容易にするための構成例にすぎず、サービス提供システムは、これ以外にも様々な構成をとることが可能である。例えば、本発明が適用されたサービス提供システムにおいて、複合機10は複数設けられていてもよい。具体的には、複数の複合機10が、共通のディレクトリサーバ20からのサービス定義情報25を受信し、共通の機能サーバ30にサービスを要求するようにすることができる。
また、ディレクトリサーバ20またはディレクトリサーバ20の一部構成要素,および,機能サーバ30または機能サーバ30の一部構成要素が、単一の装置として構成されていてもよい。
また、ディレクトリサーバ20(またはディレクトリサーバ20の一部構成要素)や機能サーバ30(または機能サーバ30の一部構成要素)が、本サービス提供システムを構成する複合機10に備えられた構成としてもよい。
また、上記実施形態のサービス提供システムでは、サービス定義情報25のみが、詳細説明情報を含むようになっていたが、サービスI/F情報36もサービス定義情報25と同様に詳細説明情報も含むようになっていてもよい。このようになっていれば、サービスの具体的なパラメータを入力する際のユーザの疑問等を上述したような効果を奏しながら解決することが可能となる。
[本発明との対応関係]
以上説明した実施形態において、複合機10が本発明における端末装置であり、ディレクトリサーバ20が本発明におけるサーバである。
また、通信部22が本発明におけるサーバ通信手段であり、制御部21が本発明におけるサービス定義情報送信制御手段,問合手段であり、サービス定義情報記憶部24が本発明のおけるサービス定義情報記憶手段に相当する。
また、制御部11が本発明における出力制御手段,機種返答手段であり、通信部15が本発明おける端末通信手段であり、ディスプレイ52が本発明における表示手段であり、記録部14が本発明における印刷手段であり、音出力部18が本発明における音声出力手段であり、操作部12が本発明における受付手段である。
また、サービス定義情報25におけるTitle項目およびLink_Title項目が本発明における主情報であり、Description項目,Print_Description項目,Audio_Description項目,Audio_Description_disp項目,Print_Description_audio項目,Audio_Description_print項目,Link_Description項目、Link_Print_Descritpion項目,Link_Audio_Description項目,Link_Audio_Description_disp項目,Link_Print_Description_audio項目,Link_Audio_Description_print項目が本発明における副情報である。また、サービス定義情報25におけるrecommended項目が本発明における出力手段特定情報である。
10…複合機、11…制御部、12…操作部、13…読取部、14…記録部、15…通信部、16…記憶部、17…音入力部、18…音出力部、20…ディレクトリサーバ、21…制御部、22…通信部、23…記憶部、24…サービス定義情報記憶部、25…サービス定義情報、30…機能サーバ、31…制御部、32…通信部、33…記憶部、34…サービスI/F情報記憶部、35…サービスソフト記憶部、36…サービスI/F情報、37…サービスソフトウェア、41…コピーボタン、42…スキャナボタン、43…FAXボタン、44…サービスボタン、45…設定ボタン、46…方向ボタン、48…方向ボタン、49…右ボタン、50…OKボタン、51…キャンセルボタン、52…ディスプレイ、53…表示ボタン、54…印刷ボタン、55…音声ボタン、56…音声+表示ボタン、57…音声+印刷ボタン、58…おすすめボタン。