(57)【要約】【課題】  クライアントがサーバからのコマンドを受信する待ち時間を短くする。【解決手段】  本画像処理システムでは、サーバとしての機能サーバ３０は、クライアントとしての複合機１０から複合機制御指令の問い合わせ（コマンド要求）を受信した時点で、複合機１０へ送信すべきコマンド（複合機制御指令）が存在しない場合には、受信したリクエストに対するレスポンスを直ちには送信せず、所定の最長滞在時間が経過するまでは待機する。そして、最長滞在時間が経過するまでに複合機制御指令が発生した場合にはレスポンスとして直ちに送信し、最長滞在時間が経過しても複合機制御指令が発生しない場合にはコマンドなしのレスポンスを送信する。【選択図】  図１
2006134108.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信可能に構成されたクライアントとサーバとを備え、前記クライアントからのコマンド要求に対する応答として、前記サーバが前記クライアントへコマンドを送るように構成された通信システムであって、
前記サーバは、
前記クライアントから受信したコマンド要求に対する応答として、前記クライアントへ送信すべきコマンドが存在する場合にはそのコマンドを含む返信データを前記クライアントへ送信し、前記クライアントへ送信すべきコマンドが存在しない場合にはコマンドなしの返信データを前記クライアントへ送信するデータ返信手段を備えており、
前記データ返信手段は、前記クライアントへ送信すべきコマンドの存在しない状態が前記コマンド要求の受信から所定の待機時間継続した時点で、前記コマンドなしの返信データを送信すること
を特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
前記サーバが備える前記データ返信手段は、前記クライアントへ送信すべきコマンドが存在する場合には、前記クライアントから受信したコマンド要求に対する応答として、そのコマンドを含む返信データを前記クライアントへ直ちに送信すること
を特徴とする通信システム。
【請求項３】
請求項１又は請求項２に記載の通信システムにおいて、
前記クライアントは、前記サーバへ送信したコマンド要求に対する応答として前記コマンドなしの返信データを受信した場合に、前記サーバへ再度コマンド要求を送信すること
を特徴とする通信システム。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載の通信システムにおいて、
前記待機時間は、前記ネットワークにおいて前記クライアントによる要求に対する前記サーバからの応答がされない場合に通信エラーであると判定される所定のタイムアウト時間に基づき設定されていること
を特徴とする通信システム。
【請求項５】
請求項１ないし請求項３のいずれか１項に記載の通信システムにおいて、
前記クライアントによる要求に対する前記サーバからの応答が所定のタイムアウト時間を経過してもされない場合に通信エラーであると判定する通信監視手段を備え、
前記待機時間は、前記タイムアウト時間に基づき設定されていること
を特徴とする通信システム。
【請求項６】
請求項４又は請求項５に記載の通信システムにおいて、
前記待機時間は、前記タイムアウト時間よりも短い時間であること
を特徴とする通信システム。
【請求項７】
請求項４ないし請求項６のいずれか１項に記載の通信システムにおいて、
前記待機時間の値を設定する待機時間設定手段を備えたこと
を特徴とする通信システム。
【請求項８】
請求項７に記載の通信システムにおいて、
前記待機時間設定手段は、前記クライアントに設けられており、前記サーバが備える前記データ返信手段は、前記クライアントが備える前記待機時間設定手段により設定された値を前記待機時間の値として用いること
を特徴とする通信システム。
【請求項９】
請求項８に記載の通信システムにおいて、
前記待機時間設定手段は、前記サーバへ要求を送信してから前記タイムアウト時間を経過することによる通信エラーが検出されるまでの時間に基づき、前記待機時間の値を自動的に設定すること
を特徴とする通信システム。
【請求項１０】
請求項８に記載の通信システムにおいて、
前記待機時間設定手段は、外部からの入力操作により入力された値に基づき前記待機時間の値を設定すること
を特徴とする通信システム。
【請求項１１】
請求項１ないし請求項１０のいずれか１項に記載の通信システムにおいて、
前記ネットワークにおける通信の混雑状態を検出する通信状態検出手段を備え、
前記サーバが備える前記データ返信手段は、前記通信状態検出手段により検出された通信の混雑状態に基づき、前記待機時間の調整を行うこと
を特徴とする通信システム。
【請求項１２】
請求項１１に記載の通信システムにおいて、
前記通信状態検出手段は、前記クライアントに設けられていること
を特徴とする通信システム。
【請求項１３】
請求項１１に記載の通信システムにおいて、
前記通信状態検出手段は、前記サーバに設けられていること
を特徴とする通信システム。
【請求項１４】
請求項１ないし請求項１３のいずれか１項に記載の通信システムを構成する前記クライアントとして機能することを特徴とする情報処理装置。
【請求項１５】
請求項１ないし請求項１３のいずれか１項に記載の通信システムを構成するサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して通信可能に構成された通信システム並びにその通信システムを構成する情報処理装置及びサーバに関するものである。
【背景技術】
【０００２】
従来、デジタル複写機が備えていない機能を、ネットワークを介して接続されたホストコンピュータに備えるようにしたシステムが提案されている（特許文献１参照。）。
すなわち、このシステムでは、デジタル複写機からホストコンピュータへ、制御用のコマンドコードや画像の濃度データなどのビットデータを送信し、ホストコンピュータが、受信した制御用コマンドコードの内容を解析して、画像データに対して指定されている画像編集機能により画像処理を行う。こうしてホストコンピュータにより処理された画像データはデジタル複写機に返送され、デジタル複写機で印刷される。
【特許文献１】特開平９−２３８２１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、インターネット等の汎用のネットワークを利用した通信システムにおいては、ネットワーク側からそのネットワークを利用するクライアントに対しての不正なアクセスを防ぐため、ネットワーク側からクライアントに対する通信を制限することが一般的である。具体的には、例えば、クライアントとしてのパーソナルコンピュータをブロードバンドルータを介してインターネットに接続した構成では、ブロードバンドルータのファイアウォール機能により、インターネット上のサーバからパーソナルコンピュータへ送信されるデータのうち、パーソナルコンピュータからのリクエストに対するレスポンス以外は遮断される。
【０００４】
このため、上記特許文献１に記載のシステムをインターネット等の汎用のネットワークを利用して構築しようとした場合、サーバ（ホストコンピュータ）からクライアント（デジタル複写機）へコマンドを送信するためには、まずクライアントからサーバへコマンド要求を送信し、このコマンド要求（リクエスト）に対する応答（レスポンス）として、サーバがクライアントへそのコマンドを送信するといった手法をとることが考えられる。
【０００５】
この場合、サーバは、クライアントからのコマンド要求に対して、クライアントへ送信すべきコマンドが存在しない場合にも、何らかの応答（コマンドなしの応答）を行う。すなわち、例えばクライアントとサーバとの間にプロキシサーバが設けられた構成のように、クライアントによる要求に対して所定のタイムアウト時間が経過してもサーバからの応答がない場合に通信エラーと判定される構成においては、クライアントへ送信すべきコマンドが存在しないからといってサーバがコマンド要求に対する応答を行わないと、サーバが正常に通信可能な状態であるにもかかわらず通信エラーと判定されてしまうからである。
【０００６】
しかしながら、このようにクライアントからのコマンド要求に対する応答としてサーバがクライアントへコマンドを送信するという手法では、サーバにおいてクライアントへ送信すべきコマンドが発生しても、クライアントからのコマンド要求が受信されるまではそのコマンドがクライアントへ送信されないこととなる。このため、サーバにおいてクライアントへ送信すべきコマンドが発生した場合にコマンド要求に関係なくそのコマンドを直ちにクライアントへ送信する場合と比較すると、クライアントがサーバからのコマンドを受信する待ち時間が長くなってしまうという問題がある。なお、この待ち時間は、クライアントからサーバへのコマンド要求の送信頻度を高くすることにより短くすることが可能ではあるが、コマンド要求の送信頻度を高くすることはネットワークトラフィックの増大につながるため限界がある。
【０００７】
本発明は、こうした問題にかんがみてなされたものであり、クライアントがサーバからのコマンドを受信する待ち時間を短くすることを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた請求項１に記載の通信システムは、ネットワークを介して通信可能に構成されたクライアントとサーバとを備え、クライアントからのコマンド要求に対する応答として、サーバがクライアントへコマンドを送るように構成されたものである。
【０００９】
そして、本通信システムにおいて、サーバは、クライアントから受信したコマンド要求に対する応答として、クライアントへ送信すべきコマンドが存在する場合にはそのコマンドを含む返信データをクライアントへ送信し、クライアントへ送信すべきコマンドが存在しない場合にはコマンドなしの返信データをクライアントへ送信するデータ返信手段を備えており、データ返信手段は、クライアントへ送信すべきコマンドの存在しない状態がコマンド要求の受信から所定の待機時間継続した時点で、コマンドなしの返信データを送信する。
【００１０】
このため、本通信システムによれば、ネットワークにおける通信エラーを防止しつつ、クライアントがサーバからのコマンドを受信する待ち時間を短くすることが可能となる。
すなわち、ネットワークを介した通信においては、上述のように、ネットワーク側からクライアントに対する通信が制限される場合がある。そこで、本通信システムでは、サーバが、クライアントからのコマンド要求に対する応答として、クライアントへ送信すべきコマンドが存在する場合にはそのコマンドを含む返信データをクライアントへ送信し、また、クライアントへ送信すべきコマンドが存在しない場合にはコマンドなしの返信データをクライアントへ送信するようにしている。ここで、本通信システムでは、サーバは、クライアントへ送信すべきコマンドの存在しない状態がコマンド要求の受信から所定の待機時間継続した時点で、コマンドなしの返信データを送信する。つまり、サーバは、コマンド要求を受信した時点でクライアントへ送信すべきコマンドが存在していないとしても、コマンドなしの返信データを直ちに送信するのではなく、所定の待機時間が経過するまでは送信しないようにしているのである。
【００１１】
このため、サーバは、コマンド要求を受信した時点でクライアントへ送信すべきコマンドが存在している場合のみならず、コマンド要求を受信した時点ではクライアントへ送信すべきコマンドが存在していないが上記待機時間が経過するまでにコマンドが発生した場合にも、コマンドを含む返信データをクライアントへ送信することができるようになる。したがって、本通信システムによれば、ネットワークトラフィックを増大させることなく、クライアントがサーバからのコマンドを受信する待ち時間の短縮を図ることができる。しかも、サーバにおいてクライアントへ送信すべきコマンドが発生しなくても所定の待機時間が経過した時点でコマンドなしの返信データが送信されるようにしているため、ネットワークにおける通信エラーを防止することも可能となる。
【００１２】
ところで、クライアントへ送信すべきコマンドが上記待機時間が経過するまでに発生した場合に、コマンドを含む返信データを送信するタイミングは、例えば、上記待機時間の経過後や、コマンドが発生してから一定時間経過後などとすることも可能ではあるが、好ましくは請求項２のようにするとよい。
【００１３】
すなわち、請求項２に記載の通信システムでは、上記請求項１の通信システムにおいて、サーバが備えるデータ返信手段は、クライアントへ送信すべきコマンドが存在する場合には、クライアントから受信したコマンド要求に対する応答として、そのコマンドを含む返信データをクライアントへ直ちに送信する。
【００１４】
つまり、クライアントへ送信すべきコマンドが上記待機時間が経過するまでに発生した場合には、そのコマンドを含む返信データをクライアントへ直ちに送信するのである。
このため、本通信システムによれば、クライアントがサーバからのコマンドを受信する待ち時間を効果的に短縮することができる。特に、上記待機時間が長いほど待ち時間を短縮させる効果が高くなる。ただし、上記待機時間が長いとネットワークにおいて通信エラーと判定されるおそれがあるため、通信エラーと判定されることを防止できる限度でできるだけ長い時間であることが好ましい。
【００１５】
また、クライアントは、請求項３に記載のように、サーバへ送信したコマンド要求に対する応答としてコマンドなしの返信データを受信した場合に、サーバへ再度コマンド要求を送信するとよい。具体的には、例えば、コマンド要求を定期的に送信することが考えられる。このようにすれば、クライアントは、サーバからのコマンドを確実に受信することができる。
【００１６】
次に、請求項４に記載の通信システムでは、上記請求項１〜３のいずれかの通信システムにおいて、上記待機時間は、ネットワークにおいてクライアントによる要求（コマンド要求に限らず、応答を受けるための何らかの要求）に対するサーバからの応答がされない場合に通信エラーであると判定される所定のタイムアウト時間に基づき設定されている。
【００１７】
このような通信システムによれば、上記タイムアウト時間に基づき上記待機時間が設定されているため、クライアントがサーバからのコマンドを受信する待ち時間を効果的に短縮することができる。すなわち、上記待機時間が長いほどクライアントがサーバからのコマンドを受信する待ち時間を短縮する効果が高くなる反面、上記待ち時間を長くするとネットワークにおいて通信エラーであると判定されるおそれがある。そこで、通信エラーを判定する基準である上記タイムアウト時間に基づき上記待機時間を設定することにより、通信エラーと判定されることを防止できる限度で上記待機時間をできるだけ長く設定することができる。この結果、待ち時間を効果的に短縮することができるのである。
【００１８】
また、請求項５に記載の通信システムは、上記請求項１〜３のいずれかの通信システムにおいて、クライアントによる要求（コマンド要求に限らず、応答を受けるための何らかの要求）に対するサーバからの応答が所定のタイムアウト時間を経過してもされない場合に通信エラーであると判定する通信監視手段を備え、上記待機時間は、上記タイムアウト時間に基づき設定されている。
【００１９】
このため、本通信システムによれば、上記請求項４の通信システムと同様、待ち時間を効果的に短縮することができる。なお、通信監視手段としては、例えばプロキシサーバや、プロキシ機能を有するルータ、上記サーバの一部がプロキシ機能を有した構成等が挙げられる。ただし、プロキシに限定されるものではなく、上記機能を有するものであればよい。
【００２０】
ここで、上記請求項４又は５の通信システムにおいて、タイムアウト時間に基づき設定された待機時間とは、具体的には、例えば請求項６に記載のように、タイムアウト時間より短い時間である。
【００２１】
ところで、ネットワークにおいて通信エラーであると判定されるタイムアウト時間の長さは、ネットワーク環境等において異なることが考えられる。
そこで、請求項７に記載の通信システムは、上記請求項４〜６のいずれかの通信システムにおいて、上記待機時間の値を設定する待機時間設定手段を備えている。このため、上記待機時間を、ネットワーク環境等に応じた適切な値に設定することができる。
【００２２】
具体的には、例えば請求項８に記載のように、待機時間設定手段がクライアントに設けられており、サーバが備えるデータ返信手段が、クライアントが備える待機時間設定手段により設定された値を上記待機時間の値として用いることが好ましい。ネットワークにおいてクライアントによる要求に対するサーバからの応答がされない場合に通信エラーであると判定する構成は、クライアント側に設けられていることが一般的だからである。このため、本通信システムによれば、例えば、サーバが、複数のクライアントと通信を行う場合に、クライアントごとに適切な値の待機時間を用いることができる。
【００２３】
ここで、上記請求項８の待機時間設定手段は、例えば請求項９に記載のように、サーバへ要求（コマンド要求に限らず、応答を受けるための何らかの要求）を送信してからタイムアウト時間を経過することによる通信エラーが検出されるまでの時間に基づき、上記待機時間の値を自動的に設定するような構成とすることができる。この構成によれば、クライアント側で上記タイムアウト時間を把握していない場合（例えば、プロキシサーバのように、クライアント側から分からない場所でタイムアウト時間が設定されている場合）であっても、上記待機時間の値を適切な値に設定することができる。
【００２４】
また、上記請求項８の待機時間設定手段は、例えば請求項１０に記載のように、外部からの入力操作により入力された値に基づき上記待機時間の値を設定するような構成とすることもできる。この構成によれば、クライアント側で上記タイムアウト時間を把握している場合（例えば、クライアントの利用者が上記タイムアウト時間を知っている場合）に、上記待機時間の値を適切な値に設定することができる。
【００２５】
ところで、クライアントがコマンド要求を送信してからサーバによる返信データを受信するまでに要する時間は、ネットワークにおける通信の混雑状態によっても異なり、通信が混雑しているほどコマンド要求の送信から返信データの受信までの時間が長くなる。このため、上記待機時間を一定値とすると、通信が混雑していない状態では通信エラーが生じないにもかかわらず、通信が混雑することにより通信エラーが生じるといったことが考えられる。
【００２６】
そこで、請求項１１に記載の通信システムは、上記請求項１〜１０のいずれかの通信システムにおいて、ネットワークにおける通信の混雑状態を検出する通信状態検出手段を備え、サーバが備えるデータ返信手段は、通信状態検出手段により検出された通信の混雑状態（例えば通信速度）に基づき、上記待機時間の調整を行う。このため、本通信システムによれば、上記待機時間を、ネットワークにおける通信の混雑状態に応じた最適な値に調整することが可能となる。この結果、通信エラーを効果的に防止しつつ、クライアントがサーバからのコマンドを受信する待ち時間を効果的に短縮することができる。
【００２７】
ここで、通信状態検出手段は、例えば請求項１２に記載のように、クライアントに設けられていてもよく、また請求項１３に記載のように、サーバに設けられていてもよい。
次に、請求項１４に記載の情報処理装置は、上記請求項１〜請求項１３のいずれかに記載の通信システムを構成するクライアントとして機能することを特徴とするものである。このため、本情報処理装置によれば、上記通信システムを構築することができ、これにより上述した効果を得ることができる。なお、情報処理装置としては、パーソナルコンピュータ等の他、例えば通信機能を備えた画像処理装置（画像印刷装置（プリンタ装置）、画像読取装置（スキャナ装置）、ファクシミリ装置、これらの機能を有した複合機等）が挙げられる。
【００２８】
次に、請求項１５に記載のサーバは、上記請求項１〜請求項１３のいずれかに記載の通信システムを構成するものである。このため、本サーバによれば、上記通信システムを構築することができ、これにより上述した効果を得ることができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明が適用された実施形態について、図面を用いて説明する。
図１は、第１実施形態の画像処理システムの概略構成を表すブロック図である。
同図に示すように、この画像処理システムは、複合機１０と、ディレクトリサーバ２０と、機能サーバ３０とを備えており、これらはネットワーク（本実施形態ではインターネット等の広域ネットワーク（ＷＡＮ：Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ））１を介して双方向通信可能に接続されている。具体的には、複合機１０、ディレクトリサーバ２０及び機能サーバ３０は、それぞれルータ２，３，４を介してネットワーク１と接続されている。
【００３０】
ここで、複合機１０とネットワーク１とを中継するルータ２としては、周知のブロードバンドルータが用いられている。このブロードバンドルータ２は、通常設定（デフォルト設定）の状態においては、すべてのポートが閉じられた状態となっており、内部から外部（複合機１０側からネットワーク１側）への要求（リクエスト）が出されると、その要求に対する応答（レスポンス）として整合性のとれたパケットのみを通すようになっている。つまり、ブロードバンドルータ２は、通常設定の状態においては、外部から内部へ送信されてくるデータのうち、内部から外部への要求に対する応答については通過させ、それ以外については遮断する。このように、ブロードバンドルータ２は、ネットワーク１から複合機１０に対する不正なアクセスを防ぐためのファイアウォールとして機能する。
【００３１】
さらに、ブロードバンドルータ２は、プロキシ機能を有しており、複合機１０からのリクエストに対するレスポンスが所定のタイムアウト時間を超えてもされない場合に、通信エラーと判定する。
【００３２】
複合機１０は、電話（音声通信）機能、スキャナ機能、プリンタ機能、コピー機能、ファクシミリ機能等を有している。そして、本画像処理システムにおいて、複合機１０は、上記機能に関連する複数種類のサービスをネットワーク１を介して利用することが可能となっている。具体的には、ネットワーク１上に設けられた機能サーバ３０が、複合機１０からの要求に応じて、複合機１０が有する上記機能に関連する複数種類のサービスを実行可能に構成されている。さらに、本画像処理システムでは、ネットワーク１上に設けられたディレクトリサーバ２０が、複合機１０がネットワーク１を介して利用可能なサービス（機能サーバ３０が実行可能なサービス）についての情報を、複合機１０へ提供可能に構成されている。
【００３３】
以下、複合機１０、ディレクトリサーバ２０及び機能サーバ３０の各構成について説明する。
複合機１０は、制御部１１、操作部１２、読取部１３、記録部１４、通信部１５、記憶部１６、音入力部１７、及び、音出力部１８を備えている。
【００３４】
制御部１１は、図示しない周知のＣＰＵ、ＲＯＭ、ＲＡＭ等を備えており、本複合機１０を構成する各部を統括制御する。なお、ＲＯＭには、後述する各種処理（図１２，図１４〜図１９，図３１，図３２）をＣＰＵに実行させるためのプログラムが記憶されている。
【００３５】
操作部１２は、図２に示す操作パネル１２ａを介して、本複合機１０の利用者（ユーザ）による入力操作の受け付け及び利用者に対する情報の表示を行う。具体的には、操作パネル１２ａは、利用者による入力操作を受け付けるためのキー群として、コピーキー４１、スキャナキー４２、ＦＡＸキー４３、サービスキー４４、設定キー４５、上下左右の方向キー４６，４７，４８，４９、ＯＫキー５０、及び、キャンセルキー５１を備えている。また、操作パネル１２ａは、利用者に対する情報の表示を行うための表示部としてディスプレイ５２を備えている。
【００３６】
読取部（スキャナ）１３は、用紙等のシート状記録媒体に記録（例えば印刷）された画像を読み取り、その画像を表す画像データを生成する。
記録部（プリンタ）１４は、画像データの表す画像を用紙等のシート状記録媒体に印刷する。
【００３７】
通信部１５は、ネットワーク１を介してデータを送受信するための処理を行う。
記憶部１６は、図示しない不揮発性ＲＡＭを備えており、この不揮発性ＲＡＭにデータを記憶する。
【００３８】
音入力部１７は、本複合機１０が備える図示しないハンドセット（受話器）に設けられたマイクから音を入力し、その音を表す音データ（ＰＣＭデータ）を生成する。
音出力部１８は、音データ（ＰＣＭデータ）の表す音を、図示しないハンドセットに設けられたスピーカ、又は、複合機本体に設けられた図示しないスピーカから出力する。
【００３９】
次に、ディレクトリサーバ２０の構成について説明する。
ディレクトリサーバ２０は、制御部２１、通信部２２、及び、記憶部２３を備えている。
【００４０】
制御部２１は、図示しない周知のＣＰＵ、ＲＯＭ、ＲＡＭ等を備えており、本ディレクトリサーバ２０を構成する各部を統括制御する。なお、ＲＯＭには、後述する処理（図２０）をＣＰＵに実行させるためのプログラムが記憶されている。
【００４１】
通信部２２は、ネットワーク１を介してデータを送受信するための処理を行う。
記憶部２３は、図示しないハードディスクを備えており、このハードディスクにデータを記憶する。具体的には、記憶部２３には、サービス定義情報２５を記憶するためのサービス定義情報記憶部２４が設けられている。
【００４２】
サービス定義情報２５は、機能サーバ３０が実行可能なサービスについての情報（サービスの種類及び要求先）を複合機１０へ提供するためのものである。具体的には、サービス定義情報２５は、複合機１０で受信されることにより、複合機１０が備える操作パネル１２ａのディスプレイ５２にサービスの種類を示すサービス選択用画面（図５に例示）を表示させ、複合機１０の利用者にサービスの選択を促す。ディレクトリサーバ２０は、機能サーバ３０が実行可能なサービスを、「データ保存サービス」、「印刷サービス」及び「コピー応用サービス」の３つのカテゴリに分類して管理しており、サービス選択用画面において、まず、上記３つのカテゴリを提示していずれか一つのカテゴリの選択を促し、次に、選択されたカテゴリに含まれるサービスを提示していずれか一つのサービスの選択を促すようにしている。そして、サービス定義情報記憶部２４には、カテゴリの選択を促すサービス選択用画面に対応するサービス定義情報２５（以下「トップのサービス定義情報２５」という。）と、各カテゴリに含まれるサービスの選択を促すサービス選択用画面に対応する複数のサービス定義情報２５とが記憶されている。
【００４３】
ここで、サービス定義情報２５の具体例について説明する。
図３及び図４は、サービス定義情報２５のデータ構成の一例を表す説明図である。具体的には、図３は、トップのサービス定義情報２５のデータ構成を表しており、図４は、上記３つのカテゴリのうちの一つである「コピー応用サービス」についてのサービス定義情報２５のデータ構成を表している。これらの図に示すように、サービス定義情報２５は、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）により記述されており、図３及び図４で用いられている各タグの定義は表１に示すとおりである。
【００４４】
【表１】
2006134108.tif 000003
【００４５】
そして、トップのサービス定義情報２５（図３）が複合機１０で受信されると、複合機１０が備える操作パネル１２ａのディスプレイ５２には、図５（ａ）に示すサービス選択用画面が表示される。具体的には、表示用タイトル（Ｔｉｔｌｅ）として「ディレクトリサービス」の文字がディスプレイ５２における上部位置に表示され、その下には、選択可能なカテゴリを表す項目（Ｌｉｎｋ＿Ｔｉｔｌｅ）として、「データ保存サービス」、「印刷サービス」及び「コピー応用サービス」の文字が表示される。この状態で、操作パネル１２ａにおける上下方向の方向キー４６，４７が操作されることにより、項目を選択するためのカーソル（図５に示す破線の四角形）が上下に移動し、操作パネル１２ａのＯＫキー５０が押されることにより、その時点でカーソルによって指定されている項目の選択が確定される。ここで、各項目には、各カテゴリに対応するサービス定義情報２５のＩＤがそれぞれ対応づけられており（Ｌｉｎｋ＿Ｌｏｃａｔｉｏｎ）、項目の選択が確定されると、その項目に対応するＩＤのサービス定義情報２５が複合機１０で受信される。
【００４６】
例えば、図５（ａ）に示すサービス選択用画面で「コピー応用サービス」が選択されると、図４のサービス定義情報２５が複合機１０で受信され、図５（ｂ）に示すサービス選択用画面がディスプレイ５２に表示される。具体的には、表示用タイトル（Ｔｉｔｌｅ）として「コピー応用サービス」の文字がディスプレイ５２における上部位置に表示され、その下には、選択可能なサービスを表す項目（Ｌｉｎｋ＿Ｔｉｔｌｅ）として、「すかし入りコピー」、「翻訳コピー」、「原稿読み上げ」及び「音声テキスト変換」の文字が表示される。
【００４７】
ただし、ディスプレイ５２の大きさの都合上、すべての項目を一度に表示することができないため、複合機１０では、ディスプレイ５２に表示されていない項目が存在する場合には、ディスプレイ５２における項目表示位置の右側に上下の矢印（三角印）を表示し、矢印が示す方向に項目が存在する場合にはその矢印を黒く表し、項目が存在しない場合にはその矢印を白く表すことで、表示されていない項目の存在の有無を利用者が判断できるようにしている。例えば、図５（ｂ）では下向きの矢印が黒くなっており、「原稿読み上げ」の下にも別の項目が存在することを示している。このため、図５（ｂ）の状態で操作パネル１２ａにおける下向きの方向キー４７によりカーソルが下へ移動されると、項目が全体的にスクロールして、図５（ｃ）に示すように、「原稿読み上げ」の下に「音声テキスト変換」の文字が表示される。
【００４８】
そして、図５（ｂ），（ｃ）に示すサービス選択用画面においても、上述した操作により項目の選択が確定される。ここで、各項目には、各サービスを呼び出すためのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）がそれぞれ対応づけられており（Ｌｉｎｋ＿Ｌｏｃａｔｉｏｎ）、項目の選択が確定されると、その項目に対応するＵＲＬのサービスが呼び出される。
【００４９】
次に、機能サーバ３０の構成について説明する。
機能サーバ３０は、制御部３１、通信部３２、及び、記憶部３３を備えている。
制御部３１は、図示しない周知のＣＰＵ、ＲＯＭ、ＲＡＭ等を備えており、本機能サーバ３０を構成する各部を統括制御する。なお、ＲＯＭには、後述する各種処理（図２１，図２２，図２８〜図３０，図３３，図３４）をＣＰＵに実行させるためのプログラムが記憶されている。また、制御部３１は、複合機１０の制御部１１に比べてはるかに高性能のものであり、複合機１０の制御部１１では実行困難な処理についても行うことができる。
【００５０】
通信部３２は、ネットワーク１を介してデータを送受信するための処理を行う。
記憶部３３は、図示しないハードディスクを備えており、このハードディスクにデータを記憶する。具体的には、記憶部３３には、サービスＩ／Ｆ情報３６を記憶するためのサービスＩ／Ｆ情報記憶部３４と、サービスソフトウェア３７を記憶するためのサービスソフト記憶部３５とが設けられている。
【００５１】
サービスソフトウェア３７は、複数種類のサービスを実行するためのものである。具体的には、サービスソフト記憶部３５には、複数種類のサービスソフトウェア３７が記憶されており、各サービスソフトウェア３７ごとに異なるサービスを実行する。ここで、サービスとしては、例えば、複合機１０の読取部１３により生成された画像データに関するサービス、複合機１０の音入力部１７により生成された音データに関するサービス、複合機１０の記録部１４により印刷される画像を表す画像データに関するサービス、複合機１０の音出力部１８により出力される音を表す音データに関するサービス等が挙げられる。なお、後述する処理（図２３〜図２７）は、サービスソフトウェア３７に基づき実行される。
【００５２】
また、サービスＩ／Ｆ情報３６は、サービスを実行するために設定することが必要なパラメータを複合機１０へ要求するためのものである。具体的には、サービスＩ／Ｆ情報３６は、複合機１０で受信されることにより、複合機１０が備える操作パネル１２ａのディスプレイ５２に設定すべきパラメータを示すパラメータ入力用画面（図９に例示）を表示させ、複合機１０の利用者にパラメータの設定を促す。そして、サービスＩ／Ｆ情報記憶部３４には、機能サーバ３０が実行可能な複数種類のサービスのそれぞれに対応する複数種類のサービスＩ／Ｆ情報３６が記憶されている。
【００５３】
ここで、サービスＩ／Ｆ情報３６の具体例について説明する。
図６〜図８は、サービスＩ／Ｆ情報３６のデータ構成の一例を表す説明図である。具体的には、複合機１０の読取部１３で読み取られた画像にＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ）処理を施してその画像の内容であるテキストを認識し、そのテキストを翻訳した内容の画像を表す画像データを生成して複合機１０の記録部１４に印刷させるというサービス（翻訳コピーサービス）に対応するサービスＩ／Ｆ情報３６のデータ構成を表している。これらの図に示すように、サービスＩ／Ｆ情報３６は、上述したサービス定義情報２５と同じマークアップ言語により記述されており、図６〜図８で用いられている各タグの定義は表２に示すとおりである。なお、表２における基本データは、上述したサービス定義情報２５の基本データ（表１）と同じである。
【００５４】
【表２】
2006134108.tif 000004
【００５５】
そして、図６〜図８に示すサービスＩ／Ｆ情報３６が複合機１０で受信されると、複合機１０が備える操作パネル１２ａのディスプレイ５２には、図９（ａ）に示すパラメータ入力用画面が表示される。具体的には、表示用タイトル（Ｔｉｔｌｅ）として「翻訳コピー」の文字がディスプレイ５２における上部位置に表示され、その下には、入力項目（Ｄｉｓｐ＿Ｎａｍｅ）として「言語選択」の文字が表示され、更にその下には、入力項目「言語選択」について選択可能なパラメータを表す項目（Ｄｉｓｐ＿Ｓｅｌｅｃｔ）として、「英語→日本語」及び「日本語→英語」の文字が表示される。この状態で、操作パネル１２ａにおける上下方向の方向キー４６，４７が操作されることにより、上述のサービス選択用画面と同様、項目を選択するためのカーソルが上下に移動する。
【００５６】
ここで、「翻訳コピー」に関する入力項目（Ｄｉｓｐ＿Ｎａｍｅ）としては、上記表示されている「言語選択」に加え、「スキャナ設定」、「印刷設定」及び「コメント」があるが（図７及び図８参照）、ディスプレイ５２の大きさの都合上、すべての入力項目を一度に表示することができない。そこで、複合機１０では、ディスプレイ５２に表示されていない入力項目が存在する場合には、ディスプレイ５２における入力項目表示位置の左右両側に左右の矢印（三角印）を表示し、矢印が示す方向に入力項目が存在する場合にはその矢印を黒く表し、入力項目が存在しない場合にはその矢印を白く表すことで、表示されていない入力項目の存在の有無を利用者が判断できるようにしている。例えば、図９（ａ）では右向きの矢印が黒くなっており、「言語選択」の右側にも別の入力項目が存在することを示している。このため、図９（ａ）の状態で操作パネル１２ａにおける右向きの方向キー４９が押されると、図９（ｂ）に示すように、「スキャナ設定」を入力項目としたパラメータ入力用画面に切り替わる。
【００５７】
図９（ｂ）に示すパラメータ入力用画面では、表示用タイトル（Ｔｉｔｌｅ）としての「翻訳コピー」の文字の下に、入力項目（Ｄｉｓｐ＿Ｎａｍｅ）として「スキャナ設定」の文字が表示され、更にその下には、入力項目「スキャナ設定」について選択可能なパラメータを表す項目（Ｄｉｓｐ＿Ｓｅｌｅｃｔ）として、「普通の文字」及び「細かい文字」の文字が表示される。
【００５８】
ここで、「普通の文字」とは、スキャナ１３のパラメータである解像度（読取解像度）を３００×３００ｄｐｉに設定することを意味し、「細かい文字」とは、解像度を６００×６００ｄｐｉに設定することを意味する。そして、この例では、「スキャナ設定」で設定可能な解像度が、複合機１０で通常設定することが可能な解像度の一部に限定されている。すなわち、複合機１０において、通常、用紙に印刷された画像を読み取る操作を行った場合には、図１０（ａ）に示すように、操作パネル１２ａのディスプレイ５２に表示される設定画面において、スキャナ１３の解像度を、２００×２００ｄｐｉ、３００×３００ｄｐｉ及び６００×６００ｄｐｉの３種類から選択することができる。これに対し、翻訳コピーサービスにおいては、画像の解像度が粗いとＯＣＲ処理の精度が下がるという理由から、低解像度のパラメータである２００×２００ｄｐｉを設定不能としているのである。なお、この例では、ＯＣＲの精度を上げるためにモノクロでの読み取りに限定している。
【００５９】
一方、図９（ｂ）の状態で操作パネル１２ａにおける右向きの方向キー４９が押されると、図９（ｃ）に示すように、「印刷設定」を入力項目としたパラメータ入力用画面に切り替わる。
【００６０】
図９（ｃ）に示すパラメータ入力用画面では、表示タイトル（Ｔｉｔｌｅ）としての「翻訳コピー」の文字の下に、入力項目（Ｄｉｓｐ＿Ｎａｍｅ）として「印刷設定」の文字が表示され、更にその下には、入力項目「印刷設定」について選択可能なパラメータを表す項目（Ｄｉｓｐ＿Ｓｅｌｅｃｔ）として、「印刷速度優先」、「普通」及び「高精細」の文字が表示される。
【００６１】
ただし、ディスプレイ５２の大きさの都合上、すべての項目を一度に表示することができないため、上述のサービス選択用画面（図５（ｂ），（ｃ））と同様、ディスプレイ５２における項目表示位置の右側に上下の矢印（三角印）を表示し、矢印が示す方向に項目が存在する場合にはその矢印を黒く表し、項目が存在しない場合にはその矢印を白く表すことで、表示されていない項目の存在の有無を利用者が判断できるようにしている。例えば、図９（ｃ）の状態で操作パネル１２ａにおける下向きの方向キー４７によりカーソルが下へ移動されると、項目が全体的にスクロールして、図９（ｄ）に示すように、「普通」の下に「高精細」の文字が表示される。
【００６２】
ここで、「印刷速度優先」とは、プリンタ１４のパラメータである解像度（印刷解像度）を２００×２００ｄｐｉに設定することを意味し、「普通」とは、解像度を３００×３００ｄｐｉに設定することを意味し、「高精細」とは、解像度を６００×６００ｄｐｉに設定することを意味する。そして、この例では、「印刷設定」で設定可能な解像度が、複合機１０で通常設定することが可能な解像度の一部に限定されている。すなわち、図示しないパーソナルコンピュータにおいて、通常、複合機１０に対し画像の印刷を指示する操作を行った場合には、図１０（ｂ）に示すように、パーソナルコンピュータのディスプレイに表示される設定画面において、プリンタ１４の解像度を、２００×２００ｄｐｉ、３００×３００ｄｐｉ、６００×６００ｄｐｉ及び１２００×１２００ｄｐｉの４種類から選択することができる。これに対し、翻訳コピーサービスにおいては、スキャナ１３で設定可能な読取解像度よりも高い印刷解像度を設定しても意味がないという理由から、高解像度のパラメータである１２００×１２００ｄｐｉを設定不能としているのである。なお、低解像度を設定可能としているのは、解像度を落としてでも早く印刷したいというニーズに応えるためである。また、この例では、スキャン画像がモノクロに限定されるため、これに合わせてモノクロ印刷に限定している。
【００６３】
一方、図９（ｃ）又は図９（ｄ）の状態で操作パネル１２ａにおける右向きの方向キー４９が押されると、図９（ｅ）に示すように、「コメント」を入力項目としたパラメータ入力用画面に切り替わる。
【００６４】
図９（ｅ）に示すパラメータ入力用画面では、表示タイトル（Ｔｉｔｌｅ）としての「翻訳コピー」の文字の下に、入力項目（Ｄｉｓｐ＿Ｎａｍｅ）として「コメント」の文字が表示され、更にその下には、コメントの入力欄が表示される。なお、入力欄中の黒い正方形は文字入力のためのカーソルを表す。また、コメントとして入力された内容は、例えば、印刷画像のヘッダやフッタに記載されるという形で利用される。
【００６５】
このように、翻訳コピーサービスのパラメータ入力用画面（図９（ａ）〜（ｅ））では、「言語選択」、「スキャナ設定」、「印刷設定」の各入力項目についてパラメータを選択し、さらに、コメントを入力する。そして、操作パネル１２ａのＯＫキー５０が押されることにより、その時点でカーソルによって指定されている項目（ディスプレイ５２に表示されていない入力項目については、最後に指定されていた項目）の選択が確定され、また、コメントの入力が確定する。そして、これらのパラメータは、入力データを受けて処理するプログラムのＵＲＬ（Ａｃｔｉｏｎ）へ送信される。
【００６６】
なお、ある入力項目について選択されたパラメータに基づき、別の入力項目について選択可能なパラメータを変更するようにしてもよい。例えば、スキャナ設定についてのパラメータとして「普通の文字」が選択された場合には、印刷設定についてのパラメータとして「高精細」を選択不能とするようにすれば、読取解像度が３００×３００ｄｐｉに設定されているにもかかわらず、印刷解像度が６００×６００ｄｐｉに設定されてしまうことを防ぐことができる。
【００６７】
次に、本画像処理システムで行われる通信について説明する。
本画像処理システムでは、複合機１０、ディレクトリサーバ２０及び機能サーバ３０が互いにデータを送受信するための通信プロトコルとして、ＨＴＴＰ１．１（ＨＴＴＰ：ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）が用いられており、ＨＴＴＰリクエスト及びレスポンスに伴わせたメッセージにより、互いに指令及び指令に対する応答を送り合う。
【００６８】
ここで、通信し合う指令には、複合機１０側から各サーバ２０，３０に対する指令（サーバ制御指令）と、各サーバ２０，３０側から複合機１０に対する指令（複合機制御指令）とがあるが、いずれの通信も複合機１０が常にＨＴＴＰ通信のクライアント（ＨＴＴＰリクエストを発信する側）となるようにしている。これにより、ブロードバンドルータ２が通常設定のまま用いられても、各サーバ２０，３０から複合機１０への指令が遮断されてしまうことを防ぐことができる。
【００６９】
具体的には、複合機１０は、ＨＴＴＰリクエストのＰＯＳＴコマンドに伴わせたメッセージによりディレクトリサーバ２０又は機能サーバ３０に対する指令を送信する。一方、各サーバ２０，３０は、複合機１０からのＨＴＴＰリクエストのＰＯＳＴコマンドに伴わせたメッセージによる複合機制御指令の問い合わせに対し、複合機制御指令が存在すれば、上記問い合わせに対するＨＴＴＰレスポンスのメッセージに複合機制御指令を伴わせて送信する。
【００７０】
さらに、本画像処理システムでは、機能サーバ３０は、複合機１０から複合機制御指令の問い合わせ（コマンド要求）を受信した時点で、複合機１０へ送信すべきコマンド（複合機制御指令）が存在しない場合には、受信したリクエストに対するレスポンスを直ちには送信せず、所定の最長滞在時間（待機時間に相当）が経過するまでは待機する。そして、最長滞在時間が経過するまでに複合機制御指令が発生した場合にはレスポンスとして直ちに送信し、最長滞在時間が経過しても複合機制御指令が発生しない場合にはコマンドなしのレスポンスを送信する。
【００７１】
ここで、複合機１０と機能サーバ３０との間で行われる通信の一例について、図１１のラダーチャートを用いて説明する。
複合機１０と機能サーバ３０とは、サービス起動からサービス終了までの間、一連の通信処理（セッション）を行う。このセッションにおいて、まず、複合機１０は、機能サーバ３０に対し、サービス起動を要求する。すると、機能サーバ３０は、複合機１０に対しセッションＩＤを送信する。ここで、セッションＩＤとは、機能サーバ３０においてセッションを特定するための識別子であり、以降の通信において、複合機１０はリクエストに伴いセッションＩＤを送信し、機能サーバ３０はそのセッションＩＤに基づきセッションを特定する。これにより、機能サーバ３０は、複数のセッションを同時に処理することが可能となる。
【００７２】
複合機１０は、セッションＩＤを受信すると、以降は、本複合機１０に対する指令の問い合わせである複合機指令問合せ（コマンド要求）を定期的に行い、これに対する機能サーバ３０からの応答という形で指令（コマンド）を受ける。なお、機能サーバ３０は、複合機指令問合せに対して送信すべき指令がない場合には、指令がない旨の送信（複合機指令無し）を行う。
【００７３】
この例において、機能サーバ３０は、まず、ＵＩ（ユーザインターフェイス）ジョブ起動指令を複合機１０へ送信する。ここで、ＵＩジョブ起動指令とは、複合機１０に設けられるＵＩデバイス（操作パネル１２ａ）の利用開始を通知するものである。これにより、複合機１０と機能サーバ３０との間で、ＵＩジョブの通信処理が開始される。このＵＩジョブの通信処理は、セッションと並行して行われる。また、機能サーバ３０から複合機１０へは、ＵＩジョブ起動指令に伴い、機能サーバ３０においてジョブを特定するためのジョブＩＤ（セッションにおいて固有の識別子）が送信される。そして、複合機１０は、ＵＩジョブの通信処理において、リクエストに伴いセッションＩＤ及びジョブＩＤを送信し、機能サーバ３０は、そのセッションＩＤ及びジョブＩＤに基づきジョブを特定する。これにより、機能サーバ３０は、複数のジョブを同時に処理することが可能となる。なお、ＵＩジョブの通信処理の内容については後述する。
【００７４】
続いて、機能サーバ３０は、所定のタイミングで、入力ジョブ起動指令を複合機１０へ送信する。ここで、入力ジョブ起動指令とは、複合機１０に設けられる入力デバイス（読取部１３又は音入力部１７）の利用開始を通知するものである。これにより、複合機１０と機能サーバ３０との間で、入力ジョブの通信処理が開始される。そして、この入力ジョブの通信処理も、ＵＩジョブと同様、セッションと並行して行われる。また、機能サーバ３０から複合機１０へは、入力ジョブ起動指令に伴いジョブＩＤが送信される。そして、複合機１０は、入力ジョブの通信処理において、リクエストに伴いセッションＩＤ及びジョブＩＤを送信し、機能サーバ３０は、そのセッションＩＤ及びジョブＩＤに基づきジョブを特定する。なお、入力ジョブの通信処理の内容については後述する。
【００７５】
続いて、機能サーバ３０は、所定のタイミングで、出力ジョブ起動指令を複合機１０へ送信する。ここで、出力ジョブ起動指令とは、複合機１０に設けられる出力デバイス（記録部１４又は音出力部１８）の利用開始を通知するものである。これにより、複合機１０と機能サーバ３０との間で、出力ジョブの通信処理が開始される。そして、この出力ジョブの通信処理も、ＵＩジョブや入力ジョブと同様、セッションと並行して行われる。また、機能サーバ３０から複合機１０へは、出力ジョブ起動指令に伴いジョブＩＤが送信される。そして、複合機１０は、出力ジョブの通信処理において、リクエストに伴いセッションＩＤ及びジョブＩＤを送信し、機能サーバ３０は、そのセッションＩＤ及びジョブＩＤに基づきジョブを特定する。なお、出力ジョブの通信処理の内容については後述する。
【００７６】
続いて、機能サーバ３０は、所定のタイミングで、出力ジョブを終了することの通知である出力ジョブ終了指令を複合機１０へ送信する。
続いて、機能サーバ３０は、所定のタイミングで、入力ジョブを終了することの通知である入力ジョブ終了指令を複合機１０へ送信する。
【００７７】
続いて、機能サーバ３０は、所定のタイミングで、ＵＩジョブを終了することの通知であるＵＩジョブ終了指令を複合機１０へ送信する。
続いて、機能サーバ３０は、所定のタイミングで、サービスを終了することの通知であるサービス終了指令を複合機１０へ送信する。
【００７８】
以上が、セッションの内容である。
次に、ＵＩジョブの通信処理について説明する。
ＵＩジョブの通信処理において、まず、複合機１０は、機能サーバ３０に対し、本複合機１０に対する指令の問い合わせである複合機ジョブ指令問合せ（コマンド要求）を行う。すると、機能サーバ３０は、複合機１０に対しパラメータ要求を送信する。ここで、パラメータ要求とは、サービスの実行に必要なパラメータを複合機１０の利用者に設定させるためのものであり、機能サーバ３０から複合機１０へは、パラメータ要求に伴いサービスＩ／Ｆ情報３６が送信される。
【００７９】
複合機１０は、機能サーバ３０からパラメータ要求を受信すると、サービスＩ／Ｆ情報３６に基づくパラメータ入力用画面を操作パネル１２ａのディスプレイ５２に表示させる（例えば図９）。そして、利用者により設定されたパラメータを、機能サーバ３０へ送信する。
【００８０】
機能サーバ３０は、複合機１０からパラメータを受信すると、機能サーバ３０が複合機１０からの情報を正常に受け取ることができたか否かを表す通知であるサーバ受取状況を送信する。
【００８１】
そして、複合機１０は、機能サーバ３０から受信したサーバ受取状況により機能サーバ３０がパラメータを正常に受信したことを確認すると、機能サーバ３０に対し、サービスの状態に関する情報の要求であるサービス状態情報要求を行う。
【００８２】
機能サーバ３０は、複合機１０からサービス状態情報要求を受信すると、機能サーバ３０及びサービスの状態の通知であるサービス状態情報を複合機１０へ送信する。
以降は、サービス状態情報要求と、これに対するサービス状態情報の送信が繰り返される。
【００８３】
次に、入力ジョブの通信処理について説明する。
入力ジョブの通信処理において、まず、複合機１０は、機能サーバ３０に対し、本複合機１０の状態に関する情報である複合機状態情報を送信する。すると、機能サーバ３０は、複合機１０に対し複合機パラメータを送信する。ここで、複合機パラメータとは、ＵＩジョブの通信処理で複合機１０の利用者に設定させた入力デバイスのパラメータである。
【００８４】
複合機１０は、機能サーバ３０から複合機パラメータを受信すると、複合機１０が機能サーバ３０からの情報を正常に受け取ることができたか否かを表す通知である複合機受取状況を送信する。
【００８５】
そして、機能サーバ３０は、複合機１０からの複合機受取状況により複合機１０が情報を正常に受信したことを確認すると、複合機１０に対し、ジョブに対応した入力データの要求である入力データ要求を送信する。ここで、ジョブに対応した入力データとは、スキャンジョブ（読取部１３で生成された画像データに関するサービスで実行されるジョブ）であれば読取部１３で生成された画像データ、音声入力ジョブ（音入力部１７で生成された音データに関するサービスで実行されるジョブ）であればＰＣＭデータである。
【００８６】
複合機１０は、機能サーバ３０から入力データ要求を受信すると、入力操作（画像の読み取り操作や音声入力操作）を利用者に促す表示等を行い、その結果生成した入力データを機能サーバ３０へ送信する。
【００８７】
機能サーバ３０は、複合機１０から入力データを受信すると、機能サーバ３０及びサービスの状態の通知であるサービス状態情報を複合機１０へ送信する。
次に、出力ジョブの通信処理について説明する。
【００８８】
出力ジョブの通信処理において、まず、複合機１０は、機能サーバ３０に対し、複合機１０の状態に関する情報である複合機状態情報を送信する。すると、機能サーバ３０は、複合機１０に対し複合機パラメータを送信する。ここで、複合機パラメータとは、ＵＩジョブの通信処理で複合機１０の利用者に設定させた出力デバイスのパラメータである。
【００８９】
複合機１０は、機能サーバ３０から複合機パラメータを受信すると、複合機１０が機能サーバ３０からの情報を正常に受け取ることができたか否かを表す通知である複合機受取状況を送信する。
【００９０】
そして、機能サーバ３０は、複合機１０からの複合機受取状況により複合機１０が情報を正常に受信したことを確認すると、複合機１０に対し、出力データを送信する。ここで、出力データとは、印刷ジョブ（記録部１４で印刷する画像を表す画像データに関するサービスで実行されるジョブ）であれば画像データ、音声出力ジョブ（音出力部１８で出力する音声を表すＰＣＭデータに関するサービスで実行されるジョブ）であればＰＣＭデータである。
【００９１】
複合機１０は、機能サーバ３０から出力データを受信すると、出力データに基づく出力処理（画像の印刷や音声の出力）を行う。そして、複合機１０は、複合機１０の状態に関する情報である複合機状態情報を機能サーバ３０へ送信する。
【００９２】
機能サーバ３０は、複合機１０から複合機状態情報を受信すると、機能サーバ３０及びサービスの状態の通知であるサービス状態情報を複合機１０へ送信する。
次に、複合機１０、ディレクトリサーバ２０及び機能サーバ３０の各制御部１１，２１，３１が行う処理について説明する。
【００９３】
まず、複合機１０の制御部１１が行う複合機処理について、図１２のフローチャートを用いて説明する。なお、本複合機処理は、複合機１０の電源が投入されることにより開始される。
【００９４】
この複合機処理が開始されると、まず、Ｓ１０１で、本複合機１０の初期化処理を行う。
続いて、Ｓ１０２では、複合機１０への入力を受ける。ここで、複合機１０への入力とは、複合機１０に何らかの処理を開始させるための入力であり、例えば、操作パネル１２ａでのキー入力や、図示しないパーソナルコンピュータ等からの指令の入力などが挙げられる。
【００９５】
続いて、Ｓ１０３では、Ｓ１０２で受けた入力が、機能サーバ３０にサービスを要求する動作モードであるサービスモードへ移行するための入力であるか否かを判定する。具体的には、Ｓ１０２で受けた入力が、操作パネル１２ａにおけるサービスキー４４の押し操作であるか否かを判定する。
【００９６】
このＳ１０３で、サービスモードへ移行するための入力でないと判定した場合には、Ｓ１０４へ移行し、Ｓ１０２で受けた入力に応じたその他のモードの処理（例えば、画像の印刷処理）を行い、Ｓ１０２へ戻る。
【００９７】
一方、Ｓ１０３で、サービスモードへ移行するための入力であると判定した場合には、Ｓ１０５へ移行し、機能サーバ３０に要求するサービスをリストから選択するか否かを判定する。具体的には、図１３に示す選択画面を操作パネル１２ａのディスプレイ５２に表示させ、機能サーバ３０に要求するサービスを決定する方法として、リストから選択するという方法及び所望のサービスの要求先ＵＲＬを直接入力するという方法のうち、いずれか一方の方法を選択させる。
【００９８】
このＳ１０５で、機能サーバ３０に要求するサービスをリストから選択すると判定した場合（「リストから選択」が選択された場合）には、Ｓ１０６へ移行し、ディレクトリサーバ２０にサービス一覧の照会を要求する。具体的には、ディレクトリサーバ２０に対しトップのサービス定義情報２５（図３）の送信を要求する。なお、この例において、複合機１０には、トップのサービス定義情報２５を要求するための通信先アドレス（ＵＲＬ）が記憶部１６にあらかじめ記憶されている。
【００９９】
そして、Ｓ１０７では、Ｓ１０６での要求に対してディレクトリサーバ２０から送信されたトップのサービス定義情報２５を受信する。
さらに、Ｓ１０８では、Ｓ１０７で受信したサービス定義情報２５に基づくサービス選択用画面を操作パネル１２ａのディスプレイ５２に表示させ（図５（ａ））、Ｓ１１０へ移行する。
【０１００】
一方、Ｓ１０５で、機能サーバ３０に要求するサービスをリストから選択しないと判定した場合（「直接入力」が選択された場合）には、Ｓ１０９へ移行し、ＵＲＬを直接入力するためのアドレス入力画面（図示せず）を操作パネル１２ａのディスプレイ５２に表示させ、Ｓ１１０へ移行する。
【０１０１】
Ｓ１１０では、機能サーバ３０に要求するサービスを決定するための利用者による入力操作を操作パネル１２ａで受ける。
続いて、Ｓ１１１では、Ｓ１１０で受けた入力操作がリンク選択のための操作であるか否かを判定する。具体的には、Ｓ１０８で表示した情報に基づき選択操作が正常に行われた場合、又は、Ｓ１０９で表示したアドレス入力画面にＵＲＬの入力が正常に行われた場合に、リンク選択のための操作であると判定する。
【０１０２】
このＳ１１１で、リンク選択のための操作でないと判定した場合には、Ｓ１１２へ移行し、Ｓ１１０で受けた入力操作が、サービスモードを終了するための停止操作であるか否かを判定する。
【０１０３】
そして、Ｓ１１２で、サービスモードを終了するための停止操作であると判定した場合には、Ｓ１０２へ戻る。つまり、サービスモードとしての処理を終了する。
一方、Ｓ１１２で、サービスモードを終了するための停止操作でないと判定した場合には、Ｓ１１３へ移行し、拒否音（ブザー音等）を鳴動した後、Ｓ１１０へ戻る。つまり、Ｓ１１０で受けた入力操作が、リンク選択のための操作でなく、停止操作でもない場合に、拒否音によって利用者に報知するようにしている。
【０１０４】
また、上記Ｓ１１１で、リンク選択のための操作であると判定した場合には、Ｓ１１４へ移行し、選択されたＵＲＬがサービスのＵＲＬであるか否かを判定する。
このＳ１１４で、サービスのＵＲＬでない（サービス定義情報２５のＵＲＬである）と判定した場合には、Ｓ１１５へ移行し、Ｌｉｎｋ＿Ｌｏｃａｔｉｏｎが示す情報（ＵＲＬを直接入力した場合には、そのＵＲＬが示す情報）に基づき、ディレクトリサーバ２０へサービスの照会を要求（サービス定義情報２５の送信を要求）し、要求したサービス定義情報２５をディレクトリサーバ２０から受信する。その後、Ｓ１０８へ戻る。これにより、新たなサービス選択用画面を操作パネル１２ａのディスプレイ５２に表示させる。
【０１０５】
一方、Ｓ１１４で、サービスのＵＲＬであると判定した場合には、Ｓ１１６へ移行し、後述するセッション処理（図１４，１５）を実施した後、Ｓ１０２へ戻る。
次に、複合機処理（図１２）におけるＳ１１６で実行されるセッション処理について、図１４及び図１５のフローチャートを用いて説明する。
【０１０６】
このセッション処理が開始されると、まず、Ｓ２０１で、利用するサービスを選択し、サービス定義情報２５のＬｉｎｋ＿Ｌｏｃａｔｉｏｎ（ＵＲＬを直接入力した場合には、そのＵＲＬ）に基づきサービスを起動する。つまり、サービスのＵＲＬへサービス起動指令を送信することにより、利用者により選択されたサービスを起動させる。
【０１０７】
続いて、Ｓ２０２では、機能サーバ３０からセッションＩＤを受信する。なお、セッションＩＤは、機能サーバ３０の制御部３１により実行される後述の機能サーバ処理（図２１）におけるＳ８０５の処理で生成され、Ｓ８０９の処理で送信される。
【０１０８】
続いて、Ｓ２０３では、上述の最長滞在時間を、６０４８００秒（一週間）に設定する。つまり、本実施形態の画像処理システムでは、最長滞在時間を複合機１０側で設定するようになっており、本Ｓ２０３の処理では、最長滞在時間を６０４８００秒（ブロードバンドルータ２が通信エラーを判定する基準であるタイムアウト時間に比べ十分大きな値の一例）に設定しているのである。
【０１０９】
続いて、Ｓ２０４では、最長滞在時間設定済フラグをオンにし、タイムアウト記録フラグをオンにする。
続いて、Ｓ２０５でタイマを初期化し、Ｓ２０６でそのタイマを始動する。
【０１１０】
続いて、Ｓ２０７では、最長滞在時間設定済フラグがオンであるか否かを判定する。ここで、本Ｓ２０７の判定処理は、本セッション処理において複数回繰り返して行われるが、そのうち、本セッション処理が開始されてから１度目のタイムアウトエラー検出直後の判定処理においてのみ、最長滞在時間設定済フラグがオンでないと判定し、それ以外の判定処理（タイムアウトエラー未検出時の判定処理及び最長滞在時間設定後の判定処理）では、最長滞在時間設定済フラグがオンであると判定する。なお、このような判定結果となるのは、Ｓ２０４，Ｓ２１２，Ｓ２１９の処理により最長滞在時間設定済フラグのオン／オフが切り替えられることによるものである。
【０１１１】
そこで、本セッション処理の流れを分かりやすくするために、Ｓ２０７でのタイムアウトエラー未検出時の判定処理後の流れ、１度目のタイムアウトエラー検出直後の判定処理後の流れ、最長滞在時間設定後の判定処理後の流れについて、順に説明する。
【０１１２】
［タイムアウトエラー未検出時の判定処理後の流れ］
Ｓ２０７でのタイムアウトエラー未検出時の判定処理では、Ｓ２０４の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、Ｓ２１３へ移行する。
【０１１３】
Ｓ２１３では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、Ｓ２０３で設定した最長滞在時間（６０４８００秒）とともに機能サーバ３０へ送信する。これにより、機能サーバ３０では、その最長滞在時間に基づく応答処理（複合機１０からのリクエストに対し一週間後にレスポンスする応答処理）が行われる。なお、複合機指令問合せに伴い、Ｓ２０２の処理で受信したセッションＩＤが送信される。
【０１１４】
続いて、Ｓ２１４では、Ｓ２１３で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このＳ２１４で、指令が受信されていないと判定した場合には、Ｓ２１５へ移行し、Ｓ２１３で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。なお、通信エラーの発生は、ブロードバンドルータ２からの通知に基づき検出可能となっている。
【０１１５】
そして、Ｓ２１５で、タイムアウトによる通信エラーが発生していないと判定した場合には、Ｓ２１４へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ただし、最長滞在時間を、通常想定されるタイムアウト時間に比べ十分大きな値（６０４８００秒）に設定しているため、長時間に渡って機能サーバ３０からレスポンスの送信がない場合、機能サーバ３０からレスポンスが送信される前にタイムアウト時間が経過し、通信エラーが発生することとなる。その結果、Ｓ２１５でタイムアウトによる通信エラーが発生したと判定し、Ｓ２１６へ移行する。
【０１１６】
Ｓ２１６では、タイムアウト記録フラグがオンであるか否かを判定する。ここでは、Ｓ２０４でタイムアウト記録フラグがオンにされているため、タイムアウト記録フラグがオンであると判定して、Ｓ２１７へ移行する。
【０１１７】
Ｓ２１７では、Ｓ２０６で始動したタイマを停止する。
続いて、Ｓ２１８では、Ｓ２１７で停止したタイマの計時時間を、タイムアウト時間の計測値Ｔｏとして記憶する。つまり、ブロードバンドルータ２が通信エラーの判定基準としているタイムアウト時間を計測しているのである。ただし、タイムアウト時間の計測値Ｔｏ（以下、単に「タイムアウト時間Ｔｏ」という。）は、ブロードバンドルータ２で実際に設定されているタイムアウト時間に比べ、通信に要した時間が加わる分、やや長めの値となる。
【０１１８】
続いて、Ｓ２１９では、最長滞在時間設定済フラグをオフにする。
その後、Ｓ２２０へ移行し、所定インターバル待機した後、Ｓ２０５へ戻る。そして、Ｓ２０５でタイマを初期化し、Ｓ２０６でそのタイマを始動した後、Ｓ２０７へ移行する。
【０１１９】
一方、Ｓ２１４で、指令が受信されたと判定した場合には、Ｓ２２１へ移行し、受信した指令がジョブ起動指令であるか否かを判定する。なお、ジョブ起動指令は、機能サーバ３０の制御部３１により実行される後述のセッション処理（図２３）におけるＳ１００３，Ｓ１００７，Ｓ１０１１の各処理で出力される。また、ジョブ起動指令に伴い、ジョブＩＤとジョブの通信先ＵＲＬとが送信されてくる。
【０１２０】
このＳ２２１で、ジョブ起動指令であると判定した場合には、Ｓ２２２へ移行して、ジョブの起動に必要なリソースを確保し、更にＳ２２３へ移行して、指定ジョブの起動処理を開始する。その後、Ｓ２２０へ移行し、所定インターバル待機した後、Ｓ２０５へ戻る。そして、Ｓ２０５でタイマを初期化し、Ｓ２０６でそのタイマを始動した後、Ｓ２０７へ移行する。
【０１２１】
一方、Ｓ２２１で、ジョブ起動指令でないと判定した場合には、Ｓ２２４へ移行し、受信した指令がジョブ終了指令であるか否かを判定する。なお、ジョブ終了指令は、機能サーバ３０の制御部３１により実行される後述のセッション処理（図２４）におけるＳ１０１９，Ｓ１０２１，Ｓ１０２３の各処理で出力される。また、ジョブ終了指令に伴い、終了するジョブに対応するジョブＩＤが送信されてくる。
【０１２２】
このＳ２２４で、ジョブ終了指令であると判定した場合には、Ｓ２２５へ移行して、ジョブＩＤに対応するジョブを停止し、リソースを解放する。その後、Ｓ２２０へ移行し、所定インターバル待機した後、Ｓ２０５へ戻る。そして、Ｓ２０５でタイマを初期化し、Ｓ２０６でそのタイマを始動した後、Ｓ２０７へ移行する。
【０１２３】
一方、Ｓ２２４で、ジョブ終了指令でないと判定した場合には、Ｓ２２６へ移行し、受信した指令が「指令なし」を表すものであるか否かを判定する。つまり、Ｓ２１３で送信した「複合機指令問合せ」に対する返信が、指令がないことを表す送信であるか否かを判定するのである。
【０１２４】
このＳ２２６で、受信した指令が「指令なし」を表すものであると判定した場合には、Ｓ２２０へ移行し、所定インターバル待機した後、Ｓ２０５へ戻る。そして、Ｓ２０５でタイマを初期化し、Ｓ２０６でそのタイマを始動した後、Ｓ２０７へ移行する。
【０１２５】
一方、Ｓ２２６で、受信した指令が「指令なし」を表すものでないと判定した場合には、Ｓ２２７へ移行し、受信した指令がセッションの終了指令であるか否かを判定する。なお、セッションの終了指令は、機能サーバ３０の制御部３１により実行される後述のセッション処理（図２４）におけるＳ１０２６の処理で送信される。
【０１２６】
このＳ２２７で、終了指令であると判定した場合には、本セッション処理を終了する。
一方、Ｓ２２７で、終了指令でないと判定した場合、つまり、受信した指令が、ジョブ起動の指令、ジョブ終了の指令、「指令なし」を表すもの、及び、セッションの終了指令のうちのいずれでもない場合には、Ｓ２２８へ移行し、指令エラーの処理（例えば、エラーである旨のメッセージを操作パネル１２ａのディスプレイ５２に表示させる処理）を行う。その後、本セッション処理を終了する。
【０１２７】
［１度目のタイムアウトエラー検出直後の判定処理後の流れ］
Ｓ２０７での１度目のタイムアウトエラー検出直後の判定処理では、Ｓ２１９の処理で最長滞在時間設定済フラグがオフにされているため、最長滞在時間設定済フラグがオンでないと判定して、Ｓ２０８へ移行する。
【０１２８】
Ｓ２０８では、最長滞在時間を０に設定し、その設定した最長滞在時間を「空の問い合わせ（指令の問合せではない単なるリクエスト）」とともに機能サーバ３０へ送信する。これにより、機能サーバ３０では、その最長滞在時間に基づく応答処理（複合機１０からのリクエストに対し直ちにレスポンスする応答処理）が行われる。
【０１２９】
続いて、Ｓ２０９では、Ｓ２０８で送信した問い合わせに対する機能サーバ３０からのレスポンスを受信する。
続いて、Ｓ２１０では、Ｓ２０６で始動したタイマを停止し、そのタイマの計時時間をＴ１に代入する。つまり、Ｓ２０８〜Ｓ２１０の処理により、複合機１０と機能サーバ３０との間での通信時間Ｔ１を測定しているのである。
【０１３０】
続いて、Ｓ２１１では、Ｓ２１８で記憶したタイムアウト時間Ｔｏから通信時間Ｔ１を減算し、更に通信時間Ｔ１を２倍した値を減算することによって得られる値を、最長滞在時間に設定する。つまり「最長滞在時間＝Ｔｏ−Ｔ１−（２×Ｔ１）」として算出するのである。ここで、このように算出しているのは、タイムアウトによる通信エラーの発生を防止しつつ、最長滞在時間をできるだけ長い時間に設定するためである。すなわち、上述のように、タイムアウト時間Ｔｏは、ブロードバンドルータ２で実際に設定されているタイムアウト時間に比べ、通信に要した時間が加わる分、やや長めの値となるため、タイムアウト時間Ｔｏをそのまま最長滞在時間としたのでは、タイムアウトによる通信エラーが生じてしまう。そこで、通信時間Ｔ１を減算することで、実際のタイムアウト時間に近づけているのである。そしてさらに、通信時間Ｔ１を２倍した値を減算することで、最長滞在時間がブロードバンドルータ２で実際に設定されているタイムアウト時間に比べ確実に短くなるようにして、タイムアウトによる通信エラーを防止する効果を一層高めるようにしている。
【０１３１】
続いて、Ｓ２１２では、最長滞在時間設定済フラグをオンにし、タイムアウト記録フラグをオフにする。
続いて、Ｓ２１３では、「複合機指令問合せ」を、Ｓ２１１で設定した最長滞在時間とともに機能サーバ３０へ送信する。これにより、機能サーバ３０では、その最長滞在時間に基づく応答処理が行われる。なお、複合機指令問合せに伴い、Ｓ２０２の処理で受信したセッションＩＤが送信される。
【０１３２】
続いて、Ｓ２１４では、Ｓ２１３で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このＳ２１４で、指令が受信されていないと判定した場合には、Ｓ２１５へ移行し、Ｓ２１３で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
【０１３３】
そして、Ｓ２１５で、タイムアウトによる通信エラーが発生していないと判定した場合には、Ｓ２１４へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ここでは、最長滞在時間をタイムアウト時間Ｔｏよりも短く設定しているため、タイムアウト時間が経過する前に機能サーバ３０からレスポンスが送信されることが通常であるが、通信の混雑状態等により通信時間が長くなった場合には、タイムアウト時間が経過して通信エラーが発生することが考えられる。この場合、Ｓ２１５でタイムアウトによる通信エラーが発生したと判定し、Ｓ２１６へ移行する。
【０１３４】
Ｓ２１６では、タイムアウト記録フラグがオンであるか否かを判定する。ここでは、Ｓ２１２でタイムアウト記録フラグがオフにされているため、タイムアウト記録フラグがオンでないと判定して、Ｓ２１３へ戻る。つまり、タイムアウトによる通信エラーが発生した場合には、複合機指令問合せを機能サーバ３０へ再度送信するようにしている。
【０１３５】
一方、Ｓ２１４で、指令が受信されたと判定した場合の流れは、上述した「タイムアウトエラー未検出時の判定処理」と同様である。
［最長滞在時間設定後の判定処理後の流れ］
Ｓ２０７での最長滞在時間設定後の判定処理では、Ｓ２１２の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、Ｓ２１３へ移行する。
【０１３６】
Ｓ２１３では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、Ｓ２１１で設定した最長滞在時間（前回と同じ値）とともに機能サーバ３０へ送信する。これにより、機能サーバ３０では、その最長滞在時間に基づく応答処理が行われる。なお、複合機指令問合せに伴い、Ｓ２０２の処理で受信したセッションＩＤが送信される。
【０１３７】
以降の流れは、上述した「１度目のタイムアウトエラー検出直後の判定処理後の流れ」と同様である。
このように、本セッション処理では、まず、最長滞在時間をタイムアウト時間に比べて十分大きな値に設定することで、タイムアウトによる通信エラーを故意に発生させることによりタイムアウト時間Ｔｏを求め、さらに、最長滞在時間を０に設定することで通信時間Ｔ１を求め、これらの値に基づき最長滞在時間を自動的に設定して機能サーバ３０へ送信する。これにより、通信エラーを防止しつつ、機能サーバ３０からの指令の待ち時間を短縮するようにしているのである。
【０１３８】
次に、セッション処理（図１５）におけるＳ２２３の処理により開始される指定ジョブの起動処理について、図１６のフローチャートを用いて説明する。
この指定ジョブの起動処理が開始されると、まず、Ｓ３０１で、ジョブ起動指令で指定されたジョブがＵＩジョブであるか否かを判定する。
【０１３９】
そして、Ｓ３０１で、ジョブ起動指令で指定されたジョブがＵＩジョブであると判定した場合には、Ｓ３０２へ移行し、ジョブＩＤ、ジョブの通信先ＵＲＬを渡してＵＩジョブを起動した後、本指定ジョブの起動処理を終了する。
【０１４０】
一方、Ｓ３０１で、ジョブ起動指令で指定されたジョブがＵＩジョブでないと判定した場合には、Ｓ３０３へ移行し、ジョブ起動指令で指定されたジョブがスキャンジョブ（Ｓｃａｎジョブ）であるか否かを判定する。
【０１４１】
このＳ３０３で、ジョブ起動指令で指定されたジョブがスキャンジョブでないと判定した場合には、Ｓ３０４へ移行し、ジョブ起動指令で指定されたジョブがボイスジョブ（Ｖｏｉｃｅジョブ）であるか否かを判定する。
【０１４２】
そして、Ｓ３０４で、ジョブ起動指令で指定されたジョブがボイスジョブでないと判定した場合には、Ｓ３０６へ移行する。
一方、Ｓ３０３で、ジョブ起動指令で指定されたジョブがスキャンジョブであると判定した場合、又は、Ｓ３０４で、ジョブ起動指令で指定されたジョブがボイスジョブであると判定した場合には、Ｓ３０５へ移行し、ジョブＩＤ、ジョブの通信先ＵＲＬを渡して入力ジョブを起動した後、本指定ジョブの起動処理を終了する。
【０１４３】
Ｓ３０６では、ジョブ起動指令で指定されたジョブがプリントジョブ（Ｐｒｉｎｔジョブ）であるか否かを判定する。
このＳ３０６で、ジョブ起動指令で指定されたジョブがプリントジョブでないと判定した場合には、Ｓ３０７へ移行し、ジョブ起動指令で指定されたジョブがスピーカジョブ（Ｓｐｅａｋｅｒジョブ）であるか否かを判定する。
【０１４４】
そして、Ｓ３０７で、ジョブ起動指令で指定されたジョブがスピーカジョブでないと判定した場合、つまり、ジョブ起動指令で指定されたジョブがＵＩジョブ、スキャンジョブ、ボイスジョブ、プリントジョブ及びスピーカジョブのうちのいずれでもないと判定した場合には、そのまま本指定ジョブの起動処理を終了する。
【０１４５】
一方、Ｓ３０６で、ジョブ起動指令で指定されたジョブがプリントジョブであると判定した場合、又は、Ｓ３０７で、ジョブ起動指令で指定されたジョブがスピーカジョブであると判定した場合には、Ｓ３０８へ移行し、ジョブＩＤ、ジョブの通信先ＵＲＬを渡して出力ジョブを起動した後、本指定ジョブの起動処理を終了する。
【０１４６】
次に、指定ジョブの起動処理（図１６）におけるＳ３０２でセッション処理と並列に動作するように起動されるＵＩジョブについて、図１７のフローチャートを用いて説明する。
【０１４７】
このＵＩジョブが開始されると、まず、Ｓ４００で、送信用データとして、複合機１０に対する指令の問合せである複合機ジョブ指令問合せを所定領域へ書き込む。この送信用データは、後述するＳ４０６の処理で利用される情報であり、このデータとして書き込まれている情報がセッションＩＤ及びジョブＩＤとともに機能サーバ３０へ送信される。なお、送信用データの格納領域は、複合機１０の制御部１１内に備えられた図示しないＲＡＭの所定領域に設けられている。
【０１４８】
次に、Ｓ４０１で、セッションからの終了指示があったか否かを判定する。なお、セッションからの終了指示は、複合機１０の制御部１１により実行されるセッション処理（図１５）におけるＳ２２５の処理により出力される。
【０１４９】
このＳ４０１で、セッションからの終了指示があったと判定した場合には、Ｓ４０２へ移行し、セッションへ終了を通知した後、本ＵＩジョブを終了する。
一方、Ｓ４０１で、セッションからの終了指示がないと判定した場合には、Ｓ４０３へ移行し、操作パネル１２ａがビジー状態であるか否かを判定する。具体的には、操作パネル１２ａがビジー状態であるか否かを表すビジーフラグＦｕに基づき、ビジーフラグＦｕが立っている場合にはビジー状態であると判定し、ビジーフラグＦｕが下りている場合にはビジー状態でないと判定する。
【０１５０】
そして、Ｓ４０３で、操作パネル１２ａがビジー状態であると判定した場合には、Ｓ４０４へ移行し、操作パネル１２ａのビジー状態が解除されるまで待機した後、Ｓ４０３へ戻る。
【０１５１】
一方、Ｓ４０３で、ビジー状態でないと判定した場合には、Ｓ４０５へ移行し、ビジーフラグＦｕを立てる。
続いて、Ｓ４０６では、上述した送信用データとして書き込まれている情報をセッションＩＤ及びジョブＩＤを伴わせて機能サーバ３０へ送信する。
【０１５２】
続いて、Ｓ４０７では、Ｓ４０６で送信した情報に対して返信される複合機指令を受信する。
続いて、Ｓ４０８では、Ｓ４０７で受信した複合機指令がパラメータ要求であるか否かを判定する。なお、パラメータ要求は、機能サーバ３０の制御部３１により実行される後述のＵＩジョブ処理（図２５）におけるＳ１１０２の処理で送信される。また、パラメータ要求に伴い、サービスＩ／Ｆ情報３６が送信されてくる。
【０１５３】
このＳ４０８で、パラメータ要求であると判定した場合には、Ｓ４０９へ移行し、サービスＩ／Ｆ情報３６に基づきパラメータ入力用画面を操作パネル１２ａのディスプレイ５２に表示させ、パラメータを設定するための入力操作を利用者に促す。そして、Ｓ４１０へ移行し、入力されたパラメータを機能サーバ３０へ送信するために、そのパラメータを送信用データとして送信用データの格納領域へ書き込む。さらに、Ｓ４１１へ移行し、ビジーフラグＦｕを下げた後、Ｓ４０１へ戻る。なお、送信用データとして書き込まれたパラメータは、その後、セッションからの終了指示がなく（Ｓ４０１：ＮＯ）、操作パネルがビジーではない（Ｓ４０３：ＮＯ）状態になると、Ｓ４０６の処理にて機能サーバ３０へ送信される。
【０１５４】
一方、Ｓ４０８で、パラメータ要求でないと判定した場合には、Ｓ４１２へ移行し、Ｓ４０７で受信した複合機指令がサービス状態情報であるか否かを判定する。なお、サービス状態情報は、機能サーバ３０の制御部３１により実行される後述のＵＩジョブ処理（図２５）におけるＳ１１１３の処理で送信される。また、サービス状態情報に伴い、エラーコードとサービスＩ／Ｆ情報３６とが送信されてくる。
【０１５５】
このＳ４１２で、サービス状態情報であると判定した場合には、Ｓ４１３へ移行し、このサービス状態情報に基づく情報を、操作パネル１２ａのディスプレイ５２に表示させる。そして、Ｓ４２１へ移行し、機能サーバ３０で稼動するサービスの稼動状態の情報を要求する指令であるサービス状態情報要求を機能サーバ３０へ送信するために、そのサービス状態情報要求を送信用データとして送信用データの格納領域へ書き込む。そして、Ｓ４１１へ移行し、ビジーフラグＦｕを下げた後、Ｓ４０１へ戻る。なお、送信用データとして書き込まれたサービス状態情報要求は、その後、セッションからの終了指示がなく（Ｓ４０１：ＮＯ）、操作パネルがビジーではない（Ｓ４０３：ＮＯ）状態になると、Ｓ４０６の処理にて機能サーバ３０へ送信される。
【０１５６】
一方、Ｓ４１２で、サービス状態情報でないと判定した場合には、Ｓ４１４へ移行し、Ｓ４０７で受信した複合機指令が状態情報要求であるか否かを判定する。
このＳ４１４で、状態情報要求であると判定した場合には、Ｓ４１５へ移行し、複合機１０の状態に関する情報である複合機状態情報を機能サーバ３０へ送信するために、その複合機状態情報を送信用データとして送信用データの格納領域へ書き込む。そして、Ｓ４１１へ移行し、ビジーフラグＦｕを下げた後、Ｓ４０１へ戻る。なお、送信用データとして書き込まれた複合機状態情報は、その後、セッションからの終了指示がなく（Ｓ４０１：ＮＯ）、操作パネルがビジーではない（Ｓ４０３：ＮＯ）状態になると、Ｓ４０６の処理にて機能サーバ３０へ送信される。
【０１５７】
一方、Ｓ４１４で、状態情報要求でないと判定した場合には、Ｓ４１６へ移行し、Ｓ４０７で受信した複合機指令が、機能サーバ３０が複合機１０からの情報を正常に受け取ることができたか否かを表す通知であるサーバ受取状況であるか否かを判定する。
【０１５８】
このＳ４１６で、サーバ受取状況であると判定した場合には、Ｓ４１７へ移行し、このサーバ受取状況の内容が異常受取（ＮＧ）を表すものであるか否かを判定する。
そして、Ｓ４１７で、異常受取（ＮＧ）を表すものであると判定した場合には、Ｓ４１８へ移行し、機能サーバ３０に対し、前回送信した情報を再送信するために、その再送信する情報を送信用データとして送信用データの格納領域へ書き込む。その後、Ｓ４１１へ移行し、ビジーフラグＦｕを下げた後、Ｓ４０１へ戻る。
【０１５９】
一方、Ｓ４１７で、異常受取（ＮＧ）を表すものでないと判定した場合には、Ｓ４２２で、サービスの稼動状態の情報を要求する指令であるサービス状態情報要求を機能サーバ３０へ送信するために、そのサービス状態情報要求を送信用データとして送信用データの格納領域へ書き込んだ後、Ｓ４１１へ移行し、ビジーフラグＦｕを下げた後、Ｓ４０１へ戻る。
【０１６０】
なお、Ｓ４１８、Ｓ４２２にて送信用データとして書き込まれた再送信する情報、サービス状態情報要求は、その後、セッションからの終了指示がなく（Ｓ４０１：ＮＯ）、操作パネルがビジーではない（Ｓ４０３：ＮＯ）状態になると、Ｓ４０６の処理にて機能サーバ３０へ送信される。
【０１６１】
また、Ｓ４１６で、サーバ受取状況でないと判定した場合には、Ｓ４１９へ移行し、Ｓ４０７で受信した複合機指令が「指令なし」を表すものであるか否かを判定する。つまり、Ｓ４０６で送信した「複合機ジョブ指令問合せ」に対する返信が、指令がないことを表す送信であるか否かを判定するのである。
【０１６２】
このＳ４１９で、Ｓ４０７で受信した複合機指令が「指令なし」を表すものであると判定した場合には、Ｓ４２３で、複合機１０に対する指令の問合せである複合機ジョブ指令問合せを機能サーバ３０へ送信するために、その複合機ジョブ指令問合せを送信用データとして送信用データの格納領域へ書き込んだ後、Ｓ４１１へ移行し、ビジーフラグＦｕを下げた後、Ｓ４０１へ戻る。なお、送信用データとして書き込まれた複合機ジョブ指令問合せは、その後、セッションからの終了指示がなく（Ｓ４０１：ＮＯ）、操作パネルがビジーではない（Ｓ４０３：ＮＯ）状態になると、Ｓ４０６の処理にて機能サーバ３０へ送信される。
【０１６３】
一方、Ｓ４１９で、Ｓ４０７で受信した複合機指令が「指令なし」を表すものでないと判定した場合には、Ｓ４２０へ移行し、指定エラーの処理を行う。その後、Ｓ４１１へ移行し、ビジーフラグＦｕを下げた後、Ｓ４０１へ戻る。
【０１６４】
次に、指定ジョブの起動処理（図１６）におけるＳ３０５でセッション処理及びＵＩジョブ処理と並列動作するように起動される入力ジョブについて、図１８のフローチャートを用いて説明する。
【０１６５】
この入力ジョブが開始されると、まずＳ５０１で、入力装置（読取部１３で生成された画像データに関するサービスであれば読取部１３、音入力部１７で生成された音データに関するサービスであれば音入力部１７）がビジー状態であるか否かを判定する。具体的には、入力装置がビジー状態であるか否かを表すビジーフラグＦｉに基づき、ビジーフラグＦｉが立っている場合にはビジー状態であると判定し、ビジーフラグＦｉが下りている場合にはビジー状態でないと判定する。
【０１６６】
そして、Ｓ５０１で、入力装置がビジー状態であると判定した場合には、Ｓ５０２へ移行し、入力装置のビジー状態が解除されるまで待機した後、Ｓ５０１へ戻る。
一方、Ｓ５０１で、ビジー状態でないと判定した場合には、Ｓ５０３へ移行し、ビジーフラグＦｉを立てる。
【０１６７】
続いて、Ｓ５０４では、複合機状態情報を機能サーバ３０へ送信する。なお、複合機状態情報に伴い、セッションＩＤ、ジョブＩＤ及びエラーコードが送信される。
続いて、Ｓ５０５では、Ｓ５０４で送信した「複合機状態情報」に対して返信される複合機パラメータを機能サーバ３０から受信する。なお、複合機パラメータは、機能サーバ３０の制御部３１により実行される後述のスキャンジョブ処理（図２６）におけるＳ１２０３の処理により送信される。
【０１６８】
続いて、Ｓ５０６では、セッションからの終了指示があったか否かを判定する。なお、セッションからの終了指示は、複合機１０の制御部１１により実行されるセッション処理（図１５）におけるＳ２２５の処理により出力される。
【０１６９】
このＳ５０６で、セッションからの終了指示がないと判定した場合には、Ｓ５０７へ移行し、Ｓ５０５で複合機パラメータを正常に受信できたか否かを判定する。
そして、Ｓ５０７で、正常に受信できなかったと判定した場合には、Ｓ５０８へ移行し、複合機１０が機能サーバ３０からの情報を正常に受け取ることができたか否かの通知である複合機受取状況として異常受取（ＮＧ）である旨を機能サーバ３０へ通知し、Ｓ５０５へ戻る。なお、複合機受取状況に伴い、セッションＩＤ及びジョブＩＤが送信される。
【０１７０】
一方、Ｓ５０７で、正常に受信できたと判定した場合には、Ｓ５０９へ移行し、複合機受取状況として正常受取（ＯＫ）である旨を機能サーバ３０へ通知する。
続いて、Ｓ５１０では、入力データ要求を機能サーバ３０から受信する。なお、入力データ要求は、機能サーバ３０の制御部３１により実行される後述のスキャンジョブ処理（図２６）におけるＳ１２０９の処理で送信される。
【０１７１】
続いて、Ｓ５１１では、Ｓ５０６と同様、セッションからの終了指示があったか否かを判定する。
このＳ５１１で、セッションからの終了指示がないと判定した場合には、Ｓ５１２へ移行し、Ｓ５１０で入力データ要求を正常に受信できたか否かを判定する。
【０１７２】
そして、Ｓ５１２で、正常に受信できなかったと判定した場合には、Ｓ５１３へ移行し、異常受取（ＮＧ）である旨を機能サーバ３０へ通知し、Ｓ５１０へ戻る。
一方、Ｓ５１２で、正常に受信できたと判定した場合には、Ｓ５１４へ移行し、パラメータをセットし、入力操作を利用者に促す出力（例えば、「原稿をセットしてＯＫキーを押してください」、「受話器をとって音声を入力してください」等のメッセージを操作パネル１２ａのディスプレイ５２に表示）を行い、これにより入力される入力データを機能サーバ３０へ順次送信する処理を行う。なお、入力データとしては、メモリカード等の半導体製メモリに記憶された画像データを読み込むことによる入力や、記憶部１６に記憶されている画像データの入力等も挙げられる。また、入力データに伴い、セッションＩＤ及びジョブＩＤが送信される。
【０１７３】
続いて、Ｓ５１５では、Ｓ５１４でセットしたパラメータを元に戻す。
続いて、Ｓ５１６では、サービス状態情報を機能サーバ３０から受信した後、Ｓ５１７へ移行する。なお、サービス状態情報は、機能サーバ３０の制御部３１により実行される後述のスキャンジョブ処理（図２６）におけるＳ１２０８，Ｓ１２１２の各処理で送信される。
【０１７４】
一方、Ｓ５０６又はＳ５１１で、セッションからの終了指示があったと判定した場合には、そのままＳ５１７へ移行する。
Ｓ５１７では、Ｓ５０３で立てたビジーフラグＦｉを下ろす。
【０１７５】
そして、Ｓ５１８で、セッションへ終了を通知した後、本入力ジョブを終了する。
次に、指定ジョブの起動処理（図１６）におけるＳ３０８でセッション処理、ＵＩジョブ処理及び入力ジョブ処理と並列動作するように起動される出力ジョブについて、図１９のフローチャートを用いて説明する。
【０１７６】
この出力ジョブが開始されると、まずＳ６０１で、出力装置（記録部１４で印刷する画像を表す画像データに関するサービスであれば記録部１４，音出力部１８から出力する音データに関するサービスであれば音出力部１８）がビジー状態であるか否かを判定する。具体的には、出力装置がビジー状態であるか否かを表すビジーフラグＦｏに基づき、ビジーフラグＦｏが立っている場合にはビジー状態であると判定し、ビジーフラグＦｏが下りている場合にはビジー状態でないと判定する。
【０１７７】
そして、Ｓ６０１で、出力装置がビジー状態であると判定した場合には、Ｓ６０２へ移行し、出力装置のビジー状態が解除されるまで待機した後、Ｓ６０１へ戻る。
一方、Ｓ６０１で、ビジー状態でないと判定した場合には、Ｓ６０３へ移行し、ビジーフラグＦｏを立てる。
【０１７８】
続いて、Ｓ６０４では、複合機状態情報を機能サーバ３０へ送信する。なお、複合機状態情報に伴い、セッションＩＤ、ジョブＩＤ及びエラーコードが送信される。
続いて、Ｓ６０５では、Ｓ６０４で送信した「複合機状態情報」に対して返信される複合機パラメータを機能サーバ３０から受信する。なお、複合機パラメータは、機能サーバ３０の制御部３１により実行される後述の印刷ジョブ処理（図２７）におけるＳ１３０３の処理で送信される。
【０１７９】
続いて、Ｓ６０６では、セッションからの終了指示があったか否かを判定する。なお、セッションからの終了指示は、複合機１０の制御部１１により実行されるセッション処理（図１５）におけるＳ２２５の処理により出力される。
【０１８０】
このＳ６０６で、セッションからの終了指示がないと判定した場合には、Ｓ６０７へ移行し、Ｓ６０５で複合機パラメータを正常に受信できたか否かを判定する。
そして、Ｓ６０７で、正常に受信できなかったと判定した場合には、Ｓ６０８へ移行し、複合機１０が機能サーバ３０からの情報を正常に受け取ることができたか否かの通知である複合機受取状況として異常受取（ＮＧ）である旨を機能サーバ３０へ通知し、Ｓ６０５へ戻る。なお、複合機受取状況に伴い、セッションＩＤ及びジョブＩＤが送信される。
【０１８１】
一方、Ｓ６０７で、正常に受信できたと判定した場合には、Ｓ６０９へ移行し、複合機受取状況として正常受取（ＯＫ）である旨を機能サーバ３０へ通知する。
続いて、Ｓ６１０では、出力データ（例えば画像データや音データ）を機能サーバ３０から受信する。なお、出力データは、機能サーバ３０の制御部３１により実行される後述の印刷ジョブ処理（図２７）におけるＳ１３０９の処理で送信される。
【０１８２】
続いて、Ｓ６１１では、Ｓ６０６と同様、セッションからの終了指示があったか否かを判定する。
このＳ６１１で、セッションからの終了指示がないと判定した場合には、Ｓ６１２へ移行し、Ｓ６１０で出力データを正常に受信できたか否かを判定する。
【０１８３】
そして、Ｓ６１２で、正常に受信できなかったと判定した場合には、Ｓ６１３へ移行し、異常受取（ＮＧ）である旨を機能サーバ３０へ通知し、Ｓ６１０へ戻る。
一方、Ｓ６１２で、正常に受信できたと判定した場合には、Ｓ６１４へ移行し、パラメータをセットし、出力データを出力する処理（例えば、画像データが表す画像の印刷や、音データが表す音声の出力）を行う。
【０１８４】
続いて、Ｓ６１５では、Ｓ６１４でセットしたパラメータを元に戻す。
続いて、Ｓ６１６では、複合機状態情報を機能サーバ３０へ送信する。なお、複合機状態情報に伴い、セッションＩＤ、ジョブＩＤ及びエラーコードが送信される。
【０１８５】
続いて、Ｓ６１７では、サービス状態情報を機能サーバ３０から受信した後、Ｓ６１８へ移行する。なお、サービス状態情報は、機能サーバ３０の制御部３１により実行される後述の印刷ジョブ処理（図２７）におけるＳ１３０８，Ｓ１３１２の各処理で送信される。
【０１８６】
一方、Ｓ６０６又はＳ６１１で、セッションからの終了指示があったと判定した場合には、そのままＳ６１８へ移行する。
Ｓ６１８では、Ｓ６０３で立てたビジーフラグＦｏを下ろす。
【０１８７】
そして、Ｓ６１９で、セッションへ終了を通知した後、本出力ジョブを終了する。
次に、ディレクトリサーバ２０の制御部２１が行うディレクトリサーバ処理について、図２０のフローチャートを用いて説明する。なお、本ディレクトリサーバ処理は、ディレクトリサーバ２０がＨＴＴＰリクエストを受信することにより開始される。
【０１８８】
このディレクトリサーバ処理が開始されると、まず、Ｓ７０１で、ＨＴＴＰリクエストを受信する。
続いて、Ｓ７０２では、Ｓ７０１で受信したＨＴＴＰリクエストがサービス登録の指令であるか否かを判定する。なお、サービス登録の指令は、機能サーバ３０の制御部３１により実行される後述のサービス追加処理（図２８）におけるＳ１４０６の処理で送信される。
【０１８９】
このＳ７０２で、サービス登録の指令であると判定した場合には、Ｓ７０３へ移行し、サービス定義情報２５の内容を受信して、サービスを登録する。具体的には、記憶部２３のサービス定義情報記憶部２４に記憶されているサービス定義情報２５に新規サービスについての情報が登録される。そして、Ｓ７０４へ移行し、ＨＴＴＰレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
【０１９０】
一方、Ｓ７０２で、サービス登録の指令でないと判定した場合には、Ｓ７０５へ移行し、Ｓ７０１で受信したＨＴＴＰリクエストがサービス更新（例えば、サービス要求先ＵＲＬの変更）の指令であるか否かを判定する。なお、サービス更新の指令は、機能サーバ３０の制御部３１により実行される後述のサービス変更処理（図２９）におけるＳ１５０３の処理で送信される。
【０１９１】
このＳ７０５で、サービス更新の指令であると判定した場合には、Ｓ７０６へ移行し、サービス定義情報２５の内容を受信して、サービスを更新する。具体的には、記憶部２３のサービス定義情報記憶部２４に記憶されているサービス定義情報２５における該当するサービスについての情報が更新される。そして、Ｓ７０４へ移行し、ＨＴＴＰレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
【０１９２】
一方、Ｓ７０５で、サービス更新の指令でないと判定した場合には、Ｓ７０７へ移行し、Ｓ７０１で受信したＨＴＴＰリクエストがサービス削除の指令であるか否かを判定する。なお、サービス削除の指令は、機能サーバ３０の制御部３１により実行される後述のサービス削除処理（図３０）におけるＳ１６０２の処理で送信される。
【０１９３】
このＳ７０７で、サービス削除の指令であると判定した場合には、Ｓ７０８へ移行し、指定したサービス定義情報２５を削除する。具体的には、記憶部２３のサービス定義情報記憶部２４に記憶されているサービス定義情報２５における該当するサービスについての情報が削除される。そして、Ｓ７０４へ移行し、ＨＴＴＰレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
【０１９４】
一方、Ｓ７０７で、サービス削除の指令でないと判定した場合には、Ｓ７０９へ移行し、Ｓ７０１で受信したＨＴＴＰリクエストがサービス一覧照会の要求であるか否かを判定する。なお、サービス一覧照会の要求は、複合機１０の制御部１１により実行される上述の複合機処理（図１２）におけるＳ１０６の処理で送信される。
【０１９５】
このＳ７０９で、サービス一覧照会の要求であると判定した場合には、Ｓ７１０へ移行し、記憶部２３のサービス定義情報記憶部２４からトップのサービス定義情報２５を読み出す。そして、Ｓ７０４へ移行し、読み出したサービス定義情報２５を含むＨＴＴＰレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
【０１９６】
一方、Ｓ７０９で、サービス一覧照会の要求でないと判定した場合には、Ｓ７１１へ移行し、Ｓ７０１で受信したＨＴＴＰリクエストがサービス照会の要求であるか否かを判定する。なお、サービス照会の要求は、複合機１０の制御部１１により実行される上述の複合機処理（図１２）におけるＳ１１５の処理で送信される。
【０１９７】
このＳ７１１で、サービス照会の要求であると判定した場合には、Ｓ７１２へ移行し、記憶部２３のサービス定義情報記憶部２４からＩＤ又はＵＲＬで指定されたサービス定義情報２５を読み出す。そして、Ｓ７０４へ移行し、読み出したサービス定義情報２５を含むＨＴＴＰレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
【０１９８】
一方、Ｓ７１１で、サービス照会の要求でないと判定した場合には、Ｓ７１３へ移行し、Ｓ７０１で受信したＨＴＴＰリクエストが、ディレクトリサーバ２０を管理するためのサーバ管理の指令であるか否かを判定する。なお、サーバ管理の指令を送信する処理については、本発明とは直接関係ないため説明を省略している。
【０１９９】
このＳ７１３で、サーバ管理の指令であると判定した場合には、Ｓ７１４へ移行し、サーバ管理機能を起動する。そして、Ｓ７０４へ移行し、ＨＴＴＰレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
【０２００】
一方、Ｓ７１３で、サーバ管理の指令でないと判定した場合には、そのままＳ７０４へ移行し、ＨＴＴＰレスポンスを送信した後、本ディレクトリサーバ処理を終了する。
次に、機能サーバ３０の制御部３１が行う機能サーバ処理について、図２１のフローチャートを用いて説明する。なお、本機能サーバ処理は、機能サーバ３０がＨＴＴＰリクエストを受信することにより開始される。
【０２０１】
この機能サーバ処理が開始されると、まず、Ｓ８０１で、ＨＴＴＰリクエストを受信する。
続いて、Ｓ８０２では、Ｓ８０１で受信したＨＴＴＰリクエストがサービス起動の指令であるか否かを判定する。なお、サービス起動の指令は、複合機１０の制御部１１により実行される上述のセッション処理（図１４）におけるＳ２０１の処理で送信される。
【０２０２】
このＳ８０２で、サービス起動の指令であると判定した場合には、Ｓ８０５へ移行し、セッションＩＤを生成して送信データを生成する。また、サービスを実行するプロセスを起動する（具体的には、後述するセッション処理（図２３）を開始させる）。そして、Ｓ８０９へ移行する。
【０２０３】
一方、Ｓ８０２で、サービス起動の指令でないと判定した場合には、Ｓ８０６へ移行し、Ｓ８０１で受信したＨＴＴＰリクエストがサービス終了の指令であるか否かを判定する。なお、サービス終了の指令は、複合機１０が利用者からの停止指令（例えば、サービス実行中のキャンセルキー５１押下など）を割り込み処理により受け、その指令に応じて複合機１０より送信される。
【０２０４】
このＳ８０６で、サービス終了の指令であると判定した場合には、Ｓ８０７へ移行し、セッションＩＤ及び確保したリソースを解放し、Ｓ８０９へ移行する。
一方、Ｓ８０６で、サービス終了の指令でないと判定した場合には、Ｓ８０８へ移行し、サービス制御情報処理を実行した後、Ｓ８０９へ移行する。なお、サービス制御情報処理の具体的内容については後述する（図２２）。
【０２０５】
Ｓ８０９では、生成した情報を含むＨＴＴＰレスポンスの送信処理を行う。
続いて、Ｓ８１０では、Ｓ８０８のサービス制御情報処理を実施したか否かを判定する。
【０２０６】
このＳ８１０で、サービス制御情報処理を実施したと判定した場合には、Ｓ８１１へ移行し、セッションＩＤ又はジョブＩＤに対応するメモリアドレスに「送信済み」をセットした後、本機能サーバ処理を終了する。
【０２０７】
一方、Ｓ８１０で、サービス制御情報処理を実施していないと判定した場合には、そのまま本機能サーバ処理を終了する。
次に、機能サーバ処理（図２１）におけるＳ８０８で実行されるサービス制御情報処理の具体的内容について、図２２のフローチャートを用いて説明する。
【０２０８】
このサービス制御情報処理が開始されると、まず、Ｓ９０１で、サービスに送信する情報が存在するか否かを判定する。具体的には、機能サーバ処理（図２１）のＳ８０１で受信したＨＴＴＰリクエストに、サービス（セッション又はジョブ）に対する情報が含まれているか否かを判定する。
【０２０９】
このＳ９０１で、サービスに送信する情報が存在すると判定した場合には、Ｓ９０２へ移行し、セッションＩＤ又はジョブＩＤに対応する送信するプロセスを特定する。つまり、受信したＨＴＴＰリクエストに含まれている情報の送信先となるプロセスを特定するのである。
【０２１０】
続いて、Ｓ９０３では、プロセスが特定できないか否かを判定する。
このＳ９０３で、何らかの異常によりプロセスが特定できないと判定した場合には、Ｓ９０４へ移行し、エラー通知情報を生成した後、本サービス制御情報処理を終了する。
【０２１１】
一方、Ｓ９０３で、プロセスが特定できると判定した場合には、Ｓ９０５へ移行し、特定したプロセスに情報を送信した後、Ｓ９０６へ移行する。
また、Ｓ９０１で、サービスに送信する情報が存在しないと判定した場合には、そのままＳ９０６へ移行する。
【０２１２】
Ｓ９０６では、セッションＩＤ又はジョブＩＤに対応する返信情報の格納メモリを特定する。
続いて、Ｓ９０７では、格納メモリが特定できないか否かを判定する。
【０２１３】
このＳ９０７で、格納メモリが特定できないと判定した場合には、Ｓ９０４へ移行し、エラー通知情報を生成した後、本サービス制御情報処理を終了する。
一方、Ｓ９０７で、格納メモリが特定できると判定した場合には、Ｓ９０８へ移行し、最長滞在時間を、複合機１０から受信した最長滞在時間の数値に設定する。なお、最長滞在時間は、機能サーバ３０の制御部３１により実行される上述のセッション処理（図１４）におけるＳ２０８，Ｓ２１３の処理で送信される。
【０２１４】
続いて、Ｓ９０９では、複合機１０に送信する情報（複合機１０へ送信すべきコマンド）が存在するか否かを判定する。
このＳ９０９で、複合機１０に送信する情報が存在しないと判定した場合には、Ｓ９１０へ移行し、複合機１０からのリクエストを受信してから最長滞在時間（Ｓ９０８で設定した最長滞在時間）が経過したか否かを判定する。
【０２１５】
このＳ９１０で、最長滞在時間が経過していないと判定した場合には、Ｓ９１１へ移行し、コネクションの切断を検知したか否かを判定する。なお、コネクションの切断は、例えば、アプリケーションレベルでコネクションの切断を監視するプログラムを用いることにより検知することができる。
【０２１６】
そして、Ｓ９１１で、コネクションの切断を検知したと判定した場合には、そのまま本サービス制御情報処理を終了する。
一方、Ｓ９１１で、コネクションの切断を検知していないと判定した場合には、Ｓ９０９へ戻る。
【０２１７】
また、Ｓ９１０で、最長滞在時間が経過したと判定した場合には、Ｓ９１２へ移行し、複合機指令無しの情報を生成した後、本サービス制御情報処理を終了する。
一方、Ｓ９０９で、複合機１０に送信する情報が存在すると判定した場合には、Ｓ９１３へ移行し、返信情報に基づき、複合機制御指令を生成した後、本サービス制御情報処理を終了する。
【０２１８】
このように、本サービス制御情報処理では、複合機１０からのリクエストに対し、複合機１０へ送信すべきコマンドが存在しない場合、最長滞在時間が経過するまではレスポンスを行わず、その間に送信すべきコマンドが発生した場合には、直ちにレスポンスを行うようにしているのである。
【０２１９】
次に、機能サーバ３０の制御部３１が行うセッション処理について、図２３及び図２４のフローチャートを用いて説明する。なお、セッション処理の内容はサービスの種類によって異なるため、ここでは、翻訳コピーのサービスについてのセッション処理を例にとって説明する。また、本セッション処理は、上記機能サーバ処理（図２１）におけるＳ８０５の処理により機能サーバ処理と並列動作するように開始される。
【０２２０】
このセッション処理が開始されると、まず、Ｓ１００１で、初期化処理を行う。
続いて、Ｓ１００２では、サービス側ＵＩジョブを起動する。なお、サービス側ＵＩジョブの具体的内容については後述する（図２５）。
【０２２１】
続いて、Ｓ１００３では、ＵＩジョブ起動指令を複合機指令として出力する。具体的には、返信情報を格納するメモリに対してその複合機指令を書き込む処理を行い、その後、上述の機能サーバ処理（図２１）におけるＳ８１１の処理により「送信済み」がセットされることで出力を確認する。なお、このＵＩジョブ起動指令に伴い、ジョブＩＤとジョブの通信先ＵＲＬとが出力される。
【０２２２】
続いて、Ｓ１００４では、パラメータの入力が完了したか否かを判定する。なお、パラメータの入力が完了したか否かは、後述のＵＩジョブ処理（図２５）におけるＳ１１１１の処理によってパラメータ入力済みの通知がされたか否かにより判定する。
【０２２３】
このＳ１００４で、パラメータの入力が完了していないと判定した場合には、Ｓ１００５へ移行し、停止が通知されたか否かを判定する。なお、停止の通知は、後述のＵＩジョブ処理（図２５）におけるＳ１１０９の処理で行われる。
【０２２４】
そして、Ｓ１００５で、停止が通知されていないと判定した場合には、Ｓ１００４へ戻る。
一方、Ｓ１００５で、停止が通知されたと判定した場合には、後述するＳ１０２４の処理へ移行する。
【０２２５】
また、Ｓ１００４で、パラメータの入力が完了したと判定した場合には、Ｓ１００６へ移行し、サービス側スキャンジョブを起動する。なお、サービス側スキャンジョブの具体的内容については後述する（図２６）。
【０２２６】
続いて、Ｓ１００７では、スキャンジョブ（入力ジョブ）起動指令を複合機指令として出力する。なお、このスキャンジョブ起動指令に伴い、ジョブＩＤとジョブの通信先ＵＲＬとが出力される。
【０２２７】
続いて、Ｓ１００８では、スキャナの準備が完了したか否かを判定する。なお、スキャナの準備が完了したか否かは、後述のスキャンジョブ処理（図２６）におけるＳ１２１３の処理による通知を受けることにより判定する。
【０２２８】
このＳ１００８で、スキャナの準備が完了していないと判定した場合には、Ｓ１００９へ移行し、停止が通知されたか否かを判定する。なお、停止の通知は、後述のスキャンジョブ処理（図２６）におけるＳ１２０７の処理で行われる。
【０２２９】
そして、Ｓ１００９で、停止が通知されていないと判定した場合には、Ｓ１００８へ戻る。
一方、Ｓ１００９で、停止が通知されたと判定した場合には、後述するＳ１０２２の処理へ移行する。
【０２３０】
また、Ｓ１００８で、スキャナの準備が完了したと判定した場合には、Ｓ１０１０へ移行し、サービス側印刷ジョブを起動する。なお、サービス側印刷ジョブの具体的内容については後述する（図２７）。
【０２３１】
続いて、Ｓ１０１１では、印刷ジョブ（出力ジョブ）起動指令を複合機指令として出力する。なお、この印刷ジョブ起動指令に伴い、ジョブＩＤとジョブの通信先ＵＲＬとが出力される。
【０２３２】
続いて、Ｓ１０１２では、印刷の準備が完了したか否かを判定する。なお、印刷の準備が完了したか否かは、後述の印刷ジョブ処理（図２７）におけるＳ１３１３の処理による通知を受けることにより判定する。
【０２３３】
このＳ１０１２で、印刷の準備が完了していないと判定した場合には、Ｓ１０１３へ移行し、停止が通知されたか否かを判定する。なお、停止の通知は、後述の印刷ジョブ処理（図２７）におけるＳ１３０７の処理で行われる。
【０２３４】
そして、Ｓ１０１３で、停止が通知されていないと判定した場合には、Ｓ１０１２へ戻る。
一方、Ｓ１０１３で、停止が通知されたと判定した場合には、後述するＳ１０２０の処理へ移行する。
【０２３５】
また、Ｓ１０１２で、印刷の準備が完了したと判定した場合には、Ｓ１０１４へ移行し、入力データ（読取部１３で生成した画像データ）を読み出す。
続いて、Ｓ１０１５では、Ｓ１０１４で読み出した画像データについてＯＣＲ処理を施すことにより画像に含まれるテキストを認識し、その認識したテキストに対して翻訳処理を行い、更に翻訳後のテキストについて印刷レイアウトを設定することにより、印刷用の画像データを生成する。
【０２３６】
続いて、Ｓ１０１６では、Ｓ１０１５で生成した印刷用の画像データを出力する。
続いて、Ｓ１０１７では、全データの入力が完了したか否かを判定する。
このＳ１０１７で、入力が完了していないと判定した場合には、Ｓ１０１４へ戻る。
【０２３７】
一方、Ｓ１０１７で、入力が完了したと判定した場合には、Ｓ１０１８へ移行し、全データの出力が完了したか否かを判定する。
そして、Ｓ１０１８で、出力が完了していないと判定した場合には、Ｓ１０１４へ戻る。
【０２３８】
一方、Ｓ１０１８で、出力が完了したと判定した場合には、Ｓ１０１９へ移行し、印刷ジョブ終了指令を複合機指令として出力する。なお、印刷ジョブ終了指令に伴い、終了する印刷ジョブに対応するジョブＩＤが出力される。
【０２３９】
続いて、Ｓ１０２０では、サービス側印刷ジョブを終了する。
続いて、Ｓ１０２１では、スキャンジョブ終了指令を複合機指令として出力する。なお、スキャンジョブ終了指令に伴い、終了するスキャンジョブに対応するジョブＩＤが出力される。
【０２４０】
続いて、Ｓ１０２２では、サービス側スキャンジョブを終了する。
続いて、Ｓ１０２３では、ＵＩジョブ終了指令を複合機指令として出力する。なお、ＵＩジョブ終了指令に伴い、終了するＵＩジョブに対応するジョブＩＤが出力される。
【０２４１】
続いて、Ｓ１０２４では、サービス側ＵＩジョブを終了する。
続いて、Ｓ１０２５で、終了処理（メモリの解放等）を行い、Ｓ１０２６で、サービスの終了を複合機指令として出力した後、本セッション処理を終了する。
【０２４２】
次に、セッション処理（図２３）におけるＳ１００２の処理で機能サーバ処理及びセッション処理と並列動作するように起動されるＵＩジョブ処理について、図２５のフローチャートを用いて説明する。
【０２４３】
このＵＩジョブ処理が開始されると、まずＳ１１０１で、複合機１０から複合機ジョブ指令問合せを受信する。なお、複合機ジョブ指令問合せは、複合機１０の制御部１１により実行される上述のＵＩジョブ（図１７）におけるＳ４００又はＳ４２３の処理で送信用データとしてセットされ、Ｓ４０６の処理で送信される。
【０２４４】
続いて、Ｓ１１０２では、サービスの実行に必要なパラメータを設定させるためのパラメータ要求指令を複合機指令として複合機１０へ送信する。なお、パラメータ要求に伴い、記憶部３３のサービスＩ／Ｆ情報記憶部３４に記憶されているサービスＩ／Ｆ情報３６（この例では、翻訳コピーのサービスに対応するサービスＩ／Ｆ情報３６）が送信される。
【０２４５】
続いて、Ｓ１１０３では、エラーカウントを初期化する。
続いて、Ｓ１１０４では、複合機１０からパラメータを受信する。なお、パラメータは、複合機１０の制御部１１により実行される上述のＵＩジョブ（図１７）におけるＳ４１０の処理で送信用データとしてセットされ、Ｓ４０６の処理で送信される。
【０２４６】
続いて、Ｓ１１０５では、Ｓ１１０４で受信されたパラメータが正常であるか否かを判定する。
このＳ１１０５で、パラメータが正常でないと判定した場合には、Ｓ１１０６へ移行し、正常でないと判定された回数が２回目であるか否かを判定する。具体的には、Ｓ１１０３で初期化したエラーカウントに基づき判定する。
【０２４７】
そして、Ｓ１１０６で、２回目でない（１回目である）と判定した場合には、Ｓ１１０７へ移行し、機能サーバ３０が複合機１０からの情報を正常に受け取ることができたか否かの通知であるサーバ受取状況としてサーバ受取ＮＧ（異常受取）を出力する。さらに、Ｓ１１０８へ移行し、エラーカウントをカウントアップした後、Ｓ１１０４へ戻る。
【０２４８】
一方、Ｓ１１０６で、２回目であると判定した場合には、Ｓ１１０９へ移行し、セッションへ停止を通知した後、本ＵＩジョブ処理を終了する。
また、Ｓ１１０５で、パラメータが正常であると判定した場合には、Ｓ１１１０へ移行し、サーバ受取状況としてサーバ受取ＯＫ（正常受取）を出力する。
【０２４９】
続いて、Ｓ１１１１では、セッションへパラメータ入力済みを出力する。
続いて、Ｓ１１１２では、複合機１０からサービス状態情報要求を受信する。なお、サービス状態情報要求は、上述のように、ＵＩジョブ（図１７）におけるＳ４２１又はＳ４２２の処理で送信用データとしてセットされ、Ｓ４０６の処理で送信される。
【０２５０】
続いて、Ｓ１１１３では、サービス状態情報を複合機１０へ送信する。その後、Ｓ１１１２へ戻る。つまり、他の処理によって停止されるまで、複合機１０から複合機ジョブ指令問合せを受信し、サービス状態情報を返信するという処理を繰り返すようになっている。なお、サービス状態情報に伴い、エラーコードと、サービスＩ／Ｆ情報３６とが送信される。
【０２５１】
次に、セッション処理（図２３）におけるＳ１００６の処理で機能サーバ処理、セッション処理及びＵＩジョブ処理と並列動作するように起動されるスキャンジョブ処理について、図２６のフローチャートを用いて説明する。
【０２５２】
このスキャンジョブ処理が開始されると、まずＳ１２０１で、複合機１０から複合機状態情報を受信する。なお、複合機状態情報は、複合機１０の制御部１１により実行される上述の入力ジョブ（図１８）におけるＳ５０４の処理で送信される。
【０２５３】
続いて、Ｓ１２０２では、エラーカウントを初期化する。
続いて、Ｓ１２０３では、ＵＩジョブ処理（図２５）におけるＳ１１０４の処理で受信したパラメータに基づき、スキャナ１３のパラメータを複合機パラメータとして複合機１０へ送信する。
【０２５４】
続いて、Ｓ１２０４では、複合機１０において複合機パラメータが正常に受信されたか否かを判定する。具体的には、複合機１０の制御部１１により実行される上述の入力ジョブ（図１８）におけるＳ５０９の処理により、複合機受取状況として正常受取である旨が通知された場合に正常に受信されたと判定し、Ｓ５０８の処理により、複合機受取状況として異常受取である旨が通知された場合に正常に受信されなかったと判定する。
【０２５５】
このＳ１２０４で、複合機パラメータが正常に受信されなかったと判定した場合には、Ｓ１２０５へ移行し、正常に受信されなかったと判定された回数が２回目であるか否かを判定する。具体的には、Ｓ１２０２で初期化したエラーカウントに基づき判定する。
【０２５６】
そして、Ｓ１２０５で、２回目でない（１回目である）と判定した場合には、Ｓ１２０６へ移行し、エラーカウントをカウントアップした後、Ｓ１２０３へ戻る。
一方、Ｓ１２０５で、２回目であると判定した場合には、Ｓ１２０７へ移行し、セッションへ停止を通知する。さらに、Ｓ１２０８へ移行し、異常終了をサービス状態情報として複合機１０へ送信した後、本スキャンジョブ処理を終了する。
【０２５７】
また、Ｓ１２０４で、複合機パラメータが正常に受信されたと判定した場合には、Ｓ１２１３へ移行し、セッションへスキャナ準備の完了を通知した後、Ｓ１２０９へ移行し、ジョブに対応したデータ種の入力要求である入力データ要求を複合機１０へ送信する。
【０２５８】
続いて、Ｓ１２１０では、複合機１０からの入力データを受信する。なお、入力データは、複合機１０の制御部１１により実行される上述の入力ジョブ（図１８）におけるＳ５１４の処理で送信される。
【０２５９】
続いて、Ｓ１２１１では、正常終了であるか否かを判定する。
このＳ１２１１で、正常終了でないと判定した場合には、Ｓ１２０８へ移行し、異常終了をサービス状態情報として複合機１０へ送信した後、本スキャンジョブ処理を終了する。
【０２６０】
一方、Ｓ１２１１で、正常終了であると判定した場合には、Ｓ１２１２へ移行し、正常終了をサービス状態情報として複合機１０へ送信した後、本スキャンジョブ処理を終了する。
【０２６１】
次に、セッション処理（図２３）におけるＳ１０１０の処理で機能サーバ処理、セッション処理、ＵＩジョブ処理及びスキャン処理と並列動作するように起動される印刷ジョブ処理について、図２７のフローチャートを用いて説明する。
【０２６２】
この印刷ジョブ処理が開始されると、まずＳ１３０１で、複合機１０から複合機状態情報を受信する。なお、複合機状態情報は、複合機１０の制御部１１により実行される上述の出力ジョブ（図１９）におけるＳ６０４の処理で送信される。
【０２６３】
続いて、Ｓ１３０２では、エラーカウントを初期化する。
続いて、Ｓ１３０３では、ＵＩジョブ処理（図２５）におけるＳ１１０４の処理で受信したパラメータに基づき、印刷のパラメータを複合機パラメータとして複合機１０へ送信する。
【０２６４】
続いて、Ｓ１３０４では、複合機１０において複合機パラメータが正常に受信されたか否かを判定する。具体的には、複合機１０の制御部１１により実行される上述の出力ジョブ（図１９）におけるＳ６０９の処理により、複合機受取状況として正常受取である旨が通知された場合に正常に受信されたと判定し、Ｓ６０８の処理により、複合機受取状況として異常受取である旨が通知された場合に正常に受信されなかったと判定する。
【０２６５】
このＳ１３０４で、複合機パラメータが正常に受信されなかったと判定した場合には、Ｓ１３０５へ移行し、正常に受信されなかったと判定された回数が２回目であるか否かを判定する。具体的には、Ｓ１３０２で初期化したエラーカウントに基づき判定する。
【０２６６】
そして、Ｓ１３０５で、２回目でない（１回目である）と判定した場合には、Ｓ１３０６へ移行し、エラーカウントをカウントアップした後、Ｓ１３０３へ戻る。
一方、Ｓ１３０５で、２回目であると判定した場合には、Ｓ１３０７へ移行し、セッションへ停止を通知する。さらに、Ｓ１３０８へ移行し、異常終了をサービス状態情報として複合機１０へ送信した後、本印刷ジョブ処理を終了する。
【０２６７】
また、Ｓ１３０４で、複合機パラメータが正常に受信されたと判定した場合には、Ｓ１３１３へ移行し、セッションへ印刷準備の完了を通知した後、Ｓ１３０９へ移行し、生成された印刷データを順次複合機１０へ送信する。
【０２６８】
続いて、Ｓ１３１０では、複合機１０からの複合機状態情報を受信する。なお、複合機状態情報は、複合機１０の制御部１１により実行される上述の出力ジョブ（図１９）におけるＳ６１６の処理で送信される。
【０２６９】
続いて、Ｓ１３１１では、正常終了であるか否かを判定する。
このＳ１３１１で、正常終了でないと判定した場合には、Ｓ１３０８へ移行し、異常終了をサービス状態情報として複合機１０へ送信した後、本印刷ジョブ処理を終了する。
【０２７０】
一方、Ｓ１３１１で、正常終了であると判定した場合には、Ｓ１３１２へ移行し、正常終了をサービス状態情報として複合機１０へ送信した後、本印刷ジョブ処理を終了する。
次に、機能サーバ３０の制御部３１が行うサービス追加処理について、図２８のフローチャートを用いて説明する。なお、本サービス追加処理は、機能サーバ３０の管理者により所定の操作が行われることにより開始される。
【０２７１】
このサービス追加処理が開始されると、まずＳ１４０１で、追加するサービスのプログラム（サービスソフトウェア３７）を所定のディレクトリにコピーする操作を、機能サーバ３０の管理者に行わせる。
【０２７２】
続いて、Ｓ１４０２では、Ｓ１４０１でコピーしたプログラムのアドレスをＵＲＬに変換する処理を行う。
続いて、Ｓ１４０３では、追加したサービスのタイトル（サービス名）を機能サーバ３０の管理者に入力させる。
【０２７３】
続いて、Ｓ１４０４では、追加したサービスのカテゴリを機能サーバ３０の管理者に入力させる。なお、ここで入力させるカテゴリは、上述した「データ保存サービス」、「印刷サービス」及び「コピー応用サービス」の３つのカテゴリのうちのいずれかである。
【０２７４】
続いて、Ｓ１４０５では、Ｓ１４０３で入力されたタイトルとＳ１４０４で入力されたカテゴリを、Ｓ１４０２でアドレスを変換して生成されたＵＲＬと対応づけて記憶する。
続いて、Ｓ１４０５で記憶したタイトル、カテゴリ、ＵＲＬを伴い、ディレクトリサーバ２０にサービスの登録を通知する。その後、本サービス追加処理を終了する。
【０２７５】
次に、機能サーバ３０の制御部３１が行うサービス変更処理について、図２９のフローチャートを用いて説明する。なお、本サービス追加処理は、機能サーバ３０の管理者により所定の操作が行われることにより開始される。
【０２７６】
このサービス変更処理が開始されると、まずＳ１５０１で、サービスに関する属性データを変更する操作を機能サーバ３０の管理者に行わせる。
続いて、Ｓ１５０２では、変更後のサービスのタイトルとカテゴリを、ＵＲＬと対応づけて記憶する。
【０２７７】
続いて、Ｓ１５０３では、タイトル、カテゴリ、ＵＲＬを伴い、ディレクトリサーバ２０にサービスの変更を通知する。その後、本サービス変更処理を終了する。
次に、機能サーバ３０の制御部３１が行うサービス削除処理について、図３０のフローチャートを用いて説明する。なお、本サービス追加処理は、機能サーバ３０の管理者により所定の操作が行われることにより開始される。
【０２７８】
このサービス削除処理が開始されると、まず、Ｓ１６０１で、属性データを選択することによる削除の指示を機能サーバ３０の管理者に行わせる。
続いて、Ｓ１６０２では、タイトル、カテゴリ、ＵＲＬを伴い、ディレクトリサーバ２０にサービスの削除を通知する。
【０２７９】
続いて、Ｓ１６０３では、属性データからレコードを削除する。
続いて、Ｓ１６０４では、ＵＲＬに対応したプログラム（サービスソフトウェア３７）を削除する。その後、本サービス削除処理を終了する。
【０２８０】
なお、本第１実施形態の画像処理システムでは、複合機１０が、本発明のクライアントに相当し、セッション処理（図１４）におけるＳ２１１の処理が、本発明の待機時間設定手段に相当する。また、機能サーバ３０が、本発明のサーバに相当し、サービス制御情報処理（図２２）におけるＳ９０８〜Ｓ９１０，Ｓ９１２，Ｓ９１３の処理と、機能サーバ処理（図２１）におけるＳ８０９の処理とが、本発明のデータ返信手段に相当する。さらに、ブロードバンドルータ２が、本発明の通信監視手段に相当する。
【０２８１】
以上説明したように、本第１実施形態の画像処理システムは、複合機１０と、複合機１０からの要求に応じたサービスを実行可能な機能サーバ３０と、機能サーバ３０が実行可能なサービスについての情報を複合機１０へ提供するディレクトリサーバ２０とを備えており、複合機１０では、ディレクトリサーバ２０から送信されるサービス定義情報２５に基づき、機能サーバ３０に要求するサービスを決定する。また、機能サーバ３０から送信されるサービスＩ／Ｆ情報３６に基づき、要求したサービスの実行に必要なパラメータを設定する。
【０２８２】
このため、本画像処理システムによれば、インターネット上の一般サーバのように日々サービスが無秩序に増減する環境にも適応させることができる。すなわち、本画像処理システムでは、機能サーバ３０が実行可能なサービスの種類や要求先については、ディレクトリサーバ２０から送信されるサービス定義情報２５に基づき把握することができるため、サービスの種類や要求先についての情報を複合機１０に登録する必要がない。このため、機能サーバ３０で実行可能なサービスが頻繁に増減する環境においても、複合機１０及びその利用者の負担を抑えることができ、また、利用可能なサービスの種類が膨大な量になっても、複合機１０に設ける記憶領域の負担を抑えることができる。しかも、複合機１０に不要な情報が登録されたままの状態になるという問題も生じない。加えて、サービスの実行に必要なパラメータの仕様が変更される状況下においても、複合機１０の負担を抑えることができる。
【０２８３】
また、本実施形態の画像処理システムにおいて、サービス定義情報２５及びサービスＩ／Ｆ情報３６は、複合機１０からのリクエストに対するレスポンスとして送信される。このため、本画像処理システムによれば、ブロードバンドルータ２の設定を変更することなく、サービス定義情報２５やサービスＩ／Ｆ情報３６を複合機１０で受信することができる。
【０２８４】
さらに、本実施形態の画像処理システムでは、複合機１０から機能サーバ３０に対しサービスの要求を行う場合にのみサービス定義情報２５やサービスＩ／Ｆ情報３６が送信されるようにしている。このため、本画像処理システムによれば、サービス定義情報２５やサービスＩ／Ｆ情報３６が複合機１０へ必要以上に送信されることを防ぐことができる。この結果、複合機１０の負担を軽減することができる。
【０２８５】
一方、本実施形態の画像処理システムでは、サービス定義情報２５やサービスＩ／Ｆ情報３６に基づく情報を複合機１０が備える操作パネル１２ａのディスプレイ５２に表示させ、機能サーバ３０に要求するサービスの選択及びそのサービスに関するパラメータの設定を複合機１０の利用者に行わせるようにしている。このため、本画像処理システムによれば、複合機１０の利用者が望むサービスを実行することができる。
【０２８６】
また、本実施形態の画像処理システムでは、機能サーバ３０の実行可能なサービスに変更が生じた場合に、その内容が機能サーバ３０からディレクトリサーバ２０へ通知される。このため、本画像処理システムによれば、ディレクトリサーバ２０側で機能サーバ３０が実行可能なサービスの内容等を調査する処理を行う必要がなく、効果的な情報収集が可能となり、常に最新の情報を複合機１０に提供することができる。特に、サービスが複数のサーバに点在するシステムにおいては、ディレクトリサーバ２０側ですべてのサービスを調査することが困難となるため、機能サーバ３０側から通知することによる効果が高い。
【０２８７】
さらに、本実施形態の画像処理システムでは、サービスＩ／Ｆ情報３６により設定可能なパラメータを、サービスの内容に応じて、複合機１０において設定可能なパラメータの一部に限定する。このため、本画像処理システムによれば、設定が好ましくないパラメータが設定されてしまうことを防ぐことができる。この結果、サービスを効果的に実行することができる。
【０２８８】
そして特に、本実施形態の画像処理システムは、次のような優れた効果を奏する。
すなわち、本画像処理システムにおいて、機能サーバ３０は、複合機１０から受信したリクエストに対するレスポンスとして、複合機１０へ送信すべきコマンドが存在する場合には、そのコマンドを含む返信データを複合機１０へ直ちに送信し、複合機１０へ送信すべきコマンドが存在しない場合には、コマンドの存在しない状態が、コマンド要求の受信から、タイムアウト時間に基づき設定された最長滞在時間継続した時点で、コマンドなしの返信データを送信する。このため、本画像処理システムによれば、ネットワークトラフィックを増大させることなく、複合機１０が機能サーバ３０からのコマンドを受信する待ち時間を効果的に短縮することができる。しかも、機能サーバ３０において複合機１０へ送信すべきコマンドが発生しなくても最長滞在時間が経過した時点でコマンドなしの返信データが送信されるようにしているため、ネットワークにおける通信エラーを防止することができる。
【０２８９】
さらに、本画像処理システムでは、複合機１０が、機能サーバ３０へコマンド要求を繰り返し送信するようにしているため、機能サーバ３０からのコマンドを確実に受信することができる。
【０２９０】
加えて、本画像処理システムでは、複合機１０側で最長滞在時間を自動的に設定するようにしているため、複合機１０の利用者が、ブロードバンドルータ２で設定されているタイムアウト時間を把握していない場合にも、最長滞在時間をネットワーク環境等に応じた適切な値に設定することができる。しかも、機能サーバ３０が複数の複合機１０と通信を行う場合にも、複合機１０ごとに適切な値の最長滞在時間を用いることができる。
【０２９１】
ところで、上記第１実施形態の画像処理システムでは、複合機１０が、セッション処理の開始時に、最長滞在時間を、タイムアウト時間Ｔｏと通信時間Ｔ１とに基づき算出した値に設定し、以降はその最長滞在時間に基づき機能サーバ３０との通信を行うようにしている。しかしながら、実際には、最適な最長滞在時間の値はネットワークにおける通信の混雑状態によって変化する。
【０２９２】
そこで、ネットワークにおける通信の混雑状態に応じて最長滞在時間の値を調整する第２実施形態の画像処理システムについて説明する。
第２実施形態の画像処理システムは、上記第１実施形態の画像処理システムと基本的にはほぼ同一であるが、複合機１０の制御部１１が実行するセッション処理の内容が異なる。
【０２９３】
ここで、第２実施形態の画像処理システムを構成する複合機１０の制御部が実行するセッション処理について、図３１のフローチャートを用いて説明する。このセッション処理は、上記第１実施形態のセッション処理（図１４）と比較すると、図１４のＳ２０４の処理に代えてＳ２３１の処理を行う点と、図１４のＳ２１２及びＳ２１６の処理を行わない点とが異なる。その他、図１４と同一内容の処理については、同一のステップ番号を付しており、詳細な説明は省略する。なお、Ｓ２２１〜Ｓ２２８の処理は、図１５と同一であるため、図示を省略している。
【０２９４】
図３１のセッション処理が開始されると、まず、Ｓ２０１で、利用するサービスを選択し、サービス定義情報２５のＬｉｎｋ＿Ｌｏｃａｔｉｏｎ（ＵＲＬを直接入力した場合には、そのＵＲＬ）に基づきサービスを起動する。
【０２９５】
続いて、Ｓ２０２では、機能サーバ３０からセッションＩＤを受信する。
続いて、Ｓ２０３では、最長滞在時間を、６０４８００秒に設定する。
続いて、Ｓ２３１では、最長滞在時間設定済フラグをオンにする。
【０２９６】
続いて、Ｓ２０５でタイマを初期化し、Ｓ２０６でそのタイマを始動する。
続いて、Ｓ２０７では、最長滞在時間設定済フラグがオンであるか否かを判定する。ここで、本Ｓ２０７の判定処理は、本セッション処理において複数回繰り返して行われるが、そのうち、タイムアウトエラー未検出時の判定処理においては、最長滞在時間設定済フラグがオンであると判定し、タイムアウトエラー検出後の判定処理では、最長滞在時間設定済フラグがオンでないと判定する。なお、このような判定結果となるのは、Ｓ２３１，Ｓ２１９の処理により最長滞在時間設定済フラグのオン／オフが切り替えられることによるものである。
【０２９７】
そこで、本セッション処理の流れを分かりやすくするために、Ｓ２０７でのタイムアウトエラー未検出時の判定処理後の流れ、タイムアウトエラー検出後の判定処理後の流れについて、順に説明する。
【０２９８】
［タイムアウトエラー未検出時の判定処理後の流れ］
Ｓ２０７でのタイムアウトエラー未検出時の判定処理では、Ｓ２３１の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、Ｓ２１３へ移行する。
【０２９９】
Ｓ２１３では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、Ｓ２０３で設定した最長滞在時間（６０４８００秒）とともに機能サーバ３０へ送信する。これにより、機能サーバ３０では、その最長滞在時間に基づく応答処理が行われる。
【０３００】
続いて、Ｓ２１４では、Ｓ２１３で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このＳ２１４で、指令が受信されていないと判定した場合には、Ｓ２１５へ移行し、Ｓ２１３で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
【０３０１】
そして、Ｓ２１５で、タイムアウトによる通信エラーが発生していないと判定した場合には、Ｓ２１４へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ただし、最長滞在時間を、通常想定されるタイムアウト時間に比べ十分大きな値（６０４８００秒）に設定しているため、長時間に渡って機能サーバ３０からレスポンスの送信がない場合、機能サーバ３０からレスポンスが送信される前にタイムアウト時間が経過し、通信エラーが発生することとなる。その結果、Ｓ２１５でタイムアウトによる通信エラーが発生したと判定し、Ｓ２１７へ移行する。
【０３０２】
Ｓ２１７では、Ｓ２０６で始動したタイマを停止する。
続いて、Ｓ２１８では、Ｓ２１７で停止したタイマの計時時間を、タイムアウト時間Ｔｏとして記憶する。
【０３０３】
続いて、Ｓ２１９では、最長滞在時間設定済フラグをオフにする。
その後、Ｓ２２０へ移行し、所定インターバル待機した後、Ｓ２０５へ戻る。そして、Ｓ２０５でタイマを初期化し、Ｓ２０６でそのタイマを始動した後、Ｓ２０７へ移行する。
【０３０４】
一方、Ｓ２１４で、指令が受信されたと判定した場合には、Ｓ２２１（図１５）へ移行する。以降の処理の説明については省略する。
［タイムアウトエラー検出後の判定処理後の流れ］
Ｓ２０７でのタイムアウトエラー検出後の判定処理では、Ｓ２１９の処理で最長滞在時間設定済フラグがオフにされているため、最長滞在時間設定済フラグがオンでないと判定して、Ｓ２０８へ移行する。
【０３０５】
Ｓ２０８では、最長滞在時間を０に設定し、その設定した最長滞在時間を「空の問い合わせ」とともに機能サーバ３０へ送信する。
続いて、Ｓ２０９では、Ｓ２０８で送信した問い合わせに対する機能サーバ３０からのレスポンスを受信する。
【０３０６】
続いて、Ｓ２１０では、Ｓ２０６で始動したタイマを停止し、そのタイマの計時時間をＴ１に代入する。
続いて、Ｓ２１１では、Ｓ２１８で記憶したタイムアウト時間Ｔｏから通信時間Ｔ１を減算し、更に通信時間Ｔ１を２倍した値を減算することによって得られる値を、最長滞在時間に設定する。
【０３０７】
続いて、Ｓ２１３では、「複合機指令問合せ」を、Ｓ２１１で設定した最長滞在時間とともに機能サーバ３０へ送信する。これにより、機能サーバ３０では、その最長滞在時間に基づく応答処理が行われる。このように第２実施形態のセッション処理では、複合機指令問合せを送信するタイミングごとに、タイムアウト時間Ｔｏと通信時間Ｔ１とに基づき最長滞在時間を算出する。ここで、通信時間Ｔ１は、ネットワークにおける通信が混雑するほど長くなることから、算出値は通信の混雑状態が加味された値となる。この結果、機能サーバ３０で用いられる最長滞在時間の値は、通信の混雑状態の変化に応じて調整されることとなる。
【０３０８】
続いて、Ｓ２１４では、Ｓ２１３で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このＳ２１４で、指令が受信されていないと判定した場合には、Ｓ２１５へ移行し、Ｓ２１３で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
【０３０９】
そして、Ｓ２１５で、タイムアウトによる通信エラーが発生していないと判定した場合には、Ｓ２１４へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ただし、最長滞在時間をタイムアウト時間Ｔｏよりも短く設定しており、しかも通信の混雑状態に応じて長さが変化する通信時間Ｔ１を用いて最長滞在時間を算出しているため、タイムアウト時間が経過する前に機能サーバ３０からレスポンスが送信され、Ｓ２１５でタイムアウトによる通信エラーが発生したと判定する前に、Ｓ２１４で指令が受信されたと判定することとなる。
【０３１０】
そして、Ｓ２１４で、指令が受信されたと判定した場合には、Ｓ２２１（図１５）へ移行する。以降の処理の説明については省略する。
なお、本第２実施形態の画像処理システムでは、セッション処理（図３１）におけるＳ２０８〜２１０の処理が、本発明の通信状態検出手段に相当する。
【０３１１】
以上説明したように、本第２実施形態の画像処理システムによれば、最長滞在時間を、ネットワークにおける通信の混雑状態に応じた最適な値に調整することが可能となる。この結果、通信エラーを防止しつつ、複合機１０が機能サーバ３０からのコマンドを受信する待ち時間を効果的に短縮することができる。
【０３１２】
なお、上記第２実施形態の画像処理システムでは、計算式に基づき最長滞在時間を算出するようにしているが、これに限ったものではなく、例えば、通信の混雑状態（通信速度等）に対応する最適な最長滞在時間の値をデータテーブルとして記憶しておき、このデータテーブルを参照して最長滞在時間を設定するようにしてもよい（後述する第３実施形態についても同様である。）。
【０３１３】
ところで、上記第２実施形態の画像処理システムでは、通信の混雑状態を複合機１０側で検出して最長滞在時間の調整を行うようにしているが、これに限ったものではなく、例えば、通信の混雑状態を機能サーバ３０側で検出して最長滞在時間の調整を行うようにすることも可能である。
【０３１４】
そこで、通信の混雑状態を機能サーバ３０側で検出して最長滞在時間の値を調整する第３実施形態の画像処理システムについて説明する。
第３実施形態の画像処理システムは、上記第１実施形態の画像処理システムと基本的にはほぼ同一であるが、複合機１０の制御部１１が実行するセッション処理の内容と、機能サーバ３０の制御部３１が実行する機能サーバ処理及びサービス制御情報処理とが異なる。
【０３１５】
以下、各処理について具体的に説明する。
まず、複合機１０の制御部１１が実行するセッション処理について、図３２のフローチャートを用いて説明する。このセッション処理は、上記第１実施形態のセッション処理（図１４）と比較すると、図１４のＳ２１３の処理に代えてＳ２４１の処理を行う点のみが異なる。その他、図１４と同一内容の処理については、同一のステップ番号を付しており、詳細な説明は省略する。なお、Ｓ２２１〜Ｓ２２８の処理は、図１５と同一であるため、図示を省略している。
【０３１６】
図３２のセッション処理が開始されると、まず、Ｓ２０１で、利用するサービスを選択し、サービス定義情報２５のＬｉｎｋ＿Ｌｏｃａｔｉｏｎ（ＵＲＬを直接入力した場合には、そのＵＲＬ）に基づきサービスを起動する。
【０３１７】
続いて、Ｓ２０２では、機能サーバ３０からセッションＩＤを受信する。
続いて、Ｓ２０３では、最長滞在時間を、６０４８００秒に設定する。
続いて、Ｓ２０４では、最長滞在時間設定済フラグをオンにし、タイムアウト記録フラグをオンにする。
【０３１８】
続いて、Ｓ２０５でタイマを初期化し、Ｓ２０６でそのタイマを始動する。
続いて、Ｓ２０７では、最長滞在時間設定済フラグがオンであるか否かを判定する。ここで、本Ｓ２０７の判定処理は、本セッション処理において複数回繰り返して行われるが、そのうち、本セッション処理が開始されてから１度目のタイムアウトエラー検出直後の判定処理においてのみ、最長滞在時間設定済フラグがオンでないと判定し、それ以外の判定処理（タイムアウトエラー未検出時の判定処理及び最長滞在時間設定後の判定処理）では、最長滞在時間設定済フラグがオンであると判定する。なお、このような判定結果となるのは、Ｓ２０４，Ｓ２１２，Ｓ２１９の処理により最長滞在時間設定済フラグのオン／オフが切り替えられることによるものである。
【０３１９】
そこで、本セッション処理の流れを分かりやすくするために、Ｓ２０７でのタイムアウトエラー未検出時の判定処理後の流れ、１度目のタイムアウトエラー検出直後の判定処理後の流れ、最長滞在時間設定後の判定処理後の流れについて、順に説明する。
【０３２０】
［タイムアウトエラー未検出時の判定処理後の流れ］
Ｓ２０７でのタイムアウトエラー未検出時の判定処理では、Ｓ２０４の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、Ｓ２４１へ移行する。
【０３２１】
Ｓ２４１では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、Ｓ２０３で設定した最長滞在時間（６０４８００秒）と、現在時刻（送信時刻）とともに機能サーバ３０へ送信する。
【０３２２】
続いて、Ｓ２１４では、Ｓ２４１で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このＳ２１４で、指令が受信されていないと判定した場合には、Ｓ２１５へ移行し、Ｓ２４１で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
【０３２３】
そして、Ｓ２１５で、タイムアウトによる通信エラーが発生していないと判定した場合には、Ｓ２１４へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ただし、最長滞在時間を、通常想定されるタイムアウト時間に比べ十分大きな値（６０４８００秒）に設定しているため、長時間に渡って機能サーバ３０からレスポンスの送信がない場合、機能サーバ３０からレスポンスが送信される前にタイムアウト時間が経過し、通信エラーが発生することとなる。その結果、Ｓ２１５でタイムアウトによる通信エラーが発生したと判定し、Ｓ２１６へ移行する。
【０３２４】
Ｓ２１６では、タイムアウト記録フラグがオンであるか否かを判定する。ここでは、Ｓ２０４でタイムアウト記録フラグがオンにされているため、タイムアウト記録フラグがオンであると判定して、Ｓ２１７へ移行する。
【０３２５】
Ｓ２１７では、Ｓ２０６で始動したタイマを停止する。
続いて、Ｓ２１８では、Ｓ２１７で停止したタイマの計時時間を、タイムアウト時間Ｔｏとして記憶する。
【０３２６】
続いて、Ｓ２１９では、最長滞在時間設定済フラグをオフにする。
その後、Ｓ２２０へ移行し、所定インターバル待機した後、Ｓ２０５へ戻る。そして、Ｓ２０５でタイマを初期化し、Ｓ２０６でそのタイマを始動した後、Ｓ２０７へ移行する。
【０３２７】
一方、Ｓ２１４で、指令が受信されたと判定した場合には、Ｓ２２１（図１５）へ移行する。以降の処理の説明については省略する。
［１度目のタイムアウトエラー検出直後の判定処理後の流れ］
Ｓ２０７での１度目のタイムアウトエラー検出直後の判定処理では、Ｓ２１９の処理で最長滞在時間設定済フラグがオフにされているため、最長滞在時間設定済フラグがオンでないと判定して、Ｓ２０８へ移行する。
【０３２８】
Ｓ２０８では、最長滞在時間を０に設定し、その設定した最長滞在時間を「空の問い合わせ」とともに機能サーバ３０へ送信する。
続いて、Ｓ２０９では、Ｓ２０８で送信した問い合わせに対する機能サーバ３０からのレスポンスを受信する。
【０３２９】
続いて、Ｓ２１０では、Ｓ２０６で始動したタイマを停止し、そのタイマの計時時間をＴ１に代入する。
続いて、Ｓ２１１では、Ｓ２１８で記憶したタイムアウト時間Ｔｏから通信時間Ｔ１を減算し、更に通信時間Ｔ１を２倍した値を減算することによって得られる値を、最長滞在時間に設定する。
【０３３０】
続いて、Ｓ２１２では、最長滞在時間設定済フラグをオンにし、タイムアウト記録フラグをオフにする。
続いて、Ｓ２４１では、「複合機指令問合せ」を、Ｓ２１１で設定した最長滞在時間と、現在時刻（送信時刻）とともに機能サーバ３０へ送信する。
【０３３１】
続いて、Ｓ２１４では、Ｓ２４１で送信した「複合機指令問合せ」に対して返信される指令が受信されたか否かを判定する。
このＳ２１４で、指令が受信されていないと判定した場合には、Ｓ２１５へ移行し、Ｓ２４１で送信した複合機指令問合せに対するレスポンスがタイムアウト時間を超えることによる通信エラーが発生したか否かを判定する。
【０３３２】
そして、Ｓ２１５で、タイムアウトによる通信エラーが発生していないと判定した場合には、Ｓ２１４へ戻る。つまり、タイムアウトによる通信エラーが発生するまでの間、複合機指令問合せに対するレスポンス待ちの状態になる。ここでは、最長滞在時間をタイムアウト時間Ｔｏよりも短く設定しているため、タイムアウト時間が経過する前に機能サーバ３０からレスポンスが送信されることが通常であるが、仮に通信エラーが発生した場合には、Ｓ２１５でタイムアウトによる通信エラーが発生したと判定し、Ｓ２１６へ移行する。
【０３３３】
Ｓ２１６では、タイムアウト記録フラグがオンであるか否かを判定する。ここでは、Ｓ２１２でタイムアウト記録フラグがオフにされているため、タイムアウト記録フラグがオンでないと判定して、Ｓ２４１へ戻る。つまり、タイムアウトによる通信エラーが発生した場合には、複合機指令問合せを機能サーバ３０へ再度送信するようにしている。
【０３３４】
一方、Ｓ２１４で、指令が受信されたと判定した場合には、Ｓ２２１（図１５）へ移行する。なお、Ｓ２２１以降の処理についての説明は省略する。
［最長滞在時間設定後の判定処理後の流れ］
Ｓ２０７での最長滞在時間設定後の判定処理では、Ｓ２１２の処理で最長滞在時間設定済フラグがオンにされているため、最長滞在時間設定済フラグがオンであると判定して、Ｓ２４１へ移行する。
【０３３５】
Ｓ２４１では、複合機に対する指令の問い合わせである「複合機指令問合せ」を、Ｓ２１１で設定した最長滞在時間（前回と同じ値）とともに機能サーバ３０へ送信する。
以降の流れは、上述した「１度目のタイムアウトエラー検出直後の判定処理後の流れ」と同様である。
【０３３６】
次に、機能サーバ３０の制御部３１が実行する機能サーバ処理について、図３３のフローチャートを用いて説明する。この機能サーバ処理は、上記第１実施形態の機能サーバ処理（図２１）と比較すると、Ｓ８０５の処理の後にＳ８２１の処理を行う点のみが異なる。その他、図２１と同一内容の処理については、同一のステップ番号を付しており、詳細な説明は省略する。
【０３３７】
この機能サーバ処理が開始されると、まず、Ｓ８０１で、ＨＴＴＰリクエストを受信する。
続いて、Ｓ８０２では、Ｓ８０１で受信したＨＴＴＰリクエストがサービス起動の指令であるか否かを判定する。
【０３３８】
このＳ８０２で、サービス起動の指令であると判定した場合には、Ｓ８０３へ移行し、指定サービスが存在しないか否かを判定する。
そして、Ｓ８０３で、何らかの異常により指定サービスが存在しないと判定した場合には、Ｓ８０４へ移行し、エラー通知情報を生成し、Ｓ８０９へ移行する。
【０３３９】
一方、Ｓ８０３で、指定サービスが正常に存在すると判定した場合には、Ｓ８０５へ移行し、セッションＩＤを生成して送信データを生成する。また、サービスを実行するプロセスを起動する。
【０３４０】
続いて、Ｓ８２１で、複合機１０と機能サーバ３０との間の基準通信時間を表す変数Ｔ２の初期値を６０４８００秒（一週間）に設定する。そして、Ｓ８０９へ移行する。なお、ここでの６０４８００秒は、十分に長い値の一例であり、最長滞在時間に設定する６０４８００秒とは直接関係がない。
【０３４１】
また、Ｓ８０２で、サービス起動の指令でないと判定した場合には、Ｓ８０６へ移行し、Ｓ８０１で受信したＨＴＴＰリクエストがサービス終了の指令であるか否かを判定する。
【０３４２】
このＳ８０６で、サービス終了の指令であると判定した場合には、Ｓ８０７へ移行し、セッションＩＤ及び確保したリソースを解放し、Ｓ８０９へ移行する。
一方、Ｓ８０６で、サービス終了の指令でないと判定した場合には、Ｓ８０８へ移行し、サービス制御情報処理（後述する図３４の処理）を実行した後、Ｓ８０９へ移行する。
【０３４３】
Ｓ８０９では、生成した情報を含むＨＴＴＰレスポンスの送信処理を行う。
続いて、Ｓ８１０では、Ｓ８０８のサービス制御情報処理を実施したか否かを判定する。
【０３４４】
このＳ８１０で、サービス制御情報処理を実施したと判定した場合には、Ｓ８１１へ移行し、セッションＩＤ又はジョブＩＤに対応するメモリアドレスに「送信済み」をセットした後、本機能サーバ処理を終了する。
【０３４５】
一方、Ｓ８１０で、サービス制御情報処理を実施していないと判定した場合には、そのまま本機能サーバ処理を終了する。
次に、機能サーバ処理（図３３）におけるＳ８０８で実行されるサービス制御情報処理の具体的内容について、図３４のフローチャートを用いて説明する。このサービス制御情報処理は、上記第１実施形態のサービス制御情報処理（図２２）と比較すると、Ｓ９２１〜Ｓ９２５の処理が加えられている点が異なる。その他、図２２と同一内容の処理については、同一のステップ番号を付しており、詳細な説明は省略する。
【０３４６】
このサービス制御情報処理が開始されると、まず、Ｓ９０１で、サービスに送信する情報が存在するか否かを判定する。
このＳ９０１で、サービスに送信する情報が存在すると判定した場合には、Ｓ９０２へ移行し、セッションＩＤ又はジョブＩＤに対応する送信するプロセスを特定する。
【０３４７】
続いて、Ｓ９０３では、プロセスが特定できないか否かを判定する。
このＳ９０３で、何らかの異常によりプロセスが特定できないと判定した場合には、Ｓ９０４へ移行し、エラー通知情報を生成した後、本サービス制御情報処理を終了する。
【０３４８】
一方、Ｓ９０３で、プロセスが特定できると判定した場合には、Ｓ９０５へ移行し、特定したプロセスに情報を送信した後、Ｓ９０６へ移行する。
また、Ｓ９０１で、サービスに送信する情報が存在しないと判定した場合には、そのままＳ９０６へ移行する。
【０３４９】
Ｓ９０６では、セッションＩＤ又はジョブＩＤに対応する返信情報の格納メモリを特定する。
続いて、Ｓ９０７では、格納メモリが特定できないか否かを判定する。
【０３５０】
このＳ９０７で、格納メモリが特定できないと判定した場合には、Ｓ９０４へ移行し、エラー通知情報を生成した後、本サービス制御情報処理を終了する。
一方、Ｓ９０７で、格納メモリが特定できると判定した場合には、Ｓ９２１へ移行し、現在時刻（受信時刻）と複合機１０から受信した「送信時刻」との差分をＴ３とする。つまり、複合機１０から機能サーバ３０への通信時間Ｔ３を算出しているのである。
【０３５１】
続いて、Ｓ９２２では、受信した最長滞在時間が０であるか否かを判定する。なお、値が０の最長滞在時間は、上述のセッション処理（図３２）におけるＳ２０８の処理で送信される。
【０３５２】
このＳ９２２で、受信した最長滞在時間が０であると判定した場合には、Ｓ９２３へ移行し、複合機１０と機能サーバ３０との間の基準通信時間を表す変数Ｔ２に、Ｓ９２１で算出した通信時間Ｔ３を代入した後、Ｓ９０８へ移行する。つまり、値が０の最長滞在時間を受信した時点での通信時間Ｔ３を、基準通信時間Ｔ２とするのである。なお、値が０の最長滞在時間が受信されるのは１度だけであるため、以降はその基準通信時間Ｔ２の値が用いられる。
【０３５３】
一方、Ｓ９２２で、受信した最長滞在時間が０でないと判定した場合には、そのままＳ９０８へ移行する。
Ｓ９０８では、最長滞在時間を、複合機１０から受信した最長滞在時間の数値に設定する。
【０３５４】
続いて、Ｓ９２４では、Ｓ９２１で算出した通信時間Ｔ３が、基準通信時間Ｔ２よりも長いか否かを判定する。
このＳ９２４で、通信時間Ｔ３が基準通信時間Ｔ２よりも長いと判定した場合には、Ｓ９２５へ移行し、通信時間Ｔ３と基準通信時間Ｔ２との差分を２倍した値を最長滞在時間から減算することにより、最長滞在時間の調整を行った後、Ｓ９０９へ移行する。つまり「最長滞在時間＝最長滞在時間−（２×（Ｔ３−Ｔ２））として算出するのである。このように、複合機１０で最長滞在時間が設定された時点での通信時間である基準通信時間Ｔ２に比べ、現時点での通信時間Ｔ３が長い場合（通信が混雑している場合）には、最長滞在時間を短く調整してタイムアウトによるエラーの発生を防止するようにしているのである。
【０３５５】
一方、Ｓ９２４で、通信時間Ｔ３が基準通信時間Ｔ２よりも長くない（通信時間Ｔ３が基準通信時間Ｔ２以下である）と判定した場合には、そのままＳ９０９へ移行する。
Ｓ９０９では、複合機１０に送信する情報（複合機１０へ送信すべきコマンド）が存在するか否かを判定する。
【０３５６】
このＳ９０９で、複合機１０に送信する情報が存在しないと判定した場合には、Ｓ９１０へ移行し、複合機１０からのリクエストを受信してから最長滞在時間（Ｓ９０８で設定した最長滞在時間であって、Ｓ９２５を経由した場合には調整後の最長滞在時間）が経過したか否かを判定する。
【０３５７】
このＳ９１０で、最長滞在時間が経過していないと判定した場合には、Ｓ９１１へ移行し、コネクションの切断を検知したか否かを判定する。
そして、Ｓ９１１で、コネクションの切断を検知したと判定した場合には、そのまま本サービス制御情報処理を終了する。
【０３５８】
一方、Ｓ９１１で、コネクションの切断を検知していないと判定した場合には、Ｓ９０９へ戻る。
また、Ｓ９１０で、最長滞在時間が経過したと判定した場合には、Ｓ９１２へ移行し、複合機指令無しの情報を生成した後、本サービス制御情報処理を終了する。
【０３５９】
一方、Ｓ９０９で、複合機１０に送信する情報が存在すると判定した場合には、Ｓ９１３へ移行し、返信情報に基づき、複合機制御指令を生成した後、本サービス制御情報処理を終了する。
【０３６０】
なお、本第３実施形態の画像処理システムでは、サービス制御情報処理（図３４）におけるＳ９２１の処理が、本発明の通信状態検出手段に相当する。
以上説明したように、本第３実施形態の画像処理システムによれば、上記第２実施形態と同様、最長滞在時間を、ネットワークにおける通信の混雑状態に応じた最適な値に調整することが可能となる。この結果、通信エラーを防止しつつ、複合機１０が機能サーバ３０からのコマンドを受信する待ち時間を効果的に短縮することができる。
【０３６１】
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
例えば、上記実施形態の画像処理システムでは、最長滞在時間を自動的に設定するようにしているが、これに限ったものではなく、外部からの入力操作により入力された値に基づき設定するようにしてもよい。すなわち、複合機１０の利用者がタイムアウト時間を予め把握しているような場合には、例えば、複合機１０の操作パネル１２ａにおいて所望の最長滞在時間を入力するよう利用者に促し、入力された値を機能サーバ３０へ送信することにより機能サーバ３０に所望の最長滞在時間を設定させるように構成することができる。また、例えば、最長滞在時間の入力に代えてタイムアウト時間の入力を促し、その入力されたタイムアウト時間に基づき最長滞在時間を算出して、その算出値を機能サーバ３０へ送信することにより機能サーバ３０にその最長滞在時間を設定させるように構成することもできる。
【０３６２】
一方、上記実施形態の画像処理システムでは、複合機１０は、ディレクトリサーバ２０のサービス定義情報記憶部２４に記憶されている複数のサービス定義情報２５のうち、まずトップのサービス定義情報２５を受信してカテゴリを選択し、次に、その選択したカテゴリに対応するサービス定義情報２５を受信してサービスを選択するようにしているが、これに限ったものではない。すなわち、ディレクトリサーバ２０のサービス定義情報記憶部２４に記憶されている複数の（例えばすべての）サービス定義情報２５を一度に受信するようにしてもよい。
【０３６３】
また、サービスＩ／Ｆ情報３６が設定を要求するパラメータとしては、上記実施形態で例示したもの（解像度等）に限らず、サービスの内容に応じて様々なものが考えられる。例えば、モノクロ／カラーの選択、トナーの濃さ（印刷濃度）、音声のボリューム（音量）等が挙げられる。
【０３６４】
さらに、サービスＩ／Ｆ情報３６により設定不能とするパラメータは、高いパラメータ又は低いパラメータのいずれかに限られるものではない。例えば、読取解像度として２００ｄｐｉ、３００ｄｐｉ及び６００ｄｐｉから設定可能な場合に、３００ｄｐｉを設定不能とし、２００ｄｐｉ及び６００ｄｐｉを設定可能としてもよい。
【０３６５】
ところで、上記実施形態の画像処理システムでは、複合機１０、ディレクトリサーバ２０及び機能サーバ３０をそれぞれ１台ずつ備えた構成を例示しているが、このような構成はあくまでも説明を容易にするための構成例にすぎず、これ以外にも様々な構成をとることが可能である。
【０３６６】
すなわち、画像処理システムにおいて、複合機１０は複数設けられていてもよい。具体的には、複数の複合機１０が、共通のディレクトリサーバ２０からのサービス定義情報２５を受信し、共通の機能サーバ３０にサービスを要求するようにすることができる。
【０３６７】
また、画像処理システムにおいて、ディレクトリサーバ２０は複数設けられていてもよい。具体的には、例えば、トップのサービス定義情報２５を送信するディレクトリサーバ２０と、各カテゴリのサービス定義情報２５を送信するディレクトリサーバ２０とを、別々のサーバで構成することも可能である。
【０３６８】
さらに、画像システムにおいて、機能サーバ３０は複数設けられていてもよい。具体的には、例えば、サービスＩ／Ｆ情報３６を送信する機能サーバ３０と、サービスを実行する機能サーバ３０とを、別々のサーバで構成することも可能である。また、サービスを実行する機能サーバ３０についても、例えば、セッション処理を実行する機能サーバ３０と、ジョブ処理を実行する機能サーバ３０とを、別々のサーバで構成することも可能である。一方、例えば、複数種類のサービスについて、サービスＡを実行する機能サーバ３０、サービスＢ〜Ｄを実行する機能サーバ３０、サービスＥ，Ｆを実行する機能サーバ３０、というように、複数の機能サーバ３０が各自のサービスを実行するというように構成することもできる。この場合、サービスＩ／Ｆ情報３６は、例えば、サービスを実行する機能サーバ３０がそのサービスに対応するサービスＩ／Ｆ情報３６を送信するようにしてもよく、サービスを実行する機能サーバ３０とは別の機能サーバ３０が送信するようにしてもよい。
【０３６９】
また、ディレクトリサーバ２０と機能サーバ３０とが共通のコンピュータにより構成されていてもよい。
また、ディレクトリサーバ２０や機能サーバ３０が、画像システムを構成する複数の複合機１０のうちの一部に内蔵されていてもよい。
【図面の簡単な説明】
【０３７０】
【図１】第１実施形態の画像処理システムの概略構成を表すブロック図である。
【図２】操作パネルの説明図である。
【図３】トップのサービス定義情報のデータ構成を表す説明図である。
【図４】コピー応用サービスのサービス定義情報のデータ構成を表す説明図である。
【図５】サービス選択用画面の説明図である。
【図６】翻訳コピーサービスに対応するサービスＩ／Ｆ情報のデータ構成を表す説明図（その１）である。
【図７】翻訳コピーサービスに対応するサービスＩ／Ｆ情報のデータ構成を表す説明図（その２）である。
【図８】翻訳コピーサービスに対応するサービスＩ／Ｆ情報のデータ構成を表す説明図（その３）である。
【図９】パラメータ入力用画面の説明図である。
【図１０】複合機で通常設定することが可能な解像度を説明するための説明図である。
【図１１】複合機と機能サーバとの間で行われる通信の流れを説明するためのラダーチャートである。
【図１２】複合機の制御部が行う複合機処理のフローチャートである。
【図１３】機能サーバに要求するサービスをリストから選択するか否かの選択画面の説明図である。
【図１４】複合機の制御部が行うセッション処理のフローチャート（その１）である。
【図１５】複合機の制御部が行うセッション処理のフローチャート（その２）である。
【図１６】複合機の制御部が行う指定ジョブの起動処理のフローチャートである。
【図１７】複合機の制御部が行うＵＩジョブのフローチャートである。
【図１８】複合機の制御部が行う入力ジョブのフローチャートである。
【図１９】複合機の制御部が行う出力ジョブのフローチャートである。
【図２０】ディレクトリサーバの制御部が行うディレクトリサーバ処理のフローチャートである。
【図２１】機能サーバの制御部が行う機能サーバ処理のフローチャートである。
【図２２】機能サーバの制御部が行うサービス制御情報処理のフローチャートである。
【図２３】機能サーバの制御部が行うセッション処理のフローチャート（その１）である。
【図２４】機能サーバの制御部が行うセッション処理のフローチャート（その２）である。
【図２５】機能サーバの制御部が行うＵＩジョブ処理のフローチャートである。
【図２６】機能サーバの制御部が行うスキャンジョブ処理のフローチャートである。
【図２７】機能サーバの制御部が行う印刷ジョブ処理のフローチャートである。
【図２８】機能サーバの制御部が行うサービス追加処理のフローチャートである。
【図２９】機能サーバの制御部が行うサービス変更処理のフローチャートである。
【図３０】機能サーバの制御部が行うサービス削除処理のフローチャートである。
【図３１】第２実施形態の画像処理システムを構成する複合機の制御部が行うセッション処理のフローチャートである。
【図３２】第３実施形態の画像処理システムを構成する複合機の制御部が行うセッション処理のフローチャートである。
【図３３】第３実施形態の画像処理システムを構成する機能サーバの制御部が行う機能サーバ処理のフローチャートである。
【図３４】第３実施形態の画像処理システムを構成する機能サーバの制御部が行うサービス制御情報処理のフローチャートである。
【符号の説明】
【０３７１】
１…ネットワーク、２，３，４…ルータ、１０…複合機、１１…制御部、１２…操作部、１２ａ…操作パネル、１３…読取部（スキャナ）、１４…記録部（プリンタ）、１５…通信部、１６…記憶部、１７…音入力部、１８…音出力部、２０…ディレクトリサーバ、２１…制御部、２２…通信部、２３…記憶部、２４…サービス定義情報記憶部、３０…機能サーバ、３１…制御部、３２…通信部、３３…記憶部、３４…サービスＩ／Ｆ情報記憶部、３５…サービスソフト記憶部
【図１】
2006134108.tif 000005
【図２】
2006134108.tif 000006
【図３】
2006134108.tif 000007
【図４】
2006134108.tif 000008
【図５】
2006134108.tif 000009
【図６】
2006134108.tif 000010
【図７】
2006134108.tif 000011
【図８】
2006134108.tif 000012
【図９】
2006134108.tif 000013
【図１０】
2006134108.tif 000014
【図１１】
2006134108.tif 000015
【図１２】
2006134108.tif 000016
【図１３】
2006134108.tif 000017
【図１４】
2006134108.tif 000018
【図１５】
2006134108.tif 000019
【図１６】
2006134108.tif 000020
【図１７】
2006134108.tif 000021
【図１８】
2006134108.tif 000022
【図１９】
2006134108.tif 000023
【図２０】
2006134108.tif 000024
【図２１】
2006134108.tif 000025
【図２２】
2006134108.tif 000026
【図２３】
2006134108.tif 000027
【図２４】
2006134108.tif 000028
【図２５】
2006134108.tif 000029
【図２６】
2006134108.tif 000030
【図２７】
2006134108.tif 000031
【図２８】
2006134108.tif 000032
【図２９】
2006134108.tif 000033
【図３０】
2006134108.tif 000034
【図３１】
2006134108.tif 000035
【図３２】
2006134108.tif 000036
【図３３】
2006134108.tif 000037
【図３４】
2006134108.tif 000038