(57)【要約】  本明細書で説明されている実施形態は、データモデルに基づいてソフトウェアアプリケーションを構築すること、およびユーザによって入力されたデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成することを対象とする。一実施形態では、コンピュータシステムが、データモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法を実行する。このコンピュータシステムは、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示するユーザ構成可能構築情報を含むデータモデルにアクセスする。宣言型インタプリタは、データモデルに含まれる構築情報に基づいて、アプリケーションを構築するように構成されている。このコンピュータシステムは、データモデルに含まれる構築情報を解釈して、ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する。このコンピュータシステムはまた、データモデルに含まれる構築情報の解釈結果に基づいて、ソフトウェアアプリケーションの少なくとも一部を構築する。
2011501327.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のデータモデル（１１０）からソフトウェアアプリケーション（１２７／１２７Ａ）を構築するように構成されている宣言型インタプリタ（１２０）を備えるコンピューティングシステム（１０１）において、１つまたは複数のデータモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法であって、
前記宣言型インタプリタ（１２０）が、ソフトウェアアプリケーションの少なくとも一部がどのように構築されるべきかを指示するユーザ構成可能構築情報（１１３）を含むデータモデル（１１０）にアクセスする動作であって、前記宣言型インタプリタは、前記データモデルに含まれる前記ユーザ構成可能構築情報に基づいてアプリケーションを構築するように構成されている、動作と、
前記宣言型インタプリタ（１２０）が、前記データモデルに含まれる前記ユーザ構成可能構築情報（１１３）を解釈して、前記ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する動作と、
前記宣言型インタプリタ（１２０）が、前記データモデル（１１０）に含まれる前記ユーザ構成可能構築情報（１１３）の解釈結果に基づいて、前記ソフトウェアアプリケーション（１２７Ａ）の少なくとも一部を構築する動作と
を含むことを特徴とする方法。
【請求項２】
ユーザは、前記ソフトウェアアプリケーションがどのように構築されるべきかを指示するユーザ構成可能構築情報を前記データモデル内に入力することを特徴とする請求項１に記載の方法。
【請求項３】
前記データモデルになされるべき１つまたは複数の変更を指示するユーザ入力を受け取る動作と、
前記モデルになされる前記１つまたは複数の変更を、前記データモデルに基づく前記ソフトウェアアプリケーションに自動的に適用する動作と
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記モデルは、実行時に修正されることを特徴とする請求項３に記載の方法。
【請求項５】
前記宣言型インタプリタの少なくとも一部は、ＸＡＤで書かれていることを特徴とする請求項１に記載の方法。
【請求項６】
ＸＡＤで書かれた前記宣言型インタプリタの一部は、前記データモデルに含まれる前記ユーザ構成可能構築情報に基づいてクエリーおよびビューのグラフを作成する方法を指示する宣言を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記宣言型インタプリタが、前記データモデルに含まれる前記ユーザ構成可能構築情報を解釈する前記動作は、
前記データモデルからデータフローグラフを構築する動作と、
前記データフローグラフに基づいて１つまたは複数のビューを作成する動作と、
前記ビューを前記データモデルに含まれる前記データに結び付ける動作と
を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記宣言型インタプリタは、構造マッピングを解釈するようにさらに構成されることを特徴とする請求項１に記載の方法。
【請求項９】
前記データモデルに基づいて前記ソフトウェアアプリケーション用のユーザインターフェースを作成する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記データモデルに基づいて前記ソフトウェアアプリケーション用のサービスを作成する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記データモデルは、特定のアプリケーション専用のドメイン固有言語（ＤＳＬ）で書かれることを特徴とする請求項１に記載の方法。
【請求項１２】
コンピューティングシステムにおいて、ユーザ（１０５）によって入力された１つまたは複数のデータモデルエディット（１０６）に従ってランタイムオブジェクトグラフ（１２６／１２６Ａ）を自動的に再構成するための方法であって、
ソフトウェアアプリケーション（１２７／１２７Ａ）の少なくとも一部をどのように構築すべきかを指示する構築情報（１１３）を含むデータモデル（１１０）にアクセスする動作と、
前記データモデル（１１０）に含まれる前記構築情報（１１３）に基づいて、ランタイムオブジェクトグラフ（１２６／１２６Ａ）を構築する動作と、
前記ランタイムオブジェクトグラフに基づいて、前記ソフトウェアアプリケーション（１３１／１３１Ａ）のビューを提示する動作と、
前記データモデルに対し変更を実行するように構成されている１つまたは複数のエディットを含むユーザ入力（１０６）を受け取る動作と、
前記エディットで示されているような前記ユーザによって入力された前記変更を前記ランタイムオブジェクトグラフが反映するように、前記エディットに基づいて前記ランタイムオブジェクトグラフを自動的に再構成する動作と
を含むことを特徴とする方法。
【請求項１３】
前記再構成されたランタイムオブジェクトグラフに基づいて、前記ソフトウェアアプリケーションのビューを提示することをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記データモデルのオブジェクトを表示するためのデフォルトの方法を確立することをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
１つまたは複数のデータモデル（１１０）に基づいてソフトウェアアプリケーション（１２７／１２７Ａ）の少なくとも一部を構築するための方法を実施するコンピュータプログラム製品であって、前記コンピューティングシステムの１つまたは複数のプロセッサによって実行されたときに前記コンピューティングシステムに前記方法を実行させるコンピュータ実行可能命令を有する１つまたは複数のコンピュータ可読媒体を備える、コンピュータプログラム製品において、前記方法は、
前記宣言型インタプリタ（１２０）が、ソフトウェアアプリケーションの少なくとも一部がどのように構築されるべきかを指示するユーザ構成可能構築情報（１１３）を含むデータモデル（１１０）にアクセスする動作であって、前記宣言型インタプリタ（１２０）は、前記データモデルに含まれる前記ユーザ構成可能構築情報に基づいてアプリケーションを構築するように構成されている、動作と、
前記宣言型インタプリタ（１２０）が、前記データモデルに含まれる前記ユーザ構成可能構築情報（１１３）を解釈して、前記ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する動作と、
前記宣言型インタプリタ（１２０）が、前記データモデル（１１０）に含まれる前記ユーザ構成可能構築情報（１１３）の解釈結果に基づいて、前記ソフトウェアアプリケーション（１２７Ａ）の少なくとも一部を構築する動作と
を含むことを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、宣言型モデルの解釈に関する。
【背景技術】
【０００２】
コンピュータは、仕事で、家庭内で、またモバイル機器において高度に統合されている。コンピュータは、膨大な量の情報を迅速に、効率よく処理することができる。コンピュータシステム上で実行されるように設計されているソフトウェアアプリケーションを用いることで、ユーザは、ビジネスアプリケーション、学業、娯楽、その他を含む広範な機能を遂行することができる。ソフトウェアアプリケーションは、文書の草稿を作成するためのワードプロセッサアプリケーション、または電子メールの送信、受信、および整理を行うための電子メールプログラムなど、特定の作業を実行するように設計されていることが多い。
【０００３】
場合によっては、ソフトウェアアプリケーションを使用することで、データをモデルの形式で生成し、編集し、表示することもできる。例えば、モデルは、エンティティ、プロセス、システム、および他の情報を記述するためにビジネスおよび他のエンティティによって使用されうる。いくつかのモデルは、流れ図、プロセスフロー、フローチャート、プロセス図、および／または管理図と称されることもある。また、他のモデルは、リスト、表、円グラフ、またはデータを分類して表示する他の形式と称されることもある。場合によっては、システム内のリソース間の組織関係を示すためにモデルを使用することもできる。これらのモデルは、組織図と称されることが多い。より広い意味では、モデルは、異なるオブジェクト間の任意の種類の関係情報を示すために使用できる。
【０００４】
しかし、データモデルを解釈するように構成されているソフトウェアプログラムは、特定の種類のモデルを解釈することに限定されることが多くある。例えば、このようなソフトウェアプログラムは、特定の種類のデータモデル、またはデータモデルの特定のインスタンスを解釈できるようにハードコーディングされることが多い。しかし、データモデルが変わると、インタプリタはデータモデルの新しいインスタンスおよび異なるインスタンスを解釈することができなくなることが多い。例えば、ユーザは、アプリケーションのユーザインターフェースまたは他の機能などのモデルに基づきソフトウェアアプリケーションのさまざまな側面を変えるようにモデルを編集することができる。特定の変更を取り扱うように事前プログラムされた典型的なインタプリタでは、ユーザよって入力された変更を取り扱うことができない場合がある。そのため、それらの変更が実施されないか、またはインタプリタが、データモデルの新しいインスタンスの解釈に失敗することになる。したがって、データモデルを解釈するために使用されるコンピュータ実行ソフトウェアアプリケーションは、変更が適用された後、データモデルを解釈する能力が制限される可能性がある。
【発明の概要】
【０００５】
本明細書で説明されている実施形態は、データモデルに基づいてソフトウェアアプリケーションを構築すること、およびユーザによって入力されたデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成することを対象とする。一実施形態では、コンピュータシステムが、データモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法を実行する。このコンピュータシステムは、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示するユーザ構成可能構築情報を含むデータモデルにアクセスする。宣言型インタプリタは、データモデルに含まれるユーザ構成可能構築情報に基づいてアプリケーションを構築するように構成されている。このコンピュータシステムは、データモデルに含まれるユーザ構成可能構築情報を解釈して、ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する。このコンピュータシステムはまた、データモデルに含まれるユーザ構成可能構築情報の解釈結果に基づいてソフトウェアアプリケーションの少なくとも一部を構築する。
【０００６】
他の実施形態では、コンピュータシステムは、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示する構築情報を含むデータモデルにアクセスする。このコンピュータシステムは、データモデルに含まれる構築情報に基づいてランタイムオブジェクトグラフを構築する。このコンピュータシステムは、ランタイムオブジェクトグラフに基づいてソフトウェアアプリケーションのビューを提示する。このコンピュータシステムは、データモデルに対し変更を実行するように構成されている１つまたは複数のエディットを含むユーザ入力を受け取る。このコンピュータシステムはまた、エディットで示されているようなユーザによって入力された変更をランタイムオブジェクトグラフが反映するように、エディットに基づいてランタイムオブジェクトグラフを自動的に再構成する。
【０００７】
本概要は、以下の発明を実施するための形態でさらに説明されている選択した概念を簡略化した形式で紹介するために提供するものである。本概要は、特許請求の範囲に記載されている主題事項の重要な特徴または本質的な特徴を特定することを目的とするものでも、特許請求の範囲に記載されている主題事項の範囲の決定に際して、補助として使用することを目的とするものでもない。
【図面の簡単な説明】
【０００８】
本発明の実施形態の上記の利点および特徴ならびに他の利点および特徴をさらに明確にするために、付属の図面を参照することによって本発明の実施形態をさらに具体的に説明する。これらの図面は本発明の一般的な実施形態のみを示しており、したがって、これらの図面は本発明の範囲を制限するとみなすべきでないことを理解されたい。本発明は、付属の図面を使用することでさらに具体的に、また詳細に記述され、説明される。
【図１】データモデルに基づいてソフトウェアアプリケーションを構築すること、およびユーザによって入力されたデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成することを含む本発明の実施形態を動作させることが可能なコンピュータアーキテクチャを示す図である。
【図２】データモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための例示的な方法のフローチャートを示す図である。
【図３】ユーザによって入力されたデータモデルエディットに従って、ランタイムオブジェクトグラフを自動的に再構成するための例示的な方法のフローチャートを示す図である。
【発明を実施するための形態】
【０００９】
本明細書で説明されている実施形態は、データモデルに基づいてソフトウェアアプリケーションを構築すること、およびユーザによって入力されたデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成することを対象とする。一実施形態では、コンピュータシステムが、データモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法を実行する。このコンピュータシステムは、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示する構築情報を含むデータモデルにアクセスする。宣言型インタプリタは、データモデルに含まれる構築情報に基づいてアプリケーションを構築するように構成されている。このコンピュータシステムは、データモデルに含まれる構築情報を解釈して、ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する。このコンピュータシステムはまた、データモデルに含まれる構築情報の解釈結果に基づいてソフトウェアアプリケーションの少なくとも一部を構築する。
【００１０】
他の実施形態では、コンピュータシステムが、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示する構築情報を含むデータモデルにアクセスする。このコンピュータシステムは、データモデルに含まれる構築情報に基づいてランタイムオブジェクトグラフを構築する。このコンピュータシステムは、ランタイムオブジェクトグラフに基づいてソフトウェアアプリケーションのビューを提示する。このコンピュータシステムは、データモデルに対し変更を実行するように構成されている１つまたは複数のエディットを含むユーザ入力を受け取る。このコンピュータシステムはまた、エディットで示されているようなユーザによって入力された変更をランタイムオブジェクトグラフが反映するように、エディットに基づいてランタイムオブジェクトグラフを自動的に再構成する。
【００１１】
本発明の実施形態は、以下でさらに詳しく説明されるように、コンピュータハードウェアを含む専用もしくは汎用コンピュータを備えるか、または利用することができる。本発明の範囲内の実施形態は、コンピュータ実行可能命令および／またはデータ構造を伝送または格納するための物理的媒体および他のコンピュータ可読媒体も備える。このようなコンピュータ可読媒体は、汎用もしくは専用コンピュータシステムによってアクセスできる利用可能な任意の媒体とすることができる。コンピュータ実行可能命令を格納するコンピュータ可読媒体は、物理的記憶媒体である。コンピュータ実行可能命令を伝送するコンピュータ可読媒体は、伝送媒体である。したがって、例えば、本発明の実施形態は、少なくとも２つの明確に異なる種類のコンピュータ可読媒体、つまり物理的記憶媒体と伝送媒体とを含むが、これらに限定されない。
【００１２】
物理的記憶媒体としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、またはコンピュータ実行可能命令もしくはデータ構造の形の所望のプログラムコード手段を格納するために使用されうる、かつ汎用もしくは専用コンピュータによってアクセスされうる、他の媒体が挙げられる。
【００１３】
「ネットワーク」は、コンピュータシステムおよび／またはモジュールおよび／または他の電子デバイスの間で電子データのトランスポートを可能にする１つまたは複数のデータリンクとして定義される。ネットワークまたは他の通信接続（ハード配線、無線、またはハード配線もしくは無線の組合せによる）を介して情報がコンピュータに転送または供給される場合、コンピュータは、その接続を伝送媒体とみなす。伝送媒体としては、コンピュータ実行可能命令またはデータ構造の形の所望のプログラムコード手段を伝送またはトランスポートするために使用されうる、かつ汎用もしくは専用コンピュータによってアクセスされうる、ネットワークおよび／またはデータリンクが挙げられる。上記の組合せも、コンピュータ可読媒体の範囲に含まれるものとする。
【００１４】
ただし、コンピュータ実行可能命令またはデータ構造の形のプログラムコード手段は、さまざまなコンピュータシステムコンポーネントに届いた後、伝送媒体から物理的記憶媒体に自動的に転送されうることは理解されるであろう。例えば、ネットワークまたはデータリンクを介して受信されたコンピュータ実行可能命令またはデータ構造は、ネットワークインターフェースカード内のＲＡＭにバッファリングされ、次いで、コンピュータシステムＲＡＭおよび／またはコンピュータシステムのより揮発性が低い物理的記憶媒体に最終的に転送されうる。したがって、物理的記憶媒体を、伝送媒体も使用するコンピュータシステムコンポーネント内に（または伝送媒体を主として使用するコンピュータシステムコンポーネント内にさえ）備えることができることは理解されるであろう。
【００１５】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに特定の１つの機能または機能群を実行させる命令およびデータを含む。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間形式命令、さらにはソースコードでもあってもよい。本発明の主題事項を構造的特徴および／または方法論的動作に固有の言語で説明したが、添付の特許請求の範囲で定義される本発明の主題事項は、必ずしも説明した特定の特徴または動作に必ずしも限定されないことを理解されたい。寧ろ、説明されている特徴および動作は、本発明を実装する例示的な形態として開示されている。
【００１６】
当業者であれば、本発明は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ポケベル、ルータ、交換機、および同様の機器を含む、多くの種類のコンピュータシステム構成を用いてネットワークコンピューティング環境内で実施されうることを理解するであろう。本発明は、ネットワークを通じて（ハード配線されたデータリンク、無線データリンクによって、またはハード配線されたデータリンクと無線データリンクとの組合せによって）リンクされているローカルのコンピュータシステムとリモートのコンピュータシステムの両方がタスクを実行する、分散システム環境内で実施することもできる。分散システム環境において、プログラムモジュールを、ローカルおよびリモートのメモリ記憶デバイス内に配置することができる。
【００１７】
図１は、本発明の原理が使用されうるコンピュータアーキテクチャ１００を例示している。コンピュータアーキテクチャ１００は、コンピュータシステム１０１を含む。いくつかの実施形態では、コンピュータシステム１０１は、クエリー１１１、ビュー１１２、およびユーザ構成可能構築情報１１３を有するデータモデルを備えることができる。データモデル１１０は、流れ図、プロセスフロー、フローチャート、プロセス図、および／または管理図を含む任意の種類のデータモデルであってもかまわない。それに加えて、またはその代わりに、データモデル１１０は、テンプレート、スキーマ、および／またはドメイン固有言語（ＤＳＬ）コード部分を含むこともできる。クエリー１１１は、文字列、検索、データ項目要求、または他の種類のクエリーを含む任意の種類のデータクエリーを指すものとしてよい。クエリー１１１は、クエリー１１１が一部となっているデータモデルに直接関係する（例えば、クエリー１１１はデータモデル１１０の一部である）か、またはその代わりに、クエリーは、他のデータモデル、および他のコンピュータシステムにさえ関係するものとしてよい。
【００１８】
ビュー１１２は、モデルに基づく任意の種類の表示またはビューを指すものとしてよい。いくつかの実施形態では、ビュー１１２は、データモデル１１０に含まれるデータに直接関係するか、または該データから生成されうる。それに加えて、またはその代わりに、ビュー１１２は、他のモデルに含まれるデータから、またはユーザ構成可能構築情報１１３から生成されうる。構築情報１１３は、データモデルに基づいてソフトウェアアプリケーションを構築する方法を記述する、任意の種類の情報または命令とすることができる。例えば、データモデル１１０に含まれるユーザ構成可能構築情報１１３に基づいて、アプリケーション構築モジュール１２５によってソフトウェアアプリケーション１２７のすべてまたは一部を生成することができる。いくつかの実施形態では、ユーザ構成可能構築情報は、ユーザ１０５から受け取ることができる。この入力された構築情報１０７は、入力受取モジュール１１５によって受け取られ、データモデルエディット１０６の一部になるものとしてよい。
【００１９】
ソフトウェアアプリケーション１２７Ａ、ランタイムオブジェクトグラフ１２６Ａ、およびソフトウェアアプリケーションビュー１３１Ａは、元のオブジェクトの変更または更新バージョンのオブジェクトを指すものとしてよい。例えば、宣言型インタプリタ１２０は、ランタイムオブジェクトグラフ１２６および／またはソフトウェアアプリケーション１２７を更新するためにインタプリタ側で使用できるデータモデルエディットをユーザ１０５から受け取ることができ、その結果それぞれオブジェクト１２６Ａおよび１２７Ａが得られる。同様に、ビュージェネレータ１３０は、ランタイムオブジェクトグラフ１２６が更新されたと判定し、更新されたグラフに基づいて、更新ソフトウェアアプリケーションビュー１３１Ａを生成することができる。従って、本明細書で使用されているように、１２６、１２７、および／または１３１への参照は、一般的には既存のオブジェクトを指し、１２６Ａ、１２７Ａ、および１３１Ａは、一般的には、更新または編集されたオブジェクトを指す。
【００２０】
入力受取モジュール１１５は、データモデルエディット１０６などの他の形態のユーザ入力を受け取るように構成されうる。入力受取モジュール１１５は、受け取った入力を、少なくとも一時的に、格納するように構成することもできる。したがって、入力受取モジュール１１５から送られてきた構築情報入力１０７およびデータモデルエディット１０６は、入力として受け取ったもの（例えば、１０６および１０７）と異なる場合がある。例えば、入力受取モジュール１１５は、より最近に受け取った入力を格納し、以前受け取った入力を送ることができる。他の場合には、入力受取モジュール１１５は、単純に、入力を受け取り、該入力をデータモデル１１０および宣言型インタプリタ１２０のいずれか、または両方に直接受け渡すことができる。
【００２１】
宣言型インタプリタ１２０は、データモデル、クエリー、ビュー、構築情報、および／またはデータモデルエディットを解釈することができる任意のソフトウェアアプリケーション、ロジック、または他の処理手段とすることができる。いくつかの実施形態では、宣言型インタプリタ１２０は、データモデル１１０を宣言的に解釈し、該モデルに基づいてアプリケーションどのように構築すべきかを決定するように構成されうる。例えば、宣言型インタプリタ１２０は、ＤＳＬコード部分を解釈し、該ＤＳＬコード部分に基づいてランタイムオブジェクトグラフ（例えば、１２６）をどのように構築するかを決定することができる。宣言型インタプリタ１２０は、ＤＳＬコード部分に基づいてソフトウェアアプリケーション（またはその一部）をどのように生成するかを決定するようにさらに構成されうる。いくつかの場合において、宣言型インタプリタ１２０は、ＤＳＬをより汎用的な使用可能形式に変換するために使用されるであろう手続きコードを使わずに、このような決定を行う機能を持つこともある。
【００２２】
宣言的インタプリタ１２０はまた、アプリケーション構築モジュール１２５を備えることができる。アプリケーション構築モジュール１２５を用いて、データモデルの解釈結果に基づいてランタイムオブジェクトグラフ１２６および／またはソフトウェアアプリケーション１２７を構築することができる。ビュージェネレータ１３０は、ランタイムオブジェクトグラフ１２６に基づいてソフトウェアアプリケーションビュー１３１を生成するために使用されうる。例えば、ユーザ１０５は、データモデル１１０の全部または一部、および／またはデータモデルエディット１０６の形態でデータモデルになされた変更を表示したい場合がある。宣言型インタプリタは、データモデルを解釈し、アプリケーション構築モジュール１２５を使用して、エディット１１６データモデルエディット１０６で示されているように更新された変更を含むモデルのランタイムオブジェクトグラフ１２６を構築することができる。ランタイムオブジェクトグラフ１２６は、ビュージェネレータ１３０によって生成されるように、ソフトウェアアプリケーション１２７および／またはソフトウェアアプリケーションビュー１３１に対するベースとして使用されうる。
【００２３】
図２は、１つまたは複数のデータモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法２００のフローチャートを例示している。ここで、環境１００のコンポーネントおよびデータを頻繁に参照しつつ、方法２００について説明する。
【００２４】
方法２００は、データモデルにアクセスする動作を含み、データモデルは、ソフトウェアアプリケーションの少なくとも一部がどのように構築されるべきかを指示するユーザ構成可能構築情報を含み、宣言型インタプリタは、データモデルに含まれるユーザ構成可能構築情報に基づいてアプリケーションを構築するように構成される（動作２１０）。例えば、宣言型インタプリタ１２０はデータモデル１１０にアクセスすることができ、該データベースは、ソフトウェアアプリケーション１２７の少なくとも一部をどのように構築すべきかを指示するユーザ構成可能構築情報１１３を含む。宣言型インタプリタ１２０は、データモデル１１０に含まれるユーザ構成可能構築情報に基づいてソフトウェアアプリケーション１２７を構築するように構成することができる。いくつかの場合において、上で説明されているように、データモデル１１０は、特定のアプリケーション専用のドメイン固有言語（ＤＳＬ）で書くことができる。宣言型インタプリタ１２０は、ＤＳＬモデルを変換するためのいずれの手続きコードも使用せずに、そのようなモデルを解釈するように構成されうる。いくつかの場合において、宣言型モデルインタプリタ１２０はそれ自体、ＸＡＦ（ＸＭＬ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｕｎｄａｔｉｏｎ）Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｆｉｎｉｔｉｏｎ（ＸＡＤ）言語で書くことができる。ＸＡＤは、この場合には宣言型インタプリタ１２０などのＸＡＦアプリケーションをオーサリングするために使用される宣言型言語である。いくつかの場合において、宣言型インタプリタ１２０の一部がＸＡＤで書かれる場合、該部分は、データモデル１１０に含まれているユーザ構成可能構築情報１１３に基づいてクエリーおよびビューのグラフ（例えば、ランタイムオブジェクトグラフ１２６）を作成する方法を指示する宣言を含むことができる。
【００２５】
いくつかの実施形態では、宣言型インタプリタ１２０は、ヒントを解釈するように構成されうる。ヒントは、データモデル内に格納される、該モデルに基づくアプリケーションを構築する方法を示すか、または該方法に影響を及ぼす任意の種類の情報とすることができる。例えば、データモデル１１０は、データモデル１１０に基づくアプリケーション用のユーザインターフェースがどのように見えるべきかを指示するヒントを含むことができる。それに加えて、またはその代わりに、宣言型インタプリタ１２０は、構造マッピングを解釈するように構成されうる。そのような構造マッピングは、ヒントと同様に、該構造マッピングを含むデータモデルに基づくアプリケーション内の特定の構造アイテムに影響を及ぼしうる。
【００２６】
いくつかの場合において、ユーザは、ソフトウェアアプリケーションがどのように構築されるべきかを指示する構築情報をデータモデル内に入力することができる。例えば、ユーザ１０５は、入力受取モジュール１１５によって受け取られ、データモデル１１０に受け渡される構築情報入力１０７を入力することができる。構築情報入力１０７は、ユーザ１０５によって生成されるか、または該ユーザに提示されるいくつかのオプションの群から選択されうる。構築情報入力１０７は、データモデル１１０に含まれるユーザ構成可能構築情報１１３を上書きするか、または補足するために使用できる。いくつかの場合において、ソフトウェアアプリケーション１２７は、複数のデータモデルに基づくものとすることもできる。このような場合、データモデルは、追加のデータモデルが格納されているリポジトリからアクセスされうる。
【００２７】
方法２００は、データモデルに含まれる構築情報を解釈して、ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する動作も含む（動作２２０）。例えば、宣言型インタプリタ１２０は、データモデル１１０に含まれるユーザ構成可能構築情報１１３を解釈して、ソフトウェアアプリケーション１２７の少なくとも一部を構築することができる。上述のように、いくつかの場合において、アプリケーション構築モジュール１２５は、データモデル１１０からのユーザ構成可能構築情報１１３に基づいてデータフローグラフ（例えば、ランタイムオブジェクトグラフ１２６）を構築することができる。さらに、ビュージェネレータ１３０が、データフローグラフに基づいて１つまたは複数のビュー（例えば、ソフトウェアアプリケーションビュー１３１）を生成することができる。このようなビューは、宣言型インタプリタによるデータモデル１１０の解釈結果に基づいて生成されるときに、データモデルに含まれるデータに結び付けられうる。さらに、ビュー１２１および／またはアプリケーション１２７は、該ビュー／アプリケーションの構築前にユーザ１０５によって入力される任意のヒント、構造マッピング、または他の構築情報入力１０７によって変更されうる。
【００２８】
方法２００は、データモデルに含まれる構築情報の解釈結果に基づいてソフトウェアアプリケーションの少なくとも一部を構築する動作を含む（動作２３０）。例えば、アプリケーション構築モジュール１２５は、データモデル１１０に含まれるユーザ構成可能構築情報１１３の宣言型インタプリタによる解釈結果に基づいて、ソフトウェアアプリケーション１２７の少なくとも一部を構築することができる。すでに示されているように、宣言型インタプリタ１２０は、データモデルになされる１つまたは複数の変更を指示するユーザ入力を受け取ることができる。いくつかの実施形態では、これらの変更（例えば、データモデルエディット１０６）は、モデルに自動的に適用され、次いで、データモデルに基づくソフトウェアアプリケーションに伝送されうる。入力のこのような自動的適用は実行時（つまり、宣言型インタプリタ１２０による解釈またはアプリケーション構築モジュール１２５によるアプリケーション１２７Ａの生成時）に行うことができる。
【００２９】
いくつかの実施形態は、データモデル１１０に基づくソフトウェアアプリケーション１２７用のユーザインターフェースをさらに作成することを含むことができる。例えば、アプリケーション構築モジュール１２５は、データモデル１１０の宣言型インタプリタによる解釈結果に基づいて、ソフトウェアアプリケーション１２７用のユーザインターフェースを生成することができる。それに加えて、またはその代わりに、これもまたデータモデル１１０に基づいて、同じ方法でサービスを生成することができる。該サービスは、データモデル１１０の１つまたは複数の部分に基づくウェブサービス、情報検索サービス、または他の種類のサービスを含みうる。
【００３０】
図３は、ユーザによって入力された１つまたは複数のデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成するための方法３００のフローチャートを例示している。次に、環境１００のコンポーネントおよびデータを頻繁に参照しつつ、方法３００について説明する。
【００３１】
方法３００は、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示する構築情報を含むデータモデルにアクセスする動作を含みうる（動作３１０）。例えば、宣言型インタプリタ１２０は、データモデル１１０にアクセスすることができ、該データベースは、ソフトウェアアプリケーション１２７の少なくとも一部をどのように構築すべきかを指示するユーザ構成可能構築情報１１３を含む。いくつかの実施形態では、データモデルは、ビジネスルールまたはプロセスを記述することができる。例えば、ビジネスプロセスは、信用調査を実行する方法を記述することができる。ユーザ１０５は、信用調査の実行方法を変更したい場合があり、その際に、データモデルを変更するために使用されるデータモデルエディット１０６を入力することができる。次いで、宣言型インタプリタ１２０は、データモデル１１０の該インタプリタによる解釈を変更し、新しい解釈結果に基づいてアプリケーションを生成するアプリケーション構築モジュール１２５に、該解釈を送ることができる。いくつかの場合において、更新された解釈を実行中に使用して、更新されたアプリケーション１２７Ａを生成することができる。これは、宣言型インタプリタがモデルを再構築しなくてもデータモデルを解釈することができることによるものである。
【００３２】
方法３００は、データモデルに含まれる構築情報に基づいてランタイムオブジェクトグラフを構築する動作を含む（動作３２０）。例えば、アプリケーション構築モジュール１２５は、データモデル１１０に含まれるユーザ構成可能構築情報に基づいて、更新されたランタイムオブジェクトグラフ１２６Ａを構築することができる。ランタイムオブジェクトグラフ１２６Ａは、更新されたソフトウェアアプリケーション１２７Ａおよび／または更新されたソフトウェアアプリケーションビュー１３１Ａに対するベースとして使用されうる。
【００３３】
方法３００は、ランタイムオブジェクトグラフに基づいてソフトウェアアプリケーションのビューを提示する動作を含む（動作３３０）。例えば、ビュージェネレータ１３０は、ランタイムオブジェクトグラフ１２６に基づいて、ソフトウェアアプリケーションビュー１３１を提示することができる。ビュー１３１は、データモデル１１０および／またはランタイムオブジェクトグラフ１２６の一部のみのビューとしてもよい。あるいは、ビュー１３１は、データモデル１１０のそれぞれの態様のビューを提示することもできる。ソフトウェアアプリケーションビュー１３１は、データモデル１１０に含まれるいくつかの項目に対するクエリー（例えば、クエリー１１１）の結果とすることもできる。例えば、ユーザ１０５は、信用調査を実行するために必要な情報項目についてクエリーを実行することもできる。したがって、このようなシナリオでは、ビュージェネレータ１３０は、特にユーザのクエリーで識別される情報項目に対するビューを生成することができる。
【００３４】
方法３００は、データモデルに対し変更を実行するように構成されている１つまたは複数のエディットを含むユーザ入力を受け取る動作を含む（動作３４０）。例えば、入力受取モジュール１１５は、データモデル１１０に対し変更を実行するように構成されているデータモデルエディット１０６を受け取ることができる。データモデル１１０へのエディット（例えば、データモデルエディット１０６）は、データモデルに適用できる任意の種類の情報、構造、レイアウト、プレゼンテーション、ユーザインターフェース、または他の種類の変更を含みうる。
【００３５】
方法３００は、エディットで示されているようなユーザによって入力された変更をランタイムオブジェクトグラフが反映するように、エディットに基づいてランタイムオブジェクトグラフを自動的に再構成する動作を含む（動作３５０）。例えば、宣言的インタプリタ１２０は、データモデルエディット１０６で示されているようなユーザ１０５によって入力された変更を更新されたランタイムオブジェクトグラフ１２６Ａが反映するように、データモデルエディット１０６に基づいてランタイムオブジェクトグラフ１２６を自動的に再構成することができる。したがって、ユーザ１０５によって入力された任意のエディットは、更新されたランタイムオブジェクトグラフ１２６Ａに自動的に適用することができ、いくつかの実施形態において、該更新されたランタイムオブジェクトグラフ１２６Ａは、更新されたソフトウェアアプリケーション１２７Ａおよび／または更新されたソフトウェアアプリケーションビュー１３１Ａに対するベースとして使用される。そのため、エンドユーザの観点から、エンドユーザは変更をデータモデルに入力し、目的のアプリケーションに自動的に適用される変更を確認することができる。
【００３６】
いくつかの実施形態では、データモデルのオブジェクトを表示するデフォルトの方法が確立されうる。例えば、ユーザ１０５は、デフォルトのカラースキーム、レイアウトスキーム、データプレゼンテーションスキームを指定するなど、データモデルオブジェクトを表示するためのデフォルトの方法、またはデータモデルオブジェクトを表示するための他の方法を指定することができる。いくつかの場合において、デフォルトの表示方法は、異なるデータモデルオブジェクトのプロパティが表示されるプロパティセット表示であってよい。他の場合には、デフォルトの表示方法は、どの表示タイプがデータモデルに現在の形式で適しているかという判定に基づいて宣言型インタプリタ１２０によって決定されうる。
【００３７】
したがって、要約すると、ソフトウェアアプリケーションの少なくとも一部は、データモデル１１０などの１つまたは複数のデータモデルに基づいて構築されうる。さらに、ランタイムオブジェクトグラフは、ユーザ１０５などのユーザによって入力された１つまたは複数のデータモデルエディットに従って自動的に再構成されうる。
【００３８】
本発明は、本発明の精神または本質的特徴から逸脱することなく他の特定の形式で実現することができる。説明されている実施形態は、すべての点で、説明のみを目的としており、制限することを目的としていないと解釈すべきである。したがって、本発明の範囲は、上記の説明ではなく、添付の請求項により指示される。請求項の同等性の意味および範囲内にある変更はすべて、本発明の範囲に含まれるものとする。
【図１】
2011501327.tif 000003
【図２】
2011501327.tif 000004
【図３】
2011501327.tif 000005
【国際調査報告】
2011501327.tif 000006
2011501327.tif 000007