(57)【特許請求の範囲】
【請求項１】
データ・アイテムとエレメントを含むマークアップ言語の文書ファイルを、データベース・コマンド・ステートメントによりデータベースの内容を変更するためのアプリケーション・プログラミング・インターフェースを有する、コンピュータの前記データベースにロードする方法であって、
（ａ）フォーマット記述に従って、後のエレメントが解析されるのを待たずに、マークアップ言語データ・ファイルを、１度に次の処理で利用可能である１つのエレメントに解析するステップと、
（ｂ）前記エレメントが利用可能であることに応答して、前記解析するステップと同時に１つ以上のデータベース・コマンド・ステートメントを生成するステップと、
（ｃ）前記生成されたデータベース・コマンド・ステートメントの各々をその生成によりデータベース・コマンド・ステートメント・キューに格納するステップと、
（ｄ）前記マークアップ言語データ・ファイルからデータベースにデータをロードするために、前記データ・ファイルを解析するステップと同時にデータベースを更新するように、前記キューに格納されたデータベース・コマンド・ステートメントを実行するステップと
を含む、方法。
【請求項２】
前記ステップ（ａ）は、ＸＭＬ（Extensible Markup Language）ファイルを解析することを含む、請求項１記載の方法。
【請求項３】
前記ステップ（ａ）は、ＸＭＬのシンプル・アプリケーション・プログラミング・インターフェース（ＳＡＸ）のメソッドを使用して、ＸＭＬファイルを解析することを含む、請求項１記載の方法。
【請求項４】
前記ステップ（ｂ）は、ＳＱＬデータベース・アプリケーション・プログラミング・インターフェース・コマンド・ステートメントを生成することを含む、請求項１記載の方法。
【請求項５】
前記ステップ（ｄ）は、ＳＱＬデータベース・アプリケーション・プログラミング・インターフェース・コマンド・ステートメントを実行することを含む、請求項１記載の方法。
【請求項６】
データ・アイテムとエレメントを含むマークアップ言語の文書ファイルを、データベース・コマンド・ステートメントによりデータベースの内容を変更するアプリケーション・プログラミング・インターフェースを有する、コンピュータ・システムの前記データベースにロードするための、プログラム・コードが格納されたコンピュータ可読媒体であって、
（ａ）フォーマット記述に従って、後のエレメントが解析されるのを待たずに、マークアップ言語データ・ファイルを、１度に次の処理で利用可能である１つのエレメントに解析するステップと、
（ｂ）前記エレメントが利用可能であることに応答して、前記解析するステップと同時に１つ以上のデータベース・コマンド・ステートメントを生成するステップと、
（ｃ）前記生成されたデータベース・コマンド・ステートメントの各々をその生成によりデータベース・コマンド・ステートメント・キューに格納するステップと、
（ｄ）前記マークアップ言語データ・ファイルからデータベースにデータをロードするために、前記データ・ファイルを解析するステップと同時にデータベースを更新するように、前記キューに格納されたデータベース・コマンド・ステートメントを実行するステップと
をコンピュータ・システムに実行させるプログラム・コードを含む、コンピュータ可読媒体。
【請求項７】
前記ステップ（ａ）を実行する前記プログラム・コードは、ＸＭＬファイルを解析するプログラム・コードを含む、請求項６記載のコンピュータ可読媒体。
【請求項８】
前記ステップ（ａ）を実行する前記プログラム・コードは、ＸＭＬのシンプル・アプリケーション・プログラミング・インターフェース（ＳＡＸ）のメソッドを使用して、ＸＭＬファイルを解析するプログラム・コードを含む、請求項７記載のコンピュータ可読媒体。
【請求項９】
前記ステップ（ｂ）を実行する前記プログラム・コードは、ＳＱＬデータベース・アプリケーション・プログラミング・インターフェース・コマンド・ステートメントを生成するプログラム・コードを含む、請求項６記載のコンピュータ可読媒体。
【請求項１０】
前記ステップ（ｄ）を実行する前記プログラム・コードは、ＳＱＬデータベース・アプリケーション・プログラミング・インターフェース・コマンド・ステートメントを実行するプログラム・コードを含む、請求項６記載のコンピュータ可読媒体。
【請求項１１】
データ・アイテムとエレメントを含むマークアップ言語の文書ファイルを、データベース・コマンド・ステートメントによりデータベースの内容を変更するためのアプリケーション・プログラミング・インターフェースを有する、コンピュータの前記データベースにロードするシステムであって、
（ａ）後のエレメントが解析されるのを待たずに、マークアップ言語データ・ファイルを、次の処理で利用可能であるエレメントに、エレメント・ベースで解析するために適応され、オペレータ・エクステンションを選択し操作するために適応されるマークアップ言語データ・ファイル・ローダと、
（ｂ）前記ローダから利用可能である場合に各々のエレメントを評価し、前記解析と同時に前記データベース・アプリケーション・プログラミング・インターフェース・コマンド・ステートメントを生成するために適応される、前記ローダによって操作可能な少なくとも１つのオペレータ・エクステンションと、
（ｃ）前記ロードおよび前記コマンド生成と同時にデータベースの内容を変更するように、前記生成されたデータベース・アプリケーション・プログラミング・インターフェース・コマンド・ステートメントを実行するように適応されたデータベース・アップデータと
を含む、システム。
【請求項１２】
前記ローダは、ＸＭＬデータ・ファイルと文書を解析するように適応される、請求項１１記載のシステム。
【請求項１３】
前記オペレータ・エクステンションは、拡張可能なオブジェクト・クラスを含む、請求項１１記載のシステム。
【請求項１４】
前記オペレータ・エクステンションは、ＳＱＬデータベース・アプリケーション・プログラミング・インターフェース・コマンド・ステートメントを生成するように適応される、請求項１１記載のシステム。
【請求項１５】
前記データベース・アップデータは、ＳＱＬデータベース・アプリケーション・プログラミング・インターフェース・コマンド・ステートメントを実行することによりデータベースを更新するように適応される、請求項１１記載のシステム。
【請求項１６】
コンピュータ・ネットワークからマークアップ言語ファイルを受信するファイル・レセプタを更に含む、請求項１１記載のシステム。
【請求項１７】
前記ファイル・レセプタは、ファイル転送プロトコル（ＦＴＰ）を介して、コンピュータ・ネットワークからマークアップ言語ファイルを受信するように適応される、請求項１６記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースをロードするためのデータ変換と処理に関し、特にハイパーテキスト・マークアップ言語（ＨＴＭＬ）や、ＸＭＬ（Extensible Markup Language）などのマークアップ言語の文書ファイルに含まれるテキストのロードに関する。
【０００２】
【従来の技術】
データや文書を記述するためのマークアップ言語、特にハイパーテキスト・マークアップ言語（ＨＴＭＬ）については周知の通りである。また、ＸＭＬも知られている。これらの言語の特性は多くが共通である。マークアップ言語文書は、文書内の情報を囲むタグを使用する傾向がある。例えば、文書のタイトルは、文書のタイトルの実際のテキストを＜ＴＩＴＬＥ＞というタグと＜／ＴＩＴＬＥ＞などのタイトル用の閉じるタグで囲むことができる。
【０００３】
ＨＴＭＬのようなハイパーテキスト文書は、基本的にはＷｅｂブラウザのように、文書の表示やその文書の視覚的表現を制御するために用いられる。その場合、ＨＴＭＬ規格に定義されているタグの多くは、テキスト、テーブル、ボタン、グラフィックスなど、文書内のデータや情報の表示の視覚的外観を制御する。
【０００４】
ＸＭＬはマークアップ言語であるが、基本的には文書の視覚的表示を目的としたものではなく、ピア・コンピュータ間でデータ通信を行うためのものである。例えば、ＸＭＬ文書はあるサーバ・コンピュータから別のサーバ・コンピュータにカタログ情報を転送し、受信側サーバ・コンピュータがそのデータをデータベースにロードできるようにするために使用できる。ＸＭＬ文書は表示できるが、ＸＭＬ言語の主な特性は、文書に含まれるデータの表示の標準化ではなく、含まれるデータの解釈の標準化を可能にすることである。
【０００５】
ＸＭＬは柔軟性の高い方法または定義であり、ＷＷＷなどのコンピュータ・ネットワークとイントラネットの両方で共通の情報フォーマットを共有することを可能にする。データを記述する標準的な方法であるため、ユーザやコンピュータは、インテリジェント"エージェント"やプログラムを他のコンピュータに送り、他のコンピュータからデータを取得することができる。例えば、ユーザのＷｅｂブラウザやアプリケーション・サーバのシステムから、インテリジェント・エージェントを複数のデータベース・サーバに転送し、サーバから情報を集め、またそれを返すことができる。ＸＭＬは、ＸＭＬ文書内のデータをインテリジェント・エージェントが解釈するための方法を与えるので、インテリジェント・エージェントのユーザによって指定されたパラメータに従ってその機能を実行することができる。
【０００６】
ＸＭＬが"拡張可能"であるのは、マークアップ・シンボル、即ち"タグ"が所定のセットに限定されず、文書型定義（ＤＴＤ：Document Type Definition）と呼ばれる関連ファイルまたは文書を通して自体を定義できるからである。文書のデータ・アイテムを追加する場合、データ・アイテムをＸＭＬファイルのクラスに対応した適当なＤＴＤに追加することによって定義することができ、このようにして、ＸＭＬファイルのクラスの定義を"拡張"する。
【０００７】
ＸＭＬは、実際にはＳＧＭＬ（Standard Generalized Markup Language）規格の縮小版である。ＸＭＬ文書の特定のクラスに関連付けられたＤＴＤファイルは、ＸＭＬリーダやＸＭＬコンパイラに対して、ＸＭＬ文書に含まれるデータの解釈方法を記述する。
【０００８】
例えば、ＤＴＤファイルは、コンピュータ製品のカタログ・ページ一覧であるＸＭＬ文書（または文書のクラス）の内容を定義することができる。その場合ＤＴＤ文書は、"コンピュータ仕様"というエレメントを記述することができる。このエレメント内には、＜ＭＯＤＥＬ＞と＜／ＭＯＤＥＬ＞、＜ＰＡＲＴ＿ＮＵＭＢＥＲ＞と＜／ＰＡＲＴ＿ＮＵＭＢＥＲ＞、＜ＤＥＳＣＲＩＰＴＩＯＮ＞と＜／ＤＥＳＣＲＩＰＴＩＯＮ＞、＜ＰＲＯＣＥＳＳＯＲ＞と＜／ＰＲＯＣＥＳＳＯＲ＞、＜ＭＥＭＯＲＹ＞と＜／ＭＥＭＯＲＹ＞、＜ＯＰＥＲＡＴＩＮＧ＿ＳＹＳＴＥＭ＞と＜／ＯＰＥＲＡＴＩＮＧ＿ＳＹＳＴＥＭ＞などのタグで囲まれたいくつかのデータ・アイテムを置くことができる。このように、ＤＴＤ文書はＸＭＬ文書の特定のクラスに対するマークアップ・タグや、シンボルにより囲まれたデータ・アイテムのセットやグループを定義し、他のプログラムがそのクラスのＸＭＬ文書からデータを解釈し抽出するための"キー"として機能する。
【０００９】
このようにＸＭＬファイルを表示し、カタログ・ページのように、またＤＴＤ定義に従って、ＸＭＬファイルの内容を解釈しビジュアルに表示するため、ＸＭＬリーダを使用することができる。ただしＸＭＬ文書は、ＨＴＭＬ文書とは異なり、データの使用度の高い用途やデータ通信に関連した目的のために使用することもできる。例えば、文書内のデータを解析及び解釈するため、またデータを別の文書やデータベースにロードするため、ＸＭＬコンパイラを使用することができる。また前述のように、インテリジェント・エージェント・プログラムをコンピュータ・ネットワーク上の複数のサーバ・コンピュータに配信し、特定のプロセッサ構成、メモリ構成を持つコンピュータなど、特定のデータを含むＸＭＬ文書を検索することができる。その場合、インテリジェント・エージェントは、それがあった元のＸＭＬ文書にレポートを返すことができる。ユーザはこれにより、インテリジェント・エージェントを配信し、ユーザが購入するために探しているコンピュータを記述したＸＭＬ文書を集めてコンパイルすることができる。
【００１０】
ＸＭＬの一般的用途には、コンピュータからコンピュータへ、またはデータベースからデータベースへデータを転送するための共通データ・フォーマットとしての利用がある。
【００１１】
現在のＸＭＬには、性能、使いやすさ、拡張性など、いくつか考慮すべき点がある。通常、性能は使いやすさに反比例し、拡張性は選択肢に含まれないことが多い。ＸＭＬ文書からデータベースへデータをロードするとき、現在利用できるシステムでは通常、次のような処理が行われる。
ａ）プログラムで使用するために、ＸＭＬファイルに含まれる全てのデータをシステム・メモリにロードするＸＭＬファイルの解析。
ｂ）ＸＭＬファイルからデータベースへデータをロードするためにデータベースに対して実行される、ＳＱＬステートメントなどのデータベース・コマンドの生成。
ｃ）データベースやデータベース・サーバとの通信或いはセッションの確立。ｄ）データのロードを実行するための適当なデータベース・コマンドの発行。
【００１２】
図１に、ＸＭＬ文書をデータベースにロードする周知のプロセスを示す。まず、ＸＭＬ文書の全体がシステム・メモリ２にロードされる（１）。いくつかのＸＭＬ文書はかなり大きく、複数の文書が１台のコンピュータで同時にロードされる場合、大量のシステム・メモリ・リソースが要求されることがある。次にＤＴＤファイルに従って、ＸＭＬファイル全体の特定のエレメントとデータ・アイテムが解析される（３）。これもまた、ＸＭＬファイルが非常に大きくなることがあるため、かなりのシステム・メモリ・リソースを消費する傾向がある。このステップで通常用いられる解析技術は、"ＤＯＭ"と呼ばれる。ＤＯＭは、ＸＭＬファイル全体をメモリにロードし、完了するまでそれを処理するプロセスである。
【００１３】
次に、ＸＭＬファイルからデータ・アイテムやエレメントが解析された後、データベースへデータをロードするため、ＳＱＬコマンド（または他のデータベースＡＰＩコマンド）が生成される（４）。
【００１４】
最後に、ＸＭＬ文書からデータベースにデータをロードするために、ＳＱＬコマンドが実行される（５）。その後、解析されてデータベースにロードされるいかなるＸＭＬ文書も１度に１文書ずつ取得されて処理される（６）。
【００１５】
このように、一般に用いられるプロセスは、線形且つ段階的に実行されるため、かなりのシステム・メモリ・リソースを消費し、ＸＭＬ文書のロード、ＸＭＬ文書の解析、ＳＱＬコマンドの生成など、１度に実行されるタスクが１つだけであるため、プロセスは、本質的に遅い。更に、多くのデータベース・サーバは、実際にＸＭＬをロードするサーバに対してリモートであるため、ＳＱＬコマンドの実行にかなりの時間がかかることがある。従って、ＸＭＬ文書の内容はシステム・メモリに非常に長い時間存在する傾向があり、前のロードが完全に終了するまでは、別のＸＭＬデータ・ファイルのロードを開始するためにシステムを利用できない。
【００１６】
図２に、一般的なプロセスの線形処理の性質を示す。まず、ＸＭＬデータがシステム・メモリにロードされ（２０）、ＸＭＬのエレメントとデータ・アイテムが解析される（２１）。次に、データベースをロードするためＳＱＬコマンドが生成され（２２）実行される（２３）。この始めから終わりまでの期間、ＸＭＬファイルは全て、現在のＸＭＬファイルが処理されるまで待機する必要がある。従って、ＸＭＬファイルを処理してロードするために必要な時間（２４）は、図２に示した複数のステージ全てを合計した時間になる。
【００１７】
【発明が解決しようとする課題】
従って、システム・リソースを効率よく利用し、データ通信及びビジネス間のアプリケーション用のデータベースにＸＭＬファイルをロードする方法及びシステムが当分野で求められる。この方法及びシステムは、ＳＱＬなどのデータベースとの共通のインターフェースと互換性があり、またＸＭＬなどの共通のマークアップ言語とも互換性のあるものでなければならない。
【００１８】
【課題を解決するための手段】
ここで説明するＸＭＬデータ・ローダは、業界標準の最速ＸＭＬ解析技術を採用し、拡張可能なアーキテクチャを提供し、ロードされるＸＭＬ文書の種類毎に生成されるデータベース・コマンドを決定し、マルチスレッド及び分離プロセスを活用してＸＭＬを解析しデータベースを更新する。
【００１９】
この方法及びシステムは、オブジェクト指向プログラミング手法により、データベースにロードされるＸＭＬファイル毎に、ＸＭＬデータ・ローダの新しいインスタンスを作成する。従って、多くのＸＭＬデータ・ファイルを同時に処理してロードすることができ、所要システム・メモリを最小にして、システムの信頼性とメモリ管理を最大にして、ＸＭＬファイルの処理の開始からデータベースへのロードの終了までに必要な時間を短縮する。
【００２０】
【発明の実施の形態】
本発明の方法及びシステムは、プロセスのマルチスレッド及びオブジェクト・クラスへのプロセスの分離の両方を可能にするために、オブジェクト指向プログラミングの手法を採用している。これにより、現在の技術の性能が改良されるとともに、拡張性も改良される。
【００２１】
好適実施例に従い、ＩＢＭパーソナルコンピュータ、ＩＢＭ  ＲＳ−６０００コンピュータ、ＩＢＭメインフレームなどの任意の好適なアプリケーション・サーバ・コンピュータで実行される方法及びシステムのコードを開発するために、Ｊａｖａ（Ｒ）開発キットが用いられた。また好適実施例では、ＸＭＬ  Ｐａｒｓｅｒ  ｆｏｒ  ＳＡＸのＪａｖａ（Ｒ）アプリケーション・プログラミング・インターフェース（"ＡＰＩ"）が用いられる。ＳＡＸは、Sun Microsystemsのパーサ・モジュールである。"ＳＡＸ"は、ＸＭＬ文書全体をシステム・メモリにロードしてファイルを始めから終わりまで完全に処理するのではなく、ＸＭＬ文書を１度に１エレメントずつ解析する業界標準のメソッドである。後述するように、ＳＡＸパーサのこの機能により、当該方法及びシステムの分離とマルチスレッドのメリットを達成しやすくなる。
【００２２】
好適実施例でＸＭＬローダの対象となるデータベースは、ＩＢＭ  ＤＢ２バージョン７．０データベースである。また、好適実施例に従って、ＸＭＬファイルをコンピュータ・ネットワークを通してＸＭＬデータ・ローダに送るためにファイル転送プロトコル（"ＦＴＰ"）が用いられる。
【００２３】
ただし、当業者には明らかなように、他のプログラミング言語、パーサ技術、ＸＭＬファイル転送技術、及びデータベースＡＰＩも、本発明の趣旨から逸脱することなく採用することができる。
【００２４】
図３に、好適実施例のシステム構成を示す。これはＩＢＭパーソナル・コンピュータ、ＲＳ−６０００ワークステーション、ＩＢＭメインフレームなどのアプリケーション・サーバ・ハードウェア・プラットフォーム３１を含む。アプリケーション・サーバ３０は、好適にはキーボード、モニタ、マウスなどの一連のユーザ・インターフェース・デバイス３２を含む。
【００２５】
アプリケーション・サーバ３０はまた、ランダム・アクセス・メモリ（"ＲＡＭ"）、ハード・ドライブ・スペースなどのシステム・メモリ３００、及びファイル転送プロトコル（"ＦＴＰ"）３６を介してロードされるＸＭＬファイルを受信するためのコンピュータ・ネットワーク３４とのネットワーク・インターフェース・カード（"ＮＩＣ"）３３を備える。
【００２６】
アプリケーション・サーバ３０はまた、好適にはＷｉｎｄｏｗｓ（Ｒ）ＮＴ、Ｗｉｎｄｏｗｓ（Ｒ）２０００、ＩＢＭ  ＡＩＸ、ＯＳ２、その他の好適なマルチタスク、マルチスレッドのオペレーティング・システムなどのオペレーティング・システム３５を備える。好適実施例はＪａｖａ（Ｒ）を使用するため、オペレーティング・システムがＪａｖａ（Ｒ）モジュールの実行をサポートする限り、どのオペレーティング・システムを選択するかはあまり重要ではない。
【００２７】
またシステムは、Ｊａｖａ（Ｒ）インタープリタ３８同様、複数のＪａｖａ（Ｒ）アプレットやサーブレット３９を実行するため、ＴＣＰ／ＩＰプロトコル・スタックやＦＴＰ通信プログラムなどの必要な非ポータブル・アプリケーション・プログラム３７を備えることができる。
【００２８】
本発明の他のアーキテクチャや実施例は、後述するように、Ｊａｖａ（Ｒ）のいくつかのオブジェクトやクラスで実現される。
【００２９】
図４に、アプリケーション・サーバ・プラットフォームで実行されるＪａｖａ（Ｒ）ソフトウェアによって実装される処理の流れを示す。好適実施例では、ＦＴＰレセプタ４１を通してファイル転送プロトコルによりＸＭＬファイルが受信される。また、これらのファイルは、コンピュータ可読媒体或いは他の好適なネットワーク・ファイル転送機構を通してシステムにロードされることもできる。
【００３０】
ＳＡＸ  ＸＭＬパーサ４２のスレッドがインスタンス化され、最近受信されたＸＭＬファイルが処理されてＸＭＬエレメントが生成される。処理されるＸＭＬエレメント毎にオペレータ・クラス４４が呼び出される。
【００３１】
オペレータ・クラスは、登録されたエレメントの属性及びチャイルド・エレメントを格納するため用いられる。このクラスは、それが生成するＳＱＬステートメントのベクトルを返し、ＸＭＬデータに従ってデータベースを更新するために後で用いられる。
【００３２】
オペレータ・クラス４４は、１つ以上のオペレータ・プラグイン４５を持つことができる。プラグインは、ＤＴＤファイルに従って特定のＸＭＬ文書タイプのＸＭＬエレメント解析し、それらデータ・エレメントに対応する適当なデータベースＡＰＩコマンドを生成するためのコードを与える。例えば、ＸＭＬコンピュータ・パーツ・カタログ・ページのＳＱＬコマンドを生成するために、１つのオペレータ・プラグインを与えることができる。また、コンピュータ・ソフトウエア仕様のＳＱＬコマンドを生成するために別のオペレータ・プラグインを与えることができる。プラグインはそれぞれ、ＸＭＬ文書のＤＴＤに従って呼び出される。
【００３３】
オペレータ４４は、ＸＭＬパーサ４２からのＸＭＬエレメントの解析に応答して、データベースＡＰＩコマンド、好適にはＳＱＬコマンドを生成する。ＳＱＬコマンドで一杯のベクトルは、ＳＱＬコマンドを実行するＳＱＬプロセッサ・スレッド４７によって受信されるように、ＳＱＬキュー４６に置かれる。
【００３４】
ＳＱＬプロセッサ・スレッド４７は、他のコマンドをリアルタイムで実行する準備ができたとき、キューに置かれたＳＱＬコマンドを取得することができる。ＳＱＬプロセッサ・スレッド４７は、キューに置かれたＳＱＬコマンドを実行することによってデータベース４８を更新する。
【００３５】
この図からわかるように、本発明のメイン・ステージ、即ちオペレータ・クラスを持つＳＡＸ  ＸＭＬパーサ及びＳＱＬプロセッサは、ＳＱＬキュー４６によって分離されるので、非同期且つ互いに独立して動作することができる。これにより、処理の時間軸上でプロセスが分離され、自然な最高速度で処理を行うことができる。また、各プロセスは、下流のプロセスやスレッドがまだ完了していないときでも、完了するとすぐシステム・メモリなどの割当てられたシステム・リソースを開放することができる。
【００３６】
更に、ＳＡＸ  ＸＭＬパーサを採用することによって、ＸＭＬファイルで最初に見つかったエレメントがオペレータ４４によってすぐに受信される。オペレータ４４が最初のＳＱＬコマンドを生成し、ＳＱＬキュー４６に格納するとすぐに、コマンドはキューを通過し、ＳＱＬプロセッサ４７によって直ちに受信される。このように、本発明のプロセスは、ＳＱＬコマンドの生成が始まる前にファイル全体のＸＭＬ解析が完了する現行のプロセスとは異なり、システム内で同時に並列に実行される。
【００３７】
図５に、本発明に従ってデータベースへのＸＭＬファイルのロードの完了に伴う時間軸を示す。この図からわかるように、プロセスの多くは、並列に実行され、キューを介して互いに分離される。ＸＭＬの解析によるエレメントの生成（５１）によって、ＳＡＸメソッドによるプロセスの開始のほぼ直後にエレメントが生成される。従って、最初のエレメントが見つかって解析されたとき、ＳＱＬコマンド・ジェネレータが受信できる状態にある。次に、ＳＱＬの生成（５３）により、最初に実行されるＳＱＬコマンドが生成され、ＳＱＬコマンド・キューに格納される（５４）。このＳＱＬコマンドは、最初のエントリで空のキューを即時に通過し、待機中のＳＱＬ実行スレッドによって受信され、実装される（５５）。
【００３８】
このように、高度な並列性が実現され、ＸＭＬファイルの最初のエレメントの解析の始めから、データベースを更新するためのＳＱＬコマンドの実行の完了までの時間が最小になる。
【００３９】
本発明の方法及びシステムは、高速且つ拡張可能なプロセスを実現するものであり、以下のコンポーネントを持つ。
ａ）ＸＭＬファイルを解析し、どのオペレータ・エクステンションを呼び出すか決定して、適当なデータベース・コマンド・ステートメントを決定するように適応される、ローダ。
ｂ）適当なデータベース・コマンド・ステートメントを生成する、拡張可能なオブジェクト・クラス、Ｊａｖａ（Ｒ）クラスを含む、オペレータ。
ｃ）生成されたデータベース・コマンド・ステートメントを実行することにより、データベースを更新するように適応されるマルチスレッドのＪａｖａ（Ｒ）プログラムである、データベース・アップデータ。
【００４０】
前述のように、ＳＱＬデータベース・コマンド・ステートメントは、好適実施例ではＩＢＭ  ＤＢ２データベースを更新するように生成されるが、本発明には別のデータベースＡＰＩやデータベースも等しく採用することができる。
【００４１】
ローダは、これに付随するＤＴＤファイルに従って任意のＸＭＬファイルを解析することができる。使用する解析技術は、好適には、Sun MicrosystemsのＳＡＸ３など、オブジェクトとして使用できるＳＡＸプロセスである。これは、いかなる結果を生成する前にＸＭＬファイルの全体を解析するＤＯＭのプロセスとは異なり、１度にＸＭＬファイルの１つのエレメントを解析する。これにより、ＸＭＬファイルの全体が解析されるのを待ってからデータベース・コマンドの生成を開始するのではなく、個々のエレメントをオペレータによって即座に処理することができる。
【００４２】
ＸＭＬファイルからＸＭＬエレメントが読出されると、エレメントの全ての属性がメモリにあるハッシュテーブルに格納される。解析が終わると、プログラムは、ＸＭＬファイルから取得されたエレメントのタイプをもとに、どのオペレータ・エクステンションを呼び出すか決定することができる。ＳＱＬステートメントは、ＳＱＬキューに入力され、そこで、データベースを更新するために、データベース・アップデータによって取得されて実行される。その間、ローダは空いており、ＸＭＬファイルの次のエレメントを処理することができる。
【００４３】
オペレータ・クラスは、拡張可能なアーキテクチャを実現するために用いられる。新しいＤＴＤファイルで新しいＸＭＬフォーマットが定義されると、適当なオペレータ・クラスが作成される。このクラスは、ＸＭＬ  ＤＴＤフォーマットに関連付けられた属性で一杯のハッシュテーブルを読取り、適当なＳＱＬステートメントを生成することができる。これにより、オペレータ・プラグインを追加してアーキテクチャを拡張すれば、無数のＸＭＬファイル・フォーマットをシステムにより処理することができる。
【００４４】
データベース・アップデータは、データを更新してデータベースにロードするために、キューに格納されたＳＱＬステートメントを実行する。データベース・アップデータは、好適には、マルチスレッドのＪａｖａ（Ｒ）環境を対象に開発されるので、ＸＭＬファイルがまだパーサによって解析されている間、また、オペレータがＳＱＬステートメントを生成している間に、データベースが同時に何度も更新されることがある。
【００４５】
管理者は、システム構成時に、好適にはアプリケーションを実行する環境やプラットフォームに合わせて調整するため、与えられた時間に実行されるスレッドの最大数を設定することができる。通常、比較的強力なプロセッサやマルチプロセッサを備えたプラットフォームは、より多くのメモリやより速いプロセッサを有するため、より多くのスレッドをサポートできる。
【００４６】
当業者には明らかなように、本発明の趣旨及び範囲から逸脱することなく、ここに示した例及び実施例から様々な変形例を採用することができる。例えば、別のマークアップ言語規格、別の解析方法、別のプログラミング言語、別のハードウェア・プラットフォームやオペレーティング・システム、別のデータベースやデータベースＡＰＩなどを採用できる。従って、本発明の範囲は、特許請求の範囲により決定されるものではない。
【図面の簡単な説明】
【図１】ＸＭＬ文書をデータベースにロードする従来の方法を示す。
【図２】ＸＭＬ文書をデータベースにロードする従来の方法の順次線形フローを示す。
【図３】本発明の好適実施例に採用されるコンピュータ・システムの構成を示す。
【図４】プロセス及びキューを含む本発明の機能的構成を示す。
【図５】高度な並列性及びプロセスの分離により、本発明の方法及びシステムで達成される改良された時間軸を示す。
【符号の説明】
３０  アプリケーション・サーバ
３１  アプリケーション・サーバ・ハードウェア・プラットフォーム
３２  ユーザ・インターフェース・デバイス
３３  ネットワーク・インターフェース・カード（ＮＩＣ）
３４  コンピュータ・ネットワーク
３５  オペレーティング・システム
３６  ファイル転送プロトコル（ＦＴＰ）
３７  非ポータブル・アプリケーション・プログラム
３８  Ｊａｖａ（Ｒ）インタープリタ
３９  Ｊａｖａ（Ｒ）アプレット／サーブレット
４１  ＦＴＰレセプタ
４２  ＳＡＸ  ＸＭＬパーサ
４４  オペレータ
４５  オペレータ・プラグイン
４６  ＳＱＬキュー
４７  ＳＱＬプロセッサ・スレッド
４８  データベース
３００  システム・メモリ
【図１】
0003650363.tif 000002
【図２】
0003650363.tif 000003
【図３】
0003650363.tif 000004
【図４】
0003650363.tif 000005
【図５】
0003650363.tif 000006