(57)【要約】  本発明の実施形態は、柔軟な汎用レイアウト・ファイルを使用してアプリケーション・ユーザ・インターフェースを迅速かつ容易に構成する方法および装置を提供する。一実施形態では、アプリケーション・プロバイダがフリー・フォーム・グリッド上の所望の位置にオブジェクトを配置することによってそれぞれ所望のサイズの所望の数のプレースホルダを作成することを可能にするフリー・フォーム・グリッド・レイアウトが提供される。このようにして、アプリケーション・プロバイダは、アプリケーション・ユーザ・インターフェースを構成する。一実施形態では、提供される１組のオブジェクトから選択したオブジェクトをグリッド・レイアウト上にドラッグすることによってプレースホルダが作成される。そのような実施形態では、グリッド・レイアウト上のオブジェクトを記述する（例えば、数、サイズ、位置を示す）１組のパラメータがデータベースに格納される。実行時に、このパラメータが使用されて動的にＨＴＭＬコードが生成され、このＨＴＭＬコードは、実行されるときにアプリケーション・ユーザ・インターフェースを提示する。
2007521564.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションのユーザ・インターフェースに関する構成を受け取ることと、
前記構成に対応する１組のパラメータを求めることと、
前記１組の構成パラメータに基づいてユーザ・インターフェース表示コードを動的に生成すること
を含む方法。
【請求項２】
前記アプリケーションにアクセスする要求に応答して、前記ユーザ・インターフェース表示コードをクライアント・デジタル処理システムに送ること
をさらに含む請求項１に記載の方法。
【請求項３】
前記ユーザ・インターフェースに関する前記構成が、１つまたは複数のオブジェクトを選択し、フリー・フォーム・グリッド・レイアウトの所望の位置に各オブジェクトを配置することによって決定される請求項１に記載の方法。
【請求項４】
前記要求がインターネットを介して通信され、前記ユーザ・インターフェース表示コードがハイパー・テキスト・マークアップ言語コードである請求項２に記載の方法。
【請求項５】
前記１つまたは複数のオブジェクトがユーザ入力装置を使用して選択され、選択された各オブジェクトが、前記オブジェクトを前記フリー・フォーム・グリッド・レイアウトの所望の位置にドラッグすることによって配置される請求項１に記載の方法。
【請求項６】
オブジェクトをフリー・フォーム・グリッド・レイアウトの所望の位置に配置することが、前記オブジェクトに関する所望のサイズを指示することを含む請求項１に記載の方法。
【請求項７】
前記オブジェクトに関する所望のサイズを指示することが、前記フリー・フォーム・グリッド・レイアウト上の第１位置で前記オブジェクトの外周部を選択することと、前記外周部を前記フリー・フォーム・グリッド・レイアウト上の第２位置にドラッグすることを含む請求項１に記載の方法。
【請求項８】
前記ハイパー・テキスト・マークアップ言語コードが、前記１組の構成パラメータと要求元とに基づいて動的に生成される請求項４に記載の方法。
【請求項９】
前記フリー・フォーム・グリッド・レイアウトが複数のグリッド・セルを含み、前記１組のパラメータが、前記複数のグリッド・セルのうちの１つまたは複数を基準として各オブジェクトの位置を示す情報を含む請求項１に記載の方法。
【請求項１０】
前記１組のパラメータが、前記複数のグリッド・セルのうちの１つを指定するグリッド座標と、前記１つまたは複数のオブジェクトのそれぞれについての第１の寸法を指定する列幅と、第２の寸法を指定する行幅とを含む請求項９に記載の方法。
【請求項１１】
ストレージを有するサーバ・デジタル処理システムであって、前記ストレージが、アプリケーションのユーザ・インターフェースの構成に対応する１組の構成パラメータを含むサーバ・デジタル処理システムと、
前記アプリケーションへのアクセスを要求することができるように前記サーバ・デジタル処理システムに結合された１つまたは複数のクライアント・デジタル処理システムであって、前記要求が、前記サーバ・デジタル処理システムに、前記１組の構成パラメータに基づいてユーザ・インターフェース表示コードを動的に生成させるクライアント・デジタル処理システムと
を備えるシステム。
【請求項１２】
前記クライアント・デジタル処理システムが、インターネットを介して前記サーバ・デジタル処理システムに結合され、前記ユーザ・インターフェース表示コードがハイパー・テキスト・マークアップ言語コードである請求項１１に記載のシステム。
【請求項１３】
前記構成が、１つまたは複数のオブジェクトを選択し、フリー・フォーム・グリッド・レイアウトの所望の位置に各オブジェクトを配置することによって決定される請求項１１に記載のシステム。
【請求項１４】
オブジェクトをフリー・フォーム・グリッド・レイアウトの所望の位置に配置することが、前記オブジェクトに関する所望のサイズを指示することを含む請求項１１に記載のシステム。
【請求項１５】
前記オブジェクトに関する所望のサイズを指示することが、前記フリー・フォーム・グリッド・レイアウト上の第１位置で前記オブジェクトの外周部を選択することと、前記外周部を前記フリー・フォーム・グリッド・レイアウト上の第２位置にドラッグすることを含む請求項１１に記載のシステム。
【請求項１６】
前記ハイパー・テキスト・マークアップ言語コードが、前記１組の構成パラメータと要求元とに基づいて動的に生成される請求項１４に記載のシステム。
【請求項１７】
前記フリー・フォーム・グリッド・レイアウトが複数のグリッド・セルを含み、前記１組のパラメータが、前記複数のグリッド・セルのうちの１つまたは複数を基準として各オブジェクトの位置を示す情報を含む請求項１１に記載のシステム。
【請求項１８】
前記１組のパラメータが、前記複数のグリッド・セルのうちの１つを指定するグリッド座標と、前記１つまたは複数のオブジェクトのそれぞれについての第１の寸法を指定する列幅と、第２の寸法を指定する行幅とを含む請求項１７に記載のシステム。
【請求項１９】
命令を与える機械可読媒体であって、前記命令が、処理システムによって実行されたときに、
アプリケーションのユーザ・インターフェースに関する汎用レイアウト・ファイルにアクセスすることであって、前記汎用レイアウト・ファイルが、フリー・フォーム・グリッド・レイアウトと１組のオブジェクトを有することと、
アプリケーションのユーザ・インターフェースに関する構成を作成することと、
前記構成に対応する１組のパラメータを求めることと、
前記１組の構成パラメータに基づいてユーザ・インターフェース表示コードを動的に生成すること
を含む方法を処理システムに実行させる機械可読媒体。
【請求項２０】
前記アプリケーションにアクセスする要求に応答して、前記ユーザ・インターフェース表示コードをクライアント・デジタル処理システムに送ること
をさらに含む請求項１９に記載の機械可読媒体。
【請求項２１】
前記ユーザ・インターフェースに関する前記構成が、１つまたは複数のオブジェクトを選択し、フリー・フォーム・グリッド・レイアウトの所望の位置に各オブジェクトを配置することによって決定される請求項１９に記載の機械可読媒体。
【請求項２２】
前記要求がインターネットを介して通信され、前記ユーザ・インターフェース表示コードがハイパー・テキスト・マークアップ言語コードである請求項２０に記載の機械可読媒体。
【請求項２３】
前記１つまたは複数のオブジェクトがユーザ入力装置を使用して選択され、選択された各オブジェクトが、前記オブジェクトを前記フリー・フォーム・グリッド・レイアウトの所望の位置にドラッグすることによって配置される請求項１９に記載の機械可読媒体。
【請求項２４】
オブジェクトをフリー・フォーム・グリッド・レイアウトの所望の位置に配置することが、前記オブジェクトに関する所望のサイズを指示することを含む請求項１９に記載の機械可読媒体。
【請求項２５】
前記オブジェクトに関する所望のサイズを指示することが、前記フリー・フォーム・グリッド・レイアウト上の第１位置で前記オブジェクトの外周部を選択することと、前記外周部を前記フリー・フォーム・グリッド・レイアウト上の第２位置にドラッグすることを含む請求項１９に記載の機械可読媒体。
【請求項２６】
前記ハイパー・テキスト・マークアップ言語コードが、前記１組の構成パラメータと要求元とに基づいて動的に生成される請求項２２に記載の機械可読媒体。
【請求項２７】
前記フリー・フォーム・グリッド・レイアウトが複数のグリッド・セルを含み、前記１組のパラメータが、前記複数のグリッド・セルのうちの１つまたは複数を基準として各オブジェクトの位置を示す情報を含む請求項１９に記載の機械可読媒体。
【請求項２８】
前記１組のパラメータが、前記複数のグリッド・セルのうちの１つを指定するグリッド座標と、前記１つまたは複数のオブジェクトのそれぞれについての第１の寸法を指定する列幅と、第２の寸法を指定する行幅とを含む請求項２７に記載の機械可読媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本願は、その教示が参照により本明細書に組み込まれる「Ａｐｐｌｉｃａｔｉｏｎ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｔｅｍｐｌａｔｅ  Ｗｉｔｈ  Ｆｒｅｅ−Ｆｏｒｍ  Ｌａｙｏｕｔ」という名称の２００３年６月３０日出願の仮出願６０／４８４０２６に対する優先権を主張する正式な出願である。
【技術分野】
【０００２】
本発明の実施形態は、一般にはハイパー・テキスト・マークアップ言語（「ＨＴＭＬ」）ベースのアプリケーションの分野に関し、より詳細には、そのようなアプリケーションのためのユーザ・インターフェース（すなわちエンド・ユーザに対する表示）を作成、変更、提示する方法とシステムに関する。
【背景技術】
【０００３】
過去１０年間にわたって、インターネット関連のネットワーク（例えばワールド・ワイド・ウェブ（「ＷＷＷ」）を介して提供されるアプリケーション（ユーザ指向の特定機能ソフトウェア）の数とタイプが大きく増加した。アプリケーションは、アプリケーションＵＩの構造とレイアウトを定義するオーサリング言語（例えばＨＴＭＬ）を使用して作成される。例えば、ＨＴＭＬは、様々な言語要素記述子（例えばタグや属性）を使用して構造とレイアウトを定義する。典型的なウェブ・ベースのアプリケーションは、クライアント／サーバ・プログラミング・モデルを使用して提示される。そのようなモデルでは、アプリケーション・プロバイダは、サーバ・デジタル処理システム（「ＤＰＳ」）にアプリケーションを提供し、アプリケーションのエンド・ユーザは、クライアントＤＰＳを介してアプリケーションにアクセスする。例えば、ウェブ・ベースのアプリケーションでは、サーバＤＰＳは、ＨＴＭＬが要求されたとき、要求されたＨＴＭＬをクライアントＤＰＳに提供するプログラムを格納する。
【０００４】
通常、ソフトウェア・ベンダは、アプリケーションＵＩテンプレートを作成する。アプリケーションＵＩテンプレートの構造とレイアウトを定義するＨＴＭＬコードは、汎用レイアウト・ファイル（「ＧＬＦ」）に含まれる。アプリケーションＵＩテンプレートを使用して、複数の異なるアプリケーションを構成することができる。アプリケーション・プロバイダは、ソフトウェア・ベンダからアプリケーションＵＩテンプレートを得て、アプリケーション・プロバイダの特定の必要を満たすようにアプリケーションＵＩ構成をカスタマイズする。しかし、アプリケーションＵＩテンプレートを容易に変更する能力は往々にして非常に制限される。すなわち、アプリケーション・プロバイダはアプリケーションＵＩを構成することができるが、汎用レイアウトに対する変更は、ＧＬＦのＨＴＭＬコードの編集を必要とする。図１Ａ、図１Ｂに、従来技術によるアプリケーションＵＩテンプレートと、カスタマイズと修正のための要件とを示す。図１Ａに示すアプリケーションＵＩテンプレート１００は、いくつかのプレースホルダ１０１〜１０６を含む。ＧＬＦがプレースホルダの数と位置を指定するが、プレースホルダのサイズは、固定されず、プレースホルダ内に配置されるＵＩオブジェクトに応じて拡張または収縮することができる。次いで、ツール・エディタを使用して、アプリケーション・プロバイダは、フィールドと制御（例えば、フィールド、押ボタン、スクロール・バーなど）などのオブジェクトをドラッグし、次いでそれをプレースホルダ１０１〜１０６内にドロップすることができる。すなわち、ツール・エディタにより、アプリケーション・プロバイダがアプリケーションＵＩを構成するためにオブジェクトをディスプレイ画面上のある場所から別の場所に移動させることが可能となる。このことは、例えばポインティング・デバイス（例えばマウス）でオブジェクトを選択し、それを新しい位置に誘導することによって実施される。例えば、図１に示すように、フィールド名「Ａｃｃｏｕｎｔ  Ｎｕｍｂｅｒ」、「Ｄａｔｅ」、「Ｃｏｎｔａｃｔ」が、それぞれプレースホルダ１０１、１０３、１０５に配置される。各フィールド名に対応する編集フィールドが、それぞれプレースホルダ１０２、１０４、１０６に配置される。フィールド名と編集フィールドを共に示すようにプレースホルダを構成することができる。内部では、１つのオブジェクトのみがプレースホルダに対応付けられる。プレースホルダ内に配置された特定のオブジェクトがアプレットを構成する。アプレットは、エンド・ユーザに情報を表示する論理ユーザ・インターフェース・エンティティ（例えばフォーム・アプレット）であり、どのようにアプリケーションを提示するかを指示する。アプレットに含まれる各オブジェクトに関する情報（例えばオブジェクトの説明）とオブジェクトごとの対応するプレースホルダは、データベースに保持される。アプレットの決定（例えば、既存のプレースホルダ内の様々なオブジェクトの移動）は、ツール・エディタを使用してかなり容易に実施することができる。このようにして、アプリケーション・プロバイダは、特定のアプリケーション・プロバイダの特定の必要に従ってアプリケーシ���ンＵＩテンプレートをカスタマイズする。しかし、アプリケーション・プロバイダがアプリケーションＵＩテンプレートに対するより大きな変更（例えば汎用レイアウト構造の変更）を望む場合、ツール・エディタを使用することができない。プレースホルダのいずれかのサイズと位置の変更、さらにプレースホルダの追加または除去は、ＧＬＦのＨＴＭＬコードの編集を必要とする。例えば、図１Ｂに、アプリケーションＵＩテンプレート１００のカスタマイズを示す。図１Ｂに示すアプリケーションＵＩテンプレート１１０では、プレースホルダ１０２、１０４、１０６が、対応するフィールド名を含むプレースホルダの下になるように再配置されている。さらに、（例えばより多数のアカウント番号を収容するために）プレースホルダ１０２のサイズが増大している。さらに、「Ｃｏｍｍｅｎｔｓ」フィールド名と対応する編集フィールドをそれぞれ与えるために、追加のプレースホルダ１０７、１０８がアプリケーションＵＩテンプレートに追加されている。こうした変更を行うために、アプリケーション・プロバイダは、ＧＬＦのＨＴＭＬにアクセスし、それを編集しなければならなくなる。アプリケーション・プロバイダは、テキスト・エディタを使用してＧＬＦにアクセスし、次いで、新しいＨＴＭＬの作成を含めて、ＨＴＭＬに適切な追加を行い、アプリケーションＵＩの所望のレイアウトを達成する。所望の変更の性質に応じて、このプロセスは、かなりの時間と労力を必要とすることがある。さらに、ＧＬＦの編集は、かなり高いレベルの経験と、それに対応する費用を必要とする。アプリケーションＵＩテンプレートの限界を超えてアプリケーションＵＩを構成することに関係するコストと労力は、現在のアプリケーションＵＩレイアウト方式の大きな欠点である。
【０００５】
別の関連する欠点は、あるオーサリング言語で作成されたアプレットを別のオーサリング言語で形成されるアプレットに移行する（例えば、非ＨＴＭＬアプレットからＨＴＭＬアプレットに移行する）際に直面する困難である。例えば、制御を、例えば座標ベースのレイアウトから典型的なアプリケーションＵＩテンプレートのプレースホルダに移行するとき、座標ベースのレイアウトと厳密に合致するプレースホルダ・レイアウトを有するアプリケーションＵＩテンプレートを求めることは不可能であることがある。アプリケーション・プロバイダは、元のアプレットの数、サイズ、位置に合致するように移行後のアプレットを修正するために多大の時間と労力を費やすことを強いられる。
【発明の開示】
【課題を解決するための手段】
【０００６】
本発明の実施態様は、ＨＴＭＬベースのアプリケーションＵＩを構成する方法と装置を提供する。一実施態様では、アプリケーション・プロバイダは、アプリケーションのユーザ・インターフェースのための構成を決定し、それが処理システムによって受領される。処理システムは、その構成に対応する１組のパラメータを決定し、その１組のパラメータは、データベースまたはファイル・システムに格納することができる。アプリケーションへのアクセスの要求時に、構成パラメータに基づくＨＴＭＬコードが動的に生成され、要求側クライアント処理システムに送られる。
【発明を実施するための最良の形態】
【０００７】
本発明の実施形態のその他の特徴および利点は、添付の図面と以下の詳細な説明から明らかとなるであろう。
【０００８】
本発明は、本発明の実施形態を例示するために使用される以下の説明および添付の図面を参照することによって最も良く理解することができる。
【０００９】
概説
本発明の実施形態は、いくつかの共通に使用されるオブジェクトと、その他のオブジェクトをレイアウトするグリッドとを含む柔軟なＧＬＦを使用してアプリケーションＵＩを迅速かつ容易に構成する方法と装置を提供する。一実施形態では、アプリケーション・プロバイダがフリー・フォーム・グリッド上の所望の位置にオブジェクトを配置することによってそれぞれ所望のサイズの所望の数のプレースホルダを作成することを可能にするフリー・フォーム・グリッド・レイアウトが提供される。フリー・フォーム・グリッド・レイアウトは、固定の構造を有さないグリッド・レイアウトを指す。そのようなレイアウトを使用して、アプリケーション・プロバイダは、オブジェクトのサイズと位置に関する典型的な制約なしに、表示されるグリッド上の任意の場所にオブジェクトを自由に配置することができる。このようにして、アプリケーション・プロバイダは、アプリケーションＵＩを構成する。一実施形態では、提供される１組のオブジェクトから選択したオブジェクトをグリッド・レイアウト上にドラッグすることによってプレースホルダが作成される。そのような実施形態では、グリッド・レイアウト上のオブジェクトを記述する（例えば、数、サイズ、位置を示す）１組のパラメータがデータベースに格納される。実行時に、このパラメータが使用されて動的にＨＴＭＬが生成される。一実施形態では、ＧＬＦを編集することなくアプリケーションＵＩに変更を行うことができる。一実施形態では、いくつかの共通に使用されるオブジェクト（例えばロゴ、ボタンなど）がＧＬＦに含まれる。
【００１０】
以下の説明では、多数の特定の詳細を説明する。しかし、本発明の実施形態はこうした特定の詳細なしに実施できることを理解されたい。別の場合、この説明の理解を不明瞭にしないために周知の回路、構造、技法を示していない。
【００１１】
明細書全体を通して、「一実施形態」（”ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ  ｏｒ  ａｎ  ｅｍｂｏｄｉｍｅｎｔ”）とは、その実施形態に関連して説明される特定の機能、構造、または特徴が本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、明細書全体を通しての様々な場所での「一実施形態」という語句の出現は、必ずしもすべて同一の実施形態を指すわけではない。さらに、特定の機能、構造、または特徴は、１つまたは複数の実施形態で何らかの適切な方式で組み合わせることができる。
【００１２】
さらに、発明の諸態様は、決して単一の開示の実施形態のすべての機能の中にあるわけではない。したがって、詳細な説明に続く特許請求の範囲がこの詳細な説明に明白に組み込まれ、各請求項は、本発明の別々の実施形態としてそれ自体に基づく。
【００１３】
システム
図２に、本発明の一実施形態による、アプリケーションＵＩをアプリケーション・プロバイダによって構成することができ、エンド・ユーザによって提示することのできるシステムを示す。図２に示すシステム２００は、クライアントＤＰＳ２１５ａ、２１５ｂとして表される複数のクライアントＤＰＳにインターネット２１０を介して結合されたサーバＤＰＳ２０５を含む。インターネット２１０は、当業者に周知の方法（例えばＴＣＰやＩＰプロトコルなどの使用）によって情報が交換されるネットワークのネットワークである。
【００１４】
本発明の一実施形態によれば、アプリケーション・プロバイダは、フリー・フォーム・グリッド・レイアウトを有するアプリケーションＵＩテンプレートにアクセスする。アプリケーション・プロバイダは、グリッド上に所望のオブジェクトを配置し、オブジェクトを望み通りにサイズ変更することによってアプリケーションＵＩを構成する。一実施形態によれば、アルゴリズムは、アプリケーションＵＩ構成を示すパラメータをデータベースに格納する。エンド・ユーザが（例えばクライアントＤＰＳのウェブ・ブラウザを介して）アプリケーションにアクセスするとき、アルゴリズムは、格納されたパラメータに基づいて、動的にＨＴＭＬコードを生成する。ＨＴＭＬコードはクライアントＤＰＳに送られて実行され、アプリケーションＵＩが表示される。このプロセスや、サーバＤＰＳ２０５とクライアントＤＰＳ２１５ａ、２１５ｂのオペレーションに関するより一層の詳細を以下で与える。
【００１５】
プロセス
本発明の一実施形態に従ってアプリケーションＵＩを構成するために、アプリケーション・プロバイダはツール・エディタにアクセスする。ツール・エディタはアプリケーションＵＩのＧＬＦを読み取る。グリッド・レイアウトＧＬＦは、ＵＩレイアウトの骨格を記述するＨＴＭＬコードを含む。グリッド・レイアウト・タグがＧＬＦに埋め込まれる。一実施形態によれば、ＧＬＦは、アプリケーションＵＩがフリー・フォーム・グリッド・レイアウト有することを示すタグを含む。タグは、エディタ・ツールにより、ユーザがオブジェクトを自由に置くことのできるキャンバス領域としてレンダリングされる。一実施形態では、ＧＬＦは、いくつかのアプレット（例えばロゴ、ボタンなど）に共通のオブジェクトを含むことができる。これにより、アプリケーション・プロバイダが、アプレットごとのアプリケーションＵＩの差だけを構成することが可能となる。
【００１６】
図３に、本発明の一実施形態による、フリー・フォーム・グリッド・レイアウトを有するアプリケーションＵＩがアプリケーション・プロバイダによって構成され、エンド・ユーザに表示されるプロセスを示す。図３に示すプロセス３００は、フリー・フォーム・グリッドが１組のオブジェクトと共にツール・エディタ・ディスプレイを介してアプリケーション・プロバイダに表示されるオペレーション３０５で始まる。
【００１７】
図４に、本発明の一実施形態による、アプリケーションＵＩを構成する例示的ツール・エディタ・ディスプレイを示す。図４に示すツール・エディタ・ディスプレイ４００は、複数のグリッド・セル４１０から構成されるグリッド４００を含む。各グリッド・セルは、指定の寸法を有するピクセルの矩形アレイ４１１を含む。一実施形態では、各グリッド・セル４１０はピクセルの８×８アレイである。一実施形態では、各グリッド・セル４１０は、列座標１−ｉと行座標１−ｊに対する参照によって指定することができる。ツール・エディタ・ディスプレイ４００はまた、１組のオブジェクト（例えばフィールド、制御など）４１５を含む。
【００１８】
再び図３を参照すると、オペレーション３１０では、アプリケーション・プロバイダが、所望のオブジェクトを選択し、選択した各オブジェクトについての位置とサイズを指示することによってアプリケーションＵＩを構成する。一実施形態では、アプリケーション・プロバイダは、オブジェクトをフリー・フォーム・グリッド（例えばグリッド４０５）上の所望の位置に配置することによってオブジェクトの位置を指示する。例えば、図４を参照すると、アプリケーション・プロバイダは、矢印４１６で示されるようにオブジェクト１をドラッグすることができる。オブジェクト１は例えばフィールド名でよく、それによって陰影の付いたグリッド・セル４２０内に配置される。他のオブジェクト、例えばオブジェクト１のフィールド名に対応する編集フィールドも、アプリケーションＵＩを望み通りに構成するように同様に配置される。オブジェクトの位置と数は従来技術の方式のように制限されない。さらに、一実施形態では、アプリケーション・プロバイダは、各オブジェクトのサイズを指示することができ、各オブジェクトのサイズを望み通りに変更することができる。例えば、各オブジェクトは、デフォルト・サイズ（例えば３×６グリッド・セル）を有することができ、デフォルト・サイズは、オブジェクト外周部を選択し、ドラッグすることによって変更することができる。
【００１９】
図４を参照すると、フリー・フォーム・グリッドの概念が、本発明の一実施形態に従って示されている。様々な代替実施形態では、グリッド４０５は、構成中にアプリケーション・プロバイダからは見ることができない。そのような実施形態では、オブジェクトは、グリッド上に配置されると、最も近いグリッド座標にシフトする。
【００２０】
再び図３を参照すると、オペレーション３１５では、構成がデータベース（例えば構成データベース）に保存されることを指示する１組のパラメータが求められる。各オブジェクトについてのパラメータは、従来技術の方式と同様にオブジェクトの説明（例えば「名前フィールド」）を含む。しかし、位置とサイズが固定される固定の１組のプレースホルダのうちの１つとオブジェクトを関連付けるのではなく、パラメータは、選択された各オブジェクトについての位置とサイズを示す。例えば、図４を参照すると、オブジェクト１を、グリッド座標４，４に配置し、列幅６と行幅３を有する名前フィールドとして記述することができる。代替実施形態では、アプリケーションＵＩ構成パラメータを、選択された各オブジェクトの位置とサイズを示す様々なフォーマットに格納することができる。
【００２１】
再び図３を参照すると、オペレーション３２０では、アプリケーションＵＩへのアクセスのためのエンド・ユーザの要求に応答して、サーバＤＰＳは、構成パラメータを使用して、動的にＨＴＭＬコードを生成し、アプリケーションＵＩを提示する。構成パラメータに基づいてＨＴＭＬコードをレンダリングする例示的擬似コードが補遺Ａとして含められている。
【００２２】
一実施形態によれば、本発明のアルゴリズムは、エンド・ユーザに基づいて異なるＨＴＭＬを生成する。例えば、組織内のエンド・ユーザの役割に応じて、アプリケーションＵＩへのアクセスを何らかの方式で限定または制限することができる。そのような場合、アルゴリズムは、ＨＴＭＬコードを生成して、あるエンド・ユーザ用のアプリケーションＵＩの限定された表示を提示することができ、同じ構成パラメータから、ＨＴＭＬコードを生成して、異なるエンド・ユーザ用の別の限定された表示を提示することができる。
【００２３】
オペレーション３２５では、ＨＴＭＬコードがクライアントＤＰＳに送られて実行され、アプリケーションＵＩが提示される。
【００２４】
一般的事項
本発明の実施形態は、柔軟なＧＬＦを使用してアプリケーションＵＩを構成する方法を提供する。一実施形態では、ＧＬＦは、対応するＧＬＦのアプレットに共通の１組のオブジェクトだけを含む。
【００２５】
前述のように、ツール・エディタは、アプリケーション・プロバイダにフリー・フォーム・グリッド・レイアウトと１組のオブジェクトを提供する。アプリケーション・プロバイダは、所望のオブジェクトを選択し、各オブジェクトの位置をフリー・フォーム・グリッドに関して指示し、各オブジェクトのサイズを指示する。アプリケーション・プロバイダは、アプリケーションＵＩを構成するのに、もはやオブジェクトの数、位置、サイズに制限されない。プレースホルダの数、サイズ、位置に関する制限を除くことにより、アプリケーションＵＩを構成する能力が大きく改善される。グリッド・レイアウトＧＬＦの利点は２重である。第１に、ユーザはＧＬＦを編集することなく容易にアプリケーションＵＩを構成することができる。第２に、フリー・フォームＧＬＦにより、ソフトウェア・ベンダは非ＨＴＭＬアプリケーションＵＩに似たレイアウトを容易に構築することができる。すなわち、ソフトウェア・ベンダは、非ＨＴＭＬアプリケーションＵＩを解析して、ＵＩ特徴に適合する既存のＧＬＦが存在する場合にそのＧＬＦを求める必要がない。
【００２６】
図２を参照して上記で説明したように、本発明の実施形態を実装することのできるシステムは、複数のクライアントＤＰＳにインターネットを介して結合されたサーバＤＰＳを含む。図５は、本発明の一実施形態に従って使用することのできるＤＰＳのブロック図である。例えば、図５に示すＤＰＳ５００は、サーバＤＰＳまたはクライアントＤＰＳとして使用することができる。さらに、ＤＰＳ５００を使用して、インターネット・サービス・プロバイダの１つまたは複数の機能を実行することができる。ＤＰＳ５００は、モデムまたはネットワーク・インターフェース５４５を介して外部システムとインターフェースすることができる。モデムまたはネットワーク・インターフェースはＤＰＳ５００の一部とみなすことができる。モデムまたはネットワーク・インターフェースは、アナログ・モデム、モデム、ケーブル・モデム、トークン・リング・インターフェース、衛星伝送インターフェース、ワイヤレス・インターフェース、または２つ以上のＤＰＳ間のデータ通信リンクを提供するその他のインターフェースでよい。
【００２７】
ＤＰＳ５００は、１つまたは複数のプロセッサを表すことのできるプロセッサ５０５を含むことができ、Ｍｏｔｏｒｏｌａ  ＰｏｗｅｒＰＣプロセッサ（イリノイ州ショームバーグのＭｏｔｏｒｏｌａ，Ｉｎｃ．から入手可能）やＩｎｔｅｌ  ＭＭＸ  Ｐｅｎｔｉｕｍ（登録商標）プロセッサ（カリフォルニア州サンタクララのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能）などの１つまたは複数の従来型プロセッサを含むことができる。メモリ５１０は、バス５１５によってプロセッサ５０５に結合される。メモリ５１０は、ダイナミック・ランダム・アクセス・メモリ（「ＤＲＡＭ」）でよく、かつ／または静的ＲＡＭ（「ＳＲＡＭ」）を含むことができる。プロセッサ５０５はまた、他のタイプの記憶域／メモリ（例えばキャッシュ、フラッシュ・メモリ、ディスクなど）にも結合することができ、その記憶域／メモリはメモリ５１０の一部とみなすことができ、またはメモリ５１０とは別々とみなすことができる。
【００２８】
バス５１５はさらに、プロセッサ５０５をディスプレイ・コントローラ５２０、大容量メモリ５２５、モデムまたはネットワーク・インターフェース５４５、入出力（Ｉ／Ｏ）コントローラ５３０を結合する。
【００２９】
図３、図４を参照して上記で説明したオペレーションは、特定のＤＰＳとシステム構成に応じて、大容量メモリ５２５上に格納されたソフトウェアによって実装することができる。例えば、フリー・フォーム・グリッドを表示するオペレーション、構成パラメータを求めるオペレーション、構成に基づいて動的にＨＴＭＬコードを生成するオペレーション、ＨＴＭＬコードをクライアントＤＰＳに送るオペレーションは、サーバＤＰＳの大容量メモリ５２５上に格納されたソフトウェアによって実装することができる。さらに、大容量メモリ５２５内に含まれる構成データベースに構成パラメータを格納することができる。ＨＴＭＬコードを実行するオペレーションや、アプリケーションＵＩを提示するオペレーションは、クライアントＤＰＳの大容量メモリ５２５上に格納されたソフトウェアによって実装することができる。
【００３０】
大容量メモリ５２５は、磁気、光、光磁気、テープ、および／または情報を格納するその他のタイプの機械可読媒体／デバイスを表すことができる。例えば、大容量メモリ５２５は、ハード・ディスク、読取り専用または書込み可能光ＣＤなどを表すことができる。ディスプレイ・コントローラ５２０は、従来の方式でディスプレイ５３５を制御する。ディスプレイ５３５は、陰極線管（「ＣＲＴ」）ディスプレイ、液晶ディスプレイ（「ＬＣＤ」）、プラズマ・ディスプレイ、またはその他のタイプのディスプレイ装置を表している。Ｉ／Ｏコントローラ５３０はＩ／Ｏデバイス５４０を制御する。Ｉ／Ｏデバイス５４０は、１つまたは複数のキーボード、マウス／トラック・ボールまたはその他のポインティング・デバイス、磁気および／または光ディスク・ドライブ、プリンタ、スキャナ、デジタル・カメラ、マイクロフォンなどを含むことができる。
【００３１】
ＤＰＳ５００は、システムの一例を表すに過ぎず、システムは多くの異なる構成やアーキテクチャを有することができ、それを本発明で使用することができる。例えば、ＭａｃｉｎｔｏｓｈシステムやＩｎｔｅｌシステムはしばしば、周辺バス、専用キャッシュ・バスなどの複数のバスを有する。一方、本発明のＤＰＳとして使用することができるネットワーク・コンピュータは、例えばハード・ディスクまたはその他の大容量記憶装置を含まないことがあるが、モデムまたはインターフェース５４５などのネットワーク接続から、プロセッサ５０５で処理されるルーチンおよび／またはデータを受け取ることができる。同様に、当技術分野で周知であるウェブＴＶシステムは、本発明のＤＰＳであるとみなすことができるが、そのようなシステムは、Ｉ／Ｏデバイス５４０を参照しながら上記で述べたような１つまたは複数のＩ／Ｏデバイスを含まないことがある。さらに、セル電話および／またはページング機能を使用することができるポータブル通信やデータ処理システムを、本発明で使用することのできるＤＰＳとみなすことができる。
【００３２】
図５に示すシステム５００では、大容量メモリ５２５（および／またはメモリ５１０）は、本発明に従って処理することのできる媒体（例えばアプリケーション）を格納することができる。あるいは、媒体データは、例えばモデムまたはネットワーク・インターフェース５４５を介して、ＤＰＳ５００によって受け取ることができ、ディスプレイ５３５および／またはＩ／Ｏデバイス５４０によって格納および／または提示することができる。一実施形態では、ＬＡＮおよび／またはインターネットなどのデータ通信ネットワークを介してデータを送信することができる。
【００３３】
上記の明細書では、本発明を本発明の特定の例示的実施形態を参照しながら説明した。しかし、添付の特許請求の範囲に記載の本発明のより広い精神および範囲から逸脱することなく、本発明に様々な修正および変更を行えることが当業者には明らかであろう。したがって、明細書および図面は、限定的な意味にではなく、例示的な意味に理解すべきである。
【００３４】
補遺Ａ
グリッド内の制御オブジェクトの位置とサイズが与えられると、以下のアルゴリズムは、ＨＴＭＬテーブルを構築して制御を表示する。すべてのブラウザがピクセルに厳密なスタイル・シートを正しくサポートするわけではないので、ＨＴＭＬテーブルが好ましい。制御の位置は、（行，列）対で定義され、行と列は、以下に表示されるグリッド内の制御の位置に対応する。ＲＯＷＳＰＡＮは、制御がグリッド列幾つ分の高さであるかを特定する。ＣＯＬＳＰＡＮは、制御がグリッド列いくつ分の幅であるかを特定する。
【００３５】
以下は、ＨＴＭＬテーブルを作成する例示的疑似コードである。
＊第１パス：
すべての制御オブジェクトにわたってループし、０、１、制御識別子を有するグリッドをマークする。このループ中、グリッドの最大の高さと幅が求められる。
グリッド上の１は、制御の幅によって占められるスペースに対応する。
グリッド上の０は、スペーシングのために埋める必要のある空スペースに対応する。
擬似制御識別子＝制御識別子＋１０が、制御が存在するグリッドの左上のコーナに配置される。
直線は、どのようにグリッドがＨＴＭＬテーブルとして表示される各部分に分割されるかに対応する。
【００３６】
【表１】
2007521564.tif 000003
＊第２パス：
一方が行番号を表し、他方が列番号を表す２つの整数配列を作成する。制御が開始または停止する場所ごとに整数配列を１で埋め、開始点であるすべての行と列を求める。０が残されたすべてのスペースを不要な行と列として除去することができる。除去されるセルごとに、その開始位置セルが１だけ増分し、これにより、後でカスケーディング・スタイル・シート（ＣＳＳ）を使用してグリッドの高さと幅を保持することが可能となる。凝縮することのできる行と列の数を求めた後、ＲＯＷＳＰＡＮ、ＣＯＬＳＰＡＮ、（行，列）対を更新して、凝縮後グリッド・サイズを反映させることが必要である。新しいグリッドは以下のようになる。
【００３７】
【表２】
2007521564.tif 000004
次いで、第１パスで求めた最大の高さと幅に合致する高さと幅を有する０のマトリックスＭを定義する。各制御にわたってループする。マトリックス上の行／列を求めて（制御識別子＋１０）として設定し、対応するＲＯＷＳＰＡＮとＣＯＬＳＰＡＮを使用して、設定する配列中の１を求める。
第３パス：
幅が固定の８ピクセルのテーブル・セルについて第１ＨＴＭＬ行をセットアップする。
マトリックスＭ全体にわたってループし、値をチェックする。
０の場合：
列の終りに達するか、または非０に出会うまでマトリックスを走査する。それが終りではなく、数が０である場合、マトリックス位置を１つ下げ、次いで右スキャンを反復し、これから計算したＣＯＬＳＰＡＮが前のＣＯＬＳＰＡＮよりも小さい場合、小さい方を使用する。さらに下に進むことができなくなるまでこのシナリオを反復する。このとき、ＨＴＭＬノードを作成するためのＴＤセルがどれほどの大きさであるかがわかる。使用されるすべてのマトリックス位置を１に設定する。
１の場合：
何もしない。
省略時：
周囲のｈｔｍｌ上に正しい幅を有する制御ノードを作成する。制御識別子は、現マトリックス項目から１０を引いた値に配置される。
【図面の簡単な説明】
【００３８】
【図１】従来技術によるアプリケーションＵＩテンプレートと、カスタマイズと変更のための要件とを示す図である。
【図２】本発明の一実施形態による、アプリケーションＵＩをアプリケーション・プロバイダによって構成することができ、エンド・ユーザに提示することのできるシステムを示す図である。
【図３】本発明の一実施形態による、フリー・フォーム・グリッド・レイアウトを有するアプリケーションＵＩがアプリケーション・プロバイダによって構成され、エンド・ユーザに表示されるプロセスを示す図である。
【図４】本発明の一実施形態による、アプリケーションＵＩを構成する例示的ツール・エディタ・ディスプレイを示す図である。
【図５】本発明の一実施形態に従って使用することのできるＤＰＳのブロック図である。
2007521564.tif 000005
【図２】
2007521564.tif 000006
【図３】
2007521564.tif 000007
【図４】
2007521564.tif 000008
【図５】
2007521564.tif 000009
【国際調査報告】
2007521564.tif 000010
2007521564.tif 000011