(57)【特許請求の範囲】
【請求項１】
アプリケーションの実行に応じて、第１デバイスに関する第１デバイス特性を特定する段階と、
前記第１デバイス特性および前記アプリケーションの抽象化ユーザインターフェース（ＡＵＩ）に少なくとも基づいて、第１の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成する段階と、
前記アプリケーションの前記実行のために、前記第１のＣＵＩを前記第１デバイスに表示する段階と、
前記第１デバイス特性の変更を判断する段階と、
必要に応じて、更新された前記第１デバイス特性および前記アプリケーションの同一の前記ＡＵＩに少なくとも基づいて、第２の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成する段階と、
前記ＡＵＩに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、
前記複数のユーザインターフェース要素の動画領域の全画面領域に対する必要サイズに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する段階と
を備え、
前記第１デバイス特性の変更を判断する段階は、前記第１デバイスのディスプレイの特性の変更を判断する段階を含む
方法。
【請求項２】
前記第１デバイス特性は、画面サイズ、解像度、および、非タッチスクリーン入力インターフェースの存在についての情報を含む請求項１に記載の方法。
【請求項３】
前記第１のＣＵＩを生成する段階は、
２つ以上の画面ページに分割するか判断する段階と、
前記２つ以上の画面ページのそれぞれに、ナビゲーションコントロールを挿入する段階とを備え、
最後の画面ページには、次の画面へのナビゲーションコントロールが含まれない請求項１又は２に記載の方法。
【請求項４】
前記複数のユーザインターフェース要素を特定する段階は、前記第１デバイス特性および前記アプリケーションの前記ＡＵＩにさらに基づき、
前記第１デバイス特性に少なくとも基づいて、前記アプリケーションの実行のために１以上の画面ページを使用するか判断する段階と、
前記１以上の画面ページに、前記複数のユーザインターフェース要素のそれぞれをどこに表示させるか判断する段階とをさらに備える請求項１又は２に記載の方法。
【請求項５】
２つ以上の画面ページを１つの画面ページに結合して、前記２つ以上の画面ページから前記１つの画面ページへとユーザインターフェース要素を移動させるか判断する段階をさらに備える請求項１から４の何れか一項に記載の方法。
【請求項６】
前記複数のユーザインターフェース要素を特定する段階は、前記第１デバイス特性および前記ＡＵＩの前記アプリケーションにさらに基づき、
複数のユーザインターフェース要素のそれぞれの優先順位情報および残りの画面ページ情報に基づいて、１つの画面ページにおけるユーザインターフェース要素の数の推定値を計算する段階をさらに備える請求項１又は２に記載の方法。
【請求項７】
第１画面ページを作成する段階と、
前記第１画面ページのサイズに少なくとも基づいて、どのユーザインターフェース要素が前記第１画面ページに適するかの推定を生成する段階と、
レンダリングされていないユーザインターフェース要素が存在する場合には、第２画面ページへと分割することを決定する段階と、
をさらに備える請求項１又は２に記載の方法。
【請求項８】
前記再ページネーションを実行する段階は、
前記複数のユーザインターフェース要素それぞれの最小サイズ、前記複数のユーザインターフェース要素それぞれの優先順位情報、前記複数のユーザインターフェース要素それぞれのグループ特性情報、前記複数のユーザインターフェース要素それぞれの必要サイズ、または、これらの組み合わせに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する段階
を含む請求項１又は２に記載の方法。
【請求項９】
前記ＡＵＩは、第２デバイスの情報なしに生成され、
前記第２デバイスに対して、前記ＡＵＩに基づいて異なるＣＵＩが動的に生成される請求項１から８の何れか一項に記載の方法。
【請求項１０】
前記第１デバイス特性は、１以上のハードウェアボタンについての情報を含み、
前記１以上のハードウェアボタンおよび前記第１デバイスのディスプレイに表示される１以上のソフトウェアボタンからのユーザ入力を受け付け可能な前記第１のＣＵＩを生成する段階をさらに備える請求項１から９の何れか一項に記載の方法。
【請求項１１】
ＧＵＩ設計から前記ＡＵＩを生成する段階をさらに備え、
前記ＡＵＩを生成する段階は、
前記アプリケーションに対する前記ＧＵＩ設計を分析する段階と、
複数のタスクベースの要素を特定する段階と、
前記複数のタスクベースの要素の表現を生成する段階と、
前記表現を前記アプリケーションの実行可能バイナリへと組み込む段階とをさらに備え、
抽象化された前記ＧＵＩは、変換言語で表されている請求項１に記載の方法。
【請求項１２】
前記複数のユーザインターフェース要素は、第１グループ識別子と関連付けられ、
同じグループ識別子の前記複数のユーザインターフェース要素は、１つの具体化グループウィジットとしてレンダリングされる請求項１又は２に記載の方法。
【請求項１３】
前記第１デバイス特性の変更を判断する段階は、前記第１デバイスに別のディスプレイが接続されたかを判断する段階を含み、前記第１デバイスに前記別のディスプレイが接続されたと判断した場合に、前記第２のＣＵＩを生成する段階を行う
請求項１から１２のいずれか１項に記載の方法。
【請求項１４】
前記第１デバイス特性の変更を判断する段階は、前記第１デバイスのディスプレイの画面解像度が変更されたかを判断する段階を含み、前記ディスプレイの前記画面解像度が変更されたと判断した場合に、前記第２のＣＵＩを生成する段階を行う
請求項１から１２のいずれか１項に記載の方法。
【請求項１５】
前記第１デバイス特性の変更を判断する段階において前記第１デバイス特性が変更されたと判断した場合に、自動で前記第２のＣＵＩを生成する段階を行う
請求項１から１４のいずれか１項に記載の方法。
【請求項１６】
アプリケーションの実行に応じて、第１デバイスに関する第１デバイス特性を特定する段階と、
前記第１デバイス特性および前記アプリケーションの抽象化ユーザインターフェース（ＡＵＩ）に少なくとも基づいて、第１の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成する段階と、
前記アプリケーションの前記実行のために、前記第１のＣＵＩを前記第１デバイスに表示する段階と、
前記第１デバイス特性の変更を判断する段階と、
必要に応じて、更新された前記第１デバイス特性および前記アプリケーションの同一の前記ＡＵＩに少なくとも基づいて、第２の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成する段階と、
前記ＡＵＩに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、
前記複数のユーザインターフェース要素の動画領域の全画面領域に対する必要サイズに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する段階と
を備え、
前記第１デバイス特性の変更を判断する段階は、前記第１デバイスのディスプレイの特性の変更を判断する段階を含む方法をコンピュータに実行させるプログラム。
【請求項１７】
前記再ページネーションを実行する段階は、
前記複数のユーザインターフェース要素それぞれの最小サイズ、前記複数のユーザインターフェース要素それぞれの優先順位情報、前記複数のユーザインターフェース要素それぞれのグループ特性情報、前記複数のユーザインターフェース要素それぞれの必要サイズ、または、これらの組み合わせに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する段階を含む請求項１６に記載のプログラム。
【請求項１８】
プログラムを実行するシステムであって、
第１デバイスと、
第１デバイスディスプレイと、
前記第１デバイスで実行されるアプリケーションを格納するメモリとを備え、
前記第１デバイスは、
アプリケーションの実行に応じて、第１デバイスに関する第１デバイス特性を特定し、
前記第１デバイス特性および前記アプリケーションの抽象化ユーザインターフェース（ＡＵＩ）に少なくとも基づいて、第１の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成し、
前記アプリケーションの実行のために、前記第１デバイスディスプレイに、前記第１のＣＵＩを表示し、
前記第１デバイス特性の変更を判断し、必要に応じて、更新された前記第１デバイス特性および前記アプリケーションの同一の前記ＡＵＩに少なくとも基づいて、第２の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成し、
前記ＡＵＩに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定し、
前記複数のユーザインターフェース要素の動画領域の全画面領域に対する必要サイズに従って、前記複数のユーザインターフェース要素の再ページネーションを実行し、
前記第１デバイス特性の変更を判断することは、前記第１デバイスディスプレイの特性の変更を判断することを含む
システム。
【請求項１９】
前記再ページネーションを実行することは、
前記複数のユーザインターフェース要素それぞれの最小サイズ、前記複数のユーザインターフェース要素それぞれの優先順位情報、前記複数のユーザインターフェース要素それぞれのグループ特性情報、前記複数のユーザインターフェース要素それぞれの必要サイズ、または、これらの組み合わせに従って、前記複数のユーザインターフェース要素の再ページネーションを実行することを含む、請求項１８に記載のシステム。
【請求項２０】
前記ＡＵＩは、第２デバイスの情報なしに生成され、
前記第２デバイスに対して、前記ＡＵＩに基づいて異なるＣＵＩが動的に生成される請求項１８または１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータインターフェースの生成に関し、特に、複数のフォームファクターに対してコンピュータインターフェースを生成することに関する。
【背景技術】
【０００２】
一般的に、複数のプラットフォームにソフトウェアアプリケーションを配置する際に、グラフィカルユーザインターフェースは再設計および再生成される。多くの場合、入力制御に結合されるグラフィカルユーザインターフェースは、例えば、ノートブック、ネットブック、スマートフォン、モバイルインターネットデバイス（ＭＩＤ）、スマートＴＶ等の種々のデバイスに対して開発されている。
【０００３】
アプリケーションを複数のデバイスに適用させるのに、付加的な開発時間／コストが発生する。現在では、Ｊａｖａ（登録商標）ＳＤＫ（例えば、Ｊ２ＭＥ）は単純に、特定の１つの画面に、全てのウィジットを自動的にサイズ設定する（auto-sizing）することによって、様々なデバイスとの互換性を提供している。しかしながら、（大きなデバイスのページ上では適切な大きさである）ウィジットが、小型のデバイスの１画面ページに適合しない場合、上記の解決方法は採用できない。この場合、開発者は、デバイス各々に対して、新規のグラフィカルユーザインターフェースを再設計しなければならない。
【０００４】
本発明は、以下に記載する本発明の実施形態の詳細な説明および添付の図面により、より良く理解されるであろう。しかしながら、これら詳細な説明および添付の図面は、本発明を説明し理解するためのものであり、本発明を特定の実施形態に限定するものではない。
【図面の簡単な説明】
【０００５】
【図１】グラフィカルユーザインターフェース設計を分析し、具体的なグラフィカルユーザインターフェースを生成するプロセスの一実施形態を示したフロー図である。
【図２】具体化されたグラフィカルユーザインターフェースを生成するシステムの一実施形態を示したフロー図である。
【図３】具体化されたグラフィカルユーザインターフェースを生成するシステムの一実施形態を示したフロー図である。
【図４】本発明の一実施形態で使用されるコンピュータシステムを示した図である。
【図５】本発明の一実施形態で使用されるポイント・ツー・ポイントコンピュータシステムを示した図である。
【発明を実施するための形態】
【０００６】
グラフィカルユーザインターフェースを生成する方法について開示する。一実施形態において、方法は、アプリケーションを実行するデバイスと関連付けられたデバイス特性を特定する段階と、少なくともデバイス特性およびアプリケーションの抽象化ユーザインターフェース（abstract user interface：ＡＵＩ）に基づいて、具体化されたグラフィカルユーザインターフェース（ＣＵＩ）を生成する段階を備える。方法は、デバイスにＣＵＩを表示させる段階と、デバイス特性の変更を特定する段階とを備える。一実施形態において、方法はさらに、必要に応じて、更新されたデバイス特性およびアプリケーションの同じＡＵＩに少なくとも基づいて異なるＣＵＩを生成する段階を備える。
【０００７】
以下の詳細な説明では、本発明の実施形態の完全な説明を提供するべく、数多くの詳細事項が記載される。しかしながら、当業者であれば、本発明の実施形態はこれらの詳細事項がなくとも本発明を実行可能であることが理解できる。また、周知の構造およびデバイスは、本発明の実施形態の説明を明瞭にするべく、詳細にではなく、ブロック図の形態で示されている。
【０００８】
以下に記載する詳細な説明の一部は、コンピュータメモリ内のデータビットに対するオペレーションの記号表記およびアルゴリズムの形式で表される。これらのアルゴリズム的描写および表現は、データ処理技術を扱う当業者によって使用される手法であり、これによって、別の当業者に自身の仕事の内容を伝達する場合がある。  本明細書のアルゴリズムは、概して、所望の結果に導く段階の首尾一貫したシーケンスと考えられる。段階は、物理量の物理的操作を必要とする。必ずしも常にではないが、通常、これらの量は、電子信号または磁気信号の形態を有しており、保存、変換、合成、比較およびその他の操作が可能である。主に共通の用法として、これらの信号を、時に簡便のため、ビット、値、要素、シンボル、文字、言葉、数字等として称している。
【０００９】
しかしながら、これら全ての言葉および同様な言葉は、適切な物理量と結びつけられており、これらの物理量に適用された単なる便利な標号ではない。  特に明記されない限り、以下の説明で明らかになるように、明細書中で使用されている言葉、例えば、"処理（processing）"、"演算（computing）"、"計算（calculating）"、"決定（determining）"、"表示（displaying）"等の言葉は、コンピュータシステムまたは同様な電子演算装置の、物理量（電子量）で表されるデータを操作および／または変換する動作およびプロセスを指す。例えば、コンピュータシステムのレジスタおよび／またはメモリ内の物理量を、コンピュータシステム内のメモリ、レジスタまたはその他の情報記憶装置、送信装置または表示装置の同様な物理量で表される別のデータへと変換するオペレーションを指す。
【００１０】
本発明の実施形態は、明細書に記載されたオペレーションを実行する装置にも関する。このような装置の一部は、必要な目的のために特に構築されてもよいし、または、コンピュータに格納されるコンピュータプログラムによって選択的に駆動されるまたは再設定される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータ可読記憶媒体に格納されてもよく、記憶媒体としては、特にこれに限定されないが、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、磁気光学ディスク、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＮＶＲＡＭ、磁気カード又は光学カード、または、電気的命令を格納するのに適したその他の種類の媒体が含まれ、これら媒体はそれぞれ、コンピュータシステムバスに接続される。
【００１１】
本明細書に記載されるアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたはその他の装置に本質的に関連付けられていない。本明細書に開示される教示したがって、様々な汎用システムをプログラムと共に使用することができる、または、方法に必要な段階を実行するべく専用装置を構築してもよい。このような様々なシステムに必要となる構造は、以下の説明で明らかになるであろう。加えて、本発明の実施形態は、特定のプログラム言語を参照して説明されない。本明細書に記載される本発明の常時を実装するのに、様々なプログラミング言語を使用してもよい。
【００１２】
機械可読媒体としては、情報を、機械（例えば、コンピュータ）が可読な形式で記憶または送信する任意のメカニズムを含む。例えば、このような機械可読媒体としては、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学式記憶媒体、フラッシュメモリ装置等が含まれる。
【００１３】
本明細書で記載される方法および装置は、複数のフォームファクターにおけるアプリケーションに対するグラフィカルユーザインターフェースを生成するためのものである。このような方法および装置を、主に、マルチコアプロセッサコンピュータシステムを参照して説明する。しかしながら、グラフィカルユーザインターフェースを生成する方法および装置はこれに限定されず、任意の集積回路デバイスまたはシステムに実装および関連付けされてもよく、例えば、携帯電話、パーソナルデジタルアシスタント、タブレット、組み込みコントローラ、モバイルプラットフォーム、デスクトッププラットフォーム、および、サーバプラットフォーム、並びに、これらに関連するその他のリソースに実装および関連付けされてもよい。
【００１４】
［概要］
グラフィカルユーザインターフェースを生成する方法について開示する。一実施形態では、方法は、アプリケーションを実行するデバイスと関連付けられたデバイス特性を特定する段階と、少なくともデバイス特性およびアプリケーションの抽象化ユーザインターフェース（abstract user interface：ＡＵＩ）に基づいて、具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成する段階を備える。方法は、デバイスにＣＵＩを表示させる段階と、デバイス特性の変化を特定する段階とを備える。一実施形態では、方法はさらに、必要に応じて、更新されたデバイス特性およびアプリケーションの同じＡＵＩに少なくとも基づいて異なるＣＵＩを生成する段階を備える。
【００１５】
図１は、グラフィカルユーザインターフェース設計を分析し、具体的なグラフィカルユーザインターフェースを生成するプロセスの一実施形態を示したフロー図である。プロセスは、ハードウェア（回路、専用ロジック等）、ソフトウェア（汎用コンピュータシステムまたは専用機械で実行されるソフトウェア）またはこれら両方の組み合わせを含む処理ロジックによって実行される。一実施形態において、プロセスは、図４に示されるコンピュータシステムによって実行される。
【００１６】
［ＡＵＩの生成」
図１に示すように、一実施形態では、プロセスは、デバイス情報を検出して、アルゴリズム（例えば、再ページネーション（re-pagination）／レイアウトモジュール１４０）に少なくとも一部基づくＧＵＩをレンダリングすることにより、グラフィカルユーザインターフェースの自動適用を可能とする。一実施形態では、開発者またはプログラマは、ＣＵＩ  １１０（例えば、Ｇｌａｄｅ、Ｑｔ ＵＩ等）を生成する。一実施形態では、ＣＵＩ  １１０は、ウィジットがＧＴＫ+シンタックスを使用して規定されるＧｌａｄｅ ＸＭＬファイルである。ＣＵＩ  １１０は、ユーザがモデル番号を入力するためのテキスト入力部と、ユーザが色を選択するための２つのラジオボタンを備える。ＣＵＩ  １１０はまた、ユーザ入力を確認するための（"キャンセル"および"ＯＫ"）制御ボタンのセットを備える。
【００１７】
一実施形態では、処理ロジックは、その他の情報に少なくとも一部基づいて、ＣＵＩ  １１０からＡＵＩ  １２０（例えば、ＸＭＬ形式のＡＵＩ）を生成する。
【００１８】
一実施形態では、ＡＵＩ  １２０は、アクションを提示すべく生成され、顧客の仕様に従う。アクションの例としては、ウィジットの抽象化、例えば、ボタン、ラベル、画像、動画、スライダ（slider）等を含む。一実施形態では、抽象化ユーザインターフェース（ＡＵＩ）は、ＡＵＩ言語に従ってタスクモデルの形式で生成される。ＡＵＩは、タスク指向モデルに基づく仕様に従う。ウィジットは、コンテキストおよび暗黙属性（implicit attribute）、例えば、関係、特性、グループおよび必要に応じて必須サイズ、が保存される一般タスクとして表される。例えば、ＡＵＩ  １２０は、テキスト入力および選択入力を受け付けるタスクを含む。ＡＵＩ  １２０はまた、ユーザからのアクション（"キャンセル"または"ＯＫ"）を含む。
【００１９】
一実施形態において、ＡＵＩ  １２０の生成は、アプリケーションの設計段階で実行される。例えば、開発者は、既存のＣＵＩを準備する。そして、処理ロジックにより、ＣＵＩ（例えば、ＣＵＩ  １１０）をＡＵＩ（例えば、ＡＵＩ  １２０）へと分析変換する。
【００２０】
［ＣＵＩの生成］
一実施形態において、処理ロジックは、デバイス情報、または、アプリケーションを実行するデバイスと関連付けられたデバイス特性を収集する。一実施形態において、対象デバイス情報１３１は、対象デバイスについての特定の情報を含む。一実施形態において、このような情報は、デバイスの種類、画面のサイズ、画面の解像度、画面の数、入力デバイスが利用可能か等の情報を含む。
【００２１】
一実施形態において、処理ロジックは，ＤＢｕｓおよびＸ１１を介して、実行デバイスについてのメタデータを収集する。
【００２２】
一実施形態において、ＡＵＩ  １３０が生成され、対象デバイスの情報１３１が収集された後、処理ロジックは、アルゴリズム（例えば、再ページネーション／レイアウトモジュール１４０）を使用して、これらのソースに基づいてＣＵＩ１５０を生成する。一実施形態において、処理ロジックは、動的にＣＵＩ  １５０を生成する。一実施形態において、再ページネーション／レイアウトモジュール１４０は、再ページネーション（ページ分割）、レイアウト配置、ナビゲーションコントロール挿入等を実行する。一実施形態において、処理ロジックは、（１）ページ分割＆レイアウトロジック（例えば、ＸＳＬＴファイル）、（２）ＡＵＩ（例えば、ＸＭＬファイル、および、（３）対象デバイス情報（例えば、ＸＳＬＴファイルに組み込まれている）。再ページネーション／レイアウトモジュール１４０について、以下に詳細に説明する。
【００２３】
一実施形態において、対象デバイスの情報は、ページ分割＆レイアウトロジックと同じＸＳＬＴファイルに組み込まれている。一実施形態において、処理ロジックは、ページ分割＆レイアウトロジックおよびデバイス情報に基づいて、カスタマイズされたＸＳＬＴファイルを生成する。別の実施形態では、対象デバイスの情報は、別のファイル、例えば、別のＸＳＬＴファイルに存在する。
【００２４】
一実施形態において、処理ロジックは、再ページネーション／レイアウトモジュール１４０と連動して、ＡＵＩ  １３０におけるタスク記述を受信して、アプリケーションを実行するデバイスの制約および能力に従って、最終的なＣＵＩ（例えば、ＣＵＩ  １５０）を生成する。一実施形態において、処理ロジックは、アプリケーションを実行するデバイスの一部である。
【００２５】
一実施形態において、処理ロジックは、ＡＵＩ  １３０をＣＵＩ  １５０へと変換する。変換は、代表的なタスクに使用される（ＣＵＩで利用可能な）ウィジットおよびその特性を考慮して行われる。一実施形態において、タスクの特性は、最小ウィジットサイズ、タスク優先度（例えば、アプリケーションが複数の画面ページに分割される場合、最初の画面ページに表示されるべきタスク）、グループ化情報（例えば、確認およびキャンセルはグループ化されたタスクである）、必要サイズ（例えば、動画領域は、全画面領域の少なくとも５０％である）等に関係する。
【００２６】
一実施形態において、処理ロジックは、ＣＵＩが複数の画面ページ（複数のウィンドウ）に分割される場合には、ナビゲーションコントロール（例えば、"次（next）"、"一つ前（previous）"、またはこれらの両方）を生成する。例えば、小さな画面領域を有するデバイスでは、ＡＵＩは複数のページにわたって表示される。例えば、ＣＵＩ  １５０は、元のＣＵＩ（すなわち、ＣＵＩ  １１０）では１つの画面ページを有するが、小さなデバイスでは、２つの画面ページ（すなわち、画面頁１５１および画面ページ１５２）を有する。
【００２７】
一実施形態において、ＣＵＩ  １５０は、レンダリングされて、アプリケーションの方法、プロセスおよび機能と関連付けされる。
【００２８】
一実施形態において、処理ロジックは、デバイスの能力を判断する。処理ロジックは、所望のアクションを表すのに最も都合の良いウィジットを判断する。デバイスのフォームファクターが元のユーザインターフェースよりも小さい場合、処理ロジックは、ＵＩを分割して、小型のデバイス（例えば、小さなディスプレイを有するスマートフォン）で使用される最終的なＣＵＩには、ナビゲーションコントロールを搭載した複数の画面を生成する。
【００２９】
一実施形態において、フレームワーク１００は、付加的なサービス、アプリケーションまたはツールとは独立して、様々なデバイスそれぞれに対するユーザインターフェースを作り変える。フレームワーク１００は、開発済みのアプリケーションに適用可能である。フレームワーク１００は、ユーザインターフェースおよび周辺ロジックルール（例えば、ウィジットグループ情報、特性、必要画面サイズ等）を表すのに、ＡＵＩのコンセプトを採用する。一実施形態において、フレームワーク１００は、ランタイムＳＤＫとは独立している。例えば、ＡＵＩ  １３０および再ページネーション／レイアウトモジュール１４０は、ライブラリまたはアプリケーションの一部として、アプリケーションに組み込まれる。一実施形態において、フレームワーク１００は、オブジェクト指向言語およびその他の言語を含む、例えば、ＦＯＲＴＲＡＮ、Ｊａｖａ（登録商標）、Ｃ＋＋等の高級コンピュータ言語におけるコードと共に使用される。
【００３０】
一実施形態において、処理ロジックは、ランタイムの間のアプリケーションの実行に応答して、ＣＵＩ  １５０を生成する。
【００３１】
一実施形態では、フレームワーク１００は、ＸＭＬ形式に従ったＡＵＩ定義を使用する。ＡＵＩにおける一要素は、実際の対象デバイスに従って、１以上のウィジット、ハードウェア入力制御およびこれらの組み合わせにマッピングされる。例えば、押すアクションは、ネットブックではソフトボタンとしてレンダリングされるが、スマートフォンではハード制御ボタンとしてレンダリングされる。
【００３２】
一実施形態において、ＡＵＩ仕様言語は、例えば、ＵｓｉＸＭＬ、ＸＦｏｒｍｓ等におけるアプローチを含む。一実施形態において、ＡＵＩ仕様言語は、タスク、コンテナ（container）、インスタンス、ウィジット抽象化および特性モデルを含む。ＡＵＩ仕様はさらに、例えば、優先順位情報、グループ化情報、シーケンス情報およびイベントマッピングのようなコンセプトおよび定義を含む。
【００３３】
一実施形態において、フレームワーク１００は、ＡＵＩ仕様モデルと連動して実装される。ＡＵＩ仕様モデルに従って、コンテナは、画面ページの表現となり、タスクはウィジットの表現となる。最終的なＣＵＩを生成し、最終的なＣＵＩの特性を規定するべく、更なるメタデータが含まれる。
【００３４】
［再ページネーション／レイアウトモジュール］
一実施形態において、再ページネーションおよびレイアウトアルゴリズムは、フレームワーク１００の一部である。一実施形態において、再ページネーション／レイアウト１４０は、ＡＵＩを解析して、ＣＵＩを生成する。再ページネーション／レイアウト１４０は、デバイス特性、ウィジットおよびユーザが規定する所望の振る舞いに基づいて、生成を行う。一実施形態において、再ページネーション／レイアウト１４０は、ＸＭＬ形式で出力（すなわち、ＣＵＩ）を生成するＸＳＬＴパーサ（parser）として構成される。一実施形態において、再ページネーション／レイアウト１４０は、ＡＵＩをＣＵＩに変換するべく、従来のＸＭＬ言語の使用方法とは異なるが、ＸＭＬ言語で符号化される。
【００３５】
一実施形態において、再ページネーション／レイアウト１４０は、Ｘ１１インターフェース（Ｌｉｎｕｘ（登録商標）ベースのデバイス）またはＯＳ  ＡＰＩ（Ｗｉｎｄｏｗｓ（登録商標）ベースのデバイス）を使用したデバイスから抽出される対象デバイスのメタデータを使用する。一実施形態において、再ページネーション／レイアウト１４０は、例えば、再ページネーション、レイアウト分割、デバイス情報収集、コンテナ解析、分割調整、画面スタック（stack）の計算、アクション解析、グループ解析およびナビゲーションコントロール挿入を実行するモジュールを備える。
【００３６】
一実施形態において、再ページネーションモジュールは、デバイス特性および開発者によって予め定められるプリファレンスに基づいて、ウィジットを１つの画面ページから別の画面ページへと移動することを決定する。レイアウト分割では、ウィジットを収める新規のウィンドウ（画面ページ）を作成することにより、または、複数の画面ページを少ない数の画面ページに結合することにより、再ページネーション助ける。レイアウト分割は、対称のプラットフォームそれぞれについて、いくつ画面ページが必要かを推定する。例えば、あるアプリケーションは、ネットブックで実行される場合には２つの画面ページを使用する必要があるが、スマートフォンでは４つの画面ページ（ウィンドウ）を使用する必要がある。一実施形態において、フレームワーク１００は、ディスプレイ上のウィジットの位置を変更して、様々なデバイスにおいてユーザの満足度が下がらないようにする。
【００３７】
一実施形態において、コンテナ解析では、ＧＵＩを分析して、コンテナの位置を設定する。一実施形態において、コンテナは、常に１ユニットとして管理される別のウィジットを収容するウィジットと同様であってもよい。コンテナ解析ではまた、必要に応じて新規のコンテナを作成する。例えば、３つのボタン（"再生（play）"、"停止（stop）"および"一時停止（pause）"）を有するコンテナは、これら３つのボタンが常に一緒に配置されることを示して、使用が容易なデザインになるようにしている。このような暗黙の情報は、画面ページの分割プロセスにおける決定に有用である。
【００３８】
一実施形態において、分割調整は、新規に作成されたページ各々について、反復して動作して、全てのウィジットが進行しながら配置または移動されるようにしている。例えば、ウィンドウ容量が一杯になった場合（利用可能な画面領域が低くなった場合またはゼロとなった場合）、新規の画面ページが作成される。
【００３９】
一実施形態において、スタック計算では、現在のウィンドウに配置されるべきウィジットの数（ＡＵＩ仕様における"アクション"の数）を計算する。スタック計算は、優先順位情報および利用可能な残りの画面領域を決定する画面パーセント計算に基づいて実行される。スタック計算の出力は、アクション解析およびグループ解析に使用できる。
【００４０】
一実施形態において、アクション解析は、デバイス特性に基づいて最も適したウィジットを選択することによって、抽象アクションを、ＣＵＩにおける１以上のウィジットに変換する最終的なモジュールの１つである。例えば、アクション"押す（push）"は、ネットブックではボタンとしてレンダリングされるが、スマートフォンではチェックボックスとしてレンダリングされる。一実施形態では、グループ解析は、抽象グループを、ＣＵＩにおける１以上のコンテナへと変換する最終的なモジュールの１つである。
【００４１】
一実施形態において、ナビゲーションコントロール挿入は、全てのウィジットが画面ページに配置された後に、新規のページが作成された場合に発生する。ナビゲーションコントロールは、ユーザが一の画面から別の画面へとナビゲートできるように挿入される。一実施形態において、ナビゲーションコントロールは、"次（next）／一つ前（previous）"ボタンを使用して、または、ユーザが使用するのに適したその他の手法を使用して、実装される。一実施形態において、ナビゲーションコントロールは、ウィンドウ分割（再ページネーション）に応じて起動される。一実施形態において、ナビゲーションコントロールは、"次／一つ前"ボタン、ドロップダウンメニュー、インデックスまたはこれらの組み合わせである。
【００４２】
一実施形態において、フレームワーク１００は、様々なフォームファクターのデバイスに対して、自動グラフィカルユーザインターフェース／入力適応を提供する。プログラマは、特定のデバイスに対してアプリケーションを開発し、グラフィカルユーザインターフェース／入力制御を再開発することなく、別のデバイス上でアプリケーションを実行することができる。
【００４３】
［デバイス特性の変更］
一実施形態において、大型のデバイスに対して設計されたアプリケーションを、小型のデバイスで実行することができる。レイアウト分割（previous）は、１つのウィンドウを、ナビゲーションコントロールを有する複数の画面ページに整合性を保って分割する。一実施形態において、アプリケーションは、プロセス間通信または遠隔手続き呼び出し（例えば、ＤＢｕｓ）を介して通信を実行時に行って、動的にＡＵＩ−ＣＵＩ変換を行うことができる。例えば、ディスプレイの画面解像度が変更される場合、または、デバイスが別のディスプレイに（例えば、別のモニタ／プロジェクタを使用して）接続される場合、システムサービスは、アプリケーションにメッセージ（信号を）を送信して、アプリケーションがオンザフライでＧＵＩの適応を実行する。
【００４４】
一実施形態において、アプリケーションが別のデバイスで実行されると、入力制御は自動的に適応化される。入力制御は、アプリケーションが、例えば、マウス、キーボード、スタイラス、タッチスクリーン、加速度計、ＧＰＳモジュール、ハードボタン、ソフト制御ボタン等の、様々な入力制御／インターフェースを利用できるように適応化される。
【００４５】
図２は、具体化グラフィカルユーザインターフェースを生成するシステムの一実施形態を示したフロー図である。発明を不明瞭にしない目的から、バスおよび周辺機器のような関連構成要素の多くを省略して図示している。図２に示すように、システムは、ノートブック２１０、タブレット２１１、および、その他のデバイス２１３を含む。一実施形態において、デバイス情報発見（ＤＩＤ）２２０、デバイス情報注入（ＤＩＩ）２２１、および、ＡＵＩ−ＣＵＩ変換２３１は、デバイス（デバイス２１０〜２１３）と連動して実装されるハードウェア／ソフトウェアモジュールである。モジュールは、ハードウェア（回路、専用ロジック等）、ソフトウェア（汎用コンピュータシステムまたは専用機械で実行されるようなソフトウェア）、または、これらの組み合わせを備えてもよい。
【００４６】
図２に示すように、一実施形態では、デバイス情報が、ＤＩＤ２２０によって収集される。一実施形態において、ＤＩＩ  ２２１は、デバイス情報を再ページネーション（re-pagination）／レイアウトアルゴリズムに注入する。一実施形態において、カスタマイズされたモジュール２４０は、ＤＩＩ  ２１１および再ページネーション／レイアウトからのデバイス情報に基づいてコンパイルされたまたは生成されたＸＳＴＬモジュールである。一実施形態において、ＡＵＩ−ＣＵＩ変換２３１は、ＡＵＩ２３０およびＸＳＬＴ形式のカスタマイズされたモジュール２４０を受信して、最終的に適応化されたＣＵＩ（例えば、ＸＭＬファイルとして符号化されたＣＵＩ２５０）を生成する。一実施形態において、ＤＩＤ２２０、ＤＩＩ  ２１１、および、ＡＵＩ−ＣＵＩ変換２３１は共に１つのシステムとして動作し、再ページネーション（分割）およびレイアウ配置を実行する。
【００４７】
一実施形態において、処理デバイス（例えば、デバイス２１０−２１３）は、１つのチップ内にＣＰＵと共に集積されるグラフィックプロセッサを含む。別の実施形態では、グラフィックプロセッサおよびＣＰＵは、別のデバイスとして設けられる。一実施形態では、グラフィックプロセッサは、ＣＰＵからの処理ワークロードのうちの一部をサポート可能な処理デバイスでもある。一実施形態において、グラフィックプロセッサは、複数の処理デバイス（例えば、プロセッサ、デジタル信号処理ユニットおよびマイクロコントローラ）を含む。上記では、方法および装置は、主に、ＣＰＵ／ＧＰＵを参照して説明がなされた。しかしながら、方法および装置は、これに限定されず、グラフィックスプロセッサ、デジタル信号処理ユニット、マイクロコントローラおよびこれらの組み合わせを含む任意の処理デバイスに実装されてもよいまたは、関連付けられてもよい。
【００４８】
一実施形態において、コンピュータシステム（例えば、デバイス２１０−２１３）は、コンピュータワークステーション、ラップトップ、デスクトップ、サーバ、メインフレームまたはその他のコンピュータデバイスを含む。
【００４９】
図３は、具体化されたグラフィカルユーザインターフェースを生成するシステムの一実施形態を示したフロー図である。プロセスは、ハードウェア（回路、専用ロジック等）、ソフトウェア（汎用コンピュータシステムまたは専用機械で実行されるソフトウェア）またはこれら両方の組み合わせを含む処理ロジックによって実行される。一実施形態において、プロセスは、図４に示されるコンピュータシステムによって実行される。
【００５０】
図３に示すように、一実施形態では、処理ロジックは、デバイスでアプリケーションが実行されたことに応じて、デバイスと関連付けられているデバイス特性を特定することから開始する（処理ブロック６０１）。処理ロジックは、例えば、画面サイズ、画面解像度、デバイスの入力能力等のデバイス情報を収集する。
【００５１】
一実施形態において、処理ロジックは、少なくともデバイス特性およびアプリケーションの抽象化ユーザインターフェース（abstract user interface：ＡＵＩ）に基づいて、具体化されたグラフィカルユーザインターフェース（concrete graphical user interface：ＣＵＩ）を生成する（処理ブロック６０２）。一実施形態において、処理ロジックは、ＡＵＩに表されたタスクベースの要素に基づいて、ユーザインターフェースの要素を決定する。ユーザインターフェースの要素を、ここでは、ウィジットとも称する。処理ロジックは、ＡＵＩおよびデバイス情報に基づいて、再ページネーションおよびレイアウトアルゴリズムを適用する。処理ロジックは、必要に応じて、ユーザインターフェースウィンドウを複数の画面ページに分割して、画面ページにナビゲーションコントロールを追加する。
【００５２】
一実施形態において、処理ロジックは、各ユーザインターフェース要素の優先順位情報および残りの画面ページ情報に基づいて、１つの画面ページにおけるユーザインターフェースの要素の数の推定値を計算する。一実施形態において、処理ロジックは、１つの画面ページを、２つ以上の画面ページに分割するかを判断する。処理ロジックは、複数画面ページのそれぞれに、ナビゲーションコントロールを挿入する。例えば、最後の画面ページに挿入されるナビゲーションコントロールは、１つ前のページへの制御のみを表示する。最後の画面ページは、次の画面へのナビゲーションコントロールを表示しない。
【００５３】
一実施形態において、処理ロジックは、１以上のハードウェアボタンについての情報を含むデバイス特性に基づいて、ＣＵＩを生成する。一実施形態において、処理ロジックは、１以上のハードウェアボタンおよび１以上のソフトウェアボタンからのユーザ入力を受け付けることが可能なＣＵＩを生成する。
【００５４】
一実施形態において、処理ロジックは、最終的に適応化されたＣＵＩを生成および表示する（処理ブロック６０３）。処理ロジックは、デバイスのディスプレイに、最終的なＣＵＩをレンダリングし表示する。
【００５５】
一実施形態において、処理ロジックは、デバイス特性に変更があったかを判断する（処理ブロック６０４）。例えば、処理ロジックは、システムサービスを監視して、変更が発生したかを検出する。一実施形態において、処理ロジックは、変更が発生した場合に、システムサービスからメッセージを受信する。
【００５６】
一実施形態において、処理ロジックは、更新されたデバイス特性およびアプリケーションの同じＡＵＩに基づいて、異なるＣＵＩを生成する（処理ブロック６０５）。一実施形態において、アプリケーションのＡＵＩは、特定のデバイスの情報なしに生成される。異なるＣＵＩは、デバイスがアプリケーションを開始した際に、ＡＵＩに基づいて動的に生成される。
【００５７】
本発明の実施形態は、様々な電子デバイスおよびロジック回路に実装されてもよい。さらに、本発明の実施形態を含むデバイスまたは回路は、様々なコンピュータシステムに備えられてもよい。本発明の実施形態は、その他のコンピュータシステムトポロジーおよびアーキテクチャに含まれてもよい。
【００５８】
例えば、図４には、本発明の一実施形態に関連するコンピュータシステムが示されている。プロセッサ７０５は、レベル１（Ｌ１）キャッシュメモリ７０６、レベル２（Ｌ２）キャッシュメモリ７１０およびメモリ７１５からのデータにアクセスする。本発明の別の実施形態では、キャッシュメモリ７０６は、コンピュータシステムメモリ階層内のＬ１キャッシュと、Ｌ２キャッシュのようなその他のメモリとを一緒に備えるマルチレベルキャッシュメモリであってもよい。キャッシュメモリ７１０は、Ｌ３キャッシュのような１つ下の階層のキャッシュメモリまたはマルチレベルキャッシュである。さらに、別の実施形態では、コンピュータシステムは、複数のプロセッサコアに対する共有キャッシュとして、キャッシュメモリ７１０を有してもよい。
【００５９】
プロセッサ７０５は、任意の数の処理コアを有してもよい。本発明の別の実施形態では、しかしながら、ハードウェア、ソフトウェアまたはこれらの組み合わせにおけるシステム全体に分配されたその他のデバイスまたはシステム内のその他のデバイス内に実装されてもよい。
【００６０】
一実施形態において、グラフィックスコントローラ７０８は、１つのチップにプロセッサ７０５と共に集積される。別の実施形態では、グラフィックスコントローラ７０８およびプロセッサは、別個のデバイスである。一実施形態において、グラフィックコントローラ７０８は、プロセッサ７０５からの処理ワークロードのうちの一部をサポート可能な処理デバイスでもある。一実施形態において、グラフィックコントローラ７０８は、処理デバイス（例えば、プロセッサ、グラフィックスプロセッサ、デジタル信号処理ユニットおよびマイクロコントローラ）を含む。
【００６１】
メインメモリ７１５は、様々なメモリリソースに実装されてもよく、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ハードディスクドライブ（ＨＤＤ）７２０、ＮＶＲＡＭ技術に基づくソリッドステートディスク７２５、または、ネットワークインターフェース７３０または無線インターフェース７４０を介して様々な記憶デバイスおよび技術を含むコンピュータシステムからリモートに位置するメモリソースに実装されてもよい。キャッシュメモリは、プロセッサ内に位置してもよいし、プロセッサのローカスバス７０７に位置するといったように、プロセッサに近接して配置されてもよい。さらに、キャッシュメモリは、６トランジスタ（６Ｔ）セルのような相対的に高速のメモリセルを含んでもよいし、ほぼ等しい又は速いアクセススピードを有するその他のメモリセルを含んでもよい。
【００６２】
本発明の別の実施形態は、図４のシステム内の、別の回路、ロジック単位またはデバイス内に存在してもよい。さらに、本発明の別の実施形態は、複数の回路、複数のロジック単位、または、図４に例示される複数のデバイスにわたって、存在してもよい。
【００６３】
同様に、少なくとも１つの実施形態が、ポイント・ツー・ポイントコンピュータシステム内に実装されてもよい。例えば、図５は、本発明の一実施形態で使用されるポイント・ツー・ポイント（ＰｔＰ）コンピュータ構成に配置されたコンピュータシステムを示した図である。より詳細には、図５には、複数のポイント・ツー・ポイントインターフェースで相互接続された、プロセッサ、メモリおよび入出力デバイスを含むシステムが示されている。
【００６４】
図５のシステムは、複数のプロセッサを備えてもよく、そのうちの２つのみ、すなわちプロセッサ８７０、８８０が明示されている。プロセッサ８７０、８８０はそれぞれ、メモリ８５０、８５１と接続するための、ローカルメモリコントローラハブ（ＭＣＨ）８１１、８２１を有する。プロセッサ８７０、８８０は、ポイント・ツー・ポイント（ＰｔＰ）インターフェース回路８１２、８２２を使用して、ＰｔＰインターフェース８５３を介したデータ交換を行ってもよい。プロセッサ８７０、８８０はそれぞれ、ＰｔＰインターフェース回路８１３、８２３、８６０、８６１を使用して、個々のＰｔＰインターフェース８３０、８３１を介してチップセット８９０とデータ交換を行ってもよい。チップセット８９０はまた、高性能グラフィックスインターフェース８６２を介して、高性能グラフィックス回路８５２とデータ交換を行ってもよい。本発明の実施形態は、図５のコンピュータバス（８３４または８３５）と接続されてもよいし、チップセット８９０、データ記憶装置８７５、または、メモリ８５０内に存在してもよい。
【００６５】
しかしながら、本発明のその他の実施形態では、図５の別の回路、ロジック単位またはデバイス内に存在してもよい。さらに、本発明の別の実施形態は、複数の回路、複数のロジック単位、または、図５に例示される複数のデバイスにわたって、存在してもよい。
【００６６】
本発明は、上記で説明された実施形態に限定されず、添付の特許請求の範囲および精神の範囲内で改良および変形が可能である。例えば、本発明は、全ての種類の半導体集積回路（ＩＣ）チップに適用可能である。これらＩＣチップの例としては、これに限定されないが、プロセッサ、コントローラ、チップセット構成要素、プログラム可能ロジックアレイ（ＰＬＡ）、メモリチップ、ネットワークチップ等が挙げられる。さらに、サイズ／モデル／値／範囲の例が上記で示されたが、本発明の実施形態は記載と同じ値に限定されない。将来的に製造技術（例えば、フォトリソグラフィ）が発展すれば、小型のデバイスが製造可能となると考えられる。
【００６７】
上記の説明を読むことにより、本発明の実施形態の数多くの変形例および改良が当業者にとって明らかとなるであろう。また、上記の特定の実施形態は例示のために記載されており、本発明を限定することを意図していない。したがって、様々な実施形態の詳細の参照は、本発明に必要であると考えられる特徴のみを記載した特許請求の範囲を限定するものではない。
本発明の例を下記の各項目として示す。
［項目１］
アプリケーションの実行に応じて、第１デバイスに関する第１デバイス特性を特定する段階と、
前記第１デバイス特性および前記アプリケーションの抽象化ユーザインターフェース（ＡＵＩ）に少なくとも基づいて、第１の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成する段階と、
前記アプリケーションの前記実行のために、前記第１のＣＵＩを前記第１デバイスに表示する段階とを備える方法。
［項目２］
前記第１デバイス特性は、画面サイズ、解像度、および、非タッチスクリーン入力インターフェースの存在についての情報を含む項目１に記載の方法。
［項目３］
前記第１デバイス特性の変更を判断する段階と、
必要に応じて、更新された前記第１デバイス特性および前記アプリケーションの同一の前記ＡＵＩに少なくとも基づいて、第２の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成する段階とをさらに備える項目１または２に記載の方法。
［項目４］
前記ＡＵＩに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、
前記複数のユーザインターフェース要素の再ページネーションを実行する段階とをさらに備える項目１から３の何れか一項に記載の方法。
［項目５］
前記第１のＣＵＩを生成する段階は、
２つ以上の画面ページに分割するか判断する段階と、
前記２つ以上の画面ページのそれぞれに、ナビゲーションコントロールを挿入する段階とをさらに備え、
最後の画面ページには、次の画面へのナビゲーションコントロールが含まれない項目１から４の何れか一項に記載の方法。
［項目６］
前記第１デバイス特性および前記アプリケーションの前記ＡＵＩに少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、
前記第１デバイス特性に少なくとも基づいて、前記アプリケーションの実行のために１以上の画面ページを使用するか判断する段階と、
前記１以上の画面ページに、前記複数のユーザインターフェース要素のそれぞれをどこに表示させるか判断する段階とをさらに備える項目１から３の何れか一項に記載の方法。
［項目７］
２つ以上の画面ページを１つの画面ページに結合して、前記２つ以上の画面ページから前記１つの画面ページへとユーザインターフェース要素を移動させるか判断する段階をさらに備える項目１から６の何れか一項に記載の方法。
［項目８］
前記第１デバイス特性および前記ＡＵＩの前記アプリケーションに少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、
複数のユーザインターフェース要素のそれぞれの優先順位情報および残りの画面ページ情報に基づいて、１つの画面ページにおけるユーザインターフェース要素の数の推定値を計算する段階とをさらに備える項目１から３の何れか一項に記載の方法。
［項目９］
前記ＡＵＩに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、
第１画面ページを作成する段階と、
前記第１画面ページのサイズに少なくとも基づいて、どのユーザインターフェース要素が前記第１画面ページに適するかの推定を生成する段階と、
レンダリングされていないユーザインターフェース要素が存在する場合には、第２画面ページへと分割することを決定する段階と、
をさらに備える項目１から３の何れか一項に記載の方法。
［項目１０］
前記ＡＵＩに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、
前記複数のユーザインターフェース要素それぞれの最小サイズ、前記複数のユーザインターフェース要素それぞれの優先順位情報、前記複数のユーザインターフェース要素それぞれのグループ特性情報、前記複数のユーザインターフェース要素それぞれの必要サイズ、または、これらの組み合わせに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する段階と、
をさらに備える項目１から３の何れか一項に記載の方法。
［項目１１］
前記ＡＵＩは、第２デバイスの情報なしに生成され、
前記第２デバイスに対して、前記ＡＵＩに基づいて異なるＣＵＩが動的に生成される項目１から１０の何れか一項に記載の方法。
［項目１２］
前記第１デバイス特性は、１以上のハードウェアボタンについての情報を含み、
前記１以上のハードウェアボタンおよび前記第１デバイスのディスプレイに表示される１以上のソフトウェアボタンからのユーザ入力を受け付け可能な前記第１のＣＵＩを生成する段階をさらに備える項目１から１１の何れか一項に記載の方法。
［項目１３］
ＧＵＩ設計から前記ＡＵＩを生成する段階をさらに備え、
前記ＡＵＩを生成する段階は、
前記アプリケーションに対する前記ＧＵＩ設計を分析する段階と、
複数のタスクベースの要素を特定する段階と、
前記複数のタスクベースの要素の表現を生成する段階と、
前記表現を前記アプリケーションの実行可能バイナリへと組み込む段階とをさらに備え、
抽象化された前記ＧＵＩは、変換言語で表されている項目１に記載の方法。
［項目１４］
前記ＡＵＩに少なくとも基づいて、１以上のユーザインターフェース要素を特定する段階をさらに備え、
前記１以上のユーザインターフェース要素は、第１グループ識別子と関連付けられ、
同じグループ識別子の前記１以上のユーザインターフェース要素は、１つの具体化グループウィジットとしてレンダリングされる項目１から３の何れか一項に記載の方法。
［項目１５］
アプリケーションの実行に応じて、第１デバイスに関する第１デバイス特性を特定する段階と、
前記第１デバイス特性および前記アプリケーションの抽象化ユーザインターフェース（ＡＵＩ）に少なくとも基づいて、第１の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成する段階と、
前記アプリケーションの前記実行のために、前記第１のＣＵＩを前記第１デバイスに表示する段階とを備える方法をコンピュータに実行させるプログラム。
［項目１６］
前記ＡＵＩに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、
前記複数のユーザインターフェース要素それぞれの最小サイズ、前記複数のユーザインターフェース要素それぞれの優先順位情報、前記複数のユーザインターフェース要素それぞれのグループ特性情報、前記複数のユーザインターフェース要素それぞれの必要サイズ、または、これらの組み合わせに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する段階とをさらに備える方法をコンピュータに実行させる項目１５に記載のプログラム。
［項目１７］
前記第１デバイス特性の変更を判断する段階と、
必要に応じて、更新された前記第１デバイス特性および前記アプリケーションの前記ＡＵＩに少なくとも基づいて、第２の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成する段階とをさらに備える方法をコンピュータに実行させる項目１５または１６に記載のプログラム。
［項目１８］
プログラムを実行するシステムであって、
第１デバイスと、
第１デバイスディスプレイと、
前記第１デバイスで実行されるアプリケーションを格納するメモリとを備え、
前記第１デバイスは、
アプリケーションの実行に応じて、第１デバイスに関する第１デバイス特性を特定し、
前記第１デバイス特性および前記アプリケーションの抽象化ユーザインターフェース（ＡＵＩ）に少なくとも基づいて、第１の具体化グラフィカルユーザインターフェース（ＣＵＩ）を生成し、
前記アプリケーションの実行のために、前記第１デバイスに、前記第１のＣＵＩを表示する、システム。
［項目１９］
前記第１デバイスは、さらに、
前記ＡＵＩに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定し、
前記複数のユーザインターフェース要素それぞれの最小サイズ、前記複数のユーザインターフェース要素それぞれの優先順位情報、前記複数のユーザインターフェース要素それぞれのグループ特性情報、前記複数のユーザインターフェース要素それぞれの必要サイズ、または、これらの組み合わせに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する、項目１８に記載のシステム。
［項目２０］
前記ＡＵＩは、第２デバイスの情報なしに生成され、
前記第２デバイスに対して、前記ＡＵＩに基づいて異なるＣＵＩが動的に生成される項目１８または１９に記載のシステム。
【図１】
0005911562.tif 000002
【図２】
0005911562.tif 000003
【図３】
0005911562.tif 000004
【図４】
0005911562.tif 000005
【図５】
0005911562.tif 000006