特許第5873782号(P5873782)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立ソリューションズの特許一覧

<>
  • 特許5873782-端末管理装置、端末管理システム 図000002
  • 特許5873782-端末管理装置、端末管理システム 図000003
  • 特許5873782-端末管理装置、端末管理システム 図000004
  • 特許5873782-端末管理装置、端末管理システム 図000005
  • 特許5873782-端末管理装置、端末管理システム 図000006
  • 特許5873782-端末管理装置、端末管理システム 図000007
  • 特許5873782-端末管理装置、端末管理システム 図000008
  • 特許5873782-端末管理装置、端末管理システム 図000009
  • 特許5873782-端末管理装置、端末管理システム 図000010
  • 特許5873782-端末管理装置、端末管理システム 図000011
  • 特許5873782-端末管理装置、端末管理システム 図000012
  • 特許5873782-端末管理装置、端末管理システム 図000013
  • 特許5873782-端末管理装置、端末管理システム 図000014
  • 特許5873782-端末管理装置、端末管理システム 図000015
  • 特許5873782-端末管理装置、端末管理システム 図000016
  • 特許5873782-端末管理装置、端末管理システム 図000017
  • 特許5873782-端末管理装置、端末管理システム 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5873782
(24)【登録日】2016年1月22日
(45)【発行日】2016年3月1日
(54)【発明の名称】端末管理装置、端末管理システム
(51)【国際特許分類】
   H04L 12/24 20060101AFI20160216BHJP
   G06F 12/00 20060101ALI20160216BHJP
【FI】
   H04L12/24
   G06F12/00 545A
【請求項の数】8
【全頁数】17
(21)【出願番号】特願2012-206265(P2012-206265)
(22)【出願日】2012年9月19日
(65)【公開番号】特開2014-64056(P2014-64056A)
(43)【公開日】2014年4月10日
【審査請求日】2015年1月26日
(73)【特許権者】
【識別番号】000233055
【氏名又は名称】株式会社日立ソリューションズ
(74)【代理人】
【識別番号】100091096
【弁理士】
【氏名又は名称】平木 祐輔
(74)【代理人】
【識別番号】100102576
【弁理士】
【氏名又は名称】渡辺 敏章
(74)【代理人】
【識別番号】100153903
【弁理士】
【氏名又は名称】吉川 明
(72)【発明者】
【氏名】森口 昭
【審査官】 森田 充功
(56)【参考文献】
【文献】 特開平05−007203(JP,A)
【文献】 特開平05−089018(JP,A)
【文献】 特開平05−289919(JP,A)
【文献】 特開平09−200205(JP,A)
【文献】 特開2006−050051(JP,A)
【文献】 特開2009−260846(JP,A)
【文献】 特開2011−103626(JP,A)
【文献】 特表2011−530224(JP,A)
【文献】 国際公開第2009/095981(WO,A1)
【文献】 国際公開第2011/122816(WO,A2)
【文献】 米国特許出願公開第2010/0070614(US,A1)
【文献】 米国特許出願公開第2004/0199547(US,A1)
【文献】 米国特許出願公開第2005/0187973(US,A1)
【文献】 米国特許出願公開第2011/0238806(US,A1)
【文献】 米国特許出願公開第2002/0064259(US,A1)
【文献】 欧州特許出願公開第02393238(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/24
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
ツリー形式で端末の稼動状態情報を記述する遠隔管理プロトコルを用いて、管理対象である端末からその端末の稼動状態情報を取得する端末通信部と、
前記端末通信部が前記端末から取得した稼動状態情報を格納する管理テーブルと、
前記管理テーブルに対して前記稼動状態情報を書き込む処理を実装したテーブル操作プログラムと、
を備え、
前記管理テーブルは、前記ツリー形式上の少なくともいずれかのノード毎に1つ設けられ、各前記管理テーブルは、対応する前記ノードに属する属性値を格納するフィールドを有しており、
前記テーブル操作プログラムは、前記管理テーブル毎に設けられ、各前記テーブル操作プログラムは、対応する前記管理テーブルに対して前記属性値を書き込む処理を実装している
ことを特徴とする端末管理装置。
【請求項2】
前記管理テーブルは、少なくとも前記ツリー形式上の属性値を集約するいずれかの前記ノード毎に設けられている
ことを特徴とする請求項1記載の端末管理装置。
【請求項3】
請求項1または2記載の端末管理装置と、
前記端末管理装置の管理対象であり、前記端末管理装置に対して前記遠隔管理プロトコルを用いて前記稼動状態情報を送信する端末と、
を有することを特徴とする端末管理システム。
【請求項4】
前記端末は、前記端末の稼動状態情報を取得する管理プログラムを備え、
前記管理プログラムは、前記ツリー形式上の少なくともいずれかのノード毎に1つ設けられ、各前記管理プログラムは、対応する前記ノードに属する属性値を前記端末から取得する処理を実装している
ことを特徴とする請求項3記載の端末管理システム。
【請求項5】
前記管理プログラムは、前記管理テーブル毎に設けられている
ことを特徴とする請求項4記載の端末管理システム。
【請求項6】
前記端末管理システムは、前記端末に対して前記管理プログラムを配布するバイナリ管理サーバを有し、
前記端末は、前記バイナリ管理サーバから前記管理プログラムを取得して前記端末上にインストールする端末管理部を備える
ことを特徴とする請求項4または5記載の端末管理システム。
【請求項7】
前記管理プログラムは、OSGiフレームワーク上に実装されたOSGiバンドルとして構成されている
ことを特徴とする請求項から6のいずれか1項記載の端末管理システム。
【請求項8】
前記遠隔管理プロトコルは、OMA−DM、TR−069およびTR−106、またはETSI M2Mのうち少なくともいずれかである
ことを特徴とする請求項3から7のいずれか1項記載の端末管理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末を遠隔管理する技術に関する。
【背景技術】
【0002】
組込機器の品質保証や保守費用削減のため、組込機器はその種別に応じた通信プロトコルによって遠隔管理される。例えば、携帯電話のような移動体通信機器は、OMA−DM(Open Mobile Alliance − Device Management)プロトコルによって管理され、ブロードバンドルーターのような固定通信機器は、TR−069(Technical Report 069)プロトコルによって管理される(非特許文献1、2)。
【0003】
OMA−DMや、TR−069の関連仕様であるTR−106は、端末のIDや端末内のソフトウェア情報等のインベントリをツリー構造で管理することを規定している。端末制御命令は、ツリー内の特定ノードの属性値を変更することによって実現される。具体的には、ソフトウェアの状態を表すStateノードを用意し、ソフトウェアの停止状態を指定する属性値であるidleを端末制御命令によってそのノードに格納する。これにより、端末内のソフトウェアをその属性値に対応する状態に変更する遠隔管理命令が発行される。端末制御命令を追加する場合は、端末に新たなツリーを追加し、そのツリー内のデータを解釈することができるツリー操作プログラムを端末に追加すればよい。すなわち、端末と端末管理サーバ間の通信プロトコルを修正する必要がないため、ツリー形式で制御データを記述する遠隔管理方式は高い拡張性を有すると考えられている。
【0004】
下記特許文献1では、管理プロトコルが異なる複数種類の端末を、端末管理サーバから共通の管理プロトコルで管理するシステムが記載されている。このシステムでは、固定通信機器については、TR−069プロトコルで管理する。端末管理サーバは、宅内にある固定通信機器とプロトコル変換機能を有するサーバを経由し、移動体通信機器に端末制御命令を送信する。端末管理サーバの端末制御命令は、プロトコル変換機能によって、TR−069プロトコルから移動体端末専用の管理プロトコルに変換されるため、端末管理サーバは、TR−069プロトコルのみによって、異なる種類の端末を管理できる。
【0005】
遠隔管理システムとしての拡張性を担保するためには、端末側だけでなく、端末管理サーバ側のデータ構造も拡張性が必要になると考えられる。データ構造に拡張性を持たせる技術の例として、下記特許文献2では、ツリー構造を持つXML文書をRDB(Relational DataBase)へマッピングする技術が記載されている。同文献に記載されている技術では、XML文書に属する各要素を、階層レベルと親ノード情報とともにRDBへ格納することにより、RDB内のデータをXML文書として読み出すことができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2012−502578公報
【特許文献2】特願2004−111979公報
【非特許文献】
【0007】
【非特許文献1】Open Mobile Alliance、URL:http://www.openmobilealliance.org/default.aspx(2012年2月14日取得)
【非特許文献2】broadband forum、URL:http://www.broadband-forum.org/(2012年2月14日取得)
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献2に記載されている技術では、RDBの1レコードにつき、ツリーの1要素とそのツリー内における位置情報を格納する。そのため、要素間の関連に基づきデータを検索するためには、検索処理を複数回繰り返さなければならない。例えば、ソフトウェアAのStateがidleである端末を検索する場合、ソフトウェアAとidleを検索条件として位置情報を検索し、端末IDが格納された要素に辿り着かなければならない。RDBは関連のある情報を1レコードに格納することにより、高い検索性能を発揮できるDBであるので、特許文献2に記載されているようなデータ構造では、RDBの検索性能を十分には発揮できないと考えられる。
【0009】
本発明は、上記のような課題を解決するためになされたものであり、ツリー形式で稼動状態情報を記述する遠隔管理プロトコルを用いる場合において、ツリー形式の拡張性を保持しつつ、データツリーを格納するDBの検索性能を向上させることを目的とする。
【課題を解決するための手段】
【0010】
本発明に係る端末管理装置は、端末の稼動状態情報を記述するデータツリー上の少なくともいずれかのノード毎に1つ管理テーブルを備え、さらに、管理テーブルに対して稼動状態情報を書き込むテーブル操作プログラムを管理テーブル毎に備えている。
【発明の効果】
【0011】
本発明に係る端末管理装置によれば、ツリー形式による拡張性を利用することによって管理対象項目を動的に拡張できるようにしつつ、データツリーの検索性能を向上させることができる。
【図面の簡単な説明】
【0012】
図1】実施形態1に係る端末管理システム1000の構成図である。
図2】管理対象端末200の稼動状態情報を記述するためのデータツリーの例を示す図である。
図3】基本情報管理テーブル141の構成とデータ例を示す図である。
図4】アプリケーション情報管理テーブル142の構成とデータ例を示す図である。
図5】端末管理エージェント210に対して端末管理プラグイン220内のサブプログラムを登録する処理を説明するシーケンス図である。
図6】端末管理サーバ100が管理対象端末200から稼動状態情報を記述したデータツリーを収集する処理を説明するシーケンス図である。
図7】データツリー操作プログラム121がデータツリーをサーバ側データツリー格納部140に格納する処理を説明するシーケンス図である。
図8】管理者が管理者端末300を用いて管理対象端末200のアプリケーション状態を参照する処理を説明するシーケンス図である。
図9】データツリー操作プログラム121がデータツリー内から指定されたレコードを検索する処理を説明するシーケンス図である。
図10】端末管理サーバ100が管理対象端末200に対して制御命令を発行する処理を説明するシーケンス図である。
図11】コマンド管理テーブル150の構成とデータ例を示す図である。
図12】端末管理サーバ100が発行した制御命令を管理対象端末200が実行する処理を説明するシーケンス図である。
図13】実施形態2に係る端末管理システム1000の構成図である。
図14】管理対象端末200のファームウェア情報を管理する機能を端末管理システム1000に追加する処理を説明するシーケンス図である。
図15】ステップS1405において端末管理サーバ100が発行する制御命令を格納したコマンド管理テーブル150の構成を例示する図である。
図16】FarmwareInfoツリーの1例を示す図である。
図17】ファームウェア情報管理テーブル143の構成とデータ例を示す図である。
【発明を実施するための形態】
【0013】
<実施の形態1>
図1は、本発明の実施形態1に係る端末管理システム1000の構成図である。端末管理システム1000は、管理対象端末200の稼動状態情報を管理し、管理対象端末200に対して制御命令を発行するシステムであり、端末管理サーバ100(端末管理装置)、管理者端末300を有する。これら機器は、ネットワークを介して接続されている。以下の説明では記載の便宜上、各プログラムを動作主体として説明する場合があるが、実際にこれらプログラムを実行するのはCPU(Central Processing Unit)などの演算装置であり、プログラムを搭載した機器はこれを実行する演算装置を備えているものとする。
【0014】
管理対象端末200は、端末管理システム1000の管理対象となる端末であり、端末管理エージェント210(端末管理部)、端末管理プラグイン220、端末側データツリー格納部230を備える。
【0015】
端末管理エージェント210は、端末管理サーバ100に対して当該端末の稼動状態情報を送信し、端末管理サーバ100から制御命令を受信するプログラムである。端末管理プラグイン220は、端末管理エージェント210を介して、端末管理サーバ100に対して当該端末の稼動状態情報を送信し、端末管理サーバ100から制御命令を受信して実行するプログラムである。端末管理プラグイン220は、管理対象となる稼動状態情報に対応したサブプログラムを有する。ここでは、後述するApplicationInfoに対応するアプリケーション管理プログラム221と、DeviceInfo項目に対応する基本情報管理プログラム222を例示した。端末側データツリー格納部230は、管理対象端末200の稼動状態情報をツリー形式で記述したデータツリーを記憶する記憶装置である。
【0016】
端末管理サーバ100は、管理対象端末200の稼動状態情報を収集・管理し、管理者端末300からの指令に基づき、管理対象端末200に対して制御命令を発行する。制御命令の例としては、アプリケーションのインストール、起動・停止などが挙げられる。端末管理サーバ100は、先述のOMA−DMのようにツリー形式で稼動状態情報を記述する遠隔管理プロトコルを用いて、管理対象端末200の稼動状態情報を取得し、または管理対象端末200に対して制御命令を発行する。
【0017】
端末管理サーバ100は、管理者端末通信プログラム111、管理対象端末通信プログラム112、データツリー操作プログラム121、コマンド操作プログラム122、サブツリー操作プログラム130、サーバ側データツリー格納部140、コマンド管理テーブル150を備える。
【0018】
管理者端末通信プログラム111は、管理者端末300から指令を受信するプログラムである。管理対象端末通信プログラム112は、管理対象端末200から稼動状態情報を受信し、管理対象端末200に対して制御命令を送信するプログラムである。データツリー操作プログラム121は、サーバ側データツリー格納部140が格納しているデータツリーに対する読込要求や書込要求を受け取り、サブツリー操作プログラム130内の対応するプログラムにその要求を振り分けるプログラムである。サブツリー操作プログラム130は、サーバ側データツリー格納部140が格納しているデータツリーを読み込み、またはデータを書き込むプログラムである。サブツリー操作プログラム130は、端末管理プラグイン220が備えるサブプログラムに対応するサブプログラムとして、基本情報操作プログラム131とアプリケーション情報操作プログラム132を備える。サーバ側テータツリー格納部140については後述する。コマンド操作プログラム122は、管理対象端末200に対する制御命令をツリー形式で記述してコマンド管理テーブル150に格納する。コマンド管理テーブル150の具体例については後述する。
【0019】
管理者端末300は、管理対象端末200を管理する管理者が使用する端末であり、管理対象端末200の状態監視、アプリケーション起動・停止などの遠隔制御などの処理を実行する。管理者端末300は、端末操作プログラム310を備える。端末操作プログラム310は、端末管理サーバ100から管理対象端末200の稼動状態情報を取得してディスプレイなどに表示し、管理対象端末200に対する制御指令を入力するユーザインターフェースを提供する。
【0020】
図2は、端末管理サーバ100と管理対象端末200が使用する遠隔管理プロトコルにおいて使用される、管理対象端末200の稼動状態情報を記述するためのデータツリーの例を示す図である。データツリーは、ツリーのパスによって属性値を指定できるように構成された、データの論理構造である。データツリーは、管理対象端末200から取得した稼動状態情報を記述するために使用することもできるし、管理対象端末200に対する制御命令を記述するために使用することもできる。
【0021】
図2に示すデータツリーは、管理対象端末200の基本情報を格納するDeviceInfoサブツリーと、管理対象端末200にインストールされているアプリケーションの属性情報を格納するApplicationInfoサブツリーを有する。ApplicationInfoサブツリーは、管理対象端末200にインストールされているアプリケーションと同数の子ノードを持ち、それぞれの子ノードは属性値として、アプリケーションのIDであるAppID、起動・停止状態を表すStatus、アプリケーションのバージョンを表すVersionを有する。ツリーのパスとして、/DeviceInfo/DeviceIDを指定すると、属性値D00001を取得し、または更新することができる。
【0022】
アプリケーション管理プログラム221はApplicationInfoサブツリーの属性値を取得または更新し、基本情報管理プログラム222はDeviceInfoサブツリーの属性値を取得または更新する。端末管理エージェント210は、管理対象端末200に対して稼動状態情報の取得または更新を指示する命令を受信すると、その命令の宛先に対応する端末管理プラグイン220内のサブプログラムに命令を振り分ける。
【0023】
図3は、基本情報管理テーブル141の構成とデータ例を示す図である。基本情報管理テーブル141は、DeviceInfoサブツリーの値を格納するテーブルであり、同サブツリーが有する各属性値に対応するフィールドを有する。
【0024】
図4は、アプリケーション情報管理テーブル142の構成とデータ例を示す図である。アプリケーション情報管理テーブル142は、ApplicationInfoサブツリーの値を格納するテーブルであり、同サブツリーが有する各属性値に対応するフィールドを有する。ただし、個々の管理対象端末200を識別するため、これらフィールドに加えてDeviceIDフィールドも備えている。
【0025】
基本情報管理テーブル141とアプリケーション情報管理テーブル142は、図2に示すデータツリーのうち一部のノードを抽出し、RDBのスキーマ形式によって記述したテーブルである。RDBの形式でデータを格納することにより、RDBの検索性能を利用してデータツリーを検索することができる。データ項目を拡張する場合は、新たに追加するツリーノードに対応するテーブルを設け、同テーブルに対応するサブプログラムをサブツリー操作プログラム130と端末管理プラグイン220に追加すればよいので、ツリー形式の拡張性もそのまま利用することができる。
【0026】
端末管理サーバ100は、例えばAppID=A001のStatusをidleからactiveに変更するコマンドを管理対象端末200に対して発行することにより、停止状態にある管理対象端末200上のアプリケーションA001を起動させることができる。
【0027】
以上、端末管理システムの構成について説明した。以下では、端末管理システムの動作例について説明する。必要に応じて、具体例として、図2図4に記載しているデータを用いる。
【0028】
図5は、端末管理エージェント210に対して端末管理プラグイン220内のサブプログラムを登録する処理を説明するシーケンス図である。端末管理エージェント210は、端末管理サーバ100から稼動状態情報を取得または更新する命令を受け取ると、対応するサブプログラムに命令を振り分ける必要がある。このときの対応関係をあらかじめ定義しておく処理を、登録と呼ぶことにする。以下、図5の各ステップについて説明する。
図5:ステップS501)
端末管理プラグイン220内のサブプログラムは、自身のプログラムパスと、管理するデータツリーのルートパスを、端末管理エージェント210に登録する。プログラムパスとは、端末管理プラグイン220のインスタンスが格納されるメモリ上のアドレスである。ルートパスとは、サブツリーのルートノード名である。例えばDeviceInfoツリーであればDeviceInfo、ApplicationInfoツリーであればApplicationInfoとなる。
図5:ステップS501:補足)
組込機器向けJavaプラットフォームであるOSGiでは、任意の文字列によるインスタンスの登録・検索機能であるServiceTrackerを設けているので、端末管理エージェント210と端末管理プラグイン220がOSGi上で動作するOSGiバンドルとして実装されている場合は、その機能を利用して本ステップを実施することができる。例えば、基本情報管理プログラム222は、自身に対応する命令を表す文字列としてDeviceInfoを指定し、自身のインスタンスをServiceTrackerに登録する。以後、端末管理エージェント210は、文字列「DeviceInfo」を指定することにより、基本情報管理プログラム222のインスタンスを検索し、その機能を呼び出すことができる。
【0029】
図5:ステップS502)
端末管理エージェント210は、端末管理プラグイン220内の対応するサブプログラムに対し、管理しているデータツリーを送信するよう要求する。
図5:ステップS503)
端末管理プラグイン220内のサブプログラムは、自身が管理するデータツリーを端末管理エージェント210に送信する。基本情報管理プログラム222はDeviceInfoツリーを送信し、アプリケーション管理プログラム221はApplicationInfoツリーを送信する。
図5:ステップS504)
端末管理エージェント210は、ステップS503で受信したデータツリーを端末側データツリー格納部230に格納する。
【0030】
図6は、端末管理サーバ100が管理対象端末200から稼動状態情報を記述したデータツリーを収集する処理を説明するシーケンス図である。以下、図6の各ステップについて説明する。
図6:ステップS601)
端末管理エージェント210は、データツリーを端末側データツリー格納部230から読み込む。このとき読み込む値は、ツリーのパスと値のペアである。図2に示したデータツリーを例にすると、パス/DeviceInfo/DeviceIDと値D00001、パス/DeviceInfo/Manufacturerと値CompanyA、パス/DeviceInfo/Modelと値SmartPhone、パス/ApplicationInfo/A001/AppIDと値A001、パス/DeviceInfo/Statusと値idle、パス/ApplicationInfo/A001/Versionと値1.0.1、パス/ApplicationInfo/A002/AppIDと値A002、パス/ApplicationInfo/A002/Statusと値active、/ApplicationInfo/A002/Versionと値2.2.0のペアが読み込まれる。
図6:ステップS602)
端末管理エージェント210は、ステップS601で読み込んだDeviceIDの値とデータツリーを、管理対象端末通信プログラム112に送信する。
図6:ステップS603)
管理対象端末通信プログラム112は、ステップS602で取得したDeviceIDの値とデータツリーを、データツリー操作プログラム121に送信する。以降、図7の処理に進む。
【0031】
図7は、データツリー操作プログラム121がデータツリーをサーバ側データツリー格納部140に格納する処理を説明するシーケンス図である。以下、図7の各ステップについて説明する。
図7:ステップS701)
データツリー操作プログラム121は、ステップS603で管理対象端末通信プログラム112から受け取ったデータツリーのルートパスを取得する。図2のデータツリーの場合、DeviceInfoノードとApplicationInfoノードを取得する。
図7:ステップS702)
データツリー操作プログラム121は、ステップS701で取得したルートパスに対応するサブツリー操作プログラム130内のサブプログラムを特定する。アプリケーションサーバ向けJavaプラットフォームであるJavaEE(Enterprise Edition)では、OSGiと同様に、任意の文字列を用いてインスタンスを登録・検索する機構であるJNDI(Java Naming and Directory Interface)を設けているので、これを用いてサブプログラムを特定することができる。例えば基本情報操作プログラム131は、文字列DeviceInfoによって特定し、そのインスタンスをJNDIに登録することができる。本ステップにおいては、サブツリー操作プログラム130として、基本情報操作プログラム131とアプリケーション情報操作プログラム132のインスタンスが取得される。
【0032】
図7:ステップS703)
データツリー操作プログラム121は、ステップS702で取得したサブツリー操作プログラム130内のサブプログラムに対し、DeviceIDと対応するサブツリーを送信する。具体的には、パス/DeviceInfo/DeviceIDと値D00001、パス/DeviceInfo/Manufacturerと値CompanyA、パス/DeviceInfo/Modelと値SmartPhoneのペアが、基本情報操作プログラム131に渡され、パス/ApplicationInfo/A001/AppIDと値A001、パス/DeviceInfo/Statusと値idle、パス/ApplicationInfo/A001/Versionと値1.0.1、パス/ApplicationInfo/A002/AppIDと値A002、パス/ApplicationInfo/A002/Statusと値ative、/ApplicationInfo/A002/Versionと値2.2.0のペアが、アプリケーション情報操作プログラム132に渡される。
図7:ステップS704)
サブツリー操作プログラム130内の各サブプログラムは、ステップS703で受け取ったDeviceIDとデータツリーを、サーバ側データツリー格納部140内の、自身の管理するテーブルに格納する。具体的には、基本情報操作プログラム131は、受け取ったパスと値のペアを基本情報管理テーブル141に格納しアプリケーション情報操作プログラム132は、アプリケーション情報テーブルに格納する。
【0033】
図8は、管理者が管理者端末300を用いて管理対象端末200のアプリケーション状態を参照する処理を説明するシーケンス図である。以下、図8の各ステップについて説明する。
図8:ステップS801)
端末操作プログラム310は、アプリケーション状態を参照する管理対象端末200のDeviceID、状態を参照するアプリケーションのAppID、アプリケーション状態が格納されるデータツリーのルートパスであるApplicationInfoを、管理者端末通信プログラム111に送信する。以降、DeviceIDをD00001、AppIDをA001として、説明する。
図8:ステップS802)
管理者端末通信プログラム111は、ステップS801で受信したDeviceIDと文字列ApplicationInfoを、データツリー操作プログラム121に送信する。データツリー操作プログラム121は、図9で説明する処理によって対応する属性値を検索し、検索結果を管理者端末通信プログラム111に返信する。図4に示すデータ例に拠れば、DeviceID=D00001、AppID=A001のレコードが、管理者端末通信プログラム111に返される。
【0034】
図8:ステップS803)
管理者端末通信プログラム111は、データツリー検操作プログラム121から受信したツリーデータを端末操作プログラム310に送信する。
図8:ステップS804)
端末操作プログラム310は、ステップS803で受信したツリーデータを管理者端末300上のディスプレイなどに表示する。具体的には、DeviceID=D00001、AppID=A001、Version=1.0.1、Status=idleが表示される。これにより管理者は、端末D00001のアプリケーションA001が停止状態にあることを知ることができる。
【0035】
図9は、データツリー操作プログラム121がデータツリー内から指定されたレコードを検索する処理を説明するシーケンス図である。以下、図9の各ステップについて説明する。
図9:ステップS901)
データツリー操作プログラム121は、データツリー操作プログラム121の呼び出し元(管理者端末通信プログラム111または管理対象端末通信プログラム112)から受け取ったルートパスに対応する、サブツリー操作プログラム130内のサブプログラムを特定する。ルートパスがApplicationInfoの場合、アプリケーション情報操作プログラム132が特定される。
図9:ステップS902)
データツリー操作プログラム121は、ステップS901で特定したサブツリー操作プログラム130内のサブプログラムに、検索条件を送信する。
【0036】
図9:ステップS903)
サブツリー操作プログラム130内のサブプログラムは、受信した検索条件にしたがって、サーバ側データツリー格納部140内の自身が管理するテーブルから該当するレコードを検索し、検索結果をデータツリー操作プログラム121に送信する。例えば検索条件が、DeviceID=D00001、AppID=A001であった場合、図4に示す1レコード目が取得される。
図9:ステップS904)
データツリー操作プログラム121は、ステップS903で取得した検索結果を、データツリー操作プログラム121の呼び出し元(管理者端末通信プログラム111または管理対象端末通信プログラム112)に返す。
【0037】
図10は、端末管理サーバ100が管理対象端末200に対して制御命令を発行する処理を説明するシーケンス図である。以下、図10の各ステップについて説明する。
図10:ステップS1001)
端末操作プログラム310は、制御命令の宛先である管理対象端末200のDeviceID、更新するデータツリーのパス、および更新後の値を、管理者端末通信プログラム111に送信する。例えば、端末D00001のアプリケーションA001を起動する場合は、データツリーのパスは/ApplicationInfo/A001/Status、値はativeとなる。
図10:ステップS1002)
管理者端末通信プログラム111は、ステップS1001で受信したDeviceID、データツリーのパス、値をコマンド操作プログラム122に送信する。
図10:ステップS1003)
コマンド操作プログラム122は、ステップS1002で受信したDeviceID、データツリーのパス、値をコマンド管理テーブル150に格納する。
【0038】
図11は、コマンド管理テーブル150の構成とデータ例を示す図である。管理対象端末200に対する制御命令は、稼動状態情報と同じツリー形式によって記述することができる。ステップS1001の例の場合、図11の1レコード目のように記述することができる。コマンド管理テーブル150に格納された制御命令は、図12で説明するシーケンスによって実行される。
【0039】
図12は、端末管理サーバ100が発行した制御命令を管理対象端末200が実行する処理を説明するシーケンス図である。以下、図12の各ステップについて説明する。
図12:ステップS1201)
端末管理エージェント210は、管理対象端末通信プログラム112に対して自身のDeviceIDを通知し、自身に対する制御命令が端末管理サーバ100から発行されているか否かを問い合わせる。
図12:ステップS1202)
管理対象端末通信プログラム112は、ステップS1201で受信したDeviceIDを、コマンド操作プログラム122に送信する。
【0040】
図12:ステップS1203)
コマンド操作プログラム122は、ステップS1202で受信したDeviceIDをコマンド管理テーブル150から検索し、検索結果を管理対象端末通信プログラム112に返す。DeviceID=D00001であれば、図11の1レコード目が管理対象端末通信プログラム112に返される。
図12:ステップS1204)
管理対象端末通信プログラム112は、ステップS1203で受信した検索結果を、端末管理エージェント210に送信する。
図12:ステップS1205)
端末管理エージェント210は、ステップS1204で受信したレコードが記述しているデータツリーのパスからルートパスを求め、対応する端末管理プラグイン220内のサブプログラムを特定し、データツリーのパスと値を渡す。DeviceID=D00001であれば、データツリーのパスは/ApplicationInfo/A001/Statusであり、ルートパスはApplicationInfoとなるため、アプリケーション管理プログラム221が選択され、パス/ApplicationInfo/A001/Status、値ativeが渡される。アプリケーション管理プログラム221は、渡されたパスと値が指定する制御命令にしたがって、アプリケーションA001を起動する。
【0041】
<実施の形態1:まとめ>
以上のように、本実施形態1に係る端末管理サーバ100は、管理対象端末200との間で使用する遠隔管理プロトコルが使用するツリー形式データのうち一部のノードの属性値を格納する管理テーブルを備える。さらに端末管理サーバ100は、各管理テーブルに対してデータを書き込み、またはデータを読み取る操作プログラムを、管理テーブル毎に備えている。これにより、RDBの検索性能を保ちつつ、ツリー形式データの拡張性を利用して端末管理を柔軟に実施することができる。
【0042】
<実施の形態2>
実施形態1では、サブツリー操作プログラム130内のサブプログラム、対応する管理テーブル、および端末管理プラグイン220内のサブプログラムを追加することにより、RDB形式のテーブルを利用しつつデータツリーを拡張できることを説明した。本発明の実施形態2では、その1例として、管理用端末200のファームウェア情報を管理項目として新たに追加した構成例を説明する。
【0043】
図13は、本実施形態2に係る端末管理システム1000の構成図である。管理対象端末200上においては、端末管理プラグイン220内のサブプログラムとして、ファームウェア管理プログラム223が追加されている。端末管理サーバ100上においては、サブツリー操作プログラム130内のサブプログラムとして、ファームウェア情報操作プログラム133が追加されている。サーバ側データツリー格納部140には、ファームウェア情報テーブル143が追加されている。
【0044】
端末管理システム1000はさらに、バイナリ管理サーバ400を有する。バイナリ管理サーバ400は、管理対象端末200にファームウェア管理プログラム223を配信するためのサーバである。端末管理エージェント210は、端末管理サーバ100が発行する制御命令にしたがって、バイナリ管理サーバ400からファームウェア管理プログラム223をダウンロードし、管理対象端末200上にインストールする。
【0045】
図14は、管理対象端末200のファームウェア情報を管理する機能を端末管理システム1000に追加する処理を説明するシーケンス図である。以下、図14の各ステップについて説明する。
図14:ステップS1401)
端末操作プログラム310は、管理者端末通信プログラム111に、ファームウェア情報操作プログラム133を送信する。
図14:ステップS1402)
管理者端末通信プログラム111は、ステップS1401で受信したファームウェア情報操作プログラム133を、端末管理サーバ100上で起動する。端末管理サーバ100のプラットフォームがJavaEEである場合、ファームウェア管理用のデータツリーのルートパスをあらわす文字列であるFarmwareInfoを指定して、ファームウェア情報操作プログラム133のインスタンスをJNDIに登録する。
【0046】
図14:ステップS1403)
ファームウェア情報操作プログラム133は、サーバ側データツリー格納部140に、ファームウェア情報管理テーブル143を生成する。ファームウェア情報管理テーブル143の構成については後述する。本ステップは、ファームウェア情報操作プログラム133に代えて、管理者などが手動で実施してもよい。
図14:ステップS1404)
端末操作プログラムは、ファームウェア管理プログラム223のバイナリを、バイナリ管理サーバ400にアップロードする。
【0047】
図14:ステップS1405)
端末管理サーバ100は、図10で説明したものと同様の手順を用いて、管理対象端末200に対して、ファームウェア管理プログラム223をインストールするよう支持する制御命令を発行する。
図14:ステップS1406)
端末管理エージェント210は、図12で説明したものと同様の手順を用いて、ステップS1405で発行された制御命令にしたがって、ファームウェア管理プログラム223を管理対象端末200にインストールする。
【0048】
図14:ステップS1407)
端末管理エージェント210は、図5で説明したものと同様の手順を用いて、ファームウェア管理プログラム223を端末管理エージェント210上に登録する。ファームウェア管理プログラム223は、管理対象端末200のファームウェア情報を取得してFarmwareInfoツリーを生成し、端末管理エージェント210を介して、端末側データツリー格納部230に格納する。
図14:ステップS1408)
端末管理サーバ100は、図6で説明したものと同様の手順を用いて、管理対象端末200のファームウェアに関するデータツリー(FarmwareInfoツリー)を収集してファームウェア情報管理テーブル143に格納する。
【0049】
以上のステップS1401からステップS1408までの処理により、端末管理システム1000にファームウェア管理機能が新たに追加される。以降、図10で説明した登録処理と図12で説明した実行処理によって、管理対象端末200に対して新たなファームウェアを配信し、その状態を管理することができる。
【0050】
図15は、ステップS1405において端末管理サーバ100が発行する制御命令を格納したコマンド管理テーブル150の構成を例示する図である。図15に示すデータ例において、ファームウェア管理プログラム223のAppIDはA003であり、/ApplicationInfo/A003/URL属性にはファームウェア管理プログラム223のダウンロード元URLとして133.108.xxx.xxx/Application/A003が指定され、/ApplicationInfo/A003/Status属性にはバイナリのダウンロードとインストール開始を指示するdownloadAndInstallが指定されている。
【0051】
端末管理エージェント210は、図15に例示するような制御命令にしたがって、ダウンロード元である133.108.xxx.xxx/Application/A003からファームウェア管理プログラム223をダウンロードし、管理対象端末200上にインストールする。
【0052】
図16は、FarmwareInfoツリーの1例を示す図である。FarmwareInfoツリーは、ファームウェア情報を保持する属性値として、FarmID、Version、ByteSizeを有する。
【0053】
図17は、ファームウェア情報管理テーブル143の構成とデータ例を示す図である。ファームウェア情報管理テーブル143は、FarmwareInfoサブツリーの値を格納するテーブルであり、同サブツリーが有する各属性値に対応するフィールドを有する。ただし、個々の管理対象端末200を識別するため、これらフィールドに加えてDeviceIDフィールドも備えている。
【0054】
<実施の形態2:まとめ>
以上のように、本実施形態2においては、管理対象端末200の管理対象項目を追加する例として、ファームウェア情報を管理する機能を例示した。本実施形態2で説明したように、追加する管理対象項目を記述するツリーノードに対応して、サブツリー操作プログラム130、対応する管理テーブル、および端末管理プラグインを追加することにより、端末管理システム1000に新たな機能を動的に追加することができる。これはツリー形式のデータフォーマットの利点を活かしたものであると同時に、RDBの検索性能を利用することができる点で、有用であると考えられる。
【符号の説明】
【0055】
100:端末管理サーバ、111:管理者端末通信プログラム、112:管理対象端末通信プログラム、121:データツリー操作プログラム、122:コマンド操作プログラム、130:サブツリー操作プログラム、140:サーバ側データツリー格納部、150:コマンド管理テーブル、200:管理対象端末、210:端末管理エージェント、220:端末管理プラグイン、230:端末側データツリー格納部、300:管理者端末、310:端末操作プログラム、端末管理システム1000。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17