(57)【特許請求の範囲】
【請求項１】
プログラムを書き換え可能に保持する記憶媒体と、
前記記憶媒体に保持されたプログラムを処理する処理手段と、
を有し、前記記憶媒体は、
バージョンアップ用の新規プログラムを格納する第１領域と、
通常実行用の通常プログラムを格納する第２領域と、
復旧用プログラムを格納する第３領域とを含み、
前記処理手段は、起動時に、前記第１領域を参照して新規プログラムが存在するか否かを判断し、存在するときに、当該新規プログラムを第２領域の通常プログラムに上書きして前記第１領域の当該新規プログラムを削除する第１手順と、
前記第２領域に格納されている通常プログラムを起動する第２手順と、
前記起動した通常プログラムの動作状態を確認する第３手順と、
前記動作状態が動作不良である場合に、再起動に先立ち、前記第３領域に格納されている復旧用プログラムを前記第１領域に前記新規プログラムとして複写する第４手順と、
を実行することを特徴とするプログラム処理装置。
【請求項２】
記憶媒体を備えたプログラム処理装置におけるプログラムバージョンアップ方法であって、
当該プログラム処理装置の起動時に、新規プログラムが前記記憶媒体の第１領域に存在するか否かを判断し、存在するときに、当該新規プログラムを前記記憶媒体の第２領域に格納される通常実行されるプログラムに上書きして前記新規プログラムを削除する工程と、
通常実行されるプログラムを起動する工程と、
前記起動したプログラムの動作状態を確認する工程と、
前記動作状態が動作不良である場合に、再起動に先立ち、事前に前記記憶媒体の第３領域に格納された復旧用プログラムを前記記憶媒体の前記第１領域に前記新規プログラムとして複写する工程と、
を含むことを特徴とするプログラム処理装置におけるプログラムバージョンアップ方法。
【請求項３】
コンピュータに、その起動時に、新規プログラムが記憶媒体の第１領域に存在するか否かを判断させ、存在するときに、当該新規プログラムを前記記憶媒体の第２領域に格納される通常実行されるプログラムに上書きして前記新規プログラムを削除させ、通常実行されるプログラムを起動させ、前記起動したプログラムの動作状態を確認させ、前記動作状態が動作不良である場合に、再起動に先立ち、事前に前記記憶媒体の第３領域に格納された復旧用プログラムを前記記憶媒体の前記第１領域に前記新規プログラムとして複写させることを特徴とするプログラムバージョンアップ用プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータを利用したプログラム処理装置及びそれにおけるプログラムのバージョンアップ方法に係り、特に信頼性の向上に関する。
【０００２】
【従来の技術】
近年、コンピュータを利用した機器が普及し、そのコンピュータの処理内容も徐々に高度になりつつある。このコンピュータは一般にＲＯＭ（Read Only Memory）やハードディスクなどの記憶媒体に格納されたプログラムを読み込んで実行する。しかしプログラムは人為的要因等により誤りが含まれる場合があり、また機器のユーザの要望に応えて新たな機能を追加したい場合がある。こうした場合に、新規のプログラムを導入して、誤りを排除し、新規機能を実現する、いわゆるバージョンアップ方法が種々知られている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来から知られているバージョンアップ方法によると、当該新規プログラム自体に誤りが含まれている場合に、機器の動作が不安定になり、信頼性が維持できないという問題点があった。
【０００４】
従って、例えば電話によるサポート業務を行うセンタで利用されるような、電話の通話内容を録音する装置においてはその信頼性の観点からバージョンアップが困難であった。
【０００５】
本発明は上記実情に鑑みて為されたもので、バージョンアップにより導入される新規プログラムに誤りが含まれている場合にも機器動作を安定にでき、信頼性を向上できるプログラム処理装置及びそれにおけるプログラムバージョンアップ方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明は、プログラムを書き換え可能に保持する記憶媒体と、前記記憶媒体に保持されたプログラムを処理する処理手段と、を有するプログラム処理装置において、前記記憶媒体は、バージョンアップ用の新規プログラムを格納する第１領域と、通常実行用の通常プログラムを格納する第２領域と、復旧用プログラムを格納する第３領域とを含み、前記処理手段は、起動時に、前記第１領域を参照して新規プログラムが存在するか否かを判断し、存在するときに、当該新規プログラムを第２領域の通常プログラムに上書きして前記第１領域を削除する第１手順と、第２領域に格納されている通常プログラムを起動する第２手順と、前記起動した通常プログラムの動作状態を確認する第３手順と、前記動作状態が動作不良である場合に、再起動に先立ち、前記第３領域に格納されている復旧用プログラムを前記第１領域に前記新規プログラムとして複写して再起動する第４手順と、を実行することを特徴としている。なお、本発明のある態様では、前記バージョンアップ用の新規プログラムは外部装置から導入される。
【０００８】
また、本発明は、記憶媒体を備えたプログラム処理装置におけるプログラムバージョンアップ方法であって、当該プログラム処理装置の起動時に、新規プログラムが前記記憶媒体の第１領域に存在するか否かを判断し、存在するときに、当該新規プログラムを前記記憶媒体の第２領域に格納される通常実行されるプログラムに上書きして前記新規プログラムを削除する工程と、通常実行されるプログラムを起動する工程と、前記起動したプログラムの動作状態を確認する工程と、前記動作状態が動作不良である場合に、再起動に先立ち、事前に前記記憶媒体の第３領域に格納された復旧用プログラムを前記記憶媒体の前記第１領域に前記新規プログラムとして複写する工程とを含む。
【０００９】
さらに、本発明は、コンピュータによって実行されるプログラムバージョンアップ用のプログラムであって、コンピュータに、その起動時に、新規プログラムが記憶媒体の第１領域に存在するか否かを判断させ、存在するときに、当該新規プログラムを前記記憶媒体の第２領域に格納される通常実行されるプログラムに上書きして前記新規プログラムを削除させ、通常実行されるプログラムを起動させ、前記起動したプログラムの動作状態を確認させ、前記動作状態が動作不良である場合に、再起動に先立ち、事前に前記記憶媒体の第３領域に格納された復旧用プログラムを前記記憶媒体の前記第１領域に前記新規プログラムとして複写させる。
【００１０】
【発明の実施の形態】
本発明の実施の形態について図面を参照しながら説明する。尚、以下の説明においては、プログラム処理装置として電話の通話内容を録音する装置（電話録音装置）を例として説明するが、本発明自体は、ソフトウエアを実行するプログラム処理装置としてのコンピュータが利用されている機器であれば、いかなるものに対しても適用できる。
【００１１】
図１は、本実施の形態に係るプログラム処理装置としての電話録音装置を含む電話録音システムの構成ブロック図である。すなわち、本実施の形態に係る電話録音システムは、図１に示すように、電話回線に接続された複数の電話録音装置１と、電話録音装置１に第１のＬＡＮ（Local Area Network）を介して接続されたコールロガーＰＣ２と、このコールロガーＰＣ２に第２のＬＡＮを介して接続された少なくとも１つのコールプレーヤＰＣ３とから基本的に構成されている。
【００１２】
また電話録音装置１は、図２に示すように、ＥＥＰＲＯＭ１１と、ＣＰＵ１２と、ネットワークインタフェース１３と、ＲＯＭ１４と、Ａ／Ｄ変換ボード群１５と、バッファメモリ１６とから基本的に構成されている。尚、本来であれば、通常のコンピュータとしてタイマなどの計時手段が含まれているのが全体の構成であるが、ここではそれらを省略して図示している。
【００１３】
電話録音装置１のＥＥＰＲＯＭ１１は、本発明の記憶媒体に相当するもので、ＣＰＵ１２によって実行されるプログラム（通常プログラム）と、工場出荷時に設定されたプログラム（出荷時プログラム）とを格納している。また、このＥＥＰＲＯＭ１１は、ＣＰＵ１２から入力される新規プログラムを別途保持する。
【００１４】
ＣＰＵ１２は、本発明の処理手段に相当するもので、ＥＥＰＲＯＭ１１に格納されているプログラムを実行する。尚、ＣＰＵ１２は、例えばＷｉｎｄｏｗｓ（登録商標）ＣＥのようにマルチタスク実行可能なオペレーティングシステムに基づいてプログラムの起動・終了等の各種処理を行っているのが一般的であるが、ここでは説明のために、このような管理用プログラムの動作についての詳細な説明を省略する。ＣＰＵ１２は、バージョンアップ用の新規プログラムを受け付ける処理（受付処理）と、プログラムを起動する処理（起動処理）と、プログラムに従って通話を録音する処理（通常処理）と、プログラムの実行状態を監視する処理（監視処理）とを基本的に遂行する。これらのＣＰＵ１２の各処理については後に詳しく述べる。
【００１５】
ネットワークインタフェース１３は、第１のＬＡＮに接続され、この第１のＬＡＮを介してコールロガーＰＣ２からＣＰＵ１２に対して送信されるデータを受け入れてＣＰＵ１２に出力し、ＣＰＵ１２からの指示に従って、コールロガーＰＣ２に対してデータを送信する。ＲＯＭ１４は、電話録音装置１の起動時に実行されるＣＰＵ１２のスタートアップのプログラムを格納しているもので、特に上記管理プログラムの読み込み処理を行うプログラムを保持している。
【００１６】
Ａ／Ｄ変換ボード群１５は、複数のＡ／Ｄ変換ボードからなり、各Ａ／Ｄ変換ボードは、電話回線側から入力される音声信号をディジタル信号に変換して、ＣＰＵ１２に出力する。バッファメモリ１６は、例えばフラッシュＲＯＭなどであり、ＣＰＵ１２から入力される指示により、ディジタル信号に変換された音声信号を蓄積する。
【００１７】
ここで、ＣＰＵ１２の各処理について詳しく説明する。まず、通常処理におけるプログラムの動作について説明する。通常処理用のプログラム（通常プログラムと呼ぶ）は、管理用のプログラムから起動され、起動から所定時間以内に事前に定められたシグナルを発行する。このシグナルは例えばＯＳにて実装されている、プログラム同士のメッセージのやり取りや、所定のネットワークプロトコルによる、プログラム同士の通信が考えられる。或いは、特定の名称が付けられたファイルであることが考えられる。具体的に当該通常プログラムは例えば初期設定処理が完了した時点で、ログファイルを生成することとすれば、ＣＰＵ１２が、所定時間が経過した後に、このログファイルの存在を確認して通常プログラムの動作状態を調べることができるようになる。この動作状態の確認については、後に監視処理において説明する。
【００１８】
ＣＰＵ１２は、通常プログラムが正常に実行されている状態では、それに従って、Ａ／Ｄ変換ボード群１５から入力されるディジタルの音声信号を符号化して、符号化データとしてバッファメモリ１６に格納する。そして、電話回線が切断されると、当該バッファメモリ１６に格納した符号化データをコールロガーＰＣ２に第１ＬＡＮを介して転送する。
【００１９】
［受付処理］
次にＣＰＵ１２の受付処理について説明する。ＣＰＵ１２は、コールロガーＰＣ２から第１のＬＡＮを介して受信される新規プログラムを受け付けてＥＥＰＲＯＭ１１の所定領域（第１領域と呼ぶ）に蓄積する。ここで「領域」というのは、ＥＥＰＲＯＭ１１のアドレスの所定範囲のみならず、事前に定められたファイル名（例えば「prog0」）に蓄積することをも指している。
【００２０】
［起動処理・監視処理］
またＣＰＵ１２は、装置の起動時に図３に示すようなプログラムの起動処理を行う。すなわちＣＰＵ１２は、ＥＥＰＲＯＭ１１の第１領域を参照し、新規プログラムが格納されているか否かを調べる（Ｓ１）。ここで、新規プログラムが格納されていなければ（Ｎｏならば）、実行対象となる通常プログラムが格納されている領域（第２領域）に通常プログラム（例えば「prog1」とする）が格納されているか否かを調べ（Ｓ２）、格納されていれば（Ｙｅｓならば）、当該通常プログラムを起動する（Ｓ３）。そしてＣＰＵ１２は、監視処理を開始し、図示しないタイマを起動して、事前に定められた所定時間が経過するまで待機し、その間に処理Ｓ３において起動した通常プログラムがシグナルを発行したか否か（例えばログファイルなどの所定ファイルを生成したか否か）を調べる（Ｓ４）。そして、シグナルの発行が所定時間内にされたときには（Ｙｅｓならば）、そのまま起動処理を終了し、ＣＰＵ１２では、通常プログラムの実行が続けられる。ここで、監視処理としての処理Ｓ４は、このフローチャートに一体的に図示されているが、管理プログラムとして実装されるのみならず、常駐して動作する監視用プログラムとして実装されていてもよい。
【００２１】
一方、処理Ｓ１において新規プログラムが格納されていれば（Ｙｅｓならば）、この新規プログラムを第２領域に上書きして複写するとともに、当該新規プログラムを削除し（prog0をprog1にリネームする等の動作も含む）（Ｓ５）、処理Ｓ３に移行する。また、処理Ｓ２において通常プログラムが格納されていないときには（Ｎｏのときには）、ＥＥＰＲＯＭ１１の所定格納領域（第３領域）から出荷時プログラム（例えば「progX」とする）を読み出して、第２領域に複写し（「progX」を「prog1」としてコピーし）（Ｓ６）、処理Ｓ３に移行する。
【００２２】
さらに、ＣＰＵ１２は、その監視処理としての処理Ｓ４において、所定時間内にシグナルの発行がされないと判断したときには（Ｎｏならば）、ＥＥＰＲＯＭ１１の所定格納領域（第３領域）から出荷時プログラム（progX）を読み出して、第１領域に複写し（「progX」を「prog0」としてコピーし）（Ｓ７）、装置の再起動を行って（Ｓ８）、処理を終了する。尚、ここでは再起動をプログラム的に行うこととしているが、手動で行うこととしてもよい。その場合には、処理Ｓ８は必ずしも必要ではない。この場合には、当該実行中の通常プログラムを強制的に終了させる。
【００２３】
本実施の形態において特徴的なことは、この処理Ｓ７によって出荷時のプログラムが新規プログラムとして保持され、再起動後に処理Ｓ１〜Ｓ２によって通常プログラムとして再度読み込まれて実行開始されることである。
【００２４】
コールロガーＰＣ２は、その通常の動作として、電話録音装置１から受信した符号化データを蓄積し、第２のＬＡＮを介してコールプレーヤＰＣ３から受信される指示に従って当該符号化データを指示の送信元のコールプレーヤＰＣ３に送信する。また、このコールロガーＰＣ２は、別途頒布されるＣＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体から新規プログラムを読み出して、第１のＬＡＮを介して複数の電話録音装置１に対し、一斉に、または順次、当該新規プログラムを送信する。コールプレーヤＰＣ３は、コールロガーＰＣ２に対し、コールロガーＰＣ２に蓄積されている符号化データを選択的に送信する指示を出力し、この指示に基づいて受信した符号化データを音声信号に復号化して再生する。
【００２５】
次に、本実施の形態に係るプログラム処理装置としての電話録音装置１のバージョンアップ時の動作について説明する。コールロガーＰＣ２にて読み込まれたバージョンアップ用の新規プログラムは、電話録音装置１に対し、第１ＬＡＮを介して送信され、そのＥＥＰＲＯＭ１１の第１領域に「prog0」として格納される。電話録音装置１は、次の起動時に、この「prog0」の存在を検出して、異常動作した「prog1」を削除してから、「prog0」を「prog1」にリネームし、当該リネーム後の「prog1」を起動する。この「prog1」には、起動から所定時間以内にシグナルを発生させるルーチンが含まれているので、正常に動作していれば、当該シグナルが発行され、ＣＰＵ１２がこのシグナルを認識して正常に動作しているとして、バージョンアップが完了する。
【００２６】
一方、正常に動作していないと（「prog0」にバグが含まれていると）、リネーム後の「prog1」の起動後、所定時間内にシグナルを検出できず、異常が発生していることが検出される。この場合、ＣＰＵ１２は、当該「prog1」の実行を強制終了するとともに、次回から正常に起動できるように、工場出荷時のプログラム「progX」を「prog1」として、異常のある現在の「prog1」に上書きしてコピーする。
【００２７】
これにより、次回の起動時に、当該「prog1」（すなわち、工場出荷時の「progX」に相当するもの）が実行されて正常に動作するようになる。
【００２８】
尚、ここまでの説明では、電話録音装置の場合を例として説明したが、本発明のプログラム処理装置は、一般のマルチタスク型ＯＳの処理として実装でき、その応用範囲は上記の例に留まらない。
【００２９】
本実施例では、ＯＳにＷｉｎｄｏｗｓ（登録商標）ＣＥが使用されることを前提に説明した。この場合、動作中のプログラムファイルに別のファイルを上書きしようとすると、ＯＳはこれを禁じているため、ファイルのコピー動作が中断されてしまう。このため、プログラム起動前にバージョンアップ動作が必要か否かを確認し、ファイルをリネームするための「prog0」領域の存在が必要であった。しかし、動作中のプログラムファイルの上書きを許すようなＯＳであれば、直接「prog1」に「progX」を上書きすることが可能になる。この場合、「prog0」の存在及びリネーム処理は不要となる。
【００３０】
【発明の効果】
本発明によれば、記録媒体内に、起動後の所定時間内に所定のシグナルを発生するよう記述されたプログラムを書き換え可能に保持し、処理手段がこの記憶媒体に保持されたプログラムを処理するとともに、当該プログラムを起動してから所定時間内にシグナルを検出しないときに、当該プログラムを強制的に終了させるプログラム処理装置としているので、バージョンアップ時などに障碍が発生しても機器の動作を安定にすることができ、信頼性を向上できる。
【００３１】
また、本発明によれば、起動対象のプログラムが起動後所定時間内にシグナルを発行しない場合に、当該プログラムに代えて、出荷時のプログラムをバージョンアッププログラムとして導入し、次回の起動時に当該出荷時のプログラムを実行するプログラム処理装置としているので、バージョンアップ時などに障碍が発生しても機器の動作を安定にすることができ、信頼性を向上できる。
【図面の簡単な説明】
【図１】  本発明の実施の形態に係るプログラム処理装置としての電話録音装置を含む電話録音システムの構成ブロック図である。
【図２】  電話録音装置１の構成ブロック図である。
【図３】  ＣＰＵ１２の起動処理及び監視処理の一例を表すフローチャート図である。
【符号の説明】
１  電話録音装置、２  コールロガーＰＣ、３  コールプレーヤＰＣ、１１  ＥＥＰＲＯＭ、１２  ＣＰＵ、１３  ネットワークインタフェース、１４  ＲＯＭ、１５  Ａ／Ｄ変換ボード群、１６  バッファメモリ。
【図１】
0004120180.tif 000002
【図２】
0004120180.tif 000003
【図３】
0004120180.tif 000004