JP2005038024A - ネットワークサービス検索方法 - Google Patents
ネットワークサービス検索方法 Download PDFInfo
- Publication number
- JP2005038024A JP2005038024A JP2003197417A JP2003197417A JP2005038024A JP 2005038024 A JP2005038024 A JP 2005038024A JP 2003197417 A JP2003197417 A JP 2003197417A JP 2003197417 A JP2003197417 A JP 2003197417A JP 2005038024 A JP2005038024 A JP 2005038024A
- Authority
- JP
- Japan
- Prior art keywords
- search
- search condition
- condition
- network
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】本発明の課題は、ネットワークを介して提供される所望のサービスを検索するための第一検索条件を所定データ長より大きくならないように分割して複数の第二検索条件を作成し、上記ネットワークから受信した上記第二検索条件に応じた検索結果を、上記複数の第二検索条件から上記第一検索条件を復元しつつ、該第一検索条件で指定される論理演算に従って該検索結果を合成することによって該第一検索条件に応じた検索結果を取得するようにしたネットワークサービス検索方法によって達成される。
【選択図】 図3
Description
【発明の属する技術分野】
本発明は、データ長の制限範囲において、検索条件を分割して送信することを可能とすると共に、分割された検索条件に対する応答によって示される検索結果を結合することを可能とし、データ長の制限範囲に依存しない詳細なネットワークサービスの検索を実現するネットワークサービス検索方法を提供するものである。
【0002】
【従来の技術】
近年、ユーザの指示に応じて、ユーザが使用しているクライアント端末が、印刷要求をネットワーク上に存在するネットワークサービス(例えば、印刷サービス)を提供する複数のネットワークサービス機器の1つに行わせる場合、クライアント端末は現在利用可能なネットワークサービス機器をネットワークから検索し、その検索結果として現在サービス可能なネットワークサービスリストを画面に表示することによって、ユーザにネットワークサービスの1つを選択できるようにしている。つまり、ユーザによって選択されたネットワークサービスを実現するネットワークサービス機器が特定される。
【0003】
例えば、クライアント端末が、ユーザが所望するネットワークサービスを検索するための検索条件をUDP(User Datagram Protocol)パケットをネットワーク上にマルチキャストで送信することによって、それを受信したネットワークに接続される複数のネットワークサービス機器は、検索条件を満足できる場合に、クライアント端末に対して応答する。従って、クライアント端末は、ユーザが所望する検索条件を満足し、現在利用可能なネットワークサービス機器によって提供されるネットワークサービスのリストを画面に表示し、ユーザがその中から1つのネットワークサービスを選択することができる。
【0004】
【発明が解決しようとする課題】
しかしながら、上述したような従来のネットワークサービスシステムでは、ネットワーク通信の仕様によって異なるもののUDPパケットのデータサイズは、少量のデータを送信することを目的としているため、検索条件を示すデータ長に制限がある。そのため、データ長の制限に依存しない詳細な検索条件でネットワーク上のネットワークサービスを検索することができなかった。つまり、極端に多数のネットワークサービスが検索されてしまう、或いは、全くネットワークサービスを検索することができない等の問題があった。
【0005】
そこで、本発明の課題は、データ長の制限範囲において、検索条件を分割して送信することを可能とすると共に、分割された検索条件に対する応答によって示される検索結果を結合することを可能とし、データ長の制限範囲に依存しない詳細なネットワークサービスの検索を実現するネットワークサービス検索方法を提供することである。
【0006】
【課題を解決するための手段】
上記課題を解決するため、本発明は、請求項1に記載されるように、ネットワークを介して提供される所望のサービスを検索するための第一検索条件を所定データ長より大きくならないように分割して複数の第二検索条件を作成し、上記第二検索条件毎に上記ネットワークから受信した該第二検索条件に応じた検索結果を記憶領域に蓄積し、上記複数の第二検索条件から上記第一検索条件を復元しつつ、該第一検索条件で指定される論理演算に従って、上記記憶領域から演算対象となる該第二検索条件に応じた上記検索結果を取得して、取得した該検索結果を合成することによって該第一検索条件に応じた検索結果を取得するように構成される。
【0007】
このようなネットワークサービス検索方法では、第一検索条件が所定データ長より大きい場合には分割され第二検索条件として送信されるため、第一検索条件の全体を送信することができる。また、第一検索条件の構造木に従って、分割された検索条件を復元するかのように、分割された検索条件に対応する検索結果を合成することができるため、初期検索条件を満たすサービスを特定することができる。また、所定データ長に依存しない詳細な検索を実現することができる。
【0008】
また、本発明は、請求項2に記載されるように、上記分割は、分割された末端部分が所定データ長より大きい場合に該第一検索条件を分割するように、該第一検索条件を上記論理演算子をノードとする構造木を作成し、その構造木のデータ構造を示す構造木情報を上記記憶領域に格納し、上記復元は、上記記憶領域に格納された上記構造木情報に基づいて行うように構成される。
【0009】
このようなネットワークサービス検索方法では、論理演算子をノードとして構造木を作成するが、分割された末端部分が所定データ長より大きい場合に分割を行うため、必要以上に短くならないように分割を行わないようにすることができる。従って、必要以上に検索条件がネットワークへ送信されないため、検索の効率を向上させることができる。
【0010】
更に、本発明は、請求項3に記載されるように、上記分割は、分割後の上記第二検索条件が上記所定データ長より大きい場合に、現在のルートをノードとして、上記分割を再帰的に行うように構成することができる。
【0011】
このようなネットワークサービス検索方法では、所定データ長に応じた構造木が作成されるため、必要以上に構造木を階層化することがない。
【0012】
また、本発明は、請求項4に記載されるように、上記分割は、上記第一検索条件を論理積及び論理和をノードとする構造木を作成するように構成することができる。
【0013】
更に、本発明は、請求項5に記載されるように、上記所定データ長は、UDPデータバケットのデータ長であるように構成することができる。
【0014】
このようなネットワークサービス検索方法では、UDPデータバケットのデータ長に応じた構造木が作成され、UDPデータバケットのデータ長に応じた第二検索条件が得られるため、第一検索条件がUDPデータバケットのデータ長より大きい場合であっても、第一検索条件と同等の詳細な検索を行うことができる。
【0015】
また、本発明は、請求項6に記載されるように、上記構造木の末端部分を送信すべき上記第二検索条件として上記ネットワークへ送信するように構成することができる。
【0016】
このようなネットワークサービス検索方法では、不必要にノードが送信されることがないため、つまり、不必要な論理演算子の部分を送信しないため、データ転送の効率を向上させることができる。
【0017】
更に、本発明は、請求項7に記載されるように、上記第一検索条件で示される論理和をノードとすることによって分割された複数の上記第二検索条件の1つをネットワークへ送信し、上記第二検索条件に応じた上記検索結果によって特定されるアドレスから、サービスによって提供可能な機能を示す機能プロファイルを取得し、上記論理和をノードとすることによって分割されたが送信されていない上記第二検索条件と上記機能プロファイルで示される上記機能とを照合することによって、上記第一検索条件に応じた検索結果を取得するように構成することができる。また、本発明は、請求項8に記載されるように、上記第二検索条件に応じた上記検索結果が所定個数以上であるか否かを判断し、その判断結果に基づいて、上記論理和をノードとすることによって分割されたが送信されていない上記第二検索条件と上記機能プロファイルで示される上記機能とを照合するように構成することができる。
【0018】
このようなネットワークサービス検索方法では、第一検索条件が論理和(AND)によって複数の第二検索条件に分割される場合に、第二検索条件が1つ送信されるのみであるため、送信処理を効率化することができる。また、その第二検索条件に応じた検索結果に基づいて取得した機能プロファイルと送信されなかった他第二検索条件とが照合されるため、照合すべき機能プロファイルの数を抑制することができ、効率良く照合処理が行える。
【0019】
更に、本発明は、請求項9に記載されるように、上記記憶領域内にて上記構造木を識別する識別情報に対応させて、作成された上記構造木情報の格納場所と、上記所定データ長の範囲内である上記第二検索条件の内容のリストを示す第二検索条件リストの格納場所と、該第二検索条件毎に検索結果のリストを示す検索結果リストの格納場所と、各ノード以下を示す部分検索条件を示すノード情報の格納場所とを示すテーブルによって、上記第一検索条件を管理するように構成することができる。
【0020】
また、本発明は、請求項10に記載されるように、上記第二検索条件は、所定メッセージ交換プロトコルに従って検索要求としてネットワークへ送信され、上記検索結果は、該第二検索条件を満たす場合のみ、上記所定メッセージ交換プロトコルに従って検索応答としてネットワークへ送信されるように構成することができる。又は、本発明は、請求項11に記載されるように、上記第二検索条件は、所定インターネット通信プロトコルに従って検索要求としてネットワークへ送信され、上記検索結果は、該第二検索条件を満たす場合のみ、インターネット通信プロトコルに従って検索応答としてネットワークへ送信されるように構成することができる。
【0021】
更に、本発明は、請求項12に記載されるように、上記ネットワークを介してサービスを提供可能な1つ以上のサービス提供機器と、アプリケーションから指示された上記第一検索条件に基づいて、該ネットワーク上に存在するサービスを提供する複数のサービス提供機器から上記第一検索条件を満たすサービス提供機器を検索する1つ以上のクライアント端末とで構成されるシステムにおいて、上記サービス提供機器が上記複数の第二検索条件を作成し、上記サービス提供機器が該第二検索条件に応じた上記クライアント端末から受信した検索結果を記憶領域に蓄積し、上記サービス提供機器が取得した該検索結果を合成することによって該第一検索条件に応じた検索結果を取得するように構成されることができる。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
【0023】
本発明の一実施例に係るネットワークサービス検索方法によるネットワークを構成する、少量のデータを送信することを目的としている、例えば、UDP(User Datagram Protocol)パケットを用いてマルチキャストによって分割した検索条件を送信する複数のネットワークサービス機器と、分割された検索条件に対する検索結果を送信する複数のクライアント端末のハードウェア構成について、図1及び図2で説明する。
【0024】
図1は、本発明の一実施例に係るネットワークサービス機器のハードウェア構成を示す図である。図1において、ネットワークサービス機器100は、コンピュータによって制御され印刷処理を実行する装置であって、CPU(中央処理装置)11と、ROM(Read−Only Memory)12と、RAM(Random Access Memory)13と、不揮発性RAM(non−volatile Random Access Memory)14と、リアルタイムクロック15、イーサネット(登録商標)I/F(Ethernet(登録商標) Interface)21と、USB(Universal Serial Bus)22と、IEEE(Institute of Electrical and Electronics Engineers)1284 23と、ハードディスクI/F24と、ビデオI/F25と、RS−232C I/F26とで構成され、システムバスBに接続される。
【0025】
CPU11は、ROM12に格納されたプログラムに従ってネットワークサービス機器100を制御する。RAM13には、例えば、各インターフェース21から26に接続される資源用に領域が割り当てられる。不揮発性RAM14には、ネットワークサービス機器100の電源がオフになるまでCPU11による処理で必要な情報が格納される。リアルタイムクロック15は、現時刻を計ると共に、処理を同期させる場合にCPU11によって使用される。
【0026】
イーサネット(登録商標)I/F21には、10BASE−T又は100BASE−TX等のイーサネット(登録商標)用インターフェースケーブルが接続される。USB22には、USB用インターフェースケーブルが接続される。IEEE1284 23には、IEEE1284用インターフェースケーブルが接続される。
【0027】
ハードディスクI/F24には、ハードディスク34が接続され、ネットワークを介して送信されたサービスの対象となる文書の文書データ(例えば、印刷すべき文書データ)、又は、印刷処理後の画像データがハードディスクI/F24を介してハードディスク34に格納される。ビデオI/F25には、プリンタエンジン35が接続され、画像データがビデオI/F25を介してプリンタエンジン25に送信され、該画像データに基づいて用紙等の印刷可能な媒体に画像が形成される。RS−232C I/F26には、オペレーションパネル36が接続され、ユーザへの情報の表示及びユーザから入力情報又は設定情報の取得が行われる。
【0028】
図2は、本発明の一実施例に係るクライアント端末のハードウェア構成を示すブロック図である。図2において、クライアント端末300は、コンピュータによって制御され印刷処理を実行する装置であって、CPU(中央処理装置)51と、メモリユニット52と、表示ユニット53と、入力ユニット54と、通信ユニット55と、記憶装置56と、ドライバ57とで構成され、システムバスB3に接続される。
【0029】
CPU51は、メモリユニット52に格納されたプログラムに従ってクライアント端末300を制御する。メモリユニット52は、RAM及びROM等にて構成され、CPU51にて実行されるプログラム、CPU51での処理に必要なデータ、CPU51での処理にて得られたデータ等を格納する。また、メモリユニット52の一部の領域が、CPU51での処理に利用されるワークエリアとして割り付けられている。
【0030】
表示ユニット53は、CPU51の制御のもとに必要な各種情報を表示する。入力ユニット54は、マウス、キーボード等を有し、利用者がクライアント端末300が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット55は、クライアント端末300が複数のネットワークサービス機器100とに例えばLAN(Local Area Network)等で接続される場合に、それら複数のネットワークサービス機器100との間で通信制御をするための装置である。記憶装置56は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム、文書データ等を格納する。
【0031】
クライアント端末300によって行われる検索処理を実現するプログラムは、例えば、CD−ROM等の記憶媒体58によってクライアント端末300に提供される。即ち、プログラムが保存された記憶媒体58がドライバ57にセットされると、ドライバ57が記憶媒体58からプログラムを読み出し、その読み出されたプログラムがシステムバスB3を介して記憶装置56にインストールされる。そして、プログラムが起動されると、記憶装置56にインストールされたプログラムに従ってCPU51がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本発明に係る印刷処理を実現するプログラムは、通信ユニット55によってネットワーク40を介してダウンロードし、記憶装置56にインストールするようにしても良い。
【0032】
本発明の一実施例に係るネットワークサービス検索方法での検索処理を実現するネットワークサービス検索システムの機能構成について図3で説明する。図3は、ネットワークサービス検索システムの機能構成例を示す図である。図3において、説明の便宜上、ネットワークサービス検索システム100を最小限の構成で示し、ネットワークサービス機器100とクライアント端末300とがネットワーク20で接続された構成にて、以下説明する。
【0033】
印刷処理をネットワークサービスとして提供するネットワークサービス機器100は、主に、印刷要求に応じて印刷処理を実行するプリントサービス処理部110と、BMLinkS処理部120とを有する。
【0034】
プリントサービス処理部110は、ネットワーク20を介してクライアント端末から受信した印刷要求によって指定される印刷条件に従って、図1のプリンタエンジン35を制御し、文書データに基づいて所定の媒体に画像を形成し出力する。本実施例において、印刷処理を行うことをプリントサービスとして提供するプリントサービス処理部110を例示しているが、印刷処理に限定されない。例えば、FAX、コピー等の処理をネットワークサービスとして提供するサービス処理部であっても良い。
【0035】
BMLinkS処理部120は、プリンタ、FAX、コピー機等の事務機器装置間で共通の通信制御を実現する装置間インターフェースプロトコルであって、クライアント端末300から送信された検索条件を解析し、その検索条件を満たす機器である場合に、クライアント端末300に対して検索結果を示す検索応答を送信する処理を行う。
【0036】
BMLinkS処理部120は、更に、HTTPサーバー121と、検索要求監視部122と、検索要求判定部123と、機能プロファイル200とを有する。
【0037】
HTTPサーバー121は、クライアント端末300からの機能プロファイルの取得要求に応じて、機能プロファイル200を示す応答を送信する。また、クライアント端末300から印刷要求を受信すると、プリントサービス処理部110へ通知し、クライアント端末300へ印刷処理の結果を示す応答を送信する。
【0038】
検索要求監視部122は、ネットワーク20を介してクライアント端末300から送信される検索要求を監視する。検索要求監視部122は、検索要求を受信すると、検索要求判定部123へ通知する。
【0039】
検索要求判定部123は、提供可能なサービスの機能を示す機能プロファイル200を参照して、検索要求によって指定される検索条件を満たす機能の提供が可能であるか否かを判断し、可能である場合のみ検索結果を示す検索応答をクライアント端末300へ提供する。検索結果とは、ネットワークサービス機器を特定することができる情報と、検索条件を特定する情報とを示す。
【0040】
機能プロファイル200は、ネットワークサービス機器100が提供可能な機能を示す機能をXML(eXtensible Markup Language)の形式で記述したデータであって、図1に示すハードディスク34に格納される。検索要求判定部123によって参照される。
【0041】
クライアント端末300は、主に、アプリケーション301と、検索処理部310とを有する。
【0042】
アプリケーション301は、ユーザ又は他のプログラムからの要求に応じてGUI(Graphical User Interface)を表示ユニット53に表示させ、検索条件を生成する。アプリケーション301は、生成した検索条件を検索要求解析部311へ通知し、検索結果合成部315から受信その検索条件による検索結果に基づいて、ユーザによってネットワークサービスの1つを選択可能なGUIを提供する。
【0043】
検索処理部310は、アプリケーション301から初期検索条件として検索条件を受け取り、その初期検索条件を分割してUDPパケットでマルチキャストを行うことによって得られた検索結果をアプリケーション301に通知する処理部であって、検索要求解析部311と、検索条件構造木保存領域312と、検索実行制御部313と、検索要求送信部314と、検索結果合成部315と、プロファイル検索部320とを有する。
【0044】
検索要求解析部311は、アプリケーション301から渡された初期検索条件を分割し、分割された個々の検索条件の互いの関連を示す検索条件構造木を生成する。この際、分割後の個々の検索条件が指定されたサイズ以下になるまで再帰的に初期検索条件を分割する。生成された検索条件構造木で示される検索条件は、個別検索条件として参照される。検索要求解析部311は、検索条件構造木を検索条件構造木保存領域312に保存する。
【0045】
検索条件構造木保存領域312は、検索条件構造木を保存し管理するための記憶領域であって、記憶装置56内に存在する。検索条件構造木保存領域312には、検索要求解析部311により生成された検索条件構造木が蓄積される。検索条件構造木は、検索要求解析部311によって初期検索条件毎に生成される。また、検索条件構造木保存領域312には、ネットワークサービス機器100から受信した検索結果が蓄積される。
【0046】
検索実行制御部313は、検索要求送受信部314によって、検索条件構造木中のリーフ部分に相当する個別検索条件をネットワーク20上に送信する。この際、以下のような動作モードのいずれかに従って送信処理が行われる。初期検索条件を分割することによって得られた全ての個別検索条件を送信する動作モードと、初期検索条件を分割することによって得られた複数の個別検索条件の一部を送信する動作モードとがある。
【0047】
複数の個別検索条件の一部を送信する動作モードでは、例えば、検索要求解析部311による初期検索条件の分割はAND演算子のみで行い、作成された個別検索条件を先頭から順に検索要求送信部314に送信する。検索結果は検索条件構造木保存領域312内で更新され、それまでの個別検索条件による検索結果と合成され、検索結果中のサービスの数が一定個数以下になった場合、対象となるサービスの一覧と、残りの個別検索条件のリストをプロファイル検索部320に送信する。
【0048】
検索要求送受信部314は、検索実行制御部313から通知される個別検索条件を、BMLinkSに従ってUDPパケットでマルチキャストで送信する。
【0049】
プロファイル検索部320は、検索実行制御部313から対象となるサービス一覧と個別検索条件リストとを受け取り、機能プロファイル200を各ネットワークサービス機器100から取得し、取得した機能プロファイル200と個別検索条件リストとを照合することによって検索を行う。対象となるサービスに基づいて、ネットワークサービス機器100から機能プロファイル200を取得し、その各機能プロファイルに対して個別検索条件のすべてが満足するサービスのリストを構成する。検索結果は検索条件構造木保存領域312に保存される。
【0050】
このように、プロファイル検索部320によって、対象となるサービスまで絞り込んでから、対応するネットワークサービス機器100に対して機能プロファイル200の取得要求を行うことによって、無駄のない検索結果を取得することができる。このような処理を実現するために、プロファイル検索部320は、機能プロファイル取得部321と、検索条件照合部322とを有する。
【0051】
機能プロファイル取得部321は、サービス一覧に基づいて、対象となるネットワークサービス機器100に対して、機能プロファイル200の取得要求を行い、この取得要求に応じてネットワークサービス機器100から機能プロファイル200を受信すると、検索条件照合部322にその機能プロファイル200を通知する。
【0052】
検索条件照合部322は、機能プロファイル取得部321がネットワークサービス機器100から受信した機能プロファイル200の内容と個別検索条件リストとを照合し、その照合した結果が検索結果として検索条件構造木保存領域312に蓄積する。
【0053】
更に、プロファイル検索部320は、機能プロファイル取得部321と、検索条件照合部322とを有する。検索処理部310において、検索要求送信部314と機能プロファイル取得部321とによって、BMLinkSによって規定される所定の検索処理(ディスカバリ(Discovery)機能)を実行するBMLinkS処理部330を構成する。
【0054】
図4は、通信プロトコルの構成例を示す図である。図4において、最下位層から順に、第一階層にIP(Internet Protocol)131と、UDP(User Datagram Protocol)132及び第二階層にTCP(Transmission Control Protocol)133と、第三階層にHTTP(Hypertext Transfer Protocol)134と、第四階層にXML(eXtensible Markup Language)135と、第五階層にSOAP(Simple Object Access Protocol)136とで構成される。
【0055】
このような通信プロトコルにおける構成において、分割された検索条件がUDP132によってUDPパケットで送信される。
【0056】
本発明に係るネットワークサービス検索システム1000では、HTTP134によって通信を行ってもよく、SOAP136及びXML135を省くことが可能である。
【0057】
アプリケーション301から指定される初期検索条件について図5で説明する。図5は、初期検索条件の例を示す図である。図5において、初期検索条件40は、AND、OR及びNODEによるテスト式を階層的に組み合せることによって、ユーザが所望する検索条件を示す。
【0058】
ANDテストは、AND(テスト式1、テスト式2)のように記述され、テスト式1で示される検索条件と、テスト式2で示される検索条件との両方を満足することを示す。
【0059】
ORテストは、OR(テスト式1、テスト式2)のように記述され、テスト式1で示される検索条件と、テスト式2で示される検索条件のいずれか一方を満足すれば良いことを示す。
【0060】
NODEテストは、NODE(ルート、値)にように記述され、ルートはXMLで記述された機能プロファイルのタグを指定し、値によってそのタグに対応する値が指定されるため、そのルート(タグ)がその指定される値であることを示す。ルートはtag=”タグ名”のように記述され、値はval=”値”のように記述される。NODEテストは、検索条件構造木において、分割することのできない最小のリーフとなる。
【0061】
初期検索条件40において、ANDで示されるテスト式41は、ORで示されるテスト式42とANDで示されるテスト式45との両方を満足することが指定されている。テスト式42は、更に、NODEで示されるテスト式43と、NODEで示されるテスト式44とで示される。
【0062】
つまり、テスト式43において、タグ名「finishings」が値「staple−left−upper」を指定しており、「フィニッシングでは左上にステープル」できることが検索条件である。また、テスト式44において、タグ名「finishings」が値「punch」を指定しており、「フィニッシングでは穴あけ」できることが検索条件である。従って、テスト式42によって、「フィニッシングでは左上にステープル」できるか、又は、「フィニッシングでは穴あけ」できることが検索条件として指定される。
【0063】
同様に、ORで示されるテスト式46において、NODEで示されるテスト式47によって、タグ名「location」が値「tokyo−office,sales−division」を指定し、NODEで示されるテスト式48によって、タグ名「location」が値「ohsaka−office,marketing−division」を指定しているため、サービスを提供しているネットワークサービス機器100が、「東京事業所の販売部門」又は「大阪事業所のマーケティング部門」に設置されていることが検索条件として指定される。
【0064】
また、ORで示されるテスト式49において、NODEで示されるテスト式49−1によって、タグ名「media」が値「A4」を指定し、NODEで示されるテスト式49−2によって、タグ名「media」が値「letter」を指定しているため、「媒体はA4」又は「媒体はレター」サイズであることが検索条件として指定される。
【0065】
従って、ANDで示されるテスト式45において、「サービスを提供しているネットワークサービス機器100が、「東京事業所の販売部門」又は「大阪事業所のマーケティング部門」に設置されている」こと、かつ、「「媒体はA4」又は「媒体はレター」サイズである」ことが検索条件として指定される。
【0066】
結局、ANDで示されるテスト式41は、初期検索条件40として、「「フィニッシングでは左上にステープル」できるか、又は、「フィニッシングでは穴あけ」」であり、「「サービスを提供しているネットワークサービス機器100が、「東京事業所の販売部門」又は「大阪事業所のマーケティング部門」に設置されている」こと、かつ、「「媒体はA4」又は「媒体はレター」サイズである」」であることが指定されている。
【0067】
次に、検索条件を満たすか否かを判断するために参照される機能プロファイル200の例について図6で説明する。図6は、ネットワークサービス機器の機能プロファイルの例を示す図である。図6において、機器プロファイル200は、主に、ネットワークサービス機器100を特定するためのデバイスプロファイルを示す記述201と、サービスとして提供可能な機能プロファイルを示す記述202とを有する。記述201は、<device−profile>によってデバイスプロファイルを示す記述であることが示され、記述202は、<functional−profile>によって機能プロファイルを示す記述であることが示される。
【0068】
記述201において、<device−info>から</device−info>までの記述によってネットワークサービス機器100を特定するための種々の機器情報が示される。<modelName>Color Laser 1111</modelName>は、プリンタモデル名が「Color Laser 1111」であることを示し、<deviceID>456789</deviceID>は、機器IDが「456789」であることを示し、<vendorName>RRR</vendorName>は、販売会社名が「RRR」であることを示し、<location>XXX−YY−ZZ,Ohta−ku,Tokyo,Japan</location>を示している。
【0069】
記述202は、主に、カラー機能の有無を示す記述207と、提供可能な媒体サイズの一覧を示す記述210と、提供可能なフィニッシングの一覧を示す記述220とを示す。
【0070】
記述207は、<color>true</color>によって、カラー機能が有ることを示している。
【0071】
<media−size>から</media−size>までの記述210は、<supportedValue>から</supportedValue>までの記述によって提供可能な媒体サイズの一覧を示す記述211と、<defaultValue>から</defaultValue>までの記述によって暗黙値としての媒体サイズを示す記述215とを示す。記述211は、各媒体サイズを<value>から</value>で示した一覧であって、この例の場合、媒体サイズとして、「A4」、「B5」及び「A3」が提供可能であることを示している。また、記述215も同様に、<value>から</value>によって暗黙値としての媒体サイズを示し、「A4」であることが示される。
【0072】
<finishings>から</finishings>までの記述220は、記述210と同様に、<supportedValue>から</supportedValue>までの記述によって提供可能なフィニッシングの一覧を示す記述221と、<defaultValue>から</defaultValue>までの記述によって暗黙値としてのフィニッシングを示す記述225とを示す。記述221は、各フィニッシングを<value>から</value>で示した一覧であって、この例の場合、「staple(ステープル)」、「punch(穴あけ)」及び「none(フィニッシングをしない)」が提供可能であることを示している。また、記述225も同様に、<value>から</value>によって暗黙値としてのフィニッシングを示し、「none(フィニッシングをしない)」であることが示される。
【0073】
このような機能プロファイル40を用いて、図5に示すような初期検索条件40のテスト式43によって示される検索条件「フィニッシングでは左上にステープル」を満たすか否かを判断するためには、提供可能なフィニッシングを示す記述220の各<value>で指定されるフィニッシングの方法を一つ一つ照合して一致したフィニッシングがあれば、検索条件を満たすと判断され、一致するフィニッシングがなければ、検索条件を満たすことができないと判断される。
【0074】
この場合、テスト式43の「tag=”finishings”」の記述から、機能プロファイル40内の<finishings>を特定し、「val=”staple−left−upper”」から<value>で指定される値に「staple」が有るか否かを判断する。記述222によって「staple(ステープル)」が可能であるため、一致したフィニッシングがあると判断され、従って、テスト式43による検索条件を満たすと判断される。
【0075】
次に、検索条件を送信可能とする所定バイトで初期検索条件を分割した場合の検索条件構造木の構造について図7で説明する。図7は、所定バイトで分割した場合の検索条件構造木の例を示す図である。図7中に示される符号は、図5中で示される符号と対応させて示される。
【0076】
図7において、テスト式41〜49によって示されるAND、OR及びNODEが、検索条件構造木のノードとなる。これらノードのうち一つ以上のNODEテストによって示されるノードをリーフという。所定バイトで初期検索条件木を分割するため、テスト式43、44、47及び48のようにリーフが一つのNODEテストによってのみ示される場合と、テスト式49のように2つ以上のNODEテストによって示される場合とがある。テスト式43、44、47、48及び49が夫々個別検索条件としてクライアント端末300からネットワークサービス機器100へ送信される。
【0077】
次に、検索条件構造木保存領域312における検索条件構造木の管理方法について図8から図12で説明する。
【0078】
図8は、検索条件構造木保存領域のデータ構成例を示す図である。図8において、テーブル400では、検索条件構造木を表現する構造木情報の格納場所へのポインタと、所定バイトの範囲で分割された検索条件(つまり、リーフ)を個別検索条件として一覧で示す個別検索条件リストの格納場所へのポインタと、ネットワークサービス機器100から受信した検索結果の一覧を示す検索結果リストの格納場所へのポインタと、ノードの識別情報を管理するノード追加情報の格納場所へのポインタとが、初期検索条件を特定する木識別子毎に管理される。
【0079】
例えば、テーブル400によって、木識別子13の場合、木識別子13の構造木情報410、個別検索条件リスト430、検索結果リスト450、ノード追加情報470へのポインタが示される。
【0080】
木識別子13の構造木情報410は、例えば、図9に示されるようなのデータ構造によって管理される。図9は、構造木情報のデータ構造例を示す図である。図9において、構造木情報410は、ノードがAND又はORによる2項演算である場合、ノードを識別するためのノードIDと、AND又はORを示す2項演算子と、テスト式1を示すノードIDと、テスト式2を示すノードIDとを有するレコードによって自ノード(親ノード)と、子孫ノードとの関係が示される。
【0081】
また、ノードがリーフである場合、ノードを識別するためのノードIDと、リーフであることを示すLEAFと、そのリーフを特定する個別検索条件IDと、検索条件構造木の末端であることを示す空データとを有するレコードで、クライアント端末300へ送信される個別検索条件を特定する。
【0082】
図9のデータ構造例において、例えば、ノード識別子「344」によって識別されるノードは、テスト式1とテスト式2に対してAND演算を行うテストノードであることが示される。ノード識別子「344」のテスト式1は、ノード識別子「345」によって示され、テスト式2は、ノード識別子「348」によって示される。
【0083】
また、ノード識別子「346」によって識別されるノードは、LEAFによってリーフであることが示される。個別検索条件ID「1001」によって送信される検索条件が特定される。
【0084】
上記のようなレコードのデータ構造によって、各ノードとノードが関連付けられ、図7に示すような検索条件構造木が表現される。
【0085】
図10は、個別検索条件リストのデータ構造例を示す図である。図10において、木識別子13の個別検索条件リスト430は、検索条件毎に検索条件を識別する検索条件IDと、検索条件IDに対応させて検索条件の記述を示すノード情報とを示す。
【0086】
例えば、検索条件ID「1001」に対応させて、図7に示すテスト式43がノード情報として格納され、検索条件ID「1002」に対応させて、図7に示すテスト式44がノード情報として格納され、検索条件ID「1003」に対応させて、図7に示すテスト式47がノード情報として格納され、検索条件ID「1004」に対応させて、図7に示すテスト式48がノード情報として格納され、検索条件ID「1005」に対応させて、図7に示すテスト式49がノード情報として格納される。
【0087】
図11は、ノード追加情報のデータ構造例を示す図である。図11において、木識別子13のノード追加情報450は、リーフ以外のノード識別子と、ノード識別子に対応させて部分検索条件とを示す。
【0088】
例えば、ノード識別子「344」に対応する部分検索条件は、図5に示す初期検索条件40のANDで示されるテスト式41であって、つまり、初期検索条件40全体が対応する。
【0089】
図12は、検索結果リストのデータ構造例を示す図である。図12において、検索結果リスト470は、検索条件ID毎に、ネットワークサービス機器100から受信した検索結果をポインタで連結して蓄積する。そして、初期検索条件40を再生しながら検索結果を合成して全体結果を取得する。全体結果には、初期検索条件40を再生しつつ得られた検索結果がポインタで連結され蓄積される。
【0090】
次に、クライアント端末300がネットワーク20上へ送出する検索条件にたいする検索要求がSOAPに従って行われた場合の検索要求について図13及び図14で説明する。
【0091】
図13は、検索条件IDが1001の場合のSOAPによる検索要求の例を示す図である。図13において、検索条件ID「1001」に対する検索要求500は、要求するHTTPに関する記述501と、要求内容を示すSOAPに関する記述510とで構成される。
【0092】
HTTPに関する記述501では、HTTPコマンド502が「SEARCH」であるため、このHTTPが検索要求であることを示す。また、記述506は、検索条件構造木の構造木IDが「13」であることを示し、記述507は、個別検索条件を識別する検索条件IDが「1001」であることを示している。
【0093】
SOAPに関する記述510では、記述514による<m:search xmlns:m=”http://deviceSearch.rrr.co.jp/search”>によって、検索の方法が指定されることを示し、<condition>から</condition>までの記述515によって検索条件ID「1001」に対応する検索条件が指定される。
【0094】
例えば、<NODE>で示される記述517によって、2項演算を伴わない1つの検索条件であることが示され、<name>finishings</name>で示される記述518及び<value>staple−left−uppper</value>で示される記述519によって、タグ<finishings>に対応させて「左上にステープル」がサポートされている記述があるか否かが機能プロファイル40を用いて検証される。
【0095】
図14は、検索条件IDが1005の場合のSOAPによる検索要求の例を示す図である。図14において、検索条件ID「1005」に対する検索要求520は、図13に示す検索要求500と同様に、要求するHTTPに関する記述521と、要求内容を示すSOAPに関する記述530とで構成される。
【0096】
HTTPに関する記述521は、図13に示すHTTPに関する記述501と同様であるが、記述527は、個別検索条件を識別する検索条件IDが「1005」であることを示している。
【0097】
SOAPに関する記述530では、<condition>から</condition>までの記述535によって検索条件ID「1005」に対応する検索条件が指定される。
【0098】
例えば、<OR>で示される記述536によって、以下に<NODE>によって示される2つの検索条件のいずれかを満足していることが指定される。<NODE>によって示される記述537及び記述538は、夫々、2項演算を伴わない1つの検索条件であることが示される。記述537において、<name>media</name>で示される記述5371及び<value>A4</value>で示される記述5372によって、タグ<media>に対応させて「A4」サイズの媒体(例えば、用紙)がサポートされている記述があるか否かが機能プロファイル40を用いて検証される。また、記述538において、<name>media</name>で示される記述5381及び<value>letter</value>で示される記述5382によって、タグ<media>に対応させて「レター」サイズの媒体(例えば、用紙)がサポートされている記述があるか否かが機能プロファイル40を用いて検証される。
【0099】
図15は、検索条件IDが1001の場合のSOAPによる検索応答の例を示す図である。図15において、検索条件ID「1001」に対する検索応答600は、応答するHTTPに関する記述601と、応答内容を示すSOAPに関する記述610とで構成される。
【0100】
HTTPに関する記述601では、記述606は、検索条件構造木の構造木IDが「13」であることを示し、記述607は、個別検索条件を識別する検索条件IDが「1001」であることを示している。
【0101】
また、「Location:http://192.168.1.45/printService」によって示される記述608は、構造木ID「13」の検索条件ID「1001」で識別される検索条件を満たす機器として、ネットワークサービス機器100が提供するプリントサービスを特定するURL「http://192.168.1.45/printService」を指定している。
【0102】
更に、「DeviceProfileUrl:http//192.168.1.45/printService/profile」によって示される記述609は、ネットワークサービス機器100の機能プロファイルを特定するURL「http//192.168.1.45/printService/profile」を指定している。この記述609によって、クライアント端末300は、必要に応じて機能プロファイル40をネットワークサービス機器100から取得することができる。
【0103】
SOAPに関する記述610では、<m:searchResponse>から</m:searchResponse>までで示される記述615によってネットワークサービス機器100の情報が示される。例えば、<deviceId>bc589</deviceId>によって示される記述616によって、ネットワークサービス機器100のIDが「bc589」であることが示される。
【0104】
クライアント端末300において、記述608、609及び616によって得られた情報は、図12に示されるように、検索結果リスト470の検索条件ID「1001」に対応させてポインタによって連結される。
【0105】
次に、図13から図15で説明したSOAPによる検索要求及び検索結果をHTTPによって行う場合について図16から図18で説明する。
【0106】
図16は、検索条件IDが1001の場合のHTTPによる検索要求の例を示す図である。図16において、検索条件ID「1001」に対する検索要求700は、要求するHTTPに関する記述701と、要求内容に関する記述709とで構成される。
【0107】
HTTPに関する記述701では、HTTPコマンド702が「SEARCH」であるため、このHTTPが検索要求であることを示す。また、記述706は、検索条件構造木の構造木IDが「13」であることを示し、記述707は、個別検索条件を識別する検索条件IDが「1001」であることを示している。
【0108】
要求内容に関する記述709では、「NODE( tag=“finishings”, val=“staple−left−uppper”)」のように記述され、「NODE」によって2項演算を伴わない1つの検索条件であることが示され、「tag=“finishings”」及び「val=“staple−left−uppper”」によって、タグ<finishings>に対応させて「左上にステープル」がサポートされている記述があるか否かが機能プロファイル40を用いて検証される。
【0109】
図17は、検索条件IDが1005の場合のHTTPによる検索要求の例を示す図である。図17において、検索条件ID「1005」に対する検索要求710は、図16に示す検索要求700と同様に、要求するHTTPに関する記述711と、要求内容に関する記述719とで構成される。
【0110】
HTTPに関する記述711では、図16に示すHTTPに関する記述701と同様であるが、記述717は、個別検索条件を識別する検索条件IDが「1005」であることを示している。
【0111】
要求内容に関する記述719では、「OR( NODE( tag=“media”, val=“A4”), NODE( tag=“media”, val=“letter”))」のように記述され、「OR」以下の2つの「NODE」によって、夫々、2項演算を伴わない1つの検索条件であることが示される。「NODE( tag=“media”, val=“A4”)」の記述によって、タグ<media>に対応させて「A4」サイズの媒体(例えば、用紙)がサポートされている記述があるか否かが機能プロファイル40を用いて検証される。また、「NODE( tag=“media”, val=“letter”)」の記述によって、タグ<media>に対応させて「レター」サイズの媒体(例えば、用紙)がサポートされている記述があるか否かが機能プロファイル40を用いて検証される。
【0112】
図18は、検索条件IDが1001の場合のHTTPによる検索応答の例を示す図である。図18において、検索条件ID「1001」に対する検索応答800は、応答するHTTPに関する記述801で構成される。
【0113】
HTTPに関する記述801では、記述806は、検索条件構造木の構造木IDが「13」であることを示し、記述807は、個別検索条件を識別する検索条件IDが「1001」であることを示している。
【0114】
また、「Location:http://192.168.1.45/printService」によって示される記述808は、構造木ID「13」の検索条件ID「1001」で識別される検索条件を満たす機器として、ネットワークサービス機器100が提供するプリントサービスを特定するURL「http://192.168.1.45/printService」を指定している。
【0115】
更に、「DeviceProfileUrl:http//192.168.1.45/printService/profile」によって示される記述809は、ネットワークサービス機器100の機能プロファイルを特定するURL「http//192.168.1.45/printService/profile」を指定している。この記述809によって、クライアント端末300は、必要に応じて機能プロファイル40をネットワークサービス機器100から取得することができる。
【0116】
また、「DeviceId:bc589」によって示される記述816によって、ネットワークサービス機器100のIDが「bc589」であることが示される。
【0117】
クライアント端末300において、記述808、809及び616によって得られた情報は、図12に示されるように、検索結果リスト470の検索条件ID「1001」に対応させてポインタによって連結される。
【0118】
次に、検索結果リスト470に蓄積された検索結果を初期検索条件40に基づく演算子によって結合するための結合処理について図19で概要を説明する。図19は、演算子による結合処理の例を示す図である。
【0119】
図19(A)は、演算子がANDである場合の結合処理の例を示し、右側の検索条件に対して蓄積された検索結果と左側の検索条件に対して蓄積された検索結果とに共通して存在する検索結果が結合処理による検索結果であることを示している。この例では、積集合による結合処理が行われ、機器ID及びIPアドレスが、「bc589」及び「192.168.1.45」と、「ggf45」及び「192.168.1.52」とが検索結果となる。
【0120】
図19(B)は、演算子がORである場合の結合処理の例を示し、右側の検索条件に対して蓄積された検索結果と左側の検索条件に対して蓄積された検索結果の少なくとも一方に存在する検索結果が結合処理による検索結果であることを示している。この例では、和集合による結合処理が行われ、機器ID及びIPアドレスが、「er564g」及び「192.168.1.21」と、「a1234」及び「192.168.1.21」と、「bc589」及び「192.168.1.45」と、「ggf45」及び「192.168.1.52」とが検索結果となる。
【0121】
次に、クライアント端末300の検索処理部310によって実行される検索条件の分割及び送信処理について図20で説明する。図20は、検索条件の分割及び送信処理を説明するためのフローチャート図である。
【0122】
図20において、検索処理部310は、例えば、クライアント端末300の起動時等に検索結果リスト450を初期化する(ステップS11)。検索要求解析部311が、アプリケーション301から検索要求を取得すると(ステップS12)、その検索要求で指定される検索条件の分割及び構造木の生成処理を実行する(ステップS13)。
【0123】
検索実行制御部313は、検索条件の分割及び構造木の生成処理によって作成された個別検索条件リスト430に基づいて、送信用のリーフリストを作成する(ステップS14)。検索実行制御部313は、作成したリーフリストからリーフ(つまり、所定バイトの範囲で分割された検索条件)を順に選択し(ステップS15)、リーフに対する検索要求を生成する(ステップS16)。検索実行制御部313は、検索要求送受信部314に対して、検索要求の送信を指示し、検索要求送受信部314は、指示に応じて検索要求をマルチキャストでUDPパケットをネットワーク20へ送信する。
【0124】
検索処理部310が、送信された検索要求にたいする検索応答を受信すると、検索応答で示される検索結果の受信及び合成処理を実行する(ステップS18)。検索実行制御部313は、全てのリーフを送信したか否かを判断する(ステップS19)。全てのリーフを送信した場合、検索条件の分割及び送信処理を終了する。
【0125】
一方、全てのリーフを送信していない場合、機能プロファイル200を利用して検索するか否かを判断する(ステップS20)。機能プロファイルを利用しない場合、ステップS15へ戻り、上記同様の処理を繰り返す。一方、機能プロファイルを利用する場合、検索結果リスト450中のサービスが所定のT個以下であるか否かを判断する(ステップS21)。所定のT個以下でる場合、ステップS15へ戻り、上記同様の処理を繰り返す。
【0126】
ステップS21での判断処理は、初期検索条件40において、ANDテストによって複数の個別検索条件に分割され、その1つの個別検索条件のみをネットワーク20へ送信し、その個別検索条件に対応する検索結果(つまり、サービス)の個数が所定数以上となった場合、検索条件構造木に従って、残りの個別検索条件と機能プロファイルとを照合することで、その残りの個別検索条件を送信及び検索結果の受信に関する処理を行わなくて良い。
【0127】
一方、所定のT個以下でない場合、検索実行制御部313は、プロファイル検索部320に対して、機能プロファイルを利用した機能プロファイル検索処理を要求する。プロファイル検索部320は、検索結果リスト450を機能プロファイル検索対象リストにコピーする(ステップS22)、機能プロファイル検索処理を実行する(ステップS23)。プロファイル検索部320は、機能プロファイル検索処理によって得られた機能プロファイル検索結果を検索結果リスト450にコピーし(ステップS24)、プロファイル検索部320での処理を終了する。プロファイル検索部320での処理の終了と共に、検索処理部310による検索条件の分割及び送信処理を終了する。
【0128】
次に、検索要求解析部311による検索条件の分割及び構造木の生成処理について図21から図23で説明する。図21から図23は、検索条件の分割及び構造木の生成処理を説明するためのフローチャート図である。図21において、検索要求解析部311は、検索条件pにアプリケーション301から取得した初期検索条件40をセットし(ステップS111)、検索条件の最大長をLとし(ステップS112)、分割対象ノードリストを初期化する(ステップS113)。
【0129】
検索要求解析部311は、検索条件pに対応したノードkを生成し(ステップS114)、分割対象ノードリストにノードkを追加する(ステップS115)。
【0130】
検索要求解析部311は、分割対象ノードリストが空か否かを判断する(ステップS116)。分割対象ノードリストが空である場合、検索要求解析部311は、検索条件の分割及び構造木の生成処理を終了する。一方、分割対象ノードリストが空でない場合、分割対象ノードリストから先頭の要素を取り出しノードkcとし、取り出したノードkcを分割対象ノードリストから削除する(ステップS117)。
【0131】
検索要求解析部311は、ノードkcに対応した検索条件をpcとする(ステップS118)。検索要求解析部311は、検索条件pcと同じ検索条件が別の検索木中にないか否かを検索条件構造木保存領域312の各木(現在の木を含む)の個別検索条件リスト430から検索する(ステップS119)。
【0132】
検索要求解析部311は、同じ検索条件を持つノードが発見されたか否かを判断する(ステップS120)。同じ検索条件を持つノードが発見された場合、ノードkcの情報に、検索された追加情報の属する構造木識別子とを登録し(ステップS121)、ステップS116へ戻り、上記同様の処理を繰り返す。
【0133】
ステップS119、S120及びS121の処理によって、アプリケーション301から新たな初期検索条件を受信し、その初期検索条件を分割した際に、既に個別検索条件と同一である場合、この個別検索条件を送信する必要がない。従って、検索要求の送信回数を減らし、検索の効率を向上させることができる。
【0134】
一方、同じ検索条件を持つノードが発見されない場合、ノードkcの追加情報として、検索条件pcをノード追加情報に登録する(ステップS122)。検索要求解析部311は、検索条件pcがLバイト以下か否かを判断する(ステップS123)。検索条件pcがLバイト以下の場合、検索要求解析部311は、検索条件pcを個別検索条件リスト430に登録し(ステップS127)、構造木情報のノードkcにリーフへのリンクを追加し(ステップS128)、検索条件の分割及び構造木の生成処理を終了する。
【0135】
一方、検索条件pcがLバイト以下でない場合、検索要求解析部311は、検索条件pcがAND又はOR演算である場合、演算子によって分割される部分検索条件を夫々p1、p2とし(ステップS125)、p1、p2を順に検索条件pとして再帰的にステップS114を呼び出し(ステップS126),検索条件の分割及び送信処理を終了する。
【0136】
次に、プロファイル検索部320によって実行される機能プロファイル検索処理を図24で説明する。図24は、機能プロファイル検索処理を説明するためのフローチャート図である。
【0137】
図24において、プロファイル検索部320は、機能プロファイル検索結果を初期化し(ステップS131)、機能プロファイル検索対象リスト中の各サービスを順に選択する(ステップS132)。プロファイル検索部320は、機能プロファイル検索対象リスト中の全てのサービスに対して機能プロファイル取得処理を行ったか否かを判断する(ステップS133)。
【0138】
全てのサービスに対して機能プロファイル取得処理を行っていない場合、プロファイル検索部320は、機能プロファイル取得部321によって、選択したサービスを提供するネットワークサービス機器100から機能プロファイルを取得する(ステップS134)。機能プロファイル取得部321が機能プロファイル200をネットワークサービス機器100から受信すると、検索条件照合部322に通知する。
【0139】
検索条件照合部322は、機能プロファイル取得部321から取得した機能プロファイル200に対して構造木との照合を行う(ステップS135)。照合しない場合、検索条件照合部322は、ステップS132へ戻り、上記同様の処理を繰り返す。一方、照合した場合、検索条件照合部322は、選択したサービスを機能プロファイル検索結果に追加し(ステップS137)、ステップS132へ戻り、上記同様の処理を繰り返す。
【0140】
一方、ステップS133での判断処理において、全てのサービスに対して機能プロファイル取得処理を行った場合、機能プロファイル検索処理を終了する。
【0141】
次に、検索処理部310及び検索結果合成部315によって実行される検索結果の受信及び合成処理を図25で説明する。図25は、検索結果の受信及び合成処理を説明するためのフローチャート図である。
【0142】
図25において、検索処理部310は、検索要求に対する検索応答を受信すると(ステップS151)、タイムアウト後か否かを判断する(ステップS152)。タイムアウト後でない場合、検索処理部310は、その検索応答から木識別子と検索条件IDとを取得する(ステップS153)。
【0143】
検索処理部310は、木識別子に対応した検索結果リストの検索条件IDにネットワークサービス機器の情報をリンクし(ステップS154)、検索結果合成部315によって、検索結果の合成処理を実行する(ステップS155)。検索結果合成部315は、検索結果の合成処理での処理結果に基づいて、表示ユニット55に表示されている検索結果画面を更新する(ステップS156)。検索処理部310は、ステップS151へ戻り、上記同様の処理を繰り返す。
【0144】
一方、ステップS152での判断処理によってタイムアウト後である場合、検索処理部310は、検索結果の受信及び合成処理を終了する。
【0145】
次に、検索結果合成部315によって実行される検索結果の合成処理を図26で説明する。図26は、検索結果の合成処理を説明するためのフローチャート図である。
【0146】
図26において、検索結果合成部315は、構造木のルートの部分からスタートし、深さ優先で探索が行われ、最初のリーフを選択する(ステップS171)。検索結果合成部315は、選択されたリーフを現在のノードとし(ステップS172)、現在のノードに対する部分検索結果を求める(ステップS173)。
【0147】
そして、検索結果合成部315は、ノードがリーフであるか否かを判断する(ステップS174)。ノードがリーフである場合、検索結果合成部315は、そのノードに対応した、検索結果リストに保存されている検索結果を取得し(ステップS175)、検索結果の合成処理を終了する。
【0148】
一方、ノードがリーフでない場合、そのノードの子ノードに対する検索結果が検索結果テーブルに保存されているか否かを判断する(ステップS176)。保存されていない場合、ステップS171へ戻り、上記同様の処理を繰り返す。一方、保存されている場合、各子ノードに対する部分結果を、それらの本ノードで指定されるAND又はOR演算子で結合して(ステップS177)、検索結果の合成処理を終了する。
【0149】
上記実施例より、所定バイトの範囲で分割した検索条件を送信することができ、且つ、初期検索条件40の検索条件構造木のデータ構造を示す構造木情報410に従って、各ネットワークサービス機器100から受信した検索結果を合成することができるため、データ長の制限範囲に依存しない詳細な検索によって、ユーザが所望する適切なサービスを特定することができる。例えば、カラーコピーが可能か否か、ステープルが可能か否か等の詳細な検索条件によって検索ができるようになる。
【0150】
上記実施例において、クライアント端末100にて、検索応答で取得した検索結果を合成し、アプリケーション301から要求される初期検索条件40を満たすサービスの一覧を作成するようにしているが、ネットワークサービス機器100側にて、同一クライアント端末300から分割された検索条件を受信する毎に、その分割された検索条件を満たすか否かを機能プロファイル200とを照合することによって判断し、全ての分割された検索条件した後に、分割された検索条件で示される演算子に従って、各判断結果を合成する合成処理を行ない、この合成処理によって得られた判断結果が初期検索条件40を満たす場合にクライアント端末へ検索結果を送信するようにしても良い。このような構成とした場合、クライアント端末300での処理を軽減することが可能となる。
【0151】
上記実施例において、既にネットワーク20へ送信された図10に示す個別検索条件リスト及び検索結果を示す図12に示す検索結果リスト470とをキャッシュに保存しておくことによって、検索要求の送信回数を減らすことができ、検索の効率を向上することができる。
【0152】
上記より、本願発明は、初期検索条件が所定データ長より大きい場合には分割され個別検索条件(リーフ)として送信されるため、初期検索条件の全体を送信することができる。また、初期検索条件の検索条件構造木に従って、分割された初期検索条件を復元するかのように、個別検索条件に対応する検索結果を合成することができるため、初期検索条件を満たすサービスを特定することができる。また、所定データ長に依存しない詳細な検索を実現することができる。
【0153】
また、論理演算子をノードとして検索条件構造木を作成するが、分割された末端部分が所定データ長より大きい場合に分割を行うため、必要以上に短くならないように分割を行わないようにすることができる。従って、必要以上に検索条件がネットワークへ送信されないため、検索の効率を向上させることができる。
【0154】
更に、所定データ長に応じた検索条件構造木が作成されるため、必要以上に検索条件構造木を階層化することがない。
【0155】
また、UDPデータバケットのデータ長に応じた検索条件構造木が作成され、UDPデータバケットのデータ長に応じた個別検索条件が得られるため、初期検索条件がUDPデータバケットのデータ長より大きい場合であっても、初期検索条件と同等の詳細な検索を行うことができる。
【0156】
更に、不必要にノードが送信されることがないため、つまり、不必要な論理演算子の部分を送信しないため、データ転送の効率を向上させることができる。
【0157】
また、初期検索条件が論理和(AND)によって複数の個別検索条件に分割される場合に、個別検索条件が1つ送信されるのみであるため、送信処理を効率化することができる。また、その個別検索条件に応じた検索結果に基づいて取得した機能プロファイルと送信されなかった他個別検索条件とが照合されるため、照合すべき機能プロファイルの数を抑制することができ、効率良く照合できる。
【0158】
【発明の効果】
以上、説明してきたように、初期検索条件を所定バイトの範囲で分割するため、マルチキャストで分割された検索条件を送信することができ、かつ、初期検索条件の全体を送信することができる。また、初期検索条件の検索条件構造木に従って、分割された検索条件を復元するかのように、分割された検索条件に対応する検索結果を合成することができるため、初期検索条件を満たすサービスを特定することができる。
【0159】
【図面の簡単な説明】
【図1】本発明の一実施例に係るネットワークサービス機器のハードウェア構成を示す図である。
【図2】本発明の一実施例に係るクライアント端末のハードウェア構成を示すブロック図である。
【図3】ネットワークサービス検索システムの機能構成例を示す図である。
【図4】通信プロトコルの構成例を示す図である。
【図5】初期検索条件の例を示す図である。
【図6】ネットワークサービス機器の機能プロファイルの例を示す図である。
【図7】所定バイトで分割した場合の検索条件構造木の例を示す図である。
【図8】検索条件構造木保存領域のデータ構成例を示す図である。
【図9】構造木情報のデータ構造例を示す図である。
【図10】個別検索条件リストのデータ構造例を示す図である。
【図11】ノード追加情報のデータ構造例を示す図である。
【図12】検索結果リストのデータ構造例を示す図である。
【図13】検索条件IDが1001の場合のSOAPによる検索要求の例を示す図である。
【図14】検索条件IDが1005の場合のSOAPによる検索要求の例を示す図である。
【図15】検索条件IDが1001の場合のSOAPによる検索応答の例を示す図である。
【図16】検索条件IDが1001の場合のHTTPによる検索要求の例を示す図である。
【図17】検索条件IDが1005の場合のHTTPによる検索要求の例を示す図である。
【図18】検索条件IDが1001の場合のHTTPによる検索応答の例を示す図である。
【図19】演算子による結合処理の例を示す図である。
【図20】検索条件の分割及び送信処理を説明するためのフローチャート図である。
【図21】検索条件の分割及び構造木の生成処理を説明するためのフローチャート図である。
【図22】検索条件の分割及び構造木の生成処理を説明するためのフローチャート図である。
【図23】検索条件の分割及び構造木の生成処理を説明するためのフローチャート図である。
【図24】機能プロファイル検索処理を説明するためのフローチャート図である。
【図25】検索結果の受信及び合成処理を説明するためのフローチャート図である。
【図26】検索結果の合成処理を説明するためのフローチャート図である。
【符号の説明】
100 ネットワークサービス機器
110 プリントサービス処理部
120 BMLinkS処理部
121 HTTPサーバー
122 検索要求監視部
123 検索要求判定部
200 機能プロファル
300 クライアント端末
301 アプリケーション
311 検索要求解析部
312 検索条件構造木保存領域
313 検索実行制御部
314 検索要求送受信部
315 検索結果合成部
320 プロファイル検索部
321 機能プロファイル取得部
322 検索条件照合部
330 BMLinkS処理部
Claims (12)
- ネットワークを介して提供される所望のサービスを検索するための第一検索条件を所定データ長より大きくならないように分割して複数の第二検索条件を作成し、
上記第二検索条件毎に上記ネットワークから受信した該第二検索条件に応じた検索結果を記憶領域に蓄積し、
上記複数の第二検索条件から上記第一検索条件を復元しつつ、該第一検索条件で指定される論理演算に従って、上記記憶領域から演算対象となる該第二検索条件に応じた上記検索結果を取得して、取得した該検索結果を合成することによって該第一検索条件に応じた検索結果を取得するようにしたネットワークサービス検索方法。 - 上記分割は、分割された末端部分が所定データ長より大きい場合に該第一検索条件を分割するように、該第一検索条件を上記論理演算子をノードとする構造木を作成し、その構造木のデータ構造を示す構造木情報を上記記憶領域に格納し、
上記復元は、上記記憶領域に格納された上記構造木情報に基づいて行うようにした請求項1記載のネットワークサービス検索方法。 - 上記分割は、分割後の上記第二検索条件が上記所定データ長より大きい場合に、現在のルートをノードとして、上記分割を再帰的に行うようにした請求項2記載のネットワークサービス検索方法。
- 上記分割は、上記第一検索条件を論理積及び論理和をノードとする構造木を作成するようにした請求項2又は3記載のネットワークサービス検索方法。
- 上記所定データ長は、UDPデータバケットのデータ長であるようにした請求項1乃至4のいずれか一項記載のネットワークサービス検索方法。
- 上記構造木の末端部分を送信すべき上記第二検索条件として上記ネットワークへ送信するようにした請求項2乃至5のいずれか一項記載のネットワークサービス検索方法。
- 上記第一検索条件で示される論理和をノードとすることによって分割された複数の上記第二検索条件の1つをネットワークへ送信し、
上記第二検索条件に応じた上記検索結果によって特定されるアドレスから、サービスによって提供可能な機能を示す機能プロファイルを取得し、
上記論理和をノードとすることによって分割されたが送信されていない上記第二検索条件と上記機能プロファイルで示される上記機能とを照合することによって、上記第一検索条件に応じた検索結果を取得するようにした請求項1記載のネットワークサービス検索方法。 - 上記第二検索条件に応じた上記検索結果が所定個数以上であるか否かを判断し、
その判断結果に基づいて、上記論理和をノードとすることによって分割されたが送信されていない上記第二検索条件と上記機能プロファイルで示される上記機能とを照合するようにした請求項7記載のネットワークサービス検索方法。 - 上記記憶領域内にて上記構造木を識別する識別情報に対応させて、作成された上記構造木情報の格納場所と、上記所定データ長の範囲内である上記第二検索条件の内容のリストを示す第二検索条件リストの格納場所と、該第二検索条件毎に検索結果のリストを示す検索結果リストの格納場所と、各ノード以下を示す部分検索条件を示すノード情報の格納場所とを示すテーブルによって、上記第一検索条件を管理するようにした請求項2乃至8のいずれか一項記載のネットワークサービス検索方法。
- 上記第二検索条件は、所定メッセージ交換プロトコルに従って検索要求としてネットワークへ送信され、
上記検索結果は、該第二検索条件を満たす場合のみ、上記所定メッセージ交換プロトコルに従って検索応答としてネットワークへ送信される請求項1乃至9のいずれか一項記載のネットワークサービス検索方法。 - 上記第二検索条件は、所定インターネット通信プロトコルに従って検索要求としてネットワークへ送信され、
上記検索結果は、該第二検索条件を満たす場合のみ、インターネット通信プロトコルに従って検索応答としてネットワークへ送信される請求項1乃至9のいずれか一項記載のネットワークサービス検索方法。 - 上記ネットワークを介してサービスを提供可能な1つ以上のサービス提供機器と、アプリケーションから指示された上記第一検索条件に基づいて、該ネットワーク上に存在するサービスを提供する複数のサービス提供機器から上記第一検索条件を満たすサービス提供機器を検索する1つ以上のクライアント端末とで構成されるシステムにおいて、上記サービス提供機器が上記複数の第二検索条件を作成し、上記サービス提供機器が該第二検索条件に応じた上記クライアント端末から受信した検索結果を記憶領域に蓄積し、上記サービス提供機器が取得した該検索結果を合成することによって該第一検索条件に応じた検索結果を取得するようにした請求項1乃至11のいずれか一項記載のネットワークサービス検索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003197417A JP4291634B2 (ja) | 2003-07-15 | 2003-07-15 | ネットワークサービス検索装置、ネットワークサービス検索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003197417A JP4291634B2 (ja) | 2003-07-15 | 2003-07-15 | ネットワークサービス検索装置、ネットワークサービス検索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005038024A true JP2005038024A (ja) | 2005-02-10 |
JP4291634B2 JP4291634B2 (ja) | 2009-07-08 |
Family
ID=34207569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003197417A Expired - Fee Related JP4291634B2 (ja) | 2003-07-15 | 2003-07-15 | ネットワークサービス検索装置、ネットワークサービス検索方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4291634B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007034874A (ja) * | 2005-07-29 | 2007-02-08 | Nomura Research Institute Ltd | 検索システム及び検索方法 |
WO2015194117A1 (ja) * | 2014-06-16 | 2015-12-23 | 日本電気株式会社 | 条件生成装置、条件生成方法、条件生成プログラムが格納された記録媒体、データベース検索システム、及び、データベース検索プログラムが格納された記録媒体 |
-
2003
- 2003-07-15 JP JP2003197417A patent/JP4291634B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007034874A (ja) * | 2005-07-29 | 2007-02-08 | Nomura Research Institute Ltd | 検索システム及び検索方法 |
JP4733458B2 (ja) * | 2005-07-29 | 2011-07-27 | 株式会社野村総合研究所 | 検索システム及び検索方法 |
WO2015194117A1 (ja) * | 2014-06-16 | 2015-12-23 | 日本電気株式会社 | 条件生成装置、条件生成方法、条件生成プログラムが格納された記録媒体、データベース検索システム、及び、データベース検索プログラムが格納された記録媒体 |
US10769144B2 (en) | 2014-06-16 | 2020-09-08 | Nec Corporation | Database search system, database search method, and non-transitory recording medium |
Also Published As
Publication number | Publication date |
---|---|
JP4291634B2 (ja) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5441303B2 (ja) | 情報処理装置及び情報処理方法 | |
US7576879B2 (en) | Method of connecting terminal device to printer | |
US7475133B2 (en) | Method for configuring a monitoring system to monitor selected network elements | |
US20090132654A1 (en) | Service retrieval apparatus and service retrieval method | |
US7849174B2 (en) | Network management system, display method, and program | |
EP1638290A1 (en) | System, method and intermediary server for transmitting operational requests and responses between apparatuses | |
JP2003108448A (ja) | ネットワークデバイスの管理装置、管理方法及び管理プログラム | |
JP2003091393A (ja) | 印刷システムおよびその方法 | |
US6839755B1 (en) | Network peripheral server discovery method | |
JP4453593B2 (ja) | 分散印刷における印刷経過の監視 | |
US20150009539A1 (en) | Information processing method, information processing apparatus and program | |
CN108769118A (zh) | 一种分布式***中主节点的选取方法及装置 | |
US7962475B2 (en) | Information processing apparatus for searching for a desired image processing apparatus connected to a network, method for controlling the same, and computer-readable storage medium | |
JP4291634B2 (ja) | ネットワークサービス検索装置、ネットワークサービス検索方法 | |
JP4291635B2 (ja) | ネットワークサービス検索システム | |
JPH1021021A (ja) | 印刷システム及び印刷制御方法 | |
US8760703B2 (en) | Job control system and job control method | |
JP2005352890A (ja) | サービス提供システム、サービス提供方法及びそのプログラム | |
JP2005259106A (ja) | 仲介装置、分散処理システム、データ転送方法、プログラム及び記録媒体 | |
JP2006020157A (ja) | ノード情報収集装置 | |
JP2005258691A (ja) | デバイス管理装置 | |
US20070058527A1 (en) | Peripheral setting apparatus and method | |
JP2005259105A (ja) | 仲介装置、通信システム、仲介装置の制御方法、プログラム及び記録媒体 | |
US20040223179A1 (en) | Network printing mode automation | |
JP2004274736A (ja) | サービス情報提供装置、ユーザ端末装置、サービス情報提供方法、サービス利用方法、サービス情報提供プログラム、サービス利用プログラム及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060417 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080729 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080926 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090310 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090403 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120410 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140410 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |