(57)【要約】      （修正有）【課題】能力の異なるクライアントに対しても同じ論理ユーザインタフェースデータを配信するだけで、各クライアントにおいてユーザインタフェースデータの提供者の意図に最大限忠実な表示画面の構成が得られるようにする。【解決手段】抽象化して記述されたユーザインタフェースの指定情報１０２を外部から取得する取得手段と、前記抽象化して記述されたユーザインタフェースより具体化して記述されたユーザインタフェースが分類されたユーザインタフェースルール１０００に関する情報を記憶部から参照する参照手段と、前記ユーザインタフェースルール１０００に関する情報を参照することにより、抽象化されたユーザインタフェース情報に属する具体化されたユーザインタフェース情報を決定する決定手段とを有する。【選択図】図１
2006107180.tif 000002
【特許請求の範囲】
【請求項１】
抽象化して記述されたユーザインターフェースの指定情報を外部から取得する取得手段と、
前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報より具体化して記述されたユーザインターフェースが分類されるユーザインターフェースルールに関する情報を記憶部から参照する参照手段と、
前記ユーザインターフェースルールに関する情報を参照することにより、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報に属する具体化されたユーザインターフェース情報を決定する決定手段とを有することを特徴とする情報処理装置。
【請求項２】
前記ユーザインターフェースルールは、
ユーザインターフェース部品が前記ユーザインターフェースの機能に基づいて分類され、抽象度に応じて階層化されたユーザインターフェース部品ルールと、
前記ユーザインターフェース部品の配置を記述したレイアウトが抽象度に応じて階層化されたレイアウトルールとを有し、
前記ユーザインターフェースの指定情報は、
前記ユーザインターフェース部品ルールの要素を示すユーザインターフェース部品指定情報と、前記レイアウトルールの要素を示すレイアウト指定情報と、
前記ユーザインターフェース部品を前記レイアウトに関連付ける関連情報とを有し、
前記ユーザインターフェース決定手段は、
前記ユーザインターフェース部品指定情報により決定されたユーザインターフェース部品要素と、前記レイアウト指定情報により決定されたレイアウト要素と、前記関連情報とに基づいて、対応するユーザインターフェース部品を対応するレイアウトで配置することを特徴とする請求項１記載の情報処理装置。
【請求項３】
さらに、前記ユーザインターフェースルールに関する情報からユーザインターフェースを生成できるかどうかを判別するユーザインターフェース生成判別手段と、
前記ユーザインターフェース生成判別手段により生成可能と判別された場合、ユーザインターフェースを生成するユーザインターフェース生成手段とを有することを特徴とする請求項１の情報処理装置。
【請求項４】
前記ユーザインターフェース生成判別手段により生成不能と判断された場合、前記ユーザインターフェース生成手段は前記ユーザインターフェース要素定義を無視することを特徴とする請求項３記載の情報処理装置。
【請求項５】
抽象化して記述されたユーザインターフェースの指定情報を外部から取得し、
前記取得された抽象化されたユーザインターフェースの指定情報より具体化して記述されたユーザインターフェースが分類されるユーザインターフェースルールに関する情報を記憶部から参照し、
前記ユーザインターフェースルールに関する情報を参照することにより、前記取得された抽象化されたユーザインターフェースの指定情報に属する具体化されたユーザインターフェース情報を決定する情報処理装置のユーザインターフェース決定方法。
【請求項６】
請求項５に記載の情報処理装置のユーザインターフェース決定方法を実行するためのプログラム。
【請求項７】
請求項６に記載のプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインタフェースデータを元にユーザインターフェースを構成する情報処理装置に関する。
【背景技術】
【０００２】
従来、様々なパーソナルコンピュータ（以下ＰＣと略す）において、インターネット上のサーバに存在する様々な情報をクライアント側で表示構成する表示用言語として、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）言語が広く普及している。このＨＴＭＬ言語によれば、ＰＣの世界においてＰＣアーキテクチャの差異やブラウザアプリケーションによる差異を吸収する事が出来るようになった。
【０００３】
一方で、ネットワークに繋がるクライアント機器が多様化されている。例えば、通信インフラの整備に従い、通信環境を持つＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）及び携帯電話などについても、インターネットに接続しサーバ上の情報を利用するというニーズが広まっている。またさらに、近年は、従来の機器にない様々な画面サイズや機能を持った入出力機器が登場しており、これもまた同様にインターネットに接続し情報を表示・利用するニーズが生じている。
【０００４】
さらに上述の技術に加え、特定のユーザインタフェースデータを様々なクライアント機器において実現する為の技術が種々提案されている。
【０００５】
例えば、送信側では、受信側のデータ受信装置の表示機能ごとに複数種類のデータを用意する必要がなく、あらかじめデータ受信装置の表示機能に対応した属性情報を付与したデータを格納させておくだけで、多種多様な表示機能を有するデータ受信装置それぞれ個々に最適な表示形式でデータを表示させる技術が開示されている。（特許文献１参照）
【特許文献１】特開２００１−１３４５１８公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、主にＰＣでの表示を前提に設計されているＨＴＭＬを用いた表示データに関しては、一定の画面サイズを有するＰＣにおいては、ほぼ製作者の意図に忠実な表示がなされるのに対して、例えば画面の小さいＰＤＡでは、表示の一部が欠けたり、または表示を途中で折り返して表示する為に延々とスクロール操作が必要となったりするような場合がある。
【０００７】
逆に、携帯電話等の小さい画面で表示することを前提にデザインされたデータをＰＣ等大きな画面で表示しようとすると、単に画面の一部に偏った表示をすることになり、また画面の大きさや機能を生かすこともできなかった。
【０００８】
このような問題を解決するため、現状のＨＴＭＬにおいては、多種のクライアントのそれぞれに対して最適な表示を行うための文書をそれぞれ用意する必要がある。
【０００９】
本発明は、上述した課題を解決するために、能力の異なるクライアントに対しても同じ論理ユーザインタフェースデータを配信するだけで、各クライアントにおいてユーザインタフェースデータの提供者の意図に最大限忠実な表示画面の構成を得るシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した目的を達成するために、抽象化して記述されたユーザインターフェースの指定情報を外部から取得する取得手段と、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報より具体化して記述されたユーザインターフェースが分類されるユーザインターフェースルールに関する情報を記憶部から参照する参照手段と、前記ユーザインターフェースルールに関する情報を参照することにより、前記取得手段によって取得された抽象化されたユーザインターフェースの指定情報に属する具体化されたユーザインターフェース情報を決定する決定手段とを有することを特徴とする情報処理装置を提供する。
【発明の効果】
【００１１】
本発明によれば、得られるユーザインターフェース指定情報が抽象化された記述であっても、情報処理装置内に持つユーザインターフェースルール構成の差異に関わらず、最善の表示画面構成が行われる。そのため、ユーザインターフェース指定情報を出力する側は、各機器に対応してユーザインターフェース指定情報を有する必要がなくなる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。
【００１３】
図１２は、本実施の形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【００１４】
図１２において、入力部１は情報（データ）を入力する。ＣＰＵ２は、各種処理のための演算、論理判断等を行い、バス６に接続された各構成要素を制御する。出力部３は情報（データ）を出力するためのものであり、出力部３としては、ＬＣＤやＣＲＴ等のディスプレイや、プリンタ等によって構成される。
【００１５】
プログラムメモリ４は、後述するフローチャートの処理手順を含むＣＰＵ２による制御のためのプログラムを格納するメモリである。プログラムメモリ４は、ＲＯＭ、および外部記憶装置等からプログラムがロードされるＲＡＭを含む。
【００１６】
データメモリ５、各種処理で生じたデータを格納する。データメモリ５は、例えば、ＲＡＭとするが、不揮発性の外部記憶媒体から、後述の処理に先立ってロードしておく、あるいは必要があるごとに参照するものとする。
【００１７】
バス６はＣＰＵ２の制御の対象とする各構成要素を指示するアドレス信号、各構成要素を制御するためのコントロール信号、各構成要素間で相互にやりとりされるデータの転送を行う。
【００１８】
（第１の実施の形態）
図１は本発明に係るユーザインタフェースデータの構造の一例を示すクラス図及びユーザインターフェースルールのクラス図である。
【００１９】
なお、以下で述べるユーザインタフェースデータとは、ユーザインターフェースが動作するクライアント装置においてレンダリングにより表示再生される元となるデータのことを指す。
【００２０】
図１において、本実施の形態に係る情報処理装置がユーザインターフェースを構成するためのユーザインタフェースデータ１０１は、それぞれが１つのユーザインターフェースを記述する１つ以上のユーザインターフェース指定情報１０２から構成されており、ユーザインターフェース指定情報１０２は、サブクラスとしてユーザインターフェース部品について記述されたユーザインターフェース部品指定情報１０５と、ユーザインターフェース部品のレイアウトについて記述されたレイアウト指定情報１０６を有する。
【００２１】
各ユーザインターフェース指定情報１０２は、それぞれ１つのユーザインターフェース指定情報要素１０３を有し、さらにユーザインターフェース指定情報要素１０３は１つのまたは空のリストを持つ。
【００２２】
各ユーザインターフェース指定情報要素１０３は、それぞれ階層化された抽象度の１階層を表し、抽象度を表す１つのユーザインターフェース指定情報要素名１０４を有する。レイアウト指定情報１０６は前記レイアウトの対象となる１つ以上のユーザインターフェース指定情報１０２をその記述の内部に含むという意味において、ユーザインターフェース指定情報１０２と関連している。
【００２３】
また、情報処理装置がユーザインターフェースを構成するためのユーザインターフェースルール１００は、ユーザインターフェース部品に関するルールが記述されたユーザインターフェース部品ルール２０１とレイアウトに関するルールが記述されたレイアウトルール４０１から構成される。ユーザインターフェース部品ルール２０１及びレイアウトルール４０１の詳細については後述する。このユーザインターフェースルール１０１は、予めプログラムメモリ４あるいはデータメモリ５に記憶しておくものとする。
【００２４】
図２は本実施の形態に係る抽象度に応じて階層化されたユーザインターフェースルールのうち、ユーザインターフェース部品に関するユーザインターフェースルール１０１の構造の一例を示すクラス図である。
【００２５】
図２において、ユーザインターフェース部品ルール２０１は、１つ以上のユーザインターフェース部品ルール要素２０２から構成されており、各ユーザインターフェース部品ルール要素２０２は、サブクラスとして非末端ユーザインターフェース部品ルール要素２０３と末端ユーザインターフェース部品ルール要素２０４を有する。
【００２６】
非末端ユーザインターフェース部品ルール要素２０３は１つ以上のユーザインターフェース部品ルール要素２０２を有し、末端ユーザインターフェース部品ルール要素２０４は１つの具体的ユーザインターフェース部品２０５に関連付けられている。このような構成より、ユーザインターフェース部品ルール２０１はツリー状構造を成し、末端のユーザインターフェース部品ルール要素２０２は必ず末端ユーザインターフェース部品ルール要素２０４となる。
【００２７】
なお、ユーザインターフェース部品ルール要素２０２はそれぞれ１つのユーザインターフェース指定情報要素名１０４と関連付けられており、ユーザインターフェース部品ルール２０１のツリー状構造の各段階はそれぞれ階層化された抽象度の１段階を表現している。
【００２８】
図３は、図２の具体例として、本実施の形態に実装されているユーザインターフェース部品に基づくユーザインターフェース部品ルールの一部をツリー状構造で示したものである。
【００２９】
本実施の形態では、上記で説明したように、ユーザインターフェース部品ルールは、ユーザインターフェース部品に対して、抽象的な分類から具体的なユーザインターフェース部品までの階層的なツリー状構造として構成されている。
【００３０】
すなわち、ツリー状構造の末端には、ツールキットの具体的なユーザインターフェース部品が割当てられており、階層が上がるごとにユーザインターフェースの分類の抽象度が高くなる。ツリー状構造の末端３３０には、ツールキットの具体的なユーザインターフェース部品としてＱＤｉａｌ、Ｑｓｌｉｄｅｒ  Ｈｏｒｉｚｏｎｔａｌ、Ｑｓｌｉｄｅｒ  Ｖｅｒｔｉｃａｌ、ＱＣｈｅｃｋＢｏｘ、ＱＰｕｌｌＤｏｗｎ、ＱＰｕｌｌＵｐ、ＱＲａｄｉｏＢｕｔｔｏｎ、ＱＬａｂｅｌ、ＱＨｉｎｔなどがある。これら具体的なユーザインターフェース部品の１つ上の階層３２０では、それぞれを抽象化した部品の概念が分類情報としてまとめられており、具体的には、ダイアル（ｄｉａｌ）、スライダ（ｓｌｉｄｅｒ）、チェックボックス（ｃｈｅｃｋｂｏｘ）、プルダウンメニュー（ｐｕｌｌｄｏｗｎｍｅｎｕ）、ラジオボタン（ｒａｄｉｏｂｕｔｔｏｎ）、ラベル（ｌａｂｅｌ）、ヒント（ｈｉｎｔ）などがある。さらに上位の階層３１０では、さらに抽象化した機能レベルの概念として、数値範囲（ｒａｎｇｅ）、選択（ｓｅｌｅｃｔ）、唯一選択（ｓｅｌｅｃｔｏｎｅ）、テキスト（ｔｅｘｔ）などがある。
【００３１】
図４は、本実施形態に係る抽象度に応じて階層化されたユーザインターフェースルールのうち、レイアウトに関するレイアウトルールの構造の一例を示すクラス図である。
【００３２】
図において、レイアウトルール４０１は、１つ以上のレイアウトルール要素４０２から構成されており、レイアウトルール要素４０２は、サブクラスとして非末端レイアウトルール要素４０３と末端ユーザインターフェース部品ルール要素４０４を有する。非末端レイアウトルール要素４０３は、１つ以上のレイアウトルール要素４０２を有し、末端レイアウトルール要素４０４は、１つの具体的レイアウト４０５に関連付けられている。
【００３３】
このような構成により、レイアウトルール４０１はツリー状構造を成し、末端のレイアウトルール要素４０２は必ず末端レイアウトルール要素４０４となる。
【００３４】
なお、レイアウトルール要素４０２はそれぞれ１つのユーザインターフェース指定情報要素名１０４と関連付けられており、レイアウトルール４０１のツリー状構造の各段階はそれぞれ階層化された抽象度の１段階を表現している。
【００３５】
図５は、図４の具体例として、本実施の形態に実装されているレイアウトルールの一部をツリー状構造で示したものである。本実施の形態では、ユーザインターフェース部品を画面に配置するために、具体的レイアウトが組み込まれており、上記で説明したように、抽象概念をまとめてツリー状構造をなしている。
【００３６】
ツリー状構造の末端５２０には、具体的レイアウトが割当てられており、階層を上がるごとに抽象度が高くなる。具体的レイアウトの例として、ここではユーザインターフェース部品を横に並べるＨｏｒｉｚｏｎｔａｌ、ユーザインターフェース部品を縦に並べるＶｅｒｔｉｃａｌ、周囲に配置するＢｏｒｄｅｒ、碁盤目状に配置するＧｒｉｄなどがある。さらに上位の階層５１０では、さらに抽象化したレベルとして、グループ（ｇｒｏｕｐ）などがある。
【００３７】
図６は本実施の形態の情報処理装置におけるデータメモリ５に記憶されたレイアウトスタック６００のデータ構造の一例を示す概念図である。
【００３８】
図６において、レイアウトスタック６００は、レイアウト情報（６０２〜６０５）をスタック状に複数貯めておくためのコンテナの役割を果たす。６０１は概念上のスタックの最上部を示す。スタックの最上部６０１に近いレイアウト情報が、追加され、また取り除かれることになる。ただし、本実施の形態においてレイアウト上方６０２は特に現在のレイアウト情報と呼び、描画オブジェクトは必ずこれに基づいてレイアウトされる。
【００３９】
図７は本実施の形態の情報処理装置におけるレイアウト情報のデータ構造の一例を示す概念図である。
【００４０】
図７において、レイアウト情報のデータ構造７００は、前記レイアウト情報における次のオブジェクトをレイアウトするための原点となる座標７０１、レイアウトルール７０２を含む。座標７０１，レイアウトルール７０２は、現在のレイアウトルールに基づいて次の描画オブジェクトをレイアウトするための情報である。現在のボックスの大きさ７０３は現在のレイアウトルールの基でレイアウトされたすべてのオブジェクトを含むような最小矩形の大きさに関する情報である。現在のボックスの大きさ７０３は、現在のレイアウトが終了して、１つ前のレイアウト情報における現在の座標７０２と現在のボックスの大きさ７０３を更新するために使用される。
【００４１】
図８は本実施の形態における情報処理装置の処理を示すフローチャートである。
【００４２】
まず、Ｓ８０１において、ネットワーク等を介して外部から抽象化されたユーザインタフェースデータが取得されると、Ｓ８０２に進み、取得されたユーザインタフェースデータに含まれるレイアウト指定情報に基づいて初期レイアウト情報を生成し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックに送る。
【００４３】
次にＳ８０３において、ユーザインタフェースデータを解析し、取得したユーザインターフェース指定情報と予めデータメモリ５に保持しているユーザインターフェースルールに基づいて最適なユーザインターフェースを決定する。さらに、Ｓ８０４において、アプリケーションロジックを起動し、ユーザによるユーザインターフェースの操作に応じてアプリケーションロジックに要求を出したり、逆にアプリケーションロジックからの要求に応じたりといった処理を行う。一つの処理が終わると、次のユーザインターフェース画面が必要な場合や、ユーザあるいはアプリケーションロジックからの終了要求があった場合には、Ｓ８０５でアプリケーションロジック処理の終了を判断し、終了する場合にはＳ８０６に進む。アプリケーションロジック処理を終了しない場合はＳ８０４に戻り、処理を継続する。
【００４４】
Ｓ８０６において、情報処理装置が起動中であった場合にはＳ８０１に戻り、情報処理装置の終了処理を判断した場合には、システムを終了する。
【００４５】
図９は本実施の形態におけるユーザインターフェース決定の処理を示す動作処理フローチャートである。
【００４６】
はじめに、Ｓ９０１においてユーザインタフェースデータを構成する情報を先頭から順番に読込む。次にＳ９０２において、ユーザインタフェースデータを構成する情報がある場合には、Ｓ９０３に進み、ユーザインタフェースデータを構成する情報がない場合には処理を終了する。
【００４７】
Ｓ９０３において、ネットワーク等を介して外部から取得した構成情報が抽象的に記述されたユーザインターフェース部品指定情報を含むユーザインターフェース指定情報である場合には、Ｓ９０４においてユーザインターフェース指定情報の種類を判断し、ユーザインターフェース部品に関する情報が抽象的に記述されたユーザインターフェース部品情報に属すると判断された場合には、Ｓ９０６に進む。Ｓ９０６において、ユーザインターフェース部品指定情報に属する具体的なユーザインターフェース部品を取得する。次にＳ９０７において、現在のレイアウト情報に従ってユーザインターフェース部品を配置し、続くＳ９０８においてレイアウト情報を更新する。そしてＳ９０５に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、Ｓ９０２の処理に戻る。
【００４８】
一方、Ｓ９０４においてレイアウト指定情報と判断された場合には、Ｓ９０９に進みレイアウト終了指定情報であるかどうか判断する。Ｓ９０９においてレイアウト終了指定情報と判断された場合には、Ｓ９１０においてレイアウトスタックから現在のレイアウト情報を取得して、Ｓ９０８においてレイアウト情報を更新する。次にＳ９０５に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、Ｓ９０２の処理に戻る。
【００４９】
Ｓ９０９においてレイアウト終了指定情報と判断されなかった場合には、Ｓ９１１に進み、ユーザインターフェース指定情報に対応する具体的なレイアウトを取得する。次にＳ９１２において、新規レイアウト情報を生成しレイアウトスタックに送る。次にＳ９０５に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、Ｓ９０２の処理に戻る。
【００５０】
図１０は、本実施の形態における情報処理装置において、具体的ユーザインターフェース部品を取得する動作処理フローチャートである。
【００５１】
まず、Ｓ１００１においてユーザインターフェース部品指定情報の最初のユーザインターフェース指定情報要素を取得する。次にＳ１００２において、ユーザインターフェース指定情報要素名に対応のユーザインターフェース部品ルール要素を取得する。次にＳ１００３に進み、次のユーザインターフェース部品ルール要素が存在するか否かを判断し、存在する場合には、Ｓ１００９に進み、次のユーザインターフェース指定情報要素が存在するか判断する。Ｓ１００９において、次のユーザインターフェース指定情報要素があった場合にはＳ１００４に進み、次のユーザインターフェース指定情報要素を取得する。次にＳ１００５において、ユーザインターフェース指定情報要素名に対応のユーザインターフェース部品ルール要素があるかを判断し、あった場合には、Ｓ１００２の処理に戻る。
【００５２】
Ｓ１００３において、次のユーザインターフェース部品ルール要素が無いと判断された場合、または、Ｓ１００９において次のユーザインターフェース指定情報要素が無いと判断された場合、または、Ｓ１００５においてユーザインターフェース指定情報要素名に対応のユーザインターフェース部品ルール要素が無いと判断された場合には、Ｓ１００６において現在のユーザインターフェース部品ルール要素が非末端ユーザインターフェース部品ルール要素であるかを判断し、非末端ユーザインターフェース部品ルール要素で無いと判断された場合にはＳ１００７に進み、具体的ユーザインターフェース部品を取得して処理を終了する。Ｓ１００６において現在のユーザインターフェース部品ルール要素が非末端ユーザインターフェース部品ルール要素であると判断された場合には、Ｓ１００８に進み現在のユーザインターフェース部品ルール要素の最初の子要素を現在のユーザインターフェース部品ルール要素として設定し、Ｓ１００６の処理に戻る。
【００５３】
図１１は、本実施の形態における具体的なレイアウト取得するための情報処理装置の動作処理フローチャートである。
【００５４】
まず、Ｓ１１０１においてレイアウト指定情報の最初のユーザインターフェース指定情報要素を取得する。次にＳ１１０２において、ユーザインターフェース指定情報要素名に対応のレイアウトルール要素を取得する。次にＳ１００３に進み、次のレイアウトルール要素が存在するか否かを判断し、存在する場合にはＳ１００９に進み、次のユーザインターフェース指定情報要素が存在するか判断する。Ｓ１００９において、次のユーザインターフェース指定情報要素が存在する場合にはＳ１００４に進み、次のユーザインターフェース指定情報要素を取得する。次にＳ１００５において、ユーザインターフェース指定情報要素名に対応のレイアウトルール要素が存在するかを判断し、存在する場合には、Ｓ１００２の処理に戻る。
【００５５】
一方、Ｓ１００３において、次のレイアウトルール要素がないと判断された場合、または、Ｓ１００９において次のユーザインターフェース指定情報要素がないと判断された場合、または、Ｓ１１０５においてユーザインターフェース指定情報要素名に対応のレイアウトルール要素がないと判断された場合には、Ｓ１１０６において現在のレイアウトルール要素が非末端レイアウトルール要素であるかを判断する。Ｓ１１０６において、非末端レイアウトルール要素ではないと判断された場合には、Ｓ１１０７に進み、具体的レイアウトを取得して処理を終了する。また、Ｓ１１０６において現在のレイアウトルール要素が非末端レイアウトルール要素であると判断された場合には、Ｓ１１０８に進み、現在のレイアウトルール要素の最初の子要素を現在のレイアウトルール要素として設定し、Ｓ１１０６の処理に戻る。
【００５６】
図１３は、本実施の形態に係るユーザインターフェースに関して記述したユーザインタフェースデータの一例であり、ＸＭＬの記述規則に基づき、ＨＴＭＬをホスト言語として拡張されたＸＦｏｒｍｓ言語である。以下に詳細を説明する。図１３は、取得したユーザインタフェースデータにおけるＵＩ部品指定情報が具体的に記述されている例を示したものである。
【００５７】
行番号８から２０までは、ＨＴＭＬのｈｅａｄの記述であり、この中で、ＸＦｏｒｍｓに基づくｍｏｄｅｌの記述を行っている。行番号１０から１６までのｉｎｓｔａｎｃｅでは、ｃｏｎｔｒｏｌＳｗｉｔｃｈ以下でｐａｎＶａｌｕｅ、ｔｉｌｔＶａｌｕｅ、ｚｏｏｍＶａｌｕｅという３つの数値が、それぞれ０、０、５０という初期値で宣言されている。また、行番号１７から１８で“ｃｏｎｔｒｏｌ”というｉｄを持ったｓｕｂｍｉｓｓｉｏｎが定義されており、前記ｓｕｂｍｉｓｓｉｏｎが発生した場合、ｒｅｆ属性の値であるｃｏｎｔｒｏｌＳｗｉｔｃｈ以下がＸＭＬの書式でｍｅｔｈｏｄ属性に記述された“ｐｏｓｔ”形式により、ａｃｔｉｏｎ属性の値である“ｈｔｔｐ：／／ｓｅｒｖｅｒ／ａｐｐ．ｃｇｉ”に対して、送られることが記述されている。
【００５８】
行番号２１から４３までは、ＨＴＭＬのｂｏｄｙの記述であり、本実施の形態におけるユーザインタフェースデータの記述を行っている。行番号２２の＜ｘｆｏｒｍｓ：ｇｒｏｕｐ＞と行番号４２の＜／ｘｆｏｒｍｓ：ｇｒｏｕｐ＞は、これらに囲まれたユーザインターフェース指定情報が一群のグループを形成することを記述している。行番号２３にはｉｍｇによりｓｒｃ属性に記述された“ｈｔｔｐ：／／ｓｅｒｖｅｒ／ｉｍｇ＿０００．ｊｐｇ”のイメージを表示することが記述されている。
【００５９】
また、行番号２４、３０、３６では、ｘｆｏｒｍｓ：ｒａｎｇｅにより、数値を要求する部品を３つ構成することが記述されている。さらに、ｘｆｏｒｍｓ：ｒａｎｇｅには、行番号２７、３３、３９にそれぞれ、ｘｆｏｒｍｓ：ｌａｂｅｌが付くことが記述されている。また、ｘｆｏｒｍｓ：ｒａｎｇｅには、行番号２８、３４、４０にそれぞれ、ｒａｎｇｅで“ｘｆｏｒｍｓ−ｖａｌｕｅ−ｃｈａｎｇｅｄ”イベントが発生すると、“ｃｏｎｔｒｏｌ”というｉｄを持ったｓｕｂｍｉｓｓｉｏｎを発生させることが記述されている。
【００６０】
行番号２２の下線部、ｔｙｐｅ＝“／ｇｒｏｕｐ／ｖｅｒｔｉｃａｌ”は、本実施の形態によるＸＦｏｒｍｓの拡張であり、レイアウト指定情報１５０１を表している。それに含まれるユーザインターフェース指定情報要素“ｇｒｏｕｐ”により、＜ｘｆｏｒｍｓ：ｇｒｏｕｐ＞から＜／ｘｆｏｒｍｓ：ｇｒｏｕｐ＞まで囲われたユーザインターフェース指定情報要素が１つのグループとなり、一群で構成されること、また、ユーザインターフェース指定情報要素“ｖｅｒｔｉｃａｌ”により、このグループ内のユーザインターフェース部品が縦並びで構成することが記述されている。
【００６１】
行番号２４、３０、３６の下線部、ｔｙｐｅ＝“／ｒａｎｇｅ／ｄｉａｌ／ｑｄｉａｌ”は、本実施の形態によるＸＦｏｒｍｓの拡張であり、ユーザインターフェース部品指定情報１５０２を表している。それに含まれるユーザインターフェース指定情報要素“ｒａｎｇｅ”により数値範囲の部品が指定されており、ユーザインターフェース指定情報要素“ｄｉａｌ”によりダイアルの形状を持った部品が指定されており、ユーザインターフェース指定情報要素“ｑｄｉａｌ”によりツールキットのＱＤｉａｌが指定されていることが記述されている。
【００６２】
行番号２７、３３、３９のｔｙｐｅ＝“／ｔｅｘｔ／ｌａｂｅｌ／ｑｌａｂｅｌ”は、本実施の形態によるＸＦｏｒｍｓの拡張であり、ユーザインターフェース部品指定情報を表している。それに含まれるユーザインターフェース指定情報要素“ｔｅｘｔ”により文字表示の部品が指定されており、ユーザインターフェース指定情報要素“ｌａｂｅｌ”によりラベル部品が指定されており、ユーザインターフェース指定情報要素“ｑｌａｂｅｌ”によりツールキットのＱＬａｂｅｌが指定されていることが記述されている。
【００６３】
図１３のユーザインタフェースデータに基づいて、図１４の画面を構成する具体的ユーザインターフェース部品を取得する処理について、図９及び図１０をもちいて説明する。なお以下の説明では、既に図８のＳ８０１において図１３に示すユーザインタフェースデータを取得し、Ｓ８０２の処理を経ているものとする。
【００６４】
はじめに、Ｓ９０１において、プログラムメモリ４が、ユーザインタフェースデータを構成する情報、すなわち図１３に示すようなデータの記述を先頭から順次読込む。Ｓ９０２において、ユーザインタフェースデータを構成する情報が存在する限りはＳ９０３に進み、ユーザインターフェース指定情報が存在する場合、Ｓ９０４においてユーザインターフェース指定情報の種類を判断し対応した処理へと進む。
【００６５】
Ｓ９０４において、図１３の２４行目で読込まれる情報がユーザインターフェース部品指定情報であるので、ｓ９０６に進み、図１０の具体的ユーザインターフェース部品取得の処理を実行する。
【００６６】
図１０のＳ１００１において、取得されたユーザインターフェース部品指定情報１３０２  ｔｙｐｅ“／ｒａｎｇｅ／ｄｉａｌ／ｑｄｉａｌ”のうち最初のユーザインターフェース指定情報要素である“ｒａｎｇｅ”を取得する。続いてＳ１００２において、図３にあるようなユーザインターフェース部品ルールを参照し、“ｒａｎｇｅ”のユーザインターフェース指定情報要素名“数値範囲”に対応するユーザインターフェース部品ルール要素“数値範囲”３１１を取得する。
【００６７】
次にＳ１００３において、取得したユーザインターフェース部品ルール要素にさらに下の階層要素が存在するかを判断し、下の階層が存在する場合には、Ｓ１００９に進み、ユーザインターフェース部品指定情報１３０２に次のユーザインターフェース指定情報要素があるかを判断し、次のｓ１００４において、ユーザインターフェース部品指定情報１３０２の次のユーザインターフェース指定情報要素である“ｄｉａｌ”を取得する。
【００６８】
次にＳ１００５において、ユーザインターフェース部品ルールを参照し、“ｄｉａｌ”のユーザインターフェース指定情報要素名“ダイアル”に対応するユーザインターフェース部品ルール要素があるかを判断する。ここでは、対応するユーザインターフェース部品ルール要素があるので、Ｓ１００２の処理に戻り、図３のユーザインターフェース部品ルール要素“ダイアル”３２１を取得する。
【００６９】
同様にして、Ｓ１００３において取得したユーザインターフェース部品ルール要素にさらに下の階層要素が存在するのでＳ１００９に進む。Ｓ１００９においてユーザインターフェース部品指定情報１３０２に次のユーザインターフェース指定情報要素があるので、ｓ１００４においてユーザインターフェース部品指定情報１３０２の次のユーザインターフェース指定情報要素である“ｑｄｉａｌ”を取得する。次にＳ１００５において、ユーザインターフェース部品ルールを参照し、“ｑｄｉａｌ”のユーザインターフェース指定情報要素名“ＱＤｉａｌ”に対応するユーザインターフェース部品ルール要素があるかを判断する。ここでは、対応するユーザインターフェース部品ルール要素があるので、Ｓ１００２の処理に戻り、図３のユーザインターフェース部品ルール要素“ＱＤｉａｌ”３３１を取得する。
【００７０】
次にＳ１００３において、取得したユーザインターフェース部品ルール要素“ＱＤｉａｌ”３３１には下の階層要素が存在しないので、Ｓ１００６に進み、現在のユーザインターフェース部品ルール要素が非末端ユーザインターフェース部品ルール要素であるかを判断する。ここでは、“ＱＤｉａｌ”３３１は末端ユーザインターフェース部品ルール要素であるので、Ｓ１００７において、具体的ユーザインターフェース部品“ＱＤｉａｌ”を取得する。
【００７１】
このようにして図１３の具体的ユーザインターフェース部品を持つ末端ユーザインターフェース部品ルール要素までを指定したユーザインターフェース部品指定情報により、ツールキットの具体的な部品である“ＱＤｉａｌ”が選択される。図１３の行番号３０、３６に記述されたユーザインターフェース部品指定情報１３０２についても同様の処理が行われ、具体的なユーザインターフェース部品が選択される。
【００７２】
また、同様にして、図１３の行番号２７、３３、３９に記述されている＜ｘｆｏｒｍｓ：ｌａｂｅｌ  ｔｙｐｅ＝“／ｔｅｘｔ／ｌａｂｅｌ／ｑｌａｂｅｌ”＞により、ツールキットの具体的なユーザインターフェース部品である“ＱＬａｂｅｌ”が選択される。
【００７３】
次に、図１３のユーザインタフェースデータに基づいて図１４の画面を構成する具体的レイアウトを取得する処理について、図９及び図１１をもちいて説明する。なおここでは既に、図８のＳ８０１において、図１３に示すユーザインタフェースデータを取得し、Ｓ８０２の処理を経て、Ｓ８０３でユーザインターフェース決定手段が起動されているものとする。
【００７４】
さて、Ｓ９０１において、プログラムメモリ４が、ユーザインタフェースデータを構成する情報、すなわち図１３に示すようなデータの記述を先頭から順次読込む。Ｓ９０２において、ユーザインタフェースデータを構成する情報が存在する限りはＳ９０３に進み、ユーザインターフェース指定情報があったら、Ｓ９０４においてユーザインターフェース指定情報の種類を判断し対応した処理へと進む。
【００７５】
Ｓ９０４において、この場合図１３の２２行目で読込まれる情報がレイアウト指定情報であるので、Ｓ１１０６に進み、図１１の具体的レイアウト取得手段を起動する。Ｓ１１０１において、取得されたレイアウト指定情報１３０１  ｔｙｐｅ“／ｇｒｏｕｐ／ｖｅｒｔｉｃａｌ”のうち最初のレイアウト指定情報要素である“ｇｒｏｕｐ”を取得する。続いてＳ１１０２において、図５にあるようなレイアウトルールを参照し、“ｇｒｏｕｐ”のレイアウト指定情報要素名“グループ”に対応するレイアウトルール要素“グループ”５１１を取得する。
【００７６】
次にＳ１１０３において、取得したレイアウトルール要素にさらに下の階層要素が存在するかを判断し、下の階層が存在する場合にはＳ１１０９に進み、レイアウト指定情報１３０１に次のユーザインターフェース指定情報要素があるかを判断する。ここでは、次のレイアウト指定情報要素があるので、Ｓ１１０４において、レイアウト指定情報１３０２の次のユーザインターフェース指定情報要素である“ｖｅｒｔｉｃａｌ”を取得する。
【００７７】
次にＳ１１０５において、レイアウトルールを参照し、“ｖｅｒｔｉｃａｌ”のユーザインターフェース指定情報要素名“Ｖｅｒｔｉｃａｌ”に対応するレイアウトルール要素があるかを判断する。ここでは、対応するレイアウトルール要素があるので、Ｓ１１０２の処理に戻り、図５のレイアウトルール要素“Ｖｅｒｔｉｃａｌ”５２２を取得する。
【００７８】
同様にして、Ｓ１１０３において取得したレイアウトルール要素にさらに下の階層要素が存在するかを判断し、Ｓ１１０９において次のレイアウト指定要素があるか判断し、その結果、レイアウトルール要素“Ｖｅｒｔｉｃａｌ”５２２には下の階層が存在しないので、Ｓ１１０６に進み、現在のレイアウトルール要素が非末端レイアウトルール要素であるかを判断する。ここでは、“Ｖｅｒｔｉｃａｌ”５２２は末端レイアウトルール要素であるので、Ｓ１１０７において、具体的レイアウト“Ｖｅｒｔｉｃａｌ”を取得する。
【００７９】
このようにして図１３の具体的レイアウトを持つ末端レイアウトルール要素までを指定したレイアウト指定情報により、具体的なレイアウトである“Ｖｅｒｔｉｃａｌ”が選択され、＜ｘｆｏｒｍｓ：ｇｒｏｕｐ＞及び＜／ｘｆｏｒｍｓ：ｇｒｏｕｐ＞で囲まれたユーザインターフェース指定情報要素が縦並びでレイアウトされる。
【００８０】
このような処理の結果、図１４に示すとおり、図１３のユーザインタフェースデータに基づいて、図１０の処理において取得された具体的ユーザインターフェース部品が図１１の処理において取得された具体的レイアウトで配置される。具体的には、１つのイメージと、それぞれ１つのＱｌａｂｅｌとともにその水平方向に３つのＱＤｉａｌが配置され、Ｑｄｉａｌのそれぞれが縦に並んで配置されたユーザインターフェース画面が表示される。
【００８１】
以上、取得したユーザインタフェースデータのユーザインターフェース指定情報が具体的な記述にまで及んでいるときの例を示した。と、情報処理装置のユーザインターフェースルールの情報が一致する場合について説明した。
【００８２】
次に、ユーザインターフェース指定情報が具体的に記述されたユーザインタフェースデータを取得した場合の情報処理装置の処理について説明する。
【００８３】
図１５は、本実施の形態におけるユーザインターフェースに関してＸＦｏｒｍｓ言語で記述されたユーザインタフェースデータの一例である。図１５のユーザインタフェースデータは、図１３のユーザインタフェースデータと、ユーザインターフェース部品指定情報１５０２を記述した行番号２４、３０、３６を除いて同じである。
【００８４】
図１５に示すユーザインタフェースデータによれば、ユーザインターフェース部品指定情報１５０２  ｔｙｐｅ＝“／ｒａｎｇｅ／ｓｌｉｄｅｒ”には、ユーザインターフェース指定情報要素の抽象化された分類の記述“ｒａｎｇｅ”により数値範囲のユーザインターフェース部品を指定することが記述されており、さらにユーザインターフェース指定情報要素である“ｓｌｉｄｅｒ”により、ユーザインターフェース部品の指定が抽象化して記述されている。
【００８５】
一方、図３に示すように、情報処理装置におけるユーザインターフェースルールでは、ユーザインターフェースルール要素“スライダ”３２２は、その下の階層要素として、縦方向にスライダを動かす“ＱＳｌｉｄｅｒ  Ｈｏｒｉｚｏｎｔａｌ”３３２と横方向にスライダを動かす“ＱＳｌｉｄｅｒ  Ｖｅｒｔｉｃａｌ”３３３を有する。
【００８６】
以下に、ユーザインタフェースデータの指定するユーザインターフェース部品指定情報が抽象化して記述されている場合、すなわち末端のユーザインターフェース部品要素まで指定されていない場合の情報処理装置の動作処理について説明する。
【００８７】
図１５のユーザインタフェースデータに基づいて図１６の画面を構成する処理のうち具体的ユーザインターフェース部品を取得する処理について、図９及び図１０をもちいて説明する。
【００８８】
なお、以下の説明では、既に、図８のＳ８０１において図１５に示すユーザインタフェースデータが外部より取得され、Ｓ８０２の処理を経て、Ｓ８０３でユーザインターフェース決定処理が行われているものとする。また、Ｓ９０６の処理までは図１３のデータを取得したときと同様であるので省略する。
【００８９】
ｓ９０６において、図１０の具体的ユーザインターフェース部品取得処理を実行する。図１０のＳ１００１において、取得されたユーザインターフェース部品指定情報１３０２  ｔｙｐｅ＝“／ｒａｎｇｅ／ｓｌｉｄｅｒ”１５０２のうち最も抽象化されたユーザインターフェース指定情報要素の分類“ｒａｎｇｅ”を取得する。続いてＳ１００２において、図３に示すようなユーザインターフェース部品ルールを参照し、“ｒａｎｇｅ”のユーザインターフェース指定情報要素名“数値範囲”３１１の存在を確認する。
【００９０】
次にＳ１００３において、取得したユーザインターフェース部品ルール要素にさらに具体化して記述された下の階層要素が存在するかを判断する。図１５のユーザインタフェースデータの場合、下の階層が存在するのでＳ１００９に進む。ｓ１００９においてユーザインターフェース部品指定情報１５０２の“ｒａｎｇｅ”のより一段具体化されたユーザインターフェース指定情報要素の記述“ｓｌｉｄｅｒ”を取得する。
【００９１】
ｓ１００９において、図１５のユーザインタフェースデータの場合、“ｓｌｉｄｅｒ”より具体化された記述がないのでｓ１００６に進む。
【００９２】
Ｓ１００６において、“スライダ”３２２は、情報処理装置が保持するＵＩ部品ルールの末端には存在しないため、具体化されていない非末端ユーザインターフェース部品ルール要素であると判断される。そして、Ｓ１００８に進み、現在のユーザインターフェース部品ルール要素“スライダ”３２２に属する具体化されたユーザインターフェースであるＵＩ部品“ＱＳｌｉｄｅｒ  Ｈｏｒｉｚｏｎｔａｌ”３３２を出力部３の表示画面に出力すべき部品として決定し、Ｓ９０６に戻る。
【００９３】
仮に、図１５のデータとは異なり、ｓ１００９においてさらに具体化された記述の存在が確認された場合、ｓ１００４に進み、ｓ１００５において取得されたユーザインタフェースデータにおいて抽象化されたユーザインターフェース部品ルール要素“スライダ”に属する対応するＵＩ部品が存在するかどうかＵＩ部品ルールを参照して確認する。存在する場合はその部品を出力すべきＵＩ部品として決定する。存在しなければｓ１００６に進む。ｓ１００６において、ＵＩ部品は末端の具体化されたＵＩ部品が存在しているので、ｓ１００７に進む。ｓ１００７では、取得されたユーザインタフェースデータにおいて抽象化されたユーザインターフェース部品ルール要素“スライダ”に対応するＵＩ部品の出力すべき次善のＵＩ部品として、ｓ１００５において確認されたＵＩ部品に決定する。
【００９４】
なお、レイアウト指定情報１３０１  ｔｙｐｅ”／ｇｒｏｕｐ／ｖｅｒｔｉｃａｌ”に関する処理ついては図１３に示す例と同様であるので説明を省略する。
【００９５】
このように、図１５のユーザインターフェース部品指定情報１５０２のように、具体的ユーザインターフェース部品を持つ末端ユーザインターフェース部品ルール要素までを指定しない記述であっても、クライアントである情報処理装置が出力可能な具体的なＵＩ部品である“ＱＳｌｉｄｅｒ  Ｈｏｒｉｚｏｎｔａｌ”が選択され、ユーザインターフェースを実現することができる。なお、図１５のデータにおいては、行番号３０、３６についても同様の処理が行われ、具体的なユーザインターフェース部品が選択される。
【００９６】
図１６は、図１０の具体的ユーザインターフェース部品取得処理において取得された具体的ユーザインターフェース部品が、図１１の具体的レイアウト取得処理において取得された具体的レイアウトで配置されたユーザインターフェース画面の一例であり、１つのイメージと、それぞれ１つのＱＬａｂｅｌを横に伴った３つのＱＳｌｉｄｅｒ  Ｈｏｒｉｚｏｎｔａｌが縦に配置されている。
【００９７】
次に、ユーザインタフェースデータを取得した場合の情報処理装置のユーザインターフェースルールの情報が一致しない場合のまた別の処理について説明する。
【００９８】
図１７は、本実施の形態に係るユーザインターフェースに関して記述したユーザインタフェースデータの一例であり、ＸＭＬの記述規則に基づき、ＨＴＭＬをホスト言語として拡張されたＸＦｏｒｍｓ言語で記述されている。なお、図１７のユーザインタフェースデータは、図１３のユーザインタフェースデータと、ユーザインターフェース部品指定情報１５０２を記述した行番号２４、３０、３６を除いて同じである。
【００９９】
図１７に示すユーザインタフェースデータによれば、ユーザインターフェース部品指定情報１７０２  ｔｙｐｅ＝“／ｒａｎｇｅ／ｓｐｉｎｂｏｘ／ｑｓｐｉｎｂｏｘ”には、ユーザインターフェース指定情報要素“ｒａｎｇｅ”により数値範囲の部品が指定されており、さらにユーザインターフェース指定情報要素“ｓｐｉｎｂｏｘ”により、ユーザインターフェース部品として数値を直接入力またはボタンにより数値を増減できるスピンボックスが指定され、さらにまたユーザインターフェース指定情報要素“ｑｓｐｉｎｂｏｘ”によりツールキットの具体的な部品であるＱＳｐｉｎＢｏｘが指定されていることが記述されている。
【０１００】
一方、図３に示すように、情報処理装置におけるユーザインターフェースルールでは、ユーザインターフェースルール要素ＱＳｐｉｎＢｏｘは存在しない。
【０１０１】
それでは以下に、ユーザインタフェースデータの指定するユーザインターフェース部品が情報処理装置の有するユーザインターフェースルール要素に存在しない場合の処理について説明する。
【０１０２】
それでは、図１７のユーザインタフェースデータに基づいてユーザインターフェースを構成する場合の処理について、図９及び図１０をもちいて説明する。なおここでは既に、図８のＳ８０１において、図１３に示すユーザインタフェースデータを取得し、Ｓ８０２の処理を経て、Ｓ８０３でユーザインターフェース決定処理が行われるものとする。また、Ｓ９０６の処理までは既に説明済みであるので省略する。
【０１０３】
ｓ９０６において、図１０の具体的ユーザインターフェース部品取得処理が起動すると、Ｓ１００１において、取得されたユーザインターフェース部品指定情報１７０２  ｔｙｐｅ＝“／ｒａｎｇｅ／ｓｐｉｎｂｏｘ／ｑｓｐｉｎｂｏｘ”のうち最初のユーザインターフェース指定情報要素である“ｒａｎｇｅ”を取得する。続いてＳ１００２において、図３にあるようなユーザインターフェース部品ルールを参照し、“ｒａｎｇｅ”のユーザインターフェース指定情報要素名“数値範囲”に対応するユーザインターフェース部品ルール要素“数値範囲”３１１を取得する。
【０１０４】
次にＳ１００３において、取得したユーザインターフェース部品ルール要素にさらに下の階層要素が存在するかを判断し、下の階層が存在するのでＳ１００９に進み、ユーザインターフェース部品指定情報１５０２に次のユーザインターフェース指定情報要素があるので、次のｓ１００４においてユーザインターフェース部品指定情報１５０２の“ｒａｎｇｅ”の次のユーザインターフェース指定情報要素である“ｓｐｉｎｂｏｘ”を取得する。
【０１０５】
ここでＳ１００５に進むが、取得されたユーザインターフェース指定情報要素名“ｓｐｉｎｂｏｘ”に対応するユーザインターフェース部品ルール要素が、ユーザインターフェース部品ルールには存在しない為に、Ｓ１００６に進む。Ｓ１００６において、現在のユーザインターフェース部品ルール要素である“数値範囲”３１１は非末端ユーザインターフェース部品ルール要素であると判断されるので、Ｓ１００８に進み、現在のユーザインターフェース部品ルール要素の最初の子要素である“ダイアル”３２１を取得し、Ｓ１００６の処理に戻る。同様にして、現在のユーザインターフェース部品ルール要素が、末端ユーザインターフェース部品ルール要素である“ＱＤｉａｌ”３３１になるまで処理を行う。Ｓ１００８において現在のユーザインターフェース部品ルール要素“ＱＤｉａｌ”３３１を取得すると、Ｓ１００７において具体的ユーザインターフェース部品“ＱＤｉａｌ”を取得する。
【０１０６】
レイアウト指定情報１３０１  ｔｙｐｅ“／ｇｒｏｕｐ／ｖｅｒｔｉｃａｌ”については先の例と同様であるので説明を省略する。
【０１０７】
このように、図１７のユーザインターフェース部品指定情報１７０２のように、対応する具体的ユーザインターフェース部品が情報処理装置の有するユーザインターフェース部品ルールに存在しない場合であっても、ユーザインターフェース部品ルールを、取得したユーザインターフェース指定情報と一致するレベルまで辿って、同じく数値範囲を指定するツールキットの中より別の具体的な部品である“ＱＤｉａｌ”が選択されて、ユーザインターフェースを実現する。図１７の行番号３０、３６についても同様に処理が行われ、具体的なユーザインターフェース部品が選択される。
【０１０８】
このように、図１７のユーザインタフェースデータに基づいて、ユーザインターフェース決定処理が行われた結果、ユーザインターフェース指定情報において指定されたユーザインターフェース部品とは異なるが、情報処理装置の方で判断された代替部品である“ＱＤｉａｌ”を使って、図１４のような、１つのイメージと、それぞれ１つのＱＬａｂｅｌを横に伴った３つのＱＤｉａｌが縦に配置されたユーザインターフェース画面が表示される。
【０１０９】
以上説明した通り、本実施の形態において下記の効果が実現できる。
【０１１０】
たとえ外部の記述が抽象的なＵＩ部品の指定であったとしても、各クライアントの能力に対応した出力を行うことができる。そしてこのような構成によってクライアントの能力によらずに統一してた記述でユーザインタフェースデータを記述することができる。
【０１１１】
すなわち、ユーザインターフェースを作成して送信する側は、受信側のクライアント機器の能力を考慮してデータを作成したりクライアントによって使い分けたりする必要がなく、単一のユーザインタフェースデータを用意するのみでよい、という効果がある。
【０１１２】
（第二の実施の形態）
第一の実施の形態では、クライアント側である情報処理装置において、取得したユーザインタフェースデータと情報処理装置が予め有するユーザインターフェースルールに基づいて、ユーザインターフェース部品とレイアウトを決定し、最適なユーザインターフェース画面を構成するとしたが、本実施の形態では、情報処理装置において指定のユーザインターフェース部品が無い場合に、サーバ側からの情報を取得することにより追加する場合について説明する。
【０１１３】
図２２は本実施の形態における情報処理装置の処理を示すフローチャートである。
【０１１４】
情報処理装置において処理が起動され、Ｓ３００１においてユーザインタフェースデータが取得されると、Ｓ３００２に進み、初期レイアウト情報を生成し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックに送る。
【０１１５】
次にＳ３００３において、ユーザインタフェースデータを解析し、取得したユーザインターフェース指定情報とユーザインターフェースルールに基づいて最適なユーザインターフェースを決定する。次に、Ｓ３００４において必要に応じてユーザインターフェース要素定義データに基づいてユーザインターフェース要素を生成する。
【０１１６】
次にＳ３００５においてアプリケーションロジックを起動し、ユーザによるユーザインターフェースの操作に応じてアプリケーションロジックに要求を出したり、逆にアプリケーションロジックからの要求に応じたりといった処理を行う。一つの処理が終わると、次のユーザインターフェース画面が必要な場合や、ユーザあるいはアプリケーションロジックからの終了要求があった場合には、Ｓ３００６においてアプリケーションロジック処理の終了を判断し、終了する場合にはＳ３００７に進む。アプリケーションロジック処理を終了しない場合はＳ３００５に戻り、処理を継続する。
【０１１７】
Ｓ３００７において追加要素定義データが生成されている場合には、Ｓ３００８に進み追加要素定義削除処理を起動し、追加要素定義データを削除して、Ｓ３００９に進む。
【０１１８】
Ｓ３００７において、追加要素定義データがない場合には、Ｓ３００９に進み、システムの処理が終了されていないか判断する。
【０１１９】
Ｓ３００９において、情報処理装置が起動中であった場合にはＳ３００１に戻り、情報処理装置の終了処理を判断した場合には、システムを終了する。
【０１２０】
図２３は本実施の形態におけるユーザインターフェースの決定処理を示すフローチャートである。
【０１２１】
Ｓ３１０１において読込まれたユーザインタフェースデータを構成する情報が、ユーザインターフェース指定情報であった場合の処理については、第一の実施の形態で説明した図９と同じであるので、これについては説明を省略する。
【０１２２】
さて、Ｓ３１０３において、取得された情報がユーザインターフェース指定情報出なかった場合には、Ｓ３１１３に進み前記情報がユーザインターフェース要素定義であるかを判断する。ユーザインターフェース要素定義であると判断された場合には、Ｓ３３１４に進み、ユーザインターフェース要素定義記述を読込む。
【０１２３】
次に、Ｓ３１１５において、取得されたユーザインターフェース要素定義が情報処理装置において処理可能なものであるかどうかを判断する。ここでいう判断の基準としては、ユーザインターフェース要素定義の内容であるユーザインターフェース要素記述を処理可能か否かで判断する。例えば、ユーザインターフェース要素記述がＳＶＧで記述されていてもＰｒｏｆｉｌｅの違いにより解釈や描画ができない場合には利用不可能と判断する。
【０１２４】
Ｓ３１１３において、読み込まれた情報がユーザインターフェース要素定義で無かった場合には、Ｓ３１１７において、ユーザインターフェースＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）を生成し、Ｓ３１０５に進み、ユーザインターフェースを構成する情報のうち次の構成情報を取得し、Ｓ３１０２の処理に戻る。
【０１２５】
Ｓ３１０２において、ユーザインタフェースデータを構成する情報がなくなるまで上記の処理を繰り返す。
【０１２６】
図２４は、本実施の形態におけるユーザインターフェース決定の際のユーザインターフェース要素生成処理を示すフローチャートである。
【０１２７】
はじめに、Ｓ３２０１においてユーザインターフェースＤＯＭからノードを一つ読込む。ここでいうユーザインターフェースＤＯＭとは、取得したユーザインタフェースデータより生成された、階層構造のユーザインターフェースルールに類似した木構造を持つデータ群であり、ノードとは木構造の節にあたる階層要素を示す。
【０１２８】
続くＳ３２０２において、ノードが無かった場合には以降の処理を行わずに終了する。Ｓ３２０２において、ノードがあった場合には、Ｓ３２０３に進み、ノードがユーザインターフェース指定情報であるか判断する。ノードがユーザインターフェース指定情報以外のノードであった場合には、Ｓ３２０４に進み他のノードの処理を行い、Ｓ３２０１の処理に戻る。
【０１２９】
一方、Ｓ３２０３において、ノードがユーザインターフェース指定情報であった場合には、Ｓ３２０５に進み、ユーザインターフェースルールを参照し、最初のユーザインターフェース部品要素を取得する。次にＳ３２０６において、ユーザインターフェースルールに対応するユーザインターフェース部品要素があった場合には、Ｓ３２０７において、ユーザインターフェースルールのユーザインターフェース部品要素を現在のユーザインターフェース部品要素としてセットし、次にＳ３２０８において、次のユーザインターフェース部品要素があった場合には、Ｓ３２０６の処理に戻る。
【０１３０】
Ｓ３２０８において、次のユーザインターフェース部品要素が無かった場合、または、Ｓ３２０６において、対応するユーザインターフェース部品要素が無かった場合には、Ｓ３２０９に進み、現在のユーザインターフェース部品要素は末端ユーザインターフェース部品要素であるかを判断する。
【０１３１】
Ｓ３２０９において、末端ユーザインターフェース部品要素でなかった場合には、Ｓ３２１０に進み、現在のユーザインターフェース部品要素の最初の子要素？を現在のユーザインターフェース部品要素とし、Ｓ３２０９の処理に戻る。
【０１３２】
Ｓ３２０９において、末端ユーザインターフェース部品要素であった場合には、Ｓ３２１１に進み、末端ユーザインターフェース部品要素に対応するユーザインターフェース要素を生成して、Ｓ３２０１に戻り、Ｓ３２０２においてノードがなくなるまで処理を繰り返す。
【０１３３】
図２５は、本実施の形態におけるユーザインタフェースデータの構造を示すクラス図である。
【０１３４】
ユーザインタフェースデータ１０１は要素１０２、３３０１、３３０５の３種類のから成り立っている。要素１０２はユーザインターフェースの構成要素を指定するユーザインターフェース指定情報で、ユーザインターフェース部品やレイアウトを指定するものである。要素３３０１はユーザインターフェース要素定義であり、ユーザインターフェース要素の詳細なデザインや振る舞いを定義する情報である。要素３３０５はその他のデータである。
【０１３５】
要素１０２は、それぞれ１つのユーザインターフェース指定情報要素のパス３３０３を有し、前記ユーザインターフェース指定情報要素のパス３３０３により構成される。ユーザインターフェース指定情報要素のパス３３０３は、サブクラスにユーザインターフェース指定情報要素定義のパス３３０４を含む。
【０１３６】
ユーザインターフェース要素定義３３０１は、ユーザインターフェース指定情報要素定義のパス３３０４と、実際の定義内容であるユーザインターフェース要素記述３３０２から構成される。ユーザインターフェース指定情報要素定義については、図２６に示す。
【０１３７】
図３８は、本実施形態におけるユーザインタフェースデータの具体例である。図３８において、３８１０は１つのユーザインターフェース要素定義の記述である。３８１１は前記ユーザインターフェース要素定義が位置すべきユーザインターフェース指定情報のパス、３８１２は具体的なユーザインターフェース構成要素のデザインを表わす記述や動作を表わすスクリプトなどを含むユーザインターフェース要素記述である。図３８に示すように、この部分はｓＸＢＬを拡張したもので記述されている。ただし、３８１２はデザインの記述はＸＭＬをベースとしたベクタグラフィックス言語であるＸＦｏｒｍｓを拡張したもので記述されている。ＳＶＧ、スクリプトはＥＣＭＡＳｃｒｉｐｔを使用しているものとする。構造的に３８１０は３８１１、３８１２を包含している。
【０１３８】
３８２０，３８３０はそれぞれ生成すべきユーザインターフェース構成要素を指定するユーザインターフェース指定情報である。図のようにこの部分はＸＭＬをベースとしたＸＦｏｒｍｓを拡張したもので記述されている。３８２１、３８３１はそれぞれ３８２０、３８３０に含まれるパスである。前記パスにより、生成すべきユーザインターフェース構成要素、すなわち図３にあるような、ユーザインターフェース部品ルールの階層要素であるユーザインターフェース部品が指定される。
【０１３９】
図２６は、本実施の形態におけるユーザインターフェース要素定義追加処理を示すアクティビティ図である。前記ユーザインターフェース要素定義処理は図２３のＳ３１１６の詳細を表わすものである。
【０１４０】
まず、Ｓ３４０１において、ユーザインターフェース要素定義に含まれるユーザインターフェース指定情報要素定義のパスを処理し、次にＳ３４０２において、前記ユーザインターフェース要素定義に含まれるユーザインターフェース要素記述がユーザインタフェースデータの内部に埋め込まれた形で存在するか、または、外部へのリンクという形で存在するかを判断する。前記判断の結果、前記ユーザインターフェース要素記述が外部へのリンクである場合には、Ｓ３４０３において、前記ユーザインターフェース要素記述をロードする。次にＳ３４０４において、ユーザインターフェース要素定義をユーザインターフェース要素定義リストに追加し、次にＳ３４０５において追加定義リストに追加し、処理を終了する。
【０１４１】
図２７は、本実施形態におけるユーザインターフェース指定情報要素定義パス処理を示すアクティビティ図である。ユーザインターフェース指定情報要素定義パス処理は図２６のＳ３４０１の詳細を表わすものである。
【０１４２】
まず、ユーザインターフェース要素定義からユーザインターフェース指定情報要素定義パスを得て（Ｓ３５０１）、最初のユーザインターフェース部品要素を得る（Ｓ３５０２）。そして、前記ユーザインターフェース部品要素をユーザインターフェースルールから探し（Ｓ３５０３）、ルール中に前記ユーザインターフェース部品要素が存在するか否かを判断する（Ｓ３５０４）。ユーザインターフェースルール中に前記ユーザインターフェース部品要素がない場合には、前記ユーザインターフェース部品要素を生成し、ユーザインターフェースルールに追加し（Ｓ３５０５）、前記ユーザインターフェース部品要素を追加ユーザインターフェース部品要素リストにも追加する（Ｓ３５０６）。
【０１４３】
Ｓ３５０４の判断の結果、前記ユーザインターフェース部品要素がユーザインターフェースルール中に存在する場合には、前記パス中の次のユーザインターフェース部品要素を得ようとして（Ｓ３５０７）、前記パス中に次のユーザインターフェース部品要素が存在するか否かを判断し（Ｓ３５０８）、次のユーザインターフェース部品要素が存在するならば、Ｓ３５０３の処理に戻り、次のユーザインターフェース部品要素が存在しないならば、処理を終了する。
【０１４４】
図２８は、本実施形態における情報処理装置において実行される処理とデータの概略構成を示すブロック図である。同図において、３６００は情報処理装置、３６０１はユーザインターフェースの操作対象となる機器である。３６０２はユーザインターフェースを使用するユーザの指示により３６０１における各種の処理を行うアプリケーションロジックであり、３６０３は３６０２のユーザインターフェースを記述したユーザインタフェースデータでありＸＭＬで記述されている。３６０４はユーザインターフェース処理部であり、３６０３を元にユーザインターフェースを生成し、さらに、そのユーザインターフェースと３６０２とのやり取りを行う。
【０１４５】
３６０５は情報処理装置３６００が内蔵するデフォルトのユーザインターフェース要素定義、３６０６はユーザインターフェース処理部３６０４によって生成されたユーザインターフェースである。なお、同図では３６００と３６０１は別の機器として描かれているが、構成上３６０２と３６０３が３６００内にあっても構わない。３６０２、３６０３が外部にある場合、ユーザインタフェースデータ３６０３の取り込みと、ユーザインターフェース生成後のアプリケーションロジック３６０２とのやり取りは図１の通信Ｉ／Ｆ１０８を介して行われる。
【０１４６】
図２９は、図２８におけるユーザインターフェース処理部３６０４の内部構成とそれらの作用をもう少し詳細に示すコラボレーション図である。同図において、３７００はユーザインターフェース処理部であり、ユーザインタフェースデータ解析手段３７０１とユーザインターフェース構成要素生成手段３７０２の二つの処理を行う手段を持つ。３７０３は通信Ｉ／Ｆ１０８から読み込まれたユーザインタフェースデータである。３７０４はユーザインターフェースルールであり、ユーザインタフェースデータ３７０３を元にユーザインターフェースを構成する場合に必要となるユーザインターフェース構成方法を表現する。
【０１４７】
ユーザインタフェースデータ解析手段３７０１は、ユーザインタフェースデータ３７０３内にユーザインターフェース要素定義が含まれていた場合、それが定義するユーザインターフェース型をユーザインターフェースルール３７０４に追加し、同時にそのユーザインターフェース要素定義をユーザインターフェース要素定義リスト３７０６にも追加する。
【０１４８】
３７０５はユーザインタフェースデータ３７０３をユーザインタフェースデータ解析手段３７０１が解析して生成するユーザインターフェースＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）である。ユーザインターフェース構成要素生成手段３７０２はユーザインターフェースＤＯＭ内の各ユーザインターフェース指定情報で指定されるユーザインターフェース型について、ユーザインターフェースルール３７０４を用いて具象ユーザインターフェース型を決定し、決定した具象ユーザインターフェース型からユーザインターフェース構成要素を生成して３７０７のユーザインターフェースに加えてゆく。
【０１４９】
それでは以下に、本実施の形態における具体的な処理の流れについて、図２２と図２３の一部をもちいて説明する。
【０１５０】
まず、本実施の形態における情報処理装置において処理が起動され、Ｓ３００１においてユーザインタフェースデータが取得されると、Ｓ３００２に進み、初期レイアウト情報を生成し、レイアウト情報をスタック型データ構造で保持するレイアウトスタックに送る。
【０１５１】
次にＳ３００３において、図２３のユーザインターフェース決定処理が実行され、ユーザインタフェースデータを解析する。ここでは、取得したユーザインタフェースデータを構成する情報のうちユーザインターフェース指定情報より、Ｓ３１０６で具体的ユーザインターフェース部品を取得し、Ｓ３１１１で具体的レイアウトを取得し、ユーザインターフェースルールに基づいて最適なユーザインターフェースを決定する。またここで、ユーザインタフェースデータを構成する情報のうちユーザインターフェース要素定義については、処理の可否を判断し、可能と判断されたユーザインターフェース要素定義について、Ｓ３１１６でユーザインターフェース要素定義追加手段を起動し、ユーザインターフェース要素定義に追加する。
【０１５２】
ここで、取得したユーザインタフェースデータにおいて、例えば、図３８に示すようなユーザインターフェース指定情報要素が記述されていた場合、
Ｓ３１１３において、ユーザインターフェース指定情報要素定義のパス３８１１  ｔｙｐｅ＝“／ｒａｎｇｅ／ｓｌｉｄｅｒ／ｍｙｓｌｉｄｅｒ”が取得され、次にｓ３１１４において、ユーザインターフェース要素記述３８１２が読込まれる。ここでは、Ｓ３１１５において処理可能と判断されるものとして、Ｓ３１１６に進み、ユーザインターフェース要素定義追加処理を起動する。
【０１５３】
図２４に示す、ユーザインターフェース要素定義追加処理が起動すると、Ｓ３２０１において、ユーザインターフェースＤＯＭからノードを一つ読込む。次に、Ｓ３２０３において、ユーザインターフェース指定情報３８２０を読込み、Ｓ３２０５においてその最初のユーザインターフェース部品要素を取得する。すなわちここでは、パス３８２１  ｔｙｐｅ＝“／ｒａｎｇｅ／ｓｌｉｄｅｒ／ｍｙＳｌｉｄｅｒ”の先頭にある“ｒａｎｇｅ”を取得する。次にＳ３２０６において、図３に示す情報処理装置のユーザインターフェースルールを参照し、取得したユーザインターフェース部品要素“ｒａｎｇｅ”と一致する要素があるかを判断する。
【０１５４】
ここで、ユーザインターフェースルールにも“ｒａｎｇｅ”に対応する“数値範囲”３１１があるので、Ｓ３２０７において、“数値範囲”３１１が現在のユーザインターフェース部品要素としてセットされる。同様の処理により、次のユーザインターフェース部品要素である“ｓｌｉｄｅｒ”に対応するユーザインターフェースルールのユーザインターフェース部品要素“スライダ”が現在のユーザインターフェース部品要素にセットされる。次に、Ｓ３２０８において、次のユーザインターフェース部品要素である“ｍｙＳｌｉｄｅｒ”が存在するが、Ｓ３２０６においてユーザインターフェースルールには対応するものが無い為、Ｓ３２０９に進むが、この時、現在のユーザインターフェース部品要素は“ｍｙＳｌｉｄｅｒ”である。
【０１５５】
Ｓ３２０９において、現在のユーザインターフェース部品要素にセットされている“ｍｙＳｌｉｄｅｒ”は末端ユーザインターフェース部品要素である為、Ｓ３２１１に進み、これまでユーザインターフェースルールには存在していなかった“ｍｙＳｌｉｄｅｒ”に対応するユーザインターフェース要素を生成する。すなわち、パス３８２１よりユーザインターフェース要素定義のパス３８１１を辿り、ユーザインターフェース要素記述３８１２を読込んで、既存のスライダとは異なる新しいスライダを具体的なユーザインターフェースを実現する。
【０１５６】
以下同様の処理を、ユーザインターフェースＤＯＭにノードがある限り繰り返す。
【０１５７】
このように、ユーザインタフェースデータにより指定されたユーザインターフェースが、ユーザインターフェースルールに存在しないものであっても、情報処理装置側の機能として実現可能なものについては、追加することができる。
【０１５８】
なおその際に、情報処理装置において追加不可能と判断される場合には要素定義の追加を無視することにより処理の効率化を図ることも可能である。
【０１５９】
以上説明した通り、図３８のユーザインタフェースデータのユーザインターフェース指定情報要素に基づいて、本実施の形態におけるユーザインターフェース決定処理により、情報処理装置のユーザインターフェースルールには存在していなかったユーザインターフェース情報要素を追加し、新しいユーザインターフェースを実現可能にした。これにより例えば、情報処理装置に予め用意されたユーザインターフェース部品要素以外のデザインや振る舞いをするユーザインターフェース部品を追加することができ、ユーザインタフェースデータを作成し送信する側の意図通りに実行することができる。
【０１６０】
上述したように、能力のある表示端末においてはユーザインターフェースの表現機能の拡張、すなわちユーザインターフェース部品であるユーザインターフェース要素定義の追加を可能とし、よりユーザインターフェース作成者の意図を反映できるようにすることができる。
【０１６１】
（第三の実施の形態）
本実施の形態では、前記ユーザインターフェース指定情報を階層構造からなるＸＭＬデータで表現し、前記ユーザインターフェースルールをＸＭＬの描画定義で記述した場合について説明する。
【０１６２】
図１８は、前記ユーザインターフェース指定情報を階層構造からなるＸＭＬデータで表現した例である。
【０１６３】
同図における、２２から２３行目において、レイアウトがｇｒｏｕｐのｖｅｒｔｉｃａｌに指定され、２５から３０行目において、ユーザインターフェース部品がｒａｎｇｅのｄｉａｌのｓｄｉａｌに指定されている。この例では、前記ユーザインターフェース指定情報が先頭の子要素として記述されているが、前記ユーザインターフェース指定情報であると判別可能なＸＭＬデータを用いた別の方法で、記述されていても構わない。
【０１６４】
図１９は、前記ユーザインターフェースルールをＸＭＬの描画定義で記述した例である。同図における、末端ノードにおいて、ＸＭＬの描画定義の一形態である、ＳＶＧで記述されたユーザインターフェース部品が指定されている。
【０１６５】
前述の第一の実施の形態では、前記ユーザインタフェースデータが前記ユーザインターフェースルールで解釈されて構築されたユーザインターフェースは、クライアント毎に固有のツールキットを用いて実装されていたが、本実施の形態では、汎用的なＸＭＬによる描画定義の一形態である、ＳＶＧを用いて実現される。
【０１６６】
なお、本実施の形態によって構築されるＳＶＧファイルの詳細については説明を省略するが、前記ユーザインタフェースデータに、具体的なＳＶＧ描画記述が追加され、ユーザインタフェースデータと描画記述がバインディングされたものとなる。
【０１６７】
以上説明したように、ユーザインタフェースデータから構築されるユーザインターフェース記述を、ＸＭＬの描画定義で表現することで、機器に依存しない形態で表現できる。また、構築されたユーザインターフェース記述を、ＸＳＬＴで別な形態に変換する等の、ＸＭＬであることを生かしたメリットが得られる。
【０１６８】
（第四の実施の形態）
本実施の形態では、アプリケーションの機能を提供するサーバと、ネットワークを介して接続された、前記機能を利用するクライアントで構成されるサーバー・クライアントシステムについて説明する。
【０１６９】
図２０は、本実施の形態におけるサーバー・クライアントシステムの、一例を示した図である。
【０１７０】
同図において、２４０１はアプリケーションの機能を提供するサーバであり、前記機能を利用するクライアント２４０２と、ネットワークを介して接続されている。
【０１７１】
サーバ２４０１により、生成されたユーザインタフェースデータ２４０３を受信した、クライアント２４０２は実施の形態１で説明した方法により、前記機能を利用する為のユーザインターフェースを表示する。
【０１７２】
前記ユーザインターフェースにより、操作＆指示された画面内処理結果２４０４は、サーバ２４０１に送信され、指示に対応する機能が実行される。
【０１７３】
図２１は、本実施の形態におけるサーバー・クライアントシステムの、クラス図の一例である。
【０１７４】
同図において、２５０１はアプリケーションの機能を提供するサーバであり、アプリロジックを備えている。一方、２５０２は前記機能を利用するクライアントであり、サーバから受信したユーザインタフェースデータ２５０３を解釈し、ユーザインターフェースを構成する為に必要な、ユーザインターフェース部品ルールとレイアウトルールを備えている。
【０１７５】
ここで、前記ユーザインターフェースにより、操作＆指示された画面内処理結果２５０４は、サーバ２５０１に送信され、指示に対応する機能が実行される。
【０１７６】
具体的には、図１３で説明したユーザインタフェースデータ例を用いて説明することができる。
【０１７７】
サーバにより生成されたユーザインタフェースデータ中には、前述の通り、ユーザインタフェースイメージを記述する為の情報の他に、操作に対応するユーザインターフェース動作に対応する記述が含まれている。
【０１７８】
同例においては、ＰＡＮ，ＴＩＬＴ，ＺＯＯＭの各ユーザインターフェース部品に対応して、“ｘｆｏｒｍｓ−ｖａｌｕｅ−ｃｈａｎｇｅｄ”イベントを発行させ、サーバにｃｏｎｔｒｏｌＳｗｉｔｃｈ以下の値をｓｕｂｍｉｓｓｉｏｎするように定義されている。
【０１７９】
前記ユーザインタフェースデータを受信したクライアントは、前記ユーザインタフェースデータを前記ユーザインターフェース部品ルールと前記レイアウトルールを用いて、解釈した結果をユーザインターフェースとして構成する。また、操作者により、前記ユーザインターフェースを用いて行われた操作の結果、前述の“ｘｆｏｒｍｓ−ｖａｌｕｅ−ｃｈａｎｇｅｄ”イベントを発行され、サーバにｃｏｎｔｒｏｌＳｗｉｔｃｈ以下の値をｓｕｂｍｉｓｓｉｏｎされる。ｃｏｎｔｒｏｌＳｗｉｔｃｈ以下の値を受信したサーバは、記述されたＰＡＮ，ＴＩＬＴ，ＺＯＯＭの値で、アプリケーションを制御し、必要であれば、その結果を再度、クライアントに送信する。
【０１８０】
以上説明したように、あらゆる種類のクライアントに共通のユーザインタフェースデータ、ただ１つだけで、サーバはアプリケーションの機能を提供できる。かつ、クライアントに前記ユーザインタフェースデータに対応するユーザインターフェースが無い場合であっても、次善のユーザインターフェースで構成することができる。
【０１８１】
なお、ユーザインタフェースデータはＸＭＬで記述され、図３８においてはＳＶＧ、ＸＦｏｒｍｓ、ｓＸＢＬを使用しているが、ユーザインタフェースデータの記述がこれら特定の言語に限定されるわけではなく、別のデータ形式においても上述の実施形態の機能が実現される場合も含まれることはいうまでもない。
【図面の簡単な説明】
【０１８２】
【図１】本発明におけるユーザインタフェースデータとユーザインタフェースルールの一例を示すクラス図である。
【図２】本発明における抽象度の違いで段階的に階層化されたユーザインターフェース部品ルールの一例を示すクラス図である。
【図３】本発明におけるユーザインターフェース部品ルールの一部をツリー状構造で示したものである。
【図４】本発明における抽象度の違いで段階的に階層化されたレイアウトルールの一例を示すクラス図である。
【図５】本発明におけるレイアウトルールの一部をツリー状構造で示したものである。
【図６】本発明におけるレイアウトスタックのデータ構造の一例を示す概念図である。
【図７】本発明におけるレイアウト情報のデータ構造の一例を示す概念図である。
【図８】本発明におけるシステムの処理の流れを示すフローチャートである。
【図９】本発明におけるユーザインターフェース決定処理の流れを示すフローチャートである。
【図１０】本発明におけるユーザインターフェース決定処理のうち、具体的ユーザインターフェース部品取得手段の流れを示すフローチャートである。
【図１１】本発明におけるユーザインターフェース決定処理のうち、具体的レイアウト取得手段の流れを示すフローチャートである。
【図１２】本発明におけるハードウェア構成を示すブロック図である。
【図１３】本発明におけるユーザインタフェースデータの一例である。
【図１４】本発明におけるユーザインタフェースデータにより構成されるユーザインターフェース画面の一例である。
【図１５】本発明におけるユーザインタフェースデータの一例である。
【図１６】本発明におけるユーザインタフェースデータにより構成されるユーザインターフェース画面の一例である。
【図１７】本発明におけるユーザインタフェースデータの一例である。
【図１８】本発明におけるユーザインターフェース指定情報を階層構造からなるＸＭＬデータで表現した例である。
【図１９】本発明におけるユーザインタフェースルールをＸＭＬの描画定義で記述した例である。
【図２０】本発明におけるサーバー・クライアントシステムの一例を示した図である。
【図２１】本発明におけるサーバー・クライアントシステムのクラス図の一例である。
【図２２】本発明におけるシステムの流れを示すフローチャートである。
【図２３】本発明におけるユーザインターフェース決定処理の流れを示すフローチャートである。
【図２４】本発明におけるユーザインターフェース要素生成処理の流れを示すフローチャートである。
【図２５】本発明におけるユーザインタフェースデータの構造を示すクラス図である。
【図２６】本発明におけるユーザインターフェース決定処理において起動されるユーザインターフェース要素定義追加処理の流れを示すフローチャートである。
【図２７】本発明におけるユーザインターフェース要素定義パス処理のアクティビティ図である。
【図２８】本発明の実施の形態におけるクライアントである情報処理装置とサーバにおいて実行される処理とデータの概略構成を示すブロック図である。
【図２９】本発明の実施の形態におけるユーザインターフェース処理部の内部構成とそれらの作用を示すコラボレーション図である。
【図３０】本発明の実施の形態におけるユーザインターフェース指定情報要素定義の一例である。
【符号の説明】
【０１８３】
１  入力部
２  ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
３  出力部
４  プログラムメモリ
５  データメモリ
６  システムバス
１００  ユーザインタフェースルール
１０１  ユーザインタフェースデータ
１０２  ユーザインターフェース指定情報
２０１  ユーザインターフェース部品ルール
４０１  レイアウトルール
【図１】
2006107180.tif 000003
【図２】
2006107180.tif 000004
【図３】
2006107180.tif 000005
【図４】
2006107180.tif 000006
【図５】
2006107180.tif 000007
【図６】
2006107180.tif 000008
【図７】
2006107180.tif 000009
【図８】
2006107180.tif 000010
【図９】
2006107180.tif 000011
【図１０】
2006107180.tif 000012
【図１１】
2006107180.tif 000013
【図１２】
2006107180.tif 000014
【図１３】
2006107180.tif 000015
【図１４】
2006107180.tif 000016
【図１５】
2006107180.tif 000017
【図１６】
2006107180.tif 000018
【図１７】
2006107180.tif 000019
【図１８】
2006107180.tif 000020
【図１９】
2006107180.tif 000021
【図２０】
2006107180.tif 000022
【図２１】
2006107180.tif 000023
【図２２】
2006107180.tif 000024
【図２３】
2006107180.tif 000025
【図２４】
2006107180.tif 000026
【図２５】
2006107180.tif 000027
【図２６】
2006107180.tif 000028
【図２７】
2006107180.tif 000029
【図２８】
2006107180.tif 000030
【図２９】
2006107180.tif 000031
【図３０】
2006107180.tif 000032