説明

サーバ、クライアントシステム

【課題】 OSGiにおけるサービス提供システムにおいて、OSGiサーバにOSGiクライアントのアドレスを動的に登録する。OSGiクライアントの待受けポート番号を動的に変更することで、待受けポートが固定化されることによる悪意のあるユーザからの攻撃を防ぐ。
【解決手段】 OSGiクライアント起動時にOSGiクライアントが動的に待受けポートを決定し、OSGiクライアントからOSGiサーバにOSGiクライアントのIPアドレス、及びポート番号を通知する。また、OSGiクライアントからアドレス登録メッセージを受信した際に、前記アドレス登録メッセージに付与された待受けポート番号の妥当性を判断し、必要に応じてOSGiクライアントに待受けポート変更指示メッセージを送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホームゲートウェイ装置におけるサービス提供システムに関する。
【背景技術】
【0002】
現在、家庭内のネットワーク(ホームネットワーク)と外部ネットワーク(一般的にはインターネット)を接続するゲートウェイ機器としてホームゲートウェイが利用されている。
【0003】
現状、ホームゲートウェイにて提供されている機能は、家庭内LANのルータとなり家庭内の情報家電間の通信の仲介や、家庭内の情報家電へのADSLやFTTHなどの広帯域回線を利用したインターネット接続の提供、外部ネットワークからの不正なアクセスを遮断するファイアウォール機能及び、SIPを用いたVoIP(Voice Over IP)によるIP電話程度である。
しかしホームゲートウェイには、ホームネットワークと外部ネットワークの境界に位置し、家庭内で常時起動し、ホームネットワーク内の情報家電が全て接続するといった特徴があり、今後家庭内の情報家電をまとめるホームサーバとしての役割が期待される。例えばホームネットワークに接続された機器の動的検出や自動設定、外部ネットワークからの家庭内の情報家電への動的なアクセス制御、ホームネットワーク上の複数の機器とアプリケーションを組合わせた総合的なサービスの提供といったことが考えられる。
【0004】
以上の観点から、ホームゲートウェイの家庭内での重要性は今後より高まると考えられ、ユーザへの新規機能やサービスを随時提供していくことを考えると、これら新規機能やサービスを動的に提供できることが必須となる。
【0005】
ホームゲートウェイでの統合的なサービス提供に関する標準化としては、特にネットワークサービスのためのJAVAベースのコンピュータ環境の標準化を進めるOSGi(Open Services Gateway Initiative)が挙げらる。OSGiは、プラットフォームであるフレームワークとその上でサービスとして動作するバンドルで構成されたJava言語に基づくサービスプラットフォームであり、OSGi Alliance によって標準化されている。
OSGiフレームワークは、機器の動作を止めることなく新しいサービスやデータの追加、及びサービスの機能変更を可能とするミドルウェアである。センタに配置されたセンタサーバよりホームゲートウェイなどの宅内機器にバンドルと呼ばれるモジュール単位での遠隔インストール(PUSH)が可能である。また宅内機器からセンタサーバ側からバンドルを取得しインストール(PULL)することも可能である。
【0006】
各バンドルは、バンドル内に実装されたオブジェクトをOSGiのフレームワーク上に公開することで、他のバンドルとの情報の交換が可能である。
【発明の概要】
【発明が解決しようとする課題】
【0007】
OSGiを利用することで、ホームゲートウェイにおける動的なサービスの追加/削除が可能となり、ユーザへの様々なサービスが提供可能となると期待される。OSGiサーバ、OSGiクライアント間で連携するためには、それぞれが相手のアドレス(IPアドレス、およびポート番号)を知っておく、つまりOSGiサーバにOSGiクライアントのアドレスを事前に登録しておく必要がある。しかしながら将来、数万、数十万といった多数のOSGiクライアント(ホームゲートゲートウェイ)を管理する場合に、それぞれのOSGiクライアントのアドレスを個別に管理することは、非常に困難であるという課題がある。
また、OSGiクライアントのポート番号に関しては、全て固定しておくことでポート番号をOSGiクライアント単位で管理しなくてよくなるが、この場合悪意のあるユーザに一旦そのポート番号が知られてしまうと、セキュリティリスクが大きくなってしまうという課題がある。
IPアドレスに関しては、既存のDHCP(Dynamic Host Configuration Protocol)サーバと連携するとこで、各OSGiクライアント(ホームゲートウェイ)に配布したIPアドレスをOSGiサーバが得ることが可能であるが、そのためには既存のDHCPサーバに新たにそのためのインタフェースを設けることが必須となる。新たなインタフェースの作成するためには別途コストが発生してしまう。また、正常動作している既存のシステムに手を入れることは既存システムに不具合を発生させる原因となる可能性もある。そのため新規システムを実現する際に、既存システムへ影響を与えないことがようにしなければならないという課題がある。
【課題を解決するための手段】
【0008】
本発明では、OSGiクライアントに起動時に自身の待受けポートを決定する手段を設け、OSGiクライアントから、OSGiサーバににOSGiサーバと通信するための自身のIPアドレス及び、待受けポート番号を通知する手段を設ける。OSGiサーバにOSGiクライアントから受信したIPアドレス、および待受けポート番号を記憶する手段を設ける、さらにOSGiクライアントから受信した待受けポート番号に問題がある場合は、OSGiクライアントに対して待受けポート番号を指定する手段を設ける。
【発明の効果】
【0009】
本発明によると、OSGiクライアントからOSGiサーバに動的にOSGiクライアントのIPアドレス、及びポート番号を通知することで、OSGiクライアントの数が数万、数十万のいった多数となっても、OSGiサーバでOSGiクライアントのアドレスを容易に登録、管理することが可能となる。
【0010】
また、OSGiクライアントおよびOSGiサーバ間で動的にOSGiクライアントの待受けポート番号を決定することが可能となり、悪意のあるユーザからのOSGiクライアントへの不正アクセスを低減することが可能となる。
【図面の簡単な説明】
【0011】
【図1】システム構成図
【図2】OSGiサーバの動作フロー図
【図3】OSGiサーバのOSGiクライアント情報DBの構成図
【図4】OSGiクライアントの起動時の動作フロー図
【図5】OSGiクライアントがOSGiサーバからメッセージを受信した際の動作フロー図
【図6】OSGiサーバが待受けポート番号を指定した場合の動作シーケンス図
【図7】OSGiサーバが待受けポート番号を指定しない場合の動作シーケンス図
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について図面を参照して説明する。
【実施例1】
【0013】
本実施例における第1の実施形態について説明する。本実施形態では、OSGiクライアント起動開始時の、OSGiサーバへのアドレス登録動作に関して説明する。
【0014】
本実施例におけるシステムの構成を図1に示す。CPE10は通信事業者の加入者宅に設置される通信機器であり、ホームゲートウェイ等が該当する。CPE10には、Java VM(Java Virtual Machine)、およびOSGi Frameworkが実装され、OSGi Framework上でOSGiサーバと通信するためのClient Agentが実装される。
【0015】
Client Agentは、回線事業者NW12を介してOSGiサーバ11を介して接続され、OSGiクライアントからOSGiサーバへのアドレスの登録メッセージの送信、OSGiサーバからClient Agentに対してOSGiクライアントの制御、OSGiクライアントへのサービスのイントール等が実行される。OSGiクライアントにはOSGiサーバのアドレスが予め設定されている。またOSGiサーバと暗号化通信をするための証明書を保存していても良い。OSGiサーバには、各OSGiクライアントのクライアントID、IPアドレス、ポート番号を記憶するためのOSGiクライアント情報データベースを持つ。OSGiクライアント情報データベースには、予め各OSGiクライアントのIDが登録されている。
【0016】
図2にOSGiサーバが、OSGiクライアントからアドレス登録メッセージを受信した際の処理のフローを説明する。OSGiサーバからOSGiクライアントからアドレス登録メッセージを受信した(2001)OSGiサーバは、アドレス登録メッセージ内に含まれるクライアントIDと、OSGiサーバ内に記憶されるOSGiクライアント情報データベースを参照し、当該アドレス登録メッセージを送信したOSGiクライアントが正当なものであるか否かを確認する(2002)。ここで、OSGiクライアントから送信されるアドレス登録メッセージは既存の暗号化方式等を利用して暗号化されたメッセージであっても良い。
【0017】
クライアントIDの確認の結果、前記アドレス登録メッセージに付与されたクライアントIDが、OSGiクライアント情報データベースに含まれていない場合、当該アドレス登録メッセージを破棄し、終了する。
【0018】
クライアントIDの確認の結果、前記アドレス登録メッセージに付与されたクライアントIDが、OSGiクライアント情報データベースに含まれている場合は、前記アドレス登録メッセージに付与されたOSGiクライアントのIPアドレスおよびOSGiクライアントの待受けポート番号を取得する(2003)。前記取得したOSGiクライアントの待受けポートの番号が妥当であるか否かを確認する(2004)。ここでOSGiクライアントの待受けポート番号が妥当であるか否かは、事前に設定された使用不可ポートに含まれるもしくは、他OSGiクライアントが使用しているポート番号、過去に不正なアドレス登録メッセージと判断したメッセージ内にて付与されたポート番号等を元に判断される。
【0019】
ポート番号確認(2004)の結果、OSGiクライアントの待受けポートが妥当なものである場合は、前記アドレス登録メッセージから取得したOSGiクライアントのIPアドレス及びポート番号を、OSGiクライアント情報データベースの当該OSGiクライアントのクライアントIDで識別されるエントリ内に登録する(2005)。OSGiクライアント情報データベースへのIPアドレス、ポート番号の登録が完了した後、OSGiサーバはOSGiクライアントに対して、通常モード移行指示メッセージを作成し(2006)、OSGiクライアントに対して前記作成した通常モード移行指示メッセージを送信する(2007)。
【0020】
ポート番号確認(2004)の結果、OSGiクライアントの待受けポートが妥当なものでない場合は、OSGiサーバ側にてOSGiクライアントの待受けポート番号を決定し(2008)、
前記アドレス登録メッセージを送信したOSGiクライアントに対して、前記決定したポート番号にて起動しるよう指示するメッセージを送信する(2009)。ここで、OSGiサーバにて決定する待受けポート番号は、事前に設定された使用不可ポートに含まれるもしくは、他OSGiクライアントが使用しているポート番号、過去に不正なアドレス登録メッセージと判断したメッセージ内にて付与されたポート番号等を元に決定される。
【0021】
図3はOSGiサーバが保持するOSGiクライアント情報DB31の構成例である。OSGiクライアント情報DB31は、各OSGiクライアントにつき1つのOSGiクライアント情報DB・エントリ32から構成される。OSGiクライアント情報DB・エントリ32はさらに、各OSGiクライアントを識別するためのクライアントIDを格納するためのクライアントIDフィールド33、OSGiクライアントがOSGiサーバと通信するためのIPアドレスを格納するためのIPアドレスフィールド34およびOSGiクライアントがOSGiサーバと通信する際の待受けポート番号を格納するための、待受けポート番号フィールド35から構成される。
【0022】
ここでクライアントIDフィールド33に格納されるクライアントIDは、OSGiクライアントに別途付与されたIDであっても良いし、OSGiクライアントが起動するCPEに付与されたCPEを識別するためのIDを利用するのでも良い。
【0023】
図4にOSGiクライアントが起動した際の処理のフローを説明する。CPE起動後、OSGiクライアントが起動し、OSGiサーバとの通信のやり取りをするClient Agentが起動する(4001)。次にOSGiクライアントにて保持している起動待機状態フラグをクリアする(4002)。その後、予めOSGiクライアントに設定されたOSGiサーバのアドレスを取得する(4003)。次にOSGiクライアントがOSGiサーバと通信するためのOSGiクライアントのIPアドレスを取得する(4004)。次にOSGiクライアントがOSGiサーバと通信するための待受けポートを決定する(4005)。前記待受けポート番号の決定方法は、OSGiサーバからメッセージ受信により待受けポートを指定されていた場合は、前記OSGiサーバから指定されたポート番号を利用し、指定されていない場合は、Client Agentがランダムに決定する。
【0024】
それから、前記OSGiクライアントのIPアドレスと、前記決定した待受け番号に加えOSGiクライアントを識別するために予め設定されたOSGiクライアントのIDを付与して、アドレス登録メッセージを作成する(4006)。そして、前記作成したアドレス登録メッセージを前記取得したOSGiサーバに対して送信する(4007)。最後にOSGiクライアントに保持されている起動待機状態フラグを設定し(4008)、OSGiサーバからのメッセージを待つ。
【0025】
図5に、OSGiクライアントが起動待機状態フラグ設定後に、OSGiサーバからメッセージを受信した際の処理のフローを説明する。
【0026】
まずOSGiサーバからのメッセージを受信(5001)したOSGiクライアントは、前記受信したメッセージが待受けポート番号指示メッセージであるか否かを判断する(5002)。
前記受信したメッセージが待受けポート番号指示メッセージであった場合は、OSGiクライアント起動時の待受けポート番号を前記メッセージ内に記載されたポート番号に設定し(5003)、Client Agentの再起動を行う(5004)。
【0027】
前記受信したメッセージが待受けポート番号指示メッセージで無かった場合は、次に前記受信したメッセージが起動指示メッセージであるか否かを判断する(5005)。前記受信したメッセージが起動指示メッセージでない場合は、前記受信したメッセージを破棄して終了する。前記受信したメッセージが起動指示メッセージであった場合は、OSGiクライアントは通常モードに移行し、以後OSGiサーバからメッセージ従って、OSGiクライアントの情報の返信、OSGiサーバから指定されたサービスのインストール等を実施する。
【0028】
図6に、OSGiサーバがOSGiクライアントの待受けポートを指定する場合のシーケンス図を示す。まずCPEが起動すると、OSGi Client Agentから、クライアントID、IPアドレス、待受けポート番号が付与されたメッセージがOSGiサーバに送信される(601)。前記メッセージを受取ったOSGiサーバは、前記メッセージに付与されたポート番号を取得し、妥当ではないと判断し、OSGi Client Agentに対してポート番号設定指示メッセージを送信する(602)。OSGiサーバからのポート番号設定指示メッセージを受信したOSGi Client Agentは、待受けポートを前記受信したポート番号設定指示メッセージ内に含まれるポート番号で、起動するよう設定した後、再起動する。そして再起動後に再度OSGiサーバにクライアントID、IPアドレス、待受けポート番号が付与されたメッセージが送信される(603)。OSGi Client Agentからメッセージを受信したOSGiサーバは、前記メッセージに付与された、IPアドレス、待受けポート番号をOSGiサーバに保持されているOSGiクライアント情報データベースに格納するとともに、OSGi Client Agentに対して通常モード移行指示メッセージを送信する(604)。
【0029】
図7に、、OSGiサーバがOSGiクライアントの受けポートを指定しない場合のシーケンス図を示す。まずCPEが起動すると、OSGi Client Agentから、クライアントID、IPアドレス、待受けポート番号が付与されたメッセージがOSGiサーバに送信される(701)。前記メッセージを受取ったOSGiサーバは、前記メッセージに付与されたポート番号を取得し、妥当であると判断し、前記メッセージに付与された、IPアドレス、待受けポート番号をOSGiサーバに保持されているOSGiクライアント情報データベースに格納するとともに、OSGi Client Agentに対して通常モード移行指示メッセージを送信する(702)。
以上本実施例により、OSGiクライアントからOSGiサーバに動的にOSGiクライアントのIPアドレス、及びポート番号を通知することで、OSGiクライアントの数が数万、数十万のいった多数となっても、OSGiサーバでOSGiクライアントのアドレスを容易に登録、管理することが可能となる。また、OSGiクライアントおよびOSGiサーバ間で動的にOSGiクライアントの待受けポート番号を決定することが可能となり、悪意のあるユーザからのOSGiクライアントへの不正アクセスを低減することが可能となる。
【0030】
また、本実施例の変形例としては、OSGiサーバでのポート確認をすることなくOSGiクライアントから送られたポート番号をそのままOSGiサーバが保持するOSGiクライアント情報データベースに登録することが考えれる。これは、OSGiクライアントとOSGiサーバとの間のネットワークがセキュリティが保たれており、悪意のあるユーザからのメッセージ送信等が出来ないばあいに有効であり。本変形例の場合OSGiサーバ側での処理量が減少し、OSGiクライアントへの応答速度の向上、処理量の低下により1台のOSGiサーバで処理できるOSGiクライアントの数が向上するといったことが期待される。
【符号の説明】
【0031】
10 CPE(Customer Premises Equipment)
11 OSGiサーバ
12 回線事業者NW
31 OSGiクライアント情報DB
32 OSGiクライアント情報DB・エントリ
33 クライアントIDフィールド
34 IPアドレスフィールド
35 ポート番号フィールド

【特許請求の範囲】
【請求項1】
OSGiサーバ、OSGiクライアントからなるサービス提供システムであって、
OSGiクライアントが起動時にOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を通知し、
OSGiサーバが前記メッセージを受信し前記受信したポート番号が妥当であるか否かを判断し、妥当でない場合はOSGiクライアントに対して待受けポート番号を指定するメッセージを送信し、妥当な場合は前記受信したIPアドレス、ポート番号を前記メッセージに付与されたOSGiクライアントを識別するための識別子にて指定されるデータベースエントリに記憶することを特徴とするサービス提供システム。
【請求項2】
OSGiサーバであって、OSGiクライアントからOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を付与されたメッセージを受信した場合に、前記メッセージ付与されたIPアドレス、ポート番号を前記メッセージに付与されたOSGiクライアントを識別するための識別子にて指定されるデータベースエントリに記憶することを特徴とするOSGiサーバ。
【請求項3】
請求項2記載のOSGiサーバであって、OSGiクライアントから待受けポート番号通知メッセージを受信した際に、前記受信したポート番号が妥当であるか否かを判断し、妥当でない場合はOSGiクライアントに対して待受けポート番号を指定するメッセージを送信し、妥当な場合は前記受信したIPアドレス、ポート番号を前記メッセージに付与されたOSGiクライアントを識別するための識別子にて指定されるデータベースエントリに記憶するすことを特徴とするOSGiサーバ。
【請求項4】
OSGiクライアントであって、OSGiクライアントが起動時にOSGiサーバがOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を付与したメッセージをOSGiサーバに送信することを特徴とするOSGiクライアント
【請求項5】
請求項4記載のOSGiクライアントであって、OSGiクライアントが起動時にOSGiサーバがOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を付与したメッセージをOSGiサーバに送信した後、OSGiサーバから待受けポート番号変更指示があった場合は、前記指示された待受けポート番号にて再起動し、再度OSGiサーバにOSGiサーバがOSGiクライアントと通信するためのIPアドレス、ポート番号、及び該OSGiクライアントを識別するための識別子を付与したメッセージをOSGiサーバに送信することを特徴とするOSGiクライアント。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−186571(P2011−186571A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−48570(P2010−48570)
【出願日】平成22年3月5日(2010.3.5)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】