モバイル端末内に設けられた起動保全対象プログラムと、この起動保全対象プログラムを監視するヘルパープログラムと、モバイルOSのフレームワークとを備えたモバイル端末のプログラム起動保全システムであって、上記起動保全対象プログラムは、一定間隔でハートビートを発信する手段を備え、上記フレームワークは、このハートビートを上記ヘルパープログラムに伝達する手段と、上記ヘルパープログラムからの要請に基づいて上記起動保全対象プログラムを再起動させる手段と、上記ハートビートを伝達する時点で上記ヘルパープログラムが起動状態にない場合に、これを再起動させる手段とを備え、上記ヘルパープログラムは、上記フレームワーク経由で上記ハートビートを受領する度に、内部タイマーをリセットして時間の経過を計測する手段と、前のハートビートを受領してから一定の時間を経過しても次のハートビートの伝達がなされない場合に、上記フレームワークに対して起動保全対象プログラムの再起動を要請する手段とを備えたことを特徴とするモバイル端末のプログラム起動保全システム。既存のMDMシステムの場合、サーバ側に専用の管理プログラムを導入すると同時に、各モバイル端末側にも専用のエージェントプログラムを導入することにより、サーバと各モバイル端末が連携動作することを前提としている。例えば、各モバイル端末に導入済みのアプリケーションプログラムを把握する必要がある場合、管理サーバから各モバイル端末内のエージェントプログラムに対して、導入済みアプリケーションプログラムの情報を返信することを指令する制御メッセージが送信される。これに対しエージェントプログラムは、モバイルOSのフレームワークを通じてこれらの情報を収集し、サーバに返信する処理を実行する。このように、モバイル端末に対して何らかの処理を指令する際には、必ずエージェントプログラムが起動している必要があり、ユーザによる不正操作や誤操作、あるいはモバイルOSによるタスクキル処理等によってエージェントプログラムの機能が停止されていると、いくらサーバ側から指令を送っても無意味となるにもかかわらず、従来のMDMシステムにおいては、エージェントプログラムの起動状態を担保するような仕組みは用意されていなかった。この発明は、このような現状に鑑みて案出されたものであり、モバイル端末側のエージェントプログラムが機能を停止した場合に、極短時間の中にこれを回復させ得る保全技術を提供することを目的としている。上記の目的を達成するため、この発明に係るモバイル端末のプログラム起動保全システムは、モバイル端末内に設けられた起動保全対象プログラムと、この起動保全対象プログラムを監視するヘルパープログラムと、モバイルOSのフレームワークとを備えたシステムであって、上記起動保全対象プログラムは、一定間隔でハートビートを発信する手段を備え、上記フレームワークは、このハートビートを上記ヘルパープログラムに伝達する手段と、上記ヘルパープログラムからの要請に基づいて上記起動保全対象プログラムを再起動させる手段と、上記ハートビートを伝達する時点で上記ヘルパープログラムが起動状態にない場合に、これを再起動させる手段とを備え、上記ヘルパープログラムは、上記フレームワーク経由で上記ハートビートを受領する度に、内部タイマーをリセットして時間の経過を計測する手段と、前のハートビートを受領してから一定の時間上記ハートビートの発信間隔よりも長い所定の時間を経過しても次のハートビートの伝達がなされない場合に、上記フレームワークに対して起動保全対象プログラムの再起動を要請する手段とを備えたことを特徴としている。この発明に係るモバイル端末のプログラム起動保全システムによれば、起動保全対象プログラムの起動状態を、ハートビートが一定時間内に到達するか否かにより、ヘルパープログラムが常時監視しており、前のハートビート受領から一定時間を経過した場合には、フレームワークによって直ちに起動保全対象プログラムが再起動される。また、ヘルパープログラムの機能が停止すると、エージェントプログラムの起動状態を監視することができなくなるが、この場合にはフレームワークによって即座にヘルパープログラムが再起動されるため、直ぐにヘルパープログラムによる起動保全プログラムに対する監視動作が再開される。このように、エージェントプログラム及びヘルパープログラムの何れか一方がダウンした場合に、極短時間の中にこれを再起動させる仕組みを備えているため、MDMシステムのエージェントプログラムの起動状態を確保するためにこの発明を適用することにより、管理サーバによるモバイル端末の管理を実効性のあるものとすることができる。図1は、この発明に係るモバイル端末のプログラム起動保全システム10の機能構成を示すブロック図であり、このシステム10は、モバイル端末12内に設けられたエージェントプログラム14と、ヘルパープログラム16と、OSフレームワーク18とから構成される。モバイル端末12は、Android登録商標やWindowsPhone登録商標等のモバイルOSを搭載したスマートフォンよりなる。エージェントプログラム14の起動により、モバイル端末12には、制御メッセージ受信部20と、報告メッセージ送信部22と、ハートビート発信部24が生成される。また、ヘルパープログラム16の起動により、モバイル端末12には、エージェント監視部26が生成される。また、OSフレームワーク18により、ハートビート伝達部28とプログラム起動部30が、モバイル端末12に提供される。その他にモバイル端末12は、各種API関数によって生成される複数の処理実行部32を備えている。モバイル端末12は、WiFiルータ図示省略や通信キャリアの提供する3G回線網図示省略等を介してインターネット34に常時接続しており、このインターネット34を介して管理サーバ36と接続されている。管理サーバ36は、制御メッセージ送信部38と、報告メッセージ受信部40と、報告メッセージ記憶部42とを備えている。制御メッセージ送信部38及び報告メッセージ受信部40は、サーバコンピュータのCPUが、専用の管理プログラムに従って動作することにより、実現される。また、報告メッセージ記憶部42は、同コンピュータの外部記憶装置内に設けられている。モバイル端末12のエージェントプログラム14は、管理サーバ36と協働して、様々な端末管理処理を実行する。図2のフローチャートに従い、このエージェントプログラム14と管理サーバ36間における処理手順について説明する。まず、特定のモバイル端末12に対して特定の処理の実行を指令する必要が生じた場合、管理サーバ36の制御メッセージ送信部38は、制御メッセージαを当該モバイル端末12に対して送信するS10。この制御メッセージαは、XMPPeXtensibleMessagingandPresenceProtocolに準拠したものであり、XMLExtensibleMarkupLanguage形式で記述されている。ここでXMPPとは、インスタントメッセンジャーがメッセージの交換やログイン状況の通知などに使うXMLベースのプロトコルを意味しており、このXMPPプロトコルを採用することにより、管理サーバ36は任意のモバイル端末12に対して制御メッセージαをプッシュ配信することが可能となる。管理サーバ36は、以下の方法により、個々のモバイル端末12を識別している。モバイルOS自体が各モバイル端末12にユニークな端末識別IDを付与する機能を備えている場合には、当該端末識別IDをXMPPユーザIDとすることにより、管理サーバ36は個々のモバイル端末12を識別する。モバイルOSが各モバイル端末12にユニークな端末識別IDを付与する機能を備えていない場合には、管理者側で独自に定義したユニークな端末IDをXMPPユーザIDとすることにより、管理サーバ36は個々のモバイル端末12を識別する。この管理者側で独自に定義した端末IDは、各モバイル端末12にMDMエージェントプログラムをキッティングする際に入力される。なお、端末IDの後ろにハッシュ値をつけてもよい。ハッシュ値をつけることで端末IDの推測が困難になるため、安全性を高めることができる。上記の制御メッセージαを受信したモバイル端末12の制御メッセージ受信部20は、当該制御メッセージを解析しS11、メッセージの内容に適合した処理実行部32を起動させるS12。例えば、制御メッセージの内容がinventory収集であった場合、制御メッセージ受信部20はインベントリ取得APIを呼び出し、インベントリ収集用の処理実行部32を起動させる。このインベントリ収集用の処理実行部32は、モバイル端末12に関する各種端末情報端末の機種名、OSのバージョン、インストール済みアプリケーションプログラムの名称、バージョン等を収集した後、報告メッセージ送信部22に渡す処理を実行するS13。報告メッセージ送信部22は、処理実行部32から渡された端末情報を、報告メッセージβとして管理サーバ36に送信するS14。この報告メッセージβもXML形式で記述されており、XMPPプロトコルに準拠した通信方式によって送信される。この報告メッセージβを受け取った報告メッセージ受信部40は、これを端末管理IDに関連付けて報告メッセージ記憶部42に格納するS15。以上のように、管理サーバ36からモバイル端末12に対して、制御メッセージαがXMPPプロトコルベースでプッシュ送信されるため、管理の必要性が生じた時点でリアルタイムに指令を発することが可能となる。しかも、このXMPPは通信キャリアの3G回線網に依存する技術ではないため、WiFiルータ経由で接続しているモバイル端末12に対しても、即座に指令を送信することができる利点を備えている。上記においては、1台のモバイル端末12に対して制御メッセージを送信する例を示したが、管理サーバ36は、多数のモバイル端末12に対して同一のメッセージを同時に発することができることは言うまでもない。モバイル端末12内で実行される具体的処理としては、上記のインベントリ収集以外にも、例えば以下のようなものがある。リモートロック:端末の画面をロックする処理。リモートパスワード解除:端末に設定されたパスワードを解除する処理。リモートワイプ:端末データを初期化する処理。リモートGPS情報取得:GPSによって端末の位置情報を取得し、サーバに返すGPS機能がOFFの場合には、ネットワークの位置情報を取得し、サーバに返す処理。ブックマーク設定:端末の標準ブラウザのブックマークに所定のブックマークを追加する処理。カメラ利用禁止:端末のカメラ機能を無効化する処理。USBアクセス禁止:USB接続による端末内データへのアクセスを無効化する処理。SDカードアクセス禁止:SDカードへのアクセスを無効化する処理。WiFi接続先設定:端末のWiFi接続先を設定更新する処理。このように、管理サーバ36による端末管理を実行するためには、各モバイル端末12においてエージェントプログラム14が常時起動している必要があり、ユーザによる意図的な終了操作やモバイルOSのタスクキル機能等によってエージェントプログラム14が停止されると、いくら管理サーバ36から制御メッセージを送信しても無意味となる。このため、各モバイル端末12にヘルパープログラム16を導入し、エージェントプログラム14の起動状態を常時監視する機構を設けることが有効となる。以下、図3のタイミングチャートに従い、このプログラム起動保全システム10の動作について説明する。まず、エージェントプログラム14のハートビート発信部24は、3秒間隔でハートビートブロードキャスト以下ハートビートを発信させるT01。ヘルパープログラム16のエージェント監視部26は、事前にハートビートの受領先としてOSフレームワーク18に登録されているため、エージェントプログラム14から発せられたハートビートは、OSフレームワーク18のハートビート伝達部28を介して、エージェント監視部26に伝達されるT02。このハートビートを受け取ったエージェント監視部26は、内部タイマーを0秒にリセットしT03、時間計測を開始する。そして、3秒以内に次のハートビートを受け取った場合T05、エージェント監視部26は上記と同様、内部タイマーを0秒にリセットしT06、新たに時間計測を開始する。ここで、何らかの理由によってエージェントプログラム14がダウンするとT07、当然ながらハートビート発信部24からのハートビートも途絶えることになる。そして、前のハートビート受領から35秒を経過しても次のハートビートが届かない場合、エージェント監視部26はエージェントプログラム14がダウンしたものと判断し、OSフレームワーク18に対してエージェントプログラム14の再起動を要請するT08。これに対しプログラム起動部30は、直ちにエージェントプログラム14の再起動を試行するT09。この結果、エージェントプログラム14が再起動されるとT10、ハートビート発信部24によるハートビートの発信が再開されT11、ハートビート伝達部28経由でヘルパープログラム16に伝達されるT12。このハートビートを受け取ったエージェント監視部26は、内部タイマーを0秒にリセットしT13、時間計測を開始する。一方、ヘルパープログラム16が何らかの理由によってダウンした場合T17、エージェントプログラム14から発信された次のハートビートT18をヘルパープログラム16に伝達しようとした時点で、ハートビート伝達部28は受け手であるヘルパープログラム16のダウンを検知し、直ちにプログラム起動部30を介してヘルパープログラム16の再起動を試行するT19。この結果、ヘルパープログラム16が再起動されるとT20、次のハートビートがハートビート伝達部28を経由してヘルパープログラム16に伝達されるT21、T22。そして、エージェント監視部26によるタイマーのリセットが実行されT23、エージェントプログラム14に対する監視処理が再開されることになる。以上のように、この発明に係るモバイル端末のプログラム起動保全システム10によれば、エージェントプログラム14の起動状態を、ハートビートが一定時間内に到達するか否かにより、ヘルパープログラム16のエージェント監視部26が常時監視しており、前のハートビート受領から一定時間を経過した場合には、OSフレームワーク18のプログラム起動部30を通じて、直ちにエージェントプログラム14が再起動される。また、ヘルパープログラム16がダウンすると、エージェントプログラム14の起動状態を監視することができなくなるが、この場合にはOSフレームワーク18のプログラム起動部30を通じて即座にヘルパープログラム16が再起動されるため、直ぐにヘルパープログラム16による監視動作が再開される。このように、エージェントプログラム14及びヘルパープログラム16の何れか一方がダウンした場合に、極短時間の中にこれを再起動させる仕組みを講じることにより、初めて管理サーバ36によるモバイル端末の管理を実効性のあるものとすることができる。ただし、この発明に係るモバイル端末のプログラム起動保全システム10は、管理サーバ36との協同によるモバイル端末12の管理用途MDMに限定されるものではなく、何らかの目的のために特定のアプリケーションプログラムの起動状態を確保する必要がある場合に、広く適用可能である。