JP5359835B2 - Information processing apparatus, distribution system, and reception method - Google Patents

Information processing apparatus, distribution system, and reception method Download PDF

Info

Publication number
JP5359835B2
JP5359835B2 JP2009278870A JP2009278870A JP5359835B2 JP 5359835 B2 JP5359835 B2 JP 5359835B2 JP 2009278870 A JP2009278870 A JP 2009278870A JP 2009278870 A JP2009278870 A JP 2009278870A JP 5359835 B2 JP5359835 B2 JP 5359835B2
Authority
JP
Japan
Prior art keywords
program module
information
management means
framework
bundle
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.)
Active
Application number
JP2009278870A
Other languages
Japanese (ja)
Other versions
JP2011123570A (en
Inventor
真一 岡野
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/en
Publication of JP2011123570A publication Critical patent/JP2011123570A/en
Application granted granted Critical
Publication of JP5359835B2 publication Critical patent/JP5359835B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an information-processing device which realizes OSGi service and sectioning of a received bundle, and to provide a server device, a distribution system, a receiving method and a program module providing method. <P>SOLUTION: An OSGi framework is divided into a service side (212) as an internal logic section and an application side (222) as a GUI, they are operated individually, the transmission of a bundle is received by a management bundle (214) on the service side (212), and the received bundle is sorted and stored. <P>COPYRIGHT: (C)2011,JPO&amp;INPIT

Description

本発明は、OSGiフレームワークに稼働するプログラムモジュールであるバンドルの配布を受信する情報処理装置、受信方法及び配布システムに関する。 The present invention relates to an information processing apparatus for receiving the distribution of the bundle is a program module running on the OSGi framework, directed to a receiving method and distribution system.

OSGiサービスプラットフォームは、WANからLANやデバイスに様々なサービスを配信する標準規格の策定を目的として設立されたOSGi(Open Services Gateway Initiative)が提唱する規格である。この規格では、Java(登録商標)仮想マシン(以下、JavaVMという)上のフレームワークにより、様々なサービスの配信と実行の環境の提供を実現している。   The OSGi service platform is a standard proposed by the OSGi (Open Services Gateway Initiative) established for the purpose of developing a standard for distributing various services from the WAN to LANs and devices. In this standard, a framework on a Java (registered trademark) virtual machine (hereinafter referred to as JavaVM) provides various service distribution and execution environments.

このOSGiサービスプラットフォームでは、サービスを提供するアプリケーション等はバンドルと呼ばれる。OSGiフレームワークは、このようなバンドルのインストール、アップデート、アンインストール、スタート、ストップを管理、制御するLCM(Life Cycle Management)として総称される機能を備えている。   In this OSGi service platform, applications that provide services are called bundles. The OSGi framework has a function collectively called LCM (Life Cycle Management) that manages and controls such bundle installation, update, uninstallation, start, and stop.

このOSGiフレームワークでは、ある特定のサービスを利用するときに、用意されたバンドルをダウンロードして取り込むことで様々な装置やアプリケーションの利用あるいは制御が可能となる。   In this OSGi framework, when a specific service is used, various devices and applications can be used or controlled by downloading and fetching a prepared bundle.

「OSGi Service Platform, Release4」, http://www.osgi.org/ Download/Release4V40 , 2005年10月"OSGi Service Platform, Release4", http://www.osgi.org/ Download / Release4V40, October 2005

OSGiフレームワークを含むJavaプロセスを、オペレーティングシステム(OS)のサービスプロセス(又はデーモンプロセス)として稼働させる場合はGUIの扱いが問題となる。サービスプロセスでは通常、OSへのログインユーザのデスクトップ上にGUIを表示することができないためである。   When a Java process including the OSGi framework is operated as a service process (or daemon process) of the operating system (OS), handling of the GUI becomes a problem. This is because the service process normally cannot display a GUI on the desktop of the user who logs in to the OS.

本発明は、斯かる事情に鑑みてなされたものであり、主たる目的は、OSGiのサービス化、及び受信したプログラムモジュールの区分を実現することができる情報処理装置、受信方法及び配布システムを提供することを目的とする。 The present invention has been made in view of such circumstances, an object is an information processing apparatus capable of realizing the division of the OSGi service of, and the received program modules, provide a receiving method and distribution system The purpose is to do.

本発明の情報処理装置は、演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるようにしてある情報処理装置において、前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能し、前記第1の管理手段は、プログラムモジュールを受信し、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成してあり、前記第2の管理手段は、プログラムモジュール更新情報の通知に係る指示を受付ける機能と、自フレームワークで更新したプログラムモジュールに係る情報を収集する機能と、前記第1のフレームワークで更新したプログラムモジュールに係る情報を、前記第1の管理手段へ要求し、該第1の管理手段から受信する機能と、前記第1及び第2のフレームワークで更新したプログラムモジュールに係る情報を通知する機能とを有し、前記第1の管理手段は、自フレームワークで更新したプログラムモジュールに係る情報を収集して前記第2の管理手段へ送信する機能を有することを特徴とする。 The information processing apparatus according to the present invention includes an arithmetic processing unit and a storage unit, and the arithmetic processing unit reads and executes a program stored in the storage unit, thereby operating as a program module execution platform. In the information processing apparatus in which the first and second frameworks are operated, the arithmetic processing units operate on the first and second frameworks and can communicate with each other. The first management means is configured to receive a program module, and separate and store the received program module into a program module for the first or second framework. The second management means includes a function for receiving an instruction related to notification of program module update information, and a self-frame. Requesting the first management means for receiving information from the first management means and a function for collecting information related to the program modules updated in the first framework and information relating to the program modules updated by the first framework And a function of notifying information related to the program module updated in the first and second frameworks, and the first management means stores information related to the program module updated in the own framework. It has a function of collecting and transmitting to the second management means .

また、本発明の情報処理装置は、前記第1の管理手段は、プログラムモジュールを受信したことを前記第2の管理手段に通知する機能を有することを特徴とする。   In the information processing apparatus according to the present invention, the first management unit has a function of notifying the second management unit that the program module has been received.

また、本発明の情報処理装置は、前記第1及び第2の管理手段は、それぞれ前記第1及び第2のフレームワークにプログラムモジュールをインストール又は更新する機能を有することを特徴とする。   The information processing apparatus according to the present invention is characterized in that the first and second management means have a function of installing or updating a program module in the first and second frameworks, respectively.

また、本発明の情報処理装置は、前記第2の管理手段は、前記プログラムモジュール更新の通知が完了したことを前記第1の管理手段へ送信する機能を有し、前記第1の管理手段は、受信した通知の完了をサーバ装置に送信する機能を有することを特徴とする。   In the information processing apparatus of the present invention, the second management unit has a function of transmitting notification that the program module update notification has been completed to the first management unit, and the first management unit includes: , Having a function of transmitting the completion of the received notification to the server device.

また、本発明の情報処理装置は、前記第1の管理手段は、プログラムモジュールに含む該プログラムモジュールを識別するための識別情報、又はサーバ装置から受信した前記識別情報に基づいて、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成されていることを特徴とする。   Further, in the information processing apparatus according to the present invention, the first management unit receives the program module based on the identification information for identifying the program module included in the program module or the identification information received from the server device. Are classified and stored in program modules for the first or second framework.

また、本発明の情報処理装置は、前記プログラムモジュールはOSGiフレームワークで稼働するバンドルであり、前記第1の管理手段は、受信したプログラムモジュールをそれぞれのMANIFESTファイルに基づいて分別して保存するように構成されていることを特徴とする。   In the information processing apparatus of the present invention, the program module is a bundle that operates in the OSGi framework, and the first management unit stores the received program module separately based on each MANIFEST file. It is configured.

本発明の配布システムは、サーバ装置、及び該サーバ装置と通信可能に接続されているクライアント装置を含み、前記サーバ装置から前記クライアント装置へプログラムモジュールを配布する配布システムにおいて、前記サーバ装置は、プログラムモジュールと、該プログラムモジュールを、実行プラットフォームとしての複数のフレームワークのいずれに実装するかを示す情報とを、配布するように構成しており、前記クライアント装置は、演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるように構成しており、前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能し、前記第1の管理手段は、外部から配布されるプログラムモジュールを受信し、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成してあり、前記第2の管理手段は、プログラムモジュール更新情報の通知に係る指示を受付ける機能と、自フレームワークで更新したプログラムモジュールに係る情報を収集する機能と、前記第1のフレームワークで更新したプログラムモジュールに係る情報を、前記第1の管理手段へ要求し、該第1の管理手段から受信する機能と、前記第1及び第2のフレームワークで更新したプログラムモジュールに係る情報を通知する機能とを有し、前記第1の管理手段は、自フレームワークで更新したプログラムモジュールに係る情報を収集して前記第2の管理手段へ送信する機能を有することを特徴とする。 The distribution system of the present invention includes a server device and a client device that is communicably connected to the server device. The distribution system distributes a program module from the server device to the client device. A module and information indicating which of the plurality of frameworks as the execution platform is to be distributed, and the client device includes an arithmetic processing unit and a storage unit. The arithmetic processing unit reads and executes the program stored in the storage unit so that the first and second frameworks respectively operating as execution platforms for the program modules are operated. The arithmetic processing unit is configured to perform the first and The first management unit functions as first and second management units that operate on the two frameworks and can communicate with each other. The first management unit receives a program module distributed from the outside, and receives the received program module. Ri configured tear to save classified into the first or second program module for the framework, the second management unit has a function of receiving instructions relating to the notification of the program module updates the own framework A function of collecting information related to the program module updated in step 1 and a function of requesting the information related to the program module updated in the first framework to the first management unit and receiving the information from the first management unit And a function for notifying information related to the program module updated in the first and second frameworks. It said first management means, characterized by having a function of transmitting to gather information related to the program module updated in its own framework to the second management means.

本発明の受信方法は、演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるようにしており、前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能する情報処理装置に、プログラムモジュールを受信する方法であって、前記第1の管理手段が、プログラムモジュールを受信するステップと、前記第1の管理手段が、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するステップと、前記第2の管理手段が、プログラムモジュール更新情報の通知に係る指示を受付けるステップと、前記第2の管理手段が、自フレームワークで更新したプログラムモジュールに係る情報を収集するステップと、前記第2の管理手段が、前記第1のフレームワークで更新したプログラムモジュールに係る情報を、前記第1の管理手段へ要求し、該第1の管理手段から受信するステップと、前記第1の管理手段が、自フレームワークで更新したプログラムモジュールに係る情報を収集して前記第2の管理手段へ送信するステップと、前記第2の管理手段が、前記第1及び第2のフレームワークで更新したプログラムモジュールに係る情報を通知するステップとを含むことを特徴とする。 The receiving method of the present invention includes a calculation processing unit and a storage unit, and the calculation processing unit reads and executes a program stored in the storage unit, thereby operating as a program module execution platform. And the second framework are operated, and the arithmetic processing unit operates as the first and second management units that operate on the first and second frameworks and can communicate with each other, respectively. A method of receiving a program module in a functioning information processing apparatus, wherein the first management unit receives the program module, and the first management unit receives the received program module in a first or second manner. and storing in fractionated into program module for 2 framework, the second management means, the program A step of receiving an instruction relating to notification of module update information, a step of collecting information relating to a program module updated by the second management means, and a second management means including the first management means Requesting the information related to the program module updated by the framework to the first management means and receiving the information from the first management means, and the program module updated by the first management means by the own framework Collecting information relating to the second management means and transmitting the information to the second management means, and notifying the information relating to the program module updated by the first and second frameworks by the second management means. It is characterized by including.

本発明では、第1及び第2の管理手段は、異なるフレームワーク上で稼働し、かつお互いに通信可能に構成される。第1の管理手段は、サーバ装置から配布されるプログラムモジュールを受信し、受信したプログラムモジュールをそれぞれ第1又は第2のフレームワーク用のプログラムモジュールに分別して保存する。これにより、クライアントとなる情報処理装置は、サーバ装置から配布したプログラムモジュールを受信した場合、プログラムモジュールを異なる仮想マシンに振り分け、それぞれ適切にインストールすることができる。また、第1及び第2の管理手段によってプログラムモジュールの更新情報を収集して、第1の管理手段によって更新情報をユーザに通知する。これにより、ユーザはプログラムモジュールを利用できるようになったことを知ることができる。 In the present invention, the first and second management means are configured to operate on different frameworks and to communicate with each other. The first management means receives the program module distributed from the server device, and separates and stores the received program module into a program module for the first or second framework. Thus, when the information processing apparatus serving as the client receives the program module distributed from the server apparatus, the information processing apparatus can distribute the program module to different virtual machines and install them appropriately. Further, the update information of the program module is collected by the first and second management means, and the update information is notified to the user by the first management means. As a result, the user can know that the program module can be used.

本発明では、第1の管理手段は、プログラムモジュールを受信したことを第2の管理手段に通知する。これにより、第2の管理手段がプログラムモジュールの更新を検知することが可能である。   In the present invention, the first management means notifies the second management means that the program module has been received. Thereby, the second management means can detect the update of the program module.

本発明では、クライアントとなる情報処理装置は、サーバ装置からプログラムモジュールを受信した場合、第1及び第2の管理手段によってインストール又は更新することができる。   In the present invention, the information processing apparatus serving as the client can be installed or updated by the first and second management means when receiving the program module from the server apparatus.

本発明では、前記プログラムモジュール更新情報の通知が完了したことをサーバ装置に通知することができる。   In the present invention, it is possible to notify the server device that the notification of the program module update information has been completed.

本発明では、第1の管理手段は、プログラムモジュールに含まれる識別情報、又は前記サーバ装置から受信した識別情報に基づいて、受信したプログラムモジュールを分別して保存する。これにより、プログラムモジュールは適切に分別される。   In the present invention, the first management means classifies and stores the received program modules based on the identification information included in the program modules or the identification information received from the server device. As a result, the program modules are appropriately separated.

本発明では、第1の管理手段は、プログラムモジュールが含んでいるMANIFESTファイルに基づいてプログラムモジュールを分別して保存する。   In the present invention, the first management means sorts and stores the program modules based on the MANIFEST file included in the program modules.

本発明によれば、OSGiのサービス化、及び受信したプログラムモジュール(バンドル)の適切な区分を実現することができ、複数の仮想マシンにそれぞれ稼働している複数のOSGiフレームワークを有する情報処理装置においても、受信したバンドルを分別して適切に保存し、プログラムモジュールを利用できるようになったことをユーザに知らせることができる。 According to the present invention, an OSGi service can be realized, and an appropriate division of received program modules (bundles) can be realized, and an information processing apparatus having a plurality of OSGi frameworks respectively operating on a plurality of virtual machines. Also, the received bundle is sorted and appropriately stored , and the user can be notified that the program module can be used .

本発明の実施の形態に係るバンドル配布システムの構成を示すブロック図である。It is a block diagram which shows the structure of the bundle distribution system which concerns on embodiment of this invention. 本発明の実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。It is a block diagram which shows the function structure of the bundle distribution system which concerns on embodiment of this invention. 本発明の実施の形態に係る管理サーバが実行するバンドル配布処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of the bundle distribution process which the management server which concerns on embodiment of this invention performs. 本発明の実施の形態に係るクライアント端末が実行するバンドル受信処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of the bundle reception process which the client terminal which concerns on embodiment of this invention performs. 本発明の実施の形態に係るクライアント端末が実行するバンドル受信処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of the bundle reception process which the client terminal which concerns on embodiment of this invention performs. 本発明の実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。It is a block diagram which shows the function structure of the bundle distribution system which concerns on embodiment of this invention. 本発明の実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。It is a block diagram which shows the function structure of the bundle distribution system which concerns on embodiment of this invention. 本発明の実施の形態に係るクライアント端末が受信したバンドル更新情報をユーザに通知する処理を示すフローチャートである。It is a flowchart which shows the process which notifies a user of the bundle update information which the client terminal which concerns on embodiment of this invention received. クライアント端末の表示部に表示されるバンドル更新情報の通知に係る画面例を示す模式図である。It is a schematic diagram which shows the example of a screen which concerns on the notification of bundle update information displayed on the display part of a client terminal.

以下に、本発明をその実施の形態を示す図面に基づいて詳述する。
図1は、本発明の実施の形態に係るバンドル配布システムの構成を示すブロック図である。図示するように、本実施の形態に係るバンドル配布システムは、プログラムモジュールなどのソフトウェアリソースを配布する管理サーバ1と、複数のクライアント端末2,2...と、管理サーバ1及び複数のクライアント端末2,2...を接続するネットワーク3とを含む。複数のクライアント端末2,2...は、管理サーバ1から配布したソフトウェアリソースをネットワーク3を介して受信する。クライアント端末2は、有線によりネットワーク3に接続するものであっでもよいし、アクセスポイントAPを介して無線によりネットワーク3に接続するものであっでも良い。
Hereinafter, the present invention will be described in detail with reference to the drawings illustrating embodiments thereof.
FIG. 1 is a block diagram showing a configuration of a bundle distribution system according to an embodiment of the present invention. As illustrated, the bundle distribution system according to the present embodiment includes a management server 1 that distributes software resources such as program modules, a plurality of client terminals 2, 2..., A management server 1 and a plurality of client terminals. 2, 2,... The plurality of client terminals 2, 2... Receive software resources distributed from the management server 1 via the network 3. The client terminal 2 may be connected to the network 3 by wire or may be connected wirelessly to the network 3 via the access point AP.

管理サーバ1は、サーバコンピュータを用い、CPU(Central Processing Unit)10と、HD(Hard Disk)11と、RAM(Random Access Memory)12と、通信部13とを含む。   The management server 1 uses a server computer and includes a central processing unit (CPU) 10, a hard disk (HD) 11, a random access memory (RAM) 12, and a communication unit 13.

CPU10は、HD11に記憶されている後述のオペレーティングシステム、JavaVM、サーバコンピュータを管理サーバ1として動作させるためのサーバプログラムなどのサーバプログラム1PをRAM12に読み出して実行することにより、後述にて説明する特有の機能を実現する。   The CPU 10 reads a server program 1P such as an operating system, a Java VM, and a server program for operating the server computer as the management server 1 stored in the HD 11 into the RAM 12 and executes the server program 1P, which will be described later. Realize the function.

HD11には、上述のように各種のコンピュータプログラムを記憶しているほか、CPU10が処理のために参照するデータが記憶されていてもよい。RAM12には、CPU10が上述のように各種コンピュータプログラムを実行する際に展開されたコードが記憶される。   In addition to storing various computer programs as described above, the HD 11 may store data that the CPU 10 refers to for processing. The RAM 12 stores codes developed when the CPU 10 executes various computer programs as described above.

通信部13は、ネットワーク3のプロトコルに応じた通信を実現するネットワークコントローラ機能を実現する。CPU10は、通信部13により、情報をパケット化して送信し、ネットワーク3を介して受信されるパケットから情報を抽出することが可能である。   The communication unit 13 implements a network controller function that implements communication according to the protocol of the network 3. The CPU 10 can packetize and transmit information by the communication unit 13 and extract information from a packet received via the network 3.

クライアント端末2は、パーソナルコンピュータや携帯電話などを用いることができ、CPU20と、HD21と、RAM22と、通信部23とを含む。HD21の代わりにフラッシュメモリ、EEPROM(Electrically Erasable and Programmable Read Only Memory)を用いても良い。   The client terminal 2 can be a personal computer, a mobile phone, or the like, and includes a CPU 20, an HD 21, a RAM 22, and a communication unit 23. A flash memory or EEPROM (Electrically Erasable and Programmable Read Only Memory) may be used instead of the HD 21.

CPU20は、HD21に記憶されている後述のオペレーティングシステム、JavaVM、パーソナルコンピュータをクライアント端末2として動作させるためのクライアントプログラムなどのクライアントプログラム2PをRAM22に読み出して実行することにより、後述にて説明する特有の機能を実現する。   The CPU 20 reads a client program 2P such as an operating system, JavaVM, or a client program for operating a personal computer as the client terminal 2 stored in the HD 21 into the RAM 22 and executes the client program 2P, which will be described later. Realize the function.

HD21には、上述のように各種のコンピュータプログラムを記憶しているほか、CPU20が処理に参照するデータが記憶されていてもよい。RAM22には、CPU20が上述のように各種コンピュータプログラムを実行する際に展開されたコードが記憶される。   In addition to storing various computer programs as described above, the HD 21 may store data that the CPU 20 refers to for processing. The RAM 22 stores codes developed when the CPU 20 executes various computer programs as described above.

通信部23は、ネットワーク3のプロトコルに応じた通信を実現するネットワークコントローラ機能を実現する。CPU20は、通信部23により、情報をパケット化して送信し、ネットワーク3を介して受信されるパケットから情報を抽出することが可能である。   The communication unit 23 realizes a network controller function that realizes communication according to the protocol of the network 3. The CPU 20 can packetize and transmit information through the communication unit 23 and extract information from packets received via the network 3.

図2は本実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。管理サーバ1及びクライアント端末2それぞれのCPU10、20は、コンピュータプログラムを読み出して実行することにより、図2に示すような各機能ブロックを実現する。   FIG. 2 is a block diagram showing a functional configuration of the bundle distribution system according to the present embodiment. Each of the CPUs 10 and 20 of the management server 1 and the client terminal 2 reads out and executes a computer program, thereby realizing each functional block as shown in FIG.

図2に示すように、管理サーバ1は、機能的には、サーバ側オペレーティングシステム(OS)101と、サーバ側OS101上で稼働するサーバ側JavaVM102と、サーバ側JavaVM102上に実装されたOSGiに従ったフレームワークであるサーバ側OSGi103と、サーバ側OSGi103に実装されてさまざまな機能を提供するプログラムとして動作するサーバ側バンドル104と、サーバ側OSGi103に実装されて前記バンドル104を管理する管理バンドルとして動作するサーバ側MAF(マルチエージェントフレームワーク)105とを備える。また、管理サーバ1は、該管理サーバ1と接続されているクライアント端末2へ配布するソフトウェアリソースとして、複数のバンドルからなるバンドル群106を有する。   As shown in FIG. 2, the management server 1 functionally conforms to a server-side operating system (OS) 101, a server-side Java VM 102 running on the server-side OS 101, and OSGi installed on the server-side Java VM 102. A server-side OSGi 103 that is a framework, a server-side bundle 104 that is implemented in the server-side OSGi 103 and operates as a program that provides various functions, and a management bundle that is implemented in the server-side OSGi 103 and manages the bundle 104 Server-side MAF (multi-agent framework) 105. Further, the management server 1 has a bundle group 106 composed of a plurality of bundles as software resources distributed to the client terminals 2 connected to the management server 1.

クライアント端末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とを備える。   Functionally, the client terminal 2 includes a client-side operating system (OS) 200, a service-side VM system 201 based on a service-side Java VM 211 operating on the client-terminal-side OS 200, and a service-side operating on the client-terminal-side OS 200. An application side (hereinafter referred to as an application side) VM system 202 using JavaVM 221 is provided. In the service-side VM system 201, a service-side OSGi 212 that is a framework according to OSGi mounted on the service-side Java VM 211, a service-side bundle 213 that operates by being mounted on the service-side OSGi 212, and a service-side OSGi 212 are mounted. A service-side MAF 214 that operates as a management bundle that manages the service-side bundle 213. In the application-side VM system 202, an application-side OSGi 222 that is a framework according to OSGi installed on the application-side Java VM 221; an application-side bundle 223 that operates by being installed on the application-side OSGi 222; and the application-side OSGi 222 An application-side MAF 224 that operates as a management bundle that manages the application-side bundle 213.

本実施の形態では、バンドル(サーバ側バンドル104、サービス側バンドル213、アプリ側バンドル223)は、OSGiフレームワークにインストールされ、Javaアプリケーションの動的な入れ替えを行うための単位となるものである。通常、バンドルはJARファイルとして提供され、Javaアプリケーションはこのバンドルに入れられている。   In the present embodiment, the bundle (the server-side bundle 104, the service-side bundle 213, and the application-side bundle 223) is installed in the OSGi framework and is a unit for performing dynamic replacement of Java applications. Usually, the bundle is provided as a JAR file, and the Java application is put in this bundle.

なお、ここでは、管理サーバ1はバンドルをソフトウェアリソースとしてクライアント端末2へ配布する例を挙げて説明するが、これに限らない。管理サーバ1はバンドル、フラグメントバンドル(OSGi Core.「3.14 Fragment Bundles」)、ディプロイメントパッケージ (OSGi Cmpn.「114 Deployment Admin Specification」)、及びファイルなどのソフトウェアリソースも配布することができる。   Here, the management server 1 will be described with an example in which the bundle is distributed to the client terminal 2 as a software resource, but the present invention is not limited to this. The management server 1 can also distribute software resources such as bundles, fragment bundles (OSGi Core. “3.14 Fragment Bundles”), deployment packages (OSGi Cmpn. “114 Deployment Admin Specification”), and files.

また、バンドルは、メタ情報を記述したテキストファイルである「MANIFESTファイル」をJARファイル内に含んでおり、該MANIFESTファイルの情報で管理サーバ1及びクライアント端末2からバンドルを識別することが可能である。管理サーバ1からクライアント端末2に配布するバンドルのMANIFESTファイルでは、各バンドルをサービス側又はアプリ側のいずれのOSGiフレームワーク上で動作させるかを指定する指定情報も含む。   The bundle includes a “MANIFEST file” which is a text file describing meta information in the JAR file, and the bundle can be identified from the management server 1 and the client terminal 2 by the information of the MANIFEST file. . The bundle MANIFEST file distributed from the management server 1 to the client terminal 2 also includes designation information for designating which OSGi framework on the service side or application side to operate each bundle.

本実施の形態ではMAFのサービス化のために、各クライアント端末2上のOSGiフレームワークは、サービスとして実行されるものであるサービス側OSGi212(即ち内部ロジック側のOSGiフレームワーク)と、アプリケーションとして実行されるものであるアプリ側OSGi222(即ちGUI側のOSGiフレームワーク)との、計2つに分かれている。OSGiフレームワークをサービス側とアプリケーション側との2つに分ける場合、OSGiフレームワークにインストールされるバンドルもサービス側とアプリケーション側との2つのバンドル群に分ける。なお、バンドルを分けるとき、クラス間の依存性が複雑になることが予想されるので、各バンドルに含めるパッケージの構成については、GUI表示を行うクラスを含むパッケージ以外のすべてのパッケージを両バンドルに含め、GUI表示を行うクラスを含むパッケージは、GUI側のバンドルにのみ含んでもよい。   In this embodiment, in order to make MAF service, the OSGi framework on each client terminal 2 is executed as a service OSGi 212 (that is, an internal logic side OSGi framework) that is executed as a service and an application. The application side OSGi 222 (that is, the GUI side OSGi framework) is divided into two. When the OSGi framework is divided into two on the service side and the application side, the bundles installed in the OSGi framework are also divided into two bundle groups on the service side and the application side. Note that when dividing bundles, it is expected that the dependency between classes will be complicated. Therefore, for the package configuration included in each bundle, all packages other than the package containing the class that displays the GUI are included in both bundles. A package including a class for performing GUI display may be included only in a bundle on the GUI side.

分けられた各バンドルをどちらのOSGiフレームワーク上で動作させるかを指定するため、例えばクライアント端末2側のインストールフォルダの構成は以下のとおりとする。   In order to designate on which OSGi framework each divided bundle is to be operated, for example, the configuration of the installation folder on the client terminal 2 side is as follows.

<MAF_HOME> // クライアント端末側のインストールフォルダ
├service // サービス側OSGiフレームワークの実行フォルダ
│ ├bundles
│ └configuration
└application // アプリケーション側OSGiフレームワークの実行フォルダ
├bundles
└configuration
<MAF_HOME> // Installation folder on the client terminal side ├service // Service side OSGi framework execution folder │ ├bundles
│ └configuration
└application // Application side OSGi framework execution folder ├bundles
└configuration

上述のように構成される配布システムにおいて、管理サーバ1からクライアント端末2へバンドルを配布する処理手順を、フローチャートを参照して説明する。図3は本実施の形態に係る管理サーバ1が実行するバンドル配布処理の手順の一例を示すフローチャートである。図4、図5は本実施の形態に係るクライアント端末2が実行するバンドル受信処理の手順の一例を示すフローチャートである。   In the distribution system configured as described above, a processing procedure for distributing a bundle from the management server 1 to the client terminal 2 will be described with reference to a flowchart. FIG. 3 is a flowchart showing an example of a bundle distribution process executed by the management server 1 according to this embodiment. 4 and 5 are flowcharts showing an example of a bundle reception process performed by the client terminal 2 according to the present embodiment.

管理サーバ1は、動作しているとき、ネットワーク3を介してクライアント端末2と通信可能に接続されている。管理サーバ1のサーバ側MAF105は、図3に示すように、クライアント端末2から出力される端末情報を受信したか否かを判断する(ステップS10)。サーバ側MAF105は、クライアント端末2から端末情報を受信していないと判断した場合(ステップS10:NO)、そのまま処理を終了する。クライアント端末2から端末情報を受信したと判断した場合(ステップS10:YES)、ステップS11へ進む。   The management server 1 is communicably connected to the client terminal 2 via the network 3 when operating. As shown in FIG. 3, the server-side MAF 105 of the management server 1 determines whether or not the terminal information output from the client terminal 2 has been received (step S10). If the server-side MAF 105 determines that the terminal information has not been received from the client terminal 2 (step S10: NO), the server-side MAF 105 ends the process as it is. When it is determined that the terminal information has been received from the client terminal 2 (step S10: YES), the process proceeds to step 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)。   The server-side MAF 105 extracts the bundle information of the client terminal 2 from the received terminal information, and compares the extracted bundle information with information relating to the bundle group 106 held as a software resource to be distributed (step S11). For example, the server-side MAF 105 determines whether or not the bundle group 106 that is held includes a bundle that the client terminal 2 does not have, that is, whether or not the bundle group 106 includes a bundle to be updated (step S12). ). When it is determined that the bundle group 106 does not include the bundle to be updated (step S12: NO), the process is terminated as it is. On the other hand, if the server-side MAF 105 determines that the bundle group 106 includes a bundle to be updated (step S12: YES), the bundle update information including the bundle to be updated and the notification information is transmitted from the management server 1 to the client terminal 2. Transmit (step S13). In addition to adding (installing) a bundle to the client in this way, it is also possible to update the bundle (including changes, specifically corresponding to version upgrade or down) and delete (uninstall). Here, the management server has a “definition” that describes which version of which bundle each client (service / application) should install and operate. The server-side MAF 105 compares this “definition” with the terminal information from the client (step S11). If there is a bundle that is in the definition but not in the client, add or update the bundle to the client. If there is a bundle that is not in the definition but exists in the client, Each deletion of the bundle is notified (step S13). Of course, in the case of addition or update, the corresponding bundle 106 is also transmitted to the client together (step S13).

一方、クライアント端末2は、電源オンとなって動作を開始すると、クライアント端末側OS200が起動し、サービス側OSGi212を実行する。図4に示すように、サービス側OSGi212は設定に従いサービス側MAF214およびその他バンドル213を開始した場合、サービス側MAF214は、端末情報の送信要求があるか否かを判断する(ステップS20)。ここで、端末情報の送信要求は、ユーザによって指示されてもよいし、周期的あるいは日時指定で発火するタイマープログラムによって指示されてもよいし、または、起動などのイベントトリガーによって指示されてもよい。   On the other hand, when the client terminal 2 starts to operate when the power is turned on, the client terminal-side OS 200 is activated and the service-side OSGi 212 is executed. As shown in FIG. 4, when the service-side OSGi 212 starts the service-side MAF 214 and the other bundle 213 according to the settings, the service-side MAF 214 determines whether there is a request for transmitting terminal information (step S20). Here, the terminal information transmission request may be instructed by the user, may be instructed by a timer program that fires periodically or by designation of a date and time, or may be instructed by an event trigger such as activation. .

サービス側MAF214は、端末情報の送信要求がないと判断した場合(ステップS20:NO)、そのまま処理を終了する。端末情報の送信要求があると判断した場合(ステップS20:YES)、サービス側端末情報(サービス側OSGiフレームワークおよびJavaVMに係る情報)を収集する(ステップS21)。そして、アプリ側が起動しているかどうかを判定する(ステップS22)。アプリ側が起動していれば(ステップS22:YES)、サービス側MAF214は、端末情報の送信をアプリ側MAF224に要求する(ステップS23)。   If the service-side MAF 214 determines that there is no terminal information transmission request (step S20: NO), it ends the process. When it is determined that there is a terminal information transmission request (step S20: YES), service-side terminal information (information on the service-side OSGi framework and JavaVM) is collected (step S21). Then, it is determined whether or not the application side is activated (step S22). If the application side is activated (step S22: YES), the service side MAF 214 requests the application side MAF 224 to transmit terminal information (step S23).

アプリ側OSGi222がユーザによってスタートされ、設定に従いアプリ側MAF224およびその他バンドル223を開始している場合、アプリ側MAF224は端末情報送信要求を受信したときに、アプリ側端末情報(アプリ側OSGiフレームワークおよびJavaVMに係る情報)を収集して、サービス側MAF214へ送信する。サービス側MAF214は、アプリ側端末情報を受信すると、受信したアプリ側端末情報を送信するアプリ側端末情報とする(ステップS24)。一方、アプリ側OSGi222が実行されておらず、サービス側MAF214は、起動していないと判定した場合(ステップS22:NO)、サービス側MAF214は、過去受信したアプリ側端末情報があるか否かを判定する(ステップS25)。   When the application-side OSGi 222 is started by the user and starts the application-side MAF 224 and the other bundle 223 according to the setting, the application-side MAF 224 receives the application information on the terminal on the application-side terminal information (the application-side OSGi framework and the application-side OSGi framework). Information on JavaVM) is collected and transmitted to the service-side MAF 214. When the service-side MAF 214 receives the application-side terminal information, the service-side MAF 214 sets the received application-side terminal information as application-side terminal information (step S24). On the other hand, if it is determined that the application-side OSGi 222 is not executed and the service-side MAF 214 is not activated (step S22: NO), the service-side MAF 214 determines whether there is application-side terminal information received in the past. Determination is made (step S25).

サービス側MAF214は、過去受信したアプリ側端末情報があると判定した場合(ステップS25:YES)、直近で受信した過去のアプリ側端末情報を送信するアプリ側端末情報とする(ステップS26)。サービス側MAF214は、アプリ側端末情報を過去一度も取得していないと判定した場合(ステップS25:NO)、送信するアプリ側端末情報を「なし」とする(ステップS27)。   If the service-side MAF 214 determines that there is application-side terminal information received in the past (step S25: YES), the service-side MAF 214 sets the application-side terminal information for transmitting the latest application-side terminal information received most recently (step S26). If the service-side MAF 214 determines that the application-side terminal information has never been acquired (step S25: NO), the service-side MAF 214 sets “none” as the application-side terminal information to be transmitted (step S27).

ここでは、サービス側OSGi212とアプリ側OSGi222との間の通信はJava RMI(Java Remote Method Invocation API)を使用する。その他の通信プロトコルも利用可能である。Java RMIは、Javaで書かれたものであり、異なるJavaVMにあるオブジェクトのメソッドを呼び出す機能を果たすためのJavaアプリケーションプログラミングインタフェースである。   Here, the communication between the service-side OSGi 212 and the application-side OSGi 222 uses Java RMI (Java Remote Method Invocation API). Other communication protocols are also available. Java RMI is written in Java and is a Java application programming interface for performing a function of calling a method of an object in a different JavaVM.

サービス側MAF214は、図5に示すように、サービス側端末情報及びアプリ側端末情報を管理サーバ1へ送信し(ステップS28)、所定の時間内にバンドル更新情報を受信したか否かを判定する(ステップS29)。サービス側MAF214は、所定の時間内にバンドル更新情報を受信しないと判断した場合(ステップS29:NO)、そのまま処理を終了する。   As shown in FIG. 5, the service-side MAF 214 transmits service-side terminal information and application-side terminal information to the management server 1 (step S28), and determines whether or not bundle update information has been received within a predetermined time. (Step S29). If the service-side MAF 214 determines that it does not receive the bundle update information within a predetermined time (step S29: NO), it ends the process as it is.

一方、サービス側MAF214は、所定の時間内にバンドル更新情報を受信したと判定した場合(ステップS29:YES)、受信したバンドルをサービス側とアプリ側に分別して、それぞれ所定の場所に保存する(ステップS30)。具体的には、サービス側MAF212は、受信したバンドルのMANIFESTファイルから各バンドルをサービス側又はアプリ側のOSGiフレームワーク上で動作させるかを指定する指定情報を読み出して、指定情報がサービス側OSGiフレームワーク上で動作させると指定するバンドルを、サービス側OSGi212の実行フォルダに配置し、指定情報がアプリ側OSGiフレームワーク上で動作させると指定するバンドルを、アプリ側OSGi222の実行フォルダに配置することで、バンドルを保存する。なお、上記の実行フォルダに同名のバンドルファイルがあれば、該同名のバンドルを上書きする。   On the other hand, if the service-side MAF 214 determines that the bundle update information has been received within a predetermined time (step S29: YES), the service-side MAF 214 separates the received bundle into the service side and the application side, and stores them in the predetermined locations (see FIG. Step S30). Specifically, the service-side MAF 212 reads out designation information for designating whether each bundle is operated on the service-side or application-side OSGi framework from the received MANIFEST file of the bundle, and the designation information is the service-side OSGi frame. By placing the bundle that is designated to be operated on the work in the execution folder of the service-side OSGi 212, and the bundle that is designated to be operated on the application-side OSGi framework is placed in the execution folder of the application-side OSGi 222. Save the bundle. If there is a bundle file with the same name in the execution folder, the bundle with the same name is overwritten.

次に、サービス側MAF214は、アプリ側MAF224と通信可能か否かを判定する(ステップS31)。アプリ側MAF224が開始しておらず、アプリ側MAF224と通信できないと判定した場合(ステップS31:NO)、ステップS31を繰り返す。アプリ側MAF224と通信できると判断されるまで、ステップS31が繰り返される。アプリ側MAF224が開始されており、アプリ側MAF224と通信できると判定した場合(ステップS31:YES)、サービス側MAF214は、バンドル更新情報の受信をアプリ側MAF224へ通知する(ステップS32)。バンドル更新情報の受信に係る通知を受けたアプリ側MAF224は、バンドル更新情報の受信をユーザに通知し、処理を終了する(ステップS33)。   Next, the service side MAF 214 determines whether or not communication with the application side MAF 224 is possible (step S31). If it is determined that the application-side MAF 224 has not started and communication with the application-side MAF 224 is not possible (step S31: NO), step S31 is repeated. Step S31 is repeated until it is determined that communication with the application-side MAF 224 is possible. When it is determined that the application-side MAF 224 has been started and can communicate with the application-side MAF 224 (step S31: YES), the service-side MAF 214 notifies the application-side MAF 224 that the bundle update information has been received (step S32). The application-side MAF 224 that has received the notification regarding the reception of the bundle update information notifies the user of the reception of the bundle update information, and ends the process (step S33).

ここで、本実施の形態に係る受信したバンドルの保存処理及び保存したバンドルのインストールの詳細について説明する。図6、図7は本実施の形態に係るバンドル配布システムの機能構成を示すブロック図である。図6はクライアント端末2が受信したバンドルを保存している様子、図7はクライアント端末2が受信したバンドルをインストールした様子をそれぞれ示した。   Here, details of the received bundle storing process and the stored bundle installation according to the present embodiment will be described. 6 and 7 are block diagrams showing a functional configuration of the bundle distribution system according to the present embodiment. FIG. 6 shows how the bundle received by the client terminal 2 is stored, and FIG. 7 shows how the bundle received by the client terminal 2 is installed.

図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でそれぞれ示す。   FIG. 6 shows how the client terminal 2 stores the received bundle. In the example illustrated in FIG. 6, the service side MAF 214 reads the designation information from the MANIFEST file of each of the plurality of received bundles. The service side MAF 214 determines that the designation information of the bundles A and B designates the service side OSGi framework, and places the bundles A and B in the execution folder of the service side OSGi 212. The service side MAF 212 determines that the designation information of the bundles C and D designates the application side OSGi framework, and places the bundles C and D in the execution folder of the application side OSGi 222. Bundles saved in this way are not yet installed. In FIG. 6, bundles A and B are shown as a service-side bundle group 215, and bundles C and D are shown as an application-side bundle group 225, respectively.

なお、アプリ側で更新するバンドルは、サービス側MAF214によってアプリ側OSGi222の実行フォルダに配置されてバンドル更新情報の通知を実行してから、ステップS33で更新すべきバンドルの存在を知らされたユーザの指示にしたがってアプリ側MAF224によってインストールすることができる。サービス側で更新するバンドルはサービス側MAF214によってインストールされる。このインストールも同様にユーザの指示により実行することができる。ユーザからの指示を待たずに自動的にインストールするようにしてもよく、自動的にインストールするか否かをユーザによる設定にしたがって切り替えるようにしてもよい。図7に示した例では、バンドルA、Bはサービス側OSGi212にインストールされ、バンドルC、Dはアプリ側OSGi222にインストールされている。   Note that the bundle to be updated on the application side is placed in the execution folder of the application-side OSGi 222 by the service-side MAF 214 and the bundle update information is notified, and then the presence of the bundle to be updated is notified in step S33. It can be installed by the application side MAF 224 according to the instruction. The bundle to be updated on the service side is installed by the service side MAF 214. This installation can also be executed according to a user instruction. You may make it install automatically, without waiting for the instruction | indication from a user, and you may make it switch whether it installs automatically according to the setting by a user. In the example illustrated in FIG. 7, the bundles A and B are installed on the service side OSGi 212, and the bundles C and D are installed on the application side OSGi 222.

次に、本実施の形態に係るバンドル更新情報の通知に係る処理の詳細について説明する。図8は、本実施の形態の配布システムを構成するクライアント端末が受信したバンドル更新情報をユーザに通知する処理を示すフローチャートである。図8のフローチャートに示す通知処理は、通常、図5のバンドル更新情報の受信に係る通知処理が実行された後、実行させる処理である。なお、アプリ側MAF224は、図8のフローチャートに示す処理を繰り返し実行する。   Next, details of processing related to notification of bundle update information according to the present embodiment will be described. FIG. 8 is a flowchart showing a process of notifying the user of bundle update information received by the client terminal constituting the distribution system of this embodiment. The notification process shown in the flowchart of FIG. 8 is usually a process to be executed after the notification process related to the reception of bundle update information of FIG. 5 is executed. The application-side MAF 224 repeatedly executes the processing shown in the flowchart of FIG.

クライアント端末2のアプリ側MAF224は、ユーザからバンドル更新情報の通知要求を受信した(ユーザから更新実行の指示を受けた)か否かを判定する(ステップS40)。アプリ側MAF224は、ステップS40にてバンドル更新情報の通知要求受信していないと判断した場合(ステップS40:NO)、そのまま処理を終了する。当該処理は、繰り返し実行されるので、ステップS40へ戻り、通知要求を受信したと判断するまでは、S40:NOが繰り返される。   The application-side MAF 224 of the client terminal 2 determines whether or not a bundle update information notification request has been received from the user (update instruction has been received from the user) (step S40). If the application-side MAF 224 determines in step S40 that it has not received the bundle update information notification request (step S40: NO), it immediately ends the process. Since this process is repeatedly executed, the process returns to step S40, and S40: NO is repeated until it is determined that the notification request has been received.

アプリ側MAF224は、ステップS40にてバンドル更新情報の通知要求を受信したと判断した場合(ステップS40:YES)、サービス側MAF214と通信可能か否かを判定する(ステップS41)。アプリ側MAF224は、サービス側MAF214が開始しておらず、サービス側MAF214と通信できないと判定した場合(ステップS41:NO)、そのまま処理を終了する。アプリ側MAF224は、サービス側MAF214と通信できると判定した場合(ステップS41:YES)、ユーザからの更新実行指示を伝え、バンドル更新情報の通知をサービス側MAF214に要求する(ステップS42)。これにより、サービス側/アプリ側それぞれで更新処理が実行され、サービス側はアプリ側に更新結果を送信する。   If the application-side MAF 224 determines in step S40 that the bundle update information notification request has been received (step S40: YES), the application-side MAF 224 determines whether communication with the service-side MAF 214 is possible (step S41). If the application-side MAF 224 determines that the service-side MAF 214 has not started and cannot communicate with the service-side MAF 214 (step S41: NO), the application-side MAF 224 ends the process. If it is determined that the application-side MAF 224 can communicate with the service-side MAF 214 (step S41: YES), the application-side MAF 224 transmits an update execution instruction from the user and requests the service-side MAF 214 to notify the bundle update information (step S42). Thereby, the update process is executed on each of the service side / application side, and the service side transmits the update result to the application side.

サービス側MAF214は、バンドル更新情報の通知要求を受信した場合、直近更新したバンドルに係る情報を収集してアプリ側MAF224へ送信する。アプリ側MAF224は、サービス側MAF214からサービス側のバンドル更新情報を受信した後、直近更新したアプリ側のバンドルに係る情報を収集し、受信したサービス側のバンドル更新情報とともにユーザに通知する(ステップS43)。これによってユーザに更新結果が通知される。図9はクライアント端末2の表示部に表示されるバンドル更新情報の通知に係る画面例を示す模式図である。ステップS43にてバンドル更新情報をユーザに通知する場合、アプリ側MAF224は、図9に示したようなバンドルの更新情報の確認画面100を表示させる。確認画面100では、直近更新したバンドルの名称を表示すると共に、そのバージョン、プロセス、更新日時などをリストして表示する。   When the service-side MAF 214 receives the bundle update information notification request, the service-side MAF 214 collects information related to the most recently updated bundle and transmits it to the application-side MAF 224. After receiving the service-side bundle update information from the service-side MAF 214, the application-side MAF 224 collects information related to the most recently updated application-side bundle and notifies the user together with the received service-side bundle update information (step S43). ). As a result, the update result is notified to the user. FIG. 9 is a schematic diagram illustrating an example of a screen related to notification of bundle update information displayed on the display unit of the client terminal 2. When the bundle update information is notified to the user in step S43, the application-side MAF 224 displays the bundle update information confirmation screen 100 as shown in FIG. On the confirmation screen 100, the name of the bundle that was most recently updated is displayed, and the version, process, update date and time, etc. are listed and displayed.

アプリ側MAF224は、アプリ及びサービス側のバンドル更新情報を確認画面100でユーザに通知した後、通知処理が完了か否かを判定する(ステップS44)。ユーザが確認画面100の確認ボタンをクリックせず、通知処理の確認指示を受けないと判定した場合(ステップS44:NO)、ステップS44を繰り返す。通知処理の確認指示を受けたと判断されるまで、ステップS44が繰り返される。ユーザが確認画面100の確認ボタンをクリックして、通知処理の確認指示を受けたと判定した場合(ステップS44:YES)、アプリ側MAF224は、通知処理の完了をサービス側MAF214へ通知することで、ユーザが確認したことをサービス側MAF214へ送信する(ステップS45)。通知処理の完了に係る通知を受けたサービス側MAF214は、通知処理の完了(更新結果:更新の成否)を管理サーバ1へ送信し(ステップS46)、処理を終了する。なお、ユーザの確認を待たず管理サーバ1への更新結果の送信を実行することも可能である。その場合、ステップS43の直前に、アプリ側は自身の更新処理が終わった段階で更新結果をサービス側に伝えておく。そして、ステップS43〜44と、ステップS46とを並行して実施する。   The app-side MAF 224 notifies the user of the app and service-side bundle update information on the confirmation screen 100, and then determines whether or not the notification process is complete (step S44). If the user does not click the confirmation button on the confirmation screen 100 and determines that the confirmation instruction for the notification process is not received (step S44: NO), step S44 is repeated. Step S44 is repeated until it is determined that the notification processing confirmation instruction has been received. When it is determined that the user has clicked the confirmation button on the confirmation screen 100 and received a confirmation instruction for the notification process (step S44: YES), the application-side MAF 224 notifies the service-side MAF 214 of the completion of the notification process. The fact that the user has confirmed is transmitted to the service side MAF 214 (step S45). The service-side MAF 214 that has received the notification relating to the completion of the notification process transmits the completion of the notification process (update result: success or failure of update) to the management server 1 (step S46), and ends the process. It is also possible to execute transmission of the update result to the management server 1 without waiting for user confirmation. In that case, immediately before step S43, the application side informs the service side of the update result at the stage when its own update process is completed. And step S43-44 and step S46 are implemented in parallel.

以上、本発明の実施形態を詳述したが、本発明は前記実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。   As mentioned above, although embodiment of this invention was explained in full detail, this invention is not limited to the said embodiment, A various deformation | transformation implementation is possible within the range of the summary of this invention.

例えば、通知処理の確認ステップでは、バンドル更新情報をユーザに表示し、ユーザの確認指示を受けた場合、通知処理は完了と判断するが、これに限定されるものではなく、例えば、バンドル更新情報をユーザに表示し、設定した表示時間が経過した後、通知処理は完了と判断してもよい。   For example, in the confirmation process confirmation step, bundle update information is displayed to the user, and when the user confirmation instruction is received, the notification process is determined to be complete. However, the present invention is not limited to this. For example, the bundle update information May be displayed to the user, and the notification process may be determined to be complete after the set display time has elapsed.

また、バンドルのMANIFESTファイルに指定情報を含み、サービス側MAF214は受信したバンドルのMANIFESTファイルから指定情報を読み出して、バンドルを区分して保存することを例として説明したが、これに限定されるものではなく、指定情報をMANIFESTファイルに記述する以外に、指定情報はバンドルファイルとは別に「付加情報」として配信されてもよい。例えばサービス側又はアプリ側でバンドルを削除する場合に、削除するバンドルがどちらで稼働しているかを付加情報として配信することができる。   In addition, although the bundle MANIEST file includes the designation information, the service-side MAF 214 reads the designation information from the received bundle MANIEST file, and stores the bundle separately. However, the present invention is limited to this. Instead of describing the designation information in the MANIFEST file, the designation information may be distributed as “additional information” separately from the bundle file. For example, when a bundle is deleted on the service side or the application side, it can be distributed as additional information indicating which bundle to delete is operating.

なお、開示された実施の形態は、全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上述の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。   The disclosed embodiments should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

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の管理手段)
DESCRIPTION OF SYMBOLS 1 Management server 1P Server program 2 Client terminal 20 CPU (arithmetic processing part)
21 HD (storage unit)
2P client program 200 Client terminal side OS (operating system)
211 Service-side JavaVM (first virtual machine)
212 Service-side OSGi (first framework)
214 Service-side MAF (first management means)
215, 225 Bundle (Program module)
221 Application-side JavaVM (second virtual machine)
222 Application-side OSGi (second framework)
224 Application side MAF (second management means)

Claims (8)

演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるようにしてある情報処理装置において、
前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能し、
前記第1の管理手段は、プログラムモジュールを受信し、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成してあり、
前記第2の管理手段は、
プログラムモジュール更新情報の通知に係る指示を受付ける機能と、
自フレームワークで更新したプログラムモジュールに係る情報を収集する機能と、
前記第1のフレームワークで更新したプログラムモジュールに係る情報を、前記第1の管理手段へ要求し、該第1の管理手段から受信する機能と、
前記第1及び第2のフレームワークで更新したプログラムモジュールに係る情報を通知する機能と
を有し、
前記第1の管理手段は、自フレームワークで更新したプログラムモジュールに係る情報を収集して前記第2の管理手段へ送信する機能を有する
ことを特徴とする情報処理装置。
First and second frameworks each comprising an arithmetic processing unit and a storage unit, each of which operates as an execution platform of a program module by reading and executing a program stored in the storage unit by the arithmetic processing unit; In the information processing apparatus that is configured to be operated,
The arithmetic processing units operate on the first and second frameworks respectively and function as first and second management means capable of communicating with each other,
Said first management means receives the program module, Ri configured tear to store fractionated by the program module received in the first or second program module framework,
The second management means includes
A function of accepting instructions relating to notification of program module update information;
A function to collect information on program modules updated by its own framework;
A function for requesting and receiving from the first management means information relating to the program module updated by the first framework;
A function of notifying information on the program module updated in the first and second frameworks;
Have
The information processing apparatus according to claim 1, wherein the first management unit has a function of collecting information related to the program module updated by the framework and transmitting the information to the second management unit .
前記第1の管理手段は、プログラムモジュールを受信したことを前記第2の管理手段に通知する機能を有する
ことを特徴とする請求項1に記載の情報処理装置。
The information processing apparatus according to claim 1, wherein the first management unit has a function of notifying the second management unit that a program module has been received.
前記第1及び第2の管理手段は、それぞれ前記第1及び第2のフレームワークにプログラムモジュールをインストール又は更新する機能を有する
ことを特徴とする請求項1又は2に記載の情報処理装置。
The information processing apparatus according to claim 1, wherein the first and second management units have a function of installing or updating a program module in the first and second frameworks, respectively.
前記第2の管理手段は、前記プログラムモジュール更新の通知が完了したことを前記第1の管理手段へ送信する機能を有し、
前記第1の管理手段は、受信した通知の完了をサーバ装置に送信する機能を有する
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
The second management means has a function of transmitting the completion of notification of the program module update to the first management means,
The information processing apparatus according to any one of claims 1 to 3, wherein the first management unit has a function of transmitting completion of the received notification to the server apparatus.
前記第1の管理手段は、プログラムモジュールに含む該プログラムモジュールを識別するための識別情報、又はサーバ装置から受信した前記識別情報に基づいて、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成されていることを特徴とする請求項1からのいずれか1項に記載の情報処理装置。 The first management means uses the received program module for the first or second framework based on the identification information for identifying the program module included in the program module or the identification information received from the server device. the information processing apparatus according to any one of that is configured to store fractionated into program modules from claim 1, wherein 4. 前記プログラムモジュールはOSGiフレームワークで稼働するバンドルであり、
前記第1の管理手段は、受信したプログラムモジュールをそれぞれのMANIFESTファイルに基づいて分別して保存するように構成されている
ことを特徴とする請求項に記載の情報処理装置。
The program module is a bundle that runs on the OSGi framework,
The information processing apparatus according to claim 5 , wherein the first management unit is configured to sort and store the received program module based on each MANIFEST file.
サーバ装置、及び該サーバ装置と通信可能に接続されているクライアント装置を含み、前記サーバ装置から前記クライアント装置へプログラムモジュールを配布する配布システムにおいて、
前記サーバ装置は、
プログラムモジュールと、該プログラムモジュールを、実行プラットフォームとしての複数のフレームワークのいずれに実装するかを示す情報とを、配布するように構成しており、
前記クライアント装置は、演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるように構成しており、
前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能し、
前記第1の管理手段は、外部から配布されるプログラムモジュールを受信し、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するように構成してあり、
前記第2の管理手段は、
プログラムモジュール更新情報の通知に係る指示を受付ける機能と、
自フレームワークで更新したプログラムモジュールに係る情報を収集する機能と、
前記第1のフレームワークで更新したプログラムモジュールに係る情報を、前記第1の管理手段へ要求し、該第1の管理手段から受信する機能と、
前記第1及び第2のフレームワークで更新したプログラムモジュールに係る情報を通知する機能と
を有し、
前記第1の管理手段は、自フレームワークで更新したプログラムモジュールに係る情報を収集して前記第2の管理手段へ送信する機能を有する
ことを特徴とする配布システム。
In a distribution system that includes a server device and a client device that is communicably connected to the server device, the program module is distributed from the server device to the client device.
The server device
A program module, and information indicating which of the plurality of frameworks as the execution platform to implement the program module is configured to be distributed;
The client device includes an arithmetic processing unit and a storage unit, and the arithmetic processing unit reads and executes a program stored in the storage unit, thereby operating as a program module execution platform, respectively. Is configured to operate with the framework of No. 2,
The arithmetic processing units operate on the first and second frameworks respectively and function as first and second management means capable of communicating with each other,
Said first management means receives the program module is distributed from the outside, Ri configured tear to store fractionated by the program module received in the first or second program module framework,
The second management means includes
A function of accepting instructions relating to notification of program module update information;
A function to collect information on program modules updated by its own framework;
A function for requesting and receiving from the first management means information relating to the program module updated by the first framework;
A function of notifying information on the program module updated in the first and second frameworks;
Have
The distribution system according to claim 1, wherein the first management unit has a function of collecting information related to the program module updated by the own framework and transmitting the information to the second management unit .
演算処理部と記憶部とを備え、前記演算処理部が前記記憶部に記憶してあるプログラムを読み込んで実行することによって、プログラムモジュールの実行プラットフォームとしてそれぞれ稼働する第1及び第2のフレームワークとが作動されるようにしており、前記演算処理部は、前記第1及び第2のフレームワーク上でそれぞれ稼働し、互いに通信可能な第1及び第2の管理手段として機能する情報処理装置に、プログラムモジュールを受信する方法であって、
前記第1の管理手段が、プログラムモジュールを受信するステップと、
前記第1の管理手段が、受信したプログラムモジュールを第1又は第2のフレームワーク用のプログラムモジュールに分別して保存するステップと
前記第2の管理手段が、プログラムモジュール更新情報の通知に係る指示を受付けるステップと、
前記第2の管理手段が、自フレームワークで更新したプログラムモジュールに係る情報を収集するステップと、
前記第2の管理手段が、前記第1のフレームワークで更新したプログラムモジュールに係る情報を、前記第1の管理手段へ要求し、該第1の管理手段から受信するステップと、
前記第1の管理手段が、自フレームワークで更新したプログラムモジュールに係る情報を収集して前記第2の管理手段へ送信するステップと、
前記第2の管理手段が、前記第1及び第2のフレームワークで更新したプログラムモジュールに係る情報を通知するステップと
を含むことを特徴とする受信方法。
First and second frameworks each comprising an arithmetic processing unit and a storage unit, each of which operates as an execution platform of a program module by reading and executing a program stored in the storage unit by the arithmetic processing unit; And the arithmetic processing unit operates on the first and second frameworks, and functions as first and second management units that can communicate with each other. A method for receiving a program module comprising:
The first management means receiving a program module;
The first management means classifying and storing the received program modules into program modules for the first or second framework ; and
The second management means receiving an instruction relating to notification of the program module update information;
The second management means collecting information relating to the program module updated by the own framework; and
The second management means requests the first management means for information related to the program module updated by the first framework, and receives the information from the first management means;
The first management means collects information related to the program module updated by its own framework and transmits it to the second management means;
And receiving the information related to the program module updated by the first and second frameworks .
JP2009278870A 2009-12-08 2009-12-08 Information processing apparatus, distribution system, and reception method Active JP5359835B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009278870A JP5359835B2 (en) 2009-12-08 2009-12-08 Information processing apparatus, distribution system, and reception method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009278870A JP5359835B2 (en) 2009-12-08 2009-12-08 Information processing apparatus, distribution system, and reception method

Publications (2)

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

Family

ID=44287428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009278870A Active JP5359835B2 (en) 2009-12-08 2009-12-08 Information processing apparatus, distribution system, and reception method

Country Status (1)

Country Link
JP (1) JP5359835B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013186572A (en) * 2012-03-06 2013-09-19 Sharp Corp Information processing apparatus
JP5804997B2 (en) * 2012-03-29 2015-11-04 株式会社日立ソリューションズ Program distribution management system
CN103678240B (en) * 2012-09-18 2018-08-24 阿里巴巴集团控股有限公司 Method and system for carrying out modularization management to Distributed Calculation
JP6368151B2 (en) * 2014-06-05 2018-08-01 キヤノン株式会社 Information processing apparatus, application management method, and program
JP5882436B1 (en) * 2014-11-07 2016-03-09 西日本電信電話株式会社 Communication device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4717426B2 (en) * 2004-12-07 2011-07-06 キヤノン株式会社 Information processing apparatus and method
JP4455403B2 (en) * 2005-05-17 2010-04-21 キヤノン株式会社 Management method and management apparatus
JP2007048270A (en) * 2005-07-11 2007-02-22 Ricoh Co Ltd Image forming apparatus, information processing apparatus, information processing method, information processing program and recording medium

Also Published As

Publication number Publication date
JP2011123570A (en) 2011-06-23

Similar Documents

Publication Publication Date Title
CN105335171B (en) The method and device on application program resident operating system backstage
CN107943486B (en) Multi-language code compiling method, multi-language code distributing method, multi-language code compiling device, multi-language code distributing device and multi-language code system
CN105955782B (en) Application program operation control method and device
JP6363796B2 (en) Dynamic code deployment and versioning
CN108733380B (en) Application deployment method and device
CN110572436A (en) Multi-place cross-cluster server deployment method and system
US6804773B1 (en) System and method for transferring information over a network
KR101281825B1 (en) Apparatus and method that enhance security using virtual interface in cloud system
JP5359835B2 (en) Information processing apparatus, distribution system, and reception method
RU2339076C2 (en) Execution of non-verified programs in radio communication device
CN106528143A (en) Configuration management method and device
EP2218021A1 (en) Translating declarative models
CN108540509B (en) Processing method and device of terminal browser, server and intelligent terminal
US10404568B2 (en) Agent manager for distributed transaction monitoring system
CN106066803B (en) application program operation control method and device
CN111880987A (en) Dynamic monitoring method and device of application program, storage medium and electronic device
CN105808278A (en) Client version upgrading method and device
GB2463370A (en) Method of allowing an application to run as a service application on a mobile computing device.
CN100583038C (en) Method, system and apparatus for launching an interface with an electronic device
CN104504587A (en) Advertisement monitoring method and device, electronic apparatus
CN104536752A (en) Method and device for automatically generating APK files
CN111369984A (en) Voice interaction method, storage medium and terminal equipment
CN107526584B (en) Data access method and device
CN114546588A (en) Task deployment method and device, storage medium and electronic device
WO2017185883A1 (en) Dynamic expansion software-process method and system

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250