(57)【要約】【課題】単純な処理によってサービス無停止で新版プログラムに切り替える。【解決手段】アプリケーション２は、新旧のプログラム２１，２０を並行して起動でき、それぞれのメモリ空間２０１，２００を使用して動作できるように管理を行う。ソフトウェア管理部１０は、プログラム２１，２０の登録先アドレスを含むハンドル情報を保持する索引情報部１０２，１０１と、プログラム２１，２０の新旧の別を示すソフトウェア世代識別情報を保持するソフトウェア世代識別情報部１１２，１１１から成る。プログラム起動制御ソフトウェア１は、アプリケーションを実行することにより旧版プログラム２０によるサービス提供中にも新版プログラム２１を起動し、ソフトウェア管理部に新版プログラムのハンドル情報およびソフトウェア世代識別情報を設定して旧版プログラムに閉局要求し、閉局応答受信後に新版プログラムに開局要求してサービスの開始をさせる。【選択図】        図１
2004213425.tif 000002
【特許請求の範囲】
【請求項１】
２４時間連続稼動するコンピュータシステムにおいてサービスを提供する旧版のプログラムを新版のプログラムに切り替える動的プログラム切替制御システムにおいて、
新旧のプログラムを並行して起動でき、それぞれのメモリ空間を使用して動作できるように管理を行うアプリケーションと、
プログラムの登録先アドレスを含むハンドル情報およびプログラムの新旧の別を示すソフトウェア世代識別情報をプログラムと１対１対応で管理するソフトウェア管理部と、
前記アプリケーションを実行することにより旧版プログラムによるサービス提供中にも新版プログラムを起動し、前記ソフトウェア管理部に新版プログラムのハンドル情報およびソフトウェア世代識別情報を設定して旧版プログラムに閉局要求し、閉局応答受信後に新版プログラムに開局要求してサービスの開始をさせるプログラム起動制御ソフトウェアとで構成されることを特徴とする動的プログラム切替制御システム。
【請求項２】
前記プログラム起動制御ソフトウェアは、新版プログラムの登録をトリガとして前記アプリケーションの実行以下の処理を行うことを特徴とする請求項１に記載の動的プログラム切替制御システム。
【請求項３】
前記プログラム起動制御ソフトウェアは、新版プログラムによるサービス提供が可能な状態を作るための初期化完了通知を新版プログラムから受信後に旧版プログラムに前記閉局要求することを特徴とする請求項１または２に記載の動的プログラム切替制御システム。
【請求項４】
前記プログラム起動制御ソフトウェアは、新版プログラムの登録を受けると当該ソフトウェア世代識別情報を“ＮＥＷ”とし、前記新版プログラムに対する開局要求後に旧版プログラムを終了させて当該ハンドル情報およびソフトウェア世代識別情報を削除し、新版プログラムのソフトウェア世代識別情報を“ＯＬＤ”に変更することを特徴とする請求項１ないし３のいずれかに記載の動的プログラム切替制御システム。
【請求項５】
２４時間連続稼動するコンピュータシステムにおいてサービスを提供する新旧プログラムの動的プログラム切替制御プログラムであって、前記コンピュータシステムのコンピュータに、
新版プログラムの登録をトリガとして該新版プログラムを起動する機能と、
新版プログラムの登録先アドレスを含むハンドル情報を設定する機能と、
新版プログラムのソフトウェア世代識別情報を“ＮＥＷ”とする機能と、
新版プログラムによるサービス提供が可能な状態を作るための初期化を行う機能と、
前記初期化完了後に旧版プログラムを閉局させ前記新版プログラムを開局するる機能と、
旧版プログラムを終了させ当該ハンドル情報およびソフトウェア世代識別情報を削除する機能と、
新版プログラムのソフトウェア世代識別情報を“ＯＬＤ”に変更する機能とを実行させ、旧版のプログラムを新版のプログラムに切り替えるすることを特徴とする動的プログラム切替制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２４時間連続稼動するコンピュータシステムを停止することなく旧版のプログラムを新版のプログラムに切り替える動的プログラム切替制御システムに関する。
【０００２】
【従来の技術】
コンピュータシステムにあってプログラムを変更する場合、通常は古いプログラムによる処理を一旦終了してから新しいプログラムに入れ替える。しかし、２４時間連続稼動するコンピュータシステムでは、提供するサービスを停止せずにプログラムを入れ替えることが望まれる。入替え作業の際にはプログラムを終了することによりサービスが停止するため、頻繁な入替えは困難であるので定期的なメンテナンスの時に行うしかない。ただし、プログラムの不具合による変更は緊急を要するため、サービスを停止してでもプログラムを入れ替える必要があり、結局、２４時間連続稼動するコンピュータシステムであっても２４時間のサービスを提供できないことになる。
【０００３】
このような問題に対処するためは、従来は、変更後のサブルーチンを変更前のサブルーチンとは異なるメモリのアドレスにロードすると共に、変更前と変更後のサブルーチンにおける変数の変更の有無と新規追加を判別し、変更無しの変数における変更前のサブルーチンの演算結果を変更後のサブルーチンの演算結果としてコピーすると共に、新規追加の変数の初期化演算を行わせ、その後にサブルーチンの切替えを行うことによって動作中のプログラムを変更するようにしている（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特開２００２−６３０４５号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した従来技術では、変更対象となるサブルーチンを含む一連のサブルーチンの演算終了後、次の一連のサブルーチンの演算が開始されるまでの間に変数のコピーや初期化演算を行うため、その間に演算処理が割り込まないようにする必要があり、処理が非常に複雑であるという第１の問題点がある。
【０００６】
また、変数のコピーや初期化演算を行うタイミングと、切替え後のサブルーチンを使用するタイミングとが異なるため、誤動作をする可能性が高いという第２の問題もある。
【０００７】
本発明の第１の目的は、単純な処理によって、サービスを停止することなく新版のプログラムをインストールする動的アプリケーション切替制御システムを提供することにある。
【０００８】
本発明の第２の目的は、プログラムの切替に伴う誤動作の危険性を低減した動的アプリケーション切替制御システムを提供することにある。
【０００９】
【課題を解決するための手段】
本発明の動的プログラム切替制御システムは、２４時間連続稼動するコンピュータシステムにおいてサービスを提供する旧版のプログラムを新版のプログラムに切り替える動的プログラム切替制御システムにおいて、新旧のプログラムを並行して起動でき、それぞれのメモリ空間を使用して動作できるように管理を行うアプリケーションと、プログラムの登録先アドレスを含むハンドル情報およびプログラムの新旧の別を示すソフトウェア世代識別情報をプログラムと１対１対応で管理するソフトウェア管理部と、アプリケーションを実行することにより旧版プログラムによるサービス提供中にも新版プログラムを起動し、ソフトウェア管理部に新版プログラムのハンドル情報およびソフトウェア世代識別情報を設定して旧版プログラムに閉局要求し、閉局応答受信後に新版プログラムに開局要求してサービスの開始をさせるプログラム起動制御ソフトウェアとで構成されることを特徴とする。
【００１０】
プログラム起動制御ソフトウェアは、新版プログラムが登録されると動作中の旧版プログラムはそのままの状態で新版プログラムも同時起動し、新版プログラムの起動確認後に旧版プログラムを終了することで切り替えを行う。このように、新しいプログラムを起動後に旧いプログラムに閉局要求し新しいプログラムに開局要求してサービスの開始をさせる構成としたため、サービスを停止することなく旧いプログラムを新しいプログラムに切り替えるに際して、新旧プログラムによる処理の重複を回避するための複雑な制御を不要化し、またプログラムの切替に伴う誤動作の危険性を低減することができるようになる。
【００１１】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１２】
【実施例の構成】
図１は本発明の動的アプリケーション切替制御システムの一実施例を示すブロック図である。この動的アプリケーション切替制御システムは、利用者に２４時間のサービスを提供するコンピュータシステムのコンピュータ内に展開されている。
【００１３】
図１では、プログラム起動制御ソフトウェア１と、アプリケーション２と、２つのプログラム２０，２１と、２つのメモリ空間２００，２０１とが示されている。プログラム２０，プログラム２１は、２４時間連続稼動するコンピュータシステムにおいて、利用者にサービスを提供するサービスプログラムであり、ここでは、その実行に使用するために独自のメモリ空間２００，メモリ空間２０１が割り振られている。プログラム２０は現にサービスを提供している旧版のプログラム、プログラム２１はプログラム２０が更新された新版のプログラムである。
【００１４】
アプリケーション２は、プログラム２０，プログラム２１が同時に起動でき、それぞれメモリ空間２００，メモリ空間２０１を使用して動作できるように管理を行うプログラムである。ここで、プログラム２０，プログラム２１が起動しても、即時にサービスの提供が開始されるのではなく、サービス提供を開始するには、後述のようにプログラム起動制御ソフトウェア１からの開局要求を待つ必要がある。
【００１５】
プログラム起動制御ソフトウェア１は、プログラム２０とプログラム２１の起動と終了を一括管理し、そのために、プログラム２０，２１を管理するソフトウェア管理部１０を含んでいる。ソフトウェア管理部１０は索引情報部１０１，１０２と、プログラム２０，２１の世代を管理するためのソフトウェア世代識別情報部１１１，１１２とを有する。
【００１６】
索引情報部１０１，１０２には、プログラム起動制御ソフトウェア１がプログラム２０，プログラム２１と通信するために必要なハンドル情報がプログラム起動制御ソフトウェア１によって設定される。ハンドル情報は、プログラム起動制御ソフトウェア１が把握しているプログラム２０，プログラム２１の登録先アドレスを含んでいる。また、ソフトウェア世代識別情報部１１１，１１２には、サービスプログラムの新版と旧版の別を示し、この例では、プログラム２０に“ＯＬＤ”、プログラム２１に“ＮＥＷ”がプログラム起動制御ソフトウェア１によって設定される。
【００１７】
【実施例の動作】
次に、以上のように構成された本実施例の動作について図２，図３に示すフローチャートを参照して説明する。図２はサービス提供時におけるプログラム起動制御ソフトウェア１の処理を示すフローチャート、図３はサービスプログラム登録時におけるプログラム起動制御ソフトウェア１の処理を示すフローチャートである。
【００１８】
利用者はサービスプログラムのサービスを受けたい場合、直接にサービスプログラムにリクエストするのではなく、プログラム起動制御ソフトウェア１とアプリケーション２を介し間接的にサービスプログラムのサービスを受ける。利用者が本コンピュータシステムにリクエストすると、プログラム起動制御ソフトウェア１が起動され、図２に示すような処理が行われる。
【００１９】
プログラム起動制御ソフトウェア１は、起動されると設定内容が“ＯＬＤ”のソフトウェア世代識別情報部に対応する索引情報部のハンドル情報を伴ってアプリケーション２を実行し（図２のステップＡ１）、アプリケーション２はハンドル情報の登録先アドレスで指定されるサービスプログラムの起動を行う（ステップＡ２）。サービスプログラムは起動されるが、まだサービスの提供は行わない。例えば、表示画面がある場合は非表示状態にし、プログラム起動制御ソフトウェア１以外の入力は受けない。
【００２０】
その後に、プログラム起動制御ソフトウェア１は、ハンドル情報を使用してサービスプログラムに対し開局要求を送信する（ステップＡ３）。サービスプログラムは開局要求を受信したら、サービスの提供を開始するのに必要な処理を行い、プログラム起動制御ソフトウェア１へ開局応答を送信する。この開局応答は索引情報部にハンドル情報の一部として設定され、プログラム起動制御ソフトウェア１が開局応答を受信すると（ステップＡ４でＹＥＳ）、サービスプログラムへサービス提供の開始を指示する（ステップＡ５）。これにより、本コンピュータシステムは、例えば表示画面がある場合は画面を表示し、利用者からの入力を受け付けるようになる。
【００２１】
次に、サービスプログラムの登録動作について、サービスプログラムが登録されていない状態でプログラム２０を登録し、その後にプログラム２０を新版のプログラム２１に切り替えるものとして説明する。
【００２２】
オペレータがプログラム２０の登録操作を行うと、プログラム起動制御ソフトウェア１がアプリケーション２を実行し、プログラム２０とメモリ空間２００がコンピュータに展開される。プログラム２０の登録先アドレスはアプリケーション２によって把握される。
【００２３】
プログラム２０の登録を受ける（図３のステップＢ１）と、プログラム起動制御ソフトウェア１はアプリケーション２を実行しプログラム２０を起動する（ステップＢ２）。続いて、プログラム起動制御ソフトウェア１は索引情報部１０１にプログラム２０の登録先アドレスを内容とするハンドル情報を設定し（ステップＢ３）、ソフトウェア世代識別情報部１１１に“ＮＥＷ”を設定する（ステップＢ４）。
【００２４】
起動されたプログラム２１は、サービスの提供が可能な状態を作るための初期化処理を行った後にプログラム起動制御ソフトウェア１へ初期化完了通知を送信する。プログラム起動制御ソフトウェア１は初期化完了通知を受信すると（ステップＢ５でＹＥＳ）、ソフトウェア世代識別情報部の内から設定内容が“ＯＬＤ”となっているものを探す（ステップＢ６）。いまの場合は、設定内容が“ＯＬＤ”となっているものがないため（ステップＢ６でＮＯ）、ステップＢ７およびＢ８をパスし、設定内容が”ＮＥＷ”であるソフトウェア世代識別情報１１１に対応するプログラム２０に開局要求を送信し（ステップＳ９）。
【００２５】
また、いまの場合は、設定内容が“ＯＬＤ”となっているソフトウェア世代識別情報部がないため（ステップＢ１０でＮＯ）、ステップＢ１１〜Ｂ１３をパスし、ソフトウェア世代識別情報部１１１を“ＯＬＤ”に変更して処理を終える（ステップＳ１４）。
【００２６】
次に、プログラム２０がプログラム２１に変更されたので、プログラム２０をプログラム２１に切り替える場合について説明する。この切替はプログラム２０の運用中であっても可能である。
【００２７】
オペレータがプログラム２１の登録操作を行うと、プログラム起動制御ソフトウェア１がアプリケーション２を実行し、プログラム２１とメモリ空間２０１がコンピュータに展開される。プログラム２１の登録先アドレスはアプリケーション２によって把握される。
【００２８】
プログラム２１の登録を受ける（図３のステップＢ１）と、プログラム起動制御ソフトウェア１はアプリケーション２を実行しプログラム２１を起動する（ステップＢ２）。起動が即サービスの提供でないことは前述したとおりである。続いて、プログラム起動制御ソフトウェア１は索引情報部１０２にプログラム２１の登録先アドレスを内容とするハンドル情報を設定し（ステップＢ３）、ソフトウェア世代識別情報部１１２に“ＮＥＷ”を設定する（ステップＢ４）。
【００２９】
起動されたプログラム２１は、サービスの提供が可能な状態を作るための初期化処理を行った後にプログラム起動制御ソフトウェア１へ初期化完了通知を送信する。プログラム起動制御ソフトウェア１は初期化完了通知を受信すると（ステップＢ５でＹＥＳ）、ソフトウェア世代識別情報部の内から設定内容が“ＯＬＤ”となっているものを探す（ステップＢ６）。いまの場合は、設定内容が“ＯＬＤ”となっているソフトウェア世代識別情報部１１１が存在するので（ステップＢ６でＹＥＳ）、索引情報部１０１のハンドル情報を利用してプログラム２０に閉局要求を送信する（ステップＢ７）。
【００３０】
閉局要求を受信したプログラム２０は現在処理中のものがあるかをチェックし、あればそれが終了するまで待つ。また、この処理待中の新規処理は受け入れ、これが終了するのも待つ。処理中のものが無くなった段階で新規処理の受付は止めプログラム起動制御ソフトウェア１に閉局応答を送信する。
【００３１】
この閉局要求に対する閉局応答がプログラム２０から送信されてくると（ステップＢ８）、プログラム起動制御ソフトウェア１は設定内容が“ＮＥＷ”であるソフトウェア世代識別情報１１２に対応するプログラム２１に開局要求を送信する（ステップＢ９）。開局要求を受信したプログラム２１はサービスの提供を開始し（例えば、表示画面がある場合は画面を表示し、利用者からの入力を受け付ける）、プログラム起動制御ソフトウェア１に開局応答を返す。プログラム２１は既に起動されている（ステップＢ２）ので、サービスの提供を開始するのに遅延することはない。
【００３２】
また、設定内容が“ＯＬＤ”となっているソフトウェア世代識別情報部１１１があるので（ステップＢ１０でＹＥＳ）、設定内容が”ＯＬＤ”であるソフトウェア世代識別情報部１１１に対応するプログラム２０に終了要求を送信する（ステップＢ１１）。終了要求を受信したプログラム２０はプログラム起動制御ソフトウェア１に終了応答を送信後に処理を終了する。
【００３３】
ここで、プログラム２１がサービスの提供を開始した時点では、プログラム２０は未だ処理を終了はしていない。しかし、プログラム２０，プログラム２１は、独自のメモリ空間２００，２０１が割り振られているため、同時に実行され得る。また、プログラム２０は、プログラム起動制御ソフトウェア１からの閉局要求（ステップＢ７）を受信しており、いわば残務整理中であるので、新規処理を開始したプログラム２１と処理が重複することはない。
【００３４】
起動制御ソフトウェア１は、プログラム２０から終了応答を受信すると（ステップＢ１２でＹＥＳ）、設定内容が“ＯＬＤ”となっているソフトウェア世代識別情報１１１対応の索引情報部１０１の内容を削除し（ステップＢ１３）、設定内容が“ＮＥＷ”となっているソフトウェア世代識別情報１１２の内容を“ＯＬＤ”に変更する（ステップＢ１４）。
【００３５】
【発明の効果】
以上に詳述したように、本発明の動的アプリケーション切替制御システムによれば、プログラム起動制御ソフトウェアが、ソフトウェア管理部にプログラムと１対１対応のハンドル情報およびソフトウェア世代識別情報を設定してプログラムの起動制御を一括して行い、新しいプログラムを起動後に旧いプログラムに閉局要求し新しいプログラムに開局要求してサービスの開始をさせる構成としたため、サービスを停止することなく旧いプログラムを新しいプログラムに切り替えるに際して、新旧プログラムによる処理の重複回避のための複雑な制御を不要化し、またプログラムの切替に伴う誤動作の危険性を低減することができる。
【図面の簡単な説明】
【図１】本発明の一実施例を示すブロック図
【図２】サービス提供時におけるプログラム起動制御ソフトウェア１の処理を示すフローチャート
【図３】サービスプログラム登録時におけるプログラム起動制御ソフトウェア１の処理を示すフローチャート
【符号の説明】
１              プログラム起動制御ソフトウェア
２              アプリケーション
１０            ソフトウェア管理部
２０，２１      プログラム
１０１，１０２  索引情報部
１１１，１１２  ソフトウェア世代識別情報部
２００，２０１  メモリ空間
【図１】
2004213425.tif 000003
【図２】
2004213425.tif 000004
【図３】
2004213425.tif 000005