(57)【要約】タスク指向のユーザインターフェース（２０８）により、ユーザがシステムを通してガイドされるので、システムの使用の容易さが向上する。タスクは、ユーザがどのようにジョブを行うべきかを考えることと類似している。これにより、ユーザがジョブを行う際の助けになる。
2006507550.tif 000002
【特許請求の範囲】
【請求項１】
タスクを実行するためにコンピュータアプリケーションを開発するための方法であって、
１組のオブジェクトタイプを提供することと、
前記１組のオブジェクトタイプのうち少なくとも一部に対して実施することのできる一般化された機能を備える１組のアスペクトパターンを提供することと、
前記１組のオブジェクトタイプのうちの選択されたオブジェクトタイプと、前記１組のアスペクトパターンのうちの選択されたアスペクトパターンとの間に所望の接続を確立することと
を備えることを特徴とする方法。
【請求項２】
所望の接続を確立することは、
選択されたアスペクトパターンのアスペクトパターン識別子を、前記選択されたアスペクトパターンに接続された選択されたオブジェクトタイプのメタデータに格納することと、
前記選択されたオブジェクトタイプのオブジェクトタイプ識別子を、前記選択されたアスペクトパターンのメタデータに格納することと
を備えることを特徴とする請求項１に記載の方法。
【請求項３】
アスペクトパターンおよびオブジェクトタイプが反応することができる可能なオカレンスを特定する１組のイベントタイプを提供することと、
選択されたイベントタイプと選択されたオブジェクトタイプとの間に所望の接続を確立することと、
選択されたイベントタイプと選択されたアスペクトパターンとの間に所望の接続を確立することと
をさらに備えることを特徴とする請求項２に記載の方法。
【請求項４】
選択されたイベントタイプと選択されたオブジェクトタイプとの間に所望の接続を確立することは、
選択されたイベントタイプのイベントタイプ識別子を、前記選択されたイベントタイプに接続された選択されたオブジェクトタイプのメタデータに格納することと、
前記選択されたオブジェクトタイプのオブジェクトタイプ識別子を、前記選択されたイベントタイプのメタデータに格納することと
を備えることを特徴とする請求項３に記載の方法。
【請求項５】
選択されたイベントタイプと選択されたアスペクトパターンとの間に所望の接続を確立することは、
選択されたイベントタイプのイベントタイプ識別子を、前記選択されたイベントタイプに接続された選択されたアスペクトパターンのメタデータに格納することと、
前記選択されたアスペクトパターンのアスペクトパターン識別子を、前記選択されたイベントタイプのメタデータに格納することと
を備えることを特徴とする請求項４に記載の方法。
【請求項６】
選択されたイベントタイプと選択されたアスペクトパターンとの間に所望の接続を確立することは、
前記選択されたイベントタイプに応答して実行されることになる前記選択されたアスペクトパターン中の選択された機能を特定することと
を備えることを特徴とする請求項５に記載の方法。
【請求項７】
１組の伝搬値を提供することと、
選択されたオブジェクトタイプと選択された伝搬値との間に所望の接続を確立することと
をさらに備えることを特徴とする請求項５に記載の方法。
【請求項８】
前記伝搬値は、新しい伝搬値を受け取るソースアスペクトパターンを特定するソースアスペクトパターン識別子と、前記新しい伝搬値が配置されるターゲットアスペクトパターンを特定するターゲットアスペクトパターン識別子とを含むことを特徴とする請求項７に記載の方法。
【請求項９】
選択されたオブジェクトタイプと選択された伝搬値との間に所望の接続を確立することは、
選択されたオブジェクトタイプのオブジェクトタイプ識別子を、前記伝搬値のメタデータに格納することと
を備えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記ソースおよびターゲットアスペクトパターンと少なくとも１つのオブジェクトタイプとの間に接続を確立することをさらに備えることを特徴とする請求項９に記載の方法。
【請求項１１】
前記ソースおよびターゲットアスペクトパターンと複数の異なるオブジェクトタイプとの間に接続を確立することをさらに備えることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記選択されたアスペクトパターンは、リレーションアスペクトパターンを備え、
第２の選択されたオブジェクトタイプのオブジェクトタイプ識別子を、前記リレーションアスペクトパターンのメタデータに格納して、前記選択されたオブジェクトタイプと、前記第２の選択されたオブジェクトタイプが、前記リレーションアスペクトパターンを介して接続されるようにすることをさらに備えることを特徴とする請求項２に記載の方法。
【請求項１３】
前記１組のアスペクトパターンのうち１つは、規則式および規則ソース識別子を備え、前記規則式は、少なくとも１つの指定された値に関して実行されるべき計算を定義し、前記規則ソース識別子は、前記指定された値を取り出すべき場所を特定することを特徴とする請求項１に記載の方法。
【請求項１４】
前記１つのアスペクトパターンの前記規則ソース識別子中の第２のアスペクトパターンを特定することにより、前記１つのアスペクトパターンを前記第２のアスペクトパターンに接続することをさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１５】
１組のアスペクトパターンを提供することは、
前記アスペクトパターンに関連するメタデータを第１のストアに格納することと、
前記アスペクトパターンのインスタンスに関連する１次データを第２のストアに格納することと
を備えることを特徴とする請求項１に記載の方法。
【請求項１６】
１組のオブジェクトタイプを提供することは、
前記オブジェクトタイプに関連するメタデータを第１のストアに格納することと、
前記オブジェクトタイプのインスタンスに関連する１次データを第２のストアに格納することと
を備えることを特徴とする請求項１に記載の方法。
【請求項１７】
１組のイベントタイプを提供することは、
前記イベントタイプに関連するメタデータを第１のストアに格納することと、
前記イベントタイプのインスタンスに関連する１次データを第２のストアに格納することと
を備えることを特徴とする請求項３に記載の方法。
【請求項１８】
アプリケーションプログラムを実行するように構成されたコンピュータシステムであって、
複数のアスペクトパターンに関連するアスペクトパターンメタデータと、複数のオブジェクトタイプに関連するオブジェクトタイプメタデータとを格納する第１のストアであって、前記アスペクトパターンは、前記オブジェクトタイプの機能を実装し、前記アスペクトパターンメタデータおよびオブジェクトタイプメタデータは、前記アスペクトパターンと前記オブジェクトタイプの間の接続を記述する第１のストアと、
前記アスペクトパターンのアスペクトパターンインスタンスと、前記オブジェクトタイプのオブジェクトインスタンスとを格納する第２のストアと、
前記アスペクトパターンメタデータおよびオブジェクトタイプメタデータに基づいて、前記オブジェクトインスタンスと前記アスペクトパターンインスタンスとの間の対話を制御するオブジェクトコントローラと
を備えることを特徴とするコンピュータシステム。
【請求項１９】
前記第１のストアは、複数のイベントタイプに関連するイベントメタデータを格納し、前記第２のストアは、前記イベントタイプのイベントインスタンスを格納することを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２０】
前記オブジェクトコントローラは、
イベントインスタンスを受け取り、前記イベントメタデータに基づいて前記イベントインスタンスを前記アスペクトパターンに提供するように構成されたオブジェクトコンポーネントを備えることを特徴とする請求項１９に記載のコンピュータシステム。
【請求項２１】
前記オブジェクトコントローラは、
前記オブジェクトコンポーネントがイベントインスタンスを前記アスペクトパターンに渡すためのアスペクトパターンインターフェースを実装するアスペクトパターンコンポーネントをさらに備えることを特徴とする請求項２０に記載のコンピュータシステム。
【請求項２２】
前記オブジェクトコントローラは、
前記イベントインスタンスを受け取り、前記イベントインスタンスを前記オブジェクトコンポーネントに提供する順序を管理するイベントマネージャコンポーネントをさらに備えることを特徴とする請求項２１に記載のコンピュータシステム。
【請求項２３】
前記第１のデータストアは、複数の伝搬値に関連する伝搬値メタデータを格納することを特徴とする請求項２２に記載のコンピュータシステム。
【請求項２４】
伝搬値メタデータは、各伝搬値についてソースアスペクトパターンおよびターゲットアスペクトパターンを特定し、前記ソースアスペクトパターンは、対応する伝搬値がそこから取り出されることになるアスペクトパターンであり、前記ターゲットアスペクトパターンは、伝搬値がそこに伝達されることになるアスペクトパターンであることを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２５】
前記オブジェクトコントローラは、
前記オブジェクトコンポーネントに結合され、前記オブジェクトコンポーネントから前記伝搬値コンポーネントに提供されたソースアスペクトパターンに対してターゲットアスペクトパターンを特定する伝搬値コンポーネントをさらに備えることを特徴とする請求項２４に記載のコンピュータシステム。
【請求項２６】
前記オブジェクトコンポーネントは、前記伝搬値コンポーネントによって特定された前記ターゲットアスペクトパターンに前記伝搬値をプッシュするように構成されることを特徴とする請求項２５に記載のコンピュータシステム。
【請求項２７】
前記オブジェクトコンポーネントは、要求側アスペクトパターンインスタンスから、値に関して実行すべき計算を示す規則式と、前記値がそこから取り出されることになるソースアスペクトインスタンスを特定するソースとを受け取るように構成されることを特徴とする請求項２６に記載のコンピュータシステム。
【請求項２８】
前記オブジェクトコンポーネントは、前記ソースアスペクトインスタンスから前記値を得て、前記値を使用して前記計算を実行して、新しい値を得るように構成されることを特徴とする請求項２７に記載のコンピュータシステム。
【請求項２９】
前記オブジェクトコンポーネントは、前記要求側アスペクトパターンインスタンスに前記新しい値を返すように構成されることを特徴とする請求項２８に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つまたは複数のタスクの構成のためのコンピュータシステムに関する。
【背景技術】
【０００２】
非常に複雑で高度に柔軟性のある大規模コンピュータアプリケーションをプログラミングする際、共通機能を抜き出すことが望まれる。機能が「カットアンドペースト」で共通して再利用され、異なる構成要素コンポーネント間でインターフェースすることは機能の明確なカプセル化と、データおよびメソッドの分離がないので難しい。再利用される機能の断片は知性を持たない、すなわち、どこから来たのかを知らず、その親と自動的に同期しないので、このことは、不整合と品質の低下に繋がる。さらに、同じ機能が、おそらくはわずかに変更されて多くの異なる場所で繰り返されるので、保守が大変になる。したがって、更新が必要なすべての場所を特定するのに時間がかかり、そのプロセスではマニュアルによる介入が必要となり、したがって誤りが生じやすい。
【０００３】
こうした問題のいくつかを克服する方法は、オブジェクト指向プログラミングを使用することである。オブジェクト指向プログラミングでは、
・明確なインターフェースを有するオブジェクトとして共通機能を抜き出すことができるので、再利用がある程度管理される。
【０００４】
・オブジェクトが明確で十分に記述されたインターフェースを有するので、相互運用が促進される。
【０００５】
・継承を使用することによって差分（ｖａｒｉａｎｃｅ）を管理することができる。継承により、親に対するいかなる変更もその子孫に適用されることが保証される。
【０００６】
・オブジェクトは、理想的には「コンピュータ」の領域ではなく、ビジネスの問題の領域に根ざすべきであるので、建前上は抽象化のレベルが高まる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、問題がなお存在する。例えば、ソリューションを拡張することがボトルネックとなる可能性がある。というのは、それなしにはアプリケーションが存在しないインフラストラクチャに対してプログラマが責任を負うためである。
【０００８】
オブジェクト指向プログラミングをより構造化した形で使用する方法を「フレームワーク」として提供することができる。アプリケーション開発に対する「フレームワーク」の利点は、共通機能が、ライブラリやユーティリティクラスとしてではなく、フレームワークとして提供されることである。フレームワークは基本的に、共通機能を提供し、加えてワーキングプログラムのインフラストラクチャを設定することによってフレームワークとなる。しかし、この種のプログラミングも継承に基づいており、したがって簡単にアップグレードすることができない。  
【０００９】
過去数年の間、プログラマのためにプログラミングコードを編成するフレームベースのプログラミング言語を作成するいくつかの試みが提案されてきた。このプログラミング技法を導入することによって広められた全体的な概念は、すべてのオブジェクトが事前に定義されたコードの断片に基づくということである。とりわけ、このようなシステムは、ＩＢＭによる「サブジェクト指向プログラミング」、およびＸｅｒｏｘ  ＰＡＲＣ  Ｓｏｆｔｗａｒｅによる「アスペクト指向プログラミング」として提示されている。
【００１０】
このプログラミング方法は、プログラマがオブジェクトを編成する助けとなるが、プログラマは依然としてこうした機能がどのように対話するかについて、コードを初めから書き、こうした機能をどのように組み合わせるかを書くことにより記述する責任を負っている。このプロセスは「ウィービング（Ｗｅａｖｉｎｇ）」とも呼ばれている。
【００１１】
機能の断片を変更するごとに、基本的にはすべてのウィービングを再び行わなければならず、または少なくともチェックしなければならないことは、こうしたフレームワークベースのプログラミング言語の欠点である。これにより、フレームワークのアップグレードが複雑になり、高価になる。
【００１２】
さらに、オブジェクトの一部の機能がウィービングコードとして提供される。それゆえ、フレームワークはウィービングコードが何を行うかを認識する手段を持たないので、フレームワークがアプリケーションのシステム全体の品質を保証することが不可能になる。
【課題を解決するための手段】
【００１３】
タスク指向ユーザインターフェースにより、ユーザはシステムを通してガイドされるので、システムの使いやすさが増す。タスクは、ユーザがどのようにジョブを行うべきかを考えることと類似している。これは、ユーザがジョブを行う際の助けになる。
【００１４】
ウェブベースの環境では、情報の各断片をサーバに送信しなければならないので、ページはシンプルでタスクベースでなければならない。サーバは、次のステップなどでこうした情報の断片に応答する。良いウェブ設計では、ページごとに単一のタスクにフォーカスし、ページを通じて前方および後方への明示的なナビゲーション（すなわち、単なる進むボタンや戻るボタンではない）を提供すると言うことができる。同様に、誘導型ナビゲーションは、各ページ上のアクティビティを、単一の主要なタスクにフォーカスすることで開始する。誘導型ナビゲーションの主原理は、以下の４つのステップで要約することができる。
【００１５】
１．各ページで単一のタスクにフォーカスする。  
２．タスクを記述（ｓｔａｔｅ）または命名（ｎａｍｅ）する。  
３．ページの内容をタスクに適合させる。タスクはページ上に記述される。ページ上のコントロールを用いてタスクをどのように実施するかが明らかであるべきである。  
４．２次的なタスクへのリンクを提供する。
【００１６】
ウェブ設計と同様の様式で、前のタスクに応答して、次のタスクが生成され、ユーザに提示される。ユーザにタスクの正しい順序を提示できるようにするためには、各タスクシーケンスは前もってプログラムされなければならない。このことは、ユーザインターフェース（ＵＩ）をコントロールするコンポーネントで行われる。すべての可能なタスクシーケンスをプログラムしなければならないのは不利である。
【００１７】
本発明の一特徴により、タスクシーケンスを提示するためにＵＩをコントロールするコンポーネントのコード量が削減される。これにより、ＵＩをプログラミングまたは構成するのに費やされる時間が削減され、アプリケーションのプログラミングまたは構成が容易になる。
【００１８】
本発明の広い態様では、タスクを構成するコンピュータシステムであって、タスクを構成するためのデザインコンポーネントを備え、デザインコンポーネントが、
１組のビジネスオブジェクトタイプと、
１組のタスクパターンに対するアクセスを有するか、またはそれらを備え、前記タスクパターンのうち少なくとも１つが、
ビジネスオブジェクトインスタンスと対話することができるランタイム機能を備えた少なくとも１つのタスクステップパターンを備え、
デザインコンポーネントが、ビジネスオブジェクトタイプとタスクパターンとの間の接続を確立するように適合されることを特徴とする。
【００１９】
別の広い態様では、タスクを構成する方法であって、
１つまたは複数のタスクパターンをビジネスオブジェクトタイプと接続するステップを備える方法が提供される。
【００２０】
コンピュータシステムを使用することによってタスクシーケンスを自動生成する方法であって、
１．コンピュータシステムを使用することにより、アプリケーションのユーザに対して好ましくはビジネスオブジェクトタイプの情報を備えた第１のタスクを提示するステップと、
２．コンピュータへの入力に応答してイベントインスタンスをファイア（ｆｉｒｅ）するステップと、
３．第１のタスクを完了することができるかどうかを、
ａ．ビジネスオブジェクトタイプの要素がイベントインスタンスに反応することができる状態にあるかどうかを識別するステップと、
ｂ．その状態にない場合、要素がイベントインスタンスに反応することができる状態にするために何を完了する必要があるかを特定するステップと
によって特定するステップと、
４．ステップ３ｂに応答して、要素がイベントインスタンスに反応することができる状態にするために何を完了する必要があるかについての情報を備えたタスクを提示するステップと
を備える方法が提供される。
【００２１】
この方法の利点は、アプリケーション開発者がすべての可能なタスクシーケンスを構成／プログラムする必要がなく、したがってアプリケーションのプログラミング／構成が容易となることである。また、この方法では、より一貫したタスクシーケンスの生成が保証されることになる。さらに、タスクシーケンスの自動生成により、プログラム開発者がタスクシーケンスを特定していない危険（したがってタスクシーケンスが失われることになる危険）が低減される。ビジネスオブジェクトタイプは、１つまたは複数の要素を含むことができる。要素は、ビジネスオブジェクトタイプのビジネスオブジェクトインスタンスであってよく、あるいはデータ、メタデータ、機能、または状態などの要素についての情報を備えることができる。
【００２２】
本発明の一実施形態では、イベントインスタンスに反応することができない状態のビジネスオブジェクトタイプの要素が存在しなくなるまで、ステップ３を繰り返す方法が提供される。
【００２３】
この方法の別の実施形態では、ステップ１での第１のタスクが、ビジネスオブジェクトタイプの機能に関する情報や、メタデータ、データなどの情報を備える。
【００２４】
第１のタスクが、ビジネスオブジェクトタイプと共に構成されたイベントタイプの情報を備える方法も、本発明の範囲内である。
【００２５】
本発明の別の実施形態では、ステップ１が、完全に、または部分的に作成されたビジネスオブジェクトインスタンスを提示することをさらに備える方法が提供される。
【００２６】
さらに、ステップ２が、ＵＩコンポーネントからビジネスオブジェクトコントローラ（ＢＯＣ）に第１のメッセージを送るステップをさらに備える方法も、本発明の範囲内である。例示的には、第１のメッセージが、ビジネスオブジェクトタイプのビジネスオブジェクトインスタンスなど、イベントタイプおよびビジネスオブジェクトタイプの識別および／または状態情報を備える方法が提供される。
【００２７】
本発明のさらなる実施形態では、ビジネスオブジェクトタイプの要素がアスペクトインスタンスである方法が提供される。例示的には、ステップ３ａが、アスペクトインスタンスのアスペクトパターンに第２のメッセージを送るステップを備える方法が提供される。第２のメッセージが、イベントタイプの識別および／または状態情報を備える方法も提供される。第２メッセージはＢＯＣによって送られることが好ましい。
【００２８】
要素がイベントインスタンスに反応することが可能である状態にあるかどうかについての情報を備えた第３のメッセージを返すステップをさらに備える方法も本発明の範囲内である。
【００２９】
ビジネスオブジェクトに関して実行するための可能なタスクのリストを自動生成する方法であって、コンピュータの使用によって１つまたは複数の要素を備え、
１．コンピュータへの入力に応答して、ビジネスオブジェクトに関係する１つまたは複数のイベントインスタンスをファイアするステップであって、各イベントインスタンスがタスクに関係するステップと、
２．ビジネスオブジェクトの１つまたは複数の要素がイベントインスタンスに反応することができる状態にあるかどうかを識別することによって各タスクを完了することができるかどうかを識別するステップと、
３．タスクを完了することができる場合、ビジネスオブジェクトに関して実行するための可能なタスクを備えたリスト上のタスクを提示するステップと
を備えた方法が提供される。
【００３０】
システムのユーザが、ビジネスオブジェクトタイプの１つまたは複数の要素の状態のために現在実行することのできる可能なタスクのリストの提供を受けることは利点である。
【００３１】
タスクシーケンスの生成に従ってアクションを実行するようにプログラムされた１つまたは複数の中央処理装置などのプロセッサ手段と、タスクシーケンスの生成で使用されるデータを格納するＲＡＭやハードディスクなどの記憶手段とを備えたコンピュータシステムを使用することによってタスクシーケンスの自動生成を実現することを備える方法であって、
１．コンピュータシステムを使用することによって第１のタスクを提示するステップと、
２．コンピュータシステムへの入力に応答して、コンピュータシステムを使用することによって第１のタスクを完了することができるかどうかをクエリするステップであって、該クエリは、
ａ．ビジネスオブジェクトタイプの要素が、第１のイベントタイプのイベントインスタンスに反応することができる状態にあるかどうかをクエリするステップと、
ｂ．その状態にない場合、コンピュータシステムを使用することにより、要素が、第１のイベントタイプのイベントインスタンスに反応することができる状態にするために何を完了する必要があるかを特定するステップと
を備えるクエリするステップと
を備える方法が提供される。
【００３２】
このコンピュータシステムは、例えばスタンドアロンコンピュータによって、または分散コンピュータシステムとして、実現することができる。第１のタスクを提示するステップは、コンピュータシステムのユーザによって行われるタスクの選択に基づくことが好ましい。
【００３３】
本発明の一実施形態によれば、ステップ２ｂはさらに、何を完了する必要があるかを特定した結果として、要素が、第１のイベントタイプのイベントインスタンスに反応することができる状態にするために何を完了する必要があるかについての情報を備えたタスクを提示する。
【００３４】
本発明の別の実施形態では、要素に対するクエリの結果が、要素にとって利用可能な機能によって得られ、前記機能が、要素にクエリすることによってトリガされる方法が提供される。機能は要素内にあることが好ましい。
【００３５】
特定するステップ２ｂは、当該要素にとって使用可能な機能によって行われ、それによって、当該要素が、反応することができる状態にするために何を完了する必要があるかについての情報を提供する方法も本発明の範囲内にある。
【００３６】
本発明のさらなる実施形態では、コンピュータシステムへの入力がユーザ入力である方法が提供される。また、入力は、キーボード、音声制御、コンピュータマウスなどを介してユーザにより提供することができる。入力は、接続されたコンピュータシステムに由来するものでもよい。さらに、入力はインターネットを介して到達してもよい。
【００３７】
本発明の別の実施形態では、ビジネスオブジェクトタイプのすべての要素についてステップ２を繰り返す方法が提供される。
【００３８】
やはり本発明の範囲内で、ビジネスオブジェクトタイプの要素が、第１のイベントタイプのイベントインスタンスに反応することができる状態にある場合に、ステップ２ａの結果として、第１のイベントタイプのイベントインスタンスをファイアするステップ３をさらに備える方法が提供される。
【００３９】
本発明の別の実施形態では、ステップ２ｂの結果として、提示されたタスクを第１のタスクとなるように再帰的に割り当て、ステップ１およびステップ２を繰り返し、それによって提示されたタスクが第１のタスクとなる方法が提供される。ステップ１およびステップ２を１回または複数回繰り返すことが好ましい。やはり本発明の範囲内で、ステップ１およびステップ２の繰り返しが、限定された回数だけ繰り返される。１から１０の間の限定された回数のように、限定された回数を事前に定義することが好ましい。第１のタスクのすべてのタスクおよびその従属タスクが首尾よく完了するまで、ステップ１およびステップ２を繰り返す方法も提供される。
【００４０】
本発明の他の実施形態では、方法を取り消すステップをさらに備える方法が提供される。この方法は、コンピュータシステムへの入力によって取り消されることが好ましい。この方法は、キーボード、コンピュータマウス、音声制御などを介する入力などのユーザ入力によって取り消されてもよい。この方法はさらに、インターネットを介して取り消されてもよい。またこの方法は、接続されたコンピュータシステムを介して取り消されてもよい。
【００４１】
やはり本発明の範囲内で、ステップ２ｂで提示されたタスクを、第２のイベントタイプのイベントインスタンスをファイアし、それによって要素タイプの状態を、第１のイベントタイプのイベントインスタンスに反応することができる状態に変更することによって完了するステップ２ｃをさらに備える方法が提供される。
【００４２】
本発明の別の実施形態では、ビジネスオブジェクトタイプのすべての要素が第１のイベントタイプのイベントインスタンスに反応することができるまで、ステップ２を繰り返す方法が提供される。
【００４３】
さらなる実施形態では、第１のイベントタイプのイベントインスタンスをファイアするステップ３をさらに備える方法が提供される。
【００４４】
別の実施形態では、ステップ１での第１のタスクが、ビジネスオブジェクトタイプの機能に関する情報や、メタデータ、データなどの情報を備える方法が提供される。
【００４５】
やはり本発明の範囲内で、第１タスクが、ビジネスオブジェクトタイプと共に構成されたイベントタイプの情報を備える方法が提供される。ステップ１は、完全な、または部分的なビジネスオブジェクトインスタンスを提示することをさらに備えることが好ましい。
【００４６】
本発明の別の実施形態では、ステップ２が、ユーザインターフェース（ＵＩ）コンポーネントからビジネスオブジェクトコントローラ（ＢＯＣ）に第１のメッセージを送るステップをさらに備える方法が提供される。第１のメッセージは、ビジネスオブジェクトタイプのビジネスオブジェクトインスタンスなど、イベントタイプおよびビジネスオブジェクトタイプの識別および／または状態情報を備えることが好ましい。
【００４７】
本発明の一実施形態では、ビジネスオブジェクトタイプの要素がアスペクトインスタンスである方法が提供される。
【００４８】
ステップ２ａが、第２のメッセージをアスペクトインスタンスのアスペクトパターンに送るステップを備える方法を提供することも本発明の範囲内である。第２のメッセージはイベントタイプの識別を備えることが好ましい。また、第２のメッセージはビジネスオブジェクトコントローラ（ＢＯＣ）によって送られる。
【００４９】
本発明の別の実施形態では、要素がイベントインスタンスに反応することが可能な状態にあるかどうかについての情報を備えた第３のメッセージを返すステップを、ステップ２ａがさらに備えた方法が提供される。
【００５０】
他の態様による方法を実行するためのコンピュータシステムであって、
タスクシーケンスの生成に従ってアクションを実行するようにプログラムされた１つまたは複数の中央処理装置などのプロセッサ手段と、
タスクシーケンスの生成に使用されるデータを格納するＲＡＭやハードディスクなどの記憶手段と、
第１のタスクを生成するＢＯＣコンポーネントと、
タスク情報をデバイスにレンダリングするＵＩコンポーネントと
を備えたコンピュータシステムが提供される。
【００５１】
ビジネスオブジェクトタイプを構成するためのシステムであって、本発明で有用であるシステムは、ビジネスオブジェクトタイプを構成するデザインコンポーネントを備え、デザインコンポーネントが、ビジネスオブジェクトタイプ接続手段と、１組のアスペクトパターンであって、該アスペクトパターンの少なくとも１つが、アスペクト接続手段と、１つまたは複数の一般化された機能の断片であって、該一般化された機能の断片が指定されるように適合され、それによって特定の機能の断片を提供する一般化された機能の断片と、１つまたは複数の機能の断片をトリガすることができる１つまたは複数のアスペクトイベントタイプ接続手段とを備えたアスペクトパターンと、１組のイベントタイプであって、該イベントタイプの少なくとも１つがイベントタイプ接続手段を備えたイベントタイプとに対するアクセスを有し、またはそれらを備えたシステムが提供される。
【００５２】
このシステムの利点は、１つまたは複数のアスペクトパターン中の事前定義された機能の断片を構成し、１つまたは複数のアスペクトパターンと共にビジネスオブジェクトタイプを構成し、ビジネスオブジェクトタイプと共に１つまたは複数のイベントタイプを構成し、１つまたは複数のアスペクトパターン中の１つまたは複数の機能の断片と共にイベントタイプを構成し、それによって１つまたは複数の機能の断片をアスペクトパターンでトリガすることを可能にすることによって、ビジネスオブジェクトタイプをより簡単に作成することができることである。このシステムのさらなる利点は、構成の前に、アスペクトパターンとビジネスオブジェクトタイプの間、またはイベントタイプとビジネスオブジェクトタイプの間にいかなる接続も存在しないことである。いかなるアスペクトパターンも構成の前にいかなる相互接続を有さない。これは、システムのアップグレードを容易にするので利点である。さらに、抽象化のレベルは、伝統的な構成と比べて高く、したがってアプリケーションのより高速のモデリングおよびより高い品質がサポートされる。
【００５３】
以下では、いくつかの専門用語を使用する。こうした用語の使用は用語の通常の使用と矛盾しないと考えられるが、本発明の理解を容易にするために、いくつかの用語の短いリストをその用語の意味と共に以下に示す。
【００５４】
メタデータ（同義語：タイプデータ、２次データ）：データ自体ではなく、データのタイプに関係するデータである。例えば、郵便アドレスは、通り、番地、郵便番号、都市、および国などの要素を含むことがある。郵便アドレスがどの要素を含むかについての情報がメタデータである。別の例は、ある所与のシステムで、従業員の名前が５０字を超えることができないと定義されることである。可能な最大許容文字数はメタデータである。
【００５５】
一方、１次データは、各インスタンスにのみ当てはまる特定の事柄を記述する。例えば、実際の住所（Ｆｒｙｄｅｎｌｕｎｄｓ  ａｌｌｅ  ６，２９５０  Ｖｅｄｂａｅｋ）、実際の従業員名（Ｌａｒｓ  Ｈａｎｓｅｎ）、または実際のエンジン番号（Ｓ／Ｎ  ４５  ５５  ６６６）である。データは常に、そのメタデータに規定された仕様に従って振る舞わなければならないことを意味している。例えば、従業員名は、文字数が５０を超えないという規則に準拠しなければならない。
【００５６】
構成は、一般化された機能および／またはメタデータの１つまたは複数の断片の完全な、または部分的な仕様である。
【００５７】
アスペクトパターンは、一般的な問題に対する構成可能なソリューションを表すという意味で、また一般的な問題のソリューションに対するビジネスロジックを備えるという意味で、一種の拡張されたデータタイプである。アスペクトパターンは、１つまたは複数の一般化された機能の断片を含む。アスペクトパターンはさらに、そのパターンに対して構成することのできる１組のメタデータを定義する。アスペクトパターンは、アプリケーション中のいくつかのメタデータの解釈を定義する。アスペクトパターンは、アスペクト接続手段およびアスペクトイベントタイプ接続手段をさらに含む。
【００５８】
例えば、アプリケーションは、「アドレスアスペクトパターン（Ａｄｄｒｅｓｓ  Ａｓｐｅｃｔ  Ｐａｔｔｅｒｎ）」ならびに「マイルストンアスペクトパターン（Ｍｉｌｅｓｔｏｎｅ  Ａｓｐｅｃｔ  Ｐａｔｔｅｒｎ）」を使用することができる。アドレスアスペクトパターンは、例えば電話番号をどのように処理するかを認識している１つまたは複数の機能の断片を備え、例えば電話番号を呼び出し、その番号を国内の電話帳と突き合わせて検証し、出力のために番号をフォーマット設定するなどの方法を認識している機能を備える。アドレスアスペクトパターンはまた、例えば住所を検証することのできる機能の一断片を含む、郵便アドレスをどのように処理するかを認識している１つまたは複数の機能の断片を備えることもできる。すべてのアスペクトパターンは、特定のアスペクトパターンの機能によって解決することができるすべての問題がこのパターンにも属することを保証するために広い解釈を必要とする。例えば、値アスペクトパターンを使用して、他の値に基づいて様々な値を計算することができ、またはコストを推定することができる。値とは、価格、ＶＡＴ、割引きなどの従来の値を意味するが、労働時間などのより抽象的な値も意味する。
【００５９】
アスペクトパターンは１つまたは複数のアスペクトタイプを備える。アスペクトタイプは、アスペクトパターンの仕様である。それゆえ、様々なアスペクトタイプについて、機能のどの断片をアスペクトタイプが使用することができるかが決定される。各アスペクトタイプは、実行時に１次データのメタデータを定義する。
【００６０】
例えば、前述の「アドレスアスペクトパターン」を使用するアプリケーションはさらに、「アドレスアスペクトパターン」のいくつかの仕様、例えばアスペクトタイプ「ホームアドレス（Ｈｏｍｅ  ａｄｄｒｅｓｓ）」およびアスペクトタイプ「請求先アドレス（Ｂｉｌｌ  ｔｏ  ａｄｄｒｅｓｓ）」を使用することができる。各アドレスタイプについて、アドレスアスペクトパターン内の機能がより詳細に指定される。アドレスタイプ「ホームアドレス」は、例えばアドレスアスペクトパターン内の機能の断片「郵便アドレス（ｐｏｓｔａｌ  ａｄｄｒｅｓｓ）」だけを使用することができるように定義することができるのに対し、アスペクトタイプ「請求先アドレス」は、機能の断片「郵便アドレス」または「Ｅメール（Ｅ−ｍａｉｌ）」のいずれかを使用することができる。すなわち、機能の断片は、アスペクトタイプにおいて構成され、例えばアドレスタイプ「ホームアドレス」は、「郵便アドレス」機能だけを包含するように構成される。識別子の自動作成を可能にする機能を備える識別アスペクトパターンについて、識別子が作成されるべき特定の方法（例えば、識別子が数列または乱数発生器から作成される数を使用するかどうか）によってアスペクトタイプを指定することができる。
【００６１】
ビジネスオブジェクトタイプ：ビジネスオブジェクトタイプは、実世界の範囲内の概念または実体を表すオブジェクトタイプである。ビジネスオブジェクトタイプの典型的な例は、従業員、製品、インボイス、支払、借方、貸方、およびオーダーである。ビジネスオブジェクトタイプは、ビジネスオブジェクトタイプ接続手段を備える。
【００６２】
１つまたは複数のアスペクトタイプをビジネスオブジェクトタイプと接続することにより、１つまたは複数の構成済みアスペクトタイプと共に構成済みビジネスオブジェクトタイプが作成される。すなわち、アスペクトタイプのアスペクト接続手段が、ビジネスオブジェクトタイプ接続手段と接続される。
【００６３】
例えばアプリケーションでは、ビジネスオブジェクトタイプ「顧客（Ｃｕｓｔｏｍｅｒ）」はホームアドレスが必要である場合があり、それゆえ、アスペクトタイプ「ホームアドレス」をビジネスオブジェクトタイプ「顧客」と共に構成しなければならない。この方法では、構成済みビジネスオブジェクトタイプ「顧客」が得られる。この場合、構成済みアスペクトタイプは「顧客のホームアドレス（Ｃｕｓｔｏｍｅｒ’ｓ  Ｈｏｍｅ  ａｄｄｒｅｓｓ）」となるであろう。
【００６４】
ビジネスオブジェクトインスタンスは、構成済みビジネスオブジェクトタイプのインスタンスである。例えば、構成済みビジネスオブジェクトタイプ「顧客」のビジネスオブジェクトインスタンスは、デンマークのＮａｖｉｓｉｏｎから入手可能なＮａｖｉｓｉｏｎ  Ｓｏｆｔｗａｒｅ  Ａ／Ｓとすることができる。
【００６５】
アスペクトインスタンスは、実行時に作成された構成済みアスペクトタイプの１つまたは複数の１次データである。例えば、「特定の顧客のホームアドレス（Ｈｏｍｅ  Ａｄｄｒｅｓｓ  ｆｏｒ  ａ  ｓｐｅｃｉｆｉｃ  Ｃｕｓｔｏｍｅｒ）」は、「Ｆｒｙｄｅｎｌｕｎｄｓ  Ａｌｌｅ  ６，２９５０  ｖｅｄｂａｅｋ」とすることができる。
【００６６】
アプリケーションは、いくつかの構成済みビジネスオブジェクトタイプを備える。構成することのモデルの原理のアウトラインを図１に示す。このモデルは以下のように解釈されるべきである。
【００６７】
イベントタイプ（１０、１２、１４）が、構成済みビジネスオブジェクトタイプ１６と共に構成され、アスペクトパターン（１８、２０、２２）が反応することのできる可能なオカレンス（ｏｃｃｕｒｒｅｎｃｅ）を定義する。各イベントタイプ１０は、イベントタイプ接続手段２４を備える。ユーザまたはシステムのいずれかはイベントタイプをトリガして、イベントインスタンスをファイアすることができる。イベントインスタンスは、イベントタイプのオカレンスである。イベントタイプは、ゼロ回または数回ファイアすることができる。アスペクトインスタンス間の実際の通信は、イベントインスタンスを通じて行われる。イベントタイプ（１０、１２、１４）は、特定のビジネスオブジェクトタイプと共に構成される。このように、イベントタイプ１０、１２、１４は、ビジネスオブジェクトタイプ１６のダイナミクスをコントロールする。例えば、ビジネスオブジェクトタイプ「インボイス（Ｉｎｖｏｉｃｅ）」に対するイベントタイプは、「支払期限（ｐａｙｍｅｎｔ  ｄｕｅ）」とすることができ、そしてそのイベントインスタンスが、ビジネスオブジェクトインスタンス（すなわち特定のインボイス）が有する支払期限の実際の日付である「支払期限」イベントタイプと共に構成されたアスペクトパターン内の機能の一断片によってトリガされるであろう。また、アドレスアスペクトパターンが、公式の登記簿中の住所のチェックを可能にする機能の一断片を有することができる。次いで、公式の登記簿中の住所をチェックする機能の一断片をトリガするイベントタイプを作成することが可能である。次に、構成済みビジネスオブジェクトタイプ「顧客」に対するイベントタイプは「アドレス検証（Ａｄｄｒｅｓｓ  ｖｅｒｉｆｉｃａｔｉｏｎ）」とすることができ、それが郵便アドレスチェックをトリガするであろう。次いで、「アドレス検証」イベントタイプは、システムトリガのイベントタイプまたはユーザトリガのイベントタイプのどちらかとなるように構成することができる。
【００６８】
ビジネスロジック（すなわちアスペクトパターンの機能）は、アスペクトパターンのアスペクトインスタンスが特定のイベントインスタンスを受け取ったときにアクションを起こすことができる。イベントメカニズムは、アスペクトタイプを完全に絶縁する働きをする。この説明では、アスペクトタイプとは、例示的に排反（ｄｉｓｊｏｉｎｔ）であるものを指す。これは、単一のアスペクトタイプが他のアスペクトタイプのいずれのデータまたはロジックについても関知しないか、または別のアスペクトタイプが存在するかどうかを関知しないことを意味する。同様に、アスペクトパターンも例示的に排反である。これは、新しいアスペクトパターンを現行システムにプラグすることを、新しいアスペクトパターンとそのアスペクトタイプに関する変更以外にシステムに他のいかなる変更も行うことなく可能とし、それゆえ起こりうる副作用がなくなる（その他のアスペクトタイプを再構成する必要がないので）ことによってアップグレードが容易となるので、このことは利点である。
【００６９】
例えば、ユーザトリガのイベントタイプとして構成される、イベントタイプ「アドレス検証」のイベントインスタンスをファイアするのは、アプリケーションのユーザとなるであろう。イベントインスタンスがファイアされると、アドレスアスペクトパターン中の郵便アドレスチェックがトリガされることになる。したがって、イベントタイプまたはイベントインスタンスのどちらも、いかなる機能も持たない。それらは単に、イベントタイプ接続手段の構成によってどの構成済みアスペクトタイプがトリガされうるかについての情報を備え、したがって図１に示すように、構成済みアスペクトタイプのアスペクトパターン中の機能をトリガする。
【００７０】
以下の説明を読みやすくするために、本発明と共に適用することができるビジネスオブジェクトタイプ１６を構成するモデルの原理の概要を図１に示す。図１に示すように、各アスペクトパターン１８、２０、または２２について、１つまたは複数のアスペクトタイプ２６、２８、３０が存在することができる。先に説明したように、アスペクトタイプはアスペクトパターンの仕様である。イベントタイプがトリガされたときに実行すべき機能の指定の断片は、アスペクトイベントタイプ接続手段３２を備える。本発明に関連する実施形態では、アスペクトイベントタイプ接続手段３２およびイベントタイプ接続手段２４はそれぞれ、固有のアスペクトイベントタイプＩＤ、そしてそれぞれ固有のイベントタイプＩＤを備える。イベントタイプＩＤを設定し、イベントタイプがトリガされたときに反応すべき（１つまたは複数のアスペクトパターン内に含まれる）１つまたは複数のアスペクトタイプ内の指定の機能のどの断片かを特定することにより、イベントタイプの効果が構成される。このように、イベントタイプ接続手段２４とアスペクトイベントタイプ接続手段３２の間の矢印は、この構成を指す。次に、指定の機能のこうした断片に対応するアスペクトイベントタイプＩＤが、イベントタイプＩＤと同一に設定される。例えば、「郵便アドレス」アスペクトタイプは、イベントタイプＩＤ、例えば「１」を有するイベントタイプ「顧客の作成」がトリガされたときにトリガされるべき機能の断片「検証」を備える。したがって、機能の断片「検証」内に含まれるアスペクトイベントタイプＩＤも「１」となるべきである。「郵便アドレス」および／またはその他のアスペクトタイプ内の機能の他の断片もトリガする必要がある場合があり、したがってそのアスペクトイベントタイプＩＤも「１」とすべきである。
【００７１】
ビジネスオブジェクトタイプ１６の実際の構成は、ビジネスオブジェクトタイプ接続手段３４をアスペクト接続手段３６およびイベントタイプ接続手段２４と結ぶことによって行われる。本発明で有用な一実施形態では、ビジネスオブジェクトタイプ接続手段３４およびアスペクト接続手段３６はそれぞれ、ビジネスオブジェクトタイプＩＤ、そしてそれぞれアスペクトＩＤを備える。ビジネスオブジェクトタイプ１６の構成は次に、例えば図５に関連して、以下で詳細に図示し説明するデータベース中に、ビジネスオブジェクトタイプＩＤ、１つまたは複数のアスペクトＩＤ、および１つまたは複数のイベントタイプＩＤを有するエントリを作成することによって行われる。アスペクト接続手段３６とビジネスオブジェクト接続手段３４の間の矢印、そしてビジネスオブジェクトタイプ１６とイベントタイプ１０、１２、１４の間の矢印は構成を指す。
【００７２】
図１では、１つのビジネスオブジェクトタイプ１６だけの構成が示されているが、実際にはいくつかのビジネスオブジェクトタイプを同様に（すなわち同じアスペクトパターンおよびそれらのアスペクトタイプを使用することによって）構成することができる。
【００７３】
２つ以上のビジネスオブジェクトインスタンスを対話させるために、「リレーション（Ｒｅｌａｔｉｏｎ）」アスペクトパターンが、本発明で有用な一実施形態として実装される。アスペクト接続手段３６に加えて、「リレーション」アスペクトパターンは、１つまたは複数の（リレーション）アスペクト接続手段３６に対して構成することができる関係するリレーション接続手段（関係するリレーションタイプＩＤ）をさらに備え、それによってビジネスオブジェクトタイプ間の接続が作成される。
【００７４】
「リレーション」アスペクトパターンは、ビジネスオブジェクトインスタンスがイベントインスタンスを受け取るときに反応することができる１つまたは複数の機能の断片と、別のイベントインスタンスを関係するビジネスオブジェクトインスタンスに伝搬させることを可能にする１つまたは複数の機能の断片とをさらに備える。例えば、技術者にサービスジョブを割り振るべき場合、「リレーション」アスペクトパターンをビジネスオブジェクトタイプ「従業員（Ｅｍｐｌｏｙｅｅ）」とビジネスオブジェクトタイプ「サービスジョブ（Ｓｅｒｖｉｃｅ  Ｊｏｂ）」の両方と共に構成することにより、ビジネスオブジェクトタイプ「従業員」をビジネスオブジェクトタイプ「サービスジョブ」に関係付けられるべきである。したがって、ビジネスオブジェクトタイプ「従業員」のビジネスオブジェクトインスタンス「Ｋｉｍ  Ｊｅｎｓｅｎ」は、構成済み「リレーション」アスペクトパターンのアスペクトインスタンスと共にビジネスオブジェクトインスタンス「ＳＪ３３４４５５」と関係付けることができる。イベントインスタンスが、ビジネスオブジェクトインスタンスのうち１つに関してファイアされるときはいつでも、別のイベントインスタンスが他のビジネスオブジェクトインスタンスに伝搬されることになる。
【００７５】
ある状況では、１つの構成済みアスペクトタイプのアスペクトインスタンスから値を取り出し、ある構成済みアスペクトタイプの別のアスペクトインスタンスに関して値を設定することが有用である場合がある。このことは、図２に関連して論じるように、ビジネスオブジェクトタイプに対して「伝搬値（Ｐｒｏｐａｇａｔｅｄ  Ｖａｌｕｅ）」４０、４２、４４を構成することによって達成される。アスペクトインスタンスをルックアップすべき場合の構成済みアスペクトタイプと、アスペクトインスタンスを変更すべき場合の構成済みアスペクトタイプが、構成の間に指定される。そのアスペクトインスタンスから１つまたは複数の値を提供することができるアスペクトパターンは、その一般化された機能３３に数式機能の断片を含む。数式機能は、アスペクトインスタンスのどの部分が伝搬されるべきかの指定を与える。自身のアスペクトインスタンスに関して１つまたは複数の値を設定することができるアスペクトパターンは、チャネル機能の断片を備える。チャネル機能は、アスペクトインスタンスのどの部分を変更すべきかの指定を与える。伝搬値（例えば４０）は、ソースアスペクト接続手段４６およびターゲットアスペクト接続手段４８を備える。すべての値が最新となるよう保証するため、ソース４６が変更されると、すべての伝搬値４０、４２、４４が計算される。
【００７６】
図２に示す伝搬値の構成の間、ビジネスオブジェクトタイプ１６が、０個またはいくつかの伝搬値（４０、４２、４４）と共に構成される。伝搬値のそれぞれについて、ソースアスペクト接続手段４６が、値が取り出されるべきアスペクトタイプ（２６、２８、３０）のアスペクト接続手段３６と接続される。同様に、ターゲットアスペクト接続手段４８が、値が設定されるべきアスペクトタイプ２６、２８、３０のアスペクト接続手段３６と接続される。
【００７７】
ソースアスペクト接続手段４６およびターゲットアスペクト接続手段４８がそれぞれ構成されるアスペクトタイプ２６、２８、３０を、同一のビジネスオブジェクトタイプ１６または異なるビジネスオブジェクトタイプと共に構成することができる。したがって、伝搬値を使用することにより、ビジネスオブジェクトインスタンス内、ならびに２つのビジネスオブジェクトインスタンス間で値を交換することができる。
【００７８】
本発明で有用なシステムの一実施形態では、ソースアスペクト接続手段４６ならびにターゲットアスペクト接続手段４８はそれぞれ、固有の識別子を有し、先に説明したのと同様にアスペクト接続手段３６ならびにビジネスオブジェクトタイプ接続手段３４も固有の識別子を有する。ビジネスオブジェクトＩＤ、ソースアスペクトＩＤ（値が取り出されるべきアスペクトタイプと同一のＩＤに設定）、およびターゲットアスペクトＩＤ（値が設定されるべきアスペクトタイプと同じＩＤに設定）を備えるエントリを作成することによって構成が行われる。伝搬値においても、アスペクトインスタンスの値を取り出すべき部分と値を設定すべき部分がそれぞれ指定される。
【００７９】
例えば、サービスオーダーの価格がサービスオーダーの応答時間に依存し、その結果、「短い（ｓｈｏｒｔ）」、「中程度（ｍｅｄｉｕｍ）」、および「長い（ｌｏｎｇ）」応答時間が異なる価格となる場合、ビジネスオブジェクトタイプ「サービスオーダー（Ｓｅｒｖｉｃｅ  Ｏｒｄｅｒ）」は、サービスオーダーの応答時間を備える「応答時間（Ｒｅｓｅｐｏｎｓｅ  Ｔｉｍｅ）」アスペクトタイプと、サービスオーダーの価格を備える「価格（Ｐｒｉｃｅ）」アスペクトタイプと共に構成することができる。「応答時間」アスペクトインスタンス中のサービスオーダーの応答時間が変更されたときはいつでも、対応する「価格」アスペクトインスタンス中のサービスオーダーの価格は、応答時間に基づいて再計算されるべきである。このことは、値「長い」、「短い」、「中程度」のうち１つを返すことのできる「長さ（Ｌｅｎｇｔｈ）」と呼ばれるアスペクトタイプ「応答時間」に関する数式を有することによって行うことができる。これは、「応答時間」アスペクトインスタンス中のサービスオーダーの応答時間が「長い」、「短い」、または「中程度」のいずれかと考えられるかを判定するアスペクトタイプの構成である「応答時間」の一部となるであろう。アスペクトタイプである「価格」は、値「長い」、「短い」、または「中程度」のいずれかを受け取ることができる「サービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）」と呼ばれるチャネルを有することができる。この入力に基づいて、「価格」アスペクトタイプは、自身のアスペクトパターンおよび自身の構成内の機能に従って「価格」アスペクトインスタンスを再計算する。伝搬値メカニズムは、「応答時間」アスペクトインスタンスから「価格」アスペクトインスタンスに値を渡す任を担う。
【００８０】
アスペクトインスタンス間で値を伝搬させるために伝搬値メカニズムを使用することに加えて、規則メカニズムと呼ばれる別のメカニズムも使用することができる。規則メカニズムは、前述の数式に基づくが、アスペクトインスタンス間でアクティブに値をプッシュするのではなく、アスペクトインスタンスが値を必要とするときにだけ数式が計算される。規則は、構成済みアスペクトパターン１８、２０、２２内に格納され、それらによって処理される数式である。規則メカニズムは例示的に、伝搬値メカニズムの代わりに、その値をプッシュすることが高価であるとき典型的に使用される。
【００８１】
例えば、ビジネスオブジェクトは「アドレス」アスペクトパターンおよび「価格」アスペクトパターンと共に構成することができる。「価格」アスペクトインスタンスが「インボイスの準備（ｐｒｅｐａｒｅ  ｉｎｖｏｉｃｅ）」イベントタイプのイベントインスタンスを受け取ると、価格を計算するために、本社から「アドレス」アスペクトインスタンスで与えられるアドレスまでの距離を知る必要がある。「価格」アスペクトインスタンスが「インボイスの準備」イベントタイプのイベントインスタンスを受け取ったときにだけ、その規則を呼び出し、「アドレス」アスペクトパターンの「距離（ｄｉｓｔａｎｃｅ）」式を取り出す。このメカニズムが、「インボイスの準備」イベントタイプのイベントインスタンスを受け取るときまでに、未定義の値を有する「価格」アスペクトインスタンスという結果になるが、他方で、潜在的に高価な距離計算が、実際に必要でない限り、行われることが防止されることになる。
【００８２】
アスペクトパターンと共に規則を構成することができる。規則は、１つまたは複数のルールソース接続手段を備える。規則は、同一または他のアスペクトインスタンスに関する他の値に基づいて値を計算するための式をさらに備える。ルールソース接続手段は、計算の基となる値をどこで見つけることができるかについての情報を備える。
【００８３】
本発明で有用な一実施形態では、アスペクトパターンの組が、リレーションアスペクトパターンを備え、リレーションアスペクトパターンは、アスペクト接続手段３６、指定されるように適合され、それによって特定の機能の断片が提供される１つまたは複数の一般化された機能の断片３３と、関係するリレーションアスペクト接続手段と、１つまたは複数の機能３３をトリガすることができる１つまたは複数のアスペクトイベントタイプ接続手段３２とを備える。リレーションアスペクトパターンを構成することによって１つまたは複数のビジネスオブジェクトタイプ１６間の接続を作成することができるのは、本発明で適用可能なシステムの利点である。この方法では、ビジネスオブジェクトタイプ間、したがってさらにはすべてのそれらのビジネスオブジェクトインスタンス間のすべてのリレーションが同じ方法で処理することができる。というのは、リレーションアスペクトパターンを１度実装すればよく、それによってコードが削減され、より堅固なシステムが提供されるからである。さらなる利点は、アプリケーション開発者にとって、ビジネスオブジェクトタイプ１６間のすべてのリレーションが同じ方法で構成されることである。
【００８４】
タスクが、ＵＩでアプリケーションのユーザに提示される。タスクは、例えば「サービスジョブの開始（Ｓｔａｒｔ  ｓｅｒｖｉｃｅ  ｊｏｂ）」または「インボイスの作成（Ｃｒｅａｔｅ  Ｉｎｖｏｉｃｅ）」とすることができる。ユーザがタスクを完成する助けとなるように、１つまたは複数のタスクを例示的に備えるタスクシーケンスを提示することができる。例えば、タスク「インボイスの作成」を完成するために、ユーザは、例えば顧客に対して行われた特定のジョブを選択し、インボイスの受取人を入力するなどを行う必要がある場合がある。そのため、タスク「インボイスの作成」を通じてユーザをガイドするタスクシーケンスは、完成したサービスジョブのリストをさらに備えるタスク「サービスジョブを選ぶ（Ｃｈｏｏｓｅ  ｓｅｒｖｉｃｅ  ｊｏｂ）」にユーザを先ず提示することによって行うことができる。その後、例えば顧客およびタスク「受領者の作成（Ｃｒｅａｔｅ  ｒｅｃｉｐｉｅｎｔ）」に関係する様々なアドレスまたは担当者のリストを備える「受領者を選ぶ（Ｃｈｏｏｏｓｅ  ｒｅｃｉｐｉｅｎｔ）」のような第２のタスクをユーザに提示することができる。したがって、タスクならびにタスクシーケンス中のタスクは、新しいタスクシーケンスを開始することができる。さらに、上述の例の「インボイスの作成」のように何を全体的なタスクとするかは、別のタスクシーケンスのタスクシーケンスにあるタスクとすることができる。例えば、タスク「サービスジョブを閉じる（Ｃｌｏｓｅ  Ｓｅｒｖｉｃｅ  Ｊｏｂ）」は、タスク「インボイスの作成」を備えるタスクシーケンスを開始することができる。
【００８５】
アプリケーションの構成に関係する本発明の特徴では、１組のタスクパターンを提供することができる。タスクパターンは、１つまたは複数のタスクステップパターンのシーケンスを備える。タスクステップパターンは、１つまたは複数のタスクパターンで使用することができる。例えば、「選択（Ｓｅｌｅｃｔ）」タスクステップパターンは、「変更（Ｍｏｄｉｆｙ）」タスクパターンならびに「削除（Ｄｅｌｅｔｅ）」タスクパターンで使用することができる。
【００８６】
タスクパターン（１組のアスペクトパターン）をビジネスオブジェクトタイプ１６と接続し、その接続に対する名前を指定することにより、タスクを少なくとも部分的に構成することができる。例えば、ビジネスオブジェクトタイプ「インボイス（Ｉｎｖｏｉｃｅ）」がタスクパターン「作成（Ｃｒｅａｔｅ）」（タスクステップ「作成」および「ビュー（Ｖｉｅｗ）」を備えるタスクパターン）と接続され、「インボイスの作成」と命名される場合、タスクステップ作成およびビューを備えるタスク「インボイスの作成」が構成される。実行時に、タスク「インボイスの作成」はアプリケーションのユーザに提示することができる。そのタスクを選択することにより、タスク「インボイスの作成」で始まるタスクシーケンスがユーザに提示されることになる。ユーザがインボイスの作成を完成したとき、次のタスクステップ「インボイスのビュー（Ｖｉｅｗ  Ｉｎｖｏｉｃｅ）」がユーザに提示されることになる。
【００８７】
さらに、本発明によるコンピュータシステムは、例示的には、１組のタスク（すなわち、構成済みタスクパターン）を選択し、したがって元のタスクのすべてのタスクステップを備える連結されたタスクを形成することによって構成することができる連結されたタスクパターンを備えることができる。しかし、こうしたタスクステップのうち１つまたは複数は、アプリケーションのユーザにとって冗長である場合がある。アプリケーションのユーザが冗長なタスクステップを省くために、連結タスクパターンは、次のタスクステップに進むのに十分な情報が既にあるかどうか見つけ出す機能を備える。タスクステップが冗長であるかどうかを判定する方法は、続くタスクステップが利用可能な情報を用いてその機能を行うことができるかどうかをチェックすることによることができる。例えば、タスク「インボイスの作成と印刷（Ｃｒｅａｔｅ  ａｎｄ  Ｐｒｉｎｔ  Ｉｎｖｏｉｃｅ）」がアプリケーションのユーザに利用可能であるべきである場合、これは「作成」タスクパターンおよび「印刷」タスクパターンを使用することによる連結タスクによって構成することができる。タスクパターン「作成」は、タスクステップ「作成」および「ビュー」を備え、タスクパターン「印刷」は、タスクステップ「選択」および印刷を備え、したがって、ビジネスオブジェクトインスタンスが既に前のタスクステップ（「作成」および「ビュー」）で特定されているので、「印刷」タスクパターン中の「選択」タスクをスキップすることができる。
【００８８】
本発明の一実施形態では、構成が設計されるときに冗長なタスクステップが特定され、除かれる。アプリケーション開発者は、タスクがアプリケーションのユーザにどのように提示されるかを閲覧することができるので、このことは利点である。本発明の別の実施形態では、任意の冗長なタスクステップが実行時に特定されることになる。ユーザに提示すべきであったタスクステップを取り残す危険が最小限に抑えられるので、このことは利点である。
【００８９】
アクティビティセンタは、アプリケーションのユーザに提示することのできる１群のタスクを備える。アクティビティセンタを構成するとき、名前が割り当てられ（例えば、「販売（Ｓａｌｅ）」）、ユーザプロファイル（アプリケーションに対する許可を有するアプリケーションのユーザについてのプロファイル）もセットアップすることができる。本発明の例示的な実施形態では、ユーザが様々な役割にグループ化され、所与の役割のユーザが、１つまたは複数のアクティビティセンタへのアクセスを有する。アプリケーション開発者は、アクティビティセンタで使用されるタスク（構成済みタスクパターンなど）がどれであるかを構成する。タスクパターンに基づくタスクは、ホットタスクとして構成することができる。ホットタスクは、タスクパターン中の最初のタスクステップがユーザに直ちに提示されることを意味する。非ホットタスクは、ユーザに対してハイパーリンクとして表示することができる。
【００９０】
構成の一部として、ビューは例示的には、各タスクステップに接続され、そのビューはタスクステップでアプリケーションのユーザに提示されるビジネスオブジェクトの情報を定義する。この情報は、例えば、ビジネスオブジェクトインスタンスのデータおよびその対応するメタデータを表示すべきかどうか、要素を表示すべきかどうかとすることができる。本発明の例示的な実施形態では、アスペクトパターンの一部（例示的には、ビジネスオブジェクトタイプ１６と共に構成されたアスペクトタイプ２６、２８、３０の一部）をビューのデフォルトのメンバとして設定することができる。アプリケーション開発者がカスタマイズしたビューを作成することも可能である。本発明の例示的な実施形態では、タスクステップごとにデフォルトのビューを（例えばビューウィザードを使用することによって）自動的に生成することができる。アプリケーション開発者は次に、単一のタスクステップに関するビューを変更することができる。
【００９１】
本発明に関連した一実施形態では、アスペクトパターンの組１８、２０、２２が複数のアスペクトパターンをさらに備え、前記アスペクトパターンのそれぞれが、指定されるように適合され、それによって特定の機能の断片を提供する１つまたは複数の一般化された機能の断片３３と、アスペクト接続手段３６と、１つまたは複数の機能の断片３３をトリガすることができるようにする１つまたは複数のアスペクトイベントタイプ接続手段３２とを備えるシステムが提供される。複数のアスペクトパターン１８、２０、２２を提供することにより、アプリケーション開発者は、より多くの事前定義された機能の提供を受け、したがってアプリケーションの実際の構成が容易となる。
【００９２】
例示的には、アスペクトパターンの組の複数のアスペクトパターンがメタデータ５０を備える。この方法では、アスペクトパターン１８、２０、２２内の機能３３およびメタデータ５０の間の接続を実現することができる。これにより、構成する時にメタデータ５０を指定および／または追加するだけでアスペクトパターン内の機能３３を指定することが可能となる。
【００９３】
さらに、少なくとも１つのアスペクトパターン１８、２０、２２は、例示的にアスペクトインターフェース５２を備えることができる。例示的には、アスペクトパターンの組の複数のアスペクトパターン１８、２０、２２は、アスペクトインターフェース５２を備える。このことは、新しいアスペクトパターンが同一のアスペクトインターフェース５０を実装する限り、アスペクトパターンの組に容易に追加することができるので、利点である。
【００９４】
本発明で適用可能な例示的な実施形態またはその他の実施形態では、デザインコンポーネント（後の図に関連してより詳細に説明する）が、ソースアスペクト接続手段およびターゲットアスペクト接続手段へのアクセスをさらに有し、または例示的にそれを備え、アスペクトパターンの組は、１つの数式機能の断片を備える１つまたは複数のアスペクトパターンと、チャネル機能の断片を備える１つまたは複数のアスペクトパターンとをさらに備え、それによってアスペクトインスタンス間の値の交換が実現される。このことは、この方法では構成されたすべての値が、ソース値の変更が生じたときにはいつでも更新されるので、利点である。また、アスペクトインスタンスが他のアスペクトインスタンス中の値を取り出すことができ、それでもなお、アスペクトインスタンス、ならびに疎結合されたアスペクトタイプ２６、２８、３０とアスペクトパターン１８、２０、２２とを保持できることは利点である。
【００９５】
本発明で有用な実施形態では、アスペクトパターンの組が、規則ソース接続手段を備える１つまたは複数のアスペクトパターンをさらに備えるシステムが提供される。例えば、式を計算するために取り出すべき値の数が多い場合や、アスペクトインスタンス中の値をそれが使用される前に更新する理由がない場合に、規則を使用することは利点である。
【００９６】
本発明で適用可能な実施形態では、デザインコンポーネントが、複数のビジネスオブジェクトタイプ１６を構成するために使用され、または構成するために使用されるように設計されるシステムが提供される。同じの組のアスペクトパターンを使用することによって複数のビジネスオブジェクトタイプ１６を構成することは、システムのアップグレードが容易となるので利点である。
【００９７】
アスペクトパターンの組内の少なくとも１つのアスペクトパターン１８、２０、２２が１つまたは複数のアスペクトタイプ２６、２８、３０を備え、各アスペクトタイプがアスペクトパターン１８、２０、２２の仕様であるシステムも本発明で有用である。この方法では、アプリケーション開発者は、１つまたは複数のアスペクトパターンの１つまたは複数の部分的構成の提供を受け、したがってアプリケーション開発者にとって構成が容易となる。例示的には、アスペクトタイプが１つまたは複数のビジネスオブジェクトタイプと共に構成されるように設計されるシステムが提供される。これにより、ビジネスオブジェクトタイプ１６間でアスペクトタイプ２６、３８、３０の再利用が可能となるので、利点である。
【００９８】
本発明に関連する実施形態では、ビジネスオブジェクトタイプ接続手段３４が、ビジネスオブジェクトタイプ１６を一意的に特定する識別子ＢＯＴＩＤを備えるシステムが提供される。本発明は、アスペクト接続手段３６が、少なくとも１つのアスペクトパターンを一意的に特定する識別子ＡＴＩＤを備えるシステム、およびアスペクトイベントタイプ接続手段３２が、前記アスペクトパターンでトリガすることができる１つまたは複数の機能３３を特定する識別子（Ａ１ＥＴＩＤ１，Ａ１ＥＴＩＤ２．．．，ＡＮＥＴＩＤ１，ＡＮＥＴＩＤ２）を備えるシステムでも有用である。本発明は、イベントタイプ接続手段２４が、イベントタイプ１０、１２、１４を一意的に特定する識別番号ＥＴＩＤを備えるシステムで適用可能である。アプリケーションの実際の構成が例えばリレーショナルデータベースに実装されるとき、識別番号ＩＤを使用することは利点である。
【００９９】
イベントタイプ１０、１２、１４がユーザファイアすることができるシステムも本発明で有用である。この方法では、ユーザは、実行されるべき１つまたは複数のアスペクトパターン内の１つまたは複数の機能の断片３３を開始することができる。また、自身が構成されているアスペクトパターン内の機能の断片３３によってイベントタイプをファイアすることのできるシステムが本発明で適用可能である。このことは、システムが実行されるべき１つまたは複数のアスペクトパターン内の１つまたは複数の機能の断片３３を開始することができるので、利点である。イベントタイプ１０、１２、１４をユーザファイアまたはシステムファイアあるいはその両方として構成することにより、ユーザ、システム、またはその両方によってどの機能の断片がトリガできるかを制御することが可能となる。
【０１００】
デザインコンポーネントが、１組の事前に構成されたビジネスオブジェクトタイプへのアクセスをさらに有し、またはそれをさらに備える、本発明に関連するシステムの実施形態が提供される。有利なこととして、事前に構成されたビジネスオブジェクトタイプが、完全に、または部分的に構成された１つまたは複数のアスペクトパターン、完全に、または部分的に構成された１つまたは複数のアスペクトタイプ、ビジネスオブジェクトタイプが反応することのできる１つまたは複数のイベントタイプ、１つまたは複数のアスペクトパターン内のイベント機能の１つまたは複数の構成、あるいは１つまたは複数のアスペクトタイプと共に構成することができる。加えて、事前に構成されたビジネスオブジェクトタイプは、１つまたは複数のデフォルト値または規則と共に構成することができる。このことは、アプリケーション開発者がアプリケーションを最初から構成する必要がないので有利である。
【０１０１】
加えて、本発明は、デザインコンポーネントがアプリケーションのメタデータを備えるレポジトリコンポーネントへのアクセスを有し、またはそれをさらに備えるシステムで有用である。それによって、デザインコンポーネントは、アプリケーションの実際の構成を備える。
【０１０２】
本発明は、ビジネスオブジェクトタイプが少なくとも１つの構成済みアスペクトパターンに基づき、前記レポジトリが構成済みビジネスオブジェクトタイプの１つまたは複数のエントリを備えるアプリケーションのためのレポジトリで適用可能である。各エントリは、構成済みビジネスオブジェクトタイプを一意的に定義する構成済みビジネスオブジェクトタイプＩＤ（ＢＯＴＩＤ）と、構成済みアスペクトパターンを一意的に定義するＢＯＴＩＤおよび構成済みアスペクトタイプＩＤ（ＡＴＩＤ）をそれぞれ備える構成済みアスペクトパターンの１つまたは複数のエントリと、アスペクトパターンの構成を指定するＡＴＩＤおよびメタデータをそれぞれ備える構成済みアスペクトパターンの１つまたは複数のエントリと、構成済みイベントタイプを一意的に定義するＢＯＴＩＤおよびイベントタイプＩＤ（ＥＴＩＤ）をそれぞれ備える構成済みイベントタイプの１つまたは複数のエントリとを備えることができる。ビジネスオブジェクトタイプがすべてのアスペクトパターンを前もって知る必要がなく、したがってアプリケーションのアップグレードが容易となるので、アプリケーションのレポジトリがこのように構築されることは利点である。
【０１０３】
一実施形態では、アスペクトパターン内のイベント機能の構成済み断片の１つまたは複数のエントリであって、前記エントリのそれぞれがアスペクトイベントタイプＩＤを備える１つまたは複数のエントリをさらに備えるレポジトリが提供される。このことは、イベントタイプがアスペクトパターン中のすべてのイベント機能を前もって知る必要がないので、利点である。
【０１０４】
本発明は、上記で略述したタイプのレポジトリで有用であり、構成済みビジネスオブジェクトタイプを一意的に定義する構成済みビジネスオブジェクトタイプＩＤ（ＢＯＴＩＤ）と、ソースアスペクトＩＤ（ＡＴＩＤ）と、ターゲットアスペクトＩＤ（ＡＴＩＤ）とをそれぞれ備える構成済み伝搬値の１つまたは複数のエントリをさらに備える。この方法では、すべてのアスペクトパターンが値を伝搬させるのに同一のメカニズムを使用するので、アスペクトパターンが前もって互いに知っている必要がない。
【０１０５】
さらに、一部がデータベースであるレポジトリを提供することができる。現在、データベースはデータを格納するより構造化された方式を提供するので、このことは利点である。例示的には、各エントリはテーブル中のレコードである。この方法では、新しいアスペクトパターンを容易に追加することができる。
【０１０６】
レポジトリコンポーネントが上述の実施形態のいずれかのようなレポジトリであるシステムも提供することができる。
【０１０７】
本発明は、１つまたは複数のアスペクトパターン内の１つまたは複数の機能の断片を指定するステップと、１つまたは複数のアスペクトパターンをビジネスオブジェクトタイプと接続するステップと、１つまたは複数のイベントタイプをビジネスオブジェクトタイプと接続するステップと、１つまたは複数のイベントタイプを１つまたは複数のアスペクトパターン内の１つまたは複数の機能の断片と接続するステップとを備え、それによって１つまたは複数のアスペクトパターン内の１つまたは複数の機能の断片を１つまたは複数のイベントタイプによってトリガするように指定／可能にし、それによって構成済みビジネスオブジェクトタイプが得られる、ビジネスオブジェクトタイプを構成する方法でも適用可能である。アプリケーション開発者が、どのようにアスペクトパターンとビジネスオブジェクトタイプを接続し、イベントタイプとビジネスオブジェクトタイプを接続し、イベントタイプを、アスペクトパターン中の機能と１つまたは複数のアスペクトパターン内の機能の仕様と接続するかについての事前定義された順序に従う必要がないことは利点である。
【０１０８】
本発明は、アスペクトパターンをビジネスオブジェクトタイプと接続するステップと、ｎ回繰り返されるアスペクトパターンのそれぞれの内の１つまたは複数の機能を指定するステップとを含む方法でも有用である。この方法では、アスペクトパターン内の機能が再利用される。例示的には、ｎが（２、３、４、５、６、７、８、９、１０、１１、１２、１３、１４、１５、１６、１７、１８、１９、２０、２１、２２、２３、２４、２５、２６、２７、２８、２９、３０またはそれ以上）からなるグループ中の数である方法が使用される。
【０１０９】
本発明は、１つのイベントタイプが１つまたは複数のアスペクトパターン内の１つまたは複数の機能の断片と接続される方法でも適用可能である。イベントタイプの複雑さをアプリケーションに応じて変化させることができるので、このことは利点である。
【０１１０】
イベントタイプをビジネスオブジェクトタイプと接続するステップをｍ回繰り返す方法に関連する発明が提供される。この方法では、ビジネスオブジェクトタイプのビジネスオブジェクトインスタンスがイベントタイプの様々なイベントインスタンスを実行することができることになる。例示的には、ｍは、（２、３、４、５、６、７、８、９、１０、１１、１２、１３、１４、１５、１６、１７、１８、１９、２０、２１、２２、２３、２４、２５、２６、２７、２８、２９、３０、３１、３２、３３、３４、３５、３６、３７、３８、３９、４０またはそれ以上）からなるグループ中の数である。
【０１１１】
本発明は、リレーションアスペクトパターンを第１のビジネスオブジェクトタイプと接続するステップと、リレーションアスペクトパターンを第２のビジネスオブジェクトタイプと接続するステップとをさらに備え、それによって２つのビジネスオブジェクトタイプ間の接続を実現する方法で有用である。ビジネスオブジェクトタイプ間の通信が実現されるので、このことは利点である。
【０１１２】
本発明は、アスペクトパターン中のいくつかのメタデータを指定するステップをさらに備える方法で適用可能である。この方法では、実行時のデータの入力が定義される。
【０１１３】
アスペクト接続手段と共にソース値接続手段を構成することにより伝搬値メカニズムと共にビジネスオブジェクトタイプ接続手段を構成し、それによってアスペクト接続手段と共に構成済みターゲット値接続手段から値を取り出すべき場所を指定し、それによって取り出した値を設定すべき場所を指定するステップをさらに備える方法も本発明で適用可能である。この方法では、実行時にアスペクトインスタンス間の値の伝搬を実行することができる。また、ソース値が変化したときに、ターゲット値として構成されたすべての値が更新されるよう保証される。
【０１１４】
さらに、本発明は、規則ソース接続手段と共にアスペクトパターンを構成し、それによってどこから値を取り出すか、および取り出した値を備える数式を指定し、それで、値を計算することができ、実行時に構成済みアスペクトパターンに関して設定することができるステップをさらに備える方法で有用である。規則と共に構成されるアスペクトインスタンスに関する値が、必要なときにのみ更新されることになるので、このことは利点である。
【０１１５】
本発明はまた、構成済みビジネスオブジェクトタイプをレポジトリに格納するステップを備える方法も含むことができる。例示的には、レポジトリは、上述の実施形態のいずれかによるレポジトリである。
【０１１６】
本発明は、構成済みビジネスオブジェクトタイプのメタデータ、構成済みアスペクトパターン、およびイベントタイプを備えるレポジトリコンポーネントと、ビジネスオブジェクトインスタンス、アスペクトインスタンス、およびイベントインスタンスの１次データを備えるデータ記憶コンポーネントと、アスペクトインスタンス間のイベントインスタンスの伝搬を処理するビジネスオブジェクトコントローラ（ＢＯＣ）コンポーネントとを備えるアプリケーションを実行するシステムで適用可能である。この方法では、アプリケーションの実際の構成がレポジトリで保持され、そのインスタンスがデータ記憶コンポーネントに保持される。ダイナミクスはＢＯＣによって制御される。アスペクトパターンが他のアスペクトパターンの構成を知っている必要がないので、このことは利点である。例示的には、レポジトリは前述の実施形態のいずれかで述べたレポジトリである。
【０１１７】
本発明で有用な例示的な実施形態では、ＢＯＣコンポーネントがＢＯコンポーネントおよびアスペクトパターンコンポーネントをさらに備えるシステムが提供される。ＢＯコンポーネントおよびアスペクトパターンコンポーネントは、レポジトリコンポーネントおよびデータ記憶コンポーネント中のデータに関して作用する。新しいアスペクトパターンが追加されたとき、ＢＯＣで行わなければならない変更はアスペクトパターンコンポーネント内あるだけとなるので、このことは利点である。
【０１１８】
本発明に関連する上記およびその他の実施形態では、レポジトリコンポーネントが、アプリケーション中の構成済み伝搬値についてのメタデータをさらに備え、ＢＯＣコンポーネントが構成済み伝搬値の伝搬をさらに処理するシステムが提供される。これにより、伝搬値中のターゲット値として構成されたアスペクトインスタンスに関するすべての値が、それらのソース値が変化したときに更新されるよう保証される。
【０１１９】
本発明は、レポジトリコンポーネントおよびデータ記憶コンポーネントからデータをロードするための一時メモリをさらに備えるシステムで適用可能である。この方法では、より高い性能を達成することができる。
【０１２０】
本発明のこのような実施形態およびさらなる実施形態では、システムはイベントキューをさらに備える。例えばイベントインスタンスがいくつかのビジネスオブジェクトインスタンスからファイアされたときに、イベントキューがイベントインスタンスをファイアする順序を処理するので、このことは利点である。
【０１２１】
本発明は、イベントインスタンスをファイアするステップであって、イベントインスタンスがイベントタイプを一意的に特定するイベントタイプＩＤを備え、イベントインスタンスが、イベントインスタンスが接続されるビジネスオブジェクトインスタンスを一意的に特定するビジネスオブジェクトインスタンスＩＤをさらに備えるステップと、ビジネスオブジェクトインスタンスと接続された１つまたは複数のアスペクトインスタンスにイベントインスタンスをサブミットするステップとを備えるアプリケーションを実行する方法で有用である。アスペクトインスタンスが知っている必要があるのは、ファイアされたイベントインスタンスに応答する方法だけであるので、このことは利点である。
【０１２２】
本発明は、イベントインスタンスを、イベントインスタンスをファイアしなければならない順序を処理するイベントキューコンポーネントに転送するステップを例示的に備える方法で適用可能である。この方法では、イベントインスタンスが正しい順序でファイアされることが保証されるので、このことは利点である。
【０１２３】
本発明はまた、サブミットされたイベントインスタンスが、ファイアされたイベントインスタンスと同一である方法でも有用と考えられる。
【０１２４】
本発明は、イベントインスタンスがユーザファイアされたイベントインスタンスである方法で適用可能である。この方法では、アプリケーションのユーザは、アスペクトパターン中の１つまたは複数の機能の断片をトリガすることができる。
【０１２５】
本発明に関連するこのような実施形態およびその他の実施形態では、イベントインスタンスがシステムファイアされたイベントインスタンスである方法が提供される。この方法では、アプリケーションは、アスペクトパターン内の１つまたは複数の機能の断片の実行を開始することができる。
【０１２６】
本発明は、ファイアされたイベントインスタンスに対する応答として実行された機能に応答して、アスペクトインスタンスに関する値を設定するステップをさらに備える方法で有用である。イベント機能を使用することにより、アスペクトインスタンスに対する変更を追加することができるので、このことは利点である。
【０１２７】
このような実施形態およびその他の実施形態では、本発明は、ビジネスオブジェクトインスタンス間のイベントインスタンスの伝搬が、リレーションアスペクトパターンの構成に基づく方法で有用である。この方法では、１つのビジネスオブジェクトインスタンス上のイベントインスタンスが、他のビジネスオブジェクトインスタンス上の１つまたは複数のイベントインスタンスをトリガすることができ、したがって１つまたは複数のビジネスオブジェクトインスタンス間の通信が可能となる。
【０１２８】
本発明は、
１．伝搬値内のソースとして構成されたアスペクトインスタンス内の第１の値の変化を登録するステップと、
２．アスペクトインスタンス内の第１の値を取り出すステップと、
３．第１の値に基づいてターゲットと共に構成されたアスペクトインスタンスに関する第２の値を設定するステップと
をさらに備える方法で有用である。
【０１２９】
この方法では、伝搬値中のターゲット値として構成された値が、それらのソース値が変化したときに更新されるよう保証される。
【０１３０】
本発明で適用可能な方法は、例示的には、
１．ソースとして構成されたアスペクトインスタンス内の第３の値を取り出し、
２．第３値への応答として第４の値を計算し、
３．規則と共に構成されるアスペクトインスタンスに関する第４の値を設定することにより、
アスペクトインスタンスと共に構成される規則を処理するステップをさらに備えることができる。この方法では、規則と共に構成されるアスペクトインスタンスに関する値が、使用されるときにだけ更新される。
【０１３１】
本発明に関連するこのような実施形態では、方法が、ＢＯＩＤとＢＯＩＤを備えるその構成済みビジネスオブジェクトタイプとを備えるビジネスオブジェクトインスタンスに関係するデータ、情報、および機能を一時メモリにロードするステップをさらに備える。例示的には、ビジネスオブジェクトインスタンスに関係するデータ、情報、および機能をロードするステップが、ビジネスオブジェクトインスタンスおよび（ＢＯＩＤを備える）その構成済みビジネスオブジェクトタイプに関係するデータ、情報、および機能を一時メモリにロードすることをさらに備える方法が提供される。ほとんどの場合、これにより、トランザクションで使用することのあるすべての関係する情報を、レポジトリおよび／またはデータストレージから１度だけロードするだけで良くなるよう保証される。
【０１３２】
本発明で有用なこのような例示的な実施形態およびその他の例示的実施形態では、一時メモリからデータ記憶コンポーネントに１次データをロードするステップをさらに備える方法が提供される。この方法では、トランザクションが首尾良く実行されたときに、データ記憶コンポーネントを更新できるよう保証される。
【発明を実施するための最良の形態】
【０１３３】
以下では、上記で定義した用語に基づくシステムアーキテクチャの実装を提示する。
【０１３４】
図３に、本発明を実施することができる適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に関して何ら制限を示唆するものではない。例示的な動作環境１００に図示する構成要素のうちのいずれか１つ、あるいはそれらの組合せに関して何らの依存関係または要件をコンピューティング環境１００が有すると解釈すべきでもない。
【０１３５】
本発明は、他の多数の汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明と共に使用するのに適した周知のコンピューティングシステム、環境、および／または構成の例には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、および上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【０１３６】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な関連で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明はまた、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含む、ローカルコンピュータ記憶媒体およびリモートコンピュータ記憶媒体の両方に位置することができる。
【０１３７】
図３を参照すると、本発明を実装するための例示的システムは、コンピュータ１１０の形の汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素は、限定はしないが、処理装置１２０と、システムメモリ１３０と、システムメモリを含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１とを含むことができる。システムバス１２１は、様々なバスアーキテクチャのうちのいずれかを使用した、メモリバスまたはメモリコントローラ、周辺機器バス、およびローカルバスを含むいくつかのタイプのバス構造のうちのいずれでもよい。限定ではなく、例として、このようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも呼ばれるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【０１３８】
コンピュータ１１０は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性および不揮発性媒体の両方、取外し可および取外し不可の媒体の両方が含まれる。限定ではなく、例として、コンピュータ可読媒体はコンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するための何らかの方法または技術で実装される揮発性および不揮発性媒体の両方、取外し可および取外し不可の媒体の両方を含む。コンピュータ記憶媒体には、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を格納するために使用することができ、コンピュータ１１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波やその他のトランスポートメカニズムなどの変調データ信号で具体化し、任意の情報伝送媒体を含む。「変調データ信号」という用語は、情報を信号に符号化するようにその特性の１つまたは複数を設定または変化した信号を意味する。限定ではなく、例として、通信媒体には、有線ネットワークやダイレクトワイヤード接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体が含まれる。上記のいずれの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１３９】
システムメモリ１３０は、読取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性メモリおよび／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３は通常、ＲＯＭ１３１に格納される。ＲＡＭ１３２は通常、処理装置１２０によって即座にアクセス可能であり、そして／または現在操作されているデータおよび／またはプログラムモジュールを含む。限定ではなく、例として、図３に、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【０１４０】
コンピュータ１１０はまた、他の取外し可／取外し不可、揮発性／不揮発性コンピュータ記憶媒体も含むことができる。単なる一例であるが、図３に、取外し不可の不揮発性磁気媒体と読み書きするハードディスクドライブ１４１と、取外し可の不揮発性磁気ディスク１５２と読み書きする磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭまたはその他の光媒体などの取外し可の不揮発性光ディスク１５６と読み書きする光ディスクドライブ１５５とを示す。例示的な動作環境で使用することのできるその他の取外し可／取外し不可の揮発性／不揮発性コンピュータ記憶媒体には、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、および半導体ＲＯＭなどが含まれる。ハードディスクドライブ１４１は通常、インターフェース１４０などの取外し不可のメモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０などの取外し可のメモリインターフェースによってシステムバス１２１に接続される。
【０１４１】
上記で議論し、図３に図示するドライブとその関連するコンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶を提供する。例えば図３では、ハードディスクドライブ１４１がオペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして図示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じものにすることも、異なるものにすることもできることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、少なくともこれらが相異なるコピーであることを示すために異なる符号を付けてある。
【０１４２】
ユーザは、キーボード１６２や、マイクロフォン１６３や、マウス、トラックボール、タッチパッドなどのポインティングデバイス１６１などの入力デバイスを介して、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力デバイス（図示せず）には、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナなどを含めることができる。これらの入力および他の入力デバイスはしばしば、システムバスに結合されるユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェースおよびバス構造によって接続することもできる。モニタ１９１またはその他のタイプのディスプレイデバイスもまた、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータはまた、スピーカ１９７やプリンタ１９６などのその他の周辺出力デバイスも含むことができ、その周辺出力デバイスは、出力周辺インターフェース１９５を介して接続することができる。
【０１４３】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の共通ネットワークノードでよく、通常コンピュータ１１０に関して上記で述べた要素の多くまたはすべてを含む。図３に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、その他のネットワークを含めることもできる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。
【０１４４】
ＬＡＮネットワーキング環境で使用する際、パーソナルコンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用する際、コンピュータ１１０は通常、インターネットなどのＷＡＮ１７３を介して通信を確立するためのモデム１７２またはその他の手段を含む。モデム１７２は内蔵でも外付けでもよく、ユーザ入力インターフェース１６０またはその他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して示したプログラムモジュールまたはその一部を、リモートメモリ記憶装置内に格納することができる。限定ではなく、例として、図３に、リモートアプリケーションプログラム１８５をリモートコンピュータ１８０上に常駐するものとして示す。図示したネットワーク接続は例示的なものであって、コンピュータ間の通信リンクを確立するその他の手段を使用することもできることを理解されよう。
【０１４５】
図４にシステムアーキテクチャのコンポーネントを示す。このアーキテクチャは、デザインコンポーネント２００、レポジトリコンポーネント２０２、ビジネスオブジェクトコントローラ２０４、データ記憶コンポーネント２０６、およびユーザインターフェース（ＵＩ）コンポーネント２０８を含む。あらゆるアスペクト（アスペクトインスタンス、アスペクトタイプ、構成済みアスペクトタイプ、またはアスペクトパターン）およびビジネスオブジェクト（ビジネスオブジェクトインスタンス、ビジネスオブジェクトタイプ、または構成済みビジネスオブジェクトタイプ）が、図示したコンポーネントのそれぞれに存在する。この図は、コンポーネントの依存関係を矢印で示す（すなわち、あるコンポーネントから別のコンポーネントを指す矢印は、最初のコンポーネントがその別のコンポーネントの機能を使用していることを示す）。
【０１４６】
アプリケーション開発者は、デザイナコンポーネント２００を使用してアプリケーションを作成することができる。したがってデザイナ２００は、アプリケーションを達成するために構成することができるシステムアーキテクチャの要素をアプリケーション開発者に提示することができる。
【０１４７】
ユーザインターフェース２０８は、ランタイムデータ（１次データ）を含む実際のアプリケーションの一部をエンドユーザに提示する。
【０１４８】
レポジトリ２０２は、システムのメタデータ（すなわち、アスペクトパターンのデータ、アスペクトタイプ、アスペクトタイプ構成、ビジネスオブジェクトタイプ、および構成済みビジネスオブジェクトタイプ）を保持する。
【０１４９】
データストレージ２０６は、アプリケーションの１次データ（すなわち、アスペクトインスタンスで構成されるビジネスオブジェクトインスタンス）を保持する。
【０１５０】
ビジネスオブジェクトコントローラコンポーネント２０４は、システムのビジネスロジックを制御する（すなわち、レポジトリ２０２中に置かれたメタデータに従ってシステムの１次データを制御する）。したがって、ビジネスオブジェクトコントローラ２０４は、システムのダイナミクスを制御する。
【０１５１】
このシステムのアーキテクチャの例示的な実施形態では、レポジトリ２０２中の全データがデータベースに格納されるが、単に例えばファイル（ＸＭＬファイルなど）に格納することもできる。この後者の実施形態は、アプリケーションの１人または複数のユーザがアプリケーションのデータベースへの永続的アクセスを持たない（例えばオフラインの状態）場合やユーザが使用する装置上にリレーショナルデータベースをインストールすることが可能でない場合、有利である。
【０１５２】
レポジトリコンポーネント２０２ならびにデータ記憶コンポーネント２０６を備えるデータベースの一実施形態の例示的な一レイアウトを図５に示す。フレームワーク部分２１０、アスペクトプラグ部分２１２、ならびにアスペクトパターン１８および２２と共にデータベースが示されている。フレームワーク部分２１０よびアスペクトプラグ部分２１２は、構成済みビジネスオブジェクトタイプおよびビジネスオブジェクトインスタンスを処理する。各アスペクトパターン部分は、対応するアスペクトパターンに関するデータ特性を備える。データベース中のデータは、すべてのメタデータを備えるレポジトリ部分２０２と、１次データを備えるデータ記憶部分２０６とに分割される。各部分は１つまたは複数のテーブルを備える。
【０１５３】
データベースのレポジトリ部分２０２内では、各アスペクトパターンが、この特定のアスペクトパターンに特有のメタデータを備える。各アスペクトパターンは、アスペクトパターンの特有のメタデータの構造に応じて、１つまたは複数の関係するテーブルを備えることができる。本発明で有用な例示的な実施形態では、アスペクト接続手段３６がアスペクトタイプＩＤ（ＡＴＩＤ）であり、このＩＤは構成済みアスペクトタイプに関するメタデータをその対応するアスペクトパターン部分の中で特定するのに使用される。したがって、各アスペクトパターンは、そのアスペクトパターンに関する構成済みアスペクトタイプのテーブルを備える。そのテーブルは、特定のアスペクトパターンに関するアスペクトタイプＩＤ（ＡＴＩＤ）および１つまたは複数のメタデータ特性を備えた０個またはいくつかのエントリを備える。
【０１５４】
各構成済みアスペクトタイプは、特定のイベントタイプのイベントインスタンスを受け取ったときに、そのアスペクトパターン内でどの機能の断片３３を実行することができるかについての情報を備える。また、構成済みアスペクトタイプは、アスペクトパターン内のどの機能の断片３３からイベントインスタンスをファイアすることができるかを認識している。この目的で、アスペクトパターンは、１つまたは複数のアスペクトイベントタイプ接続手段３２を備えることができる。本発明で適用可能な例示的な実施形態では、アスペクトイベントタイプ接続手段３２は、１つまたは複数のアスペクトイベントタイプＩＤ（Ａ１ＥＴＩＤ１，Ａ１ＥＴＩＤ２，  ．．．，  ．．．，ＡＮＥＴＩＤ１，ＡＮＥＴＩＤ２．．．（図５には図示せず））とすることができ、イベントタイプ接続手段２４はイベントタイプＩＤである。次に、アスペクトイベントタイプＩＤのうち１つまたは複数とイベントタイプＩＤ（ＥＴＩＤ）との間でリファレンスを作成することにより、イベントタイプが、１つまたは複数のアスペクトパターン内の１つまたは複数の機能の断片３３と共に構成される。
【０１５５】
例えば、住所をチェックする必要がある場合、イベントタイプＩＤ「アドレスの検証」は、住所を国内登記簿と突き合わせて検証するアドレスアスペクトパターン内の機能の断片と接続されたアスペクトイベントタイプＩＤ（例えば、図５でＭ２５とすることができるＡ２ＴＩＤ５）と関係付けることによって構成することができる。このように、構成済みアドレスアスペクトパターンは、イベントタイプＩＤ「アドレスの検証」を指すアスペクトイベントタイプＩＤ（例えばＡ２ＴＩＤ５）「アドレスの検証」を有する。
【０１５６】
フレームワーク２１０のレポジトリ部分２０２は、すべての構成済みビジネスオブジェクトタイプの情報と、各構成済みビジネスオブジェクトタイプのイベントタイプのドメインとを備える。本発明で有用な例示的な実施形態では、ビジネスオブジェクトタイプ接続手段３４は構成済みビジネスオブジェクトタイプＩＤ（ＢＯＴＩＤ）である。フレームワーク部分２１０のレポジトリ２０２は、アプリケーション中のすべての構成済みオブジェクトタイプを備える１つまたは複数のテーブルを備え、その１つまたは複数のテーブルは、ビジネスオブジェクトタイプＩＤ（ＢＯＴＩＤ）を有する０個またはいくつかのエントリを備える。レポジトリ部分２０２はまた、アプリケーション中のすべてのイベントタイプの１つまたは複数のテーブルも備え、その１つまたは複数のテーブルは、ＢＯＴＩＤおよびイベントタイプＩＤ（ＥＴＩＤ）を有する０個またはいくつかのエントリを備える。レポジトリ部分２０２は、伝搬値の１つまたは複数のテーブルをさらに備える。その１つまたは複数のテーブルは、ソースアスペクトＩＤ（ＡＴＩＤ１）、ターゲットアスペクトＩＤ（ＡＴＩＤ２）、およびＢＯＴＩＤを備える０個またはいくつかのエントリを備える。
【０１５７】
アスペクトプラグ２１２は、様々なビジネスオブジェクトタイプがどのように様々なアスペクトパターンのアスペクトタイプと共に構成されるかについての情報を含む。レポジトリ部分２０２中のアスペクトプラグ２１２は、アプリケーション中のビジネスオブジェクトタイプのすべてがどのようにアスペクトタイプと共に構成されるかについての１つまたは複数のテーブルを備える。こうしたテーブルは、構成済みビジネスオブジェクトビジネスオブジェクトタイプＩＤ（ＢＯＴＩＤ）ならびに構成済みアスペクトタイプＩＤ（ＡＴＩＤ）を備える０個またはいくつかのエントリを備える。
【０１５８】
本発明の例示的な実施形態では、アスペクトプラグ２１２はまた、共に構成されるビジネスオブジェクトタイプのキャプションおよびそのビジネスオブジェクトインスタンス、共に構成されるビジネスオブジェクトタイプのサマリおよびそのビジネスオブジェクトインスタンス、共に構成されるビジネスオブジェクトタイプのオーバビューおよびそのビジネスオブジェクトインスタンスなどの様々な状況で、構成済みアスペクトタイプそしてそのアスペクトインスタンスをＵＩに含めることができるかどうかを特定する１つまたは複数のエントリも備える。例えば、「ホームアドレス」と「Ｅメールアドレス」をどちらも備えるビジネスオブジェクトタイプ「従業員」を作成すべき場合、例えばＢＯＴＩＤ（例えば「従業員」）およびＡＴＩＤ「ホームアドレス」を備える１つのエントリと、ＢＯＴＩＤ「従業員」およびＡＴＩＤ「Ｅメールアドレス」を備える別のエントリを作成することにより、ビジネスオブジェクトタイプがアスペクトプラグ２１２の中に構成される。アスペクトプラグ２１２中のＡＴＩＤ「ホームアドレス」は、郵便アドレスを構成することを可能にする「アドレス」アスペクトパターン（例えば、図５のアスペクトパターン１に対応する）内のＡＴＪＤ「ホームアドレス」によって参照される。同様に、アスペクトプラグ２１２中のＡＴＩＤ「Ｅメールアドレス」は、「アドレス」アスペクトパターン部分でＡＴＩＤ「Ｅメールアドレス」を用いて参照される。次いで、「アドレス」アスペクトパターン中の「ホームアドレス」および「Ｅメールアドレス」の実際の構成は、ＡＴＩＤ「ホームアドレス」、およびそれぞれ、「Ｅメールアドレス」を指す１つまたは複数のテーブル中の１つまたは複数のエントリ内で見つけることができる。
【０１５９】
本発明で有用な例示的な実施形態では、「リレーション」アスペクトパターンの関係するリレーションアスペクト接続手段は、関係するリレーションタイプＩＤである。例えば、「リレーション」アスペクトパターンが図５のアスペクトパターン１に対応する場合、関係するリレーションタイプＩＤはＭ１１とすることができる。次いで、「リレーション」アスペクトパターン中のＡＴＩＤ「１」を指すＡＴＩＤ「１」と共にＢＯＴＩＤ「１」を構成し、また「リレーションアスペクトパターン」中のＡＴＩＤ「２」を指すＡＴＩＤ「２」と共にＢＯＴＩＤ「２」を構成することにより、２つのビジネスオブジェクトタイプ間のリレーションが構成される。次いで、ＡＴＩＤ「１」を備えるエントリについて、関係するリレーションタイプＩＤ（例えばＭ１１）を「２」に設定し、ＡＴＩＤ「２」を備えるエントリについてＭ１１を「１」に設定することにより、ＢＯＴＩＤ１によって特定される構成済みビジネスオブジェクトタイプと、ＢＯＴＩＤ２によって特定される構成済みビジネスオブジェクトタイプとの間のリレーションが構成される。
【０１６０】
データベース全体のレイアウトに対する変更は、新しいアスペクトパターン（アスペクトパターンｎ＋１）と、この新しいアスペクトパターンについての標準情報をアスペクトプラグ２１２に追加することだけであるので、データベースを再設計することなく新しいアスペクトパターンをデータベースに追加することができることは、アスペクトプラグ２１２の利点である。これにより、システムのアップグレードが容易になる。例示的な実施形態では、１つのテーブルに１行を追加するだけで、新しいアスペクトパターンについての標準情報がアスペクトプラグ２１２に追加される。
【０１６１】
データ記憶コンポーネント２０６の一実施形態も図５に示す。データベースのデータ記憶部分２０６は、１つまたは複数のテーブルにアプリケーションの１次データを備える。フレームワーク部分２１０は、アプリケーションのすべてのビジネスオブジェクトインスタンスの１つまたは複数のテーブルを備え、どのイベントインスタンスがファイアされたかの１つまたは複数のテーブルも備える。実際のアスペクトインスタンスは、データベース中のデータ記憶部分２０６の対応するアスペクトパターン部分に格納される。
【０１６２】
図５から、フレームワーク部分２１０のデータ記憶部分２０６が、ビジネスオブジェクトインスタンスを備える１つまたは複数のテーブルを備え、テーブルが、ビジネスオブジェクトタイプのビジネスオブジェクトインスタンスのＢＯＴＩＤおよびビジネスオブジェクトインスタンスＩＤ（ＢＯＩＤ）を有する０個またはいくつかのエントリを備えることがわかる。データ記憶２０６はまた、ファイアされたすべてのイベントインスタンスの１つまたは複数のテーブルも有することができ、テーブルは、ＢＯＩＤ、ＥＴＩＤ、およびイベントインスタンスＩＤ（ＥＩＤ）を有する０個またはいくつかのエントリを備える。データ記憶（またはランタイム）部分２０６中のアスペクトパターン部分のそれぞれは、０個またはいくつかのＡＴＩＤ、アスペクトインスタンスＩＤ（ＡＩＤ）、およびＢＯＩＤを備えるそのアスペクトインスタンスの１つまたは複数のテーブルを備える。
【０１６３】
フレームワーク２１０のレイアウトは、アプリケーションとは無関係である。例えば、フレームワークは、フィールドサービス管理アプリケーションおよび総勘定元帳アプリケーションのようなものを同じにすることができる。
【０１６４】
図６で、ビジネスオブジェクトコントローラ（ＢＯＣ）２０４のより詳細なアウトラインを提示する。ＢＯＣ２０４は、例示的に、ＢＯコンポーネント２２０、ＢＯＣインターフェースコンポーネント２２２、イベントキュー２２４、伝搬値コンポーネント２２６、および１つまたは複数のアスペクトパターンコンポーネント２２８を備える。ＢＯＣ２０４は、外部コンポーネント（ＵＩ２０８など）と文書を交換する。こうしたオペレーションを処理するのはＢＯＣインターフェースコンポーネント２２２である。このシステムのアーキテクチャでは、ＢＯＣ２０４がコード（Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｃ＃、Ｊａｖａ（登録商標）など）として開発され、アプリケーションサーバ上で実行される。
【０１６５】
メタデータと単一アスペクトパターンの１次データとを互いにリンクするコードが、アスペクトパターンコンポーネント２２８に含まれる。例えば、アスペクトパターンコンポーネント２２８は、レポジトリ２０２を読み取り、データ記憶２０６を操作する。システムのアーキテクチャの例示的な実施形態では、アスペクトパターンコンポーネント２２８が、アスペクトパターンのそれぞれについて１つのコンポーネントを備え、アスペクトパターンコンポーネント２２８のそれぞれは同じアスペクトインターフェースを実装する。これにより、ＢＯＣ２０４の他のコンポーネントが、任意のアスペクトパターンコンポーネント２２８と、その実装を知らなくても、そのインターフェースを介して対話することが可能となる。このことは、新しいアスペクトパターンが作成されたとき、実装しなければならない変更はアスペクトパターンコンポーネント２２８内だけとなるので、利点である。このように、新しいアスペクトパターンを実装しなければならないとき、ＢＯＣ２０４を簡単に更新することができる。アスペクトインターフェースは、イベントインスタンスを送受信し、数式およびチャネルを介して値を伝搬し、規則式を計算してこのような機能へのアクセスを与える。
【０１６６】
ＢＯＣ２０４の主な機能の１つは、システムのダイナミクスを制御することである。先に述べたように、システムのダイナミクスは、イベントおよび伝搬値によって管理される。この目的で、ＢＯＣ２０４は、イベントを管理するイベントキュー２２４と、伝搬値を管理する伝搬値コンポーネント２２６とをさらに備える。イベントは、ビジネスオブジェクトのダイナミクスを制御する（すなわち、イベントインスタンスは、図５に示す実際のビジネスオブジェクトインスタンスに接続される）。イベントキュー２２４は、イベントインスタンスをファイアしなければならない順序を管理する。一実施形態では、イベントキュー２２４は、最初の入来イベントインスタンスが特定のビジネスオブジェクトインスタンスに対してファイアすべき最初のものであるように取り計らう。続くイベントインスタンスは、最初のイベントインスタンスが完了するまでファイアされないことになる。
【０１６７】
イベントキュー２２４は、ビジネスオブジェクト（ＢＯ）コンポーネント２２０を介してイベントインスタンスを受け取り、ビジネスオブジェクト（ＢＯ）コンポーネントは、次にデータ記憶２０６から、またはデータ記憶２０６からそれを受け取るアスペクトパターンコンポーネント２２０からイベントインスタンスを受け取る。次いで、イベントキュー２０４はイベントインスタンスをキューに入れる。ＢＯコンポーネント２２０は、どのイベントタイプがどのアスペクトタイプと共に構成されるかを知るためにレポジトリ２０２を検査する責任を負う。
【０１６８】
本発明の例示的な実施形態では、ＢＯＣインターフェースコンポーネント２２２が、別のタスクを終了する前にアプリケーションのユーザによって開始されたいわゆるサブタスクを追跡するタスクスタック２３０と対話する。この場合、サブタスクが開始された最初のタスクは、呼出しタスクと呼ばれる。一例を挙げると、このような実施形態により、ユーザが、「セールスオーダーの変更（Ｍｏｄｉｆｙ  Ｓａｌｅｓ  Ｏｒｄｅｒ）」タスクの「変更（Ｍｏｄｉｆｙ）」ステップ内から「顧客の検索（Ｌｏｏｋｕｐ  Ｃｕｓｔｏｍｅｒ）」タスクを開始し、次に「カスタマの検索」タスクの「選択（Ｓｅｌｅｃｔ）」ステップ内から「顧客の作成（Ｃｒｅａｔｅ  Ｃｕｓｔｏｍｅｒ）」タスクを開始することが可能となる。この場合、タスクスタック２３０は、変更ステップでのセールスオーダーの変更→選択ステップでの顧客の検索→作成ステップでの顧客の作成の３つのタスク状態を含むことになるであろう。
【０１６９】
例示的な実施形態では、タスクスタック２３０が永続化され、各ユーザが未完了のタスクを見つけて再始動することが可能となる。
【０１７０】
タスクパターンのいくつかの例を下記の表１に示す。表１からわかるように、タスクパターンは、タスクステップ「作成」および「ビュー」を備える「作成」とすることができる。別のタスクパターンは、タスクステップ「選択」、「可能にする（Ｍａｋｅ  Ｐｏｓｓｉｂｌｅ）」、「行う（Ｄｏ）」、および「ビュー」を備える「メソッドを行う（Ｄｏ  Ｍｅｔｈｏｄ）」とすることができる。
【０１７１】
【表１】
2006507550.tif 000003
【０１７２】
タスクステップは、タスクステップがデータを操作するか否かに応じて２つのグループに分割することができる。本発明の一実施形態では、タスク（例えば構成済みタスクパターン）で得られる情報が、データを操作する各タスクステップの完了後に保存される。本発明の別の実施形態では、全タスクが実行されたときに情報が保存される。
【０１７３】
本発明の例示的実施形態では、すべてのタスクステップが、ユーザが以下のいずれかを可能にする機能を備える。
【０１７４】
ａ）タスクステップをコミットし、それによってタスクのタスクステップのシーケンスを続行させること、または
ｂ）タスクステップを取り消し、それによって現タスクを打ち切り、スタック上の呼出しタスクに戻ること
こうした方法の他に、単一タスクステップは、下記の表２に提示する機能を備えることができる。
【０１７５】
【表２】
2006507550.tif 000004
【０１７６】
本発明の例示的な実施形態では、以下のビューの一部をデフォルトビューとして様々なタスクステップに割り当てることができる。しかし、こうしたビューは、例示的なものに過ぎず、他のビューも同様に割り当てることもできる。「サーチ結果のビュー（ＳｅａｒｃｈＲｅｓｕｌｔ  Ｖｉｅｗ）」は、デフォルトビューとしてタスクステップ「選択」で使用することができる。このビューは、ビジネスオブジェクトインスタンスの名前およびＩＤについての情報を備える。「ビューの編集（Ｅｄｉｔ  Ｖｉｅｗ）」はデフォルトビューとして、タスクステップ「ビュー」、「変更」、「作成」、および「印刷」で使用することができる。このビューは、ビジネスオブジェクトタイプと共に構成されたアスペクトタイプのすべてのアスペクトインスタンスを提示する。空ページタイトルを示し、「サーチ結果のビュー」からのフィールドを含む「ビューの削除（Ｄｅｌｅｔｅ  Ｖｉｅｗ）」を、タスクステップ「削除」のデフォルトビューとして使用することができる。
【０１７７】
図７に、イベントインスタンスのファイアリングを処理する１つのシーケンスダイアグラムを示す。イベントインスタンスをファイアする時が来たとき、イベントインスタンスは、アスペクトパターンインターフェースを介してアスペクトパターンコンポーネント２２８にイベントインスタンスを渡すビジネスオブジェクトコンポーネント２２０に対してファイアされる。次に、アスペクトパターンコンポーネント２２８は、イベントインスタンスが特定のビジネスオブジェクトインスタンス内の単一アスペクトインスタンスに対してファイアされるよう取り計らう。単一アスペクトインスタンスは、このイベントインスタンスがそのインスタンスであるイベントタイプと共に構成されるかどうかを判定する。図７では、イベントインスタンス「１」がＢＯコンポーネント２２０に対してファイアされ、次いでアスペクトパターン１についてのアスペクトパターンコンポーネント２２８に、その後アスペクトパターン２に対してファイアされる。次に、アスペクトパターン２は、イベントインスタンス「１」を受け取ったことの応答として、ＢＯコンポーネント２２０に対してイベントインスタンス「２」をファイアする。次いでイベントインスタンス「２」がイベントキュー２２４に入れられる。ＢＯコンポーネント２２０は、引き続きイベントインスタンスを（対応するアスペクトパターンコンポーネント２２８を介して）残りのアスペクトパターンに渡す。このケースでは、アスペクトパターン３だけに渡す。次いでイベントキュー２２４は、そのキュー内の最初のイベントインスタンスをＢＯコンポーネント２２０に渡し、このＢＯコンポーネントが、イベントインスタンスをアスペクトパターンのすべてに渡す。別の実施形態では、イベントインスタンスは、イベントインスタンスに接続されるアスペクトインスタンスにだけ送られる。
【０１７８】
ＢＯＣ２０４の別の実施形態では、ＢＯＣ２０４はイベントキュー２２４を備えない。このようなシステムでのイベントの処理を、図８に示すシーケンスダイアグラムで示す。図８では、イベントインスタンス「１」がＢＯコンポーネント２２０にファイアされる。次いでイベントインスタンス「１」は、（やはり対応するコンポーネント２２８を介して）アスペクトパターン１およびアスペクトパターン２に渡される。次いでアスペクトパターン２は、イベントインスタンス「２」を応答としてＢＯコンポーネント２２０にファイアする。この後、ＢＯコンポーネント２２０は、イベントインスタンス「２」をすべてのアスペクトパターンに渡す。このケースでは、まずアスペクトパターン１に渡し、次いでアスペクトパターン２に渡し、最後にアスペクトパターン３に渡す。ＢＯコンポーネント２２０は、イベントインスタンス「１」を残りのアスペクトパターンにファイアすることによってイベントインスタンス「１」の処理を終了する。このケースでは、アスペクトパターン３だけにファイアする。
【０１７９】
イベントインスタンスのファイアリングはトランザクショナルである。すなわち、イベントインスタンスのファイアリングの全プロセスを実行することが可能でない限り、システムは、あたかもイベントインスタンスがファイアされなかったかのような初期状態に戻る。イベントインスタンスへの応答中、アスペクトパターンは別のイベントインスタンスをファイアすることができ、次いで与えられたビジネスオブジェクトインスタンスと共に構成されたアスペクトインスタンスのすべてのアスペクトパターンに最初のイベントインスタンスが応答するまで、その別のイベントインスタンスはキューに入れられる。元のイベントインスタンスによって生み出されたトランザクションは、イベントインスタンスに反応してファイアされたイベントインスタンスを備える。イベントキュー２２４を備えないＢＯＣ２０４の実施形態と同様に、元のイベントインスタンスによって生み出されたトランザクションは、イベントインスタンスに反応してファイアされたイベントインスタンスを備える。
【０１８０】
トランザクションが開始したときはいつでも、トランザクションに関連する１つまたは複数のビジネスオブジェクトインスタンスについての情報を備えるすべてのエントリのコピーがＢＯＣ２０４にロードされる。すなわち、現トランザクションで使用される、すべての関係するビジネスオブジェクトインスタンスがロードされる。ビジネスオブジェクトインスタンスがロードされたとき、すべての関連情報もロードされる。これには、例えば構成済みビジネスオブジェクトタイプ、イベントタイプ、構成済みアスペクトタイプ、伝搬値、ビジネスオブジェクトインスタンス、アスペクトインスタンス、およびイベントインスタンスを含むことができる。値の伝搬もトランザクションの一部と見なすことができる。
【０１８１】
図９では、値を伝搬するプロセスを示すシーケンスダイアグラムが示されている。アスペクトインスタンスが変更されたとき、メッセージがＢＯＣ２０４中のＢＯコンポーネント２２０に送られる。次いでＢＯコンポーネント２２０は、どのアスペクトインスタンスが変化したかについての情報を備えるメッセージを伝搬値コンポーネント２２６に渡す。次いで伝搬値コンポーネント２２６は、もしあれば、この変更に関するターゲットであるすべてのアスペクトインスタンスを見つけ、こうしたアスペクトインスタンスの識別をＢＯコンポーネント２２０に返す。次いでＢＯコンポーネント２２０は、ソースアスペクトインスタンスからコンポーネント２２８を介してターゲットアスペクトインスタンスに値をプッシュする。
【０１８２】
図１０では、規則を計算するプロセスを示すシーケンスダイアグラムが示されている。アスペクトインスタンスに関する値が要求されると、計算すべき式および１つまたは複数の値をルックアップすべき場所についての情報を備えるメッセージが、ＢＯＣ２０４のＢＯコンポーネント２２０に送られる。次いでＢＯコンポーネント２２０は、（コンポーネント２２８を介して）指定のアスペクトインスタンスにメッセージを送って、指定された値名で値をルックアップする。アスペクトインスタンスは、その後この値をＢＯコンポーネント２２０に返す。ＢＯコンポーネント２２０は式を計算し、計算した値をアスペクトインスタンスに返す。
【０１８３】
図１１では、ＵＩコンポーネント２０８のより詳細なアウトラインが示されている。ＵＩコンポーネント２０８は、メタＵＩジェネレータ３００、デバイス検出コンポーネント３０２、およびレンダリングコンポーネント３０４を含む。ＵＩコンポーネント２０８は、ＢＯＣインターフェース２２２と、ｅＸＭＬ文書などの文書を交換する。ＢＯＣ２０４からの文書は、メタＵＩジェネレータ３００によって処理される。このメタＵＩジェネレータは、ＢＯＣ２０４からの文書の情報を解釈し、アプリケーションと接続することのできるいくつかのデバイスについて、どの情報がユーザに提示され、どのように提示されるかを記述する文書（ＸＭＬ文書など）を作成する。メタＵＩジェネレータ３００からの文書はデバイス検出器３０２に送られ、デバイス検出器は、どんな種類のデバイス上に情報を提示するべきかを判定し、検出したデバイスのレンダコンポーネント３０４に検出したデバイスに特有の情報を備える文書を送る。異なるデバイスのレンダコンポーネント３０４は、データのレイアウト（例えば、ヘッダなどとして提示すべき文字列のレイアウト）を定義する機能を備える。デバイスのレンダコンポーネント３０４は、ＨＴＭＬ文書などの文書をデバイスに送る。提示のシステムのアーキテクチャでは、ＵＩコンポーネント２０８がコード（ＸＭＬ．ＸＳＬＴ、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｃ＃、Ｊａｖａ（登録商標）など）として開発され、アプリケーションサーバ上で実行される。
【０１８４】
例えば、ビジネスオブジェクトインスタンスがユーザに提示される実施形態では、ビジネスオブジェクトインスタンス、そのアスペクトインスタンス、その構成済みビジネスオブジェクトタイプ、およびその構成済みアスペクトタイプについての情報を備えるＢＯＣ２０４からの情報が、コンポーネント２０８によって使用される。この情報は、構成済みアスペクトタイプ、そしてそのアスペクトインスタンスが、ビジネスオブジェクトインスタンスのキャプションまたは／およびサマリおよび／またはオーバビューとしてユーザに提示することができるかどうかを含むことができる。次いでメタＵＩジェネレータ３００が情報を解釈する。例えば、この構成では、構成済みビジネスオブジェクトおよびその構成済みアスペクトタイプに関する情報を、どのデバイスにその情報が提示されるかに応じて様々に定義することができる。したがって、ビジネスオブジェクトタイプの名前は、ＰＣ上に提示されるときは「顧客のインボイス（Ｉｎｖｏｉｃｅ  ｏｆ  Ｃｕｓｔｏｍｅｒ）」とし、例えばハンドヘルドデバイス上に提示するときは、スペースが制限されるので「インボイス」とすることができる。また、ある状況では、アスペクトタイプは選択したいくつかのデバイス上にだけ提示されるように構成することができる。次いで、前述のように、すべてのこの情報がジェネレータ３００によって解釈され、文書が作成され、プロセスの残りが実行される。
【０１８５】
例示的にはすべてのアスペクトパターン内の例示的にはすべてのイベント機能の一部が、イベント機能と共に構成されたイベントタイプのイベントインスタンスが反応することができるかどうかを評価することができる。このような評価のトリガリングはクエリングと呼ばれる。アスペクトパターンは、反応することが可能かどうかを知らせるメッセージを返すことができる。さらに、アスペクトパターンは、イベント機能の断片がなぜ反応できないか、例えばアスペクトインスタンスの状態のためであることを示すメッセージを返すことができる。加えて、アスペクトパターンは、現在反応することが可能でない場合にそれを可能にするタスクを返すことができる。
【０１８６】
図１２に、タスクシーケンス中のタスクの一部がどのように実行されるかについての例を示すシーケンスダイアグラムを示す。第１の構成済みビジネスオブジェクトタイプが、関係するリレーション接続手段を介して、リレーションアスペクトパターンと共に構成され、したがって第２のビジネスオブジェクトタイプと共に構成される。そのビジネスオブジェクトインスタンスは、第２のビジネスオブジェクトタイプの他のビジネスオブジェクトインスタンスへの１つまたは複数のリレーションを必要とする場合がある。第１のビジネスオブジェクトタイプのビジネスオブジェクトインスタンスのリレーションが、例えば第２のビジネスオブジェクトタイプの別のビジネスオブジェクトインスタンスとリレーションを有さない場合、リレーションアスペクトパターンが、ＢＯＣ２０４中のサーチコンポーネントに、第１の構成済みビジネスオブジェクトタイプと共に構成された第２のビジネスオブジェクトタイプのすべてのビジネスオブジェクトインスタンスを見つけるよう依頼することができる。次いでリレーションアスペクトパターンは、イベントインスタンスをファイアすることは可能でないことを意味するようにＵＩコンポーネント２０８が解釈する情報と、ビジネスオブジェクトインスタンスと関係付けることができる可能なビジネスオブジェクトインスタンスのリストとしてＵＩコンポーネントが解釈する情報とを備えるメッセージを返す。
【０１８７】
ＵＩ中のタスクシーケンスは次のように作成することができる。そのアスペクトパターン内のイベント機能が反応することができない状態にあるアスペクトインスタンスのそれぞれについて、恐らくはアスペクトインスタンスを反応することができる状態にする方法についての指示またはガイドと共に、タスクがユーザに提示される。アスペクトインスタンスをユーザに提示する順序は、構成で定義されている場合がある。例えば、「サービスジョブ（Ｓｅｒｖｉｃｅ  Ｊｏｂ）」は、識別アスペクトパターンのアスペクトタイプ「識別（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）」およびリレーションアスペクトパターンのアスペクトタイプ「技能者（Ｔｅｃｈｎｉｃｉａｎ）」と共に構成することができ、アスペクトタイプの順序は、「識別」が「技能者」の前となるべきである。したがって、このような構成では、ビジネスオブジェクトタイプ「サービスジョブ」の新しいビジネスオブジェクトインスタンスを作成するタスクシーケンスは、まずユーザが、「識別」アスペクトタイプで定義されるアスペクトインスタンスの情報を作成する（例えば、識別番号を選ぶ）ようユーザをガイドするタスクの提示を受け、その後、「技能者」アスペクトタイプのアスペクトインスタンスのリレーションを作成するようユーザをガイドするタスクの提示を受ける。
【０１８８】
本発明の一実施形態では、タスクはイベントタイプと関係する情報と、共に構成されるビジネスオブジェクトタイプと関係する情報を組み合わせることによって作成することができる。例えば、ユーザに提示されるタスク「サービスジョブの開始（Ｓｔａｒｔ  Ｓｅｒｖｉｃｅ  Ｊｏｂ）」は、イベントタイプ「開始」に含まれる「開始」文字列と、イベントタイプ「開始」が共に構成される特定のビジネスオブジェクトタイプ「サービスジョブ」の「サービスジョブ」文字列を使用することによって作成することができる。
【０１８９】
本発明の一実施形態では、ビジネスオブジェクトタイプに関してファイアすることができる可能なイベントタイプのリストを得ることができ、ユーザに提示することができる。この方法では、ユーザは、現在どのイベントタイプが反応でき、または反応できないかについての指示の提供を受ける。これを行うためのメカニズムの一実施形態は次のようなものである。ＢＯコンポーネント２２０は、特定されたビジネスオブジェクトタイプと共に構成されたすべての既知のイベントタイプを通して動作する。ＢＯコンポーネント２２０は、アスペクトインスタンスがイベントタイプに応答することができる状態にあるかどうかについて、順番に（そのアスペクトインターフェースを介して）各アスペクトパターンにクエリする。すなわち、イベントタイプと共に構成された１つまたは複数のアスペクトパターン内のイベント機能が要求に反応し、イベントインスタンスを実行することが可能か否かを返す。アスペクトパターンコンポーネントは、結果に応じて「ｙｅｓ」または「ｎｏ」で応答する。アスペクトパターンコンポーネントは、イベントタイプに応答することができない理由を示すデータ構造（例えば文字列）をさらに返すことができる。この方法では、アプリケーションのユーザは、アスペクトパターンに関してイベントタイプのイベントインスタンスをファイアすることが可能であるか、現在は可能でないか、または決して可能とはならないかについて通知を受けることができる。
【０１９０】
また、アスペクトパターンは、そのようなイベントタイプについて注意を払わないことを示す情報を有するメッセージを返すことができる。これは、例えばイベントタイプがアスペクトパターンと共に構成されない状況に当てはまる。
【０１９１】
図１３では、イベントタイプのクエリを示すシーケンスダイアグラムが示されている。図では、イベントタイプ１のクエリが、ＢＯコンポーネント２２０によって開始される。次いでイベントタイプ１のクエリは、アスペクトパターン１およびアスペクトパターン２に渡される。アスペクトパターン２は、イベントタイプ１に応答してイベントタイプ２のイベントインスタンスをファイアするように構成されるので、イベントタイプ２のクエリを開始する。その後、ＢＯコンポーネント２２０は、イベントタイプ２のクエリをすべてのアスペクトパターンに渡すことを開始する。この場合は、まずアスペクトパターン１に渡し、次いでアスペクトパターン２に渡し、最後にアスペクトパターン３に渡す。次いでＢＯコンポーネント２２０は、クエリを残りのアスペクトパターンに、この場合はアスペクトパターン３だけに渡すことにより、イベントタイプ１のクエリの処理を終了する。
【０１９２】
イベントタイプについてクエリする代替方法は、イベントタイプのクエリを処理する順序を処理するキューを使用することによって実施することができる。前述の例では、すべてのアスペクトパターンに対するイベントタイプ１のクエリが処理されるまで、イベントタイプ２のクエリが延期されることを意味する。
【０１９３】
本発明の一実施形態では、アスペクトインスタンスがイベントタイプに反応することができない状態にある理由が、実行するタスクとしてＵＩに送られる。例えば、イベントタイプに応答するように依頼された場合に実行するであろうアクションを示すデータ構造（文字列など）を返すことができる。アスペクトインスタンスがイベントタイプに反応することができる状態にあるとき、次のアスペクトインスタンスのアスペクトパターンが、イベントタイプに反応することができるかどうかについて照会を受け、ＵＩは、アスペクトインスタンスが反応することができない状態にある場合に、実行するタスクを受け取ることができる。同様に、残りのアスペクトインスタンスのアスペクトパターンが、反応することができるかどうかについて照会を受け、その要求に応答して、タスクをＵＩに返すことができる。この方法では、タスクシーケンスを自動的に作成することができる。本発明の例示的な実施形態では、これは、タスクパターン「メソッドを行う（Ｄｏ  Ｍｅｔｈｏｄ）」中の「可能にする（Ｍａｋｅ  ｐｏｓｓｉｂｌｅ）」／「タスクシーケンス（ｔａｓｋ  ｓｅｑｕｅｎｃｅ）」タスクステップによって構成することができる。
【０１９４】
例えば、「フィールドサービス管理（Ｆｉｅｌｄ  Ｓｅｒｖｉｃｅ  Ｍａｎａｇｅｍｅｎｔ）」アプリケーションのユーザが、装置の一部を修理する必要がある顧客からの呼出しに応答していると仮定する。ビジネスオブジェクトタイプ「サービスジョブ」の新しいビジネスオブジェクトインスタンスを作成して、それに記入し、顧客が、サービスジョブ中に述べられているようにサービス訪問に対して支払いを行うことを確認した後、ユーザは、「サービスジョブ」ビジネスオブジェクトタイプと共に構成された「受け入れ（Ａｃｃｅｐｔ）」イベントタイプのインスタンスをファイアする必要がある。これは、タスク「サービスジョブの受け入れ（Ａｃｃｅｐｔ  Ｓｅｒｖｉｃｅ  Ｊｏｂ）」を開始することによって達成される。このタスクは、サービスジョブビジネスオブジェクトインスタンスのすべてのアスペクトインスタンス、およびアスペクトインスタンスにクエリする。技能者がジョブに割り当てられていないので、アスペクトパターンリレーションの「技能者」は、イベントタイプ「受け入れ」のイベントインスタンスをファイアすることを許可しないことになる。したがってユーザは、そのジョブの技能者を選ぶことによってビジネスオブジェクトインスタンスを変更し、それで、イベントタイプ「受け入れ」のイベントインスタンスをファイアすることが可能となる。これは、ユーザが、例えばビジネスオブジェクトインスタンスが提示される画面上のサブミットボタンを押下することによって行われ、これにより、変更済みビジネスオブジェクトインスタンスおよびイベントタイプ「受け入れ」を含むメッセージをＢＯＣに送る。このメッセージに応答して、ＢＯＣは、「受け入れ」イベントタイプのイベントインスタンスを作成し、前述のようにイベントインスタンスを実際にファイアすることになる。イベントインスタンスのファイアリングは、構成済みタスクパターン中の「メソッドを行う」中の「行う」タスクステップに対応する。
【０１９５】
特定の実施形態を参照して本発明を説明したが、当業者は、本発明の精神および範囲から逸脱することなく、形態および詳細に変更を行えることができることを理解するであろう。
【図面の簡単な説明】
【０１９６】
【図１】イベントタイプ、アスペクトパターン、およびアスペクトタイプに基づくビジネスオブジェクトタイプの構成を示す図である。
【図２】伝搬値をさらに備える、図１のビジネスオブジェクトタイプの構成を示す図である。
【図３】本発明を実施することができるコンピュータ環境の一実施形態のブロック図である。
【図４】アプリケーションを設計するのに使用されるコンポーネント、ならびにアプリケーションを実行するのに使用されるコンポーネントの概要を与える図である。
【図５】レポジトリコンポーネントならびにデータ記憶コンポーネントを備えるデータベースの一例を与える図である。
【図６】ビジネスオブジェクトコントローラ（ＢＯＣ）を示す図である。
【図７】イベントインスタンスの実行を処理する様々な方法を示すシーケンスダイアグラムの例である。
【図８】イベントインスタンスの実行を処理する様々な方法を示すシーケンスダイアグラムの例である。
【図９】伝搬値メカニズムがどのように働くかを示すシーケンスダイアグラムである。
【図１０】規則メカニズムがどのように働くかを示すシーケンスダイアグラムである。
【図１１】ＵＩコンポーネントを示す図である。
【図１２】タスクシーケンスの自動生成の一部がどのように実行されるかを示すシーケンスダイアグラムである。
【図１３】イベントタイプのクエリ処理を示すシーケンスダイアグラムである。
【図１】
2006507550.tif 000005
【図２】
2006507550.tif 000006
【図３】
2006507550.tif 000007
【図４】
2006507550.tif 000008
【図５】
2006507550.tif 000009
【図６】
2006507550.tif 000010
【図７】
2006507550.tif 000011
【図８】
2006507550.tif 000012
【図９】
2006507550.tif 000013
【図１０】
2006507550.tif 000014
【図１１】
2006507550.tif 000015
【図１２】
2006507550.tif 000016
【図１３】
2006507550.tif 000017
【国際調査報告】
2006507550.tif 000018
2006507550.tif 000019
2006507550.tif 000020