(57)【要約】【課題】  OSGiにおけるサービス提供システムにおいて、OSGiサーバにOSGiクライアントのアドレスを動的に登録する。OSGiクライアントの待受けポート番号を動的に変更することで、待受けポートが固定化されることによる悪意のあるユーザからの攻撃を防ぐ。【解決手段】  OSGiクライアント起動時にOSGiクライアントが動的に待受けポートを決定し、OSGiクライアントからOSGiサーバにOSGiクライアントのIPアドレス、及びポート番号を通知する。また、OSGiクライアントからアドレス登録メッセージを受信した際に、前記アドレス登録メッセージに付与された待受けポート番号の妥当性を判断し、必要に応じてOSGiクライアントに待受けポート変更指示メッセージを送信する。【選択図】  図１
2011186571.tif 000002
【特許請求の範囲】
【請求項１】
OSGiサーバ、OSGiクライアントからなるサービス提供システムであって、
OSGiクライアントが起動時にOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を通知し、
OSGiサーバが前記メッセージを受信し前記受信したポート番号が妥当であるか否かを判断し、妥当でない場合はOSGiクライアントに対して待受けポート番号を指定するメッセージを送信し、妥当な場合は前記受信したIPアドレス、ポート番号を前記メッセージに付与されたOSGiクライアントを識別するための識別子にて指定されるデータベースエントリに記憶することを特徴とするサービス提供システム。
【請求項２】
OSGiサーバであって、OSGiクライアントからOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を付与されたメッセージを受信した場合に、前記メッセージ付与されたIPアドレス、ポート番号を前記メッセージに付与されたOSGiクライアントを識別するための識別子にて指定されるデータベースエントリに記憶することを特徴とするOSGiサーバ。
【請求項３】
請求項２記載のOSGiサーバであって、OSGiクライアントから待受けポート番号通知メッセージを受信した際に、前記受信したポート番号が妥当であるか否かを判断し、妥当でない場合はOSGiクライアントに対して待受けポート番号を指定するメッセージを送信し、妥当な場合は前記受信したIPアドレス、ポート番号を前記メッセージに付与されたOSGiクライアントを識別するための識別子にて指定されるデータベースエントリに記憶するすことを特徴とするOSGiサーバ。
【請求項４】
OSGiクライアントであって、OSGiクライアントが起動時にOSGiサーバがOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を付与したメッセージをOSGiサーバに送信することを特徴とするOSGiクライアント
【請求項５】
請求項４記載のOSGiクライアントであって、OSGiクライアントが起動時にOSGiサーバがOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を付与したメッセージをOSGiサーバに送信した後、OSGiサーバから待受けポート番号変更指示があった場合は、前記指示された待受けポート番号にて再起動し、再度OSGiサーバにOSGiサーバがOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を付与したメッセージをOSGiサーバに送信することを特徴とするOSGiクライアント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホームゲートウェイ装置におけるサービス提供システムに関する。
【背景技術】
【０００２】
現在、家庭内のネットワーク(ホームネットワーク)と外部ネットワーク(一般的にはインターネット)を接続するゲートウェイ機器としてホームゲートウェイが利用されている。
【０００３】
現状、ホームゲートウェイにて提供されている機能は、家庭内LANのルータとなり家庭内の情報家電間の通信の仲介や、家庭内の情報家電へのADSLやFTTHなどの広帯域回線を利用したインターネット接続の提供、外部ネットワークからの不正なアクセスを遮断するファイアウォール機能及び、SIPを用いたVoIP(Voice Over IP)によるIP電話程度である。
しかしホームゲートウェイには、ホームネットワークと外部ネットワークの境界に位置し、家庭内で常時起動し、ホームネットワーク内の情報家電が全て接続するといった特徴があり、今後家庭内の情報家電をまとめるホームサーバとしての役割が期待される。例えばホームネットワークに接続された機器の動的検出や自動設定、外部ネットワークからの家庭内の情報家電への動的なアクセス制御、ホームネットワーク上の複数の機器とアプリケーションを組合わせた総合的なサービスの提供といったことが考えられる。
【０００４】
以上の観点から、ホームゲートウェイの家庭内での重要性は今後より高まると考えられ、ユーザへの新規機能やサービスを随時提供していくことを考えると、これら新規機能やサービスを動的に提供できることが必須となる。
【０００５】
ホームゲートウェイでの統合的なサービス提供に関する標準化としては、特にネットワークサービスのためのJAVAベースのコンピュータ環境の標準化を進めるOSGi(Open Services Gateway Initiative)が挙げらる。OSGiは、プラットフォームであるフレームワークとその上でサービスとして動作するバンドルで構成されたJava言語に基づくサービスプラットフォームであり、OSGi Alliance によって標準化されている。
OSGiフレームワークは、機器の動作を止めることなく新しいサービスやデータの追加、及びサービスの機能変更を可能とするミドルウェアである。センタに配置されたセンタサーバよりホームゲートウェイなどの宅内機器にバンドルと呼ばれるモジュール単位での遠隔インストール(PUSH)が可能である。また宅内機器からセンタサーバ側からバンドルを取得しインストール(PULL)することも可能である。
【０００６】
各バンドルは、バンドル内に実装されたオブジェクトをOSGiのフレームワーク上に公開することで、他のバンドルとの情報の交換が可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
OSGiを利用することで、ホームゲートウェイにおける動的なサービスの追加/削除が可能となり、ユーザへの様々なサービスが提供可能となると期待される。OSGiサーバ、OSGiクライアント間で連携するためには、それぞれが相手のアドレス(IPアドレス、およびポート番号)を知っておく、つまりOSGiサーバにOSGiクライアントのアドレスを事前に登録しておく必要がある。しかしながら将来、数万、数十万といった多数のOSGiクライアント（ホームゲートゲートウェイ）を管理する場合に、それぞれのOSGiクライアントのアドレスを個別に管理することは、非常に困難であるという課題がある。
また、OSGiクライアントのポート番号に関しては、全て固定しておくことでポート番号をOSGiクライアント単位で管理しなくてよくなるが、この場合悪意のあるユーザに一旦そのポート番号が知られてしまうと、セキュリティリスクが大きくなってしまうという課題がある。
IPアドレスに関しては、既存のDHCP（Dynamic Host Configuration Protocol）サーバと連携するとこで、各OSGiクライアント（ホームゲートウェイ）に配布したIPアドレスをOSGiサーバが得ることが可能であるが、そのためには既存のDHCPサーバに新たにそのためのインタフェースを設けることが必須となる。新たなインタフェースの作成するためには別途コストが発生してしまう。また、正常動作している既存のシステムに手を入れることは既存システムに不具合を発生させる原因となる可能性もある。そのため新規システムを実現する際に、既存システムへ影響を与えないことがようにしなければならないという課題がある。
【課題を解決するための手段】
【０００８】
本発明では、OSGiクライアントに起動時に自身の待受けポートを決定する手段を設け、OSGiクライアントから、OSGiサーバににOSGiサーバと通信するための自身のIPアドレス及び、待受けポート番号を通知する手段を設ける。OSGiサーバにOSGiクライアントから受信したIPアドレス、および待受けポート番号を記憶する手段を設ける、さらにOSGiクライアントから受信した待受けポート番号に問題がある場合は、OSGiクライアントに対して待受けポート番号を指定する手段を設ける。
【発明の効果】
【０００９】
本発明によると、OSGiクライアントからOSGiサーバに動的にOSGiクライアントのIPアドレス、及びポート番号を通知することで、OSGiクライアントの数が数万、数十万のいった多数となっても、OSGiサーバでOSGiクライアントのアドレスを容易に登録、管理することが可能となる。
【００１０】
また、OSGiクライアントおよびOSGiサーバ間で動的にOSGiクライアントの待受けポート番号を決定することが可能となり、悪意のあるユーザからのOSGiクライアントへの不正アクセスを低減することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】システム構成図
【図２】OSGiサーバの動作フロー図
【図３】OSGiサーバのOSGiクライアント情報DBの構成図
【図４】OSGiクライアントの起動時の動作フロー図
【図５】OSGiクライアントがOSGiサーバからメッセージを受信した際の動作フロー図
【図６】OSGiサーバが待受けポート番号を指定した場合の動作シーケンス図
【図７】OSGiサーバが待受けポート番号を指定しない場合の動作シーケンス図
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
【実施例１】
【００１３】
本実施例における第1の実施形態について説明する。本実施形態では、OSGiクライアント起動開始時の、OSGiサーバへのアドレス登録動作に関して説明する。
【００１４】
本実施例におけるシステムの構成を図１に示す。CPE１０は通信事業者の加入者宅に設置される通信機器であり、ホームゲートウェイ等が該当する。CPE１０には、Java VM(Java Virtual Machine)、およびOSGi Frameworkが実装され、OSGi Framework上でOSGiサーバと通信するためのClient Agentが実装される。
【００１５】
Client Agentは、回線事業者NW１２を介してOSGiサーバ１１を介して接続され、OSGiクライアントからOSGiサーバへのアドレスの登録メッセージの送信、OSGiサーバからClient Agentに対してOSGiクライアントの制御、OSGiクライアントへのサービスのイントール等が実行される。OSGiクライアントにはOSGiサーバのアドレスが予め設定されている。またOSGiサーバと暗号化通信をするための証明書を保存していても良い。OSGiサーバには、各OSGiクライアントのクライアントID、IPアドレス、ポート番号を記憶するためのOSGiクライアント情報データベースを持つ。OSGiクライアント情報データベースには、予め各OSGiクライアントのIDが登録されている。
【００１６】
図２にOSGiサーバが、OSGiクライアントからアドレス登録メッセージを受信した際の処理のフローを説明する。OSGiサーバからOSGiクライアントからアドレス登録メッセージを受信した（２００１）OSGiサーバは、アドレス登録メッセージ内に含まれるクライアントIDと、OSGiサーバ内に記憶されるOSGiクライアント情報データベースを参照し、当該アドレス登録メッセージを送信したOSGiクライアントが正当なものであるか否かを確認する（２００２）。ここで、OSGiクライアントから送信されるアドレス登録メッセージは既存の暗号化方式等を利用して暗号化されたメッセージであっても良い。
【００１７】
クライアントIDの確認の結果、前記アドレス登録メッセージに付与されたクライアントIDが、OSGiクライアント情報データベースに含まれていない場合、当該アドレス登録メッセージを破棄し、終了する。
【００１８】
クライアントIDの確認の結果、前記アドレス登録メッセージに付与されたクライアントIDが、OSGiクライアント情報データベースに含まれている場合は、前記アドレス登録メッセージに付与されたOSGiクライアントのIPアドレスおよびOSGiクライアントの待受けポート番号を取得する（２００３）。前記取得したOSGiクライアントの待受けポートの番号が妥当であるか否かを確認する（２００４）。ここでOSGiクライアントの待受けポート番号が妥当であるか否かは、事前に設定された使用不可ポートに含まれるもしくは、他OSGiクライアントが使用しているポート番号、過去に不正なアドレス登録メッセージと判断したメッセージ内にて付与されたポート番号等を元に判断される。
【００１９】
ポート番号確認（２００４）の結果、OSGiクライアントの待受けポートが妥当なものである場合は、前記アドレス登録メッセージから取得したOSGiクライアントのIPアドレス及びポート番号を、OSGiクライアント情報データベースの当該OSGiクライアントのクライアントIDで識別されるエントリ内に登録する（２００５）。OSGiクライアント情報データベースへのIPアドレス、ポート番号の登録が完了した後、OSGiサーバはOSGiクライアントに対して、通常モード移行指示メッセージを作成し（２００６）、OSGiクライアントに対して前記作成した通常モード移行指示メッセージを送信する（２００７）。
【００２０】
ポート番号確認（２００４）の結果、OSGiクライアントの待受けポートが妥当なものでない場合は、OSGiサーバ側にてOSGiクライアントの待受けポート番号を決定し（２００８）、
前記アドレス登録メッセージを送信したOSGiクライアントに対して、前記決定したポート番号にて起動しるよう指示するメッセージを送信する（２００９）。ここで、OSGiサーバにて決定する待受けポート番号は、事前に設定された使用不可ポートに含まれるもしくは、他OSGiクライアントが使用しているポート番号、過去に不正なアドレス登録メッセージと判断したメッセージ内にて付与されたポート番号等を元に決定される。
【００２１】
図３はOSGiサーバが保持するOSGiクライアント情報DB３１の構成例である。OSGiクライアント情報DB３１は、各OSGiクライアントにつき1つのOSGiクライアント情報DB・エントリ３２から構成される。OSGiクライアント情報DB・エントリ３２はさらに、各OSGiクライアントを識別するためのクライアントIDを格納するためのクライアントIDフィールド３３、OSGiクライアントがOSGiサーバと通信するためのIPアドレスを格納するためのIPアドレスフィールド３４およびOSGiクライアントがOSGiサーバと通信する際の待受けポート番号を格納するための、待受けポート番号フィールド３５から構成される。
【００２２】
ここでクライアントIDフィールド３３に格納されるクライアントIDは、OSGiクライアントに別途付与されたIDであっても良いし、OSGiクライアントが起動するCPEに付与されたCPEを識別するためのIDを利用するのでも良い。
【００２３】
図４にOSGiクライアントが起動した際の処理のフローを説明する。CPE起動後、OSGiクライアントが起動し、OSGiサーバとの通信のやり取りをするClient Agentが起動する（４００１）。次にOSGiクライアントにて保持している起動待機状態フラグをクリアする（４００２）。その後、予めOSGiクライアントに設定されたOSGiサーバのアドレスを取得する（４００３）。次にOSGiクライアントがOSGiサーバと通信するためのOSGiクライアントのIPアドレスを取得する（４００４）。次にOSGiクライアントがOSGiサーバと通信するための待受けポートを決定する（４００５）。前記待受けポート番号の決定方法は、OSGiサーバからメッセージ受信により待受けポートを指定されていた場合は、前記OSGiサーバから指定されたポート番号を利用し、指定されていない場合は、Client Agentがランダムに決定する。
【００２４】
それから、前記OSGiクライアントのIPアドレスと、前記決定した待受け番号に加えOSGiクライアントを識別するために予め設定されたOSGiクライアントのIDを付与して、アドレス登録メッセージを作成する（４００６）。そして、前記作成したアドレス登録メッセージを前記取得したOSGiサーバに対して送信する（４００７）。最後にOSGiクライアントに保持されている起動待機状態フラグを設定し（４００８）、OSGiサーバからのメッセージを待つ。
【００２５】
図５に、OSGiクライアントが起動待機状態フラグ設定後に、OSGiサーバからメッセージを受信した際の処理のフローを説明する。
【００２６】
まずOSGiサーバからのメッセージを受信（５００１）したOSGiクライアントは、前記受信したメッセージが待受けポート番号指示メッセージであるか否かを判断する（５００２）。
前記受信したメッセージが待受けポート番号指示メッセージであった場合は、OSGiクライアント起動時の待受けポート番号を前記メッセージ内に記載されたポート番号に設定し（５００３）、Client Agentの再起動を行う（５００４）。
【００２７】
前記受信したメッセージが待受けポート番号指示メッセージで無かった場合は、次に前記受信したメッセージが起動指示メッセージであるか否かを判断する（５００５）。前記受信したメッセージが起動指示メッセージでない場合は、前記受信したメッセージを破棄して終了する。前記受信したメッセージが起動指示メッセージであった場合は、OSGiクライアントは通常モードに移行し、以後OSGiサーバからメッセージ従って、OSGiクライアントの情報の返信、OSGiサーバから指定されたサービスのインストール等を実施する。
【００２８】
図６に、OSGiサーバがOSGiクライアントの待受けポートを指定する場合のシーケンス図を示す。まずCPEが起動すると、OSGi Client Agentから、クライアントID、IPアドレス、待受けポート番号が付与されたメッセージがOSGiサーバに送信される（６０１）。前記メッセージを受取ったOSGiサーバは、前記メッセージに付与されたポート番号を取得し、妥当ではないと判断し、OSGi Client Agentに対してポート番号設定指示メッセージを送信する（６０２）。OSGiサーバからのポート番号設定指示メッセージを受信したOSGi Client Agentは、待受けポートを前記受信したポート番号設定指示メッセージ内に含まれるポート番号で、起動するよう設定した後、再起動する。そして再起動後に再度OSGiサーバにクライアントID、IPアドレス、待受けポート番号が付与されたメッセージが送信される（６０３）。OSGi  Client Agentからメッセージを受信したOSGiサーバは、前記メッセージに付与された、IPアドレス、待受けポート番号をOSGiサーバに保持されているOSGiクライアント情報データベースに格納するとともに、OSGi Client Agentに対して通常モード移行指示メッセージを送信する（６０４）。
【００２９】
図７に、、OSGiサーバがOSGiクライアントの受けポートを指定しない場合のシーケンス図を示す。まずCPEが起動すると、OSGi Client Agentから、クライアントID、IPアドレス、待受けポート番号が付与されたメッセージがOSGiサーバに送信される（７０１）。前記メッセージを受取ったOSGiサーバは、前記メッセージに付与されたポート番号を取得し、妥当であると判断し、前記メッセージに付与された、IPアドレス、待受けポート番号をOSGiサーバに保持されているOSGiクライアント情報データベースに格納するとともに、OSGi Client Agentに対して通常モード移行指示メッセージを送信する（７０２）。
以上本実施例により、OSGiクライアントからOSGiサーバに動的にOSGiクライアントのIPアドレス、及びポート番号を通知することで、OSGiクライアントの数が数万、数十万のいった多数となっても、OSGiサーバでOSGiクライアントのアドレスを容易に登録、管理することが可能となる。また、OSGiクライアントおよびOSGiサーバ間で動的にOSGiクライアントの待受けポート番号を決定することが可能となり、悪意のあるユーザからのOSGiクライアントへの不正アクセスを低減することが可能となる。
【００３０】
また、本実施例の変形例としては、OSGiサーバでのポート確認をすることなくOSGiクライアントから送られたポート番号をそのままOSGiサーバが保持するOSGiクライアント情報データベースに登録することが考えれる。これは、OSGiクライアントとOSGiサーバとの間のネットワークがセキュリティが保たれており、悪意のあるユーザからのメッセージ送信等が出来ないばあいに有効であり。本変形例の場合OSGiサーバ側での処理量が減少し、OSGiクライアントへの応答速度の向上、処理量の低下により1台のOSGiサーバで処理できるOSGiクライアントの数が向上するといったことが期待される。
【符号の説明】
【００３１】
１０  CPE（Customer Premises Equipment）
１１  OSGiサーバ
１２  回線事業者NW
３１  OSGiクライアント情報DB
３２  OSGiクライアント情報DB・エントリ
３３  クライアントIDフィールド
３４  IPアドレスフィールド
３５  ポート番号フィールド
【図１】
2011186571.tif 000003
【図２】
2011186571.tif 000004
【図３】
2011186571.tif 000005
【図４】
2011186571.tif 000006
【図５】
2011186571.tif 000007
【図６】
2011186571.tif 000008
【図７】
2011186571.tif 000009