(57)【要約】【課題】一つのUI画面内に複数のデバイスの機能に対応するUI部品を効果的に配置する場合、UIで操作するデバイスを特定の個体に限定せず、同じ機能を持つデバイスに対しては同じUI記述で対応させることを目的とする。【解決手段】デバイステンプレート３０６は、デバイス３０２を特定するためのデバイスID３１５を格納するための格納場所３１１を有し、このデバイスID格納場所３１１は操作対象デバイスの種別を特定するデバイス種別ID３０７と関連付けられ、デバイス３０２よりデバイス種別ID３０７とデバイスID３１５を含むデバイス情報３０２を取得する手段と、取得したデバイス種別ID３０７に関連付けられたデバイスID格納場所３１１に同じく取得したデバイスID３１５を格納する手段を有する。【選択図】図２８
2007336369.tif 000002
【特許請求の範囲】
【請求項１】
デバイスとネットワークにより接続され、前記デバイスを操作するリモート操作端末装置であって、
前記デバイスからデバイス情報を取得するデバイス情報取得手段と、
前記デバイスに対応したデバイステンプレートと、
前記取得したデバイス情報及び前記デバイステンプレートから、前記デバイスを操作するためのユーザインタフェースを構築するユーザインタフェース構築手段とを有することを特徴とするリモート操作端末装置。
【請求項２】
前記デバイステンプレートを複数保持するデバイステンプレート保持手段と、
前記デバイステンプレートから前記デバイスに対応したものを選択するデバイステンプレート選択手段とを有することを特徴とする請求項１に記載のリモート操作端末装置。
【請求項３】
前記デバイステンプレートは、前記デバイス情報に記載された操作コマンドと前記デバイステンプレートに記載されたユーザインタフェースを構成するユーザインタフェース部品との対応情報及び、前記デバイスを特定するためのデバイス識別子を格納するための格納場所とを有し、
前記リモート操作端末装置は、前記格納場所に操作対象のデバイスの前記デバイス識別子を格納する格納手段を有することを特徴とする請求項１又は２に記載のリモート操作端末装置。
【請求項４】
前記デバイステンプレートは、構築されるユーザインタフェースにおけるユーザインタフェース部品の有無及びレイアウトを変更するための条件記述を有することを特徴とする請求項１〜３のいずれか１項に記載のリモート操作端末装置。
【請求項５】
前記構築されるユーザインタフェースにおけるユーザインタフェース部品の有無及びレイアウトを変更するための条件記述は、
前記取得したデバイス情報に記載された操作コマンドの有無を基に条件判定することを特徴とする請求項４に記載のリモート操作端末装置。
【請求項６】
前記構築されるユーザインタフェースにおけるユーザインタフェース部品の有無及びレイアウトを変更するための条件記述は、
前記取得したデバイス情報に記載された状態変数の値を基に条件判定することを特徴とする請求項４に記載のリモート操作端末装置。
【請求項７】
前記デバイステンプレートを入れ換える手段を有することを特徴とする請求項１〜６のいずれか１項に記載のリモート操作端末装置。
【請求項８】
前記デバイス情報取得手段は、前記デバイス識別子と操作対象のデバイス種別を特定するデバイス種別識別子を取得し、
前記デバイス識別子の格納手段は、前記取得したデバイス種別識別子に関連付けられたデバイス識別子の前記格納場所に前記デバイス識別子を格納することを特徴とする請求項３に記載のリモート操作端末装置。
【請求項９】
操作対象となる前記デバイスを検出する検出手段を有し、
前記デバイステンプレート選択手段は、前記デバイステンプレート保持手段が保持する前記デバイステンプレートの中から、前記格納場所に関連付けられた全てのデバイス種別識別子と前記検出手段により検出されたデバイスに一致するデバイスのデバイステンプレートを抽出する手段と、
前記抽出手段により抽出されたデバイステンプレートから一つをユーザに選択させる手段と
を有することを特徴とする請求項８に記載のリモート操作端末装置。
【請求項１０】
操作対象となる前記デバイスを検出する検出手段を有し、
前記デバイス情報取得手段は、前記デバイス識別子と操作対象のデバイス種別を特定するデバイス種別識別子を取得し、
前記対応情報は、前記デバイス種別識別子に関連付けられ、
前記ユーザインタフェース構築手段は、前記デバイステンプレートの中から前記デバイス検出手段により検出されたデバイスの前記デバイス種別識別子に関連付けられた操作コマンドとユーザインタフェース部品のみを用いてユーザインタフェースを構築することを特徴とする請求項３に記載のリモート操作端末装置。
【請求項１１】
デバイスとネットワークにより接続され、前記デバイスを操作するリモート操作端末装置の制御方法であって、
前記デバイスからデバイス情報を取得するステップと、
前記取得したデバイス情報及び前記デバイスに対応したデバイステンプレートとから前記デバイスを操作するためのユーザインタフェースを構築するステップとを有することを特徴とするリモート操作端末装置の制御方法。
【請求項１２】
デバイスとネットワークにより接続され、前記デバイスを操作するリモート操作端末装置の制御プログラムであって、
前記デバイスからデバイス情報を取得するステップと、
前記取得したデバイス情報及び前記デバイスに対応したデバイステンプレートとから前記デバイスを操作するためのユーザインタフェースを構築するステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してデバイスの各種操作を行うリモート操作端末装置であって、特にデバイスから取得したデバイス情報を利用して、ユーザインタフェースを構築するリモート操作端末装置等に関するものである。
【背景技術】
【０００２】
従来、ネットワークを介してデバイスの操作を行おうとする際、操作端末は予め、操作対象であるデバイスについて、以下の情報を知っている必要があった。そして、その情報とは、操作信号を送るための通信プロトコル、操作信号の意味、操作信号自体の送信手続き、操作範囲情報、及び、デバイスからのフィードバック信号を処理する手続きなどである。
【０００３】
すなわち、操作端末においては、操作対象のデバイス個別に対応したレイアウト情報を含むユーザインタフェース（以下UIと略す）を構成するための、専用の操作用アプリケーションが必要であった。このため、操作用アプリケーションの追加や変更ができない操作端末の場合は、新たな種類のデバイスに応じて新たな操作端末が必要であった。この様な不便を解決するために、ネットワーク及びプロトコルとして広く標準として使用されている物を利用し、デバイスを種別に応じて分類分けし、同じデバイス種別のものについては、共通の操作を共通のUIで操作するリモート操作の仕組みが存在している。
【０００４】
例えば、UPnP（詳細についてはhttp://www.upnp.org/ を参照）の仕組みを使用することで、デバイス及び操作端末のネットワークにおける発見、探索、能力交換、制御、応答、及び表示機能などの手続きを共通化することが可能となる。これにより、デバイス及び操作端末がUPnPに対応しており、且つ操作端末が操作可能なデバイス種別のものであれば、デバイスのメーカーや機種形式に関わらず、リモート操作を行うことが可能となっている。
【０００５】
この時、操作端末は、同一のデバイス種別のデバイスであっても、例えば機能の有無や操作のパラメータ範囲など、各デバイス固有の機能差異を吸収するために、UIを構成して操作を行う前に、操作をしようとするデバイスのデバイス情報を取得していた。そして、デバイス情報の内容に基づき操作アプリケーション内の条件判定により、最終的なUIの構成を行っていた。あるいは、デバイスからこのデバイスに適した標準的な文書形式のUIデータを得ることにより、UIを構成していた。
【０００６】
また、上記の様な標準に依らず、操作端末において、UIを構成するための多種多様のデバイス情報を取得することで、デバイスの状態変化や、複数のデバイスによる協調動作に対応するために動的にUIを構成するための以下のような数々の技術が開示されている。
【０００７】
まず、操作されるデバイス自身が操作画面を構成するためのGUI部品を保持し、このGUI部品が自身の機能を示すアプリケーション情報を保持している。そして、操作端末は、デバイスよりGUI部品を読み込み、前記アプリケーション情報を用いてUIを構成する。これにより、各デバイスの各機能に適したUIを操作端末において動的に構成され、各デバイスを統合的に動作させる技術が開示されている（例えば、特許文献１参照）。
【０００８】
また、複数のデバイスを操作端末において制御する際に、当該制御を仲介するサーバが設けられている。そして、複数のデバイスの状態関連情報を含むデバイス情報を当該仲介サーバで取得する。次に仲介サーバにおいて、前述の状態関連情報に基づき、UIを構成するための定義データを端末装置に送信することで、複数のデバイスを統合して制御するためのUIを構成する技術が開示されている（例えば、特許文献２参照）。
【０００９】
また、操作端末とは別のデバイス管理装置において、デバイスより取得したデバイス情報をXML(eXtensible Markup Language)データとして保持する。そして、UIを表示する様に操作端末から要求された際には、デバイスに関連する情報及び制御端末に関連する情報に基づいて選択された、XMLデータ変換のための情報を含むスタイルシートをテンプレートの如く利用して前述のXMLデータを変換する。これを操作端末において表示する技術が開示されている（例えば、特許文献３参照）。
【００１０】
また、複数のデバイスに対するUIを一つの画面で構成するものとして、メインデータファイル、マップデータファイル、カメラリストデータファイル、と各々のスタイルシートファイルを用いて、複数が接続されているモニタリングカメラの画面を構成する。そして、スタイルシートを交換するだけでモニタリング画面の表示スタイルを変更することができる技術が開示されている（例えば、特許文献４参照）。
【００１１】
【特許文献１】特開２０００−３３３２６９号公報
【特許文献２】特開２００３−２８０７３１号公報
【特許文献３】特開２００４−１８５５４１号公報
【特許文献４】特開２００１−３３３４２１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、上記のUPnPの仕組みを利用することで、操作端末で構成されるUIは、同一の操作端末上においては、UI部品やレイアウト等のUIの見た目や操作感がメーカーや機種形式に関わらず同一のものとなってしまう。したがって、UIによる差別化が図り難いものであった。さらに、操作が可能なはずのデバイス種別のデバイスであっても、操作端末が知らない機能や、新たなデバイス種別のデバイスについては、操作アプリケーションにおける条件判定が行えない。その結果、操作端末内のアプリケーションを変更しない限り、当該デバイスの新機能や新デバイスの操作自体行うことは出来なかった。さらに、デバイスからそのデバイスに適した標準的な文書形式のUIデータを得ることによりUIを構成する場合には、デバイスが保持している操作端末によらないUIデータを利用する。したがって、操作端末の画面サイズなどによっては操作性の悪いものになる場合があった。
【００１３】
さらに、特許文献１においては、操作されるデバイス自身がGUI部品及び当該GUI部品の機能情報を保持し、操作端末がこれらのオブジェクトを読み込むことでUIを構成させている。したがって、多くのUIのための画面を持つデバイスの場合は、デバイスの持つデータ量及び操作端末に送るデータ量が莫大な物となってしまうという問題点があった。また、操作端末においても、GUI部品の機能情報を理解し、これに基づいて実行する仕組みが必要となる。さらに、操作端末上で、簡単にUIのGUI部品等のデザインを変更することは不可能であるという問題点もあった。
【００１４】
さらに、特許文献２においては、デバイスと操作端末の他に、統合されたUIを構成するための仲介サーバが必要である。また、仲介サーバは予め決められたデバイス同士の組み合わせにしか対応しておらず、それ以外のデバイスではUIが構成されないという問題点があった。また、デバイスの状態関連情報は仲介サーバで使用されるために、操作端末において状態関連情報を基にUIの変更が行えないという問題点もあった。
【００１５】
さらに、特許文献３においては、操作端末とは別のデバイス管理装置が必要であり、また、当該デバイス管理装置において、デバイスの状態によりテンプレートを選択変更する構成である。したがって、デバイス管理装置においてテンプレートが選択された後は、操作端末においては、デバイスの状態やユーザ操作に基づき、テンプレートを選択変更し、UIを変更することが出来ないという問題点があった。また、デバイス情報によりテンプレートを選択するのみであるため、情報の表示は可能であるが、デバイスの操作を行うことが困難であった。
【００１６】
さらに、特許文献４においては、メインデータファイル、マップデータファイル、カメラリストデータファイルには、対応するスタイルシートのリンクが直接含まれている。したがって、スタイルシートにリンクを埋め込む際（すなわち、モニタリング画面をユーザが編集する際）のカメラの接続状況と実際にモニタリング画面を表示する場合のカメラの接続状況が一致しない場合があるという問題点があった。
【００１７】
さらに、デバイス情報を基にUIを構築する操作端末で、同一のデバイス情報から、状況に応じて複数種類のUIを構築することが要求される場合は、操作端末に予め、デバイス毎に複数のUIを実行可能なUIアプリケーションを用意しておく必要がある。したがって、アプリケーションの容量を肥大化させてしまうという問題点があると同時に、数多くの種類のUIを保持することは操作端末のリソースを浪費するものである。また、後から新規のUIを追加することは、当該容量の大きくなったUIアプリケーション自体を入れ換える必要があり、事実上不可能であるという問題点があった。
【００１８】
本発明は、このような問題点を解決しようとするものであり、操作端末のアプリケーションを変更することなしに多種のデバイスと操作端末自体に適したUI を生成すること、さらにデバイスの機種や個体に応じてUIを生成することを目的とする。
【課題を解決するための手段】
【００１９】
本発明は上記目的を達成するために、デバイスとネットワークにより接続され、前記デバイスを操作するリモート操作端末装置などであって、前記デバイスからデバイス情報を取得するデバイス情報取得手段と、前記デバイスに対応したデバイステンプレートと、前記取得したデバイス情報及び前記デバイステンプレートから、前記デバイスを操作するためのユーザインタフェースを構築するユーザインタフェース構築手段と、を有することを特徴とするものである。
【発明の効果】
【００２０】
本発明のリモート操作端末装置によれば、デバイスを操作するためのUIがデバイス情報及びデバイステンプレートから構築されるために、操作端末のプログラムを変更することがなく、デバイステンプレートを入れ換えることで、UIの変更が可能となる。
【００２１】
また、デバイステンプレート中に、デバイス情報に記載の操作コマンドと、デバイステンプレートに記載のUI部品との対応情報、及び、デバイスIDを格納するための格納場所を有する。さらに、この格納場所にデバイスIDを格納する手段を持つことで、デバイスの種別に応じたレイアウトやUI部品を使用したUIを構築出来ると共に、複数ある同種のデバイスの内、特定のデバイスを特定することでインタラクティブなUIが実現できる。
【００２２】
また、デバイステンプレートに、構築されるUIにおけるUI部品の有無及びUIのレイアウトを変更するための条件記述を有する。したがって、同一のデバイステンプレートを用いた場合でも、デバイス情報中の機能や状態の記述に基づき、個々のデバイスに適した、異なるUI部品やレイアウトからなるUIを構築することが可能となる。
【００２３】
また、デバイステンプレートに、複数のデバイスのコマンドに対するUI部品を含めることで、一つの画面に複数のデバイスを統合したUIを構築することが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。
（第１の実施形態）
図１は本発明の全体構成の一例を示す概念図である。図１において、101, 102, 106, 107はそれぞれ被操作対象のデバイス（機器）であり、103, 105はそれぞれ機器の操作を行うリモート操作端末装置（操作端末）である。104は機器および操作端末を接続し、それらの間でデータおよび命令のやり取りを行うためのネットワークである。操作端末103, 105はそれぞれ、ネットワーク104を通じて操作コマンドを送ることにより、機器101, 102, 106, 107を操作する。
【００２５】
図２は本発明における操作端末のハードウェア構成の一例を示すブロック図である。202はCPUであり、各種処理のための演算や論理判断等を行い、バス201に接続された各構成要素を制御する。本装置には、プログラムメモリとデータメモリを含むメモリが搭載されている。プログラムメモリには、フローチャートにつき後述する処理手順を含むCPU202による制御のためのプログラムを格納する。メモリはROM 203であっても良いし外部記憶装置などからプログラムがロードされるRAM 204であっても良い。205はデータやプログラムを記憶しておくための不揮発性メモリやハードディスクなどの記憶装置である。206はユーザからの情報を入力するための入力装置であり、この装置はマウス、タッチパネル、キーボードなどある。208は分析されたデータ出力情報を出力する出力装置であり、CRTや液晶表示器などの表示装置である。207はネットワークI/Fであり、ネットワークで接続された他のデバイスとのやり取りを行う。
【００２６】
図３は本発明における全体の構成の一例を表わすクラス図である。301は操作端末であり、302はデバイスである。デバイス302はデバイス情報303を有しており、操作端末301からの要求に応じてネットワークを経由してデバイス情報303を操作端末301に送信する。デバイス情報303は、ネットワークカメラ、ビデオ、プリンタなどといったデバイス種別307と、そのデバイスを操作するための操作コマンド308と、個々のデバイス固有のデバイス識別子（デバイスID）315を含む。操作端末301は、デバイス情報303を元にユーザインタフェース（UI）を構成するためのUIデータ312を動的に生成するためのテンプレート305を有する。
【００２７】
テンプレートには、その１種としてデバイステンプレート306があり、そのデバイステンプレート306は、デバイスIDの格納場所311と、UI部品310と、UI部品310と操作コマンド308の対応情報309を含む。デバイスIDの格納場所311は、デバイス情報303中のデバイスID315によって補完されるべきであることを示しており、生成されるUIがどのデバイスのUIであるのかを識別するために使用される。UI部品310は、実際に表示されるUI上のボタン、スライダ、リストボックスなどの部品である。UI部品と操作コマンドの対応情報309は、どのUI部品310を操作するとどの操作コマンド308がデバイス302に対して発行されるかという対応関係を表わす情報である。また、操作端末301は、デバイス種別307とデバイステンプレート306との対応関係を表わす種別・テンプレートの組314を複数含む種別・テンプレート対応テーブル304を有する。316は、操作端末が生成したUIデータ312からUIを構築するブラウザであり、出力313に対して表示を行う。
【００２８】
図４は本発明におけるUI生成処理の流れの一例を示すフローチャートである。図において、S401からS407は各ステップを表わす。まず、操作端末はデバイスにデバイス情報を要求し、デバイスからデバイス情報を取得する（S401）。次に、取得したデバイス情報からデバイス種別を取り出し（S402）、デバイス種別を用いて、デバイスに対応するデバイステンプレートを検索する（S403）。そして、検索の結果、デバイス種別に対応するデバイステンプレートが存在するか否かを判断する（S404）。そして、対応するデバイステンプレートが存在する場合には、デバイステンプレートを入力とし、UIデータ領域を新たに出力とする入出力の設定を行った（S405）後に、UIデータ生成処理を行う（S406）。それから、UIデータによりUIを構築・表示し（S407）、処理を終了する。S404の判断の結果、S402で得たデバイス種別に対応するデバイステンプレートが存在しない場合には、処理を終了する。
【００２９】
図７は本発明におけるデバイスのデバイス情報の一例を示すXMLデータである。図７において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。行番号0708にある７Ａはデバイス情報におけるデバイス種別を示す記述である。このうち“urn:schemas-canon-org:device:NetworkCamera:1”が実際のデバイス種別を示す文字列である。行番号0709にある７Ｂはデバイス名を示す記述である。このうち“Catharine”が実際のデバイス名を示す文字列である。行番号0717にある７ＣはデバイスIDを示す記述である。このうち“uuid:upnp-canon-nc1_1_0-00008522CD3A”が実際のデバイスIDを示す文字列である。行番号0724にある７Ｄはデバイスを操作するための操作サービスを示すXMLデータへのリンクを示している。
【００３０】
図９は本発明における種別・テンプレート対応テーブルの一例を示す概念図である。図において、900は種別・テンプレート対応テーブル全体であり、種別・テンプレート対応テーブル304を具体的に表わしたものである。このテーブルはファイルとして記憶装置205中に保持されており、更新することが可能である。910、920はそれぞれ１組のデバイス種別とデバイステンプレートファイルの対応関係を表わしており、種別・テンプレート組314を具体的に表わしたものである。911、921はそれぞれ、１つのデバイス種別を表わしており、共にデバイス種別307を具体的に表わしたものである。912、922はそれぞれ、１つのデバイステンプレートを表わしており、共にデバイステンプレート306に対応している。これらは、記憶装置205に保存されており、それぞれの文字列はファイル名を表わしている。すなわち、図はデバイス種別が911であれば、デバイステンプレート912が選択され、デバイス種別が921であれば、デバイステンプレート922が選択されることを表わしている。
【００３１】
図１１は本発明における対応テンプレート検索処理の流れの一例を示すフローチャートである。図において、S1101からS1105は各ステップを表わす。まず、種別・テンプレート対応テーブル900にまだデバイス種別とテンプレートの組が存在するか否かを判断し（S1101）、存在するならばこのデバイス種別とテンプレートの組を得て（S1102）、その中のデバイスの種別を得る（S1103）。次に、このデバイスの種別がS402で得たデバイスの種別に一致するか否かを判断する（S1104）。一致するならばS1102で得たデバイス種別とテンプレートの組からデバイステンプレートを得て、対応するデバイステンプレートとして（S1105）、処理を終了する。S1104の判断の結果、両デバイスの種別が一致しない場合には、S1101の判断に戻る。S1101の判断の結果、種別・テンプレート対応テーブル900にもうデバイス種別とテンプレートの組が存在しないならば、処理を終了する。すなわち本処理は、本実施形態においてはデバイス種別が“urn:schemas-canon-org:device:NetworkCamera:1”であるデバイス種別とテンプレートの組を種別・テンプレート対応テーブル900から検索する。そして、デバイス種別とテンプレートの組910を得て、対応するデバイステンプレートのファイル名として「ネットワークカメラテンプレート」を返す。
【００３２】
図６は本実施形態におけるデバイステンプレートの一例を示すXMLデータである。図６において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。行番号0608、0615、0617、0619の6A〜6Dは、それぞれデバイス情報中のデバイスIDの格納場所を意味する特別な変数（$uid）である。行番号0622の6Eは、デバイス情報中のデバイス名の格納場所を意味する特別な変数（$devName）である。また、行番号0614から0619は、デバイスに対して操作コマンドが発行されることを示している。例えば、行番号0615の6Gは”method=”CameraControlPan””となっており、この行が実行された時に発行される操作コマンドが”CameraControlPan”であることを示している。また、行番号0614には6Fに示すように本データ中で一意な識別子として”pan”が与えられている。また、6I、6J、6Kには、UIを構成するUI部品についての記述がある。6I〜6Kはそれぞれ特定の範囲からの選択を行うUI部品”xforms:range”を表わしている。そして、それぞれのレイアウト情報および現在の値を保持しているデータモデルへの参照と、値が変更された場合にどの操作コマンドが発行されるかの対応情報がふくまれている。例えば6I中の行番号0635中の6Hは”submission=”pan” ”となっており、UI部品”xforms:range”の値が変更された場合に識別子が”pan”である行を実行することが示されている。すなわち、0614行の6Fと0635行の6Hの記述により、6IのUI部品と6Gの操作コマンド”CameraControlPan”が対応付けられている。よって、このデバイステンプレート中には、デバイス情報に記載の操作コマンドとデバイステンプレートに記載のUIを構成するUI部品との対応情報が含まれている。
【００３３】
図８は本実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例を示すXMLデータである。図８において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図８は、図７において７Dで表わされた操作サービスを示すデバイス情報である。図８において、8A、8B、8Cはそれぞれ別の操作コマンドを表わしている。そして、それぞれの操作コマンド名はCameraControlPan、CameraControlTilt、CameraControlZoomであること、およびそれぞれの操作コマンドの引数などを示している。また、8Dは状態変数を示しており、その名称がMotionDetectがあることを示している。
【００３４】
図５は本実施形態におけるUI生成処理の流れを示すフローチャートである。図において、S501からS509は各ステップを表わす。まず、S405で設定された入力において現在の位置が入力の終端に達しているか否かを判断し（S501）、まだ終端に達していない場合には、構文上の１行を読み込む（S502）。次に、読み込んだ行中にデバイスIDの格納場所が含まれているか否かを判断し（S503）する。デバイスIDの格納場所が含まれている場合には、S401で得たデバイス情報中から得たデバイスIDを得て（S504）、バッファに読み込んだ行中のデバイスIDの格納場所に実際のデバイスIDを挿入する（S505）。
【００３５】
S503の判断の結果、デバイスIDの格納場所が含まれていない場合には、S506の判断に移る。次に、読み込んだ行中にデバイス名の格納場所が含まれているか否かを判断し（S506）する。デバイス名の格納場所が含まれている場合には、S401で得たデバイス情報中から得たデバイス名を得て（S507）、バッファに読み込んだ行中のデバイス名の格納場所に実際のデバイス名を挿入する（S508）。S506の判断の結果、デバイス名の格納場所が含まれていない場合には、S509の処理に移る。そして、バッファ中の読み込んだ行をUIデータに書き込んだ（S509）後S501の判断に戻り、一連の処理を繰り返す。S501の判断の結果、すべての行の処理を終えて、デバイステンプレートの終端に達した場合には、処理を終了する。すなわち本処理においては、S405で入力に設定された図６のようなデバイステンプレートを、S502において１行ずつ読み込む。
【００３６】
図６の行番号0608、0615、0617、0619においては、S503の判断において行中にデバイスIDの格納場所（$uid）が含まれている。したがって、S504において図７のデバイス情報に含まれるデバイスID（“uuid:upnp-canon-nc1_1_0-00008522CD3A”）を得て、S505でその格納場所にデバイスIDを格納する。すなわち、文字列“$uid”を“uuid:upnp-canon-nc1_1_0-00008522CD3A”に置換する。これらの行においては、デバイス名の格納場所は行中に含まれていないので、S506の判断において判定結果が否となり、S509の処理に移り、デバイスIDが補完されたデータがUIデータに追加され、S501の判断に戻る。
【００３７】
図６の行番号0622においては、S503の判断においてデバイスIDの格納場所が行中に含まれないため、判断結果が否となり、S506の判断に移る。S506の判断においては、行中にデバイス名の格納場所（$devName）が含まれているので、S507において図7のデバイス情報に含まれるデバイス名（“Catharine”）を得て、S508で前記格納場所に前記デバイス名を格納する。すなわち、文字列“$devName”を“Catharine”に置換する。そして、S509において、デバイス名が補完されたデータがUIデータに追加され、S501の判断に戻る。他の行はS503、S506の判断とも偽となるので、S509においてそのままUIデータに追加される。図６のテンプレートが行番号0650に達すると、S501の判断において、デバイステンプレートの現在の位置がテンプレートの終端に達しているので、処理を終了する。この結果、本処理によって図６のようなデバイステンプレートから図１０のようなUIデータを生成することができる。
【００３８】
図１０は本実施形態におけるUIデータ生成処理によって生成されたUIデータの一例を示すXMLデータである。図１０において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。このUIデータは図６のデバイステンプレートを基に、図７のデバイス情報を用いて図５のUIデータ生成処理によって生成されるものであり、UIデータ312に該当する。図において、10A、10B、10C、10Dはそれぞれデバイステンプレート中の6A、6B、6C、6Dがデバイス情報中のデバイスID 7Cにより補完されたものである。そして、10Eはデバイステンプレート中の6Eがデバイス情報中のデバイス名7Bにより補完されたものである。このUIデータをブラウザ216に渡すことによりUIが構築され、出力313によりUIが表示される。
【００３９】
図１７は本実施形態におけるデバイスと表示されるUIとの関係を示す概念図である。
図において、図１７（ａ）のように操作端末1705に対してデバイスとしてネットワークカメラ1706が接続されている場合には、デバイスの種別がネットワークカメラを表わすデバイス種別である。本実施形態においては“urn:schemas-canon-org:device:NetworkCamera:1”である。したがって、これまでに説明した流れで図１０のようなUIデータが生成され、それを基にブラウザ316により1701のようなUIが構築される。UI1701において、1702はカメラの横方向の回転を表わすUI部品であり、図１０の行番号1033から1035に記載の特定の範囲からの選択を行うUI部品を表わす要素”xforms:range”から生成されたものである。同様に1703、1704はそれぞれカメラのズーム、縦方向の回転を表わすUI部品である。これは、図１０の行番号1039から1041、1045から1047に記載の特定の範囲からの選択を行うUI部品を表わす要素”xforms:range”から生成されたものである。
【００４０】
一方、図１７（ｂ）のように操作端末1712に対してデバイスとしてビデオ1713が接続されている場合には、デバイスの種別がビデオを表わすデバイス種別である。本実施形態においては“urn:schemas-canon-org:device:Video:1”）である。したがって、図９の種別・テンプレート対応テーブル900中からデバイステンプレート922が選択され、同様の処理で対応するUIデータが生成され、それを基にブラウザ316により1711のようなUIが構築される。
【００４１】
以上のように、本実施形態のリモート操作端末においては、デバイスを操作するためのUIは、デバイス情報及びデバイステンプレートから構築される。したがって、操作端末のプログラムを変更すること無く、デバイステンプレートを入れ換えることで、UIの変更が可能になる。また、個々のデバイスの識別子をUIデータ中に埋め込むことにより、UIからの個々の機器の操作が可能となる。
【００４２】
（第２の実施形態）
本実施形態においては、構築されるUIにおけるUI部品の有無及びUIのレイアウトを変更するための条件記述をデバイステンプレートに含む場合について、図面を参照しながら説明する。図１２は本実施形態におけるデバイステンプレートの一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。12A〜12G、12I、12Jは、それぞれ図８に示したデバイスを操作するための操作サービスを示すデバイス情報中に、操作コマンドが存在するか否かによって生成するUIデータを変えるための条件の記述部分である。このうち、行番号1210、1220、1246はすべて同様の記述となっている。XMLの属性の記述”control=”CameraControlPan””のうち、属性名”control”は条件文がデバイス情報中の操作コマンドを対象とすることを表わしている。”CameraControlPan”は操作コマンド名が”CameraControlPan”であることを示している。そして、XMLの要素名”ui_template:ifexist”が属性で示したものがデバイス情報中に存在するならば、その要素の子要素を解釈し、必要に応じてUIデータに追加するという条件を表わしている。
【００４３】
すなわち、行番号1210、1220、1246はすべて、デバイス情報中に”CameraControlPan”という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてUIデータに追加するという条件文である。同様に、行番号1213、1224、1266はすべて、デバイス情報中に”CameraControlTilt”という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてUIデータに追加するという条件文である。また、行番号1216、1228、1273はすべて、デバイス情報中に”CameraControlZoom”という操作コマンドが存在するならば、それぞれの子要素を解釈し、必要に応じてUIデータに追加するという条件文である。これにより、12G、12I、12Jの条件文の子要素として記述されている特定の範囲からの選択を行うUI部品”xforms:range”はそれぞれの条件が満たされた場合にはUI上に存在するが、条件が満たされない場合には存在しないことになる。
【００４４】
また、12Hはデバイス情報中の状態変数の値によって生成するUIデータを変えるための条件の記述部分である。このうち、行番号1255のXMLの属性の記述”variable=”MotionDetect””は、条件文の対象となる状態変数名が” MotionDetect”であることを示している。また、”value=”1””は、条件文の指定する値が”1”であることを示している。そして、XMLの要素名”ui_template:ifcond”が属性で示した状態変数の値の条件が満たされているならば、その要素の子要素をUIデータに追加するという条件を表わしている。すなわち行番号1255は、図８に示したデバイスを操作するための操作サービスを示すデバイス情報中の状態変数”MotionDetect”の値が”1”であるならば、子要素をUIデータ解釈し、必要に応じてに追加するという条件文である。
【００４５】
また、12Kは変数の定義部である。行番号1243、1244共に、要素名”ui_template:variable”は変数の定義であることを示しており、属性名”name”は変数名を、”value”は変数の初期値を表わしている。すなわち、行番号1243は”$x”という名前で初期値は97である変数の定義を、行番号1244は”$y”という名前で初期値は381である変数の定義を表わしている。12M、12Oはそれぞれ式を表わしており、12Mは12Kで定義した変数$xに50を加算する式を、12Oは12Kで定義した変数$yに50を加算する式を表わしている。12L、12N、12Pはすべて同様の記述となっており、”x=”$x””と”y=”$y””の２つのXMLの属性の記述をあわせたものである。このうち、”x=”$x””はＸ座標として変数$xの値を使うことを意味しており、”y=”$y””はＹ座標として変数$yの値を使うことを意味している。すなわち、行番号1247および1274の要素名”xforms:range”で表わされる特定の範囲からの選択を行うUI部品のＸおよびＹ座標は、それぞれその時点の変数$x、$yの値によって変わることを表わしている。したがって、12Gおよび12Hの条件ブロックの条件文が成立するか否かに応じて、それぞれ12M、12Oの式が実行されるか否かが変わる。それによって行番号1259の画像および行番号1274の特定の範囲からの選択を行うUI部品のレイアウトが変わることを表わしている。
【００４６】
図１３は本実施形態におけるUI生成処理の流れを示すフローチャートである。図において、S1301からS1318は各ステップを表わす。まず、あらかじめ本処理の外部で設定された入力において現在の位置が入力の終端に達しているか否かを判断し（S1301）、まだ終端に達していない場合には、構文上の１行を読み込む（S1302）。次に、読み込んだ行が条件文であるか否かを判断し（S1303）、その判断の結果、条件文ではない場合には、読み込んだ行が変数の定義であるか否かを判断する（S1304）。判断の結果、読み込んだ行が変数の定義ではない場合には、読み込んだ行が子要素が変数の式であることを示す行か否かを判断する（S1305）。判断の結果、読み込んだ行が子要素が変数の式であることを示す行でない場合には、読み込んだ行中にデバイスIDの格納場所が含まれているか否かを判断し（S1306）する。そして、デバイスIDの格納場所が含まれている場合には、S401で得たデバイス情報中から得たデバイスIDを得て（S1307）、バッファに読み込んだ行中のデバイスIDの格納場所に実際のデバイスIDを挿入する（S1308）。
【００４７】
S1306の判断の結果、デバイスIDの格納場所が含まれていない場合には、S1309の判断に移る。次に、読み込んだ行中にデバイス名の格納場所が含まれているか否かを判断し（S1309）する。そして、デバイス名の格納場所が含まれている場合には、S401で得たデバイス情報中から得たデバイス名を得て（S1310）、バッファに読み込んだ行中のデバイス名の格納場所に実際のデバイス名を挿入する（S1311）。S1309の判断の結果、デバイス名の格納場所が含まれていない場合には、S1312の処理に移る。次に、変数があるならばその変数に現在の値を格納する処理を行い（S1312）、バッファ中の読み込んだ行をUIデータに書き込んだ（S1313）後、S1301の判断に戻り、一連の処理を繰り返す。
【００４８】
S1303の判断の結果、読み込んだ行が条件文である場合には、この条件文とその子要素の処理を行った（S1314）後、S1301の判断に戻る。S1304の判断の結果、読み込んだ行が変数の定義である場合には、この変数の変数名とその初期値を登録する処理を行った（S1315）後、S1301の判断に戻る。S1305の判断の結果、読み込んだ行が子要素が変数の式であることを示す行である場合には、さらに1行を読み込み（S1316）、読み込んだ行が子要素が変数の式であることを示す要素の終端を示す行であるか否かを判断する（S1317）。S1317の判断の結果、読み込んだ行が子要素が変数の式であることを示す要素の終端を示す行でない場合には、読み込んだ行は変数の式であるので、この変数の式の処理を行い（S1318）、S1316の処理に戻る。S1317の判断の結果、読み込んだ行が子要素が変数の式であることを示す要素の終端を示す行である場合には、S1301の判断に戻る。
S1301の判断の結果、すべての行の処理を終えて、入力の終端に達した場合には、処理を終了する。
【００４９】
図１４は本実施形態における条件文とその子要素の処理の流れを示すフローチャートである。図において、S1401からS1411は各ステップを表わす。まず、読み込んだ行が操作コマンドの有無に関する条件文であるか否かを判断し（S1401）する。その判断の結果、読み込んだ行が操作コマンドの有無に関する条件文ではない場合には、読み込んだ行が状態変数の有無に関する条件文であるか否かを判断する（S1402）。判断の結果、読み込んだ行が状態変数の有無に関する条件文ではない場合には、読み込んだ行が状態変数の値に関する条件文であるか否かを判断し（S1403）する。その判断の結果、読み込んだ行が状態変数の値に関する条件文である場合には、S401で得たデバイス情報中から得た状態変数の値を得て（S1404）、条件文が満たされているか否かを判断する（S1405）。
【００５０】
同様に、S1401の判断の結果、読み込んだ行が操作コマンドの有無に関する条件文である場合には、S401で得たデバイス情報中から得た操作コマンドの一覧から指定された操作コマンドを検索する（S1410）。S1402の判断の結果、読み込んだ行が状態変数の有無に関する条件文である場合には、S401で得たデバイス情報中から得た状態変数の一覧から指定された状態変数を検索し（S1411）、条件文が満たされているか否かを判断する（S1405）。S1405の判断の結果、読み込んだ行の条件文が満たされているならば、この条件の範囲の保存処理を行い（S1406）、この保存された条件の範囲を新たな入力とする設定を行う（S1407）。その後に、上記入力すなわち保存された条件の範囲に対して本UIデータ処理を再帰的に実行する（S1408）。そして、保存した条件の範囲を破棄し（S1409）、処理を終了する。S1405の判断の結果、読み込んだ行の条件文が満たされていない場合には、条件の範囲を読み飛ばした（S1412）後、処理を終了する。
【００５１】
図１５は本実施形態における条件の範囲保存処理の流れを示すフローチャートである。
図において、S1501からS1505は各ステップを表わす。まず、条件の範囲保存用のファイルを開き（S1501）、入力から１行を読み込む（S1502）。次に、入力が終端に達しているか否かを判断し（S1503）、入力が終端に達していないならば、読み込んだ行を条件の範囲保存用のファイルに書き込み（S1504）、S1502の処理に戻る。S1503の判断の結果、入力が終端に達したならば、条件の範囲保存用のファイルを閉じて（S1505）、処理を終了する。
【００５２】
図１６は本実施形態における変数に現在の値を格納する処理の流れを示すフローチャートである。図において、S1601からS1604は各ステップを表わす。まず、登録されている変数から最初の変数とその現在値を得て（S1601）、変数があったか否かを判断する（S1602）。判断の結果、変数があったならば、バッファに読み込んだ行中のこの変数の変数名に一致する変数をすべてこの変数の現在値に置き換え（S1603）、登録されている次の変数とその現在値を得て（S1604）、S1602の判断に戻る。S1602の判断の結果、登録されている変数がもうないならば、処理を終了する。
【００５３】
次に、図１３のUIデータ生成処理とそのサブルーチンである図１４から図１６によって、図７、図８のデバイス情報および図１２のデバイステンプレートからUIデータを生成する処理について具体的に説明する。まず、S406において行われるUIデータ生成処理は、S405でデバイステンプレートを入力としているので、図１２のデバイステンプレートを１行ずつ処理する。行番号1201から1209まではS1303からS1305のいずれの判断も偽なので、図５のUIデータ生成処理と同様にS1306の判断からS1312の処理を実行し、必要な置換が行われた後、S1313でUIデータに書き込まれる。
【００５４】
次に、図１２のブロック12Aの処理においては、行番号1210はS1303において判断が真となるので、S1314において図１４に記載の条件文とその子要素の処理に移る。その後、S1401の判断が真となるため、S1410において操作コマンド”CameraControlPan”が図８のデバイス情報から検索され、行番号0809に存在するため、S1405の条件判断が真となる。よって、S1406において条件の範囲すなわち行番号1211が保存され、条件文の終端を表わす行番号1212まで読み込みが終わる。
【００５５】
次に、S1407で上記条件の範囲を入力とし、S1408においてこの入力に対してUIデータ生成処理を再帰的に行う。ここでは、行番号1211がUIデータに追加される。そして、S1409において保存した条件の範囲が破棄され、次の行に処理が進む。12B、12Cについても同様のステップを踏んで、それぞれ行番号1214、1217がUIデータに追加される。12D、12E、12Fは処理の流れは12Aと同様であるが、条件の範囲がそれぞれ1221と1222、1225と1226、1229と1230の２行であること、またデバイスIDの格納場所を有することが異なる。これらの行は行番号1211と同様に、図１４のS1408において再帰的に呼び出されたUIデータ処理の中で、S1308においてデバイスIDを置換された後にS1313でUIデータに書き込まれる。12Kは２行とも変数の定義であるので、それぞれS1304で判断が真となり、S1315において変数の変数名とその初期値、すなわち変数名として$x、その値として97が、また変数名として$y、その値として381が登録される。12Gは12Aと同様に行番号1246が条件文であるため、S1303において判断が真となるので、S1314において図１４に記載の条件文とその子要素の処理に移る。その後、S1401の判断が真となるため、S1410において操作コマンド”CameraControlPan”が図８のデバイス情報から検索され、行番号0809に存在するため、S1405の条件判断が真となる。よって、S1406において条件の範囲すなわち行番号1247から1253が保存され、条件文の終端を表わす行番号1254まで読み込みが終わる。次に、S1407でその条件の範囲を入力とし、S1408においてその入力に対して図１３に記載のUIデータ生成処理を再帰的に行う。
【００５６】
ここで、その処理について具体的に説明する。行番号1247および1248が読み込まれると、この行はS1303からS1306 、そしてS1309のいずれの判断も偽なので、S1312に処理が進す。そして、図１６に詳細を示したS1312の変数に現在の値を格納する処理により、12Lの部分が”x=”97” y=”381””と置換され、UIデータに追加される。行番号1249および1250は、S1303からS1306 、そしてS1309のいずれの判断も偽なので、S1313においてそのままUIデータに追加される。12Mの部分は、行番号1251が子要素が変数の式であることを示す行であるため、その行の処理においてS1305の判断が真となる。その結果、行番号1252がS1316において読み込まれ、S1318において当該行の処理が行われ、変数$yに50が加算され、値が431に更新される。そして行番号1253がS1316で読み込まれ、子要素が変数の式であることを示す要素の終端を表わす行であるため、S1317において判断が真となり、次の行へ処理が進む。行番号1254は条件文の終端を表わす行なので、以上でS1408における12Gの条件範囲のUIデータ生成処理は終了し、S1409において保存した条件の範囲が破棄され、次の行に処理が進む。
【００５７】
次に、12Hの部分の処理について説明する。12Hの処理は12Gの処理とほぼ同様であるが、行番号1255が状態変数の値に関する条件文であるため、行番号1246が図１４のS1401の判断が真になるのに対して、行番号1255はS1403の判断が真となる。そのためS1404において状態変数”MotionDetect”の値”0”が図８のデバイス情報の行番号0843から得られる。そして、行番号1255の条件文すなわち「状態変数”MotionDetect”の値が”1”である」が真であるか否かがS1405において判断される。この条件文は真でないため、処理はS1412に移り、条件文の終端である行番号1264までが読み捨てられる。12I、12Jの処理は12Gの処理と同様である。その他の行はS1303からS1305のいずれの判断も偽なので、行番号1201から1209までと同様にUIデータに追加される。以上、説明したような処理により、図７、図８のデバイス情報および図１２のデバイステンプレートから図１０のUIデータが生成され、ブラウザ316によりそれを基に図１７で説明したように1701のようなUIが構築される。
【００５８】
図１８は図８同様にデバイスを操作するための操作サービスを示すデバイス情報の一例を示すXMLデータである。図１８において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図８との差異は、18Aで表わされた部分に記載された状態変数MotionDetectの値が”0”ではなく”1”であることである。
【００５９】
図１９は図１８のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図１８の18Aにおいて状態変数MotionDetectの値が”1”であることにより、図１２に示すデバイステンプレートの12Hを処理する際に、行番号1255の処理において、S1405の判断が真となる。したがって、図１９と図８のデバイス情報用いた場合に生成される図１０のUIデータとの差異は、行番号1256から1260までが必要な置換を行った上で追加された19Aの部分が存在することである。また、12Oの変数の式が12Mと同様に処理されることにより、19Bで示したＸ座標の値が図１０とは異なる。
【００６０】
図２０は図１９のUIデータにより構築されたUIの一例を示す概念図である。図において、UI部品1702および1703は図１７と同様であるが、図１９の19Aの部分により、行番号1941に記載の動体検知を表わすイメージデータ2001がUI上に表示される。また、19BのＸ座標の値が異なることによりUI部品1703の位置が移動している。
【００６１】
図２１は図８同様にデバイスを操作するための操作サービスを示すデバイス情報の一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図８との差異は、データ中に8C、8Dと同様の21A、21Bは含むが、8A、8Bにあたる部分が存在しないことである。
【００６２】
図２２は図２１のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図２１において、図８の8A、8Bにあたる部分が存在しないことにより、図１２に示すデバイステンプレートの12Gおよび12Iを処理する際に、行番号1246および1266の処理において、S1405の判断が偽となる。したがって、図２２と図１０のUIデータとの差異は、12Gおよび12Iの部分が読み捨てられ、図１０の行番号1033から1037および行番号1039から1043の部分が存在しないことである。また、12Mの変数の式が処理されないことにより、22AのＹ座標の値が図１０とは異なる。
【００６３】
図２３は図２２のUIデータにより構築されたUIの一例を示す概念図である。図２３において、図２２には図１０の行番号1033から1037および行番号1039から1043の部分が存在しないことにより、図１７とは異なりUI部品1702および1703が存在しない。また、UI部品1703は22AのＹ座標の値が異なることにより位置が移動している。以上のように、本実施形態のリモート操作端末においては、同一のデバイステンプレートにより、デバイスの機能あるいは状態に応じて、UI部品の有無およびレイアウトを変更することが可能になる。
【００６４】
（第３の実施形態）
本実施形態においては、デバイステンプレートを変更した場合について、図面を参照しながら説明する。図２４は本実施形態におけるデバイステンプレートの一例を示すXMLデータである。図２４において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。このデバイステンプレートは図６に示したデバイステンプレートとほぼ同様であるが、24Aに示したスライダの向きを指定する部分が変更されている。また、24Bに示した部分において各座標値が変更されている。このように特定のデバイスに対するデバイステンプレートは、記憶装置205に複数保持している、あるいは外部のサーバに保持されているものを、ユーザにより選択させる。これにより、種別・テンプレート対応テーブル304中に記載されているデバイステンプレートファイル名を変更することが可能である。
【００６５】
図２５は図２４のデバイステンプレートを用いた場合に生成されるUIデータの一例を示すXMLデータである。図において、左端の数字は行番号を示したものであり、実際のデータには含まれていない。図６のデバイステンプレート用いた場合に生成される図１０のUIデータとの差異は、25A、25Bの部分が、図２４の24A、24B部分がそのまま反映されているために異なる。
【００６６】
図２６は図２５のUIデータにより構築されたUIの一例を示す概念図である。図２６において、図１７とは異なり、カメラのズームを表わすUI部品1703がUI部品2601のように変更されている。これは、図２５の25Aの部分によりスライダの向きが、25Bの部分によりスライダの位置が変更されたものである。
【００６７】
（第４の実施形態）
本実施形態の全体構成およびハードウエア構成も、それぞれ図1および図２と同じであるが、一つのデバイステンプレートに複数のデバイスに対するUI部品を混在させる点が、第１〜第３の実施形態とは異なる。図２７は、本実施形態における全体構成の一例を示す図であり、図１の一つのバリエーションに相当する。図２７において、3000は構成機器を互いに接続するネットワークであり、有線によるLAN、無線LAN、あるいはIEEE1394等のその他の接続形式やそれらの混在などである。3001は操作端末、3002はネットワークカメラデバイス、3003はネットワークカメラ3002に物理的に接続され、ネットワークカメラ3002を上下左右の二次元方向に回転させるネットワーク雲台である。3004はカメラ撮影に必要な照明を提供するためのネットワークライトである。
【００６８】
図２８は、本実施形態における全体構成を示すクラス図である。図２８は、図３の種別・テンプレート対応テーブル304とその構成要素である種別・テンプレート組314が、形式の異なるテンプレート・種別対応テーブル3005とその構成要素であるテンプレート・種別組3006になっている点で異なる。また、ネットワーク接続され操作端末によって検出されたデバイスを管理するためのデバイスリスト3007を備えている点が異なる。
【００６９】
図２９は、テンプレート・種別対応テーブル3005とその構成要素であるテンプレート・種別組3006の一例を示す図である。テンプレート・種別組3006は、テンプレート名3008、テンプレートファイル名3009、テンプレートファイル名3009から参照されUI構成に必要なデバイス種別IDのリストである必要なデバイス種別3010の3つの項目から構成される。図２９では、ネットワークカメラ単体の対応関係3011がテンプレート・種別対応テーブル3005に登録されている。また、ネットワークカメラと雲台とを組み合わせた雲台カメラの対応関係3012が登録されている。また同じ組み合わせであるが異なるUIを実現するネットワークカメラと雲台とを組み合わせた雲台カメラの対応関係3013が登録されている。その他、ネットワークカメラとライトの組み合わせの対応関係3014、ネットワークカメラ、雲台及びライトの組み合わせの対応関係3015が登録されている。
【００７０】
図３０は、操作端末3001がネットワークカメラ3002の検出時にネットワークカメラ3002から操作端末3001に対して送られてくるデバイス情報の例を示すリストである。図３０において、行番号4008にある3016はこのネットワークカメラ3002の種別識別子（種別ID）、行番号4017にある3017はネットワークカメラ3002個体のデバイス識別子（デバイスID）である。
【００７１】
図３１は、ネットワーク雲台3003から送られるデバイス情報の例を示すリストである。図３０と同様に雲台のデバイス種別IDが行番号4038にある3018に記述され、ネットワーク雲台個体のデバイスIDが行番号4047にある3019に記述されている。
【００７２】
図３２は、ネットワークライト3004から送られるデバイス情報の例を示すリストである。同じくライトのデバイス種別IDが行番号4068にある3020に記述され、このネットワークライト個体のデバイスIDが行番号4077にある3021に記述されている。
【００７３】
図３３は、図２７の様にネットワーク接続された3つのデバイスを操作端末3001が検出し、それぞれから図３０〜３２のデバイス情報を操作端末3001が受信した後の、デバイスリスト3007の状態を示す図である。操作端末3001はデバイス情報を受信するとその内容を解釈して、その各々に対して図３３のデバイス情報データ構造体3022〜3024を生成し、それらを同図のようなリスト構造として保持する。3022はネットワークカメラ3002から送られた図３０のデバイス情報に対応する構造体である。3025は図３０の行番号4008にある3016から抜き出したネットワークカメラ3002のデバイス種別ID、3026はネットワークカメラ3002のデバイスID、3027はネットワークカメラ3002が提供する操作コマンドの情報である。3023はネットワーク雲台3003についての構造体であり、3028がネットワーク雲台3003のデバイス種別ID、3029がネットワーク雲台3003のデバイスID、3030がネットワーク雲台3003の操作コマンド情報である。3024はネットワークライト3004についての構造体であり、3031がネットワークライト3004のデバイス種別ID、3032がネットワークライト3004のデバイスID、3033がネットワークライト3004の操作コマンド情報である。
【００７４】
図３４は、ネットワークカメラ3002から送られ、操作コマンド情報3027で保持されるネットワークカメラ3002の提供する操作コマンドの情報である。図３４において、行番号4097〜4106は、ネットワークカメラ3002がZoomの操作コマンドを受け付けることが示している。
【００７５】
図３５は、ネットワーク雲台3003から送られ、操作コマンド情報3030で保持されるネットワーク雲台3003の提供する操作コマンドの情報である。図３５において、行番号4118〜4127はネットワーク雲台3003がカメラを左右に回転させるPan機能の操作コマンドを受け付けることを示している。そして、行番号4128〜4137はカメラを上下に回転させるTilt機能の操作コマンドを受け付けることを示している。
【００７６】
図３６は、ネットワークライト3004から送られ、操作コマンド情報3033で保持されるネットワークライト3004の提供する操作コマンドの情報である。図３６において、行番号4148〜4157はライトのon/offを制御するPower機能の操作コマンドを受け付けることを示している。
【００７７】
図３７は、本実施形態における操作端末3001の外観を示す図である。図３７において、3035は出力装置208の構成要素の一つでユーザにUIや画像データの表示を行うディスプレイデバイスであり、3036は入力装置206の構成要素の一つでユーザがUIの指示を行う十字キーである。十字キー3036は上下左右と真中の押し込みが可能で、後述のメニューの選択等に使用される。操作端末3001がデバイスを検出した後に十字キー3036の真中を押し込むと、操作端末3001が保持しているテンプレート305と検出されたデバイスから、表示可能なUIをユーザに選択されるメニューが表示される。
【００７８】
以下、図３８のフローチャートを用いてこのUI選択メニュー表示が表示されるまでの処理の詳細を説明する。
S5001   メニュー表示に使用するメニュー項目リストをクリアする。
S5002   テンプレート・種別テーブル3005の最初の要素をカレント要素とする。
S5003   カレント要素があればステップS5004へ、なければステップS5009へ移る。
S5004   カレント要素の必要なデバイス種別IDのリスト3010を得る。
S5005   デバイスリスト3007を走査し、ステップS5004で得たデバイス種別IDのリスト3010に含まれるデバイスが全てそろっているか調べる。
S5006   デバイスが全てそろっていればUIの生成が可能なのでステップS5007へ、そろっていなければステップS5008へ移る。
S5007   メニュー項目リストにカレント要素を加える。
S5008   テンプレート・種別組テーブル3005の次の要素をカレント要素とし、ステップS5003に戻る。
S5009   メニュー項目リストの各要素のテンプレート名3008をラベルとしたメニューを表示する。ここで、メニュー項目リストが空の場合は使用できるUIが無いことを示すメッセージを表示する。図３８の処理で表示されたメニューによりユーザがUIを選択すると、選択項目に対応するテンプレート・種別テーブル3005の要素（図２９の対応関係3011〜3015のいずれか）が持つテンプレートファイル名3009が得られる。
【００７９】
図３９は、このテンプレートファイル名3009によって示されるデバイステンプレート306を用いてUIを表示する処理を示すフローチャートである。以下、同図を用いて処理の詳細を説明する。
S5101   XMLで記述されたデバイステンプレート306の構文解析を行うSAX（Simple API for XML）パーサの初期化をする。
S5102   デバイステンプレート306に含まれるデバイス種別要素が示す、デバイスリスト3007内のデバイス情報データへのポインタを格納する変数を初期化をする。
S5103   UI表示のためブラウザ316に渡すUIデータファイル312をオープンする。
S5104   デバイステンプレート306の構文解析を開始する。
S5105   UIデータファイル312をクローズする。
S5106   UIデータファイル312をブラウザ316に渡してUIの表示を行う。
【００８０】
図４０は、SAXパーサの要素開始ハンドラにおける処理を示す図である。以下、同図を用いて処理の詳細を説明する。
S5201   処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5202へ、違う場合はステップS5204へ移る。
S5202   デバイス種別要素の属性で指定されたものと同じデバイス種別のデバイス情報をデバイスリスト3007から探す。ここで、図３８のフローによる処理により、現在処理中のデバイステンプレート306が必要とするデバイス種別のデバイス情報が必ずデバイスリスト3007中に存在することは保証されている。なお、指定されたデバイス種別のデバイス情報が複数存在した場合は、最初に見つかったものを使用する。
S5203   見つかったデバイス情報へのポインタを図３９のステップS5102で初期化した格納変数に代入しハンドラを終了する。
S5204   ステップS5201において処理中の要素がデバイス種別要素でないならば、要素中にデバイスID格納場所があるかどうかを判別する。デバイスID格納場所は”$uid”という文字列である。デバイスID格納場所があった場合はステップS5205へ、なかった場合はステップS5206へ移る。
S5205   見つかったデバイスID格納場所である”$uid”を、デバイス情報データ格納変数で示されるデータのデバイスID（図３３のデバイスID3026、3029、3032のいずれか）に置換する。
S5206   開始タグを図３９のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。
【００８１】
図４１は、SAXパーサの要素終了ハンドラにおける処理を示す図である。以下、同図を用いて処理の詳細を説明する。
S5301   処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5302へ、違う場合はステップS5303へ移る。
S5302   デバイス情報データ格納変数をクリアしハンドラを終了する。
S5303   終了タグを図３９のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。
なお、SAXパーサの文字列ハンドラは、処理中の文字列をそのまま図３９のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了するものとする。
【００８２】
続いて、図４２〜図５９を用いて、今まで述べた処理による実際のUI生成の例を説明する。図４２は、ネットワークカメラ3002だけが接続されている状況を示す図である。
この状況において、デバイスリスト3007に含まれるデバイス情報データはネットワークカメラ3002についてのものだけである。よって、図３８のステップS5007によってメニュー項目に加えられるのは、図２９のネットワークカメラ単体の対応関係3011の要素だけである。
【００８３】
図４３は、図３８の処理により表示されたメニュー3038を示す図で、図２９のテンプレート名3008である「ネットワークカメラ」だけが表示されている。
【００８４】
図４４は、操作端末3001が保持する一つのネットワークカメラだけを操作するUIを記述するデバイステンプレート「テンプレート１」の例を示すリストである。同図において、行番号4169〜4177は、Zoom操作のためにネットワークカメラに送信されるコマンドを記述する部分である。ここで、行番号4169はデバイス種別要素であるdeviceType要素の開始タグであり、その属性であるnameでネットワークカメラ種別IDを指定している。行番号4175の”$uid”は、図４０のステップS5205において操作対象であるネットワークカメラのデバイスIDに置換され、ブラウザによるUIデータ処理時には、このコマンドの送信先が特定される。行番号4177はdeviceType要素の終了タグである。また、行番号4179〜4187は、Zoom操作のためのUIコントロール表示と、上記のコマンドとの対応を示す部分である。ここでも行番号4179はネットワークカメラ種別のIDを指定しているdeviceType要素の開始タグで、行番号4187はその終了タグである。
【００８５】
図４５は、図４４のデバイステンプレート１を図３９の処理により変換され、ブラウザ316に渡されるＵＩデータを示すリストである。
【００８６】
図４６は、図４３において十字キー3036で「ネットワークカメラ」を選択した場合のUIの表示を示す図である。図４６において、3039はネットワークカメラ3002が撮影している動画データの表示であり、図４４の行番号4180〜4181（図４５の行番号4447〜4448）のvideo要素に対応する。3040は、ネットワークカメラ3001が提供するZoomコマンドを発行するUI部品（コントロール）であるスライダで、図４４の行番号4182〜4186（図４５の行番号4449〜4453）に対応する。
【００８７】
図４７は、ネットワークカメラ3002およびネットワーク雲台3003が、例えばLAN3041および3042により接続されている状況を示す図である。この状況におけるデバイスリスト3007は、図３３のデバイス情報データ3022とデバイス情報データ3023から構成される。
【００８８】
図３８のメニュー表示処理においては、図２９のネットワークカメラ単体のテンプレートである3011と、雲台付きカメラ１のテンプレートである3012と雲台付きカメラ２のテンプレートである3013の計三つがメニュー項目に加えられる。図４８は、図３８の処理により表示されたメニュー3043を示す図である。
【００８９】
図４９は、「雲台付カメラ１」を操作するUIを記述するデバイステンプレート「テンプレート２」の例を示すリストである。図４９において、行番号4199〜4207はネットワークカメラ種別に対応する情報コマンドである。また行番号4208〜4219はネットワーク雲台種別に対応する情報コマンドである。さらに行番号4221〜4229はネットワークカメラ種別に対応するUIコントロールおよび動画表示、行番号4230〜4239はネットワーク雲台種別に対応するUIコントロールを記述するブロックである。
【００９０】
図５０は、図４８において「雲台付カメラ１」を選んだ場合のUIの表示を示す図である。図５０において、3044はネットワークカメラのZoomコマンドを発行するUI部品のスライダであり、図４９の行番号4224〜4228に対応する。3045はネットワーク雲台のTiltコマンドを発行するUI部品のスライダであり、図４９の行番号4235〜4238に対応する。3046は同じくネットワーク雲台のPanコマンドを発行するUI部品のスライダで図４９の行番号4231〜4234行に対応する。
【００９１】
図５１は、「雲台付カメラ２」を操作するUIを記述するデバイステンプレート「テンプレート３」の例を示すリストである。図４９との違いは、ネットワークカメラ種別に対応する行番号4271〜4279およびネットワーク雲台種別に対応する行番号4280〜4289において、構成要素であるUIコントロールおよび動画表示のレイアウトが異なっている点である。
【００９２】
図５２は、図４８において「雲台付カメラ２」を選んだ場合のUIの表示を示す図である。ここでは、スライダ3047とスライダ3048のレイアウトが図５０とは異なっている。
【００９３】
図５３は、ネットワークカメラ3001およびネットワークライト3004が、例えばLAN3051および3050により接続されている状況を示す図である。この状況におけるデバイスリスト3007は、図３３のデバイス情報データ3022とデバイス情報データ3024から構成される。
【００９４】
図３８のメニュー表示処理においては、図２９のネットワークカメラ単体のテンプレートである3011と、ネットワークカメラとライトの組み合わせである3014の二つがメニュー項目に加えられる。図５４は、図３８の処理により表示されたメニュー3052を示す図である。
【００９５】
図５５は、「カメラ＆ライト」を操作するUIを記述するデバイステンプレート「テンプレート４」の例を示すリストである。図５５において、行番号4299〜4307と行番号4308〜4315がそれぞれネットワークカメラ種別とネットワークライトの情報コマンドである。行番号4317〜4325と行番号4326〜4347がそれぞれネットワークネットワークカメラ種別とネットワークライトのUIコントロールを記述するブロックである。
【００９６】
図５６は、図４８において「カメラ＆ライト」を選んだ場合のUIの表示を示す図である。3053はネットワークライトのon/offコマンドを発行するトグルボタンで図５５の行番号4326〜4347に対応する。
【００９７】
図５７は、図２７の様に3つのデバイスが接続された状態で表示されるメニュー項目3054を示す図である。
【００９８】
図５８は、「雲台付カメラ＆ライト」を操作するUIを記述するデバイステンプレート「テンプレート５」の例を示すリストである。これには、ネットワークカメラ3002、ネットワーク雲台3003、ネットワークライト3004の3つのデバイスに対する情報コマンドとUIコントロールが混在している。
【００９９】
図５９は、図５７のメニュー項目3054の中から「雲台付カメラ＆ライト」を選んだ場合のUIの表示を示す図である。
【０１００】
以上の様に、本実施形態のリモート操作端末においては、一つの画面に複数のデバイスのコマンドに対応するUIコントロールを効果的に配置するという効果がある。また、その時点で表示可能なUIをメニューによりユーザが選択できるという効果がある。
【０１０１】
（第５の実施形態）
本実施形態の全体構成、ハードウエア構成、クラス構成、デバイスから送られるデバイス情報およびコマンド情報、使用するテンプレートの形式は第４の実施形態と同じであるが、行われる処理が少し異なる。本実施形態においては、あらかじめ操作端末が保持するテンプレートを全てメニューとして表示してユーザに選択させる。例えば、図２９の様にテンプレートを５種類持っている場合、図５７の様に５つの選択肢からなるメニューを表示する。デバイスが検出され、ユーザがUI表示を指示すると、図３９で示されるテンプレートの処理とそれにより生成されたUIデータをブラウザに渡すことによるUIの表示が行われるが、SAXパーサのハンドラが第４の実施形態とは異なっている。ここで、ユーザによるUI表示の指示は、メニューによるテンプレートの選択のタイミングでも良いし、テンプレート選択の後、別のタイミングでUI表示の指示を行っても良い。
【０１０２】
図６０は要素開始ハンドラの処理を示すフローチャートである。以下、図６０を用いて処理の詳細を説明する。
S5401   処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5402へ、違う場合はステップS5406へ移る。
S5402   デバイス種別要素の属性で指定されたデバイス種別のものであるデバイス情報データをデバイスリスト3007から探す。なお、指定されたデバイス種別のデバイス情報データが複数存在した場合は、最初に見つかったものを使用する。
S5403   デバイス情報データが見つかった場合はステップS5404へ、見つからなかった場合はステップS5405へ移る。
S5404   見つかったデバイス情報データを図３９のステップS5102で初期化した格納変数に代入しハンドラを終了する。
S5405   デバイス情報データが見つからなかった場合、格納変数に‐1を代入する。
S5406   ステップS5401において処理中の要素がデバイス種別要素でないならば、デバイス情報データ格納変数が‐1かどうかを判別する。‐1でなければステップS5407へ、‐1ならばハンドラを終了する。
S5407   要素中にデバイスID格納場所があるかどうかを判別する。デバイスID格納場所は”$uid”という文字列である。デバイスID格納場所があった場合はステップS5408へ、なかった場合はステップS5409へ移る。
S5408   見つかったデバイスID格納場所である”$uid”を、デバイス情報データ格納変数で示されるデータのデバイスID（図３３のデバイスID 3026、3029、3032のいずれか）に置換する。
S5409   開始タグを図３９のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。
【０１０３】
図６１は、SAXパーサの要素終了ハンドラにおける処理を示す図である。以下、図６１を用いて処理の詳細を説明する。
S5501   処理中の要素がデバイス種別要素かどうか判別し、デバイス種別要素ならばステップS5502へ、違う場合はステップS5503へ移る。
S5502   デバイス情報データ格納変数をクリアしハンドラを終了する。
S5503   デバイス情報データ格納変数が‐1の場合はハンドラを終了し、‐1でなければステップS5504に移る。
S5504   終了タグを図３９のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了する。なお、SAXパーサの文字列ハンドラは、デバイス情報データ格納変数が‐1でない場合のみ、処理中の文字列をそのまま図３９のステップS5103でオープンしているUIデータファイル312に書き込みハンドラを終了するものとする。以上の処理により、テンプレートデータの中で、対応するデバイスが存在しないブロックはUIデータとして出力されないことになる。
【０１０４】
図６２は、図５８の「雲台付カメラ＆ライト」テンプレートが選択されている場合に、図４２の様にネットワークカメラ3002だけ接続されている場合に表示されるUIを示す図である。
【０１０５】
図６３は、「雲台付カメラ＆ライト」テンプレートが選択されている場合に、図４７の様にネットワークカメラとネットワーク雲台が接続されている場合に表示されるUIを示す図である。
【０１０６】
図６４は、「雲台付カメラ＆ライト」テンプレートが選択されている場合に、図５３の様にネットワークカメラとネットワークライトが接続されている場合に表示されるUIを示す図である。ここで、図２７の様に全てのデバイスが接続されている場合、図５９のようなUIになる。
【０１０７】
図６５は、図６３の場合に図５８のテンプレートから生成されるUIデータを示すリストである。
【０１０８】
以上の様に、本実施形態のリモート操作端末においては、一つの画面に複数のデバイスのコマンドに対応するUIコントロールを効果的に配置するという効果がある。また、あらかじめユーザがテンプレートを選択しておくことにより、接続され検出されたデバイスを組み合わせたUIが自動的に表示されるという効果がある。
【０１０９】
（その他の実施形態）
本発明に係るUIデータ生成処理において、UIデータに埋め込む情報として、デバイスID、デバイス名以外にIPアドレス、シリアル番号、MACアドレスなどを利用するように構成しても良い。
【０１１０】
本発明に係る第２の実施形態に記載の条件文処理において、条件とは前述したものに限られない。例えば、操作コマンドや状態変数がない場合や、状態変数が特定の値に一致しない場合のみ、あるいは状態変数の値が特定の値より大きい場合や小さい場合であってもよい。また、状態変数の値が特定の範囲内である場合など、様々な条件に応じて子要素の記述が有効となるように構成しても良い。
【０１１１】
また、本発明において、表示装置を操作端末とは別体として、あるいはブラウザ316を含む表示装置を操作端末とは別体として構成しても良い。
【０１１２】
前述した本発明の実施形態におけるリモート操作端末装置を構成する各手段、並びにリモート操作端末装置の制御方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【０１１３】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１１４】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムまたは装置に直接、または遠隔から供給する。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１１５】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１１６】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１１７】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【０１１８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１１９】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１２０】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１２１】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１２２】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１２３】
【図１】本発明の全体構成の一例を示す概念図である。
【図２】本発明における操作端末のハードウェア構成の一例を示すブロック図である。
【図３】本発明における全体の構成の一例を表わすクラス図である。
【図４】本発明におけるUI生成処理の流れの一例を示すフローチャートである。
【図５】第１の実施形態におけるUI生成処理の流れを示すフローチャートである。
【図６】第１の実施形態におけるデバイステンプレートの一例としてのXMLデータを示す図である。
【図７】本発明におけるデバイスのデバイス情報の一例としてのXMLデータを示す図である。
【図８】第１の実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてのXMLデータを示す図である。
【図９】本発明における種別・テンプレート対応テーブルの一例を示す概念図である。
【図１０】第１の実施形態におけるUIデータ生成処理によって生成されたUIデータの一例としてのXMLデータを示す図である。
【図１１】本発明における対応テンプレート検索処理の流れの一例を示すフローチャートである。
【図１２】第２の実施形態におけるデバイステンプレートの一例としてのXMLデータを示す図である。
【図１３】第２の実施形態におけるUI生成処理の流れを示すフローチャートである。
【図１４】第２の実施形態における条件文とその子要素の処理の流れを示すフローチャートである。
【図１５】第２の実施形態における条件の範囲保存処理の流れを示すフローチャートである。
【図１６】第２の実施形態における変数に現在の値を格納する処理の流れを示すフローチャートである。
【図１７】第１の本実施形態におけるデバイスと表示されるUIとの関係を示す概念図である。
【図１８】第２の実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてのXMLデータを示す図である。
【図１９】図１８のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例としてのXMLデータを示す図である。
【図２０】図１９のUIデータにより構築されたUIの一例を示す概念図である。
【図２１】第２の実施形態におけるデバイスを操作するための操作サービスを示すデバイス情報の一例としてのXMLデータを示す図である。
【図２２】図２１のデバイスを操作するための操作サービスを示すデバイス情報を用いた場合に生成されるUIデータの一例としてのXMLデータを示す図である。
【図２３】図２２のUIデータにより構築されたUIの一例を示す概念図である。
【図２４】第３の実施形態におけるデバイステンプレートの一例としてのXMLデータを示す図である。
【図２５】図２４のデバイステンプレートを用いた場合に生成されるUIデータの一例としてのXMLデータを示す図である。
【図２６】図２５のUIデータにより構築されたUIの一例を示す概念図である。
【図２７】第４の実施形態における全体構成の一例を示す図である。
【図２８】第４の実施形態における全体構成を示すクラス図である。
【図２９】テンプレート・種別対応テーブルとその構成要素の一例を示す図である。
【図３０】ネットワークカメラから送られてくるデバイス情報の例としてのリストを示す図である。
【図３１】ネットワーク雲台から送られてくるデバイス情報の例としてのリストを示す図である。
【図３２】ネットワークライトから送られてくるデバイス情報の例としてのリストを示す図である。
【図３３】デバイスリストの構造を示す図である。
【図３４】ネットワークカメラから送られてくる操作コマンドの情報のリストを示す図である。
【図３５】ネットワーク雲台から送られてくる操作コマンドの情報のリストを示す図である。
【図３６】ネットワークライトから送られてくる操作コマンドの情報のリストを示す図である。
【図３７】リモート操作端末の外観図である。
【図３８】UI選択メニュー表示が表示されるまでの処理を示すフローチャートである。
【図３９】UIを表示する処理を示すフローチャートである。
【図４０】第４の実施形態におけるSAXパーサの要素開始ハンドラの処理を示すフローチャートである。
【図４１】第４の実施形態におけるSAXパーサの要素終了ハンドラの処理を示すフローチャートである。
【図４２】ネットワークカメラだけが接続されている状況を示す図である。
【図４３】UI選択のメニューを示す図である。
【図４４】ネットワークカメラだけを操作するUIを記述するデバイステンプレートのリストを示す図である。
【図４５】ブラウザ渡されるＵＩデータのリストを示す図である。
【図４６】図４４のデバイステンプレートを用いたUIの表示を示す図である。
【図４７】ネットワークカメラとネットワーク雲台が接続されている状況を示す図である。
【図４８】UI選択のメニューを示す図である。
【図４９】ネットワークカメラと雲台を操作するUIを記述するデバイステンプレートのリストを示す図である。
【図５０】図４９のデバイステンプレートを用いたUIの表示を示す図である。
【図５１】もう一つのネットワークカメラと雲台を操作するUIを記述するデバイステンプレートのリストを示す図である。
【図５２】図５１のデバイステンプレートを用いたUIの表示を示す図である。
【図５３】ネットワークカメラとネットワークライトが接続されている状況を示す図である。
【図５４】UI選択のメニューを示す図である。
【図５５】ネットワークカメラとライトを操作するUIを記述するデバイステンプレートのリストを示す図である。
【図５６】図５５のデバイステンプレートを用いたUIの表示を示す図である。
【図５７】UI選択のメニューを示す図である。
【図５８】ネットワークカメラと雲台とライトを操作するUIを記述するデバイステンプレートのリストを示す図である。
【図５９】図５８のデバイステンプレートを用いたUIの表示を示す図である。
【図６０】第５の実施形態におけるSAXパーサの要素開始ハンドラの処理を示すフローチャートである。
【図６１】第５の実施形態におけるSAXパーサの要素終了ハンドラの処理を示すフローチャートである。
【図６２】第５の実施形態において、ネットワークカメラだけが接続された場合のUIの表示を示す図である。
【図６３】第５の実施形態において、ネットワークカメラと雲台が接続された場合のUIの表示を示す図である。
【図６４】第５の実施形態において、ネットワークカメラとライトが接続された場合のUIの表示を示す図である。
【図６５】第５の実施形態において、ブラウザに渡されるＵＩデータの例としてのリストを示す図である。
【符号の説明】
【０１２４】
101, 102, 106, 107, 302：被操作対象のデバイス
103, 105, 301, 1705, 1712：操作端末
104：ネットワークあるいはバス
201：バス
202：CPU
203：ROM
204：RAM
205：記憶装置
206：入力装置
207：ネットワークI/F
208：出力装置
303：デバイス情報
304, 900：種別・テンプレート対応テーブル
305：テンプレート
306, 912, 922：デバイステンプレート
307, 911, 921：デバイス種別
308：操作コマンド
309：UI部品と操作コマンドの対応情報
310：UI部品
311：デバイスIDの格納場所
312：UIデータ
313：出力
314, 910, 920：種別・テンプレートの組
315：デバイスID
316：ブラウザ
1701, 1711：UI
1702：カメラの横方向の回転を表わすUI部品
1703, 2601：カメラのズームを表わすUI部品
1704：カメラの縦方向の回転を表わすUI部品
1706：ネットワークカメラ
1713：ビデオ
2001：動体検知を表わすイメージデータ
3000：ネットワーク
3001：リモート操作端末
3002：ネットワークカメラ
3003：ネットワーク雲台
3004：ネットワークライト
3005：テンプレート・種別対応テーブル
3006：テンプレート・種別組
3007：デバイスリスト
3008：テンプレート名
3009：テンプレートファイル名
3010：UI構成に必要なデバイス種別IDのリスト
3011：ネットワークカメラだけを操作するテンプレート・種別組
3012：雲台付カメラを操作するテンプレート・種別組１
3013：雲台付カメラを操作するテンプレート・種別組２
3014：カメラとライトを操作するテンプレート・種別組
3015：雲台付カメラとライトを操作するテンプレート・種別組
3016：デバイス情報中のネットワークカメラ種別ID
3017：デバイス情報中のネットワークカメラ個体ID
3018：デバイス情報中のネットワーク雲台種別ID
3019：デバイス情報中のネットワーク雲台個体ID
3020：デバイス情報中のネットワークライト種別ID
3021：デバイス情報中のネットワークライト個体ID
3022：ネットワークカメラのデバイス情報に対応するデバイスリスト中のデータ構造
3023：ネットワーク雲台のデバイス情報に対応するデバイスリスト中のデータ構造
3024：ネットワークライトのデバイス情報に対応するデバイスリスト中のデータ構造
3025：デバイス情報構造体データ中のネットワークカメラ種別ID
3026：デバイス情報構造体データ中のネットワークカメラ個体ID
3027：ネットワークカメラの操作コマンド情報
3028：デバイス情報構造体データ中のネットワーク雲台種別ID
3029：デバイス情報構造体データ中のネットワーク雲台個体ID
3030：ネットワーク雲台の操作コマンド情報
3031：デバイス情報構造体データ中のネットワークライト種別ID
3032：デバイス情報構造体データ中のネットワークライト個体ID
3033：ネットワークライトの操作コマンド情報
3034：リモート操作端末
3035：リモート操作端末の画面
3036：リモート操作端末の入力装置
3037：ネットワークカメラのネットワークへの接続
3038：テンプレート切り替えメニュー
3039：ネットワークカメラの動画表示
3040：Zoomコマンドのスライダ
3041：ネットワークカメラのネットワークへの接続
3042：ネットワーク雲台のネットワークへの接続
3043：テンプレート切り替えメニュー
3044：Zoomコマンドのスライダ
3045：Tiltコマンドのスライダ
3046：Panコマンドのスライダ
3047：Zoomコマンドのスライダ
3048：Tiltコマンドのスライダ
3049：Panコマンドのスライダ
3050：ネットワークカメラのネットワークへの接続
3051：ネットワークライトのネットワークへの接続
3052：テンプレート切り替えメニュー
3053：ネットワークライトon/offトグルボタン
3054：テンプレート切り替えメニュー
【図１】
2007336369.tif 000003
【図２】
2007336369.tif 000004
【図３】
2007336369.tif 000005
【図４】
2007336369.tif 000006
【図５】
2007336369.tif 000007
【図６】
2007336369.tif 000008
【図７】
2007336369.tif 000009
【図８】
2007336369.tif 000010
【図９】
2007336369.tif 000011
【図１０】
2007336369.tif 000012
【図１１】
2007336369.tif 000013
【図１２】
2007336369.tif 000014
【図１３】
2007336369.tif 000015
【図１４】
2007336369.tif 000016
【図１５】
2007336369.tif 000017
【図１６】
2007336369.tif 000018
【図１７】
2007336369.tif 000019
【図１８】
2007336369.tif 000020
【図１９】
2007336369.tif 000021
【図２０】
2007336369.tif 000022
【図２１】
2007336369.tif 000023
【図２２】
2007336369.tif 000024
【図２３】
2007336369.tif 000025
【図２４】
2007336369.tif 000026
【図２５】
2007336369.tif 000027
【図２６】
2007336369.tif 000028
【図２７】
2007336369.tif 000029
【図２８】
2007336369.tif 000030
【図２９】
2007336369.tif 000031
【図３０】
2007336369.tif 000032
【図３１】
2007336369.tif 000033
【図３２】
2007336369.tif 000034
【図３３】
2007336369.tif 000035
【図３４】
2007336369.tif 000036
【図３５】
2007336369.tif 000037
【図３６】
2007336369.tif 000038
【図３７】
2007336369.tif 000039
【図３８】
2007336369.tif 000040
【図３９】
2007336369.tif 000041
【図４０】
2007336369.tif 000042
【図４１】
2007336369.tif 000043
【図４２】
2007336369.tif 000044
【図４３】
2007336369.tif 000045
【図４４】
2007336369.tif 000046
【図４５】
2007336369.tif 000047
【図４６】
2007336369.tif 000048
【図４７】
2007336369.tif 000049
【図４８】
2007336369.tif 000050
【図４９】
2007336369.tif 000051
【図５０】
2007336369.tif 000052
【図５１】
2007336369.tif 000053
【図５２】
2007336369.tif 000054
【図５３】
2007336369.tif 000055
【図５４】
2007336369.tif 000056
【図５５】
2007336369.tif 000057
【図５６】
2007336369.tif 000058
【図５７】
2007336369.tif 000059
【図５８】
2007336369.tif 000060
【図５９】
2007336369.tif 000061
【図６０】
2007336369.tif 000062
【図６１】
2007336369.tif 000063
【図６２】
2007336369.tif 000064
【図６３】
2007336369.tif 000065
【図６４】
2007336369.tif 000066
【図６５】
2007336369.tif 000067