以下、本発明の一実施の形態を、図1〜図9を参照して説明する。
図1は、本例のシステムの全体構成の例を示した図である。本例においては、利用者自宅20内に設置された家庭内端末21を、インターネット1で接続して、家庭外にいる利用者30が、コンピュータ装置などのデータ通信端末31を使用して、家庭内の様子を監視したり、リモートコントロールするようにしたものである。この場合、家庭内端末21は、インターネット1を介して本例のシステム専用に用意されたホームサーバシステム10と接続するようにしてあり、家庭外のデータ通信端末31についても、インターネット1を介してホームサーバシステム10と接続して、ホームサーバシステム10を経由してデータ通信端末31とデータ転送を行うようにしてある。また、家庭外の端末としては、コンピュータ装置などの端末以外に、携帯電話端末32を使用することも可能なシステムとしてある。この携帯電話端末32については、例えばインターネットなどにアクセス可能な端末を使用する。
なお図1では、家庭内端末21と家庭外のデータ通信端末31とが、1組だけホームサーバシステム10に接続された例としてあるが、実際には多数の組の利用者がホームサーバシステム10に接続されて、それぞれの利用者の管理をホームサーバシステム10が行うものである。また、ホームサーバシステム10については、実際には複数のサーバ10a,10b‥‥が用意されて、多数の利用者が同時に利用できるシステムを構築してある。
図2は、利用者自宅20内に設置された家庭内端末21に接続される構成例を示した図である。家庭内端末本体21は、ADSL(Asymmetric Digital Subscriber Line)回線用のモデムルータ22を介してインターネットに接続するためのブロードバンド回線23(実際には電話回線)と接続してあると共に、電話回線24にも直接接続してあり、家庭内端末21の周辺機器とのデータの受け渡しを行う。具体的には、例えば家庭内端末21には、リモートコントロール信号の受信部21aを備えて、リモートコントローラ28からの各機器のリモートコントロール信号(赤外線信号など)を受信したり、リモートキー29からの施錠又は開錠を指示するリモートコントロール信号などを受信し、これらのリモートコントロール信号の受信に基づいて対応した機器制御を行う。また、家庭内端末21にはRFアンテナ21bが接続してあり、人感センサ41での在宅者や侵入者の検出信号、窓・ドアセンサ42での開閉の検出信号、火災センサ43での火災検出信号、ガス漏れセンサ44でのガス漏れ検出信号、非常用押しボタン45の操作信号などを、RFアンテナ21bで受信して、これらの受信信号に基づいて、特定の利用者のデータ通信端末への通知などの予め設定された処理を行う。
また、家庭内端末本体21には、ディスプレイ25と、カメラ26と、テレビフォンマイク27が接続してあり、ディスプレイ25には、家庭内端末21の現在のモード(在宅モード,外出モードなど)の表示や、各機器のモニタリング状態の表示、外部から受信した伝言メモの表示、テレビフォンとして使用する際の相手や自分の映像の表示、その他の各種設定に関する表示などを行うようにしてある。また、テレビフォンとして外部と映像付きの通話を行う際には、カメラ26とテレビフォンマイク27を使用する。これらのディスプレイ25での表示の切換えなどは、例えばリモートコントローラ28の操作で行える。
なお、ホームサーバシステム10などとの通信は、基本的にはADSLなどのブロードバンド回線23を介して行うが、ブロードバンド回線23が使用できない状況の場合や、緊急性の高い通報が必要な場合には、電話回線24を使用したダイヤルアップ接続で、ホームサーバシステム10又はその他の決められた相手に連絡することもできる。また、ブロードバンド回線23については、ADSLに限定されるものではなく、光ケーブルによるブロードバンド回線、無線によるブロードバンド回線など、インターネットに接続可能な各種ブロードバンド回線が適用可能である。
次に、この家庭内端末本体21とインターネットなどを介して通信を行う場合の、ホームサーバシステム10を介した接続例を、図3を参照して説明する。外部にいるユーザ側の端末であるデータ通信端末31又は携帯電話端末32は、ホームサーバシステム10を介して家庭内端末21とデータ転送を行うようにしてあり、外部の端末31又は32からは、家庭内端末21で何らかの処理を実行するリクエストをホームサーバシステム10に送る。そのリクエストは、ホームサーバシステム10内の連携処理手段101として機能する処理部に送られて、サーバの制御手段102の制御で、家庭内端末21側に送る。ホームサーバシステム10から外部の端末31又は32へは、リクエストに対するレスポンスで、処理結果を返送する。ホームサーバシステム10と家庭内端末21との接続についても、基本的には、家庭内端末21からリクエストを送って、そのリクエストに対するレスポンスをホームサーバシステム10から家庭内端末21に送る処理を行うようにしてある。家庭内端末21からのリクエストでの送信時には、セキュリティ管理が行われた通信を行うようにしてある。即ち、通信端末側からサーバにアクセスする場合にだけ可能なセキュリティ管理された通信方式である、HTTPS方式などの通信を適用して、家庭内に設置された通信端末からサーバシステム10側にリクエストを送って、そのセキュリティ管理された通信を家庭内端末21とサーバシステム10との間で開始させるようにしてある。
より具体的な処理例を、図4を参照して説明する。本例の場合には、ホームサーバシステム10内には、複数のサーバ10a,10b,‥‥が用意して、各サーバで分散して処理するようにしてあり、多数のユーザからの同時アクセスに対処できるようにしてある。この複数のサーバ10a,10b,‥‥が用意してあるために、ホームサーバシステム10内には、負荷分散装置110を設けてあり、ホームサーバシステム10に伝送されたリクエストを、各サーバに振り分けるようにしてある。ここで、受信したリクエストに、サーバを指定するデータが付加されている場合には、負荷分散装置110は、その受信したリクエストを指示されたサーバに送る。例えば、家庭内端末21からのリクエストに、第1のサーバ10aを指定するデータが付加されていることを負荷分散装置110が判別した場合に、そのリクエストを、第1のサーバ10aに送る。なお、ホームサーバシステム10内に複数のサーバ10a,10b,‥‥が用意してある場合であっても、各サーバ10a,10b‥‥で共通に使用されるデータベースなどを設けて、データを共有させるようにしても良い。例えば、このホームサーバシステム10が管理するユーザや家庭内端末についてのデータを、各サーバ共通のデータベースに登録しておく。
図4を参照して、外部のユーザ側端末31又は32からリクエストがあった場合の処理例について順に説明すると、まず外部のユーザ側端末31又は32から、特定の家庭内端末21を制御するためのリクエストd1がインターネットを経由して送られると、ホームサーバシステム10内では、負荷分散装置110が、特定の1つのサーバにそのリクエストd1を送る。ここでは、例えば第1のサーバ10aに送られたとする。この外部のユーザ側端末31又は32からホームサーバシステム10へのリクエストの送信については、原則として、HTTPS通信などのセキュリティ管理がされた通信で行う。
このリクエストを受信したサーバ10aでは、リクエストがどの家庭内端末を制御するリクエストであるか判別して、その判別した特定の端末である家庭内端末21に対して、インターネットを経由してコールバック要求d2を送る。なお、家庭内端末21については、図2に示したようにモデムルータ22を介してブロードバンド回線と接続させてあり、そのルータ22のWAN側IPアドレスと待ち受けポート番号を、ホームサーバシステム10側に登録してあり、その登録されたIPアドレスとポート番号を宛先として、コールバック要求d2を送る。このコールバック要求d2は、サーバからのアクセスであり、セキュリティ管理がされていない通信であり、この要求d2を送信させた第1のサーバ10aを識別するデータを付加させてある。IPアドレスとポート番号の登録処理は、例えば図5に示すように、モデムルータ22から家庭内端末21に送信されるモデムルータのWAN側IPアドレスと待ち受けポート番号を、予めホームサーバシステム10側に登録して、ホームサーバシステム10内の各サーバで共通に使用されるデータベースに記憶させておく。そして、ホームサーバシステム10内の各サーバがコールバック要求を行う際には、そのデータベースに記憶されたIPアドレスとポート番号を、コールバック要求の送信先のIPアドレスとポート番号に設定する。IPアドレスが固定されてなく、モデムルータ22に割当てられたIPアドレスが変更した場合には、家庭内端末21又はモデムルータ22からホームサーバシステム10側にIPアドレスを通知する。なお、このIPアドレスの変更と通知は、例えばUPnPなどのホームネットワーク向けの機器発見と制御を行うプロトコルを使用することで可能である。
図4の説明に戻ると、コールバック要求d2を受信した家庭内端末21では、コールバック応答としてのリクエストd3を送信する。このときのリクエストd3の送信は、HTTPS方式などのセキュリティ管理が行われた通信方式で行い、コールバック要求の送信元である第1のサーバ10aを指示するデータが付加してある。この第1のサーバ10aを指示するデータが付加してあることで、ホームサーバシステム10内の負荷分散装置110では、このリクエストd3を、第1のサーバ10aに送る。なお、以後の家庭内端末21とサーバ10aとの通信は、基本的にセキュリティ管理が行われた通信である。
そして、このコールバック応答としてのリクエストd3を第1のサーバ10aが受信すると、外部のユーザ側端末31又は32からのリクエストd1で指示された処理内容を、第1のサーバ10aからの家庭内端末21へのリクエストに対するレスポンスd4として送信し、ユーザ側端末31又は32から指示された処理内容を、家庭内端末21に伝える。
このようにして家庭内端末21での処理が行われた後には、第1のサーバ10aからユーザ側端末31又は32に対しても、レスポンスd5を送信する。このレスポンスd5を送る際にも、第1のサーバ10aを特定することができるデータを付加しても良い。
次に、ホームネットワークサーバ10内でのユーザ側端末31又は32と、家庭内端末21との連携処理の詳細について、図6を参照して説明する。ホームネットワークサーバ10内の各サーバでは、スレッド処理と称されるユーザ側端末31又は32と家庭内端末21との連携処理が必要になる。具体的には、外部のユーザ側端末31又は32との連携用の第1のスレッド処理手段121として機能する処理部と、家庭内端末21との連携用の第2のスレッド処理手段122として機能する処理部とを同一のサーバ内に有し、両処理手段121,122との間を接続するデータ格納領域として、処理内容格納領域123と、結果通知格納領域124と、実行結果データベース125とを有する。実行結果データベース125については、ホームネットワークサーバ10内の各サーバで共通のデータベースとしても良い。
具体的な処理を図6を参照して説明すると、まず外部のユーザ側端末31又は32からの、特定の家庭用端末21の処理内容を実行させるリクエストを、ホームネットワークサーバ10内のサーバ(例えばサーバ10a)が受信すると、その処理内容d11を第1のスレッド処理手段121が抽出して、サーバ内の処理内容格納領域123に格納(記憶)する。そして、第2のスレッド処理手段122は、家庭内端末21からのコールバック応答としてのリクエストを受信すると、処理内容格納領域123に格納された処理内容を読出して、その読出した処理内容d12を、リクエストに対するレスポンスで家庭内端末21に伝送する。
また、家庭内端末21で、その処理内容が実行されて、実行完了通知と実行結果データとがサーバに送られて来た場合には、その実行完了通知d13を第2のスレッド処理手段122で抽出して、結果通知格納領域124に格納し、実行結果データを実行結果データベース125に格納する。そして第1のスレッド処理手段121では、定期的に結果通知格納領域124に格納されたデータをチェックして、結果通知格納領域124に格納された実行完了通知d4を検出すると、データベース125に格納された実行結果データを取得して、その実行結果データを、レスポンスとして外部のユーザ側端末31又は32に対して伝送する。
なお、第1のスレッド処理手段121での処理と第2のスレッド処理手段122での処理などの一連の処理については、サーバ内で発行した論理パスIDと称されるデータを使用して、関連ある処理とまとめることができるようにしてある。また、結果通知格納領域124には、実行完了通知だけでなく、実行結果データについても記憶させても良く、或いは実行結果データだけを記憶させるようにしても良い。また、処理内容格納領域123と結果通知格納領域124は、サーバ内の第1又は第2のスレッド処理手段121又は122として機能する処理部が備えるメモリの記憶領域を使用して、設定させるようにしても良い。
なお本例の場合には、サーバと家庭内端末との間でセキュリティ管理を行った通信を行うために必要な認証処理として、以下の認証処理を行うようにしてある。即ち、サーバからアクセスした際の家庭内端末での認証としては、ダイジェスト認証を行うようにしてある。このダイジェスト認証は、認証に用いるデータをそのままネットワークに流すのではなく、そのデータのハッシュ(一方向関数)を用いて認証を行うものである。また、家庭内端末からサーバにアクセスした際のサーバでの認証としては、機器認証とダイジェスト認証を行う。機器認証は、ユーザの認証ではなく、ネットワークにつながっている機器自体の認証であり、機器に予め埋め込んである固有の識別番号(ID)を用いた認証である。なお、家庭内端末に接続されたモデムルータにおいて、パケットフィタリングを行って、よりセキュリティレベルを高くすることも可能である。パケットフィタリングは、モデムルータ内で送られてくるパケットを検査して、通過させるか否か判断する処理である。
次に、このようにして外部のユーザ側端末とサーバと家庭内端末との間でのシーケンス例を、図7を参照して説明する。まず、ユーザ側端末からサーバ内の第1のスレッド処理手段に対して、特定の家庭内端末で、何らかの内容の処理を行うことを指示したリクエストを送信する(ステップS11)。このリクエストは、セキュリティが確保されたHTTPS通信で行う。このリクエストを受信すると、サーバ内では、論理パスIDを発行し、データの格納領域を確保し、家庭内端末21への処理内容に対応するコードを、処理内容格納領域に送る(ステップS12)。その後、第1のスレッド処理手段は、コールバック要求を家庭内端末に送信する(ステップS13)。このコールバック要求には、コールバック要求を行うことを示す要求通知と、この処理を行うアプリケーションサーバ名を識別するデータと、論理パスIDを付加する。
このコールバック要求を受信した家庭内端末では、ダイジェスト認証を行って、正しいサーバからのコールバック要求であることを確認し、そのコールバック要求結果として、論理パスIDを返送する(ステップS14)。このコールバック要求結果の返送については、基本的にまだセキュリティが確保されていない通信であり、ステップS13,S14のデータ転送については、いわゆるHTTP通信である。このコールバック要求結果をサーバ側で受信すると、第1のスレッド処理手段121では、結果通知格納領域の定期的な監視を開始させる(ステップS15)。そして、ここではコードID−1の処理要求が外部の端末からあるとすると、その処理要求コードID−1を処理内容格納領域123に格納させる。
そして、家庭内端末側でコールバック要求を受信してから若干経過すると、コールバック応答を行う(ステップS16)。このコールバック応答は、セキュリティが確保されたHTTPS通信を行う。このコールバック応答では、何の要求であることを問い合わせるデータと、ステップS13のコールバック要求で示されたサーバ名と、論理パスIDとが付加してある。このコールバック応答は、サーバの第2のスレッド処理手段122で受信されて、ダイジェスト認証が行われて(ステップS17)、正しい家庭内端末からの応答であると判断した場合に、処理内容格納領域123に格納された処理要求コードID−1を読出して、その処理要求コードID−1を、サーバの第2のスレッド処理手段122で、コールバック応答に対するレスポンスに付加して送信する(ステップS18)。このときには、レスポンスとして、処理要求コードID−1の他に、サーバ名と論理パスIDを付加して送信し、セキュリティが確保されたHTTPS通信として行う。
そして、家庭内端末で処理要求コードID−1を受信すると、その処理要求コードID−1に対応した処理内容を判断し、その処理を実行させる。そして、その処理結果を取得する(ステップS19)。処理結果が家庭内端末で得られると、サーバに対してレスポンス送信を行う(ステップS20)。このレスポンス送信についても、セキュリティが確保されたHTTPS通信のリクエストとして行い、結果データと、サーバ名と、論理パスIDを付加する。
このレスポンス送信を受信したサーバ側では、ダイジェスト認証を行って、正しい家庭内端末からの送信であると確認し、レスポンス送信結果を家庭内端末にレスポンスとして返送する(ステップS21)。このレスポンス送信結果の返送時は、セキュリティが確保されたHTTPS通信のレスポンスとして行い、処理が完了したことを示すデータと、サーバ名と、論理パスIDを付加する。
そして、家庭内端末から結果データが伝送されると、結果データベースに伝送された処理結果を書込み、結果通知格納領域124に結果をデータベースに書き込んだことを格納すると共に、データベースに結果データを書き込む(ステップS22)。この結果データが得られると、結果データに応じた処理がサーバ内で実行されて、結果通知格納領域124に書き込まれたデータに基づいて、レスポンスをユーザ側端末31又は32に行う(ステップS23)。なお、ここまでの処理が終了すると、ステップS12で確保した処理内容格納領域123及び結果通知格納領域124を返却する。
次に、この図7に示した処理で実際に行われる処理内容の一例を、図8及び図9を参照して説明する。この例では、図8に示すように、家庭内端末21が設置された家庭内に設定されたいずれかの機器で発生したアラーム状態を解除させるアラーム解除処理を、外部のユーザ側端末32から行う例としてある。具体的には、図8に示すように、ユーザ側端末32からホームサーバシステム10内のサーバに対して、アラーム解除を処理内容として示すリクエストを送信する。そのリクエストを受信したサーバでは、既に説明したコールバック要求を行って、そのコールバック要求に対する応答で、セキュリティが確保された通信を開始させて、そのコールバック要求応答のレスポンスで、アラーム解除の処理内容を、家庭内端末21に伝える。
その後、家庭内端末21の制御による家庭内での処理で、指示されたアラーム解除に成功すると、アラーム解除成功がサーバ側に伝送され、サーバからユーザ側端末32にアラームが解除されたことが通知される。
この場合の詳細な処理シーケンス例を図9に示す。この図9のシーケンス図は、図7に示したシーケンス図と基本的に同じであり、図7と同じステップ番号を付与してある。図9の例の場合には、図7の例で処理コード(処理ID−1)と表示されていたものが、具体的な処理である「アラーム解除」と示してあり、そのアラーム解除に家庭内端末で成功した場合に、「アラーム解除成功」がサーバ側に送られて、最終的にユーザ側端末(携帯電話端末)32に送られるようにしてある。なお、最後のステップS23でのレスポンスについては、例えば携帯電話端末32に文字のメールで、「アラーム解除成功」と送るようにしても良い。
このようにして家庭内端末21の外部からの制御が、サーバとの間でセキュリティが確保された通信を行いながら行えることで、不正なアクセスなどを排除したシステムが構築できることになる。
なお、上述した実施の形態では、外部のユーザ側端末からのリクエストがある場合に、サーバから家庭内端末にコールバック要求を送るようにしたが、例えば、外部のユーザ側端末からのリクエストがなくても、サーバからの独自の処理で、家庭内端末にコールバック要求を送って、家庭内端末に何らかの処理を実行させるようにしても良い。
また、上述した実施の形態では、サーバに接続される端末として、家庭内に設置した端末としたが、その他の場所に設置された各種セキュリティ管理が必要な端末としても良い。
また、家庭内端末からサーバに対してTCPコネクションを常時張っておき(常時接続)、そのコネクションを用い、サーバから家庭内端末に対してコールバック要求を送信してもよい。この場合よりセキュリティレベルをより向上させることができる。
1…インターネット、10…ホームサーバシステム、10a,10b…サーバ、20…利用者自宅、21…家庭内端末、21b…RFアンテナ、22…モデムルータ、23…ブロードバンド回線、24…電話線、25…ディスプレイ、26…カメラ、27…テレビフォンマイク、28…リモートコントローラ、29…リモートキー、30…利用者、31…データ通信端末(コンピュータ装置)、32…携帯電話端末、41…人感センサ、42…窓・ドアセンサ、43…火災センサ、44…ガス漏れセンサ、45…非常用押しボタン、101…連携処理手段、102…制御手段、110…負荷分散装置、121,122…スレッド処理手段、123…処理内容格納領域、124…結果通知格納領域、125…実行結果データベース