JP2013206040A - OSGi実行装置、OSGiシステム - Google Patents
OSGi実行装置、OSGiシステム Download PDFInfo
- Publication number
- JP2013206040A JP2013206040A JP2012073231A JP2012073231A JP2013206040A JP 2013206040 A JP2013206040 A JP 2013206040A JP 2012073231 A JP2012073231 A JP 2012073231A JP 2012073231 A JP2012073231 A JP 2012073231A JP 2013206040 A JP2013206040 A JP 2013206040A
- Authority
- JP
- Japan
- Prior art keywords
- osgi
- bundle
- framework
- unit
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】信頼性を保証できないOSGiバンドルを実行した場合にもOSGiフレームワーク全体としての信頼性を保つ技術を提供する。
【解決手段】本発明に係るOSGi実行装置は、第1および第2OSGiフレームワーク部を備え、第1OSGiフレームワーク部から第2OSGiフレームワーク部へOSGiバンドルをエクスポートし、第2OSGiフレームワーク部が正常稼動していない場合はこれを再起動する。
【選択図】図3
【解決手段】本発明に係るOSGi実行装置は、第1および第2OSGiフレームワーク部を備え、第1OSGiフレームワーク部から第2OSGiフレームワーク部へOSGiバンドルをエクスポートし、第2OSGiフレームワーク部が正常稼動していない場合はこれを再起動する。
【選択図】図3
Description
本発明は、OSGiフレームワークの信頼性を高める技術に関する。
OSGiフレームワークとは、Java(登録商標)Virtual Machine上で動作し、JavaプログラムをPluginモジュールとして取り扱い、動的に追加・実行できるようにする、サービスプラットフォームである。OSGiフレームワークは、OSGi Allianceによって開発・定義されている(非特許文献1)。Pluginモジュールとして扱われるOSGiフレームワーク上のJavaプログラムのことをOSGiバンドルと呼ぶ。
例えば、OSGiフレームワークを使用せず、C言語等を用いてアプリを開発する場合と比較して以下の違いがある。まず、OSGiフレームワークはJava上で動作するため、環境に合わせたOSGiバンドルの再開発・修正が必要ない。次に、OSGiフレームワークは1つのJavaアプリ、つまりOSからみた場合1つのプロセスとして実行され各OSGiバンドルは全てこの1プロセス内で実行されるためメモリ使用量が少なく、メモリの少ない組み込み機器上での開発に適している。さらには、各OSGiバンドル同士は動的に機能連携できるため、後から容易に機能追加できる。
下記非特許文献2に記載されているR−OSGiは、複数のOSGiフレームワークを稼動させている場合において、各OSGiフレームワーク間でOSGiバンドルをインポート/エクスポートする機能を備えている。R−OSGi自身もOSGiバンドルとして構成されている。
OSGi Service Platform Release 4、URL:http://www.osgi.org/Release4/HomePage(2012年3月16日取得)
R−OSGi − transparent OSGi remote extension for distributed services、URL:http://r-osgi.sourceforge.net/(2012年3月16日取得)
OSGiフレームワークおよびその上で動作するOSGiバンドル群は、1つのプロセスとして実行される。これにより省メモリを実現しているが、同時に、1つのOSGiバンドルがハングアップすると、OSGiフレームワークおよび他のOSGiバンドルも一緒にハングアップしてしまうという課題がある。
これはOSGiフレームワークの開発元が全てのOSGiバンドルを開発し、各OSGiバンドルの動作の信頼性(可用性)を保証できる場合には問題とはならないが、サードパーティが作成したOSGiバンドルを一緒に実行する場合、そのOSGiバンドルひいてはOSGiフレームワーク全体の信頼性を保証できなくなる可能性がある。
本発明は、上記のような課題を解決するためになされたものであり、信頼性を保証できないOSGiバンドルを実行した場合にもOSGiフレームワーク全体としての信頼性を保つ技術を提供することを目的とする。
本発明に係るOSGi実行装置は、第1および第2OSGiフレームワーク部を備え、第1OSGiフレームワーク部から第2OSGiフレームワーク部へOSGiバンドルをエクスポートし、第2OSGiフレームワーク部が正常稼動していない場合はこれを再起動する。
本発明に係るOSGi実行装置によれば、OSGiの省メモリとOSGiバンドル間の動的な連携という特徴を保ちつつ、信頼性を保証できないOSGiバンドルが第2OSGiフレームワーク部上でハングアップした場合でも、第1OSGiフレームワーク部上の重要なOSGiバンドルを実行させ続けることができる。
<実施の形態1:システム構成>
図1は、本発明の実施形態1に係るホスト10の構成図である。ホスト10は、OSGiフレームワークを実行する装置であり、OS11、JavaVM121、122、123を備える。また、OS11と各JavaVMを実行するプロセッサを備える。記載の便宜上、図1ではOS11とプロセッサを一体的に示した。
図1は、本発明の実施形態1に係るホスト10の構成図である。ホスト10は、OSGiフレームワークを実行する装置であり、OS11、JavaVM121、122、123を備える。また、OS11と各JavaVMを実行するプロセッサを備える。記載の便宜上、図1ではOS11とプロセッサを一体的に示した。
JavaVM121〜123は、OS11上で実行される。JavaVM121は、UI・起動管理プログラム15を実行する。JavaVM122は、コアOSGi13を実行する。JavaVM123は、アプリOSGi14を実行する。図1上でJavaVMを3つに分けているのは、各JavaVMが別プロセスとして動いていることを明示するためである。OS11から見れば、コアOSGi13、アプリOSGi14、UI・起動管理プログラム15という3つのJavaプロセスが動いていることになる。
コアOSGi13とアプリOSGi14は、OSGi仕様にしたがって実装されたOSGiフレームワークである。
コアOSGi13は、高い可用性が求められるOSGiバンドル(以下ではコアバンドルと呼ぶ)を実行するOSGiフレームワークであり、コアバンドルA131、コアバンドルB132、R−OSGiバンドルS133を実行する。
アプリOSGi14は、必ずしも高い可用性を求められないOSGiバンドル(以下ではアプリバンドルと呼ぶ)を実行するOSGiフレームワークであり、R−OSGiバンドルC141、アプリバンドルX144、アプリバンドルY145を実行する。さらに、コアOSGi13からコアバンドルA131とコアバンドルB132をインポートし、コアバンドルA142およびコアバンドルB143として実行する。
R−OSGiバンドルS133とR−OSGiバンドルC141は、それぞれ「エクスポート部」と「インポート部」に相当する。
<実施の形態1:R−OSGi>
図2は、R−OSGi技術の概要を示す図である。R−OSGiは、OSGiフレームワーク間でOSGiバンドルを相互にエクスポート/インポートする機能を提供する。図2では、コアOSGi13からコアバンドルA131をアプリOSGi14へエクスポートし、アプリOSGi14はコアバンドルA131をインポートしてコアバンドルA142として実行する。R−OSGi自身もOSGiバンドルとして実装されており、OSGiフレームワーク自体には改変を加える必要はない。
図2は、R−OSGi技術の概要を示す図である。R−OSGiは、OSGiフレームワーク間でOSGiバンドルを相互にエクスポート/インポートする機能を提供する。図2では、コアOSGi13からコアバンドルA131をアプリOSGi14へエクスポートし、アプリOSGi14はコアバンドルA131をインポートしてコアバンドルA142として実行する。R−OSGi自身もOSGiバンドルとして実装されており、OSGiフレームワーク自体には改変を加える必要はない。
コアOSGi13上でR−OSGiバンドルS133が起動されると、R−OSGiバンドルS133はユーザの指定したTCPポートを介してR−OSGiバンドルC141からの接続を待ち受ける。
アプリOSGi14上で起動されたR−OSGiバンドルC141は、ユーザによって指定されたIPアドレスおよびTCPポートを用いて、R−OSGiバンドルS133との接続を確立する。
R−OSGiバンドルS133は、コアOSGi13上のOSGiバンドルであるコアバンドルA131とその提供するメソッドについての情報を取得し、TCP/IP接続を通じてR−OSGiバンドルC141にエクスポートする。それらの情報を受け取ったR−OSGiバンドルC141は、仮想的なOSGiバンドルであるコアバンドルA142を作成し、アプリOSGi14上で実行する。コアバンドルA142は、コアバンドルA131が持つのと同じメソッドのインターフェースは持つが、それらメソッドの実装は持たないOSGiバンドルである。
アプリOSGi14上のOSGiバンドルであるアプリバンドルX144がコアバンドルA142のメソッドを呼び出した場合、コアバンドルA142はその呼び出しをR−OSGiバンドルC141にフォワードする。R−OSGiバンドルC141はそれを更にR−OSGiバンドルS133にフォワードする。
そのメソッド呼び出しを受け取ったR−OSGiバンドルS133は、コアバンドルA142に対応するコアバンドルA131のメソッドを呼び出して実行し、その実行結果をR−OSGiバンドルC141にフォワードする。それを受け取ったR−OSGiバンドルC141それを更にコアバンドルA142にフォワードし、コアバンドルA142はそれをアプリバンドルX144に返す。
アプリバンドルX144から見ると、コアバンドルA142はアプリOSGi14に存在しているものであるかのように見える。これにより、アプリOSGi14上でコアOSGi13上のコアバンドルA131の機能を提供しつつ、コアバンドルA131とアプリバンドル144を切り分けることができる。すなわち、アプリバンドル144がハングアップにより正常稼動しなくなっても、その影響はコアバンドルA131に及ばない。
コアバンドルとして実装されるバンドルは、ハングアップやダウンさせたくない機能がこれに該当する。例えば、ログ機能、通信機能、セキュリティ機能などが考えられる。これらの機能はシステムの基本要素であるから、アプリバンドルがこれら機能を利用する場合が比較的多いと考えられる。したがって、単にコアOSGi13とアプリOSGi14を分離してコアOSGi13を安定的に実行すればよいというものではなく、両者が連携することが必要になるのである。
なお、本実施形態1ではOSGiバンドルをエクスポート/インポートしてOSGiフレームワーク同士を連携させる手段としてR−OSGiを例示したが、同様の機能を実現することができれば、その他の手段を用いてもよい。
<実施の形態1:システム動作の概略>
図3は、ホスト10の動作を概念的に表した図である。コアOSGi13とアプリOSGi14は、R−OSGiバンドルS133とR−OSGiバンドルC141によって連携している。より具体的には、R−OSGiバンドルS133がコアOSGi13上のコアバンドルA131およびコアバンドルB132をエクスポートし、R−OSGiバンドルC141がそれらのOSGiバンドルをアプリOSGi14にインポートしている。
図3は、ホスト10の動作を概念的に表した図である。コアOSGi13とアプリOSGi14は、R−OSGiバンドルS133とR−OSGiバンドルC141によって連携している。より具体的には、R−OSGiバンドルS133がコアOSGi13上のコアバンドルA131およびコアバンドルB132をエクスポートし、R−OSGiバンドルC141がそれらのOSGiバンドルをアプリOSGi14にインポートしている。
アプリOSGi14上の他のOSGiバンドル、例えばアプリバンドルX144から見ると、コアバンドルA142とコアバンドルB143はアプリOSGi14上で実行されているように見える。
OSGiフレームワークを利用するユーザは、OSGiバンドルをインポートする側のアプリOSGi14に対して、OSGiバンドルを呼び出すよう要求し、任意のOSGiバンドルをインストールし、または管理操作を実施する。コアOSGi13上のバンドルとアプリOSGi14上のバンドルが全て利用できるのはアプリOSGi14の方だからである。
仮に、ユーザがコアOSGi13に対して操作を実施すると仮定する。この場合、信頼性(可用性)を保証できないサードパーティ製のOSGiバンドルをコアOSGi13上にインストールすることができる。そうすると、信頼性の低いOSGiバンドルがコアOSGi13をハングアップさせてしまう可能性が高くなるので、コアバンドルA131などの信頼性もこれに引きずられて信頼性が低下する。そこで本発明では、ユーザが操作する対象はアプリOSGi14とした。
なお、コアバンドルの製作者とアプリバンドルの製作者は異なる可能性があるが、これら製作者と各OSGiフレームワークの製作者は必ずしも同一でなくともよい。すなわちコアバンドルの製作者は信頼性を何らかの手段で確認することができればよく、必ずしもOSGiフレームワークの製作者と同一でなくともよい。また、コアOSGi13とアプリOSGi14を分離しているのは、アプリバンドルが必ずしも信頼性を確保できない可能性があることに鑑みたものであるが、信頼性を確保できるアプリバンドルをアプリOSGi14上で実行することを排除するものではない。
OSGiバンドルの製作者が誰であるかについては、OSGiフレームワーク上へOSGiバンドルをインストールする者がその入手先を把握していればこれに基づき判断することもできるし、jar(Javaアーカイブ)ファイル内に含まれているマニフェストファイルに記載されているフィールドの値に基づき製作者名を特定することもできる。OSGi仕様においては、「Bundle−Vendor」「Bundle−Copyright」などのマニフェストフィールドを用いて各バンドルの製作者名を判断することができるであろう。
UI・起動管理プログラム15はコアOSGi13とアプリOSGi14を起動し、アプリOSGi14がハングアップした場合にはアプリOSGi14を再起動する。コアOSGi13上のR−OSGiバンドルS133とアプリOSGi14上のR−OSGiバンドルC141は、それぞれコアOSGi13とアプリOSGi14が起動した後、あらかじめユーザが設定した設定情報にしたがって自動的に連携を確立する。
UI・起動管理プログラム15はUI機能も提供する。ここでのUIとは、ユーザがOSGiフレームワークを起動した後にそのOSGiフレームワークを操作するためのCUI(Character−based User Interface)またはGUI(Graphical User Interface)を指すものとする。UI・起動管理プログラム15が操作対象としてユーザに提示するOSGiフレームワークは、コアOSGi13上およびアプリOSGi14上のOSGiバンドルの違いを仮想化した仮想OSGi151である。
仮想OSGi151は、基本的にはアプリOSGi14のラッパである。仮想OSGi151は、ユーザからOSGiフレームワークに対するコマンドを受け取るとそれをアプリOSGi14にフォワードし、アプリOSGi14から返されたコマンド実行結果を受け取ってユーザにフォワードする。
ユーザが直接アプリOSGi14を操作するのではなくUI・起動管理プログラムを通して操作するようにしているのは、ユーザが直接アプリOSGi14を起動し操作するとアプリOSGi14が再起動された際にユーザがそのプロセスハンドルを見失ってしまうためである。仮想OSGi151を介してアプリOSGi14を操作する場合、アプリOSGi14がダウンしても仮想OSGi151上では単にレスポンスが遅れているかのように見せることができるので、ユーザはOSGiフレームワークのプロセスハンドルを保持したまま維持することができる。
UI・起動管理プログラム15がコアOSGi13と別プロセスとなっているのは、単に簡単のためである。UI・起動管理プログラムをコアOSGi13に組み込んだ場合、コアOSGi13は標準的なOSGiフレームワークではなく、特殊なOSGiフレームワークとなってしまうので、これを避けるため本実施形態1ではUI・起動管理プログラムをコアOSGi13から切り離すこととした。これにより、コアOSGi13とアプリOSGi14は標準的なOSGiフレームワークとして構成することができる。
<実施の形態1:UI・起動管理プログラム15の詳細>
図4は、UI・起動管理プログラム15の機能ブロック図である。UI・起動管理プログラム15は、アプリOSGi14の再起動を管理する起動管理部152、ユーザにUIを提供するUI部153を有する。
図4は、UI・起動管理プログラム15の機能ブロック図である。UI・起動管理プログラム15は、アプリOSGi14の再起動を管理する起動管理部152、ユーザにUIを提供するUI部153を有する。
起動管理部152は、UI・起動管理プログラム15が起動した後にコアOSGi13とアプリOSGi14を子プロセスとして起動し、これらが起動した後はアプリOSGi14の実行状態を監視する。アプリOSGi14が不正終了した場合は、アプリOSGi14を起動し直す。これら子プロセスの実行と監視は、Javaの標準ライブラリに含まれるjava.lang.Runtimeクラスおよびjava.lang.Processクラスを使用することにより実現できる。アプリOSGi14については不正終了でなくフリーズ状態になってしまうことも考えられるが、それについては起動管理部152から定期的にアプリOSGi14にコマンドを送り実行結果を取得することにより監視する。このコマンド送信も上記Processクラスの機能よりアプリOSGi14に対する標準入出力を取得することによって実現できる。
UI部153は、アプリOSGi14のUIに対するラッパ機能を提供する。例えば、標準入力を通じてユーザからのコマンド入力を受け付け、先述のProcessクラスを通じてアプリOSGi14の標準入力にフォワードし、その実行結果をアプリOSGi14の標準出力から受け取って標準出力に出力する。アプリOSGi14がハングアップして再起動処理中である場合は、ユーザからのコマンド入力に対し常にエラーを返す。
<実施の形態1:システム動作の詳細>
図5は、ユーザからのコマンド入力に対する処理の流れを示す。処理410はアプリOSGi14が正常に動作している場合の処理の流れである。処理420はアプリOSGi14が正常稼動してない場合の処理の流れである。
図5は、ユーザからのコマンド入力に対する処理の流れを示す。処理410はアプリOSGi14が正常に動作している場合の処理の流れである。処理420はアプリOSGi14が正常稼動してない場合の処理の流れである。
(図5:処理411)
ユーザは標準入力に対し仮想OSGi151を操作するコマンドを入力する
(図5:処理412)
UI・起動管理プログラム15はアプリOSGi14が正常動作していることを確認し、標準入力より受け取ったコマンドをアプリOSGi14の標準入力にフォワードする。
(図5:処理413)
アプリOSGi14は、標準入力より受け取ったコマンドの処理を実行し、標準出力に出力する
(図5:処理414)
UI・起動管理プログラム15はアプリOSGi14の標準出力より受け取ったコマンド実行結果を標準出力にフォワードする。
(図5:処理415)
ユーザは標準出力からコマンド実行結果を受け取る。
(図5:処理421)
ユーザは標準入力に対しOSGiフレームワークを操作するコマンドを入力する
(図5:処理422)
UI・起動管理プログラム15はアプリOSGi14の動作を確認し、再起動処理中であればエラーを標準出力に出力する。アプリOSGi14が正常稼動していない場合は、アプリOSGi14を再起動する一方で、標準出力にエラーを出力する。
(図5:処理423)
ユーザは標準出力からエラーを受け取る。
ユーザは標準入力に対し仮想OSGi151を操作するコマンドを入力する
(図5:処理412)
UI・起動管理プログラム15はアプリOSGi14が正常動作していることを確認し、標準入力より受け取ったコマンドをアプリOSGi14の標準入力にフォワードする。
(図5:処理413)
アプリOSGi14は、標準入力より受け取ったコマンドの処理を実行し、標準出力に出力する
(図5:処理414)
UI・起動管理プログラム15はアプリOSGi14の標準出力より受け取ったコマンド実行結果を標準出力にフォワードする。
(図5:処理415)
ユーザは標準出力からコマンド実行結果を受け取る。
(図5:処理421)
ユーザは標準入力に対しOSGiフレームワークを操作するコマンドを入力する
(図5:処理422)
UI・起動管理プログラム15はアプリOSGi14の動作を確認し、再起動処理中であればエラーを標準出力に出力する。アプリOSGi14が正常稼動していない場合は、アプリOSGi14を再起動する一方で、標準出力にエラーを出力する。
(図5:処理423)
ユーザは標準出力からエラーを受け取る。
図6は、ホスト10の動作フローを示す図である。以下、図6の各ステップについて説明する。
(図6:ステップS600)
ユーザがCUI(コマンドライン)よりUI・起動管理プログラム15を起動する。
(図6:ステップS601)
UI・起動管理プログラム15はコアOSGi13とアプリOSGi14を子プロセスとして起動する。
(図6:ステップS602)
コアOSGi13とアプリOSGi14は、R−OSGiバンドルS133およびR−OSGiバンドルC141を介して、ユーザによってあらかじめ設定されたIPアドレスとTCPポートを用いてりR−OSGi連携を確立する。これによりアプリOSGi14上からコアOSGi13上のOSGiバンドルを利用することができるようになる。
(図6:ステップS603)
UI・起動管理プログラム15はアプリOSGi14の実行状態を監視する。
(図6:ステップS604)
UI・起動管理プログラム15は、アプリOSGi14がフリーズした場合はステップ605の処理に進み、不正終了した場合にはステップS606の処理に移る。
(図6:ステップS605)
UI・起動管理プログラム15は、アプリOSGi14プロセスを終了させ、ステップS606に進む。
(図6:ステップS606>
UI・起動管理プログラム15は、アプリOSGi14を再起動する。
ユーザがCUI(コマンドライン)よりUI・起動管理プログラム15を起動する。
(図6:ステップS601)
UI・起動管理プログラム15はコアOSGi13とアプリOSGi14を子プロセスとして起動する。
(図6:ステップS602)
コアOSGi13とアプリOSGi14は、R−OSGiバンドルS133およびR−OSGiバンドルC141を介して、ユーザによってあらかじめ設定されたIPアドレスとTCPポートを用いてりR−OSGi連携を確立する。これによりアプリOSGi14上からコアOSGi13上のOSGiバンドルを利用することができるようになる。
(図6:ステップS603)
UI・起動管理プログラム15はアプリOSGi14の実行状態を監視する。
(図6:ステップS604)
UI・起動管理プログラム15は、アプリOSGi14がフリーズした場合はステップ605の処理に進み、不正終了した場合にはステップS606の処理に移る。
(図6:ステップS605)
UI・起動管理プログラム15は、アプリOSGi14プロセスを終了させ、ステップS606に進む。
(図6:ステップS606>
UI・起動管理プログラム15は、アプリOSGi14を再起動する。
<実施の形態1:まとめ>
以上のように、本実施形態1に係るホスト10は、コアOSGi13とアプリOSGi14を備え、コアOSGi13からアプリOSGi14へバンドルをエクスポートし、アプリOSGi14の動作を監視する。これにより、アプリOSGi14がコアバンドルの機能を利用しつつ、コアバンドルを実行するOSGiフレームワークとアプリバンドルを実行するOSGiフレームワークを分離することができるので、アプリバンドルの信頼性を確保できない場合でも、コアバンドルの信頼性を維持することができる。
以上のように、本実施形態1に係るホスト10は、コアOSGi13とアプリOSGi14を備え、コアOSGi13からアプリOSGi14へバンドルをエクスポートし、アプリOSGi14の動作を監視する。これにより、アプリOSGi14がコアバンドルの機能を利用しつつ、コアバンドルを実行するOSGiフレームワークとアプリバンドルを実行するOSGiフレームワークを分離することができるので、アプリバンドルの信頼性を確保できない場合でも、コアバンドルの信頼性を維持することができる。
また、本実施形態1に係るホスト10は、コアバンドルとアプリバンドルをそれぞれOSGiバンドルとして実行するので、これらを個別のアプリケーションプロセスとして実行する場合と比較して、メモリ消費量を抑えることができる。
<実施の形態2>
実施形態1で説明した構成において、UI・起動管理プログラム15の機能は、コアOSGi13の一部として組み込むこともできる。この場合、コアOSGi13は標準的なOSGiフレームワークとは異なるものとなる。
実施形態1で説明した構成において、UI・起動管理プログラム15の機能は、コアOSGi13の一部として組み込むこともできる。この場合、コアOSGi13は標準的なOSGiフレームワークとは異なるものとなる。
また、アプリOSGi14は必ずしも1つでなくともよい。アプリOSGi14が複数存在する場合は、UI・起動管理プログラム15は各アプリOSGi14の動作を個別に監視する。
<実施の形態3>
実施形態1〜2では、UI・起動管理プログラム15、コアOSGi13、アプリOSGi14を単一のホスト上で実行する例を説明したが、これらのうちいずれかを他の装置上で実行し、ネットワークを介して各装置を接続して実施形態1〜2と同様の動作を実現することもできる。本発明の実施形態3では、これら3つのプログラムをそれぞれ別の装置上で実行する構成例を説明する。
実施形態1〜2では、UI・起動管理プログラム15、コアOSGi13、アプリOSGi14を単一のホスト上で実行する例を説明したが、これらのうちいずれかを他の装置上で実行し、ネットワークを介して各装置を接続して実施形態1〜2と同様の動作を実現することもできる。本発明の実施形態3では、これら3つのプログラムをそれぞれ別の装置上で実行する構成例を説明する。
図7は、本実施形態3に係るOSGiシステムの構成図である。本実施形態3において、UI・起動管理プログラム15、コアOSGi13、アプリOSGi14は、それぞれ管理装置100、コアOSGi装置200、アプリOSGi装置300に分割して配置されている。各装置はネットワークを介して接続されている。
管理装置100は、アプリOSGi装置300上で動作するアプリOSGi14の動作を監視する。例えば、アプリOSGi14の動作を監視するプログラムをアプリOSGi装置300上にインストールしておき、管理装置100はこれを介してアプリOSGi14の動作を監視すればよい。管理装置100の機能は、実施形態2と同様にコアOSGi装置200のコアOSGi13と統合することもできる。
コアOSGi装置200のコアOSGi13とアプリOSGi装置300のアプリOSGi14は、実施形態1〜2と同様にR−OSGiを介してOSGiバンドルをエクスポート/インポートする。実施形態2と同様に、アプリOSGi装置300は複数設けることもできる。この場合、管理装置100は各アプリOSGi装置300の動作を個別に監視する。
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に格納することができる。
10:ホスト、11:OS、121〜123:JavaVM、13:コアOSGi、131:コアバンドルA、132:コアバンドルB、133:R−OSGiバンドルS、14:アプリOSGi、141:R−OSGiバンドルC、142:コアバンドルA、143:コアバンドルB、144:アプリバンドルX、145:アプリバンドルY、15:UI・起動管理プログラム、100:管理装置、200:コアOSGi装置、300:アプリOSGi装置。
Claims (7)
- OSGiフレームワークを実行する装置であって、
OSGiフレームワークを実行する第1および第2OSGiフレームワーク部と、
前記第1および第2OSGiフレームワーク部の動作を管理する管理部と、
を備え、
前記第1OSGiフレームワーク部は、
前記第1OSGiフレームワーク部上で実行するOSGiバンドルを、前記第1OSGiフレームワーク部上に残したまま前記第2OSGiフレームワーク部へエクスポートするエクスポート部を備え、
前記第2OSGiフレームワーク部は、
前記第1OSGiフレームワーク部がエクスポートしたOSGiバンドルを前記第2OSGiフレームワーク部上で実行するOSGiバンドルとしてインポートするインポート部を備え、
前記管理部は、
前記第2OSGiフレームワーク部の稼動状態を監視し、前記第2OSGiフレームワーク部が正常動作していない場合は、前記第2OSGiフレームワーク部を再起動する
ことを特徴とするOSGi実行装置。 - 前記管理部は、
前記第2OSGiフレームワーク部が実行するOSGiバンドルを呼び出すよう要求するリクエストを受け取り、前記第2OSGiフレームワーク部から前記要求されたOSGiバンドルを呼び出し、
前記第2OSGiフレームワーク部から前記要求されたOSGiバンドルを呼び出すことができない場合は、その旨のエラーを前記リクエストの要求元へ送信する
ことを特徴とする請求項1記載のOSGi実行装置。 - 前記第1OSGiフレームワーク部が実行するOSGiバンドルの製作者と、前記第2OSGiフレームワーク部が実行するOSGiバンドルのうち前記第1OSGiフレームワーク部からインポートしたものを除くOSGiバンドルの製作者は、互いに異なる
ことを特徴とする請求項1記載のOSGi実行装置。 - 前記第1OSGiフレームワーク部が実行するOSGiバンドルの製作者を示すフィールドに記載されている値と、前記第2OSGiフレームワーク部が実行するOSGiバンドルのうち前記第1OSGiフレームワーク部からインポートしたものを除くOSGiバンドルの製作者を示すフィールドに記載されている値は、互いに異なる
ことを特徴とする請求項3記載のOSGi実行装置。 - 前記OSG実行装置は、複数の前記第2OSGiフレームワーク部を備え、
前記管理部は、各前記第2OSGiフレームワーク部の動作を管理する
ことを特徴とする請求項1記載のOSGi実行装置。 - 前記管理部は、前記第1OSGiフレームワーク部の一部として構成されている
ことを特徴とする請求項1記載のOSGi実行装置。 - OSGiフレームワークを実行する第1および第2OSGi実行装置と、
前記第1および第2OSGi実行装置の動作を管理する管理部と、
を備え、
前記第1OSGi実行装置は、
前記第1OSGi実行装置のOSGiフレームワーク上で実行するOSGiバンドルを、前記第1OSGi実行装置のOSGiフレームワーク上に残したまま前記第2OSGi実行装置へエクスポートするエクスポート部を備え、
前記第2OSGi実行装置は、
前記第1OSGi実行装置がエクスポートしたOSGiバンドルを前記第2OSGi実行装置のOSGiフレームワーク上で実行するOSGiバンドルとしてインポートするインポート部を備え、
前記管理部は、
前記第2OSGi実行装置のOSGiフレームワークの稼動状態を監視し、前記第2OSGi実行装置のOSGiフレームワークが正常動作していない場合は、前記第2OSGi実行装置のOSGiフレームワークを再起動する
ことを特徴とするOSGiシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012073231A JP2013206040A (ja) | 2012-03-28 | 2012-03-28 | OSGi実行装置、OSGiシステム |
PCT/JP2012/071449 WO2013145361A1 (ja) | 2012-03-28 | 2012-08-24 | OSGi実行装置、OSGiシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012073231A JP2013206040A (ja) | 2012-03-28 | 2012-03-28 | OSGi実行装置、OSGiシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013206040A true JP2013206040A (ja) | 2013-10-07 |
Family
ID=49258708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012073231A Pending JP2013206040A (ja) | 2012-03-28 | 2012-03-28 | OSGi実行装置、OSGiシステム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2013206040A (ja) |
WO (1) | WO2013145361A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095602A (ja) * | 2014-11-13 | 2016-05-26 | 京セラドキュメントソリューションズ株式会社 | 電子機器およびプログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001282755A (ja) * | 2000-03-30 | 2001-10-12 | Nec Corp | 組み込み装置におけるcorba単独再起動方式 |
JP2005322243A (ja) * | 2004-04-30 | 2005-11-17 | Microsoft Corp | Vex−仮想エクステンションフレームワーク |
JP2006163840A (ja) * | 2004-12-07 | 2006-06-22 | Canon Inc | 情報処理装置及びその方法 |
EP2088741A1 (en) * | 2008-02-11 | 2009-08-12 | Alcatel Lucent | Method and OSGi bundle to enable sharing of a local service on an embedded device |
JP2009200803A (ja) * | 2008-02-21 | 2009-09-03 | Ricoh Co Ltd | 画像形成装置、情報処理方法、及び情報処理プログラム |
JP2011197827A (ja) * | 2010-03-17 | 2011-10-06 | Ricoh Co Ltd | 情報処理装置、情報処理方法、及び情報処理プログラム |
-
2012
- 2012-03-28 JP JP2012073231A patent/JP2013206040A/ja active Pending
- 2012-08-24 WO PCT/JP2012/071449 patent/WO2013145361A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001282755A (ja) * | 2000-03-30 | 2001-10-12 | Nec Corp | 組み込み装置におけるcorba単独再起動方式 |
JP2005322243A (ja) * | 2004-04-30 | 2005-11-17 | Microsoft Corp | Vex−仮想エクステンションフレームワーク |
JP2006163840A (ja) * | 2004-12-07 | 2006-06-22 | Canon Inc | 情報処理装置及びその方法 |
EP2088741A1 (en) * | 2008-02-11 | 2009-08-12 | Alcatel Lucent | Method and OSGi bundle to enable sharing of a local service on an embedded device |
JP2009200803A (ja) * | 2008-02-21 | 2009-09-03 | Ricoh Co Ltd | 画像形成装置、情報処理方法、及び情報処理プログラム |
JP2011197827A (ja) * | 2010-03-17 | 2011-10-06 | Ricoh Co Ltd | 情報処理装置、情報処理方法、及び情報処理プログラム |
Non-Patent Citations (2)
Title |
---|
JPN6012050173; 小玉哲平 外3名: '"OSGi FrameworkにおけるBundle共有方式の提案"' FIT2008(第7回情報科学技術フォーラム)講演論文集 第1分冊 , 20080820, p.263-264 * |
JPN7012003903; JAN S.Rellermeyer 外2名: '"R-OSGi: distributed applications through software modularization"' Middleware '07 Proceedings of the ACM/IFIP/USENIX 2007 , 2007, p.1-20, Springer-Verlag New York * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095602A (ja) * | 2014-11-13 | 2016-05-26 | 京セラドキュメントソリューションズ株式会社 | 電子機器およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2013145361A1 (ja) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102430869B1 (ko) | 컨테이너화된 환경에서 클러스터의 라이브 마이그레이션 | |
KR102120567B1 (ko) | 컨테이너들에서 고립된 애플리케이션들의 모니터링 | |
US10678601B2 (en) | Orchestration service for multi-step recipe composition with flexible, topology-aware, and massive parallel execution | |
US9251040B2 (en) | Remote debugging in a cloud computing environment | |
US10862733B2 (en) | Standardized microservices for controlling components of distinct applications in multi-tenant clouds | |
US9971622B2 (en) | Technologies for application migration using lightweight virtualization | |
TWI533213B (zh) | 儲存和恢復應用程式運行時間狀態 | |
CA2851249C (en) | Integrated software development and deployment architecture and high availability client-server systems generated using the architecture | |
US10452372B2 (en) | Method and deployment module for managing a container to be deployed on a software platform | |
JP5629018B2 (ja) | 異種移動環境用の仮想マシンモーフィング | |
US9400671B2 (en) | Computer host with a baseboard management controller to manage virtual machines | |
WO2017167100A1 (zh) | 一种数据迁移方法和装置 | |
US11635972B2 (en) | Multi-tenant java agent instrumentation system | |
US11888758B2 (en) | Methods and apparatus to provide a custom installable open virtualization application file for on-premise installation via the cloud | |
US9588947B1 (en) | Integrated administrative interface for open network programming applications | |
CN110221910B (zh) | 用于执行mpi作业的方法和装置 | |
WO2013145361A1 (ja) | OSGi実行装置、OSGiシステム | |
CN110019059B (zh) | 一种定时同步的方法和装置 | |
US10534626B2 (en) | Methods for facilitating self-service automation utilities and devices thereof | |
CA3057458A1 (en) | System and method for self-deploying and self-adapting contact center components | |
JP6471459B2 (ja) | 通信装置、ログ処理プログラム、通信システム、及びログ処理方法 | |
CN117319368A (zh) | 一种远程控制管理方法及相关装置 | |
JP2014194707A (ja) | OSGi実行装置 | |
US20140189076A1 (en) | Configuration of computer systems via simple object access protocol connections | |
JP2018147429A (ja) | Vnf管理装置、vnfシステム、vnf管理方法、および、vnf管理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140724 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150224 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150714 |