JP5126064B2 - 計算機システム - Google Patents

計算機システム Download PDF

Info

Publication number
JP5126064B2
JP5126064B2 JP2008542988A JP2008542988A JP5126064B2 JP 5126064 B2 JP5126064 B2 JP 5126064B2 JP 2008542988 A JP2008542988 A JP 2008542988A JP 2008542988 A JP2008542988 A JP 2008542988A JP 5126064 B2 JP5126064 B2 JP 5126064B2
Authority
JP
Japan
Prior art keywords
database
new
protocol
server
old
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008542988A
Other languages
English (en)
Other versions
JPWO2008056438A1 (ja
Inventor
健一郎 藤山
暢達 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008542988A priority Critical patent/JP5126064B2/ja
Publication of JPWO2008056438A1 publication Critical patent/JPWO2008056438A1/ja
Application granted granted Critical
Publication of JP5126064B2 publication Critical patent/JP5126064B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、データベースマネジメントシステム(DBMS)と連携して情報処理を行うアプリケーションが動作する計算機システムにおいて、用いられてきた旧DBMSを異なる新DBMSに移行する技術に関する。
DBMSと連携して情報処理を行うアプリケーションが動作する計算機システムにおいては、システムの性能向上等を目的として、DBMSを旧DBMSから新DBMSに切り替えることがある。以下、この種の切り替え方法について図面を参照して説明する。
図22の左側に示される旧システム1100は、旧DBMS1121を使用する計算機システムの構成例を示し、旧アプリケーションサーバ1110と、旧データベースサーバ1120とから構成されている。
旧アプリケーションサーバ1110は、情報処理を行うアプリケーション1111と、アプリケーション1111とDBMS1121を接続するDB接続ミドルウェア1112とを備える。
DB接続ミドルウェア1112は、データベースに依存しないプロトコル(以下、データベース非依存プロトコルあるいは標準プロトコルとも称す)のインタフェースであるインタフェース1113と、標準プロトコルを旧DBMS1121固有のプロトコル(以下、データベース依存プロトコルとも称す)に変換する旧DB用プロトコル変換手段1114とを備える。
旧データベースサーバ1120は、アプリケーション1111が処理を行う際に必要な旧形式データ1122を蓄積するストレージと、旧形式データ1122を管理する旧DBMS1121とを備える。
このような構成を有する計算機システムは、次のように動作する。
アプリケーション1111は、必要に応じてDB接続ミドルウェア1112を介して旧DBMS1121に接続し、データ処理要求を発行する。
旧DBMS1121はデータ処理要求に従い、管理している旧形式データ1122を用いてデータ処理を行い、その結果であるデータ処理結果を、やはりDB接続ミドルウェア1112を介してアプリケーション1111に返す。
アプリケーション1111は、旧DBMS1121のデータ処理結果を用いて、情報処理を行う。
上述のような旧システム1100において、これまで用いられてきた旧DBMS1121を、それとデータの管理形式およびプロトコルが異なる新DBMS1221に取替え、新システム1200に移行する場合を考える。
新システム1200は、新DBMS1221を使用する計算機システムの構成例を示し、新アプリケーションサーバ1210と、新データベースサーバ1220とから構成されている。
新アプリケーションサーバ1210は、情報処理を行うアプリケーション1211と、アプリケーション1211と新DBMS1221を接続するDB接続ミドルウェア1212とを備える。
DB接続ミドルウェア1212は、データベースに依存しないプロトコル(以下、データベース非依存プロトコルあるいは標準プロトコルとも称す)のインタフェースであるインタフェース1213と、標準プロトコルを新DBMS1221固有のプロトコル(以下、データベース依存プロトコルとも称す)に変換する新DB用プロトコル変換手段1214とを備える。
新データベースサーバ1220は、アプリケーション1211が処理を行う際に必要な新形式データ1222を蓄積するストレージと、新形式データ1222を管理する新DBMS1221とを備える。
まず、旧DBMS1121と新DBMS1221とでは、データの管理形式が異なるため、旧形式データ1122は、新DBMS1221では管理できない。そのため、旧形式データ1122を、新DBMS1221が管理できる形式である新形式データ1222に変換する必要がある。これは、データベースベンダが提供するデータ移行ツール等を用いて、行うことができる。
また、DBMSに接続するプロトコルが旧DBMS1121と新DBMS1221とで異なるため、旧DBMS1121と接続しているアプリケーション1111は、そのままでは新DBMS1221に接続できない。この問題は、DB接続ミドルウェア1212を用いることで、解消できる。DB接続ミドルウェアは、DBMS固有の接続手法を仮想化することでプロトコルの差異を隠蔽し、アプリケーションに対し、標準的なプロトコルによるDBMSへの接続を可能にするミドルウェアである。具体的には、アプリケーションに標準的なインタフェースを提供し、アプリケーションが標準インタフェースを介して発行したデータ処理要求を、DBMSの固有のプロトコルに変換し、DBMSに発行する。DBMS固有のプロトコルに変換する機能を、ライブラリとして入れ替えることで、様々な種類のDBMSに対応できる。
DB接続ミドルウェアとしては、ODBC(Open DataBase Connectivity)、JDBC(Java(登録商標) DataBase Connectivity)等が知られている。
近年では、アプリケーションをDBMSに直接接続するのではなく、DB接続ミドルウェアを介して接続することが一般的なため、アプリケーション1111は旧DB用プロトコル変換手段1114を新DB用プロトコル変換手段1214に入れ替えるだけで、新DBMSに接続することが可能となる。
しかし、プロトコル的に新DBMS1221に接続することはできても、アプリケーション1111が発行したデータ処理要求の内容、すなわちデータ操作を定義するSQL(Structured Query Language)等が旧DBMS1121固有のものである場合、新DBMS1221では、そのSQLを解釈できないため、要求を処理することができない。
SQLはISO SQL92等、基本的な部分では標準仕様が規定されているため、論理的にはプロトコルの変換を行い、DBMSに接続できれば問題なくデータ処理ができる。しかし実際には、SQLはDBMS毎の独自の仕様拡張が数多くなされ、実業務においては、その独自仕様を用いたDBMS固有のSQLが使われることが多い。そのため、データベース移行を行う場合は、アプリケーションが発行する旧DBMS用のSQLも、新DBMS用に変換しなくてはならない。
SQLを変換する技術として、例えば特許文献1等に記載された技術が知られている。アプリケーションが発行するSQLは、一般にアプリケーションのソースコード内にハードコーディングされている。そこで、特許文献1に記載された技術では、ソースコードを精査し、旧DBMS用のSQLを生成する部分を、新DBMS用のSQLを生成するように書き換える。
また、SQLを変換する他の技術として、特許文献2等に記載された技術が知られている。特許文献2に記載された技術では、アプリケーションを作成する際に、SQLを生成するSQL部を、他の機能を実現しているソースコードから分離して作成する。SQL部が分離されているため、ソースコード内からSQL部を探す手間をかけることなく、容易に新DBMS用のSQLを生成するように設定することが可能である。
また、SQLを変換する別の技術として、特許文献3等に記載された技術が知られている。図23を参照すると、特許文献3に記載された技術では、アプリケーションサーバ群2100−1,2100−2,…,2100−nと、新形式データ2320を蓄積するストレージおよび新形式データ2320を管理する新DBMS2310を備える新データベースサーバ2300の間に中継装置2200を設け、この中継装置2200で、アプリケーション2110が発行した旧DBMS用のSQLを、新DBMS用のSQLに変換する。この技術は、アプリケーション自体を変更することなく、SQL変換を行うことが可能である。
特開2000−181697号公報 特開2000−347910号公報 特開2000−259466号公報
しかしながら、上記特許文献記載のSQL変換技術には、それぞれ以下のような問題があった。
特許文献1に記載された技術は、SQLを生成している部分を特定し、アプリケーションの他のロジックに影響を与えることなく、新しいSQLを生成するようにソースコードを書き換えることが非常に困難である。なぜなら、複雑で膨大な量のソースコードを正確に解析する必要があるからである。また、実行可能なバイナリコードのみが存在し、ソースコードが残っていないアプリケーションには適用できない。
特許文献2記載の技術は、この技術に従ってアプリケーションが開発されていれば問題ないが、そうでない多くの既存アプリケーションには適用できない。
特許文献3記載の技術は、アプリケーションからDBMSへのアクセスを中継装置でフックしているが、このアクセスのプロトコルはDBMS固有のプロプライエタリ(proprietary)なプロトコルである。したがって、アクセスをフック、再送するためにDBMS固有のプロトコルを解析する必要があるが、このプロトコルは一般的に非公開であるため、解析は非常に困難である。また、解析できても、DBMS固有のプロトコルであるため、DBMS毎に、アドホックな開発が必要となる。
また、DBMSを切り替える際に変更すべきSQLは一般に旧SQLの一部になることが多いが、上述のSQL変換技術では、その変換の前提作業となる新SQLに変換すべき旧SQLの洗い出し作業に要する利用者の負担が大きかった。なぜなら、利用者自身が旧SQLと新SQLの違いを理解し、旧SQLの全てについて新SQLへの変換の必要性を判断する必要があるからである。
さらに、上述のSQL変換技術には、共通して、変換したSQLが正しく動作しているか検証できないという問題があった。なぜなら、たとえ変換したSQLを投入した新DBMSが明示的なエラーを起こさず、正常な応答があったとしても、それが旧DBMSと同じ応答であるかどうかを、実運用環境において知ることができないからである。
またさらに、変換したSQLの動作を実運用環境において検証することが困難であるため、旧DBMS用SQLをどのように新DBMS用SQLに変換するかを定義した変換情報(変換ルール)をその検証と連動して修正できず、変換情報を効率良く修正するのが困難であった。
(発明の目的)
本発明の第一の目的は、DBMSと連携して情報処理を行うアプリケーションが動作する計算機システムにおいて、用いられてきた旧DBMSを異なる新DBMSに移行する際に、アプリケーションを変更することなく透過的に、かつ、新旧両方のDBMSの種類によらず汎用的に、DBMSを移行しても計算機システムを継続して動作させることを可能とすることにある。
本発明の第二の目的は、新SQLに変換すべき旧SQLの洗い出し作業に要する利用者の負担を軽減することを可能とすることにある。
本発明の第三の目的は、変換したSQLが正しく動作しているかどうかを実運用環境において検証することを可能とすることにある。
本発明の第四の目的は、SQLを変換する変換情報をその実運用環境における検証時に連動して修正することを可能とすることにある。
本発明の第の計算機システムは、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動する1以上のアプリケーションサーバと、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバと、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバと、第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を前記旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、他方のデータベース処理要求を前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却するデータベース接続手段とを備えることを特徴とする。
本発明の第の計算機システムは、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動する1以上のアプリケーションサーバと、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバと、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバと、第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を前記旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、他方のデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却するデータベース接続手段とを備えることを特徴とする。
本発明の第の計算機システムは、第または第の計算機システムにおいて、前記データベース接続手段は、第1のモードの処理において、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、新データベースサーバへの以降のデータベース処理要求の投入を停止することを特徴とする。
本発明の第の計算機システムは、第または第の計算機システムにおいて、前記データベース接続手段は、第1のモードの処理において、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、元のデータベース処理要求がデータを変更する要求であれば、新データベースサーバへの以降のデータベース処理要求の投入を停止することを特徴とする。
本発明の第の計算機システムは、第または第の計算機システムにおいて、前記データベース接続手段は、第1のモードの処理において、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、元のデータベース処理要求がデータを変更する要求であれば、旧データベースサーバおよび新データベースサーバに対して行ったデータベース処理要求を取り消し、データベース処理が実行されなかった旨のデータ処理結果をアプリケーションプログラムに返却することを特徴とする。
本発明の第の計算機システムは、第の計算機システムにおいて、前記データベース接続手段は、第1のモードの処理において、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、新データベースサーバに対して行ったデータベース処理要求を必要に応じて取り消し、第1のデータベース操作言語を第2のデータベース操作言語に変換するための変換情報を変更した後、該変更後の変換情報を用いて元のデータベース処理要求を第2のデータベース操作言語に変換し、さらに新データベースサーバに適したデータベース依存のプロトコルに変換して新データベースサーバに投入し、得られた新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して旧データベースサーバのデータ処理結果と比較検証することを特徴とする。
本発明の第の計算機システムは、第の計算機システムにおいて、第1のモードの処理中に、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなくなる確率が低下したことを検出して、第2のモードへ切り替える切り替え手段を備えることを特徴とする。
本発明の第の計算機システムは、第または第の計算機システムにおいて、前記データベース接続手段は、前記アプリケーションプログラムから発行されたデータベース処理要求のデータベース操作言語を第2のデータベース操作言語に変換する仕様変換手段と、データベース処理要求のプロトコルを新データベースサーバに適するデータベース依存のプロトコルに変換し、新データベースサーバのデータ処理結果のプロトコルをデータベース非依存のプロトコルに変換する新プロトコル変換手段と、データベース処理要求のプロトコルを旧データベースサーバに適するデータベース依存のプロトコルに変換し、旧データベースサーバのデータ処理結果のプロトコルをデータベース非依存のプロトコルに変換する旧プロトコル変換手段と、データベース非依存のプロトコルに変換された新データベースサーバおよび旧データベースサーバのデータ処理結果どうしを比較検証する検証手段と、前記検証手段の比較検証結果を出力する出力手段と、第1のモードと第2のモードのうち指定されたモードによる処理を制御する制御手段とを備えることを特徴とする。
本発明の第のデータベースアクセス方法は、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動する1以上のアプリケーションサーバと、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバと、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバとを備えた計算機システムにおけるデータベースアクセス方法であって、データベース接続手段が、第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を前記旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、他方のデータベース処理要求を前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却することを特徴とする。
本発明の第のデータベースアクセス方法は、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動する1以上のアプリケーションサーバと、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバと、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバとを備えた計算機システムにおけるデータベースアクセス方法であって、データベース接続手段が、第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を前記旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、他方のデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却することを特徴とする。
本発明の第のアプリケーションサーバは、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動するアプリケーションサーバであって、第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、他方のデータベース処理要求を、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記旧データベースサーバおよび前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却するデータベース接続手段を備えることを特徴とする。
本発明の第のアプリケーションサーバは、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動するアプリケーションサーバであって、第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、他方のデータベース処理要求を、第2のデータベース操作言語に変換した後、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記旧データベースサーバおよび前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却するデータベース接続手段を備えることを特徴とする。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本発明の第1の実施の形態の構成を示すブロック図である。 本発明の第1の実施の形態の動作を示す流れ図である。 本発明の第2の実施の形態の構成を示すブロック図である。 本発明の第2の実施の形態の準備モードの動作を示す流れ図である。 本発明の第2の実施の形態の準備モードの動作を示す流れ図である。 本発明の第2の実施の形態の検証モードの動作を示す流れ図である。 本発明の第2の実施の形態の検証モードの動作を示す流れ図である。 本発明の第2の実施の形態の移行モードの動作を示す流れ図である。 本発明の第3の実施の形態の構成を示すブロック図である。 本発明の第3の実施の形態の準備モードの動作を示す流れ図である。 本発明の第3の実施の形態の準備モードの動作を示す流れ図である。 本発明の第3の実施の形態の準備モードの動作を示す流れ図である。 本発明の第3の実施の形態の検証モードの動作を示す流れ図である。 本発明の第3の実施の形態の検証モードの動作を示す流れ図である。 本発明の第3の実施の形態の検証モードの動作を示す流れ図である。 本発明の第4の実施の形態の構成を示すブロック図である。 本発明の第4の実施の形態の検証モードの動作を示す流れ図である。 本発明の第4の実施の形態の検証モードの動作を示す流れ図である。 本発明の第4の実施の形態の検証モードの動作を示す流れ図である。 切り替え手段の実施例を示すブロック図である。 本発明の他の実施の形態の構成を示すブロック図である。 DBMSと連携して情報処理を行うアプリケーションが動作する計算機システムの構成を示すブロック図である。 SQLを変換するシステムの構成を示すブロック図である。
(第1の実施の形態)
次に本発明の第1の実施の形態について図面を参照して詳細に説明する。
[構成の説明]
図1は、本発明の実施の形態に係る計算機システムの構成を示すブロック図である。
本発明の実施の形態に係る計算機システムは、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース非依存のプロトコル(標準プロトコル)に従って発行するアプリケーションプログラム3110が稼動する1以上のアプリケーションサーバ3100−1、3100−2、3100−nと、第2のデータベース操作言語(新DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(新DBプロトコル)に従って受け付けるデータベースサーバ(新データベースサーバ3200)と、アプリケーションプログラム3110から発行されたデータベース処理要求のデータベース操作言語(旧DB用SQL)を第2のデータベース操作言語(DB用SQL)に変換した後に、プロトコル(標準プロトコル)をデータベース依存のプロトコル(新DBプロトコル)に変換してデータベースサーバ(新データベースサーバ3200)へ投入し、データベースサーバ(新データベースサーバ3200)のデータ処理結果のプロトコル(新DBプロトコル)をデータベース非依存のプロトコル(標準プロトコル)に変換してアプリケーションプログラム3110に返却するデータベース接続部(拡張DB接続ミドルウェア3120)と、を備える。
また、上記データベース接続部(拡張DB接続ミドルウェア3120)は、アプリケーションプログラム3110から発行されたデータベース処理要求のデータベース操作言語(旧DB用SQL)を第2のデータベース操作言語(新DB用SQL)に変換する操作言語変換部(SQL変換部3124)と、第2のデータベース操作言語(新DB用SQL)に変換されたデータベース処理要求のプロトコル(標準プロトコル)をデータベース依存のプロトコル(新DBプロトコル)に変換し、データベースサーバ(新データベースサーバ3200)のデータ処理結果のプロトコル(新DBプロトコル)をデータベース非依存のプロトコル(標準プロトコル)に変換するプロトコル変換部(新DB用プロトコル変換部3123)と、データベース接続部(拡張DB接続ミドルウェア3120)全体の制御を司る制御部3122と、を備える。
図1を参照すると、本発明の第1の実施の形態にかかる計算機システムは、複数のアプリケーションサーバ3100−1,3100−2,…,3100−nと、新データベースサーバ3200とから構成される。
各アプリケーションサーバ3100−1,3100−2,…,3100−nは、情報処理を行うアプリケーション3110と、アプリケーション3110と後述する新DBMS3210を接続する拡張DB接続ミドルウェア3120とを備える。
拡張DB接続ミドルウェア3120は、標準プロトコルのインタフェースであるインタフェース3121と、データ処理要求の流れを制御する制御部3122と、標準プロトコルを新DBMS3210固有のプロトコルに変換する新DB用プロトコル変換部3123と、データ処理要求の内容であるSQLを変換するSQL変換部3124と、どのようにSQL変換を行うかを定義した変換ルールである変換情報を記憶する変換情報記憶部3125(以後、「変換情報3125」と示す)とを備える。
新データベースサーバ3200は、アプリケーション3110が処理を行う際に必要なデータを、新DBMS3210が扱える形に変換した新形式データ3220を蓄積するストレージと、新形式データ3220を管理する移行した新DBMS3210とを備える。
[動作の説明]
次に図1および図2のフローチャートを参照して、本実施の形態の計算機システムの動作について詳細に説明する。
本発明の実施の形態に係るデータベースアクセス方法は、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース非依存のプロトコル(標準プロトコル)に従って発行するアプリケーションプログラム3110が稼動する1以上のアプリケーションサーバ3100−1、3100−2、3100−nと、第2のデータベース操作言語(新DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(新DBプロトコル)に従って受け付けるデータベースサーバ(新データベースサーバ3200)と、を備えた計算機システムにおけるデータベースアクセス方法であって、データベース接続部(拡張DB接続ミドルウェア3120)が、アプリケーションプログラム3110から発行されたデータベース処理要求のデータベース操作言語(旧DB用SQL)を第2のデータベース操作言語(新DB用SQL)に変換した後に(ステップS4004)、プロトコル(標準プロトコル)をデータベース依存のプロトコル(新DBプロトコル)に変換してデータベースサーバ(新データベースサーバ3200)へ投入し(ステップS4006)、データベースサーバ(新データベースサーバ3200)のデータ処理結果のプロトコル(新DBプロトコル)をデータベース非依存のプロトコル(標準プロトコル)に変換してアプリケーションプログラム3110に返却する(ステップS4008)。
アプリケーションサーバ3100−1,3100−2,…,3100−nにおいて、アプリケーション3110がDBMSにデータ処理を依頼する場合、データ処理要求として、移行前の旧DBMS用のSQLを、標準プロトコルでもって、DB接続ミドルウェア3120を介して発行しようとする(ステップS4001)。
拡張DB接続ミドルウェア3120において、インタフェース3121がデータ処理要求を受け取り、制御部3122に転送する(ステップS4002)。
一般に、DB接続ミドルウェアは、各アプリケーションサーバ3100−1,3100−2,…,3100−n内に配置され、アプリケーション3110は、通常のDB接続ミドルウェアの備える標準プロトコルのインタフェースに対してデータ処理要求を発行する。
拡張DB接続ミドルウェア3120は、通常のDB接続ミドルウェアのインタフェースと同様のインタフェース3121を備えるため、アプリケーション3110からは、拡張DB接続ミドルウェア3120が、通常のDB接続ミドルウェアと同様に認識される。
そのため、インタフェース3121以下の拡張DB接続ミドルウェア3120内部の動作は、アプリケーション3110からは意識されず、透過的である。すなわち、拡張DB接続ミドルウェア3120を導入するために、アプリケーションを変更する必要はない。
また、様々な種類のDBMSに対応するためにライブラリとして入れ替えることを前提としているため、導入も容易である。すなわち、本来は旧DB用プロトコル変換部を新DB用プロトコル変換部3123に入れ替える代わりに、制御部3122等の拡張DB接続ミドルウェアの機能を実現する構成要素(新DB用プロトコル変換部も含む)に入れ替える。勿論、入れ替えるのではなく、拡張DB接続ミドルウェア自体を新規に作っても良い。
データ処理要求を受け取った制御部3122は、それをSQL変換部3124に転送する(ステップS4003)。
データ処理要求を受け取ったSQL変換部3124は、データ処理要求の内容であるSQLを調べ、変換情報3125に基づき、必要であれば、SQL変換を行う(ステップS4004)。なお、この時点では、データ処理要求は、仕様が公開されていないDBMS固有のプロトコルではなく、仕様の公開された標準プロトコルのため、データ処理要求の内容を調べたり、変換することは容易である。
SQL変換部3124が行う変換の具体例を挙げると、例えば、アプリケーションが発行した旧DBMS用データ処理要求の内容であるSQLが、標準SQLにない独自の拡張関数DECODEを用いて、SELECT DECODE(key, val1, res1, res2) label FROM table1と記述されていて、移行した新DBMSではこの拡張関数DECODEを解釈できない場合、SQL変換部3124は、変換情報3125の「拡張関数DECODEがあれば、新DBMSでも解釈できる標準関数CASEに変換する」というルールに基づき、SELECT CASE WHEN key = val1 THEN res1 ELSE res2 END label FROM table2と変換する、等が考えられる。
SQL変換後、SQL変換部3124は、変換したデータ処理要求を制御部3122に返す。
変換されたデータ処理要求を受け取った制御部3122は、それを新DB用プロトコル変換部3123に転送する(ステップS4005)。
データ処理要求を受け取った新DB用プロトコル変換部3123は、標準プロトコルのデータ処理要求を、新DBMS3210固有のプロトコルに変換して、新DBMS3210に発行する(ステップS4006)。
新データベースサーバ3200において、固有プロトコルのデータ処理要求を受け取った新DBMS3210は、データ処理要求のSQLを解釈し、その要求に従い、管理している新形式データ3220を用いてデータ処理を行い、その結果であるデータ処理結果を、やはり固有プロトコルでもって、新DB用プロトコル変換部3123に返す(ステップS4007)。
固有プロトコルのデータ処理結果を受け取った新DB用プロトコル変換部3123は、データ処理結果を標準プロトコルに変換し、制御部3122に転送する(ステップS4008)。
標準プロトコルのデータ処理結果を受け取った制御部3122は、それをインタフェース3121に転送する(ステップS4009)。
データ処理結果を受け取ったインタフェース3121は、それをアプリケーション3110に返す(ステップS4010)。
アプリケーション3110は、旧DBMSに対してデータ処理要求を発行した場合と同様のデータ処理結果を受け取り、従来通り情報処理を行う(ステップS4011)。
このように動作することで、新DBMSに移行した計算機システムにおいても、アプリケーションを変更することなく透過的に、かつ、新旧両方のDBMSの種類によらず汎用的に、計算機システムを継続して動作させる。
[効果の説明]
次に本実施の形態の効果について説明する。
本実施の形態では、DB接続ミドルウェアにおいて、アプリケーションが発行したデータ処理要求の内容であるSQLを、旧DBMS用のSQLから新DBMS用のSQLに変換し、移行後の新DBMSでも解釈できるようにすることで、新DBMSに移行しても、アプリケーションを変更することなく透過的に、計算機システムを継続して動作させることができる。
また、データ処理要求が標準プロトコルの段階でSQL変換を行い、その後、SQLを変換したデータ処理要求を、DBMSに応じたプロトコル変換部を用いてDBMS固有のプロトコルに変換してDBMSに発行するため、DBMSの種類によらず、同じ機構を用いて汎用的に、適用できる。
また、SQL変換を行う機構が、各アプリケーションサーバ毎に分散しているため、ボトルネックが存在せずスケーラビリティに優れ、また単一故障点も存在しないため、耐障害にも優れる。
以上説明したように、本実施形態の計算機システムでは、旧データベースサーバから新データベースサーバへ移行した状態においては、アプリケーションプログラムから発行されたデータベース処理要求のデータベース操作言語を、データベース非依存のプロトコルの段階で新データベースサーバに適するデータベース操作言語に変換し、その後にプロトコルをデータベース非依存のプロトコルから新データベース依存のプロトコルに変換して新データベースサーバへ投入することを基本とする。
本実施形態の計算機システムによれば、DBMSと連携して情報処理を行うアプリケーションが動作する計算機システムにおいて、用いられてきた旧DBMSを異なる新DBMSに移行する際に、アプリケーションを変更することなく透過的に、かつ、新旧両方のDBMSの種類によらず汎用的に、DBMSを移行し、情報システムを継続して動作させることが可能になる。そのため、既存のシステムに対し容易に適用することができる。
その理由は、データベース接続部において、アプリケーションが発行したデータ処理要求の内容であるデータベース操作言語(SQL等)を、旧DBMS用から新DBMS用に変換し、また、その変換を、データ処理要求がデータベース非依存のプロトコルの段階で行い、その後、データベース操作言語を変換したデータ処理要求を、DBMSに応じたプロトコル変換部を用いてDBMS固有のプロトコルに変換してDBMSに発行するためである。
(第2の実施の形態)
次に本発明の第2の実施の形態について図面を参照して詳細に説明する。
[構成の説明]
図3は、本発明の実施の形態に係る計算機システムの構成を示すブロック図である。
本発明の実施の形態に係る計算機システムは、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース非依存のプロトコル(標準プロトコル)に従って発行するアプリケーションプログラム5110が稼動する1以上のアプリケーションサーバ5100−1、5100−2、5100−nと、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(旧DBプロトコル)に従って受け付ける旧データベースサーバ5200と、第2のデータベース操作言語(新DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(新DBプロトコル)に従って受け付ける新データベースサーバ5300と、第1のモード(準備モード)が指定された場合、アプリケーションプログラム5110から発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を旧データベースサーバ5200に適するデータベース依存のプロトコル(旧DBプロトコル)に変換して旧データベースサーバ5200に投入し、他方のデータベース処理要求を新データベースサーバ5300に適するデータベース依存のプロトコル(新DBプロトコル)に変換して新データベースサーバ5300に投入し、旧データベースサーバ5200および新データベースサーバ5300のデータ処理結果をデータベース非依存のプロトコル(標準プロトコル)に変換して比較検証し、比較検証結果を出力するとともに、データベース非依存のプロトコル(標準プロトコル)に変換された旧データベースサーバ5200のデータ処理結果をアプリケーションプログラム5110に返却し、第2のモード(検証モード)が指定された場合、アプリケーションプログラム5110から発行されたデータベース処理要求を第2のデータベース操作言語(新DB用SQL)に変換した後、新データベースサーバ5300に適するデータベース依存のプロトコル(新DBプロトコル)に変換して新データベースサーバ5300に投入し、新データベースサーバ5300のデータ処理結果をデータベース非依存のプロトコル(標準プロトコル)に変換してアプリケーションプログラム5110に返却するデータベース接続部(拡張DB接続ミドルウェア5120)と、を備える。
図3を参照すると、本発明の第2の実施の形態は、複数のアプリケーションサーバ5100−1,5100−2,…,5100−nと、旧データベースサーバ5200と、新データベースサーバ5300と、各アプリケーションサーバ5100−1,5100−2,…,5100−nの拡張DB接続ミドルウェア5120(後述)を制御する切り替え部5400とから構成される。
各アプリケーションサーバ5100−1,5100−2,…,5100−nは、情報処理を行うアプリケーション5110と、アプリケーション5110と旧DBMS5210(後述)および新DBMS5310(後述)を接続する拡張DB接続ミドルウェア5120とを備える。
データベース接続部(拡張DB接続ミドルウェア5120)は、アプリケーションプログラム5110から発行されたデータベース処理要求のデータベース操作言語(旧DB用SQL)を第2のデータベース操作言語(新DB用SQL)に変換する仕様変換部(SQL変換部5124)と、データベース処理要求のプロトコル(標準プロトコル)を新データベースサーバ5300に適するデータベース依存のプロトコル(新DBプロトコル)に変換し、新データベースサーバ5300のデータ処理結果のプロトコル(新DBプロトコル)をデータベース非依存のプロトコル(標準プロトコル)に変換する新プロトコル変換部(新DB用プロトコル変換部5126)と、データベース処理要求のプロトコル(標準プロトコル)を旧データベースサーバ5200に適するデータベース依存のプロトコル(旧DBプロトコル)に変換し、旧データベースサーバ5200のデータ処理結果のプロトコル(旧DBプロトコル)をデータベース非依存のプロトコル(標準プロトコル)に変換する旧プロトコル変換部(旧DB用プロトコル変換部5123)と、データベース非依存のプロトコル(標準プロトコル)に変換された新データベースサーバ5300および旧データベースサーバ5200のデータ処理結果どうしを比較検証する検証部5127と、検証部5127の比較検証結果を出力する出力部(通知部5128)と、第1のモード(準備モード)と第2のモード(検証モード)のうち指定されたモードによる処理を制御する制御部(制御部5122)と、を備える。
具体的には、拡張DB接続ミドルウェア5120は、標準プロトコルのインタフェースであるインタフェース5121と、データ処理要求の流れを制御する制御部5122と、標準プロトコルを旧DBMS5210固有のプロトコルに変換する旧DB用プロトコル変換部5123と、標準プロトコルを新DBMS5310固有のプロトコルに変換する新DB用プロトコル変換部5126と、データ処理要求の内容であるSQLを変換するSQL変換部5124と、どのようにSQL変換を行うかを定義した変換ルールである変換情報を記憶する変換情報記憶部5125(以後、「変換情報5125」と示す)と、データ処理結果を比較検証する検証部5127と、検証結果を通知する通知部5128とを備える。
旧データベースサーバ5200は、アプリケーション5110が処理を行う際に必要なデータである旧形式データ5220を蓄積するストレージと、旧形式データ5220を管理する移行前の旧DBMS5210とを備える。
新データベースサーバ5300は、旧形式データ5220を新DBMS5310が扱える形に変換した新形式データ5320を蓄積するストレージと、新形式データ5320を管理する移行した新DBMS5310とを備える。
[動作の説明]
次に図3および図4〜図8のフローチャートを参照して、本実施の形態の計算機システムの動作について詳細に説明する。
本発明の実施の形態に係るデータベースアクセス方法は、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース非依存のプロトコル(標準プロトコル)に従って発行するアプリケーションプログラム5110が稼動する1以上のアプリケーションサーバ5100−1、5100−2、5100−nと、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(旧DBプロトコル)に従って受け付ける旧データベースサーバ5200と、第2のデータベース操作言語(新DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(新DBプロトコル)に従って受け付ける新データベースサーバ5300と、を備えた計算機システムにおけるデータベースアクセス方法であって、データベース接続部(拡張DB接続ミドルウェア5120)が、第1のモード(準備モード)が指定された場合、アプリケーションプログラム5110から発行されたデータベース処理要求を多重化し(ステップS6003)、一方のデータベース処理要求を旧データベースサーバ5200に適するデータベース依存のプロトコル(旧DBプロトコル)に変換して旧データベースサーバ5200に投入し(ステップS6101)、他方のデータベース処理要求を新データベースサーバ5300に適するデータベース依存のプロトコル(新DBプロトコル)に変換して新データベースサーバ5300に投入し(ステップS6201)、旧データベースサーバ5200および新データベースサーバ5300のデータ処理結果をデータベース非依存のプロトコル(標準プロトコル)に変換して比較検証し(ステップS6103、S6203、S6004、S6005)、比較検証結果を出力するとともに(ステップS6006)、データベース非依存のプロトコル(標準プロトコル)に変換された旧データベースサーバ5200のデータ処理結果をアプリケーションプログラム5110に返却し(ステップS6007、S6008)、第2のモード(検証モード)が指定された場合、アプリケーションプログラム5110から発行されたデータベース処理要求を第2のデータベース操作言語(新DB用SQL)に変換した後(ステップS7201)、新データベースサーバ5300に適するデータベース依存のプロトコル(新DBプロトコル)に変換して新データベースサーバ5300に投入し(ステップS7203)、新データベースサーバ5300のデータ処理結果をデータベース非依存のプロトコル(標準プロトコル)に変換してアプリケーションプログラム5110に返却する(ステップS7205)。
本実施の形態には、以下の3つのモードによる動作がある。
1.準備モード
DBMS移行作業の準備として、移行に伴って変換が必要となる旧SQLを実運用環境において発見するモード。
2.検証モード
DBMS移行作業として、設定した変換ルールに基づくSQL変換の成否を実運用環境において検証するモード。
3.移行モード
完全に新DBMSに移行するモード。
各モードは、切り替え部5400によって、制御部5122の動作を切り替えることで変更する。なお、この切り替えは、人の判断で行ってもよいし、アプリケーションや拡張DB接続ミドルウェアの状態を監視し、それをもとに自動で判断して行ってもよい。
[準備モード]
まずは、図3と、図4および図5のフローチャートを参照して、本実施の形態の準備モードの動作について詳細に説明する。
アプリケーションサーバ5100−1,5100−2,…,5100−nにおいて、アプリケーション5110がDBMSにデータ処理を依頼する場合、データ処理要求として、移行前の旧DBMS5210用のSQLを、標準プロトコルでもって、DB接続ミドルウェア5120を介して発行しようとする(ステップS6001)。
拡張DB接続ミドルウェア5120において、インタフェース5121がデータ処理要求を受け取り、制御部5122に転送する(ステップS6002)。
データ処理要求を受け取った制御部5122は、それを多重化し、旧DB用プロトコル変換部5123と新DB用プロトコル変換部5126に、それぞれ転送する(ステップS6003)。
多重化されたデータ処理要求の一方を受け取った旧DB用プロトコル変換部5123は、標準プロトコルのデータ処理要求を、旧DBMS5210固有のプロトコルに変換して、旧DBMS5210に発行する(ステップS6101)。
旧データベースサーバ5200において、固有プロトコルのデータ処理要求を受け取った旧DBMS5210は、データ処理要求のSQLを解釈し、その要求に従い、管理している旧形式データ5220を用いてデータ処理を行い、その結果であるデータ処理結果を、やはり固有プロトコルでもって、旧DB用プロトコル変換部5123に返す(ステップS6102)。
固有プロトコルのデータ処理結果を受け取った旧DB用プロトコル変換部5123は、データ処理結果を標準プロトコルに変換し、制御部5122に転送する(ステップS6103)。
また、多重化されたデータ処理要求のもう一方を受け取った新DB用プロトコル変換部5126は、標準プロトコルのデータ処理要求を、新DBMS5310固有のプロトコルに変換して、新DBMS5310に発行する(ステップS6201)。
新データベースサーバ5300において、固有プロトコルのデータ処理要求を受け取った新DBMS5310は、データ処理要求のSQLを解釈し、その要求に従い、管理している新形式データ5320を用いてデータ処理を行い、その結果であるデータ処理結果を、やはり固有プロトコルでもって、新DB用プロトコル変換部5126に返す(ステップS6202)。
なお、受け取ったデータ処理要求は、旧DBMS5210用のSQLで記述されているため、新DBMSでは解釈できず、データ処理結果としてエラーを返す場合もありえる。
固有プロトコルのデータ処理結果を受け取った新DB用プロトコル変換部5126は、データ処理結果を標準プロトコルに変換し、制御部5122に転送する(ステップS6203)。
旧DBMS5210からのデータ処理結果と、新DBMS5310からのデータ処理結果の両方を受け取った制御部5122は、両方のデータ処理結果を検証部5127に転送する(ステップS6004)。
検証部5127は、両DBMSからのデータ処理結果の内容を調べ、比較検証する。この時点では、各データ処理結果は、仕様が公開されていないDBMS固有のプロトコルではなく、仕様の公開された標準プロトコルのため、データ処理結果を調べ、比較することは容易である(ステップS6005)。なお、データ処理結果を比較検証するだけでなく、データ処理要求を投入してからデータ処理結果が帰ってくるまでのデータ処理時間を計測、比較し、極端に処理に時間がかかるSQLは、パフォーマンスチューニングのための変換を行ったほうがよいSQLであると判断し、その旨を比較検証結果として出力してもよい。
通知部5128は、比較検証した両データ処理結果の元となったデータ処理要求を制御部5122から受取り、このデータ処理要求と比較検証の結果(両DBMSからのデータ処理結果が、同じか、異なるか)を示すメッセージをコンソールに表示する、ログファイルに記録する、等の方法で通知する(ステップS6006)。
なお、通知部5128は、常に比較検証の結果を通知するのではなく、例えば異なる場合のみ通知する、といった動作をしてもかまわない。
また、通知部5128は、通知先や通知条件を状況に応じて変化させても構わない。たとえば、準備モード等、変換ルールが整っていない場合は、検証結果が異なる場合にログファイルに記録し、検証モードで変換ルールを検証中には、すべての検証結果をログファイルに記録し、変換ルールが整備されたあとは、検証結果が異なる場合のみ、メールで管理者に通知する等が考えられる。
一方、制御部5122は、両DBMSからのデータ処理結果のうち、旧DBMS5210からのデータ処理結果のみをインタフェース5121に転送する(ステップS6007)。
データ処理結果を受け取ったインタフェース5121は、それをアプリケーション5110に返す(ステップS6008)。
アプリケーション5110は、旧DBMS5210単体に対してデータ処理要求を発行した場合と同様のデータ処理結果を受け取り、従来通り情報処理を行う(ステップS6009)。
このように動作することで、旧DBMSにデータ処理要求を投入して、その処理結果を用いて計算機システムを継続して動作させつつ、新DBMSにもデータ処理要求を投入し、その処理結果を、旧DBMSの処理結果と比較検証し、結果が異なるSQLは変換すべきSQLであると特定する。
[検証モード]
次に、図3と、図6および図7のフローチャートを参照して、本実施の形態の検証モードの動作について詳細に説明する。
図6のステップS7001〜S7002、ステップS7101〜S7103、ステップS7203〜S7205、ステップS7004、図7のステップS7005〜S7009で示される動作は、それぞれ図4のステップS6001〜S6002、ステップS6101〜S6103、ステップS6201〜S6203、ステップS6004、図5のステップS6005〜S6009の動作と同一であるため、説明は省略する。
インタフェース5121から標準プロトコルのデータ処理要求を受け取った制御部5122は、それを多重化し、旧DB用プロトコル変換部5123とSQL変換部5124に、それぞれ転送する(ステップS7003)。
多重化されたデータ処理要求の一方を受け取ったSQL変換部5124は、データ処理要求の内容であるSQLを調べ、変換情報5125に基づき、必要であれば、SQL変換を行う(ステップS7201)。
この際、変換情報5125は、準備モードで取得した比較検証の結果を元に、特定した変換すべきSQLの変換ルールが設定されている。
SQL変換後、SQL変換部5124は、変換したデータ処理要求を制御部5122に返す。
変換されたデータ処理要求を受け取った制御部5122は、それを新DB用プロトコル変換部5126に転送する(ステップS7202)。
このように動作することで、旧DBMSにデータ処理要求を投入して、その処理結果を用いて計算機システムを継続して動作させつつ、新DBMSには、新DBMS用SQLに変換したデータ処理要求を投入し、その処理結果を、旧DBMSの処理結果と比較検証する。
[移行モード]
次に、図3および図8のフローチャートを参照して、本実施の形態の移行モードの動作について詳細に説明する。
図8のステップS8001〜S8002、ステップS8004〜S8008、ステップS8010〜S8011で示される動作は、それぞれ図6のステップS7001〜S7002、ステップS7201〜S7205、図7のステップS7008〜S7009の動作と同一であるため、説明は省略する。
インタフェース5121から標準プロトコルのデータ処理要求を受け取った制御部5122は、それをSQL変換部5124にのみ転送する(ステップS8003)。
新DBプロトコル変換部5126から、新DBMS5310からの標準プロトコルのデータ処理結果を受け取った制御部5122は、それをインタフェース5121に返す(ステップS8009)。
このように動作することで、新DBMSで、アプリケーションを変更することなく透過的に、かつ、新旧両方のDBMSの種類によらず汎用的に、計算機システムを継続して動作させる。
[効果の説明]
次に本実施の形態の効果について説明する。
本実施の形態では、第1の実施の形態で得られる効果に加えて、準備モードにおいて、アプリケーションが発行するデータ処理要求を旧DBMS用SQLのまま旧DBMS、新DBMS両方に投入し、その結果を比較検証することで、結果が異なったSQLは、変換すべきSQLであると特定することができる。
また、データ処理結果だけでなく、データ処理要求を投入してからデータ処理結果が帰ってくるまでのデータ処理時間を計測、比較することで、極端に処理に時間がかかるSQLは、パフォーマンスチューニングのための変換を行ったほうがよいSQLであると特定することができる。
また、検証モードにおいて、旧DBMSには、旧DB用SQLのままのデータ処理要求を投入し、新DBMSには、準備モードで特定した変換すべきSQLの変換ルールを変換情報として設定して、それを元にSQL変換したデータ処理要求を投入し、その結果を比較検証することで、設定した変換情報が正しいかどうかを検証することができる。
また、変換情報が正しくない場合は、比較検証の結果から設定しなおすべきSQLとその変換ルールを特定し、再度設定しなおして検証を繰り返すことで、変換ルールを、ブラッシュアップすることができる。
また、準備モード、検証モード両方において、新DBMSがデータ処理結果としてエラーを返してきても、旧DBMSのデータ処理結果のみをアプリケーションに返すことで、エラーの影響を受けることなく、情報システムを継続して動作させるので、テスト環境ではなく、実際の運用環境において、準備、検証を実行することができる。
また、移行モードにおいて、検証モードで正しさが十分検証された変換ルールを用いてSQL変換を行うことで、新DBMSに移行しても、アプリケーションを変更することなく透過的に、情報システムを継続して動作させることができる。
以上説明したように本実施形態の計算機システムでは、旧データベースサーバから新データベースサーバへ移行する作業を支援するために、アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方を旧データベースサーバに投入すると同時に、他方をわざとそのまま新データベースサーバに投入して両者のデータ処理結果を比較するモードを設けることで、新データベース操作言語に変更すべき旧データベース操作言語の洗い出しを行う。
本実施形態の計算機システムによれば、上記実施形態の効果に加え、変換したデータベース操作言語が正しく動作しているか検証できるという効果を奏する。
その理由は、データ処理要求を多重化し、一方をそのまま旧DBMSに、もう一方を変換して新DBMS両方に投入し、そのデータ処理の結果を比較するためである。
(第2の実施の形態の変形例)
上述した第2の実施の形態では、準備モードおよび検証モードの両方のモードにおいて、新DBMS5310と旧DBMS5210に対するデータ処理要求のデータ処理結果が異なる場合、旧形式データ5220と新形式データ5320に不整合が発生し、以降のデータ処理結果が全て異なる可能性がある。このため、準備モードにあっては、変換すべきSQLの特定に誤りが生じるおそれがあり、検証モードにあってはSQL変換ルール自体の検証が困難になる。従って、第2の実施の形態は参照がメインのシステムには向いているが、更新の多いシステムには向いていない。
そこで、第2の実施の形態の変形例では、データ処理結果が異なる場合、以降、制御部5122は新DBMS5310へのデータ処理要求の転送を行わない。
すなわち、データベース接続部(拡張DB接続ミドルウェア5120)は、第1のモードの処理(準備モード)において、旧データベースサーバ5200および新データベースサーバ5300のデータ処理結果が一致しなかった場合、新データベースサーバ5300への以降のデータベース処理要求の投入を停止する。
データ処理結果が一致するか否かの検証は、図3の検証部5127により行われ、旧データベースサーバ5200および新データベースサーバ5300のデータ処理結果が一致しなかった場合、制御部5122に新データベースサーバ5300への以降のデータベース処理要求の投入を停止するよう指示する。
これにより、以後、準備モードの場合には変換の必要なSQLの発見動作が停止するが、変換すべきSQLの特定に誤りが生じるのを防止することができる。また、検証モードの場合には、以後、検証動作が停止するが、設定されたSQL変換ルールが正しいのにもかかわらず間違っているとの検証結果が出力されるのを防止することができる。
なお、新DBMS5310と旧DBMS5210に対するデータ処理要求のデータ処理結果が異なる場合に旧形式データ5220と新形式データ5320に不整合が発生するのは、当該データ処理要求がデータを変更する要求(UPDATE、INSERT、DELETE等)の場合なので、後述する第3の実施の形態における判定部(図9の9129)と同様な判定部を設け、この判定部によりデータ処理要求がデータを変更する要求であるかどうかを判定し、データを変更する要求である場合に限り、以降、制御部5122は新DBMS5310へのデータ処理要求の転送を行わないようにしても良い。
すなわち、データベース接続部(拡張DB接続ミドルウェア5120)は、第1のモード(準備モード)の処理において、旧データベースサーバ5200および新データベースサーバ5300のデータ処理結果が一致しなかった場合、元のデータベース処理要求がデータを変更する要求であれば、新データベースサーバ5300への以降のデータベース処理要求の投入を停止する。
(第3の実施の形態)
次に本発明の第3の実施の形態について図面を参照して詳細に説明する。
[構成の説明]
図9は、本発明の実施の形態に係る計算機システムの構成を示すブロック図である。
データベース接続部(拡張DB接続ミドルウェア9120)は、第1のモード(準備モード)の処理において、旧データベースサーバ9200および新データベースサーバ9300のデータ処理結果が一致しなかった場合、元のデータベース処理要求がデータを変更する要求であるか否かを判定する判定部9129と、元のデータベース処理要求がデータを変更する要求であれば、旧データベースサーバ9200および新データベースサーバ9300に対して行ったデータベース処理要求を取り消す取消部9130と、を含み、データベース処理要求を取り消したとき、データベース処理が実行されなかった旨のデータ処理結果をアプリケーションプログラム9110に返却する。
図9を参照すると、本発明の第3の実施の形態は、複数のアプリケーションサーバ9100−1,9100−2,…,9100−nと、旧データベースサーバ9200と、新データベースサーバ9300と、各アプリケーションサーバ9100−1,9100−2,…,9100−nの拡張DB接続ミドルウェア9120を制御する切り替え部9400とから構成される。
各アプリケーションサーバ9100−1,9100−2,…,9100−nは、情報処理を行うアプリケーション9110と、アプリケーション9110と旧DBMS9210および新DBMS9310を接続する拡張DB接続ミドルウェア9120とを備える。
拡張DB接続ミドルウェア9120は、標準プロトコルのインタフェースであるインタフェース9121と、データ処理要求の流れを制御する制御部9122と、標準プロトコルを旧DBMS9210固有のプロトコルに変換する旧DB用プロトコル変換部9123と、標準プロトコルを新DBMS9310固有のプロトコルに変換する新DB用プロトコル変換部9126と、データ処理要求の内容であるSQLを変換するSQL変換部9124と、どのようにSQL変換を行うかを定義した変換ルールである変換情報を記憶する変換情報記憶部9125(以後、「変換情報9125」と示す)と、データ処理結果を比較検証する検証部9127と、検証結果を通知する通知部9128と、データ処理要求を識別、判定する判定部9129と、データ処理要求の取り消し(ロールバック)を行う取消部9130とを備える。
旧データベースサーバ9200は、アプリケーション9110が処理を行う際に必要なデータである旧形式データ9220を蓄積するストレージと、旧形式データ9220を管理する移行前の旧DBMS9210とを備える。
新データベースサーバ9300は、旧形式データ9220を新DBMS9310が扱える形に変換した新形式データ9320を蓄積するストレージと、新形式データ9320を管理する移行した新DBMS9310とを備える。
[動作の説明]
次に本実施の形態の動作について詳細に説明する。
本実施の形態には、以下の3つのモードによる動作がある。
1.準備モード
DBMS移行作業の準備として、移行に伴って変換が必要となる旧SQLを実運用環境において発見するモード。
2.検証モード
DBMS移行作業として、設定した変換ルールに基づくSQL変換の成否を実運用環境において検証するモード。
3.移行モード
完全に新DBMSに移行するモード。
各モードは、切り替え部9400によって、制御部9122の動作を切り替えることで変更する。なお、この切り替えは、人の判断で行ってもよいし、アプリケーションや拡張DB接続ミドルウェアの状態を監視し、それをもとに判断を行う外部の制御装置が自動で行ってもよい。
[準備モード]
まずは、図9および図10〜図12のフローチャートを参照して、本実施の形態の準備モードの動作について詳細に説明する。
図10のステップS10001〜S10004、図11のステップS10005〜10006、図10のステップS10101〜S10103、ステップS10201〜S10203で示される動作は、それぞれ図4のステップS6001〜S6004、図5のステップS6005〜S6006、図4のステップS6101〜S6103、ステップS6201〜S6203の動作と同一であるため、説明は省略する。
検証部9127による旧DBMS9210からのデータ処理結果と新DBMS9310からのデータ処理応答の比較検証の結果(ステップS10007)、両方のデータ処理結果が異なれば、判定部9129は、データ処理結果の元となったデータ処理要求が、データを変更するデータ処理要求(UPDATE、INSERT、DELETE等)であるかどうかを判定する(ステップS10008)。
判定部9129による判定の結果(ステップS10009)、データ処理要求が、データを変更するデータ処理要求であった場合、取消部9130は、データ処理要求による変更を取り消すデータ処理要求(ROLLBACK等)を、標準プロトコルで発行する(ステップS10010)。
取消データ処理要求を受け取った制御部9122は、それを多重化し、旧DB用プロトコル変換部9123と新DB用プロトコル変換部9126に、それぞれ転送する(ステップS10011)。
多重化された取消データ処理要求の一方を受け取った旧DB用プロトコル変換部9123は、標準プロトコルの取消データ処理要求を、旧DBMS9210固有のプロトコルに変換して、旧DBMS9210に発行する(ステップS10301)。
旧データベースサーバ9200において、固有プロトコルの取消データ処理要求を受け取った旧DBMS9210は、取消データ処理要求のSQLを解釈し、その要求に従い、ステップS10102で旧DBMS9210が行ったデータ処理による旧形式データ9220の変更を取り消し、その結果であるデータ処理結果を、やはり固有プロトコルでもって、旧DB用プロトコル変換部9123に返す(ステップS10302)。
固有プロトコルのデータ処理結果を受け取った旧DB用プロトコル変換部9123は、データ処理結果を標準プロトコルに変換し、制御部9122に転送する(ステップS10303)。
また、多重化された取消データ処理要求のもう一方を受け取った新DB用プロトコル変換部9126は、標準プロトコルの取消データ処理要求を、新DBMS9310固有のプロトコルに変換して、新DBMS9310に発行する(ステップS10401)。
新データベースサーバ9300において、固有プロトコルの取消データ処理要求を受け取った新DBMS9310は、取消データ処理要求のSQLを解釈し、その要求に従い、ステップS10202で新DBMS9310が行ったデータ処理による新形式データ9320の変更を取り消し、その結果であるデータ処理結果を、やはり固有プロトコルでもって、新DB用プロトコル変換部9126に返す(ステップS10402)。
固有プロトコルのデータ処理結果を受け取った新DB用プロトコル変換部9126は、データ処理結果を標準プロトコルに変換し、制御部9122に転送する(ステップS10403)。
旧DBMS9210からのデータ処理結果と、新DBM9310からのデータ処理結果の両方を受け取った制御部9122は、これを破棄し、データ処理要求が実行できなかったという旨のデータ処理結果をインタフェース9121に発行する(ステップS10012)。
データ処理結果を受け取ったインタフェース9121は、それをアプリケーション9110に返す(ステップS10013)。
アプリケーション9110は、データ処理結果を受け取り、発行したデータ処理要求が実行されなかったことを認識した上で、通常通り、情報処理を継続する(ステップS10014)。このときアプリケーション9110はデータ処理には失敗するが、異常終了するわけではない。なぜなら、「処理できなかった」という応答は異常なものではないからである。アプリケーション9110は、「処理できなかった」という結果に応じた処理を継続する。その処理の結果はアプリケーションの停止かもしれないが、これも異常終了ではなく、想定された終了である。
一方、ステップS10007で、旧DBMS9210からのデータ処理結果と新DBMS9310からのデータ処理応答の比較検証の結果が同じである場合、あるいは、ステップS10009で、データ処理要求が、データを変更するデータ処理要求でない場合、制御部S9122は、両DBMSからのデータ処理結果のうち、旧DBMS9210からのデータ処理結果のみをインタフェース9121に転送する(ステップS10501)。
データ処理結果を受け取ったインタフェース9121は、それをアプリケーション9110に返す(ステップS10502)。
アプリケーション9110は、旧DBMS9210単体に対してデータ処理要求を発行した場合と同様のデータ処理結果を受け取り、従来通り情報処理を行う(ステップS10503)。
このように動作することで、旧DBMS9210と新DBMS9310でデータ処理結果が異なっても、そのデータ処理を取り消すことで、旧形式データ9220と新形式データ9320との論理的な整合性を維持し、継続して両DBMSを用いて、変換すべきSQLの特定を継続する。
[検証モード]
次に、図9および図13〜図15のフローチャートを参照して、本実施の形態の検証モードの動作について詳細に説明する。
図13のステップS11001、S11002、S11004、ステップS11101〜S11103、ステップS11203〜S11205、図14のステップS11005〜S11009、ステップS11501〜S11503、図15のステップS11010〜S11014、ステップS11301〜S11303、ステップS11401〜S11403で示される動作は、それぞれ図10のステップS10001、S10002、S10004、ステップS10101〜S10103、ステップS10201〜S10203、図11のステップS10005〜S10009、ステップS10501〜S10503、図12のステップS10010〜S10014、ステップS10301〜S10303、ステップS10401〜S10403の動作と同一であるため、説明は省略する。
インタフェース9121から標準プロトコルのデータ処理要求を受け取った制御部9122は、それを多重化し、旧DB用プロトコル変換部9123とSQL変換部9124に、それぞれ転送する(ステップS11003)。
多重化されたデータ処理要求の一方を受け取ったSQL変換部9124は、データ処理要求の内容であるSQLを調べ、変換情報9125に基づき、必要であれば、SQL変換を行い、変換したデータ処理要求を制御部9122に返す(ステップS11201)。制御部9122は、変換されたデータ処理要求を新DBプロトコル変換部9126に転送する(ステップS11202)。
このように動作することで、旧DBMS9210と新DBMS9310でデータ処理結果が異なっても、そのデータ処理を取り消すことで、旧形式データ9220と新形式データ9320との論理的な整合性を維持し、継続して両DBMSを用いて、SQL変換の検証を継続する。
[移行モード]
移行モードの動作は、第2の実施の形態における移行モードの動作と同一のため、その動作の説明は省略する。
[効果の説明]
次に本実施の形態の効果について説明する。
本実施の形態では、第2の実施の形態で得られる効果に加えて、変換ルールが不完全で、新DBMSと旧DBMSのデータ処理結果が異なった場合でも、そのデータ処理を取り消すことで、旧形式データと新形式データの整合性を維持し、変換すべきSQLの特定、およびSQL変換の検証を継続できる。
(第4の実施の形態)
次に本発明の第4の実施の形態について図面を参照して詳細に説明する。
[構成の説明]
図16は、本発明の実施の形態に係る計算機システムの構成を示すブロック図である。
本発明の実施の形態に係る計算機システムは、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース非依存のプロトコル(標準プロトコル)に従って発行するアプリケーションプログラム12110が稼動する1以上のアプリケーションサーバ12100−1、12100−2、12100−nと、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(旧DBプロトコル)に従って受け付ける旧データベースサーバ12200と、第2のデータベース操作言語(新DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(新DB用プロトコル)に従って受け付ける新データベースサーバ12300と、第1のモード(検証モード)が指定された場合、アプリケーションプログラム12110から発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を旧データベースサーバ12200に適するデータベース依存のプロトコル(旧DBプロトコル)に変換して旧データベースサーバ12200に投入し、他方のデータベース処理要求を第2のデータベース操作言語(新DB用SQL)に変換した後、新データベースサーバ12300に適するデータベース依存のプロトコル(新DBプロトコル)に変換して新データベースサーバ12300に投入し、旧データベースサーバ12200および新データベースサーバ12300のデータ処理結果をデータベース非依存のプロトコル(標準プロトコル)に変換して比較検証し、比較検証結果を出力するとともに、データベース非依存のプロトコル(標準プロトコル)に変換された旧データベースサーバ12200のデータ処理結果をアプリケーションプログラム12110に返却し、第2のモード(移行モード)が指定された場合、アプリケーションプログラム12110から発行されたデータベース処理要求を第2のデータベース操作言語(新DB用SQL)に変換した後、新データベースサーバ12300に適するデータベース依存のプロトコル(新DBプロトコル)に変換して新データベースサーバ12300に投入し、新データベースサーバ12300のデータ処理結果をデータベース非依存のプロトコル(標準プロトコル)に変換してアプリケーションプログラム12110に返却するデータベース接続部(拡張DB接続ミドルウェア12120)と、を備える。
さらに、データベース接続部(拡張DB接続ミドルウェア12120)は、第1のモード(検証モード)の処理において、旧データベースサーバ12200および新データベースサーバ12300のデータ処理結果が一致しなかった場合、新データベースサーバ12300に対して行ったデータベース処理要求を必要に応じて取り消し、第1のデータベース操作言語(旧DB用SQL)を第2のデータベース操作言語(新DB用SQL)に変換するための変換情報12125を変更した後、該変更後の変換情報12125を用いて元のデータベース処理要求を第2のデータベース操作言語(新DB用SQL)に変換し、さらに新データベースサーバ12300に適したデータベース依存のプロトコル(新DBプロトコル)に変換して新データベースサーバ12300に投入し、得られた新データベースサーバ12300のデータ処理結果をデータベース非依存のプロトコル(標準プロトコル)に変換して旧データベースサーバ12200のデータ処理結果と比較検証する。
図16を参照すると、本発明の第4の実施の形態は、複数のアプリケーションサーバ12100−1,12100−2,…,12100−nと、旧データベースサーバ12200と、新データベースサーバ12300と、各アプリケーションサーバ12100−1,12100−2,…,12100−nの拡張DB接続ミドルウェア12120を制御する切り替え部12400とから構成される。
各アプリケーションサーバ12100−1,12100−2,…,12100−nは、情報処理を行うアプリケーション12110と、アプリケーション12110と旧DBMS12210および新DBMS12310を接続する拡張DB接続ミドルウェア12120とを備える。
データベース接続部(拡張DB接続ミドルウェア12120)は、アプリケーションプログラム12110から発行されたデータベース処理要求のデータベース操作言語(旧DB用SQL)を第2のデータベース操作言語(新DB用SQL)に変換する仕様変換部(SQL変換部12124)と、データベース処理要求のプロトコル(標準プロトコル)を新データベースサーバ12300に適するデータベース依存のプロトコル(新DBプロトコル)に変換し、新データベースサーバ12300のデータ処理結果のプロトコル(新DBプロトコル)をデータベース非依存のプロトコル(標準プロトコル)に変換する新プロトコル変換部(新DB用プロトコル変換部12126)と、データベース処理要求のプロトコル(標準プロトコル)を旧データベースサーバ12200に適するデータベース依存のプロトコル(旧DBプロトコル)に変換し、旧データベースサーバ12200のデータ処理結果のプロトコル(旧DBプロトコル)をデータベース非依存のプロトコル(標準プロトコル)に変換する旧プロトコル変換部(旧DB用プロトコル変換部12123)と、データベース非依存のプロトコル(標準プロトコル)に変換された新データベースサーバ12300および旧データベースサーバ12200のデータ処理結果どうしを比較検証する検証部12127と、検証部12127の比較検証結果を出力する出力部(通知部12128)と、第1のモード(検証モード)と第2のモード(移行モード)のうち指定されたモードによる処理を制御する制御部(制御部12122)と、を備える。
具体的には、拡張DB接続ミドルウェア12120は、標準プロトコルのインタフェースであるインタフェース12121と、データ処理要求の流れを制御する制御部12122と、標準プロトコルを旧DBMS12210固有のプロトコルに変換する旧DB用プロトコル変換部12123と、標準プロトコルを新DBMS12310固有のプロトコルに変換する新DB用プロトコル変換部12126と、データ処理要求の内容であるSQLを変換するSQL変換部12124と、どのようにSQL変換を行うかを定義した変換ルールである変換情報を記憶する変換情報記憶部12125(以後、「変換情報12125」と示す)と、変換情報を変更する変更部12131と、データ処理結果を比較検証する検証部12127と、検証結果を通知する通知部12128と、データ処理要求を識別、判定する判定部12129と、データ処理の取り消し(ロールバック)を行う取消部12130と、データ処理要求を記録、再生する記録再生部12132と、記録したデータ処理要求である要求記録を記録する要求記録部12133(以後、「要求記録12133」と示す)とを備える。
旧データベースサーバ12200は、アプリケーション12110が処理を行う際に必要なデータである旧形式データ12220を蓄積するストレージと、旧形式データ12220を管理する移行前の旧DBMS12210とを備える。
新データベースサーバ12300は、旧形式データ12220を新DBMS12310が扱える形に変換した新形式データ12320を蓄積するストレージと、新形式データ12320を管理する移行した新DBMS12310とを備える。
[動作の説明]
次に図16および図17〜図19のフローチャートを参照して、本実施の形態の計算機システムの動作について詳細に説明する。
本発明の実施の形態に係るデータベースアクセス方法は、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース非依存のプロトコル(標準プロトコル)に従って発行するアプリケーションプログラム12110が稼動する1以上のアプリケーションサーバ12100−1、12100−2、12100−nと、第1のデータベース操作言語(旧DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(旧DBプロトコル)に従って受け付ける旧データベースサーバ12200と、第2のデータベース操作言語(新DB用SQL)に準拠したデータベース処理要求をデータベース依存のプロトコル(新DBプロトコル)に従って受け付ける新データベースサーバ12300と、を備えた計算機システムにおけるデータベースアクセス方法であって、データベース接続部(拡張DB接続ミドルウェア12120)が、第1のモード(検証モード)が指定された場合、アプリケーションプログラム12110から発行されたデータベース処理要求を多重化し(ステップS13004)、一方のデータベース処理要求を旧データベースサーバ12200に適するデータベース依存のプロトコル(旧DBプロトコル)に変換して旧データベースサーバ12200に投入し(ステップS13101)、他方のデータベース処理要求を第2のデータベース操作言語(新DB用SQL)に変換した後(ステップS13201)、新データベースサーバ12300に適するデータベース依存のプロトコル(新DBプロトコル)に変換して新データベースサーバ12300に投入し(ステップS13203)、旧データベースサーバ12200および新データベースサーバ12300のデータ処理結果をデータベース非依存のプロトコル(標準プロトコル)に変換して比較検証し(ステップS13103、S13205、S13005、S13006)、比較検証結果を出力するとともに(ステップS13007)、データベース非依存のプロトコル(標準プロトコル)に変換された旧データベースサーバ12200のデータ処理結果をアプリケーションプログラム12110に返却し(ステップS13501、S13502)、第2のモード(移行モード)が指定された場合、アプリケーションプログラム12110から発行されたデータベース処理要求を第2のデータベース操作言語(新DB用SQL)に変換した後(図8のステップS8004)、新データベースサーバ12300に適するデータベース依存のプロトコル(新DBプロトコル)に変換して新データベースサーバ12300に投入し(図8のステップS8006)、新データベースサーバ12300のデータ処理結果をデータベース非依存のプロトコル(標準プロトコル)に変換してアプリケーションプログラム12110に返却する(図8のステップS8008〜S8010)。
本実施の形態には、以下の2つのモードによる動作がある。
1.検証モード
DBMS移行作業として、設定した変換ルールに基づくSQL変換の成否を検証するモード。
2.移行モード
完全に新DBMSに移行するモード。
各モードは、切り替え部12400によって、制御部12122の動作を切り替えることで変更する。この切り替えは、人の判断で行ってもよいし、アプリケーションや拡張DB接続ミドルウェアの状態を監視し、それをもとに判断を行う外部の制御装置が自動で行ってもよい。なお、本実施の形態に、第2または第3の実施の形態における準備モードと同様な準備モードを設けるようにしても良い。
[検証モード]
次に、図16および図17〜図19のフローチャートを参照して、本実施の形態の検証モードの動作について詳細に説明する。
図17のステップS13001、S13002、S13004、S13005、ステップS13101〜S13103、ステップS13201〜S13205、図18のステップS13006〜S13010、S13011、ステップS13013〜S13015、ステップS13501〜S13503で示される動作は、それぞれ図13のステップS11001、ステップS11002、S11003、S11004、ステップS11101〜S11103、ステップS11201〜S11205、図14のステップS11005〜S11009、図15のS11010、ステップS11401〜S11403、図14のステップS11501〜S11503の動作と同一であるため、説明は省略する。
記録再生部12132は、制御部12122がインタフェース12121から転送されたデータ処理要求を、要求記録12133に記録する(ステップS13003)。
取消データ処理要求を受け取った制御部13122は、それを新DB用プロトコル変換部13126に転送する(ステップS13012)。
ステップS13204で新DBMS12310が行ったデータ処理を取り消し、そのデータ処理結果を新DB用プロトコル変換部12126を介して制御部12122が受け取った(ステップS13013〜S13015)後、変更部12131は、新DBMS12310が旧DBMS12210と同じデータ処理結果を返すようにデータ処理要求を変換できなかった変換情報12125の変換ルールを変更する(ステップS13016)。
この変換ルールの変更は、人が直接あるいは何らかのシステムを介して行ってもよいし、変換ルール変更用の外部装置が自動で行っても良い。
変換ルールの変更とは、既存の変換ルールを置き換える、新規に変換ルールを追加する、あるいは、複数ある変換ルールの適用優先順序を変更する、等が考えられる。
また、人がシステムを介して変換ルールを変更する場合、そのシステムのユーザインタフェースは、通知部12128によって通知、蓄積された検証部12127、あるいは他のシステムの検証部の検証履歴を利用し、成功した変換ルールや失敗した変換ルールを示す等の、変換ルールの変更作業を補佐する機能を備えていても良い。
次に、記録再生部12132は、ステップS13003で記録したデータ処理要求を、要求記録12133から再生し、制御部12122に発行する(ステップS13017)。
再生されたデータ処理要求を受け取った制御部12122は、それをSQL変換部12124に転送する(ステップS13018)。
データ処理要求を受け取ったSQL変換部12124は、ステップS13016で変更された新しい変換情報12125に基づき、ステップS13201とは異なるSQL変換を行い、変換したデータ処理要求を制御部12122に返す(ステップS13019)。
変換されたデータ処理要求を受け取った制御部12122は、それを新DB用プロトコル変換部12126に転送する(ステップS13020)。
データ処理要求を受け取った新DB用プロトコル変換部12126は、標準プロトコルのデータ処理要求を、新DBMS12310固有のプロトコルに変換して、新DBMS12310に発行する(ステップS13021)。
新データベースサーバ12300において、固有プロトコルのデータ処理要求を受け取った新DBMS12310は、データ処理要求のSQLを解釈し、その要求に従い、管理している新形式データ12320を用いてデータ処理を行い、その結果であるデータ処理結果を、やはり固有プロトコルでもって、新DB用プロトコル変換部12126に返す(ステップS13022)。
固有プロトコルのデータ処理結果を受け取った新DB用プロトコル変換部12126は、データ処理結果を標準プロトコルに変換し、制御部12122に転送する(ステップS13023)。
新DBMS12310からの新しいデータ処理結果を受け取った制御部12122は、保持していた旧DBMS12210からのデータ処理結果とともに、検証部12127に転送する(ステップS13024)。
このように動作することで、旧DBMS12210と新DBMS12310でデータ処理結果が異なる場合、新DBMS12310でそのデータ処理を取消し、変更した変換ルールで、データ処理結果が同じになるようにデータ処理要求を変換し、再度、新DBMS12310に投入することを繰り返すことで、変換ルールをブラッシュアップし、また、旧形式データ12220と新形式データ12320との論理的な整合性を維持し、継続して両DBMSを用いて検証を続けることができる。
[移行モード]
移行モードの動作は、第3の実施の形態における移行モードの動作と同一のため、その動作説明は省略する。
[効果の説明]
次に本実施の形態の効果について説明する。
本実施の形態では、第2の実施の形態で得られる効果に加えて、変換ルールが不完全で、新DBMSと旧DBMSのデータ処理結果が異なった場合でも、旧形式データと新形式データの整合性を維持し、検証を継続できる。
特に、一旦SQL変換がうまくいかなくても、これまでのSQL変換の検証結果の履歴等を元に変換ルールを即時修正し、再度変換、新DBMSに投入を繰り返すことで、アプリケーションに対しSQL変換の失敗を隠蔽し、データ処理が成功した状態で、これまでのSQL変換の検証結果の履歴等を元に、変換ルールのブラッシュアップ、検証を継続できる。
本実施形態の計算機システムでは、同じく旧データベースサーバから新データベースサーバへ移行する作業を支援するために、アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方を旧データベースサーバに投入すると同時に、他方を変換ルールで変換して新データベースサーバに投入して両者のデータ処理結果を比較するモードを設けることで、旧データベース操作言語から新データベース操作言語へ変換するルールである変換情報が正しく設定されているかどうかを検証する。このとき、両者のデータ処理結果が一致しない場合に、その時点で変換ルールを変更して再試行する仕組みを提供する。
本実施形態の計算機システムによれば、上記実施形態の効果に加え、データベース操作言語を変換する変換ルールを容易に設定できるという効果を奏する。
その理由は、データベース操作言語の変換がうまくいかなくても、その変換によるデータ処理を取り消し、これまでの変換の検証結果の履歴等を元に変換ルールを修正し、かつその変換ルールを用いて再度変換、新DBMSに投入を繰り返し、アプリケーションに対しデータベース操作言語の変換の失敗を隠蔽して、変換ルールのブラッシュアップ、検証を行うことができるためである。
(第4の実施の形態の変更例)
本変形例では、切り替え部12400が、第1のモード(検証モード)の処理中に、旧DBMS12210および新DBMS12310のデータ処理結果が一致しなくなる確率が低下したことを検出して、第2のモード(移行モード)へ自動的に切り替える。この場合の切り替え部12400の実施例を図20に示す。
図20を参照すると、切り替え部12400は、通知受信部12401と判定部12402と切り替え指示部12403とを備える。
通知受信部12401は、アプリケーションサーバの拡張DB接続ミドルウェア12120の通知部12128から検証モードにおける検証結果を受信する。
判定部12402は、通知受信部12401から検証結果を受け取り、旧DBMS12210および新DBMS12310のデータ処理結果が一致しなくなる確率が低下したかどうかの検出を行う。この検出は、例えば、旧DBMS12210および新DBMS12310のデータ処理結果の不一致を示す検証結果が、予め定められた一定期間以上にわたって通知されてこなかったかどうかによって行うことができる。他の方法としては、変換すべきSQLの全部あるいは一部のリストを持ち、このリストに挙がっている全てのSQLについて検証が成功したかどうか、即ち、新旧両方のDBMSのデータ処理結果が一致したかどうかを調べることで行うこともできる。
判定部12402は、旧DBMS12210および新DBMS12310のデータ処理結果が一致しなくなる確率が低下したことを検出すると、切り替え指示部12403に対してその旨を通知する。切り替え指示部12403は、アプリケーションサーバの拡張DB接続ミドルウェア12120の制御部12122に対して移行モードへの切り替えを指示する。
前述したように第4の実施の形態では、検証モードにおいて変換ルールを適宜にブラッシュアップしていくことができるため、やがて変換ルールが整備され、検証失敗はめったに起きなくなる。本変形例では、一定時間以上にわたって検証失敗が発生しない等の状況に至れば、変換ルールが完成されたとみなし、自動的に移行モードに移行することができる。
(その他の形態)
以上、本発明を実施するための最良の形態について説明したが、本発明は以上の実施の形態に限定されず、その他各種の付加変更が可能である。
例えば、本発明の各実施の形態では、各アプリケーションサーバ毎に分散して、制御手段をはじめとするデータベース移行機構を配置しているが、図21に示すように、データベース移行機能をデータベース移行装置に集約し、各アプリケーションサーバには、そのデータベース移行装置への転送機能のみを持たせても構わない。
このように、複数のアプリケーションサーバのデータベース移行機能をデータベース移行装置に集約することにより保守性が向上し、また、データベース移行機能をアプリケーションサーバから独立させることによりアプリケーションサーバを軽量化することができる。ただし、データベース移行装置がボトルネック、単一故障点となるため、性能、耐障害性は低下する。
また、このデータベース移行装置を複数用意し、通常時は特定のデータベース移行装置を使用し、それが故障した場合には、別のデータベース移行装置が処理を引き継ぐような構成にしても構わない。
また、本発明の各実施の形態を組み合わせて動作するようにしても構わない。
例えば、第3の実施の形態における準備モードで変換すべきSQLを特定した後、そのSQLに対応した変換ルールを設定し、第4の実施の形態における検証モードで検証、変換ルールのブラッシュアップを行うように動作してもかまわない。
あるいは、第4の実施の形態において、データ処理結果が異なる場合、データ処理結果が同じになるまで変換ルールを変更し続けるが、一定回数変更しても、同じ結果にならない場合は、第3の実施の形態のように、両DBMSのデータ処理を取り消すように動作しても構わない。
また、本発明のデータベース接続手段は、その有する機能をハードウェア的に実現することは勿論、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態におけるデータベース接続手段としての拡張DB接続ミドルウェアとして機能させる。
(産業上の利用可能性)
本発明は、DBMSを用いてサービスを提供するシステムにおいて、低コストでDBMSを別のDBMSに移行するといった用途に適用できる。
この出願は、2006年11月6日に出願された日本出願特願2006−300199号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。

Claims (18)

  1. 第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動する1以上のアプリケーションサーバと、
    第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバと、
    第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバと、
    第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を前記旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、他方のデータベース処理要求を前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却するデータベース接続手段と、を備える計算機システム。
  2. 第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動する1以上のアプリケーションサーバと、
    第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバと、
    第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバと、
    第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を前記旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、他方のデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却するデータベース接続手段と、を備える計算機システム。
  3. 前記データベース接続手段は、第1のモードの処理において、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、新データベースサーバへの以降のデータベース処理要求の投入を停止することを特徴とする請求項または記載の計算機システム。
  4. 前記データベース接続手段は、第1のモードの処理において、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、元のデータベース処理要求がデータを変更する要求であれば、新データベースサーバへの以降のデータベース処理要求の投入を停止することを特徴とする請求項または記載の計算機システム。
  5. 前記データベース接続手段は、第1のモードの処理において、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、元のデータベース処理要求がデータを変更する要求であれば、旧データベースサーバおよび新データベースサーバに対して行ったデータベース処理要求を取り消し、データベース処理が実行されなかった旨のデータ処理結果をアプリケーションプログラムに返却することを特徴とする請求項または記載の計算機システム。
  6. 前記データベース接続手段は、第1のモードの処理において、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、新データベースサーバに対して行ったデータベース処理要求を必要に応じて取り消し、第1のデータベース操作言語を第2のデータベース操作言語に変換するための変換情報を変更した後、該変更後の変換情報を用いて元のデータベース処理要求を第2のデータベース操作言語に変換し、さらに新データベースサーバに適したデータベース依存のプロトコルに変換して新データベースサーバに投入し、得られた新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して旧データベースサーバのデータ処理結果と比較検証することを特徴とする請求項記載の計算機システム。
  7. 第1のモードの処理中に、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなくなる確率が低下したことを検出して、第2のモードへ切り替える切り替え手段を備えることを特徴とする請求項記載の計算機システム。
  8. 前記データベース接続手段は、
    前記アプリケーションプログラムから発行されたデータベース処理要求のデータベース操作言語を第2のデータベース操作言語に変換する仕様変換手段と、
    データベース処理要求のプロトコルを新データベースサーバに適するデータベース依存のプロトコルに変換し、新データベースサーバのデータ処理結果のプロトコルをデータベース非依存のプロトコルに変換する新プロトコル変換手段と、
    データベース処理要求のプロトコルを旧データベースサーバに適するデータベース依存のプロトコルに変換し、旧データベースサーバのデータ処理結果のプロトコルをデータベース非依存のプロトコルに変換する旧プロトコル変換手段と、
    データベース非依存のプロトコルに変換された新データベースサーバおよび旧データベースサーバのデータ処理結果どうしを比較検証する検証手段と、
    前記検証手段の比較検証結果を出力する出力手段と、
    第1のモードと第2のモードのうち指定されたモードによる処理を制御する制御手段と、を備えることを特徴とする請求項または記載の計算機システム。
  9. 第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動する1以上のアプリケーションサーバと、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバと、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバと、を備えた計算機システムにおけるデータベースアクセス方法であって、
    データベース接続手段が、第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、一方のデータベース処理要求を前記旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、他方のデータベース処理要求を前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、
    旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、
    該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、
    第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、
    前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却することを特徴とするデータベースアクセス方法。
  10. 第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動する1以上のアプリケーションサーバと、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバと、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバと、を備えた計算機システムにおけるデータベースアクセス方法であって、
    データベース接続手段が、第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、
    一方のデータベース処理要求を前記旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、
    他方のデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、
    旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、
    該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、
    第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、
    前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却することを特徴とするデータベースアクセス方法。
  11. 第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動するアプリケーションサーバであって、
    第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、
    一方のデータベース処理要求を、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、
    他方のデータベース処理要求を、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、
    前記旧データベースサーバおよび前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、
    該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、
    第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、
    前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却するデータベース接続手段を備えるアプリケーションサーバ。
  12. 第1のデータベース操作言語に準拠したデータベース処理要求をデータベース非依存のプロトコルに従って発行するアプリケーションプログラムが稼動するアプリケーションサーバであって、
    第1のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を多重化し、
    一方のデータベース処理要求を、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入し、
    他方のデータベース処理要求を、第2のデータベース操作言語に変換した後、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、
    前記旧データベースサーバおよび前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力するとともに、データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却し、
    第2のモードが指定された場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入し、
    前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却するデータベース接続手段を備えるアプリケーションサーバ。
  13. コンピュータに、
    第1のモードが指定されている場合、第1のデータベース操作言語に準拠し且つデータベース非依存のプロトコルに従ってアプリケーションプログラムから発行されたデータベース処理要求を多重化する第1の処理と、
    一方のデータベース処理要求を、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入する第2の処理と、
    他方のデータベース処理要求を、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入する第3の処理と、
    旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力する第4の処理と、
    データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却する第5の処理と、を行わせ、
    第2のモードが指定されている場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入する第6の処理と、
    前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却する第7の処理と、を行わせるためのプログラム。
  14. コンピュータに、
    第1のモードが指定されている場合、第1のデータベース操作言語に準拠し且つデータベース非依存のプロトコルに従ってアプリケーションプログラムから発行されたデータベース処理要求を多重化する第1の処理と、
    一方のデータベース処理要求を、第1のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける旧データベースサーバに適するデータベース依存のプロトコルに変換して旧データベースサーバに投入する第2の処理と、
    他方のデータベース処理要求を、第2のデータベース操作言語に変換した後、第2のデータベース操作言語に準拠したデータベース処理要求をデータベース依存のプロトコルに従って受け付ける新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入する第3の処理と、
    旧データベースサーバおよび新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して比較検証し、該比較検証結果を出力する第4の処理と、
    データベース非依存のプロトコルに変換された前記旧データベースサーバのデータ処理結果を前記アプリケーションプログラムに返却する第5の処理と、を行わせ、
    第2のモードが指定されている場合、前記アプリケーションプログラムから発行されたデータベース処理要求を第2のデータベース操作言語に変換した後、前記新データベースサーバに適するデータベース依存のプロトコルに変換して新データベースサーバに投入する第6の処理と、
    前記新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して前記アプリケーションプログラムに返却する第7の処理と、を行わせるためのプログラム。
  15. 前記コンピュータに、前記第4の処理における比較検証の結果、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、新データベースサーバへの以降のデータベース処理要求の投入を停止する処理を行わせることを特徴とする請求項13または14記載のプログラム。
  16. 前記コンピュータに、前記第4の処理における比較検証の結果、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、元のデータベース処理要求がデータを変更する要求であれば、新データベースサーバへの以降のデータベース処理要求の投入を停止する処理を行わせることを特徴とする請求項13または14記載のプログラム。
  17. 前記コンピュータに、前記第4の処理における比較検証の結果、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、元のデータベース処理要求がデータを変更する要求であれば、旧データベースサーバおよび新データベースサーバに対して行ったデータベース処理要求を取り消し、データベース処理が実行されなかった旨のデータ処理結果をアプリケーションプログラムに返却する処理を行わせることを特徴とする請求項13または14記載のプログラム。
  18. 前記コンピュータに、前記第4の処理における比較検証の結果、旧データベースサーバおよび新データベースサーバのデータ処理結果が一致しなかった場合、新データベースサーバに対して行ったデータベース処理要求を必要に応じて取り消し、第1のデータベース操作言語を第2のデータベース操作言語に変換するための変換情報を変更した後、該変更後の変換情報を用いて元のデータベース処理要求を第2のデータベース操作言語に変換し、さらに新データベースサーバに適したデータベース依存のプロトコルに変換して新データベースサーバに投入し、得られた新データベースサーバのデータ処理結果をデータベース非依存のプロトコルに変換して旧データベースサーバのデータ処理結果と比較検証する処理を行わせることを特徴とする請求項14記載のプログラム。
JP2008542988A 2006-11-06 2007-10-30 計算機システム Expired - Fee Related JP5126064B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008542988A JP5126064B2 (ja) 2006-11-06 2007-10-30 計算機システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006300199 2006-11-06
JP2006300199 2006-11-06
PCT/JP2007/001184 WO2008056438A1 (fr) 2006-11-06 2007-10-30 Système informatique
JP2008542988A JP5126064B2 (ja) 2006-11-06 2007-10-30 計算機システム

Publications (2)

Publication Number Publication Date
JPWO2008056438A1 JPWO2008056438A1 (ja) 2010-02-25
JP5126064B2 true JP5126064B2 (ja) 2013-01-23

Family

ID=39364267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008542988A Expired - Fee Related JP5126064B2 (ja) 2006-11-06 2007-10-30 計算機システム

Country Status (3)

Country Link
US (1) US8250027B2 (ja)
JP (1) JP5126064B2 (ja)
WO (1) WO2008056438A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239632B2 (en) 2009-03-12 2012-08-07 At&T Mobility Ii Llc Data caching in consolidated network repository
JP2011248507A (ja) * 2010-05-25 2011-12-08 Inforce Co Ltd データ変換方法、その装置およびそのプログラム
JP5555550B2 (ja) * 2010-06-09 2014-07-23 株式会社インフォース データ変換方法、その装置およびそのプログラム
US9449030B2 (en) 2011-06-30 2016-09-20 International Business Machines Corporation Method for native program to inherit same transaction content when invoked by primary program running in separate environment
US9009175B2 (en) * 2013-02-04 2015-04-14 Sap Se System and method for database migration and validation
US10324952B1 (en) * 2013-03-04 2019-06-18 Google Llc Hosted database
JP6357787B2 (ja) * 2014-02-07 2018-07-18 日本電気株式会社 データ処理装置
US10255336B2 (en) * 2015-05-07 2019-04-09 Datometry, Inc. Method and system for transparent interoperability between applications and data management systems
US10594779B2 (en) 2015-08-27 2020-03-17 Datometry, Inc. Method and system for workload management for data management systems
JP7055064B2 (ja) * 2018-05-31 2022-04-15 株式会社野村総合研究所 データベースマイグレーション支援システム及びプログラム
US11294869B1 (en) 2018-12-19 2022-04-05 Datometry, Inc. Expressing complexity of migration to a database candidate
US11475001B1 (en) 2018-12-19 2022-10-18 Datometry, Inc. Quantifying complexity of a database query
US11403282B1 (en) 2018-12-20 2022-08-02 Datometry, Inc. Unbatching database queries for migration to a different database
CN111125218A (zh) * 2019-12-13 2020-05-08 成都安恒信息技术有限公司 一种基于协议解析的数据库兼容方法及其兼容性代理装置
JP7346332B2 (ja) * 2020-03-04 2023-09-19 Qsol株式会社 データベースマイグレーション方法、データベースマイグレーションシステム、及びデータベースマイグレーションプログラム
US11423025B2 (en) * 2020-07-27 2022-08-23 International Business Machines Corporation Direct data loading of middleware-generated records
CN112905567B (zh) * 2021-03-23 2023-04-07 杭州沃趣科技股份有限公司 基于网络协议转换的数据库更换方法、装置、系统及介质
JP7295541B1 (ja) * 2022-01-28 2023-06-21 株式会社インサイトテクノロジー 情報処理システム、情報処理装置および情報処理方法、並びに、プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334363A (ja) * 1992-06-01 1993-12-17 Nippon Telegr & Teleph Corp <Ntt> データベース検索システム
JPH11154158A (ja) * 1997-11-21 1999-06-08 Hitachi Ltd 検索メッセージプロトコル変換ゲートウェイシステム
JP2002351710A (ja) * 2001-05-30 2002-12-06 Nec Corp データベースシステムの移行方法と装置並びにプログラム
JP2006004099A (ja) * 2004-06-16 2006-01-05 Hitachi Ltd プログラム再利用方法、装置及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3292160B2 (ja) 1998-12-18 2002-06-17 日本電気株式会社 Cobol言語のソースプログラムのコンバージョン方法及び装置並びに記録媒体
JP2000259486A (ja) 1999-03-05 2000-09-22 Jisedai Joho Hoso System Kenkyusho:Kk Html/mheg変換方法、及びその変換装置
JP2000347910A (ja) 1999-06-03 2000-12-15 Nec Soft Ltd データベース処理システム,アクセス方法,sql変換方法および記憶媒体
US20020184401A1 (en) * 2000-10-20 2002-12-05 Kadel Richard William Extensible information system
JP2002321710A (ja) * 2001-04-20 2002-11-05 Sumitomo Bakelite Co Ltd プレス・スルー・パック包装装置及びプレス・スルー・パック包装体
WO2003001413A1 (en) * 2001-06-22 2003-01-03 Nosa Omoigui System and method for knowledge retrieval, management, delivery and presentation
US7421427B2 (en) * 2001-10-22 2008-09-02 Attachmate Corporation Method and apparatus for allowing host application data to be accessed via standard database access techniques
EP1513076A1 (en) * 2003-09-05 2005-03-09 Sap Ag Method and computer system for data conversion
US7743069B2 (en) * 2004-09-03 2010-06-22 Sybase, Inc. Database system providing SQL extensions for automated encryption and decryption of column data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334363A (ja) * 1992-06-01 1993-12-17 Nippon Telegr & Teleph Corp <Ntt> データベース検索システム
JPH11154158A (ja) * 1997-11-21 1999-06-08 Hitachi Ltd 検索メッセージプロトコル変換ゲートウェイシステム
JP2002351710A (ja) * 2001-05-30 2002-12-06 Nec Corp データベースシステムの移行方法と装置並びにプログラム
JP2006004099A (ja) * 2004-06-16 2006-01-05 Hitachi Ltd プログラム再利用方法、装置及びプログラム

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSND200000504003; 蒲生 達佳: 'あのシステムの、いま ワールド・ファミリー:割賦販売管理システム' ネットワークコンピューティング 第10巻 第1号, 19980101, p.54-57, 株式会社リックテレコム *
CSND200401408002; 鳥山 隆一: '処理能力不足でシステムが度々ダウン 64ビット化で安定稼働を実現' 日経Windowsプロ no.84, 20040301, p.68-70, 日経BP社 *
CSND200601314001; 'テスト範囲を最適に決める' 日経SYSTEMS 第160号, 20060726, p.36-41, 日経BP社 *
JPN6012031157; 'テスト範囲を最適に決める' 日経SYSTEMS 第160号, 20060726, p.36-41, 日経BP社 *
JPN6012031158; 蒲生 達佳: 'あのシステムの、いま ワールド・ファミリー:割賦販売管理システム' ネットワークコンピューティング 第10巻 第1号, 19980101, p.54-57, 株式会社リックテレコム *
JPN6012031159; 鳥山 隆一: '処理能力不足でシステムが度々ダウン 64ビット化で安定稼働を実現' 日経Windowsプロ no.84, 20040301, p.68-70, 日経BP社 *

Also Published As

Publication number Publication date
WO2008056438A1 (fr) 2008-05-15
US20090307230A1 (en) 2009-12-10
US8250027B2 (en) 2012-08-21
JPWO2008056438A1 (ja) 2010-02-25

Similar Documents

Publication Publication Date Title
JP5126064B2 (ja) 計算機システム
CN102880663B (zh) 部分去重复的文件的优化
US7310653B2 (en) Method, system, and product for maintaining software objects during database upgrade
EP0974895A2 (en) System for user control of version synchronization in mobile computing
AU2018397571A1 (en) Resynchronizing metadata in a content management system
US20140108338A1 (en) Method and System for Data Synchronization, and Apparatus thereof
US20080109620A1 (en) Storage system and controller for controlling remote copying
US8600953B1 (en) Verification of metadata integrity for inode-based backups
MX2013015359A (es) Tolerancia a fallos transparente.
US7467235B2 (en) Data transfer method and system
JP3830389B2 (ja) インターネット基盤の遠隔データ及びファイル復旧システム及びその方法
US8775551B2 (en) Testing a network system
US7900004B2 (en) Converting backup copies of objects created using a first backup program to backup copies created using a second backup program
CN114490677A (zh) 数据分析系统中的数据同步
US7373393B2 (en) File system
US7555569B1 (en) Quick configuration status
US11113265B2 (en) Information processing apparatus and information processing system
US20070266061A1 (en) Data Multiplexing System
JP3802977B2 (ja) 蓄積交換型電子会議システムにおける情報矛盾判定、修正装置及び方法並びに情報矛盾判定、修正プログラムを記録したコンピュータ読取可能な記憶媒体
US20060238801A1 (en) System and method for transmitting data quickly between a client and a server
JP4765968B2 (ja) ファイル管理システム及び方法並びにプログラム
JPH0844609A (ja) データバックアップ方法
US20050108194A1 (en) System for verifying a state of an environment
US20230385157A1 (en) Snapshot comparison with metadata compaction
WO2016170619A1 (ja) 計算機システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121002

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121015

R150 Certificate of patent or registration of utility model

Ref document number: 5126064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees