(57)【要約】【課題】動作中のアプリケーション・プログラムをメンテナンスでき、メンテナンス機能の変更、追加も容易にする。【解決手段】アプリケーション・プログラム１０にもつアプリケーション・ロジック１とは別スレッドで動作する通信部２を設け、この通信部と同じスレッドとするメンテナンス・ロジック部３とその実行をコントロールするメンテナンス実行部４を設け、外部のメンテナンス・プログラム２０によるメンテナンス・ロジックの実行要求によるメンテナンスを行う。  また、メンテナンス・ロジック部４をアプリケーション・プログラムに動的にロード／アンロードして外部のメンテナンス・プログラムによるメンテナンスを行う。【選択図】図１
2010191658.tif 000002
【特許請求の範囲】
【請求項１】
スレッドをサポートするＯＳ上で動作中のアプリケーション・プログラムを、メンテナンス・プログラムによってメンテナンスする方法であって、
前記アプリケーション・プログラムは、アプリケーション・ロジック部と、前記アプリケーション・ロジックとは別スレッドで動作する通信部と、アプリケーションのメンテナンスを行うためのメンテナンス・ロジックをもつメンテナンス・ロジック部と、前記メンテナンス・ロジックが実行すべき関数を識別子によって一意に特定してその実行をコントロールするメンテナンス実行部によって構成し、
前記メンテナンス・プログラムは、前記メンテナンス・ロジックの識別子を前記メンテナンス実行部に送信して該メンテナンス・ロジックの実行を要求し、前記要求されたメンテナンス・ロジックをアプリケーション・プログラムが実行した結果の返送を受けてアプリケーション・プログラムのメンテナンスを終了することを特徴とするアプリケーション・プログラムのメンテナンス方法。
【請求項２】
前記通信部において利用する通信プロトコルにインターネットなどに装備する汎用プロトコルを使用し、前記メンテナンス実行部で定義する入出力情報を該汎用プロトコルに従った入出力とし、および前記メンテナンス・ロジック部におけるメンテナンス・プログラムへの処理結果の受け渡しを該汎用プロトコルに従った出力とすることを特徴とする請求項１に記載のアプリケーション・プログラムのメンテナンス方法。
【請求項３】
前記ＯＳがダイナミック・リンクをサポートする場合、前記メンテナンス・ロジック部をアプリケーション・プログラムから動的にロード／アンロードが可能なプログラム・コードとし、このプログラム・コードをメンテナンス時のみアプリケーション・プログラムにロードしてメンテナンスすることを特徴とする請求項１に記載のアプリケーション・プログラムのメンテナンス方法。
【請求項４】
前記メンテナンス・ロジック部は、アプリケーション・プログラムからアンロードしてメンテナンス・ロジックを変更することを特徴とする請求項３に記載のアプリケーション・プログラムのメンテナンス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション・プログラムのメンテナンス方法に関する。
【背景技術】
【０００２】
ＯＳ（オペレーティング・システム）上で動作中のアプリケーション・プログラムによるプロセスの状態監視やその他のメンテナンスを行う方法として、一般的に以下の方法がある。
【０００３】
（１）アプリケーション・プログラムにデバッグ情報を埋め込んでデバッガを利用する方法。
【０００４】
（２）専用のメンテナンス・ロジックをアプリケーション・プログラム本体に埋め込む方法。
【０００５】
（３）外部から参照が可能なメモリに必要な情報を保存する方法。
【０００６】
例えば、特許文献１では、プロセス間またはスレッド間でメッセージ通知を行う場合に、一連の処理に必要な手順の指示を示す命令コードと関連するデータ双方をパケットと呼ぶ領域に格納し、その命令を逐次実行し、命令コードからは任意のスレッドの関数を呼び出すという制御用プログラムと開発ツールが開示され、プログラムの開発効率とメンテナンス性を高めようとする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−２７１３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前記のデバッガを利用したメンテナンス方法では、動作中プロセスを一旦中断する必要がある。
【０００９】
他のメンテナンス方法の場合、プログラム作成時に想定したメンテナンス機能でしか利用できないため、新たなメンテナンス機能を追加できない。
【００１０】
本発明の目的は、動作中のアプリケーション・プログラムをメンテナンスでき、メンテナンス機能の変更、追加も容易にしたアプリケーション・プログラムのメンテナンス方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明は、前記の課題を解決するため、アプリケーション・プログラムにもつアプリケーション・ロジックとは別スレッドで動作する通信部を設け、この通信部と同じスレッドとするメンテナンス・ロジック部とその実行をコントロールするメンテナンス実行部を設け、外部のメンテナンス・プログラムによるメンテナンス・ロジックの実行要求によるメンテナンス、またはメンテナンス・ロジック部をアプリケーション・プログラムに動的にロード／アンロードして外部のメンテナンス・プログラムによるメンテナンスを行うようにしたもので、以下の方法を特徴とする。
【００１２】
（１）スレッドをサポートするＯＳ上で動作中のアプリケーション・プログラムを、メンテナンス・プログラムによってメンテナンスする方法であって、
前記アプリケーション・プログラムは、アプリケーション・ロジック部と、前記アプリケーション・ロジックとは別スレッドで動作する通信部と、アプリケーションのメンテナンスを行うためのメンテナンス・ロジックをもつメンテナンス・ロジック部と、前記メンテナンス・ロジックが実行すべき関数を識別子によって一意に特定してその実行をコントロールするメンテナンス実行部によって構成し、
前記メンテナンス・プログラムは、前記メンテナンス・ロジックの識別子を前記メンテナンス実行部に送信して該メンテナンス・ロジックの実行を要求し、前記要求されたメンテナンス・ロジックをアプリケーション・プログラムが実行した結果の返送を受けてアプリケーション・プログラムのメンテナンスを終了することを特徴とする。
【００１３】
（２）前記通信部において利用する通信プロトコルにインターネットなどに装備する汎用プロトコルを使用し、前記メンテナンス実行部で定義する入出力情報を該汎用プロトコルに従った入出力とし、および前記メンテナンス・ロジック部におけるメンテナンス・プログラムへの処理結果の受け渡しを該汎用プロトコルに従った出力とすることを特徴とする。
【００１４】
（３）前記ＯＳがダイナミック・リンクをサポートする場合、前記メンテナンス・ロジック部をアプリケーション・プログラムから動的にロード／アンロードが可能なプログラム・コードとし、このプログラム・コードをメンテナンス時のみアプリケーション・プログラムにロードしてメンテナンスすることを特徴とする。
【００１５】
（４）前記メンテナンス・ロジック部は、アプリケーション・プログラムからアンロードしてメンテナンス・ロジックを変更することを特徴とする。
【発明の効果】
【００１６】
以上のとおり、本発明によれば、アプリケーション・プログラムにもつアプリケーション・ロジックとは別スレッドで動作する通信部を設け、この通信部と同じスレッドとするメンテナンス・ロジック部とその実行をコントロールするメンテナンス実行部を設け、外部のメンテナンス・プログラムによるメンテナンス・ロジックの実行要求によるメンテナンス、またはメンテナンス・ロジック部をアプリケーション・プログラムに動的にロード／アンロードして外部のメンテナンス・プログラムによるメンテナンスを行うようにしたため、動作中のアプリケーション・プログラムをメンテナンスでき、メンテナンス機能の変更、追加も容易になる。
【００１７】
具体的には、メンテナンス用のロジックを通信を利用してアプリケーションとは別スレッドで動作させることにより、動作中のプロセス状態の参照や想定範囲内の動作変更をオンタイムで行うことが可能となる。
【００１８】
また、外部通信部分のプロトコルやメンテナンス・ロジックの識別子および結果情報を変更することで、様々なネットワーク環境やツールを利用したメンテナンスが可能となる。
【００１９】
また、ダイナミック・リンクをサポートするＯＳにおいては、メンテナンス・ロジック部を必要に応じてロード／アンロードし、メモリ消費を最小限に抑えることが可能となる。
【００２０】
また、ダイナミック・リンクをサポートするＯＳにおいては、メンテナンス・ロジックをアプリケーション・ロジックに影響を与えることなく変更が可能となり、想定外のメンテナンス要因が発生した場合にも対処可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態を示すメンテナンスの処理態様図。
【図２】メンテナンス関連の処理フローチャート。
【図３】メンテナンス・プログラムによるＴｅｌｎｅｔを利用する例。
【図４】メンテナンス・ロジックの動的ロード／アンロードの例。
【図５】メンテナンス・ロジックの変更例。
【発明を実施するための形態】
【００２２】
（実施形態１）
図１は、本発明の実施形態を示すメンテナンスの処理態様図である。本実施形態では、スレッドをサポートするＯＳ上で動作中のアプリケーション・プログラム１０のメンテナンス（状態参照や動作の変更）をメンテナンス・プログラム２０で実行可能にする。
【００２３】
アプリケーション・プログラム１０のアプリケーション・ロジック部１は、アプリケーション・プログラムで実行するアプリケーションのロジックで構成する。ただし、メンテナンスや保守のための情報は全く含まない構成とする。
【００２４】
アプリケーション・プログラム１０の通信部２は、アプリケーション・ロジック部１とは別のスレッドで動作し、メンテナンス・プログラムと通信を行い、メンテナンス・ロジックを実行し、実行結果をメンテナンス・プログラム２０に応答する。
【００２５】
アプリケーション・プログラム１０のメンテナンス・ロジック部３は、アプリケーション・プログラム１のメンテナンスを行うために、アプリケーション・ロジック部１とは別にしたメンテナンス・ロジック情報をもつ。この情報は、アプリケーション・プログラムの関数を特定するための識別子と、それに対応する関数の対応表を保持する。
【００２６】
アプリケーション・プログラム１０のメンテナンス実行部４は、メンテナンス・プログラム２０からのメンテナンス実行の要求を受け付け、メンテナンス・ロジック部３にもつメンテナンス・ロジックの実行をコントロールする。
【００２７】
このようなロジック構成において、アプリケーション・プログラム１０のメンテナンスは、以下の手順で行う。
【００２８】
（手順１）メンテナンス・プログラム２０をアプリケーション・プログラム１０に接続する。
【００２９】
（手順２）メンテナンス・プログラム２０から実行させたいメンテナンス・ロジックの識別子をアプリケーション・プログラムの通信部２に要求する。
【００３０】
（手順３）メンテナンス実行部４はメンテナンス・ロジック部３にもつ指定されたメンテナンス・ロジックを実行し、この結果を通信部２がメンテナンス・プログラム２０に返送する。
【００３１】
（手順４）メンテナンスを終了する場合は、メンテナンス・プログラム２０が切断処理を行う。
【００３２】
なお、メンテナンスの性格上、複数人での作業は不要と判断し、アプリケーション・プログラムとメンテナンス・プログラム間の接続は１つのみとする。
【００３３】
図２は、メンテナンス関連の処理フローチャートを示す。通信部２は、外部との接続待ちをしておき（Ｓ１）、アプリケーション・プログラムを終了しない限り（Ｓ２）、外部からの接続が有るか否かを判定し（Ｓ３）、接続がなければ通信スレッドを起動し（Ｓ４）、接続があれば新規接続を拒否し（Ｓ５）、外部との接続待ちに戻る。
【００３４】
メンテナンス実行部４は、メンテナンスの要求を受信したとき（Ｓ６）、切断要求がない限り（Ｓ７）、かつメンテナンス要求された登録関数が有れば（Ｓ８）、メンテナンス・ロジック部３の実行をコントロールする（Ｓ９）。
【００３５】
本実施形態によれば、メンテナンス用のロジックを通信を利用してアプリケーションとは別スレッドで動作させることにより、動作中のアプリケーション・プログラムで処理中のプロセス状態の参照や想定範囲内の動作変更をオンタイムで行うことが可能となる。
【００３６】
（実施形態２）
本実施形態では、実施形態１において、通信部２およびメンテナンス実行部４で実装する通信プロトコルにインターネットなどに装備する汎用プロトコルを利用することにより、一般的なツールをメンテナンス・プログラム２０として利用可能とする。
【００３７】
例えば、図３に示すように、メンテナンス・プログラム２０としてＴｅｌｎｅｔを利用する場合、通信部２ではＴＣＰ／ＩＰの通信を、メンテナンス・ロジック部４ではテキスト形式の入出力に対応させる。
【００３８】
本実施形態によれば、アプリケーション・プログラムの通信部２のプロトコルやメンテナンス・ロジックの識別子および結果情報を変更することで、様々なネットワーク環境やツールを利用したメンテナンスが可能となり、メンテナンス機能の変更、追加も容易になる。
【００３９】
（実施形態３）
本実施形態では、ＯＳがダイナミック・リンクをサポートする場合、図４に示すように、アプリケーション・プログラム１０のメンテナンス時に、メンテナンス・ロジック部４に動的なロード／アンロードが可能なプログラム・コードをロードし、このプログラム・コードの実行によってメンテナンスを可能にする。
【００４０】
これにより、通常運用時には不要なメンテナンス・ロジック部４を取り込まず、メンテナンス時のみメンテナンス・ロジック部を取り込むことが可能となり、メモリ消費を最小限に抑えることができる。
【００４１】
また、図５に示すように、動的にメンテナンス・ロジック部の変更が可能なことから、メンテナンス・ロジック部の変更を行った場合でも入れ替えを容易に実現でき、想定外のメンテナンス要因が発生した場合にも対処可能となる。
【符号の説明】
【００４２】
１０  アプリケーション・プログラム
２０  メンテナンス・プログラム
１  アプリケーション・ロジック部
２  通信部
３  メンテナンス・ロジック部
４  メンテナンス実行部
【図１】
2010191658.tif 000003
【図２】
2010191658.tif 000004
【図３】
2010191658.tif 000005
【図４】
2010191658.tif 000006
【図５】
2010191658.tif 000007