(57)【特許請求の範囲】
【請求項１】
モバイル端末内に設けられた起動保全対象プログラムと、この起動保全対象プログラムを監視するヘルパープログラムと、モバイルＯＳのフレームワークとを備えたモバイル端末のプログラム起動保全システムであって、
上記起動保全対象プログラムは、一定間隔でハートビートを発信する手段を備え、
上記フレームワークは、このハートビートを上記ヘルパープログラムに伝達する手段と、
上記ヘルパープログラムからの要請に基づいて上記起動保全対象プログラムを再起動させる手段と、
上記ハートビートを伝達する時点で上記ヘルパープログラムが起動状態にない場合に、これを再起動させる手段とを備え、
上記ヘルパープログラムは、上記フレームワーク経由で上記ハートビートを受領する度に、内部タイマーをリセットして時間の経過を計測する手段と、
前のハートビートを受領してから一定の時間を経過しても次のハートビートの伝達がなされない場合に、上記フレームワークに対して起動保全対象プログラムの再起動を要請する手段とを備えたことを特徴とするモバイル端末のプログラム起動保全システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はモバイル端末のプログラム起動保全システムに係り、特に、モバイル端末上で強制終了等されたエージェントプログラム等を、短時間で再起動させる技術に関する。
【背景技術】
【０００２】
近年、PDA機能を備えた多機能携帯電話であるスマートフォンが広く普及し、それに伴い、企業が社員にスマートフォンを配布し、スケジュール管理や業務連絡、在庫確認、価格確認など、様々な業務に活用させる例が増加している（非特許文献１参照）。
【０００３】
このように、多数の社員がスマートフォンを携行し、これを通じて業務処理の一部を行うようになると、当然ながら置き忘れや盗難による情報流出の危険性が生じる。また、業務と無関係のアプリケーション（ゲーム等）を社員が勝手にインストールして勤務時間中にプレイしたり、私的な通信に利用したりする可能性も生じる。さらに、業務アプリケーションに更新が生じた場合に、全社員にその事実を告知し、所定の期限までに当該アプリケーションのバージョンアップを完了させることも容易ではなくなる。
【０００４】
このような事情に鑑み、現在、各種ベンダからMDM（Mobile Device Management）と称する管理ツールが提供されている（非特許文献２参照）。
このMDMを導入することにより、企業の情報管理部門は全社員のスマートフォンを一元的に管理可能となり、紛失や盗難時に特定のスマートフォンの機能を停止させること（リモートロック）や、機密情報を消去させること（リモートワイプ）、各社員の利用状況を監査すること、あるいはアプリケーションのバージョンを確認することなどが可能となる。
【非特許文献１】スマートフォンの本格普及は2011年、ビジネスシーンでの普及の鍵はMDMとセキュリティ  インターネットURL：http://www.sbbit.jp/article/cont1/20630  検索日：２０１１年９月１２日
【非特許文献２】Afaria  インターネットURL：http://www.ianywhere.jp/afaria/index.html  検索日：２０１１年９月１２日
【発明の開示】
【発明が解決しようとする課題】
【０００５】
既存のMDMシステムの場合、サーバ側に専用の管理プログラムを導入すると同時に、各モバイル端末側にも専用のエージェントプログラムを導入することにより、サーバと各モバイル端末が連携動作することを前提としている。
例えば、各モバイル端末に導入済みのアプリケーションプログラムを把握する必要がある場合、管理サーバから各モバイル端末内のエージェントプログラムに対して、導入済みアプリケーションプログラムの情報を返信することを指令する制御メッセージが送信される。これに対しエージェントプログラムは、モバイルＯＳのフレームワークを通じてこれらの情報を収集し、サーバに返信する処理を実行する。
【０００６】
このように、モバイル端末に対して何らかの処理を指令する際には、必ずエージェントプログラムが起動している必要があり、ユーザによる不正操作や誤操作、あるいはモバイルＯＳによるタスクキル処理等によってエージェントプログラムの機能が停止されていると、いくらサーバ側から指令を送っても無意味となるにもかかわらず、従来のMDMシステムにおいては、エージェントプログラムの起動状態を担保するような仕組みは用意されていなかった。
【０００７】
この発明は、このような現状に鑑みて案出されたものであり、モバイル端末側のエージェントプログラムが機能を停止した場合に、極短時間の中にこれを回復させ得る保全技術を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、この発明に係るモバイル端末のプログラム起動保全システムは、モバイル端末内に設けられた起動保全対象プログラムと、この起動保全対象プログラムを監視するヘルパープログラムと、モバイルＯＳのフレームワークとを備えたシステムであって、上記起動保全対象プログラムは、一定間隔でハートビートを発信する手段を備え、上記フレームワークは、このハートビートを上記ヘルパープログラムに伝達する手段と、上記ヘルパープログラムからの要請に基づいて上記起動保全対象プログラムを再起動させる手段と、上記ハートビートを伝達する時点で上記ヘルパープログラムが起動状態にない場合に、これを再起動させる手段とを備え、上記ヘルパープログラムは、上記フレームワーク経由で上記ハートビートを受領する度に、内部タイマーをリセットして時間の経過を計測する手段と、前のハートビートを受領してから一定の時間（上記ハートビートの発信間隔よりも長い所定の時間）を経過しても次のハートビートの伝達がなされない場合に、上記フレームワークに対して起動保全対象プログラムの再起動を要請する手段とを備えたことを特徴としている。
【発明の効果】
【０００９】
この発明に係るモバイル端末のプログラム起動保全システムによれば、起動保全対象プログラムの起動状態を、ハートビートが一定時間内に到達するか否かにより、ヘルパープログラムが常時監視しており、前のハートビート受領から一定時間を経過した場合には、フレームワークによって直ちに起動保全対象プログラムが再起動される。
また、ヘルパープログラムの機能が停止すると、エージェントプログラムの起動状態を監視することができなくなるが、この場合にはフレームワークによって即座にヘルパープログラムが再起動されるため、直ぐにヘルパープログラムによる起動保全プログラムに対する監視動作が再開される。
このように、エージェントプログラム及びヘルパープログラムの何れか一方がダウンした場合に、極短時間の中にこれを再起動させる仕組みを備えているため、MDMシステムのエージェントプログラムの起動状態を確保するためにこの発明を適用することにより、管理サーバによるモバイル端末の管理を実効性のあるものとすることができる。
【発明を実施するための最良の形態】
【００１０】
図１は、この発明に係るモバイル端末のプログラム起動保全システム10の機能構成を示すブロック図であり、このシステム10は、モバイル端末12内に設けられたエージェントプログラム14と、ヘルパープログラム16と、ＯＳフレームワーク18とから構成される。
モバイル端末12は、Android（登録商標）やWindows Phone（登録商標）等のモバイルＯＳを搭載したスマートフォンよりなる。
【００１１】
エージェントプログラム14の起動により、モバイル端末12には、制御メッセージ受信部20と、報告メッセージ送信部22と、ハートビート発信部24が生成される。
また、ヘルパープログラム16の起動により、モバイル端末12には、エージェント監視部26が生成される。
また、ＯＳフレームワーク18により、ハートビート伝達部28とプログラム起動部30が、モバイル端末12に提供される。
その他にモバイル端末12は、各種API関数によって生成される複数の処理実行部32を備えている。
【００１２】
モバイル端末12は、Wi-Fiルータ（図示省略）や通信キャリアの提供する３Ｇ回線網（図示省略）等を介してインターネット34に常時接続しており、このインターネット34を介して管理サーバ36と接続されている。
【００１３】
管理サーバ36は、制御メッセージ送信部38と、報告メッセージ受信部40と、報告メッセージ記憶部42とを備えている。
制御メッセージ送信部38及び報告メッセージ受信部40は、サーバコンピュータのCPUが、専用の管理プログラムに従って動作することにより、実現される。また、報告メッセージ記憶部42は、同コンピュータの外部記憶装置内に設けられている。
【００１４】
モバイル端末12のエージェントプログラム14は、管理サーバ36と協働して、様々な端末管理処理を実行する。
図２のフローチャートに従い、このエージェントプログラム14と管理サーバ36間における処理手順について説明する。
まず、特定のモバイル端末12に対して特定の処理の実行を指令する必要が生じた場合、管理サーバ36の制御メッセージ送信部38は、制御メッセージαを当該モバイル端末12に対して送信する（Ｓ10）。
【００１５】
この制御メッセージαは、XMPP（eXtensible Messaging and Presence Protocol）に準拠したものであり、XML（Extensible Markup Language）形式で記述されている。ここで「XMPP」とは、インスタントメッセンジャーがメッセージの交換やログイン状況の通知などに使うXMLベースのプロトコルを意味しており、このXMPPプロトコルを採用することにより、管理サーバ36は任意のモバイル端末12に対して制御メッセージαをプッシュ配信することが可能となる。
【００１６】
管理サーバ36は、以下の方法により、個々のモバイル端末12を識別している。
(1) モバイルOS自体が各モバイル端末12にユニークな端末識別IDを付与する機能を備えている場合には、当該端末識別IDをXMPPユーザIDとすることにより、管理サーバ36は個々のモバイル端末12を識別する。
(2) モバイルOSが各モバイル端末12にユニークな端末識別IDを付与する機能を備えていない場合には、管理者側で独自に定義したユニークな端末IDをXMPPユーザIDとすることにより、管理サーバ36は個々のモバイル端末12を識別する。この管理者側で独自に定義した端末IDは、各モバイル端末12にMDMエージェントプログラムをキッティングする際に入力される。
なお、端末IDの後ろにハッシュ値をつけてもよい。ハッシュ値をつけることで端末IDの推測が困難になるため、安全性を高めることができる。
【００１７】
上記の制御メッセージαを受信したモバイル端末12の制御メッセージ受信部20は、当該制御メッセージを解析し（Ｓ11）、メッセージの内容に適合した処理実行部32を起動させる（Ｓ12）。
例えば、制御メッセージの内容が「inventory収集」であった場合、制御メッセージ受信部20はインベントリ取得APIを呼び出し、インベントリ収集用の処理実行部32を起動させる。
【００１８】
このインベントリ収集用の処理実行部32は、モバイル端末12に関する各種端末情報（端末の機種名、ＯＳのバージョン、インストール済みアプリケーションプログラムの名称、バージョン等）を収集した後、報告メッセージ送信部22に渡す処理を実行する（Ｓ13）。
【００１９】
報告メッセージ送信部22は、処理実行部32から渡された端末情報を、報告メッセージβとして管理サーバ36に送信する（Ｓ14）。
この報告メッセージβもXML形式で記述されており、XMPPプロトコルに準拠した通信方式によって送信される。
【００２０】
この報告メッセージβを受け取った報告メッセージ受信部40は、これを端末管理IDに関連付けて報告メッセージ記憶部42に格納する（Ｓ15）。
【００２１】
以上のように、管理サーバ36からモバイル端末12に対して、制御メッセージαがXMPPプロトコルベースでプッシュ送信されるため、管理の必要性が生じた時点でリアルタイムに指令を発することが可能となる。
しかも、このXMPPは通信キャリアの３Ｇ回線網に依存する技術ではないため、Wi-Fiルータ経由で接続しているモバイル端末12に対しても、即座に指令を送信することができる利点を備えている。
【００２２】
上記においては、１台のモバイル端末12に対して制御メッセージを送信する例を示したが、管理サーバ36は、多数のモバイル端末12に対して同一のメッセージを同時に発することができることは言うまでもない。
【００２３】
モバイル端末12内で実行される具体的処理としては、上記のインベントリ収集以外にも、例えば以下のようなものがある。
(1) リモートロック：端末の画面をロックする処理。
(2) リモートパスワード解除：端末に設定されたパスワードを解除する処理。
(3) リモートワイプ：端末データを初期化する処理。
(4) リモートGPS情報取得：GPSによって端末の位置情報を取得し、サーバに返す（GPS機能がOFFの場合には、ネットワークの位置情報を取得し、サーバに返す）処理。
(5) ブックマーク設定：端末の標準ブラウザのブックマークに所定のブックマークを追加する処理。
(6) カメラ利用禁止：端末のカメラ機能を無効化する処理。
(7) USBアクセス禁止：USB接続による端末内データへのアクセスを無効化する処理。
(8) SDカードアクセス禁止：SDカードへのアクセスを無効化する処理。
(9) Wi-Fi接続先設定：端末のWi-Fi接続先を設定（更新）する処理。
【００２４】
このように、管理サーバ36による端末管理を実行するためには、各モバイル端末12においてエージェントプログラム14が常時起動している必要があり、ユーザによる意図的な終了操作やモバイルＯＳのタスクキル機能等によってエージェントプログラム14が停止されると、いくら管理サーバ36から制御メッセージを送信しても無意味となる。
このため、各モバイル端末12にヘルパープログラム16を導入し、エージェントプログラム14の起動状態を常時監視する機構を設けることが有効となる。
【００２５】
以下、図３のタイミングチャートに従い、このプログラム起動保全システム10の動作について説明する。
まず、エージェントプログラム14のハートビート発信部24は、３秒間隔でハートビートブロードキャスト（以下「ハートビート」）を発信させる（Ｔ01）。
ヘルパープログラム16のエージェント監視部26は、事前にハートビートの受領先としてＯＳフレームワーク18に登録されているため、エージェントプログラム14から発せられたハートビートは、ＯＳフレームワーク18のハートビート伝達部28を介して、エージェント監視部26に伝達される（Ｔ02）。
【００２６】
このハートビートを受け取ったエージェント監視部26は、内部タイマーを０秒にリセットし（Ｔ03）、時間計測を開始する。
そして、３秒以内に次のハートビートを受け取った場合（Ｔ05）、エージェント監視部26は上記と同様、内部タイマーを０秒にリセットし（Ｔ06）、新たに時間計測を開始する。  
【００２７】
ここで、何らかの理由によってエージェントプログラム14がダウンすると（Ｔ07）、当然ながらハートビート発信部24からのハートビートも途絶えることになる。
そして、前のハートビート受領から３.５秒を経過しても次のハートビートが届かない場合、エージェント監視部26はエージェントプログラム14がダウンしたものと判断し、ＯＳフレームワーク18に対してエージェントプログラム14の再起動を要請する（Ｔ08）。
【００２８】
これに対しプログラム起動部30は、直ちにエージェントプログラム14の再起動を試行する（Ｔ09）。
この結果、エージェントプログラム14が再起動されると（Ｔ10）、ハートビート発信部24によるハートビートの発信が再開され（Ｔ11）、ハートビート伝達部28経由でヘルパープログラム16に伝達される（Ｔ12）。
このハートビートを受け取ったエージェント監視部26は、内部タイマーを０秒にリセットし（Ｔ13）、時間計測を開始する。
【００２９】
一方、ヘルパープログラム16が何らかの理由によってダウンした場合（Ｔ17）、エージェントプログラム14から発信された次のハートビート（Ｔ18）をヘルパープログラム16に伝達しようとした時点で、ハートビート伝達部28は受け手であるヘルパープログラム16のダウンを検知し、直ちにプログラム起動部30を介してヘルパープログラム16の再起動を試行する（Ｔ19）。
【００３０】
この結果、ヘルパープログラム16が再起動されると（Ｔ20）、次のハートビートがハートビート伝達部28を経由してヘルパープログラム16に伝達される（Ｔ21、Ｔ22）。
そして、エージェント監視部26によるタイマーのリセットが実行され（Ｔ23）、エージェントプログラム14に対する監視処理が再開されることになる。
【００３１】
以上のように、この発明に係るモバイル端末のプログラム起動保全システム10によれば、エージェントプログラム14の起動状態を、ハートビートが一定時間内に到達するか否かにより、ヘルパープログラム16のエージェント監視部26が常時監視しており、前のハートビート受領から一定時間を経過した場合には、ＯＳフレームワーク18のプログラム起動部30を通じて、直ちにエージェントプログラム14が再起動される。
【００３２】
また、ヘルパープログラム16がダウンすると、エージェントプログラム14の起動状態を監視することができなくなるが、この場合にはＯＳフレームワーク18のプログラム起動部30を通じて即座にヘルパープログラム16が再起動されるため、直ぐにヘルパープログラム16による監視動作が再開される。
【００３３】
このように、エージェントプログラム14及びヘルパープログラム16の何れか一方がダウンした場合に、極短時間の中にこれを再起動させる仕組みを講じることにより、初めて管理サーバ36によるモバイル端末の管理を実効性のあるものとすることができる。
ただし、この発明に係るモバイル端末のプログラム起動保全システム10は、管理サーバ36との協同によるモバイル端末12の管理用途（MDM）に限定されるものではなく、何らかの目的のために特定のアプリケーションプログラムの起動状態を確保する必要がある場合に、広く適用可能である。
【図面の簡単な説明】
【００３４】
【図１】この発明に係るモバイル端末のプログラム起動保全システムの機能構成を示すブロック図である。
【図２】モバイル端末のエージェントプログラムと管理サーバ間における処理手順を示すフローチャートである。
【図３】この発明に係るモバイル端末のプログラム起動保全システムの動作を示すタイミングチャートである。
【符号の説明】
【００３５】
10   プログラム起動保全システム
12   モバイル端末
14   エージェントプログラム
16   ヘルパープログラム
18   ＯＳフレームワーク
20   制御メッセージ受信部
22   報告メッセージ送信部
24   ハートビート発信部
26   エージェント監視部
28   ハートビート伝達部
30   プログラム起動部
32   処理実行部
34   インターネット
36   管理サーバ
38   制御メッセージ送信部
40   報告メッセージ受信部
42   報告メッセージ記憶部
【図１】
0005630910.tif 000002
【図２】
0005630910.tif 000003
【図３】
0005630910.tif 000004