(57)【特許請求の範囲】
【請求項１】
データモデルを表すためのモデル駆動型フォームユーザインターフェイスを生成する、プロセッサにより実行される方法であって、
プロセッサを用いて、前記データモデルを表すための前記フォームユーザインターフェイスの生成に異なる複数の論理フォームタイプのうちのどれを使用するかを選択するステップと、
プロセッサを用いて、前記データモデルおよび前記選択された論理フォームタイプを使用してフォームを生成するステップと
を備え、
前記異なる複数の各論理フォームタイプは、前記データモデルからのデータを前記生成されたフォームに含まれるように定義する関連のスキーマを有し、前記フォームを生成するステップは、前記関連のスキーマを使用して前記フォームを生成するステップをさらに含み、
前記異なる複数の各論理フォームタイプの前記スキーマは、複数のフォームから取り込まれたパターンを表し、
前記異なる複数の各論理フォームタイプは少なくとも１つの定義済みレイアウトを有し、前記方法は、前記少なくとも１つの定義済みレイアウトを使用して物理フォームを生成するステップをさらに備えることを特徴とする方法。
【請求項２】
前記データモデルはビジネスモデルであることを特徴とする請求項１に記載の方法。
【請求項３】
前記データモデルおよび前記選択された論理フォームタイプを使用して前記フォームを生成するステップは、設計時に前記フォームを生成し変更するステップ、および前記生成されたフォームを実行時に前記データモデルからのデータで満たすステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記データモデルおよび前記選択された論理フォームタイプを使用して前記フォームを生成するステップは、前記データモデルおよび前記選択された論理フォームタイプを使用して論理フォームを生成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記生成された論理フォームを使用して前記フォームユーザインターフェイスをレンダリングするステップをさらに備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記フォームユーザインターフェイスをレンダリングするステップは、前記データモデルが実行時に作用を受けるように、前記生成された論理フォームを使用して物理フォームを実行時にレンダリングするステップをさらに含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記フォームユーザインターフェイスの生成に前記異なる複数の論理フォームタイプのうちのどれを使用するかを選択するステップは、前記フォームユーザインターフェイスの生成に異なる複数の論理フォームタイプモデルのうちのどれを使用するかを選択するステップをさらに含み、前記データモデルおよび前記選択された論理フォームタイプを使用して前記フォームを生成するステップは、前記選択された論理フォームタイプモデルおよび前記データモデルからのメタデータを使用して前記フォームを生成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記方法は、前記データモデルを表すための異なる複数のモデル駆動型フォームユーザインターフェイスを生成し、
前記データモデルを表すための前記異なる複数のフォームユーザインターフェイスの生成に使用するように前記異なる複数の論理フォームタイプのうちの複数のものを選択するステップと、
異なる複数のフォームを生成するステップであって、前記異なる複数の各フォームが、前記データモデル、および前記異なる複数の論理フォームタイプのうちの前記選択された複数のもののうちの異なる１つのものを使用して生成されるステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項９】
前記データモデルが実行時に作用を受けるように、前記生成された複数のフォームのうちの対応するものを使用して、前記異なる複数のフォームユーザインターフェイスを実行時にレンダリングするステップをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記データモデルを１回だけ変更することによって、前記異なる複数のフォームユーザインターフェイスのそれぞれを変更するステップをさらに備えることを特徴とする請求項９に記載の方法。
【請求項１１】
前記方法は、複数のデータモデルを表すための異なる複数のモデル駆動型フォームユーザインターフェイスを生成し、
前記複数のデータモデルを表すための前記異なる複数のフォームユーザインターフェイスの生成に前記異なる複数の論理フォームタイプのうちのどれを使用するかを選択するステップと、
異なる複数のフォームを生成するステップであって、前記異なる複数の各フォームを、前記複数のデータモデルおよび前記選択された論理フォームタイプのうちの一方を使用して生成するステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項１２】
前記複数のデータモデルが実行時に作用を受けるように、前記生成された複数のフォームを使用して、前記異なる複数のフォームユーザインターフェイスを実行時にレンダリングするステップをさらに備えることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記選択された論理フォームタイプを１回だけ変更することによって、前記異なる複数のフォームユーザインターフェイスのそれぞれを変更するステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
プロセッサを用いて、データモデルを表すためのフォームユーザインターフェイスの生成に異なる複数の論理フォームタイプのうちのどれを使用するかを選択するための選択入力を受信するステップと、
プロセッサを用いて、前記データモデルおよび前記選択された論理フォームタイプを使用して実行時に論理フォームを生成するステップと
を備え、
前記複数の異なる各論理フォームタイプは、前記データモデルからのデータを前記生成された論理フォームに含まれるように定義する関連のスキーマを有し、前記論理フォームを実行時に生成するステップは、前記関連のスキーマを使用して前記フォームを生成するステップをさらに含み、
前記異なる複数の各論理フォームタイプの前記スキーマは、複数のフォームから取り込まれたパターンを表し、
前記複数の各論理フォームタイプは少なくとも１つの定義済みレイアウトを有し、前記少なくとも１つの定義済みレイアウトを使用して物理フォームを実行時に生成するステップをさらに備えるフォームユーザインターフェイス生成ステップをプロセッサに実行させるコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項１５】
前記データモデルはビジネスモデルであることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記データモデルが実行時に作用を受けるように、前記生成された論理フォームを使用して前記フォームユーザインターフェイスを実行時にレンダリングするステップをさらに実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１７】
前記フォームユーザインターフェイスの生成に前記異なる複数の論理フォームタイプのうちのどれを使用するかを選択するための前記選択入力を受信するステップは、前記ユーザインターフェイスの生成に異なる複数の論理フォームタイプモデルのうちのどれを使用するかを選択するための前記選択入力を受信するステップをさらに含み、前記論理フォームを実行時に生成するステップは、前記選択された論理フォームタイプモデルおよび前記データモデルからのメタデータを使用して前記論理フォームを実行時に生成するステップをさらに含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１８】
前記フォームユーザインターフェイス生成ステップは、前記データモデルを表すための異なる複数のフォームユーザインターフェイスを生成し、前記コンピュータ可読媒体は、
前記データモデルを表すための前記異なる複数のフォームユーザインターフェイスの生成に使用するように前記異なる複数の論理フォームタイプのうちの複数のものを選択するための選択入力をさらに受信するステップと、
異なる複数のフォームを実行時に生成するステップであって、前記異なる複数の各論理フォームが、前記データモデル、および前記異なる複数の論理フォームタイプのうちの前記選択された複数のもののうちの異なる１つのものを使用して生成されるステップと
を備えるステップをさらに実行するコンピュータ可読命令をさらに有することを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１９】
前記データモデルが実行時に作用を受けるように、前記生成された複数の論理フォームのうちの前記対応するものを使用して前記異なる複数のフォームユーザインターフェイスを実行時にレンダリングするステップをさらに実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記フォームユーザインターフェイス生成ステップは、複数のデータモデルを表すための異なる複数のモデル駆動型フォームユーザインターフェイスを生成し、前記コンピュータ可読媒体は、
前記複数のデータモデルを表すための前記異なる複数のフォームユーザインターフェイスの生成に前記異なる複数の論理フォームタイプのうちのどれを使用するかを選択するための選択入力を受信するステップと、
異なる複数の論理フォームを実行時に生成するステップであって、前記異なる複数の各論理フォームが、前記複数のデータモデルおよび前記選択された論理フォームタイプのうちの一方を使用して生成されるステップと
を含むステップをさらに実行するコンピュータ可読命令をさらに有することを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２１】
前記複数のデータモデルが実行時に作用を受けるように、前記生成された複数の論理フォームを使用して前記異なる複数のフォームユーザインターフェイスを実行時にレンダリングするステップをさらに実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項２０に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフォームの生成に関する。より詳細には、本発明はフォームユーザインターフェイス（ＵＩ）（ｆｏｒｍ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）の生成および更新の方法および装置に関する。
【背景技術】
【０００２】
総合業務パッケージ（ＥＲＰ）製品など、典型的なビジネス用ソフトウェア製品およびアプリケーションでは、多数のフォームまたはフォームユーザインターフェイスが使用されている。フォームとは、データを表示し、かつ／または入力するためのウィンドウ、ダイアログ、ページ、または別のＵＩ要素である。ビジネス用ソフトウェアアプリケーションとともに使用されるフォームの数が数千を超えるのは珍しいことではない。多数のフォームの開発は、従来、ソフトウェア開発者にとって手間のかかる作業であった。
【０００３】
従来、何らかのビジネスまたは他のタイプのソフトウェアアプリケーションに必要な多数のフォームを生成する際、ソフトウェア開発者は、別々に、どちらかというと独立して各フォームを作成していた。フォーム間のある程度の整合性を達成するために、開発者は、頻繁に、フォームの一般のレイアウトを指示する何らかのタイプの標準に従っていた。フォームのこうした標準は、「最良実施例」または好ましい実装として実施されていた。ソフトウェア開発者は、特定のフォームがどのように見えるべきかを決定する際の手引きとして最良の実施例に頼ることはできるが、最良の実施例による場合でさえ、開発者は、異なる多くのフォームのそれぞれを互いにほとんど関係なく作成するという手間のかかる作業に直面する。
【０００４】
ソフトウェア開発者および顧客またはユーザが直面する別の問題は、必要に応じてフォームを更新するという手間のかかる作業に関する。従来、フォームが特定のビジネスモデルに基づいている場合、ビジネスモデルに対する変更によって、開発者がビジネスモデルに関連するフォームを別々に変更することが求められる。さらに、多数のフォームが同じビジネスモデルに対応している場合、ビジネスモデルへの変更によって、対応する各フォームも更新されることが求められる。また、多数のフォームのレイアウトまたは内容の変更が望まれたときはいつでも、多数の各フォームは、独立して修正されていた。したがって、これらの問題によって、ソフトウェア開発者が多数のフォームを作成することは手間のかかる作業となり、同様に、ソフトウェアアプリケーションの顧客またはユーザがビジネスモデルおよびフォーム自体への変更を加えることが難しくなる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記の問題のうちの１つまたは複数の解決策を提供し、かつ／または従来技術より優れた他の利点を提供する。
【課題を解決するための手段】
【０００６】
データモデルまたは問題領域のモデルを表すためのモデル駆動型フォームユーザインターフェイス（ｍｏｄｅｌ  ｄｒｉｖｅｎ  ｆｏｒｍ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を生成する方法、コンピュータ可読媒体、およびシステムが提供される。この方法を使用してビジネスモデルなどのデータモデルを表すためのフォームユーザインターフェイスを生成するために、データモデルを表すためのフォームユーザインターフェイスの生成に異なる複数の論理フォームタイプ（ｌｏｇｉｃａｌ  ｆｏｒｍ  ｔｙｐｅ）のうちのどれを使用するべきかを特定するための選択が行われる。次いで、データモデルおよび選択された論理フォームタイプを使用して、論理フォームが実行時に生成される。次いで、データモデルが実行時に作用を受けるように、生成された論理フォームを使用して、フォームユーザインターフェイスも実行時にレンダリングされる。
【０００７】
一部の実施形態では、フォームユーザインターフェイスの生成に複数の異なる論理フォームタイプのうちのどれを使用するかを選択するステップは、ユーザインターフェイスの生成に異なる複数の論理フォームタイプモデルのうちのどれを使用するかを選択するステップをさらに含む。次いで、論理フォームを実行時に生成するステップは、選択された論理フォームタイプモデル、およびデータモデルからのメタデータの両方を使用して論理フォームを実行時に生成するステップを含む。
【０００８】
一部の実施形態では、異なる複数の各論理フォームタイプは、データモデルデータを、生成された論理フォームに含まれるように定義する関連のスキーマを有する。異なる各論理フォームタイプのスキーマは、複数のフォームから取り込まれたパターンを表す。これらの実施形態では、論理フォームを実行時に生成するステップは、関連のスキーマを使用して論理フォームを生成するステップをさらに含む。
【０００９】
本発明の実施形態を特徴付ける他の特徴および利点は、以下の詳細な説明を関連の図面と併せ読めば明らかとなろう。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明を実施できる、適したコンピューティングシステム環境１００の一例を示している。コンピューティングシステム環境１００は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。また、コンピューティング環境１００を、例示的な動作環境１００に示した構成要素のいずれか１つ、またはその組合せに関連するどのような依存性も要件も有しているものと解釈すべきではない。
【００１１】
本発明は、他の多くの汎用または専用のコンピューティングシステム環境または構成で動作可能である。本発明での使用に適した周知のコンピューティングシステム、環境、および／または構成の例には、それだけには限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド装置またはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記の任意のシステムまたは装置を含む分散コンピューティング環境などがある。
【００１２】
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。また、本発明は、タスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含むローカルおよびリモートの両方のコンピュータ記憶媒体に置くことができる。
【００１３】
図１を参照すると、本発明を実施する例示的なシステムは、汎用コンピューティング装置をコンピュータ１１０の形で含んでいる。コンピュータ１１０の構成要素は、それだけには限定されないが、処理ユニット１２０、システムメモリ１３０と、システムメモリを含む様々なシステム構成要素を処理ユニット１２０に結合するシステムバス１２１を含み得る。システムバス１２１は、様々なバスアーキテクチャのうちの任意のものを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちのいずれでもよい。こうしたアーキテクチャには、それだけには限定されないが一例として、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとしても知られているＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスなどがある。
【００１４】
コンピュータ１１０は、通常様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０からアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、取外式および固定式媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ１１０からアクセスできる他の任意の媒体などがある。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号中に具現化するものであり、任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、信号に情報を符号化するように１つまたは複数のその特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体がある。また、上記のどんな組合せでもコンピュータ可読媒体の範囲内に含まれるものとする。
【００１５】
システムメモリ１３０は、読み出し専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入出力システム１３３（ＢＩＯＳ）は、例えば起動中など、コンピュータ１１０内の要素間での情報の転送を助ける基本ルーチンを含み、通常ＲＯＭ１３１に格納されている。ＲＡＭ１３２は通常、処理ユニット１２０から直接アクセス可能な、かつ／または処理ユニット１２０が現在処理しているデータおよび／またはプログラムモジュールを含む。図１は、それだけには限定されないが一例として、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示している。アプリケーションプログラムの特定のグループは、ビジネスアプリケーションと呼ばれる。これらは、それだけには限定されないが総勘定元帳、在庫表、給料、顧客、販売、購買、会計報告、およびビジネスに関連する他の任意のデータを扱うことを含む企業の管理を対象としている。
【００１６】
コンピュータ１１０は、他の取外式／固定式、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。一例にすぎないが、図１は、固定式不揮発性磁気媒体から読み取り、あるいはそこに書き込むハードディスクドライブ１４１、取外式不揮発性磁気ディスク１５２から読み取り、あるいはそこに書き込む磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体など、取外式不揮発性光ディスク１５６から読み取り、あるいはそこに書き込む光ディスクドライブ１５５を示している。例示的な動作環境で使用できる他の取外式／固定式、揮発性／不揮発性コンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどがある。ハードディスクドライブ１４１は通常、インターフェイス１４０などの固定式メモリインターフェイスを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は一般に、インターフェイス１５０などの取外式メモリインターフェイスによってシステムバス１２１に接続される。
【００１７】
上述し、図１に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ１１０用の、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶を提供する。図１では例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであっても、異なっていてもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は少なくとも異なるコピーであることを示すために、ここではそれらに異なる番号を付している。
【００１８】
ユーザは、キーボード１６２、マイクロフォン１６３、およびマウス、トラックボール、タッチパッドなどのポインティング装置１６１などの入力装置を介してコマンドおよび情報をコンピュータ１１０に入力することができる。他の入力装置（図示せず）には、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバスに結合されているユーザ入力インターフェイス１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など他のインターフェイスおよびバス構造で接続してもよい。入力装置は、データの生成、変更、および削除に使用される。入力装置は、本明細書に記載したアプリケーションプログラムおよび特定の機能の制御（開始および停止）に使用することもできる。この機能は、フォームを開く（表示する）、およびフォームを閉じることを含む。モニタ１９１または他のタイプの表示装置もまた、ビデオインターフェイス１９０などのインターフェイスを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、出力周辺インターフェイス１９５などを介して接続できるスピーカ１９７、プリンタ１９６などの他の周辺出力装置を含むこともできる。モニタまたは他の表示装置は、フォームの表示（レンダリング）に使用される。
【００１９】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルド装置、サーバ、ルータ、ネットワークＰＣ、ピア装置、または他の一般のネットワークノードでよく、通常コンピュータ１１０に関連して上述した多くまたはすべての要素を含む。図１に示した論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含んでいてもよい。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
【００２０】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ１１０は、ネットワークインターフェイスまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ１１０は通常、モデム１７２、またはインターネットなどＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内蔵のものでも外付けのものでもよく、ユーザ入力インターフェイス１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図１は、それだけには限定されないが一例として、リモートアプリケーションプログラム１８５をリモートコンピュータ１８０上に存在するものとして示している。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。
【００２１】
図２は、代替のコンピューティング環境例であるモバイル装置２００のブロック図を示している。モバイル装置２００は、マイクロプロセッサ２０２、メモリ２０４、入力／出力（Ｉ／Ｏ）構成要素２０６、およびリモートコンピュータまたは他のモバイル装置と通信する通信インターフェイス２０８を含む。一実施形態において、上記の構成要素は、適したバス２１０を介して互いに通信するように結合される。
【００２２】
メモリ２０４は、モバイル装置２００への一般電源がシャットダウンされたときにメモリ２０４に格納されている情報が無くならないように、バッテリバックアップモジュール（図示せず）付きのランダムアクセスメモリ（ＲＡＭ）などの不揮発性電子メモリとして実装される。メモリ２０４の一部は、プログラム実行用にアドレス指定可能なメモリとして割り振られるのが好ましく、一方メモリ２０４の別の部分は、例えばディスクドライブ上の記憶をシミュレートする記憶用に使用されることが好ましい。
【００２３】
メモリ２０４は、オペレーティングシステム２１２、アプリケーションプログラム２１４、およびオブジェクトストア２１６を含む。動作中、オペレーティングシステム２１２は、メモリ２０４からプロセッサ２０２によって実行されることが好ましい。オペレーティングシステム２１２は、好ましい一実施形態では、Ｍｉｃｒｏｓｏｆｔ（登録商標）社から市販されているＷＩＮＤＯＷＳ（登録商標）ＣＥブランドオペレーティングシステムである。オペレーティングシステム２１２は、モバイル装置用に設計されており、１組の公開されたアプリケーションプログラミングインターフェイスおよびメソッドを介してアプリケーション２１４によって使用することができるデータベース機能を実装していることが好ましい。オブジェクトストア２１６内のオブジェクトは、公開されたアプリケーションプログラミングインターフェイスおよびメソッドへの呼び出しに少なくとも部分的に応答してアプリケーション２１４およびオペレーティングシステム２１２によって維持される。
【００２４】
通信インターフェイス２０８は、モバイル装置２００が情報を送受信することができる多数の装置および技術を表す。こうした装置は、２〜３例を挙げると、有線および無線のモデム、衛星放送の受信器、および放送チューナを含む。モバイル装置２００は、コンピュータに直接接続して、それとデータ交換を行うこともできる。こうした場合では、通信インターフェイス２０８は、赤外線送受信機、あるいはシリアルまたはパラレルの通信接続とすることができ、これらはすべてストリーム情報を送信することができる。
【００２５】
入力／出力構成要素２０６は、タッチセンサ画面、ボタン、ローラ、およびマイクロフォンなどの様々な入力装置、および音声生成器、振動装置、およびディスプレイを含む様々な出力装置を含む。上に列挙した装置は例であり、すべてがモバイル装置２００に存在している必要はない。さらに、他の入力／出力装置がモバイル装置２００に取り付けられていても、またはそこにあってもよい。
【００２６】
フォームタイプ
本発明は、論理フォームおよび論理フォームタイプの概念を使用して、ビジネスアプリケーションおよび他のアプリケーションのフォームユーザインターフェイス（フォーム）を構築する新しい方法を提供する。本発明の実施形態または実装形態の例では、論理フォームおよび論理フォームタイプが使用されているが、すべての実施形態で論理レイヤの使用が必要なわけではない。したがって本発明は、一般にフォームを作成するためのフォームタイプの使用に適用される。今日のビジネスアプリケーションは通常、しばしば２〜３のカテゴリに分類される、または同様のパターンに従う多数のフォームから成る。研究では、Ｍｉｃｒｏｓｏｆｔ  Ｂｕｓｉｎｅｓｓ  Ｓｏｌｕｔｉｏｎｓ  Ａｘａｐｔａに見られる１８００個のフォームは、たった７つのカテゴリに分割することができることを示している。
【００２７】
本発明のフォームタイプは、フォームユーザインターフェイスの生成を助けるために使用することができるモデルとすることができ、設計時および実行時の両方でビジネスモデルまたはデータモデルを保護し、それに対して作用することによってモデル駆動型ユーザインターフェイスの概念をサポートする。これは、ソフトウェア開発者に高レベルの抽象化を提供する。さらに、本発明によるフォームタイプの使用は、はるかに多い同質の１組のフォームユーザインターフェイスの再利用（１つのレイアウトが何度も使用される）を保証する。というのは、すべてのフォームは維持しやすい２〜３の別個の型（ｔｙｐｅ）およびフォームに分類されるからである（フォームの変更無しに型のレイアウトを変更することができ、ある場合には、フォームを変更すること無く異なる型を適用することができる）。ある実施形態では、一部のフォームタイプは互換性がなく、フォームタイプの変更は、フォームの再コンパイルまたは完全な再構築が必要となり得ることに留意すべきである。本発明によって、アプリケーション開発者は、確実に、複数の表示ターゲットにわたってユーザインターフェイスモデルを再利用することができると同時に、アプリケーションのルックアンドフィール、および各表示ターゲット上でアプリケーション内のナビゲーションがどのように行われるかについて、完全な制御を維持することができる。表示ターゲットの例は、複数のタイプの現在および将来の各オペレーティングシステム、および使用可能なまたは将来の多くの各モバイル装置を含む。別の例として、特定のオペレーティングシステムでの各レンダリング技術も表示ターゲットとすることができる。
【００２８】
本発明の概念を使用して、論理フォームは、表示ターゲット自体とは無関係である論理フォームを作る表示ターゲット独立論理コントロール（ｄｉｓｐｌａｙ  ｔａｒｇｅｔ  ｉｎｄｅｐｅｎｄｅｎｔ  ｌｏｇｉｃａｌ  ｃｏｎｔｒｏｌ）を含む。論理フォームは、論理フォームが従わなければならないパターンを定義する論理フォームタイプを参照する。論理フォームによって参照される論理フォームタイプは、論理フォームの外観および内容を迅速に確立するために異なる複数の論理フォームタイプから選択することができる。本発明の実施形態では、論理フォームタイプは、ビジネスモデルまたは他のデータモデルと組み合わせると論理フォームの生成をもたらすモデルである。
【００２９】
一部の実施形態では、論理フォームタイプによって、フォームが従わなければならないスキーマ（フォームの構造、含むことができる要素などを記述する）、すなわちビジネスモデルを論理モデルに、さらにこれから物理モデルに（自動的にまたはアプリケーション開発者を介して手動で）マップするマップ（またはルール）が公開される。（スキーマを使用していない）別の実施形態では、フォームタイプは、それ自体、フォームが拡張することができるある構造を定義するフォームである。フォームタイプは、論理フォームおよびその内容の動的挙動に影響を与えるユーザインターフェイス論理（コード）を含むこともできる。さらに、フォームタイプは、表示ターゲット情報を参照し、または表示ターゲット固有のメタデータを含み得る。したがってフォームタイプは、スタイルおよびレイアウトの情報、および表示ターゲットに固有の他のタイプの情報を公開する。しかし、これらは、論理フォームおよびその内容のルールの指定も行うため、かなり大きい役割を果たす。本発明のフォームタイプのいくつかの態様を次のとおり紹介する。
【００３０】
様々なフォームタイプ
上述したように、本発明の典型的な使用では、フォームを作成する際にアプリケーション開発者によって使用されるように、異なる複数のフォームタイプが提供される。例えば、一実施形態例では、フォームタイプは、Ｄｉａｌｏｇフォームタイプ、ＣａｒｄまたはＣａｒｄＶｉｅｗフォームタイプ、ＬｉｓｔＶｉｅｗフォームタイプ、ＥｎｔｉｔｙＯｖｅｒｖｉｅｗフォームタイプ、およびＡｃｔｉｖｉｔｙＣｅｎｔｅｒフォームタイプを含むことができる。これらのフォームタイプは、一例ではビジネスアプリケーションで使用されるフォームの典型的な異なったカテゴリに対応する。したがって、複数のフォームタイプを提供することによって、アプリケーション開発者は、最新式のビジネスアプリケーションを作り出すすべてのフォームを構築することができる。当業者に理解されるように、これらの特定のフォームタイプは、単に一例にすぎず、本発明は、任意の特定のフォームタイプまたは任意の特定数のフォームタイプに限定されない。
【００３１】
フォームタイプレイアウト
レイアウト情報の内容および構造は、フォームタイプごとに異なっていてよい。さらに、レイアウト情報は、表示ターゲット固有とすることができる。例えば、ＡｃｔｉｖｉｔｙＣｅｎｔｅｒフォームタイプのレイアウト情報は、特定のオペレーティングシステムプラットフォーム上でフォームを表示するＨＴＭＬ（すなわちＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）またはインターネット）表示ターゲットによって使用されるテーマ／スキン／スタイルおよびマスターページをサポートすることができる。これによってビジネス開発者は、異なる表示ターゲットを必要なだけ刷新し、フォームユーザインターフェイスに必要なだけ手を加える自由を得る。対象となる表示ターゲットが１つだけという特別な場合、したがって論理レイヤが省略される場合、フォームタイプおよびフォームタイプレイアウトは同じであることもありうる。
【００３２】
プラガブル（Ｐｌｕｇｇａｂｌｅ）および拡張可能
独立系ソフトウェアベンダ（ＩＳＶ）がフォームタイプを変更したり拡張したりして新しいフォームタイプを作成することによって、アプリケーション全体のルックアンドフィールを変更することができるため、フォームタイプは、完全な柔軟性および拡張性を提供する。フォームタイプは、所与の表示ターゲット上でどの物理コントロールを使用するかを定義することもできる。例えば、フォームタイプは、（サードパーティグリッドがよく定義されたコントラクト／インターフェイスを満たす場合）標準グリッドをサードパーティグリッドコントロールに置き換えることができるようにする。再コンパイルする必要無しに、すなわち配置後に、コントロールを置き換えることができるように、使用するコントロールは、マップ（フォームタイプ間で異なってもよい）で定義することができ、したがって後でバインドされる。
【００３３】
次に図３および４を参照すると、本発明の一実施形態の例によるＣａｒｄフォームタイプを使用して作成されたＳａｌｅｓ  Ｏｒｄｅｒ論理フォームの概略図を示している。この例では、Ｓａｌｅｓ  Ｏｒｄｅｒ論理フォームは、３つの異なる論理コントロールグループにグループ分けされる１組の論理コントロールを含む。さらに後述するように、Ｃａｒｄフォームタイプは、そのコントロールが物理フォーム、および異なる表示ターゲット上にどのように、またどこに表示されるかを定義し、どの物理コントロールをレンダリングに使用するかを定義する。図３および図４は、同じ情報を示しており、図４は、論理フォームタイプおよび論理フォーム間の関係および情報源を示す矢印と、論理フォームからの物理フォームの生成を含む。
【００３４】
図３および図４は、フォームタイプ３００を使用して生成されたフォームインスタンス３０５を図式的に示している。表示ターゲット独立フォームエンジンであるコアクライアント３１０において、フォームインスタンス３０５は論理フォーム３０６（フォームの概念的なモデルとして示している）であり、フォームタイプ３００は論理フォームタイプ３０１である。表示ターゲット３２０において、フォーム３０５は、論理フォーム３０６を使用して、最終的には論理フォームタイプ３０１から作成されたレンダリング済みフォーム３７０である。レンダリング済みフォーム３７０は、１つの特定の実装であるが、他の多くの実装またはレンダリングを達成することができる。レンダリング済みフォーム３７０は、物理フォームと呼ぶこともできる。
【００３５】
フォームタイプ３００に含まれる２つの部分は、フォームタイプを使用して何が特定のフォームに含まれなければならないかを定義するスキーマ３３０、およびフォームが特定の表示ターゲット上にどのようにレンダリングされるか、または描かれるかを指定するコントロールを含むレイアウト３３１を含む。フォームタイプは、論理コントロールから物理コントロールへのマッピングも含み、これは一部の実施形態では、レイアウト３３１の一部とみなすこともできる。フォームタイプは、ＵＩ要素（コントロールなど）間の対話を決定するロジックも含み得る。このロジックは、表示ターゲットと無関係であるため、スキーマは「コードビハインド（ｃｏｄｅ−ｂｅｈｉｎｄ）」も含む。フォームタイプによって使用することができる異なるレイアウトを有することによって、フォームタイプを使用して作成されたフォームは、様々な表示ターゲット（携帯電話のディスプレイ、ＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）のディスプレイ、パーソナルコンピュータモニタなど）に合わせることができる。フォームタイプ３００は複数のフォームで使用される取り込まれたパターンを表すため、複数のフォームインスタンス３０５は、フォームタイプ３００を使用して生成することができる。
【００３６】
この例について、Ｓａｌｅｓ  Ｏｒｄｅｒエンティティまたはオブジェクトモデル（すなわちビジネスモデルまたはデータモデル）のフォームを作成するために開発者が行うことができるプロセスを考える。まず、開発者は、どの種類のフォームをそこから選択する必要があるかを確認することができる。図３および図４の３２５で示した「Ｃａｒｄ」フォームタイプの選択は、図４の矢印３２６で表されるようにＣａｒｄスキーマ３３０を呼び出し、または指定する。
【００３７】
開発者は、特定のフォームタイプおよび関連のスキーマを指定するとき、一部の実施形態では、スキーマによって指示された情報またはフィールドをフォームに含めることを選択しており、ユーザのビジネスモデルまたは他のモデルからのメタデータは、フィールド値で埋められる。一部の実施形態では、フォームタイプは、フォーム間をナビゲーションするパターンを含むことができる。すなわち、フォームタイプは、（所与の型の）別のフォームが、例えばそれ自体のウィンドウでまたはコンテンツエリア（Ｃｏｎｔｅｎｔ  Ａｒｅａ）を置き換えて、どのように開かれるかを定義するパターンを含むことができる。例えば、Ｃａｒｄフォームタイプ３０１（および関連のＣａｒｄスキーマ３３０）を選択することによって、論理フォーム３０６は、スキーマ３３０で定義されたＣｏｎｔｅｎｔ  Ａｒｅａ３３５に対応するＣｏｎｔｅｎｔ  Ａｒｅａ３３６を含むことになる。Ｃｏｎｔｅｎｔ  Ａｒｅａ３３５に対応するＣｏｎｔｅｎｔ  Ａｒｅａ３３６の起源は、図４の矢印３３７によって表される。同様に、Ｃａｒｄフォームタイプのスキーマ３３０は、ＵＩ  Ｐａｒｔ  Ａｒｅａ３４０、Ｒｅｌａｔｅｄ  Ｅｎｔｉｔｙ  ＵＩ  Ｐａｒｔ  Ａｒｅａ３４５、およびＡｃｔｉｏｎ  Ａｒｅａ３５０を含むため、論理フォーム３０６は、３４１、３４６、および３５１に示すように、これらのエリアおよびフィールドを含む。この場合もまた、これらのフィールドの起源は、矢印３４２、３４７、および３５２によって図式的に示される。
【００３８】
上述したように、各フォームタイプは、特定の表示ターゲット上にレンダリングするためにどのコントロールを使用するかを指示するレイアウト３３１も含む。図３および図４に図式的に示すように、Ｃａｒｄフォームタイプのレイアウトは、表示ターゲット３２０にＣｏｎｔｅｎｔ  Ａｒｅａ３３９、ＵＩ  Ｐａｒｔ  Ａｒｅａ３４４、Ｒｅｌａｔｅｄ  Ｅｎｔｉｔｙ  ＵＩ  Ｐａｒｔ  Ａｒｅａ３４９、およびＡｃｔｉｏｎ  Ａｒｅａ３４５が含まれるようにするコントロールを含む。矢印３３８、３４３、３４８、および３５３は、ＣａｒｄレイアウトにおけるこれらのエリアとＣａｒｄスキーマにおける対応するエリアとの相関を示す。選択された論理フォームタイプおよびデータモデル（この例ではＳａｌｅｓ  Ｏｒｄｅｒエンティティ）からのメタデータを使用して生成される論理フォーム３０６は、表示ターゲット３２０上の物理フォーム３７０としてレンダリングされる。このプロセスは、図４に矢印３６１および３６２を使用して示される。
【００３９】
ここで図５を参照すると、図３および図４を参照して上述したように、データモデルを表すためのモデル駆動型フォームユーザインターフェイスを生成する方法を示すフロー図５００が示されている。ステップ５０５で、データモデルを表すためのフォームユーザインターフェイスの生成に異なる複数の論理フォームタイプのうちのどれを使用するかを選択するステップを含む方法が示されている。上記で与えた例で、ＣａｒｄまたはＣａｒｄＶｉｅｗフォームタイプは、この目的で選択された。次いでステップ５１０で、この方法は、データモデルおよび選択された論理フォームタイプを使用して実行時に論理フォームを生成するステップを含む。実行時に論理フォームを生成することによって、データモデルは保持され（すなわち実行時に作用を受け）、データモデルに加えられた任意の変更は、論理フォーム、およびレンダリングされた物理フォームに反映されることになる。一部の実施形態では、フォームタイプは論理フォームタイプモデルとみなすことができるため、ステップ５１０では、選択された論理フォームタイプモデルとデータモデルからのメタデータの両方を使用して実行時に論理フォームを生成するステップを含むとみなすことができる。
【００４０】
上述したように、異なる複数の論理フォームタイプのそれぞれは、データモデルからのデータを生成された論理フォームに含まれるように定義する関連のスキーマを有する。したがって、実行時に論理フォームを生成するステップ５１０は、実施形態の例で関連のスキーマを使用して論理フォームを生成するステップを含む。異なる論理フォームタイプのそれぞれのスキーマは、多数のフォームから取り込まれたパターンを表すので、２、３のフォームタイプを使用して非常に多くのフォームを生成することができる。また、論理フォームタイプのそれぞれは、特定の表示ターゲットに固有の少なくとも１つの定義済みレイアウトを有するので、物理フォームを実行時に生成するステップは、少なくとも１つの定義済みレイアウトを使用して物理フォームを生成するステップを含む。他の実施形態で、各論理フォームタイプは、異なる表示ターゲット用の多数のフォームの生成を容易にするために、異なる複数の表示ターゲットに対応する異なる複数のレイアウトを含むことができる。
【００４１】
本発明の一部の実施形態で、本明細書で開示した方法は、単一のデータモデルを表すための異なる複数のフォームユーザインターフェイスを生成する。例えば、図６に示すフロー図６００に示す方法ステップを考える。ここで、データモデルを表すための異なる複数のフォームユーザインターフェイスの生成に使用するように異なる複数の論理フォームタイプを選択するステップ６０５をさらに含む方法を示している。次いでステップ６１０で示すように、方法は、異なる複数の論理フォームを実行時に生成するステップを含んでおり、異なる論理フォームのそれぞれは、データモデルと選択された論理フォームタイプのうちの異なる１つのものとを使用して生成される。本発明の一態様によれば、データモデルは実行時に作用を受けるため、これによりデータモデルへの変更を生成された複数のフォームに自動的に実施することができるようになる。データモデルを１回だけ変更し、しかし実行時に複数のフォームに自動的に影響を与えることは、フォームを生成する従来の手間のかかる方法と比較して効率性がかなり向上する。
【００４２】
さらに別の実施形態では、本発明の方法を使用して、異なる複数のデータモデルを表すための異なる複数のモデル駆動型フォームユーザインターフェイスを生成する。例えば、図７に示すフロー図７００に示す方法ステップを考える。ステップ７０５で、この方法のより詳細なこの実施形態は、データモデルを表すための異なる複数のフォームユーザインターフェイスを生成するのに異なる複数の論理フォームタイプのうちのどれを使用するかを選択するステップを含む。次いで、ステップ７１０で、この方法が実行時に異なる複数の論理フォームを生成するステップを含むことを示しており、異なる複数の論理フォームのそれぞれは、異なる複数のデータモデルおよび選択された論理フォームタイプのうちの一方を使用して生成される。したがって、単一のフォームタイプを使用して多数のデータモデルのそれぞれの論理フォームを生成することができる。異なる複数のフォームユーザインターフェイスは、生成された論理フォームを使用して実行時にレンダリングされるため、データモデルは、依然として実行時に作用を受ける。効率の向上として、１つの選択された論理フォームタイプを１回だけ変更することによって、異なる複数の各フォームユーザインターフェイスを変更することができる。
【００４３】
ここで図８を参照すると、データモデルを表すためのモデル駆動型フォームユーザインターフェイスを生成するシステム８００のブロック図を示している。図８に示すように、システム８００は、処理／制御構成要素８１０、およびデータモデル８１５（例えばエンティティまたはオブジェクトのフォーム内のビジネスモデル）に関連するメタデータを格納する、またはフォームタイプ８２５および関連のスキーマ８３０およびレイアウト８３５を格納するデータストア８２０および８４０を含む。開発者入力８０５は、それだけに限定されないが、論理フォーム８４５の生成に使用されるようにフォームタイプおよびデータモデルを選択する任意の入力とすることができる。例えば、図１および図２を参照して説明した任意の入力装置を使用して、これらの入力を提供することができる。例の入力アクションは、リストからまたは別の方法で、どのフォームタイプを使用するかを選択することを含めることが可能である。開発者入力は、例えば、生成された論理フォームがどのフィールド含むべきかを指示するために、選択されたフォームタイプの可視表現上にデータモデルの可視表現をドラッグするなどの入力アクションも含むことができる。他の多くの開発者入力を使用することもできる。
【００４４】
論理フォームタイプは、実行時にフォームタイプをカスタマイズするために第三者が使用することもできるが、これは、必ずしもデータモデルまたはフォームタイプを選択しているとみなされることはない。したがって、開発者入力は必ずしも「設計時」に制限されるものではない。さらに、本発明の方法は、開発者入力を要する実施形態に制限されない。他の実施形態では、フォームタイプは個人化することができ、エンドユーザは、複数のフォームを一度に変更することができる。
【００４５】
特定のデータモデルとともにフォームタイプ８２５および関連のスキーマ８３０およびレイアウト８３５を選択して、処理／制御構成要素８１０は、上述したように、論理フォーム８４５を生成するように構成される。したがってレンダリングエンジン８５０は、物理フォーム８５５および対応する表示ターゲット８６０を生成する。
【００４６】
本発明は、特定の実施形態を参照して説明してきたが、本発明の精神と範囲から逸脱することなく形態および詳細に変更を加えることができることを当分野の技術者であれば理解されよう。
【図面の簡単な説明】
【００４７】
【図１】本発明を使用できる１つの環境例を示すブロック図である。
【図２】本発明を実施できる一般のモバイルコンピューティング環境を示すブロック図である。
【図３】本発明のフォームタイプを使用した論理フォームおよび物理フォームの生成を示す概略図である。
【図４】図３で示すフォームタイプの使用、およびさらにフォームタイプと論理フォームおよび物理フォームの生成との関連を示す概略図である。
【図５】本発明の実施形態によるフォームタイプを使用してフォームを生成する方法を示すフロー図である。
【図６】図５に示した方法のより詳細な実施形態を示すフロー図である。
【図７】図５に示した方法のより詳細な実施形態を示すフロー図である。
【図８】本発明の実施形態によるフォームタイプを使用してフォームを生成するシステムまたは装置を示すブロック図である。
【符号の説明】
【００４８】
１２０  処理ユニット
１３０  システムメモリ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  固定式不揮発性メモリインターフェイス
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  取外式不揮発性メモリインターフェイス
１６０  ユーザ入力インターフェイス
１６１  ポインティング装置
１６２  キーボード
１６３  マイクロフォン
１７０  ネットワークインターフェイス
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域ネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェイス
１９１  モニタ
１９５  出力周辺インターフェイス
１９６  プリンタ
１９７  スピーカ
２０２  プロセッサ
２０４  メモリ
２０８  通信インターフェイス
２１６  オブジェクトストア
【図１】
0004812337.tif 000002
【図２】
0004812337.tif 000003
【図３】
0004812337.tif 000004
【図４】
0004812337.tif 000005
【図５】
0004812337.tif 000006
【図６】
0004812337.tif 000007
【図７】
0004812337.tif 000008
【図８】
0004812337.tif 000009