JP4291634B2 - Network service search device and network service search method - Google Patents

Network service search device and network service search method Download PDF

Info

Publication number
JP4291634B2
JP4291634B2 JP2003197417A JP2003197417A JP4291634B2 JP 4291634 B2 JP4291634 B2 JP 4291634B2 JP 2003197417 A JP2003197417 A JP 2003197417A JP 2003197417 A JP2003197417 A JP 2003197417A JP 4291634 B2 JP4291634 B2 JP 4291634B2
Authority
JP
Japan
Prior art keywords
search
search condition
condition
network service
network
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.)
Expired - Fee Related
Application number
JP2003197417A
Other languages
Japanese (ja)
Other versions
JP2005038024A (en
Inventor
達也 今井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003197417A priority Critical patent/JP4291634B2/en
Publication of JP2005038024A publication Critical patent/JP2005038024A/en
Application granted granted Critical
Publication of JP4291634B2 publication Critical patent/JP4291634B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、データ長の制限範囲において、検索条件を分割して送信することを可能とすると共に、分割された検索条件に対する応答によって示される検索結果を結合することを可能とし、データ長の制限範囲に依存しない詳細なネットワークサービスの検索を実現するネットワークサービス検索方法を提供するものである。
【0002】
【従来の技術】
近年、ユーザの指示に応じて、ユーザが使用しているクライアント端末が、印刷要求をネットワーク上に存在するネットワークサービス(例えば、印刷サービス)を提供する複数のネットワークサービス機器の1つに行わせる場合、クライアント端末は現在利用可能なネットワークサービス機器をネットワークから検索し、その検索結果として現在サービス可能なネットワークサービスリストを画面に表示することによって、ユーザにネットワークサービスの1つを選択できるようにしている。つまり、ユーザによって選択されたネットワークサービスを実現するネットワークサービス機器が特定される。
【0003】
例えば、クライアント端末が、ユーザが所望するネットワークサービスを検索するための検索条件をUDP(User Datagram Protocol)パケットをネットワーク上にマルチキャストで送信することによって、それを受信したネットワークに接続される複数のネットワークサービス機器は、検索条件を満足できる場合に、クライアント端末に対して応答する。従って、クライアント端末は、ユーザが所望する検索条件を満足し、現在利用可能なネットワークサービス機器によって提供されるネットワークサービスのリストを画面に表示し、ユーザがその中から1つのネットワークサービスを選択することができる。
【0004】
【発明が解決しようとする課題】
しかしながら、上述したような従来のネットワークサービスシステムでは、ネットワーク通信の仕様によって異なるもののUDPパケットのデータサイズは、少量のデータを送信することを目的としているため、検索条件を示すデータ長に制限がある。そのため、データ長の制限に依存しない詳細な検索条件でネットワーク上のネットワークサービスを検索することができなかった。つまり、極端に多数のネットワークサービスが検索されてしまう、或いは、全くネットワークサービスを検索することができない等の問題があった。
【0005】
そこで、本発明の課題は、データ長の制限範囲において、検索条件を分割して送信することを可能とすると共に、分割された検索条件に対する応答によって示される検索結果を結合することを可能とし、データ長の制限範囲に依存しない詳細なネットワークサービスの検索を実現するネットワークサービス検索方法を提供することである。
【0006】
【課題を解決するための手段】
上記課題を解決するため、本発明は、ネットワークを介して提供される所望のサービスを検索するための第一検索条件を所定データ長より大きくならないように分割して複数の第二検索条件を作成し、前記複数の第二検索条件の互いの関連を示す検索条件構造木を生成し、上記第二検索条件と同じ検索条件が別の検索条件構造木中にないか否かを検索条件構造木が保存された記憶領域から検索し、同じ検索条件が発見された場合、検索条件構造木識別子を登録し、同じ検索条件が発見されない場合、上記第二検索条件を当該ネットワークサービス検索装置と接続されたネットワークサービス機器へ送信し、上記第二検索条件毎に上記ネットワークサービス機器から受信した該第二検索条件に応じた検索結果を上記記憶領域に蓄積し、上記複数の第二検索条件から上記第一検索条件を復元しつつ、該第一検索条件で指定される論理演算に従って、上記記憶領域から演算対象となる該第二検索条件に応じた上記検索結果を取得して、取得した該検索結果を合成することによって該第一検索条件に応じた検索結果を取得するように構成される。
【0007】
このようなネットワークサービス検索方法では、第一検索条件が所定データ長より大きい場合には分割され第二検索条件として送信されるため、第一検索条件の全体を送信することができる。また、第一検索条件の構造木に従って、分割された検索条件を復元するかのように、分割された検索条件に対応する検索結果を合成することができるため、初期検索条件を満たすサービスを特定することができる。また、所定データ長に依存しない詳細な検索を実現することができる。
【0008】
また、本発明は、上記分割は、上記第一検索条件が所定データ長より大きい場合に該第一検索条件を分割するように、該第一検索条件を上記論理演算子をノードとする構造木を作成し、その構造木のデータ構造を示す構造木情報を上記記憶領域に格納し、上記復元は、上記記憶領域に格納された上記構造木情報に基づいて行うように構成される。
【0009】
このようなネットワークサービス検索方法では、論理演算子をノードとして構造木を作成するが、分割された末端部分が所定データ長より大きい場合に分割を行うため、必要以上に短くならないように分割を行わないようにすることができる。従って、必要以上に検索条件がネットワークへ送信されないため、検索の効率を向上させることができる。
【0010】
更に、本発明は、上記分割は、分割後の上記第二検索条件が上記所定データ長より大きい場合に、現在のルートをノードとして、上記分割を再帰的に行うように構成することができる。
【0011】
このようなネットワークサービス検索方法では、所定データ長に応じた構造木が作成されるため、必要以上に構造木を階層化することがない。
【0012】
また、本発明は、上記分割は、上記第一検索条件を論理積及び論理和をノードとする構造木を作成するように構成することができる。
【0013】
更に、本発明は、上記所定データ長は、UDPデータバケットのデータ長であるように構成することができる。
【0014】
このようなネットワークサービス検索方法では、UDPデータバケットのデータ長に応じた構造木が作成され、UDPデータバケットのデータ長に応じた第二検索条件が得られるため、第一検索条件がUDPデータバケットのデータ長より大きい場合であっても、第一検索条件と同等の詳細な検索を行うことができる。
【0015】
また、本発明は、上記構造木の末端部分を送信すべき上記第二検索条件として上記ネットワークへ送信するように構成することができる。
【0016】
このようなネットワークサービス検索方法では、不必要にノードが送信されることがないため、つまり、不必要な論理演算子の部分を送信しないため、データ転送の効率を向上させることができる。
【0017】
更に、本発明は、上記第一検索条件で示される論理和をノードとすることによって分割された複数の上記第二検索条件の1つをネットワークへ送信し、上記第二検索条件に応じた上記検索結果によって特定されるアドレスから、サービスによって提供可能な機能を示す機能プロファイルを取得し、上記論理和をノードとすることによって分割されたが送信されていない上記第二検索条件と上記機能プロファイルで示される上記機能とを照合することによって、上記第一検索条件に応じた検索結果を取得するように構成することができる。また、本発明は、上記第二検索条件に応じた上記検索結果が所定個数以上であるか否かを判断し、その判断結果に基づいて、上記論理和をノードとすることによって分割されたが送信されていない上記第二検索条件と上記機能プロファイルで示される上記機能とを照合するように構成することができる。
【0018】
このようなネットワークサービス検索方法では、第一検索条件が論理和(AND)によって複数の第二検索条件に分割される場合に、第二検索条件が1つ送信されるのみであるため、送信処理を効率化することができる。また、その第二検索条件に応じた検索結果に基づいて取得した機能プロファイルと送信されなかった他第二検索条件とが照合されるため、照合すべき機能プロファイルの数を抑制することができ、効率良く照合処理が行える。
【0019】
更に、本発明は、上記記憶領域内にて上記構造木を識別する識別情報に対応させて、作成された上記構造木情報の格納場所と、上記所定データ長の範囲内である上記第二検索条件の内容のリストを示す第二検索条件リストの格納場所と、該第二検索条件毎に検索結果のリストを示す検索結果リストの格納場所と、各ノード以下を示す部分検索条件を示すノード情報の格納場所とを示すテーブルによって、上記第一検索条件を管理するように構成することができる。
【0020】
また、本発明は、上記第二検索条件は、所定メッセージ交換プロトコルに従って検索要求としてネットワークへ送信され、上記検索結果は、該第二検索条件を満たす場合のみ、上記所定メッセージ交換プロトコルに従って検索応答としてネットワークへ送信されるように構成することができる。又は、本発明は、上記第二検索条件は、所定インターネット通信プロトコルに従って検索要求としてネットワークへ送信され、上記検索結果は、該第二検索条件を満たす場合のみ、インターネット通信プロトコルに従って検索応答としてネットワークへ送信されるように構成することができる。
【0021】
更に、本発明は、上記ネットワークを介してサービスを提供可能な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処理部
[0001]
BACKGROUND OF THE INVENTION
The present invention makes it possible to divide and transmit search conditions within the limit range of data length, and to combine search results indicated by responses to the divided search conditions, thereby limiting the data length. The present invention provides a network service search method that realizes a detailed network service search independent of the range.
[0002]
[Prior art]
In recent years, in response to a user instruction, a client terminal used by a user causes a print request to be made to one of a plurality of network service devices that provide a network service (for example, a print service) existing on the network. The client terminal searches the currently available network service device from the network, and displays the currently available network service list on the screen as the search result, thereby enabling the user to select one of the network services. . That is, the network service device that realizes the network service selected by the user is specified.
[0003]
For example, a client terminal transmits a UDP (User Datagram Protocol) packet by multicast on a network as a search condition for searching for a network service desired by a user, thereby connecting a plurality of networks connected to the network that has received the packet. The service device responds to the client terminal when the search condition can be satisfied. Therefore, the client terminal satisfies a search condition desired by the user, displays a list of network services provided by the currently available network service device on the screen, and the user selects one network service from the list. Can do.
[0004]
[Problems to be solved by the invention]
However, in the conventional network service system as described above, although the data size of the UDP packet is intended to transmit a small amount of data, which differs depending on the specifications of the network communication, the data length indicating the search condition is limited. . For this reason, it has not been possible to search for network services on the network using detailed search conditions that do not depend on the data length limitation. That is, there is a problem that an extremely large number of network services are searched or a network service cannot be searched at all.
[0005]
Accordingly, the problem of the present invention is that it is possible to divide and transmit search conditions within a limited range of data length, and to combine search results indicated by responses to the divided search conditions, It is an object of the present invention to provide a network service search method that realizes a detailed network service search that does not depend on the data length limit range.
[0006]
[Means for Solving the Problems]
In order to solve the above problems, the present invention The A plurality of second search conditions are created by dividing the first search condition for searching for a desired service provided through the network so as not to be longer than a predetermined data length, Generate a search condition structure tree indicating the relationship between the plurality of second search conditions, and the search condition structure tree stores whether or not the same search condition as the second search condition exists in another search condition structure tree If the same search condition is found, the search condition structure tree identifier is registered, and the same search condition is not found. the above Send the second search condition to the network service device connected to the network service search device, For each second search condition From the above network service device The search result according to the received second search condition is accumulated in the storage area, and the first search condition is restored from the plurality of second search conditions, and in accordance with a logical operation specified by the first search condition. The search result corresponding to the second search condition to be calculated is acquired from the storage area, and the search result corresponding to the first search condition is acquired by combining the acquired search results. Composed.
[0007]
In such a network service search method, when the first search condition is larger than the predetermined data length, it is divided and transmitted as the second search condition, so that the entire first search condition can be transmitted. In addition, since the search results corresponding to the divided search conditions can be synthesized as if the divided search conditions were restored according to the structure tree of the first search condition, services that satisfy the initial search condition are identified. can do. Further, it is possible to realize a detailed search that does not depend on a predetermined data length.
[0008]
The present invention also provides ,Up The division is First search condition above A structure tree having the first search condition as a node and the logical operator as a node so as to divide the first search condition when the first search condition is larger than a predetermined data length, and the structure tree information indicating the data structure of the structure tree Are stored in the storage area, and the restoration is performed based on the structural tree information stored in the storage area.
[0009]
In such a network service search method, a structure tree is created using a logical operator as a node. However, since the division is performed when the divided end portion is larger than a predetermined data length, the division is performed so as not to shorten more than necessary. Can not be. Accordingly, since search conditions are not transmitted to the network more than necessary, search efficiency can be improved.
[0010]
Furthermore, the present invention On The division can be configured to recursively perform the division using the current route as a node when the second search condition after division is larger than the predetermined data length.
[0011]
In such a network service search method, a structure tree corresponding to a predetermined data length is created, so that the structure tree is not hierarchized more than necessary.
[0012]
In addition, the present invention On The division can be configured to create a structure tree having the first search condition as a logical product and a logical sum as nodes.
[0013]
Furthermore, the present invention On The predetermined data length can be configured to be the data length of the UDP data bucket.
[0014]
In such a network service search method, a structure tree corresponding to the data length of the UDP data bucket is created, and a second search condition corresponding to the data length of the UDP data bucket is obtained. Therefore, the first search condition is the UDP data bucket. Even if the data length is longer than the above, a detailed search equivalent to the first search condition can be performed.
[0015]
The present invention also provides ,Up The terminal part of the structure tree can be transmitted to the network as the second search condition to be transmitted.
[0016]
In such a network service search method, nodes are not transmitted unnecessarily, that is, unnecessary logical operators are not transmitted, so that the efficiency of data transfer can be improved.
[0017]
Furthermore, the present invention provides ,Up One of the plurality of second search conditions divided by using the logical sum indicated by the first search condition as a node is transmitted to the network, and is specified by the search result according to the second search condition. The function profile indicating the function that can be provided by the service is acquired from the address, and the second search condition that is divided but not transmitted by using the logical sum as a node and the function indicated by the function profile are obtained. By collating, it can comprise so that the search result according to said 1st search condition may be acquired. In addition, the present invention On It is determined whether or not the search results according to the second search condition are equal to or greater than a predetermined number, and based on the determination results, the logical sum is used as a node but is not transmitted but is not transmitted. The second search condition can be configured to collate the function indicated by the function profile.
[0018]
In such a network service search method, when the first search condition is divided into a plurality of second search conditions by logical sum (AND), only one second search condition is transmitted. Can be made more efficient. Moreover, since the function profile acquired based on the search result according to the second search condition and the other second search condition that has not been transmitted are collated, the number of function profiles to be collated can be suppressed, The matching process can be performed efficiently.
[0019]
Furthermore, the present invention provides ,Up In correspondence with the identification information for identifying the structure tree in the storage area, a storage location of the created structure tree information and a list of contents of the second search condition within the predetermined data length The storage location of the second search condition list shown, the storage location of the search result list showing the search result list for each of the second search conditions, and the storage location of the node information showing the partial search conditions below each node The table can be configured to manage the first search condition.
[0020]
In addition, the present invention On The second search condition is transmitted to the network as a search request according to a predetermined message exchange protocol, and the search result is transmitted to the network as a search response according to the predetermined message exchange protocol only when the second search condition is satisfied. Can be configured. Or the present invention On The second search condition is transmitted to the network as a search request according to a predetermined Internet communication protocol, and the search result is transmitted to the network as a search response according to the Internet communication protocol only when the second search condition is satisfied. can do.
[0021]
Furthermore, the present invention provides ,Up One or more service providing devices that can provide a service via the network, and a plurality of service providing devices that provide a service existing on the network based on the first search condition specified by the application In a system including one or more client terminals that search for a service providing device that satisfies a first search condition, the service providing device creates the plurality of second search conditions, and the service providing device The search result received from the client terminal according to the search condition is stored in a storage area, and the search result according to the first search condition is acquired by combining the search result acquired by the service providing device. Can be configured.
[0022]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0023]
A network service search method according to an embodiment of the present invention is used to transmit a small amount of data constituting a network. For example, a search condition divided by multicast using a UDP (User Datagram Protocol) packet is transmitted. The hardware configuration of a plurality of network service devices and a plurality of client terminals that transmit search results for the divided search conditions will be described with reference to FIGS.
[0024]
FIG. 1 is a diagram showing a hardware configuration of a network service device according to an embodiment of the present invention. In FIG. 1, a network service device 100 is a device that is controlled by a computer and executes print processing, and includes a CPU (Central Processing Unit) 11, a ROM (Read-Only Memory) 12, and a RAM (Random Access Memory) 13. A non-volatile random access memory (RAM) 14, a real-time clock 15, an Ethernet (registered trademark) I / F (Ethernet (registered trademark) Interface) 21, a USB (Universal Serial Bus) 22, and an IEEE ( The Institute of Electrical and Electronics Engineers) 1284 23, a hard disk I / F 24, a video I / F 25, and an RS-232C I / F 26 are connected to the system bus B.
[0025]
The CPU 11 controls the network service device 100 according to a program stored in the ROM 12. For example, an area is allocated to the RAM 13 for resources connected to the interfaces 21 to 26. The nonvolatile RAM 14 stores information necessary for processing by the CPU 11 until the network service device 100 is powered off. The real-time clock 15 measures the current time and is used by the CPU 11 to synchronize processing.
[0026]
An Ethernet (registered trademark) interface cable such as 10BASE-T or 100BASE-TX is connected to the Ethernet (registered trademark) I / F 21. A USB interface cable is connected to the USB 22. An IEEE1284 interface cable is connected to the IEEE1284 23.
[0027]
A hard disk 34 is connected to the hard disk I / F 24, and document data of a document to be serviced (for example, document data to be printed) or image data after printing processing is transmitted to the hard disk I via the network. Stored in the hard disk 34 via / F24. A printer engine 35 is connected to the video I / F 25, and image data is transmitted to the printer engine 25 via the video I / F 25, and an image is formed on a printable medium such as paper based on the image data. . An operation panel 36 is connected to the RS-232C I / F 26 to display information to the user and acquire input information or setting information from the user.
[0028]
FIG. 2 is a block diagram showing a hardware configuration of the client terminal according to the embodiment of the present invention. In FIG. 2, a client terminal 300 is a device that is controlled by a computer and executes print processing. The client terminal 300 is a CPU (central processing unit) 51, a memory unit 52, a display unit 53, an input unit 54, and a communication unit 55. And a storage device 56 and a driver 57, which are connected to the system bus B3.
[0029]
The CPU 51 controls the client terminal 300 according to a program stored in the memory unit 52. The memory unit 52 includes a RAM and a ROM, and stores programs executed by the CPU 51, data necessary for processing by the CPU 51, data obtained by processing by the CPU 51, and the like. Further, a partial area of the memory unit 52 is allocated as a work area used for processing by the CPU 51.
[0030]
The display unit 53 displays various information required under the control of the CPU 51. The input unit 54 includes a mouse, a keyboard, and the like, and is used by a user to input various information necessary for the client terminal 300 to perform processing. The communication unit 55 is an apparatus for controlling communication with a plurality of network service devices 100 when the client terminal 300 is connected to the plurality of network service devices 100 via, for example, a LAN (Local Area Network). It is. The storage device 56 is composed of, for example, a hard disk unit, and stores programs for executing various processes, document data, and the like.
[0031]
A program for realizing the search processing performed by the client terminal 300 is provided to the client terminal 300 by a storage medium 58 such as a CD-ROM, for example. That is, when the storage medium 58 storing the program is set in the driver 57, the driver 57 reads the program from the storage medium 58, and the read program is installed in the storage device 56 via the system bus B3. . When the program is activated, the CPU 51 starts its processing according to the program installed in the storage device 56. The medium for storing the program is not limited to a CD-ROM, and any medium that can be read by a computer may be used. The program for realizing the printing process according to the present invention may be downloaded via the network 40 by the communication unit 55 and installed in the storage device 56.
[0032]
A functional configuration of a network service search system for realizing a search process in the network service search method according to an embodiment of the present invention will be described with reference to FIG. FIG. 3 is a diagram illustrating a functional configuration example of the network service search system. In FIG. 3, for convenience of explanation, the network service search system 100 will be described with a minimum configuration, and the following description will be made with a configuration in which the network service device 100 and the client terminal 300 are connected via the network 20.
[0033]
The network service device 100 that provides print processing as a network service mainly includes a print service processing unit 110 that executes print processing in response to a print request and a BMLinkS processing unit 120.
[0034]
The print service processing unit 110 controls the printer engine 35 in FIG. 1 according to the print conditions specified by the print request received from the client terminal via the network 20, and forms an image on a predetermined medium based on the document data. Output. In the present embodiment, the print service processing unit 110 that provides the print service to perform the print process is illustrated, but the present invention is not limited to the print process. For example, a service processing unit that provides processing such as FAX and copying as a network service may be used.
[0035]
The BMLinkS processing unit 120 is an inter-device interface protocol that realizes common communication control among office equipment devices such as a printer, a FAX, and a copier, and analyzes a search condition transmitted from the client terminal 300, and the search condition When the device satisfies the condition, a process of transmitting a search response indicating the search result to the client terminal 300 is performed.
[0036]
The BMLinkS processing unit 120 further includes an HTTP server 121, a search request monitoring unit 122, a search request determination unit 123, and a function profile 200.
[0037]
The HTTP server 121 transmits a response indicating the function profile 200 in response to the function profile acquisition request from the client terminal 300. When a print request is received from the client terminal 300, the print service processing unit 110 is notified and a response indicating the result of the print process is transmitted to the client terminal 300.
[0038]
The search request monitoring unit 122 monitors a search request transmitted from the client terminal 300 via the network 20. When receiving the search request, the search request monitoring unit 122 notifies the search request determination unit 123.
[0039]
The search request determination unit 123 refers to the function profile 200 indicating the functions of services that can be provided, and determines whether it is possible to provide a function that satisfies the search conditions specified by the search request. A search response indicating the search result is provided to the client terminal 300 only in the case. The search result indicates information that can specify a network service device and information that specifies a search condition.
[0040]
The function profile 200 is data describing functions indicating functions that can be provided by the network service device 100 in the XML (eXtensible Markup Language) format, and is stored in the hard disk 34 shown in FIG. Referenced by the search request determination unit 123.
[0041]
The client terminal 300 mainly includes an application 301 and a search processing unit 310.
[0042]
The application 301 displays a GUI (Graphical User Interface) on the display unit 53 in response to a request from the user or another program, and generates a search condition. The application 301 notifies the search request analysis unit 311 of the generated search condition, and provides a GUI that allows the user to select one of the network services based on the search result received from the search result synthesis unit 315 based on the search condition. .
[0043]
The search processing unit 310 is a processing unit that receives a search condition as an initial search condition from the application 301, divides the initial search condition, and notifies the application 301 of a search result obtained by multicasting with a UDP packet. A search request analysis unit 311, a search condition structure tree storage area 312, a search execution control unit 313, a search request transmission unit 314, a search result synthesis unit 315, and a profile search unit 320.
[0044]
The search request analysis unit 311 divides the initial search condition passed from the application 301 and generates a search condition structure tree indicating the relationship between the divided individual search conditions. At this time, the initial search conditions are recursively divided until the individual search conditions after the division are equal to or smaller than the specified size. The search conditions indicated by the generated search condition structure tree are referred to as individual search conditions. The search request analysis unit 311 stores the search condition structure tree in the search condition structure tree storage area 312.
[0045]
The search condition structure tree storage area 312 is a storage area for storing and managing the search condition structure tree, and exists in the storage device 56. The search condition structure tree storage area 312 stores the search condition structure tree generated by the search request analysis unit 311. The search condition structure tree is generated by the search request analysis unit 311 for each initial search condition. The search condition structure tree storage area 312 stores search results received from the network service device 100.
[0046]
The search execution control unit 313 transmits the individual search condition corresponding to the leaf portion in the search condition structure tree on the network 20 by the search request transmission / reception unit 314. At this time, transmission processing is performed according to one of the following operation modes. There are an operation mode for transmitting all the individual search conditions obtained by dividing the initial search condition, and an operation mode for transmitting a part of the plurality of individual search conditions obtained by dividing the initial search condition. .
[0047]
In the operation mode in which a part of a plurality of individual search conditions is transmitted, for example, the search request analyzing unit 311 divides the initial search condition by only the AND operator, and the created individual search conditions are sequentially searched from the top. To 314. The search results are updated in the search condition structure tree storage area 312 and are combined with the search results based on the individual search conditions so far, and when the number of services in the search results falls below a certain number, a list of target services Then, the remaining list of individual search conditions is transmitted to the profile search unit 320.
[0048]
The search request transmission / reception unit 314 transmits the individual search conditions notified from the search execution control unit 313 by multicast using UDP packets according to BMLinkS.
[0049]
The profile search unit 320 receives the target service list and the individual search condition list from the search execution control unit 313, acquires the function profile 200 from each network service device 100, and acquires the acquired function profile 200, individual search condition list, and the like. Perform a search by matching Based on the target service, the function profile 200 is acquired from the network service device 100, and a list of services satisfying all of the individual search conditions is configured for each function profile. The search result is stored in the search condition structure tree storage area 312.
[0050]
As described above, by narrowing down the target service by the profile search unit 320 and then making a request for acquiring the function profile 200 to the corresponding network service device 100, a search result without waste can be acquired. . In order to realize such processing, the profile search unit 320 includes a function profile acquisition unit 321 and a search condition matching unit 322.
[0051]
The function profile acquisition unit 321 makes an acquisition request for the function profile 200 to the target network service device 100 based on the service list, and receives the function profile 200 from the network service device 100 in response to the acquisition request. Then, the function profile 200 is notified to the search condition matching unit 322.
[0052]
The search condition collation unit 322 collates the content of the function profile 200 received from the network service device 100 by the function profile acquisition unit 321 with the individual search condition list, and the collation result is the search condition structure tree storage area 312 as a search result. To accumulate.
[0053]
Further, the profile search unit 320 includes a function profile acquisition unit 321 and a search condition matching unit 322. In the search processing unit 310, the search request transmission unit 314 and the function profile acquisition unit 321 constitute a BMLinkS processing unit 330 that executes a predetermined search process (discovery function) defined by BMLinkS.
[0054]
FIG. 4 is a diagram illustrating a configuration example of a communication protocol. 4, in order from the lowest layer, IP (Internet Protocol) 131, UDP (User Datagram Protocol) 132 in the first layer, TCP (Transmission Control Protocol) 133 in the second layer, and HTTP (Hypertext in the third layer) Transfer Protocol (134), XML (eXtensible Markup Language) 135 in the fourth layer, and SOAP (Simple Object Access Protocol) 136 in the fifth layer.
[0055]
In such a communication protocol configuration, the divided search conditions are transmitted by the UDP 132 as a UDP packet.
[0056]
In the network service search system 1000 according to the present invention, communication may be performed using the HTTP 134, and the SOAP 136 and the XML 135 can be omitted.
[0057]
An initial search condition designated from the application 301 will be described with reference to FIG. FIG. 5 is a diagram illustrating an example of the initial search condition. In FIG. 5, an initial search condition 40 indicates a search condition desired by a user by hierarchically combining AND, OR, and NODE test expressions.
[0058]
The AND test is described as AND (test expression 1, test expression 2), and indicates that both the search condition indicated by test expression 1 and the search condition indicated by test expression 2 are satisfied.
[0059]
The OR test is described as OR (test expression 1, test expression 2), and indicates that either one of the search condition indicated by test expression 1 and the search condition indicated by test expression 2 should be satisfied. .
[0060]
The NODE test is described as NODE (root, value), and the route specifies the tag of the function profile described in XML, and the value corresponding to the tag is specified by the value. Therefore, the route (tag) Indicates that is the specified value. The route is described as tag = “tag name”, and the value is described as val = “value”. The NODE test is the smallest leaf that cannot be divided in the search condition structure tree.
[0061]
In the initial search condition 40, it is specified that the test expression 41 indicated by AND satisfies both the test expression 42 indicated by OR and the test expression 45 indicated by AND. The test formula 42 is further represented by a test formula 43 indicated by NODE and a test formula 44 indicated by NODE.
[0062]
That is, in the test expression 43, the tag name “finishings” designates the value “staple-left-upper”, and the search condition is that “finishing can be stapled to the upper left”. Further, in the test formula 44, the tag name “finishings” specifies the value “punch”, and the search condition is “drilling in finishing”. Therefore, according to the test formula 42, it is specified as a search condition that “stapling at the upper left in finishing” or “drilling in finishing” can be performed.
[0063]
Similarly, in the test formula 46 indicated by OR, the tag name “location” specifies the value “tokyo-office, sales-division” by the test formula 47 indicated by NODE, and by the test formula 48 indicated by NODE, Since the tag name “location” specifies the value “ohsaka-office, marketing-division”, the network service device 100 that provides the service is the “Tokyo Office Sales Department” or “Osaka Office Marketing”. It is specified as a search condition that it is installed in “department”.
[0064]
Further, in the test expression 49 indicated by OR, the tag name “media” designates the value “A4” by the test expression 49-1 indicated by NODE, and the tag name “2” is specified by the test expression 49-2 indicated by NODE. Since “media” designates the value “letter”, it is designated as a search condition that “medium is A4” or “medium is letter” size.
[0065]
Accordingly, in the test formula 45 indicated by AND, “the network service device 100 providing the service is installed in the“ sales department of the Tokyo office ”or“ the marketing department of the Osaka office ”, and , ““ Medium is A4 ”or“ medium is letter ”size” is designated as a search condition.
[0066]
After all, the test expression 41 indicated by AND is, as the initial search condition 40, “It can be stapled at the upper left in finishing” or “Punching in finishing” ”and“ Network service device providing service ” 100 is “installed in the sales department of the Tokyo office” or “the marketing department of the Osaka office” and “the medium is A4” or “the medium is a letter” size ”. Is specified.
[0067]
Next, an example of the function profile 200 referred to for determining whether or not the search condition is satisfied will be described with reference to FIG. FIG. 6 is a diagram illustrating an example of a function profile of a network service device. In FIG. 6, the device profile 200 mainly includes a description 201 indicating a device profile for specifying the network service device 100 and a description 202 indicating a function profile that can be provided as a service. Description 201 is <device-profile> indicates that it is a description indicating a device profile. <functional-profile> indicates that the description indicates a functional profile.
[0068]
In description 201, From <device-info> Various pieces of device information for specifying the network service device 100 are indicated by the description up to </ device-info>. <modelName> Color Laser 1111 </ modelName> indicates that the printer model name is “Color Laser 1111” <deviceID> 456789 </ deviceID> indicates that the device ID is “456789” <vendorName> RRR </ vendorName> indicates that the sales company name is "RRR"<location> XXX-YY-ZZ, Ohta-ku, Tokyo, Japan </ location>.
[0069]
The description 202 mainly indicates a description 207 indicating the presence or absence of a color function, a description 210 indicating a list of media sizes that can be provided, and a description 220 indicating a list of finishes that can be provided.
[0070]
Description 207 is <color> true </ color> indicates that there is a color function.
[0071]
From <media-size> Description 210 up to </ media-size> From <supportedValue></supportedValue> description 211 showing a list of media sizes that can be provided, From <defaultValue> A description up to </ defaultValue> indicates a description 215 indicating the medium size as an implicit value. The description 211 describes each medium size. From <value> In this example, “A4”, “B5”, and “A3” can be provided as media sizes. Similarly, the description 215 From <value></value> indicates the medium size as an implicit value, which is “A4”.
[0072]
From <finishings> The description 220 up to </ finishings> is similar to the description 210, From <supportedValue></supportedValue> description 221 showing a list of finishing that can be provided, From <defaultValue></defaultValue> describes a description 225 indicating finishing as an implicit value. Description 221 describes each finishing From <value></value> indicates that “staple”, “punch”, and “none” can be provided in this example. Similarly, the description 225 From <value></value> indicates finishing as an implicit value, and indicates “none (no finishing)”.
[0073]
This function profile 40 can be used to determine whether or not the search condition “stapling at the upper left in finishing” is satisfied as shown by the test expression 43 of the initial search condition 40 as shown in FIG. Each of the descriptions 220 showing the correct finishing If there is a matching finish that matches each finishing method specified by <value>, it is determined that the search condition is satisfied, and if there is no matching finishing, it is determined that the search condition cannot be satisfied. The
[0074]
In this case, from the description of “tag =“ finishings ”” in the test formula 43, Specify <finishings> and from “val =” staple-left-upper ” Judge whether "staple" exists in the value specified by <value>. Since “staple” is possible by the description 222, it is determined that there is a matching finishing, and therefore, it is determined that the search condition according to the test formula 43 is satisfied.
[0075]
Next, the structure of the search condition structure tree when the initial search condition is divided by a predetermined byte that enables transmission of the search condition will be described with reference to FIG. FIG. 7 is a diagram illustrating an example of a search condition structure tree when divided by predetermined bytes. The reference numerals shown in FIG. 7 are shown in correspondence with the reference numerals shown in FIG.
[0076]
In FIG. 7, AND, OR, and NODE indicated by the test expressions 41 to 49 are nodes of the search condition structure tree. A node indicated by one or more NODE tests among these nodes is called a leaf. In order to divide the initial search condition tree by a predetermined byte, a leaf is indicated by only one NODE test as in test expressions 43, 44, 47, and 48, and two or more NODE tests as in test expression 49. May be indicated. Test formulas 43, 44, 47, 48, and 49 are transmitted from the client terminal 300 to the network service device 100 as individual search conditions.
[0077]
Next, a search condition structure tree management method in the search condition structure tree storage area 312 will be described with reference to FIGS.
[0078]
FIG. 8 is a diagram illustrating a data configuration example of the search condition structure tree storage area. In FIG. 8, in the table 400, a pointer to the storage location of the structure tree information representing the search condition structure tree and the search conditions (that is, leaves) divided within a predetermined byte range are listed as individual search conditions. A pointer to the storage location of the search condition list, a pointer to the storage location of the search result list indicating a list of search results received from the network service device 100, and the storage location of the node additional information that manages the node identification information A pointer is managed for each tree identifier that specifies the initial search condition.
[0079]
For example, in the case of the tree identifier 13, the table 400 indicates pointers to the structural tree information 410, the individual search condition list 430, the search result list 450, and the node addition information 470 of the tree identifier 13.
[0080]
The structural tree information 410 of the tree identifier 13 is managed by a data structure as shown in FIG. 9, for example. FIG. 9 is a diagram illustrating a data structure example of structural tree information. In FIG. 9, structural tree information 410 includes a node ID for identifying a node, a binary operator indicating AND or OR, and a node indicating test expression 1 when the node is a binary operation by AND or OR. The relationship between the own node (parent node) and the descendant node is indicated by the record having the ID and the node ID indicating the test expression 2.
[0081]
Further, when the node is a leaf, the node ID for identifying the node, the LEAF indicating the leaf, the individual search condition ID for specifying the leaf, and the end of the search condition structure tree are indicated. An individual search condition transmitted to the client terminal 300 is specified by a record having empty data.
[0082]
In the data structure example of FIG. 9, for example, the node identified by the node identifier “344” is a test node that performs an AND operation on the test expression 1 and the test expression 2. The test expression 1 of the node identifier “344” is indicated by the node identifier “345”, and the test expression 2 is indicated by the node identifier “348”.
[0083]
The node identified by the node identifier “346” is indicated by LEAF to be a leaf. The search condition transmitted by the individual search condition ID “1001” is specified.
[0084]
Each node is associated with the data structure of the record as described above, and a search condition structure tree as shown in FIG. 7 is expressed.
[0085]
FIG. 10 is a diagram illustrating a data structure example of the individual search condition list. In FIG. 10, the individual search condition list 430 of the tree identifier 13 shows a search condition ID for identifying the search condition for each search condition, and node information indicating a description of the search condition in association with the search condition ID.
[0086]
For example, the test formula 43 shown in FIG. 7 is stored as node information in association with the search condition ID “1001”, and the test formula 44 shown in FIG. 7 is stored as node information in correspondence with the search condition ID “1002”. 7 is stored as node information in association with the search condition ID “1003”, and the test expression 48 in FIG. 7 is stored as node information in association with the search condition ID “1004”. Then, the test formula 49 shown in FIG. 7 is stored as node information in association with the search condition ID “1005”.
[0087]
FIG. 11 is a diagram illustrating a data structure example of the node addition information. In FIG. 11, node addition information 450 of the tree identifier 13 indicates a node identifier other than a leaf and a partial search condition corresponding to the node identifier.
[0088]
For example, the partial search condition corresponding to the node identifier “344” is the test expression 41 indicated by AND of the initial search condition 40 illustrated in FIG. 5, that is, the initial search condition 40 as a whole corresponds.
[0089]
FIG. 12 is a diagram illustrating a data structure example of the search result list. In FIG. 12, the search result list 470 stores the search results received from the network service device 100 by connecting them with pointers for each search condition ID. Then, while reproducing the initial search condition 40, the search results are combined to obtain an overall result. In the overall result, the search results obtained while reproducing the initial search condition 40 are connected and stored by a pointer.
[0090]
Next, a search request when a search request for a search condition transmitted from the client terminal 300 to the network 20 is made according to SOAP will be described with reference to FIGS.
[0091]
FIG. 13 is a diagram illustrating an example of a search request by SOAP when the search condition ID is 1001. In FIG. 13, the search request 500 for the search condition ID “1001” is composed of a description 501 related to the requested HTTP and a description 510 related to SOAP indicating the request content.
[0092]
In the description 501 regarding HTTP, since the HTTP command 502 is “SEARCH”, it indicates that this HTTP is a search request. The description 506 indicates that the structure tree ID of the search condition structure tree is “13”, and the description 507 indicates that the search condition ID for identifying the individual search condition is “1001”.
[0093]
In the description 510 about SOAP, according to the description 514 <m: search xmlns: m = "http://deviceSearch.rrr.co.jp/search"> indicates that the search method is specified, From <condition> A search condition corresponding to the search condition ID “1001” is specified by the description 515 up to </ condition>.
[0094]
For example, The description 517 indicated by <NODE> indicates that it is one search condition not involving binary operation, <name> finishings </ name> description 518 and <value> staple-left-uppper </ value>, a tag 519 according to the description 519 The function profile 40 is used to verify whether there is a description that supports “staples in the upper left” in correspondence with <finishings>.
[0095]
FIG. 14 is a diagram illustrating an example of a search request by SOAP when the search condition ID is 1005. In FIG. 14, the search request 520 for the search condition ID “1005” is composed of a description 521 related to the requested HTTP and a description 530 related to SOAP indicating the request content, as in the search request 500 shown in FIG.
[0096]
The HTTP description 521 is the same as the HTTP description 501 shown in FIG. 13, but the description 527 indicates that the search condition ID for identifying the individual search condition is “1005”.
[0097]
In the description 530 about SOAP, From <condition> A search condition corresponding to the search condition ID “1005” is specified by the description 535 up to </ condition>.
[0098]
For example, According to the description 536 indicated by <OR>, It is specified that one of the two search conditions indicated by <NODE> is satisfied. A description 537 and a description 538 indicated by <NODE> indicate that each is one search condition not involving a binary operation. In description 537, <name> media </ name> description 5371 and <value> A4 </ value> describes the tag 5372 It is verified using the function profile 40 whether or not there is a description that supports an “A4” size medium (for example, paper) in association with <media>. In the description 538, <name> media </ name> description 5381 and <value> letter </ value> describes the tag 5382 It is verified using the function profile 40 whether there is a description that supports a “letter” size medium (for example, paper) in correspondence with <media>.
[0099]
FIG. 15 is a diagram illustrating an example of a search response by SOAP when the search condition ID is 1001. In FIG. 15, the search response 600 for the search condition ID “1001” is composed of a description 601 related to HTTP that responds and a description 610 related to SOAP indicating the response content.
[0100]
In the description 601 related to HTTP, the description 606 indicates that the structure tree ID of the search condition structure tree is “13”, and the description 607 indicates that the search condition ID for identifying the individual search condition is “1001”. ing.
[0101]
The description 608 indicated by “Location: http://192.168.1.45/printService” is the network service device 100 as a device that satisfies the search condition identified by the search condition ID “1001” of the structural tree ID “13”. Specifies the URL “http://192.168.1.45/printService” that identifies the print service provided by.
[0102]
Further, a description 609 indicated by “DeviceProfileUrl: http // 192.168.1.45 / printService / profile” specifies a URL “http // 192.168.1.45 / printService / profile” that specifies the function profile of the network service device 100. Yes. With this description 609, the client terminal 300 can acquire the function profile 40 from the network service device 100 as necessary.
[0103]
In the description 610 about SOAP, From <m: searchResponse> Information of the network service device 100 is indicated by a description 615 shown up to </ m: searchResponse>. For example, <deviceId> bc589 The description 616 indicated by </ deviceId> indicates that the ID of the network service device 100 is “bc589”.
[0104]
In the client terminal 300, the information obtained from the descriptions 608, 609, and 616 is linked by a pointer corresponding to the search condition ID “1001” in the search result list 470, as shown in FIG.
[0105]
Next, a case where a search request and a search result by SOAP described in FIGS. 13 to 15 are performed by HTTP will be described with reference to FIGS.
[0106]
FIG. 16 is a diagram illustrating an example of an HTTP search request when the search condition ID is 1001. In FIG. 16, the search request 700 for the search condition ID “1001” is composed of a description 701 relating to the requested HTTP and a description 709 relating to the request contents.
[0107]
In the description 701 related to HTTP, since the HTTP command 702 is “SEARCH”, this indicates that this HTTP is a search request. The description 706 indicates that the structure tree ID of the search condition structure tree is “13”, and the description 707 indicates that the search condition ID for identifying the individual search condition is “1001”.
[0108]
In the description 709 concerning the request contents, it is described as “NODE (tag =“ finishings ”, val =“ staple-left-uppper ”)”, and it is one search condition that does not involve binary operation by “NODE”. Is displayed, and "tag =" finishings "" and "val =" staple-left-uppper "" The function profile 40 is used to verify whether there is a description that supports “staples in the upper left” in correspondence with <finishings>.
[0109]
FIG. 17 is a diagram illustrating an example of an HTTP search request when the search condition ID is 1005. In FIG. 17, the search request 710 for the search condition ID “1005” is composed of a description 711 related to the requested HTTP and a description 719 related to the request content, as in the search request 700 shown in FIG.
[0110]
The description 711 related to HTTP is the same as the description 701 related to HTTP shown in FIG. 16, but the description 717 indicates that the search condition ID for identifying the individual search condition is “1005”.
[0111]
In the description 719 regarding the request contents, “OR (NODE (tag =“ media ”, val =“ A4 ”), NODE (tag =“ media ”, val =“ letter ”))” ”is described, and“ OR ” The following two “NODE” indicate that each is one search condition not involving a binary operation. Tag by the description of “NODE (tag =“ media ”, val =“ A4 ”)” It is verified using the function profile 40 whether or not there is a description that supports an “A4” size medium (for example, paper) in association with <media>. Also, the tag “NODE (tag =“ media ”, val =“ letter ”)” It is verified using the function profile 40 whether there is a description that supports a “letter” size medium (for example, paper) in correspondence with <media>.
[0112]
FIG. 18 is a diagram illustrating an example of an HTTP search response when the search condition ID is 1001. In FIG. 18, the search response 800 for the search condition ID “1001” is composed of a description 801 related to the HTTP that responds.
[0113]
In the description 801 related to HTTP, the description 806 indicates that the structure tree ID of the search condition structure tree is “13”, and the description 807 indicates that the search condition ID for identifying the individual search condition is “1001”. ing.
[0114]
The description 808 indicated by “Location: http://192.168.1.45/printService” is the network service device 100 as a device that satisfies the search condition identified by the search condition ID “1001” of the structural tree ID “13”. Specifies the URL “http://192.168.1.45/printService” that identifies the print service provided by.
[0115]
Furthermore, a description 809 indicated by “DeviceProfileUrl: http // 192.168.1.45 / printService / profile” specifies a URL “http // 192.168.1.45 / printService / profile” that identifies the function profile of the network service device 100. Yes. With this description 809, the client terminal 300 can acquire the function profile 40 from the network service device 100 as necessary.
[0116]
The description 816 indicated by “DeviceId: bc589” indicates that the ID of the network service device 100 is “bc589”.
[0117]
In the client terminal 300, the information obtained from the descriptions 808, 809, and 616 is linked by a pointer corresponding to the search condition ID “1001” in the search result list 470, as shown in FIG.
[0118]
Next, an outline of a combining process for combining the search results accumulated in the search result list 470 with an operator based on the initial search condition 40 will be described with reference to FIG. FIG. 19 is a diagram illustrating an example of a join process using an operator.
[0119]
FIG. 19A shows an example of a join process when the operator is AND, and is common to the search results accumulated for the right search condition and the search results accumulated for the left search condition. This indicates that the existing search result is a search result by the combination process. In this example, the combination processing by the product set is performed, and the device ID and the IP address are “bc589” and “192.168.1.45”, “ggf45” and “192.168.1.52”. It becomes a search result.
[0120]
FIG. 19B shows an example of join processing when the operator is OR, and at least one of the search results accumulated for the right search condition and the search results accumulated for the left search condition. It is shown that the search result existing in is a search result by the combination processing. In this example, the union combination process is performed, and the device ID and the IP address are “er564g” and “192.168.1.21”, “a1234” and “192.168.1.21”, “Bc589” and “192.168.1.45” and “ggf45” and “192.168.1.52” are the search results.
[0121]
Next, search condition division and transmission processing executed by the search processing unit 310 of the client terminal 300 will be described with reference to FIG. FIG. 20 is a flowchart for explaining search condition division and transmission processing.
[0122]
In FIG. 20, the search processing unit 310 initializes the search result list 450 when the client terminal 300 is activated, for example (step S11). When the search request analysis unit 311 acquires a search request from the application 301 (step S12), the search request analysis unit 311 executes a search condition division and a structure tree generation process specified by the search request (step S13).
[0123]
The search execution control unit 313 creates a leaf list for transmission based on the individual search condition list 430 created by the search condition division and the structure tree generation process (step S14). The search execution control unit 313 sequentially selects leaves (that is, search conditions divided within a predetermined byte range) from the created leaf list (step S15), and generates a search request for the leaves (step S16). The search execution control unit 313 instructs the search request transmission / reception unit 314 to transmit a search request, and the search request transmission / reception unit 314 transmits the UDP request to the network 20 by multicast according to the instruction.
[0124]
When the search processing unit 310 receives a search response to the transmitted search request, the search processing unit 310 performs reception and synthesis processing of the search result indicated by the search response (step S18). The search execution control unit 313 determines whether all the leaves have been transmitted (step S19). When all the leaves have been transmitted, the search condition division and transmission processing ends.
[0125]
On the other hand, if all the leaves have not been transmitted, it is determined whether or not to search using the function profile 200 (step S20). If the function profile is not used, the process returns to step S15, and the same processing as described above is repeated. On the other hand, when the function profile is used, it is determined whether or not the number of services in the search result list 450 is equal to or less than the predetermined T (step S21). If it is less than or equal to the predetermined T, the process returns to step S15, and the same processing as described above is repeated.
[0126]
The determination process in step S21 is divided into a plurality of individual search conditions by the AND test in the initial search condition 40, and only one of the individual search conditions is transmitted to the network 20, and a search result corresponding to the individual search condition ( That is, when the number of services) exceeds a predetermined number, the remaining individual search conditions are matched with the function profile according to the search condition structure tree, and the remaining individual search conditions are transmitted and the search results are received. No processing is required.
[0127]
On the other hand, if it is not less than the predetermined T, the search execution control unit 313 requests the profile search unit 320 to perform function profile search processing using the function profile. The profile search unit 320 copies the search result list 450 to the function profile search target list (step S22), and executes function profile search processing (step S23). The profile search unit 320 copies the function profile search result obtained by the function profile search process to the search result list 450 (step S24), and ends the process in the profile search unit 320. When the processing in the profile search unit 320 ends, the search condition division and transmission processing by the search processing unit 310 ends.
[0128]
Next, search condition division and structural tree generation processing by the search request analysis unit 311 will be described with reference to FIGS. FIG. 21 to FIG. 23 are flowcharts for explaining search condition division and structural tree generation processing. In FIG. 21, the search request analysis unit 311 sets the initial search condition 40 acquired from the application 301 to the search condition p (step S111), sets the maximum length of the search condition to L (step S112), and sets the node list to be divided. Initialization is performed (step S113).
[0129]
The search request analysis unit 311 generates a node k corresponding to the search condition p (step S114), and adds the node k to the division target node list (step S115).
[0130]
The search request analysis unit 311 determines whether the division target node list is empty (step S116). When the division target node list is empty, the search request analysis unit 311 ends the search condition division and the structure tree generation process. On the other hand, if the division target node list is not empty, the first element from the division target node list is taken out as the node kc, and the extracted node kc is deleted from the division target node list (step S117).
[0131]
The search request analysis unit 311 sets the search condition corresponding to the node kc to pc (step S118). The search request analysis unit 311 determines whether or not the same search condition as the search condition pc exists in another search tree from the individual search condition list 430 of each tree (including the current tree) in the search condition structure tree storage area 312. Search is performed (step S119).
[0132]
The search request analysis unit 311 determines whether a node having the same search condition has been found (step S120). When a node having the same search condition is found, the structure tree identifier to which the searched additional information belongs is registered in the information of the node kc (step S121), the process returns to step S116, and the same processing is repeated.
[0133]
When a new initial search condition is received from the application 301 by the processing of steps S119, S120, and S121, and the initial search condition is divided, it is necessary to transmit this individual search condition if it is already the same as the individual search condition. There is no. Therefore, the number of search request transmissions can be reduced and the search efficiency can be improved.
[0134]
On the other hand, if a node having the same search condition is not found, the search condition pc is registered in the node additional information as additional information of the node kc (step S122). The search request analysis unit 311 determines whether the search condition pc is equal to or less than L bytes (step S123). When the search condition pc is L bytes or less, the search request analysis unit 311 registers the search condition pc in the individual search condition list 430 (step S127), and adds a link to the leaf to the node kc of the structural tree information (step S127). S128), the search condition division and the structure tree generation process are terminated.
[0135]
On the other hand, if the search condition pc is not less than or equal to L bytes, the search request analysis unit 311 sets the partial search conditions divided by the operator to p1 and p2, respectively, if the search condition pc is an AND or OR operation (step S125). , P1 and p2 are sequentially set as the search condition p, and step S114 is recursively called (step S126), and the search condition division and transmission process are terminated.
[0136]
Next, the function profile search process executed by the profile search unit 320 will be described with reference to FIG. FIG. 24 is a flowchart for explaining the function profile search process.
[0137]
24, the profile search unit 320 initializes the function profile search result (step S131), and sequentially selects each service in the function profile search target list (step S132). The profile search unit 320 determines whether or not the function profile acquisition processing has been performed for all services in the function profile search target list (step S133).
[0138]
When the function profile acquisition process is not performed for all services, the profile search unit 320 acquires the function profile from the network service device 100 that provides the selected service by using the function profile acquisition unit 321 (step S134). When the function profile acquisition unit 321 receives the function profile 200 from the network service device 100, the function profile acquisition unit 321 notifies the search condition matching unit 322.
[0139]
The search condition matching unit 322 matches the function profile 200 acquired from the function profile acquisition unit 321 with the structural tree (step S135). When not collating, the search condition collating unit 322 returns to Step S132 and repeats the same processing as described above. On the other hand, in the case of matching, the search condition matching unit 322 adds the selected service to the function profile search result (step S137), returns to step S132, and repeats the same processing as described above.
[0140]
On the other hand, when the function profile acquisition process is performed for all services in the determination process in step S133, the function profile search process is terminated.
[0141]
Next, search result reception and synthesis processing executed by the search processing unit 310 and the search result synthesis unit 315 will be described with reference to FIG. FIG. 25 is a flowchart for explaining search result reception and synthesis processing.
[0142]
In FIG. 25, when receiving a search response to the search request (step S151), the search processing unit 310 determines whether it is after a timeout (step S152). If not after the time-out, the search processing unit 310 acquires a tree identifier and a search condition ID from the search response (step S153).
[0143]
The search processing unit 310 links the network service device information to the search condition ID of the search result list corresponding to the tree identifier (step S154), and the search result combining unit 315 executes search result combining processing (step S155). ). The search result combining unit 315 updates the search result screen displayed on the display unit 55 based on the processing result in the search result combining process (step S156). The search processing unit 310 returns to step S151 and repeats the same processing as described above.
[0144]
On the other hand, if it is after the time-out by the determination processing in step S152, the search processing unit 310 ends the search result reception and synthesis processing.
[0145]
Next, search result composition processing executed by the search result composition unit 315 will be described with reference to FIG. FIG. 26 is a flowchart for explaining search result composition processing.
[0146]
In FIG. 26, the search result composition unit 315 starts from the root portion of the structural tree, performs a search with depth priority, and selects the first leaf (step S171). The search result synthesis unit 315 determines the selected leaf as the current node (step S172) and obtains a partial search result for the current node (step S173).
[0147]
Then, the search result composition unit 315 determines whether or not the node is a leaf (step S174). If the node is a leaf, the search result combining unit 315 acquires the search result stored in the search result list corresponding to the node (step S175), and ends the search result combining process.
[0148]
On the other hand, if the node is not a leaf, it is determined whether the search result for the child node of the node is stored in the search result table (step S176). If not saved, the process returns to step S171, and the same processing as described above is repeated. On the other hand, if it is stored, the partial results for each child node are combined with the AND or OR operator specified in these main nodes (step S177), and the search result composition processing is terminated.
[0149]
According to the above embodiment, the search condition divided in a predetermined byte range can be transmitted and received from each network service device 100 according to the structure tree information 410 indicating the data structure of the search condition structure tree of the initial search condition 40. Therefore, the user can specify an appropriate service desired by a detailed search that does not depend on the limit range of the data length. For example, the search can be performed according to detailed search conditions such as whether or not color copying is possible and whether or not stapling is possible.
[0150]
In the above embodiment, the client terminal 100 combines the search results acquired by the search response and creates a list of services that satisfy the initial search condition 40 requested from the application 301. However, the network service device 100 Each time the search condition divided from the same client terminal 300 is received, the side determines whether or not the divided search condition is satisfied by checking with the function profile 200, and all the divided search conditions are determined. After the conditions are satisfied, a combination process for combining the respective determination results is performed in accordance with the operators indicated by the divided search conditions. When the determination result obtained by the combination process satisfies the initial search condition 40, the search result is sent to the client terminal. May be transmitted. With such a configuration, the processing at the client terminal 300 can be reduced.
[0151]
In the above embodiment, the number of search request transmissions can be reduced by storing the individual search condition list shown in FIG. 10 already sent to the network 20 and the search result list 470 shown in FIG. This can reduce the search efficiency.
[0152]
As described above, according to the present invention, when the initial search condition is larger than the predetermined data length, it is divided and transmitted as the individual search condition (leaf), and therefore the entire initial search condition can be transmitted. In addition, the search results corresponding to the individual search conditions can be combined as if to restore the divided initial search conditions according to the search condition structure tree of the initial search conditions. can do. Further, it is possible to realize a detailed search that does not depend on a predetermined data length.
[0153]
In addition, a search condition structure tree is created using logical operators as nodes, but the division is performed when the divided end portion is larger than the predetermined data length, so do not perform division so as not to shorten it more than necessary. Can do. Accordingly, since search conditions are not transmitted to the network more than necessary, search efficiency can be improved.
[0154]
Further, since the search condition structure tree corresponding to the predetermined data length is created, the search condition structure tree is not hierarchized more than necessary.
[0155]
In addition, since the search condition structure tree corresponding to the data length of the UDP data bucket is created and the individual search condition corresponding to the data length of the UDP data bucket is obtained, the initial search condition is larger than the data length of the UDP data bucket. Even if it exists, a detailed search equivalent to the initial search condition can be performed.
[0156]
Furthermore, since the nodes are not transmitted unnecessarily, that is, unnecessary logical operators are not transmitted, the efficiency of data transfer can be improved.
[0157]
Further, when the initial search condition is divided into a plurality of individual search conditions by logical sum (AND), only one individual search condition is transmitted, so that the transmission process can be made efficient. In addition, since the function profile acquired based on the search result corresponding to the individual search condition is collated with other individual search conditions that have not been transmitted, the number of function profiles to be collated can be suppressed, and the efficiency Can be verified.
[0158]
【The invention's effect】
As described above, since the initial search condition is divided within a predetermined byte range, the search condition divided by multicast can be transmitted, and the entire initial search condition can be transmitted. In addition, since the search results corresponding to the divided search conditions can be synthesized as if the divided search conditions are restored according to the search condition structure tree of the initial search conditions, a service that satisfies the initial search conditions can be combined. Can be identified.
[0159]
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a hardware configuration of a network service device according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a hardware configuration of a client terminal according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating a functional configuration example of a network service search system.
FIG. 4 is a diagram illustrating a configuration example of a communication protocol.
FIG. 5 is a diagram illustrating an example of an initial search condition.
FIG. 6 is a diagram illustrating an example of a function profile of a network service device.
FIG. 7 is a diagram illustrating an example of a search condition structure tree when divided by predetermined bytes.
FIG. 8 is a diagram illustrating a data configuration example of a search condition structure tree storage area;
FIG. 9 is a diagram illustrating a data structure example of structural tree information.
FIG. 10 is a diagram illustrating an example of a data structure of an individual search condition list.
FIG. 11 is a diagram illustrating an example of a data structure of node addition information.
FIG. 12 is a diagram illustrating an example of a data structure of a search result list.
13 is a diagram showing an example of a search request by SOAP when the search condition ID is 1001. FIG.
14 is a diagram illustrating an example of a search request by SOAP when the search condition ID is 1005. FIG.
FIG. 15 is a diagram illustrating an example of a search response by SOAP when the search condition ID is 1001;
16 is a diagram illustrating an example of an HTTP search request when the search condition ID is 1001. FIG.
FIG. 17 is a diagram illustrating an example of an HTTP search request when the search condition ID is 1005;
18 is a diagram showing an example of an HTTP search response when the search condition ID is 1001. FIG.
FIG. 19 is a diagram illustrating an example of join processing by an operator.
FIG. 20 is a flowchart for explaining search condition division and transmission processing;
FIG. 21 is a flowchart for explaining search condition division and structural tree generation processing;
FIG. 22 is a flowchart for explaining search condition division and structural tree generation processing;
FIG. 23 is a flowchart for explaining search condition division and structural tree generation processing;
FIG. 24 is a flowchart for explaining function profile search processing;
FIG. 25 is a flowchart for explaining search result reception and synthesis processing;
FIG. 26 is a flowchart for explaining search result composition processing;
[Explanation of symbols]
100 Network service equipment
110 Print Service Processing Unit
120 BMLinkS processing unit
121 HTTP server
122 Search request monitoring unit
123 Search request determination unit
200 Function profile
300 client terminals
301 Application
311 Search request analysis part
312 Search condition structure tree storage area
313 Search execution control unit
314 Search Request Transmission / Reception Unit
315 Search result composition part
320 Profile search part
321 Function profile acquisition unit
322 Search condition matching part
330 BMLinkS processing unit

Claims (13)

ネットワークを介して提供される所望のサービスを検索するための第一検索条件を所定データ長より大きくならないように分割して複数の第二検索条件を作成し、前記複数の第二検索条件の互いの関連を示す検索条件構造木を生成する手段と、
上記第二検索条件と同じ検索条件が別の検索条件構造木中にないか否かを検索条件構造木が保存された検索条件構造木保存領域から検索し、同じ検索条件が発見された場合、検索条件構造木識別子を登録する手段と、
同じ検索条件が発見されない場合、上記第二検索条件を当該ネットワークサービス検索装置と接続されたネットワークサービス機器へ送信し、上記第二検索条件毎に上記ネットワークサービス機器から受信した該第二検索条件に応じた検索結果を上記記憶領域に蓄積する手段と
上記複数の第二検索条件から上記第一検索条件を復元しつつ、該第一検索条件で指定される論理演算に従って、上記記憶領域から演算対象となる該第二検索条件に応じた上記検索結果を取得して、取得した該検索結果を合成することによって該第一検索条件に応じた検索結果を取得する手段と、を有するネットワークサービス検索装置
By dividing the first search condition for searching for a desired service provided via a network so as not larger than the predetermined data length to create a plurality of second search condition, each other of said plurality of second search condition Means for generating a search condition structure tree indicating the relationship between
If the search condition structure tree storage area where the search condition structure tree is stored is searched for whether the same search condition as the second search condition is not in another search condition structure tree, and the same search condition is found, Means for registering a search condition structure tree identifier;
When the same search condition is not found, the second search condition is transmitted to the network service device connected to the network service search device, and the second search condition received from the network service device for each of the second search conditions. Means for accumulating corresponding search results in the storage area;
While restoring the first search condition from the plurality of second search conditions, the search result according to the second search condition to be calculated from the storage area according to the logical operation specified by the first search condition acquires the network service search apparatus having a means for obtaining a search result according to said first search condition by combining the obtained the search result.
上記分割は、上記第一検索条件が所定データ長より大きい場合に該第一検索条件を分割するように、該第一検索条件を上記論理演算子をノードとする構造木を作成し、その構造木のデータ構造を示す構造木情報を上記記憶領域に格納し、
上記復元は、上記記憶領域に格納された上記構造木情報に基づいて行うようにした請求項1記載のネットワークサービス検索装置
The division creates a structure tree having the first search condition as a node as the logical operator so as to divide the first search condition when the first search condition is larger than a predetermined data length. Store the structure tree information indicating the data structure of the tree in the storage area,
The network service search device according to claim 1, wherein the restoration is performed based on the structural tree information stored in the storage area.
上記分割は、分割後の上記第二検索条件が上記所定データ長より大きい場合に、現在のルートをノードとして、上記分割を再帰的に行うようにした請求項2記載のネットワークサービス検索装置3. The network service search device according to claim 2, wherein the division is performed recursively using the current route as a node when the second search condition after division is larger than the predetermined data length. 上記分割は、上記第一検索条件を論理積及び論理和をノードとする構造木を作成するようにした請求項2又は3記載のネットワークサービス検索装置4. The network service search apparatus according to claim 2, wherein the division creates a structure tree having the first search condition as a logical product and a logical sum as nodes. 上記所定データ長は、UDPデータバケットのデータ長であるようにした請求項1乃至4のいずれか一項記載のネットワークサービス検索装置The network service search device according to any one of claims 1 to 4, wherein the predetermined data length is a data length of a UDP data bucket. 上記構造木の末端部分を送信すべき上記第二検索条件として上記ネットワークへ送信するようにした請求項2乃至5のいずれか一項記載のネットワークサービス検索装置The network service search device according to any one of claims 2 to 5, wherein an end portion of the structural tree is transmitted to the network as the second search condition to be transmitted. 上記第一検索条件で示される論理和をノードとすることによって分割された複数の上記第二検索条件の1つをネットワークへ送信し、
上記第二検索条件に応じた上記検索結果の個数が所定個数以上となった場合、検索条件構造木に従って、残りの第二検索条件と、サービスによって提供可能な機能を示す機能プロファイルで示される上記機能とを照合することによって、上記第一検索条件に応じた検索結果を取得するようにした請求項1記載のネットワークサービス検索装置
Sending one of the plurality of second search conditions divided by setting the logical sum indicated by the first search condition as a node to the network;
If the number of the second search condition the retrieval result corresponding to is equal to or greater than a predetermined number, according to the search condition parse tree, shown with the rest of the second search condition, a functional profile that indicates a possible providing function by the service The network service search device according to claim 1, wherein a search result corresponding to the first search condition is acquired by collating with the function.
上記第二検索条件に応じた上記検索結果が所定個数以上であるか否かを判断し、
その判断結果に基づいて、上記論理和をノードとすることによって分割されたが送信されていない上記第二検索条件と上記機能プロファイルで示される上記機能とを照合するようにした請求項7記載のネットワークサービス検索装置
Determining whether the search results according to the second search condition are a predetermined number or more,
8. The method according to claim 7, wherein, based on the determination result, the second search condition that is divided but not transmitted by using the logical sum as a node is collated with the function indicated by the function profile. Network service search device .
上記記憶領域内にて上記構造木を識別する識別情報に対応させて、作成された上記構造木情報の格納場所と、上記所定データ長の範囲内である上記第二検索条件の内容のリストを示す第二検索条件リストの格納場所と、該第二検索条件毎に検索結果のリストを示す検索結果リストの格納場所と、各ノード以下を示す部分検索条件を示すノード情報の格納場所とを示すテーブルによって、上記第一検索条件を管理するようにした請求項2乃至8のいずれか一項記載のネットワークサービス検索装置Corresponding to identification information for identifying the structural tree in the storage area, a storage location of the generated structural tree information and a list of contents of the second search condition within the predetermined data length The storage location of the second search condition list shown, the storage location of the search result list showing the search result list for each of the second search conditions, and the storage location of the node information showing the partial search conditions below each node 9. The network service search device according to claim 2, wherein the first search condition is managed by a table. 上記第二検索条件は、所定メッセージ交換プロトコルに従って検索要求としてネットワークへ送信され、
上記検索結果は、該第二検索条件を満たす場合のみ、上記所定メッセージ交換プロトコルに従って検索応答としてネットワークへ送信される請求項1乃至9のいずれか一項記載のネットワークサービス検索装置
The second search condition is transmitted to the network as a search request according to a predetermined message exchange protocol,
The network service search device according to any one of claims 1 to 9, wherein the search result is transmitted to the network as a search response according to the predetermined message exchange protocol only when the second search condition is satisfied.
上記第二検索条件は、所定インターネット通信プロトコルに従って検索要求としてネットワークへ送信され、
上記検索結果は、該第二検索条件を満たす場合のみ、インターネット通信プロトコルに従って検索応答としてネットワークへ送信される請求項1乃至9のいずれか一項記載のネットワークサービス検索装置
The second search condition is transmitted to the network as a search request according to a predetermined Internet communication protocol,
10. The network service search device according to claim 1, wherein the search result is transmitted to the network as a search response according to the Internet communication protocol only when the second search condition is satisfied.
ネットワークを介して提供される所望のサービスを検索するための第一検索条件を所定データ長より大きくならないように分割して複数の第二検索条件を作成し、前記複数の第二検索条件の互いの関連を示す検索条件構造木を生成し、
上記第二検索条件と同じ検索条件が別の検索条件構造木中にないか否かを検索条件構造木が保存された記憶領域から検索し、同じ検索条件が発見された場合、検索条件構造木識別子を登録し、
同じ検索条件が発見されない場合、上記第二検索条件を当該ネットワークサービス検索装置と接続されたネットワークサービス機器へ送信し、上記第二検索条件毎に上記ネットワークサービス機器から受信した該第二検索条件に応じた検索結果を上記記憶領域に蓄積し、
上記複数の第二検索条件から上記第一検索条件を復元しつつ、該第一検索条件で指定される論理演算に従って、上記記憶領域から演算対象となる該第二検索条件に応じた上記検索結果を取得して、取得した該検索結果を合成することによって該第一検索条件に応じた検索結果を取得するようにしたネットワークサービス検索方法。
By dividing the first search condition for searching for a desired service provided via a network so as not larger than the predetermined data length to create a plurality of second search condition, each other of said plurality of second search condition Generate a search condition structure tree indicating the relationship between
If a search condition structure tree is searched for whether or not the same search condition as the second search condition exists in another search condition structure tree, and the same search condition is found, the search condition structure tree Register an identifier,
When the same search condition is not found, the second search condition is transmitted to the network service device connected to the network service search device, and the second search condition received from the network service device for each of the second search conditions. The corresponding search results are accumulated in the storage area,
While restoring the first search condition from the plurality of second search conditions, the search result according to the second search condition to be calculated from the storage area according to the logical operation specified by the first search condition And a search result corresponding to the first search condition is obtained by synthesizing the acquired search results.
上記ネットワークを介してサービスを提供可能な1つ以上のサービス提供機器と、アプリケーションから指示された上記第一検索条件に基づいて、該ネットワーク上に存在するサービスを提供する複数のサービス提供機器から上記第一検索条件を満たすサービス提供機器を検索する1つ以上のクライアント端末とで構成されるシステムにおいて、上記サービス提供機器が上記複数の第二検索条件を作成し、上記サービス提供機器が該第二検索条件に応じた上記クライアント端末から受信した検索結果を記憶領域に蓄積し、上記サービス提供機器が取得した該検索結果を合成することによって該第一検索条件に応じた検索結果を取得するようにした請求項12記載のネットワークサービス検索方法。One or more service providing devices capable of providing a service via the network, and a plurality of service providing devices that provide a service existing on the network based on the first search condition specified by the application In a system including one or more client terminals that search for a service providing device that satisfies a first search condition, the service providing device creates the plurality of second search conditions, and the service providing device The search result received from the client terminal according to the search condition is stored in a storage area, and the search result according to the first search condition is acquired by combining the search result acquired by the service providing device. The network service search method according to claim 12 .
JP2003197417A 2003-07-15 2003-07-15 Network service search device and network service search method Expired - Fee Related JP4291634B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003197417A JP4291634B2 (en) 2003-07-15 2003-07-15 Network service search device and network service search method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003197417A JP4291634B2 (en) 2003-07-15 2003-07-15 Network service search device and network service search method

Publications (2)

Publication Number Publication Date
JP2005038024A JP2005038024A (en) 2005-02-10
JP4291634B2 true JP4291634B2 (en) 2009-07-08

Family

ID=34207569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003197417A Expired - Fee Related JP4291634B2 (en) 2003-07-15 2003-07-15 Network service search device and network service search method

Country Status (1)

Country Link
JP (1) JP4291634B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4733458B2 (en) * 2005-07-29 2011-07-27 株式会社野村総合研究所 Search system and search method
DE112015002839T5 (en) 2014-06-16 2017-03-09 Nec Corporation A criteria generation device, a criteria generation method, a storage medium storing a criteria generation program, a database search system, and a storage medium having a database search program

Also Published As

Publication number Publication date
JP2005038024A (en) 2005-02-10

Similar Documents

Publication Publication Date Title
US7148987B2 (en) Information processing apparatus, information processing method, and program for controlling computer
US7576879B2 (en) Method of connecting terminal device to printer
US7475133B2 (en) Method for configuring a monitoring system to monitor selected network elements
JP2003108448A (en) Device, method, and program for controlling network device
EP1638290A1 (en) System, method and intermediary server for transmitting operational requests and responses between apparatuses
JP3962612B2 (en) Information processing apparatus and setting method and program executed by information processing apparatus
US9141890B2 (en) Data processing apparatus, data processing method, data processing program for implementing the method, and image processing apparatus
JP2003091393A (en) Printing system and method thereof
US20090193133A1 (en) Network device management apparatus, control method therefor, network system, and storage medium
JP4453593B2 (en) Monitoring the progress of printing in distributed printing
US20150009539A1 (en) Information processing method, information processing apparatus and program
US7437436B2 (en) Server, device, client, information processing method of server, information processing method of device, information processing method of client, information processing program, and memory medium
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 (en) Network service search device and network service search method
JP4291635B2 (en) Network service search system
US20030050971A1 (en) Client server system and method therefor
JP2005352890A (en) Service providing system, service providing method and program therefor
JP2005259106A (en) Mediating device, distributed processing system, data transfer method, program, and recording medium
JP6225735B2 (en) Image forming system, image forming apparatus, load distribution method, and program
US8760703B2 (en) Job control system and job control method
JP2007257266A (en) Information processor, device display processing method, storage medium and program
JP2007128215A (en) Information collection on network device
US20040223179A1 (en) Network printing mode automation
US20070058527A1 (en) Peripheral setting apparatus and method
JP2005259105A (en) Mediating device, communication system, control method of mediating device, program, and recording medium

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