(57)【特許請求の範囲】
【請求項１】
複数のサービス事業者のサービスが動作するゲートウェイ装置であって、
前記サービスは、当該サービスで用いられるルート情報と、当該サービスの利用が許可される機器に関する許可情報とを含むサービス定義情報、及び、機器にインストールされた外部アプリケーションにより構成され、
サービス毎に設けられ、前記サービス定義情報を記憶する記憶部と、
通信プロトコル毎に設けられ、前記外部アプリケーションと当該通信プロトコルでデータを送受信するドライバ部と、
前記ドライバ部が対応する通信プロトコルのインタフェースで送受信されたデータを共通インタフェースに変換する中継部と、
前記中継部から共通インタフェースに変換されたデータを受け付け、対応するサービスのサービス定義情報を前記記憶部から読み出し、当該サービス定義情報のルート情報および許可情報に基づいて前記データを中継する中継基本部と、を有すること
を特徴とするゲートウェイ装置。
【請求項２】
複数のサービス事業者のサービスが動作するゲートウェイ装置が行う通信方法であって、
前記サービスは、当該サービスで用いられるルート情報と、当該サービスの利用が許可される機器に関する許可情報とを含むサービス定義情報、及び、機器にインストールされた外部アプリケーションにより構成され、
前記ゲートウェイ装置は、
サービス毎に設けられ、前記サービス定義情報を記憶する記憶部を備え、
前記外部アプリケーションと、所定の通信プロトコルでデータを送受信する通信ステップと、
前記通信ステップで所定の通信プロトコルのインタフェースで送受信されたデータを共通インタフェースに変換する変換ステップと、
前記共通インタフェースに変換されたデータを受け付け、対応するサービスのサービス定義情報を前記記憶部から読み出し、当該サービス定義情報のルート情報および許可情報に基づいて前記データを中継する中継ステップと、を行うこと
を特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサービス事業者のサービスが動作するゲートウェイ装置、および当該ゲートウェイ装置が行う通信方法に関する。
【背景技術】
【０００２】
近年では、パソコンやAV機器、情報家電など、様々な機器がネットワークに接続され、ホームネットワークを形成しつつある。また、ホームネットワークは、ゲートウェイ装置によって、インターネットなどの外部ネットワークに接続されている。
【０００３】
このような状況を反映して、これらホームネットワークに接続された機器を用いたサービスの提供を計画するサービス事業者も多様である。
【０００４】
非特許文献１には、このような背景を踏まえ、複数のサービス事業者が、ゲートウェイ装置と、それを管理するセンターシステムとを共用し、ユーザにサービスを提供するプラットフォーム技術（OSAP）が記載されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“NTT研究開発この一年 2007年報「 OSGiサービス・アグリゲーション・プラットフォーム（OSAP）」”、［online］、［2011年2月24日検索］、インターネット＜http://www.ntt.co.jp/RD/OFIS/active/2007pdf/hot/pf/01.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１のプラットフォーム技術では、サービス事業者は、サービスを実行するアプリケーションプログラム（以下、「ＡＰ」という）を作成し、作成されたＡＰは当該サービスを利用するユーザのゲートウェイ装置にダウンロードされ、実行される。ゲートウェイ装置のＡＰが機器の制御などの通信を行うことで、サービスが提供される。
【０００７】
しかしながら、非特許文献１には次のような課題がある。すなわち、ゲートウェイ装置では、様々なサービス事業者のＡＰやゲートウェイ装置自身が提供する機能が動作しており、あるＡＰに障害が発生した場合に、ゲートウェイ装置全体が停止などしてしまうと大きな問題となる。そのようなことが発生しないように、新たなＡＰを導入する際には、事前にＡＰの動作検証を行う必要があり、新サービス追加時のＡＰの事前動作検証コスト（費用、期間）が大きいという課題がある。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、複数のサービス事業者のサービスが動作するゲートウェイ装置において、新たなサービスを追加する際の動作検証コストを低減することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、複数のサービス事業者のサービスが動作するゲートウェイ装置であって、前記サービスは、当該サービスで用いられるルート情報と、当該サービスの利用が許可される機器に関する許可情報とを含むサービス定義情報、及び、機器にインストールされた外部アプリケーションにより構成され、サービス毎に設けられ、前記サービス定義情報を記憶する記憶部と、通信プロトコル毎に設けられ、前記外部アプリケーションと当該通信プロトコルでデータを送受信するドライバ部と、前記ドライバ部が対応する通信プロトコルのインタフェースで送受信されたデータを共通インタフェースに変換する中継部と、前記中継部から共通インタフェースに変換されたデータを受け付け、対応するサービスのサービス定義情報を前記記憶部から読み出し、当該サービス定義情報のルート情報および許可情報に基づいて前記データを中継する中継基本部と、を有する。
また、本発明は、複数のサービス事業者のサービスが動作するゲートウェイ装置が行う通信方法であって、前記サービスは、当該サービスで用いられるルート情報と、当該サービスの利用が許可される機器に関する許可情報とを含むサービス定義情報、及び、機器にインストールされた外部アプリケーションにより構成され、前記ゲートウェイ装置は、サービス毎に設けられ、前記サービス定義情報を記憶する記憶部を備え、前記外部アプリケーションと、所定の通信プロトコルでデータを送受信する通信ステップと、前記通信ステップで所定の通信プロトコルのインタフェースで送受信されたデータを共通インタフェースに変換する変換ステップと、前記共通インタフェースに変換されたデータを受け付け、対応するサービスのサービス定義情報を前記記憶部から読み出し、当該サービス定義情報のルート情報および許可情報に基づいて前記データを中継する中継ステップと、を行う。
【発明の効果】
【００１０】
本発明によれば、複数のサービス事業者のサービスが動作するゲートウェイ装置において、新たなサービスを追加する際の動作検証コストを低減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る通信システムの全体構成図である。
【図２】ゲートウェイ装置の初期処理のシーケンスである。
【図３】ゲートウェイ装置の中継処理のシーケンスである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１３】
図１は、本発明の実施形態に係る通信システムの全体構成図である。
【００１４】
従来、サービス事業者から提供されるＡＰをゲートウェイ装置で動作させることにより実現していたサービス提供を、本実施形態では、ゲートウェイ装置側に保持されるＡＰバンドルと、機器側で動作させる外部ＡＰとに分けて、サービス提供を実現する。
【００１５】
なお、本実施形態では、OSGi（Java（登録商標））の技術を用いた実装を一例として以下に説明するが、本発明はこれに限定されるものではなく、様々な技術に適用することができる。
【００１６】
図示する通信システムは、ゲートウェイ装置１と、複数の機器４１〜４４と、配信サーバ３とを備える。複数の機器４１〜４４は、ホームネットワーク８または外部ネットワーク９を介してゲートウェイ装置１と接続され、ゲートウェイ装置１と通信する。なお、図１では、機器の例として、機器４１がスマートフォン、機器４２がプリンタ、機器４３がパソコン、機器４４が固定電話機としているが、これらに限定されるものではない。
【００１７】
また、図示する例では、機器４１（スマートフォン）および機器４３（パソコン）には、所定のサービスの利用に必要な外部ＡＰがそれぞれインストールされている。ユーザは、所望のサービスの利用する場合、当該サービスを提供するサービス事業者のサーバに機器４１、４３を用いてアクセスし、対応する外部ＡＰを機器４１、４３にダウンロードおよびインストールする。
【００１８】
配信サーバは、例えばＯＳＡＰのセンターシステムであって、各サービス事業者から提供されるＡＰバンドルと、ゲートウェイ装置１の提供者（例えば、通信事業者など）が提供する中継バンドルおよびドライババンドルを保持し、これらのバンドルをゲートウェイ装置に配信する。ユーザは、所望のサービスの利用する場合、当該サービスに対応するＡＰバンドル、中継バンドルおよびドライババンドルを配信サーバ３からゲートウェイ装置１にダウンロードし、インストールする。
【００１９】
ゲートウェイ装置１は、宅内に配置されるホームゲートウェイ（サービスゲートウェイ）であって、ホームネットワーク８または外部ネットワーク９に接続されたネットワーク装置である。本実施形態のゲートウェイ装置１は、OSGi標準技術に基づいた各種のバンドル（ソフトウェア）を備える。図示する例では、ドライババンドル（ドライバ部）１８〜２１と、中継バンドル（中継部）１５〜１７と、中継基本バンドル（中継基本部）１４と、ＡＰバンドル（サービス定義情報）１１〜１３とを備える。なお、ドライババンドル１８〜２１と、中継バンドル１５〜１７と、ＡＰバンドル１１〜１３は、前述のとおり、配信サーバ３から配信されるものである。
【００２０】
ドライババンドル１８〜２１は、通信プロトコル毎に設けられ、機器にインストールされた外部アプリケーションまたは機器と当該通信プロトコルでデータを送受信する。具体的には、各ドライババンドルは、対応する機器と、当該機器が使用する通信プロトコル（例えばHTTPやUPnP、SIPなど）で通信する。各ドライババンドルは、それぞれの通信プロトコルに特化した専用のインタフェースを定義している。
【００２１】
中継バンドル１５〜１７は、ドライババンドルが所定の通信プロトコルのインタフェースで送受信されたデータを共通インタフェースに変換する。具体的には、ドライババンドルの個別のインタフェースを、中継基本バンドル１４が定義する共通インタフェースに変換する。中継バンドルは、基本的にはドライババンドル毎に存在するが、図１に示す中継バンドル１６のように複数のドライババンドル１９、１０で共有されていてもよい。
【００２２】
中継基本バンドル１４は、各中継バンドルから共通インタフェースに変換されたデータを受け付け、対応するサービスのサービス定義ファイル（サービス定義情報）をＡＰバンドルから読み出し、当該サービス定義ファイルのルート情報および許可情報に基づいてデータを中継する。また、中継基本バンドルは、ＡＰバンドルに保持されるサービス定義ファイルを読み出し、当該ファイルに定義された範囲内で、当該ＡＰバンドル、対応する中継バンドル向けのサービス（例えばOSGiサービス）を生成し、登録する。なお、中継基本バンドルは、１つであって、ＡＰバンドル（サービス事業者）に代わって中継バンドルを用いて通信の中継処理を行う。
【００２３】
ＡＰバンドル１１〜１３は、サービス事業者が作成するバンドルであって、外部ＡＰと対をなすソフトウェアであり、サービス毎に設けられる。各ＡＰバンドルには、サービスを定義するためのサービス定義ファイルが格納される。サービス定義ファイルには、当該サービスで用いられるルート情報（例えば、HTTP→UPnPなどの中継先プロトコル）、当該サービスの利用が許可される機器に関するパーミッション情報（サービス事業者に許可されたパーミッションのみ記述される）、その他サービスの名称や説明文などの情報などの中継に関する設定情報が格納される。なお、ＡＰバンドルは、通常、中継基本バンドル１４に初期化の要求だけを行い、その他の処理は行わない。
【００２４】
以上説明したゲートウェイ装置１は、例えば、ＣＰＵと、メモリと、ＨＤＤ等の外部記憶装置と、入力装置と、出力装置とを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされたゲートウェイ装置１のプログラム（バンドル）を実行することにより、ゲートウェイ装置１の各機能が実現される。また、ゲートウェイ装置１のプログラム（バンドル）は、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００２５】
次に、本実施形態のゲートウェイ装置１の処理について説明する。
【００２６】
まず、ゲートウェイ装置１の初期処理について説明する。新たなＡＰバンドルと、当該ＡＰバンドルに対応する中継バンドルおよびドライババンドルがゲートウェイ装置１に登録（ダウンロード）されると、中継基本バンドルは初期処理を行う。中継基本バンドルは、ＡＰバンドルに格納されたサービス定義ファイルに基づいて、対応する中継バンドルからのコールバックを受け付けるためのリスナ登録と、対応する中継バンドルの初期化とを行う。
【００２７】
中継バンドルは、中継基本バンドルからの初期化指示により、機器が備える外部ＡＰへの接続をドライババンドルに要求し、また、必要に応じてドライババンドルからのコールバックを受けるための処理を行う。
【００２８】
図２は、OSGiにおける初期処理の一例を示すシーケンスである。
【００２９】
新たに登録されたＡＰバンドルは、起動時に、中継基本バンドルのRelayManagerの機能を用いて、中継機能の初期化を要求する。これにより、中継基本バンドルは、ＡＰバンドル内のサービス定義ファイルを読み出し、RelayAdmin、Notifyの各OSGiサービスの登録を行う。
【００３０】
具体的には、ＡＰバンドルは、RelayManagerの生成指示を中継基本バンドルに送信し（Ｓ１１）、中継基本バンドルは、ＡＰバンドルに格納されたサービス定義ファイルを読み出し、RelayManagerを生成する（Ｓ１２）。RelayManagerは、ＡＰバンドルが中継基本バンドルに初期化を依頼するインタフェースである。
【００３１】
中継基本バンドルにRelayManagerが生成されると、ＡＰバンドルは、RelayManager のinit()メソッドを呼び出して、中継基本バンドルの初期化を行う（Ｓ１３）。これにより、RelayManager は、ＡＰバンドルのサービス定義ファイルのサービス事業者識別子、中継種別のリスト、ルートクラスのリストなどの設定情報に基づき、ルート情報の設定、RelayAdminの登録（Ｓ１４）、およびNotifyの登録（Ｓ１７、Ｓ２０）を行う。
【００３２】
RelayAdminの登録（Ｓ１４）では、サービスプロパティにＡＰバンドルのサービス事業者識別子、その他のＡＰバンドルのサービス定義ファイルの内容の一部を設定する。RelayAdminは、ＡＰバンドルに関する情報を中継バンドルが取得するためのインタフェースである。
【００３３】
登録されたRelayAdminは、対応する中継バンドル（図示する例では、中継バンドル１と中継バンドル２）の各々に、登録通知を送信する（Ｓ１５、Ｓ１９）。これにより、中継バンドルは、必要に応じて、ドライババンドルの初期化に必要な情報を取得してドライババンドルを初期化し、また、対応する外部ＡＰへの接続情報を取得して外部ＡＰへの接続を行うようにドライババンドルに指示する（Ｓ１６）。
【００３４】
Notifyの登録（Ｓ１７、Ｓ２０）では、ＡＰバンドルのサービス定義ファイルからサービス事業者と中継種別のリストを読み出し、サービスプロパティに設定する。Notifyは、中継バンドルが中継基本バンドルにノーティファイ中継を依頼するインタフェースである。また、中継バンドルがノーティファイ中継の必要性を判断するためにノーティファイの登録を監視しているインタフェースでもある。
【００３５】
登録されたNotify は、対応する中継バンドル（図示する例では、中継バンドル１と中継バンドル２）の各々に、登録通知を送信する（Ｓ１８、Ｓ２１）。中継バンドルは、Notifyが登録されると、自分が処理するべきノーティファイ中継種別をサービスプロパティに持つサービスをトラッキングし、ノーティファイ中継を開始する。
【００３６】
また、中継バンドルは、ドライババンドルに対して機器からの通知や、外部ＡＰからの要求を受信できるように設定する場合には、ＡＰバンドルのBundeContextやAccessControlContextを使用し、ＡＰバンドルのサービス定義ファイルに設定されているパーミッション情報の範囲内で動作するようにする（Ｓ２２）。
【００３７】
このように、中継バンドルは、RelayAdminおよびNotifyが登録されると、外部APへの接続をドライババンドルに依頼したり、必要に応じて、ドライババンドルからのコールバックを受けるためのサービスをＡＰバンドルのBundleContextおよびAccessControlContextを用いて登録する。
【００３８】
次に、本実施形態の中継処理について説明する。
【００３９】
中継処理は、中継バンドルからの呼び出し（ノーティファイ中継）を、別の中継バンドルへの呼び出し（アクション中継）に変換し、応答がある場合には、アクション中継の戻り値をノーティファイ中継の戻り値として、元の中継バンドルに返す一連の処理である。
【００４０】
図３は、OSGiにおける中継処理の一例を示すシーケンスである。
【００４１】
ドライババンドルは、外部ＡＰからの通信または機器からの通知などのイベントを受け取った場合、対応する中継バンドルを呼び出す（Ｓ４１）。ここでは、ドライババンドルは、外部ＡＰからのイベント受け取り、中継バンドル１を呼び出すものとする。中継バンドル１は、当該イベントを受け取るべきＡＰバンドルを選択し、当該ＡＰバンドルが登録されている中継基本バンドルのNotify１を呼び出し、イベントを中継する（Ｓ４２）。このノーティファイ中継において、中継バンドル１は、必要に応じて送信先ルートクラス・ルートセッション、および、送信元ルートクラス・ルートセッションを含めることができる。
【００４２】
Notify１は、イベントのノーティファイ中継を受けると、送信先ルートクラス（中継バンドル）を決定するルーティング処理を行う（Ｓ４３）。Notify１は、例えば、ＡＰバンドル内のサービス定義ファイルに記載されたルート情報から、中継種別の先頭部分が最も長く一致するエントリを選択し、選択したルートクラスを送信先として決定する。なお、ノーティファイ中継に送信先ルートクラスが指定されている場合は、指定されたルートクラスを送信先として決定する。
【００４３】
具体的には、ある要求に対する応答などルートクラスが明確である場合、中継バンドルは送信先ルートクラスをノーティファイ中継の要求データに送信先ルートクラスを含めるためそれを利用する。要求データに送信先ルートクラスがない場合、例えばサービス定義ファイルに以下の様に記載されているとき、中継種別がA.UPnP1.0-CP.InvokeActionの場合、送信先ルートクラスとしてupnpcustomを選択し、中継種別がA.UPnP1.0-CP.GetDeviceDescriptionの場合は送信先ルートクラスとしてupnpcpを選択する。なお、中継バンドルは、起動時に自らが処理可能なルートクラスを自らのオブジェクトのプロパティに登録しておき、それを元に中継バンドルを選択する。
【００４４】
＜例：サービス定義ファイルの記述＞
application.relay.route.A.UPnP1.0-CP.=upnpcp
application.relay.route.A.UPnP1.0-CP.InvokeAction=upnpcustom
Notify１は、Ｓ４３で決定した送信先ルートクラスの中継バンドルを、ＡＰバンドルのパーミッション情報を用いて呼び出す、アクション中継を行う（Ｓ４４）。ここでは、中継バンドル２を呼び出すものとする。このとき、ノーティファイ中継で送信先ルートセッション、および、送信元ルートクラス・ルートセッションが指定されている場合、これらも引き渡す。
【００４５】
中継バンドル２は、ＡＰバンドルのパーミッション情報の範囲内で、ドライババンドルの機能を用いてアクションを実行し、機器の制御または外部ＡＰへの通知を行う（Ｓ４５）。
【００４６】
具体的には、例えばパーミッション情報として該当するドライババンドルの利用権限が与えられていない場合には、制御を失敗させる。その他、ドライババンドルに規定されたパーミッション（Javaパーミッション）がすべてＡＰバンドルのパーミッション情報に記載されている場合のみ制御が成功する。
【００４７】
なお、Ｓ４１で入力されたイベントが応答を要求する応答付の場合には、Ｓ４５のアクションの応答データを、逆のルートでノーティファイ中継の送信元の中継バンドル１、外部ＡＰまたは機器に返す。図示する例では、機器の応答データは、中継バンドル２を介してNotify２に中継され（Ｓ４６、Ｓ４７）、Notify２は送信先ルートクラス（中継バンドル１）を決定し（Ｓ４８）、中継バンドル１から外部ＡＰに送信される（Ｓ４９、Ｓ５０）。
【００４８】
以上説明した本実施形態では、ルート情報およびパーミッション情報が定義されたサービス定義ファイルをゲートウェイ装置１に配信するとともに、中継バンドルによってAPI（Application Program Interface）を統一する。これにより、ゲートウェイ装置の提供者（例えば、通信事業者など）は、サービス事業者から提供されるＡＰバンドルに記述されたサービス定義ファイルの情報のみを静的に読み出し、チェック・検証するだけで、新たなサービスを追加することができる。すなわち新サービス追加時の動作検証コストを低減することができる。
【００４９】
従来技術では、ＡＰバンドルの代わりにゲートウェイ装置にダウンロードされるＡＰをチェックする必要があるが、ＡＰは通常汎用的なプログラム言語で記載されるため、記述された内容に問題がないかを静的に読み出しチェックするだけでは、ゲートウェイ装置の提供者にとって不都合があるかどうか判断できない場合が多く、実際には新たなサービスのＡＰを導入する前に、実際にＡＰを動作させた試験を行う必要があり、期間的、金銭的なコストが大きい。これに対し、本実施形態では、サービス定義ファイルの情報のみを検証するだけで、新たなサービスを追加することができため、動作検証コストを低減することができる。
【００５０】
また、本実施形態では、サービス事業者は、サービスをゲートウェイ装置１のＡＰバンドルと、機器の外部ＡＰとで実現する。これにより、外部ＡＰは複数の通信プロトコルを直接制御する必要はなく、サービス事業者が慣れている（開発コストが小さい）１つの通信プロトコル（例えばHTTP等）で、各機器を利用することができる。すなわち、本実施形態では、従来技術における、サービス事業者が各通信プロトコルおよびそのドライバプログラムの挙動を把握してＡＰを作成することによる、開発コストが大きいという課題を解決することができる。
【００５１】
また、本実施形態では、エンドユーザは、通信プロトコル毎のドライババンドルの単位ではなく、サービス毎のＡＰバンドルによって許可される機器もしくは外部ＡＰのみが通信するよう制限することができる。
【００５２】
また、本実施形態では、将来新たな通信プロトコルや、それを利用するサービスが登場した場合でも、当該通信プロトコルまたはサービスに対応するドライババンドル、中継バンドル、ＡＰバンドルをゲートウェイ装置に配信することで、同じ枠組みで対応可能であり、将来的な拡張が容易である。
【００５３】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、中継バンドルが処理する内容を、機能ごとに文字列（中継種別）で定義し、中継種別の単位で中継を行うこともできる。例えば、UPnP機器のDeviceDescriptionは取得させるが、UPnPのActionは送信させない等、独自に定義した中継種別単位で記述することが考えられる。
【００５４】
また、外部ＡＰの認証情報をＡＰバンドルに格納する（例えばダイジェスト認証のID/Pass、証明書  等）ことで、外部ＡＰとＡＰバンドル（サービス）とを１対１に対応させることとしてもよい。
【００５５】
また、ユーザインタフェースを設け、ユーザからの入力により、ＡＰバンドルのパーミッション情報を動的に変更し、例えば中継対象を機器個体単位で追加削除することができるようにしてもよい。これにより、機器単位でのアクセスコントロールが可能になる。
【００５６】
また、上記実施形態では、OSGiの技術を用いた実装例について説明したが、本発明はこれに限定されるものではなく、様々な技術に適用することができる。
【符号の説明】
【００５７】
１  ：ゲートウェイ装置
１１、１２、１３：ＡＰバンドル
１４：中継基本バンドル
１５、１６、１７：中継バンドル
１８、１９、２０、２１：ドライババンドル
３  ：配信サーバ
４１、４２、４３、４４：機器
２１：再生部
【図１】
0005478554.tif 000002
【図２】
0005478554.tif 000003
【図３】
0005478554.tif 000004