(57)【要約】【課題】同一のOSGiフレームワーク上で動作する複数のサービスアプリケーションを安全に実行できるようアクセスコントロールするためのPermissionの設定方法を提供する。【解決手段】セグメント内のリソースに対するPermissionについては全て許可され、セグメントを越えるPermissionについては管理者の許可がないと付与されない。従って、サービスプロバイダは、自分のサービスアプリケーションのバンドルに対して、同一のセグメント内に含まれているリソースへのPermissionを要求すれば全て許可される。【選択図】図３
2008276671.tif 000002
【特許請求の範囲】
【請求項１】
OSGiフレームワーク上においてサービスアプリケーション毎に当該サービスアプリケーションを構成するバンドルならびに当該バンドルが利用可能なリソースの集合であるセグメントを生成する手段と、
セグメントに含まれるリソースへのPermissionを同一セグメントに属するバンドルに対して全て許可をする手段と
を含むことを特徴とするサービスアプリケーション管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、本発明は、同一のOSGiフレームワーク上で複数のサービスを同時に動作させる際にサービス間を分離するセキュリティシステムを搭載したサービスアプリケーション管理システムに関する。
【背景技術】
【０００２】
従来、複数のバンドルと呼ばれるプラグイン化されたプログラムを同一のJava(登録商標） Vertual Machine上で動作させることができるOSGiフレームワークが知られている（非特許文献１、２）。OSGiフレームワーク上では、上記バンドルをJava(登録商標） Vertual Machineを停止することなくインストール、アンインストールすることが可能であり、また異なるバンドル間でクラスやインスタンスを共有して利用することができる。
【０００３】
また、Java(登録商標）のセキュリティモデルでは、Permissionという情報を利用して、Java(登録商標）プログラムからファイルやソケットなどに対するアクセスコントロールを行なうことができ。これを拡張する形で、OSGiフレームワークでは、異なるバンドル間のクラスやインスタンスの共有をPermissionでアクセスコントロールすることができる。
【０００４】
また、OSGiフレームワーク上には、複数のサービスプロバイダがサービスアプリケーションを動作させることができる。サービスアプリケーションは、各サービスプロバイダがエンドユーザにサービスを提供するプログラムの集合であり、１つ以上のバンドルから構成される。これらのサービスアプリケーションが動作するOSGiフレームワークには、管理者が存在し、各サービスアプリケーションを構成するバンドルのPermissionを変更することで、サービスアプリケーションの動作をコントロールできる。
【０００５】
また、サービスアプリケーションは、それに含まれるバンドルのクラス、パッケージ、動作環境におけるソケット、ファイル、システムプロパティなどのリソースを利用してサービスを提供する。
【非特許文献１】OSGi Service Platform Release 3
【非特許文献２】OSGi Service Platform Release 4
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したOSGiフレームワークでは、複数の異なるサービスプロバイダが同一のOSGiフレームワーク上でサービスアプリケーションを動作させる場合の管理モデルが存在していない。このため、サービスアプリケーションは、他のサービスアプリケーションから動作の妨害やリソースの競合を受け、安全に実行できない虞がある。
【０００７】
従って、各サービスアプリケーションを安全に実行できるようアクセスコントロールをするためには、管理者が細かくPermissionを定める必要があり、極めて煩雑であった。
【０００８】
また、サービスプロバイダはあらかじめ自分に許可されるPermissionが分からないため、設計を行なってから各バンドルに必要なPermissionを管理者に申告し許可を得なければならず、バンドルの開発が難しかった。
【０００９】
本発明は、従来の課題を解決するためになされたもので、同一のOSGiフレームワーク上で動作する複数のサービスアプリケーションを安全に実行できるようアクセスコントロールするためのPermissionの設定方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決する第１の発明は、OSGiフレームワーク上にサービスアプリケーション毎に、当該サービスアプリケーションを構成するバンドルならびに当該バンドルが利用可能なリソースの集合であるセグメントを生成する手段と、セグメントに含まれるリソースへのPermissionを同一セグメントに属するバンドルに対して全て許可をする手段とを含むことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、サービスアプリケーション毎にセグメントを定義し、セグメント内部のPermissionについては全て許可し、セグメントの外部に出るPermissionについては検出して警告を上げるため、管理者は全てのPermissionを管理する必要がなく、他のサービスアプリケーションに影響を与える可能性のあるPermissionのみを制御すればよく、管理が容易になる。
【００１２】
また、サービスプロバイダはあらかじめ自分に許可されるリソースを管理者から提示してもらうことで、自分が提供するサービスアプリケーションに与えられるPermissionが明確になり、開発が容易になる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１４】
図１は、本発明の一実施形態のホームゲートウェイ装置を示す図である。
【００１５】
図１において、本実施形態のホームゲートウェイ装置１は、通信部１１、記憶部１２、入力部１３、表示部１４および制御部１５を備えており、これら通信部１１、記憶部１２、入力部１３、表示部１４および制御部１５は、内部バス１６を介して接続されている。
【００１６】
通信部１１は、ネットワーク３に接続され、このネットワーク３を介してサーバ２と通信を行うようになっている。なお、説明の便宜上、サーバ２のみを図示しているが、他の機器が接続されていてもよい。
【００１７】
記憶部１２は、ハードディスク等の記録媒体によって構成されており、ホームゲートウェイ装置自体を制御する制御プログラム等が記録されている。
【００１８】
入力部１３は、各種ボタンやキーボード等によって構成されており、ホームゲートウェイ装置１の各種設定等を行うようになっている。
【００１９】
表示部１４は、ランプや液晶表示装置等の表示装置によって構成されており、上述のホームゲートウェイ装置１の各種設定やホームゲートウェイ装置１の状態を表示するようになっている。
【００２０】
制御部１５は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read-Only Memory）、ＲＡＭ（Random Access Memory）等から構成されており、上述の制御プログラムに基づいてホームゲートウェイ装置１全体を制御するようになっている。
【００２１】
図２は、本実施形態のホームゲートウェイ装置１の機器２を制御するためのソフトウェアの構成を示す図である。なお、これらソフトウェアは、Java(登録商標） VM上で動作するOSGi Framework上で動作する。
【００２２】
図２において、各サービスアプリケーション毎にセグメントが定義される。セグメントは各サービスアプリケーションが利用可能なリソースを集めたものであり、OSGiフレームワーク上に定義される。
【００２３】
図３は、Permissionが許可される範囲を示す。セグメント内のリソースに対するPermissionについては全て許可され、セグメントを越えるPermissionについては管理者の許可がないと付与されない。従って、サービスプロバイダは、自分のサービスアプリケーションのバンドルに対して、同一のセグメント内に含まれれているリソースへのPermissionを要求すれば全て許可される。このため、サービスプロバイダは、上記の許可される範囲で、自分のサービスアプリケーションのセグメントに含まれるバンドルに対するPermissionを自由に決定することが出来る。
【００２４】
また、セグメントを越えるPermissionについては、管理者の許可があれば得ることができる。
【００２５】
図４は、セグメントを管理するセグメント設定部を示す。セグメント設定部は、セグメントを生成／削除するステップ、セグメントの情報を取得／変更／保存するステップ、セグメントに含まれるPermissionを監視し他のサービスアプリケーションの実行に影響のあるPermissionを検出して警告を上げるステップ、の３つのステップを実行する機能を有する。
【００２６】
セグメント設定部は、セグメント名、当該セグメントに含まれるリソースおよびPermission、当該セグメントに含まれるバンドルの情報などを、ManagementAgentから受け取り、それに従ってセグメントを生成する。セグメントは、セグメント設定部によって生成され記憶される。当該セグメントに含まれるPermissionについては、OSGiフレームワークの機能であるPermissionAdminあるいはConditional PermissionAdminを利用して各バンドルに設定する。
【００２７】
セグメント設定部は、ManagementAgentの指示に従い、指定されたセグメントの、セグメント名、含まれるリソースおよびPermission、含まれるバンドルなどの情報を返す。ManagementAgentはまた、セグメント設定部を介して、セグメントに含まれる上記の情報を変更することができる。セグメント設定部は、ManagementAgentから与えられた情報に従ってセグメントを制御し、情報を記憶する。
【００２８】
セグメント設定部は、ManagementAgentから指示された、セグメントに含まれるPermissionを監視し、他のサービスアプリケーションに影響を与える可能性があるPermissionを検出する。例えば、他のセグメントに与えられているFilePermissionと重複するPermission、他のセグメントに与えられているServicePermissionと重複するPermissionなどを検出する。そして、他のサービスアプリケーションの動作に影響を与える可能性のあるPermissionを検出した旨を、ManagementAgentに警告する。ManagementAgentは警告に従い、当該Permissionを認めない、当該Permissionを変更する、当該Permissionの重複を許可するなど、適切な処理を行なうことが可能になる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態のホームゲートウェイ装置のブロック図である。
【図２】本発明の一実施形態のセグメント構成図である。
【図３】本発明の一実施形態のセグメントとPermissionの構成図である。
【図４】本発明の一実施形態のセグメントを管理するセグメント設定部の構成図である。
【符号の説明】
【００３０】
１  ホームゲートウェイ装置
１１  通信部
１２  記憶部
１３  入力部
１４  表示部
１５  制御部
１６  内部バス
【図１】
2008276671.tif 000003
【図２】
2008276671.tif 000004
【図３】
2008276671.tif 000005
【図４】
2008276671.tif 000006