本発明の前述の一般的な説明及び以下の詳細な説明は例示的であり、本発明を限定するものでないことがわかる。
本発明のより完全な理解及び多くのその付随する利点は、添付図面と共に考慮されたときに、以下の詳細な説明を参照することでより良くわかるため、容易に把握できる。しかし、添付図面は、明細書により包含される本発明の範囲を決して限定しない。明細書及び図面により包含される本発明の範囲は、特許請求の範囲の用語により定められる。
本発明の様々な実施例について、図面を参照して以下に説明する。図面は縮尺通りに示されておらず、同様の構造又は機能の要素は、図面を通じて同じ参照符号により表される点に留意すべきである。また、図面は本発明の特定の実施例の説明を容易にすることを単に意図している点にも留意すべきである。実施例は、本発明の網羅的な説明又は本発明の範囲の限定を意図するものではない。更に、本発明の特定の実施例と共に記載される態様は、その実施例に必ずしも限定されるものではなく、本発明の他の実施例で実施可能である。
図面を参照すると、図1は、遠隔装置101(a...n)からアプリケーションサービス(110-115)を介してバックエンドのデータストア及びデータソース(116-120)を検索し、その結果を遠隔装置101(a...n)に配信するシステム100のブロック図である。検索の目的は、遠隔装置で新しいデータ要素を生成することである。これらのデータ要素は、米国特許出願第09/921,228号に記載のように、ユーザのオフィスコンピュータと同期してもよい。この米国特許出願第09/921,228号の全てが、ここに示されているように援用する。示されている遠隔装置101(a...n)の数は、限定を意図しない。遠隔装置は、端末のユーザ、移動装置、PDA又はスマートフォンに限定されず、これらを含む如何なる数の装置でもよい。遠隔装置101(a...n)は、無線データプロバイダ102のような無線プロバイダを介して通信する無線装置でもよく、遠隔装置101(a...n)は、ハード接続を通じてイントラネット又はインターネットに接続されてもよい。遠隔装置101(a...n)は、イントラネット又はインターネット103を通じて検索集中制御装置(search concentrator)104(検索集中制御装置は検索サーバと呼ばれてもよく、米国特許出願第09/921,228号に記載のグローバルサーバの態様である)と通信する。遠隔装置101(a...n)と検索集中制御装置104との間の通信は、一様な検索プロトコル(uniform search protocol)の使用を通じて実行される。このプロトコルにより、遠隔装置101(a...n)は、利用可能なアプリケーションサービス(110-115)を特定し、特定のアプリケーションサービス(110-115)により実際に利用されているAPI又はプロトコルについて何も認識せずに、そのアプリケーションの一部又は全部の検索を実際に実行することが可能になる。利用可能なアプリケーションサービスは、記憶装置116を備えたデータベース111と、バックエンドエンジン117を備えた検索エンジン112と、可能なバックエンドリソース118を備えた複合アプリケーションサービス113と、プログラムAPI114及びバックエンド119を備えたウェブサイトと、インターネット又は他のソース120からデータを収集する他の情報ソース115とを含んでもよい。
動作中に、遠隔装置101(a...n)は、どのアプリケーションサービス(110-115)が利用可能であるかを問い合わせ、或いは任意選択で利用可能なアプリケーションサービスのリストを維持管理する。検索集中制御装置104は、利用可能なサービスのリスト及びキー又は結果として使用できるデータ形式で、遠隔装置101(a...n)に応答する。各アプリケーションサービス(110-115)は、クエリで特定のデータ形式(テキスト、日付、時刻、株式銘柄、部品番号、コンタクト記録、又は前に返信されたオブジェクトの識別子等)を受け付けることができる。同様に、各アプリケーションサービス(110-115)は、特定のデータ形式を含む結果を返信する。遠隔装置101(a...n)のアプリケーションは、通常では1種類の結果を使用することができる。例えば、アプリケーションが地理上の地図を要求している場合、クエリは、地図であるオブジェクトを返信するサービスのみを指定すべきである。遠隔装置101(a...n)は、検索クエリと、問い合わせられるべきサービスのリストとを送信する。
検索集中制御装置104は、検索クエリをアプリケーションサービス(110-115)に送信し、必要に応じてクエリを各アプリケーションサービス(110-115)のネイティブのインタフェースフォーマットに変換する。これにより、アプリケーションサービスは要求を理解することができる。検索集中制御装置は、アプリケーションサービス(110-115)から結果を受信し、検索結果の要約を生成する。検索集中制御装置104は、遠隔装置101(a...n)の特徴を特定することができ、特定の遠隔装置101(a...n)に適した検索結果の要約をフォーマット化する。検索結果の要約は、遠隔装置101(a...n)の機能に従って一斉に又は部分的に送信されてもよい。検索集中制御装置104は、検索結果要約情報をインデックス化することができ、これにより、遠隔装置101(a...n)が次に検索結果の要約で返信されたいずれかの項目の全部又は一部を要求することを可能にしてもよい。選択された項目は、元の形式で取得されてもよく、無線102又は有線リンクでの送信及び遠隔装置101(a...n)での表示に適してコード変換された形式で取得されてもよい。
更に、遠隔装置101(a...n)は、サブスクリプション(subscription)(場合によってはスタンディング検索(standing search)として知られる)としていずれかの検索要求を指定してもよい。サブスクリプションは、後に特定の検索結果の更新版を返信するという検索集中制御装置104による保証である。検索集中制御装置104は、サブスクリプションの記述を保持することができ、再びアプリケーションサービスから項目を定期的に要求することができ、或いは、データ項目が変更したときに検索集中制御装置104に通知するようにアプリケーションサービスを構成することができる。検索集中制御装置は、元の結果で行ったものと同じプロトコルを使用して、新しい結果を遠隔装置101(a...n)に送信する。代替として、遠隔装置101(a...n)は、全体の検索が自動的に後の時点で動作し、結果が返信されることを指定することができる。
図2は、遠隔装置201(a...n)からファイヤウォール229の背後のアプリケーションサービス233-235を検索し、結果を遠隔装置201(a...n)に配信する代替のシステム200のブロック図である。代替のシステム200は、スタンドアローン型システムでもよく、システム100のサブシステムでもよい。代替のシステム200は、ファイヤウォール229の背後の組織230内にあるアプリケーションサービス233-235を有する。組織のファイヤウォールは、接続が外部から開始されることを許容しないため、米国特許出願第09/921,228号に十分に記載するように、ファイヤウォール内のサーバは外部のサーバとのセッションを開始することができる。中継サーバ231は、遠隔装置201(a...n)から要求を受信し、検索集中制御装置204に送信するファイヤウォール229の外部の信頼のある機械である。これは、要求を処理して、アプリケーションサービス233-235に送信する。検索集中制御装置204は、VES(VistoTM Enterprise Server)のようなサーバで動作する処理でもよく、中継サーバ231は、NOC(VistoTM Network Operations Center)の一部でもよい。アプリケーションサービス233-235は、企業グローバルアドレスリスト(GAL:global address list)233、顧客関係管理システム(CRM:customer relationship management system)234、記憶装置236を備えた企業データベース235、又は前述に記載のいずれかの他のサービスを含んでもよい。このリストは、網羅的であることを意図せず、アプリケーションサービスは、当業者に既知の如何なる種類でもよい。検索集中制御装置204は、クエリを中継し、図1と共に説明した方法で結果を返信する。検索集中制御装置204が企業ファイヤウォール229の背後に配置されると、そのファイヤウォールは、内部のアプリケーションサービス233-235に到達することを許容するためにオープンにされなければならない。信頼のある中継231の使用は、双方のエンドが信頼のあること、トラヒックが暗号化可能であること、ファイヤウォールを通じて許容される要求の種類の数が低いままに保持可能であることを意味する。
図3は、システム300のソフトウェア構成要素のブロック図である。システム300では、ユーザ350は、ユーザインタフェース351を介して遠隔装置301と通信する。遠隔装置301で実行するアプリケーションプログラム352は、遠隔装置の装置検索プロトコルマネージャ353と通信し、検索クエリ350を一様なプロトコルのクエリに変換する。検索クエリは、無線又は有線接続でもよい通信チャネル303で送信される。通信チャネル303の一方のエンドの通信モジュール354、561は、クエリを検索集中制御装置304に転送する。アプリケーションプログラム352は、ユーザがクエリをタイプ入力又は構築することを許容する簡単なユーザインタフェースでもよく、主なタスクの副作用としてクエリを発行する完全に異なるプログラム(カレンダー等)でもよい。
検索集中制御装置362の検索プロトコルマネージャは、検索クエリ及び検索結果をデコード及びエンコードする。検索マネージャ363は、アプリケーションサービス(311、313、321、366-368)及びこれらの可用性を追跡する。これは、全ての検索結果を格納し、遠隔装置に返信するためにそれぞれフォーマットする。アプリケーションサービス366、367及び368が一様なプロトコルを理解すると、検索クエリは、通信モジュール365によりアプリケーションサービス366、367、368に転送され得る。変換311、313及び321を必要とするアプリケーションサービスは、プロトコル変換モジュール364により処理される。或る場合に、この変換は、米国特許出願第09/921,228号に記載のグローバルサーバで行われるものと同一でもよい。一実施例では、検索集中制御装置304は、米国特許出願第09/921,228号に記載のグローバルサーバの一部であり、グローバルサーバのデータ同期態様とモジュール(通信361、365等)を共有する。
フローチャートのいずれかの処理の説明又はブロックは、処理の特定の論理機能又はステップを実施する1つ以上の実行可能命令を含むモジュール、セグメント、コードの一部を表すものとして理解されるべきであり、代替の実装も本発明の例示的な実施例の範囲内に含まれる。当業者にわかるように、機能は、含まれる機能に応じて、実質的に同時又は逆の順序を含み、図示又は記載の順序でなく実行されてもよい。
図4は、検索集中制御装置304により、異なるアプリケーションサービス311、313、321、366-368を検索するために使用される方法を示すフローチャートである。これは、遠隔装置301と検索集中制御装置304との間のインタラクションを記載している。検索集中制御装置304で生じるイベント又は動作は、図4の左側に示されており、遠隔装置301で生じるイベント又は動作は右側に示されている。401において、遠隔装置301のユーザ又はアプリケーションは、前述のような一様なプロトコルであるクエリを形成する。一様なプロトコルでは、クエリはテキストに限定されない。クエリは、クエリが要求している結果のデータ形式のリストを含み得る。複合テキスト表現がクエリで指定されてもよく、結果は、有効な結果として含まれるための表現を満たさなければならない。テキスト表現は、算術比較と、テキスト照合検査(“Doc”で始まるもの等)と、ワイルドカードと、“and”及び“or”の論理的組み合わせとを含んでもよい。一様な検索プロトコルにより、要求側アプリケーションにより認識又は解釈される必要のない様々なインタフェース及びAPIで、特定のデータ形式を要求することと、複合テキストに渡す結果を要求することと、大量のアプリケーションサービスで検索することとの組み合わせが可能になる。遠隔装置301のアプリケーションは、検索402に対してデータソースを指定することができる(例えば、企業のグローバルアドレスリスト)。遠隔装置301のアプリケーションはまた、特定のデータ形式(天気予報等)を返信するソース402のリストを要求することができる。或いは、アプリケーションは全てのソース402を要求することができる。検索ソースの要求が構成されると、検索要求は、検索集中制御装置304に送信される。検索集中制御装置304は、要求されたソースのうちどれが要求されたデータを返信することができるかを決定し403、情報を遠隔装置301に送信する。
遠隔装置301は、検索するデータソースの選択を含む完全なクエリ404を送信する。検索集中制御装置304は、検索要求を様々なアプリケーションサービスに送信し405、各アプリケーションサービス311、313、321、366-368により理解できるフォーマットに要求を変換する(図5は変換方法を示している)。検索集中制御装置304は、様々なフォーマット(例えば、SQLクエリ、プログラムのグローバル検索API、Microsoft ExchangeサーバへのwebDav、SalesForce.comのインタフェース)に変換可能である。
検索集中制御装置は、検索の進捗度の推定と共に、受信した結果を報告してもよい406。検索集中制御装置は、利用可能になったときに更なる結果及び進捗の推定を構成して送信する407。各データソースは多数の結果を提供してもよく、これらの結果は、検索集中制御装置304による現在のクエリのマスターリストにマージされる。リストは、各結果のテキスト記述を有し、任意選択で複合データオブジェクト(例えば、地図、コンタクト記録又は自動車部品の3次元画像)へのハンドル(handle)を有する。
遠隔装置301は結果を受信し408、遠隔装置301でクエリを要求したアプリケーションプログラム352に結果を送信する。アプリケーションプログラム352は、ユーザインタフェース351への単なる通過でもよい。アプリケーションプログラム352は、要約された検索結果のいずれかで更なる動作を行ってもよい。ステップ406、407及び408は、部分的に非同期でもよい。アプリケーションプログラム352は、ユーザにより指示されたときに、選択肢410を有する。1つの選択肢は、検索結果で特定された完全なドキュメント又はファイルを要求することである411。遠隔装置301は、要求を検索集中制御装置304に送信し、検索集中制御装置304はドキュメントをフォーマットする421。完全なドキュメントがテキスト又は小さいオブジェクトである場合、統一の検索プロトコルでメッセージの内部で配信されてもよい421。これは帯域内での配信と呼ばれる。ドキュメントが大きい場合又は複合データオブジェクトである場合、FTP又はHTTPのような他のプロトコルを使用して遠隔装置301に送信されてもよい424。これは帯域外配信と呼ばれる。データオブジェクトが到達すると、遠隔装置301の適切なアプリケーションプログラムに提示される。このプログラムにより、ユーザはオブジェクトを見て操作することが可能になる。例えば、地図オブジェクトはナビゲーションプログラムにより表示されてもよく、ユーザは地図をスクロールして拡大縮小し、関心のある地点についての詳細を有するポップアップを見ることが可能になる。3次元オブジェクトは、ユーザが回転させるアプリケーションに表示される。コンタクトデータベースの選択は様々な方法で格納及び表示され得る。
代替として、ユーザ又はアプリケーションは、検索結果をサブスクリプションに変えてもよい412。ユーザは、同じ検索の結果を定期的に再び受信することを要求することができる。例えば、検索が企業の在庫の特定の部分の量についてもののである場合、ユーザは、在庫の現在数量が毎朝7:00に遠隔装置301に報告されることを要求することができる。サブスクリプションは、結果が様々な要因に基づいて返信されるように指定されてもよい(例えば、結果の値に変化が存在する場合又は値が特定の指定値に変化した場合に、結果が返信され得る)。他の例では、クエリは、サンフランシスコの天候についてでもよい。サブスクリプションは、天気予報で“雨”が現れる毎に更新を要求してもよい。或いは、ユーザは、夜の天気が特定の位置で氷点下になるという予測のサブスクリプションを行ってもよい。サブスクリプションはまた、数字が変化する毎のレポートについてでもよい(売上げ予測の特定の予測等)。サブスクリプションは継続する検索でもよい。新しい結果がアプリケーションサービスにより報告されると、新しい結果が遠隔装置に送信される。新しい結果はプッシュされてもよく、遠隔装置に未承諾で到達してもよい。この例は、特定の地域での交通事故を検索することである。サブスクリプションはまた、検索集中制御装置304で記憶されて要求に応じて返信され得る検索記述でもよい。これらの例は、形成され得るクエリの種類を網羅することを意図するものではない。サブスクリプションは、テキスト、ドキュメント又は如何なるデータ形式のオブジェクトである結果について形成されてもよい。ユーザ350(又はアプリケーション352)が結果を有すると、それをサブスクリプションに変える処理は簡単になる点に留意すべきである。初期の検索の条件が既に指定されているため、どのくらいの頻度で同じ検索を実行するか、又は何の値が警告されるか若しくは値が変化したときに何が警告されるかの簡単な指示が、その検索をサブスクリプションに変えるのに十分である。検索集中制御装置304はサブスクリプションを記録し422、サブスクリプションを実施するために必要な警告を構成する。検索集中制御装置は、要求により要求されたときに定期的に元のクエリの全部又は一部を返信する。データの値が変化したときにデータソースが検索集中制御装置304に警告することができる場合、検索集中制御装置304は、その値が変化したときに通知される要求を生成してアプリケーションサービス(例えば313)に送信する。データの値がアプリケーションサービスで変化した場合、検索集中制御装置304に通知し、検索集中制御装置304は、結果をフォーマットしてそれを遠隔装置301に送信する425。
検索集中制御装置は、多数の様々なフォーマットと、検索及びサブスクリプションの方法とを統一する。遠隔装置301のソフトウェアは、一様な検索プロトコルを認識すればよいため、多くのデータソースの非常に変化する要件から隠蔽される。
一様な検索プロトコルは、新しいデータソースが検索集中制御装置304に登録されて、これによって検索可能になる方法を含む。新しいアプリケーションサービス311、313、321、366-368を有する人は、どのようなクエリを処理することができるか、及びどのような形式のデータオブジェクトを返信するかを検索集中制御装置304に知らせる接続モジュールを記述することができる。代替として、接続モジュールは、一様な検索プロトコルで検索集中制御装置304と通信し、データソースのネイティブなフォーマットでデータソース(116-120)と通信することができる。接続モジュールは、VistoTM Business Freedomシステムと互換性を有してもよい。一様な検索プロトコルの一般性のため、多くの様々な種類の情報ソース(企業の構成された年次報告書のライブラリ等)が検索集中制御装置304に登録され、データオブジェクト及び非テキストの情報の検索及びサブスクリプションを行う今までにない機能を遠隔装置301に提供することができる。
典型的には、遠隔装置は、同時に限られた量のテキストを受信する。ユーザが多くの結果を見る必要がある場合、要求は更なる検索結果について行われてもよい413。検索集中制御装置304は、検索の次のバッチ処理を構成し、遠隔装置301に送信する423。
検索が完了してアプリケーション352又はユーザが満たされると、アプリケーションは動作を終了する410。アプリケーション352はまた、元のクエリを発行した後に404、いつでも検索を中断することを検索集中制御装置304に要求することができる。
VistoTM Corporations Visto Mobile Terminal Client 5.5は、遠隔装置で実施されるステップを実装するソフトウェアの例である。
図5は、図4の変換の詳細を示すフローチャートである。変換405は、クエリで指定された各アプリケーションサービス(すなわち311)を分析することにより始まる550。検索集中制御装置304は、各アプリケーションサービスの特性を記録したデータベースを有し、或いはデータベースにアクセスする。検索集中制御装置304は、アプリケーションサービスが一様な検索プロトコルを理解するか否かを決定する。アプリケーションサービスが一様なプロトコルを理解しない場合、検索集中制御装置304は、クエリをデータソースのAPIに変換する552。これは、接続モジュールで行われてもよい。接続モジュールは、他の機械に存在してもよく、第三者により供給されてもよく、プロトコル変換器364に存在してもよい。クエリはアプリケーションサービスに送信される。
クエリで指定されたアプリケーションサービス(311、313、321、366-368のいくつか)毎に同じ処理が実行されるため、検索集中制御装置304は、アプリケーションサービスから応答を待機する間にこの処理を繰り返してもよい。アプリケーションサービスは、結果を返信し555、検索集中制御装置304は、結果を一様な検索フォーマットに変換し556、任意選択でいずれかのオブジェクトを異なるフォーマットに変換する。ドキュメント又はオブジェクトは、遠隔装置301にとって普通ではないフォーマット又は未知のフォーマットで到達してもよい。検索集中制御装置304は、このようなドキュメント又はオブジェクトで行う標準的な変換のリストを有してもよい。結果は、適切な長さのテキストの要約の形式に編集され、遠隔装置301により利用されるソフトウェア及び要求側のアプリケーションに対してカスタマイズされる557。各データソースからのドキュメントについてのテキストの要約及びオブジェクトのハンドルは、検索結果のリストにマージされ558、変換が完了する。
明らかに、前述の教示を鑑みて本発明の変更及び変形が可能である。従って、特許請求の範囲内で本発明は、ここに特に記載された以外の方法で実行されてもよいことがわかる。例えば、ソフトウェア及びハードウェア構成要素の双方がインタラクティブに動作するについて記載したが、ここに記載のシステムは、完全にソフトウェアで実行されてもよいことがわかる。ソフトウェアは、磁気若しくは光ディスク、又は無線周波数若しくは音声周波数搬送波のような担体に具現されてもよい。
前述のように、特定の実施例の前述の説明は、例示及び説明の目的で提示されている。これらは網羅的であることを意図せず、開示された正確な形式に本発明を限定することを意図しない。明らかに、前述の教示を鑑みて多数の変更及び変形が可能である。実施例は、本発明の原理とその実用的な用途とを説明するために選択及び記載されており、これによって、当業者は、本発明と、検討された特定の用途に適したその様々な実施例とを最も良く利用することが可能になる。本発明の範囲は、特許請求の範囲及びその均等により定められることを意図する。