非特許文献1に見られるNバージョン方式の耐障害システムで使用する新たなバージョンのプログラムや、特許文献1に見られるような現在使用しているプログラムと置き換える新バージョンのプログラムは、実際のサービスに供される前に充分なテストを行ってその動作を確認する必要があり、このような動作確認は、実際の環境に近い環境で実施することが望まれる。特許文献2および特許文献3に見られるテスト手法は、何れもオンライン処理を停止させずにテストプログラムをテストすることが可能である。しかし、何れの従来技術も現行プログラムと同一の機能を達成する異なるバージョンの新規プログラムの動作確認には適していない。その理由は、現行プログラムと同一の機能を達成する異なるバージョンの新規プログラムの動作確認では、現行プログラムと同等の動作が行われていることを確認しなければならないが、特許文献2および3に記載されるテスト手法では、テストプログラムを単にオンラインで実行できるようにしただけで、テストプログラムが現行プログラムと同一の機能を達成していることは確認できないからである。
そこで本発明の目的は、現行プログラムによる処理サービスを停止させずに、現行プログラムとバージョンは異なるが同一の機能を達成する新規プログラムの動作を確認することができるトランザクション処理システムおよび方法を提供することにある。
また本発明の他の目的は、現行プログラムと、そのバージョンは異なるが同一の機能を達成する新規プログラムとで同一のトランザクションを並行して処理し、新規プログラムで処理が正常に行われているかどうかを自動的に検証できるトランザクション処理システムおよび方法を提供することにある。
さらに本発明の別の目的は、現行プログラムによる処理サービスを停止させずに、現行プログラムとバージョンは異なるが同一の機能を達成する新規プログラムの動作を確認することができ、且つ、現行プログラムに代えて動作確認を終えた新規プログラムによる処理サービスを開始することができるトランザクション処理システムおよび方法を提供することにある。
本発明の第1のトランザクション処理システムは、与えられた処理要求トランザクションに応じた処理を行う現行プログラムを実行するプログラム実行手段と、与えられた処理要求トランザクションに応じた処理を行う新規プログラムを実行するプログラム実行手段と、処理要求元から受信した処理要求トランザクションを前記現行プログラムおよび前記新規プログラムに与え、前記現行プログラムから得られた応答トランザクションを前記処理要求元に送信するトランザクション入出力手段と、前記現行プログラムおよび前記新規プログラムが外部データにアクセスする際にそのアクセスを管理する外部アクセス管理手段と、前記現行プログラムおよび前記新規プログラムに関連するログを採取するログ採取手段とを備えたことを特徴とする。ここで、現行プログラムおよび新規プログラムに関連するログとは、典型的には、現行プログラムから返却される応答トランザクション、新規プログラムから返却される応答トランザクションであるが、それのみに限定されない。何故なら、最終結果自体を比較しなくても、その途中の情報を比較することで、新規プログラムが現行プログラムと同等の機能を達成しているかどうかを確認できるからである。途中の情報の例としては、外部データへのアクセス要求がある。また、途中の情報の他の例としては、現行プログラムおよび新規プログラムのCPU使用率、メモリ使用率などの環境情報がある。
本発明の第2のトランザクション処理システムは、第1のトランザクション処理システムにおいて、前記トランザクション入出力手段は、前記受信した処理要求トランザクションを複製し、前記現行プログラムおよび前記新規プログラムに転送するトランザクション複製転送手段を含むことを特徴とする。
本発明の第3のトランザクション処理システムは、第1のトランザクション処理システムにおいて、前記トランザクション入出力手段は、前記受信した処理要求トランザクションを複製し、前記現行プログラムに転送するトランザクション複製転送手段と、前記複製された処理要求トランザクションを保存するトランザクション保存手段と、前記保存された処理要求トランザクションを読み出して前記新規プログラムに転送するトランザクション転送手段とを含むことを特徴とする。
本発明の第4のトランザクション処理システムは、第1のトランザクション処理システムにおいて、前記トランザクション入出力手段は、前記受信した処理要求トランザクションを保存するトランザクション保存手段と、前記保存された処理要求トランザクションを読み出して前記現行プログラムおよび前記新規プログラムに転送するトランザクション転送手段とを含むことを特徴とする。
本発明の第5のトランザクション処理システムは、第1のトランザクション処理システムにおいて、前記外部アクセス管理手段は、前記現行プログラムからのアクセス要求の場合には前記外部データを実際にアクセスして、そのアクセス要求結果を前記現行プログラムに返却すると共に、アクセス要求とアクセス要求結果を記憶部に保存し、前記新規プログラムからのアクセス要求の場合には、前記記憶部から前記現行プログラムの対応するアクセス要求結果を抽出し、そのアクセス要求結果を使って前記新規プログラムに返却するアクセス要求結果を生成するものであることを特徴とする。
本発明の第6のトランザクション処理システムは、第5のトランザクション処理システムにおいて、前記外部アクセス管理手段は、前記プログラム実行手段と独立に設けられていることを特徴とする。
本発明の第7のトランザクション処理システムは、第5のトランザクション処理システムにおいて、前記外部アクセス管理手段は、前記現行プログラムを実行する前記プログラム実行手段に設けられたマスター外部アクセス管理手段と、前記新規プログラムを実行する前記プログラム実行手段に設けられたスレーブ外部アクセス管理手段とで構成されることを特徴とする。
本発明の第8のトランザクション処理システムは、第7のトランザクション処理システムにおいて、前記マスター外部アクセス管理手段は、前記現行プログラムからアクセス要求が与えられた場合には、前記外部データを実際にアクセスして、そのアクセス要求結果を前記現行プログラムに返却すると共に、アクセス要求とアクセス要求結果を記憶部に保存し、前記スレーブ外部アクセス管理手段からアクセス要求が与えられた場合には、前記記憶部から前記現行プログラムの対応するアクセス要求結果を抽出し、そのアクセス要求結果を使って前記スレーブ外部アクセス管理手段に返却するアクセス要求結果を生成するものであり、前記スレーブ外部アクセス管理手段は、前記新規プログラムからアクセス要求が与えられたときに、そのアクセス要求を前記マスター外部アクセス管理手段に転送し、前記マスター外部アクセス管理手段から返却されたアクセス要求結果を前記新規プログラムに転送するものであることを特徴とする。
本発明の第9のトランザクション処理システムは、第1のトランザクション処理システムにおいて、前記ログ採取手段は、前記現行プログラムおよび前記新規プログラムの応答トランザクションを採取する手段を含むことを特徴とする。
本発明の第10のトランザクション処理システムは、第9のトランザクション処理システムにおいて、採取された前記現行プログラムの応答トランザクションと採取された前記新規プログラムの応答トランザクションとを比較し、その差異情報を表示もしくは保存する比較検証手段を備えたことを特徴とする。
本発明の第11のトランザクション処理システムは、第10のトランザクション処理システムにおいて、前記比較検証手段は、比較する応答トランザクションのデータの中で比較する領域、または比較しない領域を指定する情報を保持する手段を備えたことを特徴とする。
本発明の第12のトランザクション処理システムは、第11のトランザクション処理システムにおいて、比較する領域を指定する情報として、比較する領域の先頭アドレスと長さのリストを保持し、前記比較検証手段は、指定された先頭アドレスと長さで特定される比較領域どうしのみを比較するものであることを特徴とする。
本発明の第13のトランザクション処理システムは、第11のトランザクション処理システムにおいて、比較しない領域を指定する情報として、比較しない領域の先頭アドレスと長さのリストを保持し、前記比較検証手段は、指定された先頭アドレスと長さで特定される領域を除いて比較するものであることを特徴とする。
本発明の第14のトランザクション処理システムは、第10のトランザクション処理システムにおいて、前記応答トランザクションは構造化された文書データであり、前記比較検証手段は、あらかじめ指定された文字列に囲まれた領域のみを比較するものであることを特徴とする。
本発明の第15のトランザクション処理システムは、第10のトランザクション処理システムにおいて、前記応答トランザクションは構造化された文書データであり、前記比較検証手段は、あらかじめ指定された文字列を含む行または段落のみを比較するものであることを特徴とする。
本発明の第16のトランザクション処理システムは、第10のトランザクション処理システムにおいて、前記応答トランザクションは構造化された文書データであり、前記比較検証手段は、あらかじめ指定された文字列に囲まれた領域を除いて比較することを特徴とする。
本発明の第17のトランザクション処理システムは、第10のトランザクション処理システムにおいて、前記応答トランザクションは構造化された文書データであり、前記比較検証手段は、あらかじめ指定された文字列を含む行もしくは段落を除いて比較するものであることを特徴とする。
本発明の第18のトランザクション処理システムは、第1のトランザクション処理システムにおいて、前記ログ採取手段は、前記現行プログラムおよび前記新規プログラムの前記外部データに対するアクセス要求を採取する手段を含むことを特徴とする。
本発明の第19のトランザクション処理システムは、第18のトランザクション処理システムにおいて、採取された前記現行プログラムのアクセス要求と採取された前記新規プログラムのアクセス要求とを比較し、その差異情報を表示もしくは保存する比較検証手段を備えたことを特徴とする。
本発明の第20のトランザクション処理システムは、第1のトランザクション処理システムにおいて、前記ログ採取手段は、前記現行プログラムを実行する前記プログラム実行手段の環境情報および前記新規プログラムを実行する前記プログラム実行手段の環境情報を採取する手段を含むことを特徴とする。
本発明の第21のトランザクション処理システムは、第20のトランザクション処理システムにおいて、採取された前記現行プログラムの環境情報と採取された前記新規プログラムの環境情報とを比較し、その差異情報を表示もしくは保存する比較検証手段を備えたことを特徴とする。
本発明の第22のトランザクション処理システムは、第1乃至第21の何れかのトランザクション処理システムにおいて、前記現行プログラムによる処理サービスから前記新規プログラムによる処理サービスに切替えるプログラム切替手段を備えたことを特徴とする。
本発明の第23のトランザクション処理システムは、第22のトランザクション処理システムにおいて、前記プログラム切替手段は、現行プログラムを停止させるものであることを特徴とする。
本発明の第24のトランザクション処理システムは、第22のトランザクション処理システムにおいて、前記プログラム切替手段は、前記現行プログラムを停止させずに前記新規プログラムと並行して動作させ続けるものであることを特徴とする。
本発明の第1のトランザクション処理方法は、a)それぞれ異なるプログラム実行手段が、与えられた処理要求トランザクションに応じた処理を行う現行プログラムと与えられた処理要求トランザクションに応じた処理を行う新規プログラムとを並行して実行するステップと、b)トランザクション入出力手段が、処理要求元から受信した処理要求トランザクションを前記現行プログラムおよび前記新規プログラムに与え、前記現行プログラムから得られた応答トランザクションを前記処理要求元に送信するステップと、c)外部アクセス管理手段が、前記現行プログラムおよび前記新規プログラムが外部データにアクセスする際にそのアクセスを管理するステップと、d)ログ採取手段が、前記現行プログラムおよび前記新規プログラムに関連するログを採取するステップと、を含むことを特徴とする。
本発明の第2のトランザクション処理方法は、第1のトランザクション処理方法において、前記トランザクション入出力手段は、前記受信した処理要求トランザクションを複製し、前記現行プログラムおよび前記新規プログラムに転送することを特徴とする。
本発明の第3のトランザクション処理方法は、第1のトランザクション処理方法において、前記トランザクション入出力手段は、前記受信した処理要求トランザクションを複製し、前記現行プログラムに転送すると共に記憶手段に一旦保存し、該保存した処理要求トランザクションを読み出して前記新規プログラムに転送することを特徴とする。
本発明の第4のトランザクション処理方法は、第1のトランザクション処理方法において、前記トランザクション入出力手段は、前記受信した処理要求トランザクションを記憶手段に一旦保存し、該保存された処理要求トランザクションを読み出して前記現行プログラムおよび前記新規プログラムに転送することを特徴とする。
本発明の第5のトランザクション処理方法は、第1のトランザクション処理方法において、前記外部アクセス管理手段は、前記現行プログラムからのアクセス要求の場合には前記外部データを実際にアクセスして、そのアクセス要求結果を前記現行プログラムに返却すると共に、アクセス要求とアクセス要求結果を記憶部に保存し、前記新規プログラムからのアクセス要求の場合には、前記記憶部から前記現行プログラムの対応するアクセス要求結果を抽出し、そのアクセス要求結果を使って前記新規プログラムに返却するアクセス要求結果を生成することを特徴とする。
本発明の第6のトランザクション処理方法は、第5のトランザクション処理方法において、前記外部アクセス管理手段は、前記プログラム実行手段と独立に動作することを特徴とする。
本発明の第7のトランザクション処理方法は、第5のトランザクション処理方法において、前記外部アクセス管理手段は、前記現行プログラムを実行する前記プログラム実行手段に設けられたマスター外部アクセス管理手段と、前記新規プログラムを実行する前記プログラム実行手段に設けられたスレーブ外部アクセス管理手段とで構成されることを特徴とする。
本発明の第8のトランザクション処理方法は、第7のトランザクション処理方法において、前記マスター外部アクセス管理手段は、前記現行プログラムからアクセス要求が与えられた場合には、前記外部データを実際にアクセスして、そのアクセス要求結果を前記現行プログラムに返却すると共に、アクセス要求とアクセス要求結果を記憶部に保存し、前記スレーブ外部アクセス管理手段からアクセス要求が与えられた場合には、前記記憶部から前記現行プログラムの対応するアクセス要求結果を抽出し、そのアクセス要求結果を使って前記スレーブ外部アクセス管理手段に返却するアクセス要求結果を生成し、前記スレーブ外部アクセス管理手段は、前記新規プログラムからアクセス要求が与えられたときに、そのアクセス要求を前記マスター外部アクセス管理手段に転送し、前記マスター外部アクセス管理手段から返却されたアクセス要求結果を前記新規プログラムに転送することを特徴とする。
本発明の第9のトランザクション処理方法は、第1のトランザクション処理方法において、前記ログ採取手段は、前記現行プログラムおよび前記新規プログラムの応答トランザクションを採取することを特徴とする。
本発明の第10のトランザクション処理方法は、第9のトランザクション処理方法において、e)比較検証手段が、採取された前記現行プログラムの応答トランザクションと採取された前記新規プログラムの応答トランザクションとを比較し、その差異情報を表示もしくは保存するステップ、を更に含むことを特徴とする。
本発明の第11のトランザクション処理方法は、第1のトランザクション処理方法において、前記ログ採取手段は、前記現行プログラムおよび前記新規プログラムの前記外部データに対するアクセス要求を採取することを特徴とする。
本発明の第12のトランザクション処理方法は、第11のトランザクション処理方法において、e)比較検証手段が、採取された前記現行プログラムのアクセス要求と採取された前記新規プログラムのアクセス要求とを比較し、その差異情報を表示もしくは保存するステップ、を更に含むことを特徴とする。
本発明の第13のトランザクション処理方法は、第1のトランザクション処理方法において、前記ログ採取手段は、前記現行プログラムを実行する前記プログラム実行手段の環境情報および前記新規プログラムを実行する前記プログラム実行手段の環境情報を採取することを特徴とする。
本発明の第14のトランザクション処理方法は、第13のトランザクション処理方法において、e)比較検証手段が、採取された前記現行プログラムの環境情報と採取された前記新規プログラムの環境情報とを比較し、その差異情報を表示もしくは保存するステップ、を更に含むことを特徴とする。
本発明の第15のトランザクション処理方法は、第1乃至第14の何れかのトランザクション処理方法において、f)プログラム切替手段が、前記現行プログラムによる処理サービスから前記新規プログラムによる処理サービスに切替えるステップ、を更に含むことを特徴とする。
本発明の第1のプログラムは、与えられた処理要求トランザクションに応じた処理を行う現行プログラムを実行するプログラム実行手段と、与えられた処理要求トランザクションに応じた処理を行う新規プログラムを実行するプログラム実行手段とを備えたトランザクション処理システムを構成するコンピュータを、処理要求元から受信した処理要求トランザクションを前記現行プログラムおよび前記新規プログラムに与え、前記現行プログラムから得られた応答トランザクションを前記処理要求元に送信するトランザクション入出力手段、前記現行プログラムおよび前記新規プログラムが外部データにアクセスする際にそのアクセスを管理する外部アクセス管理手段、前記現行プログラムおよび前記新規プログラムに関連するログを採取するログ採取手段、として機能させることを特徴とする。
本発明の第2のプログラムは、第1のプログラムにおいて、前記トランザクション入出力手段は、前記受信した処理要求トランザクションを複製し、前記現行プログラムおよび前記新規プログラムに転送するトランザクション複製転送手段を含むことを特徴とする。
本発明の第3のプログラムは、第1のプログラムにおいて、前記トランザクション入出力手段は、前記受信した処理要求トランザクションを複製し、前記現行プログラムに転送するトランザクション複製転送手段と、前記複製された処理要求トランザクションを保存するトランザクション保存手段と、前記保存された処理要求トランザクションを読み出して前記新規プログラムに転送するトランザクション転送手段とを含むことを特徴とする。
本発明の第4のプログラムは、第1のプログラムにおいて、前記トランザクション入出力手段は、前記受信した処理要求トランザクションを保存するトランザクション保存手段と、前記保存された処理要求トランザクションを読み出して前記現行プログラムおよび前記新規プログラムに転送するトランザクション転送手段とを含むことを特徴とする。
本発明の第5のプログラムは、第1のプログラムにおいて、前記外部アクセス管理手段は、前記現行プログラムからのアクセス要求の場合には前記外部データを実際にアクセスして、そのアクセス要求結果を前記現行プログラムに返却すると共に、アクセス要求とアクセス要求結果を記憶部に保存し、前記新規プログラムからのアクセス要求の場合には、前記記憶部から前記現行プログラムの対応するアクセス要求結果を抽出し、そのアクセス要求結果を使って前記新規プログラムに返却するアクセス要求結果を生成するものであることを特徴とする。
本発明の第6のプログラムは、第5のプログラムにおいて、前記外部アクセス管理手段は、前記プログラム実行手段と独立に設けられていることを特徴とする。
本発明の第7のプログラムは、第5のプログラムにおいて、前記外部アクセス管理手段は、前記現行プログラムを実行する前記プログラム実行手段に設けられたマスター外部アクセス管理手段と、前記新規プログラムを実行する前記プログラム実行手段に設けられたスレーブ外部アクセス管理手段とで構成されることを特徴とする。
本発明の第8のプログラムは、第7のプログラムにおいて、前記マスター外部アクセス管理手段は、前記現行プログラムからアクセス要求が与えられた場合には、前記外部データを実際にアクセスして、そのアクセス要求結果を前記現行プログラムに返却すると共に、アクセス要求とアクセス要求結果を記憶部に保存し、前記スレーブ外部アクセス管理手段からアクセス要求が与えられた場合には、前記記憶部から前記現行プログラムの対応するアクセス要求結果を抽出し、そのアクセス要求結果を使って前記スレーブ外部アクセス管理手段に返却するアクセス要求結果を生成するものであり、前記スレーブ外部アクセス管理手段は、前記新規プログラムからアクセス要求が与えられたときに、そのアクセス要求を前記マスター外部アクセス管理手段に転送し、前記マスター外部アクセス管理手段から返却されたアクセス要求結果を前記新規プログラムに転送するものであることを特徴とする。
本発明の第9のプログラムは、第1のプログラムにおいて、前記ログ採取手段は、前記現行プログラムおよび前記新規プログラムの応答トランザクションを採取する手段を含むことを特徴とする。
本発明の第10のプログラムは、第9のプログラムにおいて、前記コンピュータを、更に、採取された前記現行プログラムの応答トランザクションと採取された前記新規プログラムの応答トランザクションとを比較し、その差異情報を表示もしくは保存する比較検証手段、として機能させることを特徴とする。
本発明の第11のプログラムは、第1のプログラムにおいて、前記ログ採取手段は、前記現行プログラムおよび前記新規プログラムの前記外部データに対するアクセス要求を採取する手段を含むことを特徴とする。
本発明の第12のプログラムは、第11のプログラムにおいて、前記コンピュータを、更に、採取された前記現行プログラムのアクセス要求と採取された前記新規プログラムのアクセス要求とを比較し、その差異情報を表示もしくは保存する比較検証手段、として機能させることを特徴とする。
本発明の第13のプログラムは、第1のプログラムにおいて、前記ログ採取手段は、前記現行プログラムを実行する前記プログラム実行手段の環境情報および前記新規プログラムを実行する前記プログラム実行手段の環境情報を採取する手段を含むことを特徴とする。
本発明の第14のプログラムは、第13のプログラムにおいて、前記コンピュータを、更に、採取された前記現行プログラムの環境情報と採取された前記新規プログラムの環境情報とを比較し、その差異情報を表示もしくは保存する比較検証手段、として機能させることを特徴とする。
本発明の第15のプログラムは、第1乃至第14の何れかのプログラムにおいて、前記コンピュータを、更に、前記現行プログラムによる処理サービスから前記新規プログラムによる処理サービスに切替えるプログラム切替手段、として機能させることを特徴とする。
本発明の第1のトランザクション処理システムおよび方法ならびにプログラムにあっては、現行プログラムと新規プログラムとを並行して実行し、処理要求元から受信した処理要求トランザクションを現行プログラムおよび新規プログラムの双方に与え、現行プログラムから得られた応答トランザクションを処理要求元に送信し、現行プログラムおよび新規プログラムに関連するログを採取するため、現行プログラムによる処理サービスを停止させずに、別の新規プログラムの動作を現行プログラムの動作と比較させて確認することができる。これによって、新しいプログラムへのシステムの切り替えの安全性をより確実に確認することができる。
本発明の第2のトランザクション処理システムおよび方法ならびにプログラムにあっては、現行プログラムと新規プログラムとを並行して実行し、処理要求元から受信した処理要求トランザクションを複製して現行プログラムおよび新規プログラムの双方に与え、現行プログラムから得られた応答トランザクションを処理要求元に送信し、現行プログラムおよび新規プログラムに関連するログを採取するため、現行プログラムによる処理サービスを停止させずに、別の新規プログラムの動作を現行プログラムの動作と比較させて確認することができる。
本発明の第3のトランザクション処理システムおよび方法ならびにプログラムにあっては、現行プログラムと新規プログラムとを並行して実行し、処理要求元から受信した処理要求トランザクションを複製して現行プログラムに与えると同時に記憶手段を通じて新規プログラムに与え、現行プログラムから得られた応答トランザクションを処理要求元に送信し、現行プログラムおよび新規プログラムに関連するログを採取するため、現行プログラムによる処理サービスを停止させずに、別の新規プログラムの動作を現行プログラムの動作と比較させて確認することができる。また、新規プログラムに与える処理要求トランザクションは記憶手段経由で与えるため、現行プログラムに対する処理要求トランザクションの投入と新規プログラムに対する同じ処理要求トランザクションの投入とを非同期に並行して実行でき、新規プログラムの不具合による現行プログラムへの影響を抑えることができる。
本発明の第4のトランザクション処理システムおよび方法ならびにプログラムにあっては、現行プログラムと新規プログラムとを並行して実行し、処理要求元から受信した処理要求トランザクションを記憶手段に一旦保存し、記憶手段から処理要求トランザクションを読み出して現行プログラムおよび新規プログラムの双方に与え、現行プログラムから得られた応答トランザクションを処理要求元に送信し、現行プログラムおよび新規プログラムに関連するログを採取するため、現行プログラムによる処理サービスを停止させずに、別の新規プログラムの動作を現行プログラムの動作と比較させて確認することができる。また、新規プログラムに与える処理要求トランザクションは記憶手段経由で与えるため、現行プログラムに対する処理要求トランザクションの投入と新規プログラムに対する同じ処理要求トランザクションの投入とを非同期に並行して実行でき、新規プログラムの不具合による現行プログラムへの影響を抑えることができ、さらに、処理要求トランザクションの投入経路が現行プログラムと新規プログラムで同じになるため、現行プログラムと新規プログラムの処理の比較がより正確に行える。
本発明の第5のトランザクション処理システムおよび方法ならびにプログラムにあっては、第1のトランザクション処理システムおよび方法ならびにプログラムと同じ効果が得られると共に、現行プログラムと新規プログラムとで同じ外部データが2度アクセスされる事態を回避でき、また動作確認中の新規プログラムからの予期せぬ不正なアクセス要求によって外部データが破壊されるなどの不測の事態を回避できる。
本発明の第6のトランザクション処理システムおよび方法ならびにプログラムにあっては、第5のトランザクション処理システムおよび方法ならびにプログラムと同じ効果が得られると共に、外部アクセス管理手段がプログラム実行手段と独立しているため、外部アクセス管理手段をネットワークデータ処理を行うネットワークノードの1つとして実装するといったことが可能となる。
本発明の第7のトランザクション処理システムおよび方法ならびにプログラムにあっては、第5のトランザクション処理システムおよび方法ならびにプログラムと同じ効果が得られると共に、外部アクセス管理手段が、現行プログラムを実行するプログラム実行手段に設けられたマスター外部アクセス管理手段と、新規プログラムを実行するプログラム実行手段に設けられたスレーブ外部アクセス管理手段とで構成されるため、外部アクセス管理手段をプログラム実行手段を構成するコンピュータにおけるネットワークアクセスを行うプログラムライブラリの1つとして実装するといったことが可能となる。
本発明の第8のトランザクション処理システムおよび方法ならびにプログラムにあっては、第7のトランザクション処理システムおよび方法ならびにプログラムと同じ効果が得られると共に、現行プログラムと新規プログラムとで同じ外部データが2度アクセスされる事態を回避でき、また動作確認中の新規プログラムからの不正なアクセス要求によって外部データが破壊されるなどの不測の事態を回避できる。
本発明の第9のトランザクション処理システムおよび方法ならびにプログラムは、第1のトランザクション処理システムおよび方法ならびにプログラムと同じ効果が得られると共に、現行プログラムおよび新規プログラムの応答トランザクションどうしを直接比較することが可能である。
本発明の第10のトランザクション処理システムおよび方法ならびにプログラムは、第9のトランザクション処理システムおよび方法ならびにプログラムと同じ効果が得られると共に、比較検証手段によって、現行プログラムの応答トランザクションと新規プログラムの応答トランザクションとの比較、その差異情報の表示もしくは保存を自動的に行うことができる。これによって、切り替えようとしている新しいプログラムに不具合があった場合に、より容易にその不具合を発見することができる。
本発明の第11のトランザクション処理システムにあっては、第10のトランザクション処理システムと同じ効果が得られると共に、比較する応答トランザクションのデータの中で比較する領域、または比較しない領域を指定することができる。
本発明の第12のトランザクション処理システムにあっては、第11のトランザクション処理システムと同じ効果が得られると共に、比較する領域を指定する情報として、比較する領域の先頭アドレスと長さのリストを指定でき、指定した先頭アドレスと長さで特定される比較領域どうしのみを比較することができる。
本発明の第13のトランザクション処理システムにあっては、第11のトランザクション処理システムと同じ効果が得られると共に、比較しない領域を指定する情報として、比較しない領域の先頭アドレスと長さのリストを指定でき、指定した先頭アドレスと長さで特定される領域を除いて比較することができる。
本発明の第14のトランザクション処理システムにあっては、第10のトランザクション処理システムと同じ効果が得られると共に、比較検証において、あらかじめ指定された文字列に囲まれた領域のみを比較することができる。
本発明の第15のトランザクション処理システムにあっては、第10のトランザクション処理システムと同じ効果が得られると共に、比較検証において、あらかじめ指定された文字列を含む行または段落のみを比較することができる。
本発明の第16のトランザクション処理システムにあっては、第10のトランザクション処理システムと同じ効果が得られると共に、比較検証において、構造化された文書データを対象として、あらかじめ指定された文字列に囲まれた領域を除いて比較することができる。
本発明の第17のトランザクション処理システムにあっては、第10のトランザクション処理システムと同じ効果が得られると共に、比較検証において、構造化された文書データを対象として、あらかじめ指定された文字列を含む行もしくは段落を除いて比較することができる。
本発明の第18のトランザクション処理システムにあっては、第1のトランザクション処理システムと同じ効果が得られると共に、現行プログラムおよび新規プログラムの外部データに対するアクセス要求どうしを直接比較することが可能である。
本発明の第19のトランザクション処理システムにあっては、第18のトランザクション処理システムと同じ効果が得られると共に、現行プログラムのアクセス要求と新規プログラムのアクセス要求との比較、その差異情報の表示もしくは保存を自動的に行うことができる。
本発明の第20のトランザクション処理システムにあっては、第1のトランザクション処理システムと同じ効果が得られると共に、現行プログラムを実行するプログラム実行手段の環境情報と新規プログラムを実行するプログラム実行手段の環境情報とを比較することができる。
本発明の第21のトランザクション処理システムにあっては、第1のトランザクション処理システムと同じ効果が得られると共に、現行プログラムの環境情報と新規プログラムの環境情報との比較、その差異情報の表示もしくは保存を自動的に行うことが可能である。
本発明の第22のトランザクション処理システムにあっては、第1乃至第21のトランザクション処理システムと同じ効果が得られると共に、新規プログラムの動作確認後、問題が見つからなければ、現行プログラムから新規プログラムへのトランザクション処理を速やかに切替えることができる。
本発明の第23のトランザクション処理システムにあっては、第22のトランザクション処理システムと同じ効果が得られると共に、現行プログラムを停止させるため、システムのCPU使用率や消費電力を低減することができる。
本発明の第24のトランザクション処理システムにあっては、第22のトランザクション処理システムと同じ効果が得られると共に、現行プログラムを停止させずに新規プログラムと並行して動作させ続けるため、若し、新規プログラムに不具合が発見され、元の現行プログラムによるトランザクション処理に戻す場合に、現行プログラムを一から起動する手間と時間を省くことができる。
本発明の第11のトランザクション処理方法およびプログラムにあっては、第1のトランザクション処理方法およびプログラムと同じ効果が得られると共に、現行プログラムおよび新規プログラムの外部データに対するアクセス要求どうしを直接比較することが可能である。
本発明の第12のトランザクション処理方法およびプログラムにあっては、第11のトランザクション処理方法およびプログラムと同じ効果が得られると共に、現行プログラムのアクセス要求と新規プログラムのアクセス要求との比較、その差異情報の表示もしくは保存を自動的に行うことができる。
本発明の第13のトランザクション処理方法およびプログラムにあっては、第1のトランザクション処理方法およびプログラムと同じ効果が得られると共に、現行プログラムを実行するプログラム実行手段の環境情報と新規プログラムを実行するプログラム実行手段の環境情報とを比較することができる。
本発明の第14のトランザクション処理方法およびプログラムにあっては、第13のトランザクション処理方法およびプログラムと同じ効果が得られると共に、現行プログラムの環境情報と新規プログラムの環境情報との比較、その差異情報の表示もしくは保存を自動的に行うことが可能である。
本発明の第15のトランザクション処理方法およびプログラムにあっては、第1乃至第14のトランザクション処理方法およびプログラムと同じ効果が得られると共に、新規プログラムの動作確認後、問題が見つからなければ、現行プログラムから新規プログラムへのトランザクション処理を速やかに切替えることができる。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
図1を参照すると、本発明の第1の実施の形態にかかるトランザクション処理システム1001は、インターネットブラウザのようなクライアント(端末装置)100からの処理要求トランザクションを受信して、そのトランザクションに応じた処理を行う現行プログラム2が動作するプログラム実行部200と、同じくそのトランザクションに応じた処理を行う新規プログラム3が動作するプログラム実行部300と、クライアント100とプログラム実行部200、300の間にあってトランザクションを複製および転送するトランザクション複製転送部1と、現行プログラム2と新規プログラム3がデータベースシステムやインターネットWebサービスシステムなどの外部システムに存在する外部データ400にアクセスする際にそのアクセスを管理する外部アクセス管理部4と、現行プログラム2の応答トランザクションを保存もしくは出力する現行プログラム応答トランザクション出力部7と、新規プログラム3の応答トランザクションを保存もしくは出力する新規プログラム応答トランザクション出力部8とを含む。
現行プログラム2は、クライアント100に対してサービスを実際に提供するプログラムであり、正常に動作することが既に確認されている。これに対して新規プログラム3は、現行プログラム2と同等の機能を提供するがバージョンが異なるプログラムであり、正常に動作するか否かは未だ確認されていない。プログラム実行部200、300はコンピュータ(中央処理装置、プロセッサ、データ処理装置)で構成されるが、双方のプログラム実行部200と300は必ずしも異なるコンピュータである必要はなく、同じコンピュータであっても良い。
次に、図1及び図2のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
まず、クライアント100において、サービス要求が発生すると(S101)、処理要求トランザクションがクライアント100から送信され(S102)、トランザクション複製転送部1で受信される(S103)。ここで、トランザクションは複製されて、1つは現行の処理プログラム2に処理されるように送信され(S104)、もう1つは新規プログラム3に処理されるように送信される(S105)。
現行プログラム2では、処理要求トランザクションを受信し(S106)、トランザクション処理を実行し(S107)、その処理結果を処理応答トランザクションとしてトランザクション複製転送部1に向けて送信する(S108)。トランザクション複製転送部1は処理応答トランザクションを受信すると(S109)、受信した処理応答トランザクションを現行プログラム応答トランザクション出力部7に送信すると同時に、処理要求元のクライアント100に送信する(S110)。クライアント100は処理応答トランザクションを受信する(S111)。現行プログラム応答トランザクション出力部7は、受信した処理応答トランザクションを内部の記憶装置に保存するか、図示しないディスプレイやプリンタなどの出力装置から出力する。
一方、新規プログラム3では、処理要求トランザクションを受信すると(S112)、トランザクション処理を実行し(S113)、その処理結果を処理応答トランザクションとしてトランザクション複製転送部1に向けて送信する(S114)。トランザクション複製転送部1は、処理応答トランザクションを受信すると(S115)、受信した処理応答トランザクションを新規プログラムトランザクション出力部8に伝達するが、クライアント100には転送しない。新規プログラム応答トランザクション出力部8は、受信した処理応答トランザクションを内部の記憶装置に保存するか、図示しないディスプレイやプリンタなどの出力装置から出力する。
次に、図3を用いて、現行プログラム2および新規プログラム3がデータベースシステムやインターネットWebサービスシステムなどの外部システムに存在する外部データ400にアクセスを行う場合の外部アクセス管理部4の動作について詳細に説明する。
現行プログラム2において外部データ400へのアクセスがあると、外部アクセス管理部4では、その外部データ400へのアクセス要求を受信する(S201、S202)。その要求が、現行プログラム2からのものであれば(S203)、実際に外部データ400をアクセスするために外部のシステムへアクセス要求を送信する(S204)。外部のシステムがその要求を処理し、応答があると、外部アクセス管理部4では、そのアクセス応答を受信する(S205)。そして、その応答を現行プログラム2に送信する(S206)。もし、外部のシステムからの応答がなく、何らかのエラー結果があれば、エラー結果を送信する。これらのアクセス情報は、以下に述べるように新規プログラム3からのアクセスの際に利用できるように、外部アクセス管理部4内に備わる保存部4aに保存される(S207)。すなわち、現行プログラム2から1回アクセス要求が出される毎に、そのアクセス要求を一意に識別するためのアクセス要求情報4bとそのアクセス要求結果情報4cとの組が保存部4aに保存される。アクセス要求結果情報4cには、読み込みや書き込みが成功したか失敗したかを示すアクセス結果と、読み込みアクセスの場合の読み込まれたデータとが含まれる。
新規プログラム3において外部データ400へのアクセスがあると、外部アクセス管理部4では、その外部データへのアクセス要求を受信する(S201、S202)。その要求が、新規プログラム3からのものであれば(S203)、同じアクセス要求が、現行プログラム2から既に行われているかどうかを保存部4aの内容を調べてチェックする(S210)。もし、現行プログラム2からの同じアクセス要求にかかるアクセス要求情報4bがまだ存在しなければ、所定のタイムアウト時間だけ、繰り返しチェックを行い(S213)、タイムアウト時には、新規プログラム3にエラー結果を送信する(S214)。もし、現行プログラム2からの同じアクセス要求にかかるアクセス要求情報4bがあれば、それに対応するアクセス要求結果情報4cに応答情報もしくは何らかのエラー結果が保存されているので、それを抽出し(S211)、新規プログラム3に外部データ400からのアクセス結果として送信する(S212)。
つまり、現行プログラム2が外部データ400から読み込みを行う場合、読み込みを行ったデータと読み込み結果はアクセス要求結果情報4cとして保存される。新規プログラム3が外部データ400から読み込みを行う場合、保存されている現行プログラム2が読み込んだデータおよびその読み込み結果が利用される。いわゆるキャッシュデータの読み込みとほぼ同じ動作を行う。現行プログラム2が外部データへ書き込みを行う場合は、通常通り書き込みは行われ、その書き込み結果がアクセス要求結果情報4cとして保存される。新規プログラム3が外部データ400へ書き込みを行う場合は、実際の書き込みは行われず、アクセス要求結果情報4cに保存されている現行プログラム2が書き込んだ際の書き込み結果が新規プログラム3に返却される。
次に、本実施の形態の効果について説明する。本実施の形態では、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、現行プログラム2によるオンライン業務に影響を与えずに、新規プログラム3を並行して実行することが可能である。また、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作を確認することができる。
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
図4を参照すると、本発明の第2の実施の形態にかかるトランザクション処理システム1002は、図1に示した第1の実施の形態にかかるトランザクション処理システム1001における外部アクセス管理手段4を、マスター外部アクセス管理部4Aとスレーブ外部アクセス管理部4Bとに分離し、それぞれ現行プログラム2を実行するプログラム実行部200と、新規プログラム3を実行するプログラム実行部300に含むように構成されている。
次に、図4及び図5のフローチャートを用いて、マスター外部アクセス管理部4Aの動作について詳細に説明する。
現行プログラム2において、外部データ400へのアクセスがあると(S301)、マスター外部アクセス管理部4Aは、外部データ400へのアクセス要求を受信し(S302)、そのアクセス要求を外部データ400に送信し(S303)、外部データ400からの応答を受信し(S304)、さらに現行プログラム2にその応答を送信し(S305)、そのアクセス情報を内部の保存部4aに保存する(S306)。アクセス情報の保存は外部アクセス管理部4の場合と同様に行われる。次に新規プログラム3からの同一のアクセス要求があるかどうかをチェックし(S307)、もしあればその応答を保存部4aから抽出し、送信する(S308)。ここでは、1つのプロセスとして、説明を行ったが、現行プログラム2からの要求の受信および応答の転送と保存を行うS302からS306の処理と、新規プログラム3からのアクセスに応答して、外部データ400から応答を抽出し、送信するS307からS308の処理は、別プロセスでもよい。
次に、図4及び図6のフローチャートを用いて、スレーブ外部アクセス管理部4Bの動作について詳細に説明する。
新規プログラム3において、外部データ400へのアクセスがあると(S401)、マスター外部アクセス管理部4Aに対して、同一のアクセスが現行プログラム2で実行されていれば、そのアクセス結果を送信するように要求する(S402)。もし、マスター外部アクセス管理部4Aから応答があれば(S403)、それを外部データ400からのアクセス結果として受信する(S404)。もし、マスター外部アクセス管理部4Aから応答がなければ(S403)、所定のタイムアウト時間だけ、応答のチェックを繰り返す(S405)。タイムアウト時には、エラー処理を行う(S406)。
次に、本発明の第2の実施の形態の効果について説明する。
本実施の形態では、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能となっており、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作検証を行うことができる。
さらに、本実施の形態では、第1の実施の形態における外部アクセス管理手段4を、現行プログラム2および新規プログラム3を実行する各プログラム実行部200,300に含むように構成しているので、第1の実施の形態の効果に加え、より正確な外部アクセスを行うことができる。その理由は、第1の実施の形態では、外部データ400へのアクセスを行う通信の経路上に外部アクセス管理部4を設けて、要求および応答を代理転送しているので、接続情報がこのような代理接続の構成と、通常の直接接続の構成とでは異なる場合があるためである。例えば、外部アクセス管理部4が外部データ400に接続を確立できなくても、プログラムからみると、外部アクセス管理部4への接続を確立し、その後エラー情報が通信されることになり、そのエラー状態は直接接続しようとして接続できないエラー状態と異なる。第2の実施の形態では、プログラム実行部を構成するコンピュータ内部のマスター外部アクセス管理部4Aからの接続であるので、そのような差異は発生しない。
ただし、第2の実施の形態では、コンピュータ内部での処理に変更を加えることになるので、コンピュータ内部の処理に影響する場合があり、プログラムによっては、第1の実施の形態の方が好適である場合がある。実装上、第1の実施の形態の外部アクセス管理部4は、ネットワークデータ処理を行うネットワークノードの1つとして実装され、第2の実施の形態のマスター外部アクセス管理部4Aおよびスレーブ外部アクセス管理部4Bは、ネットワークアクセスを行うプログラムライブラリの1つとして実装され、第1の実施の形態では、コンピュータに含まれるソフトウェアを変更する必要がない。
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
図7を参照すると、本発明の第3の実施の形態にかかるトランザクション処理システム1003は、インターネットブラウザのようなクライアント100からの処理要求トランザクションを受信して、そのトランザクションに応じた処理を行う現行プログラム2が動作するプログラム実行部(コンピュータ、中央処理装置、プロセッサ、データ処理装置など)200と、同じくそのトランザクションに応じた処理を行う新規プログラム3が動作するプログラム実行部300と、クライアント100とプログラム実行部200の間にあってトランザクションを複製転送するトランザクション複製転送部1'と、現行プログラム2と新規プログラム3がデータベースシステムやインターネットWebサービスシステムなどの外部システムに存在する外部データ400にアクセスする際にそのアクセスを管理する外部アクセス管理部4と、トランザクション複製転送部1'の処理する処理要求トランザクションを保持する要求トランザクション保存部5と、その保持されたトランザクションから適切なトランザクションを抽出し、新規プログラム3に転送するトランザクション転送部6と、現行プログラム2の応答トランザクションを保存もしくは出力する現行プログラム応答トランザクション出力部7と、新規プログラム3の応答トランザクションを保存もしくは出力する新規プログラム応答トランザクション出力部8とを含む。
次に、本発明の第3の実施の形態の動作を、第1の実施の形態との相違点を中心に説明する。
トランザクション複製転送部1'は、クライアント100とプログラム実行部200の間にあって、クライアント100から受信したトランザクション処理要求をプログラム実行部200の現行プログラム2に転送する。その際、受信したトランザクション処理要求を複製し、複製したトランザクション処理要求を要求トランザクション保存部5に保存する。また、トランザクション複製転送部1'は、現行プログラム2から処理応答トランザクションを受信すると、それをクライアント100に転送する。その際、トランザクション複製転送部1'は、処理応答トランザクションを複製し、複製した処理応答トランザクションを現行プログラム応答トランザクション出力部7に伝達する。現行プログラム応答トランザクション出力部7は、受け取った処理応答トランザクションを内部の記憶部に保存するか、もしくは図示しないディスプレイやプリンタなどの出力装置から出力する。
要求トランザクション保存部5は、トランザクション転送部6から読み込み可能となっている。トランザクション転送部6は、新たに要求トランザクション保存部5に保持された処理要求トランザクションを新規プログラム3に送信し、新規プログラム3がその処理要求トランザクションを処理した後に送信してくる処理応答トランザクションを受信する。トランザクション転送部6は受信した処理応答トランザクションを、新規プログラム応答トランザクション出力部8に伝達する。新規プログラム応答トランザクション出力部8は、受け取った処理応答トランザクションを内部の記憶部に保存するか、もしくは図示しないディスプレイやプリンタなどの出力装置から出力する。
次に、本発明の第3の発明を実施するための形態の効果について説明する。
本実施の形態では、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能となっており、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作検証を行うことができる。
さらに、本発明の実施の形態では、トランザクション複製転送部1'は、新規プログラム3と直接通信を行わないので、新規プログラム3の処理と同期することはない。そのため、現行プログラム2を実行しながら、新規プログラム3を非同期で並行して実行することが可能となっている。これは、新規プログラム3の動作に不具合があった場合に、その不具合と現行サービスを行っている現行プログラム2を含む系統のトランザクション処理とは独立しているので、その不具合の影響を少なくするという効果がある。
さらに、図7に示すように、別のトランザクション転送部6'、新規プログラム3'、そのプログラムを動作させるプログラム実行部300'を複数用意し、要求トランザクション保存部5を複数のトランザクション転送部6,6'からアクセス可能とすることで、複数の新規プログラム3,3'を並行して動作させることが可能となる。これによって、一度に複数のバージョンの新規プログラム3,3'の動作を確認することができる。
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。
図8を参照すると、本発明の第4の実施の形態にかかるトランザクション処理システム1004は、インターネットブラウザのようなクライアント100からの処理要求トランザクションを受信して、そのトランザクションに応じた処理を行う現行プログラム2が動作するプログラム実行部(コンピュータ、中央処理装置、プロセッサ、データ処理装置など)200と、同じくそのトランザクションに応じた処理を行う新規プログラム3が動作するプログラム実行部300と、クライアント100からの処理要求トランザクションを保存する要求トランザクション保存部5と、その保持されたトランザクションから適切なトランザクション抽出し、現行プログラム2、新規プログラム3にそれぞれ転送するトランザクション転送部6A,6Bと、現行プログラム2の応答トランザクションを保存もしくは出力する現行プログラム応答トランザクション出力部7と、新規プログラム3の応答トランザクションを保存もしくは出力する新規プログラム応答トランザクション出力部8とを含む。
本実施の形態では、第3の実施の形態と同様に、新規プログラム3の動作に不具合があった場合に、その不具合と現行サービスを行っている現行プログラム2を含む系統のトランザクション処理とは独立しているので、その不具合の影響を少なくするという効果がある。
また、第3の実施の形態と比較して、クライアント100からの要求処理トランザクションを保存後、抽出して、現行プログラム2への転送処理を行っているので、その応答速度は劣ることになる。しかしながら、トランザクション複製転送部が不要であるので、システム構築が容易となる効果がある。さらに、現行プログラム2のトランザクション処理経路と、新規プログラム3のトランザクション処理経路とが、要求トランザクション保存部5とトランザクション転送部6A,6Bを経由している点で同じになり、現行プログラム2と新規プログラム3の処理の比較がより正確に行えるという効果がある。
勿論、本実施の形態では、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能となっており、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作検証を行うことができる。
次に、本発明の第5の発明を実施するための形態について図面を参照して詳細に説明する。
図9を参照すると、本発明の第5の実施の形態にかかるトランザクション処理システム1005は、インターネットブラウザのようなクライアント100からの処理要求トランザクションを受信して、そのトランザクションに応じた処理を行う現行プログラム2が動作するプログラム実行部(コンピュータ、中央処理装置、プロセッサ、データ処理装置など)200と、同じくそのトランザクションに応じた処理を行う新規プログラム3が動作するプログラム実行部300と、クライアント100とコンピュータ200の間にあってトランザクションを複製および転送するトランザクション複製転送部1"と、現行プログラム2と新規プログラム3がデータベースシステムやインターネットWebサービスシステムなどの外部システムに存在する外部データ400にアクセスする際にそのアクセスを管理する外部アクセス管理部4と、トランザクション複製転送部1"の処理するトランザクションを保持する要求トランザクション保存部5と、その保持されたトランザクションから適切なトランザクションを抽出し、新規プログラム3に転送するトランザクション転送部6"と、現行プログラム2の応答トランザクションを保存する現行プログラム応答トランザクション出力部7と、新規プログラム3の応答トランザクションを保存する新規プログラム応答トランザクション出力部8と、これら応答トランザクション出力部7,8に保存されている対応する応答トランザクションどうしを比較する比較検証部9とを含む。
すなわち、本発明の第5の実施の形態にかかるトランザクション処理システム1005は、図7の第3の実施の形態にかかるトランザクション処理システム1003における現行プログラム応答トランザクション出力部7と新規プログラム応答トランザクション出力部8との間に比較検証部9を設けた点で相違し、それ以外は第3の実施の形態と同じである。
次に、図10のフローチャートを参照して、比較検証部9の動作について詳細に説明する。比較検証部9は、順次各トランザクションについて、比較検証を実行する。まず最初の比較検証のトランザクションを選択し(S501)、現行プログラム2の応答トランザクションを現行プログラム応答トランザクション出力部7から読み込む(S502)。次に、そのトランザクションに対応する新規プログラム3の応答トランザクションを新規プログラム応答トランザクション出力部8から読み込む(S503)。次に、各応答トランザクションから比較検証領域の抽出を行う(S504)。この比較検証領域の抽出の詳細は後述する。次に抽出された領域のデータが一致しているかどうか比較検証処理を行う(S505)。もし差異があれば、図示しないディスプレイに差異情報の表示を行うか、もしくは差異情報を内部の記憶部に保存する(S507)。もし次のトランザクションがなければ、新たなトランザクションがあるまで待つ(S508)。もし、次のトランザクションがあれば、その次のトランザクションの比較検証に選択を移し、上記の処理を繰り返す(S501)。
S504の比較領域の抽出について説明する。比較領域の抽出ステップS504では、例えば、応答トランザクションがXMLのような構造化テキストデータである場合、あらかじめ比較検証の対象となるタグ、もしくは比較検証の除外対象となるタグを指定しておき、指定されたタグで囲まれた領域、もしくは指定されたタグで囲まれていない領域を抽出する。または、指定されたタグが含まれる行や段落、もしくは指定されたタグが含まれていない行や段落を抽出してもよい。このような、構造化テキストデータの処理に関しては広く知られた技術であるので、ここでは詳しい説明は省く。また、応答トランザクションが一般的なデータであっても、あらかじめ比較対象領域または比較対象外領域が、先頭アドレスと長さで指定されていれば、比較領域の抽出を行うことが可能である。
比較領域の指定は、利用者が設定ファイルに記述し、それを比較検証部9が読み込む手法であっても良いし、また現行プログラム2を冗長に実行し、複数の現行プログラム2の処理応答トランザクションを比較することで、比較対象領域となる同一であるべき領域、もしくは比較対象外領域となる差異があってもよい領域を自動的に抽出してもよい。
このように本発明の第5の実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成され、現行プログラム2を実行しながら、新規プログラム3を並行して実行し、それらのプログラムのクライアント100への出力である処理応答を比較検証し、新規プログラム3の処理動作と現行プログラム2の処理動作とを容易に比較することができる効果がある。
次に、本発明の第6の実施の形態について図面を参照して詳細に説明する。
図11を参照すると、本発明の第6の実施の形態にかかるトランザクション処理システム1006は、インターネットブラウザのようなクライアント100からの処理要求トランザクションを受信して、そのトランザクションに応じた処理を行う現行プログラム2が動作するプログラム実行部(コンピュータ、中央処理装置、プロセッサ、データ処理装置など)200と、同じくそのトランザクションに応じた処理を行う新規プログラム3が動作するプログラム実行部300と、クライアント100とプログラム実行部200、300の間にあってトランザクションを複製転送するトランザクション複製転送部1と、現行プログラム2と新規プログラム3がデータベースシステムやインターネットWebサービスシステムなどの外部システムに存在する外部データ400にアクセスする際にそのアクセスを管理する外部アクセス管理部4'と、現行プログラム2が外部データ400に対して行ったアクセス要求を保存する現行プログラム外部アクセス保存部10と、新規プログラム3が外部データ400に対して行ったアクセス要求を保存する新規プログラム外部アクセス保存部11と、これらの外部アクセス保存部10,11に保存されている対応する外部データ400へのアクセス要求どうしを比較する比較検証部12とを含む。
すなわち、本実施の形態のトランザクション処理システム1006は、図1に示した第1の実施の形態のトランザクション処理システム1001における現行プログラム応答トランザクション出力部7および新規プログラム応答トランザクション出力部8に代えて、現行プログラム外部アクセス保存部10、新規プログラム外部アクセス保存部11および比較検証部12を設けた点で相違する。
次に、本発明の第6の実施の形態に含まれる構成にあって、第1の実施の形態と異なる構成を中心にその動作を説明する。外部アクセス管理部4'は、図1に示した第1の実施の形態における外部アクセス管理部4と同様に、現行プログラム2および新規プログラム3の外部データアクセスを管理する。その際、外部アクセス管理部4'は、各プログラム2、3の外部データ400へのアクセス要求を現行プログラム外部アクセス保存部10および新規プログラム外部アクセス保存部11に渡す。
現行プログラム外部アクセス保存部10は、現行プログラム2が外部データ400に対して行ったアクセス要求を保存し、新規プログラム外部アクセス保存部11は、新規プログラム3が外部データ400に対して行ったアクセス要求を保存する。比較検証部12は、現行プログラム外部アクセス保存部10および新規プログラム外部アクセス保存部11に保存された対応する外部データ400へのアクセス要求どうしを比較し、差異があるかどうかを検証する。そして、検証結果である差異情報を図示しないディスプレイに表示するか、あるいは内部の記憶部に記憶する。
このように本実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成され、現行プログラム2を実行しながら、新規プログラム3を並行して実行し、それらのプログラムの外部データ400への出力であるアクセス要求を比較検証し、新規プログラム3の処理動作(経過)を現行プログラム2の処理動作(経過)と容易に比較することができる効果がある。
次に、本発明の第7の発明を実施するための形態について図面を参照して詳細に説明する。
図12を参照すると、本発明の第7の実施の形態にかかるトランザクション処理システム1007は、インターネットブラウザのようなクライアント100からの処理要求トランザクションを受信して、そのトランザクションに応じた処理を行う現行プログラム2が動作するプログラム実行部(コンピュータ、中央処理装置、プロセッサ、データ処理装置など)200と、同じくそのトランザクションに応じた処理を行う新規プログラム3が動作するプログラム実行部300と、クライアント100とプログラム実行部200、300の間にあってトランザクションを複製および転送するトランザクション複製転送部1と、現行プログラム2と新規プログラム3がデータベースシステムやインターネットWebサービスシステムなどの外部システムに存在する外部データ400にアクセスする際にそのアクセスを管理する外部アクセス管理部4と、プログラム実行部200から環境情報を取得して保存する現行プログラム環境情報保存部21と、プログラム実行部300から環境情報を取得して保存する新規プログラム環境情報保存部22と、双方の保存部21、22に保存された環境情報を比較検証し、その結果を保存あるいは出力する比較検証部20とを含む。ここで、環境情報とは、プログラム実行部を構成するコンピュータの使用状態、稼動中プロセスの実行状態、CPU使用率、メモリの使用状態などのことである。
すなわち、本実施の形態のトランザクション処理システム1007は、図1に示した第1の実施の形態のトランザクション処理システム1001における現行プログラム応答トランザクション出力部7および新規プログラム応答トランザクション出力部8に代えて、現行プログラム環境情報保存部21、新規プログラム環境情報保存部22および比較検証部20を設けた点で相違する。
次に、本発明の第7の実施の形態に含まれる構成にあって、第1の実施の形態と異なる構成を中心にその動作について説明する。現行プログラム環境情報保存部21および新規プログラム環境情報保存部22は、現行プログラム2の動作するプログラム実行部200および新規プログラム3の動作するプログラム実行部300の環境情報を採取して保存する。例えば、プログラム実行部200、300を構成するコンピュータがアクティブがどうか、そのコンピュータ内のプロセスがアクティブかどうか、そのコンピュータもしくはプロセスの負荷、メモリ使用率、IO使用率などを監視する。このような環境情報を監視するソフトウェアは、すでに広く利用され、知られているので、ここでは詳細な説明を省く。
比較検証部20は、現行プログラム2の稼動するプログラム実行部200から採取された環境情報を現行プログラム環境情報保存部21から入力し、新規プログラム3の稼動するプログラム実行部300から採取された環境情報を新規プログラム環境情報保存部22から入力し、双方を比較検証して、ある環境情報のデータの差分値があらかじめ指定された値以上に異なる場合、もしくはいくつかの環境情報のデータを使った評価式の値があらかじめ指定された閾値を超えれば、その差異情報を内部の記憶部に保存するか、もしくはディスプレイやプリンタなどの出力装置に出力する。評価式とは、たとえばプロセスのCPU負荷平均の差分をd1、メモリ使用率をd2、IO使用率をd3とし、それぞれ重み係数wn=(1≦n≦3)との積の和(w1・d1+w2・d2+w3・d3)のようなものである。
このように本実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成され、現行プログラム2を実行しながら、新規プログラム3を並行して実行し、それらの実行処理中の環境情報を採取して比較検証部20を用いて比較検証することにより、新規プログラム3の処理動作(経過)を現行プログラム2の処理動作(経過)と容易に比較することができる効果がある。
次に、本発明の第8の実施の形態について図面を参照して詳細に説明する。
図13を参照すると、本発明の第8の実施の形態にかかるトランザクション処理システム1008は、図1に示した第1の実施の形態にかかるトランザクション処理システム1001にプログラム切替部32を付加した構成となっている。プログラム切替部32は、利用者もしくは他プログラムの指示を受けて、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える手段である。
次に、図14のフローチャートを参照して、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える動作について詳細に説明する。
新規プログラム3の動作確認を終え、現行プログラム2に代えて新規プログラム2で処理サービスを提供する場合、プログラム切替部32は、利用者もしくは他プログラムからの指示を受けて、図14に示されるプログラム切替処理を開始する。まず、プログラム切替部32は、トランザクション複製転送部1に対してトランザクションの受信停止を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を停止させる(S601)。このとき、トランザクション複製転送部1は、クライアント100からの新たなトランザクション要求の受信自体を停止しても良いし、要求は受信して内部の記憶部に記憶し、現行プログラム2および新規プログラム3への転送は停止するようにしても良い。
次にプログラム切替部32は、現行プログラム2及び新規プログラム3に投入されたトランザクションについて処理が完了しているかどうかを確認する(S602)。この確認は、例えば、トランザクション複製転送部1が現行プログラム2および新規プログラム3に投入した全てのトランザクションについて、現行プログラム応答トランザクション出力部7および新規プログラム応答トランザクション出力部8に応答トランザクションが記録されたかどうかを調べることにより可能である。
現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、プログラム切替部32は、現行プログラム2の動作を停止させ(S603)、外部アクセス管理部4の動作およびトランザクション複製転送部1の動作をテスト併用モードの動作から新規運用モードの動作に切替えることにより(S604、S605)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、新規プログラム3への新たなトランザクションの転送を再開させる(S606)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図3を参照して説明した動作を意味する。他方、新規運用モードの動作とは、新規プログラム3から出されたアクセス要求を実際に外部データ400に出して、そのアクセス結果を新規プログラム3に返却する動作を意味する。このような動作の切替えを行う外部アクセス管理部4の処理例を図15に示す。図15において、S201〜S214は図3と同じである。S701は、テスト併用モードか、新規運用モードかを判別するステップであり、テスト併用モードであれば図3で説明したステップS203〜S207、S210〜S214を実行する(S707)。他方、新規運用モードであれば、新規プログラム3からのアクセス要求かどうかを判別し(S702)、新規プログラム3からのアクセス要求であれば、実際に外部データ400をアクセスするために外部のシステムへアクセス要求を送信し(S703)、外部のシステムがその要求を処理し、応答があると、そのアクセス応答を受信し(S704)、このアクセス応答を新規プログラム3に送信する(S705)。新規運用モードになる前に現行プログラム2は停止されているので、現行プログラム2からアクセス要求が出されることはないが、何らかの理由で現行プログラム2が停止できず、現行プログラム2からアクセス要求が出された場合には、そのアクセス要求は無効化する(S706)。
トランザクション複製転送部1におけるテスト併用モードの動作とは、図1のトランザクション複製転送部1と同じ動作を意味する。他方、新規運用モードの動作とは、クライアント100から受信したトランザクションを新規プログラム3にのみ転送し、新規プログラム3から受信した応答トランザクションをクライアント100に返却する動作を意味する。
以上の例では、プログラム切替えによって現行プログラム2を停止させ、新規プログラム3のみが動作する形態としたが、現行プログラム2を停止させずに新規プログラム3と並行して動作させておくこともできる。この場合の切替え動作について図16のフローチャートを参照して以下説明する。
図16において、S601、S602は図14と同じである。プログラム切替部32は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、次に、外部アクセス管理部4の動作およびトランザクション複製転送部1の動作をテスト併用モードの動作から新規多重運用モードの動作に切替えることにより(S811、S812)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を再開させる(S813)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図3を参照して説明した動作を意味する。他方、新規多重運用モードの動作とは、図3を参照して説明した動作において新規プログラム3に対する動作と現行プログラム2に対する動作とを逆にした動作をを意味する。このような動作の切替えを行う外部アクセス管理部4の処理例を図17に示す。図17において、S201〜S214は図3と同じである。S901は、テスト併用モードか、新規多重運用モードかを判別するステップである。S902は、現行プログラムからのアクセス要求かどうかを判別するステップである。S903は、新規プログラムからのアクセス要求かどうかを判別するステップである。テスト併用モードで且つ現行プログラム2からのアクセス要求か、新規多重運用モードで且つ新規プログラム3からのアクセス要求であれば、図3で説明したステップS204〜S207を実行する(S904)。他方、テスト併用モードで且つ新規プログラム3からのアクセス要求か、新規多重運用モードで且つ現行プログラム2からのアクセス要求であれば、図3で説明したステップS210〜S214を実行する(S905)。但し、S210中の「現行プログラム」は、現行プログラム2からのアクセス要求を処理する場合には「新規プログラム」になる。
トランザクション複製転送部1におけるテスト併用モードの動作とは、図1のトランザクション複製転送部1と同じ動作を意味する。他方、新規多重運用モードの動作とは、クライアント100から受信したトランザクションを複製して新規プログラム3および現行プログラム2に転送し、新規プログラム3から受信した応答トランザクションをクライアント100に返却する動作を意味する。
このように現行プログラム2を停止させずにプログラム実行部200で動かしておくことで、若し、新規プログラム3に不具合が見つかったために再びテスト併用モードに切替えて現行プログラム2を用いてサービスを提供する場合に、現行プログラム2を再起動する手間と時間を省略できる利点がある。
以上の例では、現行プログラム2および新規プログラム3の動作するプログラム実行部200、300を変えずにプログラム切替えを行ったが、現行プログラム2の稼動するプログラム実行部200で新規プログラム3を稼動させることで、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替えることもできる。この場合の切替え動作について図18のフローチャートを参照して以下説明する。
図18において、S601、S602は図14と同じである。プログラム切替部32は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、次に、現行プログラム2および新規プログラム3を停止させる(S1001)。次に、プログラム実行部200に新規プログラム3をロードするとともに、プログラム実行部300に現行プログラム2をロードし(S1002)、それぞれの実行部200、300でそれらのプログラム3、2を起動する(S1003)。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、新規プログラム3および現行プログラム2への新たなトランザクションの転送を再開させる(S1004)。
このプログラム入替えによるプログラム切替え方法は、サービス停止期間が若干長くなるものの、外部アクセス管理部4やトランザクション複製転送部1の動作を切替える必要がない利点がある。
このように本実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能であり、また、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作を確認することができ、そして、現行プログラム2から新規プログラム3へトランザクション処理を切替えることができるように構成されているため、新規プログラム3の動作確認が終わり次第、スムーズに処理プログラムを切替えることができる効果がある。
次に、本発明の第9の実施の形態について図面を参照して詳細に説明する。
図19を参照すると、本発明の第9の実施の形態にかかるトランザクション処理システム1009は、図4に示した第2の実施の形態にかかるトランザクション処理システム1002にプログラム切替部32-1を付加した構成となっている。プログラム切替部32-1は、利用者もしくは他プログラムの指示を受けて、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える手段である。
次に、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える動作について詳細に説明する。なお、その際の動作の流れは第8の実施の形態の動作説明に用いた図14のフローチャートと同じなので、図14を参照して説明する。
新規プログラム3の動作確認を終え、現行プログラム2に代えて新規プログラム2で処理サービスを提供する場合、プログラム切替部32-1は、利用者もしくは他プログラムからの指示を受けて、図14に示されるプログラム切替処理を開始する。まず、プログラム切替部32-1は、トランザクション複製転送部1に対してトランザクションの受信停止を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を停止させる(S601)。このとき、トランザクション複製転送部1は、クライアント100からの新たなトランザクション要求の受信自体を停止しても良いし、要求は受信して内部の記憶部に記憶し、現行プログラム2および新規プログラム3への転送は停止するようにしても良い。
次にプログラム切替部32-1は、現行プログラム2及び新規プログラム3に投入されたトランザクションについて処理が完了しているかどうかを確認する(S602)。この確認は、例えば、トランザクション複製転送部1が現行プログラム2および新規プログラム3に投入した全てのトランザクションについて、現行プログラム応答トランザクション出力部7および新規プログラム応答トランザクション出力部8に応答トランザクションが記録されたかどうかを調べることにより可能である。
現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、プログラム切替部32-1は、現行プログラム2の動作を停止させ(S603)、マスター外部アクセス管理部4A、スレーブ外部アクセス管理部4Bの動作およびトランザクション複製転送部1の動作をテスト併用モードの動作から新規運用モードの動作に切替えることにより(S604、S605)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、新規プログラム3への新たなトランザクションの転送を再開させる(S606)。
マスター外部アクセス管理部4Aにおけるテスト併用モードの動作とは、図5を参照して説明した動作を意味し、スレーブ外部アクセス管理部4Bにおけるテスト併用モードの動作とは、図6を参照して説明した動作を意味する。他方、外部アクセス管理部4Aにおける新規運用モードの動作とは、もし現行プログラム2からアクセス要求が出された場合にはそれを無効化する動作を意味し、スレーブ外部アクセス管理部4Bにおける新規運用モードの動作とは、新規プログラム3から出されたアクセス要求をマスター外部アクセス管理部4Aを経由せずに直接に外部データ400に出して、そのアクセス結果を新規プログラム3に返却する動作を意味する。
トランザクション複製転送部1におけるテスト併用モードの動作とは、図4のトランザクション複製転送部1と同じ動作を意味する。他方、新規運用モードの動作とは、クライアント100から受信したトランザクションを新規プログラム3にのみ転送し、新規プログラム3から受信した応答トランザクションをクライアント100に返却する動作を意味する。
以上の例では、プログラム切替えによって現行プログラム2を停止させ、新規プログラム3のみが動作する形態としたが、現行プログラム2を停止させずに新規プログラム3と並行して動作させておくこともできる。この場合の流れは第8の実施の形態の動作説明に用いた図16のフローチャートと同じなので、図16を参照して説明する。
プログラム切替部32-1は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、マスター外部アクセス管理部4A、スレーブ外部アクセス管理部4Bの動作およびトランザクション複製転送部1の動作をテスト併用モードの動作から新規多重運用モードの動作に切替えることにより(S811、S812)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を再開させる(S813)。
マスター外部アクセス管理部4Aにおけるテスト併用モードの動作とは、図5を参照して説明した動作を意味し、スレーブ外部アクセス管理部4Bにおけるテスト併用モードの動作とは、図6を参照して説明した動作を意味する。他方、マスター外部アクセス管理部4Aにおける新規多重運用モードの動作とは、図6を参照して説明した動作を意味し、スレーブ外部アクセス管理部4Bにおける新規多重運用モードの動作とは、図5を参照して説明した動作を意味する(但し、図5および図6中、「現行プログラム」は「新規プログラム」に読み替え、「新規プログラム」は「現行プログラム」に読み替える)。
トランザクション複製転送部1におけるテスト併用モードの動作とは、図4のトランザクション複製転送部1と同じ動作を意味する。他方、新規多重運用モードの動作とは、クライアント100から受信したトランザクションを複製して新規プログラム3および現行プログラム2に転送し、新規プログラム3から受信した応答トランザクションをクライアント100に返却する動作を意味する。
このように現行プログラム2を停止させずにプログラム実行部200で動かしておくことで、若し、新規プログラム3に不具合が見つかったために再びテスト併用モードに切替えて現行プログラム2を用いてサービスを提供する場合に、現行プログラム2を再起動する手間と時間を省略できる利点がある。
以上の例では、現行プログラム2および新規プログラム3の動作するプログラム実行部200、300を変えずにプログラム切替えを行ったが、現行プログラム2の稼動するプログラム実行部200で新規プログラム3を稼動させることで、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替えることもできる。この場合の流れは第8の実施の形態の動作説明に用いた図18のフローチャートと同じなので、図18を参照して説明する。
プログラム切替部32-1は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、現行プログラム2および新規プログラム3を停止させる(S1001)。次に、プログラム実行部200に新規プログラム3をロードするとともに、プログラム実行部300に現行プログラム2をロードし(S1002)、それぞれの実行部200、300でそれらのプログラム3、2を起動する(S1003)。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、新規プログラム3および現行プログラム2への新たなトランザクションの転送を再開させる(S1004)。
このプログラム入替えによるプログラム切替え方法は、サービス停止期間が若干長くなるものの、マスター外部アクセス管理部4A、スレーブ外部アクセス管理部4Bやトランザクション複製転送部1の動作を切替える必要がない利点がある。
このように本実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能であり、また、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作を確認することができ、そして、現行プログラム2から新規プログラム3へトランザクション処理を切替えることができるように構成されているため、新規プログラム3の動作確認が終わり次第、スムーズに処理プログラムを切替えることができる効果がある。
次に、本発明の第10の実施の形態について図面を参照して詳細に説明する。
図20を参照すると、本発明の第10の実施の形態にかかるトランザクション処理システム1010は、図7に示した第3の実施の形態にかかるトランザクション処理システム1003にプログラム切替部32-2を付加した構成となっている。プログラム切替部32-2は、利用者もしくは他プログラムの指示を受けて、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える手段である。
次に、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える動作について詳細に説明する。なお、その際の動作の流れは第8の実施の形態の動作説明に用いた図14のフローチャートと同じなので、図14を参照して説明する。
新規プログラム3の動作確認を終え、現行プログラム2に代えて新規プログラム2で処理サービスを提供する場合、プログラム切替部32-2は、利用者もしくは他プログラムからの指示を受けて、図14に示されるプログラム切替処理を開始する。まず、プログラム切替部32-2は、トランザクション複製転送部1'に対してトランザクションの受信停止を指示することにより、現行プログラム2および要求トランザクション保存部5への新たなトランザクションの転送を停止させる(S601)。このとき、トランザクション複製転送部1'は、クライアント100からの新たなトランザクション要求の受信自体を停止しても良いし、要求は受信して内部の記憶部に記憶し、現行プログラム2および要求トランザクション保存部5への転送は停止するようにしても良い。
次にプログラム切替部32-2は、現行プログラム2及び新規プログラム3に投入されたトランザクションについて処理が完了しているかどうかを確認する(S602)。この確認は、例えば、トランザクション複製転送部1'が現行プログラム2および新規プログラム3に投入した全てのトランザクションについて、現行プログラム応答トランザクション出力部7および新規プログラム応答トランザクション出力部8に応答トランザクションが記録されたかどうかを調べることにより可能である。
現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、プログラム切替部32-2は、現行プログラム2の動作を停止させ(S603)、外部アクセス管理部4の動作およびトランザクション複製転送部1'の動作をテスト併用モードの動作から新規運用モードの動作に切替えることにより(S604、S605)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1'に対して、トランザクションの受信の再開を指示することにより、要求トランザクション保存部5経由による新規プログラム3への新たなトランザクションの転送を再開させる(S606)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図7の第3の実施の形態における外部アクセス管理部4と同じ動作を意味する。他方、外部アクセス管理部4における新規運用モードの動作とは、新規プログラム3から出されたアクセス要求を実際に外部データ400に出して、そのアクセス結果を新規プログラム3に返却する動作を意味する。
トランザクション複製転送部1'におけるテスト併用モードの動作とは、図7の第3の実施の形態におけるトランザクション複製転送部1'と同じ動作を意味する。他方、新規運用モードの動作とは、クライアント100から受信したトランザクションを新規プログラム3にのみ転送し、新規プログラム3から応答トランザクションを受け取ってクライアント100に返却する動作を意味する。
以上の例では、プログラム切替えによって現行プログラム2を停止させ、新規プログラム3のみが動作する形態としたが、現行プログラム2を停止させずに新規プログラム3と並行して動作させておくこともできる。この場合の流れは第8の実施の形態の動作説明に用いた図16のフローチャートと同じなので、図16を参照して説明する。
プログラム切替部32-2は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、外部アクセス管理部4の動作およびトランザクション複製転送部1'の動作をテスト併用モードの動作から新規多重運用モードの動作に切替えることにより(S811、S812)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1'に対して、トランザクションの受信の再開を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を再開させる(S813)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図3を参照して説明した動作を意味する。他方、新規多重運用モードの動作とは、図3を参照して説明した動作において新規プログラム3に対する動作と現行プログラム2に対する動作とを逆にした動作をを意味する。
トランザクション複製転送部1'におけるテスト併用モードの動作とは、図7のトランザクション複製転送部1'と同じ動作を意味する。他方、新規多重運用モードの動作とは、クライアント100から受信したトランザクションを複製して新規プログラム3および現行プログラム2に転送し、新規プログラム3から受信した応答トランザクションをクライアント100に返却する動作を意味する。
このように現行プログラム2を停止させずにプログラム実行部200で動かしておくことで、若し、新規プログラム3に不具合が見つかったために再びテスト併用モードに切替えて現行プログラム2を用いてサービスを提供する場合に、現行プログラム2を再起動する手間と時間を省略できる利点がある。
以上の例では、現行プログラム2および新規プログラム3の動作するプログラム実行部200、300を変えずにプログラム切替えを行ったが、現行プログラム2の稼動するプログラム実行部200で新規プログラム3を稼動させることで、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替えることもできる。この場合の流れは第8の実施の形態の動作説明に用いた図18のフローチャートと同じなので、図18を参照して説明する。
プログラム切替部32-2は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、現行プログラム2および新規プログラム3を停止させる(S1001)。次に、プログラム実行部200に新規プログラム3をロードするとともに、プログラム実行部300に現行プログラム2をロードし(S1002)、それぞれの実行部200、300でそれらのプログラム3、2を起動する(S1003)。そして、トランザクション複製転送部1'に対して、トランザクションの受信の再開を指示することにより、新規プログラム3および現行プログラム2への新たなトランザクションの転送を再開させる(S1004)。
このプログラム入替えによるプログラム切替え方法は、サービス停止期間が若干長くなるものの、外部アクセス管理部4やトランザクション複製転送部1'の動作を切替える必要がない利点がある。
このように本実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能であり、また、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作を確認することができ、そして、現行プログラム2から新規プログラム3へトランザクション処理を切替えることができるように構成されているため、新規プログラム3の動作確認が終わり次第、スムーズに処理プログラムを切替えることができる効果がある。
次に、本発明の第11の実施の形態について図面を参照して詳細に説明する。
図21を参照すると、本発明の第11の実施の形態にかかるトランザクション処理システム1011は、図8に示した第4の実施の形態にかかるトランザクション処理システム1004にプログラム切替部32-3を付加した構成となっている。プログラム切替部32-3は、利用者もしくは他プログラムの指示を受けて、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える手段である。
次に、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える動作について詳細に説明する。なお、その際の動作の流れは第8の実施の形態の動作説明に用いた図14のフローチャートと同じなので、図14を参照して説明する。
新規プログラム3の動作確認を終え、現行プログラム2に代えて新規プログラム2で処理サービスを提供する場合、プログラム切替部32-3は、利用者もしくは他プログラムからの指示を受けて、図14に示されるプログラム切替処理を開始する。まず、プログラム切替部32-3は、要求トランザクション保存部5に対してトランザクションの受信停止を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を停止させる(S601)。このとき、要求トランザクション保存部5は、クライアント100からの新たなトランザクション要求の受信自体を停止しても良いし、要求は受信して記憶し、トランザクション転送部6A、6B経由による現行プログラム2および新規プログラム3への転送は停止するようにしても良い。
次にプログラム切替部32-3は、現行プログラム2及び新規プログラム3に投入されたトランザクションについて処理が完了しているかどうかを確認する(S602)。この確認は、例えば、トランザクション転送部6A、6Bが現行プログラム2および新規プログラム3に投入した全てのトランザクションについて、現行プログラム応答トランザクション出力部7および新規プログラム応答トランザクション出力部8に応答トランザクションが記録されたかどうかを調べることにより可能である。
現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、プログラム切替部32-3は、現行プログラム2の動作を停止させ(S603)、外部アクセス管理部4の動作およびトランザクション転送部6A、6Bの動作をテスト併用モードの動作から新規運用モードの動作に切替えることにより(S604、S605)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション保存部5に対して、トランザクションの受信の再開を指示することにより、トランザクション転送部6B経由による新規プログラム3への新たなトランザクションの転送を再開させる(S606)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図8の第4の実施の形態における外部アクセス管理部4と同じ動作を意味する。他方、外部アクセス管理部4における新規運用モードの動作とは、新規プログラム3から出されたアクセス要求を実際に外部データ400に出して、そのアクセス結果を新規プログラム3に返却する動作を意味する。
トランザクション転送部6A、6Bにおけるテスト併用モードの動作とは、図8の第4の実施の形態におけるトランザクション転送部6A、6Bと同じ動作を意味する。他方、新規運用モードの動作とは、トランザクション転送部6Bにあっては、要求トランザクション保存部5からトランザクションを読み出して新規プログラム3に投入し、新規プログラム3から応答トランザクションを受信して要求トランザクション保存部5経由でクライアント100に返却する動作を意味し、トランザクション転送部6Aにあっては、転送動作を停止する動作を意味する。
以上の例では、プログラム切替えによって現行プログラム2を停止させ、新規プログラム3のみが動作する形態としたが、現行プログラム2を停止させずに新規プログラム3と並行して動作させておくこともできる。この場合の流れは第8の実施の形態の動作説明に用いた図16のフローチャートと同じなので、図16を参照して説明する。
プログラム切替部32-3は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、外部アクセス管理部4の動作およびトランザクション転送部6A、6Bの動作をテスト併用モードの動作から新規多重運用モードの動作に切替えることにより(S811、S812)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、要求トランザクション保存部5に対して、トランザクションの受信の再開を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を再開させる(S813)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図3を参照して説明した動作を意味する。他方、新規多重運用モードの動作とは、図3を参照して説明した動作において新規プログラム3に対する動作と現行プログラム2に対する動作とを逆にした動作をを意味する。
トランザクション転送部6A、6Bにおけるテスト併用モードの動作とは、図8のトランザクション転送部6A、6Bと同じ動作を意味する。他方、新規多重運用モードの動作とは、トランザクション転送部6Bにあっては、要求トランザクション保存部5から読み出したトランザクションを新規プログラム3に投入し、新規プログラム3から受信した応答トランザクションを要求トランザクション保存部5経由でクライアント100に返却する動作を意味し、トランザクション転送部6Aにあっては、要求トランザクション保存部5から読み出したトランザクションを現行プログラム2に投入し、現行プログラム2から受信した応答トランザクションは無効化する動作を意味する。
このように現行プログラム2を停止させずにプログラム実行部200で動かしておくことで、若し、新規プログラム3に不具合が見つかったために再びテスト併用モードに切替えて現行プログラム2を用いてサービスを提供する場合に、現行プログラム2を再起動する手間と時間を省略できる利点がある。
以上の例では、現行プログラム2および新規プログラム3の動作するプログラム実行部200、300を変えずにプログラム切替えを行ったが、現行プログラム2の稼動するプログラム実行部200で新規プログラム3を稼動させることで、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替えることもできる。この場合の流れは第8の実施の形態の動作説明に用いた図18のフローチャートと同じなので、図18を参照して説明する。
プログラム切替部32-3は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、現行プログラム2および新規プログラム3を停止させる(S1001)。次に、プログラム実行部200に新規プログラム3をロードするとともに、プログラム実行部300に現行プログラム2をロードし(S1002)、それぞれの実行部200、300でそれらのプログラム3、2を起動する(S1003)。そして、トランザクション保存部5に対して、トランザクションの受信の再開を指示することにより、新規プログラム3および現行プログラム2への新たなトランザクションの転送を再開させる(S1004)。
このプログラム入替えによるプログラム切替え方法は、サービス停止期間が若干長くなるものの、外部アクセス管理部4やトランザクション転送部6A、6Bなどの動作を切替える必要がない利点がある。
このように本実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能であり、また、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作を確認することができ、そして、現行プログラム2から新規プログラム3へトランザクション処理を切替えることができるように構成されているため、新規プログラム3の動作確認が終わり次第、スムーズに処理プログラムを切替えることができる効果がある。
次に、本発明の第12の実施の形態について図面を参照して詳細に説明する。
図22を参照すると、本発明の第12の実施の形態にかかるトランザクション処理システム1012は、図9に示した第5の実施の形態にかかるトランザクション処理システム1005にプログラム切替部32-4を付加した構成となっている。プログラム切替部32-4は、利用者もしくは他プログラムの指示を受けて、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える手段である。
次に、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える動作について詳細に説明する。なお、その際の動作の流れは第8の実施の形態の動作説明に用いた図14のフローチャートと同じなので、図14を参照して説明する。
新規プログラム3の動作確認を終え、現行プログラム2に代えて新規プログラム3で処理サービスを提供する場合、プログラム切替部32-4は、利用者もしくは他プログラムからの指示を受けて、図14に示されるプログラム切替処理を開始する。まず、プログラム切替部32-4は、トランザクション複製転送部1"に対してトランザクションの受信停止を指示することにより、現行プログラム2および要求トランザクション保存部5への新たなトランザクションの転送を停止させる(S601)。このとき、トランザクション複製転送部1"は、クライアント100からの新たなトランザクション要求の受信自体を停止しても良いし、要求は受信して内部の記憶部に記憶し、現行プログラム2および要求トランザクション保存部5への転送は停止するようにしても良い。
次にプログラム切替部32-4は、現行プログラム2及び新規プログラム3に投入されたトランザクションについて処理が完了しているかどうかを確認する(S602)。この確認は、例えば、トランザクション複製転送部1"が現行プログラム2および新規プログラム3に投入した全てのトランザクションについて、現行プログラム応答トランザクション出力部7および新規プログラム応答トランザクション出力部8に応答トランザクションが記録されたかどうかを調べることにより可能である。
現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、プログラム切替部32-4は、現行プログラム2の動作を停止させ(S603)、外部アクセス管理部4の動作およびトランザクション複製転送部1"の動作をテスト併用モードの動作から新規運用モードの動作に切替えることにより(S604、S605)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1"に対して、トランザクションの受信の再開を指示することにより、要求トランザクション保存部5経由による新規プログラム3への新たなトランザクションの転送を再開させる(S606)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図9の第5の実施の形態における外部アクセス管理部4と同じ動作を意味する。他方、外部アクセス管理部4における新規運用モードの動作とは、新規プログラム3から出されたアクセス要求を実際に外部データ400に出して、そのアクセス結果を新規プログラム3に返却する動作を意味する。
トランザクション複製転送部1"におけるテスト併用モードの動作とは、図9の第5の実施の形態におけるトランザクション複製転送部1"と同じ動作を意味する。他方、新規運用モードの動作とは、クライアント100から受信したトランザクションを新規プログラム3にのみ転送し、新規プログラム3から応答トランザクションを受け取ってクライアント100に返却する動作を意味する。
以上の例では、プログラム切替えによって現行プログラム2を停止させ、新規プログラム3のみが動作する形態としたが、現行プログラム2を停止させずに新規プログラム3と並行して動作させておくこともできる。この場合の流れは第8の実施の形態の動作説明に用いた図16のフローチャートと同じなので、図16を参照して説明する。
プログラム切替部32-4は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、外部アクセス管理部4の動作およびトランザクション複製転送部1"の動作をテスト併用モードの動作から新規多重運用モードの動作に切替えることにより(S811、S812)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1"に対して、トランザクションの受信の再開を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を再開させる(S813)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図3を参照して説明した動作を意味する。他方、新規多重運用モードの動作とは、図3を参照して説明した動作において新規プログラム3に対する動作と現行プログラム2に対する動作とを逆にした動作をを意味する。
トランザクション複製転送部1"におけるテスト併用モードの動作とは、図9のトランザクション複製転送部1"と同じ動作を意味する。他方、新規多重運用モードの動作とは、クライアント100から受信したトランザクションを複製して新規プログラム3および現行プログラム2に転送し、新規プログラム3から受信した応答トランザクションをクライアント100に返却する動作を意味する。
このように現行プログラム2を停止させずにプログラム実行部200で動かしておくことで、若し、新規プログラム3に不具合が見つかったために再びテスト併用モードに切替えて現行プログラム2を用いてサービスを提供する場合に、現行プログラム2を再起動する手間と時間を省略できる利点がある。
以上の例では、現行プログラム2および新規プログラム3の動作するプログラム実行部200、300を変えずにプログラム切替えを行ったが、現行プログラム2の稼動するプログラム実行部200で新規プログラム3を稼動させることで、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替えることもできる。この場合の流れは第8の実施の形態の動作説明に用いた図18のフローチャートと同じなので、図18を参照して説明する。
プログラム切替部32-4は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、現行プログラム2および新規プログラム3を停止させる(S1001)。次に、プログラム実行部200に新規プログラム3をロードするとともに、プログラム実行部300に現行プログラム2をロードし(S1002)、それぞれの実行部200、300でそれらのプログラム3、2を起動する(S1003)。そして、トランザクション複製転送部1"に対して、トランザクションの受信の再開を指示することにより、新規プログラム3および現行プログラム2への新たなトランザクションの転送を再開させる(S1004)。
このプログラム入替えによるプログラム切替え方法は、サービス停止期間が若干長くなるものの、外部アクセス管理部4やトランザクション複製転送部1"の動作を切替える必要がない利点がある。
このように本実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能であり、また、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作を確認することができ、そして、現行プログラム2から新規プログラム3へトランザクション処理を切替えることができるように構成されているため、新規プログラム3の動作確認が終わり次第、スムーズに処理プログラムを切替えることができる効果がある。
次に、本発明の第13の実施の形態について図面を参照して詳細に説明する。
図23を参照すると、本発明の第13の実施の形態にかかるトランザクション処理システム1013は、図11に示した第6の実施の形態にかかるトランザクション処理システム1006にプログラム切替部32-5を付加した構成となっている。プログラム切替部32-5は、利用者もしくは他プログラムの指示を受けて、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える手段である。
次に、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える動作について詳細に説明する。なお、その際の動作の流れは第8の実施の形態の動作説明に用いた図14のフローチャートと同じなので、図14を参照して説明する。
新規プログラム3の動作確認を終え、現行プログラム2に代えて新規プログラム3で処理サービスを提供する場合、プログラム切替部32-5は、利用者もしくは他プログラムからの指示を受けて、図14に示されるプログラム切替処理を開始する。まず、プログラム切替部32-5は、トランザクション複製転送部1に対してトランザクションの受信停止を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を停止させる(S601)。このとき、トランザクション複製転送部1は、クライアント100からの新たなトランザクション要求の受信自体を停止しても良いし、要求は受信して内部の記憶部に記憶し、現行プログラム2および新規プログラム3への転送は停止するようにしても良い。
次にプログラム切替部32-5は、現行プログラム2及び新規プログラム3に投入されたトランザクションについて処理が完了しているかどうかを確認する(S602)。この確認は、例えば、トランザクション複製転送部1が現行プログラム2および新規プログラム3に投入した全てのトランザクションについて、その応答トランザクションが現行プログラム2および新規プログラム3から帰ってきたかどうかを調べることにより可能である。
現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、プログラム切替部32-5は、現行プログラム2の動作を停止させ(S603)、外部アクセス管理部4の動作およびトランザクション複製転送部1の動作をテスト併用モードの動作から新規運用モードの動作に切替えることにより(S604、S605)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、要求トランザクション保存部5経由による新規プログラム3への新たなトランザクションの転送を再開させる(S606)。
外部アクセス管理部4'におけるテスト併用モードの動作とは、図11の第6の実施の形態における外部アクセス管理部4'と同じ動作を意味する。他方、外部アクセス管理部4'における新規運用モードの動作とは、新規プログラム3から出されたアクセス要求を実際に外部データ400に出して、そのアクセス結果を新規プログラム3に返却する動作を意味する。
トランザクション複製転送部1におけるテスト併用モードの動作とは、図11の第6の実施の形態におけるトランザクション複製転送部1と同じ動作を意味する。他方、新規運用モードの動作とは、クライアント100から受信したトランザクションを新規プログラム3にのみ転送し、新規プログラム3から応答トランザクションを受け取ってクライアント100に返却する動作を意味する。
以上の例では、プログラム切替えによって現行プログラム2を停止させ、新規プログラム3のみが動作する形態としたが、現行プログラム2を停止させずに新規プログラム3と並行して動作させておくこともできる。この場合の流れは第8の実施の形態の動作説明に用いた図16のフローチャートと同じなので、図16を参照して説明する。
プログラム切替部32-5は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、外部アクセス管理部4'の動作およびトランザクション複製転送部1の動作をテスト併用モードの動作から新規多重運用モードの動作に切替えることにより(S811、S812)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を再開させる(S813)。
外部アクセス管理部4'におけるテスト併用モードの動作とは、図11の外部アクセス管理部4'と同じ動作を意味する。他方、新規多重運用モードの動作とは、図3を参照して説明した外部アクセス管理部の動作において新規プログラム3に対する動作と現行プログラム2に対する動作とを逆にした動作を意味する。
トランザクション複製転送部1におけるテスト併用モードの動作とは、図11のトランザクション複製転送部1と同じ動作を意味する。他方、新規多重運用モードの動作とは、クライアント100から受信したトランザクションを複製して新規プログラム3および現行プログラム2に転送し、新規プログラム3から受信した応答トランザクションをクライアント100に返却する動作を意味する。
このように現行プログラム2を停止させずにプログラム実行部200で動かしておくことで、若し、新規プログラム3に不具合が見つかったために再びテスト併用モードに切替えて現行プログラム2を用いてサービスを提供する場合に、現行プログラム2を再起動する手間と時間を省略できる利点がある。
以上の例では、現行プログラム2および新規プログラム3の動作するプログラム実行部200、300を変えずにプログラム切替えを行ったが、現行プログラム2の稼動するプログラム実行部200で新規プログラム3を稼動させることで、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替えることもできる。この場合の流れは第8の実施の形態の動作説明に用いた図18のフローチャートと同じなので、図18を参照して説明する。
プログラム切替部32-5は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、現行プログラム2および新規プログラム3を停止させる(S1001)。次に、プログラム実行部200に新規プログラム3をロードするとともに、プログラム実行部300に現行プログラム2をロードし(S1002)、それぞれの実行部200、300でそれらのプログラム3、2を起動する(S1003)。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、新規プログラム3および現行プログラム2への新たなトランザクションの転送を再開させる(S1004)。
このプログラム入替えによるプログラム切替え方法は、サービス停止期間が若干長くなるものの、外部アクセス管理部4'やトランザクション複製転送部1の動作を切替える必要がない利点がある。
このように本実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能であり、また、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作を確認することができ、そして、現行プログラム2から新規プログラム3へトランザクション処理を切替えることができるように構成されているため、新規プログラム3の動作確認が終わり次第、スムーズに処理プログラムを切替えることができる効果がある。
次に、本発明の第14の実施の形態について図面を参照して詳細に説明する。
図24を参照すると、本発明の第14の実施の形態にかかるトランザクション処理システム1014は、図12に示した第7の実施の形態にかかるトランザクション処理システム1007にプログラム切替部32-6を付加した構成となっている。プログラム切替部32-6は、利用者もしくは他プログラムの指示を受けて、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える手段である。
次に、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替える動作について詳細に説明する。なお、その際の動作の流れは第8の実施の形態の動作説明に用いた図14のフローチャートと同じなので、図14を参照して説明する。
新規プログラム3の動作確認を終え、現行プログラム2に代えて新規プログラム3で処理サービスを提供する場合、プログラム切替部32-6は、利用者もしくは他プログラムからの指示を受けて、図14に示されるプログラム切替処理を開始する。まず、プログラム切替部32-6は、トランザクション複製転送部1に対してトランザクションの受信停止を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を停止させる(S601)。このとき、トランザクション複製転送部1は、クライアント100からの新たなトランザクション要求の受信自体を停止しても良いし、要求は受信して内部の記憶部に記憶し、現行プログラム2および新規プログラム3への転送は停止するようにしても良い。
次にプログラム切替部32-6は、現行プログラム2及び新規プログラム3に投入されたトランザクションについて処理が完了しているかどうかを確認する(S602)。この確認は、例えば、トランザクション複製転送部1が現行プログラム2および新規プログラム3に投入した全てのトランザクションについて、その応答トランザクションが現行プログラム2および新規プログラム3から帰ってきたかどうかを調べることにより可能である。
現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、プログラム切替部32-6は、現行プログラム2の動作を停止させ(S603)、外部アクセス管理部4の動作およびトランザクション複製転送部1の動作をテスト併用モードの動作から新規運用モードの動作に切替えることにより(S604、S605)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、要求トランザクション保存部5経由による新規プログラム3への新たなトランザクションの転送を再開させる(S606)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図12の第7の実施の形態における外部アクセス管理部4と同じ動作を意味する。他方、外部アクセス管理部4における新規運用モードの動作とは、新規プログラム3から出されたアクセス要求を実際に外部データ400に出して、そのアクセス結果を新規プログラム3に返却する動作を意味する。
トランザクション複製転送部1におけるテスト併用モードの動作とは、図12の第7の実施の形態におけるトランザクション複製転送部1と同じ動作を意味する。他方、新規運用モードの動作とは、クライアント100から受信したトランザクションを新規プログラム3にのみ転送し、新規プログラム3から応答トランザクションを受け取ってクライアント100に返却する動作を意味する。
以上の例では、プログラム切替えによって現行プログラム2を停止させ、新規プログラム3のみが動作する形態としたが、現行プログラム2を停止させずに新規プログラム3と並行して動作させておくこともできる。この場合の流れは第8の実施の形態の動作説明に用いた図16のフローチャートと同じなので、図16を参照して説明する。
プログラム切替部32-6は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、外部アクセス管理部4の動作およびトランザクション複製転送部1の動作をテスト併用モードの動作から新規多重運用モードの動作に切替えることにより(S811、S812)、現行プログラム2により行われていたトランザクション処理を、新規プログラム3によるトランザクション処理に切り替える。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、現行プログラム2および新規プログラム3への新たなトランザクションの転送を再開させる(S813)。
外部アクセス管理部4におけるテスト併用モードの動作とは、図12の外部アクセス管理部4と同じ動作を意味する。他方、新規多重運用モードの動作とは、図3を参照して説明した外部アクセス管理部の動作において新規プログラム3に対する動作と現行プログラム2に対する動作とを逆にした動作を意味する。
トランザクション複製転送部1におけるテスト併用モードの動作とは、図12のトランザクション複製転送部1と同じ動作を意味する。他方、新規多重運用モードの動作とは、クライアント100から受信したトランザクションを複製して新規プログラム3および現行プログラム2に転送し、新規プログラム3から受信した応答トランザクションをクライアント100に返却する動作を意味する。
このように現行プログラム2を停止させずにプログラム実行部200で動かしておくことで、若し、新規プログラム2に不具合が見つかったために再びテスト併用モードに切替えて現行プログラム2を用いてサービスを提供する場合に、現行プログラム2を再起動する手間と時間を省略できる利点がある。
以上の例では、現行プログラム2および新規プログラム3の動作するプログラム実行部200、300を変えずにプログラム切替えを行ったが、現行プログラム2の稼動するプログラム実行部200で新規プログラム3を稼動させることで、現行プログラム2による処理サービスから新規プログラム3による処理サービスに切替えることもできる。この場合の流れは第8の実施の形態の動作説明に用いた図18のフローチャートと同じなので、図18を参照して説明する。
プログラム切替部32-6は、現行プログラム2および新規プログラム3に投入された全てのトランザクションの処理が完了しており、仕掛中のトランザクションが1つも存在しないことが確認されると、現行プログラム2および新規プログラム3を停止させる(S1001)。次に、プログラム実行部200に新規プログラム3をロードするとともに、プログラム実行部300に現行プログラム2をロードし(S1002)、それぞれの実行部200、300でそれらのプログラム3、2を起動する(S1003)。そして、トランザクション複製転送部1に対して、トランザクションの受信の再開を指示することにより、新規プログラム3および現行プログラム2への新たなトランザクションの転送を再開させる(S1004)。
このプログラム入替えによるプログラム切替え方法は、サービス停止期間が若干長くなるものの、外部アクセス管理部4やトランザクション複製転送部1の動作を切替える必要がない利点がある。
このように本実施の形態によれば、新規プログラム3の入力は、現行プログラム2の入力と同一となるように、また新規プログラム3の出力は無効となるように構成されているため、現行プログラム2を実行しながら、新規プログラム3を並行して実行することが可能であり、また、現行プログラム2の処理結果と新規プログラム3の処理結果を保存もしくは出力するように構成されているので、双方の処理結果を比較することにより、現行プログラム2との比較において、新規プログラム3の動作を確認することができ、そして、現行プログラム2から新規プログラム3へトランザクション処理を切替えることができるように構成されているため、新規プログラム3の動作確認が終わり次第、スムーズに処理プログラムを切替えることができる効果がある。
以上本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。また、本発明のトランザクション処理システムは、その有する機能をハードウェア的に実現することは勿論、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態におけるトランザクション処理システムを構成する機能手段として機能させる。