(57)【要約】【課題】計測機器に汎用のインタプリタを搭載して機種固有のＡＰＩを提供し、メーカあるいはユーザが追加機能を手軽に作成できるようにすると共に容易かつ安全に実行できるようにした、ソフトウェアの機能追加方法を提供する。【解決手段】内蔵のアプリケーションプログラムを実行する計測機器におけるソフトウェアの機能追加方法であって、前記計測機器に機種固有のＡＰＩを構築する汎用インタプリタを備え、計測機器のファイルシステムが認識する領域に追加機能を実装したソフトウェアコンポーネントをストアした後、追加機能の実行時には前記インタープリタがこれをロードすることによりソフトウェアの機能追加が行なわれるようにする。【選択図】　　　図１
2004139487.tif 000002
【特許請求の範囲】
【請求項１】
内蔵のアプリケーションプログラムを実行する計測機器におけるソフトウェアの機能追加方法であって、
前記計測機器に機種固有のＡＰＩを構築する汎用インタプリタを備え、
計測機器のファイルシステムが認識する領域に追加機能を実装したソフトウェアコンポーネントをストアした後、追加機能の実行時には前記インタープリタがこれをロードすることによりソフトウェアの機能追加が行なわれるようにしたことを特徴とするソフトウェアの機能追加方法。
【請求項２】
前記アプリケーション側とインタプリタ側にそれぞれ通信モジュールが設けられ、
この通信モジュールを介して転送されたアプリケーション側からの要求を受けて、前記インタープリタはファイルシステム経由で前記ソフトウェアコンポーネントをロードする
ことを特徴とする請求項１記載のソフトウェアの機能追加方法。
【請求項３】
前記計測機器は、波形メモリに格納された捕獲波形データに対して演算を行う演算機能を有し、
前記インタープリタには前記波形メモリを管理する管理モジュールが設けられ、前記ソフトウェアコンポーネントが波形データに対する演算を実行するときは前記管理モジュールを通して行なわれ、演算終了後前記アプリケーションは前記波形メモリをリードして表示処理を行うことを特徴とする請求項１または２に記載のソフトウェアの機能追加方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、捕獲した波形データをソフトウェアにより演算処理するなどの機能を持つデジタルオシロスコープなどをはじめとする各種機器に適合されるものであり、詳しくはこの種の機器において、容易性および安全性を確保した、ソフトウェアの機能追加方法に関するものである。
【０００２】
【従来の技術】
ディジタルオシロスコープなどの電子機器には、捕獲した波形データ（以下ＡＣＱデータという）に対する演算処理などを行うためのプログラムがインストールされている。そしてそのプログラムはこれまではＲＯＭ（リードオンリーメモリ）に格納されているのが一般的であった。
【０００３】
しかし、ＲＯＭの場合、プログラムの更新にあたってはサービスマンが電子機器の設置場所まで出向いたり、電子機器を引き取ってＲＯＭそのものを交換したりしなければならず、交換作業のための段取りにかなりの時間を要し、電子機器のユーザーおよびメーカーの双方にとってサービスコストがかかるとともに、サービスの即応性に欠けるという問題があった。
【０００４】
そこで、最近では、プログラムの更新を容易にするために、フラッシュメモリが使われるようになってきた。このフラッシュメモリに書き込まれたプログラムに新機能を追加する場合、従来は、新しいプログラムイメージを作成し、図８に示すようなメモリマップのプログラム領域全体を上書きしている（この作業をバージョンアップと呼ぶ）。
【０００５】
なお、上記のような先行技術としては、例えば特許文献１に記載がある。この場合、特許文献１における更新データが上記のプログラムイメージに相当する。このプログラムイメージは一枚岩の構成になっており、分割不可能である。
また、特許文献１では、フロッピー（登録商標）ディスクを使用したデータの更新が紹介されているが、その他にも、ネットワーク、ＰＣカード、ＵＳＢストレージなど様々なデバイスを使用したバージョンアップが可能である。
【０００６】
【特許文献１】
特開２００１−１６６９４２号公報（第２頁、図３）
【０００７】
【発明が解決しようとする課題】
しかしながら、機能を追加する手段がバージョンアップしかない場合には以下のような課題があった。
（１）コストがかかる
追加する機能ばかりでなく、既存の機能すべての動作検証を行う必要があるため、非常にコストがかかる。
【０００８】
（２）フレキシビリティに欠ける
主に、上記（１）が原因のため機能追加に積極的に取り組めず、機能追加サイクルが遅くなる。また、ユーザが作成したソフトウェアコンポーネントを取り込むことなども当然不可能である。フレキシビリティに欠けると共に機能追加の容易性にも欠ける。
【０００９】
（３）安全性に欠ける
バージョンアップは完全に安全な作業とは言えない。作業中に停電になった場合など、予測不能の状態に陥る可能性がある。そのため、基本的にはバージョンアップ手順をユーザに公開せず、サービスマンが客先に出向いて行うことになっている。
【００１０】
本発明の目的は、上記の課題を解決するもので、計測機器に汎用のインタプリタを搭載して機種固有のアプリケーションプログラムインターフェイス（ＡＰＩ）を提供し、メーカあるいはユーザが追加機能を手軽に作成できるようにすると共に容易かつ安全に実行できるようにした、ソフトウェアの機能追加方法を提供することにある。
【００１１】
【課題を解決するための手段】
このような目的を達成するために、請求項１の発明は、
内蔵のアプリケーションプログラムを実行する計測機器におけるソフトウェアの機能追加方法であって、
前記計測機器に機種固有のＡＰＩを構築する汎用インタプリタを備え、
計測機器のファイルシステムが認識する領域に追加機能を実装したソフトウェアコンポーネントをストアした後、追加機能の実行時には前記インタープリタがこれをロードすることによりソフトウェアの機能追加が行なわれるようにしたことを特徴とする。
【００１２】
このような方法によれば、計測機器の内部メモリのプログラム領域を書き替えるのではなく、追加機能を一旦ファイルシステムが認識する領域（例えばストレージデバイス）に取り込んだ後、実行時にインタプリタが内部メモリ（ＲＡＭ）にロードする。他の機能には関係なく追加機能のみのロードであるため、安全であるという利点がある。
また、新機能のみの追加が可能であり、動作検証はその部分のみで済む。他の部分の動作検証は不要であるため、コストがかからないという効果がある。
また、インタプリタはセキュリティ面の対策がしっかりしているため、ユーザ自作の機能が原因でシステムがダウンすることも起こり難い。
【００１３】
この場合、請求項２のように、前記アプリケーション側とインタプリタ側にはそれぞれ通信モジュールが設けられ、この通信モジュールを介して転送されたアプリケーション側からの要求を受けて、前記インタープリタがファイルシステム経由で前記ソフトウェアコンポーネントをロードすることができる。
【００１４】
また、請求項３のように、前記計測機器としては、波形メモリに格納された捕獲波形データに対して演算を行う演算機能を有する計測機器であり、前記インタープリタには前記波形メモリを管理する管理モジュールが設けられ、前記ソフトウェアコンポーネントが波形データに対する演算を実行するときは前記管理モジュールを通して行なわれ、演算終了後前記アプリケーションは前記波形メモリをリードして表示処理を行うようにすることができる。
【００１５】
【発明の実施の形態】
以下図面を用いて本発明を詳しく説明する。本発明のソフトウェアの機能追加方法は、内部メモリのプログラム領域を書き替える方式は採らず、図１に示すように、内部メモリ１のストレージ領域３のフラッシュメモリ（ＲＯＭ）、ストレージ領域５のＲＡＭ、さらにハードディスク、ＰＣカード、ＦＴＰなどの外部ストレージデバイス１０などの、計測機器のファイルシステムが認識できる領域に、追加機能（機能１、機能２、機能３）を実装したソフトウェアコンポーネント２０をストアする方式を採る。
【００１６】
なお、ストアする場所は、論理上ファイルシステムが認識できる場所ならどこでもよいが、実装や使い易さを考慮すると、あらかじめ専用領域を設けておくのが望ましい。
【００１７】
図２に実行環境の階層構造を示す。機器には、ＯＳ１００と、Ｊａｖａ（登録商標）仮想マシン（ＪＶＭ）やマイクロソフト社が提唱するＣｏｍｍｏｎ　Ｌａｎｇａｇｅ　Ｒｕｎｔｉｍｅ（ＭＳ　ＣＬＲ：登録商標）環境などのインタプリタ１１０が搭載され（つまり、機器固有のＡＰＩが構築され）、機能実行時にはこのインタプリタが機能コンポーネント（前記機能１、機能２、機能３）をロードし実行する。
なお、ＪＶＭやＭＳ　ＣＬＲ用にコンパイルされたソフトウェアコンポーネントは環境非依存で動作する。
【００１８】
通常インタプリタ環境はポインタ演算ができないので、メーカは、主にＡＣＱデータ用メモリ（以下ＡＣＱメモリという）のリード／ライトを目的とした機種固有のライブラリ１２０を開発し、ユーザに提供する。
メーカまたはユーザは、当該インタープリタ１１０用の標準ライブラリ１３０と機種固有のライブラリ１２０を用いて、追加アプリケーション１４０を作成する。
なお、メインアプリケーション１５０は図１のプログラム領域２に対応するものである。
【００１９】
図３にソフトウェアアーキテクチャを示す。メインアプリケーション１５０側とインタプリタ１１０側それぞれに通信モジュール１５１，１１１があり、このモジュールを通して両者はコラボレーションする。
【００２０】
メインアプリケーション１５０は、この仕組みにおけるクライアント要素であり、インタープリタ１１０に対して、インタープリタの起動／停止、機能コンポーネントの選択、機能実行を要求する。
【００２１】
一方、インタプリタ１１０側は、イベントドリブン型であって、要求を受けるとそれを実行するようになっている。インタプリタ１１０はまたＡＣＱメモリ管理モジュール１１２を持ち、このモジュール１１２経由でＡＣＱメモリ１６０を読み書きする。
【００２２】
このモジュール１１２に対するインタフェースは、機種固有ライブラリ１２０として提供される。ストレージデバイス１０内の機能コンポーネント（機能１、機能２、機能３など）は要求があったときに、ファイルシステム１７０経由でインタプリタ１１０にロードされる。
【００２３】
以下このような構成における動作を説明する。システムの動作シーケンスは次の４種類に大別できる。
（１）動作環境の起動
図４のフローチャートに示すように、メインアプリケーション動作環境側のメインアプリケーション１５０が通信モジュール（通信サーバともいう）１１１を指定してインタプリタ１１０を起動する。インタプリタ環境側では通信サーバ１１１が立ち上がると、要求待ち状態になる。
【００２４】
（２）機能の選択
図５のフローチャートに示すように、メインアプリケーション１５０が通信モジュール（通信クライアントともいう）１５１に対し、機能（例えば機能１）を指定して、選択要求を行う。
通信クライアント１５１は通信サーバ１１１に要求を転送する。インタプリタ１１０は、通信サーバ１１１からの要求を受けて、ファイルシステム１７０経由でストレージデバイス１０から機能コンポーネント（機能１）をロードする。このメカニズムはインタプリタ１１０に依存する。
【００２５】
（３）機能の実行
図６のフローチャートに示すように、メインアプリケーション１５０が通信クライアント１５１に対して実行要求を行うと、イベントが連鎖し、機能コンポーネントが演算を実行する。通常、演算処理はＡＣＱメモリ１６０のリード／ライトを伴う。これはＡＣＱメモリ管理モジュール１１２を通して行う。
演算が終了すると、メインアプリケーション１５０はＡＣＱメモリ１６０をリードして表示処理を行う。
【００２６】
（４）動作環境の停止
図７のフローチャートに示すように、メインアプリケーション１５０がインタプリタ１１０を終了させる。インタプリタ１１０側のリソースはすべて開放される。
【００２７】
以上のような動作により、従来技術における問題点を解決した機能追加が実現できる。
なお、本発明は、上記実施例に限定されることなく、その本質から逸脱しない範囲で更に多くの変更、変形をも含むものである。
【００２８】
【発明の効果】
以上説明したように本発明によれば次のような効果がある。
（１）新機能の部分のみ追加が可能であるため、その部分だけの動作検証をおこなえばよい。従来の機能追加方法に比べ大幅なコスト減となる。また、機能追加のための作業も従来に比べて容易である。
（２）メーカが機能を提供し易くなる。また、ＪＶＭやＭＳ　ＣＬＲなどの汎用のメジャーなインタプリタを採用する場合、開発環境の入手が容易なためユーザが機能を自作することも可能となる。従来のものに比べてフレキシビリティに富む。
【００２９】
（３）ＲＯＭ上のプログラム領域を書き替えることがなく、追加機能をいったんストレージデバイスに取り込んだ後、実行時にインタプリタがＲＡＭにロードして動作させるため、プログラム領域に書込まれた他の機能には直接影響が及ばず安全である。
【００３０】
ＪＶＭやＭＳ　ＣＬＲなどのインタプリタはセキュリティ面の対策が堅実であるため、ユーザ自作の機能が原因でシステムがダウンすることも起こり難い。これが、ネイティブコードで作成したソフトウェアコンポーネントをプラグインできるシステムに対するメリットである。
【図面の簡単な説明】
【図１】本発明に係るソフトウェアの機能追加方法を説明するための概念的原理図である。
【図２】実行環境の階層構造を示す図である。
【図３】ソフトウェアアーキテクチャを示す図である。
【図４】本発明に係るフローチャートである。
【図５】本発明に係る他のフローチャートである。
【図６】本発明に係る他のフローチャートである。
【図７】本発明に係る他のフローチャートである。
【図８】従来の機能追加方式についての説明図である。
【符号の説明】
１　内部メモリ
２　プログラム領域
３　ストレージ領域
４　プログラム動作用領域
５　ストレージ領域
１０　外部ストレージデバイス
２０　ソフトウェアコンポーネント
１００　ＯＳ
１１０　インタプリタ
１１１　通信モジュール
１１２　ＡＣＱメモリ管理モジュール
１２０　機種固有ライブラリ
１３０　標準ライブラリ
１４０　追加アプリケーション
１５０　メインアプリケーション
１５１　通信モジュール
１６０　ＡＣＱメモリ
１７０　ファイルシステム
【図１】
2004139487.tif 000003
【図２】
2004139487.tif 000004
【図３】
2004139487.tif 000005
【図４】
2004139487.tif 000006
【図５】
2004139487.tif 000007
【図６】
2004139487.tif 000008
【図７】
2004139487.tif 000009
【図８】
2004139487.tif 000010