検索ベースのアプリケーション開発フレームワーク
トランザクションのアプリケーションを検索するための意味論的インターフェイスを与える検索フレームワークを作成するための方法が開示される。この発明の1つの局面によると、少なくとも1つのトランザクションのアプリケーションを検索可能にするための方法は、トランザクションのアプリケーションに関連付けられる正規オブジェクトを作成するステップと、トランザクションアプリケーションに関連付けられるデータに索引を付けるステップとを含む。この方法はまた、正規オブジェクトに関連付けられる情報を用いて索引格納部を作成するステップも含む。索引格納部は、索引を付けられたデータに関連付けられる。最後に、意味論的エンジンが索引格納部にインターフェイス接続される。
【発明の詳細な説明】
【技術分野】
【0001】
発明の背景
発明の分野
この発明は一般に、アプリケーションを検索可能にすることに関する。特に、この発明は、ユーザがエンタープライズアプリケーションを検索でき、検索の結果を用いてアクションを実行できるようにするフレームワークに関する。
【背景技術】
【0002】
関連技術の説明
ネットワークの使用が拡大するにつれ、エンタープライズアプリケーションの使用がいっそう普及しつつある。エンタープライズアプリケーションは一般に、ネットワーク内の多数のユーザにサービスを同時に提供する能力を有するサーバでホストされているソフトウェアアプリケーションである。しばしば、エンタープライズアプリケーションはビジネス関連機能を実行するのに好適である。ビジネス関連機能は、顧客情報の追跡、会計、および製造スケジューリングを含み得るが、これらに限定されない。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しばしば、エンタープライズアプリケーションに保持され得るかまたはそうでなければ関連付けられる情報などの情報を検索することが望まれる。一例として、エンタープライズアプリケーションはその内部に、オーストラリアのXYZ銀行などの特定の銀行の顧客担当の名前に関する情報を含み得る。「オーストラリアのXYZ銀行の顧客担当は誰?」などの質問またはクエリに答えるのに、答が得られる可能性がある方法は一般に3つある。図1は、エンタープライズアプリケーションに関連付けられる情報に対して作られ得るクエリの図表示である。クライアント118または要求側が、エンタープライズアプリケーション110に含まれ得る情報114に関するクエリに対する答を望む場合、クライアント118は自然言語クエリ130を作成し得る。自然言語クエリ130は、人間などの、情報114へのアクセスを有する可能性のあるエンティティ122に対して作られ得る。エンティティ122はエンタープライズアプリケーション110内の情報114へのアクセスを有し得るか、またはエンティティ122は他の手段によって情報114へのアクセスを有し得る。自然言語クエリ130の作成は比較的易しいことがあるが、エンティティ122が情報114へのアクセスを有するとは限らない。したがって、自然言語クエリ130に対する答がエンティティ122から容易に得られるとは限らない。クライアント118は、1つより多いエンティティにクエリを出してからでないと答を得られないかもしれない。したがって、人間などのアクセスを有するエンティティ122を介してクエリを出すことは、しばしば非効率的で費用がかかる。
【0004】
エンタープライズアプリケーション110が情報114などのデータを保持しているため、クライアント118は、エンタープライズアプリケーション110内の情報114にアクセスするSQLまたは形式ベースのクエリ134を作成し得る。一般に、エンタープライズアプリケーション110内の情報114には、エンタープライズアプリケーション110の開発者が情報114をクライアント118または他のユーザに入手可能にする場合にしかアクセスできない。情報114はエンタープライズアプリケーション110内に低レベルで保持されているかもしれないため、入手可能な情報114にアクセスするためのSQLまたは形式ベースのクエリ134の作成は困難である。エンタープライズアプリケーション110の内部構造は複雑であり得、しばしば所有権を有し得る。多くの場合、クライアント118は、エンタープライズアプリケーション110に関する訓練コースを
受講してからでないとSQLまたは形式ベースのクエリ134をうまく作成できないことがある。SQLまたは形式ベースのクエリ134の作成は多大な開発努力を必要とし得る。したがって、情報114はSQLまたは形式ベースのクエリ134に基づいてうまく得られる可能性があるが、SQLまたは形式ベースのクエリ134の作成に関連付けられる工程は複雑で時間がかかり得る。
【0005】
情報114を突き止めるため、キーワードベースのクエリ138がクライアント118によって検索エンジン126に入力され得る。情報114がオーストラリアのXYZ銀行の顧客担当の名前である場合、キーワードベースのクエリ138は単語「会計」、「主任」、「XYZ」、および「オーストラリア」を含み得る。情報114がアクセス可能である場合、検索エンジン126の使用は比較的迅速で効率的であり得る。しかし、情報114が検索エンジン126には入手可能でないと判明した場合、すなわち、情報114が、検索エンジン126にアクセス可能な文書、ファイル、またはアプリケーションに含まれていない場合は、クライアント118はキーワードベースのクエリ138に対する満足のいく結果を得ることができないであろう。情報114はまた、トランザクションのテーブル、すなわち、閲覧用の記述フィールドを含むが検索用に索引を付けられていないテーブルに格納されている場合も、入手不可能であり得る。検索エンジン126は実質的に、クライアント118が読むことができる検索結果を提示することしかできない。換言すれば、キーワードベースのクエリ138に対する結果がクライアント118に提示されるとき、その結果は、クライアント118が読むことができるが一般に多大な開発努力なしではその結果に対して動作することができないよう提示される。
【0006】
自然言語クエリ130およびキーワードベースのクエリ138は、クライアント118が情報114を得ることができるようにする際に効果的であり得るが、自然言語クエリ130は非効率であり得、また自然言語クエリ130およびキーワードベースのクエリ138は、たとえば情報114がエンティティ122および検索エンジン126には入手不可能であるときなどに、クライアント118に情報114を与えるとは限らない。さらに、情報114は、情報114を用いるエンタープライズアプリケーション110から実質的に直接に得られない場合は正確ではないかもしれない。一般に、クライアント118は、エンタープライズアプリケーション110を介して正確な情報114へのアクセスをうまく得ることができる。そのような情報114は、少なくともエンタープライズアプリケーション110と同じくらい正確である。しかし、上述のように、SQLまたは形式ベースのクエリ134の形成は典型的に複雑である。
【0007】
したがって、必要とされているのは、エンタープライズアプリケーションに保持される情報を容易に検索可能にする方法および装置である。すなわち、望まれているのは、ユーザが正確な情報を求めて、構造化された態様でエンタープライズアプリケーションを検索できるようにするシステムである。
【課題を解決するための手段】
【0008】
発明の要約
この発明は、トランザクションのアプリケーションを検索するための意味論的インターフェイスを与える検索フレームワークに関する。この発明の1つの局面によると、少なくとも1つのトランザクションのアプリケーションを検索可能にするための方法は、トランザクションのアプリケーションに関連付けられる正規オブジェクトを作成するステップと、トランザクションアプリケーションに関連付けられるデータに索引を付けるステップとを含む。この方法はまた、正規オブジェクトに関連付けられる情報を用いて索引格納部を作成するステップも含む。索引格納部は、索引を付けられたデータに関連付けられる。最後に、意味論的エンジンが索引格納部にインターフェイス接続される。
【0009】
1つの実施例では、クエリが第1のフォーマットで意味論的エンジンに与えられる。そのような実施例では、意味論的エンジンは、クエリを第1のフォーマットから、検索エンジンに関連付けられる第2のフォーマットに翻訳し、その後、検索エンジンを用いて索引格納部がアクセスされる。
【0010】
アプリケーションを検索するために意味論的または他の情報を使用可能にする検索ベースのアプリケーションのための開発フレームワークにより、アプリケーションに関連付けられるデータを比較的効率的に得ることができる。そのような開発フレームワークは実質的にどのような検索エンジンも利用できるため、検索エンジンの性能を高めることができる。一般に、開発フレームワークは、アプリケーションに保持される情報に検索エンジンがアクセスできるようにするインターフェイスを含み、エンドユーザにこの情報を与え、エンドユーザはその後、この情報に対して直接にアクションを実行し得る。インターフェイスと、自然言語ベースの文字列から、アプリケーションを検索するために用いられ得る文字列にクエリを翻訳するための意味論的エンジンとを含むツールキットを与えることによって、開発者は、比較的少ない開発努力でアプリケーションを検索可能にする全体的なシステムを作成することができる。
【0011】
この発明の別の局面によると、少なくとも1つのアプリケーションを検索可能にするためのフレームワークは、インターフェイスと、プラグ接続可能な検索エンジンと、実行時間マネージャとを含む。インターフェイスは、クエリを第1のフォーマットから第2のフォーマットに翻訳し、アプリケーションに関する正規ビジネスオブジェクトに関連付けられる。検索エンジンはクエリに応答してアプリケーションを検索し、実行時間マネージャは、検索エンジンをアプリケーションにインターフェイス接続し、クエリの結果を表示させる。1つの実施例では、アプリケーションはエンタープライズアプリケーション、トランザクションのアプリケーション、またはトランザクションのエンタープライズアプリケーションである。
【0012】
別の実施例では、開発者が設計者を用いて、正規オブジェクト、それらのカテゴリ、およびオブジェクトについての意味論的定義を含むメタデータを作成し得る。インターフェイスは、ユーザインターフェイスレンダリング部、アクションコントローラ、および意味論的エンジンを含み得る。そのような実施例では、実行時間マネージャは検索エンジンと対話してクローリング、索引付け、および監視を実行し得る。
【0013】
この発明のさらに別の局面に従って、アプリケーションに関連付けられる情報を要求するクエリを処理するための方法は、アプリケーションに関連付けられる正規ビジネスオブジェクトを選択するステップと、クエリに関連付けられる情報を用いて検索を実行するステップとを含む。検索は、正規ビジネスオブジェクトに関連付けられる。検索を実行するステップは、アプリケーションに関連付けられる情報を含む索引格納部を利用するステップを含む。この方法はまた、索引格納部から検索の結果を得るステップも含む。1つの実施例では、結果は、アプリケーションへの直接アクセスを可能にするウェブリンクである。
【0014】
本発明のこれらおよび他の特徴および利点が、同一または同様の構造には同一の参照番号が付される添付の図面に関連して以下の説明を検討すると容易に入手可能で明らかになるであろう。
【発明を実施するための最良の形態】
【0015】
特定的な実施例の説明
以下の説明では、データベースアプリケーションなどのソフトウェアアプリケーションについてプラットフォーム上のサブシステムを試験する実施例を参照して本発明が説明さ
れる。しかし、本発明の実施例はいずれの特定のアーキテクチャ、環境、アプリケーション、または実現例にも限定されない。たとえば、実施例はネットワークデータベースアプリケーションを参照して説明されるが、本発明は有利にはどのようなソフトウェアアプリケーションにも適用され得る。したがって、以下の実施例の説明は例示のためであり、限定のためではない。
【0016】
エンタープライズアプリケーションに関連付けられる非構造化または非道徳的(demoralized)データの検索は、一般にエンドユーザには容易に入手可能ではない。いくつかの検索アプリケーションが入手可能であるが、それらの検索アプリケーションは一般に、エンドユーザの側で多大な開発努力を費やさないと、特定的なエンタープライズアプリケーションを検索できない。
【0017】
自然言語クエリを与えるエンドユーザがトランザクションのアプリケーションを検索できるよう、既存の検索エンジンを増強し、既存の検索エンジンを組込んだフレームワークを作成すれば、エンドユーザがエンタープライズアプリケーションを比較的効率的に検索できるであろう。1つの実施例では、特定のエンタープライズアプリケーションを既存の検索エンジンを組込んだフレームワークにインターフェイス接続するために必要なソフトウェアモジュールを開発するために用いられ得るツールキットが開発者に与えられ得る。このツールキットを用いて、エンタープライズアプリケーションまたはトランザクションのアプリケーションを検索するために用いられ得る検索ベースのアプリケーションを開発することができる。そのようなツールキットを用いることにより、高性能検索エンジンの機能性を高めて、開発者の側における多大な開発努力を実質的に必要とせずに、どのような数のエンタープライズまたはトランザクションのアプリケーションも検索できるようになる。
【0018】
検索エンジンとエンタープライズアプリケーションとの間に接合点を作成すれば、エンドユーザがそれに対して動作し得る情報を得ることができる。さらに、多くの異なる種類の情報の検索が実現され得る。一例として、トランザクションの記録、作業項目、プログラミングバグ、および他のビジネス関連要素の検索が正確に実行され得る。
【0019】
図2は、この発明の実施例に従った、検索エンジンとアプリケーションとの間のインターフェイスがアプリケーションを検索可能にするシステムのブロック図表示である。検索エンジン204は、実質的にどのような好適な検索エンジンであってもよく、インターフェイス208を通じてアプリケーション212を検索するために用いられ得る。アプリケーション212はトランザクションのアプリケーション、すなわちトランザクションを利用するアプリケーションなどのエンタープライズアプリケーションであり得るが、アプリケーション212は大きく異なり得ることを認識すべきである。1つの実施例では、検索エンジン204は、カリフォルニア州、レッドウッド・ショアーズ(Redwood Shores, California)のオラクル・コーポレイション(Oracle Corporation)から入手可能なApache
Lucene、またはOracle Text検索エンジンなどのSQL検索エンジン、オープンソースベースの検索エンジンであり得る。
【0020】
インターフェイス208は、検索エンジン204を介して作られるクエリが、そのクエリと有効に一致する結果を求めてアプリケーション212を検索できるようにするよう構成される。すなわち、インターフェイス208は、アプリケーション212に関連付けられる、たとえば含まれる情報を検索エンジン204が検索できるよう、検索エンジン204とアプリケーション212との間の接合として有効に作用する。一例として、アプリケーション212は、顧客情報が関連のデータベースに格納されるアプリケーションを含み得る。インターフェイス208は、検索エンジン204および「カリフォルニアのXYZ銀行のジョン・ドウ(John Doe)の口座の顧客担当は誰?」などのクエリを用いて顧客情
報を求めてそのアプリケーションを検索できるようにし得る。
【0021】
一般に、協働してアプリケーションを検索可能にする検索エンジンおよびインターフェイスを含む全体的なフレームワークは、クエリを受け、クエリに対する応答を与えるよう構成され得る。図3は、この発明の実施例に従った、クライアントが複数のアプリケーションを検索できるようにするフレームワークのブロック図表示である。フレームワーク310は一般に、クライアント302がフレームワーク310にクエリを入力するとアプリケーション312を検索可能にするために必要な機能を含む。アプリケーション312はトランザクションのアプリケーションであり得る一方で、フレームワーク310に入力されるクエリは、フレームワーク310に関連付けられる意味論的アプリケーション(図示せず)内に実現され得る。フレームワーク310はクエリを、たとえば自然言語からフレームワーク310に含まれる検索エンジン(図示せず)が理解するクエリに翻訳し、その後、翻訳されたクエリに基づいて検索アプリケーション312に一般に翻訳し得る。翻訳されたクエリからのいずれの結果も、フレームワーク310を用いてクライアント302に提示され得る。
【0022】
クエリの結果が提示されるとき、その結果は、クライアント302に関連付けられる計算システムの表示画面に表示され得る。1つの実施例では、表示画面は、クエリが入力および表示される検索領域、およびクエリに基づいて検索が実行された後に結果が表示される結果領域を含み得る。図4を参照して、クエリを入力するためのユーザインターフェイス、および表示結果に関連付けられるユーザインターフェイスを与える1つの表示窓が、この発明の実施例に従って説明される。表示窓400は、ウェブベースのアプリケーション用のブラウザウインドウであってもよく、クエリ領域402および結果領域406を含む。クエリ領域402は、たとえばユーザがキーボード入力を用いることによって検索文字列が入力され得るフィールド410を含む。フィールド410は、テキスト入力を受けるのに好適であると示されているが、他の方法を用いて投入されてもよいことを認識すべきである。他の方法は、プルダウンまたはポップアップメニューを用いて入力を与えることを含むが、これらに限定されない。
【0023】
検索文字列がフィールド410に入力されると、入力ボタン412を押すかクリックするかして検索を開始することができる。入力ボタン412を押すと一般に、図3のフレームワーク310などのフレームワークを有効に呼び出すプロセスが始まり、検索文字列に関連付けられる答を求めて少なくとも1つのアプリケーションを検索する。検索が完了すると、結果414a−cが結果領域406内に表示され得る。3つの結果414a−cが示されているが、クエリに対する結果414a−cの数は大きく異なり得ることを認識すべきである。
【0024】
結果414a−cは、検索されるいずれかのアプリケーションから生じ得る。示されるように、結果414aおよび結果414bはアプリケーション「A」に関連付けられる一方で、結果414cはアプリケーション「B」に関連付けられる。説明される実施例では、結果414a−cは、選択され得、選択されると自身が関連付けられるアプリケーションについての表示窓を開き得るリンクである。一例として、結果414aが選択された場合、アプリケーション「A」に関連付けられる表示窓が開き得、アプリケーション「A」内に見つけられるようなクエリの結果を表示する。
【0025】
結果414a−cは、それぞれ関連のアクションボタン416a−cを有し得る。しかし、すべての結果414a−cが関連のアクションボタン416a−cを一般に有するとは限らないことを認識すべきである。アクションボタン416a−cを選択することによって、対応する結果414a−cに関してアクションが実行され得る。1つの実施例では、アクションボタン416a−cを選択すると、ユーザは、表示窓400が関連付けられ
る意味論的アプリケーションからトランザクションのアプリケーションに再び導かれ得る。たとえば、フィールド410に入力される検索文字列が仕事内容に関する検索についてのものである場合は、結果414a−cは、その仕事内容と一致する求人を含み得る。そのような場合、アクションボタン416a−cは、選択されると、ユーザが関連のトランザクションのアプリケーションを用いてその求人に応募することになるボタンであってもよく、たとえば、アクションボタン416aをクリックすると、結果414aに関連付けられる求人にユーザが応募することになり得る。
【0026】
フィールド410は、異なる検索カテゴリに関連付けられる検索文字列を受けることができる。1つの実施例では、検索カテゴリは人物検索カテゴリ、作業リスト検索カテゴリ、および統合リポジトリ検索カテゴリを含み得る。人物検索カテゴリは、クライアントまたはユーザが、顧客または顧客担当情報が商業コミュニティモデルのデータベースに格納されるビジネスアプリケーション内の顧客または顧客担当などの人物を検索できるようにし得る。人物検索については、結果414a−cは顧客担当の名前を含み得る。作業リスト検索カテゴリは、クライアントまたはユーザが、ビジネス処理の結果として組織内で割当てられる個人的なアクション項目を検索できるようにし得る。作業リスト検索については、結果414a−cはユーザについての作業のリストまたはアクション項目を含み得る。統合リポジトリ検索カテゴリは、クライアントまたはユーザが、さまざまなサードパーティプログラムまたはアプリケーションを統合するために用いられ得るアプリケーションプログラミングインターフェイス(API)を突き止めることができるようにし得る。統合リポジトリ検索については、結果414a−cはサードパーティ統合者に入手可能なAPIのリストであり得る。
【0027】
図3のフレームワーク310のようなフレームワークを与えるため、実質的に標準的な検索エンジンが組込まれ得る。アプリケーションをフレームワークに統合するためのツールキットが、開発者が用いるために与えられ得る。ツールキット内には、カスタムモジュールを開発するために開発者が使用するためのAPIとともに、検索カテゴリを管理するためのユーザインターフェイスが与えられ得る。そのようなツールキットはまた、検索エンジンをフレームワークにインターフェイス接続可能にする実行時間マネージャも与え得る。開発者は一般に、このツールキットを用いて検索カテゴリを定義し得る。図5Aは、この発明の実施例に従った、検索ベースのアプリケーションアーキテクチャに関連付けられる構成要素のブロック図表示である。アーキテクチャ500は、全体的な検索ツールキットであると考えることができ、検索エンジン504を利用する。アーキテクチャ500は、カテゴリ検索を実行可能にするよう構成される。検索エンジン504はプラグ接続可能であり、APIを有する実質的にどのような検索エンジンであってもよい。一般に、検索エンジン504は、検索エンジン504がクローラー506、索引エンジン508、クエリエンジン510、およびスコアラー512などの構成要素を内部でインターフェイス接続可能にするという意味で、プラグ接続可能である。
【0028】
クローラー506は、当業者によって理解され得るように、ソースをクロールするよう構成される。クローラー506は、1つの実施例では、たとえば検索されるべきエンタープライズアプリケーションおよび/またはトランザクションのアプリケーションのような実質的にすべてのアプリケーション554をクロールする機能を与える。正規ビジネスオブジェクト定義についての検索可能文書の構成、および実行時間アプリケーションデータの構成は、クローラーを用いて発生する。Java(登録商標) Database Connectivity(JDBC)APIは、クローラー506が基づき得る標準的なSQLデータベースアクセスインターフェイスである。
【0029】
索引エンジン508は一般に、クローラー506によって構成された検索可能文書に索引を付け、索引格納部558をクエリエンジン510に露出するよう構成される。索引格
納部558は、索引が格納される場所である。索引格納部558に関連付けられるセキュリティ設定などの設定は、実行時間マネージャ516によって管理され得る。実行時間マネージャ516はまた、たとえばクローリングが計画され得、索引格納部558が設定され得るように、検索を実行時間で管理可能にするよう構成される。
【0030】
クエリエンジン510は、クエリビルダーであると考えることができ、予めクロールされた索引格納部558内で検索を実行するためにアーキテクチャ500内で用いられるソフトウェアモジュールである。クエリエンジン510は、メタデータマネージャ520を介してメタデータリポジトリ524から得られるメタデータを用いて、ユーザが入力したクエリを、検索エンジン504が理解するクエリから索引格納部558が理解するクエリに有効に変換する。メタデータリポジトリ524は実質的にすべてのメタデータを格納し、またオブジェクトカテゴリおよび意味論的定義を格納する。メタデータマネージャ520はメタデータを管理し、検索カテゴリを作成、修正、および削除するためのユーザインターフェイスを与える。1つの実施例では、ビジネスオブジェクトがメタデータリポジトリ524に格納され得る一方で、検索カテゴリがメタデータマネージャ520によって格納される。
【0031】
スコアラー512はレーティング機能を与える。検索エンジン504は一般にスコア付け機能を有するが、スコアラー512を用いて、検索エンジン504に含まれるスコア付け機能を増強または変更することができる。一般に、各スコアラー512は特定の検索カテゴリに関連付けられてもよく、特定の結果がクエリとどの程度一致するかに関する情報を与え得る。
【0032】
検索エンジン504と通信しているインターフェイス構成要素528は、意味論的エンジン530、ユーザインターフェイスレンダリング部532、およびアクションコントローラ534を含む。意味論的エンジン530は、ユーザクエリを、検索エンジン504が理解するクエリに翻訳するよう構成されるクエリビルダーである。すなわち、意味論的エンジン530は、メタデータリポジトリ524に格納されるメタデータに基づいてクエリを変換し得る。1つの実施例では、意味論的エンジン530は、自然言語ベースのクエリを検索エンジン特定クエリに翻訳する。一例として、「誰がジェーン・ドウ(Jane Doe)に報告するか?」というユーザクエリは、適切なフィールドに割当てられる意味論的情報に基づいて″mgrFirstname:Jane, mgrLastname:Doe″などの検索エンジン特定クエリに翻訳され得る。
【0033】
ユーザインターフェイスレンダリング部532は、クエリまたは検索の結果を表示可能にするよう構成される。すなわち、ユーザインターフェイスレンダリング部532は、所与の検索カテゴリのユーザインターフェイス表現を生成可能にし、ユーザに表現可能にする。1つのユーザインターフェイスレンダリング部532は、テーブルに結果を表示するよう構成され得る。一般に、ユーザインターフェイスレンダリング部532は、所与の種類の正規ビジネスオブジェクトに割当てられ得る。
【0034】
アクションコントローラ534は、結果ページに表示されるユーザインターフェイス事象を、1つの実施例ではサービスビーン542であり得るサービスインターフェイス内に定義されるビジネスアクションに翻訳するよう構成される。すなわち、アクションコントローラ534は、サービスビーン542を呼び出すことによって検索関連ビジネス論理を実行する事象マネージャである。サービスインターフェイス542は、ビジネス論理が有効に保持される構成要素である。サービスインターフェイス542は検索カテゴリに対して登録され得る。1つの実施例では、サービスインターフェイス542は3種類のサービス、すなわちリストサービス、エンティティサービス、およびアクションサービスを含む。そのようなサービスはツールキットであると考えることができる。リストサービスは、
検索カテゴリによって定義されるエンティティのリストに対して実行され得、一次キーのリストによって同定され得る。エンティティサービスは、ビジネスオブジェクトの特定のエンティティに対して実行され得る。たとえば、クエリの結果が、各々が一次キーによって同定される結果のリストとしてユーザに提示され得る。これらの結果に対して実行され得るビジネスアクションまたはアクションサービスは、結果を保存すること、結果が求人であれば特定の仕事に応募すること、および特定の属性に基づいて結果をソートすることを含み得るが、これらに限定されない。アクションサービスは、1つの実施例では、ユーザインターフェイスアクションにリンクされ得るサービスである。
【0035】
ユーザインターフェイステンプレート538は、サービスビーン542がアクションコントローラ534によって呼び出されることを可能にするスニペット、たとえばハイパーテキストマーク付言語(HTML)スニペットである。一例として、テンプレート538を用いて、ユーザインターフェイスレンダリング部532に関連付けられるコードを実質的に変化させることなくユーザインターフェイスをカスタマイズすることができる。図5Bに関して以下に説明されるように、ユーザインターフェイステンプレート538を利用して、検索結果またはアクション形式のためのダイナミックHTML(DHTML)ユーザインターフェイスを表現することができる。
【0036】
アーキテクチャ500はまた、アプリケーションセキュリティモジュール546および国際化モジュール550にも関連付けられ得る。アプリケーションセキュリティモジュール546は、たとえばサービスインターフェイスまたはサービスビーン542などのツールキットと対話して、アーキテクチャ500に関連付けられるセキュリティ要件を有効に実施する。アプリケーションセキュリティモジュール546は、検索カテゴリに基づいてセキュリティポリシーを定義し得、索引エンジン508およびクエリエンジン510を含むがこれらに限定されないアーキテクチャ500の構成要素によって用いられ得る。国際化モジュール550を用いて、検索を複数の言語で利用可能にすることができる。
【0037】
さまざまな外部構成要素がアーキテクチャ500にインターフェイス接続され得る。図5Bに示されるように、全体的なアーキテクチャ500は、実行時間マネージャ516を用いて検索を実行時間で管理するモニタまたはアドミニストレータ592を含み得る。設計者または開発者588は、メタデータリポジトリ524に格納される検索カテゴリを定義し得る。検索カテゴリは、検索エンジン504が検索を実行するために用い得るアーティファクトをカプセル化し、顧客およびタスクなどのカテゴリを含み得るが、これらに限定されない。DHTMLユーザインターフェイス580は、ユーザインターフェイスレンダリング部532へのユーザ入力を与える。カリフォルニア州、レッドウッド・ショアーズのオラクル・コーポレイションから入手可能なJDeveloperなどのツール584は、サービス指向型アプリケーションを構築するための統合開発環境を与える。すなわち、ツール584は、ユーザインターフェイステンプレート538およびサービスインターフェイス542を作成および修正可能にする。
【0038】
上述のように、エンドユーザがアプリケーションを検索するために自然言語検索文字列を入力できるようにすれば、検索ベースのアプリケーションフレームワークの活用性が増す。検索エンジンをエンタープライズアプリケーションと用いるために組込可能にする全体的なインターフェイスの一部として意味論的エンジンおよび意味論的アプリケーションを用いることにより、全体的なアーキテクチャに機能が与えられる。図6を参照して、検索ベースのアプリケーションとエンタープライズアプリケーションとの間のインターフェイスがこの発明の実施例に従って説明される。フレームワーク600は、1つの実施例ではトランザクションのアプリケーションであり得るエンタープライズアプリケーション634を含む。アプリケーション634は、アプリケーション634が用いる情報を格納するデータベース630に関連付けられる。サービスビーン638などのサービスインター
フェイスはビジネス論理を含み、アプリケーション634が、意味論的アプリケーション602および検索エンジン626を含む検索ベースのアプリケーションによってアクセスされることを可能にする。
【0039】
意味論的アプリケーション602は、図5Aに関して上で説明されたレンダリングエンジン614、メタデータ格納部610、および意味論的エンジン606を用いて、検索エンジン626を有効に呼び出してアプリケーション634を検索する。たとえば購入注文などの正規オブジェクトは一般に、特定の実現例に拘束されない正規ビジネスオブジェクトカテゴリ622に関連付けられるビジネスオブジェクトである。しばしば、ある種類の分類法が正規オブジェクトに適用されて、正規ビジネスオブジェクトカテゴリ622が形成され得る。検索用に索引を付けられ、構造化データを含む意味論的アプリケーション602は、アプリケーション634と実質的に並列に動作すると考えることができる。1つの実施例では、意味論的アプリケーション602はアプリケーション634を有効にラップして(wrap)記述する。
【0040】
ユーザインターフェイス618は、リッチウェブユーザインターフェイス618であってもよく、検索文字列などを検索ベースのアプリケーションに入力可能にする。リッチウェブユーザインターフェイス618は、ビジネスアクションがクエリの結果に容易に関連付けられることを可能にする。アプリケーション634は形式またはHTMLベースのユーザインターフェイス642と関連付けられ、これは、クエリの結果を表示可能にし、それに対して動作することを可能にする。
【0041】
ミドルウェア650は、カリフォルニア州、レッドウッド・ショアーズのオラクル・コーポレイションから入手可能なFusion Middlewareであってもよく、管理能力および展開プラットフォームを技術プラットフォームに有効に集約する。一般に、ミドルウェア650は、実質的にどのような開発ツール(図示せず)も、どのようなエンタープライズアプリケーション634も、およびどのような検索エンジン626もフレームワーク600に統合可能にする。すなわち、ミドルウェア650は、フレームワーク600の構成要素を容易に交換可能にする。ミドルウェア650は、異なるツール、アプリケーション、または検索エンジンをフレームワーク600に組込可能にする実質的にどのようなミドルウェアであってもよいことを認識すべきである。換言すれば、エンタープライズソフトウェアを設計して走らせるためのプラットフォームを与えるどのようなミドルウェア650も、Fusion Middlewareの代わりに用いられ得る。
【0042】
アプリケーション基礎646は、アプリケーションを構築可能にするよう構成される。すなわち、アプリケーション基礎646は、その上にトランザクションのアプリケーションなどのアプリケーションが構築され得る基礎を与え、その中でアプリケーションが走り得るアプリケーション文脈を与える。1つの実施例では、アプリケーション基礎646は、アプリケーションセキュリティ、ログ取り、およびエラー処理を含み得るがこれらに限定されない一般的なサービスを提供する。一般に、意味論的アプリケーション602はアプリケーション基礎646の上に展開され得、アプリケーション基礎646内に与えられるアプリケーション文脈を共有し得る。
【0043】
図7は、この発明の実施例に従った、アプリケーションをフレームワークに統合する1つの方法を図示するプロセスフロー図である。エンタープライズアプリケーションなどのアプリケーションを、そのアプリケーションに対する検索を実行可能にするフレームワークに統合するプロセス700は、フレームワークがエンタープライズアプリケーションにインターフェイス接続されるステップ704で開始する。フレームワークがエンタープライズアプリケーションにインターフェイス接続されると、ステップ708において、エンタープライズアプリケーションに適切なサービスインターフェイスまたはサービスビーン
が作成される。サービスビーンは、フレームワークを用いてエンタープライズアプリケーションにアクセスできるようにアクションを定義可能にする。
【0044】
適切なサービスインターフェイスまたはビーンが作成されると、ステップ712において、正規ビジネスオブジェクトが作成される。正規ビジネスオブジェクトはデータを定義するよう構成され、データベースまたはメタデータリポジトリなどのリポジトリに格納され得る。ステップ716において、データベースまたはJava(登録商標)クラスに格納されるオブジェクト属性が、ステップ712において作成された正規ビジネスオブジェクトに対応付けられる。ステップ720において、正規ビジネスオブジェクトに対して取られるべきアクションが割当てられる。アクションの割当ては、検索エンジンを正規ビジネスオブジェクトに割当てることを含み得る。
【0045】
ステップ720から、プロセスフローはステップ724に移り、ここで正規ビジネスオブジェクトが意味論的に記述される。次に、ステップ728において、検索エンジンのクローラーを用いて正規ビジネスオブジェクトに索引を付け得る。正規ビジネスオブジェクトの索引付けは、エンタープライズアプリケーションからデータを取ることを含み得る。正規ビジネスオブジェクトに索引が付けられた後、ステップ732において、検索エンジンを用いて索引格納部が検索され得る。正規ビジネスオブジェクトの意味論的記述が検索エンジンによって用いられて、クエリを構築する。索引格納部が検索されると、エンタープライズアプリケーションをフレームワークに統合するプロセスは完了する。
【0046】
図8を参照して、ユーザによって与えられる検索文字列の処理が説明される。図8は、この発明の実施例に従った、ユーザが与えるクエリを処理する1つの方法を図示するプロセスフロー図である。ユーザが与えるクエリを処理するプロセス800は、検索カテゴリが同定されるステップ804で開始する。換言すれば、メタデータリポジトリに格納される正規ビジネスオブジェクトが、検索に用いるために選択される。正規ビジネスオブジェクトが選択された後、ステップ808において検索文字列が入力される。1つの実施例では、意味論的エンジンが、意味論的定義に基づいて、検索文字列が所与のカテゴリに関係していると判断し得る。こうして、意味論的エンジンは、特定の検索文字列を特定の正規オブジェクトに関係付け得る。一例として、文字列「誰がジョン・ドウを雇うか?」を含む検索文字列が、意味論的エンジンによって、従業者である正規オブジェクトに関係付けられ得る。
【0047】
ステップ808において入力される検索文字列は典型的に、ユーザによって入力される。検索文字列が入力されると、ステップ812において、その検索文字列を用いて検索が実行される。検索の実行は、検索文字列を検索エンジンが理解するフォーマットに有効に翻訳し、次にそのフォーマットを、そこから結果が得られるべき索引格納部が理解する別のフォーマットに翻訳することを含む。
【0048】
ステップ816において、索引格納部から検索の結果が得られる。索引格納部内の結果は典型的に、検索中のアプリケーションから得られることを認識すべきである。ステップ820において、結果が次にクリックされるかまたはそうでなければ選択されて、結果が関連付けられるアプリケーションへのアクセスをユーザに与える。ユーザによってアプリケーションが入力された後、ユーザが与えるクエリを処理するプロセスは完了する。
【0049】
図9を参照して、トランザクションのアプリケーションを検索可能にする検索ベースのアプリケーションフレームワークを設定および使用するプロセスが、この発明の実施例に従って説明される。検索ベースのアプリケーションフレームワークを実現するプロセスは、設計者924または開発者が、たとえばトランザクションのアプリケーションなどのアプリケーション928を検査するときに開始する。アプリケーション928を検査して、
アプリケーション928内のどの情報が検索に利用可能であるべきかが判断され得る。設計者924は、アプリケーション928を検査した後、検索に利用可能であるべき正規ビジネスオブジェクトカテゴリ916を作成するか、またはこれに注釈を付ける。正規ビジネスオブジェクトカテゴリ916の作成は一般に、正規ビジネスオブジェクトの作成を伴う。
【0050】
正規ビジネスオブジェクトが作成されると、プラグ接続可能な検索エンジンの一部であり得るクローラー920がアプリケーション928に索引を付けて、アプリケーション928を検索可能にする。このクローリングプロセスは、クローラー920が、正規ビジネスオブジェクトの検索アーティファクトを用いて、所与の正規ビジネスオブジェクトカテゴリ916についての索引を作成できるようにする。これらの索引は次に、クローラー920によって索引格納部912に格納される。
【0051】
ユーザがアプリケーション928を検索することを望む場合、ユーザはフレームワーク900のユーザインターフェイス904を用いて、たとえば自然言語クエリなどのクエリを入力し得る。意味論的エンジン908が、正規ビジネスオブジェクトカテゴリ916を用いて索引格納部912を検索する。1つの実施例では、意味論的エンジン908は、検索エンジン(図示せず)を通じて索引格納部912を有効に間接に検索し得る。意味論的エンジン908は、索引格納部912を用いて適切な索引が見つかると、クエリをアプリケーション928に再び導き得る。クエリがアプリケーション928に再び導かれる前に、クエリは典型的に、まず検索エンジンが理解するフォーマットに、次にアプリケーション928が理解するフォーマットに変換されることを認識すべきである。
【0052】
検索ベースのアプリケーション開発フレームワークは一般に、データベース管理システムに関して実現され得る。1つの好適なデータベース管理システムアーキテクチャは、図10に示される3層のアーキテクチャである。データベース管理システムの中心には、データベース963を格納する中央格納部961またはリポジトリがある。データベース963は典型的に1つ以上のハードドライブに格納され、典型的により大きなコンピュータシステムの一部である。情報はさまざまなフォーマットでデータベース963に格納され得、リレーショナルデータベース管理システムは、情報を格納するためのテーブルに大きく依存している。データベースサーバ965は、データベース963と対話するプログラムのインスタンスである。データベースサーバ965の各インスタンスは、数ある特徴の中で特に、独立してデータベース963にクエリを出し、情報を格納し得る。
【0053】
場合によっては、データベースサーバ965は、グラフィカルユーザインターフェイスなどの使いやすいインターフェイスを含まないことがある。したがって、少なくとも1つのアプリケーションサーバ967が、データベースサーバ965にユーザインターフェイスを与え得る。一例として、アプリケーションサーバ967は、インターネットまたはいずれかの他のネットワーク内のウェブアプリケーションサーバであり得る。アプリケーションサーバ967は、データベースサーバ965を通じてデータベース963にアクセスするための使いやすいメカニズムを与え得る。ウェブブラウザ969を利用して、アプリケーションサーバ967にアクセスすることができる。
【0054】
図11は、本発明の実施例を実現するコンピュータシステム内に存在し得る構成要素のブロック図を示す。コンピュータシステム971は、オペレーティングシステムを含むコンピュータプログラムからの命令を実行するプロセッサ973を含む。プロセッサ973を利用して、意味論的エンジンをたとえば走らせることができる。プロセッサ973は典型的にメモリキャッシュを有するが、プロセッサ973は、命令またはコンピュータコードおよびデータを格納し得るメモリ975を利用してもよい。
【0055】
固定格納部977はコンピュータプログラムおよびデータを格納し得る。固定格納部977は典型的に永続的であり、メモリ975と比べて格納量が多い。データベースのための共通の固定格納部977は複数のハードドライブであるが、固定格納部977はどのような好適な構成要素であってもよいことを理解すべきである。着脱式格納部979は、自身に格納されるコンピュータプログラムおよび/またはデータに移動性を与える。着脱式格納部979は、フロッピー(登録商標)ディスク、テープ、CD/ROM、DVD、フラッシュメモリ装置などを含み得るが、これらに限定されない。
【0056】
メモリ973、固定格納部977および着脱式格納部979は、本発明を実現するコンピュータコードまたはコード装置、本発明で用いるためのデータなどを組込んだコンピュータプログラムを格納および抽出するために利用され得るコンピュータ読取可能な記憶媒体の例を与える。また、たとえばインターネットを含むネットワーク内で、搬送波で具体化されるデータ信号も、コンピュータ読取可能な記憶媒体であり得る。入力装置981は、ユーザがコンピュータシステム971にインターフェイス接続できるようにする。入力装置981はキーボード、マウス、ボタン、ダイヤル、またはいずれかの他の好適な入力メカニズムであり得る。出力装置983は一般に、システム971がユーザに出力を与えることができるようにする。出力装置983は、モニタ、表示画面、LED、プリンタ、または実質的に如何なる他の出力メカニズムも含むが、これらに限定されない。
【0057】
ネットワークインターフェイス985は典型的に、システム971が、ネットワークインターフェイス985が接続されるネットワークにインターフェイス接続できるようにする。コンピュータシステム971のシステムバスアーキテクチャが矢印987によって表わされる。図11に示される構成要素は、多くのコンピュータシステムにおいて見い出され得る。しかし、構成要素は、この発明の思想または範囲から逸脱することなく追加され、削除され、組合せられ得る。たとえば、固定格納部977は、ネットワーク接続を通じてアクセスされるファイルサーバであってもよい。したがって、図11は例示のためであり限定のためではない。
【0058】
この発明の2,3の実施例しか説明されなかったが、この発明は、この発明の思想または範囲から逸脱することなく多くの他の特定的な形態で具体化され得ることを理解すべきである。一例として、検索エンジンはこの発明のアーキテクチャに関してプラグ接続可能であると説明された。しかし、検索エンジンは代わりにアーキテクチャの固定または統合部分であってもよい。
【0059】
トランザクションのアプリケーションであるエンタープライズアプリケーションが、検索ベースのアプリケーションフレームワークを用いて検索されるのに好適であると説明されたが、検索されるアプリケーションはトランザクションのエンタープライズアプリケーションであることに限定されない。たとえば、トランザクションのアプリケーションではないエンタープライズアプリケーション、またはエンタープライズアプリケーションではないトランザクションのアプリケーションが検索され得る。
【0060】
フレームワークにフィルタを含ませて、検索またはクエリに対して得られたより多くの結果をさらに検索可能にしてもよい。たとえば、最初のクエリがデータベース開発のフィールド内で求職を検索した場合、フィルタを適用して、特定の会社に関連付けられるすべての職を除去したり、特定の基本給を指定したりしてもよい。
【0061】
フレームワークの構成要素は一般に、ソフトウェアモジュールである、またはコンピュータコード装置を用いて作成されたモジュールであると説明された。1つの実施例では、フレームワークの構成要素は、この発明の思想または範囲から逸脱することなくハードウェアモジュールとソフトウェアモジュールとの組合せとして、または実質的にハードウェ
アモジュールのみとしてさえ実現され得る。
【0062】
サービスビーンなどのサービスインターフェイスは一般に、検索ベースのアプリケーションフレームワークをサポートするアーキテクチャに含まれていると説明された。上述のように、サービスビーンは、オブジェクトに適用されるべきアクションを表わす。サービスを定義および提供する他のメカニズムがサービスビーンの代わりに実現されてもよい。代替的に、そこから検索結果が得られるアプリケーションを用いるアクションが望まれていない実施例については、サービスビーンは検索ベースのアプリケーションフレームワークに含まれているとは限らないことを認識すべきである。
【0063】
検索は、一旦ユーザが検索ベースのアプリケーションを用いて検索を実行すると、その検索を実行するために入力されたテキストが将来のアクセスのために保存されるよう、保存され得る。同様に、検索の結果は、ユーザが別の検索を実行することなくその検索結果に容易にアクセスできるよう保存され得る。
【0064】
一般に、この発明の方法に関連付けられるステップは大きく異なり得る。ステップは、この発明の思想または範囲から逸脱することなく追加され、削除され、変更され、組合せられ、順序変えされ得る。一例として、クエリに対する応答が得られると発生し得るアクションとして、結果をクリックし、検索されたアプリケーションを入力することが説明されたが、一組の応答に対して取られるアクションは大きく異なり得る。1つの実施例では、カスタムアクションが、対応する正規ビジネスオブジェクトに割当てられる。カスタムアクションが、対応する正規ビジネスオブジェクトに割当てられる。カスタムアクションは、意味論的アプリケーションまたは意味論的アプリケーションが拘束されるトランザクションのアプリケーションへの移行のためのアクションを含み得るが、これらに限定されない。したがって、本発明の例は例示的に考慮されるべきであり、限定的に考慮されるべきではなく、本発明は本明細書中で与えられる詳細に限定されず、添付の請求項の範囲内で修正され得る。
【図面の簡単な説明】
【0065】
【図1】エンタープライズアプリケーションに関連付けられる情報に対して作られるクエリの図表示である。
【図2】この発明の実施例に従った、検索エンジンとアプリケーションとの間のインターフェイスがアプリケーションを検索可能にするシステムのブロック図表示である。
【図3】この発明の実施例に従った、クライアントが複数のアプリケーションを検索できるようにするフレームワークのブロック図表示である。
【図4】この発明の実施例に従った、アクションが取られることを可能にする検索クエリ領域および結果領域を有する表示窓の図表示である。
【図5A】この発明の実施例に従った、アプリケーションを検索可能にする基本ソフトウェアアーキテクチャのブロック図表示である。
【図5B】この発明の実施例に従った、示されるようにこれもまたソフトウェアアーキテクチャに含まれ得る拡張部を有するソフトウェアアーキテクチャ、すなわち図5Aのソフトウェアアーキテクチャ500のブロック図表示である。
【図6】この発明の実施例に従った、トランザクションのアプリケーションにインターフェイス接続する検索ベースのアプリケーションの図表示である。
【図7】この発明の実施例に従った、アプリケーションをフレームワークに統合する1つの方法を図示するプロセスフロー図である。
【図8】この発明の実施例に従った、クエリを処理する1つの方法を図示するプロセスフロー図である。
【図9】この発明の実施例に従った、検索可能なアプリケーションがフレームワーク内にインターフェイス接続されて検索に利用可能になると発生するアクションを示すフローのブロック図表示である。
【図10】データベース管理システムアーキテクチャのブロック図表示である。
【図11】この発明の実施例に関連して利用され得る計算システムのブロック図表示である。
【技術分野】
【0001】
発明の背景
発明の分野
この発明は一般に、アプリケーションを検索可能にすることに関する。特に、この発明は、ユーザがエンタープライズアプリケーションを検索でき、検索の結果を用いてアクションを実行できるようにするフレームワークに関する。
【背景技術】
【0002】
関連技術の説明
ネットワークの使用が拡大するにつれ、エンタープライズアプリケーションの使用がいっそう普及しつつある。エンタープライズアプリケーションは一般に、ネットワーク内の多数のユーザにサービスを同時に提供する能力を有するサーバでホストされているソフトウェアアプリケーションである。しばしば、エンタープライズアプリケーションはビジネス関連機能を実行するのに好適である。ビジネス関連機能は、顧客情報の追跡、会計、および製造スケジューリングを含み得るが、これらに限定されない。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しばしば、エンタープライズアプリケーションに保持され得るかまたはそうでなければ関連付けられる情報などの情報を検索することが望まれる。一例として、エンタープライズアプリケーションはその内部に、オーストラリアのXYZ銀行などの特定の銀行の顧客担当の名前に関する情報を含み得る。「オーストラリアのXYZ銀行の顧客担当は誰?」などの質問またはクエリに答えるのに、答が得られる可能性がある方法は一般に3つある。図1は、エンタープライズアプリケーションに関連付けられる情報に対して作られ得るクエリの図表示である。クライアント118または要求側が、エンタープライズアプリケーション110に含まれ得る情報114に関するクエリに対する答を望む場合、クライアント118は自然言語クエリ130を作成し得る。自然言語クエリ130は、人間などの、情報114へのアクセスを有する可能性のあるエンティティ122に対して作られ得る。エンティティ122はエンタープライズアプリケーション110内の情報114へのアクセスを有し得るか、またはエンティティ122は他の手段によって情報114へのアクセスを有し得る。自然言語クエリ130の作成は比較的易しいことがあるが、エンティティ122が情報114へのアクセスを有するとは限らない。したがって、自然言語クエリ130に対する答がエンティティ122から容易に得られるとは限らない。クライアント118は、1つより多いエンティティにクエリを出してからでないと答を得られないかもしれない。したがって、人間などのアクセスを有するエンティティ122を介してクエリを出すことは、しばしば非効率的で費用がかかる。
【0004】
エンタープライズアプリケーション110が情報114などのデータを保持しているため、クライアント118は、エンタープライズアプリケーション110内の情報114にアクセスするSQLまたは形式ベースのクエリ134を作成し得る。一般に、エンタープライズアプリケーション110内の情報114には、エンタープライズアプリケーション110の開発者が情報114をクライアント118または他のユーザに入手可能にする場合にしかアクセスできない。情報114はエンタープライズアプリケーション110内に低レベルで保持されているかもしれないため、入手可能な情報114にアクセスするためのSQLまたは形式ベースのクエリ134の作成は困難である。エンタープライズアプリケーション110の内部構造は複雑であり得、しばしば所有権を有し得る。多くの場合、クライアント118は、エンタープライズアプリケーション110に関する訓練コースを
受講してからでないとSQLまたは形式ベースのクエリ134をうまく作成できないことがある。SQLまたは形式ベースのクエリ134の作成は多大な開発努力を必要とし得る。したがって、情報114はSQLまたは形式ベースのクエリ134に基づいてうまく得られる可能性があるが、SQLまたは形式ベースのクエリ134の作成に関連付けられる工程は複雑で時間がかかり得る。
【0005】
情報114を突き止めるため、キーワードベースのクエリ138がクライアント118によって検索エンジン126に入力され得る。情報114がオーストラリアのXYZ銀行の顧客担当の名前である場合、キーワードベースのクエリ138は単語「会計」、「主任」、「XYZ」、および「オーストラリア」を含み得る。情報114がアクセス可能である場合、検索エンジン126の使用は比較的迅速で効率的であり得る。しかし、情報114が検索エンジン126には入手可能でないと判明した場合、すなわち、情報114が、検索エンジン126にアクセス可能な文書、ファイル、またはアプリケーションに含まれていない場合は、クライアント118はキーワードベースのクエリ138に対する満足のいく結果を得ることができないであろう。情報114はまた、トランザクションのテーブル、すなわち、閲覧用の記述フィールドを含むが検索用に索引を付けられていないテーブルに格納されている場合も、入手不可能であり得る。検索エンジン126は実質的に、クライアント118が読むことができる検索結果を提示することしかできない。換言すれば、キーワードベースのクエリ138に対する結果がクライアント118に提示されるとき、その結果は、クライアント118が読むことができるが一般に多大な開発努力なしではその結果に対して動作することができないよう提示される。
【0006】
自然言語クエリ130およびキーワードベースのクエリ138は、クライアント118が情報114を得ることができるようにする際に効果的であり得るが、自然言語クエリ130は非効率であり得、また自然言語クエリ130およびキーワードベースのクエリ138は、たとえば情報114がエンティティ122および検索エンジン126には入手不可能であるときなどに、クライアント118に情報114を与えるとは限らない。さらに、情報114は、情報114を用いるエンタープライズアプリケーション110から実質的に直接に得られない場合は正確ではないかもしれない。一般に、クライアント118は、エンタープライズアプリケーション110を介して正確な情報114へのアクセスをうまく得ることができる。そのような情報114は、少なくともエンタープライズアプリケーション110と同じくらい正確である。しかし、上述のように、SQLまたは形式ベースのクエリ134の形成は典型的に複雑である。
【0007】
したがって、必要とされているのは、エンタープライズアプリケーションに保持される情報を容易に検索可能にする方法および装置である。すなわち、望まれているのは、ユーザが正確な情報を求めて、構造化された態様でエンタープライズアプリケーションを検索できるようにするシステムである。
【課題を解決するための手段】
【0008】
発明の要約
この発明は、トランザクションのアプリケーションを検索するための意味論的インターフェイスを与える検索フレームワークに関する。この発明の1つの局面によると、少なくとも1つのトランザクションのアプリケーションを検索可能にするための方法は、トランザクションのアプリケーションに関連付けられる正規オブジェクトを作成するステップと、トランザクションアプリケーションに関連付けられるデータに索引を付けるステップとを含む。この方法はまた、正規オブジェクトに関連付けられる情報を用いて索引格納部を作成するステップも含む。索引格納部は、索引を付けられたデータに関連付けられる。最後に、意味論的エンジンが索引格納部にインターフェイス接続される。
【0009】
1つの実施例では、クエリが第1のフォーマットで意味論的エンジンに与えられる。そのような実施例では、意味論的エンジンは、クエリを第1のフォーマットから、検索エンジンに関連付けられる第2のフォーマットに翻訳し、その後、検索エンジンを用いて索引格納部がアクセスされる。
【0010】
アプリケーションを検索するために意味論的または他の情報を使用可能にする検索ベースのアプリケーションのための開発フレームワークにより、アプリケーションに関連付けられるデータを比較的効率的に得ることができる。そのような開発フレームワークは実質的にどのような検索エンジンも利用できるため、検索エンジンの性能を高めることができる。一般に、開発フレームワークは、アプリケーションに保持される情報に検索エンジンがアクセスできるようにするインターフェイスを含み、エンドユーザにこの情報を与え、エンドユーザはその後、この情報に対して直接にアクションを実行し得る。インターフェイスと、自然言語ベースの文字列から、アプリケーションを検索するために用いられ得る文字列にクエリを翻訳するための意味論的エンジンとを含むツールキットを与えることによって、開発者は、比較的少ない開発努力でアプリケーションを検索可能にする全体的なシステムを作成することができる。
【0011】
この発明の別の局面によると、少なくとも1つのアプリケーションを検索可能にするためのフレームワークは、インターフェイスと、プラグ接続可能な検索エンジンと、実行時間マネージャとを含む。インターフェイスは、クエリを第1のフォーマットから第2のフォーマットに翻訳し、アプリケーションに関する正規ビジネスオブジェクトに関連付けられる。検索エンジンはクエリに応答してアプリケーションを検索し、実行時間マネージャは、検索エンジンをアプリケーションにインターフェイス接続し、クエリの結果を表示させる。1つの実施例では、アプリケーションはエンタープライズアプリケーション、トランザクションのアプリケーション、またはトランザクションのエンタープライズアプリケーションである。
【0012】
別の実施例では、開発者が設計者を用いて、正規オブジェクト、それらのカテゴリ、およびオブジェクトについての意味論的定義を含むメタデータを作成し得る。インターフェイスは、ユーザインターフェイスレンダリング部、アクションコントローラ、および意味論的エンジンを含み得る。そのような実施例では、実行時間マネージャは検索エンジンと対話してクローリング、索引付け、および監視を実行し得る。
【0013】
この発明のさらに別の局面に従って、アプリケーションに関連付けられる情報を要求するクエリを処理するための方法は、アプリケーションに関連付けられる正規ビジネスオブジェクトを選択するステップと、クエリに関連付けられる情報を用いて検索を実行するステップとを含む。検索は、正規ビジネスオブジェクトに関連付けられる。検索を実行するステップは、アプリケーションに関連付けられる情報を含む索引格納部を利用するステップを含む。この方法はまた、索引格納部から検索の結果を得るステップも含む。1つの実施例では、結果は、アプリケーションへの直接アクセスを可能にするウェブリンクである。
【0014】
本発明のこれらおよび他の特徴および利点が、同一または同様の構造には同一の参照番号が付される添付の図面に関連して以下の説明を検討すると容易に入手可能で明らかになるであろう。
【発明を実施するための最良の形態】
【0015】
特定的な実施例の説明
以下の説明では、データベースアプリケーションなどのソフトウェアアプリケーションについてプラットフォーム上のサブシステムを試験する実施例を参照して本発明が説明さ
れる。しかし、本発明の実施例はいずれの特定のアーキテクチャ、環境、アプリケーション、または実現例にも限定されない。たとえば、実施例はネットワークデータベースアプリケーションを参照して説明されるが、本発明は有利にはどのようなソフトウェアアプリケーションにも適用され得る。したがって、以下の実施例の説明は例示のためであり、限定のためではない。
【0016】
エンタープライズアプリケーションに関連付けられる非構造化または非道徳的(demoralized)データの検索は、一般にエンドユーザには容易に入手可能ではない。いくつかの検索アプリケーションが入手可能であるが、それらの検索アプリケーションは一般に、エンドユーザの側で多大な開発努力を費やさないと、特定的なエンタープライズアプリケーションを検索できない。
【0017】
自然言語クエリを与えるエンドユーザがトランザクションのアプリケーションを検索できるよう、既存の検索エンジンを増強し、既存の検索エンジンを組込んだフレームワークを作成すれば、エンドユーザがエンタープライズアプリケーションを比較的効率的に検索できるであろう。1つの実施例では、特定のエンタープライズアプリケーションを既存の検索エンジンを組込んだフレームワークにインターフェイス接続するために必要なソフトウェアモジュールを開発するために用いられ得るツールキットが開発者に与えられ得る。このツールキットを用いて、エンタープライズアプリケーションまたはトランザクションのアプリケーションを検索するために用いられ得る検索ベースのアプリケーションを開発することができる。そのようなツールキットを用いることにより、高性能検索エンジンの機能性を高めて、開発者の側における多大な開発努力を実質的に必要とせずに、どのような数のエンタープライズまたはトランザクションのアプリケーションも検索できるようになる。
【0018】
検索エンジンとエンタープライズアプリケーションとの間に接合点を作成すれば、エンドユーザがそれに対して動作し得る情報を得ることができる。さらに、多くの異なる種類の情報の検索が実現され得る。一例として、トランザクションの記録、作業項目、プログラミングバグ、および他のビジネス関連要素の検索が正確に実行され得る。
【0019】
図2は、この発明の実施例に従った、検索エンジンとアプリケーションとの間のインターフェイスがアプリケーションを検索可能にするシステムのブロック図表示である。検索エンジン204は、実質的にどのような好適な検索エンジンであってもよく、インターフェイス208を通じてアプリケーション212を検索するために用いられ得る。アプリケーション212はトランザクションのアプリケーション、すなわちトランザクションを利用するアプリケーションなどのエンタープライズアプリケーションであり得るが、アプリケーション212は大きく異なり得ることを認識すべきである。1つの実施例では、検索エンジン204は、カリフォルニア州、レッドウッド・ショアーズ(Redwood Shores, California)のオラクル・コーポレイション(Oracle Corporation)から入手可能なApache
Lucene、またはOracle Text検索エンジンなどのSQL検索エンジン、オープンソースベースの検索エンジンであり得る。
【0020】
インターフェイス208は、検索エンジン204を介して作られるクエリが、そのクエリと有効に一致する結果を求めてアプリケーション212を検索できるようにするよう構成される。すなわち、インターフェイス208は、アプリケーション212に関連付けられる、たとえば含まれる情報を検索エンジン204が検索できるよう、検索エンジン204とアプリケーション212との間の接合として有効に作用する。一例として、アプリケーション212は、顧客情報が関連のデータベースに格納されるアプリケーションを含み得る。インターフェイス208は、検索エンジン204および「カリフォルニアのXYZ銀行のジョン・ドウ(John Doe)の口座の顧客担当は誰?」などのクエリを用いて顧客情
報を求めてそのアプリケーションを検索できるようにし得る。
【0021】
一般に、協働してアプリケーションを検索可能にする検索エンジンおよびインターフェイスを含む全体的なフレームワークは、クエリを受け、クエリに対する応答を与えるよう構成され得る。図3は、この発明の実施例に従った、クライアントが複数のアプリケーションを検索できるようにするフレームワークのブロック図表示である。フレームワーク310は一般に、クライアント302がフレームワーク310にクエリを入力するとアプリケーション312を検索可能にするために必要な機能を含む。アプリケーション312はトランザクションのアプリケーションであり得る一方で、フレームワーク310に入力されるクエリは、フレームワーク310に関連付けられる意味論的アプリケーション(図示せず)内に実現され得る。フレームワーク310はクエリを、たとえば自然言語からフレームワーク310に含まれる検索エンジン(図示せず)が理解するクエリに翻訳し、その後、翻訳されたクエリに基づいて検索アプリケーション312に一般に翻訳し得る。翻訳されたクエリからのいずれの結果も、フレームワーク310を用いてクライアント302に提示され得る。
【0022】
クエリの結果が提示されるとき、その結果は、クライアント302に関連付けられる計算システムの表示画面に表示され得る。1つの実施例では、表示画面は、クエリが入力および表示される検索領域、およびクエリに基づいて検索が実行された後に結果が表示される結果領域を含み得る。図4を参照して、クエリを入力するためのユーザインターフェイス、および表示結果に関連付けられるユーザインターフェイスを与える1つの表示窓が、この発明の実施例に従って説明される。表示窓400は、ウェブベースのアプリケーション用のブラウザウインドウであってもよく、クエリ領域402および結果領域406を含む。クエリ領域402は、たとえばユーザがキーボード入力を用いることによって検索文字列が入力され得るフィールド410を含む。フィールド410は、テキスト入力を受けるのに好適であると示されているが、他の方法を用いて投入されてもよいことを認識すべきである。他の方法は、プルダウンまたはポップアップメニューを用いて入力を与えることを含むが、これらに限定されない。
【0023】
検索文字列がフィールド410に入力されると、入力ボタン412を押すかクリックするかして検索を開始することができる。入力ボタン412を押すと一般に、図3のフレームワーク310などのフレームワークを有効に呼び出すプロセスが始まり、検索文字列に関連付けられる答を求めて少なくとも1つのアプリケーションを検索する。検索が完了すると、結果414a−cが結果領域406内に表示され得る。3つの結果414a−cが示されているが、クエリに対する結果414a−cの数は大きく異なり得ることを認識すべきである。
【0024】
結果414a−cは、検索されるいずれかのアプリケーションから生じ得る。示されるように、結果414aおよび結果414bはアプリケーション「A」に関連付けられる一方で、結果414cはアプリケーション「B」に関連付けられる。説明される実施例では、結果414a−cは、選択され得、選択されると自身が関連付けられるアプリケーションについての表示窓を開き得るリンクである。一例として、結果414aが選択された場合、アプリケーション「A」に関連付けられる表示窓が開き得、アプリケーション「A」内に見つけられるようなクエリの結果を表示する。
【0025】
結果414a−cは、それぞれ関連のアクションボタン416a−cを有し得る。しかし、すべての結果414a−cが関連のアクションボタン416a−cを一般に有するとは限らないことを認識すべきである。アクションボタン416a−cを選択することによって、対応する結果414a−cに関してアクションが実行され得る。1つの実施例では、アクションボタン416a−cを選択すると、ユーザは、表示窓400が関連付けられ
る意味論的アプリケーションからトランザクションのアプリケーションに再び導かれ得る。たとえば、フィールド410に入力される検索文字列が仕事内容に関する検索についてのものである場合は、結果414a−cは、その仕事内容と一致する求人を含み得る。そのような場合、アクションボタン416a−cは、選択されると、ユーザが関連のトランザクションのアプリケーションを用いてその求人に応募することになるボタンであってもよく、たとえば、アクションボタン416aをクリックすると、結果414aに関連付けられる求人にユーザが応募することになり得る。
【0026】
フィールド410は、異なる検索カテゴリに関連付けられる検索文字列を受けることができる。1つの実施例では、検索カテゴリは人物検索カテゴリ、作業リスト検索カテゴリ、および統合リポジトリ検索カテゴリを含み得る。人物検索カテゴリは、クライアントまたはユーザが、顧客または顧客担当情報が商業コミュニティモデルのデータベースに格納されるビジネスアプリケーション内の顧客または顧客担当などの人物を検索できるようにし得る。人物検索については、結果414a−cは顧客担当の名前を含み得る。作業リスト検索カテゴリは、クライアントまたはユーザが、ビジネス処理の結果として組織内で割当てられる個人的なアクション項目を検索できるようにし得る。作業リスト検索については、結果414a−cはユーザについての作業のリストまたはアクション項目を含み得る。統合リポジトリ検索カテゴリは、クライアントまたはユーザが、さまざまなサードパーティプログラムまたはアプリケーションを統合するために用いられ得るアプリケーションプログラミングインターフェイス(API)を突き止めることができるようにし得る。統合リポジトリ検索については、結果414a−cはサードパーティ統合者に入手可能なAPIのリストであり得る。
【0027】
図3のフレームワーク310のようなフレームワークを与えるため、実質的に標準的な検索エンジンが組込まれ得る。アプリケーションをフレームワークに統合するためのツールキットが、開発者が用いるために与えられ得る。ツールキット内には、カスタムモジュールを開発するために開発者が使用するためのAPIとともに、検索カテゴリを管理するためのユーザインターフェイスが与えられ得る。そのようなツールキットはまた、検索エンジンをフレームワークにインターフェイス接続可能にする実行時間マネージャも与え得る。開発者は一般に、このツールキットを用いて検索カテゴリを定義し得る。図5Aは、この発明の実施例に従った、検索ベースのアプリケーションアーキテクチャに関連付けられる構成要素のブロック図表示である。アーキテクチャ500は、全体的な検索ツールキットであると考えることができ、検索エンジン504を利用する。アーキテクチャ500は、カテゴリ検索を実行可能にするよう構成される。検索エンジン504はプラグ接続可能であり、APIを有する実質的にどのような検索エンジンであってもよい。一般に、検索エンジン504は、検索エンジン504がクローラー506、索引エンジン508、クエリエンジン510、およびスコアラー512などの構成要素を内部でインターフェイス接続可能にするという意味で、プラグ接続可能である。
【0028】
クローラー506は、当業者によって理解され得るように、ソースをクロールするよう構成される。クローラー506は、1つの実施例では、たとえば検索されるべきエンタープライズアプリケーションおよび/またはトランザクションのアプリケーションのような実質的にすべてのアプリケーション554をクロールする機能を与える。正規ビジネスオブジェクト定義についての検索可能文書の構成、および実行時間アプリケーションデータの構成は、クローラーを用いて発生する。Java(登録商標) Database Connectivity(JDBC)APIは、クローラー506が基づき得る標準的なSQLデータベースアクセスインターフェイスである。
【0029】
索引エンジン508は一般に、クローラー506によって構成された検索可能文書に索引を付け、索引格納部558をクエリエンジン510に露出するよう構成される。索引格
納部558は、索引が格納される場所である。索引格納部558に関連付けられるセキュリティ設定などの設定は、実行時間マネージャ516によって管理され得る。実行時間マネージャ516はまた、たとえばクローリングが計画され得、索引格納部558が設定され得るように、検索を実行時間で管理可能にするよう構成される。
【0030】
クエリエンジン510は、クエリビルダーであると考えることができ、予めクロールされた索引格納部558内で検索を実行するためにアーキテクチャ500内で用いられるソフトウェアモジュールである。クエリエンジン510は、メタデータマネージャ520を介してメタデータリポジトリ524から得られるメタデータを用いて、ユーザが入力したクエリを、検索エンジン504が理解するクエリから索引格納部558が理解するクエリに有効に変換する。メタデータリポジトリ524は実質的にすべてのメタデータを格納し、またオブジェクトカテゴリおよび意味論的定義を格納する。メタデータマネージャ520はメタデータを管理し、検索カテゴリを作成、修正、および削除するためのユーザインターフェイスを与える。1つの実施例では、ビジネスオブジェクトがメタデータリポジトリ524に格納され得る一方で、検索カテゴリがメタデータマネージャ520によって格納される。
【0031】
スコアラー512はレーティング機能を与える。検索エンジン504は一般にスコア付け機能を有するが、スコアラー512を用いて、検索エンジン504に含まれるスコア付け機能を増強または変更することができる。一般に、各スコアラー512は特定の検索カテゴリに関連付けられてもよく、特定の結果がクエリとどの程度一致するかに関する情報を与え得る。
【0032】
検索エンジン504と通信しているインターフェイス構成要素528は、意味論的エンジン530、ユーザインターフェイスレンダリング部532、およびアクションコントローラ534を含む。意味論的エンジン530は、ユーザクエリを、検索エンジン504が理解するクエリに翻訳するよう構成されるクエリビルダーである。すなわち、意味論的エンジン530は、メタデータリポジトリ524に格納されるメタデータに基づいてクエリを変換し得る。1つの実施例では、意味論的エンジン530は、自然言語ベースのクエリを検索エンジン特定クエリに翻訳する。一例として、「誰がジェーン・ドウ(Jane Doe)に報告するか?」というユーザクエリは、適切なフィールドに割当てられる意味論的情報に基づいて″mgrFirstname:Jane, mgrLastname:Doe″などの検索エンジン特定クエリに翻訳され得る。
【0033】
ユーザインターフェイスレンダリング部532は、クエリまたは検索の結果を表示可能にするよう構成される。すなわち、ユーザインターフェイスレンダリング部532は、所与の検索カテゴリのユーザインターフェイス表現を生成可能にし、ユーザに表現可能にする。1つのユーザインターフェイスレンダリング部532は、テーブルに結果を表示するよう構成され得る。一般に、ユーザインターフェイスレンダリング部532は、所与の種類の正規ビジネスオブジェクトに割当てられ得る。
【0034】
アクションコントローラ534は、結果ページに表示されるユーザインターフェイス事象を、1つの実施例ではサービスビーン542であり得るサービスインターフェイス内に定義されるビジネスアクションに翻訳するよう構成される。すなわち、アクションコントローラ534は、サービスビーン542を呼び出すことによって検索関連ビジネス論理を実行する事象マネージャである。サービスインターフェイス542は、ビジネス論理が有効に保持される構成要素である。サービスインターフェイス542は検索カテゴリに対して登録され得る。1つの実施例では、サービスインターフェイス542は3種類のサービス、すなわちリストサービス、エンティティサービス、およびアクションサービスを含む。そのようなサービスはツールキットであると考えることができる。リストサービスは、
検索カテゴリによって定義されるエンティティのリストに対して実行され得、一次キーのリストによって同定され得る。エンティティサービスは、ビジネスオブジェクトの特定のエンティティに対して実行され得る。たとえば、クエリの結果が、各々が一次キーによって同定される結果のリストとしてユーザに提示され得る。これらの結果に対して実行され得るビジネスアクションまたはアクションサービスは、結果を保存すること、結果が求人であれば特定の仕事に応募すること、および特定の属性に基づいて結果をソートすることを含み得るが、これらに限定されない。アクションサービスは、1つの実施例では、ユーザインターフェイスアクションにリンクされ得るサービスである。
【0035】
ユーザインターフェイステンプレート538は、サービスビーン542がアクションコントローラ534によって呼び出されることを可能にするスニペット、たとえばハイパーテキストマーク付言語(HTML)スニペットである。一例として、テンプレート538を用いて、ユーザインターフェイスレンダリング部532に関連付けられるコードを実質的に変化させることなくユーザインターフェイスをカスタマイズすることができる。図5Bに関して以下に説明されるように、ユーザインターフェイステンプレート538を利用して、検索結果またはアクション形式のためのダイナミックHTML(DHTML)ユーザインターフェイスを表現することができる。
【0036】
アーキテクチャ500はまた、アプリケーションセキュリティモジュール546および国際化モジュール550にも関連付けられ得る。アプリケーションセキュリティモジュール546は、たとえばサービスインターフェイスまたはサービスビーン542などのツールキットと対話して、アーキテクチャ500に関連付けられるセキュリティ要件を有効に実施する。アプリケーションセキュリティモジュール546は、検索カテゴリに基づいてセキュリティポリシーを定義し得、索引エンジン508およびクエリエンジン510を含むがこれらに限定されないアーキテクチャ500の構成要素によって用いられ得る。国際化モジュール550を用いて、検索を複数の言語で利用可能にすることができる。
【0037】
さまざまな外部構成要素がアーキテクチャ500にインターフェイス接続され得る。図5Bに示されるように、全体的なアーキテクチャ500は、実行時間マネージャ516を用いて検索を実行時間で管理するモニタまたはアドミニストレータ592を含み得る。設計者または開発者588は、メタデータリポジトリ524に格納される検索カテゴリを定義し得る。検索カテゴリは、検索エンジン504が検索を実行するために用い得るアーティファクトをカプセル化し、顧客およびタスクなどのカテゴリを含み得るが、これらに限定されない。DHTMLユーザインターフェイス580は、ユーザインターフェイスレンダリング部532へのユーザ入力を与える。カリフォルニア州、レッドウッド・ショアーズのオラクル・コーポレイションから入手可能なJDeveloperなどのツール584は、サービス指向型アプリケーションを構築するための統合開発環境を与える。すなわち、ツール584は、ユーザインターフェイステンプレート538およびサービスインターフェイス542を作成および修正可能にする。
【0038】
上述のように、エンドユーザがアプリケーションを検索するために自然言語検索文字列を入力できるようにすれば、検索ベースのアプリケーションフレームワークの活用性が増す。検索エンジンをエンタープライズアプリケーションと用いるために組込可能にする全体的なインターフェイスの一部として意味論的エンジンおよび意味論的アプリケーションを用いることにより、全体的なアーキテクチャに機能が与えられる。図6を参照して、検索ベースのアプリケーションとエンタープライズアプリケーションとの間のインターフェイスがこの発明の実施例に従って説明される。フレームワーク600は、1つの実施例ではトランザクションのアプリケーションであり得るエンタープライズアプリケーション634を含む。アプリケーション634は、アプリケーション634が用いる情報を格納するデータベース630に関連付けられる。サービスビーン638などのサービスインター
フェイスはビジネス論理を含み、アプリケーション634が、意味論的アプリケーション602および検索エンジン626を含む検索ベースのアプリケーションによってアクセスされることを可能にする。
【0039】
意味論的アプリケーション602は、図5Aに関して上で説明されたレンダリングエンジン614、メタデータ格納部610、および意味論的エンジン606を用いて、検索エンジン626を有効に呼び出してアプリケーション634を検索する。たとえば購入注文などの正規オブジェクトは一般に、特定の実現例に拘束されない正規ビジネスオブジェクトカテゴリ622に関連付けられるビジネスオブジェクトである。しばしば、ある種類の分類法が正規オブジェクトに適用されて、正規ビジネスオブジェクトカテゴリ622が形成され得る。検索用に索引を付けられ、構造化データを含む意味論的アプリケーション602は、アプリケーション634と実質的に並列に動作すると考えることができる。1つの実施例では、意味論的アプリケーション602はアプリケーション634を有効にラップして(wrap)記述する。
【0040】
ユーザインターフェイス618は、リッチウェブユーザインターフェイス618であってもよく、検索文字列などを検索ベースのアプリケーションに入力可能にする。リッチウェブユーザインターフェイス618は、ビジネスアクションがクエリの結果に容易に関連付けられることを可能にする。アプリケーション634は形式またはHTMLベースのユーザインターフェイス642と関連付けられ、これは、クエリの結果を表示可能にし、それに対して動作することを可能にする。
【0041】
ミドルウェア650は、カリフォルニア州、レッドウッド・ショアーズのオラクル・コーポレイションから入手可能なFusion Middlewareであってもよく、管理能力および展開プラットフォームを技術プラットフォームに有効に集約する。一般に、ミドルウェア650は、実質的にどのような開発ツール(図示せず)も、どのようなエンタープライズアプリケーション634も、およびどのような検索エンジン626もフレームワーク600に統合可能にする。すなわち、ミドルウェア650は、フレームワーク600の構成要素を容易に交換可能にする。ミドルウェア650は、異なるツール、アプリケーション、または検索エンジンをフレームワーク600に組込可能にする実質的にどのようなミドルウェアであってもよいことを認識すべきである。換言すれば、エンタープライズソフトウェアを設計して走らせるためのプラットフォームを与えるどのようなミドルウェア650も、Fusion Middlewareの代わりに用いられ得る。
【0042】
アプリケーション基礎646は、アプリケーションを構築可能にするよう構成される。すなわち、アプリケーション基礎646は、その上にトランザクションのアプリケーションなどのアプリケーションが構築され得る基礎を与え、その中でアプリケーションが走り得るアプリケーション文脈を与える。1つの実施例では、アプリケーション基礎646は、アプリケーションセキュリティ、ログ取り、およびエラー処理を含み得るがこれらに限定されない一般的なサービスを提供する。一般に、意味論的アプリケーション602はアプリケーション基礎646の上に展開され得、アプリケーション基礎646内に与えられるアプリケーション文脈を共有し得る。
【0043】
図7は、この発明の実施例に従った、アプリケーションをフレームワークに統合する1つの方法を図示するプロセスフロー図である。エンタープライズアプリケーションなどのアプリケーションを、そのアプリケーションに対する検索を実行可能にするフレームワークに統合するプロセス700は、フレームワークがエンタープライズアプリケーションにインターフェイス接続されるステップ704で開始する。フレームワークがエンタープライズアプリケーションにインターフェイス接続されると、ステップ708において、エンタープライズアプリケーションに適切なサービスインターフェイスまたはサービスビーン
が作成される。サービスビーンは、フレームワークを用いてエンタープライズアプリケーションにアクセスできるようにアクションを定義可能にする。
【0044】
適切なサービスインターフェイスまたはビーンが作成されると、ステップ712において、正規ビジネスオブジェクトが作成される。正規ビジネスオブジェクトはデータを定義するよう構成され、データベースまたはメタデータリポジトリなどのリポジトリに格納され得る。ステップ716において、データベースまたはJava(登録商標)クラスに格納されるオブジェクト属性が、ステップ712において作成された正規ビジネスオブジェクトに対応付けられる。ステップ720において、正規ビジネスオブジェクトに対して取られるべきアクションが割当てられる。アクションの割当ては、検索エンジンを正規ビジネスオブジェクトに割当てることを含み得る。
【0045】
ステップ720から、プロセスフローはステップ724に移り、ここで正規ビジネスオブジェクトが意味論的に記述される。次に、ステップ728において、検索エンジンのクローラーを用いて正規ビジネスオブジェクトに索引を付け得る。正規ビジネスオブジェクトの索引付けは、エンタープライズアプリケーションからデータを取ることを含み得る。正規ビジネスオブジェクトに索引が付けられた後、ステップ732において、検索エンジンを用いて索引格納部が検索され得る。正規ビジネスオブジェクトの意味論的記述が検索エンジンによって用いられて、クエリを構築する。索引格納部が検索されると、エンタープライズアプリケーションをフレームワークに統合するプロセスは完了する。
【0046】
図8を参照して、ユーザによって与えられる検索文字列の処理が説明される。図8は、この発明の実施例に従った、ユーザが与えるクエリを処理する1つの方法を図示するプロセスフロー図である。ユーザが与えるクエリを処理するプロセス800は、検索カテゴリが同定されるステップ804で開始する。換言すれば、メタデータリポジトリに格納される正規ビジネスオブジェクトが、検索に用いるために選択される。正規ビジネスオブジェクトが選択された後、ステップ808において検索文字列が入力される。1つの実施例では、意味論的エンジンが、意味論的定義に基づいて、検索文字列が所与のカテゴリに関係していると判断し得る。こうして、意味論的エンジンは、特定の検索文字列を特定の正規オブジェクトに関係付け得る。一例として、文字列「誰がジョン・ドウを雇うか?」を含む検索文字列が、意味論的エンジンによって、従業者である正規オブジェクトに関係付けられ得る。
【0047】
ステップ808において入力される検索文字列は典型的に、ユーザによって入力される。検索文字列が入力されると、ステップ812において、その検索文字列を用いて検索が実行される。検索の実行は、検索文字列を検索エンジンが理解するフォーマットに有効に翻訳し、次にそのフォーマットを、そこから結果が得られるべき索引格納部が理解する別のフォーマットに翻訳することを含む。
【0048】
ステップ816において、索引格納部から検索の結果が得られる。索引格納部内の結果は典型的に、検索中のアプリケーションから得られることを認識すべきである。ステップ820において、結果が次にクリックされるかまたはそうでなければ選択されて、結果が関連付けられるアプリケーションへのアクセスをユーザに与える。ユーザによってアプリケーションが入力された後、ユーザが与えるクエリを処理するプロセスは完了する。
【0049】
図9を参照して、トランザクションのアプリケーションを検索可能にする検索ベースのアプリケーションフレームワークを設定および使用するプロセスが、この発明の実施例に従って説明される。検索ベースのアプリケーションフレームワークを実現するプロセスは、設計者924または開発者が、たとえばトランザクションのアプリケーションなどのアプリケーション928を検査するときに開始する。アプリケーション928を検査して、
アプリケーション928内のどの情報が検索に利用可能であるべきかが判断され得る。設計者924は、アプリケーション928を検査した後、検索に利用可能であるべき正規ビジネスオブジェクトカテゴリ916を作成するか、またはこれに注釈を付ける。正規ビジネスオブジェクトカテゴリ916の作成は一般に、正規ビジネスオブジェクトの作成を伴う。
【0050】
正規ビジネスオブジェクトが作成されると、プラグ接続可能な検索エンジンの一部であり得るクローラー920がアプリケーション928に索引を付けて、アプリケーション928を検索可能にする。このクローリングプロセスは、クローラー920が、正規ビジネスオブジェクトの検索アーティファクトを用いて、所与の正規ビジネスオブジェクトカテゴリ916についての索引を作成できるようにする。これらの索引は次に、クローラー920によって索引格納部912に格納される。
【0051】
ユーザがアプリケーション928を検索することを望む場合、ユーザはフレームワーク900のユーザインターフェイス904を用いて、たとえば自然言語クエリなどのクエリを入力し得る。意味論的エンジン908が、正規ビジネスオブジェクトカテゴリ916を用いて索引格納部912を検索する。1つの実施例では、意味論的エンジン908は、検索エンジン(図示せず)を通じて索引格納部912を有効に間接に検索し得る。意味論的エンジン908は、索引格納部912を用いて適切な索引が見つかると、クエリをアプリケーション928に再び導き得る。クエリがアプリケーション928に再び導かれる前に、クエリは典型的に、まず検索エンジンが理解するフォーマットに、次にアプリケーション928が理解するフォーマットに変換されることを認識すべきである。
【0052】
検索ベースのアプリケーション開発フレームワークは一般に、データベース管理システムに関して実現され得る。1つの好適なデータベース管理システムアーキテクチャは、図10に示される3層のアーキテクチャである。データベース管理システムの中心には、データベース963を格納する中央格納部961またはリポジトリがある。データベース963は典型的に1つ以上のハードドライブに格納され、典型的により大きなコンピュータシステムの一部である。情報はさまざまなフォーマットでデータベース963に格納され得、リレーショナルデータベース管理システムは、情報を格納するためのテーブルに大きく依存している。データベースサーバ965は、データベース963と対話するプログラムのインスタンスである。データベースサーバ965の各インスタンスは、数ある特徴の中で特に、独立してデータベース963にクエリを出し、情報を格納し得る。
【0053】
場合によっては、データベースサーバ965は、グラフィカルユーザインターフェイスなどの使いやすいインターフェイスを含まないことがある。したがって、少なくとも1つのアプリケーションサーバ967が、データベースサーバ965にユーザインターフェイスを与え得る。一例として、アプリケーションサーバ967は、インターネットまたはいずれかの他のネットワーク内のウェブアプリケーションサーバであり得る。アプリケーションサーバ967は、データベースサーバ965を通じてデータベース963にアクセスするための使いやすいメカニズムを与え得る。ウェブブラウザ969を利用して、アプリケーションサーバ967にアクセスすることができる。
【0054】
図11は、本発明の実施例を実現するコンピュータシステム内に存在し得る構成要素のブロック図を示す。コンピュータシステム971は、オペレーティングシステムを含むコンピュータプログラムからの命令を実行するプロセッサ973を含む。プロセッサ973を利用して、意味論的エンジンをたとえば走らせることができる。プロセッサ973は典型的にメモリキャッシュを有するが、プロセッサ973は、命令またはコンピュータコードおよびデータを格納し得るメモリ975を利用してもよい。
【0055】
固定格納部977はコンピュータプログラムおよびデータを格納し得る。固定格納部977は典型的に永続的であり、メモリ975と比べて格納量が多い。データベースのための共通の固定格納部977は複数のハードドライブであるが、固定格納部977はどのような好適な構成要素であってもよいことを理解すべきである。着脱式格納部979は、自身に格納されるコンピュータプログラムおよび/またはデータに移動性を与える。着脱式格納部979は、フロッピー(登録商標)ディスク、テープ、CD/ROM、DVD、フラッシュメモリ装置などを含み得るが、これらに限定されない。
【0056】
メモリ973、固定格納部977および着脱式格納部979は、本発明を実現するコンピュータコードまたはコード装置、本発明で用いるためのデータなどを組込んだコンピュータプログラムを格納および抽出するために利用され得るコンピュータ読取可能な記憶媒体の例を与える。また、たとえばインターネットを含むネットワーク内で、搬送波で具体化されるデータ信号も、コンピュータ読取可能な記憶媒体であり得る。入力装置981は、ユーザがコンピュータシステム971にインターフェイス接続できるようにする。入力装置981はキーボード、マウス、ボタン、ダイヤル、またはいずれかの他の好適な入力メカニズムであり得る。出力装置983は一般に、システム971がユーザに出力を与えることができるようにする。出力装置983は、モニタ、表示画面、LED、プリンタ、または実質的に如何なる他の出力メカニズムも含むが、これらに限定されない。
【0057】
ネットワークインターフェイス985は典型的に、システム971が、ネットワークインターフェイス985が接続されるネットワークにインターフェイス接続できるようにする。コンピュータシステム971のシステムバスアーキテクチャが矢印987によって表わされる。図11に示される構成要素は、多くのコンピュータシステムにおいて見い出され得る。しかし、構成要素は、この発明の思想または範囲から逸脱することなく追加され、削除され、組合せられ得る。たとえば、固定格納部977は、ネットワーク接続を通じてアクセスされるファイルサーバであってもよい。したがって、図11は例示のためであり限定のためではない。
【0058】
この発明の2,3の実施例しか説明されなかったが、この発明は、この発明の思想または範囲から逸脱することなく多くの他の特定的な形態で具体化され得ることを理解すべきである。一例として、検索エンジンはこの発明のアーキテクチャに関してプラグ接続可能であると説明された。しかし、検索エンジンは代わりにアーキテクチャの固定または統合部分であってもよい。
【0059】
トランザクションのアプリケーションであるエンタープライズアプリケーションが、検索ベースのアプリケーションフレームワークを用いて検索されるのに好適であると説明されたが、検索されるアプリケーションはトランザクションのエンタープライズアプリケーションであることに限定されない。たとえば、トランザクションのアプリケーションではないエンタープライズアプリケーション、またはエンタープライズアプリケーションではないトランザクションのアプリケーションが検索され得る。
【0060】
フレームワークにフィルタを含ませて、検索またはクエリに対して得られたより多くの結果をさらに検索可能にしてもよい。たとえば、最初のクエリがデータベース開発のフィールド内で求職を検索した場合、フィルタを適用して、特定の会社に関連付けられるすべての職を除去したり、特定の基本給を指定したりしてもよい。
【0061】
フレームワークの構成要素は一般に、ソフトウェアモジュールである、またはコンピュータコード装置を用いて作成されたモジュールであると説明された。1つの実施例では、フレームワークの構成要素は、この発明の思想または範囲から逸脱することなくハードウェアモジュールとソフトウェアモジュールとの組合せとして、または実質的にハードウェ
アモジュールのみとしてさえ実現され得る。
【0062】
サービスビーンなどのサービスインターフェイスは一般に、検索ベースのアプリケーションフレームワークをサポートするアーキテクチャに含まれていると説明された。上述のように、サービスビーンは、オブジェクトに適用されるべきアクションを表わす。サービスを定義および提供する他のメカニズムがサービスビーンの代わりに実現されてもよい。代替的に、そこから検索結果が得られるアプリケーションを用いるアクションが望まれていない実施例については、サービスビーンは検索ベースのアプリケーションフレームワークに含まれているとは限らないことを認識すべきである。
【0063】
検索は、一旦ユーザが検索ベースのアプリケーションを用いて検索を実行すると、その検索を実行するために入力されたテキストが将来のアクセスのために保存されるよう、保存され得る。同様に、検索の結果は、ユーザが別の検索を実行することなくその検索結果に容易にアクセスできるよう保存され得る。
【0064】
一般に、この発明の方法に関連付けられるステップは大きく異なり得る。ステップは、この発明の思想または範囲から逸脱することなく追加され、削除され、変更され、組合せられ、順序変えされ得る。一例として、クエリに対する応答が得られると発生し得るアクションとして、結果をクリックし、検索されたアプリケーションを入力することが説明されたが、一組の応答に対して取られるアクションは大きく異なり得る。1つの実施例では、カスタムアクションが、対応する正規ビジネスオブジェクトに割当てられる。カスタムアクションが、対応する正規ビジネスオブジェクトに割当てられる。カスタムアクションは、意味論的アプリケーションまたは意味論的アプリケーションが拘束されるトランザクションのアプリケーションへの移行のためのアクションを含み得るが、これらに限定されない。したがって、本発明の例は例示的に考慮されるべきであり、限定的に考慮されるべきではなく、本発明は本明細書中で与えられる詳細に限定されず、添付の請求項の範囲内で修正され得る。
【図面の簡単な説明】
【0065】
【図1】エンタープライズアプリケーションに関連付けられる情報に対して作られるクエリの図表示である。
【図2】この発明の実施例に従った、検索エンジンとアプリケーションとの間のインターフェイスがアプリケーションを検索可能にするシステムのブロック図表示である。
【図3】この発明の実施例に従った、クライアントが複数のアプリケーションを検索できるようにするフレームワークのブロック図表示である。
【図4】この発明の実施例に従った、アクションが取られることを可能にする検索クエリ領域および結果領域を有する表示窓の図表示である。
【図5A】この発明の実施例に従った、アプリケーションを検索可能にする基本ソフトウェアアーキテクチャのブロック図表示である。
【図5B】この発明の実施例に従った、示されるようにこれもまたソフトウェアアーキテクチャに含まれ得る拡張部を有するソフトウェアアーキテクチャ、すなわち図5Aのソフトウェアアーキテクチャ500のブロック図表示である。
【図6】この発明の実施例に従った、トランザクションのアプリケーションにインターフェイス接続する検索ベースのアプリケーションの図表示である。
【図7】この発明の実施例に従った、アプリケーションをフレームワークに統合する1つの方法を図示するプロセスフロー図である。
【図8】この発明の実施例に従った、クエリを処理する1つの方法を図示するプロセスフロー図である。
【図9】この発明の実施例に従った、検索可能なアプリケーションがフレームワーク内にインターフェイス接続されて検索に利用可能になると発生するアクションを示すフローのブロック図表示である。
【図10】データベース管理システムアーキテクチャのブロック図表示である。
【図11】この発明の実施例に関連して利用され得る計算システムのブロック図表示である。
【特許請求の範囲】
【請求項1】
少なくとも1つのトランザクションのアプリケーションを検索可能にするための方法であって、
前記少なくとも1つのトランザクションのアプリケーションに関連付けられる正規オブジェクトを作成するステップと、
前記少なくとも1つのトランザクションのアプリケーションに関連付けられるデータに索引を付けるステップと、
前記正規オブジェクトに関連付けられる情報を用いて索引格納部を作成するステップとを備え、前記索引格納部は、索引を付けられた前記データに関連付けられ、前記方法はさらに、
意味論エンジンを前記索引格納部にインターフェイス接続するステップを備える、方法。
【請求項2】
前記意味論エンジンにクエリを与えるステップをさらに含み、前記クエリは第1のフォーマットを有し、前記意味論エンジンは、前記クエリを前記第1のフォーマットから第2のフォーマットに翻訳するよう構成され、前記第2のフォーマットは検索エンジンに関連付けられており、前記方法はさらに、
前記検索エンジンを用いて前記索引格納部にアクセスするステップを含む、請求項1に記載の方法。
【請求項3】
前記第2のフォーマットを有する前記クエリに関連付けられる結果が、前記索引格納部内に示されているかどうかを判断するステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記少なくとも1つのトランザクションのアプリケーションから、前記結果に関連付けられる情報を得るステップと、
前記情報を表示するステップとをさらに含み、前記情報を表示するステップは、前記情報に対するアクションを実行可能にするステップを含む、請求項3に記載の方法。
【請求項5】
前記正規オブジェクトをメタデータ格納部に格納するステップをさらに含む、請求項1に記載の方法。
【請求項6】
前記データに索引を付けるステップは、前記データをクロールするステップを含む、請求項1に記載の方法。
【請求項7】
検索エンジンを、前記意味論エンジンおよび少なくとも1つの前記アプリケーションにインターフェイス接続するステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記検索エンジンを、前記意味論エンジンおよび少なくとも1つの前記アプリケーションにインターフェイス接続するステップは、スコアラー、クローラー、索引エンジン、およびクエリエンジンを、前記検索エンジンに与えるステップを含む、請求項7に記載の方法。
【請求項9】
アプリケーションに関連付けられる情報を要求するよう構成されるクエリを処理するための方法であって、
正規ビジネスオブジェクトを選択するステップを備え、前記正規ビジネスオブジェクトは前記アプリケーションに関連付けられており、前記方法はさらに、
前記クエリに関連付けられる情報を用いて検索を実行するステップを備え、前記検索は前記正規ビジネスオブジェクトに関連付けられており、前記検索を実行するステップは、前記アプリケーションに関連付けられる情報を含む索引格納部を利用するステップを含み
、前記方法はさらに、
前記索引格納部から前記検索の結果を得るステップを備える、方法。
【請求項10】
前記検索の前記結果を用いて前記アプリケーションにアクセスするステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記検索の前記結果が表示され、
前記検索の前記結果を用いて前記アプリケーションにアクセスするステップは、表示された前記結果を用いて前記アプリケーションにアクセスするステップを含む、請求項10に記載の方法。
【請求項12】
ユーザインターフェイスディスプレイに前記情報を入力するステップをさらに含み、
前記索引格納部から前記検索の前記結果を得るステップは、前記ユーザインターフェイスディスプレイに前記結果を表示するステップを含む、請求項9に記載の方法。
【請求項1】
少なくとも1つのトランザクションのアプリケーションを検索可能にするための方法であって、
前記少なくとも1つのトランザクションのアプリケーションに関連付けられる正規オブジェクトを作成するステップと、
前記少なくとも1つのトランザクションのアプリケーションに関連付けられるデータに索引を付けるステップと、
前記正規オブジェクトに関連付けられる情報を用いて索引格納部を作成するステップとを備え、前記索引格納部は、索引を付けられた前記データに関連付けられ、前記方法はさらに、
意味論エンジンを前記索引格納部にインターフェイス接続するステップを備える、方法。
【請求項2】
前記意味論エンジンにクエリを与えるステップをさらに含み、前記クエリは第1のフォーマットを有し、前記意味論エンジンは、前記クエリを前記第1のフォーマットから第2のフォーマットに翻訳するよう構成され、前記第2のフォーマットは検索エンジンに関連付けられており、前記方法はさらに、
前記検索エンジンを用いて前記索引格納部にアクセスするステップを含む、請求項1に記載の方法。
【請求項3】
前記第2のフォーマットを有する前記クエリに関連付けられる結果が、前記索引格納部内に示されているかどうかを判断するステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記少なくとも1つのトランザクションのアプリケーションから、前記結果に関連付けられる情報を得るステップと、
前記情報を表示するステップとをさらに含み、前記情報を表示するステップは、前記情報に対するアクションを実行可能にするステップを含む、請求項3に記載の方法。
【請求項5】
前記正規オブジェクトをメタデータ格納部に格納するステップをさらに含む、請求項1に記載の方法。
【請求項6】
前記データに索引を付けるステップは、前記データをクロールするステップを含む、請求項1に記載の方法。
【請求項7】
検索エンジンを、前記意味論エンジンおよび少なくとも1つの前記アプリケーションにインターフェイス接続するステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記検索エンジンを、前記意味論エンジンおよび少なくとも1つの前記アプリケーションにインターフェイス接続するステップは、スコアラー、クローラー、索引エンジン、およびクエリエンジンを、前記検索エンジンに与えるステップを含む、請求項7に記載の方法。
【請求項9】
アプリケーションに関連付けられる情報を要求するよう構成されるクエリを処理するための方法であって、
正規ビジネスオブジェクトを選択するステップを備え、前記正規ビジネスオブジェクトは前記アプリケーションに関連付けられており、前記方法はさらに、
前記クエリに関連付けられる情報を用いて検索を実行するステップを備え、前記検索は前記正規ビジネスオブジェクトに関連付けられており、前記検索を実行するステップは、前記アプリケーションに関連付けられる情報を含む索引格納部を利用するステップを含み
、前記方法はさらに、
前記索引格納部から前記検索の結果を得るステップを備える、方法。
【請求項10】
前記検索の前記結果を用いて前記アプリケーションにアクセスするステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記検索の前記結果が表示され、
前記検索の前記結果を用いて前記アプリケーションにアクセスするステップは、表示された前記結果を用いて前記アプリケーションにアクセスするステップを含む、請求項10に記載の方法。
【請求項12】
ユーザインターフェイスディスプレイに前記情報を入力するステップをさらに含み、
前記索引格納部から前記検索の前記結果を得るステップは、前記ユーザインターフェイスディスプレイに前記結果を表示するステップを含む、請求項9に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公表番号】特表2009−531791(P2009−531791A)
【公表日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願番号】特願2009−503211(P2009−503211)
【出願日】平成19年3月27日(2007.3.27)
【国際出願番号】PCT/US2007/065005
【国際公開番号】WO2007/121050
【国際公開日】平成19年10月25日(2007.10.25)
【出願人】(502303739)オラクル・インターナショナル・コーポレイション (97)
【Fターム(参考)】
【公表日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願日】平成19年3月27日(2007.3.27)
【国際出願番号】PCT/US2007/065005
【国際公開番号】WO2007/121050
【国際公開日】平成19年10月25日(2007.10.25)
【出願人】(502303739)オラクル・インターナショナル・コーポレイション (97)
【Fターム(参考)】
[ Back to top ]