JP5367818B2 - エンティティの相互作用のためのユーザインタフェースの自動生成 - Google Patents

エンティティの相互作用のためのユーザインタフェースの自動生成 Download PDF

Info

Publication number
JP5367818B2
JP5367818B2 JP2011521182A JP2011521182A JP5367818B2 JP 5367818 B2 JP5367818 B2 JP 5367818B2 JP 2011521182 A JP2011521182 A JP 2011521182A JP 2011521182 A JP2011521182 A JP 2011521182A JP 5367818 B2 JP5367818 B2 JP 5367818B2
Authority
JP
Japan
Prior art keywords
entity
metadata
user interface
importance
properties
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.)
Expired - Fee Related
Application number
JP2011521182A
Other languages
English (en)
Other versions
JP2011529605A (ja
JP2011529605A5 (ja
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 JP2011529605A publication Critical patent/JP2011529605A/ja
Publication of JP2011529605A5 publication Critical patent/JP2011529605A5/ja
Application granted granted Critical
Publication of JP5367818B2 publication Critical patent/JP5367818B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Description

本発明は、コンピュータ実装のインタフェース生成システム、及び、インタフェースを生成するコンピュータ実装の方法に関する。
一般に、ソフトウェアアプリケーション、とりわけ基幹業務(line of business(LOB))アプリケーションは、様々な性質のデータオブジェクト(エンティティとも称する)を表す。例えば、LOBアプリケーションにおいては、顧客、注文、製品、および送り状は、作成し、操作する必要のあるエンティティの例である。多くの異なる展開にアプリケーションを使用する場合、各別個のアプリケーションに対して、およびそのアプリケーションが実行されると期待される各種の装置に対して、ユーザインタフェース(UI)を設計し、作成する。
従って、開発者は、それらエンティティタイプの各々に対して、固有のグラフィカルユーザインタフェースを作成しなければならない。これは時間のかかる、かなり繰り返しとなる作業である。しかしながら、エンティティ固有のUIを作成する必要がなければ、アプリケーションをもっと速く作成することができるであろう。
本明細書に説明するいくつかの新規な実施形態の基本的理解を与えるため、以下に簡略化した概要を提示する。本明細書の概要は、広範囲にわたる概要ではなく、主要/重要な要素を特定しようとするものでも、その範囲を明らかにしようとするものでもない。本明細書の唯一の目的は、後に提示する、より詳細な説明の前置きとして、いくつかの概念を簡略化した形式で提示することである。
本開示のアーキテクチャは、アプリケーションのUI(user interface)それぞれを自動的に作成するエンジンを設けることにより、開発者がアプリケーションをより早く作成できるようにする。エンジンは、エンティティのインスタンスまたは任意のエンティティタイプを入力として受け取り、アプリケーションユーザがエンティティを閲覧し修正できるようにするUIを、出力として作成する。アーキテクチャはまた、エンジンの決定を導くために、メタデータのソースエンティティとの関連付けを容易にする。その決定とは、エンジンがエンティティプロパティを表すためにどのUI制御を選択するか、エンティティにどれほどの「場所(real estate)」(UIスペース)を与えるか、およびUI制御をどのようにレイアウトすべきかなどの決定である。
さらに、アプリケーションは、既知のエンティティタイプだけでなく、そのアプリケーションの概念ができた時には未知であったエンティティタイプとも、ユーザが相互作用できるようにする。つまり、アプリケーション(例えば、基幹業務)は動的に生成される任意のエンティティを取り扱うことができる。
前述および関連する目的を達成するために、ある特定の例示的態様を、以下の説明および添付図面に関連して本明細書において説明する。これらの態様は、本明細書に開示する原理を実践できる様々な方法を示すものであり、そのすべての態様および等価物が、特許請求する主題の範囲内にあるよう意図するものである。他の利点および新規の特徴は、図面と併せて考察すると、以下の「発明を実施するための形態」から明らかになろう。
本開示のアーキテクチャに従う、コンピュータ実装のインタフェース生成システムを示す図である。 エンジンコンポーネントによって公開されるエンティティ情報を示す図である。 UIの作成に利用できるプロパティメタデータの例を示す図である。 異なるUIを生成する複数のエンジンを使用するシステムを示す図である。 メタデータおよびエンティティの関連付けを使用してオンザフライ(on−the−fly)で作成できる、例示的なユーザインタフェースを示す図である。 自動的に生成されたUIにおける、エンティティプロパティの水平フローレイアウトを示す図である。 自動的に生成されたUIにおける、エンティティプロパティの垂直フローレイアウトを示す図である。 自動的に生成されたUIにおける、エンティティプロパティの水平レイアウトを示す図である。 自動的に生成されたUIにおける、エンティティプロパティの垂直レイアウトを示す図である。 インタフェースを生成するコンピュータ実装の方法を示す図である。 生成したユーザインタフェースにレイアウト戦略を適用する方法を示す図である。 エンティティタイプのプロパティが設定された際、エンジンにより処理する方法を示す。 メタデータをエンティティに関連付け、本開示のアーキテクチャに従ってUIを自動的に生成するよう動作可能な、コンピューティングシステムのブロック図である。
基幹業務(LOB)などのアプリケーションは、エンティティ(顧客オブジェクトなど、プロパティ付きのオブジェクト)を操作することがよくある。このように、アプリケーションは、一般的には、エンティティを視覚化すること、およびエンティティを編集することに関与する。多くの場合、エンティティは、データベースに記憶され、リストにコンパクトな表現で示されるか、拡張表現で個々に示される。ほとんどの場合、開発者は、詳細ビュー内に特定のエンティティを表すために、UI(user interface)を始めから作成する必要がある。
本開示のアーキテクチャは、より目標に近い結果を生み出すために、UIジェネレータ(エンジン)を導くことができるエンティティにメタデータを添付することによって、アプリケーションUIの自動作成を容易にする。エンジンは、ロジックまたはアルゴリズムを利用して、エンティティに与えられた意味のあるUI、エンティティのメタデータ、およびUI内にエンティティを提示するための割り当てられた場所を含むハードウェアパラメータおよびソフトウェアパラメータなどのデバイス特性を生成する。
ここで図面を参照する。全体を通して、同様の要素を示すために同じ参照番号を使用する。以下の記述では、説明の目的で、それを完全に理解できるように、多くの具体的な詳細を記載している。しかしながら、新規の実施形態をこれらの具体的な詳細なしに実践できることは、明らかであろう。他の例では、既知の構造および装置を、その説明を容易にするために、ブロック図の形式で示している。その意図は、特許請求の主題の精神と範囲内にあるすべての修正、等価物、および代替物を包含することである。
図1は、本開示のアーキテクチャに従う、コンピュータ実装のインタフェース生成システム100を示す。システム100には、メタデータ106のエンティティプロパティ108との関連付け104(Metadata/EntityProperty、・・・、Metadata/EntityPropertyで示す)を作成するメタデータコンポーネント102、および、自動的にユーザインタフェース112を作成し、かつメタデータ106に基づきユーザインタフェース112内にエンティティプロパティ108を提示するエンジンコンポーネント110を含む。
エンジンコンポーネント110はさらに、ユーザインタフェース112を提示する装置116のデバイス特性114を考慮することができる。デバイス特性114には、ユーザインタフェース112を閲覧するための装置116上で利用可能な場所を閲覧するというような、装置116のハードウェア機能および/またはソフトウェア機能を含むことができる。エンジンコンポーネント110はエンティティプロパティ108とのユーザ相互作用を容易にし、その相互作用には、例えば、視覚化、編集、および/または検証を含む。
メタデータコンポーネント102およびエンジンコンポーネント110は、LOBアプリケーションの一部分であることができる。そのような実装においては、メタデータコンポーネント102およびエンジンコンポーネント110は、ビジネスのエンティティがそうであり得るが、動的に生成される任意のエンティティの取り扱いを容易にする。
本明細書にさらに詳細に説明するように、エンティティ108を、重要性メタデータおよびグループメタデータを使用して、およびユーザインタフェース112のデバイスビューワの利用可能な場所に基づいて、ユーザインタフェース112内に提示することができる。メタデータコンポーネント102には、重要性メタデータを含む。重要性メタデータは、エンティティプロパティに関連付けられた重要性のレベル(例えば、より低い重要性)を定義する。例えば、重要性のより低いエンティティプロパティを、低レベルの重要性を示す重要性メタデータに関連付けることになろう。エンジンコンポーネント110は、重要性のより低いエンティティプロパティを、重要性メタデータに基づいてユーザインタフェース112内のビューから隠す。しかしながら、隠れた重要性のより低いエンティティプロパティを、選択可能なリンクを介して閲覧できるようにすることができる。ユーザがそのリンクを選択すると、隠れた重要性のより低いエンティティプロパティを閲覧することができる。
エンティティプロパティ108のいくつかまたはすべてを、例えば重要性メタデータおよびグループメタデータを使用するレイアウトに従って、かつデバイスビューワの利用可能な場所に基づいて、ユーザインタフェース112内に提示する。メタデータ106は、いくつか例をあげると、可視性、サイズ、レンダリングのヒント、グループ化、重要性、および使用法に関する。
図2は、エンジンコンポーネント110により公開されるエンティティ情報を示す。エンジンコンポーネント110は、ユーザインタフェースを生成し、かつユーザインタフェースをエンティティインスタンスによりポピュレートするために、エンティティタイプ200およびエンティティインスタンス202を公開することができる。つまり、エンジンコンポーネント110は、ユーザインタフェースを生成するためにエンティティタイプ200を公開する、および/または、ユーザインタフェースを生成し、かつユーザインタフェースをエンティティインスタンス202によりポピュレートするために、エンティティインスタンス202を公開する。以下は、エンティティ情報を公開するためのコードの例である。
public Type EntityViewer.EntityType
public object EntityViewer.Entity
EntityTypeの設定により、UIの生成が可能になる。Entityの設定によりUIの生成が可能になるだけでなく、与えられたエンティティによりUIをポピュレートする。
エンジンコンポーネント110は、様々なエンティティプロパティに関連付けられた潜在的な属性を判定し、メタデータに基づきオンザフライでUIを構築し、かつ組み込んだマッピング(例えば、文字列プロパティのテキストプロパティのエディタへのマッピング)を構築する。
図3は、UI作成に利用できるプロパティメタデータ106のメタデータの例300を示す。例300には、例えば、可視性、表示名、一般的なサイズ(例えば、長さ、幅、高さ、およびその変形)、レンダリングのヒント、グループ、重要性、および使用法を含むことができるが、これらに限らない。
例300を、以下のようなコードで表すことができる。すなわち、UIDescriptionVisible(bool visible)、UIDescriptionDisplayName(string displayName)、UIDescriptionTypicalSize(uint length,uint variation)、UIDescriptionTypicalSize(uint width,uint height,uint widthVariation,uint heightVariation)、UIDescriptionRenderHint(string assemblyQualifiedTypeName)、UIDescriptionRenderHint(Type type)、UIDescriptionGroup(string groupName)、UIDescriptionImportanceAttribute(uint importance)、およびUIDescriptionUsageAttribute(UIDescriptionPropertyUsage propertyUsage)である。
本開示のアーキテクチャの他の態様には以下を含む。すなわち、読み取り可能なパブリックプロパティは、UI内に表すのに適しており、エンティティプロパティをUIDescriptionGroup属性に基づきグループ化し、グループに属さないプロパティ(シングルトンエンティティプロパティ)およびプロパティのグループを、UIDescriptionImportanceに基づき(複数の可能性のある分類アルゴリズムに基づき)順序付けし、グループ内のプロパティを同様にUIDescriptionImportanceに基づき順序付けし、UI制御をプロパティタイプ、書き込み可能性、UIDescriptionRenderHint属性に基づき選択し、UI制御をUIDescriptionTypicalSize属性に基づきサイズ決めし、UI制御がUIDescriptionUsage属性に基づき、受け取ったデータを再解釈し(例えば、文字列を画像URI(uniform resource identifier)として再解釈することができる)、UI制御をレイアウト戦略および利用可能な場所のサイズに基づきレイアウトする。
エンジンコンポーネント(エンティティビューワ制御とも称する)は、重要性閾値と称するプロパティを公開することができる。その閾値を、回すと多かれ少なかれエンティティのフィールドを示す仮想ノブと称することができる。例えば、第1の名前に17の重要性を与えると仮定する。例えば、エンティティ制御の閾値が50の場合、重要性が50以上のプロパティがUI内に提示されることになろう。重要性が50より低いプロパティは無視され、UI内には表されないであろう。
図4は、異なるUI404を生成する複数のエンジン402を使用するシステム400を示す。前述のように、メタデータコンポーネント102が、メタデータ106およびエンティティプロパティ108に基づき、メタデータ/エンティティプロパティの関連付け104を作成する。ここでは、エンジンコンポーネント110には、エンティティ(例えば、ビジネスオブジェクト)を提示する装置の閲覧可能な場所などのデバイス特性に基づきUI(UI〜UIで示す)を作成する、複数のエンジン402(エンジン〜エンジンで示す)を含む。例えば、使用されているアプリケーションをデスクトップコンピュータ上で実行する場合、そのアプリケーションをモバイル装置上で実行した場合とは異なる種類のUIを生成する。このように、異なる種類の制御および異なる種類の相互作用モデルの使用、ならびに次いでメタデータのエンティティへの添付により、異なる種類の装置機能および装置ベンダを対象とするアプリケーションを、ユーザがオンザフライで作成することが可能になる。
図5は、メタデータおよびエンティティの関連付けを使用してオンザフライで作成できる、例示的なユーザインタフェース500を示す。UI500は、エンティティプロパティのレイアウトおよびグループ化を示す。名前グループ502は、ファーストネームおよびラストネームをグループ化する。同様に、住所グループ504は、番地エンティティ、通りエンティティ、都市エンティティ、郵便番号エンティティ、および州エンティティをグループ化する。写真エンティティ506もまた提示される。処理する際に、名前グループ502、住所グループ504、写真エンティティ506、および他のエンティティプロパティ(例えば、誕生日、年齢、経歴など)を、示されているレイアウト戦略(例えば、上から下の順、および/または左から右の順で)に従って提示するべきであることを示すメタデータに基づき、UI500をオンザフライで作成する。
UI500は、例えば、アプリケーション(例えば、ビジネス)がビューを生成している装置上で利用可能な場所によって、レイアウトおよびサイズを変更することができる。例えば、ビュー内により広い場所がある場合には、大きなテキストボックスを選択し、デスクトップマシン上に提示することができる。一方、かなり小さい閲覧場所しかないPDAまたは携帯電話上では、より小さなテキストボックスを選択するであろう。しかしながら、ラストネームなどのある特定の情報を、最小限および/または最大限のサイズで固定することができる。例えば、ラストネームの一般的なサイズは10文字であり、その関連エンティティを10文字に制限することができる。
メタデータを、所与のアプリケーションに、一般に使用されるエンティティのデフォルトのセットとして提供することができ、次いで、ユーザが作成するメタデータのカスタムのセットで補うことができる。例えば、財務アプリケーションは、名前および住所に関するメタデータの同一の基本セットを有することができるが、次いで、口座、利息などに関する追加のメタデータを有することができ、この追加のメタデータは、同一のデフォルトのセットを有するが、製品、配送などに関する追加のメタデータを有するビジネスアプリケーションとは異なってもよい。
グループ情報に関して、人はファーストネームおよびラストネームを有する。ある人に対してUI500を生成する際に、直観的に、その人のラストネームおよびファーストネームを近接して配置する(例えば、並べて)。これは、そのファーストネームおよびそのラストネームが同一グループ502を共有できることを意味する。このように、ファーストネームおよびラストネームに関連付けられた名前グループを示すこれら2つのプロパティに、メタデータを関連付ける。その人は、住所と称するグループ504により定義される住所を有し、そのグループ504には、番地、通り名、郵便番号、都市名、国などを含むことができる。
重要性メタデータは、値の範囲(例えば、2〜100の範囲の値)とすることができる。特定のグループを提示する場合には、その特定のグループ、およびそのグループ上に置かれるプロパティの重要性メタデータが、そのグループの閲覧位置を決定づけることができる(例えば、そのグループはユーザのスペース内に配置される、グループを下方に配置する、そのグループを隠すなど)。ある人に対するUI500を作成する際に、その人のファーストネームおよびラストネームが目立つことが直観的にわかる。従って、そのファーストネームおよびラストネームのプロパティの重要性メタデータが高くなるであろう。一方、目の色は、人の無意味な特性であり得る。従って、重要性メタデータは、ファーストネームに比べて低い。
従って、UI500を生成する際、エンティティプロパティを重要性の高いプロパティを上、重要性のより低いメタデータを割り当てられたプロパティを減少していく範囲へと、上から下にレイアウトすることができる。
重要性のより低いプロパティへのリンクを作成することができ、そのため、例えば、重要性のより低いプロパティを示すダイアログボックスを提示させるために、ユーザは実際にリンクを選択しなければならない。これは、例えば、PDAまたは携帯電話に関連付けられた場所上にエンティティを提示すべき場合に特に有用である。従って、UIをより大きな携帯電話のインタフェースに対して設計したが、より小さい携帯電話のインタフェース上で使用した場合に、より小さなUIに適応するように、リンクを自動的にオンザフライで実装することができる。次いで、ユーザはリンクを選択し、隠されたプロパティにアクセスすることができる。
例えば、閲覧場所が幅200ピクセルおよび高さ300ピクセルであることを示しているデバイス特性を、エンジンが受け取った場合を考える。次いで、エンジンはその装置に対して適切なUIを作成する。しかしながら、PDA上で使用する際、エンジンは、閲覧場所が幅50ピクセルおよび高さ60ピクセルであるデバイス特性を受け取ることができ、次いで適切なUIを作成する。従って、PDAユーザに、ページからページへナビゲートしてその人の異なる特性を視覚化するウィザードタイプのUIに関連するようなリンクで、UIを提示する。対照的に、デスクトップのユーザには、その人の特性のすべてを閲覧するのに充分な単一の形式を与えてもよい。
より堅牢な実装では、CPU、メモリ、ソフトウェア(例えば、オペレーティングシステム)、入力装置(例えば、キーボード、マイクロフォン、マウスなど)、音声入力機能などといった、閲覧場所以外のデバイス特性を考慮することができる。追加的に、または代替的に、ユーザの好み(例えば、ユーザが一番上に画像、次いで名前情報を配置し、住所情報は配置しないような好み)および/またはデータタイプ(例えば、財務、ビジネス)に基づいて、UIを作成することができる。
別の例では、ユーザがUIと相互作用して、メタデータをユーザ相互作用に応じて生成するような方法でそのUIを変更することができる。次いで、このメタデータを添付、またはエンティティとともに入ってくる既存のメタデータとマージすることができ、エンジンは、エンティティを提供されたメタデータだけでなく、エンドユーザが生成したメタデータも、入力として受け取る。
プロパティを、生成されたUIに基づくアクセスレベルに関連付けることができる。例えば、ユーザの体重情報は読み取り専用のプロパティとすることができる。あるいは、番地プロパティなどを備える住所は、書き込み可能である。
エンジンコンポーネントはその場所に書き込むために、UI内にエンティティの位置づけの様々なレイアウトを選択し、起動することができる。以下に4つの例を挙げるが、当然のことながら他のレイアウトを使用することもできる。図6は、水平フローレイアウト600を示す。フローレイアウトでは、エンティティの提示は上から下および左から右となる。図7は、垂直フローレイアウト700を示す。図8は、水平レイアウト800を示す。図9は垂直レイアウト900を示す。
特定のエンティティを表す、作成されている形式の目的によって、メタデータを追加して、作成されているビューに固有の方法でUI作成を導くことができる。一例として電子メールエンティティを挙げると、電子メールは、送信者、受信者、電子メールを送信した日時、電子メールを受信したある特定の日時、および本文を有する。電子メールの本文は一般的に、1つまたは複数のパラグラフ(例えば、テキスト、画像、リンクなど)の形式で、大きなひとまとまりの情報が可能である。例えば、開発者により電子メールの本文に与えられる典型的なサイズは、10,000文字が可能である。電子メールをよりコンパクトな方法で表す際、本文に10,000文字を割り当てるのは望ましくない。電子メールをよりコンパクトな表現で表す形式を作成することができる。例えば、特定のビューに対して、電子メールに割り当てる場所を、電子メールの特定のビューに対して割り当てる場所が200文字になるように、削減することができる。ユーザは特定のビューの特定のフィールドに添付されたデフォルトのメタデータを無効にすることができる。
以下は、使用できる例示的な簡易なクラス階層である。一番上のレベルのEntityViewerクラスは次のようにできる。
public class EntityViewer : Control, IEntityEditor
エンティティを標準的な方法で編集できるように、エンジンコンポーネントはpublic interface IEntityEditorを実装することができる。個々のプロパティエディタは、public interface IEntityPropertyEditorを実装して、UIのそれぞれと一番上のレベルのエンティティビューワとの間のコントラクトを標準化することができる。TextPropertyEditorはそのインタフェースの特定の実装である。すなわち、
public class TextPropertyEditor : Control, IEntityPropertyEditor である。
EntityViewerは、各プロパティの見出しにあらかじめ定義したラベルを使用することができる。すなわち、
public class EntityPropertyLabel : Control である。
インタフェースの詳細の一例には以下を含むことができる。
public interface IEntityEditor

bool AllowEdit

get;
set;


object Entity

get;
set;


Type EntityType

get;
set;


event EventHandler CancelEdit;
event EventHandler<MemberValueChangedEventArgs>
ValueChanged;
event EventHandler<MemberValueChangedEventArgs>
ValueChangeCanceled;


public interface IEntityPropertyEditor

bool AllowEdit

get;
set;


object Value

get;
set;


Size PreferredSize(uint width, uint height,
uint widthVariation, uint heightVariation);

event EventHandler<MemberValueChangedEventArgs>
ValueChanged;
event EventHandler<MemberValueChangedEventArgs>
ValueChangeCanceled;
上記のコードに使用されているように、EntityViewerはエンジンコンポーネントであり、UIを作成し、ポピュレートすることを担っている。EntityViewerは、関連するエンティティの編集を、開始、コミット、またはキャンセルすることはない。例えば、これら3つのタスクの実施は、協働するデータナビゲータ制御を担う。EntityViewerは、IEntityEditorのValueChangedおよびValueChangedCanceledイベントを介して、個々のプロパティ制御により生じたプロパティ変更通知を転送する。さらに、EntityViewerは、ユーザがエンティティの編集をキャンセルしようとする際、そのCancelEditイベントを生じさせる。
エンティティプロパティエディタは、単一のプロパティの表現を担い、もしあれば、編集経験(experience)を取り扱う。プロパティエディタは、IEntityPropertyEditorを実装し、そのため次のようになる。すなわち、EntityViewerは、プロパティが読み取り専用であるべきか、読み書き可能であるべきかを告げることができ、EntityViewerおよびプロパティエディタはプロパティの値を交換する標準的な方法を有し、プロパティエディタは値の変更(およびキャンセル)を通知する標準的な方法を有し、かつ、EntityViewerはプロパティを閲覧するために必要とされる妥当な場所を見つけ出すことができる。
以下は、本開示するアーキテクチャプロセスの機能的なウォークスルーの一例である。EntityViewerのEntityTypeのプロパティを設定する際(例えば、Entityのプロパティを設定する際に直接または内部で)、制御は以下を実施することができる。すなわち、タイププロパティを列挙し、かつ関連するカスタムの属性にアクセスし、それらの属性に基づき、エンジンがEntityPropertyのオブジェクトおよびEntityPropertyGroupのオブジェクトのセットを作成し、かつオブジェクトをポピュレートし、提案された可視性を有する各プロパティに対し、エンジンがRequestVisibilityイベントを生じさせ、かつ開発者がデフォルトの振る舞いを無効にできるようにし(可視性はプロパティの重要性が閾値より下か上かによることに留意すべきである)、次いでプロパティ制御を、プロパティタイプ、潜在的なレンダリングのヒント、およびRequestPropertyRenderControlTypeイベントに基づいて選択し(プロパティはIEntityPropertyEditor実装に関連する必要はなく、かつエンティティビューワは、いくつかのストック制御、すなわちTextBlock、TextBox、DateTimePicker、およびPictureBoxを取り扱うこともできることに、一応留意すべきである)、レンダリングのヒントが全く与えられない場合、プロパティがUIDescriptionPropertyUsage.ImageSourceを使用する際にはPictureBoxを、および/またはプロパティタイプがSystem.DateTimeである際にはDateTimePickerを、エンティティビューワが選択し、各プロパティ制御および関連するラベルの好ましいサイズを判定し、そこから、グループの好ましいサイズを計算し、最終的に、グループを表す制御を作成する(GroupBox制御)。
エンジンが自らをレンダリングする際には、エンジンはまず、プロパティの重要性およびGroupImportanceDefinitionのプロパティに従って、グループを分類する。次いで、様々なグループ、ラベル、およびプロパティ制御を、現在のレイアウト戦略に従ってレイアウトする。Entityのプロパティを設定する際、タイプが変わっており、プロパティ制御がIEntityPropertyEditor.Valueの要素を介してポピュレートされている場合、UIを再生成する。
以下は、本開示のアーキテクチャの新規の態様を実施する例示的な方法を表す、一連のフローチャートである。説明を簡潔にするために、例えば、フローチャートまたはフロー図の形式で本明細書に示した1つまたは複数の方法を、一連の動作として示し、説明するが、当然のことながら、それらの方法を動作の順序により限定するものではなく、それにより、ある動作を異なる順序で行ってもよく、かつ/または、本明細書に示し説明した他の動作と並行して行ってもよい。例えば、状態図など、一連の相関する状態またはイベントとして、代替的に方法を表すことができることは、当業者には理解し認識されるであろう。さらに、方法で示した動作すべてが新規の実装に必要とは限らない。
図10は、インタフェースを生成するコンピュータ実装の方法を示す。1000において、メタデータをエンティティに関連付ける。1002において、メタデータおよび装置の閲覧可能な場所に基づいてエンティティを提示するための、装置に対するユーザインタフェースを自動的に作成する。
図11は、生成したユーザインタフェースにレイアウト戦略を適用する方法を示す。
1100において、エンジンコンポーネントが、エンティティタイプのプロパティが設定されたことを検出する。1102において、エンジンコンポーネントがエンティティのメタデータにアクセスし、処理する。1104において、レンダリングを開始する。1106において、重要性のプロパティおよびグループ重要性定義のプロパティに従って、グループを分類する。1108において、レイアウト戦略情報にアクセスする。1110において、グループをレンダリングし、戦略に従ってプロパティ制御にラベルを付ける。
図12は、エンティティタイプのプロパティが設定された際、エンジンにより処理する方法を示す。1200において、エンジンが、エンティティタイプのプロパティが設定されたことを検出する。1202において、タイププロパティを列挙し、関連するメタデータにアクセスする。1204において、エンティティプロパティのオブジェクトを作成、およびエンティティプロパティグループのオブジェクトを作成し、各々をポピュレートする。1206において、可視性のデータを公開、および提示し、デフォルトを無効にする。1208において、タイプ、レンダリングのヒント、およびレンダリング制御タイプイベントに基づいて、プロパティ制御を選択する。1210において、各プロパティおよび関連するラベルのサイズを計算する。1212において、グループのサイズを計算する。1214において、グループを表す制御を作成する。
ユーザに情報を表示するある特定の方法を、スクリーンショットとしてある特定の図に関して示し、説明しているが、他の様々な代替方法を使用できることは、当業者には認識されるであろう。用語「スクリーン」、「スクリーンショット」、「ウェブページ」、「ドキュメント」、および「ページ」は、本明細書では一般に代替可能に使用されている。ページまたはスクリーンは、表示記述として、グラフィカルユーザインタフェースとして、またはスクリーン(例えば、パーソナルコンピュータ、PDA、携帯電話、または他の適切な装置)上に情報を示す他の方法によって、記憶され、および/または送信される。そこでは、レイアウトおよびページ上に表示すべき情報またはコンテンツを、メモリ、データベース、または別の記憶ファシリティ内に記憶する。
本アプリケーションにおいて使用されるように、用語「コンポーネント」および「システム」はコンピュータ関連エンティティ、すなわち、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかを指すよう意図している。例えば、コンポーネントは、プロセッサ上で実行しているプロセス、プロセッサ、ハードディスクドライブ、(光記憶媒体、および/または磁気記憶媒体の)複数の記憶ドライブ、オブジェクト、実行ファイル、実行のスレッド、プログラム、および/またはコンピュータが可能であるが、それらに限らない。例として、サーバ上で実行中のアプリケーションおよびサーバの両方ともが、コンポーネントになり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行のスレッド内にあることができ、かつコンポーネントを1つのコンピュータ上に局在化させる、および/または2つ以上のコンピュータ間に分散することができる。用語「例示的」を、本明細書では、例、事例、例示として与えることを意味するよう使用してもよい。「例示的」として本明細書で説明する態様または設計を、必ずしも、他の態様または設計より好適または有利として解釈するべきではない。
ここで図13を参照すると、メタデータをエンティティに関連付け、本開示のアーキテクチャに従ってUIを自動的に生成するよう動作可能な、コンピューティングシステム1300のブロック図が示してある。本開示のアーキテクチャの様々な態様に追加のコンテキストを与えるために、図13および以下の説明により、様々な態様を実装できる適切なコンピューティングシステム1300の簡潔な、一般的な説明を提供するよう意図している。上記説明は、1つまたは複数のコンピュータ上で実行できるコンピュータ実行可能命令の一般的なコンテキストで記述しているが、新規実施形態を、他のプログラムモジュールとの組み合わせにおいて、および/またはハードウェアおよびソフトウェアの組み合わせとして実装することもできることは、当業者には認識されるであろう。
一般的に、プログラムモジュールには、特定のタスクを実施するか、または特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、本発明の方法を、他のコンピュータシステム構成で実践できることは、当業者には認識されるであろう。他のコンピュータシステム構成には、シングルプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、および、パーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品などを含み、その各々を、1つまたは複数の関連する装置に、動作可能に接続することができる。
例示した態様を、通信ネットワークを介してリンクするリモートの処理装置によってある特定のタスクを実施する、分散コンピューティング環境において実践することもできる。分散コンピューティング環境においては、プログラムモジュールを、ローカルおよびリモート両方のメモリ記憶装置に配置することができる。
コンピュータには、一般的にさまざまなコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、コンピュータによりアクセスできる任意の利用可能な媒体が可能であり、揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体を含む。例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を備えることができるが、これらに限らない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装した、揮発性および不揮発性、取り外し可能および取り外し不可能媒体を含む。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、DVD(digital video disk)もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を記憶するために使用することができ、コンピュータによりアクセス可能な任意の他の媒体を含むが、これらに限らない。
再び図13を参照すると、様々な態様を実装するための例示的コンピューティングシステム1300は、処理ユニット1304、システムメモリ1306、およびシステムバス1308を有するコンピュータ1302を含んでいる。処理ユニット1304に対してのシステムメモリ1306を含むが、これには限らず、システムバス1308はシステムコンポーネントにインタフェースを提供する。処理ユニット1304は、様々な市販の任意なプロセッサを利用できる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを、処理ユニット1304として使用してもよい。
システムバス1308は、メモリバス(メモリコントローラを伴うものまたは伴わないもの)にさらに相互接続することができる数種のバス構造のうち任意のもの、周辺バス、および様々な市販の利用可能なバスアーキテクチャのうち任意のものを使用するローカルバスが可能である。システムメモリ1306には不揮発性メモリ(NON−VOL)1310、および/または揮発性メモリ1312(例えば、RAM(random access memory)を含むことができる。BIOS(basic input/output system)を、不揮発性メモリ1310(例えば、ROM、EPROM、EEPROMなど)内に記憶することができ、そのBIOSは、例えば起動中に、コンピュータ1302内の要素間での情報の転送を支援する基本ルーチンである。揮発性メモリ1312には、データをキャッシュするための静的RAMなど、高速RAMを含むこともできる。
コンピュータ1302は、内部HDD(hard disk drive)1314(例えば、EIDE、SATA)を含み、適切な筐体、(例えば、取り外し可能ディスケット1318から読み書きするための)磁気FDD(floppy disk drive)1316、および(例えば、CD−ROMディスク1322を読み取る、またはDVDなどの他の大容量の光媒体から読み書きするための)光ディスクドライブ1320内で外部使用するように、その内部HDD1314を構成してもよい。HDD1314、FDD1316、および光ディスクドライブ1320を、それぞれ、HDDインタフェース1324、FDDインタフェース1326、および光ドライブインタフェース1328によって、システムバス1308に接続することができる。外部ドライブ実装に対するHDDインタフェース1324には、USB(Universal Serial Bus)およびIEEE1394インタフェース技術の少なくとも1つまたは両方を含むことができる。
ドライブおよび関連するコンピュータ可読媒体は、データの不揮発性記憶装置、データ構造、コンピュータ実行可能命令などを提供する。コンピュータ1302に対して、ドライブおよび媒体は、任意のデータの記憶を適切なデジタルフォーマットで収容する。上記のコンピュータ可読媒体の記述は、HDD、取り外し可能磁気ディスケット(例えば、FDD)、およびCDまたはDVDなどの取り外し可能光媒体を指すが、当業者にとっては当然のことながら、ジップドライブ、磁気カセット、フラッシュメモリカード、カートリッジなどといった、コンピュータにより読み取り可能な他種の媒体を、例示的なオペレーティング環境において使用してもよく、任意のそのような媒体は、本開示のアーキテクチャの新規の方法を実施するためのコンピュータ実行可能命令を含んでもよい。
オペレーティングシステム1330、1つまたは複数のアプリケーションプログラム1332、他のプログラムモジュール1334、およびプログラムデータ1336を含む、いくつかのプログラムモジュールを、ドライブおよび揮発性メモリ1312内に記憶することができる。1つまたは複数のアプリケーションプログラム1332、他のプログラムモジュール1334、およびプログラムデータ1336には、例えば、メタデータコンポーネント102、関連付け104、メタデータ106、エンティティプロパティ108、エンジンコンポーネント110、UI112、デバイス特性114、エンティティタイプ200、エンティティインスタンス202、メタデータの例300、エンジン402、UI404、UI500、水平フローおよび垂直フロー(600および700)、水平レイアウトおよび垂直レイアウト(800および900)、および図10〜12の方法を含むことができる。装置116は、コンピュータ1302、携帯電話、PDA、または情報を提示する他の装置が可能である。
オペレーティングシステム、アプリケーション、モジュール、および/またはデータのすべて、またはその一部を、揮発性メモリ1312にキャッシュすることもできる。当然のことながら、本開示のアーキテクチャを、様々な市販の利用可能なオペレーティングシステム、またはオペレーティングシステムの組み合わせで実装することができる。
例えば、キーボード1338およびマウス1340などのポインティングデバイスといった、1つまたは複数の有線/無線入力装置を介して、ユーザはコンピュータ1302にコマンドおよび情報を入力できる。他の入力装置(図示せず)には、マイクロフォン、IRリモートコントロール、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーンなどを含んでもよい。これらおよび他の入力装置を、システムバス1308に接続した入力装置インタフェース1342を介して、処理ユニット1304に接続することがよくあるが、それらの入力装置を、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェースなどといった他のインタフェースに接続することができる。
モニタ1344または他種の表示装置をもまた、ビデオアダプタ1346などのインタフェースを介して、システムバス1308に接続することができる。モニタ1344に加えて、一般的にコンピュータは、スピーカ、プリンタなどといった他の周辺出力装置(図示せず)を含む。
コンピュータ1302は、リモートコンピュータ(単数または複数)1348などの1つまたは複数のリモートコンピュータへの有線および/または無線通信を介して、論理接続を使用したネットワーク環境において動作してもよい。リモートコンピュータ(単数または複数)1348は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンターテインメント機器、ピアデバイスまたは他の共通ネットワークノードが可能であり、一般的に、コンピュータ1302に関して説明した要素の多くまたはすべてを含むが、簡潔にするため、メモリ/記憶装置1350のみを示している。示された論理接続は、LAN(local area network)1352、および/または、例えばWAN(wide area network)といった、より大きなネットワークへの有線/無線接続を含む。LANおよびWANのようなネットワーク環境は、事務所および会社では普通のことであり、それらにより、例えばインターネットといったグローバル通信ネットワークにそのすべてを接続できる、イントラネットなどの企業規模のコンピュータネットワークが容易となる。
LANネットワーク環境において使用する際、コンピュータ1302は、有線および/もしくは無線通信ネットワークインタフェース、またはアダプタ1356を介して、LAN1352に接続される。アダプタ1356は、LAN1352への有線および/または無線通信を容易にすることができ、アダプタ1356には、そのアダプタ1356の無線機能と通信するためにアダプタに配置された無線アクセスポイントを含んでもよい。
WANネットワーク環境において使用する際、コンピュータ1302は、モデム1358を含むことができるか、WAN1354上の通信サーバに接続されるか、または、インターネットによってなど、WAN1354上で通信を確立するための他の手段を有する。モデム1358は、内部または外部の有線および/または無線装置が可能であり、入力装置インタフェース1342を介して、システムバス1308に接続される。ネットワーク環境において、コンピュータ1302に関して示したプログラムモジュールまたはその一部を、リモートのメモリ/記憶装置1350に記憶することができる。当然のことながら、示したネットワーク接続は例示的であり、コンピュータ間で通信リンクを確立する他の手段を使用することができる。
コンピュータ1302は、例えば、プリンタ、スキャナ、デスクトップおよび/またはポータブルコンピュータ、PDA(personal digital assistant)、通信衛星、無線で検出可能なタグに関連付けられた任意の設備または場所(例えば、キオスク、新聞売店、化粧室)、および電話との無線通信(例えば、IEEE802.11空中を介した(over−the−air)変調技術)において動作可能に配置される無線装置といった、IEEE802標準ファミリを使用する有線および無線の装置またはエンティティと通信するよう動作可能である。これには、少なくともWi−Fi(すなわち、Wireless Fidelity)、WiMzx、およびBluetooth(商標)無線技術を含む。このように、通信は、従来のネットワークと同様にあらかじめ定義された構造であるか、または少なくとも2つの装置間の単にアドホックな通信が可能である。Wi−Fiネットワークは、IEEE802.11x(a、b、gなど)と称する無線技術を使用して、安全で信頼できる高速無線接続を提供する。Wi−Fiネットワークを使用して、コンピュータを、お互いに、インターネットに、および有線ネットワーク(IEEE802.3関連媒体および機能を使用する)に接続することができる。
上記説明には、本開示のアーキテクチャの例を含む。もちろん、コンポーネントおよび/または方法の考え得るすべての組み合わせを説明することはできないが、多くのさらなる組み合わせおよび置換が可能であることは、当業者には認識できるであろう。従って、新規アーキテクチャは、添付の特許請求の精神と範囲内にあるそのようなすべての変更、修正、および変形を包含するよう意図するものである。さらに、用語「含む」を発明を実施するための形態および特許請求の範囲のいずれかで使用する限りでは、そのような用語は、請求項で遷移語として使用される際「備える」と解釈されるように、用語「備える」と同様に包括的であるよう意図するものである。

Claims (20)

  1. メタデータのエンティティとの関連付けを作成し、ユーザが作成するメタデータのカスタムのセットによって前記メタデータを補足することを、ハードウェア内で少なくとも一部が実施される、メタデータコンポーネントであって、前記メタデータコンポーネントは、値の範囲により表される重要性メタデータを含み、前記メタデータコンポーネントは、より低い重要性を定義した重要性メタデータを、より低い重要性のエンティティプロパティと関連付けるメタデータコンポーネントと、
    装置のために、ユーザインタフェースを自動的に作成し、
    前記メタデータに基づき前記ユーザインタフェース内に前記エンティティを提示し、前記エンティティは、前記重要性メタデータおよびグループメタデータを使用するレイアウトに従い、並びに、前記装置のデバイスビューワの利用可能な場所に基づいて、ユーザインタフェース内に提示され、
    前記重要性メタデータに基づいて、前記ユーザインタフェース内のビューからより低い重要性エンティティプロパティを隠し、
    記隠されたより低い重要性エンティティプロパティを、選択可能なリンクを介して閲覧可能にするエンジンコンポーネントであって、
    前記エンジンコンポーネントは、前記ユーザインタフェースを生成するためのエンティティタイプ、あるいは、前記ユーザインタフェースを生成し、かつ前記ユーザインタフェースをポピュレートするためのエンティティインスタンスを公開し、前記エンジンコンポーネントは、前記装置のデバイス特性に基づいて、前記ユーザインタフェースを作成するために、複数のエンジンを含むエンジンコンポーネントとを備え、
    前記メタデータコンポーネントと前記エンジンコンポーネントは、前記メタデータの前記エンティティとの関連付けを作成するために使用されるアプリケーションの概念ができた時に未知であったエンティティタイプを含む動的に生成される任意のエンティティの取り扱いを容易にする
    ことを特徴とするコンピュータ実装のインタフェース生成システム。
  2. 前記エンジンコンポーネントは、視覚化、編集、および検証を含む、前記エンティティとのユーザ相互作用を容易にすることを特徴とする請求項1に記載のシステム。
  3. 前記メタデータコンポーネントおよび前記エンジンコンポーネントは、基幹業務(LOB(line−of−business))アプリケーションの一部分であることを特徴とする請求項1に記載のシステム。
  4. 前記メタデータは、可視性、サイズ、レンダリングのヒント、グループ化、重要性、および使用法に関することを特徴とする請求項1に記載のシステム。
  5. 前記デバイス特性は、CPU、メモリ、ソフトウェア、利用可能な場所、入力装置、または、音声入力機能のうちの1つまたは複数を含むことを特徴とする請求項1に記載のシステム。
  6. 前記エンジンコンポーネントは、さらに、前記エンティティの1つまたは複数のプロパティを前記ユーザインタフェース上の最小サイズに制約することを特徴とする請求項1に記載のシステム。
  7. 前記エンジンコンポーネントは、さらに、前記エンティティの1つまたは複数のプロパティを前記ユーザインタフェース上の最大サイズに制約することを特徴とする請求項1に記載のシステム。
  8. 前記グループメタデータは、グループの閲覧位置を決定づけることを特徴とする請求項1に記載のシステム。
  9. 前記グループメタデータは、グループが前記ユーザインタフェース上に提示されるかどうかを決定づけることを特徴とする請求項1に記載のシステム。
  10. ユーザインタフェースを生成するコンピュータが実行可能な方法であって、
    メタデータをエンティティに関連付けるステップであって、前記メタデータ前記エンティティと関連付けるために使用されるアプリケーションの概念ができた時に未知であったエンティティタイプを含むステップと、
    ユーザが作成するメタデータのカスタムのセットによって前記メタデータを補足するステップと、
    前記メタデータおよび装置の閲覧可能な場所に基づき前記エンティティを提示するため、前記装置に対するユーザインタフェースを自動的に作成するステップと、
    値の範囲により表される重要性メタデータに基づくレイアウトに従い、ユーザインタフェース内に、複数のエンティティプロパティを提示するステップであって、前記重要性メタデータは、前記複数のエンティティプロパティの相対的な重要性を定義し
    グループ内のお互いに関連付けられたエンティティプロパティを置くステップと、
    グループメタデータに基づいてレイアウト戦略に従う順序で前記グループの前記エンティティプロパティを提示するステップとを含むステップと、
    重要性閾値を開示するステップであって、前記重要性閾値は、多かれ少なかれ前記エンティティのそれぞれのフィールドを選択的に示すために使用され、前記重要性閾値より少ない重要性を有するプロパティは、無視され、かつ、前記ユーザインタフェース内に提示されない、ステップと
    を含むことを特徴とする方法。
  11. 記メタデータに基づき、エンティティにパスされたデータを再解釈するステップをさらに含むことを特徴とする請求項10に記載の方法。
  12. PU、メモリ、ソフトウェア、閲覧可能な場所、入力装置、音声入力機能、あるいはユーザの好みのうちの1つまたは複数に基づき前記エンティティのレイアウトを選択するステップを更に含むことを特徴とする請求項10に記載の方法。
  13. 視覚化、編集、および検証を含む、前記エンティティとのユーザ相互作用を容易にすることを特徴とする請求項10に記載の方法。
  14. 前記エンティティは、基幹業務(LOB(line−of−business))アプリケーション内のビジネスエンティティであることを特徴とする請求項10に記載の方法。
  15. 前記メタデータは、可視性、サイズ、レンダリングのヒント、グループ化、重要性、および使用法に関することを特徴とする請求項10に記載の方法。
  16. 前記グループメタデータは、前記グループの閲覧位置を決定づけることを特徴とする請求項10に記載の方法。
  17. 前記グループメタデータは、前記グループが前記ユーザインタフェース上に提示されるかどうかを決定づけることを特徴とする請求項10に記載の方法。
  18. プロセッサベースのシステムにインタフェースを生成させることを可能とするコンピュータプログラムロジックを記録したコンピュータ可読記録媒体であって、前記コンピュータプログラムロジックは、
    前記プロセッサベースのシステムにメタデータのエンティティとの関連付けを作成させることを可能と、ユーザが作成するメタデータのカスタムのセットによって前記メタデータを補足する第1のプログラム可能論理モジュールであって、前記第1のプログラム可能論理モジュールは、値の範囲により表される重要性メタデータを含み、前記第1のプログラム可能論理モジュールは、より低い重要性を定義する前記重要性メタデータを重要性のより低いエンティティプロパティに関連付ける第1のプログラム可能論理モジュールと、
    前記プロセッサベースのシステムに
    装置に対するユーザインタフェースを自動的に作成することと、
    前記メタデータ、重要性メタデータ、及び、グループメタデータを使用するレイアウトに従い、並びに、前記装置のデバイスビューワの利用可能な場所に基づき、前記ユーザインタフェース内に前記エンティティを提示することと、
    前記重要性メタデータに基づいて、前記ユーザインタフェース内のビューから前記より低い重要性エンティティプロパティを隠すことと、
    前記隠されたより低い重要性エンティティプロパティを、選択可能なリンクを介して閲覧可能にすることと、
    前記ユーザインタフェースを生成するためのエンティティタイプ、あるいは、前記ユーザインタフェースを生成し、かつ前記ユーザインタフェースをポピュレートするためのエンティティインスタンスを公開すること、
    を実行させることを可能とする第2のプログラム可能論理モジュールであって、前記第2のプログラム可能論理モジュールは、前記プロセッサベースのシステムに前記装置のデバイス特性に基づき前記ユーザインタフェースを作成させることを可能とする複数のプログラム可能論理モジュールを含む、第2のプログラム可能論理モジュールとを備え、
    前記第1のプログラム可能論理モジュールと前記第2のプログラム可能論理モジュールは、前記プロセッサベースのシステムに、前記メタデータの前記エンティティとの関連を作成するために使用されるアプリケーションの概念ができた時に未知であったエンティティタイプを含む動的に生成される任意のエンティティの取り扱いを容易にさせることを特徴とするコンピュータ可読記録媒体。
  19. 前記第1のプログラム可能論理モジュールと前記第2のプログラム可能論理モジュールは、基幹業務(LOB(line−of−business))アプリケーションの一部分であることを特徴とする請求項18に記載のコンピュータ可読記録媒体
  20. 前記メタデータは、可視性、サイズ、レンダリングのヒント、グループ化、重要性、および使用法に関することを特徴とする請求項18に記載のコンピュータ可読記録媒体
JP2011521182A 2008-07-28 2009-07-16 エンティティの相互作用のためのユーザインタフェースの自動生成 Expired - Fee Related JP5367818B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/180,563 US8209355B2 (en) 2008-07-28 2008-07-28 Automatic user interface generation for entity interaction
US12/180,563 2008-07-28
PCT/US2009/050890 WO2010014429A2 (en) 2008-07-28 2009-07-16 Automatic user interface generation for entity interaction

Publications (3)

Publication Number Publication Date
JP2011529605A JP2011529605A (ja) 2011-12-08
JP2011529605A5 JP2011529605A5 (ja) 2012-08-30
JP5367818B2 true JP5367818B2 (ja) 2013-12-11

Family

ID=41569568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011521182A Expired - Fee Related JP5367818B2 (ja) 2008-07-28 2009-07-16 エンティティの相互作用のためのユーザインタフェースの自動生成

Country Status (6)

Country Link
US (1) US8209355B2 (ja)
EP (1) EP2321723B1 (ja)
JP (1) JP5367818B2 (ja)
KR (1) KR101578249B1 (ja)
CN (1) CN102105862B (ja)
WO (1) WO2010014429A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513882B2 (en) 2010-04-15 2016-12-06 Microsoft Technology Licensing, Llc Platform independent presentation composition
KR101541988B1 (ko) 2011-03-24 2015-08-04 이온 서지컬 리미티드 복강경 시스템
EP2608026A1 (de) * 2011-12-16 2013-06-26 Schneider Electric Automation Gmbh Verfahren zur Generierung eines Software-Moduls für ein Feldgerät aus einer Gerätebeschreibungsdatei sowie Gerätebeschreibungsdatei
WO2013094880A1 (ko) * 2011-12-23 2013-06-27 Kim Jung-Han 그래픽 사용자 인터페이스를 이용한 프레임에디팅방법 및 프레임에디팅시스템
US9990347B2 (en) 2012-01-23 2018-06-05 Microsoft Technology Licensing, Llc Borderless table detection engine
CN104067293B (zh) 2012-01-23 2017-07-25 微软技术许可有限责任公司 矢量图分类引擎
US9116710B2 (en) * 2012-12-22 2015-08-25 Oracle International Corporation Dynamic user interface authoring
US9953008B2 (en) 2013-01-18 2018-04-24 Microsoft Technology Licensing, Llc Grouping fixed format document elements to preserve graphical data semantics after reflow by manipulating a bounding box vertically and horizontally
US10296562B2 (en) 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US9772755B2 (en) * 2013-11-15 2017-09-26 Microsoft Technology Licensing, Llc Remote control for displaying application data on dissimilar screens
CN105335431A (zh) * 2014-08-11 2016-02-17 青岛海尔智能家电科技有限公司 界面文件的处理方法及装置、控制消息的处理方法及装置
CN104238885B (zh) * 2014-09-11 2019-09-10 吴涛军 一种适用于多设备内容显示的自动布局以及内容显示的方法及装置
CN104793847B (zh) * 2015-04-28 2018-10-12 小米科技有限责任公司 图片展示方法及装置
CN109739600B (zh) * 2018-12-26 2022-02-25 网易传媒科技(北京)有限公司 数据处理方法、介质、装置和计算设备
CN115964131B (zh) * 2023-03-16 2023-05-16 中国人民解放军国防科技大学 支持多仿真引擎的仿真模型管理系统和仿真模型调度方法
CN117492721B (zh) * 2023-12-29 2024-04-16 中建三局信息科技有限公司 一种应用于建筑数字化信息系统的通用快速开发方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035300A (en) * 1995-12-15 2000-03-07 International Business Machines Corporation Method and apparatus for generating a user interface from the entity/attribute/relationship model of a database
JP2988911B1 (ja) * 1998-07-03 1999-12-13 三菱電機株式会社 プログラム自動生成装置
JP2000029677A (ja) * 1998-07-15 2000-01-28 Hitachi Software Eng Co Ltd 画面構成自動生成装置
US6308168B1 (en) * 1999-02-09 2001-10-23 Knowledge Discovery One, Inc. Metadata-driven data presentation module for database system
US6738077B1 (en) * 2000-07-18 2004-05-18 Apple Computer, Inc. Dynamic generation and automated distribution of user interface from database model
US7039875B2 (en) * 2000-11-30 2006-05-02 Lucent Technologies Inc. Computer user interfaces that are generated as needed
JP2002297365A (ja) * 2001-03-30 2002-10-11 Canon Inc 処理装置、動的処理実行装置、情報処理システム、処理装置の制御方法、動的処理実行装置の制御方法
US7392483B2 (en) * 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7062502B1 (en) * 2001-12-28 2006-06-13 Kesler John N Automated generation of dynamic data entry user interface for relational database management systems
WO2003102766A1 (en) 2002-05-31 2003-12-11 Caleigo Ab Method and system for generating user interface views
AU2002951909A0 (en) * 2002-10-04 2002-10-24 Tenix Industries Pty Limited A method of adaptively interfacing with data repository
US7577912B2 (en) * 2003-03-27 2009-08-18 Sap Ag Suggestive form factors
US7242413B2 (en) * 2003-05-27 2007-07-10 International Business Machines Corporation Methods, systems and computer program products for controlling tree diagram graphical user interfaces and/or for partially collapsing tree diagrams
US7464367B2 (en) * 2003-07-14 2008-12-09 Microsoft Corporation Method and system for designing customizable applications and user-interfaces based on user-defined policies and metadata
EP1571547A1 (en) 2004-02-27 2005-09-07 Research In Motion Limited System and method for building wireless applications with intelligent mapping between user interface and data components
US7565623B2 (en) * 2004-04-30 2009-07-21 Microsoft Corporation System and method for selecting a view mode and setting
US7346846B2 (en) * 2004-05-28 2008-03-18 Microsoft Corporation Strategies for providing just-in-time user assistance
US7665014B2 (en) * 2004-06-03 2010-02-16 Microsoft Corporation Method and apparatus for generating forms using form types
US7363578B2 (en) * 2004-06-03 2008-04-22 Microsoft Corporation Method and apparatus for mapping a data model to a user interface model
US7523440B2 (en) * 2004-11-16 2009-04-21 The Mathworks, Inc. Dynamic generation of formatted user interfaces in software environments
US20060136832A1 (en) * 2004-12-17 2006-06-22 Siebel Systems, Inc. Flexible and extensible combination user interfaces
US7698293B2 (en) * 2005-01-28 2010-04-13 Microsoft Corporation System and methods for capturing structure of data models using entity patterns
US7509649B2 (en) * 2005-03-03 2009-03-24 Research In Motion Limited System and method for conversion of generic services' applications into component based applications for devices
US20060224992A1 (en) * 2005-04-01 2006-10-05 Microsoft Corporation Graphical user interface management
US20060230379A1 (en) * 2005-04-06 2006-10-12 Microsoft Corporation System and method for generating a user interface based on metadata exposed by object classes
US8799800B2 (en) * 2005-05-13 2014-08-05 Rockwell Automation Technologies, Inc. Automatic user interface generation
JP2006350834A (ja) * 2005-06-17 2006-12-28 Sharp Corp 情報入力装置および情報入力方法
US8095565B2 (en) * 2005-12-05 2012-01-10 Microsoft Corporation Metadata driven user interface
EP1958090A4 (en) * 2005-12-07 2008-12-03 3Dlabs Inc Ltd METHOD FOR MANIPULATING WEBSITES
US20070157087A1 (en) * 2005-12-30 2007-07-05 Karl-Heinz Foerg Method and system for automatically generating user interfaces for integration
US20070233680A1 (en) * 2006-03-31 2007-10-04 Microsoft Corporation Auto-generating reports based on metadata

Also Published As

Publication number Publication date
CN102105862A (zh) 2011-06-22
EP2321723A4 (en) 2011-09-07
EP2321723A2 (en) 2011-05-18
US20100023547A1 (en) 2010-01-28
CN102105862B (zh) 2014-07-23
EP2321723B1 (en) 2018-09-05
US8209355B2 (en) 2012-06-26
WO2010014429A2 (en) 2010-02-04
WO2010014429A3 (en) 2010-05-14
KR20110044853A (ko) 2011-05-02
JP2011529605A (ja) 2011-12-08
KR101578249B1 (ko) 2015-12-16

Similar Documents

Publication Publication Date Title
JP5367818B2 (ja) エンティティの相互作用のためのユーザインタフェースの自動生成
US10466971B2 (en) Generation of an application from data
JP5031248B2 (ja) 複数のアプリケーションによって生成された出力物に一貫性のある視覚的外観を提供するシステムおよび方法
US9832149B2 (en) Treatment of cloud-based and local attachments in communication applications
US20170124050A1 (en) Compound data objects
JP4812337B2 (ja) フォームタイプを使用してフォームを生成する方法および装置
RU2495484C2 (ru) Структурированная соавторская разработка
US20170139890A1 (en) Smart card presentation of tabular data from collaboration database
TWI469050B (zh) 用於顯示與訊息緒相關的檔案附件清單之方法、系統、及電腦可讀取儲存媒體
US9448976B2 (en) Package file presentation including reference content
US20090292980A1 (en) Authoring package files
US10223698B2 (en) Integrating a web-based CRM system with a PIM client application
US20140033047A1 (en) Package file presentation
US10726036B2 (en) Source service mapping for collaborative platforms
US9946692B2 (en) Package file presentation
TW201525730A (zh) 註解提示顯示
US10218709B2 (en) Share permissions and organization of content in an application with multiple levels of organizational hierarchy
US20150178391A1 (en) Intent based content related suggestions as small multiples
US20070050752A1 (en) Quick-creating objects in an application
US11295273B2 (en) Normalized object exposure for collaborative platforms
US10248300B2 (en) Polymorph rendering for collaborative platforms
JP2006252045A (ja) ファイル分類表示装置、ファイル分類表示方法及びファイル分類表示プログラム
US9292506B2 (en) Dynamic generation of demonstrative aids for a meeting
US11842108B2 (en) Systems and methods for creating customized print or electronic materials
JP2013101538A (ja) サーバ装置およびそのプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120709

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20130405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130701

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20130719

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130911

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees