(57)【要約】【課題】  ネットワークに接続されたネットワークデバイスから所望のデバイスを検索するため、大量の検索条件を設定した場合であっても効率良くネットワークデバイスの検索処理を行うことができるサービス提供システム、サービス提供方法及びそのプログラムを提供する。【解決手段】  クライアント端末１００は、利用したいサービスを特定するための特定情報を、ネットワーク２０を介してプリンタ２００へ通知し、プリンタ２００が特定情報に対する応答として出力する応答情報を基に、利用したいサービスの依頼先となるかを判断する。プリンタ２００は、クライアント端末１００から通知された特定情報を取得し、取得した特定情報で特定されるサービスを提供可能か否かを判断し、その判断に基づき応答情報を出力する。【選択図】  図１
2005352890.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された一つ又は複数のクライアント端末と、前記ネットワークを介して前記クライアント端末に種々のサービスを提供する複数のサービス提供デバイスとから構成されるサービス提供システムであって、
前記クライアント端末は、
利用したいサービスを特定するための特定情報を、前記ネットワークを介して複数の前記サービス提供デバイスへ通知する通知手段と、
前記サービス提供デバイスが前記特定情報に対する応答として出力する応答情報を基に、利用したいサービスの依頼先となるサービス提供デバイスを選択する選択手段と
を具備し、
前記サービス提供デバイスは、
前記クライアント端末から通知された前記特定情報を取得する取得手段と、
前記取得手段が取得した前記特定情報で特定されるサービスを提供可能か否かに基づき前記応答情報を出力する応答手段とを具備すること
を特徴とするサービス提供システム。
【請求項２】
前記クライアント端末において利用したい前記サービスとは、前記クライアント端末がジョブを実行するにあたり、該ジョブにて要求されるサービスであることを特徴とする請求項１に記載のサービス提供システム。
【請求項３】
前記特定情報は、前記クライアント端末において利用したい前記サービスの概要を示す第１の情報を少なくとも含み、
前記応答手段は、前記特定情報に含まれる前記第１の情報で特定されるサービスを提供可能か否かに基づき前記応答情報を出力することを特徴とする請求項１又は２に記載のサービス提供システム。
【請求項４】
前記特定情報は、前記クライアント端末において利用したい前記サービスの概要を示す第１の情報、及び、前記クライアント端末において利用したい前記サービスの詳細を特定するための第２の情報を少なくとも含み、
前記応答手段は、前記特定情報に含まれる前記第１の情報及び前記第２の情報で特定されるサービスを提供可能か否かに基づき応答することを特徴とする請求項１又は２に記載のサービス提供システム。
【請求項５】
前記第２の情報が前記サービスの詳細に関するサービス情報を格納する格納場所を特定する情報であり、前記格納場所は、前記クライアント端末が備える第１の格納手段、又は、前記ネットワークに接続された情報処理装置が備える第２の格納手段である場合に、
前記サービス提供デバイスの前記取得手段は、前記特定情報を基に、前記第１の格納手段、又は、前記第２の格納手段から前記サービス情報を取得することを特徴とする請求項４に記載のサービス提供システム。
【請求項６】
前記第２の情報は、前記第２の情報が付与されていることを示す情報及び、前記サービスの詳細を特定する情報として前記サービス情報の格納場所に関する情報から構成されることを特徴とする請求項４又は５に記載のサービス提供システム。
【請求項７】
前記クライアント端末が前記応答情報を得る方法は、前記サービス提供デバイスから前記ネットワークを介して前記応答情報を受信する場合と、前記サービス提供デバイスから前記ネットワークを介して情報処理装置に前記応答情報が送信され、前記情報処理装置は受信した前記応答情報を所定の格納場所に格納し、前記情報処理装置の前記所定の格納場所から前記応答情報を前記ネットワーク経由で取得する場合があり、
前記クライアント端末が前記ネットワークを介して前記サービス提供デバイスから前記応答情報を受信する場合には、前記特定情報は、前記応答情報を送信する送信先の情報として前記クライアント端末を指定する情報を含み、
前記クライアント端末が前記情報処理装置を介して前記応答情報を得る場合には、前記特定情報は、前記応答情報を送信する送信先の情報として前記情報処理装置における前記所定の格納場所を特定する情報を含むこと
を特徴とする請求項１〜６のいずれか１項に記載のサービス提供システム。
【請求項８】
前記クライアント端末は、前記特定情報に前記応答情報を送信する送信先の情報として前記クライアント端末を指定する情報を含ませるか、前記情報処理装置における前記所定の格納場所を特定する情報を含ませるか選択する選択手段を更に具備することを特徴とする請求項７に記載のサービス提供システム。
【請求項９】
前記サービス提供デバイスの応答手段は、前記サービス情報に応じたサービスを提供可能である場合にのみ、前記応答情報を出力することを特徴とする請求項１〜８のいずれか１項に記載のサービス提供システム。
【請求項１０】
前記特定情報が前記第２の情報を含み、かつ、前記サービス提供デバイスの前記応答手段が前記第２の情報で特定される前記サービス情報を基にサービスを提供可能であるか否かを判断する機能を有しない場合には、前記応答手段は、前記応答情報を出力しないことを特徴とする請求項４〜８のいずれか１項に記載のサービス提供システム。
【請求項１１】
ネットワークに接続された一つ又は複数のクライアント端末と、前記ネットワークを介して前記クライアント端末に種々のサービスを提供する複数のサービス提供デバイスとから構成されるサービス提供システムを用いたサービス提供方法であって、
前記クライアント端末において、利用したいサービスを特定するための特定情報を、前記ネットワークを介して複数の前記サービス提供デバイスへ通知する通知ステップと、
前記サービス提供デバイスにおいて、前記クライアント端末から通知された前記特定情報を取得する取得ステップと、
前記サービス提供デバイスにおいて、前記取得ステップで取得した前記特定情報で特定されるサービスを提供可能か否かに基づき前記応答情報を出力する応答ステップと、
前記クライアント端末において、前記サービス提供デバイスが出力する応答情報を基に、利用したいサービスの依頼先となるサービス提供デバイスを選択する選択ステップと
を有することを特徴とするサービス提供方法。
【請求項１２】
前記クライアント端末において利用したい前記サービスとは、前記クライアント端末がジョブを実行するにあたり、該ジョブにて要求されるサービスであることを特徴とする請求項１１に記載のサービス提供方法。
【請求項１３】
前記特定情報は、前記クライアント端末において利用したい前記サービスの概要を示す第１の情報を少なくとも含み、
前記サービス提供デバイスにおける前記応答ステップは、前記特定情報に含まれる前記第１の情報で特定されるサービスを提供可能か否かに基づき前記応答情報を出力することを特徴とする請求項１１又は１２に記載のサービス提供方法。
【請求項１４】
前記特定情報は、前記クライアント端末において利用したい前記サービスの概要を示す第１の情報、及び、前記クライアント端末において利用したい前記サービスの詳細を特定するための第２の情報を少なくとも含み、
前記サービス提供デバイスにおける前記応答ステップは、前記特定情報に含まれる前記第１の情報及び前記第２の情報で特定されるサービスを提供可能か否かに基づき応答することを特徴とする請求項１１又は１２に記載のサービス提供方法。
【請求項１５】
前記第２の情報が前記サービスの詳細に関するサービス情報を格納する格納場所を特定する情報であり、前記格納場所は、前記クライアント端末が備える第１の格納手段、又は、前記ネットワークに接続された情報処理装置が備える第２の格納手段である場合に、
前記サービス提供デバイスにおける前記取得ステップは、前記特定情報を基に、前記第１の格納手段、又は、前記第２の格納手段から前記サービス情報を取得することを特徴とする請求項１４に記載のサービス提供方法。
【請求項１６】
前記第２の情報は、前記第２の情報が付与されていることを示す情報及び、前記サービスの詳細を特定する情報として前記サービス情報の格納場所に関する情報から構成されることを特徴とする請求項１４又は１５に記載のサービス提供方法。
【請求項１７】
前記クライアント端末が前記応答情報を得る方法は、前記サービス提供デバイスから前記ネットワークを介して前記応答情報を受信する場合と、前記サービス提供デバイスから前記ネットワークを介して情報処理装置に前記応答情報が送信され、前記情報処理装置は受信した前記応答情報を所定の格納場所に格納し、前記情報処理装置の前記所定の格納場所から前記応答情報を前記ネットワーク経由で取得する場合があり、
前記クライアント端末が前記ネットワークを介して前記サービス提供デバイスから前記応答情報を受信する場合には、前記特定情報は、前記応答情報を送信する送信先の情報として前記クライアント端末を指定する情報を含み、
前記クライアント端末が前記情報処理装置を介して前記応答情報を得る場合には、前記特定情報は、前記応答情報を送信する送信先の情報として前記情報処理装置における前記所定の格納場所を特定する情報を含むこと
を特徴とする請求項１１〜１６のいずれか１項に記載のサービス提供方法。
【請求項１８】
前記クライアント端末において、前記特定情報に前記応答情報を送信する送信先の情報として前記クライアント端末を指定する情報を含ませるか、前記情報処理装置における前記所定の格納場所を特定する情報を含ませるか選択する選択ステップを更に有することを特徴とする請求項１７に記載のサービス提供方法。
【請求項１９】
前記サービス提供デバイスにおける応答ステップは、前記サービス情報に応じたサービスを提供可能である場合にのみ、前記応答情報を出力することを特徴とする請求項１１〜１８のいずれか１項に記載のサービス提供方法。
【請求項２０】
前記特定情報が前記第２の情報を含み、かつ、前記サービス提供デバイスにおける前記応答ステップで前記第２の情報で特定される前記サービス情報を基にサービスを提供可能であるか否を判断しない場合には、前記応答ステップにおいて、前記応答情報を出力しないことを特徴とする請求項１４〜１８のいずれか１項に記載のサービス提供方法。
【請求項２１】
請求項１１〜２０のいずれか１項に記載のサービス提供方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク上のクライアント装置からのサービス要求に応え、サービスを提供するサービス提供装置を備えるサービス提供システム、そのサービス提供システムを構成するサービス提供システム、サービス提供方法及びそのプログラムに関するものである。
【背景技術】
【０００２】
従来から、ネットワーク上のクライアント装置からのサービス要求に応え、サービスを提供するサービス提供装置及び、サービス提供システムが知られている。例えば、インターネットによる通信の飛躍的な普及に伴い、ネットワーク対応型機器として、従来のパーソナルコンピュータ以外の種類の多様な機器が開発されている。例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）、携帯電話等のユーザインタラクティブなデバイスや、スキャナ、プリンタ、複写機、デジタルカメラ等の画像処理装置や、テレビ、エアコン、冷蔵庫等の家電製品などに至るまでネットワーク対応が急速に進められている。
【０００３】
それに伴い、これらネットワーク対応型デバイスを利用する上での利便性、簡易性を高めるために、ネットワークアドレスの自動設定手段、サービスを提供するネットワークデバイスの探索、検索手段、ネットワーク対応型デバイスを制御するためのアプリケーションソフトウエア、ユーティリティソフトウエア、オペレーティングシステム等の自動セットアップ手段を提供する、さまざまなプロトコルが提案されている。例えば、Ｍｉｃｒｏｓｏｆｔ社が主体となって策定を進めるＵＰｎＰ（登録商標）、ビジネス機械・情報システム産業協会（ＪＢＭＩＡ）が推進するＢＭＬｉｎｋｓ（非特許文献１）、Ａｐｐｌｅ社が開発したＯＳ  ＸでサポートされるＲｅｎｅｄｚｖｏｕｓなどがその一例である。
【０００４】
ネットワークデバイスの探索、検索手段に注目すると、プリント、スキャンといった単純なサービス名称を検索条件として指定する手段としては、例えば上述したＵＰｎＰ（登録商標）を構成するＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）がある。また、このＳＳＤＰの機能に更に詳細な検索条件（以下、詳細検索条件）を付与する手段が提案されている。具体的には、プリントサービスを検索条件とする場合に、更に、印刷解像度が６００ｄｐｉで、カラー出力が可能で、用紙トレイがＡ３の用紙サイズに対応している等の詳細検索条件の絞込み、限定条件を付加した検索手段が提案されている。
【０００５】
いずれの場合も、クライアントデバイスは、ネットワーク上に存在する利用可能なデバイスを検索するため、検索条件を記述したデータパケット（以下、検索パケットする）をネットワーク上に送出する処理を行う。これにより、各ネットワークデバイスは、検索パケットを受信する。その検索パケットを受信したネットワークデバイスの内、その検索パケットに含まれる検索条件を満たすネットワークデバイスが、該検索パケットに応答する応答データを、検索パケットを発行したクライアントデバイスへ送信する。
【０００６】
【非特許文献１】“ＢＭＬｉｎｋＳとは”、［ｏｎｌｉｎｅ］、ビジネス機械・情報システム産業協会、［平成１６年５月１９日検索]、インターネット＜ＵＲＬ：http://www.jbmia.or.jp/bmlinks/intro/index.htm＞
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述したように、ネットワークに接続された全てのネットワークデバイスへ検索パケットを送信する方法では、例えば大量の検索条件を含むデータ容量の大きい検索パケットを送信すると、ネットワークの通信負荷が増大し、ネットワーク処理の効率が悪化してしまうという問題がある。
【０００８】
また、上述したような検索手段は、悪意のある第三者の介入がありえない、たとえば家庭内ＬＡＮ（ローカル  エリア  ネットワーク）、スモールオフィス内ＬＡＮにおいて利用する上では問題ない。しかし、イントラネット、インターネットを介して不特定多数のユーザがネットワーク上で、上述したような検索手段を使用する場合、悪意のある第三者によって不正利用される可能性があり、それが原因となってサービスを提供するネットワークシステムに甚大な被害を与える場合がありうるという問題もある。
【０００９】
例えば、悪意のあるクライアントが大量の検索条件を付加した検索パケットを頻繁に発行した場合、ネットワーク上のトラフィック増大は当然のことながら、該検索パケットを受信したサービス提供デバイスが検索条件内容を解析し続けることとなり、デバイスが機能しなくなる可能性がある。
【００１０】
一方、クライアントが発行する検索リクエストに対し、あたかもネットワークデバイスになりすましレスポンスデータを送出し続けるような悪意あるソフトウエアやデバイスがネットワーク上に組み込まれた場合、前述のケースとは逆に、ネットワーククライアントが機能できなくなる可能性がある。
【００１１】
本発明は、上述の少なくとも一つの問題点を考慮してなされたもので、ネットワークに接続されたネットワークデバイスから所望のデバイスを検索するため、大量の検索条件を設定した場合であっても効率良くネットワークデバイスの検索処理を行うことができるサービス提供システム、サービス提供方法及びそのプログラムを提供することを目的とする。
また、本発明は、ネットワークに接続されたネットワークデバイスから所望のデバイスを検索する処理において、よりネットワークシステムの安定性（特に外部からの攻撃に耐える性能）を向上することができるサービス提供システム、サービス提供方法及びそのプログラムを提供することをさらに別の目的とする。
【課題を解決するための手段】
【００１２】
この発明は、上述した少なくとも一つの目的を達成すべくなされたもので、本発明によるサービス提供システムにおいては、ネットワークに接続された一つ又は複数のクライアント端末と、ネットワークを介してクライアント端末に種々のサービスを提供する複数のサービス提供デバイスとから構成されるサービス提供システムであって、クライアント端末は、利用したいサービスを特定するための特定情報を、ネットワークを介して複数のサービス提供デバイスへ通知する通知手段と、サービス提供デバイスが特定情報に対する応答として出力する応答情報を基に、利用したいサービスの依頼先となるサービス提供デバイスを選択する選択手段とを具備し、サービス提供デバイスは、クライアント端末から通知された特定情報を取得する取得手段と、取得手段が取得した特定情報で特定されるサービスを提供可能か否かに基づき応答情報を出力する応答手段とを具備することを特徴とする。
【００１３】
また、本発明によるサービス提供方法においては、ネットワークに接続された一つ又は複数のクライアント端末と、ネットワークを介してクライアント端末に種々のサービスを提供する複数のサービス提供デバイスとから構成されるサービス提供システムを用いたサービス提供方法であって、クライアント端末において、利用したいサービスを特定するための特定情報を、ネットワークを介して複数のサービス提供デバイスへ通知する通知ステップと、サービス提供デバイスにおいて、クライアント端末から通知された特定情報を取得する取得ステップと、サービス提供デバイスにおいて、取得ステップで取得した特定情報で特定されるサービスを提供可能か否かに基づき応答情報を出力する応答ステップと、クライアント端末において、サービス提供デバイスが出力する応答情報を基に、利用したいサービスの依頼先となるサービス提供デバイスを選択する選択ステップとを有することを特徴とする。
【００１４】
また、本発明によるプログラムは、請求項１１〜２０のいずれか１項に記載のサービス提供方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１５】
本発明によるサービス提供システム、サービス提供方法及びそのプログラムは、ネットワークに接続されたネットワークデバイスから所望のデバイスを検索するため、大量の検索条件を設定した場合であっても効率良くネットワークデバイスの検索処理を行うことができる。
【発明を実施するための最良の形態】
【００１６】
以下に、図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。ただし、本実施形態に記載されているプロトコル、バージョン、アドレス、その他の数値等は、特に特定的な記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１７】
本実施形態におけるサービス提供システムは、印刷サービス提供システムであり、この印刷サービス提供システムで用いるプロトコル変換システムについて説明する。
図１は、本発明の一実施形態における印刷サービス提供システムの概略構成を示すブロック図である。
【００１８】
図１に示すように、ネットワーク２０を介して、クライアント１００、プリンタ２００、及び代行処理サーバ３００が接続されている。クライアント１００は、Ｍｉｃｒｏｓｏｆｔ社の開発したウィンドウズ（登録商標）や、Ａｐｐｌｅ社が開発したＭａｃＯＳなどの汎用オペレーティングシステム（以下、ＯＳとする）、およびその上で実行可能な汎用アプリケーションがインストールされている。本実施形態では、図１に示すようにクライアント１００は、ＯＳ・１、ＵＰｎＰ（登録商標）プロトコル処理部２、プリンタドライバ３、及びアプリケーション処理部４から構成されている。
【００１９】
ここで、ＵＰｎＰ（登録商標）プロトコル処理部２は、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）／ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）を利用したプロトコルにより、ネットワーク２０上のデバイスのディスカバリ、制御、ステータスの取得等を行うことができる。例えばアプリケーション処理部４がワードプロセッサの機能を有する場合に、アプリケーション処理部４で作成されたドキュメントは、プリンタドライバ３によりプリンタで印字処理可能なデータに変換された後、ＵＰｎＰ（登録商標）プロトコル処理部２を介して、ＵＰｎＰ（登録商標）プロトコル処理部２が検索発見したＵＰｎＰ（登録商標）プロトコルに対応するネットワーク２０上のプリンタに対して、プリントジョブの発行を実行する。
【００２０】
また、プリンタ２００は、ネットワーク２０を介して利用可能なネットワーク対応デバイス（ネットワーク対応型プリンタ）である。また、図１に示すようにプリンタ２００は、ネットワーク２０を介した通信機能としてプロトコルスタック部５を備える。更に、プリンタ２００は、ＨＴＴＰ処理部６、ＳＯＡＰ処理部７、ＵＰｎＰ（登録商標）プロトコル処理部８及びプリンタコントローラ９を備える。ここで、プロトコルスタック部５は、ＴＣＰ／ＵＤＰ／ＩＰなどのプロトコルをスタックする機能を備える。ＨＴＴＰ処理部６は、そのプロトコルスタック部５の上位に構成され、ＨＴＴＰリクエストの解析、およびレスポンス処理を行う。
【００２１】
ＳＯＡＰ処理部７は、ＨＴＴＰ処理部６の上位層に構成され、ＸＭＬ−ＳＯＡＰで記述されるＵＰｎＰ（登録商標）リクエストの解析、レスポンス処理を行う。ＵＰｎＰ（登録商標）プロトコル処理部８は、ＳＯＡＰ処理部７の上位層においてＵＰｎＰ（登録商標）で規定される検索処理、Ｄｅｓｃｒｉｐｔｉｏｎ処理、コントロール処理、イベント処理を実行する。また、ＵＰｎＰ（登録商標）プロトコル処理部８は、プリンタコントローラ９との通信機能を備え、ＵＰｎＰ（登録商標）で規定される各処理をプリンタコントローラ９固有の通信手順に変換し、プリントジョブの実行、プリンタステータスの取得等の処理を実行する。プリンタコントローラ９は、印刷処理及びその制御を行う。
【００２２】
また、代行処理サーバ３００は、プロトコルスタック部１０、ＨＴＴＰ処理部１１及び、メモリ処理部１２を備える。プロトコルスタック部１０は、ネットワーク２０を介した通信機能を実現するためＴＣＰ／ＵＤＰ／ＩＰプロトコルをスタックする処理などを行う。ＨＴＴＰ処理部１１は、そのプロトコルスタック部１０の上位層に構成され、ＨＴＴＰリクエストの解析、およびレスポンス処理を行う。代行処理サーバ３００は、条件検索のための検索式、および条件検索に応答したサービス提供デバイスのＵＲＬを記録する記録装置（図示せず）を備えている。これにより、ＨＴＴＰ処理部１１から通知される要求に応じて、その上位層に位置するメモリ処理部１２が、記録装置に対して検索式の書き込み、読み出し、応答デバイスのＵＲＬの書き込み、読み出し処理を実行する。
【００２３】
ネットワーク２０上には、プリンタ２００に示したようなネットワーク対応プリンタと同一の構成を持つが、それぞれサポートする機能、処理能力等が異なるプリンタが複数接続されている。尚、同様にクライアント端末１００と同等の構成を備えるクライアント端末や、代行処理サーバ３００と同等の構成を備える代行処理サーバがネットワーク２０に複数接続されている状況もありうる。
【００２４】
次に、図１に示した印刷サービス提供システムにおける処理の流れについて説明する。
図２は、図１に示した印刷サービス提供システムにおけるクライアント端末１００の処理の流れを示すフローチャートである。クライアント端末１００は、アプリケーション処理部４（ワードプロセッサ）で作成したドキュメントを印字するにあたり、ネットワーク２０上に存在するＵＰｎＰ（登録商標）対応プリンタを検索する（ステップＳ１）。
【００２５】
その際、クライアント端末１００は、検索プロトコルとしてＵＰｎＰ（登録商標）Ａｒｃｈｉｔｅｃｔｕｒｅ１．０にて規定されるＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）を使用している。図３は、本実施形態におけるネットワーク２０上に存在するＵＰｎＰ（登録商標）対応プリンタを検索するＨＴＴＰリクエスト例を示す図である。図３の行３０１に示すように、例えばマルチキャストアドレス２３９．２５５．２５５．２５０、ポート番号１９００に対して、図３に示すフォーマットのＨＴＴＰリクエストを発行する。また、図３の行３０２に示すように、ＳＴ（Ｓｅｒｖｉｃｅ  Ｔｙｐｅ）ヘッダにはＰｒｉｎｔを指定し、プリントサービスを検索するリクエストである旨通知する。
【００２６】
本実施形態においては、図３に示すように、ＨＴＴＰリクエストのエンティティボディとして、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）を使用し、リクエスト発行時に検索条件の詳細を通知することで、ＳＴヘッダで指定したサービスに対し、さらに条件付けを行うことが可能である。具体的には、ＳＯＡＰで規定される書式に従い以下のＳＯＡＰ関数が定義される。
ＣｏｍｐｌｅｘＱｕｅｒｙＲｅｑｕｅｓｔ（ｆｉｌｔｅｒｉｎｇ，  ｄｅｓｃｒｉｐｔｉｏｎＵＲＬ，  ｒｅｓｐｏｎｓｅＵＲＬ）
【００２７】
尚、上述したＳＯＡＰ関数は、条件検索の諸条件を通知する機能を実現するものである。例えば、行３０３に示すｆｉｌｔｅｒｉｎｇは、条件検索の実施の有無を示すフラグであり、ＴＲＵＥ／ＦＡＬＳＥのいずれかの値をとり、ＴＲＵＥの場合に条件検索を実施、ＦＡＬＳＥの場合は実施しない。
【００２８】
また、行３０４に示すｄｅｓｃｒｉｐｔｉｏｎＵＲＬは上記ｆｉｌｔｅｒｉｎｇフラグがＴＲＵＥの場合、条件検索の条件式の記述先をＵＲＬの形式で示す。本実施形態においては、図３に示すように、前述のＳＴヘッダに記述されたサービス名称に該当するサービス提供デバイスは、条件式を取得するためｄｅｓｃｒｉｐｔｉｏｎＵＲＬのコンテンツとして記述されたＵＲＬに対してアクセスすることになるが、この条件式の記録先を第３のネットワーク対応情報処理装置（本実施形態の代行処理サーバ３００）上に記録することで、クライアント端末１００に対する不特定多数であるサービス提供デバイス（プリンタ２００など）からの大量アクセスを回避することが可能である。
【００２９】
行３０５に示すｒｅｓｐｏｎｓｅＵＲＬは、条件検索で指定された条件を満たすサービス提供が可能なネットワーク対応デバイスは、該ＵＲＬに対し自身のネットワークアドレスをＵＲＬの形式で通知する。
【００３０】
また、本実施形態においては同様に、応答したサービス提供デバイスの応答先として第３のネットワーク対応情報処理装置を指定することが可能であり、クライアントデバイスにクライアントデバイスに対する不特定多数であるサービス提供デバイスからのアクセスを回避することが可能である。この場合、第３のネットワーク対応情報処理装置のＵＲＬをＣｏｍｌｅｘＱｕｅｒｙＲｅｑｕｅｓｔ関数のｄｅｓｃｒｉｐｔｉｏｎＵＲＬエレメントのコンテンツとして記述する。
【００３１】
クライアント端末１００は、条件検索を実行する場合、本実施形態ではＸＭＬで記述された条件式を作成し、オペレーティングシステムを介して該条件式を記録装置に対し記録し、該記録先をＵＲＬとして、ＣｏｍｌｅｘＱｕｅｒｙＲｅｑｕｅｓｔ関数のｄｅｓｃｒｉｐｔｉｏｎＵＲＬに記述する。
【００３２】
次に、クライアント端末１００は、検索条件の詳細情報を通知する場合（ステップＳ２のｙｅｓ）、その詳細情報を記述した条件式を作成する（ステップＳ３）。図４は、その検索条件式の記述例を示す図である。図４に示すように、本実施形態の条件式は、ＸＭＬで記述されている。
【００３３】
図４の行４０１に示すＦｉｌｔｅｒｉｎｇＤｅｓｃｒｉｐｔｉｏｎタグのコンテンツとして記述される各項目の論理積が検索条件となる。すなわち、図４に示す例の場合、行４０２でカラー印刷可能であることを条件とし、かつ行４０３で解像度６００ｄｐｉ以上であることを条件とし、かつ行４０４でフィニッシャー機能としてステイプラ（ステイプルする機能）を有していることを条件としている。
【００３４】
条件式をクライアント端末１００上の記録装置ではなく、代行処理サーバ３００上に記録する場合（ステップＳ４のｙｅｓ）には、クライアント端末１００は、作成した条件式はＨＴＴＰ−ＰＯＳＴリクエストを使用し代行処理サーバ３００上に送信する（ステップＳ５）。この時、送信先ＵＲＬをＣｏｍｌｅｘＱｕｅｒｙＲｅｑｕｅｓｔ関数のｄｅｓｃｒｉｐｔｉｏｎＵＲＬエレメントのコンテンツとして記述する。これにより、代行処理サーバ３００は、受信した条件式を、メモリ処理部１２を介して記録装置上に記録する。
【００３５】
次に、条件式をクライアント端末１００上の記録装置上に記録する場合（ステップＳ４のｎｏ）には、クライアント端末１００は、記録先ＵＲＬをＣｏｍｌｅｘＱｕｅｒｙＲｅｑｕｅｓｔ関数のｄｅｓｃｒｉｐｔｉｏｎＵＲＬエレメントのコンテンツとして記述する。以上のプロセスが完了した時点で、クライアント端末１００はＳＳＤＰパケットをネットワーク２０上に送出する（ステップＳ６）。尚、クライアント端末１００は、上述したステップＳ４の処理を行う際に、応答ＵＲＬをクライアント端末１００自身のネットワークアドレスとするか、代行処理サーバ３００とするかを選択する処理を行う。
【００３６】
これにより、プリンタ２００は、ネットワーク２０を介してＳＳＤＰパケットを受信する。ここで、図２の説明を一旦中断して、図５を用いてＳＳＤＰパケットを受信したプリンタ２００の動作について説明する。
【００３７】
図５は、図１に示したプリンタ２００の動作を示すフローチャートである。図５に示すように、プリンタ２００は、ＨＴＴＰリクエスト（図１のステップＳ６で発行されたＳＳＤＰ）を受信した場合（ステップＳ２１のｙｅｓ）には、そのＨＴＴＰリクエストのＳＴ(Ｓｅｒｖｉｃｅ  Ｔｙｐｅ)ヘッダを解析する（ステップＳ２２）。ここで、ＳＴヘッダにおいてＰｒｉｎｔ以外のＳＴ指定であると解析した場合（ステップＳ２２のｎｏ）には、プリンタ２００は、処理を中断してＨＴＴＰリクエストに対してレスポンスを発行せず、ステップＳ２１に戻る。また、ＳＴヘッダにおいてＰｒｉｎｔのＳＴ指定であると解析した場合（ステップＳ２２のｙｅｓ）には、プリンタ２００は、パケット内容における不正の有無を判断する（ステップＳ２３）。
【００３８】
ここで、パケット内容に不正があると判断した場合（ステップＳ２３のｙｅｓ）には、プリンタ２００は、ステップＳ２２のｎｏの場合と同様に、処理を中断してステップＳ２１に戻る。また、パケット内容に不正が無いと判断した場合（ステップＳ２３のｎｏ）には、プリンタ２００は、ＨＴＴＰリクエストのエンティティボディの解析を実行する（ステップＳ２４）。
【００３９】
ここで、エンティティボディが存在しないと解析した（＝ＣｏｍｌｅｘＱｕｅｒｙＲｅｑｕｅｓｔに関する記述が無いと解析した）場合（ステップＳ２４のｎｏ）、プリンタ２００は、ＳＳＤＰリクエストのヘッダに記述されるＵＲＬに対しユニキャストでＨＴＴＰレスポンス応答を返信し（ステップＳ３１）、ステップＳ２１に戻る。
【００４０】
また、エンティティボディが存在すると解析した（＝ＣｏｍｌｅｘＱｕｅｒｙＲｅｑｕｅｓｔに関する記述が存在すると解析した）場合（ステップＳ２４のｙｅｓ）には、プリンタ２００は、ｆｉｌｔｅｒｉｎｇフラグがＦＡＬＳＥであるか否かを解析する（ステップＳ２５）。ここで、ｆｉｌｔｅｒｉｎｇフラグがＦＡＬＳＥであると解析した場合（ステップＳ２５のｎｏ）には、プリンタ２００は、ｒｅｓｐｏｎｓｅＵＲＬのコンテンツとして記述された応答先ＵＲＬに対し、自身のネットワークアドレスをＵＲＬの形式で通知する（ステップＳ３０）。
【００４１】
ここで、プリンタ２００が通知する情報のフォーマット例を示して説明する。図６は、プリンタ２００が自身のネットワークアドレスを通知するための情報のフォーマット例を示す図である。図６に示すように、ＨＴＴＰ  ＰＯＳＴのエンティティボディとして、ＳＯＡＰを使用しており、以下に示すＳＯＡＰ関数が行６０１に定義されている。
ＣｏｍｐｌｅｘＱｕｅｒｙＲｅｓｐｏｎｓｅ（ｐｒｏｆｉｌｅＵＲＬ、ｃｏｎｔｒｏｌＵＲＬ）
上記ＳＯＡＰ関数は、条件検索の条件に該当するネットワーク２０に接続されたプリンタ２００のようなネットワーク対応プリンタが応答情報を通知する機能を実現するものである。
【００４２】
ここで、ｐｒｏｆｉｌｅＵＲＬは、プリンタ２００（ネットワーク対応プリンタ）の属性情報の詳細を記述したドキュメントの記録先をＵＲＬで示す。また、ｃｏｎｔｒｏｌＵＲＬは、プリンタ２００（ネットワーク対応プリンタ）に対するジョブデータの送信先をＵＲＬで示すものである。
【００４３】
次に、図５のステップＳ２５の説明に戻る。
ステップＳ２５でプリンタ２００が判断するｆｉｌｔｅｒｉｎｇは、条件検索の実施の有無を示すフラグであり、ＴＲＵＥ／ＦＡＬＳＥのいずれかの値をとり、ＴＲＵＥの場合に条件検索を実施、ＦＡＬＳＥの場合は実施しない。これにより、ｆｉｌｔｅｒｉｎｇフラグがＴＲＵＥの場合（ステップＳ２５のｙｅｓ）には、プリンタ２００は、デバイス側が検索式の解析処理が実施できるか否かを判断する（ステップＳ２６）。ここで、デバイス側が検索式の解析処理が実施できないと判断した場合（ステップＳ２６のｎｏ）には、プリンタ２００は、ＳＳＤＰリクエストに対してレスポンスを発行せず、ステップＳ２１に戻る。
【００４４】
また、デバイス側が検索式の解析処理が実施できる判断した場合（ステップＳ２６のｙｅｓ）には、プリンタ２００は、ｄｅｓｃｒｉｐｔｉｏｎＵＲＬに記述されたＵＲＬに対しＨＴＴＰ  ＧＥＴを発行し、条件検索の条件式を取得する。これにより、プリンタ２００からＨＴＴＰ  ＧＥＴリクエストを受信したクライアント端末１００、あるいは代行処理サーバ３００は指定されたＵＲＬに記録された条件式を、プリンタ２００に対し返信する。これにより、プリンタ２００は、条件式を受信する。ステップＳ２７において、プリンタ２００は、クライアント端末１００から条件式を受信したか否かを判断する。条件式の取得に失敗した場合（ステップＳ２７のｎｏ）には、プリンタ２００は、処理を中断し、ＳＳＤＰリクエストに対してレスポンスを発行せず、ステップＳ２１に戻る。
【００４５】
また、条件式の取得が正常に実施できた（ステップＳ２７のｙｅｓ）には、プリンタ２００は、その条件式の内容を解析する（ステップＳ２８）。この解析により条件式に記述された条件が、プリンタ２００自身が提供するサービスの内容に該当すると判断した場合（ステップＳ２９のｙｅｓ）には、プリンタ２００は、ｒｅｓｐｏｎｓｅＵＲＬに記述された応答先に対し、自身のネットワークアドレスをＵＲＬの形式で通知する（ステップＳ３０）。この際、プリンタ２００は、ＣｏｍｐｌｅｘＱｕｅｒｙＲｅｓｐｏｎｓｅを発行し応答情報を通知する。
【００４６】
また、条件式に記述された条件が、プリンタ２００自身が提供するサービスの内容に一致しないと判断した場合（ステップＳ２９のｎｏ）には、プリンタ２００は、ＳＳＤＰリクエストに対してレスポンスを発行せず、ステップＳ２１に戻る。以上に示すように、プリンタ２００は、クライアント端末１００から受信した条件式を含む応答要求（ＳＳＤＰの発行）に応じて、自身が条件式に応じた機能を有する場合にはその旨を返信することができる。
【００４７】
ここで、図２の説明に戻る。すなわち、クライアント端末１００が、ステップＳ６においてＳＳＤＰパケットを発行した後の処理について説明する。ステップＳ６の次に、クライアント端末１００は、応答ＵＲＬの送付先を代行処理サーバ３００に指定したか否かを判断する（ステップＳ７）。ここで応答ＵＲＬの送付先を代行処理サーバ３００に指定した場合（ステップＳ７のｙｅｓ）には、クライアント端末１００は、予め定められた時間が経過したか否かを判断する（ステップＳ８）。本実施形態では上記予め定められた時間は、３０秒に設定されているとする。
【００４８】
ここで、予め定められた時間経過したと判断した場合（ステップＳ８のｙｅｓ）には、クライアント端末１００は、設定した応答ＵＲＬにアクセスし応答情報の有無を確認する（ステップＳ９）。ここで、応答が無いと判断した場合（ステップＳ９のｎｏ）には、クライアント端末１００は、条件指定したサービスを提供可能なデバイスが存在しないことを意味し処理を終了する（ステップＳ１３）。
【００４９】
また、応答があると判断した場合（ステップＳ９のｙｅｓ）には、クライアント端末１００は、条件指定したサービスを提供可能なデバイスが存在すると判断し、以下に示すステップＳ１０〜Ｓ１２の処理を行う。特に、ステップＳ９において応答が複数ある場合には、クライアント端末１００は、いずれのサービスを使用するか決定するため、必要に応じてＣｏｍｐｌｅｘＱｕｅｒｙＲｅｓｐｏｎｓｅの引数の一つであるｐｒｏｆｉｌｅＵＲＬに対しＨＴＴＰ  ＧＥＴを発行して、応答したデバイス（プリンタ２００を含む）のプロファイル情報を取得する（ステップＳ１０）。次に、クライアント端末１００は、取得したプロファイル情報を基に最適なネットワーク対応プリンタを選択する（ステップＳ１１）。使用するネットワーク対応プリンタ（ここではプリンタ２００とする）を決定すると、クライアント端末１００は、プリンタ２００からのレスポンスに対応するＣｏｍｌｅｘＱｕｅｒｙＲｅｓｐｏｎｓｅの引数の一つであるｃｏｎｔｒｏｌＵＲＬに対しプリントジョブを送出し、作成したドキュメントの印刷を実行する（ステップＳ１２）。
【００５０】
また、応答ＵＲＬをクライアント端末１００自身のネットワークアドレスとした場合（ステップＳ７のｎｏ）には、クライアント端末１００は、応答ＵＲＬに対して応答があるか否かを判断する。ここで応答があると判断した場合（ステップＳ１４のｙｅｓ）には、クライアント端末１００は、条件指定したサービスを提供可能なデバイスが存在すると判断して、上述したステップＳ１０〜Ｓ１２の処理を行う。
【００５１】
また、ステップＳ１４において応答がない場合（ステップＳ１４のｎｏ）には、クライアント端末１００は、予め規定された時間を経過したか否かを判断する（ステップＳ１５）。本実施形態においては、上記予め規定された時間は３０秒である。ここで、予め規定された時間を経過していないと判断した場合（ステップＳ１５のｎｏ）には、ステップＳ１４に戻り、予め規定された時間を経過したと判断した場合（ステップＳ１５のｙｅｓ）には、クライアント端末１００は、条件指定したサービスを提供可能なデバイスがネットワーク２０上に存在しないと判断して、ステップＳ１３に進み処理を終了する。
【００５２】
以上に示したように、本実施形態におけるクライアント端末１００は、ＸＭＬで記述された条件式を含む返答要求をネットワーク２０に対してブロードキャストすることで、その条件式を満たすネットワーク対応プリンタを検索して、検索したプリンタに対して印刷ジョブを送信することができる。
【００５３】
［他の実施形態］
上述した実施形態においては、サービス検索（ネットワークデバイスの検索）のプロトコルとしてＵＰｎＰ  ｖ１で規定されるＳＳＤＰを利用し、該プロトコルに検索条件を付与する形で実現しているが、この限りではなく、サービス検索のプロトコルとしては、検索条件を付与することが可能なプロトコルであれば種々のプロトコルを適用可能である。
【００５４】
また、上述した実施形態において条件検索のための条件式をＸＭＬの形式で記述しているが、記述形式に関してはＸＭＬのようなマークアップ言語の使用に限定するものではなく、ＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅ）、単純テキスト、あるいはバイナリ記述であってもよい。
【００５５】
また、上述した実施形態において条件式の記述には、論理積のみの記述を例として挙げているが、これに論理和、および論理積、論理和を組み合わせた複雑な記述式を使用することも可能である。
【００５６】
また、上述した実施形態において条件検索のための条件式をＸＭＬの形式で記述しているが、記述形式としてＸＰａｔｈを使用しサービスの特定をすることも可能である。
【００５７】
また、上述した実施形態においてＨＴＴＰ  ＰＯＳＴ／ＧＥＴによる条件検索のための条件式の登録、取得、および応答情報の記録、取得を実行しているが、ＦＴＰ等の他のプロトコルを使用する場合であっても実現可能である。
【００５８】
以上説明したように、本実施形態におけるネットワークを介したサービス提供システムによればクライアント端末１００が、ジョブを実行するにあたりジョブが要求するサービスを提供するサービス提供デバイス（プリンタ２００）を検索するため、条件検索のための検索条件式をクライアント端末１００自身が管理する記録装置、あるいは第３の情報処理装置（代行処理サーバ３００）が管理する記録装置上に記録する。さらに、条件検索を満たすサービス提供デバイスの応答情報に関しても同様にクライアント端末１００自身が管理する記録装置、あるいは第３の情報処理装置（代行処理サーバ３００）が管理する記録装置上に記録する機能を備える。これにより、クライアント端末がネットワークに向けて送信する検索パケットに検索条件式を付加する従来のサービス提供デバイスの検索方法に比べて、本実施形態では検索パケットに検索条件式を付加しない（代わりに検索条件式の記録場所を知らせる）分、ネットワークの通信トラフィックを大幅に軽減することが可能となる。更には、サービス提供デバイスが検索条件式の取得に関して、受信した検索パケットを基にサービス提供デバイスの判断で実行できるので、悪意あるクライアント端末から膨大な検索パケットを受信することを回避することが可能となり、セキュリティ性やシステムの安定性を向上することができる。
【００５９】
また、検索条件式の記録を、第３の情報処理装置（代行処理サーバ３００）の記録装置を記録先として指定することが可能となり、悪意のあるデバイスからの不必要なアクセスを回避することが可能となった。また、同様にサービス提供デバイスからの応答情報の通知先として、第３の情報処理装置の記録装置を記録先として指定することが可能となり、悪意のあるデバイスからの不必要なアクセスを回避することが可能となった。さらに、クライアント端末１００は、条件検索に対応できないローエンドのサービス提供デバイスに対し、この膨大なデータ量をもつ検索パケットを送信することが回避可能となり、サービス提供デバイスの処理能力に応じた、サービス検索処理が実現可能となった。
【００６０】
また、上述した実施形態におけるクライアント端末１００及びプリンタ２００における各処理機能は、各処理機能を実現する為のプログラムをメモリから読み出してＣＰＵ（中央演算装置）が実行することによりその機能を実現させるものであるが、これに限定さるものではなく、各処理機能の全部または一部の機能を専用のハードウェアにより実現してもよい。また、上述したメモリは、光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、ＣＤ−ＲＯＭ等の読み出しのみが可能な記録媒体、ＲＡＭ以外の揮発性のメモリ、あるいはこれらの組合せによるコンピュータ読み取り、書き込み可能な記録媒体より構成されてもよい。
【００６１】
また、クライアント端末１００及びプリンタ２００内の各機能を実現する為のプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理を行っても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。具体的には、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含む。
【００６２】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００６３】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現する為のものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６４】
また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体およびプログラムプロダクトは、本発明の範疇に含まれる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００６５】
【図１】本発明の一実施形態における印刷サービス提供システムの概略構成を示すブロック図である。
【図２】図１に示した印刷サービス提供システムにおけるクライアント端末１００の処理の流れを示すフローチャートである。
【図３】本実施形態におけるネットワーク２０上に存在するＵＰｎＰ（登録商標）対応プリンタを検索するＨＴＴＰリクエスト例を示す図である。
【図４】本実施形態における検索条件式の記述例を示す図である。
【図５】図１に示したプリンタ２００の動作を示すフローチャートである。
【図６】プリンタ２００が自身のネットワークアドレスを通知するための情報のフォーマット例を示す図である。
【符号の説明】
【００６６】
１００          クライアント端末
１              ＯＳ（オペレーティング  システム）
２、８          ＵＰｎＰ（登録商標）プロトコル処理部
３              プリンタドライバ
４              アプリケーション処理部
５、１０        プロトコルスタック部
６、１１        ＨＴＴＰ処理部
７              ＳＯＡＰ処理部
９              プリンタコントローラ
１２            メモリ処理部
２０            ネットワーク
２００          プリンタ
３００          代行処理サーバ
【図１】
2005352890.tif 000003
【図２】
2005352890.tif 000004
【図３】
2005352890.tif 000005
【図４】
2005352890.tif 000006
【図５】
2005352890.tif 000007
【図６】
2005352890.tif 000008