(57)【要約】【課題】  ＳＱＬプロシージャを配備するためのシステム及び方法を提供する。【解決手段】  ＳＱＬプロシージャ配備システムは、プロシージャ論理コンポーネント及びデータベース要求コンポーネントを含む照会プロシージャを、ソース・システムから目標システムに配備する。照会プロシージャの生成に際して、システムは、照会プロシージャ・ソース・コードと、記号テーブルと、カプセル化最適化結果を生成して、データベース要求コンポーネントのクエリ文の実行時命令を再生し、クエリ文が配備されたプロシージャ論理コンポーネントにより機能するようにする。システムは、配備中に、プロシージャ論理コンポーネントとデータベース要求コンポーネントの間の結合を維持する。システムは、プロシージャ論理コンポーネントの内部表現を、目標システムに再生せずに複製する。システムは、データベース要求コンポーネントを再生して、照会プロシージャを目標システム上に再現し、プロシージャ論理コンポーネントとデータベース要求コンポーネントの間の整合性インターフェースを維持する。【選択図】      図２
2009520255.tif 000002
【特許請求の範囲】
【請求項１】
プロシージャ論理コンポーネント及びデータベース要求コンポーネントを含む構造化照合言語プロシージャを、ソース・システムから目標システムに配備するための、プロセッサに実装される方法であって、
照会プロシージャの作成の際に、該照会プロシージャのソース・コード、記号テーブル、及びカプセル化最適化結果を生成して、前記データベース要求コンポーネントの１つ又は複数のクエリ文の実行時命令を再生し、且つ、前記クエリ文が前記プロシージャ論理コンポーネントの配備された内部表現により機能することを可能にする、ステップと、
配備中に、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の結合を維持するステップと、
前記プロシージャ論理コンポーネントの内部表現を、前記目標システムに再生せずに複製するステップと、
前記データベース要求コンポーネントを再生して、前記照会プロシージャを前記目標システム上に再現し、且つ、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の整合性インターフェースを維持するステップと、
を含む方法。
【請求項２】
前記記号テーブルは、前記目標システム上に再生された前記データベース要求コンポーネントと、前記プロシージャ論理コンポーネントの前記内部表現との間のリンケージを与える、請求項１に記載の方法。
【請求項３】
前記カプセル化最適化結果は、前記プロシージャ論理コンポーネント、及び前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントのインターフェースに対する、コンパイラによって生成された結果を含み、前記照会プロシージャの前記目標システムへの配備において最適化結果を保存する、請求項１又は請求項２に記載の方法。
【請求項４】
前記構造化照会言語プロシージャは、構造化照会言語プロシージャ・ソース・コードを含み、さらに随意的に、前記構造化照会言語プロシージャ・ソース・コードは、前記構造化照会言語プロシージャを定義する、請求項１、請求項２又は請求項３のいずれかに記載の方法。
【請求項５】
前記複製するステップは、前記ソース・システムにおいて、前記照会プロシージャの前記目標システムへの配備に関する要求を受信するステップを含む、請求項３に記載の方法。
【請求項６】
前記複製するステップは、分散コンポーネントを呼び出して前記目標システムにフローするステップを更に含む、請求項５に記載の方法。
【請求項７】
前記照会プロシージャ・ソース・コードと、前記記号テーブルと、前記カプセル化最適化結果と、前記プロシージャ論理コンポーネントの内部表現とを含むように、照会プロシージャ配備セットを定義するステップを更に含み、
前記複製するステップは、前記照会プロシージャ配備セットに対してバインド・パッケージ・プロセスを駆動するステップを更に含む、
請求項６に記載の方法。
【請求項８】
前記照会プロシージャを前記目標システム上に再現するステップは、前記照会プロシージャ配備セット及び前記データベース要求コンポーネントを受信するステップを含み、
随意的に、前記照会プロシージャを再現するステップは、前記データベース要求コンポーネント内のクエリ文のそれぞれに対して前記クエリ文を結合するステップを含み、
さらに、
前記カプセル化最適化結果を用いて複数の実行時命令を前記プロシージャ論理コンポーネントの前記内部表現と同期させるステップを含む、
請求項７に記載の方法。
【請求項９】
バージョンを調査するステップを更に含み、
バージョンが存在する場合には、バージョニング・エラーを調査するステップを更に含む、
請求項３に記載の方法。
【請求項１０】
現存のバージョンを、前記配備された照会プロシージャで置き換えるステップを更に含み、随意的に、配備コマンド内で前記目標システムのロケーション名を指定するステップを更に含み、
配備される照会プロシージャのパッケージ名を指定するステップを含む、
請求項１に記載の方法。
【請求項１１】
前記目標システムは、前記ソース・システムに対して遠隔に配置される、請求項１に記載の方法。
【請求項１２】
プロシージャ論理コンポーネント及びデータベース要求コンポーネントを含む構造化照会言語プロシージャを、ソース・システムから目標システムに配備するための、コンピュータ使用可能媒体に格納されたプログラム・コードを有するコンピュータ・プログラムであって、
照会プロシージャの作成の際に、該照会プロシージャのソース・コード、記号テーブル、及びカプセル化最適化結果を生成して、前記データベース要求コンポーネントの１つ又は複数のクエリ文の実行時命令を再生し、且つ、前記クエリ文が前記プロシージャ論理コンポーネントの配備された内部表現により機能することを可能にするための、プログラム・コードと、
配備中に、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の結合を維持するためのプログラム・コードと、
前記プロシージャ論理コンポーネントの内部表現を、前記目標システムに再生せずに複製するためのプログラム・コードと、
前記データベース要求コンポーネントを再生して、前記照会プロシージャを前記目標システム上に再現し、且つ、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の整合性インターフェースを維持するためのプログラム・コードと
を含むコンピュータ・プログラム。
【請求項１３】
プロシージャ論理コンポーネント及びデータベース要求コンポーネントを含む構造化照合言語プロシージャを、ソース・システムから目標システムに配備するための、プロセッサに実装されるシステムであって、
照会プロシージャの作成の際に、該照会プロシージャのソース・コード、記号テーブル、及びカプセル化最適化結果を生成して、前記データベース要求コンポーネントの１つ又は複数のクエリ文の実行時命令を再生し、且つ、前記クエリ文が前記プロシージャ論理コンポーネントの配備された内部表現により機能することを可能にする、ソース・システムと、
配備中に、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の結合を維持するためのカタログと、
前記プロシージャ論理コンポーネントの内部表現を、前記目標システムに再生せずに複製するための複製モジュールと、
前記データベース要求コンポーネントを再生して、前記照会プロシージャを前記目標システム上に再現し、且つ、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の整合性インターフェースを維持するための目標バインド・パッケージ・モジュールと
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータによって実行されるデータベース管理システムに関し、具体的には、ＳＱＬ文を含むＳＱＬプロシージャを、ソース・データベース管理システムから目標データベース管理システムに転送することに関する。
【背景技術】
【０００２】
データベース管理システム（ＤＢＭＳ）の利用は、当技術分野では周知のことである。データベース管理システムのデータベースは、データの行及び列から成るテーブルに編成され、ここで行はタプルであり、列は属性である。テーブルは、典型的には、半永久的保存のために、磁気又は光ディスク・ドライブ等の直接アクセス記憶装置に格納される。
【０００３】
関係型データベース管理システム内のデータにアクセスするための構造化照会言語（ＳＱＬ）インターフェースの使用もまた、当技術分野では周知である。ＳＱＬインターフェースは、進化してデータベース管理システム・ソフトウェアの標準言語となり、それ自体は米国規格協会（ＡＮＳＩ）及び国際標準化機構（ＩＳＯ）の両方によって採用されている。ＳＱＬインターフェースは、ユーザがテーブル上の関係演算を、バッチ・ファイル内で対話形式に、又は、Ｃ及びＣＯＢＯＬ等のホスト言語に埋め込まれるように、定式化することを可能にする。
【０００４】
ＤＢＭＳ内のＳＱＬプロシージャは、ＳＱＬのＣＲＥＡＴＥ  ＰＲＯＣＥＤＵＲＥ文によって作成される（又は定義される）。外部ストアド・プロシージャとは異なり、ＳＱＬプロシージャ定義は、ストアド・プロシージャのソース・コードを含む。ユーザは、例えば、ＡＬＴＥＲ  ＰＲＯＣＥＤＵＲＥ文を実行することによって、プロシージャの選択肢を変更し、プロシージャ定義を修正し、ＳＱＬプロシージャ定義のバージョンを追加又は削除することができる。ＳＱＬプロシージャは、データベース内に格納され、ＤＢＭＳによって維持される。通常のアプリケーション・プログラムと同様に、ＳＱＬプロシージャには、設計段階、実装段階及び保守段階を含むプログラムのライフ・サイクルがある。ＳＱＬプロシージャの開発者は、ＳＱＬプロシージャを実行用のプロダクション・システムに配備(deploy)することが可能になる前に、一回又は複数回、コード書き込み、コード検査、バグ修復等のプロセスに従う。
【０００５】
典型的には、ＳＱＬプロシージャの内部実装は、プロシージャ論理コンポーネント及びデータベース要求コンポーネントを含む。プロシージャ論理コンポーネントは、ループ文、条件文、及び他の制御文を含む。プロシージャ論理コンポーネントは、実行時中の解釈及び実行のためにプロシージャ論理コンポーネントの内部表現にコンパイルすることができる。他の場合には、プロシージャ論理コンポーネントは、直接実行のためのネイティブ・コードにコンパイルすることができる。データベース要求コンポーネントはＳＱＬ文を含む。データベース要求コンポーネントは、典型的には、ＤＢＭＳによるデータベース要求のＳＱＬコンパイラ及びオプティマイザによって構築された実行時命令を介して実装される。
【０００６】
多くの状況において、ユーザは、プロダクション・システムに配備されたＳＱＬプロシージャの機能が、テスト・システム上のＳＱＬプロシージャの動作及び機能を再現することを確認することを望む。ユーザは、ＳＱＬプロシージャが配備された後は、プロシージャ論理コンポーネントに如何なる軽微な動作変更をも施すことができない。しかしながら、プロダクション・システム上にＳＱＬプロシージャを再現すること、及び、ＳＱＬプロシージャの新しい内部表現を生成することにより、動作変更の可能性が生じる。プロシージャ論理コンポーネントの軽微な変更は、プロシージャの主論理フローに影響を及ぼしてＳＱＬ照会に関して不正確な結果をもたらす可能性がある。
【０００７】
ソースＤＢＭＳから目標ＤＢＭＳに配備されたＳＱＬプロシージャの、整合性のある動作及び機能を保証するための従来の手法は存在しない。１つの関連する従来技術が、外部ストアド・プロシージャのＤＢＭＳユーザによって実施されてきた。この従来の手法は、テスト・システム上でコンパイルされたプロシージャ・ロード・モジュール又はＤＬＬ（ダイナミック・ロード・ライブラリ）をプロダクション・システムに複製する。しかしながら、この従来技術は、外部ストアド・プロシージャのみに適用可能であり、その場合プロシージャのプロシージャ論理コンポーネントはデータベース要求コンポーネントから分離し、ロード・モジュール又はＤＬＬは、ＤＢＭＳ外部のユーザに対して利用可能となる。ＳＱＬプロシージャには付随する外部ロード・モジュールはなく、従って、この従来技術は適用可能ではない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、ＳＱＬプロシージャを配備するためのシステム、コンピュータ・プログラム及び関連方法が必要である。こうした解決法の必要性はこれまで満たされないままである。
【課題を解決するための手段】
【０００９】
本発明は、この必要性を満たして、プロシージャ論理コンポーネント及びデータベース要求コンポーネントを含むＳＱＬプロシージャを、ソース・システムから目標システムに配備するためのシステム、サービス、コンピュータ・プログラム及び関連方法（本明細書では、ひとまとめにして「システム」又は「本システム」という）を提供する。ＳＱＬプロシージャの生成において、本システムは、ＳＱＬプロシージャ・ソース・コードと記号テーブルを生成し、データベース要求コンポーネントのクエリ文の実行時命令を再生するため、及び、クエリ文をプロシージャ論理コンポーネントの配備された内部表現により機能させるための、記号テーブル及びカプセル化最適化結果を生成する。
【００１０】
本システムは、配備中に、プロシージャ論理コンポーネントとデータベース要求コンポーネントの間の結合を維持する。本システムは、プロシージャ論理コンポーネントの内部表現を、目標システムに再生せずに複製する。本システムは、データベース要求コンポーネントを再生して、照会プロシージャを目標システム上に再現し、プロシージャ論理コンポーネントとデータベース要求コンポーネントの間の整合性インターフェースを維持する。
【００１１】
プロシージャ論理コンポーネントの内部表現を目標システムに複製するために、ソース・システムは、ＳＱＬプロシージャの目標システムへの配備に関する要求を受信する。本システムは、ＳＱＬプロシージャ・ソース・コードと、記号テーブルと、カプセル化最適化結果と、プロシージャ論理コンポーネントの内部表現とを含むＳＱＬプロシージャ配備セットを連結して連続ブロックにする。本システムは、配備フラグを含むＳＱＬプロシージャ配備セットに対してバインド・パッケージ・プロセスを駆動して、データベース要求コンポーネントを目標システム上に再生する。
【００１２】
ＳＱＬプロシージャを目標システム上に配備するために、目標システムは、ＳＱＬプロシージャ配備セットを含む連続ブロックを受信する。目標システムは、該目標システムの目標カタログ内の１つ又は複数のテーブルを更新して、配備されたＳＱＬプロシージャを登録する。目標システムは、ＳＱＬプロシージャ配備セットをディスクに保存し、データベース要求コンポーネントを受信する。データベース要求コンポーネント内の１つ又は複数のＳＱＬ文のそれぞれに対して、本システムはＳＱＬ文を結合し、カプセル化最適化結果を用いて、複数の実行時命令をプロシージャ論理コンポーネントの内部表現と同期させる。
【００１３】
本システムは、ＳＱＬプロシージャ配備ユーティリティ・プログラム等のユーティリティ・プログラムに具体化することができる。本システムはまた、例えば、選択されたＳＱＬプロシージャのパッケージ名を指定し、例えば目標システムのロケーション名を選択することによって目標システムを選択し、次いで、ＳＱＬプロシージャ配備ユーティリティを呼び出して選択されたＳＱＬプロシージャを選択された目標システムに配備することによって、ユーザがソース・システム上で配備のためのＳＱＬプロシージャを選択する方法を提供する。１つの実施形態において、本システムは、ユーザが、例えばバージョンＩＤを指定することにより、選択されるＳＱＬプロシージャのバージョンを指定する方法を提供する。本システムは、ユーザが、選択されたＳＱＬプロシージャが目標システム上に新しいバージョンを追加するのか、或いは、目標システム上の現存バージョンと置き換わるのかを指定する方法を更に提供する。
【発明を実施するための最良の形態】
【００１４】
本発明の種々の特徴及びこれらを達成する方法が、以下の説明、特許請求の範囲及び、図面に関連してより詳細に説明されるが、その際、参照数字は、適切な場合、参照要素間の対応を示すために繰り返し使用される。
【００１５】
図１は、本発明による、照会プロシージャを配備するためのシステム、コンピュータ・プログラム及び関連方法（ＳＱＬプロシージャ配備システム１０又は「システム１０」）を用いることができる例示的な全体的環境を表す。システム１０は、１つ又は複数のＳＱＬプロシージャ、例えばＳＱＬプロシージャ１５をソース・システム２０から目標システム２５に配備する。ソース・システム２０上のシステム１０は、ＳＱＬプロシージャ１５を目標システム２５に配備する。目標システム２５上のシステム１０は、配備されたＳＱＬプロシージャ１５を、目標システム２５による使用のために結合する。システム１０は、例証目的のために構造化照会言語（ＳＱＬ）に関連してだけ説明されるが、本発明はまた、他のクエリ言語にも適用可能であり得ることは明らかである。
【００１６】
ソース・システム２０は、コンピュータ・システム、例えばソース・サーバ３５にインストールされたソース・データベース管理システム（ＤＢＭＳ）３０を含む。ソース・システム２０は、ソース・データベース（ＤＢ）４０を更に含む。ソースＤＢ４０は、ＳＱＬプロシージャ１５を含んだソース・カタログ４５を含む。
【００１７】
目標システム２５は、コンピュータ・システム、例えば目標サーバ５５にインストールされた目標データベース管理システム（ＤＢＭＳ）５０を含む。目標システム２５は、目標データベース（ＤＢ）６０を更に含む。目標ＤＢ６０は、ＳＱＬプロシージャ１５を含んだ目標カタログ６５を含む。
【００１８】
システム１０は、ＳＱＬプロシージャ１５を、ソース・システム２０から目標システム２５にネットワーク７０を介して配備する。目標システム２５は、ソース・システムに対して遠隔に又は近くに配置することができる。ネットワーク７０は、例えばインターネット等の遠隔ネットワーク、又は、例えばローカル・エリア・ネットワーク等のローカル・ネットワークとすることができる。１つの実施形態において、ソース・システム２０及び目標システム２５は同じである。
【００１９】
システム１０は、ソース・サーバ３５又は目標サーバ５５等のコンピュータに典型的には埋め込まれるか、又はインストールされるソフトウェア・プログラミング・コード又はコンピュータ・プログラムを含む。代替的には、システム１０は、適切な記憶媒体に、少なくとも部分的に保存することができる。媒体は、電子的、磁気的、光学的、電磁気的、赤外線、又は半導体システム（又は装置若しくはデバイス）、或いは伝搬媒体とすることができる。コンピュータ可読媒体の例は、半導体又は固体メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、固定磁気ディスク及び光ディスクを含む。光ディスクの最新の例は、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読み取り／書き込み（ＣＤ−Ｒ／Ｗ）及びＤＶＤを含む。
【００２０】
図２は、システム１０の高レベル階層を示す。システム１０は、一般に、複製モジュール２０２と、ソース・システム２０上で動作してＳＱＬプロシージャ１５をソース・システム２０から目標システム２５に配備するソース配備コマンド・モジュール２０５とを含む。システム１０はまた、目標システム２５上で動作してソース配備コマンド・モジュール２０５によって配備されたＳＱＬプロシージャ１５に対してバインド・パッケージ・プロセスを駆動する目標バインド・パッケージ・モジュール２１０を含む。
【００２１】
システム１０は、ソース・カタログ４５等のカタログ２３０に格納され、１つ又は複数のＳＱＬプロシージャ１５に関連する、ＳＱＬプロシージャ・ソース・コード２１５と、記号テーブル２２０と、カプセル化最適化結果２２５とを更に含む。ＳＱＬプロシージャ１５のそれぞれは、プロシージャ論理コンポーネント２３５及びデータベース要求コンポーネント２４０を含む。ＳＱＬプロシージャ配備セット２４５は、ＳＱＬプロシージャ・ソース・コード２１５と、記号テーブル２２０と、カプセル化最適化結果２２５と、プロシージャ論理コンポーネント２３５の内部表現とを含む。
【００２２】
ＳＱＬプロシージャ１５がソース・システム２０上に作成されるとき、システム１０は、作成されたＳＱＬプロシージャ１５に対して、ＳＱＬプロシージャ・ソース・コード２１５と、記号テーブル２２０と、プロシージャ論理コンポーネントの内部表現と、カプセル化最適化結果２２５とを保存する。ＳＱＬプロシージャ・ソース・コード２１５は、ＳＱＬプロシージャ１５の定義、即ち、ＣＲＥＡＴＥ  ＰＲＯＣＥＤＵＲＥ文である。
【００２３】
記号テーブル２２０は、ＳＱＬプロシージャ１５内のＳＱＬ変数、及び他の内部生成データ・バッファの情報を含む。記号テーブル２２０は、目標システム２５上に再生されたデータベース要求コンポーネント２４０と、プロシージャ論理コンポーネント２３５の原型の内部表現との間のリンケージを与え、ソース・システム２０のコンパイラによって生成された最適化結果の使用を可能にする。
【００２４】
カプセル化最適化結果２２５は、プロシージャ論理コンポーネント２３５、及び、プロシージャ論理コンポーネント２３５とデータベース要求コンポーネント２４０の間のインターフェースに関してコンパイラによって生成された最適化結果をカプセル化する。カプセル化最適化結果２２５の情報を用いて、システム１０は、ＳＱＬプロシージャ１５が目標システム２５に配備されるときに最適化結果を保存し、従って、配備されたＳＱＬプロシージャ１５の機能損失を回避する。
【００２５】
ＳＱＬプロシージャ・ソース・コード２１５、記号テーブル２２０及びカプセル化最適化結果２２５は、データベース要求コンポーネント２４０内にＳＱＬ文の実行時命令を再生する際に、目標バインド・パッケージ・モジュール２１０が、プロシージャ論理コンポーネントの内部表現を原型のままに保つことを可能にする。ＳＱＬプロシージャ・ソース・コード２１５、記号テーブル２２０及びカプセル化最適化結果２２５は、ＳＱＬプロシージャ１５が配備されるとき、目標システム２５に転送される。ＳＱＬプロシージャ・ソース・コード２１５、記号テーブル２２０及びカプセル化最適化結果２２５を用いて、データベース要求コンポーネント２４０により示されるＳＱＬ文の実行時命令を再生し、ＳＱＬ文がプロシージャ論理コンポーネント２３５の変化していない内部表現によって働くようにする。
【００２６】
複製モジュール２０２は、プロシージャ論理コンポーネントの内部表現を、目標システム２５に再生せずに複製する。ソース配備コマンド・モジュール２０５は、バインド・パッケージ・コマンド上の配備コマンドにピギーバックする。パッケージは、静的に結合され、且つ、処理に利用できる一組のＳＱＬ文を含むオブジェクトである。ＳＱＬプロシージャ１５に関して、データベース要求コンポーネント２４０はパッケージ内に格納される。１つの実施形態において、ＳＱＬプロシージャ１５は異なるバージョンを含む。この実施形態においては、同じＳＱＬプロシージャ１５の異なるバージョンは、異なるパッケージを有する。ソース配備コマンド・モジュール２０５は、配備のためのバインド・コマンド・オプションＤＥＰＬＯＹを含む。
【００２７】
ソース配備コマンド・モジュール２０５は、ユーザが、目標システム２５のロケーション名を指定することを可能にする。ソース配備コマンド・モジュール２０５は更に、ユーザが、配備すべきＳＱＬプロシージャ１５のパッケージ名を指定することを可能にする。１つの実施形態において、ソース配備コマンド・モジュール２０５は、ユーザが、配備すべきＳＱＬプロシージャ１５のバージョンＩＤを指定することを可能にする。この実施形態においては、ソース配備コマンド・モジュール２０５は、ユーザが、ＳＱＬプロシージャが配備された後で、配備コマンドが目標システム２５上に新しいバージョンを追加するのか、又は、目標システム２５上の現存バージョンに置き換わるのかを指定することを可能にする。
【００２８】
図３は、ＳＱＬプロシージャ１５を、ソース・システム２０から目標システム２５に配備する際の、システム１０の方法３００を示す。システム１０は、ＳＱＬプロシージャ１５の作成に際して、ＳＱＬプロシージャ・ソース・コード２１５、記号テーブル２２０及びカプセル化最適化結果２２５を生成する（ステップ３０５）。システム１０は、配備中、プロシージャ論理コンポーネント２３５とデータベース要求コンポーネント２４０の間の結合を維持する（ステップ３１０）。ソース配備コマンド・モジュール２０５は、プロシージャ論理コンポーネント２３５の内部表現を、目標システム２５に再生せずに複製する（ステップ４００、図４で更に説明する）。目標バインド・パッケージ・モジュール２１０は、データベース要求コンポーネント２４０を再生して、ＳＱＬプロシージャ１５を目標システム２５上に再現し、且つ、プロシージャ論理コンポーネント２３５とデータベース要求コンポーネント２４０の間の整合性インターフェースを維持する（ステップ５００、図５で更に説明する）。
【００２９】
図４及び図５は、ＳＱＬプロシージャ１５を目標システム２５に伝送する際の、システム１０の方法４００を示す。ユーザは、配備のためのＳＱＬプロシージャ１５を選択する（ステップ４０５）。ソースＤＢＭＳ３０は、選択されたＳＱＬプロシージャ１５に関する配備コマンドを受信する（ステップ４１０）。ソースＤＢＭＳ３０は、選択されたＳＱＬプロシージャ１５のロックを取得する（ステップ４１５）。
【００３０】
ソースＤＢＭＳ３０は、ソース・カタログ４５から、ＳＱＬプロシージャ・ソース・コード２１５、記号テーブル２２０、カプセル化最適化結果２２５、及びプロシージャ論理コンポーネント２３５の内部表現を含む、ＳＱＬプロシージャ配備セット２４５を読み取る（ステップ４２０）。ソースＤＢＭＳ３０は、ＳＱＬプロシージャ配備セット２４５を連結して連続ブロックにする（ステップ４２５）。
【００３１】
システムは、目標システム２５が遠隔にあるかどうかを判断する（判断ステップ４３０）。肯定ならば、システム１０は、分散コンポーネントを呼び出して、ＳＱＬプロシージャ配備セット２４５を目標システム２５にフローさせる（ステップ４３５）。ソースＤＢＭＳ３０は、遠隔バインド・パッケージを、目標システム２５上の目標バインド・パッケージ・モジュール２１０を介して、バインド・パッケージが配備用であることを示すための配備フラグ・セットにより駆動する（ステップ４４０）。
【００３２】
判断ステップ４３０において、目標システム２５が遠隔ではない場合は、目標システム２５はローカルである。ソースＤＢＭＳ３０は、バインド・パッケージを、目標システム２５上の目標バインド・パッケージ・モジュール２１０を介して、バインド・パッケージが配備用であることを示すための配備フラグ・セットにより駆動する（ステップ４４５）。
【００３３】
目標システム２５上の目標バインド・パッケージ・モジュール２１０は、選択されたＳＱＬプロシージャのデータベース要求コンポーネント２４０を再生する（ステップ４５０）。ソースＤＢＭＳ３０は、選択されたＳＱＬプロシージャのロックを解除する（ステップ４５５）。
【００３４】
図６は、目標システム２５においてＳＱＬプロシージャを受信する際の、システム１０の動作方法５００を示す。目標ＤＢＭＳ５０は、ＳＱＬプロシージャ１５の配備のための配備フラグ・セットを有するバインド・パッケージ要求を受信する（ステップ５０５）。ソース・システム２０が、目標システム２５から遠隔にある場合、目標ＤＢＭＳ５０は、遠隔バインド・パッケージ要求を受信する。目標ＤＢＭＳ５０は、バインド・パッケージ・プロセスを、目標システム２５上の目標バインド・パッケージ・モジュール２１０によって開始する（ステップ５１０）。ソース・システム２０が目標システム２５から遠隔にある場合は、目標ＤＢＭＳ５０は、遠隔バインド・パッケージ・プロセスを開始する。目標ＤＢＭＳ５０は、ＳＱＬプロシージャ配備セットを含む連続ブロックを受信する（ステップ５１５）。目標ＤＢＭＳ５０は、目標カタログ６５内のテーブルを更新して、配備されたＳＱＬプロシージャ１５を登録する（ステップ５２０）。目標ＤＢＭＳ５０は、ＳＱＬプロシージャ配備セットをディスクに保存する（ステップ５２５）。
【００３５】
目標ＤＢＭＳ５０は、配備されたＳＱＬプロシージャ１５のデータベース要求コンポーネント２４０を受信する（ステップ５３０）。データベース要求コンポーネント２４０内のそれぞれのＳＱＬ文に対して、目標バインド・パッケージ・モジュール２１０はＳＱＬ文を結合する（ステップ５３５）。目標バインド・パッケージ・モジュール２１０は、配備されたＳＱＬプロシージャ１５の記号テーブル２２０及びカプセル化最適化結果２２５を用いて、実行時命令をプロシージャ論理コンポーネント２３５の内部表現と同期させる。目標ＤＢＭＳは、配備されるＳＱＬプロシージャ１５の配備を完了する（ステップ５４０）。
【００３６】
図７及び図８は、目標データベース管理システムにおいてＳＱＬプロシージャのバージョンを受信する際の、システム１０の実施形態の方法６００を示す。目標ＤＢＭＳ５０は、前述のようにステップ５０５乃至５１５を実行する。目標バインド・パッケージ・モジュール２１０は、バージョンが、配備されるＳＱＬパッケージ１５に対して指定されるかどうかを判断する（判断ステップ６０５）。否の場合には、目標ＤＢＭＳ５０及び目標バインド・パッケージ・モジュール２１０は、前述のようにステップ５２０乃至５４０を実行する。
【００３７】
バージョンが指定される場合（判断ステップ６０５）、目標バインド・パッケージ・モジュール２１０は、指定されたバージョンが存在するかどうかを判断する（判断ステップ６１０）。否の場合には、目標ＤＢＭＳ５０及び目標バインド・パッケージ・モジュール２１０は、前述の通りステップ５２０乃至５４０を実行する。指定されたバージョンが存在する場合は、目標バインド・パッケージ・モジュール２１０は、配備されたＳＱＬプロシージャ１５のバージョニングにおける１つ又は複数の不整合エラーを調査する（判断ステップ６１５）。整合性エラーが発見された場合は、目標バインド・パッケージ・モジュール２１０は、プロシージャの配備を中止し、エラーを報告する（ステップ６２０）。
【００３８】
整合性エラーが発見されない場合は、目標バインド・パッケージ・モジュール２１０は、現存のバージョンを配備されたＳＱＬプロシージャ１５で置き換える（ステップ６２５）。目標ＤＢＭＳ５０及び目標バインド・パッケージ・モジュール２１０は、前述のようにステップ５２０乃至５４０を行う。
【００３９】
ＳＱＬプロシージャ１５を配備する際のシステム１０の技法は、目標ＤＢＭＳ５０がソースＤＢＭＳ３０と同一であることを必要としない。システム１０は、プロシージャ論理コンポーネント２３５の内部表現を調査して、プロシージャ論理コンポーネント２３５が目標ＤＢＭＳ５０上で実行できるかどうかを検知する。ソースＤＢＭＳ３０と目標ＤＢＭＳ５０がプロシージャ論理コンポーネント２３５の内部表現を処理する機能において互換性があれば、ソースＤＢＭＳ３０と目標ＤＢＭＳ５０の間の相違は許容される。
【００４０】
システム１０は、ＳＱＬプロシージャ１５を１つのシステムから別のシステムに、１つのコマンドを用いて配備することを可能にする。この配備は、ＳＱＬプロシージャ１５が配備された後のプロシージャ論理コンポーネント２３５内の動作変更の危険性を伴わずに行われる。ＳＱＬプロシージャ１５のプロシージャ論理コンポーネント２３５は、配備後も原型のままであり、目標システム２５上に生成されたデータベース要求コンポーネント２４０と共にシームレスに動作する。
【００４１】
説明された本発明の特定の実施形態は、本発明の原理の特定用途についての例証に過ぎないことを理解されたい。本明細書で説明された照会プロシージャを配備するためのシステム及び方法に対して多くの修正を、本発明の精神及び範囲から逸脱することなく施すことができる。
【図面の簡単な説明】
【００４２】
【図１】本発明のＳＱＬプロシージャ配備システムを用いることができる例示的な動作環境の概略図である。
【図２】図１のＳＱＬプロシージャ配備システムの高レベル階層の該略図である。
【図３】ＳＱＬプロシージャをソース・システムから目標システムへ配備する際の、図１及び図２のＳＱＬプロシージャ配備システムの動作方法を示すプロセス・フローチャートである。
【図４】ＳＱＬプロシージャをソース・システムから目標システムへ伝送する際の、図１及び図２のＳＱＬプロシージャ配備システムの動作方法を示すプロセス・フローチャートの前半部分を表す。
【図５】ＳＱＬプロシージャをソース・システムから目標システムへ伝送する際の、図１及び図２のＳＱＬプロシージャ配備システムの動作方法を示すプロセス・フローチャートの後半部分を表す。
【図６】ＳＱＬプロシージャを目標データベース管理システムにおいて受信する際の、図１及び図２のＳＱＬプロシージャ配備システムの動作方法を示すプロセス・フローチャートである。
【図７】ＳＱＬプロシージャのバージョンを目標データベース管理システムにおいて受信する際の、図１及び図２のＳＱＬプロシージャ配備システムの実施形態の動作方法を示すプロセス・フローチャートの主部分を表す。
【図８】ＳＱＬプロシージャのバージョンを目標データベース管理システムにおいて受信する際の、図１及び図２のＳＱＬプロシージャ配備システムの実施形態の動作方法を示す図７のプロセス・フローチャートの分岐部分を表す。
【符号の説明】
【００４３】
１０：ＳＱＲプロシージャ配備システム
１５：ＳＱＲプロシージャ
２０：ソース・システム
２５：目標システム
３０：ソース・データベース管理システム
３５：ソース・サーバ
４０：ソース・データベース
４５：ソース・カタログ
５０：目標データベース管理サーバ
５５：目標サーバ
６０：目標データベース
６５：目標カタログ
７０：ネットワーク
２０２：複製モジュール
２０５：ソース配備命令モジュール
２１０：目標バインド・パッケージ・モジュール
２１５：ＳＱＬプロシージャ・ソース・コード
２２０：記号テーブル
２２５：カプセル化最適化結果
２３０：カタログ
２３５：プロシージャ論理コンポーネント
２４０：データベース要求コンポーネント
２４５：ＳＱＬプロシージャ配備セット
３００、４００、５００、６００：システム１０の方法
【図１】
2009520255.tif 000003
【図２】
2009520255.tif 000004
【図３】
2009520255.tif 000005
【図４】
2009520255.tif 000006
【図５】
2009520255.tif 000007
【図６】
2009520255.tif 000008
【図７】
2009520255.tif 000009
【図８】
2009520255.tif 000010
【手続補正書】
【提出日】平成21年3月24日(2009.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロシージャ論理コンポーネント及びデータベース要求コンポーネントを含む構造化照合言語プロシージャを、ソース・システムから目標システムに配備するための、プロセッサに実装される方法であって、
照会プロシージャの作成の際に、該照会プロシージャのソース・コード、記号テーブル、及びカプセル化最適化結果を生成して、前記データベース要求コンポーネントの１つ又は複数のクエリ文の実行時命令を再生し、且つ、前記クエリ文が前記プロシージャ論理コンポーネントの配備された内部表現により機能することを可能にする、ステップと、
配備中に、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の結合を維持するステップと、
前記プロシージャ論理コンポーネントの内部表現を、前記目標システムに再生せずに複製するステップと、
前記データベース要求コンポーネントを再生して、前記照会プロシージャを前記目標システム上に再現し、且つ、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の整合性インターフェースを維持するステップと、
を含む方法。
【請求項２】
前記記号テーブルは、前記目標システム上に再生された前記データベース要求コンポーネントと、前記プロシージャ論理コンポーネントの前記内部表現との間のリンケージを与える、請求項１に記載の方法。
【請求項３】
前記カプセル化最適化結果は、前記プロシージャ論理コンポーネント、及び前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントのインターフェースに対する、コンパイラによって生成された結果を含み、前記照会プロシージャの前記目標システムへの配備において最適化結果を保存する、請求項１又は請求項２に記載の方法。
【請求項４】
前記構造化照会言語プロシージャは、構造化照会言語プロシージャ・ソース・コードを含み、さらに随意的に、前記構造化照会言語プロシージャ・ソース・コードは、前記構造化照会言語プロシージャを定義する、請求項１、請求項２又は請求項３のいずれかに記載の方法。
【請求項５】
前記複製するステップは、前記ソース・システムにおいて、前記照会プロシージャの前記目標システムへの配備に関する要求を受信するステップを含む、請求項３に記載の方法。
【請求項６】
前記複製するステップは、分散コンポーネントを呼び出して前記目標システムにフローするステップを更に含む、請求項５に記載の方法。
【請求項７】
前記照会プロシージャ・ソース・コードと、前記記号テーブルと、前記カプセル化最適化結果と、前記プロシージャ論理コンポーネントの内部表現とを含むように、照会プロシージャ配備セットを定義するステップを更に含み、
前記複製するステップは、前記照会プロシージャ配備セットに対してバインド・パッケージ・プロセスを駆動するステップを更に含む、
請求項６に記載の方法。
【請求項８】
前記照会プロシージャを前記目標システム上に再現するステップは、前記照会プロシージャ配備セット及び前記データベース要求コンポーネントを受信するステップを含み、
随意的に、前記照会プロシージャを再現するステップは、前記データベース要求コンポーネント内のクエリ文のそれぞれに対して前記クエリ文を結合するステップを含み、
さらに、
前記カプセル化最適化結果を用いて複数の実行時命令を前記プロシージャ論理コンポーネントの前記内部表現と同期させるステップを含む、
請求項７に記載の方法。
【請求項９】
バージョンを調査するステップを更に含み、
バージョンが存在する場合には、バージョニング・エラーを調査するステップを更に含む、
請求項３に記載の方法。
【請求項１０】
現存のバージョンを、前記配備された照会プロシージャで置き換えるステップを更に含み、随意的に、配備コマンド内で前記目標システムのロケーション名を指定するステップを更に含み、
配備される照会プロシージャのパッケージ名を指定するステップを含む、
請求項１に記載の方法。
【請求項１１】
前記目標システムは、前記ソース・システムに対して遠隔に配置される、請求項１に記載の方法。
【請求項１２】
プロシージャ論理コンポーネント及びデータベース要求コンポーネントを含む構造化照会言語プロシージャを、ソース・システムから目標システムに配備するための、コンピュータ使用可能媒体に格納されたプログラム・コードを有するコンピュータ・プログラムであって、
照会プロシージャの作成の際に、該照会プロシージャのソース・コード、記号テーブル、及びカプセル化最適化結果を生成して、前記データベース要求コンポーネントの１つ又は複数のクエリ文の実行時命令を再生し、且つ、前記クエリ文が前記プロシージャ論理コンポーネントの配備された内部表現により機能することを可能にするための、プログラム・コードと、
配備中に、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の結合を維持するためのプログラム・コードと、
前記プロシージャ論理コンポーネントの内部表現を、前記目標システムに再生せずに複製するためのプログラム・コードと、
前記データベース要求コンポーネントを再生して、前記照会プロシージャを前記目標システム上に再現し、且つ、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の整合性インターフェースを維持するためのプログラム・コードと
を含むコンピュータ・プログラム。
【請求項１３】
プロシージャ論理コンポーネント及びデータベース要求コンポーネントを含む構造化照合言語プロシージャを、ソース・システムから目標システムに配備するための、プロセッサに実装されるシステムであって、
照会プロシージャの作成の際に、該照会プロシージャのソース・コード、記号テーブル、及びカプセル化最適化結果を生成して、前記データベース要求コンポーネントの１つ又は複数のクエリ文の実行時命令を再生し、且つ、前記クエリ文が前記プロシージャ論理コンポーネントの配備された内部表現により機能することを可能にする、ソース・システムと、
配備中に、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の結合を維持するためのカタログと、
前記プロシージャ論理コンポーネントの内部表現を、前記目標システムに再生せずに複製するための複製モジュールと、
前記データベース要求コンポーネントを再生して、前記照会プロシージャを前記目標システム上に再現し、且つ、前記プロシージャ論理コンポーネントと前記データベース要求コンポーネントの間の整合性インターフェースを維持するための目標バインド・パッケージ・モジュールと
を備えるシステム。
【国際調査報告】
2009520255.tif 000011