(57)【要約】  この明細書中に記載される方策は、グリッドなどの分散計算環境内でのデータのバルク転送を必要とするデータベースを提供するために用いられ得る。この方策は、たとえば、オペレーティングシステムのファイルシステム間でテーブルスペースを転送するのに、ＤＢＡの手作業の介入を必要としない。代わりに、テーブルスペースは、それがデータベースの動的な提供を必要とすると判断するたびにグリッド計算システムによって自動的かつ動的に提供され得る。加えて、テーブルスペースのコピーが提供されると、同期機構がまた自動的に提供されて、テーブルスペースとそれらのコピーとを同期させ続けることができる。
2007502464.tif 000002
【特許請求の範囲】
【請求項１】
分散データベースシステムにおいてデータを自動的に提供するための方法であって、
データベースサーバが第１のファイルシステムから第２のファイルシステムにテーブルスペースを移送させるステップと、
前記テーブルスペースを前記第２のファイルシステムに移送した後、前記データベースサーバが、前記データベースサーバによって管理されるローカルデータベースに前記テーブルスペースをインポートするステップとを含む、方法。
【請求項２】
データベースサーバがテーブルスペースを移送させる前記ステップと、前記データベースサーバが前記テーブルスペースをインポートする前記ステップとはともに、ルーチンの呼出に応答して実行される、請求項１に記載の方法。
【請求項３】
前記ルーチンは、データベース言語に準拠しデータベースサーバによって実行され得るコードで書込まれる、請求項１に記載の方法。
【請求項４】
インポートする前記ステップは、前記テーブルスペースを前記ローカルデータベースにアタッチするステップを含む、請求項１に記載の方法。
【請求項５】
前記テーブルスペースは、前記データベースサーバがテーブルスペースを移送させる前記ステップの実行前および実行中に別のデータベースにアタッチされる、請求項１に記載の方法。
【請求項６】
前記テーブルスペースは、前記データベースサーバがテーブルスペースを移送させる前記ステップの実行前および実行中にオフラインである、請求項１に記載の方法。
【請求項７】
前記テーブルスペースをインポートする前記ステップは、前記テーブルスペースのコピーをアタッチするステップを含み、
前記コピーは前記テーブルスペースとは異なり、
前記データベースサーバは、前記テーブルスペースになされた変更を前記コピーに適用する同期機構を提供する、請求項１に記載の方法。
【請求項８】
前記同期機構は、前記コピーになされた変更を前記テーブルスペースに適用する、請求項７に記載の方法。
【請求項９】
前記ステップはさらに、
前記同期機構が、ルールエンジンによる１組のルールの評価結果に基づいて、前記テーブルスペースへのどの変更を前記コピーに伝搬するかを決定するステップを含み、
前記同期機構を提供する前記ステップは、前記１組のルールを構成するステップを含む、請求項７に記載の方法。
【請求項１０】
ファイルのコピーを提供するデータベースサーバのための方法であって、
第１のデータベースサーバが、第１のオペレーティングシステムの第１のファイルシステムに記憶されたファイルのコピーを作成する要求を受信するステップと、
前記第１のデータベースサーバが、特定のオペレーティングシステムの特定のファイルシステムにおいて前記コピーの作成を引起すステップとを含み、
前記コピーは前記特定のファイルとは異なるファイルである、方法。
【請求項１１】
第１のデータベースサーバが要求を受信する前記ステップは、前記第１のデータベースサーバが、前記ファイルのコピーを前記特定のファイルシステムに移送する要求を受信す
るステップを含み、
前記第１のデータベースサーバが前記コピーの作成を引起す前記ステップは、
前記第１のデータベースサーバと前記第２のデータベースサーバとの間で前記ファイルのコピーを伝送させるステップと、
前記特定のファイルシステムに前記コピーを記憶するステップとを含む、請求項１０に記載の方法。
【請求項１２】
前記第１のファイルシステムは、前記第１のデータベースサーバに対してローカルであり、前記第２のデータベースサーバに対してリモートであり、
前記特定のファイルシステムは、前記第２のデータベースサーバに対してローカルであり、前記第１のデータベースサーバに対してリモートであり、
記憶する前記ステップは前記第２のデータベースサーバによって実行される、請求項１１に記載の方法。
【請求項１３】
前記伝送を引起す前記ステップは、前記第１のデータベースサーバと前記第２のデータベースサーバとの間でメッセージを伝搬するメッセージシステムを介してバイナリファイルとして前記コピーの伝送を引起すステップを含む、請求項１２に記載の方法。
【請求項１４】
前記第１のファイルシステムは、前記第２のデータベースサーバに対してローカルであり、前記第１のデータベースサーバに対してリモートであり、
前記特定のファイルシステムは、前記第１のデータベースサーバに対してローカルであり、前記第２のデータベースサーバに対してリモートであり、
記憶する前記ステップは前記第１のデータベースサーバによって実行される、請求項１１に記載の方法。
【請求項１５】
前記第１のファイルシステムは前記第１のデータベースサーバに対してローカルであり、前記特定のファイルシステムは前記第１のデータベースサーバに対してローカルである、請求項１０に記載の方法。
【請求項１６】
要求を受信するステップは、前記ファイルを識別する値をパラメータとして伝えるルーチンの呼出を含む、請求項１０に記載の方法。
【請求項１７】
要求を受信するステップはインターフェイスを介してコマンドを受信するステップを含み、
前記データベースサーバは、前記インターフェイスを介して受信される、データベース言語に準拠するコマンドを実行し、
前記コマンドは前記ファイルを識別する、請求項１０に記載の方法。
【請求項１８】
分散データベースシステムにおいてデータベースデータを自動的にインスタンス生成するための方法であって、
データベースサーバが、１組の１つ以上のファイルを第１のファイルシステムから第２のファイルシステムへ移送させるステップを含み、
前記１組の１つ以上のファイルはデータベースについてのデータを記憶し、
前記１組の１つ以上のファイルを前記第２のファイルシステムに移送した後、前記データベースサーバが、前記データベースサーバによって管理されるデータベースとして前記データベースを提供するステップを含む、方法。
【請求項１９】
前記１組のファイルはテーブルスペースであり、
提供する前記ステップは、前記テーブルスペースを前記データベースにアタッチするステップを含む、請求項１８に記載の方法。
【請求項２０】
前記１組の１つ以上のファイルは、データベースオブジェクトを記述するメタデータおよびデータを前記データベースオブジェクトに挿入するためのコマンドを含み、提供する前記ステップは、コマンドを実行することによって前記データを前記データベースにインポートするステップを含む、請求項１８に記載の方法。
【請求項２１】
前記１組の１つ以上のファイルは、リカバリマネージャによって作成されるバックアップファイルを含み、提供する前記ステップは、前記リカバリマネージャに前記バックアップファイルから前記データベースを作成させるステップを含む、請求項１８に記載の方法。
【請求項２２】
アーカイブログは、前記バックアップファイルを作成した後になされた前記データベースへの変更を記録するデータを記憶し、提供する前記ステップはさらに、前記アーカイブログに記録された変更を反映するよう前記データベースを変更するステップを含む、請求項２１に記載の方法。
【請求項２３】
１つ以上のプロセッサによって実行されると、請求項１に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２４】
１つ以上のプロセッサによって実行されると、請求項２に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２５】
１つ以上のプロセッサによって実行されると、請求項３に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２６】
１つ以上のプロセッサによって実行されると、請求項４に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２７】
１つ以上のプロセッサによって実行されると、請求項５に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２８】
１つ以上のプロセッサによって実行されると、請求項６に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２９】
１つ以上のプロセッサによって実行されると、請求項７に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３０】
１つ以上のプロセッサによって実行されると、請求項８に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３１】
１つ以上のプロセッサによって実行されると、請求項９に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な
媒体。
【請求項３２】
１つ以上のプロセッサによって実行されると、請求項１０に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３３】
１つ以上のプロセッサによって実行されると、請求項１１に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３４】
１つ以上のプロセッサによって実行されると、請求項１２に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３５】
１つ以上のプロセッサによって実行されると、請求項１３に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３６】
１つ以上のプロセッサによって実行されると、請求項１４に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３７】
１つ以上のプロセッサによって実行されると、請求項１５に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３８】
１つ以上のプロセッサによって実行されると、請求項１６に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３９】
１つ以上のプロセッサによって実行されると、請求項１７に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項４０】
１つ以上のプロセッサによって実行されると、請求項１８に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項４１】
１つ以上のプロセッサによって実行されると、請求項１９に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項４２】
１つ以上のプロセッサによって実行されると、請求項２０に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項４３】
１つ以上のプロセッサによって実行されると、請求項２１に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項４４】
１つ以上のプロセッサによって実行されると、請求項２２に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
この出願は、２００３年８月１４日にデバシシュ・チャタジー（Debashish Chatterjee）他によって出願され「コンピュータリソースの提供（“Computer Resource Provisioning”）」と題され、その内容が引用によりこの明細書中に援用される米国仮出願第６０／４９５，３６８号の優先権を主張する。この出願は、２００３年９月３日にベニー・ソーダー（Benny Souder）他によって出願され「自動的および動的なデータベースの提供（“Automatic And Dynamic Provisioning Of Databases”）」と題され、その内容が引用によりこの明細書中に援用される米国仮出願第６０／５００，０５０号の優先権を主張する。この出願は、２００３年９月３日にキャロル・コルレイン（Carol Colrain）他によって出願され「分散システムにおけるサービスベースの作業負荷の管理および測定（“Service Based Workload Management and Measurement in a Distributed System”）」と題され、その内容が引用によりこの明細書中に援用される米国仮出願第６０／５００，０９６号の優先権を主張する。この出願は、２００３年１１月２１日に出願され、「自動的および動的なデータベースの提供（“Automatic and Dynamic Provisioning of Databases”）」と題され、引用によりこの明細書中に援用される米国出願第１０／７１８，７４７号（代理人番号第５０２７７−２３４３）の優先権を主張する。
【０００２】
以下の出願は本願に関連する。すなわち、
２００３年５月３０日にエドウィナ・ルー（Edwina Lu）他によって出願され、「分散された情報共有システムにおけるルールの利用（“Utilizing Rules in a Distributed Information Sharing System”）」と題され、その内容が引用によりこの明細書中に援用される米国出願第１０／４４９，８７３号、および
２００３年１月２８日にジュアン・Ｒ・ロアイザ（Juan R. Loaiza）他によって出願され、「データベースシステムのためのプラグ可能なテーブルスペース（“Pluggable Tablespaces For Database Systems”）」と題され、その内容が引用によりこの明細書中に援用される米国出願第１０／３５３，３８１号である。
【０００３】
発明の分野
この発明は分散データベースシステムに関し、特に、さまざまな作業負荷の要求を満たすためのデータベースシステムにおけるリソースの割当に関する。
【背景技術】
【０００４】
発明の背景
企業は、自分たちのデータ処理システムの費用を減じ、その効率を高める方法に目を向けている。典型的な企業のデータ処理システムは、その企業のアプリケーションの各々に個々のリソースを割当てる。アプリケーションの予測されるピーク負荷に対処するために各アプリケーションに対し十分なリソースが得られている。各々のアプリケーションは異なる負荷特性を備えている。アプリケーションの中には日中にビジー（busy）であるものや、夜間にビジーであるものもあり、リポートの中には、週に一度実行されるものや、月に一度実行されるものもある。結果として、使用されないままのリソース容量が大量に存在する。グリッド計算は、この使用されない容量を利用したりなくしたりすることを可能にする。実際には、グリッド計算は、計算の経済性を劇的に変化させる。
【０００５】
グリッドは、処理を行なったりある程度の共用ストレージを提供する有用な計算要素の集まりであり、グリッドのリソースは、計算の必要性およびそのクライアントの優先順位を満たすよう動的に割当てられる。グリッドの例にはサーバブレードの棚が挙げられる。
各々のサーバブレードは、単一のマザーボード上にプロセッサ、メモリ、ネットワーク接続および関連する電子機器を備えた包括的なコンピュータシステムである。典型的には、サーバブレードは（揮発性メモリ以外の）内蔵ストレージを含まず、電源、冷却システムおよび棚内のケーブル配線とともに、記憶装置（たとえば共用ディスク）を共有する。
【０００６】
グリッド計算は計算のコストを劇的に下げ、計算リソースの可用性を高め、生産性および品質をより高めることができる。グリッド計算の基本的な考えは、電力グリッドまたは電話網と類似の、ユーティリティとして計算するという概念である。グリッドのクライアントは、そのデータがどこにあるか、または計算がどこで実行されるかについて注意を払わない。クライアントが望むすべてのことは、必要なときに計算が行なわれ、情報がクライアントに届けられることである。
【０００７】
高いレベルでは、グリッド計算の中心的な考えは、ユーティリティとして計算することである。グリッドのクライアントは、そのデータがどこにあるか、またはどのコンピュータ要素が要求を処理するかについて気にかける必要はない。クライアントは、単に情報または計算を要求するだけでよく、必要なときに常に必要なだけそれを届けさせる。これは電力会社が行なうやり方に類似しており、顧客には、ジェネレータがどこにあるか、または電気グリッドが如何に配線されているかが分からない。顧客は電力を要求し、それを得る。この目的は計算をユーティリティ、すなわちどこでもある商品にすることである。したがって、これにはグリッドという名前が付けられている。
【０００８】
グリッド計算をユーティリティとするこの見方は、当然、クライアント側の見方である。サーバ側からみると、または裏側では、グリッドはリソース割当、情報共有および高可用性に関するものである。リソース割当により、リソースを必要とするかまたは要求する人がすべて、必要なものを得ることが確実となる。リソースは、要求が応じられていない間はアイドル状態ではない。情報を共有することにより、クライアントおよびアプリケーションが必要とする情報が必要な時に必要なところで利用可能となることが確実となる。高可用性により、電力会社が常に電力を供給しなければならないのと同様に、すべてのデータおよび計算が常に必ずそこにあることが確実となる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
データベースのためのグリッド計算
グリッド計算から恩恵を受けることのできるコンピュータ技術の一分野として、データベース技術が挙げられる。グリッドは、複数のデータベースをサポートし、各データベース上で負荷をサポートするのに必要なリソースを動的に割当て得る。データベースのための負荷が増大すると、そのデータベースのためにより多くのリソースが割当てられる。たとえば、企業グリッド上では、データベースは、グリッド上の１つのサーバブレード上で稼動している１つのデータベースサーバによって使用可能にされる。データベースからのデータを要求するユーザの数が増大する。このようなデータベースに対する需要の増大に応じて、別のデータベースサーバが１つ以上の他のサーバブレード上に提供される。
【００１０】
データベースグリッドの提供
提供という語は、サービスを提供するのに必要な計算リソースおよびデータを提供しかつ構成することを指す。データベースサーバに関して、提供するステップは、データベースサーバを実行するようサーバブレードを構成し、データベースを管理するようデータベースサーバを構成するステップを含む。データベースに関して、提供するステップは、データベースへのアクセスを管理するようデータベースサーバを構成するステップを含む。
【００１１】
データまたはデータベースを提供するプロセスは、この明細書では、データ提供と称さ
れる。グリッドにおけるデータベースの提供は、データベースのすべてまたは一部をコピーとして作成し、そのコピーを管理するよう新しいデータベースサーバを提供するか、または既に実行しているデータベースサーバによってすでに管理されている別のデータベースにコピーを組込む必要があるかもしれない。
【００１２】
データベースのデータ提供は、ファイルシステム間および／またはデータベース間でのデータのバルク転送を含み得る。残念ながら、データのバルク転送についての技術は、データベース提供のために用いられ、手作業の介入を伴うので、グリッド計算に必要とされるように自動的かつ動的に有効にデータを提供するのに用いることができない。
【００１３】
データのバルク転送についての技術を用いるデータ提供のための方策の例として、移送可能なテーブルスペースの方策が挙げられる。テーブルスペースは、データベースオブジェクト（たとえば、リレーショナルテーブル）についてのデータを記憶するのに用いられるストレージコンテナ（たとえばファイル）の集まりである。この方策の下では、テーブルスペースは「ソースデータベース」からエクスポートされ、「目標のデータベース」にインポートされる。この機能により、ファイルをコピーするためのオペレーティングシステムユーティリティを用いてテーブルスペースのファイルをコピーすることが可能となり、これにより、データベース間でのデータのバルク転送のための他の技術よりもはるかに高速に実行される。他のこのような技術は、クエリおよび挿入文を実行するステップを含む。
【００１４】
テーブルスペースを移送するために、人のデータベース管理者（「ＤＢＡ」）が手作業のステップを実行する。まず、テーブルスペースは、テーブルスペースをアタッチすることによってターゲットテーブルスペースにインポートされなければならない。テーブルスペース、データベースおよびデータベースサーバに関して、「アタッチする」という語は、テーブルスペースにおけるデータベースオブジェクトがデータベース内に組込まれ、テーブルスペースがデータベースについてのデータを記憶するのに用いられるようにデータベースおよび／またはデータベースサーバを構成することを指す。テーブルスペースをアタッチするようデータベースを構成することには、データベースの一部としてテーブルスペースおよびデータベースオブジェクトを規定するようにデータベースのメタデータを変更することが含まれる。データベースのメタデータは、ＤＢＡによって実行される手作業のステップを含むさまざまな技術を用いて変更されてもよい。ＤＢＡは、メタデータを「メタデータダンプファイル」にエクスポートするよう実行され得るソースデータベースシステム上で利用可能なユーティリティを実行し、メタデータダンプファイルからメタデータを構築するよう目標のデータベースシステム上でユーティリティを実行し得る。代替的には、メタデータは、テーブルスペースにおいて移送されるデータに含まれてもよく、目標のデータベースは、テーブルスペースに含まれるメタデータからメタデータを再構築することとなる。ＤＢＡはまた、目標のデータベースシステム上でメタデータを手作業で再構築し得る。
【００１５】
テーブルスペースは、元のソースデータベースからテーブルスペースの別個のコピーを作成し、それを目標のデータベースにアタッチすることによってデータベースに移送され得る。コピーが作成されている間、テーブルスペース上の動作は読出専用の動作に限定されなければならない。ＤＢＡは、テーブルスペース上で実行されるデータベース動作を読出専用の動作に限定するようデータベースを管理するデータベースサーバに命令するコマンドを送信する。コピーが完了すると、ＤＢＡは、変更動作が実行可能であることをデータベースサーバに教えるコマンドを送信し得る。
【００１６】
この明細書中で用いられる「コピー」という語は、ソースデータと、ソースデータの複製との両方を指す。たとえば、ソースファイルのコピーはソースファイル自体であり得る
か、または、たとえば、データファイルのコピーを作成するためのオペレーティングシステムユーティリティなどの容易に利用可能なコピーユーティリティを用いて生成することのできる複製である別のファイルであり得る。
【００１７】
移送されたテーブルスペースのコピーはまた、データベースからデタッチされ得る。特定のテーブルスペースおよびデータベースおよびデータベースサーバに関して、デタッチという語は、もはやテーブルスペースを用いてデータベースについてのデータを記憶することができないようにデータベースおよび／またはデータベースサーバを構成することを指す。テーブルスペースをデタッチするようデータベースを構成するステップは、たとえば、ソースデータベースシステムの一部としてテーブルスペースを規定するメタデータを除去するかまたはテーブルスペースがもはや用いられないことを示すフラグを設定することによって、ソースデータベースシステムにおけるデータベースのメタデータを変更するステップを含む。このステップは、ユーティリティを実行するかまたはソースデータベースのメタデータを手作業で編集することにより、ＤＢＡによって実行される。
【００１８】
ソースデータベースのためのテーブルスペースはファイルシステムの「ソースディレクトリ」に記憶され、目標のデータベースシステムのテーブルシステムはファイルシステムの「ターゲットディレクトリ」に記憶される。ソースディレクトリおよびターゲットディレクトリは、同じファイルシステム内かまたは異なるコンピュータシステム上の異なるファイルシステム内にあり得る。いずれの場合も、ＤＢＡは、オペレーティングシステムユーティリティを用いてテーブルスペースを転送する必要がある。これは、ＤＢＡがターゲットディレクトリのコンピュータシステム上でオペレーティングシステムアカウントを有することを必要とする。ＤＢＡは、コンピュータシステムにログオンし、テーブルをソースディレクトリからターゲットディレクトリに転送するようユーティリティを実行する。ターゲットディレクトリが別のコンピュータシステムの別のファイルシステムにある場合、ＤＢＡはＦＴＰを用いてファイルを転送し得る（すなわち、ファイル転送プロトコルに従うユーティリティを用いる）。ＦＴＰを用いるために、ＤＢＡは、コンピュータシステムにログオンし、テーブルスペースファイルを転送するために、ターゲットディレクトリのコンピュータシステム上のオペレーティングシステムアカウントを必要とする。
【００１９】
上述のとおり、データベースを提供するための従来のデータのバルク転送技術は、人のＤＢＡの側の手作業の介入を必要とする。グリッド計算が自動的かつ動的なデータ提供の実行を必要とするので、データベースのバルク転送を必要とするデータベース提供はグリッド計算には適さない。明らかに、グリッド内における動的なデータ提供に適したデータベースの自動的なバルク転送が必要とされる。
【００２０】
このセクションで説明される方策は追求され得る方策であるが、必ずしも以前に考案または追求された方策である必要はない。したがって、特にそれ以外の指定がない限り、このセクションで説明される方策はいずれも、単にこのセクションに含まれるだけで先行技術としてみなされるものと考えられるべきではない。
【発明を実施するための最良の形態】
【００２１】
この発明は、添付の図面の図において限定のためではなく例示のために示されており、同様の参照番号は同様の要素を指す。
【００２２】
発明の詳細な説明
データベースを自動的かつ動的に提供するための方法および装置が記載される。以下の記載においては、説明の目的で、多数の特定の詳細がこの発明を完全に理解させるために述べられる。しかしながら、この発明がこれらの特定の詳細なしに実施され得ることが明らかとなるだろう。他の場合には、周知の構造および装置は、この発明を不必要に曖昧に
しないようにブロック図で示される。
【００２３】
この明細書中に記載される方策は、グリッドなどの分散計算環境内におけるデータのバルク転送を必要とするデータベースの提供のために用いられ得る。当該方策は、たとえばオペレーティングシステムのファイルシステム間でテーブルスペースを転送するのにＤＢＡによる手作業の介入を必要としない。代わりに、テーブルスペースは、動的なデータベースの提供が必要であると判断されるたびにグリッド計算システムによって自動的かつ動的に提供され得る。加えて、テーブルスペースのコピーが提供されると、同期機構も自動的に提供されて、テーブルスペースとそれらのコピーとを同期させ続け得る。
【００２４】
例示的な分散データベースシステム
図１は、この発明の実施例を実現するのに用いられ得る分散データベースシステム１０１を示す。分散データベースシステム１０１はデータベースサーバ１１２およびデータベースサーバ１２２を含む。データベースサーバ１１２はデータベース１１４へのアクセスを管理し、データベースサーバ１２２はデータベース１２４へのアクセスを管理する。データベースサーバ１１２および１２２などのデータベースサーバは、統合されたソフトウェア構成要素の組と、プロセッサ上で統合されたソフトウェア構成要素の組を実行するためのメモリやプロセスなどの計算リソースの割当との組合せであり、ソフトウェアと計算リソースとの組合せは、データベースを管理するのに用いられる。データベース管理の他の機能の中でも特に、データベースサーバは、データベースへのアクセスを求めるデータベースクライアントによる要求を処理して、データベースへのアクセスを支配しかつ容易にする。データベースサーバのデータベースクライアントは他のデータベースサーバを含み得る。データベース１１０はデータベースオブジェクトの集まりである。データベースオブジェクトはいかなる形の構造化されたデータをも含む。構造化されたデータは、構造を規定するメタデータ記述に従って構造化されたデータである。構造化されたデータは、リレーショナルテーブル、オブジェクトテーブル、オブジェクト−リレーショナルテーブル、および拡張可能マークアップ言語（「ＸＭＬ」）に従って構造化されたＸＭＬ文書などのデータのボディを含む。
【００２５】
テーブルスペース１１９および１２９は「オンライン」である。というのも、それらの各々がデータベースの一部として規定されるからである。オフラインテーブルスペース１８０などのオフラインテーブルスペースは、デタッチされた、すなわちデータベースの一部として規定されないテーブルスペースである。この明細書中に記載される方策を用いることにより、オンラインテーブルスペースおよびオフラインテーブルスペースのコピーを提供することができる。
【００２６】
データベース１１４は、データベースサーバ１１２に対してローカルなデータベースと称される。というのも、データベースサーバ１１２は、別のデータベースサーバがデータベースサーバ１１２の代わりにデータベース１１４にアクセスすることを必要としないからである。しかしながら、データベース１２４にアクセスするために、データベースサーバ１１２は、データベースサーバ１１２の代わりにデータにアクセスするデータベースサーバ１２２からのアクセスを要求しなければならない。したがって、データベース１２４は、データベースサーバ１１２のローカルなデータベースではない。
【００２７】
先に述べたように、テーブルスペースはストレージコンテナの集まりである。この発明の実施例に従うと、ストレージコンテナは、オペレーティングシステムによって規定および管理されるファイルである。オペレーティングシステムは、コンピュータ要素のリソースを制御および管理するソフトウェアである。コンピュータ要素上で実行される他のソフトウェアは、この明細書中では「アプリケーション」と称されるが、オペレーティングシステムの制御下で動作するプロセスによって実行される。データベースサーバのソフトウ
ェア構成要素はアプリケーションの一例である。アプリケーションを実行するプロセスによるリソースへのアクセスはまた、オペレーティングシステムによって制御される。アプリケーションは、オペレーティングシステムのルーチンおよびユーティリティを呼出すことによってリソースにアクセスする。
【００２８】
オペレーティングシステムによって規定および管理されるファイルは、ディスクストレージなどの永続的な記憶装置に記憶され、ファイルおよび他のディレクトリを含むディレクトリの階層として編成される。コンピュータ要素上でオペレーティングシステムによって直接制御されるファイルシステムは、オペレーティングシステムに対してローカルなファイルシステムと称される。ファイルシステム内のファイルは、オペレーティングシステムに対してローカルなファイルと称される。ファイルシステムにアクセスするのに、特定のオペレーティングシステムの代わりに別のオペレーティングシステムがファイルシステムにアクセスすることが必要でない場合、ファイルシステムは特定のオペレーティングシステムによって直接制御される。こうして、共用ディスクシステムにおけるファイルシステムは、２つ以上のオペレーティングシステムによって制御され得る。
【００２９】
アプリケーションまたはプロセスを制御する計算要素上のオペレーティングシステムは、この明細書中においては、アプリケーションまたはプロセスに対してローカルなオペレーティングシステムと称される。同様に、アプリケーションまたはプロセスは、オペレーティングシステムに対してローカルなアプリケーションまたはローカルなプロセスと称される。
【００３０】
オペレーティングシステムの制御下で実行されるプロセスは、アカウントの登録を担うオペレーティングシステム機能によって確立されるオペレーティングシステムアカウントに関連付けられる。ユーザのためのプロセスを開始するには、ユーザが、ユーザにログオンするためのオペレーティングシステム機能を用いてアカウントのもとでログオンすることが必要である。
【００３１】
オペレーティングシステムが計算要素のリソースを制御する間、その制御は、オペレーティングシステムとともに制御を共有し、かつこれに従属するアプリケーションと共有され得る。たとえば、データベースサーバ１１２は、オペレーティングシステムアカウントに関連付けられる複数の「データベースサーバプロセス」を含む。このオペレーティングシステムアカウントに関連付けられるプロセスは、複数のデータベースサーバプロセスを含むが、オペレーティングシステムのローカルなファイルシステムにおけるディレクトリに対するコンピュータ要素１１０のオペレーティングシステムによる認可された排他的な読出および書込特権である。データベースサーバプロセスによるディレクトリにおけるデータへのアクセスはデータベースサーバ１１２によって管理される。他のオペレーティングシステムアカウントに関連付けられるプロセスはこれらのディレクトリにはアクセスし得ない。このように、データベースサーバ１１２は、これらのディレクトリおよびその内部にあるファイルに対する共同かつ従属的な制御を共有する。
【００３２】
オペレーティングシステムは、リソースをある方法で管理および処理することを可能にするさまざまな機能およびユーティリティを提供する。たとえば、コンピュータ要素１１０のオペレーティングシステムは、ディスクドライブを、独立した（または安価な）ディスクの冗長な配列として扱ってもよい。同様に、データベースサーバは同様の能力を提供し得る。
【００３３】
データベース移送手続き１５０は、テーブルスペースを提供するのに必要とされる特定の組のステップを実行するためにデータベースサーバによって呼出され得るルーチンを含む。手続きは、ＤＢＡによって従来通りに手作業で実行されるステップを含めて、テーブ
ルスペースを提供するのに必要なステップのいくつかまたはすべてを実行し得る。データベースを自動的かつ動的に提供するために当該手続きが呼出されてもよい。
【００３４】
データ移送機構
データベースサーバ１１２および１２２は、さまざまなデータ移送機構（「移送機構」）を用いて相互にデータをやり取りする。これらの移送機構は、データベースサーバ間ファイル移送機構１３０（「ＤＢファイル移送機構」）とルールベースのメッセージシステム１４０とを含む。説明の目的で、ＤＢファイル移送機構１３０およびルールベースのメッセージシステム１４０は、データベースサーバ１１２および１２２を表わすのに用いられるものとは別個の異なるブロックを用いて図１に示される。しかしながら、これらの機構は、データベースサーバ１１２および１２２内に組込まれ、データベースサーバ間で相互接続（たとえば、ネットワーク、バス）に沿ってデータを伝送するのに関わるソフトウェア構成要素を含み得る。実際には、これらの移送機構は、データベース１１４および１２４内のキューおよびテーブル、またはデータベースサーバ１１２および１２２の制御を受けたファイルを用い、データベース移送手続き１５０からの手続きを用い得る。
【００３５】
ＤＢファイル移送機構１３０は、データベースサーバ１１２と１２２との間でファイルをやり取りするのに設けられた移送機構である。当該ファイルは、データベースサーバ１１２のローカルファイルシステムにおける１つ以上のディレクトリから、データベースサーバ１２２のローカルファイルシステムの１つ以上のディレクトリに移送され得る。データベースサーバのローカルファイルシステムは、データベースサーバを制御するオペレーティングシステムのローカルファイルシステムである。したがって、データベースサーバ１１２のローカルファイルシステムは、コンピュータ要素１１０のオペレーティングシステムのローカルファイルシステムである。この発明の実施例に従うと、ファイルは、ＦＴＰと同様のプロトコルを用いて移送される。
【００３６】
ＤＢファイル移送機構１３０は、以下のとおり、従来のファイル移送機構と区別可能である。データベースサーバ構成要素とは、（１）ファイルの形でデータを移送するだけであり、（２）データベースサーバ間でファイルを移送するものであり、当該データベースサーバはいずれもローカルファイルシステムからファイルを検索し、当該ファイルを受取るとこれをローカルファイルシステムに記憶し、データベースサーバ構成要素とはさらに、（３）ファイルを移送する要求に応答してこのようにファイルを移送するものである。この場合、当該要求は、移送すべき特定のファイルとソースおよび宛先の位置（たとえばディレクトリ）とを指定する。移送されたファイルはバイナリファイルまたはテキストファイルであり得る。ＤＢファイル移送機構１３０はまた、移送されたファイルの文字セットフォーマットを変換する文字セット変換を実行する。
【００３７】
明らかに、移送機構がファイルシステムディレクトリ間でファイルを移送していた間、このような機構は、データベースサーバの統合された構成要素であるソフトウェア構成要素を含まなかった。さらに、データベースサーバ１１２および１２２は、従来のデータベースサーバとは異なり、ディレクトリ間で移送されるべきファイルを特定するコマンドを認識するよう構成される。このようなコマンドは、ＳＱＬなどのデータベース言語に準拠するクエリをも受付けるコマンドラインインターフェイスを介して、ユーザによって入力され得る。移送すべきファイルを特定するコマンドは、ファイルの位置のディレクトリパスを含むファイル名と、ファイルを移送すべきファイル名およびディレクトリパスとをを特定する。
【００３８】
ルールベースのメッセージシステム
ルールベースのメッセージシステム１４０は、データベースサーバ１１２とデータベースサーバ１２２との間でメッセージをやり取りする。メッセージは、データの作成または
変更などのイベントについての情報を含む。メッセージを用いて、一方のデータベースサーバで発生するイベントを別のデータサーバに伝搬する。次いで、もう一方のデータベースサーバが、さらに別のデータベースサーバにメッセージを伝送し得る。
【００３９】
メッセージシステムの共通の用途はデータの複製である。データベースサーバにおけるデータベースオブジェクトになされたＤＭＬ変更は、データベースオブジェクトのうち少なくとも一部の複製を維持する別のデータベースサーバに伝搬される。ルールベースのメッセージシステム１４０は、ファイルを含めて、幅広い種類のデータを移送するのに用いられてもよい。
【００４０】
必要とされるメッセージのフローはメッセージシステムごとに異なり得る。さまざまな種類のメッセージシステムが、ネットワークにおけるノード間にメッセージのフローを構成する能力をユーザに提供する。１つの種類のメッセージシステムとして、ルールベースのメッセージシステム、たとえばルールベースのメッセージシステム１４０が挙げられるが、これは、ユーザがメッセージのフローを管理するルールを特定することを可能にする。
【００４１】
ルールは、条件と、当該条件が満たされる場合に実行すべき動作とを特定する。概して、ルールは、コンピュータ言語と同様のルール言語に準拠する。ルールを用いるメッセージシステムは、当該ルールによって参照され得る変数または属性を通じてイベントについての情報を明らかにする。ルールにおける条件は、変数および属性を参照する論理式を用いて表されてもよい。当該ルールを用いて、メッセージが他のノードに送信されるのがどのイベントであるか、そして別のノードから受取ったメッセージをどうすべきかを選択し得る。
【００４２】
データベース移送手続き
図２は、この発明の実施例に従ったデータベース移送手続き１５０をより詳細に示す。データベース移送手続き１５０は、ファイル移送手続き２１０および移送可能なテーブルスペース手続き２２０を含む。ファイル移送手続き２１０はデータベースサーバ間でのファイルの転送に関連するルーチンを含むが、テーブルスペース移送手続き２２０はテーブルスペースの移送に関する手続きを含む。これらの手続きは、コマンドラインインターフェイスなどのユーザインターフェイスを通じてデータベースサーバまたはユーザによって呼出され得る。データベースサーバの呼出は、１つ以上のパラメータを特定し、１つ以上の値（たとえば、関数呼出値またはパラメータリターン値）を戻し得る。当該パラメータを用いて、たとえば、どんなテーブルスペースをデタッチするか、またはどのファイルを移送するかを特定する。
【００４３】
この発明の実施例に従うと、データベース移送手続き１５０は、ＣとＰＬ／ＳＱＬ（登録商標）との組合せで書込まれる。ＰＬ／ＳＱＬは、オラクル（Oracle）（登録商標）コーポレーション（Corporation）から入手できる手続き型データベース言語である。しかしながら、この発明は、特定のコンピュータ言語で書込まれたデータベース移送手続きに限定されない。
【００４４】
ファイル移送手続き２１０は、以下のとおり、ゲット２１２、プット２１４およびコピー２１６の手続きを含む。
【００４５】
ゲット２１２：この手続きでは、「宛先」データベースサーバに対して、「ソース」データベースサーバから、ソースデータベースサーバに対してローカルなファイルを要求させる。ソースデータベースサーバは、要求されたファイルを宛先データベースサーバに伝送する。当該要求およびファイルは、ＤＢファイル移送機構１３０を用いて移送され得る
。
【００４６】
プット２１４：この手続きでは、ソースデータベースサーバが宛先データベースサーバと交信して、宛先データベースサーバのローカルファイルシステムにおいて、ソースデータベースサーバのローカルファイルシステムからファイルのコピーを作成する。ソースデータベースサーバは、要求されたファイルを宛先データベースサーバに伝送する。当該ファイルはＤＢファイル移送機構１３０を用いて移送され得る。ルールベースのメッセージシステム１４０がこの手続きを用いて、ＤＢファイル移送機構１３０を介してファイルを伝搬してもよい。
【００４７】
コピー２１６：この手続きでは、データベースサーバがローカルファイルシステムに対するファイルのローカルコピーを作成する。
【００４８】
データベース移送手続き１５０は、以下のとおり、デタッチ２２２、クローン２２４、アタッチ２２６、プル２２８およびプッシュ２２９を含む。
【００４９】
デタッチ２２２：この手続きでは、データベースサーバが１組のテーブルスペースを読出専用にして、データベースからテーブルスペースをデタッチし、テーブルスペースにおけるファイル（「テーブルスペースファイル」）の名前を戻す。データベースサーバは、テーブルスペースからのデータを読出す要求だけを受付けこれを処理し、テーブルスペースにおけるデータへのＤＭＬ変更を防ぐことによって、１組のテーブルスペースを読出し専用にする。その組のテーブルスペースについてのテーブルスペースメタデータは、「メタデータダンプファイル」と称される別個のファイルにエクスポートされる。
【００５０】
テーブルスペースファイルおよびメタデータダンプファイルはともに、「移送可能なテーブルスペースパッケージ」を形成する。移送可能なテーブルスペースパッケージは、ファイル移送手続き２１０を用いて移送され得る。このようにデタッチされた移送可能なテーブルスペースパッケージはまた、それがデタッチされるデータベースに「再アタッチ」されてもよい。
【００５１】
クローン２２４：この手続きでは、テーブルスペースをデタッチせずにコピーする。具体的には、この手続きでは、データベースサーバが１組のテーブルスペースを読出専用にして、それらのテーブルスペースファイルを、パラメータによって特定され得るテーブルスペースファイルの別の組にコピーし、次いで、（当該手続きを呼出す前に読出／書込であった場合）その１組のテーブルスペースを読出／書込にする。当該手続きはまた、テーブルスペースの組についてのメタデータをメタデータダンプファイルにエクスポートする。当該手続きは、新しいテーブルスペースファイルおよびメタデータダンプファイルの名前を戻す。
【００５２】
アタッチ２２６：この手続きでは、データベースサーバが、移送可能なセットパッケージにおける１組のテーブルスペースをアタッチする。
【００５３】
プル２２８：この手続きでは、データベースサーバが、リモートデータベースサーバのリモートデータベース（データベースサーバに対してローカルではないもの）から１組のテーブルスペースをコピーし、データベースサーバのローカルデータベースにテーブルスペースをアタッチする。こうして、この手続きはテーブルスペースを完全に提供する。図３はこの手続きを例示する。
【００５４】
図３を参照すると、ステップ３１０では、リモートサーバにおけるテーブルスペースが読出専用にされる。ステップ３２０では、テーブルサーバは、メタデータインポート／エ
クスポートユーティリティを用いてテーブルを記述するメタデータを得る。このようなユーティリティにより、クライアントおよびデータベースサーバが別のデータベースサーバに接続して、テーブルおよびテーブルスペースおよびテーブルスペース内のデータベースオブジェクトを記述するメタデータを含めてデータベースオブジェクトを記述するメタデータを得ることが可能となる。ステップ３３０では、データベースサーバはゲット２１２を用いて、テーブルスペースのコピーを得、これらをローカルファイルシステムに記憶する。ステップ３４０では、テーブルスペースは、ステップ３２０において得られたテーブルスペースメタデータを用いて、これらをアタッチすることによってローカルデータベースにインポートされる。ステップ３５０では、リモートサーバにおけるテーブルスペースは読出／書込にされる。
【００５５】
プッシュ２２９：この手続きでは、ソースデータベースサーバが１組のテーブルスペースをコピーし、これらをリモートデータベースサーバのローカルデータベースにインポートする。この手続きは、テーブルスペースを「プル」に指定するメッセージを、ルールベースのメッセージシステム１４０を介してリモートデータベースサーバに送信することによって実現され得る。次いで、リモートデータベースサーバはプル２２８を呼出して、ローカルデータベースにおいてテーブルスペースを提供する。この手続きを実現する別の方法として、ソースデータベースサーバがプット２１４を用いて、テーブルスペースのコピーをリモートデータベースに移送し、メタデータインポート／エクスポートユーティリティを呼出してテーブルスペースを記述するテーブルスペースメタデータをリモートデータベースサーバに伝送し、テーブルスペースメタデータを用いてコピーをアタッチするようリモートデータベースサーバに命令する。
【００５６】
テーブルスペース同期機構の自動的な提供
テーブルスペースのコピーが別のデータベースに提供されると、テーブルスペースとそのそのコピーとを同期させ続けるのにルールベースのメッセージシステム１４０が用いられてもよい。このようにするために、ルールベースのメッセージシステム１４０のさまざまな構成要素が提供されなければならない。
【００５７】
図４は、テーブルスペースとその提供されたコピーとを同期させるよう提供された構成要素を示すブロック図である。図５は、テーブルスペースコピーと、当該テーブルスペースコピーをテーブルスペースと同期させるのに必要なルールベースのメッセージシステム構成要素とを自動的に提供するためのプロセスを示すフローチャートである。これらの構成要素およびプロセスは、分散データベースシステム１０１を用いて説明される。
【００５８】
図４は、この発明の実施例に従ったルールベースのメッセージシステム１４０をより詳細に示す。図４を参照すると、変更ログ４１７においてデータベースサーバ１１２によって記録されるイベント（たとえば、ＤＭＬ変更およびＤＤＬ変更）を捕捉する捕捉プロセス４１３を含むデータベースサーバ１１２が示される。変更ログ４１７は、再実行および／または取消記録を含む。捕捉プロセス４１３は、これらのイベントを反映したメッセージをメッセージキュー４１８に並ばせる。伝搬プロセス４１４は、メッセージをメッセージキュー４１８からメッセージキュー４２２に伝搬する。メッセージキュー４２２は、データベースサーバ１２２によってデータベース１２４に与えられるべきメッセージのためのステージングエリアである。
【００５９】
ルールエンジン４５１および４５３は、ルール４５２または４５４におけるルールセットを評価することを求めるクライアントからの要求に応答してそれぞれルール４５２および４５４を実行し、次いで、ルールセットを評価する評価結果をクライアントに戻す。ルールエンジン４５１のクライアントは捕捉プロセス４１３および伝搬プロセス４１４を含む。ルールエンジン４５３のクライアントは適用プロセス４２３を含む。捕捉プロセス４
１３、伝搬プロセス４１４および適用プロセス４２３は、ルールエンジン４５１および４５３によって提供されるルール評価の結果を用いて、イベントおよびメッセージをいかに処理するかを決定する。これは、ルールセットの実行を求める要求をルールエンジンに伝送することによって達成される。このような要求に応答して、ルールエンジン４５１および４５３は、ルールセットのうちの１つ以上を実行する。ルールベースのメッセージシステムは、「分散情報共有におけるルールの利用および分散情報共有システムにおけるルールの利用（“Utilizing Ruling in Distributed Information Sharing and Utilizing Rules in a Distributed Information Sharing System”）」においてより詳細に説明される。
【００６０】
テーブルスペース４１９（図４）のコピーをテーブルスペース４１９′としてデータベース１２４に提供するのに用いられるプロセスが図５に説明される。データベース１１４はソースデータベースと称される。というのも、これは、コピーされたテーブルスペースと、コピーがアタッチされたデータベースであることから宛先データベースとしてのデータベース１２４とを含むからである。データベースサーバ１１２および１２２は、それぞれ、ソースデータベースサーバおよび宛先データベースサーバと称される。というのも、これらは、それぞれ、ソースデータベース１１４および宛先データベース１２４のローカルデータベースサーバであるからである。
【００６１】
図５を参照すると、ステップ５１０では、ソースデータベースサーバ１１２は、テーブルスペース４１９へのＤＭＬ変更（すなわち、テーブルスペース４１９に記憶されたデータベースオブジェクトへの変更）を記録し、テーブルスペース４１９への変更を捕捉するよう捕捉プロセス４１３を実行し、テーブルスペース４１９への変更を宛先データベースサーバ１２２に伝搬するよう伝搬プロセス４１４を実行するよう構成される。
【００６２】
ステップ５２０においては、ルール４５２は、捕捉プロセス４１３にテーブルスペース４１９への変更を捕捉させ、かつ当該変更を宛先データベースサーバ１２２とメッセージキュー４２２とに伝搬させるよう構成される。
【００６３】
ステップ５３０においては、テーブルスペース４１９のクローン、すなわちテーブルスペース４１９′は、プル手続き２２８を呼出すことによって宛先データベースサーバ１２２において提供される。
【００６４】
ステップ５４０において、宛先データベースサーバ１２２は、メッセージキュー４２２からの変更を適用するために適用プロセスを実行するよう構成される。
【００６５】
ステップ５５０において、ルール４５４は、適用プロセス４２３にテーブルスペース４１９への変更をテーブルスペース４１９′に適用させる（すなわち、テーブルスペース４１９内のデータベースオブジェクトへの変更を４１９′内のデータベースオブジェクトに適用させる）よう構成される。
【００６６】
図４に示されるプロセスを用いてテーブルスペースを自動的かつ動的に提供するので、当該プロセスは、特定のデータベースまたはデータベースサーバにテーブルスペースおよびルールベースのメッセージ構成要素を提供するよう呼出される手続きとして実現され得る。代替的には、スクリプトが生成され得、後に、テーブルスペースおよび／または同期機構を提供するよう実行され得る。
【００６７】
図４に示されるプロセスは一方向である同期機構を提供する。すなわち、テーブルスペースへの変更が１つのテーブルスペースから別のテーブルスペースにだけ伝搬され、逆の方には伝搬されない。しかしながら、この発明の実施例はこれに限定されず、双方向の同
期機構がまた自動的に提供され得る。たとえば、ルールおよびメッセージフロープロセスは、捕捉、伝搬および適用プロセスを構成することによって、テーブルスペース４１９′からテーブルスペース４１９への変更と、テーブルスペース４１９からテーブルスペース４１９′への変更の伝搬についての記載に類似の態様でルールとを伝搬するよう構成され得る。
【００６８】
発明の実施例の付加的な特徴
オンラインテーブルスペースを提供することによってテーブルスペースを提供する方策を説明してきたが、この発明はこれには限定されない。この明細書中に記載される方策は、オフラインテーブルスペースのコピーを自動的かつ動的に提供するのに用いられ得る。
【００６９】
たとえば、オフラインテーブルスペース１８０は、四半期ごとの決算報告についての情報を含み得る。テーブルスペースにおけるデータは、四半期ごとの短期間にわたって四半期ごとにしか処理および報告され得ない。リソース（たとえば記憶容量）が占有される場合にテーブルスペースをオンラインに維持するのではなく、情報をオフラインに維持し、四半期ごとに提供したり「提供しなかったり」することにより、リソースを空けて、他のサービスのためにリソースを利用できるようにし得る。
【００７０】
この明細書中で用いられる方策はテーブルスペースの形でデータを提供するが、この発明は、テーブルスペースによって識別されるデータを提供することには限定されない。この発明は、テーブル、スキーマおよびデータベースのリスト、ならびにこれらを双方向かつ一方向に同期させ続けるのに必要な同期機構を自動的に提供するのに用いられてもよい。テーブル、スキーマまたはデータベースのリストを提供することにより、データを自動的に提供し、それを同期させ続けるためのなお一層の柔軟性と論理的な方法とが顧客に与えられる。
【００７１】
同期機構は、多種多様なトポロジに属する分散データベースシステム内に提供され得る。メッセージシステムによって相互にリンクされたデータベースサーバのネットワークは、方向付けされたノードのグラフによって表わされ得る。エッジがノードを結合しており、各々のエッジは、「ソース」ノードから別の隣接する「宛先」ノードへのメッセージの流れを表わしている。所与のノードについては、複数のエッジがノードから出てくるかまたは当該ノードにおいて終端をなしていてもよい。加えて、１つ以上の他のノードを含み得る経路に沿ってソースノードからソースノードに戻ってくるメッセージを表わすサイクルがあり得る。データおよび／または同期機構は、さまざまな種類の方向付けされたグラフ、たとえば非周期的なグラフまたは完全に接続されたグラフによって表すことのできるトポロジで自動的に提供され得るが、この場合、隣接するノード間の変更が双方向に同期される。
【００７２】
自動的かつ動的にデータを提供するための方策も、データベースデータの提供には限定されない。この方策は、ＰＬ／ＳＱＬパッケージなどのソフトウェアおよびコンピュータコードを提供するのに用いられてもよい。データベースサーバは、コードを「コードダンプファイル」にエクスポートし、コードダンプファイルからコードをインポートするためにコードインポート／エクスポートユーティリティを提供する。コードを自動的に提供するために、たとえば、データベースサーバは、コードインポート／エクスポートユーティリティを呼出してリモートデータベースサーバからコードをエクスポートし、当該コードをローカルファイルシステムにおけるダンプファイルに記憶し、次いで、コードインポート／エクスポートユーティリティを呼出して、当該コードをローカルデータベースまたはコードリポジトリにインポートし得る。コードの自動的な提供は、リモートデータベースサーバ上で遠隔ジョブスケジューリングのために用いられてもよい。データベースサーバは、ジョブまたはタスクをリモートデータベースサーバに委託し、コードおよびデータを
自動的に提供することによって当該ジョブまたはタスクを実行するのに必要なコードおよび／またはデータを提供し得る。
【００７３】
他のファイルベースのデータベース提供の方策の使用
この発明の実施例は、データベースのコピーを作成しそれを提供する、データベースをインスタンス生成するための方策として移送可能なテーブルスペースを用いて説明された。しかしながら、この発明はそのようには限定されない。この発明の実施例はこの目的のために他の技術を用い得る。
【００７４】
たとえば、データベースは、コマンド生成方策を用いてインスタンス生成され得る。コマンド生成方策の下、データベースサーバは、データベースオブジェクト（すなわち、メタデータ）の記述と、データベースオブジェクトにデータを挿入するデータベース言語コマンドとを含むファイルを作成する。このようなファイルはこの明細書中においてはインポート／エクスポートファイルと称される。インポート／エクスポートファイルは、たとえば、データベースオブジェクトを記述するメタデータとデータベースオブジェクトに行を挿入するＳＱＬ挿入コマンドとを作成することによって、データベースにおける選択されたデータベースオブジェクトのためにデータベースデータをエクスポートするよう設計されたエクスポートユーティリティを用いて作成され得る。データベースデータを提供するために、データベースサーバは、データベースオブジェクトの記述を読出すことによってデータをインポートするよう設計されたインポートユーティリティを実行し、これにより、データベースオブジェクトが（必要な場合にはこれらを規定する）目標のデータベースにおいて規定されることを確実にし、ＳＱＬ挿入コマンドを実行する。ＳＱＬ挿入コマンドを実行すると、データが行ごとに目標のデータベースに挿入されるが、これは、データのしきい値量よりも多く挿入される場合、テーブルスペースをアタッチするよりも多くの作業を必要とする。
【００７５】
この方策は、さまざまな環境下で目標のデータベースを提供するのに有利であり得る。ある環境では、目標のデータベースが、提供すべきデータについてデータベースオブジェクトをすでに規定している場合があるが、このために、データベースオブジェクトの定義を作成するというオーバーヘッドが引起されず、提供すべきデータの量が少なくなるので、行ごとに挿入されるオーバーヘッドは重要ではなくなる。
【００７６】
別の環境では、テーブルスペース方策の下では、インスタンス生成すべき１組のデータベースオブジェクトがインスタンス生成されず、他のデータベースオブジェクトをインスタンス生成する必要がなくなる場合がある。テーブルスペースは、特定の組のデータベースオブジェクトについてのデータを記憶するのに用いられる。テーブルスペースのいくつかの実現例においては、テーブルスペースを用いてデータベースオブジェクトをインスタンス生成する場合、当該組におけるデータベースオブジェクトはすべてインスタンス生成されなければならない。しかしながら、コマンド生成方策の下では、当該組におけるかまたは他のテーブルスペースからのデータベースオブジェクトの選択されたサブセットだけのためにインポート／エクスポートファイルを作成することができ、これにより、それらのデータを記憶するのにどのテーブルスペースが用いられようと、選択されたデータベースオブジェクトだけをインスタンス生成する能力が可能となる。こうして、コマンド生成方策は、インスタンス生成すべきデータベースオブジェクトの組合せを形成する際になお一層の柔軟性を提供し得る。
【００７７】
データベースのコピーを動的にインスタンス生成するために、データベースサーバがエクスポートユーティリティを実行して、インポート／エクスポートファイルを作成し、これが、次に、データベースサーバファイル移送機構またはメッセージシステム、たとえばデータベースサーバファイル移送機構１３０またはルールベースのメッセージシステム１
４０を用いてデータベースサーバ間で移送される。代替的には、インポート／エクスポートファイルは、いずれ後に必要なときに移送かつ提供されるようライブラリの一部として記憶され得る。
【００７８】
データベースをインスタンス生成する別の方策は、リカバリマネージャ方策である。リカバリマネージャ方策は、リカバリマネージャの機能を用いてデータベースをインスタンス生成する。リカバリマネージャを用いることにより、すべてのデータベースファイル（たとえば、テーブルスペースファイル）のバックアップファイルが作成され、バックアップファイルからデータベースファイルが復元される。データベースファイルを復元すると、バックアップファイルの作成時にデータベースのコピーがインスタンス生成される。データベースの変更がアーカイブログにおいて達成される場合、当該アーカイブログを用いて変更を復元し得る。実際には、データベースは、アーカイブログによってカバーされる特定の時点に復元され得る。
【００７９】
ソースデータベースは、リカバリマネージャを用いてバックアップファイルを作成し、かつバックアップおよびリカバリマネージャを用いて別の位置に目標のデータベースを作成することによってインスタンス生成され得る。バックアップが、目標のデータベースの作成前にある期間にわたって記憶され、その期間中にソースデータベースが変化する場合、ソースデータベースのアーカイブログを用いて、ある特定の時点において目標のデータベースを最新にするかまたはソースデータベースと一致させ得る。実際には、ソースデータベースのアーカイブログを用いて複数のインスタンスを更新してこれらを所与の時点で一致させることによって、異なる時間に１組のバックアップファイルから複数のインスタンスをインスタンス生成することは、より効率的であり得る。
【００８０】
ハードウェア外観
図６は、この発明の実施例が実現され得るコンピュータシステム６００を示すブロック図である。コンピュータシステム６００は、情報を伝達するためのバス６０２または他の通信機構と、バス６０２に結合され情報を処理するためのプロセッサ６０４とを含む。コンピュータシステム６００はまた、バス６０２に結合されてプロセッサ６０４が実行する命令および情報を格納するためのメインメモリ６０６、たとえばランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置を含む。メインメモリ６０６はまた、プロセッサ６０４が実行する命令の実行中に、一時的数値変数または他の中間情報を格納するために使用可能である。コンピュータシステム６００は、バス６０２に結合されてプロセッサ６０４に対する静的情報および命令を格納するための読出専用メモリ（ＲＯＭ）６０８または他の静的記憶装置をさらに含む。磁気ディスクまたは光学ディスク等の記憶装置６１０が設けられてバス６０２に結合され、情報および命令を格納する。
【００８１】
コンピュータシステム６００は、コンピュータユーザに情報を表示するためのディスプレイ６１２、たとえば陰極線管（ＣＲＴ）に、バス６０２を介して結合され得る。英数字キーおよび他のキーを含む入力装置６１４がバス６０２に結合されて、情報およびコマンド選択をプロセッサ６０４に伝達する。別の種類のユーザ入力装置には、方向情報およびコマンド選択をプロセッサ６０４に伝達してディスプレイ６１２上のカーソル動作を制御するためのカーソル制御機器６１６、たとえばマウス、トラックボールまたはカーソル方向キーがある。この入力装置は、典型的には、２つの軸、すなわち第１の軸（たとえば、ｘ）および第２の軸（たとえば、ｙ）において２自由度を有し、これによって入力装置は平面上で位置を特定できる。
【００８２】
この発明は、この明細書に記載された技術を実現するためにコンピュータシステム６００を用いることに関する。この発明の一実施例によると、これらの技術は、メインメモリ６０６に含まれる１つ以上の命令からなる１つ以上のシーケンスをプロセッサ６０４が実
行することに応答して、コンピュータシステム６００により実行される。このような命令は、別のコンピュータ読取可能な媒体、たとえば記憶装置６１０等からメインメモリ６０６内に読出すことができる。メインメモリ６０６に含まれる命令のシーケンスを実行することにより、プロセッサ６０４はこの明細書に記載された処理ステップを実行する。代替的な実施例では、ソフトウェア命令の代わりに、またはソフトウェア命令と組合せてハードワイヤード回路を用いて、この発明を実現し得る。したがって、この発明の実施例は、ハードウェア回路およびソフトウェアのどのような特定の組合せにも限定されない。
【００８３】
この明細書で用いられる「コンピュータ読取可能な媒体」という用語は、プロセッサ６０４に対する実行のために命令を提供することにかかわるいかなる媒体をも指す。このような媒体は、不揮発性媒体、揮発性媒体および伝送媒体を含む多くの形態をとり得るが、これらに限定されない。不揮発性媒体には、たとえば記憶装置６１０等の光学または磁気ディスクが含まれる。揮発性媒体には、メインメモリ６０６等の動的メモリが含まれる。伝送媒体には、同軸ケーブル、銅線および光ファイバが含まれ、バス６０２を有するワイヤが含まれる。伝送媒体はまた、電波および赤外線データ通信中に生成されるような音波または光波の形をとり得る。
【００８４】
コンピュータ読取可能な媒体の一般的な形態には、たとえばフロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他のどのような磁気媒体、ＣＤ−ＲＯＭ、他のどのような光学媒体、パンチカード、紙テープ、孔パターンを有する他のどのような物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、他のどのようなメモリチップもしくはカートリッジ、以下に述べる搬送波、またはコンピュータが読出すことのできる他のどのような媒体も含まれる。
【００８５】
プロセッサ６０４に対する実行のために１つ以上の命令からなる１つ以上のシーケンスを伝える際に、コンピュータ読取可能な媒体のさまざまな形態が関与し得る。たとえば、命令は、最初に遠隔コンピュータの磁気ディスクで伝えられ得る。遠隔コンピュータはそれらの命令をその動的メモリにロードして、モデムを用いて電話回線経由で送信することができる。コンピュータシステム６００に対してローカルなモデムが電話回線上のデータを受信して、赤外線送信機を用いてそのデータを赤外線信号に変換し得る。赤外線信号によって搬送されたデータは赤外線検出器によって受信され得、適切な回路がそのデータをバス６０２上に出力することができる。バス６０２はデータをメインメモリ６０６に搬送し、そこからプロセッサ６０４が命令を取り出して実行する。メインメモリ６０６が受信した命令は、プロセッサ６０４による実行前または実行後に、記憶装置６１０に状況に応じて格納され得る。
【００８６】
コンピュータシステム６００はまた、バス６０２に結合された通信インターフェイス６１８を含む。通信インターフェイス６１８は、ローカルネットワーク６２２に接続されたネットワークリンク６２０に対する双方向のデータ通信結合をもたらす。たとえば、通信インターフェイス６１８は、対応する種類の電話回線に対するデータ通信接続を設けるための統合サービスデジタル網（ＩＳＤＮ）カードまたはモデムであり得る。別の例として、通信インターフェイス６１８は、互換性のあるＬＡＮにデータ通信接続を設けるためのローカルエリアネットワーク（ＬＡＮ）カードであり得る。無線リンクもまた実現することができる。このようないずれの実現例においても、通信インターフェイス６１８は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気的、電磁的または光学的信号を送受信する。
【００８７】
ネットワークリンク６２０は、典型的には、１つ以上のネットワーク経由で他のデータ装置に対するデータ通信をもたらす。たとえば、ネットワークリンク６２０は、ローカルネットワーク６２２経由でホストコンピュータ６２４、またはインターネットサービスプ
ロバイダ（ＩＳＰ）６２６が作動させるデータ装置に接続をもたらし得る。さらに、ＩＳＰ６２６は、現在一般に「インターネット」６２８と称されるワールドワイドパケットデータ通信網を介してデータ通信サービスを提供する。ローカルネットワーク６２２およびインターネット６２８はともに、デジタルデータストリームを搬送する電気的、電磁的または光学的信号を用いる。さまざまなネットワークを経由する信号と、コンピュータシステム６００との間でデジタルデータをやり取りする通信インターフェイス６１８を経由する、ネットワークリンク６２０上の信号とは、情報を運ぶ搬送波の例示的形態である。
【００８８】
コンピュータシステム６００は、ネットワーク、ネットワークリンク６２０および通信インターフェイス６１８を介してメッセージを送信して、プログラムコードを含むデータを受信し得る。インターネットの例では、サーバ６３０は、インターネット６２８、ＩＳＰ６２６、ローカルネットワーク６２２および通信インターフェイス６１８経由でアプリケーションプログラムに対して要求されたコードを伝送し得る。
【００８９】
受信されたコードは、受信されたときにプロセッサ６０４によって実行され得、および／または後の実行のために記憶装置６１０もしくは他の不揮発性記憶装置に格納され得る。このようにして、コンピュータシステム６００は搬送波の形でアプリケーションコードを得ることができる。
【００９０】
上述の明細書においては、この発明の実施例は、実現例ごとに異なり得る多数の特定の詳細に関連して記載されてきた。したがって、この発明が何であるか、およびこの発明を目指して出願人が何を意図しているかを独占的に示す唯一のものは、この出願から発生し、以後の補正を含めてこのような請求項が発生する特定の形をとる請求項の組である。このような請求項に含まれる用語についてこの明細書中に明示された定義はいずれも、当該請求項で用いられるこのような用語の意味を規定する。したがって、請求項に明確に列挙されていない限定、要素、特性、特徴、利点または属性は、このような請求項の範囲を決して限定すべきではない。したがって、明細書および図面は、限定的な意味ではなく例示的な意味で捉えられるべきである。
【図面の簡単な説明】
【００９１】
【図１】この発明の実施例が実現され得る分散データベースシステムを示すブロック図である。
【図２】この発明の実施例に従ってテーブルスペースを自動的かつ動的に提供するのに用いられる手続きのブロック図である。
【図３】この発明の実施例に従ってテーブルスペースを自動的かつ動的に提供するためのプロセスを示すフローチャートである。
【図４】この発明の実施例に従って自動的かつ動的に提供され得るテーブルスペースを同期させるための機構を示すブロック図である。
【図５】この発明の実施例に従ったテーブルスペースおよびテーブルスペース同期機構を自動的かつ動的に提供するためのフローチャートである。
【図６】この発明の実施例を実現するのに用いられ得るコンピュータシステムを示すブロック図である。
【図１】
2007502464.tif 000003
【図２】
2007502464.tif 000004
【図３】
2007502464.tif 000005
【図４】
2007502464.tif 000006
【図５】
2007502464.tif 000007
【図６】
2007502464.tif 000008
【手続補正書】
【提出日】平成17年10月6日(2005.10.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
分散データベースシステムにおいてデータを自動的に提供するための方法であって、
前記分散データベースシステムが、あるデータベースのために付加的なリソースを提供することを自動的に決定するステップを含み、
前記データベースは少なくともテーブルスペースを含み、
前記分散データベースシステムはデータベースサーバを含み、
あるデータベースのために付加的なリソースを提供することを自動的に決定することに応答して、前記分散データベースシステムが、
前記データベースサーバが第１のファイルシステムから第２のファイルシステムに前記テーブルスペースを移送させるステップと、
前記テーブルスペースを前記第２のファイルシステムに移送した後、前記データベースサーバが、前記データベースサーバによって管理されるローカルデータベースに前記テーブルスペースをインポートするステップとを含む動作を自動的に実行するステップを含む、方法。
【請求項２】
データベースサーバが前記テーブルスペースを移送させる前記ステップと、前記データベースサーバが前記テーブルスペースをインポートする前記ステップとはともに、ルーチンの呼出に応答して実行される、請求項１に記載の方法。
【請求項３】
前記ルーチンは、データベース言語に準拠しデータベースサーバによって実行され得るコードで書込まれる、請求項２に記載の方法。
【請求項４】
インポートする前記ステップは、前記テーブルスペースを前記ローカルデータベースにアタッチするステップを含む、請求項１に記載の方法。
【請求項５】
前記テーブルスペースは、前記データベースサーバが前記テーブルスペースを移送させる前記ステップの実行前および実行中に別のデータベースにアタッチされる、請求項１に記載の方法。
【請求項６】
前記テーブルスペースは、前記データベースサーバが前記テーブルスペースを移送させる前記ステップの実行前および実行中にオフラインである、請求項１に記載の方法。
【請求項７】
前記テーブルスペースをインポートする前記ステップは、前記テーブルスペースのコピーをアタッチするステップを含み、
前記コピーは前記テーブルスペースとは異なり、
前記データベースサーバが、前記テーブルスペースになされた変更を前記コピーに適用する同期機構を提供する、請求項１に記載の方法。
【請求項８】
前記同期機構は、前記コピーになされた変更を前記テーブルスペースに適用する、請求項７に記載の方法。
【請求項９】
前記ステップはさらに、
前記同期機構が、ルールエンジンによる１組のルールの評価結果に基づいて、前記テーブルスペースへのどの変更を前記コピーに伝搬するかを決定するステップを含み、
同期機構を提供する前記ステップは、前記１組のルールを構成するステップを含む、請求項７に記載の方法。
【請求項１０】
ファイルのコピーを提供するデータベースサーバのための方法であって、
第１のデータベースサーバが、第１のオペレーティングシステムの第１のファイルシステムに記憶されたファイルのコピーを特定のオペレーティングシステムの特定のファイルシステムに移送する要求を受信するステップと、
前記第１のデータベースサーバが、前記第１のデータベースサーバと第２のデータベースサーバとの間における前記ファイルのコピーの伝送を引起すステップと、
前記コピーを前記特定のファイルシステムに記憶するステップとを含む、方法。
【請求項１１】
前記第１のファイルシステムは、前記第１のデータベースサーバに対してローカルであり、前記第２のデータベースサーバに対してリモートであり、
前記特定のファイルシステムは、前記第２のデータベースサーバに対してローカルであり、前記第１のデータベースサーバに対してリモートであり、
記憶する前記ステップは前記第２のデータベースサーバによって実行される、請求項１０に記載の方法。
【請求項１２】
前記伝送を引起す前記ステップは、前記第１のデータベースサーバと前記第２のデータベースサーバとの間でメッセージを伝搬するメッセージシステムを介してバイナリファイルとして前記コピーの伝送を引起すステップを含む、請求項１１に記載の方法。
【請求項１３】
前記第１のファイルシステムは、前記第２のデータベースサーバに対してローカルであり、前記第１のデータベースサーバに対してリモートであり、
前記特定のファイルシステムは、前記第１のデータベースサーバに対してローカルであり、前記第２のデータベースサーバに対してリモートであり、
記憶する前記ステップは前記第１のデータベースサーバによって実行される、請求項１０に記載の方法。
【請求項１４】
前記第１のファイルシステムは前記第１のデータベースサーバに対してローカルであり、前記特定のファイルシステムは前記第１のデータベースサーバに対してローカルである、請求項１０に記載の方法。
【請求項１５】
要求を受信するステップは、前記ファイルを識別する値をパラメータとして伝えるルー
チンの呼出を含む、請求項１０に記載の方法。
【請求項１６】
要求を受信するステップはインターフェイスを介してコマンドを受信するステップを含み、
前記データベースサーバは、前記インターフェイスを介して受信される、データベース言語に準拠するコマンドを実行し、
前記コマンドは前記ファイルを識別する、請求項１０に記載の方法。
【請求項１７】
分散データベースシステムにおいてデータベースデータを自動的にインスタンス生成するための方法であって、
前記分散データベースシステムが、あるデータベースのために付加的なリソースを提供することを自動的に決定するステップを含み、
１組の１つ以上のファイルは前記あるデータベースについてのデータを記憶し、
あるデータベースのために付加的なリソースを提供することを自動的に決定することに応答して、前記分散データベースシステムが、
データベースサーバが第１のファイルシステムから第２のファイルシステムに１組の１つ以上のファイルを転送させるステップと、
前記１組の１つ以上のファイルを前記第２のファイルシステムに移送した後、前記データベースサーバが、前記データベースサーバによって管理されるデータベースとして前記データベースを提供するステップとを含む動作を自動的に実行するステップを含む、方法。
【請求項１８】
前記１組の１つ以上のファイルはテーブルスペースであり、
提供する前記ステップは、前記テーブルスペースを前記データベースにアタッチするステップを含む、請求項１８に記載の方法。
【請求項１９】
前記１組の１つ以上のファイルは、データベースオブジェクトを記述するメタデータおよびデータを前記データベースオブジェクトに挿入するためのコマンドを含み、提供する前記ステップは、コマンドを実行することによって前記データを前記データベースにインポートするステップを含む、請求項１８に記載の方法。
【請求項２０】
前記１組の１つ以上のファイルは、リカバリマネージャによって作成されるバックアップファイルを含み、提供する前記ステップは、前記リカバリマネージャに前記バックアップファイルから前記データベースを作成させるステップを含む、請求項１８に記載の方法。
【請求項２１】
アーカイブログは、前記バックアップファイルを作成した後になされた前記データベースへの変更を記録するデータを記憶し、提供する前記ステップはさらに、前記アーカイブログに記録された変更を反映するよう前記データベースを変更するステップを含む、請求項２１に記載の方法。
【請求項２２】
１つ以上のプロセッサによって実行されると、請求項１に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２３】
１つ以上のプロセッサによって実行されると、請求項２に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２４】
１つ以上のプロセッサによって実行されると、請求項３に記載の方法を前記１つ以上の
プロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２５】
１つ以上のプロセッサによって実行されると、請求項４に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２６】
１つ以上のプロセッサによって実行されると、請求項５に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２７】
１つ以上のプロセッサによって実行されると、請求項６に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２８】
１つ以上のプロセッサによって実行されると、請求項７に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項２９】
１つ以上のプロセッサによって実行されると、請求項８に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３０】
１つ以上のプロセッサによって実行されると、請求項９に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３１】
１つ以上のプロセッサによって実行されると、請求項１０に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３２】
１つ以上のプロセッサによって実行されると、請求項１１に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３３】
１つ以上のプロセッサによって実行されると、請求項１２に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３４】
１つ以上のプロセッサによって実行されると、請求項１３に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３５】
１つ以上のプロセッサによって実行されると、請求項１４に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３６】
１つ以上のプロセッサによって実行されると、請求項１５に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３７】
１つ以上のプロセッサによって実行されると、請求項１６に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３８】
１つ以上のプロセッサによって実行されると、請求項１７に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項３９】
１つ以上のプロセッサによって実行されると、請求項１８に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項４０】
１つ以上のプロセッサによって実行されると、請求項１９に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項４１】
１つ以上のプロセッサによって実行されると、請求項２０に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【請求項４２】
１つ以上のプロセッサによって実行されると、請求項２１に記載の方法を前記１つ以上のプロセッサに実行させる命令の１つ以上のシーケンスを搬送するコンピュータ読取可能な媒体。
【国際調査報告】
2007502464.tif 000009
2007502464.tif 000010
2007502464.tif 000011