(57)【要約】【課題】異種のスマート環境間での遠隔コミュニケーションのために、異なるサービスをつなぎ合わせて、ユーザにサービスを推薦するシステムを提供する。【解決手段】将来のユビキタス社会では、多数のセンサや情報機器、各種ネットワークによって構築される環境、スマート環境が様々な場所に遍在すると考えられる。これらのスマート環境は、構築された場所に応じて、様々に異なる機器、サービス、アーキテクチャで実装される。遠隔のスマート環境のネットワークを接続する機構として「PeerPool」、及び、異なるプロトコルのスマート環境をWeb サービスとして公開する機構、の設定の自動化を行う。ユーザに対してサービスを推薦する機構として、テンプレートマッチングによるサービスの選択と、インスタントメッセージングを利用した対話的なユーザインタフェースを実現した。【選択図】              図１
2010015242.tif 000002
【特許請求の範囲】
【請求項１】
情報を提供する機能が組み込まれた生活空間であるスマート環境をそれぞれ構成する複数のシステムの間において通信を可能にする方法であって、
前記複数のシステムは、コンピュータやプリンタなどの装置をそれぞれ含み、
前記複数のシステムは、アプリケーションでどのようなサービスを使用するかを記述するテンプレートであって、少なくとも、アプリケーションが使用する機能、前記機能を実現するサービス及びそのプロトコルの識別子が予め定義されているテンプレートを備え、
一方のシステムが他方のシステムへメッセージを送信するステップと、
前記他方のシステムが前記一方のシステムへ、アプリケーションが使用する機能、前記機能を実現するサービス及びそのプロトコルの識別子を含む返信を送るステップと、
前記一方のシステムが、前記テンプレートを参照して、前記返信に基づき前記複数のシステムの間で使用可能なサービスを特定するステップと、
前記一方のシステムが、その前記コンピュータの画面上に前記使用可能なサービスを表示するステップと、
前記一方のシステムが、前記他方のシステムに対して前記使用可能なサービスへのアクセスを許可するステップと、を備える異種スマート環境制御方法。
【請求項２】
前記使用可能なサービスへのアクセスを許可するステップにおいて、
前記一方のシステムが、前記他方のシステムに対して、可能なリクエストの内容、利用期限及び識別情報を含むアクセス権限の情報が書き込まれているチケットを発行するステップと、
前記他方のシステムが、前記一方のシステムに対して行う前記サービスのリクエストに前記チケットを添付するステップと、
前記一方のシステムが、前記他方のシステムからの前記リクエストに添付された前記チケットの内容を調べ、前記リクエストが前記チケットに書かれたアクセス権限の情報に適合しないときは、当該リクエストを拒否するステップと、を備えることを特徴とする請求項１記載の異種スマート環境制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報を提供する機能が組み込まれた生活空間であるスマート環境をそれぞれ構成する複数のシステムにおいて、それらの間で通信を可能にする方法に関する。
【背景技術】
【０００２】
将来のユビキタス社会では、多数のセンサや情報機器、各種ネットワークによって構築される環境、スマート環境が様々な場所に遍在すると考えられる。これらのスマート環境は、構築された場所に応じて、様々に異なる機器、サービス、アーキテクチャで実装されることが予想される。
【０００３】
スマート環境とは、情報支援を提供する機能が組み込まれた生活空間（居住空間や公共空間等）のことである。例えば、無線ＬＡＮにて接続されたパソコン、プリンタ、通信機器などが存在するオフィスや家庭は一種のスマート環境である。スマート環境内であれば、パソコンからプリンタ等へのアクセスを容易に行うことができるが、他のオフィスや家庭、つまり他のスマート環境との間で任意のデータ交換などを容易にできるとは限らない。
【０００４】
【特許文献１】特開２００６−３０２２９７号公報
【非特許文献１】田中宏一、河口信夫、西尾信彦「Secure Semantic Tunnelingによる異種スマート環境接続の設計」情報処理学会研究会報告（第１３回ユビキタスコンピューティングシステム研究会）、2006-UBI-12(2006)
【非特許文献２】中野悦史、西尾信彦：PeerPool：DNSクエリによって構成されるオーバーレイネットワーク、インターネットコンファレンス2007（IC2007）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
遠隔地とのコミュニケーションを行う場合、一般的によく利用される機能としては、映像・音声によるコミュニケーション、PC 画面共有、ファイル共有、共同編集作業、などがある。これらは既に各機能を実現するサービスや、用途に特化されたプロトコルが存在する。しかし、これらのサービスはそれぞれに固有の知識、設定が必要で、一般的なユーザが利用するには技術的な知識が不可欠である。また、異種のスマート環境間においては、VPN などのネットワークの接続、異なるフレームワークとの接続、IP アドレスの入力などのネットワークアプリケーションの設定、などを行わなければならないといった課題がある。
【０００６】
このような課題に対して、この発明は、既存のサービス、及び、スマート環境を利用するまでの準備・手順をなるべく簡便にでき、このとき既存のネットワークに大きな変更を必要としない異種スマート環境制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明は、情報を提供する機能が組み込まれた生活空間であるスマート環境をそれぞれ構成する複数のシステムの間において通信を可能にする方法であって、
前記複数のシステムは、コンピュータやプリンタなどの装置をそれぞれ含み、
前記複数のシステムは、アプリケーションでどのようなサービスを使用するかを記述するテンプレートであって、少なくとも、アプリケーションが使用する機能、前記機能を実現するサービス及びそのプロトコルの識別子が予め定義されているテンプレートを備え、
一方のシステムが他方のシステムへメッセージを送信するステップと、
前記他方のシステムが前記一方のシステムへ、アプリケーションが使用する機能、前記機能を実現するサービス及びそのプロトコルの識別子を含む返信を送るステップと、
前記一方のシステムが、前記テンプレートを参照して、前記返信に基づき前記複数のシステムの間で使用可能なサービスを特定するステップと、
前記一方のシステムが、その前記コンピュータの画面上に前記使用可能なサービスを表示するステップと、
前記一方のシステムが、前記他方のシステムに対して前記使用可能なサービスへのアクセスを許可するステップと、を備える異種スマート環境制御方法である。
【０００８】
前記使用可能なサービスへのアクセスを許可するステップにおいて、
前記一方のシステムが、前記他方のシステムに対して、可能なリクエストの内容、利用期限及び識別情報を含むアクセス権限の情報が書き込まれているチケットを発行するステップと、
前記他方のシステムが、前記一方のシステムに対して行う前記サービスのリクエストに前記チケットを添付するステップと、
前記一方のシステムが、前記他方のシステムからの前記リクエストに添付された前記チケットの内容を調べ、前記リクエストが前記チケットに書かれたアクセス権限の情報に適合しないときは、当該リクエストを拒否するステップと、を備えるようにしてもよい。
【発明を実施するための最良の形態】
【０００９】
本発明の実施の形態では、必要な機能に最適なサービス、プロトコルを利用し、それらを貼り合わせることをコンセプトとした、サービス推薦・設定自動化システム（以下、「NUE システム」と記す）を提案する。NUE システムは、設定・制御を自動化する機構、システム・アプリケーションに対応したハンドラ、ユーザインタフェースを提供する機構、から構成されるシステムである。またNUEシステムは、遠隔のネットワークを接続するPeerPool、遠隔のNUEシステム・ユーザと通信するためのインスタントメッセージクライアントを使用する。
【００１０】
本発明の実施の形態のNUE システムは、異なるサービスを組み合わせて自動的に実行できる機構、ユーザにサービスを推薦する機構を持つ。つまり、NUE システムは、異種のサービス、プロトコルに対するユーザインタフェースとなり、一連の設定・制御を自動化する。その際には、サービスそのものを使用するとともに、遠隔のスマート環境のネットワークを接続するPeerPool、異なるプロトコルのスマート環境をREST によりWeb サービスとして公開するアーキテクチャ、遠隔ユーザに対してスケーラブルな権限管理を行うための「チケット認証方式」を使用する。
【００１１】
PeerPool、REST によりWeb サービスとして公開するアーキテクチャ及びチケット認証方式については、後に詳しく説明する。
【００１２】
図１は、発明の実施の形態に係るNUE システムによる異種のスマート環境の接続の説明図である。スマート環境とは、情報支援を提供する機能が組み込まれた生活空間（居住空間や公共空間等）のことである。例えば、無線ＬＡＮにて接続されたパソコン、プリンタ、通信機器などが存在するオフィスや家庭は一種のスマート環境である。スマート環境内であれば、パソコンからプリンタ等へのアクセスを容易に行うことができるが、他のオフィスや家庭、つまり他のスマート環境との間で任意のデータ交換などを容易にできるとは限らない。
【００１３】
１Ａ，１Ｂはスマート環境、２は通信ネットワークである。
１１Ａ，１１Ｂはサービスアーキテクチャである。ここで、サービスアーキテクチャとは、デバイスやシステムをネットワークを通じて制御するため一連の手続きである。例えば、UPnP、Bonjour、Jini、cogma、UnitedSpacesなどである。
１２Ａ、１２Ｂはアプリケーションである。ここで、アプリケーションとは、スマート環境での利用を想定していないような、一般的な既存のソフトウェア、システムである。例えば、映像・音声によるコミュニケーション，PC 画面共有，ファイル共有，共同編集作業，などがある。
【００１４】
１３Ａ，１３Ｂはサービスアーキテクチャゲートウェイである。ここで、サービスアーキテクチャゲートウェイとは、サービスアーキテクチャのクライアント機能とRESTによるサービスの公開機能、サービスへのアクセスを承認・許可・制限する機能を持った機構である。
１４Ａ，１４Ｂはネットワーク接続である。ここで、ネットワーク接続とは、遠隔のローカルエリアネットワーク間を相互に接続させ、かつ、DNSによる名前解決も行う機構である。
１５Ａ，１５Ｂはトランスレータである。ここで、トランスレータとは、異なるサービスアーキテクチャ、異なるアプリケーションの間にたち、プロトコルを翻訳して相互接続できるようにする機構である。
【００１５】
１６Ａ，１６Ｂはコンフィグレーション機構である。ここで、コンフィグレーション機構とは、上記の各機構が動作するのに必要な設定を自動的に行う機構である。
１７Ａ，１７Ｂは管理インタフェースである。ここで、管理インタフェースとは、コンフィグレーション機構が行う設定をユーザから制御することができるユーザインタフェースを提供する機構である。
【００１６】
本明細書で提案するNUE システムは、図１のコンフィグレーション機構１６Ａ，１６Ｂと、管理インタフェース１７Ａ，１７Ｂにあたる。コンフィグレーション機構１６Ａ，１６Ｂは、各モジュールを制御することで、複雑な設定の自動化を行う。また、管理インタフェース１７Ａ，１７Ｂは、コンフィグレーション機構１６Ａ，１６Ｂが行う自動処理に対して、セキュリティ上必要な承認を行う。同時に、使用できるサービスを推薦する。
【００１７】
コンフィグレーション機構１６Ａ，１６Ｂが扱うサービス、アプリケーションには、既に様々な用途に特化したプロトコル、サービスアーキテクチャが存在することが考えられる。ここで、アプリケーションとして遠隔コミュニケーションを設定しているが、遠隔コミュニケーションに特化したプロトコルでは、リアルタイムに音声、動画通信を行うためのH.323、PC 画面を共有するためのVNC（Virtual Network Computing）で利用するRFB プロトコル、などがあげられる。また、将来普及するプロトコル、サービスアーキテクチャ、アプリケーションも扱えるように設計されている必要がある。
【００１８】
これらのことから、次の2 つをNUE システムのコンセプトとした。
・中間言語を用意せず、既存の異なるプロトコルを貼り合わせてアプリケーションを実現する。
・アプリケーションの要件に応じて、最適なサービス、プロトコルを適用できる。
【００１９】
また、遠隔のスマート環境を接続する場合には、適切にサービスの提供側がサービス、アプリケーションの実行を制御できなければならない。コンフィグレーション機構１６Ａ，１６Ｂによって、サービスやアプリケーションの接続は自動化でき、ユーザは煩雑な設定作業、専門知識から解放されるが、遠隔地との接続であるため、完全に自動化するのではなく、2 者間での確認の上で接続されることが求められる。
【００２０】
ここで、遠隔地とのコミュニケーションを行うシーンとして遠隔会議を選ぶ。遠隔会議での一連の作業を自動化する場合には次に挙げる機能が必要である。
( 1 ) ユーザの特定（会議相手を特定する）
( 2 ) プレゼンス交換（会議相手の状況を確認し、開始を呼びかける）
( 3 ) サービス情報の交換（各々の環境で利用できるサービスと、プロトコルやIP アドレスなどのサービス情報を相互に確認する）
( 4 ) サービス提示（ユーザに利用可能なサービスを通知し、使用するかどうかを確認する）
( 5 ) ネットワークの接続（グローバルアドレスの確認や、双方向の通信が必要なサービスのために、ネットワークのトンネリングを行う）
( 6 ) サービス実行（異種かつ遠隔のサービスを実行する）
【００２１】
上記の一連の作業について、実際の遠隔会議を調査した結果について述べる。
（１） と（2） では、会議相手を特定し、会議可能かどうかの呼びかけを行う。これは、電話やインスタントメッセンジャーを利用することが多い。会議相手が会議可能であることが確認できれば、次に（3） で通信方法を確認する。例えば、TV 会議システムが利用できることを確認し、TV 会議システムのIP アドレスを伝え合う。（4） では、PC 画面共有などのアプリケーションが利用できることを相手に伝え、利用するかどうかを確認する。更に（5） で、アプリケーションを利用する際、ネットワークの接続が必要であれば、グローバルアドレスを伝えたり、VPN の設定などを行う。最後に（6）で、アプリケーションを実行し、遠隔地とのPC 画面共有や、ファイル共有を行う。
【００２２】
ユーザを特定し、かつプレゼンス交換を行う仕組みとして、NUE システムでは、その用途に特化した標準的なサービス、プロトコルを利用する、というコンセプトから、現在よく利用されているインスタントメッセンジャー（以下、IM）を利用している。これにより、ユーザは特殊なソフトウェアをインストールしなくてもよい。
【００２３】
ユーザは遠隔地とのコミュニケーションを始めるにあたり、IM のアカウントによって会議相手を特定する（ユーザの特定）。この際、IM の状態によって、在席状況などを確認することができる。また、実際にメッセージを送信することで、会議が始められるかどうかを確認する（プレゼンス交換）。IM を利用すれば、遠隔地のユーザとの通信を容易に行うことができる。
【００２４】
システムが、参加しているユーザ及び接続するスマート環境を特定するため、NUE システムにはIMクライアントの機能を持たせる。会議が始められるとき、ユーザはNUE システムのアカウントを上記のチャットに招待する。このようにすることで、ユーザはシステムに対して、遠隔会議に参加しているユーザや接続先といった情報を入力しなくてもよい。また、ユーザはIM を通じてNUE システムと対話することができる。
【００２５】
NUE システムは、IM を利用して遠隔地のNUE システムと通信を行いながら、遠隔地との間で使用するサービスを確認し、複数拠点のユーザに対してサービスを推薦する。まずNUE システムでは、アプリケーションでどのようなサービスを使用するかを記述しておく。この記述（テンプレート）に基づいて、NUE システムは使用するサービスを選びだす。アプリケーションを遠隔コミュニケーションにした場合、使用する機能は、映像交換、音声交換、画面共有、資料交換、などになる。
【００２６】
テンプレートには、アプリケーションが使用する機能、その機能が必須かどうか、機能を実現するサービス・プロトコルの識別子、優先順位を定義しておく。
【００２７】
NUE システムは、テンプレートに書かれているサービスのタイプと、スマート環境にあるサービスのタイプの比較を行い、ユーザにサービスを推薦するかどうかを判断する。サービスアーキテクチャゲートウェイ１３Ａ，１３Ｂはスマート環境のサービスをREST サービスとして外部に公開するが、REST サービスを記述するWADL（Web Application Description Language）にサービスのタイプの情報を加えておき、テンプレートに当てはまるサービスかどうかを判断する。REST及びREST サービスについては後述する。WADLとはWeb Application Description Languageの略であり、RESTに適合したWebサービス仕様を記述するためのXMLの仕様である。
【００２８】
次にNUE システム（図１の１Ａ又は１Ｂ）は、自身のスマート環境で利用できるサービスを、遠隔の（他方の）NUE システムに対して通知する。NUE システム同士で利用できるサービスを確認し合うことで、アプリケーションで使用する機能のうち、実際にはどのサービスが利用できるのかを把握する。
【００２９】
このようにアプリケーションのテンプレートを記述しておき、異なるアプリケーション、例えばプレゼンテーションといったアプリケーションを実行する場合は、プレゼンテーションのテンプレートに基づいてユーザにサービスを推薦する。
【００３０】
NUE システムは、ピックアップされたサービスをユーザに推薦する。ユーザへのサービス推薦は、システム側からユーザ側へPUSH される情報であり、一方でユーザは利用するサービスをシステムに伝える必要がある。これら一連の対話的操作に関して、NUEシステムはIM を利用する。
【００３１】
NUE システムは、「TV 会議システムが利用できます。公開しますか？」といった推薦のメッセージをIMに表示させる。このときのIM の送信先は、NUE システムをチャットに招待したユーザである。この推薦のメッセージは、NUE システムの管理するWeb サーバへのURL になっており、ユーザはリンクをクリックすることでサービスの利用許可をNUE システムに指示する。
【００３２】
図２は、上述したサービス推薦のシーケンスの説明図である。
アプリケーションテンプレートとは、推薦するサービスとサービスの組み合わせを記述した設定ファイルである。アプリケーションテンプレートは、図１の１６Ａ，１６Ｂのコンフィグレーション機構が、参照する設定ファイルである。
ローカルＷｅｂサーバとは、ユーザを対話するためのインタフェースを提供する機構である。ローカルＷｅｂサーバは、図１の１７Ａ，１７Ｂの管理インタフェースに対応するものである。
【００３３】
図２を参照してサービス推薦の手順を説明する。
【００３４】
第１ステップ：図１のコンフィグレーション機構１６Ａは、図２のアプリケーションテンプレートを参照し、ユーザに推薦すべきサービスを把握する。そのサービスが自分のサイトのサービスアーキテクチャにあるかどうかを、サービスアーキテクチャゲートウェイ１３Ａを通じて問い合わせ、サービスのマッチングを行う。また、サービスアーキテクチャでないサービスがあるかどうかは、サービスハンドラを通じて確認する。
【００３５】
第２ステップ：コンフィグレーション機構１６Ａは、接続先のスマート環境Bのコンフィグレーション機構１６Bにあるサービスを問い合わせる（一方のシステムが他方のシステムへメッセージを送信する）。このとき、コンフィグレーション機構１６Ａは、使用可能サービスを、アプリケーションテンプレートの記述形式で記述し、コンフィグレーション機構１６Bに問い合わせる。コンフィグレーション機構１６Bは、コンフィグレーション機構１６Aから取得したアプリケーションテンプレートをもとに、第１ステップの手順と同様に、スマート環境Ｂ（１Ｂ）で使用可能なサービスを確認しコンフィグレーション機構１６Aに返答する（アプリケーションが使用する機能、前記機能を実現するサービス及びそのプロトコルの識別子を含む返信を送る）。
【００３６】
第３ステップ：コンフィグレーション機構１６Ａはスマート環境A（１A）とスマート環境B（１B）に問い合わせた結果判明した、使用可能なサービスを、ユーザに対してIMを利用して推薦する（コンピュータの画面上に前記使用可能なサービスを表示する）。推薦するために必要な情報が多い場合は、ユーザインタフェースはローカルWebサーバ１７Aが作成し、ユーザにはローカルWebサーバ１７Aへのリンクを提示する。
【００３７】
第４ステップ：ユーザはIMないしローカルＷｅｂサーバが作成したユーザインタフェースを通じて、コンフィグレーション機構１６Ａに対して推薦されたサービスの使用許可を与える（使用可能なサービスへのアクセスを許可する）。
【００３８】
許可の与えられたローカルＷｅｂサーバは、適切なセキュリティの措置をとった上で、遠隔のNUE システムからサービスにアクセスできるようにする。また、接続先のユーザに対し、利用できるサービスを提示する。
【００３９】
公開するサービスがサービスアーキテクチャに基づいたサービスであり、接続先のスマート環境に適切なクライアントソフトウェアがない場合は、サービスはRESTful なWeb サービスとして公開する。RESTful とは、REST（Representational State Transfer）の原則に従って実装されたシステムである。RESTは、ステートレス、HTTPメソッドによるCRUD、リソースを一意に定義できるURI、ハイパーメディアの活用、といった特徴を備えた、XMLとHTTPを活用したWebサービスシステムである。このとき、NUE システムは、ユーザが許可したサービスのみアクセスすることができるチケットを作成する。NUE システムは、サービス情報として、REST のサービスについて記述したWADL にアクセスするためのURL と、REST サーバにアクセスする際に使用するチケットを遠隔のNUE システムに送信する。REST によるサービス公開、権限管理機構については、後に詳しく説明する。
【００４０】
公開するサービスが既存のネットワークアプリケーションで、プライベートネットワークの接続によって通信可能になる場合は、NUE システムはPeerPool の機能を利用し、スマート環境間のネットワークのトンネリングを行う。PeerPool では、PeerPool 上の仮想ネットワークにホストを公開する際、DNS クエリによって公開するDNS 名を登録する。NUE システムは、PeerPool の接続に必要な鍵データなどのデータ、登録されたDNS 名、プロトコル、ポートなどのデータを遠隔のNUE システムに送信する。PeerPool によるネットワーク接続、ホスト公開については、後に詳しく説明する。
【００４１】
これらのサービス情報を受信したNUE システムは、ユーザに対して利用できるサービスを提示する。REST により公開されたサービスは、前述のように、サービスを実行するクライアントソフトウェアが遠隔地側にない。そのため、WADL を読み取って、そのサービスをどのように制御できるのかを取得する。そののち、サービスのリストと制御方法（例えば「on」と「off」）を表示するHTML ページを作成し、ユーザに表示する。当該HTMLページ上で任意のサービスを選択しそれを制御する（例えば、「on」又は「off」とする）と、REST サーバに対して、当該内容に対応するXML メッセージが送信され、当該サービスが実行される。
【００４２】
既存のネットワークアプリケーションを公開した場合、遠隔コミュニケーションの例では、TV 会議システムを接続させる、VNC クライアントを起動する、などの処理を行うことになる。これは、サービスのタイプに応じたハンドラが、接続先の情報をクライアントに対して適切に通知することになる。通知の方法は以下のものが考えられる。
( 1 ) サービス実行の確認をIM やブラウザにて行う
( 2 ) アプリケーションに対応したプロトコルハンドラによるURL をIM やブラウザに表示する
( 3 ) 接続情報をダウンロードさせる
【００４３】
（1） の場合、NUE システムは「TV 会議システムが利用できます。接続しますか？」といったメッセージをIM に表示させる。このメッセージはNUE システムの管理するWeb サーバへのURL になっており、ユーザがリンクをクリックすると、対応するサービスのハンドラが、TV 会議システムの接続を行う。
【００４４】
（2） の場合、NUEシステムは、アプリケーションに対応するURL handler-name://dns-name/ をIM にメッセージとして表示する。ここで、"handler-name" はアプリケーションのプロトコルハンドラであり、"dnsname"はPeerPool に登録された仮想DNS 名である。
【００４５】
（3） の場合、NUE システムは接続情報を格納したファイルをローカルWeb サーバからダウンロードできるようにし、そのURL をIM にメッセージとして表示する。例えばVNC の場合、拡張子が「vnc」であるファイルを作成する。このファイルにはPeerPool に登録されたDNS 名を接続先アドレスとして記述しておく。
【００４６】
発明の実施の形態に係るNUE システムではクライアント端末に一般的にインストールされているソフトウェアを利用して、スマート環境のアーキテクチャに依存しないユーザインタフェースを実現した。また、スマート環境やサービスの情報、設定を把握し、自動的にネットワークのトンネリングとサービス実行を可能にすることを確認できた。また、コンフィグレーションの機構は、アプリケーションテンプレートに沿って自動的に各モジュールの設定を行った。アプリケーションテンプレートを記述することで、様々なアプリケーションに対応することができる。将来、新しいサービスアーキテクチャに対応するにはサービスアーキテクチャゲートウェイを、新しいネットワークアプリケーションに対応するにはサービスハンドラを実装すればよい。
【００４７】
［REST によるWebサービス公開についての説明］
まず、REST に基づくWeb サービスについて説明する。Web サービスとは、HTTP などのWeb 技術の基盤を用いてメッセージ交換を行うことにより、異なるソフトウェアとの連携を行うソフトウェアサービスのことである。REST（Representational State Transfer）は、HTTP本来のモデルをそのままWebサービスのインタフェース（API）として用いるスタイルであり、スケーラブルな分散ソフトウェアをシンプルに構築する手法として近年主流になりつつある。REST では、全てのリソースにURL をつけ（アドレッシング性）、リソースの状態を（html 形式、XML形式などで）表現可能とする。また、リソースの状態を取得、変更するために、リソースに対して統一されたインタフェース(HTTP のGET、 PUT、 POST、DELETE メソッドなど) を定義して、状態の表現を転送する。REST の原則に従うことにより、HTTP の仕組み（キャッシュ、プロクシ、Keep-Alive、負荷分散、認証、暗号化等）を有効に活用できる。また、アプリケーションの状態をサーバに持たせないこと（ステートレス性）により、ユーザの増加に対してスケーラビリティを持つ。
【００４８】
本発明の実施の形態では、各々のスマート環境で独立に開発されたミドルウェア間の差異を吸収するため、各スマート環境に設けられたREST サーバが、各スマート環境に存在するサービス（機器の機能など）を、REST に基づくWeb サービスとして公開する。REST サーバは、図１のサービスアーキテクチャゲートウェイ１３A、１３Bに相当する。クライアントアプリケーション（REST クライアント）がこれらのWeb サービスを利用することによって、異種スマート環境間の連携を行う。
【００４９】
各サービスはリソースとして扱われ、URL を持っている。リソースのURL に対して、GET メソッドでアクセスすることによりリソースの状態を取得し、PUTメソッドで状態を更新する。
【００５０】
ここで、ユーザ管理が不要なアクセス権限管理手法として、チケット認証方式を採用する。本方式は、イベント等で利用される紙のチケットから着想を得たものであり、ユーザを特定せずにチケットの情報のみでサービスのアクセス権限を判断する。このため、サービス提供側で別途ユーザの管理をしなくても良く、ユーザの増加に対してスケーラブルな基盤が実現できる。
【００５１】
［チケット認証方式による権限管理機構についての説明］
チケット認証方式をREST アーキテクチャに適用するため、以下のようにする。本方式では、サービス管理者が、サービス利用者（ゲストユーザ）に対して「チケット」と呼ばれるデータを発行し、サービス利用者は、REST サーバへのリクエストを行う際に、このチケットを添付する。
【００５２】
チケットには、REST サーバに対するアクセス権限の情報が全て含まれ、チケットに含まれる情報のみでアクセス権限を判断できる。アクセス権限の情報はXML で記述し、可能なリクエスト内容（どのURLに対して、どのHTTP メソッドが使えるか）、チケットの利用期限、認証対象となるREST サーバ（レルム）を特定するレルム名、チケットを特定するID が含まれる。（これ以外の情報を追加してサーバ側で利用しても良い）
【００５３】
チケットには、改ざん防止用の署名を付加し、サービス利用者が権限の情報を書き換えることを防止する。レルム(REST サーバ) ごとに秘密鍵を用意し、アクセス権限情報（body 要素）と秘密鍵を合わせたデータに対して、SHA1 ダイジェストを計算したものを、チケットに付加することにより、改ざん防止用の署名を行う。
【００５４】
サービス管理者は、アプリケーションで利用する署名済みチケットをbase64 エンコードした文字列（チケットトークン）を、サービス利用者に渡す。複数の異種スマート環境にアクセスするような場合には、複数のレルムに対するチケットをつなげて（複数のticket 要素を子に持ったtickets要素をルートとしてXML を作成）、単一のチケットトークンとすることもできる。
【００５５】
サービス利用者は、Web サーバに対してHTTP リクエストをする際に、このチケットトークンをAuthorizationヘッダに添付する。なお、チケットの盗聴を防止するために、チケットを添付してREST サーバへアクセスする際には、SSL（Secure Socket Layer）などを用いて通信路を暗号化する。
【００５６】
チケット認証方式はWeb サーバ（REST サーバ）に対する拡張として埋め込まれ、チケットに書かれたアクセス権限情報に合わないリクエストはWeb サーバ側で自動的に拒否する。また、チケット認証方式では、Web サーバに対して別途ゲストユーザの認証情報を登録する必要が無い。このため、Web サーバ上で動作するアプリケーション開発時には、特にチケット認証方式を意識する必要がない。すなわち、チケット認証方式を用いれば、Web サービスを開発する際に、ゲストユーザに対してスケーラブルかつきめ細かなアクセス権限管理を、容易に実現できる。
【００５７】
［PeerPool によるネットワーク接続、ホスト公開についての説明]
PeerPoolは、DNSクエリをインタフェースとして複数のスマート環境の間で必要な機器のみを接続する公知技術である（非特許文献２）。PeerPool は、各ネットワークに設置されたPoolGateway(以下、PoolGW) と呼ばれるホスト間で構築されるIP レイヤのオーバレイネットワーク(以下、Pool ネットワーク) を、DNS クエリをインタフェースとして即時制御・構成するシステムである。PeerPoolではノード単位のアクセス制御が可能であり、選択的にローカルネットワーク内にあるノードをPool ネットワークに公開することができる。VPN などで必要とされる末端ホスト間での事前経路構築は必要ない。
【００５８】
Peer ネットワークに公開されたホストに対してPoolGW ではNAT が構築され、Pool ネットワークから特定のIP アドレスでアクセスすることが可能となる。Pool ネットワークPoolGW を有するローカルネットワークからはPoolGW をデフォルトルートやPool ネットワークで利用されるアドレス体系へのネクストホップとして指定することで、PoolGW を経由して公開ホストへアクセスすることができる。
【００５９】
Pool ネットワークへの公開はPoolGW に対して特定形式のホスト名に対するの名前解決DNS クエリを送ることで行われ、DNSクエリへの返答としてPool ネットワーク用に付加されたIP アドレスが返される。
【００６０】
PeerPool はPoolGW をデフォルトルートやDNS サーバとして指定するだけで、簡単に全ての機能を発揮できる。しかし、これらすら変更することができないホストは存在しうる。これに対し、PeerPool の仮想ローカルノード化機能を利用することで、DNS サーバの変更のみで利用することが可能となる。この各ホストにおけるDNS サーバの変更も、既存のDNS サーバでパケットフォワードを行い、DNS クエリを一度PeerGW に転送する形として、PeerGW からのアクセスのみを既存DNS サーバで受け付ける形にすることで不要にでき、DNS サーバ以外の既存ホストへ変更を加えることなく、ローカルネットワーク全体からPeerPool を利用することが可能である。このときの概要を図３に示す。図３における符号Ａ〜Ｃは、図１のサービスＡ１、Ａ２、Ｂ１、Ｂ２やアプリケーションＣ，Ｄ，Ｅに対応する。また、図３におけるPoolGWは、図１のネットワーク接続１４A、１４Bに対応する。図３における符号Ａ’やＢ’は、Pool Network上の仮想アドレスであり、サービスやアプリケーションに対応する。
【００６１】
仮想ローカルノード化を行った公開ホストにはPoolネットワークのIP アドレスだけではなく、ローカルネットワークのIP アドレス体系に従って空きIP アドレスが割り当てられる。PoolGW が該当IP アドレスを仮想アドレスとして保持するなどの方法で、ローカルネットワークに対して該当IP アドレスを公開し、該当IP アドレスへのアクセスはPoolGW がNAT を用いてPool ネットワークのIP アドレスへ変換する。事実上、PoolGW らにより双方向NAT が行われる。
【００６２】
Pool ネットワークに公開されている“newhostname. a group name.pool” というホストを仮想ローカルノード化する場合、“newhostname.a group name.local.pool” に対する名前解決DNS クエリをPoolGWに送ることで行える。DNS クエリへの返答として、新たに付加されたローカルネットワークのIP アドレスが返される。許可されていない場合や失敗の場合は名称解決が失敗する。成功した場合、PoolGWをDNS サーバとして利用することで“newhostname.a group name.local.pool” のホスト名を用いてアクセスすることが可能となる。
【００６３】
NUE とPeerPool を用いたサービスアクセスに連動したトンネルネットワークの自動構築の実現について説明する。
【００６４】
NUE によるサービス公開に、前述したPeerPoolの仮想ローカルノード化を用いると、通信経路を確保する対象のホスト側に変更を加える必要がなく、サービスアクセスに連動したネットワーク間のトンネル自動構築が可能となる。例えば、VNC サーバに“vnc.some group.some smartspace.pool” という名称を付加して公開することで、NUE 経由でネットワーク的に隔絶した環境から通常のVNCクライアントを用いて“vnc.some group.some smartspace.local.pool”として利用することが可能となる。
【００６５】
この“vnc.some group.some smartspace.local.pool”と該当サービスとの関連性はNUE によって管理され、公開ホストの情報は、連携に参加しているNUE 間で共有され、サービス間連携の構築時に各サービスが利用するホスト名として用いられる。これは各サービスやソフトウェア上では通常ホストと同様の扱いとなり、意識させることなく動的なトンネルネットワークの構築が実現される。
【図面の簡単な説明】
【００６６】
【図１】発明の実施の形態に係るNUE システムによる異種のスマート環境の接続の説明図である。
【図２】発明の実施の形態に係るサービス推薦のシーケンスの説明図である。
【図３】仮想ローカルノード化によるアクセスの説明図である。
【符号の説明】
【００６７】
１Ａ，１Ｂ  スマート環境（システム）
１１Ａ，１１Ｂ  サービスアーキテクチャ
１２Ａ，１２Ｂ  アプリケーション
１３Ａ，１３Ｂ  サービスアーキテクチャゲートウェイ
１４Ａ，１４Ｂ  ネットワーク接続
１５Ａ，１５Ｂ  トランスレータ
１６Ａ，１６Ｂ  コンフィグレーション機構
１７Ａ，１７Ｂ  管理インタフェース
２    通信網
【図１】
2010015242.tif 000003
【図２】
2010015242.tif 000004
【図３】
2010015242.tif 000005