JP4316681B2 - 情報検索システムの適応ルーティングアーキテクチャ内の情報をルートするシステムおよび方法 - Google Patents
情報検索システムの適応ルーティングアーキテクチャ内の情報をルートするシステムおよび方法 Download PDFInfo
- Publication number
- JP4316681B2 JP4316681B2 JP50071999A JP50071999A JP4316681B2 JP 4316681 B2 JP4316681 B2 JP 4316681B2 JP 50071999 A JP50071999 A JP 50071999A JP 50071999 A JP50071999 A JP 50071999A JP 4316681 B2 JP4316681 B2 JP 4316681B2
- Authority
- JP
- Japan
- Prior art keywords
- module
- router packet
- packet
- router
- elements
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S370/00—Multiplex communications
- Y10S370/912—Packet communications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
本米国特許出願は、“質問セットを動的に生成するためにインデックスを動的に処理するシステムおよび方法”の名称で、1997年4月22日に提出された出願中の米国特許出願番号第08/844,751号に関連する。本出願およびこの関連する出願中の米国特許出願は、一般で、BellSouth Corporation(ベルサウスコーポレーション)に譲渡される。
技術分野
本発明は、一般に、情報検索システム内の通信ルーティングに関し、より詳細に説明すると、情報検索システム内の適応ルーティングアーキテクチャを使用して起点モジュールから転送先モジュールへの情報を動的にルートすることに関する。
発明の背景
記録されかつ探索可能な情報の増加し続ける量の態様での急増が、情報の世界を揺り動かしたといわれている。この増加し続ける情報量の中から特定の情報を効率的に探索するために、情報検索システムが開発されてきた。
情報検索システム(“IRシステム”)は、情報の探索、組織化および引渡しのためのシステムである。手作業IRシステムは、検索図書館員にたとえられる。探索パーティーは、書籍やその他の資料などの特定の情報を探索するために図書館員に尋ねることによってこの手作業IRシステムを使用する。図書館員は、リクエストを理解し、情報のための探索を開始し、探索パーティに見つけ出した情報を送る。このように、図書館員は、検索し、見付け出し、見出した情報を引渡すIRシステムとしての機能を果たす。図書館員は、探索パーティーにとって重宝であるが、図書館員は、あまり速くなく、かつ情報を故意ではなく見落とす場合がある。
コンピュータによるIRシステムは、手作業によるIRシステムよりもはるかに効率的である。コンピュータによるIRシステムは、一般に、ルーティングメッセージ及びユーザーインターフェースとデータベースの検索エンジンとの間をファイルを含む方法を適用する。ユーザーインターフェースと検索エンジンとの間のリクエスト、メッセージおよびファイルをルートするステップは、“ミドルウェア”コードのルーティングアーキテクチャとして従来から周知であるステップによって行われることが出来る。一般に、このようなミドルウェアコードの実行は、IRシステム内の限定数のリソース(ユーザーインターフェースおよび検索エンジン)量を処理するとき、比較的簡単である。
しかし、IRシステムが、過負荷で使用されるとき、IRシステム内の応答時間が減速し始める。IRシステムのリソース(検索エンジンなど)のアベイラビリティ(使用可能度)は、特定のリソースと関連する固定または限定アクセス限界により制約される。例えば、検索エンジンが、特定時間内に固定数のリクエストを処理できるに過ぎないかもしれない。検索エンジンに対する追加リクエストの処理は、前のリクエストが処理される間、好ましくなく時間を遅らされる。
IRシステムは、種々の入力メカニズム(フロントエンド)や出力メカニズム(引渡しモジュール)を設けることによって拡張され得る。異なるタイプのフロントエンドモジュールを加えると、検索エンジンなどのIRシステムのリソースへのアクセスを拡張する。例えば、IRシステムが、音声またはデジタルデータを介してユーザーと対話するために複数のタイプのフロントエンドモジュールを含んでもよい。これにより、ユーザーがオーディオ入力を介してIRシステムと対話可能となる。さらに、ユーザーは、ユーザーのコンピュータとIRシステムのコンピュータとの間を接続して、IRシステムと対話することが可能となる。このように、IRシステムは、情報リクエストに対する異なるフォーマットをサポートする能力によって向上され得る。
IRシステムは、さらに、複数の引渡しモジュールを有することによって向上され得る。引渡しモジュールは、デジタルデータやオーディオ、ファクシミリなどの特定のフォーマットで探索結果を引渡すメカニズムである。例えば、ファクシミリモジュールは、ファクシミリを介してユーザーに探索問い合わせ結果を提供する。テキストから音声へのモジュールは、ユーザーに対して再生されるオーディオフォーマットになるように処理して、ユーザーに探索問い合わせ結果を提供する。
引渡しモジュールや追加フロントエンジンモジュールなどの新しいモジュールをIRシステムに統合することには問題がある。このような新しいモジュールを統合するときに直面する一つの問題は、コモン(共通)言語がないことである。典型的なIRシステムにおいては、メッセージおよびファイルのルーティングは、IRシステムのなしに既存のモジュール間のカスタマイズされた言語を使用して実行される。IRシステムに新しいモジュールを追加することは、IRシステム内に既存するその他のモジュールのすべてが、新しいモジュールをサポートするように変更される必要があることを意味する。さらに、新しいモジュールは、それ自体の特定の方法やフォーマット、シンタックス(構文)で既存のモジュールの各々と通信できる必要がある。新しいモジュールおよびIRシステム内のその他のモジュール各々を変更すると、費用がかかり、かつ時間もかかる。従って、典型的なIRシステムは、一般に、新たな拡張をするには全く順応性がない。
新しいモジュールを統合するときに直面する別の問題は、IRシステムのリソースの使用プロフィルが、増大し、リソースによって情報を処理するのにかかる時間を好ましくなく増やすことである。使用するプロフィルは、IRシステム内の所定のリソース使用が時間中に使用される方法として定義される。所定のリソースと関連する使用プロフィルは、通常の低い使用期間および高需要の使用期間のピーク時間期間を有する。IRシステムが、複数のフロントエンドモジュールで拡張されると、所定の使用リソースに対する需要が増加する機会が増大する。換言すれば、所定のリソースのピーク時間使用期間は、より少数のフロントエンドモジュールを有するIRシステムと比較するときより大きい。これにより、所定のリソースによって情報を処理するのにかかる時間を好ましくなく増加する。
さらに、複数のフロントエンドモジュールを有するIRシステムは、所定のリソースの使用に対して同時リクエストを発生し得る。例えば、データフロントエンドが検索エンジンの別の探索リクエストを発生すると同時に、音声フロントエンドは、検索エンジンの探索リクエストを発生することが可能である。所定のリソースを使用に対する同時リクエストを受けると、所定のリソースに対してひんぱんに不規則な使用プロフィルを提供する。これにより、探索リクエスト内の情報を処理するのに、好ましくない、かつ予測できない応答時間がかかることになる。
IRシステムが、複数のフロントエンドモジュールおよび引渡しモジュールを有することによって拡張され得るが、拡張により、IRシステムのユーザーに好ましくない、かつ予測できない応答時間をかけることになる可能性がある。ユーザーが、IRシステムへの魅力を薄め、かつこのシステムの使用を中止することになるので、応答時間をかけることは、好ましくない。さらに、ユーザーが、IRシステム内にどこか具合が悪い所があると了解してしまうかもしれないので、予測のできない応答時間がかかったことは好ましくない。
要約すれば、(1)IRシステムのユーザーに対して好ましいレベルの応答時間を維持し、(2)IRシステムのモジュール同士間のコモンインターフェースに対してアブストラクト化レベルを提供し、(3)IRシステム内で今後の増大に拡張可能な、かつ適応可能な、(4)IRシステムを使用するとき、応答時間を向上するために、IRシステムのリソースの使用をインテリジェントに管理し、および(5)IRシステム内のリソースの使用度または使用プロフィルに基づき情報を適応可能にルーティングする適応ルーティングアーキテクチャを介してIRシステム内の複数の入力、処理および引渡しメカニズムを統合する一般的解決法が必要である。
本発明の概要
本発明は、一般に、情報検索システム内の起点モジュールと転送先モジュールとの間でパケットベースの情報をルートする方法を提供する。起点モジュールは、情報を転送先モジュールと称される別のソフトウェアモジュールに適応可能にルートするために、情報検索システム内のルーティングアーキテクチャを使用するソフトウェアである。適応可能なルーティングの処理は、転送先モジュールが使用される方法に基づいて行われる。この方法は、単一のプロセッサコンピュータシステムまたは複数のプロセッサを有する分散型コンピュータシステムによって実行され得る。
一般に言われているように、方法は、探索リクエストなどの情報を受け取るステップで始まる。次に、情報は、4つの部分を設けて一つのパケットにフォーマットされる。パケットの第一部分は、転送先モジュールに対応する転送先指定を含む。パケットの第二部分は、起点モジュールに対応する起点指定を含む。パケットの第三部分は、データを含む。データは、受け取られた情報から引き出され、複数の要素を有する場合がある。最後に、パケットの第四の部分は、アクション指定を含む。アクション指定は、データに転送先モジュールによって実行される所望のアクションに対応する。このように、パケットの各々は、起点モジュールによって情報からフォーマットされる。
この方法をさらに参照すると、パケットは、ルーティングアーキテクチャに送信される。ルーティングアーキテクチャの制御下で、パケットは、転送先モジュールが使用される方法により転送先モジュールに適応可能にルートされる。このように、ルーティングアーキテクチャは、パケットが転送先モジュールによって迅速に処理され得るように、パケットをルートすることが可能である。
本発明の一つの態様において、パケット内のデータは、探索リクエストの要素を含む。この状態において、ルーティングアーキテクチャは、パケットのデータ内の要素を順序付けして、さらに、転送先モジュールにパケットをルートすることによって、パケットを適応可能にルートする。要素を順序付けることにより、より効率よく、かつ短い時間でパケットを処理することが可能である。
一般に、要素は、パケットのデータ内の各々の要素に対応するデータベースレコードの数を決定して、順序付けされる。要素は、次に、各々の要素に対応するレコードの各々の数に基づいて順序付けされる。本発明の態様において、要素は、要素の各々に対応するレコードの各々の数の最小数に基づいて順序付けされる。従って、ルーティングアーキテクチャは、パケット内の要素を順序付けして、さらに、適切な転送先モジュールにパケットをルートして、パケットを適応可能にルートする。
本発明の別の態様において、ルーティングアーキテクチャは、別のパケットが、転送先モジュールと関連するキューにあるかどうかを決定して、転送先モジュールにパケットを適応可能にルートする。キューは、転送先モジュールによってまだ処理されていないパケットの一時記憶メカニズムとして使用される順序付けされたメモリ構造である。別のパケットがキューにある場合、ルーティングアーキテクチャが、生成されたモジュールとして追加の転送先モジュールを生成して、パケットを適応可能にルートする。生成されたモジュールは、情報検索システムの単一のプロセッサで実行するマルチスレッドソフトウェア環境のソフトウェアモジュールである。生成されたモジュールは、さらに、情報検索システム内の複数のプロセッサの一つに専用のソフトウェアモジュールとなる。
本発明の別の態様において、ルーティングアーキテクチャは、転送先モジュールに割り込みを送って、転送先モジュールにパケットを適応可能にルートしてもよい。パケットが、しきい値時間内に転送先モジュールによって処理されない場合、割り込みが一般に送られる。割り込みにより、転送先モジュールに適宜にパケットを処理させる。一般に、割り込みにより、転送先モジュールのキューの指定位置内にパケットを配置して、転送先モジュールにパケットを処理させる。指定位置は、転送先モジュールによって処理される次のパケットを保持する。
より詳細に説明すると、本発明の態様は、情報検索システム内にルーティングアーキテクチャを使用して起点モジュールと転送先モジュールとの間に情報をルートするより詳細な方法を提供する。この態様により、情報は、起点モジュールによって受け取られる。探索リクエストなどの情報は、一つ以上の要素を有する。情報からの要素は、データパケットを生成するために使用される。一般に、要素は、初期順序でデータパケット内に配列される。
次に、情報は、様々な部分を設けてルータパケットにフォーマットされる。一般に、パケットの部分は、ルータライブラリに定義される。ルータパケットの第一部分は、転送先モジュールに対応する転送先指定を含む。ルータパケットの第二部分は、情報を受け取る起点モジュールに対応する起点指定を含む。ルータパケットの第三部分は、情報から生成されるデータパケットを含む。ルータパケットの第四部分は、アクション指定を含む。アクション指定は、受け取られた情報からのデータパケットの要素を使用して転送先モジュールによって実行される所望のアクションに対応する。さらに、ルータパケットの第五部分は、ルータパケットのサイズに対応するサイズ指定と、ルータパケットの関連をルータパケットのグループに参照するパケットシーケンス番号とを含む。このように、ルータパケットは、フォーマットされる。
ルータパケットが、フォーマットされた後、ルータパケットは、起点モジュールによってルーティングアーキテクチャに送信される。ルーティングアーキテクチャに送信されると、ルータパケット内の転送先指定が、解釈され、または読み取られ、ルータパケットをルートする場所を決定する。ルーティングアーキテクチャの制御下で、パケットは、転送先モジュールが使用される方法に依存して転送先モジュールに適応可能にルートされる。このように、ルーティングアーキテクチャは、ルータパケットを迅速かつ効率的にルートして、パケットが、転送先モジュールによって迅速に処理されることが可能である。
本発明の一つの態様において、ルータパケットは、データパケットの要素の初期順序を最適化順序に配列し、かつルータパケットを転送先モジュールにルートすることによって適応可能にルートされる。一般に、初期順序を最適化順序に配列するステップは、データパケットの要素の各々に対応するデータベースのレコードの数を決定することによって行われる。レコードの数が、各要素毎に決定されると、要素の初期順序が、要素の各々に対応するレコードの各々の数に基づいて最適化順序に配置される。本発明の態様において、その他の要素に対応するレコードの数と比べるとき、最適化順序で第一要素が、対応するレコード各々の数の最小の数を有する。このように、ルーティングアーキテクチャは、要素を最適化順序に配列し、次にルータパケットを適切な転送先モジュールにルートすることによってルータパケットを適応可能にルートする。
本発明の別の態様において、ルーティングアーキテクチャは、別のルータパケットが転送先モジュールと関連するキューにあるかどうかを決定することによってルータパケットを転送先モジュールに適応可能にルートする。キューは、転送先モジュールによってまだ処理されていないルータパケットの一時記憶メカニズムとして使用される順序付けされたメモリ構造である。別のルータパケットがキューにある場合、ルーティングアーキテクチャが、ルータパケットを新しいモジュールにルートする前にメモリに新しいモジュールを生成することによってパケットを適応可能にルートする。
新しいモジュールは、転送先モジュールのコピーである。前述の転送先モジュールのコピーを生成後、ルーティングアーキテクチャが、ルータパケットをルートし、かつ適宜に処理する要件を満たすために、情報検索システム内の使用可能なリソースを好都合に適合する。新しいモジュールは、情報検索システムの単一のプロセッサで実行するマルチスレッドソフトウェア環境のソフトウェアモジュールである。新しいモジュールは、さらに、情報検索システム内の複数のプロセッサの一つに専用のソフトウェアである。
さらに、本発明の別の態様において、ルーティングアーキテクチャは、転送先モジュールのキュー内の位置にルータパケットを配置することによってルータパケットを転送先モジュールに適応可能にルートする。ルータパケットがしきい値時間内に転送先モジュールによって処理されていない場合、割り込みが、転送先モジュールに送られる。割り込みにより、転送先モジュールに適宜にパケットを処理させる。一般に、割り込みにより、転送先モジュールにその現在の処理活動を取り消させ、ルータパケットを処理するために、転送先モジュールを自由にさせる。
次に、転送先モジュールが、キュー内のルータパケットの位置を変更してルータパケットを処理させる。ルータパケットの位置は、転送先モジュールによって処理される次のパケットとなるルータパケットを指定する別の位置に変更される。
本発明の例示的な態様が、情報を適応可能にルートする方法に向けられているが、本発明が、ここに、記述されている態様に制約されないことは理解されるであろう。
要約すれば、本発明の目的は、情報検索システムの適応ルーティングアーキテクチャを使用する情報検索システムの起点モジュールと転送先モジュールとの間で情報をルートするシステムおよび方法を提供することである。
さらに、本発明の目的は、適応ルーティングアーキテクチャを介して情報検索システム内の複数の入力や処理、引渡しメカニズムを統合する一般的解決法を提供することである。
さらに、本発明の目的は、情報検索システムのユーザーのため所望のレベルの応答時間を維持する情報検索システムの起点モジュールと転送先モジュールとの間で情報をルートする方法を提供することである。
また、本発明の目的は、情報検索システムのモジュール間のコモンインターフェースとして作用するアブストラクト化レベルを有するルーティングアーキテクチャを提供することである。
さらに、本発明の目的は、情報検索システム内の将来成長のために拡張可能な、かつ適応可能な情報検索システムのルーティングアーキテクチャを提供することである。
本発明のさらに別の目的は、探索問合せに対する応答時間を向上するために、システムのリソースの使用をインテリジェントに管理する情報検索システムのルーティングアーキテクチャを提供することである。
本発明のさらに別の目的は、情報検索システム内のリソースの使用可能度または使用プロフィルに適合する情報検索システムのルーティングアーキテクチャを提供することである。
また、本発明の目的は、データ探索の速度を向上するように、ルーティングアーキテクチャによってルートされた探索リクエスト要素の順序を最適化順序に配列し直すことである。
本発明およびその目的、または有利な点、上述のこれらまたはその他のことは、下記の詳細な説明、図面および添付の請求の範囲を検討すると明らかになるであろう。
【図面の簡単な説明】
図1は、本発明の態様の例示的なオペレーティング環境を提供するコンピュータシステムのブロック図である。
図2は、本発明の例示的な態様のソフトウェア構成要素およびそれらの操作相互関係を示している図である。
図3は、情報検索システム内の適応ルーティングアーキテクチャを使用する起点モジュールと転送先モジュールとの間に情報をルートする好ましい方法のステップを示しているフローチャートである。
第4A図および第4B図からなる図4は、情報検索システム内の適応ルーティングアーキテクチャを使用する起点モジュールと転送先モジュールとの間で情報をルートする好ましい方法のステップを示している詳細なフローチャートである。
図5は、適応ルーティングアーキテクチャによってルートされた後、ルータパケットのデータフィールドにおける要素の順序を調整する好ましい方法のステップを示しているフローチャートである。
詳細な説明
定義
本発明の態様の詳細な説明を通して、当業者が熟知している言葉が、使用されている。さらに、下記の定義は、ここに述べられている本発明の態様を参照にして使用されている:
・“適応ルーティング”−情報検索システムの転送先モジュールのステータスに基づきルータパケットをルートする。
・“データパケット”−ルータパケットの一部分。データパケットは、起点モジュールによって受け取られる情報から引き出される。
・“転送先モジュール”−ルータパケット内に含まれる情報を受け取るために指定されるソフトウェアモジュール
・“起点モジュール”−ルータパケットを生成し、ルーティングアーキテクチャにそれを送信する能力を有するソフトウェアモジュール
・“キュー”−未処理のルータパケットの一時記憶として動作するメモリのデータ構造
・“ルータパケット”デバイスまたはソフトウェアモジュールからその他のデバイスまたはモジュールに情報を伝達するときに使用される特別にフォーマットされたデータ構造
・“ルート”−情報検索システムにおいて、ルータパケットなどの情報を引渡すこと
・“ルーティングアーキテクチャ”−起点モジュールと転送先モジュールとの間にルータパケットをルートする能力を有するソフトウェアモジュール
・“検索エンジン”−特定の情報のデータベースを探索可能なソフトウェアモジュール
・“ステータス”−特定の転送先モジュールが現在使用されている状態に関する情報(例えば、ルータパケットを処理する、処理されるのを待っている別のルータパケットを有するなど)
序文
本発明は、情報検索システム(“IRシステム”)内のルーティングアーキテクチャを使用して起点モジュールから転送先モジュールへ情報をルートするためのシステムおよび方法に関する。一般に、ルーティングアーキテクチャは、好都合には、一様で、効率のよく、および適宜であるように、IRシステム内の起点モジュールと転送先モジュールとを適応可能にリンクする。
本発明の態様において、情報は、起点モジュールによって受け取られる。この情報は、検索エンジンモジュールに向けられる探索リクエストである。起点モジュールが、受け取られた情報に関係するデータを有するルータパケットを生成する。ルータパケットは、転送先指定や起点指定、データパケット、サイズ指定、アクション指定などを含むように、コモンルータライブラリにより特別にフォーマットされる。転送先指定および起点指定は、転送先モジュールおよび起点モジュールに各々に対応する。データパケットは、データ(例えば、情報の要素)から引き出される。サイズ指定は、ルータパケットのメモリサイズに対応する。アクション指定は、データパケットの転送先モジュールによって行われるアクションに対応する。このように、ルータパケットは、IRシステム内の情報をルートするときに使用されるIRシステム内のモジュール(起点モジュール)によって生成される通信メカニズムである。
ルータパケットがフォーマットされると、ルータパケットは、次に、IRシステム内のルーティングアーキテクチャに送信される。ルーティングアーキテクチャは、IRシステム内のルータパケットを、ルートする場所を先ず決定することによってルータパケットを取扱う。さらに、ルーティングアーキテクチャは、IRシステムのリソースをインテリジェントに使用して、ルータパケットを適応可能にルートし、ルータパケットの最適応答時間をもたらすことが可能となる。
IRシステムのリソースをインテリジェントに使用する一つの方法は、転送先モジュールと関連するキューにルータパケットを配置することである。キューは、ルーティングアーキテクチャ内に保持され、転送先モジュールによって処理されるために待っている未処理のパケット用保留場所として動作する。別のルータパケットが、キューで待っている場合、ルーティングアーキテクチャが、転送先モジュールの新しいコピーを生成し、最新のルーティングパケットの要求を適応可能に満たす。あるいは、ルーティングアーキテクチャは、転送先モジュールのキュー内の位置にルータパケットを配置する。ルータパケットがしきい値時間内に転送先モジュールによって処理されない場合、ルーティングアーキテクチャは、転送先モジュールに割り込む。ルーティングアーキテクチャは、キュー内の指定位置にルータパケットを配置する。指定位置は、次に処理されるパケットを格納する。これにより、ルータパケットを処理する応答時間を減少する。
IRシステムのリソースをインテリジェントに使用する別の方法は、探索リクエスト情報の順序付け要素を含む。受け取られた情報が、IRシステム内の検索エンジンに向けられる探索リクエストである場合、データは、探索リクエストの要素を含む。要素は、初期順序に配列される。要素の順序は、最適化順序に順序付けられるか、または配列されるかである。要素が、IRシステムのデータベースを探索する前に、最適化順序に配列されて、検索エンジンモジュールが、データベースをより効率的に探索可能である。要約すれば、IRシステム内の情報のパケットを動的にかつ適応可能にルートするためのルーティングアーキテクチャの生成および使用は、本発明の一般的な焦点である。
コンピュータ関連態様についての一般情報
好ましい態様には、例示的なコンピュータシステム内に使用される例示的なIRシステムの特定のソフトウェアモジュールに関して一般に記述されているが、当業者には、本発明が、コンピュータの異なるタイプの異なるプログラムモジュールとともに実行されることが可能であることは明らかである。さらに、当業者には、本発明が、独立型または分散型コンピュータを使用する環境で実行されることが可能であることは明らかである。分散型コンピュータを使用する環境において、プログラムモジュールは、異なるローカルおよびリモートメモリ記憶装置に物理的に配置されてもよい。ソフトウェアモジュールの実行は、一つ以上のプロセッサに対して独立型または専用型風にローカル(特定地域)で、またはクライアント/サーバ風にリモート(遠隔地域)で行われる。前述の分散型コンピュータを使用する環境の例としては、ローカルエリアネットワークや企業内コンピュータ、グローバルインターネットなどが挙げられる。その他の方法およびシステムの実行が、当業者には思いつくであろう。
下記の詳細な説明は、従来のコンピュータによる処理および操作の記号表示によって十分に表わされている。独立型環境および分散型コンピュータを使用する環境において、コンピュータで行われる処理および操作は、プロセッサによる信号の操作と、データベースなどのデータセット内のこれらの信号の保守と、インデックスまたはパケットなどのデータ構造とを含む。これらのデータセットおよびデータ構造の各々は、一つ以上のメモリ記憶装置にある。根本的に、データセットは、ユニットとして操作される独立した要素の関連情報のコレクションである。データ構造は、データの解釈とデータ操作とをサポートするために、データを簡約する構造化された組織的スキーマである。データ構造は、メモリ記憶装置に格納されたデータのコレクションに物理的組織を置き、かつ比電気または磁気要素を示している。本発明に関して、データ構造は、独立した要素やデータセットのオブジェクト、別のデータ構造などから生成されることが可能である。例えば、ルータパケットは、データパケットと称される情報の別のパケットを含む。
この論考のために、方法または処理は、所望の結果となるコンピュータを使用して実行されるステップのシーケンスであると一般に考えられる。これらのステップは、一般に、物理的な数量の物理的操作を必要とする。
さらに、ここに記述される方法およびシステムは、特定のコンピュータ(独立型または分散型)または装置に関連または制約されないことは理解されるであろう。さらに、方法およびシステムは、特別の通信アーキテクチャに関連または制約されない。従って、当業者は、ここに記述される説明による汎用機械または特にカスタマイズされたプロミング可能デバイスを使用して本発明のシステムおよび方法を実行可能である。
数枚の図を通して同一符号が、同一要素を示している図面を参照として、本発明および好ましいオペレーティング環境の態様が記述されている。
本発明の態様のオペレーティング環境
図1と下記の論考は、本発明が実行かつ動作される例示的なコンピュータを使用する環境の簡単な一般的な説明を提供するものである。本発明の態様は、コンピュータに関連してオペレーティングシステムを実行するソフトウェアプログラムモジュールに関して一般的に記述されている。一般に、プログラムモジュールは、特定のタスクを実行し、または特定のアブストラクトデータタイプを実行するルーチンやプログラム、構成要素、データ構造などを含む。さらに、当業者は、本発明が、ハンドヘルドデバイスやマルチプロセッサシステム、マイクロプロセッサ利用またはプログラマブル使用者エレクトロニクス、ミニコンピュータ、メインフレームコンピュータなどを含むその他のコンピュータシステム構成で実行されることが可能であることを認めるであろう。当業者は、図1および関連論考が、例示的なコンピュータハードウェアおよびプログラムモジュールの簡単な一般的な説明を提供することと、別の情報が、適切なプログラミングマニュアルやユーザーガイド、類似の出版物などで容易に入手可能であることとを認めるであろう。
図1を参照すると、本発明を実行する例示的なコンピュータシステムは、プロセッサ21と、システムメモリ22と、システムメモリ22をプロセッサ21に接続するシステムバス23とを含む従来のコンピュータ20を含む。図1には示されていないが、本発明を実行する例示的なコンピュータシステムは、追加のプロセッサを含み、それらの各々は、システムメモリ22に接続されている。その他の構成において、追加のプロセッサは、コンピュータ20内で同時に実行する特定のソフトウェア処理に専用とされることが可能である補助プロセッサであると考えられる。
システムメモリ22は、ランダムアクセスメモリ(RAM)25を含む。コンピュータ20は、さらに、ハードディスクドライブ27と、光ディスクドライブ30(例えば、CD−ROMディスク31から読み出しまたは他の光メディアから読み出し、または他の光メディアに書き込むディスクドライブ)とを含む。ハードディスクドライブ27および光ディスクドライブ30は、システムバス23に接続される。ドライブおよびそれらに関連するコンピュータ読み取り可能メディアは、コンピュータ20用不揮発性記憶装置を提供する。上記のコンピュータ可読メディアの説明は、CDなどのハードディスクドライブ27および光ディスク31を含んでいるが、リムーバブル磁気ディスク、磁気カセット、フラッシュメモリカード、デジタルビデオディスクおよびテープ、ベルヌーイカ−トリッジなどのコンピュータによって読み取り可能であるメディアの他のタイプは、図1について記述されている例示的なオペーレーティング環境の各々において使用されることが可能であることは当業者によって認められるであろう。
多数のプログラムモジュールが、オペレーティングシステム32と、様々な他のソフトウェアプログラムモジュールとを含み、ドライブ27、30およびRAM25に格納される。本発明の態様において、前述のソフトウェアモジュールの例は、対話型情報検索システムモジュール26(IRシステムモジュール)と集合的に称されるソフトウェアモジュールのグループである。IRシステムモジュール26は、下記のソフトウェアモジュールを含むことが好ましい。
・一つ以上のフロントエンドモジュール33
・一つ以上の引渡しモジュール34
・IRシステムモジュール26のその他の物の情報をインテリジェントに、かつ適応可能にルートするソフトウェアのミドルウェアレイヤ38
・検索エンジンモジュール39(データベース40と対話する)
IRシステムモジュール26のすべてが使用されるとき、プロセッサ21は、モジュールのサイズのため一度モジュールの一部をメモリに持っていく場合がある。例えば、オペレーティングシステム32およびデータベース40は、RAM25内にあるように示されている。しかし、例示的な態様において、これらのソフトウェアモジュールの一部のみが、禁止するサイズのためRAM25内に維持されている。IRシステムモジュール26を含むソフトウェアモジュールが、図2を参照にして以下に詳細に論じられている。
オペレーティングシステム32は、コンピュータハードウェアおよびソフトウェアリソースと、ユーザーと、IRシステムモジュール26との間に基本インターフェースを提供する。図1を参照にして記述される例示的なオペレーティング環境において、オペレーティングシステム32は、Sun Microsystems, Inc.の事業部のSunSoftによって製造されるSOLARISオペレーティングシステムなどのリアルタイムオペレーティングシステムであることが好ましい。複数のユーザーと探索し、対話するとき、適切な応答を提供するために、リアルタイムオペレーティングシステムが望ましい。SOLARISオペレーティングシステムは、対称的マルチ処理をサポート可能な多重、リアルタイムUNIXカーネルを有する。当業者は、トランザクション実行の適切なレベルをサポートするために、情報検索アプリケーションのリアルタイム、マルチスレッドが必要であることを認めるであろう。さらに、当業者は、マルチ処理オペレーティングシステムを熟知しているであろう。SOLARISオペレーティングシステムに関する追加の情報は、Sun Microsystemsによって出版されるシステムマニュアルを参照して、またUNIXオペレーティングシステムについての文献をその他広範囲に入手可能である。
従来のコンピュータシステムについてほとんど、ユーザーは、キーボード(図示せず)と、マウス(図示せず)などの入力またはポインティングデバイスとを介して、コマンドおよび情報をコンピュータ20に入力する。これらのものおよび他の入力デバイスは、システムバス23に接続されるゲームポートまたはユニバーサルシリアルバス(USB)などのシリアルポートインターフェース(図示せず)を介してプロセッサ21に接続されることが多い。モニター(図示せず)またはディスプレイデバイスの他のタイプは、システムバス23に接続される。モニターの他に、コンピュータ20などのコンピュータは、一般に、スピーカーやプリンタ、バックアップデバイスなどの他の周辺出力デバイスを含む。
例示的な態様において、コンピュータ20が、サーバとして機能するとき、ユーザーは一般にコンピュータ20と対話する。この場合には、コンピュータ20は、リモートプログラマブルデバイス(リモートコンピュータ41など)、または電気通信デバイス(従来の電話42など)をサービスすることが可能であり、それらの各々は、コンピュータ20に必然的に接続される。
リモートコンピュータ41は、サーバやルータ、ピアデバイス、その他のコモン(共通)ネットワークノードなどである。一般にリモートコンピュータ41は、独立型コンピュータ20に対して記述される多くのまたはすべての要素を含む。図1に示されるリモートコンピュータ41とコンピュータ20との間の論理接続は、広域エリアネットワーク(WAN)43などのデータ通信ネットワークである。データ通信ネットワークのその他の例は、企業内コンピュータネットワークやイントラネット、グローバルインタネットなどを含む。コンピュータ20のネットワーク通信インターフェース44などの通信インターフェースは、WAN43とコンピュータ20とをリンクする。しかし、コンピュータ20への論理接続は、さらに、オフィスで普通であるローカルエリアネットワーク(LAN)(図示せず)である。一般に、リモートコンピュータのユーザーは、情報のデータベースを探索し、かつコンピュータ20によって提出されるスクリプトされた質問に応答するために、前述の論理接続を介してコンピュータ20と対話する。
従来の公衆交換電話ネットワーク46(PSTN)に接続される電話技術通信インターフェース45(電話ラインカードとして周知)は、コンピュータ20と従来の電話42との間の論理接続を提供する。このように、ユーザーは、従来の電話42またはその他の電話デバイスを介して音声応答でコンピュータ20と対話することが可能である。好ましい態様において、電話技術通信インターフェース45は、Antares 2000(アンタレス 2000)デジタル信号処理(DSP)を有するモデル D/160SC−LS電話ラインインターフェースカードであり、これらの両方は、ニュージャージー、Dialogic Corporation of Parsippanyによって製造される。コンピュータ20が、これらの二つのインターフェースを介してデータ質問を処理するサービスを提供するので、ネットワーク通信インターフェース44および電話技術通信インターフェースは、“通信インターフェース”と一般に称される。示されているネットワークおよび電話技術接続は、例示であり、コンピュータ20とリモートコンピュータ41、または従来の電話42との間の通信リンク実施するにはその他の手段が用いられる場合があることが認められるであろう。
最初に論じられたように、本発明の好ましい態様は、単一のプロセッサコンピュータシステム20のSunSoftのSOLARISオペレーティングシステムと関連して動作するように設計されているIRシステムモジュール26で実施されている。しかし、当業者には、本発明が、スレッドが種類が異なるプロセッサに専用であるマルチプロセッサシステムなどのその他のコンピュータアーキテクチャを用いて実施されることが可能であることは直ちに認識されるであろう。
この簡単な説明から、“SOLARIS”オペレーティングシステムなどのオペレーティングシステムおよびネットワーキングアーキテクチャが、全く複雑であり、コンピュータまたは分散型コンピュータを使用する環境のその他のコンピュータで入手可能なリソースをユーザーとプログラムとに利用させる広範囲のいろいろなサービスを提供することが認められるであろう。当業者は、オペレーティングシステムやネットワーキングアーキテクチャ、それらの様々な特徴などには熟知している。同様に、同業者は、IRシステムモジュール26が、上述の簡単な説明に含まれるこれらに加えて、広範囲な様々な特徴および機能を提供することを認めるであろう。
残りの図面に戻ると、本発明の例示的な態様が示されている。図2は、本発明の例示的な態様におけるミドルウェアルーティングアーキテクチャおよびその他のソフトウェア構成要素との相互関係とを示している線図である。図3は、ミドルウェアルーティングアーキテクチャを使用する起点モジュールと転送先モジュールとの間で情報をルートする好ましいステップを示しているフローチャートである。第4A図および第4B図は、より詳細な起点モジュールと転送先モジュールとの間で情報をルートする好ましいステップを示しているフローチャートである。図5は、ルータパケットからの要素が、最適化順序に配列される方法に関する好ましいステップを示しているフローチャートである。
例示的なIRシステム内のソフトウェアモジュール
IRシステムモジュールの本質は、検索エンジンモジュール39と称されるソフトウェア構成要素である。検索エンジンモジュール39は、ここでは検索エンジンと呼ぶ。探索リクエストなどの情報は、データベース40を探索する検索エンジンモジュール39にルートされる。探索結果は、検索エンジンモジュール39からルートされるか、または送り出される。ミドルウェアルーティングアーキテクチャ(MRA)38は、IRシステムモジュール26内のその他のソフトウェア構成要素の使用を好都合に拡張すると同時に、適応可能に前述のルーティングサービスを提供する。図2は、本発明の好ましい態様のMRA38とその他のソフトウェア構成要素に対する操作の相互関係とを示している線図である。
ミドルウェアルーティングアーキテクチャ
図1および図2に戻ると、MRA38は、様々なフロントエンドモジュールと引渡しモジュール34とをIRシステム26内の検索エンジンモジュール39に接続する。MRA38は、ルータライブラリ240やルータエンジン230、レジストレーションテーブル235、例示的なモジュールキュー245などを含むいろいろなソフトウェアモジュールを含有し、これらの各々は、IRシステム26内の前述の接続またはルーティングサービスを提供するために使用される。
述べられているように、MRA38は、ソフトウェアスケジュールとしてルータライブラリ240を含む。ルータライブラリ240は、従来は、動的ライブラリとしてその他のソフトウェアモジュールに接続されるコードのライブラリである。ルータライブラリ240は、ルータパケットを定義し、かつルータパケットをルートするために、MRA38に接続されるあらゆるモジュールにより要求される機能を含む。前述の接続されたソフトウェアモジュールの名前およびアドレスは、レジストレーションテーブル235内に保持される。換言すれば、ルータライブラリ240は、フロントエンドモジュール33の一つなどの起点モジュール用の一様なプログラミングインターフェースを画定する。起点モジュールは、ルータライブラリ240を使用して、IRシステム26内の検索エンジンモジュール39などの転送先モジュールにルータパケットを生成して送る。一様なプログラミングインターフェースを定義して、ルータライブラリ240が、MRA38に接続されるモジュール間に送られる情報のパケットに対してコモン(共通)で、かつ拡張可能な言語参照を提供する。
IRシステム26内で使用されるルータパケットは、ルータライブラリ240によって定義される予め定められるフォーマットに従う。例示的な態様は、ルータパケットが、6つの種類が異なる、かつ相互接続される部分またはフィールドにフォーマットされたデータ構造である:[転送先指定]、[アクション指定]、[サイズ]、[パケットシーケンス番号]、[データ]、[起点指定]。これらの種類が異なるルータパケットの分野は、下記の表1に定義される:
表1を参照すると、好ましいパケットの個々のフィールドが記述されている。サイズのフィールドは、ルータパケットのメモリサイズを示すルータパケットの部分である。
転送先指定のフィールドは、ルータパケットを受け取るIRシステムモジュール26内の転送先モジュールを示している。一般に、転送先指定は、レジストレーションテーブル235内にレジスタされる転送先モジュールの名前およびアドレスのことを指している。
アクション指定のフィールドは、ルータパケット内に含まれるデータで行われることを示している。例えば、アクション指定は、ルータパケットがMRA38を介してフロントエンドモジュール33の一つから検索エンジンモジュール39に送られる探索問合せを実行するとき、データベース40を探索するリクエストである。
サイズのフィールドは、ルータパケットの全メモリサイズを含むルータパケットの部分である。一般に、サイズのフィールドは、メモリのバイトで表現される。
パケットシーケンス番号は、ルータパケットの関連づけをルータパケットのグループに参照するルータパケットの部分である。特に、パケットシーケンス番号のフィールドは、グループのルータパケットのシーケンスのルータパケットの相対位置を指定する。これは、起点モジュールが、データを、指定転送先モジュールで集合的処理の複数のパケットに分割する必要があるとき、有用である。例えば、ルータパケットは、検索エンジンモジュール39によって使用される大きな探索問合せを集合的に含んでいる3つの関連ルータパケットのグループの一つである。
データのフィールドは、起点モジュールによって受け取られるデータを含むルータパケットの部分であり、かつ転送先モジュールによって使用される。例示的な態様において、ルータパケットのデータフィールドは、情報の特定要素を有する埋め込みデータパケットと、データパケットの要素の番号とを含む。
起点指定のフィールドは、ルータパケットを生成し、それをMRA38に送信する能力を有するIRシステムモジュール26内の起点モジュールを示している。一般に、起点指定は、レジストレーションテーブル235内にレジスタされる起点モジュールの名前およびアドレスのことを指している。
要約すれば、好ましいルータパケットは、ルータライブラリ240によって定義される。ルータライブラリ240を使用すると、レジスタされたIRシステムモジュール26のすべてが、MRA38を使用して、ルータパケットをその他のレジスタされたIRシステムモジュール26のすべてに適応可能に送る。
すでに述べたように、MRA38は、ソフトウェアモジュールとしてルータエンジン230を含む。ルータエンジン230は、ルータパケットが取扱われ、適切な転送先モジュールにルートされる方法を適応可能にコントロールする。ルータパケットを取扱い、または処理するために、ルータエンジン230は、フロントエンドモジュールの一つなどの起点モジュールから送信されるルータパケットの内容を解釈し、または読み取る。ルータエンジン230が、ルータパケットを解釈して、指定転送先モジュールを決定すると、ルータエンジン230は、ルータパケットをMRA38に接続されるレジストレーションテーブル235に登録された適切なモジュール(転送先モジュール)に適応可能にルートする。
ルータパケットの適応ルーティングは、種々の方法で実行される。MRA38によるルータパケットの適応ルーティングは、転送先モジュールがルータパケットによって指定される場所および転送先モジュールが、IRシステムに現在使用されている状態に左右される。例えば、転送先モジュールが使用される状態が、転送先モジュールの未決定のルータパケットの数または転送先モジュールが、ルータパケットを現在処理しているかどうかに左右される。換言すれば、ルータパケットを適応可能にルートすることは、転送先モジュールが使用される状態に基づいてルータパケットをルートし、ルータパケットが転送先モジュールによって処理されることが可能である速度を有利に速めていく。
ルータパケットのルーティングに関して、ルータエンジン230は、一般に、ルータパケットを転送先モジュールに適応可能にルートするとき、転送先モジュールと関連するキュー245をモニタする。キュー245は、特定の転送先モジュールにアドレスされる未決定のルータパケットの一時記憶として動作するメモリのデータ構造である。例えば、転送先モジュールとして検索エンジンモジュール39を指定するルータパケットが、検索エンジンモジュールのキュー245内に一時的に格納される。
転送先モジュールと関連するキュー245に未決定のルータパケットがない場合、また転送先モジュールが、別のルータパケットをまだ処理していない場合、ルータエンジン230が、転送先モジュールに、直接ルータパケットを適応可能にルートする。この状態において、転送先モジュールは、ルータパケットを直ちに処理可能である。
転送先モジュールによって処理されるルータパケットが既にある場合、ルータエンジン230は、できるだけ速く処理を待っているキュー245に現在のルータパケットを格納して、ルータパケットを、適応可能にルートする。キュー245内に未決定の別のルータパケットが既にある場合、ルータエンジン230は、別の転送先モジュールを生成してルータパケットを適応可能にルートし、現在のルータパケットを迅速に処理する。現在のルータパケットが、所望の時間内に処理されない場合、ルータエンジン230は、さらに、転送先モジュールに割り込みを送って、ルータパケットを適応可能にルートし、転送先モジュールによる処理を取り消す。さらに、ルータパケット230は、現在のルータパケットが、転送先モジュールによって次に処理されることを確実にする。
要約すれば、MRA38は、その構成要素を使用して、IRシステム26内の様々なフロントエンドモジュール33、引渡しモジュール34および検索エンジンモジュール39の間に通信およびルーティングメカニズムを有利に提供する。MRA38のその他の構成要素と関連してルータエンジン230は、ルータパケットを適応可能にルートし、ルータパケットの処理時間を速め、かつルータパケットに関連する応答時間を減少するようにする。ルータパケットを適応可能に取扱うことを含む好ましいステップは、図3、第4A図および第4B図を参照にして下記により詳細に記述されている。
データベースへのインデックス
ルータパケットが、MRA38によって検索エンジンモジュール39にルートされるとき、ルータパケットは、一般に、検索エンジンモジュール39の探索リクエストを定義する情報を表わす。例示的な態様において、探索リクエストを定義する情報は、一般に、インデックス37からデータベース40に選択される要素によって表わされる。換言すれば、インデックス37からの要素は、探索リクエストを定義するために選択される。
インデックス37は、データベース40内の情報を見出すために使用されるデータベース40と関連する構造化ガイドまたはツールである。例示的な態様において、インデックス37はまた、データベース40内の情報のレコードに関するキーワードおよびカテゴリーとして知られている要素を含む。一般に、これらのキーワードまたはカテゴリーは、数値識別子によって参照される。したがって、ユーザーは、インデックス37内の特定のキーワードおよびカテゴリーの識別子を使用する探索リクエストを生成可能である。
データベース40が、レストラン広告情報を含む例示において、インデックス37は、下記の表2にリストされるカテゴリーおよび識別子を含む。
表2を参照すると、“レストラン”、“中華”および“テイクアウト”は、データベース40内の情報が組織されるカテゴリーの各々の記述である。これらのカテゴリーの各々は、インデックス37内のカテゴリーの事前定義・既定タイプの一つである。前述のように、各々のカテゴリーは、別個の数値識別子によって参照しやすくして載せられている。例えば、レストランカテゴリーは、2760の数値識別子を有するLOB(Line of Business(ビジネスライン))タイプのカテゴリーである。中華カテゴリーは、1080の数値識別子を有するQLOB(Qualified Line of Business(ビジネスの修飾ライン))タイプのカテゴリーである。テイクアウトカテゴリーは、100の数値識別子を有するアメニティータイプのカテゴリーである。
ユーザーが、テイクアウト食品を用意できる中華レストランのデータベース40を探索するIRシステムモジュール26を使用することを望む場合、例示的な探索リクエストは、上記の3つのリクエストされたカテゴリーおよびそれらの各々の識別子を含む。例示的な探索リクエストの要素は、次のとおりである:LOB 2760、QLOB 1080、Amenity 100。
探索リクエストの要素(すなわち、探索リクエストを定義する情報)が、決定されると、ルータパケットが、探索リクエストの要素に基づいて生成される。対話型音声応答(IVR)モジュール205が、ユーザーと対話するフロントエンドモジュール33である場合、前述の状態の結果として生ずるルータパケットの分フィールドは、下記のとおりである:[検索エンジンモジュール]、[探索リクエスト]、[115バイト]、[3、LOB 2760、QLOB 1080、アメニティー 100]および[IVRモジュール]。
IRシステム内のソフトウェアモジュール間の対話
IRシステムモジュール26内のルータパケットおよび個々のソフトウェアモジュールの機能性について上記序文とすれば、下記には、IRシステムモジュール26が本発明の態様において互いに対話する方法が説明されている。図1および図2に戻ると、MRA38は、一般に、起点モジュールによって生成されるルータパケットを利用にするIRシステム26内の情報をルートするために使用される。ルータパケットは、MRA38によって解釈され、その後転送先モジュールにルートされ、ルータパケットが、適宜にかつ効率的に処理される。下記は、本発明の態様によるIRシステム26内のソフトウェアモジュールが、MRA38と対話する方法の二つの例示である。
IRシステムによる探索リクエストの処理
第一の例示は、IRシステム26が探索リクエストを定義する情報を処理するときのMRA38の使用法を示している。ユーザーは、従来の電話42またはリモートコンピュータ41を介してコンピュータ20と通信することによって探索リクエストを開始する。特に、ユーザーは、上述の通信経路の一つを介してIRシステム26のフロントエンドモジュール33の一つに探索リクエストを定義する情報を伝達する。通信経路がPSTN46を通る場合、情報を受け取るモジュールは、IVRモジュール205である。しかし、通信経路がWAN43を通る場合、情報を受け取るモジュールは、フロントエンドモジュール215である。いずれの状態においても、情報を受け取る特定のフロントエンドモジュール33は、この例示では起点モジュールであると考えられる。
フロントエンドモジュール33が、探索リクエストを定義する情報を受け取ると、フロントエンドモジュール33は、情報をルータパケットにフォーマットする。ルータパケットのフォーマットは、ルータライブラリ240をフロントエンドモジュール33(すなわち、起点モジュール)にリンクすることによって決定される。フロントエンドモジュール33は、ルータパケットの一部分がルータエンジン230によって読み取られ、かつ解釈されるMRA38に、ルータパケットを送信する。解釈されると、ルータエンジン230は、ルータパケットがフロントエンドモジュール33(指定先起点モジュールの基づく)からの探索問合せであること(アクション指定に基づく)を決定する。ルータエンジン230は、さらに、ルータパケットが検索エンジンモジュール39に送られることを決定する(指定転送先モジュールに基づく)。
ルータパケットが検索エンジンモジュール39に送られることが決定されると、ルータエンジン230は、ルータパケットを適応可能にルートする。キュー245が、空であり、かつ検索エンジンモジュール39が、その他のパケットを現在処理していない場合、ルータパケットは、検索エンジンモジュール39にルートされる。検索エンジンモジュール39は、ルータパケット内の要素に基づきデータベース40の探索を迅速に実行する。しかし、検索エンジンモジュール39によって処理される別のルータパケットがある場合、ルータエンジン230が、キュー245に、ルータパケットを格納する。別のルータパケットの処理が完了すると、検索エンジンモジュール39が、ルータパケットを処理し続ける。特に、検索エンジンモジュール39は、キュー245のルータパケットのデータフィールド内の要素に基づいてデータベース40の探索を実行する。
検索エンジンモジュールのキュー245内に未決定の別のルータパケットが既にある場合、ルータエンジン230が、ルータパケットを適応可能にルート可能である。ルータエンジン230は、メモリに別の検索エンジンモジュール39を好都合に生成することによって、またはインスタンス生成することによって、ルータパケットを適応可能にルート可能である。検索エンジンモジュール39の別のコピーを生成することによって、データベース40が、ルータパケットの探索リクエストを定義する情報による適宜な方法で迅速に探索されることが可能である。
ルータエンジン230が、検索エンジンモジュールのキュー245にルータパケットを配置する場合、ルータエンジン230は、ルータパケットに関する検索エンジンモジュールのキュー245のステータスをモニタする。ルータパケットが、検索エンジンモジュール39によって予め定められた時間内に処理されない場合、ルータエンジン230は、状況に適合する。特に、ルータエンジン230は、割り込みを検索エンジンモジュール39に送ることが好ましい。割り込みは、検索エンジンモジュール39の処理を停止したり、または取り消して、および検索エンジンモジュールのキュー245のルータパケットの順序を変更して、現在のルータパケットが次に処理される。
このように、MRA38は、フロントエンドモジュール33(起点モジュール)の一つから検索エンジンモジュール39(転送先モジュール)にリクエストを表示するルータパケットを適応可能にルートすることによって探索リクエストを定義する情報を処理するために使用される。
IRシステムよる探索結果の引渡し
前の例示では、MRA38は、フロントエンドモジュール33を検索エンジンモジュール39に探索リクエストを伝達するために使用されている。検索エンジンモジュール39は、探索リクエストを処理して、探索結果を発生する。ミドルウェアルーティングアーキテクチャが使用される用法の別の例示では、検索エンジンモジュール39は、探索結果を引渡しモジュール34の一つに送るためにMRA38を使用する。
検索エンジンモジュール39は起点モジュールであり、1つの引渡しモジュール34は転送先モジュールであると考えられていることを除いては、探索結果を送る処理は、本質的には、先の例示と同一である。検索エンジンモジュール39は、ルータパケットに探索結果を定義する情報をフォーマットする。ルータパケットは、解釈されて、テキストから音声へ(TTS)のモジュール220、またはファックスモジュール225などの適切な引渡しモジュール34と関連するキューに伝達される。前述のように、ルータエンジン230は、適切な引渡しモジュール34の使用法および使用可能度によりパケットを適切な引渡しモジュールのキューに適応可能にルートする。適切な引渡しモジュール34が、ルータパケットを受け取ると、探索結果が、適切な引渡しモジュール34に対応するフォーマットのユーザーに伝達される。
要約すれば、MRA38は、柔軟に、適応可能に、およびアブストラクト的にIRシステムモジュール26内のモジュール間連結を提供するソフトウェアモジュールである。
ミドルウェアルーティングアーキテクチャを使用するフローチャート
図3および図4は、情報検索システム内に情報をルートする本発明の態様からの好ましいステップを記述するフローチャートである。図3は、MRA38などの情報検索システムの適応ルーティングアーキテクチャを使用する起点モジュールと転送先モジュールとの間で情報をルートする好ましい方法のステップを示しているフローチャートである。
図1、図2および図3を参照すると、ステップ305で始る方法300は、IVRモジュール205などの起点モジュールが情報を受け取るステップで開始する。前述のように、この情報は探索リクエストの形をとる。ステップ310で、起点モジュールは、情報をルータパケットにフォーマットする。起点モジュールが情報をフォーマットするとき、起点モジュールは、IVRモジュール205にリンクされるルートライブラリ240のルータパケットフォーマットを参照することが好ましい。
ステップ315で、起点モジュールは、情報検索システム内の、ルータパケットをMRA38などのルーティングアーキテクチャにルータパケットを伝達する。例示的な態様において、起点モジュールは、ルータライブラリ240内に定義される一様なプログラミングインターフェースを使用するMRA38にルータパケットを伝達可能である。前述の一様なプログラミングインターフェースの部分として、好ましいルータライブラリ240は、ルータパケットをルーティングアーキテクチャに伝達する起点モジュールによって呼び出されるmsgrt_sendなどの機能を定義する。
ステップ320で、ルータパケットが伝達されると、MRA38は、転送先モジュールとして指定されるソフトウェアモジュールのステータスを決定する。MRA38は、(1)ルータパケットの転送先指定フィールドを読み取り、または解釈することによって、(2)未決定ルータパケットの転送先モジュールのキューの内容をモニタすることによって、および(3)処理活動用転送先指定モジュールをモニタすることによってルータパケットの転送先モジュールのステータスを決定することが好ましい。
ステップ325で、MRA38は、ルータパケットを転送先モジュールのキューに配置する。本発明の態様において、転送先モジュールのキューは、一般に、順序付けされたメモリ構造のFIFO(先入れ先出し)タイプである。ルータパケットは、通常、キューの下部位置に配置され、転送先モジュールは、通常、キューの上部位置からルータパケットを探索する。このように、複数のルータパケットが、転送先モジュールのキュー内に配置される場合、キューにより早く到達するルータパケットが、上部位置などの指定位置にある。
ステップ330において、その他のルータパケットが、転送先モジュールのキュー内に存在する場合、ステップ330は、ステップ335に進む。ステップ335で、MRA38は、転送先モジュールの追加のコピーを生成し、ステップ340に進む前に、ルータパケットを手早くルートし、かつ処理する。そうでない場合、ステップ330は、ステップ340に直接進む。
MRA38は、転送先モジュールの追加のコピーを生成可能であるので、適応可能であると考えられている。例示において、IVRモジュール205からのルータパケットは、MRA38に送られる。ルータパケットは、検索エンジンモジュール39のために結び付けられ、MRA38は、検索エンジンモジュールのキュー245がキュー245に既にその他のルータパケットを有していないことを決定する。MRA38は、メモリでの他の検索エンジンモジュール39の構築によって適合され、よりタイミング良く適宜にルータパケットを取扱う。
図1乃至図3に戻ると、ステップ340で、現在のルータパケットが予め定められたしきい値時間内に転送先モジュールによって処理された場合、方法300は、ステップ340後終了する。しかし、ルータパケットが、予め定められたしきい値時間内に、転送先モジュールによって処理されなかった場合、ステップ340は、ステップ345に進む。
転送先モジュールがルータパケットを“処理する”のにかかる時間は、キューからルータパケットを読み取り、ルータパケットと関連する指定アクションを完了するのにかかる時間であると考えられている。異なるタイプのモジュールが、ルータパケットを通常処理して、MRA38から別のルータパケットを受け取るのに、各々に異なる時間を要するので、予め定められたしきい値時間は、個々の転送先モジュールによって異なる。転送先モジュールが、検索エンジンモジュール39である例示において、予め定められたしきい値時間は、探索するのに時間が十分長くかかる以上の限界である。例示的な態様において、検索エンジンモジュールに関する予め定められたしきい値時間は、5秒間のタイムアウトである。
ステップ345で、MRA38は、転送先モジュールによって現在実行され処理活動を停止するか、または取り消しするために割り込みを転送先モジュールに送る。このように、MRA38は、ルータパケットための転送先モジュールをクリアにする。さらに、MRA38は、ステップ350で転送先モジュールのキューの上部位置にルータパケット送って、ルータパケットをルートし、転送先モジュールが、ルータパケットを迅速に処理することを確実にする。
要約すれば、MRA38は、ルータパケットを受け取り、ルータパケットを適切に転送先モジュールに適応可能にルートする。例示的な態様において、MRA38は、(1)別の転送先モジュールを追加し、ルータパケットを新しいモジュールにルートすることによって、(2)転送先モジュールを解釈し、かつルータパケットが次に処理されることを確実にすることによって、および(3)ルータパケット内に要素を特別に順序付けし、順序付けされた要素を転送先モジュールにルートすることによって、ルータパケットを適応可能にルートする。ルータパケットを適応可能にルートするこれらの方法の各々は、従来のルータおよびゲートウェイの機能性を優位に超えるであろう。
ミドルウェアルーティングアーキテクチャを使用する詳細なフローチャート
より詳細に記述される第4A図乃至第4B図は、情報検索システム内に、MRA38などの適応ルーティングアーキテクチャを使用する起点モジュールおよび転送先モジュール間に情報をルートする好ましい方法のステップを示している詳細なフローチャートである。
図1、図2および図4を参照にすると、方法400は、フロントエンドモジュール33の一つなどの起点モジュールが、情報を受け取るステップ405で開始する。情報は、IRシステムモジュール26のユーザーから来る探索リクエストを定義する。あるいは、情報は、検索エンジンモジュール39から来る探索結果を定義する。
ステップ410で、起点モジュールがデータパケットを生成する。データパケットは、ステップ405からの受け取られた情報の要素から引き出される。ステップ415で、起点モジュールは、メッセージをルータパケットのデータフィールドのデータパケットを使用するルータパケットにフォーマットする。ステップ420で、起点モジュールは、ルータパケットをMRA38に伝達する。
ルータパケットがMRA38に伝達されると、MRA38は、ルータパケットの内容を読み取り、または解釈し、ステップ425で転送先モジュールを決定する。転送先モジュールを決定することが、ルータパケットの転送先指定フィールドの内容を読み取ることによって行われることは好ましい。
ステップ430で、MRA38は、転送先モジュールとして指定されるソフトウェアモジュールのステータスを決定する。一般に、転送先モジュールのステータスは、転送先モジュールおよびその現在の処理活動を記述する情報を含む。前述のように、MRA38は、転送先モジュールのキューおよびその処理活動をモニタ可能である。MRA38は、未決定のルータパケットの転送先モジュールのキューの内容をチェックすることによって、および処理活動の指定された転送先モジュールをチェックすることによって転送先モジュールのステータス(適応ルーティングのための)を決定することが好ましい。
ステップ435で、MRA38は、転送先モジュールのキュー内に、一般に、キューの下部位置に、ルータパケットを配置することによってルータパケットを適応可能にルートする。前述のように、ルータパケットが、通常、キューの下部位置に配置されると同時に、転送先モジュールは、キューの上部からルータパケットを受け取る。このように、複数のルータパケットが、転送先モジュールのキュー内に配置される場合、キューに到着する最も早いルータパケットおよび関連ルータパケット(すなわち、シーケンスされたグループのこれらのルータパケット)は、処理される次のものとして指定される上部位置に置かれる。
ステップ440で、その他のルータパケットが、転送先モジュールのキュー内で、キューに入れられない場合、または存在しない場合、ステップ440は、第4B図のステップ445に進む。しかし、その他のルータパケットは、転送先モジュールのキュー内でキューに入れられる場合、または存在する場合、ステップ440は、ステップ450に進む。ステップ450で、MRA38は、第4B図のステップ445に進む前に、転送先モジュールのコピーとしてメモリに新しいモジュールを生成することによって、ルータパケットを適応可能にルートする。転送先モジュールのこの追加のコピーが生成されて、ルータパケットのルーティングおよび処理を適応可能に迅速に処理する。
例示的な態様において、転送先モジュールの新しいコピーは、IRシステム(すなわち、コンピュータ20)内のオペレーティングシステム32のマルチスレッドソフトウェア環境内で単一の処理スレッドとして動作する。換言すると、新しい転送先モジュールは、コンピュータの単一のプロセッサ21によって実行される新しい処理である。当業者は、スレッド、またはマルチスレッドソフトウェアオペレーティングおよびプログラミング環境には熟知しているであろう。
当業者は、さらに、単一の処理スレッドが、マルチプロセッサコンピュータシステム内のマルチプロセッサ(補助プロセッサと称される)の一つに専用とされる方法であることをすぐに認めるであろう。多数のプロセッサに個々に専用とされるされるとき、複数の転送先モジュールは、効率的に動作され、ルータパケットのルーティングおよび処理を迅速に処理する。IRシステムモジュール26の使用プロフィルが増大するとき、補助(adjunct)プロセッサを使用する処理ルータパケットの適切なレベルを維持する能力が重要である。当業者は、補助プロセッサを有するマルチプロセッサコンピュータシステムには熟知しているであろう。
図1、図2、第4A図および第4B図を参照すると、ステップ445において、現在のルータパケットが、予め定められたしきい値時間内に転送先モジュールによって処理された場合、方法400は、ステップ445後終了する。しかし、現在のルータパケットが、予め定められたしきい値時間に内に転送先モジュールによって処理されなかった場合、ステップ445は、ステップ455に進む。
ステップ455において、MRA38は、割り込みを指定された転送先モジュールに送る。割り込みを受け取ると、転送先モジュールが、ステップ460の転送先モジュール内に生じるその現在の処理活動を取り消す。これらの記述されたステップから、当業者は、MRA38が本質的に転送先モジュールをクリアして、遅くとも、予め定められたしきい値時間の満了後、ルータパケットを処理することを認めるであろう。転送先モジュール内の処理活動が、取り消されると、MRA38は、ステップ465で転送先モジュールのキュー内のルータパケットの位置を変更する。キュー内に、上部位置などの指定位置に現在のルータパケットを配置して、転送先モジュールにより、処理される次のルータパケットとして現在のルータパケットを受け取らせて、処理させる。
要約すれば、MRA38は、ルータパケットを受け取り、転送先モジュールおよびそのキューのモニタされたステータスにより、ルータパケットを適切な転送先モジュールに適応可能にルートする。ルータパケットがルートされると、転送先モジュールにより、効率的に処理されることが可能である。
ミドルウェアルーティングアーキテクチャを使用するときの探索問合せ要素の再配列
転送先モジュールが、検索エンジンモジュール39である場合、本発明の別の態様は、ルータパケットが検索エンジンモジュールによって処理される方法を拡張することを含む。このような状況において、ルータパケット内のデータは、一般に、複数の要素を有する探索問合せである。探索問合せ要素の順序が最適化順序に再配列されるとき、探索問合せの処理(いわゆる、データベース40を探索すること)は、拡張される。図5は、ルータパケットのデータフィールドから要素の順序を再配列することによってルータパケットを適応可能にルートする好ましい方法のステップを示しているフローチャートである。
図1乃至図5を参照すると、方法500は、ルータパケットに指定される転送先モジュールが、例示的な検索エンジンモジュール39などの検索エンジンモジュールであるステップ505で開始する。ステップ510で、ルータパケットは、例示的な検索エンジンモジュールのキュー245などのキューから読み取られる。
ルータパケットが、一般に、検索エンジンモジュール39によって読み取られると、ステップ515−525が、検索エンジンモジュール39による探索問合せ要素をより効果的に処理するために行われる。換言すれば、ステップ515−525を行うことにより、検索エンジンモジュール39が探索問合せをインテリジェントに処理可能となり、迅速に探索をする。
ステップ515で、探索問合せ要素の初期順序が、ルータパケット内の順序付けされたデータ構成要素から決定される。一般に、データフィールドは、初期順序でルータパケットのデータ内に保持されるデータ構成要素を含む。データフィールド内の各々のデータ構成要素は、探索問合せの要素である。さらに、データ構成要素の順序は、検索エンジンモジュールによって使用される探索問合せ要素の順序に対応する。
ステップ520で、検索エンジンモジュール38は、データベースのどのレコードが探索問合せの各々の個々の要素に対応するかを決定する。探索問合せ要素が、データベースのインデックス37のキーワードおよびカテゴリーであるとき、各々の要素に対応するレコードを決定することは、データベース40の情報レコードと、インデックス37内のキーワードおよびカテゴリーとの間の関係を参照とすることによって行われることが好ましい。例えば、探索問合せ要素が、LOB 2760やQLOB 1080、Amenity 100などを含む。LOB 2760の要素は、データベース40内の1500のレコードに対応する。QLOB 1080の要素は、データベース40内のわずか200のレコードに対応するにすぎない。さらに、Amenity 100の要素は、データベースの50のレコードに対応するだけである。
要素関係に対するレコードが決定されると、検索エンジンモジュールが、ステップ525で探索問合せ内の要素の問合せ順序を再配列して、ルータパケットが検索エンジンモジュール38によって処理される方法を拡張する。これは、探索問合せ要素の順序を最適化順序に再配列することによって行われ、その結果検索エンジンモジュール39がデータベース40の探索を行うのにかかる時間を軽減される。
探索問合せ要素の最適化順序は、さらに、探索問合せ要素の“的中(bullseye)”ランキング(順位)または順序とも表現する。ここで“的中(bullseye)”という言葉は、探索中に使用されるときに、最良の探索結果を生ずる要素に依存して、各々の要素が最適化順序に配列されるという理由により使用されている。最良の結果(すなわち、最適化順序で1番目)を生ずるために使用される要素は、標的の中心に類似している。第一要素を使用する探索は、標的の中心の小さな範囲に類似する若い数字の結果を生ずる。最適化順序で次の最良要素は、標的の中心周りの次のリングに類似する。
図5に示されている態様において、最適化順序は、各々の要素に関連するデータベース情報の量に左右される。前述の態様において、最良の探索結果は、探索が情報の最小量を生ずるときに達成される。あるいは、最適化順序が、さらに、特定の探索問合せ要素に関係する好結果の探索結果情報についての統計的データなどの最良探索結果を定義するその他の基準による場合もある。
図5に示されている例示的な態様において、探索問合せ要素の好ましい最適化順序は、第一要素が、それに関係する最少量のデータベース情報を有するときである。一般に、データベース40の探索は、第一探索問合せ要素の探索を個々に行うことによって複数の探索問合せ要素のために行われる。この、第一探索はデータベース情報の定義されたサブセットを生ずる。次の探索問合せ要素のために行われる探索は、第一探索からの定義されたサブセットを使用して行われる。このように、探索問合せ要素に関係するデータベース情報は、最後の探索問合せ要素を使用する探索中に見つけ出されたデータベース情報のサブセットである。
第一要素が、最少量のデータベース情報に関係する場合、複数の探索問合せ要素を有する全探索処理は、データベース情報の最小可能サブセットで開始する。当業者には、前述のデータベース情報の小量サブセットに基づく結果として起こる探索が、データベース情報のサブセットが初期に大きい場合よりもより速いことは迅速に理解されよう。従って、エントリに対応するデータベース40の最少量の情報を有するエントリ(第一要素)で開始する最適化順序に探索問合せ要素を配列することは有利な点である。さらに、結果として起こる探索問合せ要素が、最少量の対応するデータベース情報から最大量の対応するデータベース情報へと昇順に最適化順序内に配列されることは熟慮されることである。
前の例示において、Amenity 100の要素は、関連する50のレコードが200以下あるいは1500以下であったので、それと関連する少量のデータベース情報を有する。QLOB 1080の要素(200のレコードを有する)には、LOB 2760(1500のレコードを有する)が次に続く。当業者には、第一要素を使用して探索をした後に50のレコードを見つけ出すことによって、第二および第三の要素を使用する結果として起こる探索は、限定50のレコード領域(universe)で開始することは認識されるであろう。従って、当業者には、データベースのレコードの増大する関係量を有する要素の最適化順序に要素を再配列することが有利であることが認められるであろう。
探索問合せ要素が、最適化順序に配列された後、検索エンジンモジュール39が、探索問合せ要素の最適化順序を使用するステップ530でデータベース40の探索を行う。従って、上述のステップによれば、探索問合せ要素は、最適化順序に配列され、その結果検索エンジンモジュール39がデータベース40の探索を行うのにかかる時間が低減される。
結果
前述の説明から、本発明の態様が、IRシステム26のMRA38を使用する起点モジュールと転送先モジュールとの間で通信のシステムおよび方法を提供することが認められるであろう。起点モジュールの例は、フロンドエンドモジュール33の一つである。転送先モジュールの例は、検索エンジンモジュール39である。起点モジュールの一つがメッセージを受け取り後、特別にフォーマットされたルータパケットが、メッセージ内の情報から生成される。ルータパケットが、ルータパケットによって指定される転送先モジュールにルートするMRA38に送信される。MRA38は、ルータパケットを転送先モジュールに適応可能にルートする。
転送先モジュールのキューが空である場合、かつ転送先モジュールが、その他のパケットを現在処理していない場合、MRA38は、転送先モジュールのキューにルータパケットを配置する。転送先モジュールは、ルータパケットをキュー245から読み取り、ルータパケットを処理する。
転送先モジュールによって処理される別のルータパケットがある場合、MRA38が、キュー245に現在のルータパケットを格納する。その他のルータパケットの処理が完了すると、転送先モジュールが、キュー245の現在のルータパケットを処理可能である。転送先モジュールのキュー245内に未決定の別のルータパケットが既にある場合、MRA38は、メモリに別の転送先モジュールを生成することによって適合可能である。
現在のルータパケットが、予め定められた時間内に転送先モジュールによってまだ処理されていない場合、MRA38が、割り込みを送り、転送先モジュール内での処理を取り消し、現在のルータパケットが、次に処理されることを確実にする。
ルータパケットが検索エンジンモジュール39に引渡された場合、探索が探索問合せ要素を使用する検索エンジンモジュール39によって行われる前に、ルータパケットのデータ構成要素に対応する探索問合せ要素は、最適化順序に再配列される。
前述のシステムは、都合の良いことには、図3、第4A図、第4B図および図5のフローチャートに基づいているコードを有する一つ以上のプログラムモジュールで実行されている。上述のおよび添付図面に例示されているオペレーションと、ステップと、手続きとが、普通の技術の熟練の一つにより本発明を実施させることを可能にすることを十分に開示していると考えられるので、特定のプログラミング言語は、上述の様々な手続きを実行するために必要とされない。さらに、本発明を実施するのに使用される多くのコンピュータおよびオペレーティングシステムがあり、従って、これらの多くの異なるシステムのすべてに適応可能な詳細なコンピュータプログラムを提供できない。特定のコンピュータの各々のユーザーは、ユーザーの必要性と目的とに、最も有効である言語およびツールについて知っているであろう。
本発明は、すべての点で、限定的というよりもむしろ例示的に特定の態様について記述してきた。記述された特定の態様は、MRA38を使用する適応可能なおよび動的な方法で、フロントエンドモジュール33から検索エンジンモジュール39に特別にフォーマットされたルータパケットをルートする一つである。しかし、当業者には、本発明の原則は、情報検索システム内の情報およびメッセージを効率的にルートするタスクまたは処理に適用することは理解されるであろう。
本発明がその精神と範囲から逸脱することなく他の態様を、含んでいることについて当業者には明白であろう。従って、本発明の範囲は、前述の記述よりむしろ添付の請求の範囲によって定義される。
Claims (24)
- 情報検索システム内でルーティングアーキテクチャを使用して起点モジュールと転送先モジュールとの間で情報をルートする方法であって、前記方法が、
前記情報を受け取るステップと、
ルータパケットの第一部分が、前記情報からのデータを含むことを提供することによって、前記情報を前記ルータパケットにフォーマットするステップと、
前記ルータパケットを前記ルーティングアーキテクチャに送信するステップと、
前記ルーティングアーキテクチャにより前記転送先モジュールのステータスに基づき前記転送先モジュールに前記ルータパケットを適応可能にルートさせるステップと、
を含んで構成され、
前記ルーティングアーキテクチャに、前記ルータパケットを適応可能にルートさせるステップが、さらに、
(1)別のルータパケットが、前記転送先モジュールによって処理されることを待っているかどうかを決定することによって前記転送先モジュールのステータスをチェックするステップと、
(2)別のルータパケットが、処理されることを待っている場合、生成されるモジュールとして追加の転送先モジュールを生成するステップと、
(3)前記ルータパケットを前記生成されるモジュールにルートするステップと、
を含む、
ことを特徴とする方法。 - 前記データが、探索リクエストの複数の要素を含み、
前記ルーティングアーキテクチャに、前記ルータパケットを適応可能にルートさせるステップが、
前記転送先モジュールが、検索エンジンであるかどうかを決定することによって前記転送先モジュールのステータスをチェックするステップと、
前記転送先モジュールが前記検索エンジンである場合、前記データ内の要素を順序付けし、かつ前記転送先モジュールに対して順序付けされるように前記要素をルートするステップと
を含んで構成されることを特徴とする請求項1に記載の方法。 - 前記要素を順序付けするステップが、
(1)前記要素の一つに対応するデータベースのレコードの数を決定するステップと、
(2)前記要素のその他の要素に対して前記決定するステップを繰り返すステップと、
(3)各々の要素に対応する各々の最小数のレコードを有するエントリで開始する順に前記要素を順序付けするステップと、
を含んで構成されることを特徴とする請求項2に記載の方法。 - 前記ステップ(2)が、さらに、前記情報検索システムの単一のプロセッサで実行するマルチスレッドソフトウェア環境のソフトウェアモジュールとして前記生成されたモジュールを提供することを含んで構成されることを特徴とする請求項1に記載の方法。
- 前記ステップ(2)が、さらに、前記情報検索システム内の複数のプロセッサの一つに専用であるソフトウェアモジュールとして前記生成されたモジュールを提供することを含んで構成されることを特徴とする請求項1に記載の方法。
- 前記ルーティングアーキテクチャに、前記ルータパケットを適応可能にルートさせるステップが、前記転送先モジュールと関連するキュー内の指定位置に前記ルータパケットをルートすることによって遅くともしきい値期間満了後、前記転送先モジュールにより、前記ルータパケットを処理させることを含んで構成されることを特徴とする請求項1に記載の方法。
- 前記転送先モジュールにより、前記ルータパケットを処理するステップが、さらに、前記指定位置内に前記ルータパケットを配置し、前記指定位置が、処理される次のルータパケットを指定することを含んで構成されることを特徴とする請求項6に記載の方法。
- 前記フォーマットするステップが、さらに、
(i)前記ルータパケットの第二部分が、前記転送先モジュールに対応する転送先指定を含むことを提供するステップと、
(ii)前記ルータパケットの第三部分が、前記情報を受け取る前記起点モジュールに対応する起点指定を含むことを提供するステップと、
(iii)前記ルータパケットの第四部分が、前記データの前記転送先モジュールによって実行される所望のアクションに対応するアクション指定を含むことを提供するステップと、
を含んで構成されることを特徴とする請求項1に記載の方法。 - 情報検索システム内のルーティングアーキテクチャを使用して起点モジュールと転送先モジュールとの間で情報をルートする方法であって、前記方法が、
前記起点モジュールによって、複数の要素を有する前記情報を受け取るステップと、
前記情報内の前記要素を使用するデータパケットを生成するステップと、
(i)ルータパケットの第一部分が、前記転送先モジュールに対応する転送先指定を含むことを提供すること、
(ii)前記ルータパケットの第二部分が、前記情報を受け取る前記起点モジュールに対応する起点指定を含むことを提供すること、
(iii)前記ルータパケットの第三部分が、前記データパケットを含むことを提供すること、および
(iv)前記ルータパケットの第四部分が、前記情報からの前記要素を使用する前記転送先モジュールによって実行される所望のアクションに対応するアクション指定を含むことを提供すること
によって前記情報から前記ルータパケットをフォーマットするステップと、
フォーマット後、前記ルータパケットを前記ルーティングアーキテクチャに送信するステップと、
前記ルーティングアーキテクチャにより、前記転送先モジュールを決定するステップと、
前記ルーティングアーキテクチャに、前記転送先モジュールのステータスに基づいて、前記転送先モジュールに対応するキューに前記ルータパケットを適応可能にルートさせるステップと、
を含んで構成され、
前記ルーティングアーキテクチャに、前記ルータパケットを適応可能にルートさせるステップが、さらに、
(1)別のルータパケットが前記キューにあるかどうかを決定するステップと、
(2)別のルータパケットが前記キューにある場合、メモリに前記転送先モジュールのコピーである新しいモジュールを生成するステップと、
(3)前記ルータパケットを前記新しいモジュールにルートするステップと、
を含む、方法。 - 前記ルータパケットをフォーマットするステップが、さらに、
前記ルータパケットの第五部分が、前記ルータパケットのサイズに対応するサイズ指定を含むことを提供するステップと、
前記ルータパケットの第六部分が、前記ルータパケットの関係をルータパケットのグループと参照するパケットのシーケンス番号を含むことを提供するステップと、
を含んで構成される請求項9に記載の方法。 - 前記データパケットを生成するステップが、前記要素を初期順序に配列することを含んで構成される請求項9に記載の方法。
- 前記ルーティングアーキテクチャにより、前記ルータパケットを適応可能にルートさせるステップが、
前記転送先モジュールが検索エンジンであるかどうかを決定することによって前記転送先モジュールのステータスをチェックするステップと、
前記転送先モジュールが前記検索エンジンである場合、前記要素の初期順序を前記要素の最適化順序に配列し、かつ最適化順序で前記要素を前記転送先モジュールにルートするステップと、
を含んで構成される請求項11に記載の方法。 - 前記要素の初期順序を最適化順序に配列するステップが、
(1)前記要素の一つに対応するデータベースのレコードの数を決定するステップと、
(2)前記要素のその他の要素に対して前記決定するステップを繰り返すステップと、
(3)各々の要素に各々対応する前記レコードの数に基づき前記要素の最適化順序に、前記要素の初期順序を配列するステップと、
を含んで構成される請求項12に記載の方法。 - 前記ステップ(3)が、前記最適化順序で要素の第一が、各々の要素に各々対応する最小数のレコードを有するように前記初期順序を、前記最適化順序に配列することを含んで構成される請求項13に記載の方法。
- 前記ステップ(2)が、さらに、前記情報検索システムの単一のプロセッサで実行するマルチスレッドソフトウェア環境のソフトウェアモジュールとして前記新しいモジュールを提供するステップを含んで構成される請求項9に記載の方法。
- 前記ステップ(2)が、さらに、前記情報検索システム内の複数のプロセッサの一つに専用であるソフトウェアモジュールとして前記新しいモジュールを提供するステップを含んで構成される請求項9に記載の方法。
- 前記ルーティングアーキテクチャに、前記ルータパケットを適応可能にルートさせるステップが、さらに、
(1)前記キュー内の第一位置に前記ルータパケットを配置するステップと、
(2)前記ルータパケットがしきい値期間内に前記転送先モジュールによって処理されていない場合、割り込みを前記転送先モジュールに送るステップと、
(3)前記キュー内の前記ルータパケットの前記第一位置を変更することによって、前記転送先モジュールに前記ルータパケットを処理させるステップと、
を含んで構成される請求項9に記載の方法。 - 前記ステップ(2)の後、前記転送先モジュールに、前記転送先モジュールによって現在実行されている処理活動を取り消させるステップを含んで構成される請求項17に記載の方法。
- 請求項17に記載のステップ(3)が、前記キュー内の第二位置に前記ルータパケットを配置するステップを含み、前記第二位置が、前記転送先モジュールによって次に処理されるルータパケットを指定することを特徴とする請求項18に記載の方法。
- 情報検索システム内のルーティングアーキテクチャを使用して起点モジュールと転送先モジュールとの間で情報をルートする方法であって、前記方法が、
前記起点モジュールによって、複数の要素を有する前記情報を受け取るステップと、
前記情報内の前記要素を使用してデータパケットを生成するステップと、
(i)ルータパケットの第一部分が、前記転送先モジュールに対応する転送先指定を含むことを提供すること、
(ii)前記ルータパケットの第二部分が、前記情報を受け取る前記起点モジュールに対応する起点指定を含むことを提供すること、
(iii)前記ルータパケットの第三部分が、前記データパケットを含むことを提供すること、および
(iv)ルータパケットの第四部分が、前記情報からの前記要素を使用する前記転送先モジュールによって実行される所望のアクションに対応するアクション指定を含むことを提供すること
によって、前記情報からの前記ルータパケットをフォーマットするステップと、
フォーマット後、前記ルータパケットを前記ルーティングアーキテクチャに送信するステップと、
前記ルーティングアーキテクチャに、前記転送先モジュールを決定させるステップと、
ルーティングアーキテクチャに、別のルータパケットが、前記転送先モジュールに対応するキューにあるかどうかを決定させるステップと、
前記キュー内の第一位置に前記ルータパケットを配置するステップと、
別のルータパケットが前記キューにある場合には、メモリに追加の転送先モジールを生成し、かつ前記ルータパケットを前記追加の転送先モジュールにルートするステップと、
前記ルータパケットがしきい値期間内に前記転送先モジュールによって処理されていない場合には、割り込みを前記転送先モジュールに送るステップと、
前記キュー内の前記ルータパケットの前記第一位置を変更することによって前記ルータパケットを前記転送先モジュールに処理させるステップと、
を含んで構成される方法。 - 前記割り込みを送るステップの後、前記転送先モジュールに、現在の処理活動を取り消させるステップを含む請求項20に記載の方法。
- 前記データパケットを生成するステップが、前記要素を初期順序に配列するステップを含む請求項20に記載の方法。
- 前記転送先モジュールが検索エンジンである場合に、前記要素の前記初期順序を前記要素の最適化順序に配列し、かつ前記最適化順序で前記要素を前記転送先モジュールにルートするステップをさらに含む請求項22に記載の方法。
- 前記配列するステップが、
(1)前記要素の一つに対応するデータベースのレコードの数を決定するステップと、
(2)前記要素の各々に対して前記決定するステップを繰り返すステップと、
(3)前記最適化順序で前記要素の第一が、各々の要素に各々対応する最小数のレコードを有する前記最適化順序に、前記要素の前記初期順序を配列するステップと、を含んで構成される請求項23に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/866,228 US5937168A (en) | 1997-05-30 | 1997-05-30 | Routing information within an adaptive routing architecture of an information retrieval system |
US08/866,228 | 1997-05-30 | ||
PCT/US1998/009833 WO1998054661A1 (en) | 1997-05-30 | 1998-05-14 | A system and methods for routing information within an adaptive routing architecture of an information retrieval system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002501645A JP2002501645A (ja) | 2002-01-15 |
JP4316681B2 true JP4316681B2 (ja) | 2009-08-19 |
Family
ID=25347194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50071999A Expired - Lifetime JP4316681B2 (ja) | 1997-05-30 | 1998-05-14 | 情報検索システムの適応ルーティングアーキテクチャ内の情報をルートするシステムおよび方法 |
Country Status (10)
Country | Link |
---|---|
US (2) | US5937168A (ja) |
EP (1) | EP0985185B1 (ja) |
JP (1) | JP4316681B2 (ja) |
AT (1) | ATE441154T1 (ja) |
AU (1) | AU745078B2 (ja) |
BR (1) | BR9809884A (ja) |
CA (1) | CA2290597C (ja) |
DE (1) | DE69841099D1 (ja) |
IL (1) | IL133182A0 (ja) |
WO (1) | WO1998054661A1 (ja) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101320A (en) * | 1997-08-01 | 2000-08-08 | Aurora Communications Exchange Ltd. | Electronic mail communication system and method |
CA2220578A1 (en) * | 1997-11-10 | 1999-05-10 | Northern Telecom Limited | Distributed service network |
JP3396859B2 (ja) * | 1998-01-14 | 2003-04-14 | シャープ株式会社 | 複数個の機器を含むシステムにおけるデータ転送方法、データ転送システム、転送機器指定装置、ネットワーク機器の遠隔制御装置および情報機器 |
JP2002528819A (ja) | 1998-10-28 | 2002-09-03 | バーティカルワン コーポレイション | 自動集合の装置および方法、電子パーソナルインフォメーションあるいはデータを送達する装置および方法、ならびに電子パーソナルインフォメーションあるいはデータを含むトランザクション |
US6871220B1 (en) | 1998-10-28 | 2005-03-22 | Yodlee, Inc. | System and method for distributed storage and retrieval of personal information |
US8069407B1 (en) | 1998-12-08 | 2011-11-29 | Yodlee.Com, Inc. | Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes |
US7085997B1 (en) | 1998-12-08 | 2006-08-01 | Yodlee.Com | Network-based bookmark management and web-summary system |
US7672879B1 (en) | 1998-12-08 | 2010-03-02 | Yodlee.Com, Inc. | Interactive activity interface for managing personal data and performing transactions over a data packet network |
US6802042B2 (en) | 1999-06-01 | 2004-10-05 | Yodlee.Com, Inc. | Method and apparatus for providing calculated and solution-oriented personalized summary-reports to a user through a single user-interface |
US6517587B2 (en) * | 1998-12-08 | 2003-02-11 | Yodlee.Com, Inc. | Networked architecture for enabling automated gathering of information from Web servers |
US7752535B2 (en) | 1999-06-01 | 2010-07-06 | Yodlec.com, Inc. | Categorization of summarized information |
US6584073B1 (en) | 1999-06-02 | 2003-06-24 | Sun Microsystems, Inc. | Network topologies |
US6791939B1 (en) | 1999-06-02 | 2004-09-14 | Sun Microsystems, Inc. | Dynamic generation of deadlock-free routings |
US6631421B1 (en) | 1999-06-02 | 2003-10-07 | Sun Microsystems, Inc. | Recursive partitioning of networks |
US6603742B1 (en) | 1999-06-02 | 2003-08-05 | Sun Microsystems, Inc. | Network reconfiguration |
US6567856B1 (en) * | 1999-06-02 | 2003-05-20 | Sun Microsystems, Inc. | Deadlock-free routing |
US7711738B1 (en) * | 1999-11-15 | 2010-05-04 | West Services, Inc. | Method, system and computer-readable medium for accessing and retrieving court records, items and documents |
US7310629B1 (en) | 1999-12-15 | 2007-12-18 | Napster, Inc. | Method and apparatus for controlling file sharing of multimedia files over a fluid, de-centralized network |
US6366907B1 (en) | 1999-12-15 | 2002-04-02 | Napster, Inc. | Real-time search engine |
US6742023B1 (en) | 2000-04-28 | 2004-05-25 | Roxio, Inc. | Use-sensitive distribution of data files between users |
US6985964B1 (en) * | 1999-12-22 | 2006-01-10 | Cisco Technology, Inc. | Network processor system including a central processor and at least one peripheral processor |
US6870900B1 (en) * | 2000-06-16 | 2005-03-22 | Bellsouth Intellectual Property Corporation | Proactive maintenance application |
US6771739B1 (en) * | 2000-06-16 | 2004-08-03 | Bellsouth Intellectual Property Corporation | Pressure alarms and reports system module for proactive maintenance application |
US7050547B1 (en) * | 2000-06-16 | 2006-05-23 | Bellsouth Intellectual Property Corporation | Digital loop carrier module for proactive maintenance application |
US7089301B1 (en) | 2000-08-11 | 2006-08-08 | Napster, Inc. | System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer |
WO2002017034A2 (en) * | 2000-08-24 | 2002-02-28 | Voltaire Advanced Data Security Ltd. | System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics |
US20020040389A1 (en) * | 2000-10-03 | 2002-04-04 | Wirespring Technologies, Inc. | System and method for remotely-managed content distribution network |
US7328232B1 (en) * | 2000-10-18 | 2008-02-05 | Beptech Inc. | Distributed multiprocessing system |
US6594670B1 (en) | 2000-12-22 | 2003-07-15 | Mathias Genser | System and method for organizing search criteria match results |
US7145913B2 (en) * | 2001-02-15 | 2006-12-05 | The Board Of Trustees Of The University Of Illinois | Thread based scalable routing for an active router |
US6952691B2 (en) * | 2002-02-01 | 2005-10-04 | International Business Machines Corporation | Method and system for searching a multi-lingual database |
US7039625B2 (en) * | 2002-11-22 | 2006-05-02 | International Business Machines Corporation | International information search and delivery system providing search results personalized to a particular natural language |
US7854009B2 (en) * | 2003-06-12 | 2010-12-14 | International Business Machines Corporation | Method of securing access to IP LANs |
US20050050306A1 (en) * | 2003-08-26 | 2005-03-03 | Sridhar Lakshmanamurthy | Executing instructions on a processor |
US20050065774A1 (en) * | 2003-09-20 | 2005-03-24 | International Business Machines Corporation | Method of self enhancement of search results through analysis of system logs |
US8014997B2 (en) * | 2003-09-20 | 2011-09-06 | International Business Machines Corporation | Method of search content enhancement |
NL1024926C2 (nl) * | 2003-12-02 | 2005-06-06 | Townsend Engineering B V | Inrichting en werkwijze voor het met vloeistof bewerken van voedingsmiddelen. |
GB2410578B (en) * | 2004-02-02 | 2008-04-16 | Surfkitchen Inc | Routing system |
US8108429B2 (en) | 2004-05-07 | 2012-01-31 | Quest Software, Inc. | System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services |
US7565661B2 (en) | 2004-05-10 | 2009-07-21 | Siew Yong Sim-Tang | Method and system for real-time event journaling to provide enterprise data services |
US7680834B1 (en) | 2004-06-08 | 2010-03-16 | Bakbone Software, Inc. | Method and system for no downtime resychronization for real-time, continuous data protection |
US7594236B2 (en) * | 2004-06-28 | 2009-09-22 | Intel Corporation | Thread to thread communication |
US7979404B2 (en) | 2004-09-17 | 2011-07-12 | Quest Software, Inc. | Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data |
US7904913B2 (en) | 2004-11-02 | 2011-03-08 | Bakbone Software, Inc. | Management interface for a system that provides automated, real-time, continuous data protection |
US8180759B2 (en) | 2004-11-22 | 2012-05-15 | International Business Machines Corporation | Spell checking URLs in a resource |
US20060146812A1 (en) * | 2004-12-30 | 2006-07-06 | Lexmark International, Inc. | Methods and systems for routing data using a destination server |
US7747894B2 (en) * | 2005-06-06 | 2010-06-29 | Microsoft Corporation | Transport-neutral in-order delivery in a distributed system |
JP2006349761A (ja) * | 2005-06-13 | 2006-12-28 | Toshiba Corp | 電子写真装置 |
US8131746B2 (en) * | 2005-06-23 | 2012-03-06 | International Business Machines Corporation | Dynamic language checking |
US20070014307A1 (en) * | 2005-07-14 | 2007-01-18 | Yahoo! Inc. | Content router forwarding |
US7623515B2 (en) | 2005-07-14 | 2009-11-24 | Yahoo! Inc. | Content router notification |
US7849199B2 (en) | 2005-07-14 | 2010-12-07 | Yahoo ! Inc. | Content router |
US7631045B2 (en) | 2005-07-14 | 2009-12-08 | Yahoo! Inc. | Content router asynchronous exchange |
US7788521B1 (en) | 2005-07-20 | 2010-08-31 | Bakbone Software, Inc. | Method and system for virtual on-demand recovery for real-time, continuous data protection |
US7689602B1 (en) | 2005-07-20 | 2010-03-30 | Bakbone Software, Inc. | Method of creating hierarchical indices for a distributed object system |
US8065680B2 (en) | 2005-11-15 | 2011-11-22 | Yahoo! Inc. | Data gateway for jobs management based on a persistent job table and a server table |
US7606752B2 (en) | 2006-09-07 | 2009-10-20 | Yodlee Inc. | Host exchange in bill paying services |
US20080172671A1 (en) * | 2007-01-11 | 2008-07-17 | International Business Machines Corporation | Method and system for efficient management of resource utilization data in on-demand computing |
US8131723B2 (en) | 2007-03-30 | 2012-03-06 | Quest Software, Inc. | Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity |
US8364648B1 (en) | 2007-04-09 | 2013-01-29 | Quest Software, Inc. | Recovering a database to any point-in-time in the past with guaranteed data consistency |
US9172595B2 (en) * | 2008-01-07 | 2015-10-27 | Masergy Communications, Inc. | Systems and methods of packet object database management |
US8261334B2 (en) | 2008-04-25 | 2012-09-04 | Yodlee Inc. | System for performing web authentication of a user by proxy |
US8555359B2 (en) | 2009-02-26 | 2013-10-08 | Yodlee, Inc. | System and methods for automatically accessing a web site on behalf of a client |
US9081616B2 (en) * | 2009-05-29 | 2015-07-14 | Lexmark International Technology, SA | System and method for adjusting a number of processing modules based on processing load |
US20100306005A1 (en) * | 2009-05-29 | 2010-12-02 | Perceptive Software, Inc. | Workflow Management System and Method |
US10318586B1 (en) * | 2014-08-19 | 2019-06-11 | Google Llc | Systems and methods for editing and replaying natural language queries |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4128882A (en) * | 1976-08-19 | 1978-12-05 | Massachusetts Institute Of Technology | Packet memory system with hierarchical structure |
US4130885A (en) * | 1976-08-19 | 1978-12-19 | Massachusetts Institute Of Technology | Packet memory system for processing many independent memory transactions concurrently |
WO1990001192A1 (en) * | 1988-07-22 | 1990-02-08 | United States Department Of Energy | Data flow machine for data driven computing |
US4931941A (en) * | 1988-07-25 | 1990-06-05 | Bell Communications Research, Inc. | Adaptive routing of network traffic |
US5170480A (en) * | 1989-09-25 | 1992-12-08 | International Business Machines Corporation | Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time |
US5689719A (en) * | 1991-06-28 | 1997-11-18 | Sanyo Electric O., Ltd. | Parallel computer system including processing elements |
US5222238A (en) * | 1991-09-05 | 1993-06-22 | International Business Machines Corp. | System and method for shared latch serialization enhancement |
EP0593062A3 (en) * | 1992-10-16 | 1995-08-30 | Siemens Ind Automation Inc | Redundant networked database system |
US5404508A (en) * | 1992-12-03 | 1995-04-04 | Unisys Corporation | Data base backup and recovery system and method |
GB2273183A (en) * | 1992-12-04 | 1994-06-08 | Ibm | Replicated distributed databases. |
US5455946A (en) * | 1993-05-21 | 1995-10-03 | International Business Machines Corporation | Method and means for archiving modifiable pages in a log based transaction management system |
CA2175187A1 (en) * | 1993-10-28 | 1995-05-04 | William K. Thomson | Database search summary with user determined characteristics |
KR960015601B1 (ko) * | 1994-02-08 | 1996-11-18 | 조백제 | 버퍼를 갖는 링 통신망 노드 장치 및 그 제어 방법 |
US5561795A (en) * | 1994-05-13 | 1996-10-01 | Unisys Corporation | Method and apparatus for audit trail logging and data base recovery |
US5692173A (en) * | 1994-12-13 | 1997-11-25 | Microsoft Corporation | Method and system for combining prefix and first character searching of a list |
US5740433A (en) * | 1995-01-24 | 1998-04-14 | Tandem Computers, Inc. | Remote duplicate database facility with improved throughput and fault tolerance |
US5721819A (en) * | 1995-05-05 | 1998-02-24 | Silicon Graphics Corporation | Programmable, distributed network routing |
US5721908A (en) * | 1995-06-07 | 1998-02-24 | International Business Machines Corporation | Computer network for WWW server data access over internet |
US5737334A (en) * | 1995-07-12 | 1998-04-07 | Bay Networks, Inc. | Pipeline architecture for an ATM switch backplane bus |
WO1997010554A1 (en) * | 1995-09-15 | 1997-03-20 | Infonautics Corporation | Architecture for processing search queries, retrieving documents identified thereby, and method for using same |
US5805593A (en) * | 1995-09-26 | 1998-09-08 | At&T Corp | Routing method for setting up a service between an origination node and a destination node in a connection-communications network |
WO1997019415A2 (en) * | 1995-11-07 | 1997-05-29 | Cadis, Inc. | Search engine for remote object oriented database management system |
US5734649A (en) * | 1996-05-31 | 1998-03-31 | Bbn Corporation | Data packet router |
US5862138A (en) * | 1996-07-15 | 1999-01-19 | Northern Telecom Limited | Adaptive routing in a multiple network communication system |
-
1997
- 1997-05-30 US US08/866,228 patent/US5937168A/en not_active Expired - Lifetime
-
1998
- 1998-05-14 IL IL13318298A patent/IL133182A0/xx not_active IP Right Cessation
- 1998-05-14 JP JP50071999A patent/JP4316681B2/ja not_active Expired - Lifetime
- 1998-05-14 AU AU74866/98A patent/AU745078B2/en not_active Ceased
- 1998-05-14 BR BR9809884-5A patent/BR9809884A/pt not_active IP Right Cessation
- 1998-05-14 CA CA002290597A patent/CA2290597C/en not_active Expired - Fee Related
- 1998-05-14 DE DE69841099T patent/DE69841099D1/de not_active Expired - Lifetime
- 1998-05-14 WO PCT/US1998/009833 patent/WO1998054661A1/en active IP Right Grant
- 1998-05-14 EP EP98922280A patent/EP0985185B1/en not_active Expired - Lifetime
- 1998-05-14 AT AT98922280T patent/ATE441154T1/de not_active IP Right Cessation
- 1998-12-09 US US09/208,198 patent/US6005860A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5937168A (en) | 1999-08-10 |
AU7486698A (en) | 1998-12-30 |
IL133182A0 (en) | 2001-03-19 |
ATE441154T1 (de) | 2009-09-15 |
WO1998054661A1 (en) | 1998-12-03 |
CA2290597A1 (en) | 1998-12-03 |
DE69841099D1 (de) | 2009-10-08 |
EP0985185A1 (en) | 2000-03-15 |
US6005860A (en) | 1999-12-21 |
CA2290597C (en) | 2006-10-17 |
JP2002501645A (ja) | 2002-01-15 |
BR9809884A (pt) | 2001-09-11 |
EP0985185B1 (en) | 2009-08-26 |
AU745078B2 (en) | 2002-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4316681B2 (ja) | 情報検索システムの適応ルーティングアーキテクチャ内の情報をルートするシステムおよび方法 | |
US7925696B2 (en) | Transparent request routing for a partitioned application service | |
US6351761B1 (en) | Information stream management push-pull based server for gathering and distributing articles and messages specified by the user | |
JP2677744B2 (ja) | 分散メモリ式デジタル計算システム | |
US8156499B2 (en) | Methods, systems and articles of manufacture for scheduling execution of programs on computers having different operating systems | |
US6078955A (en) | Method for controlling a computer system including a plurality of computers and a network processed as a user resource | |
US20080082620A1 (en) | Method and Apparatus for Determining Availability of a User of an Instant Messaging Application | |
US20010039562A1 (en) | Agent for performing process using service list, message distribution method using service list, and storage medium storing program for realizing agent | |
WO2005098595A2 (en) | Methods and systems for interfacing applications with a search engine | |
US20050034137A1 (en) | Extensible architecture for versioning APIs | |
JPH10187639A (ja) | 高可用性コンピュータ・サーバ・システム | |
AU2005231112A1 (en) | Methods and systems for structuring event data in a database for location and retrieval | |
US20080183666A1 (en) | Materialized query table journaling in a computer database system | |
JP2004192047A (ja) | メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム | |
US20050027698A1 (en) | System and method for monitoring database queries | |
US20030225918A1 (en) | Method and system for off-loading user queries to a task manager | |
US7499958B1 (en) | Systems and methods of replicating all or part of a data store | |
JP3598522B2 (ja) | 分散型データベース管理装置 | |
JPH09134364A (ja) | 情報検索システム | |
US7406461B1 (en) | System and method for processing a request to perform an activity associated with a precompiled query | |
US7778997B1 (en) | System and method for managing throughput in the processing of query requests in a database system | |
JPH10308767A (ja) | メール送信システム、メール送信方法及び記録媒体 | |
CN115225730B (zh) | 一种支持多任务的高并发离线数据包分析方法 | |
MXPA99010972A (en) | A system and methods for routing information within an adaptive routing architecture of an information retrieval system | |
US7725902B2 (en) | Finer grained point-to-point event propagation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080930 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20081126 |
|
A72 | Notification of change in name of applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A721 Effective date: 20081126 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20081224 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090302 |
|
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: 20090421 |
|
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: 20090521 |
|
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: 20120529 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120529 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130529 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130529 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |