JP2011123570A - 情報処理装置、サーバ装置、配布システム、受信方法、プログラムモジュール提供方法 - Google Patents

情報処理装置、サーバ装置、配布システム、受信方法、プログラムモジュール提供方法 Download PDF

Info

Publication number
JP2011123570A
JP2011123570A JP2009278870A JP2009278870A JP2011123570A JP 2011123570 A JP2011123570 A JP 2011123570A JP 2009278870 A JP2009278870 A JP 2009278870A JP 2009278870 A JP2009278870 A JP 2009278870A JP 2011123570 A JP2011123570 A JP 2011123570A
Authority
JP
Japan
Prior art keywords
program module
information
bundle
received
service
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.)
Granted
Application number
JP2009278870A
Other languages
English (en)
Other versions
JP5359835B2 (ja
Inventor
Shinichi Okano
真一 岡野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP2009278870A priority Critical patent/JP5359835B2/ja
Publication of JP2011123570A publication Critical patent/JP2011123570A/ja
Application granted granted Critical
Publication of JP5359835B2 publication Critical patent/JP5359835B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】OSGiのサービス化、及び受信したバンドルの区分を実現することができる情報処理装置、サーバ装置、配布システム、受信方法、プログラムモジュール提供方法を提供する。
【解決手段】OSGiフレームワークを内部ロジック部分としてのサービス側(212)と、GUIとしてのアプリケーション側(222)との2つに分け、それぞれ別個に稼働させ、サービス側(212)の管理バンドル(214)によってバンドルの配布を受信し、受信したバンドルを分別して保存する。
【選択図】図2

Description

本発明は、OSGiフレームワークに稼働するプログラムモジュールであるバンドルの配布を受信する情報処理装置、受信方法、プログラムモジュールを配布するサーバ装置、配布システム、及びプログラムモジュール提供方法に関する。
OSGiサービスプラットフォームは、WANからLANやデバイスに様々なサービスを配信する標準規格の策定を目的として設立されたOSGi(Open Services Gateway Initiative)が提唱する規格である。この規格では、Java(登録商標)仮想マシン(以下、JavaVMという)上のフレームワークにより、様々なサービスの配信と実行の環境の提供を実現している。
このOSGiサービスプラットフォームでは、サービスを提供するアプリケーション等はバンドルと呼ばれる。OSGiフレームワークは、このようなバンドルのインストール、アップデート、アンインストール、スタート、ストップを管理、制御するLCM(Life Cycle Management)として総称される機能を備えている。
このOSGiフレームワークでは、ある特定のサービスを利用するときに、用意されたバンドルをダウンロードして取り込むことで様々な装置やアプリケーションの利用あるいは制御が可能となる。
「OSGi Service Platform, Release4」, http://www.osgi.org/ Download/Release4V40 , 2005年10月
OSGiフレームワークを含むJavaプロセスを、オペレーティングシステム(OS)のサービスプロセス(又はデーモンプロセス)として稼働させる場合はGUIの扱いが問題となる。サービスプロセスでは通常、OSへのログインユーザのデスクトップ上にGUIを表示することができないためである。
本発明は、斯かる事情に鑑みてなされたものであり、主たる目的は、OSGiのサービス化、及び受信したプログラムモジュールの区分を実現することができる情報処理装置、受信方法、サーバ装置、配布システム、及びプログラムモジュール提供方法を提供することを目的とする。
本発明の情報処理装置は、演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるようにしてある情報処理装置において、前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能し、前記第1の管理手段は、プログラムモジュールを受信し、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成してあることを特徴とする。
また、本発明の情報処理装置は、前記第1の管理手段は、プログラムモジュールを受信したことを前記第2の管理手段に通知する機能を有することを特徴とする。
また、本発明の情報処理装置は、前記第1及び第2の管理手段は、それぞれ前記第1及び第2のフレームワークにプログラムモジュールをインストール又は更新する機能を有することを特徴とする。
また、本発明の情報処理装置は、前記第2の管理手段は、プログラムモジュール更新情報の通知に係る指示を受付ける機能と、自フレームワークで更新したプログラムモジュールに係る情報を収集する機能と、前記第1のフレームワークで更新したプログラムモジュールに係る情報を、前記第1の管理手段へ要求し、該第1の管理手段から受信する機能と、前記第1及び第2のフレームワークで更新したプログラムモジュールに係る情報を通知する機能とを有し、前記第1の管理手段は、自フレームワークで更新したプログラムモジュールに係る情報を収集して前記第2の管理手段へ送信する機能を有することを特徴とする。
また、本発明の情報処理装置は、前記第2の管理手段は、前記プログラムモジュール更新の通知が完了したことを前記第1の管理手段へ送信する機能を有し、前記第1の管理手段は、受信した通知の完了をサーバ装置に送信する機能を有することを特徴とする。
また、本発明の情報処理装置は、前記第1の管理手段は、プログラムモジュールに含む該プログラムモジュールを識別するための識別情報、又はサーバ装置から受信した前記識別情報に基づいて、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成されていることを特徴とする。
また、本発明の情報処理装置は、前記プログラムモジュールはOSGiフレームワークで稼働するバンドルであり、前記第1の管理手段は、受信したプログラムモジュールをそれぞれのMANIFESTファイルに基づいて分別して保存するように構成されていることを特徴とする。
本発明のサーバ装置は、プログラムモジュールと、該プログラムモジュールを、実行プラットフォームとしての複数のフレームワークのいずれに実装するかを示す情報とを、外部に提供するように構成してあることを特徴とする。
本発明の配布システムは、サーバ装置、及び該サーバ装置と通信可能に接続されているクライアント装置を含み、前記サーバ装置から前記クライアント装置へプログラムモジュールを配布する配布システムにおいて、前記サーバ装置は、プログラムモジュールと、該プログラムモジュールを、実行プラットフォームとしての複数のフレームワークのいずれに実装するかを示す情報とを、配布するように構成しており、前記クライアント装置は、演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるように構成しており、前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能し、前記第1の管理手段は、外部から配布されるプログラムモジュールを受信し、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成してあることを特徴とする。
本発明の受信方法は、演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるようにしており、前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能する情報処理装置に、プログラムモジュールを受信する方法であって、前記第1の管理手段が、プログラムモジュールを受信するステップと、前記第1の管理手段が、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するステップとを含むことを特徴とする。
本発明のプログラムモジュール提供方法は、プログラムモジュールを提供するサーバ装置によってプログラムモジュールを外部に提供する方法において、プログラムモジュールと、該プログラムモジュールを、実行プラットフォームとしての複数のフレームワークのいずれに実装するかを示す情報とを、外部に提供するステップを備えることを特徴とする。
本発明では、第1及び第2の管理手段は、異なるフレームワーク上で稼働し、かつお互いに通信可能に構成される。第1の管理手段は、サーバ装置から配布されるプログラムモジュールを受信し、受信したプログラムモジュールをそれぞれ第1又は第2のフレームワーク用のプログラムモジュールに分別して保存する。これにより、クライアントとなる情報処理装置は、サーバ装置から配布したプログラムモジュールを受信した場合、プログラムモジュールを異なる仮想マシンに振り分け、それぞれ適切にインストールすることができる。
本発明では、第1の管理手段は、プログラムモジュールを受信したことを第2の管理手段に通知する。これにより、第2の管理手段がプログラムモジュールの更新を検知することが可能である。
本発明では、クライアントとなる情報処理装置は、サーバ装置からプログラムモジュールを受信した場合、第1及び第2の管理手段によってインストール又は更新することができる。
本発明では、第1及び第2の管理手段によってプログラムモジュールの更新情報を収集して、第1の管理手段によって更新情報をユーザに通知する。これにより、ユーザはプログラムモジュールを利用できるようになったことを知ることができる。
本発明では、前記プログラムモジュール更新情報の通知が完了したことをサーバ装置に通知することができる。
本発明では、第1の管理手段は、プログラムモジュールに含まれる識別情報、又は前記サーバ装置から受信した識別情報に基づいて、受信したプログラムモジュールを分別して保存する。これにより、プログラムモジュールは適切に分別される。
本発明では、第1の管理手段は、プログラムモジュールが含んでいるMANIFESTファイルに基づいてプログラムモジュールを分別して保存する。
本発明によれば、OSGiのサービス化、及び受信したプログラムモジュール(バンドル)の適切な区分を実現することができ、複数の仮想マシンにそれぞれ稼働している複数のOSGiフレームワークを有する情報処理装置においても、受信したバンドルを分別して適切に保存することができる。
本発明の実施の形態に係るバンドル配布システムの構成を示すブロック図である。 本発明の実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。 本発明の実施の形態に係る管理サーバが実行するバンドル配布処理の手順の一例を示すフローチャートである。 本発明の実施の形態に係るクライアント端末が実行するバンドル受信処理の手順の一例を示すフローチャートである。 本発明の実施の形態に係るクライアント端末が実行するバンドル受信処理の手順の一例を示すフローチャートである。 本発明の実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。 本発明の実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。 本発明の実施の形態に係るクライアント端末が受信したバンドル更新情報をユーザに通知する処理を示すフローチャートである。 クライアント端末の表示部に表示されるバンドル更新情報の通知に係る画面例を示す模式図である。
以下に、本発明をその実施の形態を示す図面に基づいて詳述する。
図1は、本発明の実施の形態に係るバンドル配布システムの構成を示すブロック図である。図示するように、本実施の形態に係るバンドル配布システムは、プログラムモジュールなどのソフトウェアリソースを配布する管理サーバ1と、複数のクライアント端末2,2...と、管理サーバ1及び複数のクライアント端末2,2...を接続するネットワーク3とを含む。複数のクライアント端末2,2...は、管理サーバ1から配布したソフトウェアリソースをネットワーク3を介して受信する。クライアント端末2は、有線によりネットワーク3に接続するものであっでもよいし、アクセスポイントAPを介して無線によりネットワーク3に接続するものであっでも良い。
管理サーバ1は、サーバコンピュータを用い、CPU(Central Processing Unit)10と、HD(Hard Disk)11と、RAM(Random Access Memory)12と、通信部13とを含む。
CPU10は、HD11に記憶されている後述のオペレーティングシステム、JavaVM、サーバコンピュータを管理サーバ1として動作させるためのサーバプログラムなどのサーバプログラム1PをRAM12に読み出して実行することにより、後述にて説明する特有の機能を実現する。
HD11には、上述のように各種のコンピュータプログラムを記憶しているほか、CPU10が処理のために参照するデータが記憶されていてもよい。RAM12には、CPU10が上述のように各種コンピュータプログラムを実行する際に展開されたコードが記憶される。
通信部13は、ネットワーク3のプロトコルに応じた通信を実現するネットワークコントローラ機能を実現する。CPU10は、通信部13により、情報をパケット化して送信し、ネットワーク3を介して受信されるパケットから情報を抽出することが可能である。
クライアント端末2は、パーソナルコンピュータや携帯電話などを用いることができ、CPU20と、HD21と、RAM22と、通信部23とを含む。HD21の代わりにフラッシュメモリ、EEPROM(Electrically Erasable and Programmable Read Only Memory)を用いても良い。
CPU20は、HD21に記憶されている後述のオペレーティングシステム、JavaVM、パーソナルコンピュータをクライアント端末2として動作させるためのクライアントプログラムなどのクライアントプログラム2PをRAM22に読み出して実行することにより、後述にて説明する特有の機能を実現する。
HD21には、上述のように各種のコンピュータプログラムを記憶しているほか、CPU20が処理に参照するデータが記憶されていてもよい。RAM22には、CPU20が上述のように各種コンピュータプログラムを実行する際に展開されたコードが記憶される。
通信部23は、ネットワーク3のプロトコルに応じた通信を実現するネットワークコントローラ機能を実現する。CPU20は、通信部23により、情報をパケット化して送信し、ネットワーク3を介して受信されるパケットから情報を抽出することが可能である。
図2は本実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。管理サーバ1及びクライアント端末2それぞれのCPU10、20は、コンピュータプログラムを読み出して実行することにより、図2に示すような各機能ブロックを実現する。
図2に示すように、管理サーバ1は、機能的には、サーバ側オペレーティングシステム(OS)101と、サーバ側OS101上で稼働するサーバ側JavaVM102と、サーバ側JavaVM102上に実装されたOSGiに従ったフレームワークであるサーバ側OSGi103と、サーバ側OSGi103に実装されてさまざまな機能を提供するプログラムとして動作するサーバ側バンドル104と、サーバ側OSGi103に実装されて前記バンドル104を管理する管理バンドルとして動作するサーバ側MAF(マルチエージェントフレームワーク)105とを備える。また、管理サーバ1は、該管理サーバ1と接続されているクライアント端末2へ配布するソフトウェアリソースとして、複数のバンドルからなるバンドル群106を有する。
クライアント端末2は、機能的には、クライアント端末側オペレーティングシステム(OS)200と、クライアント端末側OS200上で稼働するサービス側JavaVM211によるサービス側VMシステム201と、クライアント端末側OS200上で稼働するサービス側JavaVM221によるアプリケーション側(以下、アプリ側と呼ぶ)VMシステム202とを備える。サービス側VMシステム201では、サービス側JavaVM211上に実装されたOSGiに従ったフレームワークであるサービス側OSGi212と、サービス側OSGi212に実装されて動作するサービス側バンドル213と、サービス側OSGi212に実装されて前記サービス側バンドル213を管理する管理バンドルとして動作するサービス側MAF214とを備える。アプリ側VMシステム202では、アプリ側JavaVM221上に実装されたOSGiに従ったフレームワークであるアプリ側OSGi222と、アプリ側OSGi222に実装されて動作するアプリ側バンドル223と、アプリ側OSGi222に実装されて前記アプリ側バンドル213を管理する管理バンドルとして動作するアプリ側MAF224とを備える。
本実施の形態では、バンドル(サーバ側バンドル104、サービス側バンドル213、アプリ側バンドル223)は、OSGiフレームワークにインストールされ、Javaアプリケーションの動的な入れ替えを行うための単位となるものである。通常、バンドルはJARファイルとして提供され、Javaアプリケーションはこのバンドルに入れられている。
なお、ここでは、管理サーバ1はバンドルをソフトウェアリソースとしてクライアント端末2へ配布する例を挙げて説明するが、これに限らない。管理サーバ1はバンドル、フラグメントバンドル(OSGi Core.「3.14 Fragment Bundles」)、ディプロイメントパッケージ (OSGi Cmpn.「114 Deployment Admin Specification」)、及びファイルなどのソフトウェアリソースも配布することができる。
また、バンドルは、メタ情報を記述したテキストファイルである「MANIFESTファイル」をJARファイル内に含んでおり、該MANIFESTファイルの情報で管理サーバ1及びクライアント端末2からバンドルを識別することが可能である。管理サーバ1からクライアント端末2に配布するバンドルのMANIFESTファイルでは、各バンドルをサービス側又はアプリ側のいずれのOSGiフレームワーク上で動作させるかを指定する指定情報も含む。
本実施の形態ではMAFのサービス化のために、各クライアント端末2上のOSGiフレームワークは、サービスとして実行されるものであるサービス側OSGi212(即ち内部ロジック側のOSGiフレームワーク)と、アプリケーションとして実行されるものであるアプリ側OSGi222(即ちGUI側のOSGiフレームワーク)との、計2つに分かれている。OSGiフレームワークをサービス側とアプリケーション側との2つに分ける場合、OSGiフレームワークにインストールされるバンドルもサービス側とアプリケーション側との2つのバンドル群に分ける。なお、バンドルを分けるとき、クラス間の依存性が複雑になることが予想されるので、各バンドルに含めるパッケージの構成については、GUI表示を行うクラスを含むパッケージ以外のすべてのパッケージを両バンドルに含め、GUI表示を行うクラスを含むパッケージは、GUI側のバンドルにのみ含んでもよい。
分けられた各バンドルをどちらのOSGiフレームワーク上で動作させるかを指定するため、例えばクライアント端末2側のインストールフォルダの構成は以下のとおりとする。
<MAF_HOME> // クライアント端末側のインストールフォルダ
├service // サービス側OSGiフレームワークの実行フォルダ
│ ├bundles
│ └configuration
└application // アプリケーション側OSGiフレームワークの実行フォルダ
├bundles
└configuration
上述のように構成される配布システムにおいて、管理サーバ1からクライアント端末2へバンドルを配布する処理手順を、フローチャートを参照して説明する。図3は本実施の形態に係る管理サーバ1が実行するバンドル配布処理の手順の一例を示すフローチャートである。図4、図5は本実施の形態に係るクライアント端末2が実行するバンドル受信処理の手順の一例を示すフローチャートである。
管理サーバ1は、動作しているとき、ネットワーク3を介してクライアント端末2と通信可能に接続されている。管理サーバ1のサーバ側MAF105は、図3に示すように、クライアント端末2から出力される端末情報を受信したか否かを判断する(ステップS10)。サーバ側MAF105は、クライアント端末2から端末情報を受信していないと判断した場合(ステップS10:NO)、そのまま処理を終了する。クライアント端末2から端末情報を受信したと判断した場合(ステップS10:YES)、ステップS11へ進む。
サーバ側MAF105は、受信した端末情報からクライアント端末2のバンドル情報を抽出し、抽出したバンドル情報と配布するソフトウェアリソースとして保持しているバンドル群106に係る情報とを比較する(ステップS11)。サーバ側MAF105は、例えば、保持しているバンドル群106にクライアント端末2が有さないバンドルを含んでいるか否か、即ちバンドル群106に更新するバンドルを含んでいるか否かを判断する(ステップS12)。バンドル群106に更新するバンドルを含んでいないと判断した場合(ステップS12:NO)、そのまま処理を終了する。一方、サーバ側MAF105は、バンドル群106に更新するバンドルを含んでいると判断した場合(ステップS12:YES)、更新するバンドルと通知情報とを含むバンドル更新情報を管理サーバ1からクライアント端末2へ送信する(ステップS13)。このようにクライアントにバンドルの追加(インストール)をするだけでなく、バンドルの更新(変更を含み、具体的にはバージョンアップまたはダウンに対応)、削除(アンインストール)も可能である。ここで、管理サーバは、各クライアント(サービス/アプリ)がどのバンドルのどのバージョンをインストールして稼働させるべきであるかを記述した「定義」を有している。サーバ側MAF105は、この「定義」とクライアントからの端末情報とを比較する(ステップS11)。「定義」にはあるがクライアントには存在しないバンドルがある場合にはクライアントへの当該バンドルの追加または更新を、「定義」には無いがクライアントには存在するバンドルがある場合にはクライアントからの当該バンドルの削除を、それぞれ通知する(ステップS13)。もちろん追加または更新の場合は、該当するバンドル106も一緒にクライアントに送信する(ステップS13)。
一方、クライアント端末2は、電源オンとなって動作を開始すると、クライアント端末側OS200が起動し、サービス側OSGi212を実行する。図4に示すように、サービス側OSGi212は設定に従いサービス側MAF214およびその他バンドル213を開始した場合、サービス側MAF214は、端末情報の送信要求があるか否かを判断する(ステップS20)。ここで、端末情報の送信要求は、ユーザによって指示されてもよいし、周期的あるいは日時指定で発火するタイマープログラムによって指示されてもよいし、または、起動などのイベントトリガーによって指示されてもよい。
サービス側MAF214は、端末情報の送信要求がないと判断した場合(ステップS20:NO)、そのまま処理を終了する。端末情報の送信要求があると判断した場合(ステップS20:YES)、サービス側端末情報(サービス側OSGiフレームワークおよびJavaVMに係る情報)を収集する(ステップS21)。そして、アプリ側が起動しているかどうかを判定する(ステップS22)。アプリ側が起動していれば(ステップS22:YES)、サービス側MAF214は、端末情報の送信をアプリ側MAF224に要求する(ステップS23)。
アプリ側OSGi222がユーザによってスタートされ、設定に従いアプリ側MAF224およびその他バンドル223を開始している場合、アプリ側MAF224は端末情報送信要求を受信したときに、アプリ側端末情報(アプリ側OSGiフレームワークおよびJavaVMに係る情報)を収集して、サービス側MAF214へ送信する。サービス側MAF214は、アプリ側端末情報を受信すると、受信したアプリ側端末情報を送信するアプリ側端末情報とする(ステップS24)。一方、アプリ側OSGi222が実行されておらず、サービス側MAF214は、起動していないと判定した場合(ステップS22:NO)、サービス側MAF214は、過去受信したアプリ側端末情報があるか否かを判定する(ステップS25)。
サービス側MAF214は、過去受信したアプリ側端末情報があると判定した場合(ステップS25:YES)、直近で受信した過去のアプリ側端末情報を送信するアプリ側端末情報とする(ステップS26)。サービス側MAF214は、アプリ側端末情報を過去一度も取得していないと判定した場合(ステップS25:NO)、送信するアプリ側端末情報を「なし」とする(ステップS27)。
ここでは、サービス側OSGi212とアプリ側OSGi222との間の通信はJava RMI(Java Remote Method Invocation API)を使用する。その他の通信プロトコルも利用可能である。Java RMIは、Javaで書かれたものであり、異なるJavaVMにあるオブジェクトのメソッドを呼び出す機能を果たすためのJavaアプリケーションプログラミングインタフェースである。
サービス側MAF214は、図5に示すように、サービス側端末情報及びアプリ側端末情報を管理サーバ1へ送信し(ステップS28)、所定の時間内にバンドル更新情報を受信したか否かを判定する(ステップS29)。サービス側MAF214は、所定の時間内にバンドル更新情報を受信しないと判断した場合(ステップS29:NO)、そのまま処理を終了する。
一方、サービス側MAF214は、所定の時間内にバンドル更新情報を受信したと判定した場合(ステップS29:YES)、受信したバンドルをサービス側とアプリ側に分別して、それぞれ所定の場所に保存する(ステップS30)。具体的には、サービス側MAF212は、受信したバンドルのMANIFESTファイルから各バンドルをサービス側又はアプリ側のOSGiフレームワーク上で動作させるかを指定する指定情報を読み出して、指定情報がサービス側OSGiフレームワーク上で動作させると指定するバンドルを、サービス側OSGi212の実行フォルダに配置し、指定情報がアプリ側OSGiフレームワーク上で動作させると指定するバンドルを、アプリ側OSGi222の実行フォルダに配置することで、バンドルを保存する。なお、上記の実行フォルダに同名のバンドルファイルがあれば、該同名のバンドルを上書きする。
次に、サービス側MAF214は、アプリ側MAF224と通信可能か否かを判定する(ステップS31)。アプリ側MAF224が開始しておらず、アプリ側MAF224と通信できないと判定した場合(ステップS31:NO)、ステップS31を繰り返す。アプリ側MAF224と通信できると判断されるまで、ステップS31が繰り返される。アプリ側MAF224が開始されており、アプリ側MAF224と通信できると判定した場合(ステップS31:YES)、サービス側MAF214は、バンドル更新情報の受信をアプリ側MAF224へ通知する(ステップS32)。バンドル更新情報の受信に係る通知を受けたアプリ側MAF224は、バンドル更新情報の受信をユーザに通知し、処理を終了する(ステップS33)。
ここで、本実施の形態に係る受信したバンドルの保存処理及び保存したバンドルのインストールの詳細について説明する。図6、図7は本実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。図6はクライアント端末2が受信したバンドルを保存している様子、図7はクライアント端末2が受信したバンドルをインストールした様子をそれぞれ示した。
図6はクライアント端末2が受信したバンドルを保存している様子を示した。図6に示した例では、サービス側MAF214は、受信した複数のバンドルそれぞれのMANIFESTファイルから指定情報を読み出す。サービス側MAF214は、バンドルA、Bの指定情報がサービス側OSGiフレームワークを指定すると判断して、バンドルA、Bをサービス側OSGi212の実行フォルダに配置する。サービス側MAF212は、バンドルC、Dの指定情報がアプリ側OSGiフレームワークを指定すると判断して、バンドルC、Dをアプリ側OSGi222の実行フォルダに配置する。このように区分されて保存されているバンドルはまだインストールされない。図6では、バンドルA、Bを、サービス側のバンドル群215、バンドルC、Dをアプリ側バンドル群225でそれぞれ示す。
なお、アプリ側で更新するバンドルは、サービス側MAF214によってアプリ側OSGi222の実行フォルダに配置されてバンドル更新情報の通知を実行してから、ステップS33で更新すべきバンドルの存在を知らされたユーザの指示にしたがってアプリ側MAF224によってインストールすることができる。サービス側で更新するバンドルはサービス側MAF214によってインストールされる。このインストールも同様にユーザの指示により実行することができる。ユーザからの指示を待たずに自動的にインストールするようにしてもよく、自動的にインストールするか否かをユーザによる設定にしたがって切り替えるようにしてもよい。図7に示した例では、バンドルA、Bはサービス側OSGi212にインストールされ、バンドルC、Dはアプリ側OSGi222にインストールされている。
次に、本実施の形態に係るバンドル更新情報の通知に係る処理の詳細について説明する。図8は、本実施の形態の配布システムを構成するクライアント端末が受信したバンドル更新情報をユーザに通知する処理を示すフローチャートである。図8のフローチャートに示す通知処理は、通常、図5のバンドル更新情報の受信に係る通知処理が実行された後、実行させる処理である。なお、アプリ側MAF224は、図8のフローチャートに示す処理を繰り返し実行する。
クライアント端末2のアプリ側MAF224は、ユーザからバンドル更新情報の通知要求を受信した(ユーザから更新実行の指示を受けた)か否かを判定する(ステップS40)。アプリ側MAF224は、ステップS40にてバンドル更新情報の通知要求受信していないと判断した場合(ステップS40:NO)、そのまま処理を終了する。当該処理は、繰り返し実行されるので、ステップS40へ戻り、通知要求を受信したと判断するまでは、S40:NOが繰り返される。
アプリ側MAF224は、ステップS40にてバンドル更新情報の通知要求を受信したと判断した場合(ステップS40:YES)、サービス側MAF214と通信可能か否かを判定する(ステップS41)。アプリ側MAF224は、サービス側MAF214が開始しておらず、サービス側MAF214と通信できないと判定した場合(ステップS41:NO)、そのまま処理を終了する。アプリ側MAF224は、サービス側MAF214と通信できると判定した場合(ステップS41:YES)、ユーザからの更新実行指示を伝え、バンドル更新情報の通知をサービス側MAF214に要求する(ステップS42)。これにより、サービス側/アプリ側それぞれで更新処理が実行され、サービス側はアプリ側に更新結果を送信する。
サービス側MAF214は、バンドル更新情報の通知要求を受信した場合、直近更新したバンドルに係る情報を収集してアプリ側MAF224へ送信する。アプリ側MAF224は、サービス側MAF214からサービス側のバンドル更新情報を受信した後、直近更新したアプリ側のバンドルに係る情報を収集し、受信したサービス側のバンドル更新情報とともにユーザに通知する(ステップS43)。これによってユーザに更新結果が通知される。図9はクライアント端末2の表示部に表示されるバンドル更新情報の通知に係る画面例を示す模式図である。ステップS43にてバンドル更新情報をユーザに通知する場合、アプリ側MAF224は、図9に示したようなバンドルの更新情報の確認画面100を表示させる。確認画面100では、直近更新したバンドルの名称を表示すると共に、そのバージョン、プロセス、更新日時などをリストして表示する。
アプリ側MAF224は、アプリ及びサービス側のバンドル更新情報を確認画面100でユーザに通知した後、通知処理が完了か否かを判定する(ステップS44)。ユーザが確認画面100の確認ボタンをクリックせず、通知処理の確認指示を受けないと判定した場合(ステップS44:NO)、ステップS44を繰り返す。通知処理の確認指示を受けたと判断されるまで、ステップS44が繰り返される。ユーザが確認画面100の確認ボタンをクリックして、通知処理の確認指示を受けたと判定した場合(ステップS44:YES)、アプリ側MAF224は、通知処理の完了をサービス側MAF214へ通知することで、ユーザが確認したことをサービス側MAF214へ送信する(ステップS45)。通知処理の完了に係る通知を受けたサービス側MAF214は、通知処理の完了(更新結果:更新の成否)を管理サーバ1へ送信し(ステップS46)、処理を終了する。なお、ユーザの確認を待たず管理サーバ1への更新結果の送信を実行することも可能である。その場合、ステップS43の直前に、アプリ側は自身の更新処理が終わった段階で更新結果をサービス側に伝えておく。そして、ステップS43〜44と、ステップS46とを並行して実施する。
以上、本発明の実施形態を詳述したが、本発明は前記実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
例えば、通知処理の確認ステップでは、バンドル更新情報をユーザに表示し、ユーザの確認指示を受けた場合、通知処理は完了と判断するが、これに限定されるものではなく、例えば、バンドル更新情報をユーザに表示し、設定した表示時間が経過した後、通知処理は完了と判断してもよい。
また、バンドルのMANIFESTファイルに指定情報を含み、サービス側MAF214は受信したバンドルのMANIFESTファイルから指定情報を読み出して、バンドルを区分して保存することを例として説明したが、これに限定されるものではなく、指定情報をMANIFESTファイルに記述する以外に、指定情報はバンドルファイルとは別に「付加情報」として配信されてもよい。例えばサービス側又はアプリ側でバンドルを削除する場合に、削除するバンドルがどちらで稼働しているかを付加情報として配信することができる。
なお、開示された実施の形態は、全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上述の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
1 管理サーバ
1P サーバプログラム
2 クライアント端末
20 CPU(演算処理部)
21 HD(記憶部)
2P クライアントプログラム
200 クライアント端末側OS(オペレーティングシステム)
211 サービス側JavaVM(第1の仮想マシン)
212 サービス側OSGi(第1のフレームワーク)
214 サービス側MAF(第1の管理手段)
215、225 バンドル(プログラムモジュール)
221 アプリ側JavaVM(第2の仮想マシン)
222 アプリ側OSGi(第2のフレームワーク)
224 アプリ側MAF(第2の管理手段)

Claims (11)

  1. 演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるようにしてある情報処理装置において、
    前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能し、
    前記第1の管理手段は、プログラムモジュールを受信し、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成してある
    ことを特徴とする情報処理装置。
  2. 前記第1の管理手段は、プログラムモジュールを受信したことを前記第2の管理手段に通知する機能を有する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1及び第2の管理手段は、それぞれ前記第1及び第2のフレームワークにプログラムモジュールをインストール又は更新する機能を有する
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記第2の管理手段は、
    プログラムモジュール更新情報の通知に係る指示を受付ける機能と、
    自フレームワークで更新したプログラムモジュールに係る情報を収集する機能と、
    前記第1のフレームワークで更新したプログラムモジュールに係る情報を、前記第1の管理手段へ要求し、該第1の管理手段から受信する機能と、
    前記第1及び第2のフレームワークで更新したプログラムモジュールに係る情報を通知する機能と
    を有し、
    前記第1の管理手段は、自フレームワークで更新したプログラムモジュールに係る情報を収集して前記第2の管理手段へ送信する機能を有する
    ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記第2の管理手段は、前記プログラムモジュール更新の通知が完了したことを前記第1の管理手段へ送信する機能を有し、
    前記第1の管理手段は、受信した通知の完了をサーバ装置に送信する機能を有する
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記第1の管理手段は、プログラムモジュールに含む該プログラムモジュールを識別するための識別情報、又はサーバ装置から受信した前記識別情報に基づいて、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成されていることを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。
  7. 前記プログラムモジュールはOSGiフレームワークで稼働するバンドルであり、
    前記第1の管理手段は、受信したプログラムモジュールをそれぞれのMANIFESTファイルに基づいて分別して保存するように構成されている
    ことを特徴とする請求項6に記載の情報処理装置。
  8. プログラムモジュールと、該プログラムモジュールを、実行プラットフォームとしての複数のフレームワークのいずれに実装するかを示す情報とを、外部に提供するように構成してある
    ことを特徴とするサーバ装置。
  9. サーバ装置、及び該サーバ装置と通信可能に接続されているクライアント装置を含み、前記サーバ装置から前記クライアント装置へプログラムモジュールを配布する配布システムにおいて、
    前記サーバ装置は、
    プログラムモジュールと、該プログラムモジュールを、実行プラットフォームとしての複数のフレームワークのいずれに実装するかを示す情報とを、配布するように構成しており、
    前記クライアント装置は、演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるように構成しており、
    前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能し、
    前記第1の管理手段は、外部から配布されるプログラムモジュールを受信し、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成してある
    ことを特徴とする配布システム。
  10. 演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるようにしており、前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能する情報処理装置に、プログラムモジュールを受信する方法であって、
    前記第1の管理手段が、プログラムモジュールを受信するステップと、
    前記第1の管理手段が、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するステップと
    を含むことを特徴とする受信方法。
  11. プログラムモジュールを提供するサーバ装置によってプログラムモジュールを外部に提供する方法において、
    プログラムモジュールと、該プログラムモジュールを、実行プラットフォームとしての複数のフレームワークのいずれに実装するかを示す情報とを、外部に提供するステップ
    を備えることを特徴とするプログラムモジュール提供方法。
JP2009278870A 2009-12-08 2009-12-08 情報処理装置、配布システム及び受信方法 Active JP5359835B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009278870A JP5359835B2 (ja) 2009-12-08 2009-12-08 情報処理装置、配布システム及び受信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009278870A JP5359835B2 (ja) 2009-12-08 2009-12-08 情報処理装置、配布システム及び受信方法

Publications (2)

Publication Number Publication Date
JP2011123570A true JP2011123570A (ja) 2011-06-23
JP5359835B2 JP5359835B2 (ja) 2013-12-04

Family

ID=44287428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009278870A Active JP5359835B2 (ja) 2009-12-08 2009-12-08 情報処理装置、配布システム及び受信方法

Country Status (1)

Country Link
JP (1) JP5359835B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013186572A (ja) * 2012-03-06 2013-09-19 Sharp Corp 情報処理装置
JP2013206225A (ja) * 2012-03-29 2013-10-07 Hitachi Solutions Ltd プログラム配信管理システム
CN103678240A (zh) * 2012-09-18 2014-03-26 阿里巴巴集团控股有限公司 用于对分布式计算进行组件化管理的方法和系统
JP2015230622A (ja) * 2014-06-05 2015-12-21 キヤノン株式会社 情報処理装置、アプリケーションの管理方法、およびプログラム
JP5882436B1 (ja) * 2014-11-07 2016-03-09 西日本電信電話株式会社 通信装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163840A (ja) * 2004-12-07 2006-06-22 Canon Inc 情報処理装置及びその方法
JP2006323500A (ja) * 2005-05-17 2006-11-30 Canon Inc 管理方法及び管理装置
JP2007048270A (ja) * 2005-07-11 2007-02-22 Ricoh Co Ltd 画像形成装置、情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163840A (ja) * 2004-12-07 2006-06-22 Canon Inc 情報処理装置及びその方法
JP2006323500A (ja) * 2005-05-17 2006-11-30 Canon Inc 管理方法及び管理装置
JP2007048270A (ja) * 2005-07-11 2007-02-22 Ricoh Co Ltd 画像形成装置、情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013186572A (ja) * 2012-03-06 2013-09-19 Sharp Corp 情報処理装置
JP2013206225A (ja) * 2012-03-29 2013-10-07 Hitachi Solutions Ltd プログラム配信管理システム
CN103678240A (zh) * 2012-09-18 2014-03-26 阿里巴巴集团控股有限公司 用于对分布式计算进行组件化管理的方法和系统
CN103678240B (zh) * 2012-09-18 2018-08-24 阿里巴巴集团控股有限公司 用于对分布式计算进行组件化管理的方法和系统
JP2015230622A (ja) * 2014-06-05 2015-12-21 キヤノン株式会社 情報処理装置、アプリケーションの管理方法、およびプログラム
JP5882436B1 (ja) * 2014-11-07 2016-03-09 西日本電信電話株式会社 通信装置

Also Published As

Publication number Publication date
JP5359835B2 (ja) 2013-12-04

Similar Documents

Publication Publication Date Title
CN106844137B (zh) 服务器的监控方法和装置
CN105335171B (zh) 应用程序常驻操作系统后台的方法及装置
CN107943486B (zh) 一种多语言代码编译方法、分发方法、装置和系统
JP6363796B2 (ja) 動的コードデプロイメント及びバージョニング
CN105955782B (zh) 应用程序运行控制的方法及装置
CN102523268B (zh) 一种客户端升级方法和系统
CN108733380B (zh) 应用部署方法和装置
US6804773B1 (en) System and method for transferring information over a network
CN111741134B (zh) 一种网络靶场大规模场景中虚拟机快速构建系统与方法
KR101281825B1 (ko) 클라우드 시스템에서 가상 인터페이스를 이용하는 보안 강화 장치 및 방법
JP5359835B2 (ja) 情報処理装置、配布システム及び受信方法
CN105791354A (zh) 作业调度方法和云调度服务器
RU2339076C2 (ru) Выполнение неверифицированных программ в операционной среде устройства радиосвязи
KR102056960B1 (ko) 온라인 스토어를 통해 소프트웨어 컴포넌트를 업데이트하는 기법
CN105164644A (zh) 钩子框架
CN106528143A (zh) 一种配置管理方法及装置
CN108540509B (zh) 一种终端浏览器的处理方法、装置及服务器、智能终端
CN110913015A (zh) 一种云手机app的分布式快捷安装方法、系统及介质
EP2218021A1 (en) Translating declarative models
US10404568B2 (en) Agent manager for distributed transaction monitoring system
WO2010029362A2 (en) Embedded background lifecycle manager
CN104504587A (zh) 广告监测方法及装置、电子设备
CN102420709A (zh) 一种基于任务框架的调度任务管理方法和设备
CN114546588A (zh) 任务的部署方法、装置、存储介质及电子装置
JP7183356B2 (ja) 通信装置、サーバ、通信システム、通信方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130710

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5359835

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250