JP2011501327A - 宣言型モデルの解釈 - Google Patents

宣言型モデルの解釈 Download PDF

Info

Publication number
JP2011501327A
JP2011501327A JP2010531305A JP2010531305A JP2011501327A JP 2011501327 A JP2011501327 A JP 2011501327A JP 2010531305 A JP2010531305 A JP 2010531305A JP 2010531305 A JP2010531305 A JP 2010531305A JP 2011501327 A JP2011501327 A JP 2011501327A
Authority
JP
Japan
Prior art keywords
data model
software application
interpreter
declarative
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010531305A
Other languages
English (en)
Inventor
スコット ウィリアムズ アントニー
ジャヤデヴァン シッダールタ
ギッテルマン アリー
イー.エイトキン ウィリアム
ディー.ケント シモン
ネドコフ フリストフ ウラジミール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011501327A publication Critical patent/JP2011501327A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本明細書で説明されている実施形態は、データモデルに基づいてソフトウェアアプリケーションを構築すること、およびユーザによって入力されたデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成することを対象とする。一実施形態では、コンピュータシステムが、データモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法を実行する。このコンピュータシステムは、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示するユーザ構成可能構築情報を含むデータモデルにアクセスする。宣言型インタプリタは、データモデルに含まれる構築情報に基づいて、アプリケーションを構築するように構成されている。このコンピュータシステムは、データモデルに含まれる構築情報を解釈して、ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する。このコンピュータシステムはまた、データモデルに含まれる構築情報の解釈結果に基づいて、ソフトウェアアプリケーションの少なくとも一部を構築する。

Description

本発明は、宣言型モデルの解釈に関する。
コンピュータは、仕事で、家庭内で、またモバイル機器において高度に統合されている。コンピュータは、膨大な量の情報を迅速に、効率よく処理することができる。コンピュータシステム上で実行されるように設計されているソフトウェアアプリケーションを用いることで、ユーザは、ビジネスアプリケーション、学業、娯楽、その他を含む広範な機能を遂行することができる。ソフトウェアアプリケーションは、文書の草稿を作成するためのワードプロセッサアプリケーション、または電子メールの送信、受信、および整理を行うための電子メールプログラムなど、特定の作業を実行するように設計されていることが多い。
場合によっては、ソフトウェアアプリケーションを使用することで、データをモデルの形式で生成し、編集し、表示することもできる。例えば、モデルは、エンティティ、プロセス、システム、および他の情報を記述するためにビジネスおよび他のエンティティによって使用されうる。いくつかのモデルは、流れ図、プロセスフロー、フローチャート、プロセス図、および/または管理図と称されることもある。また、他のモデルは、リスト、表、円グラフ、またはデータを分類して表示する他の形式と称されることもある。場合によっては、システム内のリソース間の組織関係を示すためにモデルを使用することもできる。これらのモデルは、組織図と称されることが多い。より広い意味では、モデルは、異なるオブジェクト間の任意の種類の関係情報を示すために使用できる。
しかし、データモデルを解釈するように構成されているソフトウェアプログラムは、特定の種類のモデルを解釈することに限定されることが多くある。例えば、このようなソフトウェアプログラムは、特定の種類のデータモデル、またはデータモデルの特定のインスタンスを解釈できるようにハードコーディングされることが多い。しかし、データモデルが変わると、インタプリタはデータモデルの新しいインスタンスおよび異なるインスタンスを解釈することができなくなることが多い。例えば、ユーザは、アプリケーションのユーザインターフェースまたは他の機能などのモデルに基づきソフトウェアアプリケーションのさまざまな側面を変えるようにモデルを編集することができる。特定の変更を取り扱うように事前プログラムされた典型的なインタプリタでは、ユーザよって入力された変更を取り扱うことができない場合がある。そのため、それらの変更が実施されないか、またはインタプリタが、データモデルの新しいインスタンスの解釈に失敗することになる。したがって、データモデルを解釈するために使用されるコンピュータ実行ソフトウェアアプリケーションは、変更が適用された後、データモデルを解釈する能力が制限される可能性がある。
本明細書で説明されている実施形態は、データモデルに基づいてソフトウェアアプリケーションを構築すること、およびユーザによって入力されたデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成することを対象とする。一実施形態では、コンピュータシステムが、データモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法を実行する。このコンピュータシステムは、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示するユーザ構成可能構築情報を含むデータモデルにアクセスする。宣言型インタプリタは、データモデルに含まれるユーザ構成可能構築情報に基づいてアプリケーションを構築するように構成されている。このコンピュータシステムは、データモデルに含まれるユーザ構成可能構築情報を解釈して、ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する。このコンピュータシステムはまた、データモデルに含まれるユーザ構成可能構築情報の解釈結果に基づいてソフトウェアアプリケーションの少なくとも一部を構築する。
他の実施形態では、コンピュータシステムは、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示する構築情報を含むデータモデルにアクセスする。このコンピュータシステムは、データモデルに含まれる構築情報に基づいてランタイムオブジェクトグラフを構築する。このコンピュータシステムは、ランタイムオブジェクトグラフに基づいてソフトウェアアプリケーションのビューを提示する。このコンピュータシステムは、データモデルに対し変更を実行するように構成されている1つまたは複数のエディットを含むユーザ入力を受け取る。このコンピュータシステムはまた、エディットで示されているようなユーザによって入力された変更をランタイムオブジェクトグラフが反映するように、エディットに基づいてランタイムオブジェクトグラフを自動的に再構成する。
本概要は、以下の発明を実施するための形態でさらに説明されている選択した概念を簡略化した形式で紹介するために提供するものである。本概要は、特許請求の範囲に記載されている主題事項の重要な特徴または本質的な特徴を特定することを目的とするものでも、特許請求の範囲に記載されている主題事項の範囲の決定に際して、補助として使用することを目的とするものでもない。
本発明の実施形態の上記の利点および特徴ならびに他の利点および特徴をさらに明確にするために、付属の図面を参照することによって本発明の実施形態をさらに具体的に説明する。これらの図面は本発明の一般的な実施形態のみを示しており、したがって、これらの図面は本発明の範囲を制限するとみなすべきでないことを理解されたい。本発明は、付属の図面を使用することでさらに具体的に、また詳細に記述され、説明される。
データモデルに基づいてソフトウェアアプリケーションを構築すること、およびユーザによって入力されたデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成することを含む本発明の実施形態を動作させることが可能なコンピュータアーキテクチャを示す図である。 データモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための例示的な方法のフローチャートを示す図である。 ユーザによって入力されたデータモデルエディットに従って、ランタイムオブジェクトグラフを自動的に再構成するための例示的な方法のフローチャートを示す図である。
本明細書で説明されている実施形態は、データモデルに基づいてソフトウェアアプリケーションを構築すること、およびユーザによって入力されたデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成することを対象とする。一実施形態では、コンピュータシステムが、データモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法を実行する。このコンピュータシステムは、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示する構築情報を含むデータモデルにアクセスする。宣言型インタプリタは、データモデルに含まれる構築情報に基づいてアプリケーションを構築するように構成されている。このコンピュータシステムは、データモデルに含まれる構築情報を解釈して、ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する。このコンピュータシステムはまた、データモデルに含まれる構築情報の解釈結果に基づいてソフトウェアアプリケーションの少なくとも一部を構築する。
他の実施形態では、コンピュータシステムが、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示する構築情報を含むデータモデルにアクセスする。このコンピュータシステムは、データモデルに含まれる構築情報に基づいてランタイムオブジェクトグラフを構築する。このコンピュータシステムは、ランタイムオブジェクトグラフに基づいてソフトウェアアプリケーションのビューを提示する。このコンピュータシステムは、データモデルに対し変更を実行するように構成されている1つまたは複数のエディットを含むユーザ入力を受け取る。このコンピュータシステムはまた、エディットで示されているようなユーザによって入力された変更をランタイムオブジェクトグラフが反映するように、エディットに基づいてランタイムオブジェクトグラフを自動的に再構成する。
本発明の実施形態は、以下でさらに詳しく説明されるように、コンピュータハードウェアを含む専用もしくは汎用コンピュータを備えるか、または利用することができる。本発明の範囲内の実施形態は、コンピュータ実行可能命令および/またはデータ構造を伝送または格納するための物理的媒体および他のコンピュータ可読媒体も備える。このようなコンピュータ可読媒体は、汎用もしくは専用コンピュータシステムによってアクセスできる利用可能な任意の媒体とすることができる。コンピュータ実行可能命令を格納するコンピュータ可読媒体は、物理的記憶媒体である。コンピュータ実行可能命令を伝送するコンピュータ可読媒体は、伝送媒体である。したがって、例えば、本発明の実施形態は、少なくとも2つの明確に異なる種類のコンピュータ可読媒体、つまり物理的記憶媒体と伝送媒体とを含むが、これらに限定されない。
物理的記憶媒体としては、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、またはコンピュータ実行可能命令もしくはデータ構造の形の所望のプログラムコード手段を格納するために使用されうる、かつ汎用もしくは専用コンピュータによってアクセスされうる、他の媒体が挙げられる。
「ネットワーク」は、コンピュータシステムおよび/またはモジュールおよび/または他の電子デバイスの間で電子データのトランスポートを可能にする1つまたは複数のデータリンクとして定義される。ネットワークまたは他の通信接続(ハード配線、無線、またはハード配線もしくは無線の組合せによる)を介して情報がコンピュータに転送または供給される場合、コンピュータは、その接続を伝送媒体とみなす。伝送媒体としては、コンピュータ実行可能命令またはデータ構造の形の所望のプログラムコード手段を伝送またはトランスポートするために使用されうる、かつ汎用もしくは専用コンピュータによってアクセスされうる、ネットワークおよび/またはデータリンクが挙げられる。上記の組合せも、コンピュータ可読媒体の範囲に含まれるものとする。
ただし、コンピュータ実行可能命令またはデータ構造の形のプログラムコード手段は、さまざまなコンピュータシステムコンポーネントに届いた後、伝送媒体から物理的記憶媒体に自動的に転送されうることは理解されるであろう。例えば、ネットワークまたはデータリンクを介して受信されたコンピュータ実行可能命令またはデータ構造は、ネットワークインターフェースカード内のRAMにバッファリングされ、次いで、コンピュータシステムRAMおよび/またはコンピュータシステムのより揮発性が低い物理的記憶媒体に最終的に転送されうる。したがって、物理的記憶媒体を、伝送媒体も使用するコンピュータシステムコンポーネント内に(または伝送媒体を主として使用するコンピュータシステムコンポーネント内にさえ)備えることができることは理解されるであろう。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに特定の1つの機能または機能群を実行させる命令およびデータを含む。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間形式命令、さらにはソースコードでもあってもよい。本発明の主題事項を構造的特徴および/または方法論的動作に固有の言語で説明したが、添付の特許請求の範囲で定義される本発明の主題事項は、必ずしも説明した特定の特徴または動作に必ずしも限定されないことを理解されたい。寧ろ、説明されている特徴および動作は、本発明を実装する例示的な形態として開示されている。
当業者であれば、本発明は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、ポケベル、ルータ、交換機、および同様の機器を含む、多くの種類のコンピュータシステム構成を用いてネットワークコンピューティング環境内で実施されうることを理解するであろう。本発明は、ネットワークを通じて(ハード配線されたデータリンク、無線データリンクによって、またはハード配線されたデータリンクと無線データリンクとの組合せによって)リンクされているローカルのコンピュータシステムとリモートのコンピュータシステムの両方がタスクを実行する、分散システム環境内で実施することもできる。分散システム環境において、プログラムモジュールを、ローカルおよびリモートのメモリ記憶デバイス内に配置することができる。
図1は、本発明の原理が使用されうるコンピュータアーキテクチャ100を例示している。コンピュータアーキテクチャ100は、コンピュータシステム101を含む。いくつかの実施形態では、コンピュータシステム101は、クエリー111、ビュー112、およびユーザ構成可能構築情報113を有するデータモデルを備えることができる。データモデル110は、流れ図、プロセスフロー、フローチャート、プロセス図、および/または管理図を含む任意の種類のデータモデルであってもかまわない。それに加えて、またはその代わりに、データモデル110は、テンプレート、スキーマ、および/またはドメイン固有言語(DSL)コード部分を含むこともできる。クエリー111は、文字列、検索、データ項目要求、または他の種類のクエリーを含む任意の種類のデータクエリーを指すものとしてよい。クエリー111は、クエリー111が一部となっているデータモデルに直接関係する(例えば、クエリー111はデータモデル110の一部である)か、またはその代わりに、クエリーは、他のデータモデル、および他のコンピュータシステムにさえ関係するものとしてよい。
ビュー112は、モデルに基づく任意の種類の表示またはビューを指すものとしてよい。いくつかの実施形態では、ビュー112は、データモデル110に含まれるデータに直接関係するか、または該データから生成されうる。それに加えて、またはその代わりに、ビュー112は、他のモデルに含まれるデータから、またはユーザ構成可能構築情報113から生成されうる。構築情報113は、データモデルに基づいてソフトウェアアプリケーションを構築する方法を記述する、任意の種類の情報または命令とすることができる。例えば、データモデル110に含まれるユーザ構成可能構築情報113に基づいて、アプリケーション構築モジュール125によってソフトウェアアプリケーション127のすべてまたは一部を生成することができる。いくつかの実施形態では、ユーザ構成可能構築情報は、ユーザ105から受け取ることができる。この入力された構築情報107は、入力受取モジュール115によって受け取られ、データモデルエディット106の一部になるものとしてよい。
ソフトウェアアプリケーション127A、ランタイムオブジェクトグラフ126A、およびソフトウェアアプリケーションビュー131Aは、元のオブジェクトの変更または更新バージョンのオブジェクトを指すものとしてよい。例えば、宣言型インタプリタ120は、ランタイムオブジェクトグラフ126および/またはソフトウェアアプリケーション127を更新するためにインタプリタ側で使用できるデータモデルエディットをユーザ105から受け取ることができ、その結果それぞれオブジェクト126Aおよび127Aが得られる。同様に、ビュージェネレータ130は、ランタイムオブジェクトグラフ126が更新されたと判定し、更新されたグラフに基づいて、更新ソフトウェアアプリケーションビュー131Aを生成することができる。従って、本明細書で使用されているように、126、127、および/または131への参照は、一般的には既存のオブジェクトを指し、126A、127A、および131Aは、一般的には、更新または編集されたオブジェクトを指す。
入力受取モジュール115は、データモデルエディット106などの他の形態のユーザ入力を受け取るように構成されうる。入力受取モジュール115は、受け取った入力を、少なくとも一時的に、格納するように構成することもできる。したがって、入力受取モジュール115から送られてきた構築情報入力107およびデータモデルエディット106は、入力として受け取ったもの(例えば、106および107)と異なる場合がある。例えば、入力受取モジュール115は、より最近に受け取った入力を格納し、以前受け取った入力を送ることができる。他の場合には、入力受取モジュール115は、単純に、入力を受け取り、該入力をデータモデル110および宣言型インタプリタ120のいずれか、または両方に直接受け渡すことができる。
宣言型インタプリタ120は、データモデル、クエリー、ビュー、構築情報、および/またはデータモデルエディットを解釈することができる任意のソフトウェアアプリケーション、ロジック、または他の処理手段とすることができる。いくつかの実施形態では、宣言型インタプリタ120は、データモデル110を宣言的に解釈し、該モデルに基づいてアプリケーションどのように構築すべきかを決定するように構成されうる。例えば、宣言型インタプリタ120は、DSLコード部分を解釈し、該DSLコード部分に基づいてランタイムオブジェクトグラフ(例えば、126)をどのように構築するかを決定することができる。宣言型インタプリタ120は、DSLコード部分に基づいてソフトウェアアプリケーション(またはその一部)をどのように生成するかを決定するようにさらに構成されうる。いくつかの場合において、宣言型インタプリタ120は、DSLをより汎用的な使用可能形式に変換するために使用されるであろう手続きコードを使わずに、このような決定を行う機能を持つこともある。
宣言的インタプリタ120はまた、アプリケーション構築モジュール125を備えることができる。アプリケーション構築モジュール125を用いて、データモデルの解釈結果に基づいてランタイムオブジェクトグラフ126および/またはソフトウェアアプリケーション127を構築することができる。ビュージェネレータ130は、ランタイムオブジェクトグラフ126に基づいてソフトウェアアプリケーションビュー131を生成するために使用されうる。例えば、ユーザ105は、データモデル110の全部または一部、および/またはデータモデルエディット106の形態でデータモデルになされた変更を表示したい場合がある。宣言型インタプリタは、データモデルを解釈し、アプリケーション構築モジュール125を使用して、エディット116データモデルエディット106で示されているように更新された変更を含むモデルのランタイムオブジェクトグラフ126を構築することができる。ランタイムオブジェクトグラフ126は、ビュージェネレータ130によって生成されるように、ソフトウェアアプリケーション127および/またはソフトウェアアプリケーションビュー131に対するベースとして使用されうる。
図2は、1つまたは複数のデータモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法200のフローチャートを例示している。ここで、環境100のコンポーネントおよびデータを頻繁に参照しつつ、方法200について説明する。
方法200は、データモデルにアクセスする動作を含み、データモデルは、ソフトウェアアプリケーションの少なくとも一部がどのように構築されるべきかを指示するユーザ構成可能構築情報を含み、宣言型インタプリタは、データモデルに含まれるユーザ構成可能構築情報に基づいてアプリケーションを構築するように構成される(動作210)。例えば、宣言型インタプリタ120はデータモデル110にアクセスすることができ、該データベースは、ソフトウェアアプリケーション127の少なくとも一部をどのように構築すべきかを指示するユーザ構成可能構築情報113を含む。宣言型インタプリタ120は、データモデル110に含まれるユーザ構成可能構築情報に基づいてソフトウェアアプリケーション127を構築するように構成することができる。いくつかの場合において、上で説明されているように、データモデル110は、特定のアプリケーション専用のドメイン固有言語(DSL)で書くことができる。宣言型インタプリタ120は、DSLモデルを変換するためのいずれの手続きコードも使用せずに、そのようなモデルを解釈するように構成されうる。いくつかの場合において、宣言型モデルインタプリタ120はそれ自体、XAF(XML Application Foundation)Application Definition(XAD)言語で書くことができる。XADは、この場合には宣言型インタプリタ120などのXAFアプリケーションをオーサリングするために使用される宣言型言語である。いくつかの場合において、宣言型インタプリタ120の一部がXADで書かれる場合、該部分は、データモデル110に含まれているユーザ構成可能構築情報113に基づいてクエリーおよびビューのグラフ(例えば、ランタイムオブジェクトグラフ126)を作成する方法を指示する宣言を含むことができる。
いくつかの実施形態では、宣言型インタプリタ120は、ヒントを解釈するように構成されうる。ヒントは、データモデル内に格納される、該モデルに基づくアプリケーションを構築する方法を示すか、または該方法に影響を及ぼす任意の種類の情報とすることができる。例えば、データモデル110は、データモデル110に基づくアプリケーション用のユーザインターフェースがどのように見えるべきかを指示するヒントを含むことができる。それに加えて、またはその代わりに、宣言型インタプリタ120は、構造マッピングを解釈するように構成されうる。そのような構造マッピングは、ヒントと同様に、該構造マッピングを含むデータモデルに基づくアプリケーション内の特定の構造アイテムに影響を及ぼしうる。
いくつかの場合において、ユーザは、ソフトウェアアプリケーションがどのように構築されるべきかを指示する構築情報をデータモデル内に入力することができる。例えば、ユーザ105は、入力受取モジュール115によって受け取られ、データモデル110に受け渡される構築情報入力107を入力することができる。構築情報入力107は、ユーザ105によって生成されるか、または該ユーザに提示されるいくつかのオプションの群から選択されうる。構築情報入力107は、データモデル110に含まれるユーザ構成可能構築情報113を上書きするか、または補足するために使用できる。いくつかの場合において、ソフトウェアアプリケーション127は、複数のデータモデルに基づくものとすることもできる。このような場合、データモデルは、追加のデータモデルが格納されているリポジトリからアクセスされうる。
方法200は、データモデルに含まれる構築情報を解釈して、ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する動作も含む(動作220)。例えば、宣言型インタプリタ120は、データモデル110に含まれるユーザ構成可能構築情報113を解釈して、ソフトウェアアプリケーション127の少なくとも一部を構築することができる。上述のように、いくつかの場合において、アプリケーション構築モジュール125は、データモデル110からのユーザ構成可能構築情報113に基づいてデータフローグラフ(例えば、ランタイムオブジェクトグラフ126)を構築することができる。さらに、ビュージェネレータ130が、データフローグラフに基づいて1つまたは複数のビュー(例えば、ソフトウェアアプリケーションビュー131)を生成することができる。このようなビューは、宣言型インタプリタによるデータモデル110の解釈結果に基づいて生成されるときに、データモデルに含まれるデータに結び付けられうる。さらに、ビュー121および/またはアプリケーション127は、該ビュー/アプリケーションの構築前にユーザ105によって入力される任意のヒント、構造マッピング、または他の構築情報入力107によって変更されうる。
方法200は、データモデルに含まれる構築情報の解釈結果に基づいてソフトウェアアプリケーションの少なくとも一部を構築する動作を含む(動作230)。例えば、アプリケーション構築モジュール125は、データモデル110に含まれるユーザ構成可能構築情報113の宣言型インタプリタによる解釈結果に基づいて、ソフトウェアアプリケーション127の少なくとも一部を構築することができる。すでに示されているように、宣言型インタプリタ120は、データモデルになされる1つまたは複数の変更を指示するユーザ入力を受け取ることができる。いくつかの実施形態では、これらの変更(例えば、データモデルエディット106)は、モデルに自動的に適用され、次いで、データモデルに基づくソフトウェアアプリケーションに伝送されうる。入力のこのような自動的適用は実行時(つまり、宣言型インタプリタ120による解釈またはアプリケーション構築モジュール125によるアプリケーション127Aの生成時)に行うことができる。
いくつかの実施形態は、データモデル110に基づくソフトウェアアプリケーション127用のユーザインターフェースをさらに作成することを含むことができる。例えば、アプリケーション構築モジュール125は、データモデル110の宣言型インタプリタによる解釈結果に基づいて、ソフトウェアアプリケーション127用のユーザインターフェースを生成することができる。それに加えて、またはその代わりに、これもまたデータモデル110に基づいて、同じ方法でサービスを生成することができる。該サービスは、データモデル110の1つまたは複数の部分に基づくウェブサービス、情報検索サービス、または他の種類のサービスを含みうる。
図3は、ユーザによって入力された1つまたは複数のデータモデルエディットに従ってランタイムオブジェクトグラフを自動的に再構成するための方法300のフローチャートを例示している。次に、環境100のコンポーネントおよびデータを頻繁に参照しつつ、方法300について説明する。
方法300は、ソフトウェアアプリケーションの少なくとも一部をどのように構築すべきかを指示する構築情報を含むデータモデルにアクセスする動作を含みうる(動作310)。例えば、宣言型インタプリタ120は、データモデル110にアクセスすることができ、該データベースは、ソフトウェアアプリケーション127の少なくとも一部をどのように構築すべきかを指示するユーザ構成可能構築情報113を含む。いくつかの実施形態では、データモデルは、ビジネスルールまたはプロセスを記述することができる。例えば、ビジネスプロセスは、信用調査を実行する方法を記述することができる。ユーザ105は、信用調査の実行方法を変更したい場合があり、その際に、データモデルを変更するために使用されるデータモデルエディット106を入力することができる。次いで、宣言型インタプリタ120は、データモデル110の該インタプリタによる解釈を変更し、新しい解釈結果に基づいてアプリケーションを生成するアプリケーション構築モジュール125に、該解釈を送ることができる。いくつかの場合において、更新された解釈を実行中に使用して、更新されたアプリケーション127Aを生成することができる。これは、宣言型インタプリタがモデルを再構築しなくてもデータモデルを解釈することができることによるものである。
方法300は、データモデルに含まれる構築情報に基づいてランタイムオブジェクトグラフを構築する動作を含む(動作320)。例えば、アプリケーション構築モジュール125は、データモデル110に含まれるユーザ構成可能構築情報に基づいて、更新されたランタイムオブジェクトグラフ126Aを構築することができる。ランタイムオブジェクトグラフ126Aは、更新されたソフトウェアアプリケーション127Aおよび/または更新されたソフトウェアアプリケーションビュー131Aに対するベースとして使用されうる。
方法300は、ランタイムオブジェクトグラフに基づいてソフトウェアアプリケーションのビューを提示する動作を含む(動作330)。例えば、ビュージェネレータ130は、ランタイムオブジェクトグラフ126に基づいて、ソフトウェアアプリケーションビュー131を提示することができる。ビュー131は、データモデル110および/またはランタイムオブジェクトグラフ126の一部のみのビューとしてもよい。あるいは、ビュー131は、データモデル110のそれぞれの態様のビューを提示することもできる。ソフトウェアアプリケーションビュー131は、データモデル110に含まれるいくつかの項目に対するクエリー(例えば、クエリー111)の結果とすることもできる。例えば、ユーザ105は、信用調査を実行するために必要な情報項目についてクエリーを実行することもできる。したがって、このようなシナリオでは、ビュージェネレータ130は、特にユーザのクエリーで識別される情報項目に対するビューを生成することができる。
方法300は、データモデルに対し変更を実行するように構成されている1つまたは複数のエディットを含むユーザ入力を受け取る動作を含む(動作340)。例えば、入力受取モジュール115は、データモデル110に対し変更を実行するように構成されているデータモデルエディット106を受け取ることができる。データモデル110へのエディット(例えば、データモデルエディット106)は、データモデルに適用できる任意の種類の情報、構造、レイアウト、プレゼンテーション、ユーザインターフェース、または他の種類の変更を含みうる。
方法300は、エディットで示されているようなユーザによって入力された変更をランタイムオブジェクトグラフが反映するように、エディットに基づいてランタイムオブジェクトグラフを自動的に再構成する動作を含む(動作350)。例えば、宣言的インタプリタ120は、データモデルエディット106で示されているようなユーザ105によって入力された変更を更新されたランタイムオブジェクトグラフ126Aが反映するように、データモデルエディット106に基づいてランタイムオブジェクトグラフ126を自動的に再構成することができる。したがって、ユーザ105によって入力された任意のエディットは、更新されたランタイムオブジェクトグラフ126Aに自動的に適用することができ、いくつかの実施形態において、該更新されたランタイムオブジェクトグラフ126Aは、更新されたソフトウェアアプリケーション127Aおよび/または更新されたソフトウェアアプリケーションビュー131Aに対するベースとして使用される。そのため、エンドユーザの観点から、エンドユーザは変更をデータモデルに入力し、目的のアプリケーションに自動的に適用される変更を確認することができる。
いくつかの実施形態では、データモデルのオブジェクトを表示するデフォルトの方法が確立されうる。例えば、ユーザ105は、デフォルトのカラースキーム、レイアウトスキーム、データプレゼンテーションスキームを指定するなど、データモデルオブジェクトを表示するためのデフォルトの方法、またはデータモデルオブジェクトを表示するための他の方法を指定することができる。いくつかの場合において、デフォルトの表示方法は、異なるデータモデルオブジェクトのプロパティが表示されるプロパティセット表示であってよい。他の場合には、デフォルトの表示方法は、どの表示タイプがデータモデルに現在の形式で適しているかという判定に基づいて宣言型インタプリタ120によって決定されうる。
したがって、要約すると、ソフトウェアアプリケーションの少なくとも一部は、データモデル110などの1つまたは複数のデータモデルに基づいて構築されうる。さらに、ランタイムオブジェクトグラフは、ユーザ105などのユーザによって入力された1つまたは複数のデータモデルエディットに従って自動的に再構成されうる。
本発明は、本発明の精神または本質的特徴から逸脱することなく他の特定の形式で実現することができる。説明されている実施形態は、すべての点で、説明のみを目的としており、制限することを目的としていないと解釈すべきである。したがって、本発明の範囲は、上記の説明ではなく、添付の請求項により指示される。請求項の同等性の意味および範囲内にある変更はすべて、本発明の範囲に含まれるものとする。

Claims (15)

  1. 1つまたは複数のデータモデル(110)からソフトウェアアプリケーション(127/127A)を構築するように構成されている宣言型インタプリタ(120)を備えるコンピューティングシステム(101)において、1つまたは複数のデータモデルに基づいてソフトウェアアプリケーションの少なくとも一部を構築するための方法であって、
    前記宣言型インタプリタ(120)が、ソフトウェアアプリケーションの少なくとも一部がどのように構築されるべきかを指示するユーザ構成可能構築情報(113)を含むデータモデル(110)にアクセスする動作であって、前記宣言型インタプリタは、前記データモデルに含まれる前記ユーザ構成可能構築情報に基づいてアプリケーションを構築するように構成されている、動作と、
    前記宣言型インタプリタ(120)が、前記データモデルに含まれる前記ユーザ構成可能構築情報(113)を解釈して、前記ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する動作と、
    前記宣言型インタプリタ(120)が、前記データモデル(110)に含まれる前記ユーザ構成可能構築情報(113)の解釈結果に基づいて、前記ソフトウェアアプリケーション(127A)の少なくとも一部を構築する動作と
    を含むことを特徴とする方法。
  2. ユーザは、前記ソフトウェアアプリケーションがどのように構築されるべきかを指示するユーザ構成可能構築情報を前記データモデル内に入力することを特徴とする請求項1に記載の方法。
  3. 前記データモデルになされるべき1つまたは複数の変更を指示するユーザ入力を受け取る動作と、
    前記モデルになされる前記1つまたは複数の変更を、前記データモデルに基づく前記ソフトウェアアプリケーションに自動的に適用する動作と
    をさらに含むことを特徴とする請求項1に記載の方法。
  4. 前記モデルは、実行時に修正されることを特徴とする請求項3に記載の方法。
  5. 前記宣言型インタプリタの少なくとも一部は、XADで書かれていることを特徴とする請求項1に記載の方法。
  6. XADで書かれた前記宣言型インタプリタの一部は、前記データモデルに含まれる前記ユーザ構成可能構築情報に基づいてクエリーおよびビューのグラフを作成する方法を指示する宣言を含むことを特徴とする請求項5に記載の方法。
  7. 前記宣言型インタプリタが、前記データモデルに含まれる前記ユーザ構成可能構築情報を解釈する前記動作は、
    前記データモデルからデータフローグラフを構築する動作と、
    前記データフローグラフに基づいて1つまたは複数のビューを作成する動作と、
    前記ビューを前記データモデルに含まれる前記データに結び付ける動作と
    を含むことを特徴とする請求項1に記載の方法。
  8. 前記宣言型インタプリタは、構造マッピングを解釈するようにさらに構成されることを特徴とする請求項1に記載の方法。
  9. 前記データモデルに基づいて前記ソフトウェアアプリケーション用のユーザインターフェースを作成する動作をさらに含むことを特徴とする請求項1に記載の方法。
  10. 前記データモデルに基づいて前記ソフトウェアアプリケーション用のサービスを作成する動作をさらに含むことを特徴とする請求項1に記載の方法。
  11. 前記データモデルは、特定のアプリケーション専用のドメイン固有言語(DSL)で書かれることを特徴とする請求項1に記載の方法。
  12. コンピューティングシステムにおいて、ユーザ(105)によって入力された1つまたは複数のデータモデルエディット(106)に従ってランタイムオブジェクトグラフ(126/126A)を自動的に再構成するための方法であって、
    ソフトウェアアプリケーション(127/127A)の少なくとも一部をどのように構築すべきかを指示する構築情報(113)を含むデータモデル(110)にアクセスする動作と、
    前記データモデル(110)に含まれる前記構築情報(113)に基づいて、ランタイムオブジェクトグラフ(126/126A)を構築する動作と、
    前記ランタイムオブジェクトグラフに基づいて、前記ソフトウェアアプリケーション(131/131A)のビューを提示する動作と、
    前記データモデルに対し変更を実行するように構成されている1つまたは複数のエディットを含むユーザ入力(106)を受け取る動作と、
    前記エディットで示されているような前記ユーザによって入力された前記変更を前記ランタイムオブジェクトグラフが反映するように、前記エディットに基づいて前記ランタイムオブジェクトグラフを自動的に再構成する動作と
    を含むことを特徴とする方法。
  13. 前記再構成されたランタイムオブジェクトグラフに基づいて、前記ソフトウェアアプリケーションのビューを提示することをさらに含むことを特徴とする請求項12に記載の方法。
  14. 前記データモデルのオブジェクトを表示するためのデフォルトの方法を確立することをさらに含むことを特徴とする請求項13に記載の方法。
  15. 1つまたは複数のデータモデル(110)に基づいてソフトウェアアプリケーション(127/127A)の少なくとも一部を構築するための方法を実施するコンピュータプログラム製品であって、前記コンピューティングシステムの1つまたは複数のプロセッサによって実行されたときに前記コンピューティングシステムに前記方法を実行させるコンピュータ実行可能命令を有する1つまたは複数のコンピュータ可読媒体を備える、コンピュータプログラム製品において、前記方法は、
    前記宣言型インタプリタ(120)が、ソフトウェアアプリケーションの少なくとも一部がどのように構築されるべきかを指示するユーザ構成可能構築情報(113)を含むデータモデル(110)にアクセスする動作であって、前記宣言型インタプリタ(120)は、前記データモデルに含まれる前記ユーザ構成可能構築情報に基づいてアプリケーションを構築するように構成されている、動作と、
    前記宣言型インタプリタ(120)が、前記データモデルに含まれる前記ユーザ構成可能構築情報(113)を解釈して、前記ソフトウェアアプリケーションの少なくとも一部を構築する方法を決定する動作と、
    前記宣言型インタプリタ(120)が、前記データモデル(110)に含まれる前記ユーザ構成可能構築情報(113)の解釈結果に基づいて、前記ソフトウェアアプリケーション(127A)の少なくとも一部を構築する動作と
    を含むことを特徴とするコンピュータプログラム製品。
JP2010531305A 2007-10-26 2008-10-26 宣言型モデルの解釈 Pending JP2011501327A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/925,741 US20090112570A1 (en) 2007-10-26 2007-10-26 Declarative model interpretation
PCT/US2008/081239 WO2009055759A2 (en) 2007-10-26 2008-10-26 Declarative model interpretation

Publications (1)

Publication Number Publication Date
JP2011501327A true JP2011501327A (ja) 2011-01-06

Family

ID=40580434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010531305A Pending JP2011501327A (ja) 2007-10-26 2008-10-26 宣言型モデルの解釈

Country Status (5)

Country Link
US (1) US20090112570A1 (ja)
EP (1) EP2203813A2 (ja)
JP (1) JP2011501327A (ja)
BR (1) BRPI0817256A2 (ja)
WO (1) WO2009055759A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014153783A (ja) * 2013-02-05 2014-08-25 Fuji Electric Co Ltd オブジェクト指向プログラム生成装置、オブジェクト指向プログラム生成方法およびオブジェクト指向プログラム生成用プログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110035732A1 (en) * 2009-08-06 2011-02-10 Wynne Crisman Method and apparatus for defining and compiling or converting language and user interface system agnostic view definitions to runnable code
US8756515B2 (en) * 2009-11-16 2014-06-17 Microsoft Corporation Dynamic editors for functionally composed UI
CN105320504B (zh) * 2014-06-25 2018-08-17 成都普中软件有限公司 一种基于软件元视图构造软件视图的可视软件建模方法
US10185549B2 (en) * 2016-06-28 2019-01-22 Microsoft Technology Licensing, Llc Updating live system with static changes

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296360A (ja) * 1998-04-13 1999-10-29 Nec Corp データ変換装置およびデータ変換装置のデータ変換方法
JP2004227319A (ja) * 2003-01-23 2004-08-12 Nec Corp ソフトウェアコード生成装置、ソフトウェアコード生成方法および記録媒体並びにプログラム
JP2004310279A (ja) * 2003-04-03 2004-11-04 Sumisho Computer Systems Corp 業務処理システムおよびその構築支援装置、業務処理システム用プログラム、業務処理システムの構築支援用プログラム
US20050273763A1 (en) * 2004-06-03 2005-12-08 Microsoft Corporation Method and apparatus for mapping a data model to a user interface model
JP2006004345A (ja) * 2004-06-21 2006-01-05 Sanyo Electric Co Ltd データフローグラフ処理方法、リコンフィギュラブル回路および処理装置
US20060048117A1 (en) * 2004-08-30 2006-03-02 International Business Machines Corporation Method and apparatus for optimizing software program using inter-procedural strength reduction
WO2006118823A2 (en) * 2005-04-29 2006-11-09 Microsoft Corporation Xml application framework
JP2007241435A (ja) * 2006-03-06 2007-09-20 Mitsubishi Electric Corp モデル生成装置及びモデル生成用プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330008B1 (en) * 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US7207038B2 (en) * 2003-08-29 2007-04-17 Nokia Corporation Constructing control flows graphs of binary executable programs at post-link time
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US7941794B2 (en) * 2004-08-30 2011-05-10 Sanyo Electric Co., Ltd. Data flow graph processing method and processing apparatus provided with reconfigurable circuit
US7561673B2 (en) * 2004-09-30 2009-07-14 Microsoft Corporation Integration of speech services with telecommunications
US20070043803A1 (en) * 2005-07-29 2007-02-22 Microsoft Corporation Automatic specification of semantic services in response to declarative queries of sensor networks
US8127269B2 (en) * 2005-08-04 2012-02-28 International Business Machines Corporation Transforming a flow graph model to a structured flow language model
US7774769B2 (en) * 2005-09-22 2010-08-10 Intel Corporation Transmitting trace-specific information in a transformed application
US8407610B2 (en) * 2005-09-30 2013-03-26 Sap Portals Israel Ltd. Executable and declarative specification for graphical user interfaces
US8166467B2 (en) * 2006-01-11 2012-04-24 Ecole Polytechnique Federale De Lausanne Automatic identification of application-specific functional units with architecturally visible storage
US8046751B1 (en) * 2007-01-11 2011-10-25 The Mathworks, Inc. Structuring unstructured regions in a control flow graph
US8359583B2 (en) * 2007-08-22 2013-01-22 Coverity, Inc. Methods for selectively pruning false paths in graphs that use high-precision state information

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296360A (ja) * 1998-04-13 1999-10-29 Nec Corp データ変換装置およびデータ変換装置のデータ変換方法
JP2004227319A (ja) * 2003-01-23 2004-08-12 Nec Corp ソフトウェアコード生成装置、ソフトウェアコード生成方法および記録媒体並びにプログラム
JP2004310279A (ja) * 2003-04-03 2004-11-04 Sumisho Computer Systems Corp 業務処理システムおよびその構築支援装置、業務処理システム用プログラム、業務処理システムの構築支援用プログラム
US20050273763A1 (en) * 2004-06-03 2005-12-08 Microsoft Corporation Method and apparatus for mapping a data model to a user interface model
JP2006004345A (ja) * 2004-06-21 2006-01-05 Sanyo Electric Co Ltd データフローグラフ処理方法、リコンフィギュラブル回路および処理装置
US20060048117A1 (en) * 2004-08-30 2006-03-02 International Business Machines Corporation Method and apparatus for optimizing software program using inter-procedural strength reduction
WO2006118823A2 (en) * 2005-04-29 2006-11-09 Microsoft Corporation Xml application framework
JP2007241435A (ja) * 2006-03-06 2007-09-20 Mitsubishi Electric Corp モデル生成装置及びモデル生成用プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014153783A (ja) * 2013-02-05 2014-08-25 Fuji Electric Co Ltd オブジェクト指向プログラム生成装置、オブジェクト指向プログラム生成方法およびオブジェクト指向プログラム生成用プログラム

Also Published As

Publication number Publication date
BRPI0817256A2 (pt) 2015-06-16
WO2009055759A2 (en) 2009-04-30
WO2009055759A3 (en) 2009-07-02
US20090112570A1 (en) 2009-04-30
EP2203813A2 (en) 2010-07-07

Similar Documents

Publication Publication Date Title
US8751558B2 (en) Mashup infrastructure with learning mechanism
US9952899B2 (en) Automatically generating execution sequences for workflows
US8555249B2 (en) Lifecycle stable user interface adaptations
RU2419837C2 (ru) Рабочие потоки, ориентированные на данные
US8180750B2 (en) Support model integration system and method
US20070220035A1 (en) Generating user interface using metadata
US20150095365A1 (en) Query building using schema
US20110010613A1 (en) System and method for building mixed mode execution environment for component applications
US20080010082A1 (en) System and method for business process management
US20080250316A1 (en) Mechanism to improve a user's interaction with a computer system
Fill SeMFIS: a flexible engineering platform for semantic annotations of conceptual models
US8826248B2 (en) Enabling computational process as a dynamic data source for bi reporting systems
US11677807B2 (en) System and method to standardize and improve implementation efficiency of user interface content
JP5002729B2 (ja) データビューア管理
US10313421B2 (en) Providing Odata service based on service operation execution flow
Malizia et al. Generating collaborative systems for digital libraries: A model-driven approach
JP2011501327A (ja) 宣言型モデルの解釈
Barzdins et al. Domain specific languages for business process management: a case study
Liu et al. Engineering information service infrastructure for ubiquitous computing
KR101902191B1 (ko) 질의 기반 소프트웨어 논리의 동적 변경 및 실행을 위한 멀티테넌트 지원 장치 및 방법
US10331781B2 (en) Template compilation using view transforms
US10192202B2 (en) Mapping for collaborative contribution
WO2016000564A1 (zh) 投影工作空间的方法以及应用该投影工作空间的方法的***
US7660789B2 (en) Entity agent
Vos et al. Connecting to Enterprise Services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121219

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130614