(57)【要約】  自動的にアプリケーションＵＩ（ユーザインタフェース）それぞれを自動的に作成するエンジンを設けることにより、開発者がアプリケーションをより早く作成できるようにするアーキテクチャである。エンジンは、エンティティのインスタンスまたは任意のエンティティタイプを入力として受け取り、アプリケーションユーザがエンティティを閲覧し修正できるようにするＵＩを、出力として作成する。アーキテクチャはまた、エンジンの決定を導くために、メタデータのソースエンティティとの関連付けを容易にする。その決定とは、エンジンがエンティティプロパティを表すためにどのＵＩ制御を選択するか、エンティティにどれほどの「場所（ｒｅａｌ  ｅｓｔａｔｅ）」（ＵＩスペース）を与えるか、およびエンティティプロパティをどのようにレイアウトすべきかなどの決定である。さらに、アプリケーションは、既知のエンティティタイプだけでなく、そのアプリケーションの概念ができた時には未知であったエンティティタイプとも、ユーザが相互作用できるようにする。つまり、アプリケーション（例えば、基幹業務（ＬＯＢ（ｌｉｎｅ−ｏｆ−ｂｕｓｉｎｅｓｓ）））は動的に生成される任意のエンティティを取り扱うことができる。
2011529605.tif 000002
【特許請求の範囲】
【請求項１】
メタデータのエンティティとの関連付けを作成するメタデータコンポーネント（１０２）と、
ユーザインタフェースを自動的に作成し、かつ前記メタデータに基づき前記ユーザインタフェース内に前記エンティティを提示するエンジンコンポーネント（１１０）と
を備えることを特徴とするコンピュータ実装のインタフェース生成システム（１００）。
【請求項２】
前記エンジンコンポーネントは、前記ユーザインタフェースを提示する装置のデバイス特性をさらに考慮することを特徴とする請求項１に記載のシステム。
【請求項３】
前記デバイス特性は、前記ユーザインタフェースを閲覧するための前記装置上で利用可能な場所（ｒｅａｌ  ｅｓｔａｔｅ）を含むことを特徴とする請求項２に記載のシステム。
【請求項４】
前記エンジンコンポーネントは、前記ユーザインタフェースを生成し、かつ前記ユーザインタフェースをエンティティインスタンスによりポピュレートするために、エンティティタイプおよび前記エンティティインスタンスを公開することを特徴とする請求項１に記載のシステム。
【請求項５】
前記エンジンコンポーネントは、視覚化、編集、および検証を含む、前記エンティティとのユーザ相互作用を容易にすることを特徴とする請求項１に記載のシステム。
【請求項６】
前記メタデータコンポーネントおよび前記エンジンコンポーネントは、基幹業務（ＬＯＢ（ｌｉｎｅ−ｏｆ−ｂｕｓｉｎｅｓｓ））アプリケーションの一部分であり、前記メタデータコンポーネントおよび前記エンジンコンポーネントは、動的に生成された任意のビジネスエンティティの取り扱いを容易にすることを特徴とする請求項１に記載のシステム。
【請求項７】
重要性メタデータおよびグループメタデータを使用して、および前記ユーザインタフェースのデバイスビューワの利用可能な場所に基づいて、前記エンティティを前記ユーザインタフェース内に提示することを特徴とする請求項１に記載のシステム。
【請求項８】
前記メタデータコンポーネントは、より低い重要性を定義する重要性メタデータを重要性のより低いエンティティプロパティに関連付け、前記エンジンコンポーネントは、前記重要性のより低いエンティティプロパティを、重要性メタデータに基づいて前記ユーザインタフェース内のビューから隠し、かつ前記隠れた重要性のより低いエンティティプロパティを、選択可能なリンクを介して閲覧可能にすることを特徴とする請求項１に記載のシステム。
【請求項９】
前記エンジンコンポーネントは、前記ユーザインタフェースを生成するために前記エンティティタイプを公開するか、または、前記ユーザインタフェースを生成し、かつ前記ユーザインタフェースを前記エンティティインスタンスによりポピュレートするために前記エンティティインスタンスを公開することを特徴とする請求項１に記載のシステム。
【請求項１０】
インタフェースを生成するコンピュータ実装の方法であって、
メタデータをエンティティに関連付けるステップ（１０００）と、
前記メタデータおよび装置の閲覧可能な場所に基づき前記エンティティを提示するため、前記装置に対するユーザインタフェースを自動的に作成するステップ（１００２）と
を含むことを特徴とする方法。
【請求項１１】
前記メタデータに基づき、エンティティプロパティをグループ分けするステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記装置の前記閲覧可能な場所に基づき、前記エンティティのレイアウトを選択するステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
重要性メタデータに基づき、垂直または水平の少なくとも一方で前記エンティティを順序付けするステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１４】
使用法のメタデータに基づき、エンティティに渡されるデータを再解釈するステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
重要性閾値に関するプロパティメタデータを有するエンティティを無視するステップをさらに含むことを特徴とする請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ実装のインタフェース生成システム、及び、インタフェースを生成するコンピュータ実装の方法に関する。
【背景技術】
【０００２】
一般に、ソフトウェアアプリケーション、とりわけ基幹業務（ｌｉｎｅ  ｏｆ  ｂｕｓｉｎｅｓｓ（ＬＯＢ））アプリケーションは、様々な性質のデータオブジェクト（エンティティとも称する）を表す。例えば、ＬＯＢアプリケーションにおいては、顧客、注文、製品、および送り状は、作成し、操作する必要のあるエンティティの例である。多くの異なる展開にアプリケーションを使用する場合、各別個のアプリケーションに対して、およびそのアプリケーションが実行されると期待される各種の装置に対して、ユーザインタフェース（ＵＩ）を設計し、作成する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従って、開発者は、それらエンティティタイプの各々に対して、固有のグラフィカルユーザインタフェースを作成しなければならない。これは時間のかかる、かなり繰り返しとなる作業である。しかしながら、エンティティ固有のＵＩを作成する必要がなければ、アプリケーションをもっと速く作成することができるであろう。
【課題を解決するための手段】
【０００４】
本明細書に説明するいくつかの新規な実施形態の基本的理解を与えるため、以下に簡略化した概要を提示する。本明細書の概要は、広範囲にわたる概要ではなく、主要／重要な要素を特定しようとするものでも、その範囲を明らかにしようとするものでもない。本明細書の唯一の目的は、後に提示する、より詳細な説明の前置きとして、いくつかの概念を簡略化した形式で提示することである。
【０００５】
本開示のアーキテクチャは、アプリケーションのＵＩ（ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）それぞれを自動的に作成するエンジンを設けることにより、開発者がアプリケーションをより早く作成できるようにする。エンジンは、エンティティのインスタンスまたは任意のエンティティタイプを入力として受け取り、アプリケーションユーザがエンティティを閲覧し修正できるようにするＵＩを、出力として作成する。アーキテクチャはまた、エンジンの決定を導くために、メタデータのソースエンティティとの関連付けを容易にする。その決定とは、エンジンがエンティティプロパティを表すためにどのＵＩ制御を選択するか、エンティティにどれほどの「場所（ｒｅａｌ  ｅｓｔａｔｅ）」（ＵＩスペース）を与えるか、およびＵＩ制御をどのようにレイアウトすべきかなどの決定である。
【０００６】
さらに、アプリケーションは、既知のエンティティタイプだけでなく、そのアプリケーションの概念ができた時には未知であったエンティティタイプとも、ユーザが相互作用できるようにする。つまり、アプリケーション（例えば、基幹業務）は動的に生成される任意のエンティティを取り扱うことができる。
【０００７】
前述および関連する目的を達成するために、ある特定の例示的態様を、以下の説明および添付図面に関連して本明細書において説明する。これらの態様は、本明細書に開示する原理を実践できる様々な方法を示すものであり、そのすべての態様および等価物が、特許請求する主題の範囲内にあるよう意図するものである。他の利点および新規の特徴は、図面と併せて考察すると、以下の「発明を実施するための形態」から明らかになろう。
【図面の簡単な説明】
【０００８】
【図１】本開示のアーキテクチャに従う、コンピュータ実装のインタフェース生成システムを示す図である。
【図２】エンジンコンポーネントによって公開されるエンティティ情報を示す図である。
【図３】ＵＩの作成に利用できるプロパティメタデータの例を示す図である。
【図４】異なるＵＩを生成する複数のエンジンを使用するシステムを示す図である。
【図５】メタデータおよびエンティティの関連付けを使用してオンザフライ（ｏｎ−ｔｈｅ−ｆｌｙ）で作成できる、例示的なユーザインタフェースを示す図である。
【図６】自動的に生成されたＵＩにおける、エンティティプロパティの水平フローレイアウトを示す図である。
【図７】自動的に生成されたＵＩにおける、エンティティプロパティの垂直フローレイアウトを示す図である。
【図８】自動的に生成されたＵＩにおける、エンティティプロパティの水平レイアウトを示す図である。
【図９】自動的に生成されたＵＩにおける、エンティティプロパティの垂直レイアウトを示す図である。
【図１０】インタフェースを生成するコンピュータ実装の方法を示す図である。
【図１１】生成したユーザインタフェースにレイアウト戦略を適用する方法を示す図である。
【図１２】エンティティタイプのプロパティが設定された際、エンジンにより処理する方法を示す。
【図１３】メタデータをエンティティに関連付け、本開示のアーキテクチャに従ってＵＩを自動的に生成するよう動作可能な、コンピューティングシステムのブロック図である。
【発明を実施するための形態】
【０００９】
基幹業務（ＬＯＢ）などのアプリケーションは、エンティティ（顧客オブジェクトなど、プロパティ付きのオブジェクト）を操作することがよくある。このように、アプリケーションは、一般的には、エンティティを視覚化すること、およびエンティティを編集することに関与する。多くの場合、エンティティは、データベースに記憶され、リストにコンパクトな表現で示されるか、拡張表現で個々に示される。ほとんどの場合、開発者は、詳細ビュー内に特定のエンティティを表すために、ＵＩ（ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を始めから作成する必要がある。
【００１０】
本開示のアーキテクチャは、より目標に近い結果を生み出すために、ＵＩジェネレータ（エンジン）を導くことができるエンティティにメタデータを添付することによって、アプリケーションＵＩの自動作成を容易にする。エンジンは、ロジックまたはアルゴリズムを利用して、エンティティに与えられた意味のあるＵＩ、エンティティのメタデータ、およびＵＩ内にエンティティを提示するための割り当てられた場所を含むハードウェアパラメータおよびソフトウェアパラメータなどのデバイス特性を生成する。
【００１１】
ここで図面を参照する。全体を通して、同様の要素を示すために同じ参照番号を使用する。以下の記述では、説明の目的で、それを完全に理解できるように、多くの具体的な詳細を記載している。しかしながら、新規の実施形態をこれらの具体的な詳細なしに実践できることは、明らかであろう。他の例では、既知の構造および装置を、その説明を容易にするために、ブロック図の形式で示している。その意図は、特許請求の主題の精神と範囲内にあるすべての修正、等価物、および代替物を包含することである。
【００１２】
図１は、本開示のアーキテクチャに従う、コンピュータ実装のインタフェース生成システム１００を示す。システム１００には、メタデータ１０６のエンティティプロパティ１０８との関連付け１０４（Ｍｅｔａｄａｔａ１／ＥｎｔｉｔｙＰｒｏｐｅｒｔｙ１、・・・、ＭｅｔａｄａｔａＮ／ＥｎｔｉｔｙＰｒｏｐｅｒｔｙＮで示す）を作成するメタデータコンポーネント１０２、および、自動的にユーザインタフェース１１２を作成し、かつメタデータ１０６に基づきユーザインタフェース１１２内にエンティティプロパティ１０８を提示するエンジンコンポーネント１１０を含む。
【００１３】
エンジンコンポーネント１１０はさらに、ユーザインタフェース１１２を提示する装置１１６のデバイス特性１１４を考慮することができる。デバイス特性１１４には、ユーザインタフェース１１２を閲覧するための装置１１６上で利用可能な場所を閲覧するというような、装置１１６のハードウェア機能および／またはソフトウェア機能を含むことができる。エンジンコンポーネント１１０はエンティティプロパティ１０８とのユーザ相互作用を容易にし、その相互作用には、例えば、視覚化、編集、および／または検証を含む。
【００１４】
メタデータコンポーネント１０２およびエンジンコンポーネント１１０は、ＬＯＢアプリケーションの一部分であることができる。そのような実装においては、メタデータコンポーネント１０２およびエンジンコンポーネント１１０は、ビジネスのエンティティがそうであり得るが、動的に生成される任意のエンティティの取り扱いを容易にする。
【００１５】
本明細書にさらに詳細に説明するように、エンティティ１０８を、重要性メタデータおよびグループメタデータを使用して、およびユーザインタフェース１１２のデバイスビューワの利用可能な場所に基づいて、ユーザインタフェース１１２内に提示することができる。メタデータコンポーネント１０２には、重要性メタデータを含む。重要性メタデータは、エンティティプロパティに関連付けられた重要性のレベル（例えば、より低い重要性）を定義する。例えば、重要性のより低いエンティティプロパティを、低レベルの重要性を示す重要性メタデータに関連付けることになろう。エンジンコンポーネント１１０は、重要性のより低いエンティティプロパティを、重要性メタデータに基づいてユーザインタフェース１１２内のビューから隠す。しかしながら、隠れた重要性のより低いエンティティプロパティを、選択可能なリンクを介して閲覧できるようにすることができる。ユーザがそのリンクを選択すると、隠れた重要性のより低いエンティティプロパティを閲覧することができる。
【００１６】
エンティティプロパティ１０８のいくつかまたはすべてを、例えば重要性メタデータおよびグループメタデータを使用するレイアウトに従って、かつデバイスビューワの利用可能な場所に基づいて、ユーザインタフェース１１２内に提示する。メタデータ１０６は、いくつか例をあげると、可視性、サイズ、レンダリングのヒント、グループ化、重要性、および使用法に関する。
【００１７】
図２は、エンジンコンポーネント１１０により公開されるエンティティ情報を示す。エンジンコンポーネント１１０は、ユーザインタフェースを生成し、かつユーザインタフェースをエンティティインスタンスによりポピュレートするために、エンティティタイプ２００およびエンティティインスタンス２０２を公開することができる。つまり、エンジンコンポーネント１１０は、ユーザインタフェースを生成するためにエンティティタイプ２００を公開する、および／または、ユーザインタフェースを生成し、かつユーザインタフェースをエンティティインスタンス２０２によりポピュレートするために、エンティティインスタンス２０２を公開する。以下は、エンティティ情報を公開するためのコードの例である。
【００１８】
ｐｕｂｌｉｃ  Ｔｙｐｅ  ＥｎｔｉｔｙＶｉｅｗｅｒ．ＥｎｔｉｔｙＴｙｐｅ
ｐｕｂｌｉｃ  ｏｂｊｅｃｔ  ＥｎｔｉｔｙＶｉｅｗｅｒ．Ｅｎｔｉｔｙ
【００１９】
ＥｎｔｉｔｙＴｙｐｅの設定により、ＵＩの生成が可能になる。Ｅｎｔｉｔｙの設定によりＵＩの生成が可能になるだけでなく、与えられたエンティティによりＵＩをポピュレートする。
【００２０】
エンジンコンポーネント１１０は、様々なエンティティプロパティに関連付けられた潜在的な属性を判定し、メタデータに基づきオンザフライでＵＩを構築し、かつ組み込んだマッピング（例えば、文字列プロパティのテキストプロパティのエディタへのマッピング）を構築する。
【００２１】
図３は、ＵＩ作成に利用できるプロパティメタデータ１０６のメタデータの例３００を示す。例３００には、例えば、可視性、表示名、一般的なサイズ（例えば、長さ、幅、高さ、およびその変形）、レンダリングのヒント、グループ、重要性、および使用法を含むことができるが、これらに限らない。
【００２２】
例３００を、以下のようなコードで表すことができる。すなわち、ＵＩＤｅｓｃｒｉｐｔｉｏｎＶｉｓｉｂｌｅ（ｂｏｏｌ  ｖｉｓｉｂｌｅ）、ＵＩＤｅｓｃｒｉｐｔｉｏｎＤｉｓｐｌａｙＮａｍｅ（ｓｔｒｉｎｇ  ｄｉｓｐｌａｙＮａｍｅ）、ＵＩＤｅｓｃｒｉｐｔｉｏｎＴｙｐｉｃａｌＳｉｚｅ（ｕｉｎｔ  ｌｅｎｇｔｈ，ｕｉｎｔ  ｖａｒｉａｔｉｏｎ）、ＵＩＤｅｓｃｒｉｐｔｉｏｎＴｙｐｉｃａｌＳｉｚｅ（ｕｉｎｔ  ｗｉｄｔｈ，ｕｉｎｔ  ｈｅｉｇｈｔ，ｕｉｎｔ  ｗｉｄｔｈＶａｒｉａｔｉｏｎ，ｕｉｎｔ  ｈｅｉｇｈｔＶａｒｉａｔｉｏｎ）、ＵＩＤｅｓｃｒｉｐｔｉｏｎＲｅｎｄｅｒＨｉｎｔ（ｓｔｒｉｎｇ  ａｓｓｅｍｂｌｙＱｕａｌｉｆｉｅｄＴｙｐｅＮａｍｅ）、ＵＩＤｅｓｃｒｉｐｔｉｏｎＲｅｎｄｅｒＨｉｎｔ（Ｔｙｐｅ  ｔｙｐｅ）、ＵＩＤｅｓｃｒｉｐｔｉｏｎＧｒｏｕｐ（ｓｔｒｉｎｇ  ｇｒｏｕｐＮａｍｅ）、ＵＩＤｅｓｃｒｉｐｔｉｏｎＩｍｐｏｒｔａｎｃｅＡｔｔｒｉｂｕｔｅ（ｕｉｎｔ  ｉｍｐｏｒｔａｎｃｅ）、およびＵＩＤｅｓｃｒｉｐｔｉｏｎＵｓａｇｅＡｔｔｒｉｂｕｔｅ（ＵＩＤｅｓｃｒｉｐｔｉｏｎＰｒｏｐｅｒｔｙＵｓａｇｅ  ｐｒｏｐｅｒｔｙＵｓａｇｅ）である。
【００２３】
本開示のアーキテクチャの他の態様には以下を含む。すなわち、読み取り可能なパブリックプロパティは、ＵＩ内に表すのに適しており、エンティティプロパティをＵＩＤｅｓｃｒｉｐｔｉｏｎＧｒｏｕｐ属性に基づきグループ化し、グループに属さないプロパティ（シングルトンエンティティプロパティ）およびプロパティのグループを、ＵＩＤｅｓｃｒｉｐｔｉｏｎＩｍｐｏｒｔａｎｃｅに基づき（複数の可能性のある分類アルゴリズムに基づき）順序付けし、グループ内のプロパティを同様にＵＩＤｅｓｃｒｉｐｔｉｏｎＩｍｐｏｒｔａｎｃｅに基づき順序付けし、ＵＩ制御をプロパティタイプ、書き込み可能性、ＵＩＤｅｓｃｒｉｐｔｉｏｎＲｅｎｄｅｒＨｉｎｔ属性に基づき選択し、ＵＩ制御をＵＩＤｅｓｃｒｉｐｔｉｏｎＴｙｐｉｃａｌＳｉｚｅ属性に基づきサイズ決めし、ＵＩ制御がＵＩＤｅｓｃｒｉｐｔｉｏｎＵｓａｇｅ属性に基づき、受け取ったデータを再解釈し（例えば、文字列を画像ＵＲＩ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ）として再解釈することができる）、ＵＩ制御をレイアウト戦略および利用可能な場所のサイズに基づきレイアウトする。
【００２４】
エンジンコンポーネント（エンティティビューワ制御とも称する）は、重要性閾値と称するプロパティを公開することができる。その閾値を、回すと多かれ少なかれエンティティのフィールドを示す仮想ノブと称することができる。例えば、第１の名前に１７の重要性を与えると仮定する。例えば、エンティティ制御の閾値が５０の場合、重要性が５０以上のプロパティがＵＩ内に提示されることになろう。重要性が５０より低いプロパティは無視され、ＵＩ内には表されないであろう。
【００２５】
図４は、異なるＵＩ４０４を生成する複数のエンジン４０２を使用するシステム４００を示す。前述のように、メタデータコンポーネント１０２が、メタデータ１０６およびエンティティプロパティ１０８に基づき、メタデータ／エンティティプロパティの関連付け１０４を作成する。ここでは、エンジンコンポーネント１１０には、エンティティ（例えば、ビジネスオブジェクト）を提示する装置の閲覧可能な場所などのデバイス特性に基づきＵＩ（ＵＩ１〜ＵＩＴで示す）を作成する、複数のエンジン４０２（エンジン１〜エンジンＳで示す）を含む。例えば、使用されているアプリケーションをデスクトップコンピュータ上で実行する場合、そのアプリケーションをモバイル装置上で実行した場合とは異なる種類のＵＩを生成する。このように、異なる種類の制御および異なる種類の相互作用モデルの使用、ならびに次いでメタデータのエンティティへの添付により、異なる種類の装置機能および装置ベンダを対象とするアプリケーションを、ユーザがオンザフライで作成することが可能になる。
【００２６】
図５は、メタデータおよびエンティティの関連付けを使用してオンザフライで作成できる、例示的なユーザインタフェース５００を示す。ＵＩ５００は、エンティティプロパティのレイアウトおよびグループ化を示す。名前グループ５０２は、ファーストネームおよびラストネームをグループ化する。同様に、住所グループ５０４は、番地エンティティ、通りエンティティ、都市エンティティ、郵便番号エンティティ、および州エンティティをグループ化する。写真エンティティ５０６もまた提示される。処理する際に、名前グループ５０２、住所グループ５０４、写真エンティティ５０６、および他のエンティティプロパティ（例えば、誕生日、年齢、経歴など）を、示されているレイアウト戦略（例えば、上から下の順、および／または左から右の順で）に従って提示するべきであることを示すメタデータに基づき、ＵＩ５００をオンザフライで作成する。
【００２７】
ＵＩ５００は、例えば、アプリケーション（例えば、ビジネス）がビューを生成している装置上で利用可能な場所によって、レイアウトおよびサイズを変更することができる。例えば、ビュー内により広い場所がある場合には、大きなテキストボックスを選択し、デスクトップマシン上に提示することができる。一方、かなり小さい閲覧場所しかないＰＤＡまたは携帯電話上では、より小さなテキストボックスを選択するであろう。しかしながら、ラストネームなどのある特定の情報を、最小限および／または最大限のサイズで固定することができる。例えば、ラストネームの一般的なサイズは１０文字であり、その関連エンティティを１０文字に制限することができる。
【００２８】
メタデータを、所与のアプリケーションに、一般に使用されるエンティティのデフォルトのセットとして提供することができ、次いで、ユーザが作成するメタデータのカスタムのセットで補うことができる。例えば、財務アプリケーションは、名前および住所に関するメタデータの同一の基本セットを有することができるが、次いで、口座、利息などに関する追加のメタデータを有することができ、この追加のメタデータは、同一のデフォルトのセットを有するが、製品、配送などに関する追加のメタデータを有するビジネスアプリケーションとは異なってもよい。
【００２９】
グループ情報に関して、人はファーストネームおよびラストネームを有する。ある人に対してＵＩ５００を生成する際に、直観的に、その人のラストネームおよびファーストネームを近接して配置する（例えば、並べて）。これは、そのファーストネームおよびそのラストネームが同一グループ５０２を共有できることを意味する。このように、ファーストネームおよびラストネームに関連付けられた名前グループを示すこれら２つのプロパティに、メタデータを関連付ける。その人は、住所と称するグループ５０４により定義される住所を有し、そのグループ５０４には、番地、通り名、郵便番号、都市名、国などを含むことができる。
【００３０】
重要性メタデータは、値の範囲（例えば、２〜１００の範囲の値）とすることができる。特定のグループを提示する場合には、その特定のグループ、およびそのグループ上に置かれるプロパティの重要性メタデータが、そのグループの閲覧位置を決定づけることができる（例えば、そのグループはユーザのスペース内に配置される、グループを下方に配置する、そのグループを隠すなど）。ある人に対するＵＩ５００を作成する際に、その人のファーストネームおよびラストネームが目立つことが直観的にわかる。従って、そのファーストネームおよびラストネームのプロパティの重要性メタデータが高くなるであろう。一方、目の色は、人の無意味な特性であり得る。従って、重要性メタデータは、ファーストネームに比べて低い。
【００３１】
従って、ＵＩ５００を生成する際、エンティティプロパティを重要性の高いプロパティを上、重要性のより低いメタデータを割り当てられたプロパティを減少していく範囲へと、上から下にレイアウトすることができる。
【００３２】
重要性のより低いプロパティへのリンクを作成することができ、そのため、例えば、重要性のより低いプロパティを示すダイアログボックスを提示させるために、ユーザは実際にリンクを選択しなければならない。これは、例えば、ＰＤＡまたは携帯電話に関連付けられた場所上にエンティティを提示すべき場合に特に有用である。従って、ＵＩをより大きな携帯電話のインタフェースに対して設計したが、より小さい携帯電話のインタフェース上で使用した場合に、より小さなＵＩに適応するように、リンクを自動的にオンザフライで実装することができる。次いで、ユーザはリンクを選択し、隠されたプロパティにアクセスすることができる。
【００３３】
例えば、閲覧場所が幅２００ピクセルおよび高さ３００ピクセルであることを示しているデバイス特性を、エンジンが受け取った場合を考える。次いで、エンジンはその装置に対して適切なＵＩを作成する。しかしながら、ＰＤＡ上で使用する際、エンジンは、閲覧場所が幅５０ピクセルおよび高さ６０ピクセルであるデバイス特性を受け取ることができ、次いで適切なＵＩを作成する。従って、ＰＤＡユーザに、ページからページへナビゲートしてその人の異なる特性を視覚化するウィザードタイプのＵＩに関連するようなリンクで、ＵＩを提示する。対照的に、デスクトップのユーザには、その人の特性のすべてを閲覧するのに充分な単一の形式を与えてもよい。
【００３４】
より堅牢な実装では、ＣＰＵ、メモリ、ソフトウェア（例えば、オペレーティングシステム）、入力装置（例えば、キーボード、マイクロフォン、マウスなど）、音声入力機能などといった、閲覧場所以外のデバイス特性を考慮することができる。追加的に、または代替的に、ユーザの好み（例えば、ユーザが一番上に画像、次いで名前情報を配置し、住所情報は配置しないような好み）および／またはデータタイプ（例えば、財務、ビジネス）に基づいて、ＵＩを作成することができる。
【００３５】
別の例では、ユーザがＵＩと相互作用して、メタデータをユーザ相互作用に応じて生成するような方法でそのＵＩを変更することができる。次いで、このメタデータを添付、またはエンティティとともに入ってくる既存のメタデータとマージすることができ、エンジンは、エンティティを提供されたメタデータだけでなく、エンドユーザが生成したメタデータも、入力として受け取る。
【００３６】
プロパティを、生成されたＵＩに基づくアクセスレベルに関連付けることができる。例えば、ユーザの体重情報は読み取り専用のプロパティとすることができる。あるいは、番地プロパティなどを備える住所は、書き込み可能である。
【００３７】
エンジンコンポーネントはその場所に書き込むために、ＵＩ内にエンティティの位置づけの様々なレイアウトを選択し、起動することができる。以下に４つの例を挙げるが、当然のことながら他のレイアウトを使用することもできる。図６は、水平フローレイアウト６００を示す。フローレイアウトでは、エンティティの提示は上から下および左から右となる。図７は、垂直フローレイアウト７００を示す。図８は、水平レイアウト８００を示す。図９は垂直レイアウト９００を示す。
【００３８】
特定のエンティティを表す、作成されている形式の目的によって、メタデータを追加して、作成されているビューに固有の方法でＵＩ作成を導くことができる。一例として電子メールエンティティを挙げると、電子メールは、送信者、受信者、電子メールを送信した日時、電子メールを受信したある特定の日時、および本文を有する。電子メールの本文は一般的に、１つまたは複数のパラグラフ（例えば、テキスト、画像、リンクなど）の形式で、大きなひとまとまりの情報が可能である。例えば、開発者により電子メールの本文に与えられる典型的なサイズは、１０，０００文字が可能である。電子メールをよりコンパクトな方法で表す際、本文に１０，０００文字を割り当てるのは望ましくない。電子メールをよりコンパクトな表現で表す形式を作成することができる。例えば、特定のビューに対して、電子メールに割り当てる場所を、電子メールの特定のビューに対して割り当てる場所が２００文字になるように、削減することができる。ユーザは特定のビューの特定のフィールドに添付されたデフォルトのメタデータを無効にすることができる。
【００３９】
以下は、使用できる例示的な簡易なクラス階層である。一番上のレベルのＥｎｔｉｔｙＶｉｅｗｅｒクラスは次のようにできる。
【００４０】
ｐｕｂｌｉｃ  ｃｌａｓｓ  ＥｎｔｉｔｙＶｉｅｗｅｒ  ：  Ｃｏｎｔｒｏｌ，  ＩＥｎｔｉｔｙＥｄｉｔｏｒ
【００４１】
エンティティを標準的な方法で編集できるように、エンジンコンポーネントはｐｕｂｌｉｃ  ｉｎｔｅｒｆａｃｅ  ＩＥｎｔｉｔｙＥｄｉｔｏｒを実装することができる。個々のプロパティエディタは、ｐｕｂｌｉｃ  ｉｎｔｅｒｆａｃｅ  ＩＥｎｔｉｔｙＰｒｏｐｅｒｔｙＥｄｉｔｏｒを実装して、ＵＩのそれぞれと一番上のレベルのエンティティビューワとの間のコントラクトを標準化することができる。ＴｅｘｔＰｒｏｐｅｒｔｙＥｄｉｔｏｒはそのインタフェースの特定の実装である。すなわち、
ｐｕｂｌｉｃ  ｃｌａｓｓ  ＴｅｘｔＰｒｏｐｅｒｔｙＥｄｉｔｏｒ  ：  Ｃｏｎｔｒｏｌ，  ＩＥｎｔｉｔｙＰｒｏｐｅｒｔｙＥｄｉｔｏｒ  である。
【００４２】
ＥｎｔｉｔｙＶｉｅｗｅｒは、各プロパティの見出しにあらかじめ定義したラベルを使用することができる。すなわち、
ｐｕｂｌｉｃ  ｃｌａｓｓ  ＥｎｔｉｔｙＰｒｏｐｅｒｔｙＬａｂｅｌ  ：  Ｃｏｎｔｒｏｌ  である。
【００４３】
インタフェースの詳細の一例には以下を含むことができる。
ｐｕｂｌｉｃ  ｉｎｔｅｒｆａｃｅ  ＩＥｎｔｉｔｙＥｄｉｔｏｒ  
｛
ｂｏｏｌ  ＡｌｌｏｗＥｄｉｔ
｛
ｇｅｔ；
ｓｅｔ；
｝
ｏｂｊｅｃｔ  Ｅｎｔｉｔｙ
｛
ｇｅｔ；
ｓｅｔ；
｝
Ｔｙｐｅ  ＥｎｔｉｔｙＴｙｐｅ
｛
ｇｅｔ；
ｓｅｔ；
｝
ｅｖｅｎｔ  ＥｖｅｎｔＨａｎｄｌｅｒ  ＣａｎｃｅｌＥｄｉｔ；
ｅｖｅｎｔ  ＥｖｅｎｔＨａｎｄｌｅｒ＜ＭｅｍｂｅｒＶａｌｕｅＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓ＞
ＶａｌｕｅＣｈａｎｇｅｄ；
ｅｖｅｎｔ  ＥｖｅｎｔＨａｎｄｌｅｒ＜ＭｅｍｂｅｒＶａｌｕｅＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓ＞
ＶａｌｕｅＣｈａｎｇｅＣａｎｃｅｌｅｄ；
｝
ｐｕｂｌｉｃ  ｉｎｔｅｒｆａｃｅ  ＩＥｎｔｉｔｙＰｒｏｐｅｒｔｙＥｄｉｔｏｒ
｛
ｂｏｏｌ  ＡｌｌｏｗＥｄｉｔ
｛
ｇｅｔ；
ｓｅｔ；
｝
ｏｂｊｅｃｔ  Ｖａｌｕｅ
｛
ｇｅｔ；
ｓｅｔ；
｝
Ｓｉｚｅ  ＰｒｅｆｅｒｒｅｄＳｉｚｅ（ｕｉｎｔ  ｗｉｄｔｈ，  ｕｉｎｔ  ｈｅｉｇｈｔ，
ｕｉｎｔ  ｗｉｄｔｈＶａｒｉａｔｉｏｎ，  ｕｉｎｔ  ｈｅｉｇｈｔＶａｒｉａｔｉｏｎ）；
ｅｖｅｎｔ  ＥｖｅｎｔＨａｎｄｌｅｒ＜ＭｅｍｂｅｒＶａｌｕｅＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓ＞
ＶａｌｕｅＣｈａｎｇｅｄ；
ｅｖｅｎｔ  ＥｖｅｎｔＨａｎｄｌｅｒ＜ＭｅｍｂｅｒＶａｌｕｅＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓ＞
ＶａｌｕｅＣｈａｎｇｅＣａｎｃｅｌｅｄ；
｝
【００４４】
上記のコードに使用されているように、ＥｎｔｉｔｙＶｉｅｗｅｒはエンジンコンポーネントであり、ＵＩを作成し、ポピュレートすることを担っている。ＥｎｔｉｔｙＶｉｅｗｅｒは、関連するエンティティの編集を、開始、コミット、またはキャンセルすることはない。例えば、これら３つのタスクの実施は、協働するデータナビゲータ制御を担う。ＥｎｔｉｔｙＶｉｅｗｅｒは、ＩＥｎｔｉｔｙＥｄｉｔｏｒのＶａｌｕｅＣｈａｎｇｅｄおよびＶａｌｕｅＣｈａｎｇｅｄＣａｎｃｅｌｅｄイベントを介して、個々のプロパティ制御により生じたプロパティ変更通知を転送する。さらに、ＥｎｔｉｔｙＶｉｅｗｅｒは、ユーザがエンティティの編集をキャンセルしようとする際、そのＣａｎｃｅｌＥｄｉｔイベントを生じさせる。
【００４５】
エンティティプロパティエディタは、単一のプロパティの表現を担い、もしあれば、編集経験（ｅｘｐｅｒｉｅｎｃｅ）を取り扱う。プロパティエディタは、ＩＥｎｔｉｔｙＰｒｏｐｅｒｔｙＥｄｉｔｏｒを実装し、そのため次のようになる。すなわち、ＥｎｔｉｔｙＶｉｅｗｅｒは、プロパティが読み取り専用であるべきか、読み書き可能であるべきかを告げることができ、ＥｎｔｉｔｙＶｉｅｗｅｒおよびプロパティエディタはプロパティの値を交換する標準的な方法を有し、プロパティエディタは値の変更（およびキャンセル）を通知する標準的な方法を有し、かつ、ＥｎｔｉｔｙＶｉｅｗｅｒはプロパティを閲覧するために必要とされる妥当な場所を見つけ出すことができる。
【００４６】
以下は、本開示するアーキテクチャプロセスの機能的なウォークスルーの一例である。ＥｎｔｉｔｙＶｉｅｗｅｒのＥｎｔｉｔｙＴｙｐｅのプロパティを設定する際（例えば、Ｅｎｔｉｔｙのプロパティを設定する際に直接または内部で）、制御は以下を実施することができる。すなわち、タイププロパティを列挙し、かつ関連するカスタムの属性にアクセスし、それらの属性に基づき、エンジンがＥｎｔｉｔｙＰｒｏｐｅｒｔｙのオブジェクトおよびＥｎｔｉｔｙＰｒｏｐｅｒｔｙＧｒｏｕｐのオブジェクトのセットを作成し、かつオブジェクトをポピュレートし、提案された可視性を有する各プロパティに対し、エンジンがＲｅｑｕｅｓｔＶｉｓｉｂｉｌｉｔｙイベントを生じさせ、かつ開発者がデフォルトの振る舞いを無効にできるようにし（可視性はプロパティの重要性が閾値より下か上かによることに留意すべきである）、次いでプロパティ制御を、プロパティタイプ、潜在的なレンダリングのヒント、およびＲｅｑｕｅｓｔＰｒｏｐｅｒｔｙＲｅｎｄｅｒＣｏｎｔｒｏｌＴｙｐｅイベントに基づいて選択し（プロパティはＩＥｎｔｉｔｙＰｒｏｐｅｒｔｙＥｄｉｔｏｒ実装に関連する必要はなく、かつエンティティビューワは、いくつかのストック制御、すなわちＴｅｘｔＢｌｏｃｋ、ＴｅｘｔＢｏｘ、ＤａｔｅＴｉｍｅＰｉｃｋｅｒ、およびＰｉｃｔｕｒｅＢｏｘを取り扱うこともできることに、一応留意すべきである）、レンダリングのヒントが全く与えられない場合、プロパティがＵＩＤｅｓｃｒｉｐｔｉｏｎＰｒｏｐｅｒｔｙＵｓａｇｅ．ＩｍａｇｅＳｏｕｒｃｅを使用する際にはＰｉｃｔｕｒｅＢｏｘを、および／またはプロパティタイプがＳｙｓｔｅｍ．ＤａｔｅＴｉｍｅである際にはＤａｔｅＴｉｍｅＰｉｃｋｅｒを、エンティティビューワが選択し、各プロパティ制御および関連するラベルの好ましいサイズを判定し、そこから、グループの好ましいサイズを計算し、最終的に、グループを表す制御を作成する（ＧｒｏｕｐＢｏｘ制御）。
【００４７】
エンジンが自らをレンダリングする際には、エンジンはまず、プロパティの重要性およびＧｒｏｕｐＩｍｐｏｒｔａｎｃｅＤｅｆｉｎｉｔｉｏｎのプロパティに従って、グループを分類する。次いで、様々なグループ、ラベル、およびプロパティ制御を、現在のレイアウト戦略に従ってレイアウトする。Ｅｎｔｉｔｙのプロパティを設定する際、タイプが変わっており、プロパティ制御がＩＥｎｔｉｔｙＰｒｏｐｅｒｔｙＥｄｉｔｏｒ．Ｖａｌｕｅの要素を介してポピュレートされている場合、ＵＩを再生成する。
【００４８】
以下は、本開示のアーキテクチャの新規の態様を実施する例示的な方法を表す、一連のフローチャートである。説明を簡潔にするために、例えば、フローチャートまたはフロー図の形式で本明細書に示した１つまたは複数の方法を、一連の動作として示し、説明するが、当然のことながら、それらの方法を動作の順序により限定するものではなく、それにより、ある動作を異なる順序で行ってもよく、かつ／または、本明細書に示し説明した他の動作と並行して行ってもよい。例えば、状態図など、一連の相関する状態またはイベントとして、代替的に方法を表すことができることは、当業者には理解し認識されるであろう。さらに、方法で示した動作すべてが新規の実装に必要とは限らない。
【００４９】
図１０は、インタフェースを生成するコンピュータ実装の方法を示す。１０００において、メタデータをエンティティに関連付ける。１００２において、メタデータおよび装置の閲覧可能な場所に基づいてエンティティを提示するための、装置に対するユーザインタフェースを自動的に作成する。
【００５０】
図１１は、生成したユーザインタフェースにレイアウト戦略を適用する方法を示す。
１１００において、エンジンコンポーネントが、エンティティタイプのプロパティが設定されたことを検出する。１１０２において、エンジンコンポーネントがエンティティのメタデータにアクセスし、処理する。１１０４において、レンダリングを開始する。１１０６において、重要性のプロパティおよびグループ重要性定義のプロパティに従って、グループを分類する。１１０８において、レイアウト戦略情報にアクセスする。１１１０において、グループをレンダリングし、戦略に従ってプロパティ制御にラベルを付ける。
【００５１】
図１２は、エンティティタイプのプロパティが設定された際、エンジンにより処理する方法を示す。１２００において、エンジンが、エンティティタイプのプロパティが設定されたことを検出する。１２０２において、タイププロパティを列挙し、関連するメタデータにアクセスする。１２０４において、エンティティプロパティのオブジェクトを作成、およびエンティティプロパティグループのオブジェクトを作成し、各々をポピュレートする。１２０６において、可視性のデータを公開、および提示し、デフォルトを無効にする。１２０８において、タイプ、レンダリングのヒント、およびレンダリング制御タイプイベントに基づいて、プロパティ制御を選択する。１２１０において、各プロパティおよび関連するラベルのサイズを計算する。１２１２において、グループのサイズを計算する。１２１４において、グループを表す制御を作成する。
【００５２】
ユーザに情報を表示するある特定の方法を、スクリーンショットとしてある特定の図に関して示し、説明しているが、他の様々な代替方法を使用できることは、当業者には認識されるであろう。用語「スクリーン」、「スクリーンショット」、「ウェブページ」、「ドキュメント」、および「ページ」は、本明細書では一般に代替可能に使用されている。ページまたはスクリーンは、表示記述として、グラフィカルユーザインタフェースとして、またはスクリーン（例えば、パーソナルコンピュータ、ＰＤＡ、携帯電話、または他の適切な装置）上に情報を示す他の方法によって、記憶され、および／または送信される。そこでは、レイアウトおよびページ上に表示すべき情報またはコンテンツを、メモリ、データベース、または別の記憶ファシリティ内に記憶する。
【００５３】
本アプリケーションにおいて使用されるように、用語「コンポーネント」および「システム」はコンピュータ関連エンティティ、すなわち、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかを指すよう意図している。例えば、コンポーネントは、プロセッサ上で実行しているプロセス、プロセッサ、ハードディスクドライブ、（光記憶媒体、および／または磁気記憶媒体の）複数の記憶ドライブ、オブジェクト、実行ファイル、実行のスレッド、プログラム、および／またはコンピュータが可能であるが、それらに限らない。例として、サーバ上で実行中のアプリケーションおよびサーバの両方ともが、コンポーネントになり得る。１つまたは複数のコンポーネントは、プロセスおよび／または実行のスレッド内にあることができ、かつコンポーネントを１つのコンピュータ上に局在化させる、および／または２つ以上のコンピュータ間に分散することができる。用語「例示的」を、本明細書では、例、事例、例示として与えることを意味するよう使用してもよい。「例示的」として本明細書で説明する態様または設計を、必ずしも、他の態様または設計より好適または有利として解釈するべきではない。
【００５４】
ここで図１３を参照すると、メタデータをエンティティに関連付け、本開示のアーキテクチャに従ってＵＩを自動的に生成するよう動作可能な、コンピューティングシステム１３００のブロック図が示してある。本開示のアーキテクチャの様々な態様に追加のコンテキストを与えるために、図１３および以下の説明により、様々な態様を実装できる適切なコンピューティングシステム１３００の簡潔な、一般的な説明を提供するよう意図している。上記説明は、１つまたは複数のコンピュータ上で実行できるコンピュータ実行可能命令の一般的なコンテキストで記述しているが、新規実施形態を、他のプログラムモジュールとの組み合わせにおいて、および／またはハードウェアおよびソフトウェアの組み合わせとして実装することもできることは、当業者には認識されるであろう。
【００５５】
一般的に、プログラムモジュールには、特定のタスクを実施するか、または特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、本発明の方法を、他のコンピュータシステム構成で実践できることは、当業者には認識されるであろう。他のコンピュータシステム構成には、シングルプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、および、パーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品などを含み、その各々を、１つまたは複数の関連する装置に、動作可能に接続することができる。
【００５６】
例示した態様を、通信ネットワークを介してリンクするリモートの処理装置によってある特定のタスクを実施する、分散コンピューティング環境において実践することもできる。分散コンピューティング環境においては、プログラムモジュールを、ローカルおよびリモート両方のメモリ記憶装置に配置することができる。
【００５７】
コンピュータには、一般的にさまざまなコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、コンピュータによりアクセスできる任意の利用可能な媒体が可能であり、揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体を含む。例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備えることができるが、これらに限らない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装した、揮発性および不揮発性、取り外し可能および取り外し不可能媒体を含む。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｋ）もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を記憶するために使用することができ、コンピュータによりアクセス可能な任意の他の媒体を含むが、これらに限らない。
【００５８】
再び図１３を参照すると、様々な態様を実装するための例示的コンピューティングシステム１３００は、処理ユニット１３０４、システムメモリ１３０６、およびシステムバス１３０８を有するコンピュータ１３０２を含んでいる。処理ユニット１３０４に対してのシステムメモリ１３０６を含むが、これには限らず、システムバス１３０８はシステムコンポーネントにインタフェースを提供する。処理ユニット１３０４は、様々な市販の任意なプロセッサを利用できる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを、処理ユニット１３０４として使用してもよい。
【００５９】
システムバス１３０８は、メモリバス（メモリコントローラを伴うものまたは伴わないもの）にさらに相互接続することができる数種のバス構造のうち任意のもの、周辺バス、および様々な市販の利用可能なバスアーキテクチャのうち任意のものを使用するローカルバスが可能である。システムメモリ１３０６には不揮発性メモリ（ＮＯＮ−ＶＯＬ）１３１０、および／または揮発性メモリ１３１２（例えば、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を含むことができる。ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）を、不揮発性メモリ１３１０（例えば、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなど）内に記憶することができ、そのＢＩＯＳは、例えば起動中に、コンピュータ１３０２内の要素間での情報の転送を支援する基本ルーチンである。揮発性メモリ１３１２には、データをキャッシュするための静的ＲＡＭなど、高速ＲＡＭを含むこともできる。
【００６０】
コンピュータ１３０２は、内部ＨＤＤ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）１３１４（例えば、ＥＩＤＥ、ＳＡＴＡ）を含み、適切な筐体、（例えば、取り外し可能ディスケット１３１８から読み書きするための）磁気ＦＤＤ（ｆｌｏｐｐｙ  ｄｉｓｋ  ｄｒｉｖｅ）１３１６、および（例えば、ＣＤ−ＲＯＭディスク１３２２を読み取る、またはＤＶＤなどの他の大容量の光媒体から読み書きするための）光ディスクドライブ１３２０内で外部使用するように、その内部ＨＤＤ１３１４を構成してもよい。ＨＤＤ１３１４、ＦＤＤ１３１６、および光ディスクドライブ１３２０を、それぞれ、ＨＤＤインタフェース１３２４、ＦＤＤインタフェース１３２６、および光ドライブインタフェース１３２８によって、システムバス１３０８に接続することができる。外部ドライブ実装に対するＨＤＤインタフェース１３２４には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）およびＩＥＥＥ１３９４インタフェース技術の少なくとも１つまたは両方を含むことができる。
【００６１】
ドライブおよび関連するコンピュータ可読媒体は、データの不揮発性記憶装置、データ構造、コンピュータ実行可能命令などを提供する。コンピュータ１３０２に対して、ドライブおよび媒体は、任意のデータの記憶を適切なデジタルフォーマットで収容する。上記のコンピュータ可読媒体の記述は、ＨＤＤ、取り外し可能磁気ディスケット（例えば、ＦＤＤ）、およびＣＤまたはＤＶＤなどの取り外し可能光媒体を指すが、当業者にとっては当然のことながら、ジップドライブ、磁気カセット、フラッシュメモリカード、カートリッジなどといった、コンピュータにより読み取り可能な他種の媒体を、例示的なオペレーティング環境において使用してもよく、任意のそのような媒体は、本開示のアーキテクチャの新規の方法を実施するためのコンピュータ実行可能命令を含んでもよい。
【００６２】
オペレーティングシステム１３３０、１つまたは複数のアプリケーションプログラム１３３２、他のプログラムモジュール１３３４、およびプログラムデータ１３３６を含む、いくつかのプログラムモジュールを、ドライブおよび揮発性メモリ１３１２内に記憶することができる。１つまたは複数のアプリケーションプログラム１３３２、他のプログラムモジュール１３３４、およびプログラムデータ１３３６には、例えば、メタデータコンポーネント１０２、関連付け１０４、メタデータ１０６、エンティティプロパティ１０８、エンジンコンポーネント１１０、ＵＩ１１２、デバイス特性１１４、エンティティタイプ２００、エンティティインスタンス２０２、メタデータの例３００、エンジン４０２、ＵＩ４０４、ＵＩ５００、水平フローおよび垂直フロー（６００および７００）、水平レイアウトおよび垂直レイアウト（８００および９００）、および図１０〜１２の方法を含むことができる。装置１１６は、コンピュータ１３０２、携帯電話、ＰＤＡ、または情報を提示する他の装置が可能である。
【００６３】
オペレーティングシステム、アプリケーション、モジュール、および／またはデータのすべて、またはその一部を、揮発性メモリ１３１２にキャッシュすることもできる。当然のことながら、本開示のアーキテクチャを、様々な市販の利用可能なオペレーティングシステム、またはオペレーティングシステムの組み合わせで実装することができる。
【００６４】
例えば、キーボード１３３８およびマウス１３４０などのポインティングデバイスといった、１つまたは複数の有線／無線入力装置を介して、ユーザはコンピュータ１３０２にコマンドおよび情報を入力できる。他の入力装置（図示せず）には、マイクロフォン、ＩＲリモートコントロール、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーンなどを含んでもよい。これらおよび他の入力装置を、システムバス１３０８に接続した入力装置インタフェース１３４２を介して、処理ユニット１３０４に接続することがよくあるが、それらの入力装置を、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインタフェースなどといった他のインタフェースに接続することができる。
【００６５】
モニタ１３４４または他種の表示装置をもまた、ビデオアダプタ１３４６などのインタフェースを介して、システムバス１３０８に接続することができる。モニタ１３４４に加えて、一般的にコンピュータは、スピーカ、プリンタなどといった他の周辺出力装置（図示せず）を含む。
【００６６】
コンピュータ１３０２は、リモートコンピュータ（単数または複数）１３４８などの１つまたは複数のリモートコンピュータへの有線および／または無線通信を介して、論理接続を使用したネットワーク環境において動作してもよい。リモートコンピュータ（単数または複数）１３４８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンターテインメント機器、ピアデバイスまたは他の共通ネットワークノードが可能であり、一般的に、コンピュータ１３０２に関して説明した要素の多くまたはすべてを含むが、簡潔にするため、メモリ／記憶装置１３５０のみを示している。示された論理接続は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）１３５２、および／または、例えばＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）といった、より大きなネットワークへの有線／無線接続を含む。ＬＡＮおよびＷＡＮのようなネットワーク環境は、事務所および会社では普通のことであり、それらにより、例えばインターネットといったグローバル通信ネットワークにそのすべてを接続できる、イントラネットなどの企業規模のコンピュータネットワークが容易となる。
【００６７】
ＬＡＮネットワーク環境において使用する際、コンピュータ１３０２は、有線および／もしくは無線通信ネットワークインタフェース、またはアダプタ１３５６を介して、ＬＡＮ１３５２に接続される。アダプタ１３５６は、ＬＡＮ１３５２への有線および／または無線通信を容易にすることができ、アダプタ１３５６には、そのアダプタ１３５６の無線機能と通信するためにアダプタに配置された無線アクセスポイントを含んでもよい。
【００６８】
ＷＡＮネットワーク環境において使用する際、コンピュータ１３０２は、モデム１３５８を含むことができるか、ＷＡＮ１３５４上の通信サーバに接続されるか、または、インターネットによってなど、ＷＡＮ１３５４上で通信を確立するための他の手段を有する。モデム１３５８は、内部または外部の有線および／または無線装置が可能であり、入力装置インタフェース１３４２を介して、システムバス１３０８に接続される。ネットワーク環境において、コンピュータ１３０２に関して示したプログラムモジュールまたはその一部を、リモートのメモリ／記憶装置１３５０に記憶することができる。当然のことながら、示したネットワーク接続は例示的であり、コンピュータ間で通信リンクを確立する他の手段を使用することができる。
【００６９】
コンピュータ１３０２は、例えば、プリンタ、スキャナ、デスクトップおよび／またはポータブルコンピュータ、ＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、通信衛星、無線で検出可能なタグに関連付けられた任意の設備または場所（例えば、キオスク、新聞売店、化粧室）、および電話との無線通信（例えば、ＩＥＥＥ８０２．１１空中を介した（ｏｖｅｒ−ｔｈｅ−ａｉｒ）変調技術）において動作可能に配置される無線装置といった、ＩＥＥＥ８０２標準ファミリを使用する有線および無線の装置またはエンティティと通信するよう動作可能である。これには、少なくともＷｉ−Ｆｉ（すなわち、Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）、ＷｉＭｚｘ、およびＢｌｕｅｔｏｏｔｈ（商標）無線技術を含む。このように、通信は、従来のネットワークと同様にあらかじめ定義された構造であるか、または少なくとも２つの装置間の単にアドホックな通信が可能である。Ｗｉ−Ｆｉネットワークは、ＩＥＥＥ８０２．１１ｘ（ａ、ｂ、ｇなど）と称する無線技術を使用して、安全で信頼できる高速無線接続を提供する。Ｗｉ−Ｆｉネットワークを使用して、コンピュータを、お互いに、インターネットに、および有線ネットワーク（ＩＥＥＥ８０２．３関連媒体および機能を使用する）に接続することができる。
【００７０】
上記説明には、本開示のアーキテクチャの例を含む。もちろん、コンポーネントおよび／または方法の考え得るすべての組み合わせを説明することはできないが、多くのさらなる組み合わせおよび置換が可能であることは、当業者には認識できるであろう。従って、新規アーキテクチャは、添付の特許請求の精神と範囲内にあるそのようなすべての変更、修正、および変形を包含するよう意図するものである。さらに、用語「含む」を発明を実施するための形態および特許請求の範囲のいずれかで使用する限りでは、そのような用語は、請求項で遷移語として使用される際「備える」と解釈されるように、用語「備える」と同様に包括的であるよう意図するものである。
【図１】
2011529605.tif 000003
【図２】
2011529605.tif 000004
【図３】
2011529605.tif 000005
【図４】
2011529605.tif 000006
【図５】
2011529605.tif 000007
【図６】
2011529605.tif 000008
【図７】
2011529605.tif 000009
【図８】
2011529605.tif 000010
【図９】
2011529605.tif 000011
【図１０】
2011529605.tif 000012
【図１１】
2011529605.tif 000013
【図１２】
2011529605.tif 000014
【図１３】
2011529605.tif 000015
【国際調査報告】
2011529605.tif 000016
2011529605.tif 000017