(57)【要約】【課題】多種のデバイスと操作端末自体に適したＵＩを生成することを目的とする。【解決手段】デバイスとネットワークにより接続された、前記デバイスを操作するリモート操作端末装置であって、前記デバイスよりデバイス情報を取得する取得手段と、前記デバイスに対応したデバイステンプレートと、前記取得手段で取得したデバイス情報に基づいて、前記デバイステンプレートを編集する編集手段とを有することを特徴とするリモート操作端末装置等、を提供する。【選択図】図１
2007140983.tif 000002
【特許請求の範囲】
【請求項１】
デバイスとネットワークにより接続された、前記デバイスを操作するリモート操作端末装置であって、
前記デバイスよりデバイス情報を取得する取得手段と、
前記デバイスに対応したデバイステンプレートと、
前記取得手段で取得したデバイス情報に基づいて、前記デバイステンプレートを編集する編集手段とを有することを特徴とするリモート操作端末装置。
【請求項２】
複数のデバイステンプレートと、
前記複数のデバイステンプレートから前記デバイスに対応したものを選択する選択手段とを有することを特徴とする請求項１に記載のリモート操作端末装置。
【請求項３】
前記デバイステンプレートは、前記デバイス情報に記載の操作コマンドと、前記デバイステンプレートに記載のユーザインタフェースを構成するＵＩ部品との対応情報及び前記デバイスを特定する為のデバイスＩＤを格納する為の格納スペースを有し、
前記格納スペースに操作対象とするデバイスのデバイスＩＤを格納する格納手段を持つ事を特徴とする請求項１または２に記載のリモート操作端末装置。
【請求項４】
前記デバイステンプレートは、構築されるユーザインタフェースにおけるＵＩ部品の有無及びレイアウトを変更する為の条件記述を含むことを特徴とする請求項１〜３の何れか１項に記載のリモート操作端末装置。
【請求項５】
前記構築されるユーザインタフェースにおけるＵＩ部品の有無及びレイアウトを変更する為の条件記述は、取得したデバイス情報に記載の操作コマンドの有無を基に条件判定する事を特徴とする請求項４に記載のリモート操作端末装置。
【請求項６】
前記構築されるユーザインタフェースにおけるＵＩ部品の有無及びレイアウトを変更する為の条件記述は、取得したデバイス情報に記載の状態変数の値を基に条件判定する事を特徴とする請求項４に記載のリモート操作端末装置。
【請求項７】
前記テンプレートを入れ替える入替手段を有することを特徴とする請求項１〜６の何れか１項に記載のリモート操作端末装置。
【請求項８】
さらに１つのデバイスに対するユーザインタフェースを複数画面から構成することを特徴とする請求項１〜７の何れか１項に記載のリモート操作端末装置。
【請求項９】
前記デバイステンプレートは、各ＵＩ画面を表わす画面毎のテンプレートから構成されることを特徴とする請求項８に記載のリモート操作端末装置。
【請求項１０】
ＵＩ画面中に他の画面に遷移するためのＵＩ部品を含むことを特徴とする請求項８に記載のリモート操作端末装置。
【請求項１１】
前記画面毎のテンプレートは、他のテンプレートへ遷移するための記述を含むことを特徴とする請求項９に記載のリモート操作端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はリモート操作端末装置に関し、例えばデバイスから取得したデバイス情報を利用して、ユーザインタフェースを構築する際に用いて好適な技術に関する。
【背景技術】
【０００２】
従来、ネットワークを介してデバイスの操作を行う際、操作端末は、予め操作対象であるデバイスについて、操作信号を送るための通信プロトコル、操作信号の意味、操作信号自体の送信手続き、操作範囲情報及びデバイスからのフィードバック信号を処理する手続きなどの情報を知っている必要があった。
【０００３】
即ち、操作端末においては、操作対象のデバイス個別に対応したレイアウト情報を含むユーザインタフェース（以下ＵＩと略す）を構成する為の、専用の操作用アプリケーションが必要であった。この為、操作用アプリケーションの追加や変更ができない操作端末の場合は、新たな種類のデバイスに応じて新たな操作端末が必要であった。
【０００４】
この様な不便を解決する為に、ネットワーク及びプロトコルとして広く標準として使用されている物を利用し、デバイスを種別に応じて分類分けし、同じデバイス種別のものについては、共通の操作を共通のＵＩで操作するリモート操作の仕組みが存在している。
【０００５】
例えば、UPnPの仕組みを使用する事で、デバイス及び操作端末のネットワークにおける発見、探索、能力交換、制御、応答、及び表示機能などの手続きを共通化する事が可能となる。これにより、デバイス及び操作端末がUPnPに対応しており、尚且つ操作端末が操作可能なデバイス種別のものであれば、デバイスのメーカーや機種形式に関わらず、リモート操作を行う事が可能となっている。
【０００６】
この時、操作端末は、同一のデバイス種別のデバイスであっても、例えば機能の有無や操作のパラメータ範囲など、各デバイス固有の機能差異を吸収する為に、ＵＩを構成して操作を行う前に、操作をしようとするデバイスのデバイス情報を取得する。そして、その内容に基づき操作アプリケーション内の条件判定により、最終的なＵＩの構成を行っていた。あるいは、デバイスから前記デバイスに適した標準的な文書形式のＵＩデータを得ることにより、ＵＩを構成していた。
【０００７】
また、前記の様な標準に依らず、操作端末において、ＵＩを構成する為のデバイス情報として、より多種多様の情報を取得する事で、デバイスの状態変化や、複数のデバイスによる協調動作に対応する為に動的にＵＩを構成する為の数々の技術が開示されている。
【０００８】
操作されるデバイス自身が操作画面を構成する為のＧＵＩ部品を保持し、また当該ＧＵＩ部品は自身の機能を示すアプリケーション情報を保持し、操作端末は、デバイスより前述のＧＵＩ部品を読み込み、前記アプリケーション情報を用いてＵＩを構成する。これにより、各デバイスの各機能に適したＵＩを操作端末において動的に構成する事で、各デバイスを統合的に動作させる技術が開示されている（例えば、特許文献１参照）。
【０００９】
また、複数のデバイスを操作端末において制御する際に、当該制御を仲介するサーバを設け、複数のデバイスの状態関連情報を含むデバイス情報を当該仲介サーバで取得する。そして、該仲介サーバにおいて、前述の状態関連情報に基づき、ＵＩを構成する為の定義データを端末装置に送信する事で、複数のデバイスを統合して制御する為のＵＩを構成する技術が開示されている（例えば、特許文献２参照）。
【００１０】
また、操作端末とは別のデバイス管理装置において、デバイスより取得したデバイス情報をＸＭＬ(eXtensible Markup Language)データとして保持する。そして、ＵＩを表示する様に操作端末から要求された際には、デバイスに関連する情報及び制御端末に関連する情報に基づいて選択された、ＸＭＬデータ変換の為の情報を含むスタイルシートをテンプレートの如く利用して前述のＸＭＬデータを変換する。そして、これを操作端末において表示する技術が開示されている（例えば、特許文献３参照）。
【００１１】
【特許文献１】特開２０００−３３３２６９号公報
【特許文献２】特開２００３−２８０７３１号公報
【特許文献３】特開２００４−１８５５４１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、前記のUPnPの仕組みを利用する事で、操作端末で構成されるＵＩは、同一の操作端末上においては、ＵＩ部品やレイアウト等のＵＩの見た目や操作感がメーカーや機種形式に関わらず同一のものとなる為に、ＵＩによる差別化が図り辛いものであった。
【００１３】
さらに、操作が可能なはずのデバイス種別のデバイスであっても、操作端末が知らない機能や、新たなデバイス種別のデバイスについては、操作アプリケーションにおける条件判定が行えない。その結果、操作端末内のアプリケーションを変更しない限り、当該デバイスの新機能や新デバイスの操作自体行う事は出来なかった。
【００１４】
さらに、デバイスから該デバイスに適した標準的な文書形式のＵＩデータを得ることによりＵＩを構成する場合は、デバイスが保持している操作端末によらないＵＩデータを利用するため、操作端末の画面サイズなどによって操作性の悪いものになる場合があった。
【００１５】
さらに、特許文献１においては、操作されるデバイス自身がＧＵＩ部品及び当該ＧＵＩ部品の機能情報を保持し、操作端末がこれらのオブジェクトを読み込む事でＵＩを構成する。このため、多くのＵＩの為の画面を持つデバイスの場合は、デバイスの持つデータ量及び操作端末に送るデータ量が莫大な物となってしまうという問題点があった。また、操作端末においても、ＧＵＩ部品の機能情報を理解し、これに基づいて実行する仕組みが必要となる。さらに、操作端末上で、簡単にＵＩのＧＵＩ部品等のデザインを変更する事は不可能であるという問題点もあった。
【００１６】
さらに、特許文献２においては、デバイスと操作端末の他に、統合されたＵＩを構成する為の仲介サーバが必要である。また、仲介サーバは予め決められたデバイス同士の組み合わせにしか対応しておらず、それ以外のデバイスではＵＩが構成されないという問題点があった。また、デバイスの状態関連情報は仲介サーバで使用される為に、操作端末において状態関連情報を基にＵＩの変更が行えないという問題点もあった。
【００１７】
さらに、特許文献３においては、操作端末とは別のデバイス管理装置が必要であり、また、当該デバイス管理装置においては、デバイスの状態によりテンプレートを選択変更する構成である。このため、デバイス管理装置においてテンプレートが選択された後は、操作端末においては、デバイスの状態やユーザ操作に基づき、テンプレートを選択変更し、ＵＩを変更する事が出来ないという問題点があった。また、デバイス情報によりテンプレートを選択するのみであるため、情報の表示は可能であるが、デバイスの操作を行うことが困難であった。
【００１８】
さらに、デバイスを操作するための画面をいくつかの画面に分けるためには、予め各画面およびそれらの間の遷移がアプリケーション中にハードコードされている必要があった。あるいはデバイスから画面間の遷移情報を含む各画面に応じたデータを受信する必要があった。
【００１９】
本発明は前述の問題点に鑑み、操作端末のアプリケーションを変更することなしに多種のデバイスと操作端末自体に適したＵＩを生成する。さらにデバイスの機種や個体に応じてＵＩを生成すること、また、操作端末やユーザに応じてＵＩを複数画面から構成し、デバイスからの情報には含まれない画面間の遷移を可能とすることを目的としている。
【課題を解決するための手段】
【００２０】
本発明は前記目的を達成するために、デバイスとネットワークにより接続された、前記デバイスを操作するリモート操作端末装置であって、前記デバイスよりデバイス情報を取得する取得手段と、前記デバイスに対応したデバイステンプレートと、前記取得手段で取得したデバイス情報に基づいて、前記デバイステンプレートを編集する編集手段とを有することを特徴とするリモート操作端末装置等、を提供する。
【発明の効果】
【００２１】
本発明によれば、デバイスを操作する為のＵＩがデバイス情報及びデバイステンプレートから構築される為に、操作端末のプログラムを変更する事無く、デバイステンプレートを入れ替える事で、ＵＩの変更が可能となる。
【００２２】
また、デバイステンプレート中に、デバイス情報に記載の操作コマンドと、デバイステンプレートに記載のＵＩ部品との対応情報、及び、デバイスＩＤを格納する為の格納場所を含み、さらに、当該格納場所にデバイスＩＤを格納する手段を持つ事で、デバイスの種別に応じたレイアウトやＵＩ部品を使用したＵＩを構築出来ると共に、複数ある同種のデバイスの内、特定のデバイスを特定することでインタラクティブなＵＩが実現出来る効果がある。
【００２３】
また、デバイステンプレートに、構築されるＵＩにおけるＵＩ部品の有無及びＵＩのレイアウトを変更する為の条件記述を含む事で、同一のデバイステンプレートを用いた場合でも、デバイス情報中の機能や状態の記述に基づき、個々のデバイスに適した、異なるＵＩ部品やレイアウトからなるＵＩを構築することが可能となる
【００２４】
また、デバイステンプレートに、構築されるＵＩにおけるＵＩ部品の有無及びＵＩのレイアウトを変更する為の条件記述を含む事で、同一のデバイステンプレートを用いた場合でも、デバイス情報中の機能や状態の記述に基づき、個々のデバイスに適した、異なるＵＩ部品やレイアウトからなるＵＩを構築することが可能となる
【００２５】
また、デバイステンプレートを画面毎に複数のデバイステンプレートから構成し、該デバイステンプレート中に他のデバイステンプレートへの遷移のためのＵＩ部品の記述を含む事により、操作端末やユーザに応じてＵＩを複数画面から構成し、デバイスからの情報には含まれない該画面間の遷移を可能とする。これにより、操作端末の表示装置があまり広くない場合にＵＩの構成要素の数を減らすことによる視認性や、ＵＩの理解容易性、目的の操作を行うためのＵＩ部品の検索性が向上する。
【発明を実施するための最良の形態】
【００２６】
（第１の実施形態）
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。
図１は本実施形態の全体構成の一例を示す図である。
図１において、１０１、１０２、１０６、１０７はそれぞれ機器（被操作対象のデバイス）であり、１０３、１０５はそれぞれ機器の操作を行う操作端末である。１０４は機器および操作端末を接続し、それらの間でデータおよび命令のやり取りを行うためのネットワークである。操作端末１０３、１０５はそれぞれ、ネットワーク１０４を通じて操作コマンドを送ることにより、機器１０１、１０２、１０６、１０７を操作する。
【００２７】
図２は本実施形態における操作端末のハードウェア構成の一例を示すブロック図である。
２０２はＣＰＵであり、各種処理のための演算や論理判断等を行い、バス２０１に接続された各構成要素を制御する。本操作端末には、プログラムメモリとデータメモリを含むメモリが搭載されている。プログラムメモリには、フローチャートにつき後述する処理手順を含むＣＰＵによる制御のためのプログラムを格納する。メモリはＲＯＭ２０３であっても良いし外部記憶装置などからプログラムがロードされるＲＡＭ２０４であっても良い。
【００２８】
２０５はデータやプログラムを記憶しておくための不揮発性メモリやハードディスクなどの記憶装置である。２０６はユーザからの情報を入力するための入力装置であり、この装置はマウス、タッチパネル、キーボードなどある。２０８は分析されたデータ出力情報を出力する出力装置であり、ＣＲＴや液晶表示器などの表示装置である。２０７はネットワークＩ／Ｆであり、ネットワークで接続された他のデバイスとのやり取りを行う。
【００２９】
図３は、本実施形態における全体の構成の一例を表わす図である。
３０１は操作端末であり、３０２はデバイスである。デバイス３０２はデバイス情報３０３を有しており、操作端末３０１からの要求に応じてネットワークを経由してデバイス情報３０３を操作端末３０１に送信する。
【００３０】
デバイス情報３０３は、ネットワークカメラ、ビデオ、プリンタなどといったデバイス種別３０７と、そのデバイスを操作するための操作コマンド３０８と、個々のデバイス固有のデバイスＩＤ３１５を含む。
【００３１】
操作端末３０１は、デバイス情報３０３を元にＵＩを構成するためのＵＩデータ３１２を動的に生成するためのテンプレート３０５を有する。テンプレートには、その一種としてデバイステンプレート３０６があり、該デバイステンプレートはデバイスＩＤの格納場所３１１と、ＵＩ部品３１０と、ＵＩ部品と操作コマンドの対応情報３０９を含む。
【００３２】
デバイスＩＤの格納場所３１１は、デバイス情報３０３中のデバイスＩＤ３１５によって補完されるべきであることを示しており、生成されるＵＩがどのデバイスのＵＩであるのかを識別するために使用される。
【００３３】
ＵＩ部品３１０は、実際に表示されるＵＩ上のボタン、スライダ、リストボックスなどの部品である。ＵＩ部品３１０と操作コマンドの対応情報３０９は、どのＵＩ部品３１０を操作するとどの操作コマンド３０８がデバイス３０２に対して発行されるかという対応関係を表わす情報である。
【００３４】
また、操作端末３０１は、デバイス種別３０７とデバイステンプレート３０６との対応関係を表わす種別・テンプレートの組３１４を複数含む種別・テンプレート対応テーブル３０４を有する。３１６は、操作端末が生成したＵＩデータ３１２からＵＩを構築するブラウザであり、出力３１３に対して表示を行う。
【００３５】
図４は、本実施形態におけるＵＩ生成処理の流れの一例を示すフローチャートである。図４において、ステップＳ４０１からステップＳ４０７は各ステップを表わす。
まず、操作端末はデバイス３０２にデバイス情報３０３を要求し、デバイス３０２からデバイス情報３０３を取得する（ステップＳ４０１）。次に、取得したデバイス情報３０３からデバイス種別３０７を取り出し（ステップＳ４０２）、デバイス種別３０７を用いて、デバイス３０２に対応するデバイステンプレート３０５を検索する（ステップＳ４０３）。
【００３６】
そして、検索の結果、デバイス種別３０７に対応するデバイステンプレート３０５が存在するか否かを判断する（ステップＳ４０４）。対応するデバイステンプレート３０５が存在する場合には、デバイステンプレート３０５を入力とし、ＵＩデータ領域を新たに出力とする入出力の設定を行った（ステップＳ４０５）後に、ＵＩデータ生成処理を行う（ステップＳ４０６）。
【００３７】
それから、ＵＩデータ３１２によりＵＩを構築・表示し（ステップＳ４０７）、処理を終了する。ステップＳ４０４の判断の結果、ステップＳ４０２で得たデバイス種別３０７に対応するデバイステンプレート３０５が存在しない場合には、処理を終了する。
【００３８】
図７は、本実施形態におけるデバイス３０２のデバイス情報３０３のＸＭＬデータの一例を示す図である。
図７において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。行番号０７０８にある７Ａはデバイス情報におけるデバイス種別を示す記述である。このうち"urn:schemas-canon-org:device:NetworkCamera:1"が実際のデバイス種別を示す文字列である。行番号０７０９にある７Ｂはデバイス名を示す記述である。このうち"Catharine"が実際のデバイス名を示す文字列である。行番号０７１７にある７ＣはデバイスＩＤを示す記述である。このうち"uuid:upnp-canon-nc1＿1＿0-00008522CD3A"が実際のデバイスＩＤを示す文字列である。行番号０７２４にある７Ｄはデバイスを操作するための操作サービスを示すＸＭＬデータへのリンクを示している。
【００３９】
図９は、本実施形態における種別・テンプレート対応テーブル３０４の一例を示す図である。
図９において、９００は種別・テンプレート対応テーブル全体であり、種別・テンプレート対応テーブル３０４を具体的に表わしたものである。種別・テンプレート対応テーブル９００はファイルとして記憶装置２０５中に保持されており、更新することが可能である。９１０、９２０はそれぞれ１組のデバイスの種別とデバイステンプレートファイルの対応関係を表わしており、種別・テンプレート組３１４を具体的に表わしたものである。
【００４０】
９１１、９２１はそれぞれ、１つのデバイス種別を表わしており、共にデバイス種別３０７を具体的に表わしたものである。９１２、９２２はそれぞれ、１つのデバイステンプレートを表わしており、共にデバイステンプレート２０６に対応している。これらは、記憶装置２０５に保存されており、それぞれの文字列はファイル名を表わしている。
【００４１】
すなわち、図９はデバイス種別が９１１であれば、デバイステンプレート９１２が選択され、デバイス種別が９２１であれば、デバイステンプレート９２２が選択されることを表わしている。
【００４２】
図１１は、本実施形態における対応テンプレート検索処理の流れの一例を示すフローチャートである。図１１において、ステップＳ１１０１からステップＳ１１０５は各ステップを表わす。
まず、種別・テンプレート対応テーブル９００にまだデバイス種別３０７とテンプレート３０５の組が存在するか否かを判断する（ステップＳ１１０１）。存在するならば該デバイス種別３０７とテンプレート３０５の組を得て（ステップＳ１１０２）、その中のデバイス種別３０７を得る（ステップＳ１１０３）。
【００４３】
次に、該デバイス種別３０７がステップＳ４０２で得たデバイス種別に一致するか否かを判断する（ステップＳ１１０４）。一致するならばステップＳ１１０２で得たデバイス種別３０７とテンプレート３０５の組からデバイステンプレート３０６を得て、対応するデバイステンプレートとして（ステップＳ１１０５）、処理を終了する。
【００４４】
ステップＳ１１０４の判断の結果、両デバイスの種別が一致しない場合には、ステップＳ１１０１の判断に戻る。ステップＳ１１０１の判断の結果、種別・テンプレート対応テーブル９００にもうデバイス種別とテンプレートの組が存在しないならば、処理を終了する。
【００４５】
すなわち本処理は、本実施形態においてはデバイス種別が"urn:schemas-canon-org:device:NetworkCamera:1"であるデバイス種別とテンプレートの組９１０を種別・テンプレート対応テーブル９００から検索する。そして、デバイス種別とテンプレートの組９１０を得て、対応するデバイステンプレート３０６のファイル名として「ネットワークカメラテンプレート」を返す。
【００４６】
図６は、本実施形態におけるデバイステンプレート３０６の一例としてＸＭＬデータを示す図である。
図６において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。行番号０６０８、０６１５、０６１７、０６１９の６Ａ〜６Ｄは、それぞれデバイス情報３０３中のデバイスＩＤの格納場所を意味する特別な変数（$uid）である。行番号０６２２の６Ｅは、デバイス情報中のデバイス名の格納場所を意味する特別な変数（$devName）である。
【００４７】
また、行番号０６１４から０６１９は、デバイスに対して操作コマンドが発行されることを示している。例えば、行番号０６１５の６Ｇは"method="CameraControlPan""となっており、この行が実行された時に発行される操作コマンドが"CameraControlPan"であることを示している。また、行番号０６１４には６Ｆに示すように本データ中で一意な識別子として"pan"が与えられている。
【００４８】
また、６Ｉ、６Ｊ、６Ｋには、ＵＩを構成するＵＩ部品３１０についての記述がある。６Ｉ〜６Ｋはそれぞれ特定の範囲からの選択を行うＵＩ部品"xforms:range"を表わしている。そして、それぞれのレイアウト情報および現在の値を保持しているデータモデルへの参照と、値が変更された場合にどの操作コマンドが発行されるかの対応情報がふくまれている。
【００４９】
例えば６Ｄ中の行番号０６３５中の６Ｈは"submission="pan" "となっており、ＵＩ部品"xforms:range"の値が変更された場合に識別子が"pan"である行を実行することが示されている。すなわち、０６１４行の６Ｆと０６３５行の６Ｈの記述により、６ＩのＵＩ部品３１０と６Ｇの操作コマンド"CameraControlPan"が対応付けられている。よって、このデバイステンプレート３０６中には、デバイス情報３０３に記載の操作コマンドとデバイステンプレート３０６に記載のＵＩを構成するＵＩ部品との対応情報が含まれている。
【００５０】
図８は、本実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてＸＭＬデータを示す図である。
図８において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図８は、図７において７Ｄで表わされた操作サービスを示すデバイス情報である。
【００５１】
図８において、８Ａ、８Ｂ、８Ｃはそれぞれ別の操作コマンドを表わしており、それぞれの操作コマンド名がCameraControlPan、CameraControlTilt、CameraControlZoomであること及びそれぞれの操作コマンドの引数などを示している。また、８Ｄは状態変数を示しており、その名称がMotionDetectがあることを示している。
【００５２】
図５は、本実施形態におけるＵＩ生成処理の流れを示すフローチャートである。図５において、ステップＳ５０１からステップＳ５０９は各ステップを表わす。
まず、ステップＳ４０５で設定された入力において現在の位置が入力の終端に達しているか否かを判断し（ステップＳ５０１）、まだ終端に達していない場合には、構文上の１行を読み込む（ステップＳ５０２）。
【００５３】
次に、読み込んだ行中にデバイスＩＤの格納場所３１１が含まれているか否かを判断する（ステップＳ５０３）。デバイスＩＤの格納場所３１１が含まれている場合には、ステップＳ４０１で得たデバイス情報３０３中から得たデバイスＩＤを得る（ステップＳ５０４）。そして、バッファに読み込んだ行中のデバイスＩＤの格納場所３１１に実際のデバイスＩＤを挿入する（ステップＳ５０５）。ステップＳ５０３の判断の結果、デバイスＩＤの格納場所３１１が含まれていない場合には、ステップＳ５０６の判断に移る。
【００５４】
次に、読み込んだ行中にデバイス名の格納場所が含まれているか否かを判断する（ステップＳ５０６）。デバイス名の格納場所が含まれている場合には、ステップＳ４０１で得たデバイス情報中から得たデバイス名を得て（ステップＳ５０７）、バッファに読み込んだ行中のデバイス名の格納場所に実際のデバイス名を挿入する（ステップＳ５０８）。ステップＳ５０６の判断の結果、デバイス名の格納場所が含まれていない場合には、ステップＳ５０９の処理に移る。
【００５５】
そして、バッファ中の読み込んだ行をＵＩデータ３１２に書き込んだ（ステップＳ５０９）後ステップＳ５０１の判断に戻り、一連の処理を繰り返す。ステップＳ５０１の判断の結果、すべての行の処理を終えて、デバイステンプレート３０６の終端に達した場合には、処理を終了する。
【００５６】
すなわち本処理においては、ステップＳ４０５で入力に設定された図６のようなデバイステンプレートを、ステップＳ５０２において１行ずつ読み込む。図６の行番号０６０８、０６１５、０６１７、０６１９においては、ステップＳ５０３の判断において行中にデバイスＩＤの格納場所（$uid）が含まれている。このため、ステップＳ５０４において図７のデバイス情報に含まれるデバイスＩＤ（"uuid:upnp-canon-nc1＿1＿0-00008522CD3A"）を得て、ステップＳ５０５で該格納場所に該デバイスＩＤを格納する。すなわち、文字列"$uid"を"uuid:upnp-canon-nc1＿1＿0-00008522CD3A"に置換する。
【００５７】
これらの行においては、デバイス名の格納場所は行中に含まれていないので、ステップＳ５０６の判断において判定結果が否となる。そして、ステップＳ５０９の処理に移り、デバイスＩＤが補完されたデータがＵＩデータ３１２に追加され、ステップＳ５０１の判断に戻る。
【００５８】
図６の行番号０６２２においては、ステップＳ５０３の判断においてデバイスＩＤの格納場所が行中に含まれないため、判断結果が否となり、ステップＳ５０６の判断に移る。ステップＳ５０６の判断においては、行中にデバイス名の格納場所（$devName）が含まれている。このため、ステップＳ５０７において図７のデバイス情報３０３に含まれるデバイス名（"Catharine"）を得て、ステップＳ５０８で該格納場所に該デバイス名を格納する。すなわち、文字列"$devName"を"Catharine"に置換する。そして、ステップＳ５０９において、デバイス名が補完されたデータがＵＩデータ３１２に追加され、ステップＳ５０１の判断に戻る。
【００５９】
他の行はステップＳ５０３、ステップＳ５０６の判断とも偽となるので、ステップＳ５０９においてそのままＵＩデータに追加される。図６のテンプレートが行番号０６５０に達すると、ステップＳ５０１の判断において、デバイステンプレート３０６の現在の位置がテンプレートの終端に達しているので、処理を終了する。この結果、本処理によって図６のようなデバイステンプレート３０６から図１０のようなＵＩデータ３１２を生成することが出来る。
【００６０】
図１０は、本実施形態におけるＵＩデータ生成処理によって生成されたＵＩデータ３１２の一例としてＸＭＬデータを示す図である。
図１０において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。ＵＩデータ３１２は図６のデバイステンプレート３０６を基に、図７のデバイス情報３０３を用いて図５のＵＩデータ生成処理によって生成されるものであり、ＵＩデータ３１２に該当する。
【００６１】
図１０において、１０Ａ、１０Ｂ、１０Ｃ、１０Ｄはそれぞれデバイステンプレート３０６中の６Ａ、６Ｂ、６Ｃ、６Ｄがデバイス情報３０３中のデバイスＩＤ（７Ｃ）により補完されたものである。１０Ｅはデバイステンプレート３０６中の６Ｅがデバイス情報３０３中のデバイス名７Ｂにより補完されたものである。
【００６２】
このＵＩデータ３１２をブラウザ２１６に渡すことによりＵＩが構築され、出力３１３によりＵＩが表示される。
【００６３】
図１７は、本実施形態におけるデバイスと表示されるＵＩとの関係を示す図である。
図１７において、図１７（ａ）のように操作端末１７０５に対してデバイスとしてネットワークカメラ１７０６とが接続されている。この場合には、デバイスの種別がネットワークカメラを表わすデバイス種別（本実施形態においては"urn:schemas-canon-org:device:NetworkCamera:1"）である。それゆえ、これまでに説明した流れで図１０のようなＵＩデータ３１２が生成され、それを基にブラウザ３１６により１７０１のようなＵＩが構築される。
【００６４】
ＵＩ１７０１において、１７０２はカメラの横方向の回転を表わすＵＩ部品であり、図１０の行番号１０３３から１０３５に記載の特定の範囲からの選択を行うＵＩ部品を表わす要素"xforms:range"から生成されたものである。同様に１７０３、１７０４はそれぞれカメラのズーム、縦方向の回転を表わすＵＩ部品であり、図１０の行番号１０３９から１０４１、１０４５〜１０４７に記載の特定の範囲からの選択を行うＵＩ部品を表わす要素"xforms:range"から生成される。
【００６５】
一方、図１７（ｂ）は操作端末１７１２に対してデバイスとしてビデオ１７１３が接続されている。この場合には、デバイスの種別がビデオを表わすデバイス種別（本実施形態においては"urn:schemas-canon-org:device:Video:1"）である。それゆえ図９の種別・テンプレート対応テーブル９００中からデバイステンプレート９２２が選択され、同様の処理で対応するＵＩデータ３１２が生成され、それを基にブラウザ３１６により１７１１のようなＵＩが構築される。
【００６６】
以上のように、本実施形態においては、デバイスを操作する為のＵＩは、デバイス情報及びデバイステンプレートから構築される為に、操作端末のプログラムを変更する事無く、デバイステンプレートを入れ替える事でＵＩの変更が可能になる。また、個々のデバイスの識別子をＵＩデータ中に埋め込むことにより、ＵＩからの個々の機器の操作が可能となる。
【００６７】
（第２の実施形態）
本実施形態においては、構築されるＵＩにおけるＵＩ部品の有無及びＵＩのレイアウトを変更する為の条件記述をデバイステンプレートに含む場合について、図面を参照しながら説明する。なお、ブロック図は第１の実施形態と同様である。
【００６８】
図１２は、本実施形態におけるデバイステンプレート３０６の一例としてＸＭＬデータを示す図である。
図１２において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。１２Ａ〜１２Ｇ、１２Ｉ、１２Ｊは、それぞれ図８に示したデバイス３０２を操作するための操作サービスを示すデバイス情報３０３中に、操作コマンドが存在するか否かによって生成するＵＩデータ３１２を変えるための条件の記述部分である。このうち、行番号１２１０、１２２０、１２４６はすべて同様の記述となっている。
【００６９】
ＸＭＬの属性の記述"control="CameraControlPan""のうち、属性名"control"は条件文がデバイス情報３０３中の操作コマンドを対象とすることを表わしている。また、"CameraControlPan"は操作コマンド名が"CameraControlPan"であることを示している。
【００７０】
そして、ＸＭＬの要素名"ui＿template:ifexist"が属性で示したものがデバイス情報３０３中に存在するならば、該要素の子要素を解釈し、必要に応じてＵＩデータ３１２に追加するという条件を表わしている。すなわち、行番号１２１０、１２２０、１２４６はすべて、デバイス情報３０３中に"CameraControlPan"という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてＵＩデータ３１２に追加するという条件文である。
【００７１】
同様に、行番号１２１３、１２２４、１２６６はすべて、デバイス情報３０３中に"CameraControlTilt"という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてＵＩデータに追加するという条件文である。行番号１２１６、１２２８、１２７３はすべて、デバイス情報３０３中に"CameraControlZoom"という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてＵＩデータ３１２に追加するという条件文である。これにより、１２Ｇ、１２Ｉ、１２Ｊの条件文の子要素として記述されている特定の範囲からの選択を行うＵＩ部品"xforms:range"はそれぞれの条件が満たされた場合にはＵＩ上に存在するが、条件が満たされない場合には存在しないことになる。
【００７２】
また、１２Ｈはデバイス情報３０３中の状態変数の値によって生成するＵＩデータ３１２を変えるための条件の記述部分である。このうち、行番号１２５５のＸＭＬの属性の記述"variable="MotionDetect""は、条件文の対象となる状態変数名が"MotionDetect"であることを示しており、"value="1""は、条件文の指定する値が"1"であることを示している。そして、ＸＭＬの要素名"ui＿template:ifcond"が属性で示した状態変数の値の条件が満たされているならば、該要素の子要素をＵＩデータ３１２に追加するという条件を表わしている。すなわち行番号１２５５は、図８に示したデバイスを操作するための操作サービスを示すデバイス情報３０３中の状態変数"MotionDetect"の値が"1"であるならば、子要素をＵＩデータ３１２解釈し、必要に応じてに追加するという条件文である。
【００７３】
また、１２Ｋは変数の定義部である。行番号１２４３、１２４４共に、要素名"ui＿template:variable"は変数の定義であることを示しており、属性名"name"は変数名を、"value"は変数の初期値を表わしている。すなわち、行番号１２４３は"$x"という名前で初期値は９７である変数の定義を、行番号１２４４は"$y"という名前で初期値は３８１である変数の定義を表わしている。１２Ｍ、１２Ｏはそれぞれ式を表わしており、１２Ｍは１２Ｋで定義した変数$xに５０を加算する式を表わしており、１２Ｏは１２Ｋで定義した変数$yに５０を加算する式を表わしている。
【００７４】
１２Ｌ、１２Ｎ、１２Ｐはすべて同様の記述となっており、"x="$x""と"y="$y""との２つのＸＭＬの属性の記述をあわせたものである。このうち、"x="$x""はＸ座標として変数$xの値を使うことを意味しており、"y="$y""はＹ座標として変数$yの値を使うことを意味している。
【００７５】
すなわち、行番号１２４７および１２７４の要素名"xforms:range"で表わされる特定の範囲からの選択を行うＵＩ部品３１０のＸおよびＹ座標は、それぞれその時点の変数$x、$yの値によって変わる事を表わしている。
【００７６】
したがって、１２Ｇおよび１２Ｈの条件ブロックの条件文が成立するか否かに応じて、それぞれ１２Ｍ、１２Ｏの式が実行されるか否かが変わることを表わしている。そして、それによって行番号１２５９の画像および行番号１２７４の特定の範囲からの選択を行うＵＩ部品３１０のレイアウトが変わることを表わしている。
【００７７】
図１３は、本実施形態におけるＵＩ生成処理の流れを示すフローチャートである。図１３において、ステップＳ１３０１からステップＳ１３１８は各ステップを表わす。
まず、あらかじめ本処理の外部で設定された入力において現在の位置が入力の終端に達しているか否かを判断し（ステップＳ１３０１）、まだ終端に達していない場合には、構文上の１行を読み込む（ステップＳ１３０２）。
【００７８】
次に、読み込んだ行が条件文であるか否かを判断し（ステップＳ１３０３）、該判断の結果、条件文ではない場合には、読み込んだ行が変数の定義であるか否かを判断する（ステップＳ１３０４）。該判断の結果、読み込んだ行が変数の定義ではない場合には、読み込んだ行が子要素が変数の式であることを示す行か否かを判断する（ステップＳ１３０５）。
【００７９】
該判断の結果、読み込んだ行が子要素が変数の式あることを示す行でない場合には、読み込んだ行中にデバイスＩＤの格納場所が含まれているか否かを判断する（ステップＳ１３０６）。デバイスＩＤの格納場所が含まれている場合には、ステップＳ４０１で得たデバイス情報中から得たデバイスＩＤを得て（ステップＳ１３０７）、バッファに読み込んだ行中のデバイスＩＤの格納場所に実際のデバイスＩＤを挿入する（ステップＳ１３０８）。ステップＳ１３０６の判断の結果、デバイスＩＤの格納場所が含まれていない場合には、ステップＳ１３０９の判断に移る。
【００８０】
次に、読み込んだ行中にデバイス名の格納場所が含まれているか否かを判断する（ステップＳ１３０９）。デバイス名の格納場所が含まれている場合には、ステップＳ４０１で得たデバイス情報中から得たデバイス名を得て（ステップＳ１３１０）、バッファに読み込んだ行中のデバイス名の格納場所に実際のデバイス名を挿入する（ステップＳ１３１１）。ステップＳ１３０９の判断の結果、デバイス名の格納場所が含まれていない場合には、ステップＳ１３１２の処理に移る。
【００８１】
次に、変数があるならば該変数に現在の値を格納する処理を行い（ステップＳ１３１２）、バッファ中の読み込んだ行をＵＩデータに書き込んだ（ステップＳ１３１３）後、ステップＳ１３０１の判断に戻り、一連の処理を繰り返す。
【００８２】
ステップＳ１３０３の判断の結果、読み込んだ行が条件文である場合には、該条件文とその子要素の処理を行った（ステップＳ１３１４）後、ステップＳ１３０１の判断に戻る。ステップＳ１３０４の判断の結果、読み込んだ行が変数の定義である場合には、該変数の変数名とその初期値を登録する処理を行った（ステップＳ１３１５）後、ステップＳ１３０１の判断に戻る。
【００８３】
ステップＳ１３０５の判断の結果、読み込んだ行が子要素が変数の式であることを示す行である場合には、さらに１行を読み込む（ステップＳ１３１６）。そして、読み込んだ行が子要素が変数の式であることを示す要素の終端を示す行であるか否かを判断する（ステップＳ１３１７）。
【００８４】
ステップＳ１３１７の判断の結果、読み込んだ行が子要素が変数の式であることを示す要素の終端を示す行でない場合には、読み込んだ行は変数の式であるので、該変数の式の処理を行い（ステップＳ１３１８）、ステップＳ１３１６の処理に戻る。ステップＳ１３１７の判断の結果、読み込んだ行が子要素が変数の式であることを示す要素の終端を示す行である場合には、ステップＳ１３０１の判断に戻る。
【００８５】
ステップＳ１３０１の判断の結果、すべての行の処理を終えて、入力の終端に達した場合には、処理を終了する。
【００８６】
図１４は本実施例における条件文とその子要素の処理の流れを示すフローチャートである。図１４において、ステップＳ１４０１からステップＳ１４１１は各ステップを表わす。
まず、読み込んだ行が操作コマンドの有無に関する条件文であるか否かを判断する（ステップＳ１４０１）。該判断の結果、読み込んだ行が操作コマンドの有無に関する条件文ではない場合には、読み込んだ行が状態変数の有無に関する条件文であるか否かを判断する（ステップＳ１４０２）。
【００８７】
該判断の結果、読み込んだ行が状態変数の有無に関する条件文ではない場合には、読み込んだ行が状態変数の値に関する条件文であるか否かを判断する（ステップＳ１４０３）。該判断の結果、読み込んだ行が状態変数の値に関する条件文である場合には、ステップＳ４０１で得たデバイス情報中から得た状態変数の値を得て（ステップＳ１４０４）、条件文が満たされているか否かを判断する（ステップＳ１４０５）。同様に、ステップＳ１４０１の判断の結果、読み込んだ行が操作コマンドの有無に関する条件文である場合には、ステップＳ４０１で得たデバイス情報３０３中から得た操作コマンドの一覧から指定された操作コマンドを検索する（ステップＳ１４１０）。
【００８８】
ステップＳ１４０２の判断の結果、読み込んだ行が状態変数の有無に関する条件文である場合には、ステップＳ４０１で得たデバイス情報中から得た状態変数の一覧から指定された状態変数を検索する（ステップＳ１４１１）。そして、条件文が満たされているか否かを判断する（ステップＳ１４０５）。
【００８９】
ステップＳ１４０５の判断の結果、読み込んだ行の条件文が満たされているならば、該条件の範囲の保存処理を行い（ステップＳ１４０６）、該保存された条件の範囲を新たな入力とする設定を行う（ステップＳ１４０７）。その後、該入力すなわち保存された条件の範囲に対して本ＵＩデータ処理を再帰的に実行する（ステップＳ１４０８）。そして、保存した条件の範囲を破棄し（ステップＳ１４０９）、処理を終了する。ステップＳ１４０５の判断の結果、読み込んだ行の条件文が満たされていない場合には、該条件の範囲を読み飛ばした（ステップＳ１４１２）後、処理を終了する。
【００９０】
図１５は、本実施形態における条件の範囲保存処理の流れを示すフローチャートである。図１５において、ステップＳ１５０１からステップＳ１５０５は各ステップを表わす。
【００９１】
まず、条件の範囲保存用のファイルを開き（ステップＳ１５０１）、入力から１行を読み込む（ステップＳ１５０２）。次に、入力が終端に達しているか否かを判断し（ステップＳ１５０３）、入力が終端に達していないならば、読み込んだ行を条件の範囲保存用のファイルに書き込み（ステップＳ１５０４）、ステップＳ１５０２の処理に戻る。ステップＳ１５０３の判断の結果、入力が終端に達したならば、条件の範囲保存用のファイルを閉じて（ステップＳ１５０５）、処理を終了する。
【００９２】
図１６は、本実施形態における変数に現在の値を格納する処理の流れを示すフローチャートである。図１６において、ステップＳ１６０１からステップＳ１６０４は各ステップを表わす。
【００９３】
まず、登録されている変数から最初の変数とその現在値を得て（ステップＳ１６０１）、変数があったか否かを判断する（ステップＳ１６０２）。該判断の結果、変数があったならば、バッファに読み込んだ行中の該変数の変数名に一致する変数をすべて該変数の現在値に置き換える（ステップＳ１６０３）。そして、登録されている次の変数とその現在値を得て（ステップＳ１６０４）、ステップＳ１６０２の判断に戻る。ステップＳ１６０２の判断の結果、登録されている変数がもうないならば、処理を終了する。
【００９４】
次に、図１３のＵＩデータ生成処理とそのサブルーチンである図１４から図１６によって、図７、図８のデバイス情報および図１２のデバイステンプレートからＵＩデータ３１２を生成する処理について具体的に説明する。
【００９５】
まず、ステップＳ４０６において行われるＵＩデータ生成処理は、ステップＳ４０５でデバイステンプレートを入力としているので、図１２のデバイステンプレートを１行ずつ処理する。行番号１２０１から１２０９まではステップＳ１３０３からステップＳ１３０５のいずれの判断も偽である。そのため、図５のＵＩデータ生成処理と同様にステップＳ１３０６の判断からステップＳ１３１２の処理を実行し、必要な置換が行われた後、ステップＳ１３１３でＵＩデータ３１２に書き込まれる。
【００９６】
次に、ブロック１２Ａの処理においては、行番号１２１０はステップＳ１３０３において判断が真となるので、ステップＳ１３１４において図１４に記載の条件文とその子要素の処理に移る。その後、ステップＳ１４０１の判断が真となるため、ステップＳ１４１０において操作コマンド"CameraControlPan"が図８のデバイス情報から検索され、行番号０８０９に存在するため、ステップＳ１４０５の条件判断が真となる。よって、ステップＳ１４０６において条件の範囲すなわち行番号１２１１が保存され、条件文の終端を表わす行番号１２１２まで読み込みが終わる。
【００９７】
次に、ステップＳ１４０７で該条件の範囲を入力とし、ステップＳ１４０８において該入力に対してＵＩデータ生成処理を再帰的に行う。ここでは、行番号１２１１がＵＩデータに追加される。そして、ステップＳ１４０９において保存した条件の範囲が破棄され、次の行に処理が進む。
【００９８】
１２Ｂ、１２Ｃについても同様のステップを踏んで、それぞれ行番号１２１４、１２１７がＵＩデータ３１２に追加される。１２Ｄ、１２Ｅ、１２Ｆは、処理の流れは１２Ａと同様である。しかし、条件の範囲がそれぞれ１２２１と１２２２、１２２５と１２２６、１２２９と１２３０の２行であること、またデバイスＩＤの格納場所を有することが異なる。これらの行は行番号１２１１と同様に、図１４のステップＳ１４０８において再帰的に呼び出されたＵＩデータ処理の中で、ステップＳ１３０８においてデバイスＩＤを置換された後にステップＳ１３１３でＵＩデータ３１２に書き込まれる。
【００９９】
１２Ｋは２行とも変数の定義であるので、それぞれステップＳ１３０４で判断が真となり、ステップＳ１３１５において変数の変数名とその初期値、すなわち変数名として$x、その値として９７が、また変数名として$y、その値として３８１が登録される。
【０１００】
１２Ｇは１２Ａと同様に行番号１２４６が条件文であるため、ステップＳ１３０３において判断が真となるので、ステップＳ１３１４において図１４に記載の条件文とその子要素の処理に移る。その後、ステップＳ１４０１の判断が真となるため、ステップＳ１４１０において操作コマンド"CameraControlPan"が図８のデバイス情報から検索され、行番号０８０９に存在するため、ステップＳ１４０５の条件判断が真となる。
【０１０１】
よって、ステップＳ１４０６において条件の範囲すなわち行番号１２４７から１２５３が保存され、条件文の終端を表わす行番号１２１２まで読み込みが終わる。次に、ステップＳ１４０７で該条件の範囲を入力とし、ステップＳ１４０８において該入力に対して図１３に記載のＵＩデータ生成処理を再帰的に行う。
【０１０２】
ここで、その処理について具体的に説明する。行番号１２４７および１２４８が読み込まれると、この行はステップＳ１３０３からステップＳ１３０６、そしてステップＳ１３０９のいずれの判断も偽なので、ステップＳ１３１２に処理が進む。そして、図１６に詳細を示したステップＳ１３１２の変数に現在の値を格納する処理により、１２Ｌの部分が"x="97" y="381""と置換され、ＵＩデータ３１２に追加される。
【０１０３】
行番号１２４９および１２５０は、ステップＳ１３０３からステップＳ１３０６、そしてステップＳ１３０９のいずれの判断も偽なので、ステップＳ１３１３においてそのままＵＩデータ３１２に追加される。
【０１０４】
１２Ｍの部分は、行番号１２５１が子要素が変数の式であることを示す行であるため、当該行の処理においてステップＳ１３０５の判断が真となる。その結果、行番号１２５２がステップＳ１３１６において読み込まれ、ステップＳ１３１８において当該行の処理が行われ、変数$yに５０が加算され、値が４３１に更新される。そして行番号１２５３がステップＳ１３１６で読み込まれ、子要素が変数の式であることを示す要素の終端を表わす行であるため、ステップＳ１３１７において判断が真となり、次の行へ処理が進む。
【０１０５】
行番号１２５４は条件文の終端を表わす行なので、以上でステップＳ１４０８における１２Ｇの条件範囲のＵＩデータ生成処理は終了し、ステップＳ１４０９において保存した条件の範囲が破棄され、次の行に処理が進む。
【０１０６】
次に、１２Ｈの部分の処理について説明する。１２Ｈの処理は１２Ｇの処理とほぼ同様であるが、行番号１２５５が状態変数の値に関する条件文であるため、行番号１２４６が図１４のステップＳ１４０１の判断が真になるのに対して、行番号１２５５はステップＳ１４０３の判断が真となる。そのためステップＳ１４０４において状態変数"MotionDetect"の値"0"が図８のデバイス情報の行番号０８４３から得られる。そして、行番号１２５５の条件文すなわち「状態変数"MotionDetect"の値が"1"である」が真であるか否かがステップＳ１４０５において判断される。この条件文は真でないため、処理はステップＳ１４１２に移り、条件文の終端である行番号１２６４までが読み捨てられる。１２Ｉ、１２Ｊの処理は１２Ｇの処理と同様である。
【０１０７】
その他の行はステップＳ１３０３からステップＳ１３０５のいずれの判断も偽なので、行番号１２０１から１２０９までと同様にＵＩデータ３１２に追加される。
【０１０８】
以上、説明したような処理により、図７、図８のデバイス情報および図１２のデバイステンプレートから図１０のＵＩデータが生成され、ブラウザ３１６によりそれを基に図１７で説明したように１７０１のようなＵＩが構築される。
【０１０９】
図１８は、図８同様にデバイスを操作するための操作サービスを示すデバイス情報の一例としてＸＭＬデータを示す図である。
図１８において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図８との差異は、１８Ａで表わされた部分に記載された状態変数MotionDetectの値が"0"ではなく"1"であることである。
【０１１０】
図１９は、図１８のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるＵＩデータの一例としてＸＭＬデータを示す図である。
図１９において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図８のデバイス情報用いた場合に生成される図１０のＵＩデータとの差異は、図１８の１８Ａにおいて状態変数MotionDetectの値が"1"であることである。これにより、図１２に示すデバイステンプレートの１２Ｈを処理する際に、行番号１２５５の処理において、ステップＳ１４０５の判断が真となるために、行番号１２５６から１２６０までが必要な置換を行った上で追加された１９Ａの部分が存在することである。また、１２Ｏの変数の式が１２Ｍと同様に処理されることにより、１９Ｂで示したＸ座標の値が図１０とは異なる。
【０１１１】
図２０は、図１９のＵＩデータにより構築されたＵＩ画面１７０１の一例を示す図である。
図２０において、ＵＩ部品１７０２および１７０３は図１７と同様であるが、図１９の１９Ａの部分により、行番号１９４１に記載の動体検知を表わすイメージデータ２００１がＵＩ画面１７０１上に表示される。また、１９ＢのＸ座標の値が異なることによりＵＩ部品１７０３の位置が移動している。
【０１１２】
図２１は、図８同様にデバイスを操作するための操作サービスを示すデバイス情報の一例としてＸＭＬデータを示す図である。
図２１において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図８との差異は、データ中に８Ｃ、８Ｄと同様の２１Ａ、２２Ｂは含むが、８Ａ、８Ｂにあたる部分が存在しないことである。
【０１１３】
図２２は、図２１のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるＵＩデータの一例としてＸＭＬデータを示す図である。
図２２において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図８のデバイス情報を用いた場合に生成される図１０のＵＩデータとの差異は、図２１において、図８の８Ａ、８Ｂにあたる部分が存在しないことである。これにより、図１２に示すデバイステンプレートの１２Ｇおよび１２Ｉを処理する際に、行番号１２４６および１２６６の処理において、ステップＳ１４０５の判断が偽となる。このため、１２Ｇおよび１２Ｉの部分が読み捨てられ、図１０の行番号１０３３から１０３７および行番号１０３９から１０４３の部分が存在しないことである。また、１２Ｍの変数の式が処理されないことにより、２２ＡのＹ座標の値が図１０とは異なる。
【０１１４】
図２３は、図２２のＵＩデータにより構築されたＵＩ画面の一例を示す図である。
図２３において、図２２には図１０の行番号１０３３から１０３７および行番号１０３９から１０４３の部分が存在しないことにより、図１７とは異なりＵＩ部品１７０２および１７０３が存在しない。また、ＵＩ部品１７０３は２２ＡのＹ座標の値が異なることにより位置が移動している。
【０１１５】
以上のように、本実施形態のリモート操作端末においては、同一のデバイステンプレートにより、デバイスの機能あるいは状態に応じて、ＵＩ部品の有無およびのレイアウトを変更することが可能になる。
【０１１６】
（第３の実施形態）
本実施形態においては、デバイステンプレートを変更した場合について、図面を参照しながら説明する。なお、ブロック図は第１の実施形態と同様である。
【０１１７】
図２４は、本実施形態におけるデバイステンプレートの一例としてＸＭＬデータを示す図である。
図２４において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。該デバイステンプレートは図６に示したデバイステンプレートとほぼ同様であるが、２４Ａに示したスライダの向きを指定する部分が変更されている。また、２４Ｂに示した部分において各座標値が変更されている。
【０１１８】
この様に特定のデバイスに対するデバイステンプレートは、記憶装置２０５あるいは外部のサーバに保持されているものをユーザが選択することにより、種別・テンプレート対応テーブル３０４中のデバイステンプレートファイル名を変更することで可能である。
【０１１９】
図２５は、図２４のデバイステンプレートを用いた場合に生成されるＵＩデータの一例としてＸＭＬデータを示す図である。
図２５において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図６のデバイステンプレート用いた場合に生成される図１０のＵＩデータとの差異は、２５Ａ、２５Ｂの部分が、図２４の２４Ａ、２４Ｂ部分がそのまま反映されているために異なる。
【０１２０】
図２６は、図２５のＵＩデータにより構築されたＵＩ画面の一例を示す図である。
図２６において、図１７とは異なり、カメラのズームを表わすＵＩ部品１７０３がＵＩ部品２６０１のように変更されている。これは、図２５の２５Ａの部分によりスライダの向きが、２５Ｂの部分によりスライダの位置が変更されたものである。
【０１２１】
（第４の実施形態）
本実施形態においては、１つのデバイスに対応するデバイステンプレートが複数のデバイステンプレートから構成される場合について、図面を参照しながら説明する。なお、ブロック図は第１の実施形態と同様である。
【０１２２】
図２７は、本実施形態におけるデバイステンプレートの一例としてＸＭＬデータを示す図である。
図２７において、２７００はデバイスであり、本実施形態においてはネットワークカメラに対応するデバイステンプレート全体を表わす。２７１０、２７２０、２７３０はそれぞれ１画面を構成するデバイステンプレートを表わしており、デバイステンプレート２７００は複数画面のデバイステンプレートから構成されることを表わしている。本実施形態においてはこれらデバイステンプレートはすべて独立したファイルとして実現されており、記憶装置２０５に保持されているものとする。
【０１２３】
２７１０はネットワークカメラのデフォルトのデバイステンプレートであり、ネットワークカメラに接続した際に、図４のＵＩ生成処理によって初期画面のＵＩを構築する際に使用される。２７１０がデフォルトのデバイステンプレートであることは、図１１の対応テンプレート検索処理によってデバイスに対応するデバイステンプレートを検索する際に、図９の９１２に２７１０のファイル名が記述されていることにより実現されている。
【０１２４】
デフォルトデバイステンプレート２７１０は、その中に設定画面テンプレート２７２０へ遷移するためのＵＩ部品の記述２７１１、および情報画面テンプレート２７３０へ遷移するためのＵＩ部品の記述２７１２を含む。
【０１２５】
２７２０はネットワークカメラの設定画面用のデバイステンプレートを表わしており、デフォルトデバイステンプレート２７１０へ遷移するためのＵＩ部品の記述２７２１を含む。２７３０はネットワークカメラの情報画面用のデバイステンプレートを表わしており、デフォルトデバイステンプレート２７１０へ遷移するためのＵＩ部品の記述２７３１を含む。ネットワークカメラにおいて、前述の他の画面に遷移するためのＵＩ部品の記述２７１１、２７１２、２７２１、２７３１により、各画面間の遷移が可能となっている。
【０１２６】
図２８は、本実施形態におけるデバイスのデバイス情報の一例としてＸＭＬデータを示す図である。
図２８において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。２８Ａおよび２８Ｂはそれぞれデバイスの機能単位を表わしている。
【０１２７】
２８Ａは図７の行番号０７１９から０７２５と同様であり、ネットワークカメラを操作するための操作サービスである。２８Ｂはネットワークカメラの設定を行うための設定サービスである。行番号２８３１にある２８Ｃはネットワークカメラの設定を示すＸＭＬデータへのリンクを示している。
【０１２８】
図２９は、本実施形態におけるデバイスを設定するための設定サービスを示すデバイス情報の一例としてＸＭＬデータを示す図である。
図２９において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図２９は、図２８において２８Ｃで表わされた設定サービスを示すデバイス情報３０３である。
【０１２９】
図２９において、２９Ａ、２９Ｂ、２９Ｃ、２９Ｄはそれぞれ別の項目を設定するための操作コマンドを表わしている。また、それぞれの操作コマンド名がSetSize、SetFrameRate、SetVideoPort、SetSoundPortであること、およびそれぞれの操作コマンドの引数などを示している。
【０１３０】
図３０は、本実施形態におけるデフォルトデバイステンプレートの一例としてＸＭＬデータを示す図である。
図３０において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図は図２７における２７１０の内容を具体的に表わしたものである。特に本実施例に固有な部分についてのみ以下で詳細に説明する。
【０１３１】
３０Ａ、３０Ｂは他のデバイステンプレートファイルの指定を表わしたものである。３０Ａは設定画面用のデバイステンプレートファイルのファイル名が"設定画面テンプレート"であることを、３０Ｂは情報画面用のデバイステンプレートファイルのファイル名が"情報画面テンプレート"であることを表わしている。
【０１３２】
３０Ｅ、３０Ｆは、それぞれ図２７における２７１１、２７１２の内容を具体的に示したものである。３０Ｅ、３０Ｆはそれぞれ画面上のボタンに相当するＵＩ部品とその位置と大きさおよびボタン上に表示される文字列について表わしたものである。３０Ｅはボタン上に"Configure"、３０Ｆはボタン上に"Info."という文字列が表示されることを表わしている。また、それぞれに含まれる行番号３０６１、３０６６はボタンが押された場合に、それぞれ３０O、３０Pに記載されている本デバイステンプレート中の"config"、"info"という識別子の命令の発行を指示するものである。
【０１３３】
３０Ｃ、３０Ｄはそれぞれ他のデバイステンプレートへの遷移を実行するための記述である。３０Ｃにおいて、３０Ｊは他のデバイステンプレートへの遷移を行う命令を指定したものであり、３０Ｉは命令を指示する対象が操作端末自身であることを示している。
【０１３４】
また、３０Ｈは命令に引数として渡す、遷移先となるデバイステンプレートファイルが３０Ａで示した"設定画面テンプレート"であることを対応付けるものである。３０Ｇは本命令の識別子が"config"であることを表わしている。これにより、３０ＥのＵＩ部品を画面上で押下すると、"設定画面テンプレート"への遷移が実行されることを表わしている。
【０１３５】
同様に、３０Ｄにおいて、３０Ｎは他のデバイステンプレートへの遷移を行う命令を指定したものであり、３０Ｍは命令を指示する対象が操作端末自身であることを示している。また、３０Ｌは命令に引数として渡す、遷移先となるデバイステンプレートファイルが３０Ｂで示した"情報画面テンプレート"であることを対応付けるものである。
【０１３６】
３０Ｋは本命令の識別子が"info"であることを表わしている。これにより、３０ＦのＵＩ部品を画面上で押下すると、"情報画面テンプレート"への遷移が実行されることを表わしている。
【０１３７】
図３１は、本実施形態におけるデフォルトＵＩ画面の一例を示す図である。
図３１のＵＩ３１００はネットワークカメラの操作を行うためのデフォルトＵＩ画面であり、図２８および図８のデバイス情報と図３０のデフォルトデバイステンプレートを基に図４に示したＵＩ生成処理により生成される。１７０２から１７０４は図１７と同様のＵＩ部品である。設定ＵＩ画面への遷移を指示するＵＩ部品３１０１は図３０の３０Ｅの記述により生成されたものであり、情報ＵＩ画面への遷移を指示するＵＩ部品３１０２は図３０の３０Ｆの記述により生成されたものである。
【０１３８】
図３２は、本実施形態における画面遷移処理の流れを示すフローチャートである。図３２において、ステップＳ３２０１からステップＳ３２０４は各ステップを表わす。
まず、引数として渡されたデバイステンプレートを入力として設定し（ステップＳ３２０１）、出力をＵＩデータに設定した（ステップＳ３２０２）後、前述のＵＩデータ生成処理を行う（ステップＳ３２０３）。それから、該ＵＩデータによりＵＩを構築・表示し（ステップＳ３２０４）、処理を終了する。
【０１３９】
図３３は、本実施形態における設定画面デバイステンプレートの一例としてＸＭＬデータを示す図である。
図３３において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図３３は図２７における２７２０の内容を具体的に表わしたものである。
【０１４０】
３３Ａはデフォルトデバイステンプレートファイルの指定を表わしたものである。３３Ａはデフォルトデバイステンプレートファイルのファイル名が"ネットワークカメラテンプレート"であることを表わしている。
【０１４１】
３３Ｃは、図２７における２７２１の内容を具体的に示したものである。３３Ｃはそれぞれボタンに相当するＵＩ部品とその位置と大きさおよびボタン上に表示される文字列について表わしたものであり、ボタン上に"OK"という文字列が表示されることを表わしている。また、行番号３３６５はボタンが押された場合に、３３Ｈに記載されている本デバイステンプレート中の"default"という識別子の命令の発行を指示するものである。
【０１４２】
３３Ｂは、他のデバイステンプレートへの遷移を実行するための記述である。３３Ｇは他のデバイステンプレートへの遷移を行う命令を指定したものであり、３３Ｆは命令を指示する対象が操作端末自身であることを示している。また、３３Ｅは命令に引数として渡す、遷移先となるデバイステンプレートファイルが３３Ａで示した"ネットワークカメラテンプレート"であることを対応付けるものである。
【０１４３】
３３Ｄは本命令の識別子が"default"であることを表わしている。これにより、３３ＣのＵＩ部品を画面上で押下すると、"ネットワークカメラテンプレート"への遷移が実行されることを表わしている。
【０１４４】
図３４は、本実施形態における設定ＵＩ画面の一例を示す図である。
図３４のＵＩ３４００はネットワークカメラの設定を行うための設定ＵＩ画面であり、図２８および図２９のデバイス情報と図３３の設定画面デバイステンプレートを基に図３２に示した画面遷移処理により生成される。デフォルトＵＩ画面への遷移を指示するＵＩ部品３４０１は図３３の３３Ｃの記述により生成されたものである。
【０１４５】
以上のように、本実施形態のリモート操作端末においては、機能毎のデバイス情報に応じたデバイステンプレートにより、１つのデバイスに対して複数のＵＩ画面を構成すること、および該ＵＩ画面間を遷移することが可能になる。
【０１４６】
（本発明に係る他の実施形態）
前述した本発明の実施形態におけるリモート操作端末装置を構成する各手段、並びにリモート操作端末装置の制御方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【０１４７】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１４８】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムまたは装置に直接、または遠隔から供給する。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１４９】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１５０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１５１】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【０１５２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１５３】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１５４】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１５５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１５６】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１５７】
【図１】本発明の第１の実施形態における全体構成の一例を示す図である。
【図２】本発明の第１の実施形態における操作端末のハードウェア構成の一例を示すブロック図である。
【図３】本発明の第１の実施形態における全体の構成の一例を示す図である。
【図４】本発明の第１の実施形態におけるＵＩ生成処理の流れの一例を示すフローチャートである。
【図５】本発明の第１の実施形態におけるＵＩ生成処理の流れを示すフローチャートである。
【図６】本発明の第１の実施形態におけるデバイステンプレートの一例としてＸＭＬデータを示す図である。
【図７】本発明の第１の実施形態におけるデバイスのデバイス情報の一例としてＸＭＬデータを示す図である。
【図８】本発明の第１の実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてＸＭＬデータを示す図である。
【図９】本発明の第１の実施形態における種別・テンプレート対応テーブルの一例を示す図である。
【図１０】本発明の第１の実施形態におけるＵＩデータ生成処理によって生成されたＵＩデータの一例としてＸＭＬデータを示す図である。
【図１１】本発明の第１の実施形態における対応テンプレート検索処理の流れの一例を示すフローチャートである。
【図１２】本発明の第２の実施形態におけるデバイステンプレートの一例としてＸＭＬデータを示す図である。
【図１３】本発明の第２の実施形態におけるＵＩ生成処理の流れを示すフローチャートである。
【図１４】本発明の第２の実施形態における条件文とその子要素の処理の流れを示すフローチャートである。
【図１５】本発明の第２の実施形態における条件の範囲保存処理の流れを示すフローチャートである。
【図１６】本発明の第２の実施形態における変数に現在の値を格納する処理の流れを示すフローチャートである。
【図１７】本発明の第１の実施形態におけるデバイスと表示されるＵＩとの関係を示す図である。
【図１８】本発明の第２の実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてＸＭＬデータを示す図である。
【図１９】図１８のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるＵＩデータの一例としてＸＭＬデータを示す図である。
【図２０】図１９のＵＩデータにより構築されたＵＩ画面の一例を示す図である。
【図２１】本発明の第２の実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてＸＭＬデータを示す図である。
【図２２】図２１のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるＵＩデータの一例としてＸＭＬデータを示す図である。
【図２３】図２２のＵＩデータにより構築されたＵＩ画面の一例を示す図である。
【図２４】本発明の第３の実施形態におけるデバイステンプレートの一例としてＸＭＬデータを示す図である。
【図２５】図２４のデバイステンプレートを用いた場合に生成されるＵＩデータの一例としてＸＭＬデータを示す図である。
【図２６】図２５のＵＩデータにより構築されたＵＩ画面の一例を示す図である。
【図２７】本発明の第４の実施形態におけるデバイステンプレートの一例としてＸＭＬデータを示す図である。
【図２８】本発明の第４の実施形態におけるデバイスのデバイス情報の一例としてＸＭＬデータを示す図である。
【図２９】本発明の第４の実施形態におけるデバイスを設定するための設定サービスを示すデバイス情報の一例としてＸＭＬデータを示す図である。
【図３０】本発明の第４の実施形態におけるデフォルトデバイステンプレートの一例としてＸＭＬデータを示す図である。
【図３１】本発明の第４の実施形態におけるデフォルトＵＩ画面の一例を示す図である。
【図３２】本発明の第４の実施形態における画面遷移処理の流れを示すフローチャートである。
【図３３】本発明の第４の実施形態における設定画面デバイステンプレートの一例としてＸＭＬデータを示す図である。
【図３４】本発明の第４の実施形態における設定ＵＩ画面の一例を示す図である。
【符号の説明】
【０１５８】
１０１、１０２、１０６、１０７、３０２  機器
１０３、１０５、３０１、１７０５、１７１２  操作端末
１０４  ネットワークあるいはバス
２０１  バス
２０２  ＣＰＵ
２０３  ＲＯＭ
２０４  ＲＡＭ
２０５  記憶装置
２０６  入力装置
２０７  ネットワークＩ／Ｆ
２０８  出力装置
３０３  デバイス情報
３０４、９００  種別・テンプレート対応テーブル
３０５  テンプレート
３０６、９１２、９２２  デバイステンプレート
３０７、９１１、９２１  デバイス種別
３０８  操作コマンド
３０９  ＵＩ部品と操作コマンドの対応情報
３１０  ＵＩ部品
３１１  デバイスＩＤの格納場所
３１２  ＵＩデータ
３１３  出力
３１４、９１０、９２０  種別・テンプレートの組
３１５  デバイスＩＤ
３１６  ブラウザ
１７０１、１７１１  ＵＩ画面
１７０２  カメラの横方向の回転を表わすＵＩ部品
１７０１、２６０１  カメラのズームを表わすＵＩ部品
１７０１  カメラの縦方向の回転を表わすＵＩ部品
１７０６  ネットワークカメラ
１７１３  ビデオ
３１００  ネットワークカメラの操作を行うためのデフォルトＵＩ画面
３１０１  設定ＵＩ画面への遷移を指示するＵＩ部品
３１０２  情報ＵＩ画面への遷移を指示するＵＩ部品
３４００  ネットワークカメラの設定を行うための設定ＵＩ画面
３４０１  デフォルトＵＩ画面への遷移を指示するＵＩ部品
【図１】
2007140983.tif 000003
【図２】
2007140983.tif 000004
【図３】
2007140983.tif 000005
【図４】
2007140983.tif 000006
【図５】
2007140983.tif 000007
【図６】
2007140983.tif 000008
【図７】
2007140983.tif 000009
【図８】
2007140983.tif 000010
【図９】
2007140983.tif 000011
【図１０】
2007140983.tif 000012
【図１１】
2007140983.tif 000013
【図１２】
2007140983.tif 000014
【図１３】
2007140983.tif 000015
【図１４】
2007140983.tif 000016
【図１５】
2007140983.tif 000017
【図１６】
2007140983.tif 000018
【図１７】
2007140983.tif 000019
【図１８】
2007140983.tif 000020
【図１９】
2007140983.tif 000021
【図２０】
2007140983.tif 000022
【図２１】
2007140983.tif 000023
【図２２】
2007140983.tif 000024
【図２３】
2007140983.tif 000025
【図２４】
2007140983.tif 000026
【図２５】
2007140983.tif 000027
【図２６】
2007140983.tif 000028
【図２７】
2007140983.tif 000029
【図２８】
2007140983.tif 000030
【図２９】
2007140983.tif 000031
【図３０】
2007140983.tif 000032
【図３１】
2007140983.tif 000033
【図３２】
2007140983.tif 000034
【図３３】
2007140983.tif 000035
【図３４】
2007140983.tif 000036