"アプリケーションの実行に応じて、第1デバイスに関する第1デバイス特性を特定する段階と、前記第1デバイス特性および前記アプリケーションの抽象化ユーザインターフェースAUIに少なくとも基づいて、第1の具体化グラフィカルユーザインターフェースCUIを生成する段階と、前記アプリケーションの前記実行のために、前記第1のCUIを前記第1デバイスに表示する段階とを備える方法。前記第1デバイス特性は、画面サイズ、解像度、および、非タッチスクリーン入力インターフェースの存在についての情報を含む請求項1に記載の方法。前記第1デバイス特性の変更を判断する段階と、必要に応じて、更新された前記第1デバイス特性および前記アプリケーションの同一の前記AUIに少なくとも基づいて、第2の具体化グラフィカルユーザインターフェースCUIを生成する段階とをさらに備える請求項1または2に記載の方法。前記AUIに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、前記複数のユーザインターフェース要素の再ページネーションを実行する段階とをさらに備える請求項1から3の何れか一項に記載の方法。前記第1のCUIを生成する段階は、2つ以上の画面ページに分割するか判断する段階と、前記2つ以上の画面ページのそれぞれに、ナビゲーションコントロールを挿入する段階とをさらに備え、最後の画面ページには、次の画面へのナビゲーションコントロールが含まれない請求項1から4の何れか一項に記載の方法。前記第1デバイス特性および前記アプリケーションの前記AUIに少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、前記第1デバイス特性に少なくとも基づいて、前記アプリケーションの実行のために1以上の画面ページを使用するか判断する段階と、前記1以上の画面ページに、前記複数のユーザインターフェース要素のそれぞれをどこに表示させるか判断する段階とをさらに備える請求項1から3の何れか一項に記載の方法。2つ以上の画面ページを1つの画面ページに結合して、前記2つ以上の画面ページから前記1つの画面ページへとユーザインターフェース要素を移動させるか判断する段階をさらに備える請求項1から6の何れか一項に記載の方法。前記第1デバイス特性および前記AUIの前記アプリケーションに少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、複数のユーザインターフェース要素のそれぞれの優先順位情報および残りの画面ページ情報に基づいて、1つの画面ページにおけるユーザインターフェース要素の数の推定値を計算する段階とをさらに備える請求項1から3の何れか一項に記載の方法。前記AUIに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、第1画面ページを作成する段階と、前記第1画面ページのサイズに少なくとも基づいて、どのユーザインターフェース要素が前記第1画面ページに適するかの推定を生成する段階と、レンダリングされていないユーザインターフェース要素が存在する場合には、第2画面ページへと分割することを決定する段階と、をさらに備える請求項1から3の何れか一項に記載の方法。前記AUIに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、前記複数のユーザインターフェース要素それぞれの最小サイズ、前記複数のユーザインターフェース要素それぞれの優先順位情報、前記複数のユーザインターフェース要素それぞれのグループ特性情報、前記複数のユーザインターフェース要素それぞれの必要サイズ、または、これらの組み合わせに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する段階と、をさらに備える請求項1から3の何れか一項に記載の方法。前記AUIは、第2デバイスの情報なしに生成され、前記第2デバイスに対して、前記AUIに基づいて異なるCUIが動的に生成される請求項1から10の何れか一項に記載の方法。前記第1デバイス特性は、1以上のハードウェアボタンについての情報を含み、前記1以上のハードウェアボタンおよび前記第1デバイスのディスプレイに表示される1以上のソフトウェアボタンからのユーザ入力を受け付け可能な前記第1のCUIを生成する段階をさらに備える請求項1から11の何れか一項に記載の方法。GUI設計から前記AUIを生成する段階をさらに備え、前記AUIを生成する段階は、前記アプリケーションに対する前記GUI設計を分析する段階と、複数のタスクベースの要素を特定する段階と、前記複数のタスクベースの要素の表現を生成する段階と、前記表現を前記アプリケーションの実行可能バイナリへと組み込む段階とをさらに備え、抽象化された前記GUIは、変換言語で表されている請求項1に記載の方法。前記AUIに少なくとも基づいて、1以上のユーザインターフェース要素を特定する段階をさらに備え、前記1以上のユーザインターフェース要素は、第1グループ識別子と関連付けられ、同じグループ識別子の前記1以上のユーザインターフェース要素は、1つの具体化グループウィジットとしてレンダリングされる請求項1から3の何れか一項に記載の方法。アプリケーションの実行に応じて、第1デバイスに関する第1デバイス特性を特定する段階と、前記第1デバイス特性および前記アプリケーションの抽象化ユーザインターフェースAUIに少なくとも基づいて、第1の具体化グラフィカルユーザインターフェースCUIを生成する段階と、前記アプリケーションの前記実行のために、前記第1のCUIを前記第1デバイスに表示する段階とを備える方法をコンピュータに実行させるプログラム。前記AUIに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定する段階と、前記複数のユーザインターフェース要素それぞれの最小サイズ、前記複数のユーザインターフェース要素それぞれの優先順位情報、前記複数のユーザインターフェース要素それぞれのグループ特性情報、前記複数のユーザインターフェース要素それぞれの必要サイズ、または、これらの組み合わせに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する段階とをさらに備える方法をコンピュータに実行させる請求項15に記載のプログラム。前記第1デバイス特性の変更を判断する段階と、必要に応じて、更新された前記第1デバイス特性および前記アプリケーションの前記AUIに少なくとも基づいて、第2の具体化グラフィカルユーザインターフェースCUIを生成する段階とをさらに備える方法をコンピュータに実行させる請求項15または16に記載のプログラム。プログラムを実行するシステムであって、第1デバイスと、第1デバイスディスプレイと、前記第1デバイスで実行されるアプリケーションを格納するメモリとを備え、前記第1デバイスは、アプリケーションの実行に応じて、第1デバイスに関する第1デバイス特性を特定し、前記第1デバイス特性および前記アプリケーションの抽象化ユーザインターフェースAUIに少なくとも基づいて、第1の具体化グラフィカルユーザインターフェースCUIを生成し、前記アプリケーションの実行のために、前記第1デバイスに、前記第1のCUIを表示する、システム。前記第1デバイスは、さらに、前記AUIに表された複数のタスクベースの要素に少なくとも基づいて、複数のユーザインターフェース要素を特定し、前記複数のユーザインターフェース要素それぞれの最小サイズ、前記複数のユーザインターフェース要素それぞれの優先順位情報、前記複数のユーザインターフェース要素それぞれのグループ特性情報、前記複数のユーザインターフェース要素それぞれの必要サイズ、または、これらの組み合わせに従って、前記複数のユーザインターフェース要素の再ページネーションを実行する、請求項18に記載のシステム。前記AUIは、第2デバイスの情報なしに生成され、前記第2デバイスに対して、前記AUIに基づいて異なるCUIが動的に生成される請求項18または19に記載のシステム。グラフィカルユーザインターフェースを生成する方法について開示する。一実施形態において、方法は、アプリケーションを実行するデバイスと関連付けられたデバイス特性を特定する段階と、少なくともデバイス特性およびアプリケーションの抽象化ユーザインターフェースabstractuserinterface:AUIに基づいて、具体化されたグラフィカルユーザインターフェースCUIを生成する段階を備える。方法は、デバイスにCUIを表示させる段階と、デバイス特性の変更を特定する段階とを備える。一実施形態において、方法はさらに、必要に応じて、更新されたデバイス特性およびアプリケーションの同じAUIに少なくとも基づいて異なるCUIを生成する段階を備える。以下の詳細な説明では、本発明の実施形態の完全な説明を提供するべく、数多くの詳細事項が記載される。しかしながら、当業者であれば、本発明の実施形態はこれらの詳細事項がなくとも本発明を実行可能であることが理解できる。また、周知の構造およびデバイスは、本発明の実施形態の説明を明瞭にするべく、詳細にではなく、ブロック図の形態で示されている。以下に記載する詳細な説明の一部は、コンピュータメモリ内のデータビットに対するオペレーションの記号表記およびアルゴリズムの形式で表される。これらのアルゴリズム的描写および表現は、データ処理技術を扱う当業者によって使用される手法であり、これによって、別の当業者に自身の仕事の内容を伝達する場合がある。本明細書のアルゴリズムは、概して、所望の結果に導く段階の首尾一貫したシーケンスと考えられる。段階は、物理量の物理的操作を必要とする。必ずしも常にではないが、通常、これらの量は、電子信号または磁気信号の形態を有しており、保存、変換、合成、比較およびその他の操作が可能である。主に共通の用法として、これらの信号を、時に簡便のため、ビット、値、要素、シンボル、文字、言葉、数字等として称している。しかしながら、これら全ての言葉および同様な言葉は、適切な物理量と結びつけられており、これらの物理量に適用された単なる便利な標号ではない。特に明記されない限り、以下の説明で明らかになるように、明細書中で使用されている言葉、例えば、処理processing、演算computing、計算calculating、決定determining、表示displaying等の言葉は、コンピュータシステムまたは同様な電子演算装置の、物理量電子量で表されるデータを操作および/または変換する動作およびプロセスを指す。例えば、コンピュータシステムのレジスタおよび/またはメモリ内の物理量を、コンピュータシステム内のメモリ、レジスタまたはその他の情報記憶装置、送信装置または表示装置の同様な物理量で表される別のデータへと変換するオペレーションを指す。本発明の実施形態は、明細書に記載されたオペレーションを実行する装置にも関する。このような装置の一部は、必要な目的のために特に構築されてもよいし、または、コンピュータに格納されるコンピュータプログラムによって選択的に駆動されるまたは再設定される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータ可読記憶媒体に格納されてもよく、記憶媒体としては、特にこれに限定されないが、フロッピー登録商標ディスク、光ディスク、CD-ROM、DVD-ROM、磁気光学ディスク、リードオンリーメモリROM、ランダムアクセスメモリRAM、EPROM、EEPROM、NVRAM、磁気カード又は光学カード、または、電気的命令を格納するのに適したその他の種類の媒体が含まれ、これら媒体はそれぞれ、コンピュータシステムバスに接続される。本明細書に記載されるアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたはその他の装置に本質的に関連付けられていない。本明細書に開示される教示したがって、様々な汎用システムをプログラムと共に使用することができる、または、方法に必要な段階を実行するべく専用装置を構築してもよい。このような様々なシステムに必要となる構造は、以下の説明で明らかになるであろう。加えて、本発明の実施形態は、特定のプログラム言語を参照して説明されない。本明細書に記載される本発明の常時を実装するのに、様々なプログラミング言語を使用してもよい。機械可読媒体としては、情報を、機械例えば、コンピュータが可読な形式で記憶または送信する任意のメカニズムを含む。例えば、このような機械可読媒体としては、リードオンリーメモリROM、ランダムアクセスメモリRAM、磁気ディスク記憶媒体、光学式記憶媒体、フラッシュメモリ装置等が含まれる。本明細書で記載される方法および装置は、複数のフォームファクターにおけるアプリケーションに対するグラフィカルユーザインターフェースを生成するためのものである。このような方法および装置を、主に、マルチコアプロセッサコンピュータシステムを参照して説明する。しかしながら、グラフィカルユーザインターフェースを生成する方法および装置はこれに限定されず、任意の集積回路デバイスまたはシステムに実装および関連付けされてもよく、例えば、携帯電話、パーソナルデジタルアシスタント、タブレット、組み込みコントローラ、モバイルプラットフォーム、デスクトッププラットフォーム、および、サーバプラットフォーム、並びに、これらに関連するその他のリソースに実装および関連付けされてもよい。[概要]グラフィカルユーザインターフェースを生成する方法について開示する。一実施形態では、方法は、アプリケーションを実行するデバイスと関連付けられたデバイス特性を特定する段階と、少なくともデバイス特性およびアプリケーションの抽象化ユーザインターフェースabstractuserinterface:AUIに基づいて、具体化グラフィカルユーザインターフェースCUIを生成する段階を備える。方法は、デバイスにCUIを表示させる段階と、デバイス特性の変化を特定する段階とを備える。一実施形態では、方法はさらに、必要に応じて、更新されたデバイス特性およびアプリケーションの同じAUIに少なくとも基づいて異なるCUIを生成する段階を備える。図1は、グラフィカルユーザインターフェース設計を分析し、具体的なグラフィカルユーザインターフェースを生成するプロセスの一実施形態を示したフロー図である。プロセスは、ハードウェア回路、専用ロジック等、ソフトウェア汎用コンピュータシステムまたは専用機械で実行されるソフトウェアまたはこれら両方の組み合わせを含む処理ロジックによって実行される。一実施形態において、プロセスは、図4に示されるコンピュータシステムによって実行される。[AUIの生成図1に示すように、一実施形態では、プロセスは、デバイス情報を検出して、アルゴリズム例えば、再ページネーションrepagination/レイアウトモジュール140に少なくとも一部基づくGUIをレンダリングすることにより、グラフィカルユーザインターフェースの自動適用を可能とする。一実施形態では、開発者またはプログラマは、CUI110例えば、Glade、QtUI等を生成する。一実施形態では、CUI110は、ウィジットがGTKシンタックスを使用して規定されるGladeXMLファイルである。CUI110は、ユーザがモデル番号を入力するためのテキスト入力部と、ユーザが色を選択するための2つのラジオボタンを備える。CUI110はまた、ユーザ入力を確認するためのキャンセルおよびOK制御ボタンのセットを備える。一実施形態では、処理ロジックは、その他の情報に少なくとも一部基づいて、CUI110からAUI120例えば、XML形式のAUIを生成する。一実施形態では、AUI120は、アクションを提示すべく生成され、顧客の仕様に従う。アクションの例としては、ウィジットの抽象化、例えば、ボタン、ラベル、画像、動画、スライダslider等を含む。一実施形態では、抽象化ユーザインターフェースAUIは、AUI言語に従ってタスクモデルの形式で生成される。AUIは、タスク指向モデルに基づく仕様に従う。ウィジットは、コンテキストおよび暗黙属性implicitattribute、例えば、関係、特性、グループおよび必要に応じて必須サイズ、が保存される一般タスクとして表される。例えば、AUI120は、テキスト入力および選択入力を受け付けるタスクを含む。AUI120はまた、ユーザからのアクションキャンセルまたはOKを含む。一実施形態において、AUI120の生成は、アプリケーションの設計段階で実行される。例えば、開発者は、既存のCUIを準備する。そして、処理ロジックにより、CUI例えば、CUI110をAUI例えば、AUI120へと分析変換する。[CUIの生成]一実施形態において、処理ロジックは、デバイス情報、または、アプリケーションを実行するデバイスと関連付けられたデバイス特性を収集する。一実施形態において、対象デバイス情報131は、対象デバイスについての特定の情報を含む。一実施形態において、このような情報は、デバイスの種類、画面のサイズ、画面の解像度、画面の数、入力デバイスが利用可能か等の情報を含む。一実施形態において、処理ロジックは,DBusおよびX11を介して、実行デバイスについてのメタデータを収集する。一実施形態において、AUI130が生成され、対象デバイスの情報131が収集された後、処理ロジックは、アルゴリズム例えば、再ページネーション/レイアウトモジュール140を使用して、これらのソースに基づいてCUI150を生成する。一実施形態において、処理ロジックは、動的にCUI150を生成する。一実施形態において、再ページネーション/レイアウトモジュール140は、再ページネーションページ分割、レイアウト配置、ナビゲーションコントロール挿入等を実行する。一実施形態において、処理ロジックは、1ページ分割レイアウトロジック例えば、XSLTファイル、2AUI例えば、XMLファイル、および、3対象デバイス情報例えば、XSLTファイルに組み込まれている。再ページネーション/レイアウトモジュール140について、以下に詳細に説明する。一実施形態において、対象デバイスの情報は、ページ分割レイアウトロジックと同じXSLTファイルに組み込まれている。一実施形態において、処理ロジックは、ページ分割レイアウトロジックおよびデバイス情報に基づいて、カスタマイズされたXSLTファイルを生成する。別の実施形態では、対象デバイスの情報は、別のファイル、例えば、別のXSLTファイルに存在する。一実施形態において、処理ロジックは、再ページネーション/レイアウトモジュール140と連動して、AUI130におけるタスク記述を受信して、アプリケーションを実行するデバイスの制約および能力に従って、最終的なCUI例えば、CUI150を生成する。一実施形態において、処理ロジックは、アプリケーションを実行するデバイスの一部である。一実施形態において、処理ロジックは、AUI130をCUI150へと変換する。変換は、代表的なタスクに使用されるCUIで利用可能なウィジットおよびその特性を考慮して行われる。一実施形態において、タスクの特性は、最小ウィジットサイズ、タスク優先度例えば、アプリケーションが複数の画面ページに分割される場合、最初の画面ページに表示されるべきタスク、グループ化情報例えば、確認およびキャンセルはグループ化されたタスクである、必要サイズ例えば、動画領域は、全画面領域の少なくとも50である等に関係する。一実施形態において、処理ロジックは、CUIが複数の画面ページ複数のウィンドウに分割される場合には、ナビゲーションコントロール例えば、次next、一つ前previous、またはこれらの両方を生成する。例えば、小さな画面領域を有するデバイスでは、AUIは複数のページにわたって表示される。例えば、CUI150は、元のCUIすなわち、CUI110では1つの画面ページを有するが、小さなデバイスでは、2つの画面ページすなわち、画面頁151および画面ページ152を有する。一実施形態において、CUI150は、レンダリングされて、アプリケーションの方法、プロセスおよび機能と関連付けされる。一実施形態において、処理ロジックは、デバイスの能力を判断する。処理ロジックは、所望のアクションを表すのに最も都合の良いウィジットを判断する。デバイスのフォームファクターが元のユーザインターフェースよりも小さい場合、処理ロジックは、UIを分割して、小型のデバイス例えば、小さなディスプレイを有するスマートフォンで使用される最終的なCUIには、ナビゲーションコントロールを搭載した複数の画面を生成する。一実施形態において、フレームワーク100は、付加的なサービス、アプリケーションまたはツールとは独立して、様々なデバイスそれぞれに対するユーザインターフェースを作り変える。フレームワーク100は、開発済みのアプリケーションに適用可能である。フレームワーク100は、ユーザインターフェースおよび周辺ロジックルール例えば、ウィジットグループ情報、特性、必要画面サイズ等を表すのに、AUIのコンセプトを採用する。一実施形態において、フレームワーク100は、ランタイムSDKとは独立している。例えば、AUI130および再ページネーション/レイアウトモジュール140は、ライブラリまたはアプリケーションの一部として、アプリケーションに組み込まれる。一実施形態において、フレームワーク100は、オブジェクト指向言語およびその他の言語を含む、例えば、FORTRAN、Java登録商標、C等の高級コンピュータ言語におけるコードと共に使用される。一実施形態において、処理ロジックは、ランタイムの間のアプリケーションの実行に応答して、CUI150を生成する。一実施形態では、フレームワーク100は、XML形式に従ったAUI定義を使用する。AUIにおける一要素は、実際の対象デバイスに従って、1以上のウィジット、ハードウェア入力制御およびこれらの組み合わせにマッピングされる。例えば、押すアクションは、ネットブックではソフトボタンとしてレンダリングされるが、スマートフォンではハード制御ボタンとしてレンダリングされる。一実施形態において、AUI仕様言語は、例えば、UsiXML、XForms等におけるアプローチを含む。一実施形態において、AUI仕様言語は、タスク、コンテナcontainer、インスタンス、ウィジット抽象化および特性モデルを含む。AUI仕様はさらに、例えば、優先順位情報、グループ化情報、シーケンス情報およびイベントマッピングのようなコンセプトおよび定義を含む。一実施形態において、フレームワーク100は、AUI仕様モデルと連動して実装される。AUI仕様モデルに従って、コンテナは、画面ページの表現となり、タスクはウィジットの表現となる。最終的なCUIを生成し、最終的なCUIの特性を規定するべく、更なるメタデータが含まれる。[再ページネーション/レイアウトモジュール]一実施形態において、再ページネーションおよびレイアウトアルゴリズムは、フレームワーク100の一部である。一実施形態において、再ページネーション/レイアウト140は、AUIを解析して、CUIを生成する。再ページネーション/レイアウト140は、デバイス特性、ウィジットおよびユーザが規定する所望の振る舞いに基づいて、生成を行う。一実施形態において、再ページネーション/レイアウト140は、XML形式で出力すなわち、CUIを生成するXSLTパーサparserとして構成される。一実施形態において、再ページネーション/レイアウト140は、AUIをCUIに変換するべく、従来のXML言語の使用方法とは異なるが、XML言語で符号化される。一実施形態において、再ページネーション/レイアウト140は、X11インターフェースLinux登録商標ベースのデバイスまたはOSAPIWindows登録商標ベースのデバイスを使用したデバイスから抽出される対象デバイスのメタデータを使用する。一実施形態において、再ページネーション/レイアウト140は、例えば、再ページネーション、レイアウト分割、デバイス情報収集、コンテナ解析、分割調整、画面スタックstackの計算、アクション解析、グループ解析およびナビゲーションコントロール挿入を実行するモジュールを備える。一実施形態において、再ページネーションモジュールは、デバイス特性および開発者によって予め定められるプリファレンスに基づいて、ウィジットを1つの画面ページから別の画面ページへと移動することを決定する。レイアウト分割では、ウィジットを収める新規のウィンドウ画面ページを作成することにより、または、複数の画面ページを少ない数の画面ページに結合することにより、再ページネーション助ける。レイアウト分割は、対称のプラットフォームそれぞれについて、いくつ画面ページが必要かを推定する。例えば、あるアプリケーションは、ネットブックで実行される場合には2つの画面ページを使用する必要があるが、スマートフォンでは4つの画面ページウィンドウを使用する必要がある。一実施形態において、フレームワーク100は、ディスプレイ上のウィジットの位置を変更して、様々なデバイスにおいてユーザの満足度が下がらないようにする。一実施形態において、コンテナ解析では、GUIを分析して、コンテナの位置を設定する。一実施形態において、コンテナは、常に1ユニットとして管理される別のウィジットを収容するウィジットと同様であってもよい。コンテナ解析ではまた、必要に応じて新規のコンテナを作成する。例えば、3つのボタン再生play、停止stopおよび一時停止pauseを有するコンテナは、これら3つのボタンが常に一緒に配置されることを示して、使用が容易なデザインになるようにしている。このような暗黙の情報は、画面ページの分割プロセスにおける決定に有用である。一実施形態において、分割調整は、新規に作成されたページ各々について、反復して動作して、全てのウィジットが進行しながら配置または移動されるようにしている。例えば、ウィンドウ容量が一杯になった場合利用可能な画面領域が低くなった場合またはゼロとなった場合、新規の画面ページが作成される。一実施形態において、スタック計算では、現在のウィンドウに配置されるべきウィジットの数AUI仕様におけるアクションの数を計算する。スタック計算は、優先順位情報および利用可能な残りの画面領域を決定する画面パーセント計算に基づいて実行される。スタック計算の出力は、アクション解析およびグループ解析に使用できる。一実施形態において、アクション解析は、デバイス特性に基づいて最も適したウィジットを選択することによって、抽象アクションを、CUIにおける1以上のウィジットに変換する最終的なモジュールの1つである。例えば、アクション押すpushは、ネットブックではボタンとしてレンダリングされるが、スマートフォンではチェックボックスとしてレンダリングされる。一実施形態では、グループ解析は、抽象グループを、CUIにおける1以上のコンテナへと変換する最終的なモジュールの1つである。一実施形態において、ナビゲーションコントロール挿入は、全てのウィジットが画面ページに配置された後に、新規のページが作成された場合に発生する。ナビゲーションコントロールは、ユーザが一の画面から別の画面へとナビゲートできるように挿入される。一実施形態において、ナビゲーションコントロールは、次next/一つ前previousボタンを使用して、または、ユーザが使用するのに適したその他の手法を使用して、実装される。一実施形態において、ナビゲーションコントロールは、ウィンドウ分割再ページネーションに応じて起動される。一実施形態において、ナビゲーションコントロールは、次/一つ前ボタン、ドロップダウンメニュー、インデックスまたはこれらの組み合わせである。一実施形態において、フレームワーク100は、様々なフォームファクターのデバイスに対して、自動グラフィカルユーザインターフェース/入力適応を提供する。プログラマは、特定のデバイスに対してアプリケーションを開発し、グラフィカルユーザインターフェース/入力制御を再開発することなく、別のデバイス上でアプリケーションを実行することができる。[デバイス特性の変更]一実施形態において、大型のデバイスに対して設計されたアプリケーションを、小型のデバイスで実行することができる。レイアウト分割previousは、1つのウィンドウを、ナビゲーションコントロールを有する複数の画面ページに整合性を保って分割する。一実施形態において、アプリケーションは、プロセス間通信または遠隔手続き呼び出し例えば、DBusを介して通信を実行時に行って、動的にAUI-CUI変換を行うことができる。例えば、ディスプレイの画面解像度が変更される場合、または、デバイスが別のディスプレイに例えば、別のモニタ/プロジェクタを使用して接続される場合、システムサービスは、アプリケーションにメッセージ信号をを送信して、アプリケーションがオンザフライでGUIの適応を実行する。一実施形態において、アプリケーションが別のデバイスで実行されると、入力制御は自動的に適応化される。入力制御は、アプリケーションが、例えば、マウス、キーボード、スタイラス、タッチスクリーン、加速度計、GPSモジュール、ハードボタン、ソフト制御ボタン等の、様々な入力制御/インターフェースを利用できるように適応化される。図2は、具体化グラフィカルユーザインターフェースを生成するシステムの一実施形態を示したフロー図である。発明を不明瞭にしない目的から、バスおよび周辺機器のような関連構成要素の多くを省略して図示している。図2に示すように、システムは、ノートブック210、タブレット211、および、その他のデバイス213を含む。一実施形態において、デバイス情報発見DID220、デバイス情報注入DII221、および、AUI-CUI変換231は、デバイスデバイス210~213と連動して実装されるハードウェア/ソフトウェアモジュールである。モジュールは、ハードウェア回路、専用ロジック等、ソフトウェア汎用コンピュータシステムまたは専用機械で実行されるようなソフトウェア、または、これらの組み合わせを備えてもよい。図2に示すように、一実施形態では、デバイス情報が、DID220によって収集される。一実施形態において、DII221は、デバイス情報を再ページネーションrepagination/レイアウトアルゴリズムに注入する。一実施形態において、カスタマイズされたモジュール240は、DII211および再ページネーション/レイアウトからのデバイス情報に基づいてコンパイルされたまたは生成されたXSTLモジュールである。一実施形態において、AUI-CUI変換231は、AUI230およびXSLT形式のカスタマイズされたモジュール240を受信して、最終的に適応化されたCUI例えば、XMLファイルとして符号化されたCUI250を生成する。一実施形態において、DID220、DII211、および、AUI-CUI変換231は共に1つのシステムとして動作し、再ページネーション分割およびレイアウ配置を実行する。一実施形態において、処理デバイス例えば、デバイス210-213は、1つのチップ内にCPUと共に集積されるグラフィックプロセッサを含む。別の実施形態では、グラフィックプロセッサおよびCPUは、別のデバイスとして設けられる。一実施形態では、グラフィックプロセッサは、CPUからの処理ワークロードのうちの一部をサポート可能な処理デバイスでもある。一実施形態において、グラフィックプロセッサは、複数の処理デバイス例えば、プロセッサ、デジタル信号処理ユニットおよびマイクロコントローラを含む。上記では、方法および装置は、主に、CPU/GPUを参照して説明がなされた。しかしながら、方法および装置は、これに限定されず、グラフィックスプロセッサ、デジタル信号処理ユニット、マイクロコントローラおよびこれらの組み合わせを含む任意の処理デバイスに実装されてもよいまたは、関連付けられてもよい。一実施形態において、コンピュータシステム例えば、デバイス210-213は、コンピュータワークステーション、ラップトップ、デスクトップ、サーバ、メインフレームまたはその他のコンピュータデバイスを含む。図3は、具体化されたグラフィカルユーザインターフェースを生成するシステムの一実施形態を示したフロー図である。プロセスは、ハードウェア回路、専用ロジック等、ソフトウェア汎用コンピュータシステムまたは専用機械で実行されるソフトウェアまたはこれら両方の組み合わせを含む処理ロジックによって実行される。一実施形態において、プロセスは、図4に示されるコンピュータシステムによって実行される。図3に示すように、一実施形態では、処理ロジックは、デバイスでアプリケーションが実行されたことに応じて、デバイスと関連付けられているデバイス特性を特定することから開始する処理ブロック601。処理ロジックは、例えば、画面サイズ、画面解像度、デバイスの入力能力等のデバイス情報を収集する。一実施形態において、処理ロジックは、少なくともデバイス特性およびアプリケーションの抽象化ユーザインターフェースabstractuserinterface:AUIに基づいて、具体化されたグラフィカルユーザインターフェースconcretegraphicaluserinterface:CUIを生成する処理ブロック602。一実施形態において、処理ロジックは、AUIに表されたタスクベースの要素に基づいて、ユーザインターフェースの要素を決定する。ユーザインターフェースの要素を、ここでは、ウィジットとも称する。処理ロジックは、AUIおよびデバイス情報に基づいて、再ページネーションおよびレイアウトアルゴリズムを適用する。処理ロジックは、必要に応じて、ユーザインターフェースウィンドウを複数の画面ページに分割して、画面ページにナビゲーションコントロールを追加する。一実施形態において、処理ロジックは、各ユーザインターフェース要素の優先順位情報および残りの画面ページ情報に基づいて、1つの画面ページにおけるユーザインターフェースの要素の数の推定値を計算する。一実施形態において、処理ロジックは、1つの画面ページを、2つ以上の画面ページに分割するかを判断する。処理ロジックは、複数画面ページのそれぞれに、ナビゲーションコントロールを挿入する。例えば、最後の画面ページに挿入されるナビゲーションコントロールは、1つ前のページへの制御のみを表示する。最後の画面ページは、次の画面へのナビゲーションコントロールを表示しない。一実施形態において、処理ロジックは、1以上のハードウェアボタンについての情報を含むデバイス特性に基づいて、CUIを生成する。一実施形態において、処理ロジックは、1以上のハードウェアボタンおよび1以上のソフトウェアボタンからのユーザ入力を受け付けることが可能なCUIを生成する。一実施形態において、処理ロジックは、最終的に適応化されたCUIを生成および表示する処理ブロック603。処理ロジックは、デバイスのディスプレイに、最終的なCUIをレンダリングし表示する。一実施形態において、処理ロジックは、デバイス特性に変更があったかを判断する処理ブロック604。例えば、処理ロジックは、システムサービスを監視して、変更が発生したかを検出する。一実施形態において、処理ロジックは、変更が発生した場合に、システムサービスからメッセージを受信する。一実施形態において、処理ロジックは、更新されたデバイス特性およびアプリケーションの同じAUIに基づいて、異なるCUIを生成する処理ブロック605。一実施形態において、アプリケーションのAUIは、特定のデバイスの情報なしに生成される。異なるCUIは、デバイスがアプリケーションを開始した際に、AUIに基づいて動的に生成される。本発明の実施形態は、様々な電子デバイスおよびロジック回路に実装されてもよい。さらに、本発明の実施形態を含むデバイスまたは回路は、様々なコンピュータシステムに備えられてもよい。本発明の実施形態は、その他のコンピュータシステムトポロジーおよびアーキテクチャに含まれてもよい。例えば、図4には、本発明の一実施形態に関連するコンピュータシステムが示されている。プロセッサ705は、レベル1L1キャッシュメモリ706、レベル2L2キャッシュメモリ710およびメモリ715からのデータにアクセスする。本発明の別の実施形態では、キャッシュメモリ706は、コンピュータシステムメモリ階層内のL1キャッシュと、L2キャッシュのようなその他のメモリとを一緒に備えるマルチレベルキャッシュメモリであってもよい。キャッシュメモリ710は、L3キャッシュのような1つ下の階層のキャッシュメモリまたはマルチレベルキャッシュである。さらに、別の実施形態では、コンピュータシステムは、複数のプロセッサコアに対する共有キャッシュとして、キャッシュメモリ710を有してもよい。プロセッサ705は、任意の数の処理コアを有してもよい。本発明の別の実施形態では、しかしながら、ハードウェア、ソフトウェアまたはこれらの組み合わせにおけるシステム全体に分配されたその他のデバイスまたはシステム内のその他のデバイス内に実装されてもよい。一実施形態において、グラフィックスコントローラ708は、1つのチップにプロセッサ705と共に集積される。別の実施形態では、グラフィックスコントローラ708およびプロセッサは、別個のデバイスである。一実施形態において、グラフィックコントローラ708は、プロセッサ705からの処理ワークロードのうちの一部をサポート可能な処理デバイスでもある。一実施形態において、グラフィックコントローラ708は、処理デバイス例えば、プロセッサ、グラフィックスプロセッサ、デジタル信号処理ユニットおよびマイクロコントローラを含む。メインメモリ715は、様々なメモリリソースに実装されてもよく、例えば、ダイナミックランダムアクセスメモリDRAM、ハードディスクドライブHDD720、NVRAM技術に基づくソリッドステートディスク725、または、ネットワークインターフェース730または無線インターフェース740を介して様々な記憶デバイスおよび技術を含むコンピュータシステムからリモートに位置するメモリソースに実装されてもよい。キャッシュメモリは、プロセッサ内に位置してもよいし、プロセッサのローカスバス707に位置するといったように、プロセッサに近接して配置されてもよい。さらに、キャッシュメモリは、6トランジスタ6Tセルのような相対的に高速のメモリセルを含んでもよいし、ほぼ等しい又は速いアクセススピードを有するその他のメモリセルを含んでもよい。本発明の別の実施形態は、図4のシステム内の、別の回路、ロジック単位またはデバイス内に存在してもよい。さらに、本発明の別の実施形態は、複数の回路、複数のロジック単位、または、図4に例示される複数のデバイスにわたって、存在してもよい。同様に、少なくとも1つの実施形態が、ポイントツーポイントコンピュータシステム内に実装されてもよい。例えば、図5は、本発明の一実施形態で使用されるポイントツーポイントPtPコンピュータ構成に配置されたコンピュータシステムを示した図である。より詳細には、図5には、複数のポイントツーポイントインターフェースで相互接続された、プロセッサ、メモリおよび入出力デバイスを含むシステムが示されている。図5のシステムは、複数のプロセッサを備えてもよく、そのうちの2つのみ、すなわちプロセッサ870、880が明示されている。プロセッサ870、880はそれぞれ、メモリ850、851と接続するための、ローカルメモリコントローラハブMCH811、821を有する。プロセッサ870、880は、ポイントツーポイントPtPインターフェース回路812、822を使用して、PtPインターフェース853を介したデータ交換を行ってもよい。プロセッサ870、880はそれぞれ、PtPインターフェース回路813、823、860、861を使用して、個々のPtPインターフェース830、831を介してチップセット890とデータ交換を行ってもよい。チップセット890はまた、高性能グラフィックスインターフェース862を介して、高性能グラフィックス回路852とデータ交換を行ってもよい。本発明の実施形態は、図5のコンピュータバス834または835と接続されてもよいし、チップセット890、データ記憶装置875、または、メモリ850内に存在してもよい。しかしながら、本発明のその他の実施形態では、図5の別の回路、ロジック単位またはデバイス内に存在してもよい。さらに、本発明の別の実施形態は、複数の回路、複数のロジック単位、または、図5に例示される複数のデバイスにわたって、存在してもよい。本発明は、上記で説明された実施形態に限定されず、添付の特許請求の範囲および精神の範囲内で改良および変形が可能である。例えば、本発明は、全ての種類の半導体集積回路ICチップに適用可能である。これらICチップの例としては、これに限定されないが、プロセッサ、コントローラ、チップセット構成要素、プログラム可能ロジックアレイPLA、メモリチップ、ネットワークチップ等が挙げられる。さらに、サイズ/モデル/値/範囲の例が上記で示されたが、本発明の実施形態は記載と同じ値に限定されない。将来的に製造技術例えば、フォトリソグラフィが発展すれば、小型のデバイスが製造可能となると考えられる。上記の説明を読むことにより、本発明の実施形態の数多くの変形例および改良が当業者にとって明らかとなるであろう。また、上記の特定の実施形態は例示のために記載されており、本発明を限定することを意図していない。したがって、様々な実施形態の詳細の参照は、本発明に必要であると考えられる特徴のみを記載した特許請求の範囲を限定するものではない。"