(57)【要約】      （修正有）【課題】  ビジネス・オブジェクトのようなエンティティの、現在のコンテキストに関連付けられたアクションを発行するコンピューティング・システムを提供する。【解決手段】そのコンピューティング・システムは、エンティティを記憶するコンポーネント、エンティティに関連付けられたアクションを記憶するコンポーネント、並びに、エンティティの現在のコンテキストおよびエンティティの現在のコンテキストに関連付けられたアクションについての情報を提供するソフトウェア・コンポーネントを備える。コンピューティング・システムには、さらに、エンティティの現在のコンテキストに関連付けられたアクションを要求して表示するクライアント・システムを含むこともできる。エンティティに関連付けられたアクションの、文脈発行のための方法も提供する。その方法は、エンティティの現在のコンテキストを提供する。【選択図】  図１
2006107436.tif 000002
【特許請求の範囲】
【請求項１】
エンティティの現在のコンテキストに関連付けられたアクションを発行するためのコンピューティング・システムであって、
（ａ）少なくとも１つのコンテキストを持つエンティティを記憶するコンポーネントと、
（ｂ）前記エンティティから切り離して、前記エンティティに関連付けられたアクションを記憶するコンポーネントと、
（ｃ）エンティティの現在のコンテキストと前記現在のコンテキストに関連付けられたアクションとに関する情報を提供するために、エンティティを記憶する前記コンポーネントおよびアクションを記憶する前記コンポーネントに結合されたソフトウェア・コンポーネントと、
を備えることを特徴とするコンピューティング・システム。
【請求項２】
前記エンティティの現在のコンテキストおよび前記現在のコンテキストに関連付けられたアクションを要求するクライアント・アプリケーションをさらに備えることを特徴とする請求項１に記載のコンピューティング・システム。
【請求項３】
クライアント・アプリケーションは、エンティティの現在のコンテキストに関連付けられたアクションを表示することを特徴とする請求項２に記載のコンピューティング・システム。
【請求項４】
前記ソフトウェア・コンポーネントは、
（ａ）前記エンティティの現在のコンテキストを特定するコンテキスト・プロバイダ・モジュールと、
（ｂ）アクションを記憶する前記コンポーネントに問い合わせて、前記エンティティの現在のコンテキストに関連付けられたアクションを検索するアクション・プロバイダ・モジュールと、
を備えることを特徴とする請求項１に記載のコンピューティング・システム。
【請求項５】
前記ソフトウェア・コンポーネントは、多数のコンテキスト・レゾルバをさらに備え、前記レゾルバの各々がコンテキストを反映するキーワードを戻すことを特徴とする請求項４に記載のコンピューティング・システム。
【請求項６】
前記ソフトウェア・コンポーネントは、サードパーティによって提供される追加コンテキストを統合することを特徴とする請求項１に記載のコンピューティング・システム。
【請求項７】
アクションを記憶する前記コンポーネントは、サードパーティによって提供される追加アクションを統合することを特徴とする請求項１のコンピューティング・システム。
【請求項８】
エンティティの現在のコンテキストに関連付けられたアクションを、発行するためのコンピュータにより実行される方法であって、
（ａ）エンティティに関連付けられた少なくとも１つのコンテキストを求める要求を受け取り次第、前記コンテキストを提供するステップと、
（ｂ）前記エンティティの現在のコンテキストに関連付けられたアクションを求める要求を受け取り次第、前記アクションを提供するステップと、
を備えることを特徴とするコンピュータにより実行される方法。
【請求項９】
少なくとも１つのコンテキストを提供する前記ステップは、
（ａ）少なくとも１つのコンテキストについての情報を取得するステップと、
（ｂ）少なくとも１つのコンテキストのオブジェクト・インスタンスを作成するステップと、
をさらに含むことを特徴とする請求項８に記載のコンピュータにより実行される方法。
【請求項１０】
前記少なくとも１つのコンテキストのオブジェクト・インスタンスを含むコンテキスト・ハッシュ・オブジェクトを作成するステップをさらに含むことを特徴とする請求項９に記載のコンピュータにより実行される方法。
【請求項１１】
アクションを提供する前記ステップは、
（ａ）少なくとも１つのコンテキストを反映するキーワードを特定するステップと、
（ｂ）キーワードを注釈として含むアクションを検索するステップと、  
をさらに含むことを特徴とする請求項８に記載のコンピュータにより実行される方法。
【請求項１２】
キーワードを注釈として含むアクションを検索するステップが、注釈としてキーワードのすべてだけを含むアクションを検索するステップとをさらに含むことを特徴とする請求項１１に記載のコンピュータにより実行される方法。
【請求項１３】
キーワードを注釈として含むアクションを検索するステップが、注釈としてキーワードの少なくとも１つを含むアクションを検索するステップをさらに含むことを特徴とする請求項１１に記載のコンピュータにより実行される方法。
【請求項１４】
エンティティの現在のコンテキストに関連付けられたアクションを表示するステップをさらに含むことを特徴とする請求項８に記載のコンピュータにより実行される方法。
【請求項１５】
コンピュータによって実行される時に、エンティティの現在のコンテキストに関連付けられたアクションを発行するための方法をコンピュータに行わせる、コンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記方法は、
（ａ）エンティティに関連付けられた少なくとも１つのコンテキストを求める要求を受け取り次第、前記コンテキストを提供するステップと、
（ｂ）前記エンティティの前記現在のコンテキストに関連付けられたアクションを求める要求を受け取り次第、前記アクションを提供するステップと、
を備えることを特徴とするコンピュータ読取り可能媒体。
【請求項１６】
少なくとも１つのコンテキストを提供する前記ステップは、
（ａ）少なくとも１つのコンテキストについての情報を取得するステップと、
（ｂ）少なくとも１つのコンテキストに対するオブジェクト・インスタンスを作成するステップと、
をさらに含むことを特徴とする請求項１２に記載のコンピュータ読取り可能媒体。
【請求項１７】
前記少なくとも１つのコンテキストのオブジェクト・インスタンスを含むコンテキスト・ハッシュ・オブジェクトを作成するステップをさらに含むことを特徴とする請求項１６に記載のコンピュータ読取り可能媒体。
【請求項１８】
アクションを提供する前記ステップは、
（ａ）少なくとも１つのコンテキストを反映するキーワードを特定するステップと、
（ｂ）前記キーワードを注釈として含むアクションを検索するステップと、
をさらに含むことを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項１９】
前記キーワードを注釈として含むアクションを検索する前記ステップは、注釈として前記キーワードのすべてだけを含むアクションを検索するステップをさらに含むことを特徴とする請求項１８に記載のコンピュータ読取り可能媒体。
【請求項２０】
キーワードを注釈として含むアクションを検索する前記ステップは、注釈として前記キーワードの少なくとも１つを含むアクションを検索するステップをさらに含むことを特徴とする請求項１８に記載のコンピュータ読取り可能媒体。
【請求項２１】
前記エンティティの前記現在のコンテキストに関連付けられたアクションを表示するステップをさらに備えることを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項２２】
エンティティに関連付けられたアクションを管理するコンピュータ構築方法であって、前記エンティティにアクションを関連付けることを求める要求を受け取り次第、受け取られた入力に従って、前記エンティティに前記アクションを関連付けるステップ、
を備えることを特徴とするコンピュータにより実行される方法。
【請求項２３】
前記エンティティにアクションを関連付ける前記ステップは、アクションタイプを指定するステップをさらに含むことを特徴とする請求項２２に記載のコンピュータにより実行される方法。
【請求項２４】
前記アクションタイプは、「ウェブ・ページに行く」であることを特徴とする請求項２３に記載のコンピュータにより実行される方法。
【請求項２５】
前記アクションタイプは、「ウェブ・ページに行く（拡張）」であることを特徴とする請求項２３に記載のコンピュータにより実行される方法。
【請求項２６】
前記アクションタイプは、「カスタム・アクションを実行する」であることを特徴とする請求項２３に記載のコンピュータにより実行される方法。
【請求項２７】
前記アクションを編集することを求める要求を受け取り次第、受け取られた入力に従って、前記エンティティに関連付けられたアクションのプロパティを変更するステップをさらに備えることを特徴とする請求項２２に記載のコンピュータにより実行される方法。
【請求項２８】
アクション・メニューを管理することを求める要求を受け取り次第、受け取られた入力に従って、前記エンティティに関連付けられたアクションを発行するアクション・メニューのプロパティを調整するステップをさらに備えることを特徴とする請求項２２に記載のコンピュータにより実行される方法。
【請求項２９】
アクションタイプが「ウェブ・ページに行く」である場合、エンティティにアクションを関連付ける前記ステップは、受け取られた入力に従ってウェブ・ページのＵＲＬおよびパラメータを指定するステップをさらに含むことを特徴とする請求項２３に記載のコンピュータにより実行される方法。
【請求項３０】
アクションタイプが「ウェブ・ページに行く（拡張）」である場合、エンティティにアクションを関連付ける前記ステップは、受け取られた入力に従ってウェブ・ページのＵＲＬ、パラメータ、およびフォーマット文字列を指定するステップをさらに含むことを特徴とする請求項２３に記載のコンピュータにより実行される方法。
【請求項３１】
アクションタイプが「カスタム・アクションを実行する」である場合、エンティティにアクションを関連付ける前記ステップは、受け取られた入力に従ってカスタム・アクションのファイル名を指定するステップをさらに含むことを特徴とする請求項２３に記載のコンピュータにより実行される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジネス・オブジェクトに関し、特に、ビジネス・オブジェクトに関連付けられたアクションの文脈発行を可能にするコンピューティング・システムおよびプログラムに関する。
【背景技術】
【０００２】
ビジネスは、ビジネスを構成するオブジェクトの観点と、そのオブジェクトがどのように相互作用するかという観点とからモデル化することができる。通常、ビジネス・オブジェクトは、ビジネスの運営にとって意味のある物事、プロセスまたは事象を表す。例えば、ビジネス・オブジェクトは、在庫、請求書、顧客または販売員を表すことができる。ビジネス・オブジェクトはまた、購入、販売、または、ビジネスを行う際に生じるその他の種類の取引も、表すことができる。その結果生じるモデルは、通例、ビジネス・オブジェクト・モデルと呼ばれる。
【０００３】
ビジネス・オブジェクト・モデルの従来のアーキテクチャにおいては、各ビジネス・オブジェクトに関するデータ、ビジネス・ルールおよびアクション（操作）は、論理的および／または物理的に、ビジネス・オブジェクトと強く結びつけられている。例えば、ビジネス・オブジェクト並びにその関連付けられたデータ、ビジネス・ルールおよびアクションは、物理的に１つのファイル・サーバに一緒に記憶されるか、または、論理的に１つの単位として扱われることができる。図１は、ビジネス・オブジェクトとそれらの関連付けられたアクションとを強く結びつける、従来型のひとつの方法を表す。通常、ビジネス・オブジェクトに関連付けられたアクションは、ある活動をユーザにどのように表示するか、および、その活動を行うために必要な論理をどのように実行するかにについて記載したメタデータの一部である。図１に記載された例では、ビジネス・オブジェクトは、ＳＡＰ１０２、ＳＩＥＢＥＬ１０４およびＳＱＬ１０６のような、企業データ管理システムに記憶される。ビジネス・オブジェクトはまた、その他のデータ管理システム１０８にも記憶されることができる。データ管理システム１０２〜１０８は、アダプタ１１２を備え、クライアント・アプリケーション１２０はこのアダプタを通じてビジネス・オブジェクトおよびそれらの関連付けられたアクションにアクセスし、そのアクションを使用することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ビジネス・オブジェクトと併せて、それらの関連付けられたデータ、ルールおよびアクションを記憶するという従来の方法には、幾つかの制限がある。例えば、ビジネス・オブジェクトとそれらの関連付けられたアクションとの強い結びつきは、ビジネス・オブジェクトに関連付けられた機能性の拡大を制限する。ユーザは、新規アクションをうまい具合にそのビジネス・オブジェクトに関連付けることができない。逆に、アクションとビジネス・オブジェクトとが別々に記憶された場合、ユーザは、ユーザの嗜好によりアクションとビジネス・オブジェクトとを関連付けることが出来る。例えば、アクションＡおよびＢはビジネス・オブジェクト１に関連付けられ、アクションＣおよびＤはビジネス・オブジェクト２に関連付けられている。従来的には、アクションＡおよびＢはビジネス・オブジェクト１に拘束され、アクションＣおよびＤはビジネス・オブジェクト２に拘束される。ビジネス・オブジェクトに関連する機能性は、アクションとそれらが関連付けられたビジネス・オブジェクトとの結びつきに与えることによって、動的に調整することができ、それによって、ユーザは追加アクションをビジネス・オブジェクトに容易に関連付けることができるようになる。例えば、アクションＡ、Ｂ、ＣおよびＤが、ビジネス・オブジェクト１および２から切り離された場合、ユーザは、これらのアクションを、ビジネス・オブジェクト１と２のどちらとでも自由に関連付けることができる。これによってビジネス・オブジェクトが、より広範な機能性を持つことを可能にする。
【０００５】
さらに、今日の企業アプリケーションには、ビジネス・オブジェクトを用いてユーザが行えることに影響を与える様々な多数の要因が存在する。これらの要因には、ユーザは誰であるか、そのユーザはどんな種類のデータを見ているか、そのユーザはワークフローのどこにいるか、などが含まれる。これらの要因は、ユーザがビジネス・オブジェクトを操作する文脈（ｃｏｎｔｅｘｔ）を構成する。よって、コンテキストはビジネス・オブジェクトが使用される環境に関するデータを捉える情報の一部である。コンテキストは、データ、ユーザの役割、アプリケーション設定などから推測することができる。
【０００６】
異なるアクションは、異なるコンテキストにおいて、同じビジネス・オブジェクトに関連付けることができる。例えば、ビジネス・オブジェクトを使用中のユーザの役割は、ビジネス・オブジェクト上でユーザがどのようなアクションを行うことができるかに影響を与える。「顧客」のようなビジネス・オブジェクトでは、「顧客」ビジネス・オブジェクトのユーザが管理者の場合では、「顧客」ビジネス・オブジェクトに関連付けられたアクションには、「アクションを編集する」および／または「アクションを追加する」を含むことができる。これら２つのアクションによって、管理者は、ビジネス・オブジェクトに関連付けられた既存のアクションを変更すること、および新規アクションをビジネス・オブジェクトに関連付けることができるようになる。一方、「顧客」ビジネス・オブジェクトのユーザが管理者以外の人物の場合では、ユーザは、「顧客」ビジネス・オブジェクトに関連付けられたアクションを編集または追加することができない可能性がある。異なるアクションが、異なるコンテキストにおいて、同じ１つのビジネス・オブジェクトに関連付けることができるので、現在のコンテキストにおいてビジネス・オブジェクトに関連付けられたアクションについて、ユーザに知らされることが望ましい。これは、ビジネス・オブジェクトに関連付けられたアクションの文脈発行を意味する。要約すれば、アクションとビジネス・オブジェクトとの動的な結びつきを可能にするように、ビジネス・オブジェクトをそれらの関連付けられたアクションから切り離す、ビジネス・オブジェクト・モデルを求めるニーズが存在する。また、ビジネス・オブジェクトに関連付けられたアクションの文脈発行を求めるニーズも存在する。本発明は、これらのニーズを満たすことを目指すコンピューティング・システムおよびプログラムを提供する。
【課題を解決するための手段】
【０００７】
本発明は、１つ以上のコンテキストを持つビジネス・オブジェクトのようなエンティティに関連付けられたアクションの発行を可能にするコンピューティング・システムを提供することによって、上記ニーズに応える。コンピューティング・システムは、エンティティを、その関連付けられたアクションから切り離す。コンピューティング・システムはまた、エンティティの現在のコンテキストと現在のコンテキストにおいてそのエンティティに関連付けられたアクションとに関する情報を提供する、ソフトウェア・コンポーネントも含む。コンピューティング・システムは、さらに、エンティティを使用し、１つ以上のコンテキストにおいてそのエンティティに関連付けられたアクションを表示する、クライアント・アプリケーションを含むことができる。本発明のその他の形態は、１つ以上のコンテキストにおいてエンティティに関連付けられたアクションの、文脈発行のための方法を提供する。本発明のさらなる形態は、ユーザがエンティティに関連付けられたアクションを管理してそのアクションへのアクセスを可能にする、複数のユーザ・インターフェースを提供する。
【０００８】
本発明の一実施形態例は、多数のコンポーネントをホストするコンピューティング・システムを提供する。あるコンポーネントは、エンティティを記憶する。アクション・メタデータストアと呼ばれる別のコンポーネントは、エンティティに関連付けられたアクションを記憶する。コンピューティング・システムはまた、エンティティが現在属しているコンテキストおよびそのコンテキストにおいてそのエンティティに関連付けられたアクションに関する情報を提供する、ソフトウェア・コンポーネントも含む。コンピューティング・システムはさらに、１つ以上のエンティティを使用する、１つ以上のクライアント・アプリケーションを含むことができる。クライアント・アプリケーションは、エンティティが属するコンテキスト、および、そのコンテキストにおいてそのエンティティに関連付けられたアクションを要求する。クライアント・アプリケーションは、そのコンテキストにおいてそのエンティティに関連付けられたアクションを、表示することができる。
【０００９】
本発明の実施形態例では、コンピューティング・システムに含まれるソフトウェア・コンポーネントは、エンティティが属している現在のコンテキストおよび現在のコンテキストにおいてエンティティに関連付けられたアクションについての情報を提供する。より具体的には、ソフトウェア・コンポーネントは、エンティティに関連付けられた１つ以上のコンテキストを特定するコンテキスト・プロバイダ・モジュールを含む。ソフトウェア・コンポーネントはさらに、アクション・メタデータストアに問い合わせ、１つ以上のコンテキストにおいてエンティティに関連付けられたアクションを検索するアクション・プロバイダ・モジュールを含む。アクション・プロバイダ・モジュールは、そのアクションについての情報を、そのコンテキストにおいてそのエンティティを使用するクライアント・アプリケーションに戻すことが好ましい。クライアント・アプリケーションは、そのコンテキストでそのエンティティに関連付けられたアクションの表示を含め、そのアクションを用いて様々な機能を果たすことができる。
【００１０】
本発明の別の形態に従って、ソフトウェア・コンポーネントは、さらに、複数のコンテキスト・レゾルバを含むこともできる。各々のコンテキスト・レゾルバはひとつのコンテキストに対応する。コンテキスト・レソルバは、コンテキストを、そのコンテキストを特定するキーワードに翻訳する。あるコンテキストにおいてエンティティに関連付けられたアクションを求める要求を受け取り次第、アクション・プロバイダ・モジュールは、そのコンテキスト情報を複数のコンテキスト・レゾルバに渡し、そのレゾルバは、そのコンテキストに対応する一式のキーワードを戻す。アクション・プロバイダ・モジュールは、そのキーワードを含むクエリーを構築し、クエリーをアクション・メタデータストアに送る。アクション・メタデータストアは、アクションに１つ以上のキーワードで注釈を付ける。各アクションは、「コンビネーション・モード」と呼ばれるフィールドを持つことが好ましい。アクションの「コンビネーション・モード」フィールドが「すべて」に設定されている場合、アクションは、そのアクションに注釈を付けるキーワードのすべてを含むクエリーが受け取られ次第、戻される。「コンビネーション・モード」フィールドが「いずれか」と設定されている場合、アクションは、そのアクションに注釈を付ける少なくとも１つのキーワードを含むクエリーが受け取られ次第、検索される。
【００１１】
本発明の別の形態は、エンティティに関連付けられたアクションを管理するかまたはアクションにアクセスするための、複数のユーザ・インターフェースをユーザに提供する。ユーザが管理者として行動すること、および、エンティティに関連付けられたアクションを管理することを可能にする管理ユーザ・インターフェースが提供される。管理ユーザ・インターフェースは、管理者が新規アクションをエンティティに関連付けることを可能にする。インターフェースはまた、管理者がアクションのプロパティを変更することも可能にする。管理ユーザ・インターフェースはまた、管理者が、アクション・メニュー、すなわち現在のコンテキストにおいてエンティティに関連付けられたアクションを表示するユーザ・インターフェースを管理することも可能にする。
【００１２】
本発明は、さらに、エンティティに関連付けられたアクション・メニューを作動させるための方法を提供する。アクション・メニューには、主要な３つの状態、すなわちデフォルト状態、フォーカス／マウス・オーバー状態およびメニュー状態がある。不作動または非フォーカス状態の時、アクション・メニューは、例えばアイコンによって表されるような、デフォルト状態にある。アイコンにタブが付けられフォーカスされたか、またはアクション・メニューを表すアイコンにマウスのようなポインティング装置が載せられた時、アクション・メニューはデフォルト状態からフォーカス／マウス・オーバー状態に移行することができる。アクション・メニューを表すアイコンをユーザが作動させ、アクション・メニューがフォーカス／マウス・オーバー状態になった時、アクション・メニューはメニュー状態に移行し、現在のコンテキストにおいてエンティティに関連付けられたアクションを完全に表示する。
【００１３】
本発明のさらなる形態は、アクション・ウェブ・パーツを提供する。アクション・ウェブ・パーツは、エンティティに関連付けられたアクションのリストを、様々なスタイルで表示する。ユーザは、アクション・ウェブ・パーツに関連付けられたプロパティを修正することができる。ユーザはまた、アクション・ウェブ・パーツを編集モードに切り替えてアクション項目をドラッグ・アンド・ドロップすることによって、アクション・ウェブ・パーツのアクションの表示順序を指定することができる。
【００１４】
要約すれば、本発明は、エンティティをそれらの関連付けられたアクションから切り離すコンピューティング・システムを提供する。本発明はさらに、１つ以上のコンテキストにおいてエンティティに関連付けられたアクションを表示するための方法を提供する。本発明はさらに、エンティティに関連付けられたアクションを管理してそのアクションへのアクセスを可能にする、複数のユーザ・インターフェースを提供する。その結果として本発明は、アクションおよびエンティティの動的な結びつきを可能にし、エンティティに関連付けられたアクションの文脈発行を可能にする。
【発明を実施するための最良の形態】
【００１５】
本発明は、ビジネス・オブジェクトの現在のコンテキストに関連付けられたアクションを発行するための、コンピューティング・システム、コンピュータ構築方法、および複数のユーザ・インターフェースを対象とする。本発明の形態は、ビジネス・オブジェクトおよびそれらの関連付けられたアクションを別々に記憶するコンピューティング・システムに組み入れられることができる。加えて、本発明の形態は、ビジネス・オブジェクトの現在のコンテキストおよび同コンテキストにおいてそのビジネス・オブジェクトに関連付けられたアクションに関する情報を提供する、コンピュータ構築方法に組み入れられることもできる。さらに、本発明の形態は、ビジネス・オブジェクトに関連付けられたアクションをユーザが管理してそのアクションへのアクセスを可能にする複数のユーザ・インターフェースに組み入れられることもできる。
【００１６】
本発明は主に、単一コンピューティング・システムとの関連で記載される。しかしながら、本発明の形態はまた、分散コンピューティング環境においても構築されることができる。例えば、ビジネス・オブジェクトおよびそれらの関連付けられたアクションは、異なるデータベース・サーバに、別々にかつ遠く離れて記憶されることができる。ビジネス・オブジェクトおよびそれらの関連付けられたアクションを使用するクライアント・アプリケーションは、ビジネス・オブジェクトの現在のコンテキストおよび同コンテキストにおいてビジネス・オブジェクトに関連付けられたアクションについての情報を提供するソフトウェア・コンポーネントを作動させるシステムから切り離されて、異なるクライアント・システム上で作動することができる。さらに本発明は主に、ビジネス・オブジェクトに関連付けられたアクションを管理してそのアクションにアクセスすることに関連して記載されるが、当業者であれば、本発明がプログラミング・オブジェクト、ユーザ・インターフェース・オブジェクトなどのような、その他のデータ・オブジェクトにも適用できることを正しく認識することができるだろう。この理由から、以下、「ビジネス・オブジェクト」の代わりに、「エンティティ」という用語が使用される。
【００１７】
以下の記載では、まず、本発明を実施することのできるコンピューティング・システムについて記載する。次に、エンティティの現在のコンテキストと同コンテキストにおいてエンティティに関連付けられたアクションとに関する情報を提供するための、コンピュータ構築方法について記載する。そして最後に、エンティティに関連付けられたアクションの管理およびアクションへのアクセスを可能にする、複数のユーザ・インターフェースについて記載する。本願明細書に添付された図解例は網羅的であること、または、開示された正にその形態にのみ本発明を限定することを意図しているものではない。同様に、本願明細書に記載された手順は、同一結果を得るために、同一または異なる順序によって、その他の手順と交換可能であり、または、諸手順を組み合わせたものであることができる。
【００１８】
図２は、本発明の実施に適したコンピューティング・システム例２００を表す。従来的には、エンティティおよびそれらに関連付けられたアクションは、上記の通り、物理的または論理的に強く結び付けられる。エンティティおよび関連付けられたアクションのこの強い結びつきは、アクションおよびエンティティとの動的な結びつきを制限する。この強い結びつきはまた、エンティティに関連付けられたアクションを文脈表示する能力も制限する。これらの制限に対処するために、本発明は、エンティティをそれらの関連付けられたアクションから切り離すコンピューティング・システム２００を提供する。例えば、図２に示された通り、エンティティは、ＳＡＰ２０２、ＳＩＥＢＥＬ２０４、ＳＱＬ２０６またはその他の種類のデータ管理アプリケーション２０８のような、データ管理アプリケーションに記憶される。これらのエンティティに関連付けられたアクションは、アクション・メタデータストア２１０と呼ばれる場所に集められ、この場所はアクションに関連付けられたエンティティが置かれるデータ管理アプリケーション２０２〜２０８からは切り離されている。データ管理アプリケーション２０２〜２０８は、アダプタ２１２を通じてアクション・メタデータストア２１０と交信する。コンピューティング・システム２００のアーキテクチャ・レイアウトは、アクションおよびエンティティの動的な結びつきを可能にする。その理由は、アクションがもはやエンティティの統合された一部ではないためである。このようなコンピューティング・システム２００はまた、異なるコンテキストにおいてエンティティに関連付けられたアクションに関するコンテキスト情報を提供する方法向けの、プラットフォームも提供する。図６Ａ〜図６Ｃは、このような方法の一構築例を表し、以下に詳しく考察される。
【００１９】
コンピューティング・システム２００は、さらに、ソフトウェア・コンポーネント２１４を含む。ソフトウェア・コンポーネント２１４は、エンティティを使用するクライアント・アプリケーション１２０に、現在のコンテキストにおいてどのようなアクションがエンティティに関連付けられているかを知らせる。本発明では、コンテキストは、エンティティが使用される環境に関するデータを捉える情報の一部である。エンティティは１つ以上のコンテキストを持つことができる。例えば、エンティティは、クライアント・アプリケーション１２０についての情報を捉えるためのコンテキストを持つことができる。エンティティはまた、そのエンティティを使用中のユーザの役割に関する情報を捉えるコンテキストも持つことができる。エンティティはさらに、そのエンティティ自体についての情報を捉えるコンテキストも持つことができる。例えば、「顧客」エンティティは、同時に３つのコンテキストを持つことができる。すなわち、「顧客」エンティティ自体についての情報を捉え顧客ＩＤのような情報を提供するエンティティ・コンテキストと、ユーザの同一性を提供する役割コンテキストと、そのエンティティを使用中のクライアント・アプリケーション１２０を特定するアプリケーション・コンテキストとである。
【００２０】
本発明の一実施態様例では、ソフトウェア・コンポーネント２１４は、２つのモジュール、すなわち、コンテキスト・プロバイダ２１６およびアクション・プロバイダ２１８、を含む。図３に関して以下により詳しく記載される通り、コンテキスト・プロバイダ２１６は、作業環境、すなわち、クライアント・アプリケーション１２０によってエンティティが操作され続けているコンテキストについての情報を提供する。アクション・プロバイダ２１８は、現在のコンテキストにおいてどのようなアクションがエンティティに関連付けられるかについての情報を提供する。
【００２１】
本発明の一部の実施態様では、ソフトウェア・コンポーネント２１４にはさらに、一式のコンテキスト・レゾルバ２２０が含まれる。コンテキスト・レゾルバ２２０は、コンテキストをキーワードに翻訳する。アクション・プロバイダ２１８は、このコンテキスト・レゾルバ２２０によって提供されたキーワードを使用して、クエリーを構築する。アクション・プロバイダ２１８は、アクション・メタデータストア２１０にクエリーを送って、そのキーワードにより注釈を付けられたアクションを探し出す。
【００２２】
図３は、図２に記載されたコンピューティング・システム２００を用いて、本発明の一構築例のデータフローの経路を表す。図３の中で、クライアント・アプリケーション１２０は、特定エンティティのすべての組み込まれたコンテキストを求める要求を送る。例えばエンティティを選択して同エンティティに関連付けられたアクションを監視するためのコマンドを発行することによって、ユーザがそのエンティティに関心を示し次第、クライアント・アプリケーション１２０は、このような要求を開始することができる。本発明の一部の実施態様においては、クライアント・アプリケーション１２０は、ソフトウェア・コンポーネント２１４、具体的には、ソフトウェア・コンポーネント２１４のコンテキスト・プロバイダ２１６に要求を送る。
【００２３】
本発明のこの実施態様例では、コンテキスト・プロバイダ２１６は、エンティティの組み込まれたコンテキストについての情報を取得する。コンテキスト・プロバイダ２１６は、その後、すべての組み込まれたコンテキストのオブジェクト・インスタンスを作成する。コンテキスト・プロバイダ２１６は、その後、コンテキスト・ハッシュ・オブジェクトを作成するが、そのオブジェクトは、そのエンティティのすべての組み込まれたコンテキストのオブジェクト・インスタンスを含む。コンテキスト・プロバイダ２１６は、その後、コンテキスト・ハッシュ・オブジェクトを、そのコンテキストを要求したクライアント・アプリケーション１２０に戻す。
【００２４】
クライアント・アプリケーション１２０は、コンテキスト・ハッシュ・オブジェクトを、ソフトウェア・コンポーネント２１４中のアクション・プロバイダ２１８に渡すことができる。アクション・プロバイダ２１８は、コンテキスト・ハッシュ・オブジェクトを横断して、コンテキスト・ハッシュ・オブジェクトに含まれる組み込まれたコンテキストに関連付けられたアクションに関するクエリーを作成する。
【００２５】
本発明の一部の実施態様では、ソフトウェア・コンポーネント２１４は、また、一式のコンテキスト・レゾルバ２２０も含む。各コンテキストには、それに対応するコンテキスト・レゾルバ２２０がある。コンテキスト・レゾルバ２２０はコンテキストを取り上げ、このコンテキストに関連付けられたアクションを探すために使用することのできるキーワードに翻訳する。キーワードとは、アクションのようなメタデータに付けられた注釈のことで、同アクションについてアクション・メタデータストア２１０に問い合わせるために使用することができる。これらの実施態様では、アクション・プロバイダ２１８は、組み込まれたコンテキストを対応するコンテキスト・レゾルバ２２０に渡す。コンテキスト・レゾルバ２２０は、組み込まれたコンテキストを対応するキーワードに翻訳し、そのキーワードをアクション・プロバイダ２１８に戻す。
【００２６】
組み込まれたコンテキストについての情報を受け取った後、アクション・プロバイダ２１８は、クエリーをアクション・メタデータストア２１０に送り、組み込まれたコンテキストに関連付けられたアクションを検索する。コンテキスト・レゾルバ２２０が使用される本発明の実施態様では、アクション・プロバイダ２１８がアクション・メタデータストア２１０に送るクエリーは、また、コンテキスト・レゾルバ２２０によって提供されたキーワードも含む。アクション・メタデータストア２１０は、そのキーワードに関連付けられたすべてのアクションを探す。
【００２７】
アクション・メタデータストア２１０は、その後、アクションのリストを、アクション・プロバイダ２１８に戻し、そのプロバイダは、情報を、コンテキストおよびそのコンテキストにおいてエンティティに関連付けられたアクションについての情報を要求したクライアント・アプリケーション１２０に戻す。クライアント・アプリケーション１２０はアクションを用いて様々なことを行うことができる。例えば、クライアント・アプリケーション１２０は、エンティティに関連付けられたアクション・メニュー中にそのアクションを発行することができる。
【００２８】
本発明の一実施態様例では、ソフトウェア・コンポーネント２１４はクラス・ライブラリである。クラスは、管理対象コード・クラスとして構築される。すなわちクラスは、「マイクロソフト（登録商標）．ＮＥＴ」のユニバーサル・ランタイムのような共通言語ランタイム環境によって実行される。クラスはまた、非管理対象コードとしても構築されることができる。すなわち、クラスは、オペレーティング・システムによって直接実行される。
【００２９】
図４および図５は、コンテキスト・フレームワーク４００およびアクション・フレームワーク５００を含む、ソフトウェア・コンポーネント２１４の一実施態様例を表す。図４に記載されたコンテキスト・フレームワーク４００は、コンテキスト関連情報をホストするクラスを含む。例えば、Ｉコンテキスト４０２は、すべてのコンテキスト・クラスによって構築されるインターフェースである。本発明の一実施態様では、Ｉコンテキスト４０２は、クリエイト（）メソッドを持つ。このメソッドは、所定の型の新規コンテキストを作成する。このメソッドは、エンティティの環境をめぐって必要とされるすべての詳細を保持する。本発明の一部の実施態様では、Ｉコンテキスト４０２はまた、ゲット・レゾルバ（）メソッドも含み、そのメソッドは、コンテキスト向けのコンテキスト・レゾルバ２２０オブジェクトを戻す。
【００３０】
コンテキスト・フレームワーク４００は、さらに、抽象コンテキスト・クラス４０４を含む。このクラスは、すべてのコンテキストのすべての共通理論を保持する抽象ベースクラスである。
【００３１】
本発明の一構築例では、抽象コンテキスト・クラス４０４から導出されたコンテキスト・クラス４０６が提供される。図４は、コンテキスト・クラス例４０６を表す。記載されたコンテキスト・クラス例４０６には、ユーザが現在どのようなエンティティを取り扱っているかについてのデータを保持する、エンティティ・コンテキスト・クラス４０８が含まれる。エンティティ・コンテキスト・クラス４０８は、クリエイト（）メソッドを含む。このメソッドは、様々なソースからエンティティ・データを探し出そうと試みる。ソースは、現在のウェブ・ページであることができる。例えば、ユーザが「マイサイト」を操作中の場合、本発明のこの実施態様例は、一次エンティティが、このマイサイトの所有者のユーザ・プロファイルであると仮定する。別のソースは、現在のエンティティについての情報を回すために使用されるクエリー文字列であることができる。クリエイト（）メソッドは、クエリー文字列を取り出し、その文字列からクラス名およびオブジェクト・キーを抽出することができる。エンティティ・コンテキスト・クラス４０８は、また、ゲット・エンティティ・オブジェクト（）メソッドも含むことができる。このメソッドは、記憶されたクラスおよびオブジェクト・キー・データに基づき構築されたエンティティ・オブジェクトを戻す。エンティティ・コンテキスト・クラス４０８は、また、記憶されたクラス名を戻すクラス・フィールドも含むことができる。
【００３２】
コンテキスト・クラスの別の例は、アプリケーション・コンテキスト４１２である。エンティティは、異なる種類のクライアント・アプリケーション１２０において、異なるアクションを持つことができる。例えば、ユーザは、あるエンティティについて、オフィス・クライアント・アプリケーションでのそのエンティティとは対照的に、ウェブ・ベースのアプリケーションには異なるアクションが表示されることを希望することができる。アプリケーション・コンテキスト・クラス４１２は、現在クライアント・アプリケーション１２０についての情報を記憶する。アプリケーション・コンテキスト．クリエイト（）は、クライアント・アプリケーション１２０を特定し、その後、この情報を記憶する。
【００３３】
コンテキスト・クラスの別の例は、役割コンテキスト４１４である。このクラスは、ユーザの役割に関するデータを保持する。本発明の実施形態では、ロール・コンテキスト．クリエイト（）は、現在のスレッドの同一性を確かめ、ユーザがどのような役割に属するかについて一定の結論を引き出し、役割情報を内部に記憶する。例えば、ユーザは、クライアント・アプリケーション１２０の管理者の役割であることができる。
【００３４】
本発明の実施形態には、コンテキスト・クラスの別の例であるローカルコンテキスト・クラス４１６を、含むことができる。このクラスは、アクションがアプリケーションの現在の言語に依存する場合に、現在の場所についての情報を記憶する。本発明のその他の実施形態には、追加コンテキスト・クラスを含むことができる。
【００３５】
コンテキスト・フレームワーク４００は、さらに、コンテキスト・プロバイダ・クラス２１６を含む。ユーザが、エンティティに関連付けられたすべての利用可能なコンテキストを取得することを希望する場合、コンテキスト・プロバイダ・クラス２１６のオブジェクト・インスタンスは、アグリゲータとして使用されることができる。コンテキスト・プロバイダ・クラス２１６には、ゲット・コンテキスト（）メソッドが含まれることが好ましい。本発明のある実施形態では、エンティティの組み込まれたコンテキストを含むリストが供給される。ゲット・コンテキスト（）メソッドは、この組み込まれたコンテキスト・リストをくまなく調べ、組み込まれたコンテキストのすべてに対してクリエイト（）メソッドを呼び出し、その結果生じた、組み込まれたコンテキストのオブジェクト・インスタンスを含むコンテキスト・ハッシュ・オブジェクトを戻す。クライアント・アプリケーション１２０が個別のコンテキストしか使用する必要のない場合、個別のコンテキストは、対応するコンテキスト．クリエイト・オープン（）メソッドを呼び出すことによって、取得される。クライアント・アプリケーション１２０が、エンティティに関連付けられたすべての利用可能コンテキストを取得する必要がある場合、クライアント・アプリケーション１２０は、コンテキスト・プロバイダ．ゲット・コンテキスト（）を呼び出すことができる。
【００３６】
図４に示された本発明の実施形態例では、コンテキスト・フレームワーク４００は、さらに、コンテキスト・ハッシュ・クラス４２０を含む。コンテキスト・ハッシュ・クラス４２０は、単に、コンテキスト一式を含む、ハッシュ・テーブルのラッパー（ｗｒａｐｐｅｒ）であることができる。コンテキスト・ハッシュ・クラス４２０は、個々のコンテキストにタイプ別へのアクセスを可能にする、項目［タイプ、キー］プロパティを含むことができる。
【００３７】
図５に記載された通り、ソフトウェア・コンポーネント２１４は、さらに、アクション・フレームワーク５００を含む。本明細書に記載された本発明の実施形態例では、アクションは、一定の活動およびその活動がユーザにどのように提示されるべきかに関する情報を、カプセル化したメタデータ・オブジェクトである。このような活動は、例えば、ＳＡＰのようなデータ管理システムにおいて「顧客」エンティティを作成すること、でありえる。アクション・メタデータ・オブジェクトは、通例、データの２つの主要部分を記憶する。１つは、ユーザにアクションを提示する表示方法である。この表示方法は、「ＳＡＰに追加された」のような文字列を戻すか、または、複雑なハイパーリンクの構築のようなより精巧な作業を行うことができる。アクションに含まれるデータのもう１つの部分は、アクションを実際に行う実行方法である。例えば、実行方法は、「顧客」エンティティに対して新規顧客を設定することができる。
【００３８】
アクション・フレームワーク５００中の重要なクラスは、アクション・プロバイダ・クラス２１８である。図２および図３に関する上記の考察に記された通り、アクション・プロバイダ・クラス２１８は、コンテキスト一式を取り出し、これらのコンテキストに関連付けられたアクションのリストを戻す。図示された本発明の実施形態例では、アクション・プロバイダ・クラス２１８は、ゲット・アクション（）メソッドを実施する。このメソッドは、組み込まれたコンテキストのオブジェクト・インスタンスを含むコンテキスト・ハッシュ・オブジェクトを取り出し、これらのコンテキストに関連付けられたアクションのリストを戻す。本発明の一実施形態では、ゲット・アクション（）メソッドは、コンテキスト・ハッシュ・オブジェクトに目を通し、すべてのコンテキストを列挙する。メソッドは、その後、すべてのコンテキストに対してゲット・レゾルバ（）メソッドを呼び出し、対応するコンテキスト・レゾルバ２２０を取得する。ゲット・アクション（）メソッドは、その後、すべてのコンテキスト・レゾルバ２２０に問い合わせて、組み込まれたコンテキストを反映するキーワード取得する。ゲット・アクション（）メソッドは、その後、アクション・メタデータストア２１０に問い合わせて、キーワードで注釈を付けられたアクションを検索する。
【００３９】
ある種のアクションは、エンティティのユーザが同時に幾つかのコンテキストに属している時に、検索される。例えば、管理者として行動する「顧客」エンティティのユーザは、「顧客」エンティティ・コンテキストと「管理者」役割コンテキストの両方に同時に属することができる。よって、ゲット・アクション（）メソッドは、アクション・メタデータストア２１０に問い合わせて、「顧客」キーワードと「管理者」キーワードとの両方によって注釈を付けられたアクションを検索することができる。本発明の実施形態では、アクションは、その他のキーワードによってではなく、「顧客」キーワードおよび「管理者」キーワードとの両方によって注釈を付けられた場合にのみ、戻されることになる。他方で、ある種のアクションは、組み込まれたコンテキストの１つに関連付けられている場合に、検索される。例えば、クライアント・アプリケーション１２０は、「顧客」エンティティ・コンテキストに関連付けられたアクションを、要求することができる。よって、ゲット・アクション（）メソッドは、アクション・メタデータストア２１０に問い合わせて、「顧客」キーワードによって注釈を付けられたアクションを検索する。アクションは、その他のキーワードで注釈を付けられていることもできるが、「顧客」キーワードで注釈を付けられている限り、戻されることができる。図示された本発明の実施形態では、検索されるアクションが、１つのコンテキストに関連付けられているか、あるいは、複数コンテキストに関連付けられているかを判断するために、アクション・メタデータストア２１０は、コンビネーション・モード・フィールドを持つ。このフィールドが「すべて」に設定されている場合、このアクションに注釈を付けているキーワードが、ゲット・アクション（）メソッドによって送られたクエリー中のすべてのキーワードを含む場合に限り、このアクションは問い合わせがあり次第戻される。コンビネーション・モード・フィールドが「いずれか」に設定されている場合、アクションは、ゲット・アクション（）メソッドによって送られたクエリー中のキーワードの少なくとも１つによって注釈されている場合に検索される。
【００４０】
図示された本発明の実施形態例では、ゲット・アクション（）メソッドによって行われるクエリーは、２段階で行われる。まず、そのコンビネーション・モードが「すべて」に設定され、かつ、ゲット・アクション（）メソッドによって提供されたクエリー中のキーワードがそのアクションを注釈するすべてのキーワードであるすべてのアクションを、確保する。次に、そのコンビネーション・モードが「いずれか」に設定され、かつ、ゲット・アクション（）メソッドによって提供されたクエリー中のキーワードがそのアクションを注釈するキーワードの少なくとも１つを持つ、すべてのアクションを、ゲット・アクション（）メソッドは確保する。そして、ゲット・アクション（）メソッドは二段階の結果を統合し、アクションの結果リストを戻す。
【００４１】
アクション・フレームワーク５００は、また、アクション・クラス５０４も含む。本発明の実施形態では、アクション・クラス５０４は、アクション・メタデータの管理対象コード表示である。アクション・クラス５０４は、ゲット・ディスプレイ・メソッド（）を含む。このメソッドは、アクションを表示するメソッドを戻す。このメソッドは、「ＳＡＰで顧客を編集する」のような文字列を戻すか、または、ハイパーリンクの構築のような、より精巧な作業を行うことが期待される。アクション・クラス５０４はまた、アクションを実際に行うための方法を戻すゲット・エクセキュート・メソッド（）も含む。ゲット・ディスプレイ・メソッド（）がハイパーリンクを戻す場合、アクションは実行方法をまったく持たない可能性があり、この場合ゲット・エクセキュート・メソッド（）は、ヌルを戻す。アクション・クラス５０４はまた、アクションのアクション・テンプレートを戻すゲット・アクション・テンプレート（）も含むことができる。
【００４２】
本発明の一部の実施形態では、アクション・フレームワーク５００はまた、アクション・テンプレート・クラス５０６も含むことができる。一部の状況において、アクション向けに使用できる既存メソッドが存在する場合には、コンテキスト・プロバイダ２１６によって作成されたコンテキスト・ハッシュ・オブジェクトから、情報のすべてを抽出する必要はない。既存メソッドのパラメータのために必要な情報だけを抽出すればよい。これらの状況で、アクション・テンプレート・クラス５０６は、トタンスレータとして行動する。クラスは、コンテキスト・ハッシュ・オブジェクトを取り出し、そのオブジェクトから、既存メソッドのパラメータのために必要な情報を抽出し、その情報を既存メソッドに渡す。アクション・テンプレート・クラス５０６は、エクセキュート（）と呼ばれる１メソッドを持つ。このメソッドは、コンテキスト・ハッシュ・オブジェクトおよび方法記述を取り出し、コンテキスト・ハッシュ・オブジェクト中のコンテキストを構文解析して、そのメソッド向けの正しいパラメータを探し出し、そのメソッドを実行する。何を行うかというような、共通の特徴を持つ多数のメソッド向けに、同じ１つのアクション・テンプレート・クラス５０６を使用することができる。各メソッド・グループは、コンテキスト・ハッシュ・オブジェクトから適正なパラメータを得る方法について知るアクション・テンプレート・クラス５０６を持つことができる。
【００４３】
その結果本発明は、あるメソッドを実行する時、クライアント・アプリケーション１２０が、メソッド．エクセキュート（）を直接呼び出してコンテキスト・ハッシュ・オブジェクトをそれに渡すか、または、アクション・テンプレート．エクセキュート（）を呼び出して、メソッドおよびコンテキスト・ハッシュ・オブジェクトの記述をそれに渡すことを可能にする。
【００４４】
図示された本発明の実施形態例では、ソフトウェア・コンポーネント２１４は、図３に記載された通り、さらに、一式のコンテキスト・レゾルバ２２０を含むことができ、そのレゾルバの各々は、１コンテキストに対応する。コンテキスト・レゾルバ２２０は、コンテキストを、キーワードのセットに翻訳する。キーワードは、アクション・メタデータストア２１０の種々雑多なメタデータに対するクエリーに、使用されることができる。本発明の一部の実施形態では、コンテキスト・レゾルバ２２０は、「Ｉコンテキスト・レゾルバ」と呼ばれるインターフェースを含むことができる。これは、すべてのコンテキスト・レゾルバ２２０が構築しなければならないインターフェースである。インターフェースは、コンテキストを取り出してキー値の対のディクショナリを戻すレゾルブ・クエリー（）メソッドを持つ。
【００４５】
本発明の一部の実施形態では、ソフトウェア・コンポーネント２１４は、サードパーティによって組み立てられたカスタム・コンテキストおよびコンテキスト・レゾルバによって拡張されることができる。サードパーティが自社コンテキストについての情報を提供することができる場合には、簡易な登録メカニズムを提供することができる。本発明の一部の実施形態では、サードパーティは、また、自社メソッドを実行するための論理を提供して、アクション・メタデータストア２１０でアクションを設定して、アクションとキーワードとを関連付けることによって、新規アクションを追加することもできる。
【００４６】
本発明の実施形態では、アプリケーション・パフォーマンス速度の観点からコンテキスト・プロバイダ２１６およびアクション・プロバイダ２１８をユーザに気づかれないものにするために、コンテキスト・プロバイダ２１６は、その耐用年限中、自らが作成済みのコンテキストを堅持する。このような方法によって、ウェブ・ページは、ロード時にコンテキスト・プロバイダ２１６オブジェクトを作成することができ、すべてのウェブ・ページは、このオブジェクトからコンテキストを得て、以前のウェブ・ページのコンテキスト・オブジェクトを再利用することができる。加えて、アクション・プロバイダ２１８は、アプリケーション登録メタデータ・キャッシングも使用する。このようにして、システムは、必要なアクション・リストを検索するために、アクション・メタデータストア２１０への往復を繰り返す必要はない。
【００４７】
図６Ａ〜図６Ｃは、文脈アクション発行を行うためのひとつの方法例６００を表す。この方法６００は、図２に記載されたコンピューティング・システム２００を参照して記載される。方法６００は、まず、コンテキスト・プロバイダ２１６を用いて、エンティティが属しているコンテキストを探し出す。方法６００は、その後、アクション・プロバイダ２１８を用いて、これらのコンテキストに対応するすべてのアクションを探す。その後、エンティティを使用中のクライアント・アプリケーション１２０は、ユーザがそのコンテキストでそのエンティティに対して行うことのできるアクション一式を、表示することができる。
【００４８】
エンティティの組み込まれたコンテキストのリストを求める要求、すなわち、クライアント・アプリケーション１２０からの、要求を受け取り次第（ブロック６０２参照）、方法６００はプロセス６０４を実行し、そのプロセスは組み込まれたコンテキストのオブジェクト・インスタンスを含むコンテキスト・ハッシュ・オブジェクトを作成することによって、コンテキスト情報を提供する。ブロック６０４参照。図６Ｂは、プロセス６０４の一構築例を表し、以下に詳しく考察される。プロセス６０４を実行した後、方法６００は、コンテキスト・ハッシュ・オブジェクト中の組み込まれたコンテキスト・オブジェクトに関連付けられたアクションを求める要求、すなわち、組み込まれたコンテキストを要求したのと同一のクライアント・アプリケーション１２０からの、要求を受け取ることができる。ブロック６２０参照。方法６００は、その後、プロセス６２２を実行して、アクション・メタデータストア２１０に対するクエリーを構築し、コンテキスト・ハッシュ・オブジェクト中の組み込まれたコンテキスト・オブジェクトに関連付けられたすべてのアクションを検索する。ブロック６２２参照。図６Ｃは、プロセス６２２の一構築例を表し、以下に詳しく考察される。プロセス６２２を実行した後、方法６００は終了する。
【００４９】
図６Ｂは、エンティティの組み込まれたコンテキストを提供するための、プロセス６０４の一構築例を表す。プロセス６０４はまず、そのエンティティに関連付けられた組み込まれたコンテキストについての情報を得ようと試みる。ブロック６０６参照。本発明の一実施形態では、プロセス６０４は、組み込まれたコンテキストについての情報を含む環境設定ファイルを開く。例えば、組み込まれたコンテキストがエンティティ・コンテキストおよび役割コンテキストの場合、この環境設定ファイルは、エンティティ・コンテキストおよび役割コンテキストに関するクラス情報を含むことになる。プロセス６０４は、その後、環境設定中の組み込まれたコンテキストのリストに目を通し、これらの組み込まれたコンテキストのオブジェクト・インスタンスを作成する。ブロック６０８参照。例えば、プロセス６０４は、エンティティ・コンテキスト．クリエイト（）およびロール・コンテキスト．クリエイト（）を呼び出して、エンティティ・コンテキスト・オブジェクト・インスタンスおよび役割コンテキスト・オブジェクト・インスタンスを作成することができる。エンティティ・コンテキスト・クラスは、受け取ったＵＲＬを構文解析して、自らが２５５という顧客ＩＤを用いて「顧客」クラスのインスタンスを作成すると想定されていることを、知ることができる。エンティティ・コンテキスト・クラスは、クラス．ゲット・クラス（「顧客」）を呼び出して、顧客クラスのハンドルを得る。エンティティ・コンテキスト・クラスは、その後、クラス．インスタンティエイト（２５５）を呼び出して、適正な「顧客」オブジェクト・インスタンスを作成する。エンティティ・コンテキスト・クラスは、その後、エンティティ・コンテキスト・オブジェクト・インスタンスを戻す。その一方で、役割コンテキスト・クラスは、現在ユーザの同一性を確かめ、そのユーザが管理者であることを知る。役割コンテキスト・クラスは、役割（管理者）情報を記憶し、役割コンテキスト・オブジェクト・インスタンスを保持する。プロセス６０４は、その後、コンテキスト・ハッシュ・オブジェクトを作成し、作成された組み込まれたコンテキストのオブジェクト・インスタンスを、このコンテキスト・ハッシュ・オブジェクト中に入れる。ブロック６１０参照。例えば、プロセス６０４は、上記で作成されたエンティティ・コンテキストおよび役割コンテキストのオブジェクト・インスタンスを、コンテキスト・ハッシュ・オブジェクトに入れることができる。プロセス６０４は、その後、結果として生じたコンテキスト・ハッシュ・オブジェクトを戻す。ブロック６１２参照。
【００５０】
図６Ｃは、組み込まれたコンテキストにおいてエンティティに関連付けられたアクションを検索するための、プロセス６２２の一構築例を表す。プロセス６２２は、プロセス６０４によって作成されたコンテキスト・ハッシュ・オブジェクトに目を通し、各々の組み込まれたコンテキスト向けの適切なコンテキスト・レゾルバ２２０を呼び出す。ブロック６２４参照。例えば、コンテキスト・ハッシュ・オブジェクトに含まれているのがエンティティ・コンテキストおよび役割コンテキスト・オブジェクト・インスタンスの場合、プロセス６２２は、エンティティ・コンテキスト・レゾルバおよび役割コンテキスト・レゾルバに戻ることができる。コンテキスト・レゾルバ２２０は、これらの組み込まれたコンテキストを反映するキーワードを戻す。ブロック６２６参照。例えばエンティティが「顧客」の場合、エンティティ・コンテキスト・レゾルバは、キーワード「顧客」を戻す。ユーザの役割が管理者の場合、役割コンテキスト・レゾルバは、キーワード「管理者」を戻す。プロセス６２２は、その後、これらのキーワードを含むアクション・メタデータストア２１０に対するクエリーを構築して、これらのキーワードで注釈を付けられたアクションを検索する。ブロック６２８参照。例えば、プロセス６２２は、キーワード「顧客」および「管理者」を含むクエリーを構築することができる。プロセス６２２は、その後、アクションのリストを検索し、アクション・メタデータストア２１０からリストを戻す。ブロック６３０参照。
【００５１】
組み込まれたコンテキストと同組み込まれたコンテキストに関連付けられたアクションとを求める要求を行ったクライアント・アプリケーション１２０は、方法６００によって戻されたアクションを使用することに移ることができる。クライアント・アプリケーション１２０は、アクションを任意の目的に使用することができる。本発明の一部の実施形態では、クライアント・アプリケーション１２０は、アクション・メニューにアクションを表示して、エンティティを用いてユーザが何をできるかについて、ユーザに知らせることができるようにする。ユーザは、アクション・メニューで選択することによって、アクションを実行することに移ることができる。さらに、アクション・メニューに関する考察は、図１２〜図１３の記載に関連して、以下に提供される。
【００５２】
本発明は、さらに、エンティティに関連付けられたアクションを管理してアクションにアクセスするための、複数のユーザ・インターフェースを提供する。図７〜図１０は、エンティティに関連付けられたアクションを管理するための、ユーザ・インターフェース７００の一実施形態例である。この例では、ユーザは、管理者として行動する。ユーザ・インターフェース７００を通じて、管理者は、エンティティに関連付けられたアクションを作成して変更する。管理者は、また、１つ以上のコンテキストでエンティティに関連付けられたアクションを表示するアクション・メニューも管理することができる。
【００５３】
本発明の一実施形態例では、ユーザ・インターフェース７００は、「マイクロソフト（登録商標）共有リソース・プロバイダ」の管理プログラムの一部であるアプリケーション登録管理ページ内に置かれる。管理者がアプリケーション登録管理プログラムに行き、クライアント・アプリケーション１２０を選択し、エンティティをクリックすることによって、ユーザ・インターフェース７００へ到達することができる。インターフェースは、「エンティティを編集する」ページを開く。「エンティティを編集する」ページのアクション部分は、管理者が、アクションを追加および／または編集することと、アクション・メニューにどのようなアクションがどのような順序で表示されるかを指定することとを、可能にする。エンティティに関連付けられたアクションがない場合、「エンティティを編集する」ページのアクション部分は、このエンティティにアクションがないことを示す。
【００５４】
図７に示された通り、図示された本発明の実施形態例では、ユーザ・インターフェース７００は、もしあれば、エンティティに関連付けられたアクション７０２を特定する。ユーザ・インターフェース７００は、さらに、アクション名７０４を特定する。例えば、図７は、顧客エンティティに関連付けられた３つのアクション７０２、すなわち、「顧客を編集する」アクション７０８、「新規顧客」アクション７１０、および「プロファイルを見る」アクション７１２、を表す。ユーザ・インターフェース７００は、また、各アクションのアクションのタイプも特定する。アクションのアクションタイプは、そのアクションが選択された場合に何が起こるかを示す。例えば、図７では、ユーザ・インターフェース７００は、これら３つのアクションの各々に関連付けられたアクションタイプ７０６、すなわち、それぞれ、ウェブ・ページに行く７１４、ウェブ・ページに行く（拡張）７１６、および、カスタム・アクションを実行する７１８、を表示する。図７に記載されたユーザ・インターフェース７００は、また、表示されたアクションのどれがデフォルト・アクション７２０かも示す。例えば、図７は、「顧客」エンティティのデフォルト・アクションが「顧客を編集する」アクション７０８であることを示す。
【００５５】
図７に記載された通り、ユーザ・インターフェース７００では、管理者は、アクション名７０４をクリックすることによって、アクションを編集することができる。管理者は、また、「アクションを追加する」リンク７２２をクリックすることによって、アクションを追加することができる。管理者は、また、「アクション・メニューを管理する」リンク７２４をクリックすることによって、このエンティティに関連付けられたアクション・メニューを管理することができる。
【００５６】
図８Ａ〜図１０は、図７に記載されたユーザ・インターフェース７００の続きである。より具体的には、図８Ａ〜図８Ｃは、異なるアクションタイプのアクションを管理者が「顧客」エンティティの追加を、ユーザ・インターフェース７００がどのようにして可能にするかを表す。例えば、図８Ａは、管理者がどのようにして、アクションタイプ「ウェブ・ページに行く」７１４のアクションを追加することができるかを表す。本発明の一実施形態では、「ウェブ・ページに行く」タイプのアクションは、単に、ユーザをＵＲＬに連れて行くだけで、任意で、エンティティ・データをクエリー文字列パラメータまたはポスト・データとして渡す。これらのアクションは、http://abc/def/def.asp?valueid=100のようなＵＲＬを持つウェブ・ページに適する。ユーザ・インターフェース７００は、まず、アクション名７０４を指定するように管理者に要求する。ユーザ・インターフェース７００は、その後、アクションのアクションタイプ７０６を指定するように管理者に求める。例えば、図８Ａでは、管理者は、アクション７０４のアクションタイプ７０６が「ウェブ・ページに行く」７１４であることを選択する。管理者は、また、このアクションがエンティティのデフォルト・アクション７２０であることも指定する。
【００５７】
ユーザ・インターフェース７００は、さらに、ユーザがこのアクションを起動させた時、ユーザが連れて行かれることになるウェブ・ページの位置８０２を指定するように、管理者に求める。ユーザ・インターフェース７００は、また、ウェブ・ページに渡そうとする各パラメータの名前８０４および値８０６を指定するように、管理者に求める。ユーザ・インターフェース７００は、管理者が「パラメータを追加する」リンク８０８を使用することによって、多数のパラメータをウェブ・ページに渡すことを許す。ユーザ・インターフェース７００は、また、管理者が「はい」または「いいえ」ボタン（８１０参照）を選択することによって、新規ブラウザ・ウインドウにおいてウェブ・ページを起動するかどうかを指定することも可能にする。例えば、図８Ａに記載されたユーザ・インターフェース７００では、管理者は新規ブラウザ・ウインドウでウェブ・ページの起動を選択する。
【００５８】
ユーザ・インターフェース７００は、さらに、ウェブ・ページが「ゲット」または「ポスト」ＨＴＴＰメソッド（８１２参照）の使用を要求するかどうかを指定するように、管理者に要求することができる。例えば、図８Ａに記載されたユーザ・インターフェース７００では、管理者は、ウェブ・ページを要求するために「ゲット」ＨＴＴＰメソッドの使用を選択する。当業者らには自明であるが、「ゲット」ＨＴＴＰメソッドは、ウェブ・サーバのＨＴＭＬ文書を検索する。「ゲット」ＨＴＴＰメソッドを使用するフォームからの情報は、要求されつつあるアクションＵＲＬの末尾に追記される。通常、「ゲット」ＨＴＴＰメソッドは、ＵＲＬアクセスがデータベースの状態を、例えば情報を追加または削除することによって、変更しない場合に、使用されるべきと言ってよいだろう。一方、ＵＲＬアクセスがウェブ・サーバのデータベースの変更を招く場合には、「ポスト」ＨＴＴＰメソッドが使用されるべきである。「ポスト」ＨＴＴＰメソッドは、フォームへのすべての入力を、ＵＲＬとは離れて、直ちに送信する。「ポスト」ＨＴＴＰメソッドを使用することの、「ゲット」ＨＴＴＰメソッドに優る、主な利点は、データが詮索好きな目に曝されないことである。また、「ゲット」ＨＴＴＰメソッドでは、限られた量のデータしか移転できないのに対して、「ポスト」ＨＴＴＰメソッドは、そのような制限を及ぼさない。
【００５９】
図８Ｂは、管理者が、アクションタイプ「ウェブ・ページに行く（拡張）」７１６のアクションの追加を選択した場合の、ユーザ・インターフェース７００を表す。このアクションタイプのアクションは、管理者がＵＲＬにパラメータを挿入して、「マイクロソフト（商標登録）．ＮＥＴ」のフォーマット文字列の柔軟性を利用してパラメータをフォーマットすることを、可能にする。これらのアクションは、http://bugcheck/bugs/sps/100.asp.のようなウェブ・ページにとって都合がよい。図８Ｂに記載されたユーザ・インターフェース７００は、図８Ａに記載の、アクションタイプ「ウェブ・ページに行く」７１４のアクションを環境設定するためのユーザ・インターフェース７００に非常に似ている。大きな違いは、管理者が、図８Ａに記載された通りにパラメータの名前８０４および値８０６を指定する代わりに、ウェブ・ページの位置８０２を指定した後、ＵＲＬ中のフォーマット文字列のフォーマット・インデックス８２０および値８２２指定することである。
【００６０】
本発明の実施形態は、また、カスタム・アクションがサードパーティによって提供されることも可能にする。本発明の一部の実施形態では、カスタム・アクションは、「Ｉアクション・イベント・ハンドラー」のようなインターフェースを構築するクラスのコードを実行する。図８Ｃは、管理者が、アクションタイプ「カスタム・アクションを実行する」７１８のアクションの追加を選択した場合の、ユーザ・インターフェース７００を表す。ユーザ・インターフェース７００は、このアクションに関連付けられたアクション・イベント・ハンドラー８３０向けの情報を入力するように、管理者に求める。本発明の一部の実施形態では、管理者は、完全に記述されたアセンブリ名８３２およびクラス名８３４を、アクション・イベント・ハンドラーに提供することが必要となる場合がある。
【００６１】
本発明の一部の実施形態では、ユーザ・インターフェース７００は、また、アクションの追加時に管理者が、アクションに関連する現地を指定することも、可能にする。例えば、管理者は、「顧客プロファイルを見る」というアクションに「英語（米国）」という現地を関連付けることを、指定することができる。
【００６２】
図９は、管理者が、図７で指示された通りにアクションを編集するために、アクション名７０４をクリックした場合の、ユーザ・インターフェース７００の一実施形態を表す。アクションの編集時に、管理者は、アクションのアクション名７０４および／またはアクションタイプ７０６を変更することができる。管理者は、また、このアクションがデフォルト・アクション７２０であるかどうかも指定することができる。例えば、図９では、管理者は、アクション名７０４を「新規顧客を編集する」に変更する。管理者は、また、そのアクションのアクションタイプ７０６が「ウェブ・ページに行く」７１４であることも指定する。管理者は、さらに、このアクションに関連付けられた「顧客」エンティティが作動した時、この「新規顧客を編集する」アクションがデフォルト・アクション７２０であるべきことも指定する。
【００６３】
図１０は、図７に記載された「アクション・メニューを管理する」リンク７２４を管理者が作動させた場合の、ユーザ・インターフェース７００を表す。「アクション・メニューを管理する」画面は、アクション・メニューにどのようなアクションがどのような順序で表示されるかを、管理者が制御することを可能にする。図１０に記載された通り、管理者は、アクションのわきにある表示チェック・ボックス１００２にマークを付けたり消したりすることによって、アクション・メニューにどのようなアクションが表示されるかを制御することができる。例えば、図１０では、管理者は、わきにある３つすべての表示ボックスにマークを付けることによって、３つすべてのアクション−−顧客を編集する、新規顧客、プロファイルを見る−−の表示を選択する。管理者は、また、「上からの位置」ボックス１００４中の数字を選択することによって、これらのアクションがアクション・メニューに表示される順序を指定することもできる。例えば、図１０では、管理者は、「上からの位置」ボックス１００４中の数値をそれぞれ１、２、３と指定することによって、「顧客を編集する」、「新規顧客」、「プロファイルを見る」の順序で、アクションの表示を選択する。
【００６４】
図１１Ａおよび図１１Ｂは、エンティティに関連付けられたアクションを管理するための方法１１００を表す。方法１１００は、図７〜図１０に記載されたユーザ・インターフェース７００を参照して記載される。方法１１００は、まず、エンティティに関連付けられたアクションの管理を求める要求が存在するかどうかを確かめる。決定ブロック１１０２参照。回答が「いいえ」の場合、方法１１００は何も行わない。回答が「はい」の場合、方法１１００は、「エンティティを編集する」ページを表示する。ブロック１１０４参照。方法１１００は、その後、アクションの追加を求める要求が行われたかどうかを確かめることに移る。決定ブロック１１０６参照。決定ブロック１１０６に対する回答が「はい」の場合、方法１１００は、プロセス１１０８に移り、受け取られた入力に従ってアクションを追加する。ブロック１１０８参照。図１１Ｂは、プロセス１１０８の構築例を表し、以下で詳しく考察される。アクションの編集を求める要求を方法１１００が受け取った場合（決定ブロック１１１０参照）、方法１１００は、受け取られた入力に従って、アクションに関連付けられたプロパティを変更することに移る。ブロック１１１２参照。エンティティに関連付けられたアクション・メニューの管理を求める要求を、方法１１００が受け取った場合（決定ブロック１１１４参照）、方法１１００は、受け取られた入力に従ってアクション・メニューを調整することに移る。ブロック１１１６参照。本発明の実施形態では、受け取られた入力に従ってアクションを追加したか、アクションを変更したか、またはアクション・メニューを調整した後、方法１１００は、「エンティティを編集する」ページを表示することに戻り、次の要求を待つ。方法１１００が一定期間中に要求を受け取らなかったか、または終了信号を受け取った場合、方法１１００は終了する。
【００６５】
図１１Ｂは、入力に従ってアクションを追加するための、プロセス１１０８の一実施形態例を表す。プロセス１１０８は、受け取られた入力に従ってアクション名を定義することによって開始される。ブロック１１２０参照。プロセス１１０８は、その後、受け取られた入力に従ってアクションのアクションタイプを確かめることに移る。アクションタイプが「ウェブ・ページに行く」７１４の場合（決定ブロック１１２２参照）、プロセス１１０８は、受け取られた入力に従ってウェブ・ページのＵＲＬおよびパラメータを指定することに移る。ブロック１１２４参照。アクションタイプが「ウェブ・ページに行く（拡張）」７１６の場合（決定ブロック１１２６参照）、プロセス１１０８は、受け取られた入力に従ってウェブ・ページのＵＲＬ、パラメータおよびフォーマット文字列を指定することに移る。ブロック１１２８参照。アクションタイプが「カスタム・アクションを実行する」７１８の場合（決定ブロック１１３０参照）、プロセス１１０８は、受け取られた入力に従ってアクション・イベント・ハンドラーのアセンブリ名およびクラス名を指定することに移る。ブロック１１３２参照。プロセス１１０８は、その後、復帰する。
【００６６】
図示された本発明の実施形態例では、エンティティに関連付けられたアクションを含むアクション・メニューは、エンティティを使用中のクライアント・アプリケーション１２０に表示される。このようなクライアント・アプリケーション１２０は、「マイクロソフト（登録商標）シェアポイント」のリストまたは検索結果であることができる。図１０に記載された通りに、管理者は、アクション・メニューにどのようなアクションが表示されるかということと、それらが表示される順序とを指定する。管理者による編集が行われるアプリケーション登録に関連する、サイトのすべてのアクション・メニューに、これと同一セットのアクションが表示される。
【００６７】
図１２は、アクション・メニューに関連付けられたエンティティを使用するクライアント・アプリケーション１２０において、アクション・メニューを作動させるためのひとつの方法例を表す。図示された本発明の実施形態例では、アクション・メニューは、３つの状態、すなわち、デフォルト状態１２０２、フォーカス１２０４またはマウス・オーバー状態１２０５、およびメニュー状態１２０６、を持つ。図１２に記載された通り、アクション・メニューを表すアイコンだけが表示されている時、アクション・メニューは、デフォルト状態１２０２にある。アクション・メニューを表すアイコンにタブが付けられフォーカスされたか、または、アクション・メニューを表すアイコンにマウスのような位置決め装置が載せられた時、アクション・メニューは、フォーカス１２０４またはマウス・オーバー状態１２０５にある。アクション・メニューが完全に広げられて、エンティティに関連付けられたすべてのアクションが表示されている時、アクション・メニューはメニュー状態１２０６にある。
【００６８】
図１３は、図１２に記載された３つの状態のなかで、アクション・メニューを移行させるためのひとつの方法例を表す。より具体的には、図１３は、マウスのようなポンティング装置を用いて、図１２に記載された３つの状態の間でアクション・メニューを移行させるための、１つの方法例１３００を表す状態図である。アクション・メニューを表すアイコンにタブを付けフォーカスすることによって、方法１３００は、アクション・メニューをデフォルト状態１２０２からフォーカス状態１２０４に移行させる。経路１３０２参照。逆に、方法１３００は、アクション・メニューにタブを付けフォーカスを外すことによって、アクション・メニューをフォーカス状態１２０４からデフォルト状態１２０２に戻す。この時、マウスは、アクション・メニューを表すアイコンに載っていない。経路１３０４参照。
【００６９】
ユーザが、アイコンを押し下げるかまたはクリックすることによって、アクション・メニューを表すアイコンを起動させた時、方法１３００は、アクション・メニューをフォーカス状態１２０４からメニュー状態１２０２に移行させる。経路１３０６参照。逆に、ユーザが、キーボードのエスケープキーを作動させたか、または、完全に展開されたアクション・メニューをクリックした時、方法１３００は、アクション・メニューをメニュー状態１２０６からフォーカス状態１２０４に戻す。経路１３０８参照。
【００７０】
方法１３００は、アクション・メニューを表すアイコンにタブを付けフォーカスしたりフォーカスを外したりすることによって、フォーカス状態１２０４とマウス・オーバー状態１２０５との間を行き来することを可能にする。アイコンにタブが付けられフォーカスが外され、マウスがアイコンに載せられた時、アクション・メニューを表すアイコンは、フォーカス状態１２０４からマウス・オーバー状態１２０５に移行する。経路１３１０参照。逆に、アイコンにタブを付けフォーカスすることによって、方法１３００はアクション・メニューを表すアイコンをマウス・オーバー状態１２０５からフォーカス状態１２０４に移行させる。経路１３１２参照。
【００７１】
方法１３００はアクション・メニューを表すアイコンが占める領域からマウスを離すことによって、アクション・メニューを表すアイコンをマウス・オーバー状態１２０５からデフォルト状態１２０２に戻すことを可能にする。経路１３１４参照。逆に、方法１３００は、アクション・メニューを表すアイコンが占める領域にマウスが入った時、アイコンをデフォルト状態１２０２からマウス・オーバー状態１２０５移行させる。経路１３１６参照。
【００７２】
方法１３００は、ユーザがアイコンをクリックした時、アクション・メニューを表すアイコンをマウス・オーバー状態１２０５からメニュー状態１２０６に移行させる。経路１３１８参照。アクション・メニューが占める領域の外側でユーザがマウスを使用した時、アクション・メニューは折り畳まれて、メニュー状態１２０６からデフォルト状態１２０２に戻る。経路１３２０参照。
【００７３】
本発明の実施形態は、また、エンティティに関連付けられたアクションを、アクション・ウェブ・パーツにも表示することができる。アクション・ウェブ・パーツは、エンティティに関連付けられたアクションのリストを、様々なスタイルで表示する。ウェブ・パーツは、ウェブ・パーツ接続を介してその他のウェブ・パーツに接続して、例えば、接続されたエンティティ・リスト中で選択された「顧客」エンティティのアクションを示すことができる。個々のウェブ・パーツは、情報のモジュラー単位で、単一の目的を持ち、ウェブ・パーツ・ページの基本構成要素を構成する。特定のウェブ・パーツの各インスタンスは、外観および動作の点で類似する場合も異なる場合もあるが、それらは、ウェブ・サイト・サーバに組み込まれた同一のウェブ・パーツ・アセンブリ・ファイルに基づく。ウェブ・パーツ・ページは、特別な種類のウェブ・ページで、リストやチャートのようなデータ、並びに、テキストやイメージのようなウェブ・コンテンツを統合して、共通タスクまたは特定の関心を中心に構築された動的情報ポータルにする。各ウェブ・パーツ・ページは、１つ以上のウェブ・パーツ・ゾーンを含み、そして、そのゾーンはまた、１つ以上のウェブ・パーツを含む。
【００７４】
図１４は、エンティティに関連付けられたアクションを表示するアクション・ウェブ・パーツ１４００の一実施形態例を表す。例えば、図１４に記載されたアクション・ウェブ・パーツ１４００は、「顧客」エンティティに関連付けられた３つのアクション、すなわち、新規顧客１４０２、顧客を編集する１４０４および、プロファイルを見る１４０６を表示する。アクション・ウェブ・パーツ１４００は、また、ユーザがアクション・ウェブ・パーツのプロパティを編集することを可能にする、編集モード１４０８も提供する。
【００７５】
本発明の一部の実施形態では、アクション・ウェブ・パーツ１４００に関連付けられたプロパティをユーザが編集することを可能にするために、ユーザ・インターフェースが提供される。図１５は、アクション・ウェブ・パーツ１４００に関連付けられたプロパティをユーザが変更することを可能にするユーザ・インターフェースの１つの例１５００を表す。ユーザ・インターフェース１５００は、ユーザが、エンティティ１５０２のタイプを定義することを可能にする。例えば、図１５に記載された通り、現在エンティティ「顧客」はＳＡＰタイプである。ユーザは、アイコン１５０４をクリックしてエンティティのタイプを変更する。
【００７６】
ユーザ・インターフェース１５００は、また、アクションが表示される順序をユーザが指定することをも可能にする。例えば、図１５では、「顧客」エンティティに関連付けられた３つのアクションが、新規顧客１４０２、顧客を編集する１４０４、プロファイルを見る１４０６、の順序で表示される。ユーザ・インターフェース１５００は、アクションの順序を調整するために、「上に動かす」アイコン１５０８および「下に動かす」アイコン１５１０をユーザに提供する。
【００７７】
ユーザ・インターフェース１５００は、また、アクションが適用されるエンティティを、ユーザが指定することも可能にする。例えば、図１５に記載されたユーザ・インターフェース１５００は、「ウェブ・パーツ接続によって供給された」１５１４、「ＵＲＬページで指定された」１５１６、または、「ユーザによって指定された」１５１８、ものとしてエンティティを指定する選択肢を、ユーザに与える。ユーザがエンティティを指定する選択肢１５１８には、さらに、ユーザが「選ぶ」アイコン１５２０選択して、アクションが適用されるエンティティを指定するものが追加される。
【００７８】
ユーザ・インターフェース１５００は、さらに、アクション・ウェブ・パーツ１４００が表示されるスタイルを、指定する選択肢をユーザに与える。選択肢には、黒丸付きリスト１５２４、リスト１５２６、ツールバー１５２８、アイコンなしのツールバー１５３０などが含まれる。例えば、図１５は、アクション・ウェブ・パーツ１４００のスタイルとして、黒丸付きリスト１５２４が選択されたことを表す。
【００７９】
図示された本発明の実施形態例では、ユーザは、また、アクション・ウェブ・パーツ１４００でのアクションの表示順序も指定することができる。ユーザは、アクション・ウェブ・パーツ１４００を編集モード１４０８に切り替えて各アクションをドラッグ・アンド・ドロップすることによって、アクションの順序を決める。ユーザは、アクションのテキストまたはアイコン上でマウスを押し下げることによって、ドラッグを開始する。アクションを表すテキストおよびアイコンは、ユーザがドラッグしている間、半透明になる。ユーザがアイコンをドラッグしている時、垂直または水平の挿入バーが現れて、ユーザがマウス・ボタンを放した場合、アクションがどこに位置づけられるかを示す。ドラッグは、ユーザがマウス・ボタンを放した時に終わる。アクション・ウェブ・パーツは、再配置されたアクションによって更新される。
【００８０】
発明を実施するための最良の形態について図示し記載してきたが、本発明の精神および範囲から離れることなく、様々な変更を加え得ることが正しく認識されるだろう。
【図面の簡単な説明】
【００８１】
【図１】ビジネス・オブジェクトとそれらの関連アクションを強く結びつける従来型のひとつの方法を表すブロック図である。
【図２】本発明の一実施形態例を表すブロック図である。
【図３】本発明の一実施形態例のデータフロー経路を表すブロック図である。
【図４】本発明の一実施形態例のコンポーネントであるコンテキスト・フレームワークの、一構築例と、コンテキスト・クラス例とを表すブロック図である
【図５】本発明の一実施形態例の別のコンポーネントである、アクション・フレームワークの１構築例を表すブロック図である。
【図６Ａ】文脈アクション発行を行うための方法例を表す、機能フロー図である。
【図６Ｂ】文脈アクション発行を行うための方法例を表す、機能フロー図である。
【図６Ｃ】文脈アクション発行を行うための方法例を表す、機能フロー図である。
【図７】エンティティに関連付けられたアクションを管理するための、管理ページの一構築例を表す図である。
【図８Ａ】エンティティに関連付けられたアクションを管理するための、管理ページの一構築例を表す図である。
【図８Ｂ】エンティティに関連付けられたアクションを管理するための、管理ページの一構築例を表す図である。
【図８Ｃ】エンティティに関連付けられたアクションを管理するための、管理ページの一構築例を表す図である。
【図９】エンティティに関連付けられたアクションを管理するための、管理ページの一構築例を表す図である。
【図１０】エンティティに関連付けられたアクションを管理するための、管理ページの一構築例を表す図である。
【図１１Ａ】エンティティに関連付けられたアクションを管理するための方法例を表す、機能フロー図である。
【図１１Ｂ】エンティティに関連付けられたアクションを管理するための方法例を表す、機能フロー図である。
【図１２】アクション・メニューを作動させるための、一工程例を表す図である。
【図１３】マウスのような位置決め装置を用いて、どのようにしてアクション・メニューを作動させることができるかを表す、状態図である。
【図１４】アクション・ウェブ・パーツの一構築例を表す図である。
【図１５】アクション・ウェブ・パーツの様々なプロパティを設定する、一構築例を表す図である。
【符号の説明】
【００８２】
２１４    ソフトウェア・コンポーネント
【図１】
2006107436.tif 000003
【図２】
2006107436.tif 000004
【図３】
2006107436.tif 000005
【図４】
2006107436.tif 000006
【図５】
2006107436.tif 000007
【図６Ａ】
2006107436.tif 000008
【図６Ｂ】
2006107436.tif 000009
【図６Ｃ】
2006107436.tif 000010
【図７】
2006107436.tif 000011
【図８Ａ】
2006107436.tif 000012
【図８Ｂ】
2006107436.tif 000013
【図８Ｃ】
2006107436.tif 000014
【図９】
2006107436.tif 000015
【図１０】
2006107436.tif 000016
【図１１Ａ】
2006107436.tif 000017
【図１１Ｂ】
2006107436.tif 000018
【図１２】
2006107436.tif 000019
【図１３】
2006107436.tif 000020
【図１４】
2006107436.tif 000021
【図１５】
2006107436.tif 000022
【外国語明細書】
2006107436000001.pdf