JP2005182835A - 異種のデータソースのためのデータサーバを生成する方法 - Google Patents
異種のデータソースのためのデータサーバを生成する方法 Download PDFInfo
- Publication number
- JP2005182835A JP2005182835A JP2004374615A JP2004374615A JP2005182835A JP 2005182835 A JP2005182835 A JP 2005182835A JP 2004374615 A JP2004374615 A JP 2004374615A JP 2004374615 A JP2004374615 A JP 2004374615A JP 2005182835 A JP2005182835 A JP 2005182835A
- Authority
- JP
- Japan
- Prior art keywords
- data
- server
- data source
- computer
- schema
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Abstract
【課題】
異種のデータソースへとアクセスする際の、既存技術に存在する一以上の不利な点を実質的に克服するか、少なくとも改善する。
【解決手段】データソース(1615)のデータをクライアントアプリケーション(1630)に提供するためにデプロイされるデータサーバ(1610)は、ウィザード(1605)により形成される。ネイティブデータ型のデータソースは、データ構造化されたデータを有する。代表スキーマおよびサーバアプリケーションはウィザードによって生成されるデータサーバを形成する。一旦形成されると、データサーバはクライアントアプリケーションからクエリを受信して応答してもよい。ネイティブデータ型についての知識を有しなくても、データサーバを介することで、クライアントアプリケーションはデータソースへとアクセスできるようになる。
【選択図】図16
異種のデータソースへとアクセスする際の、既存技術に存在する一以上の不利な点を実質的に克服するか、少なくとも改善する。
【解決手段】データソース(1615)のデータをクライアントアプリケーション(1630)に提供するためにデプロイされるデータサーバ(1610)は、ウィザード(1605)により形成される。ネイティブデータ型のデータソースは、データ構造化されたデータを有する。代表スキーマおよびサーバアプリケーションはウィザードによって生成されるデータサーバを形成する。一旦形成されると、データサーバはクライアントアプリケーションからクエリを受信して応答してもよい。ネイティブデータ型についての知識を有しなくても、データサーバを介することで、クライアントアプリケーションはデータソースへとアクセスできるようになる。
【選択図】図16
Description
本発明は、異種のデータソースにおいて保持されている情報の統合に関するものである。特に、データソースのネイティブデータモデルを共通データモデルへとマッピングする技術、および、共通データモデルに基づいたデータソースへのアクセスを提供するサーバアプリケーションの生成に関するものである。
統合化手法における異種のデータソースへとアクセスする際の問題については、一般に、関与している異種のデータソースのデータを共通データモデルのデータにより表現する解決手法が採用されている。これには、各々のデータソースのネイティブスキーマを共通データモデルのスキーマにマップすることが含まれる。本明細書において、”ネイティブ”という用語は、特定のデータソースに特有の言語またはスキーマを意味する。相互に関与している異種のデータソースの統合処理は、データソースの問合せ(クエリ)のための共通の方法を用意し、かつ、単一のクエリにより多数のデータソースから統合した結果を抽出することを可能ならしめることにより実現される。
異種のデータソースへの統合アクセスを可能にするためのプロセスは、一般に以下の2つのステップを必要とする:
1.セットアップ時において、データソースのネイティブスキーマが、共通データモデルのスキーマにマップするステップ(一般に、このステップは、ソフトウェアツールを使用して、データソースについて専門知識をもつ人により手動で実行される)
2.実行時において、データマッパープロセスにより、データソースのデータはそのネイティブスキーマから共通データモデルでマップされたスキーマまでマップするステップ(このプロセスには、しばしば共通データモデルのクエリを、ネイティブデータソースにより処理される一つ以上のクエリまたはアプリケーションプログラムインタフェース(API)コールに変換することが含まれる)
1.セットアップ時において、データソースのネイティブスキーマが、共通データモデルのスキーマにマップするステップ(一般に、このステップは、ソフトウェアツールを使用して、データソースについて専門知識をもつ人により手動で実行される)
2.実行時において、データマッパープロセスにより、データソースのデータはそのネイティブスキーマから共通データモデルでマップされたスキーマまでマップするステップ(このプロセスには、しばしば共通データモデルのクエリを、ネイティブデータソースにより処理される一つ以上のクエリまたはアプリケーションプログラムインタフェース(API)コールに変換することが含まれる)
この種の処理に役立つデータマッパーは、以下の構成を採用しうる:
(i) ラッパー(データソースをカプセル化してデータにアクセスするための共通APIを公開するソフトウェア層)
または、
(ii) データサーバ(クライアントアプリケーションから要求を受信し、要求に従ってデータを読み出して処理する、ネットワークアドレスによって指定可能なサーバアプリケーション)
(i) ラッパー(データソースをカプセル化してデータにアクセスするための共通APIを公開するソフトウェア層)
または、
(ii) データサーバ(クライアントアプリケーションから要求を受信し、要求に従ってデータを読み出して処理する、ネットワークアドレスによって指定可能なサーバアプリケーション)
一般的に、データマッパーはソフトウェア技術者によってプログラムされ、システム管理者によりデプロイされる。データマッパーを構築しデプロイするタスクは、多大なる努力と専門知識が必要であり、この専門知識は、一般に、データを実際に利用する者の能力をはるかに超えている。また、以下の問題によりデータマッパーの構築は更に困難に成り得る。
第1に、しばしば共通データモデルにおける同一データに関しては、多数の異なる表現方法によりそれぞれ表現できるようにすることが望ましい。これは、2つのスキーマのデータモデルが異なる(例えば、リレーショナルで階層的な)際にしばしば必要となる。第2に、共通データモデルにおけるデータソース用に使用されるスキーマは特定可能であることがしばしば望ましい。統合アクセスを可能とするデータソースのスキーマに所定の構造が必要であるという利用者から要求がある場合に、このことは、ときとして必要となる(例えば、既存のスキーマに従って他のデータにアクセスしているクライアントを有するシステムにレガシーデータソースからデータを統合する場合など)。
異種のデータソースに格納されるデータへのクエリを可能にするための共通データモデルを提供する多くの既存技術が存在する。2001年7月17日のChang氏らによる米国特許第6,263,342号、2001年5月15日のChang氏らによる米国特許第6,233,586号および2001年8月7日のChang氏らによる米国特許第6,272,488号は、異種のデータソースの連合された仮想ビューをオブジェクト指向のモデルを使用して提供する方法を開示している。具体的には、Java(登録商標)オブジェクトを用いて、連合されたクエリオブジェクトは個々のデータソースのための適切なクエリに変換される。しかし、クエリ変換のためのJava(登録商標)オブジェクトを構築する方法は開示されていない。
1997年1月21日のDao氏らによる米国特許第5,596,744号と、1997年5月27日のNoble氏らによる米国特許第5,634,053号は類似した連合アーキテクチャを提供する発明である。これらの特許において、(ネイティブデータソースの)スキーマ、データ配布、ドメインの知識およびサイト間関係などの情報を含むデータ辞書が用いられている。データ辞書は、個々のデータソースへのクエリを適切に変換するために用いられる。しかしながら、新規のデータソースの情報をデータ辞書に追加する方法は記載されていない。
2001年8月28日のMadnick氏らによる米国特許第6,282,537号は、構造化または半構造化されたデータを含んでいる異種のデータソースにクエリする方法を開示している。この発明では、個々のデータソースのデータおよびそのフォーマットを定めるためにエクスポートスキーマが用いられている。しかしながら、上述した特許のように、エクスポートスキーマを生成する方法は記載されていない。上記の各々のケースにおいては、開示されている発明の目的が異種のデータソースの問合せを可能にした共通データモデルであると記載されている。新規データソースを共通データモデルに組み込む方法は対象とされていない。
2002年9月19日に公開されたVlahos氏らによる特許出願公開番号20020133504号は、仮想テーブルとしてデータソースのデータを公開するためにデータラッパーを使用する方法を開示している。仮想テーブルを単一の汎用データ表現(共通データモデル)に集計するために情報サーバが用いられる。共通データモデルに対するクエリは適切に変換され、個々のデータラッパーにリダイレクトされる。情報サーバは、いくらかの統合機能(蓄積、重複の除去など)を実行するが、データラッパーの仮想テーブルがデータソースのためにどのように構築されるかについては特許文献には記述されていない。つまり、個々のデータソースから共通データモデルへのデータのマッピングは、完全には記載されていない。
2001年10月25日に公開されたPrompt氏らによる特許出願公開番号20010034733号は、データにアクセスするためのプロトコルとして共通階層データモデルおよびライトウェイト・ディレクトリ・アクセス・プロトコル(LDAP)を使用する方法を開示している。これは、リレーションシップ・ドリブン・アプローチやアドホック・アプローチに基づいた(共通データモデルの)階層的なスキーマに、関係スキーマをマッピングする発明について記述されている。しかしながら、関係スキーマが階層的なスキーマにマップされる際にしばしば発生する多数の可能なマッピングの問題には、このリレーションシップ・ドリブンは対処できない欠点がある。さらに、他の非リレーショナルデータソースを共通階層データモデルにマッピングする技術については言及されていない。
近年、拡張可能なマークアップ言語(XML)が、XMLデータをクエリが可能なXMLクエリ言語とともに(異種のデータソースのための)共通データモデルとして使用されるようになってきている。IBMのJava(登録商標)ベースのツール"XML for Tables"により、アプリケーションプログラマは、提供された一組のJava(登録商標)クラスを用いて関係テーブルのXMLビューを得ることができる。具体的には、XML for Tablesは、IBMのDB2(登録商標)データベース技術によって動作するように設計されている。XML for TablesはXMLデータのための利用者定義ビュー(スキーマ)を可能にするが、これはプログラマ用のツールにすぎない。複数の異なるデータビューは、データソースに関する知識に基づいて個々にプログラムされる必要がある。さらに、このツールは、リレーショナルデータベースによって用いられるように設計されており、異種のデータソースへの適用は制限されている。
上記の技術で開示される装置は習熟の必要が無いツールであり、必ずしもデータベース管理の技術に熟練していない利用者が選択されたデータソースのためのデータマッパーを作成しデプロイすることを可能にし得る。
米国特許第6,263,342号
米国特許第6,233,586号
米国特許第6,272,488号
米国特許第5,596,744号
米国特許第5,634,053号
米国特許第6,282,537号
米国特許出願公開第20020133504号
米国特許出願公開第20010034733号
本発明の目的は、既存技術に存在する一以上の不利な点を実質的に克服するか、少なくとも改善することである。
本明細書において開示される装置は、ネイティブスキーマから共通データモデルのスキーマへの多数の可能なマッピングを可能にするとともに、共通データモデルの所定のスキーマを使用することを可能ならしめるものである。
本発明の実施形態に従って、ネットワークを通じてデータソースのデータをクライアントアプリケーションに提供するためのデータサーバを形成する方法が開示される。前記データソースはネイティブデータ型およびデータ構造に配置されたデータを含み、前記方法は次のステップを含んでおり:
(i) 前記ネットワーク上の前記データソースを識別するステップ
(ii) データ構造と前記識別されたデータソースのうちの少なくとも1つをトラバースするアプリケーションプログラムを提供し、前記アプリケーションプログラムは前記ネイティブデータ型から共通データモデルの所定のデータ型へ変換するマッピングデータを含む代表スキーマを生成するように操作可能である
(iii) 前記ネイティブデータ型から所定のデータ型まで前記データを変換し、前記ネットワークを通じて前記共通データモデルに従って前記クライアントアプリケーションに前記データに提供するために、前記代表スキーマを使用するのに適しているサーバアプリケーションを生成するステップ
以上のステップにより生成された、前記代表スキーマおよび前記サーバアプリケーションにより前記データサーバを形成する方法。
(i) 前記ネットワーク上の前記データソースを識別するステップ
(ii) データ構造と前記識別されたデータソースのうちの少なくとも1つをトラバースするアプリケーションプログラムを提供し、前記アプリケーションプログラムは前記ネイティブデータ型から共通データモデルの所定のデータ型へ変換するマッピングデータを含む代表スキーマを生成するように操作可能である
(iii) 前記ネイティブデータ型から所定のデータ型まで前記データを変換し、前記ネットワークを通じて前記共通データモデルに従って前記クライアントアプリケーションに前記データに提供するために、前記代表スキーマを使用するのに適しているサーバアプリケーションを生成するステップ
以上のステップにより生成された、前記代表スキーマおよび前記サーバアプリケーションにより前記データサーバを形成する方法。
また、他の実施形態についても開示される。
本発明によれば、ネイティブスキーマから、共通データモデルのスキーマおよび共通データモデルの所定のスキーマまで多数の可能なマッピングを可能とすることのできる技術を提供することができる。
(第1実施形態)
以下に、異種のデータソースのためのデータサーバを生成する方法および装置などについて説明する。この方法では、データサーバを構築する際にユーザを補助するアプリケーションプログラム(通常ウィザードと呼ばれる。)が使用される。ウィザードは、利用者による共通データモデルのクエリを異種のデータソースのネイティブスキーマにマップするものである。実施形態では、共通データモデルとしてXMLを使用することにする。共通データモデルのためのクエリは、XML Query(XQueryと称す。)を使用して表現されことが望ましい。各々のデータソースのデータは、XMLスキーマを使用している共通データモデルにより表現される。拡張可能なマークアップ言語、XMLスキーマおよびXQueryは、ネットワークやアプリケーションを通じてデータの相互接続性を可能にするため、ワールドワイドウェブコンソーシアム(W3C)により開発されている。
以下に、異種のデータソースのためのデータサーバを生成する方法および装置などについて説明する。この方法では、データサーバを構築する際にユーザを補助するアプリケーションプログラム(通常ウィザードと呼ばれる。)が使用される。ウィザードは、利用者による共通データモデルのクエリを異種のデータソースのネイティブスキーマにマップするものである。実施形態では、共通データモデルとしてXMLを使用することにする。共通データモデルのためのクエリは、XML Query(XQueryと称す。)を使用して表現されことが望ましい。各々のデータソースのデータは、XMLスキーマを使用している共通データモデルにより表現される。拡張可能なマークアップ言語、XMLスキーマおよびXQueryは、ネットワークやアプリケーションを通じてデータの相互接続性を可能にするため、ワールドワイドウェブコンソーシアム(W3C)により開発されている。
図1は、実施形態に係る例示的なシステムアーキテクチャ100を示す図である。データサーバウィザードアプリケーション105は、選択された(リレーショナルデータベース)データソース115のためのデータサーバ110を生成してデプロイするために用いてもよい。なお、“デプロイ”とは、ネットワークアプリケーションやWebサービスなどを利用可能なように準備することをいう。データサーバ110は、一以上のクライアントアプリケーション130からXQuery要求を受け付けるネットワークアドレス指定可能なサーバである。データサーバ110は、ネイティブクエリ要求に従って、データソース115からネイティブ結果データを検索して、XML要求の結果をクライアントアプリケーション130に返信する。クライアントアプリケーション130は、例えば、ワールドワイドウェブ(WWW)のようなコンピュータネットワーク上のサーバにXQueryを送信するためにハイパーテキストトランスファープロトコル(HTTP)を使用可能なものであれば、いかなるクライアントプログラムでもあってもよい。この種のアプリケーションの例としては、Microsoft社のInternet Explorer(登録商標)、Netscape Communications社のNetscape(登録商標)、またはその他のウェブブラウザアプリケーションなどがある。他のブラウザアプリケーションは、”Methods for Interactively Defining Transforms and for Generating Queries by Manipulating Existing Query Data”という名称の米国特許出願番号第10/465222号に対応するオーストラリアの特許出願番号第2003204824号に記載されたものであってもよい。
データサーバウィザード105は、利用者の操作135によってロードされたコンピュータ上で動作する。ウィザード105は、ネットワークから提供されるか、またはディスクのような媒体により提供されうる。利用者のコンピュータとデータソース115および125を接続するコンピュータネットワークを通じて、ウィザード105を操作することにより、データサーバ110および120が結果として生成される。サーバ110はソース115に対応するものであるが、これらは、必ずしも、同一の場所に配置されている必要はない。サーバ120とソース125についても同様である。サーバ110,120は、クライアントアプリケーション130からアクセスできるような状態で動作しているが、これは、コンピュータネットワーク内に存在するいかなるクライアントアプリケーション130(例えば、利用者の操作135がなされるコンピュータまたは他のいかなるコンピュータ)からもデータソース115、125へとアクセスできるようにするためである。
実施形態において記載されている装置および方法によれば、複数のデータソースのそれぞれに対応してデータサーバを設けることも可能である。また、これらのデータサーバは同時並行的に動作可能である。図1において、リレーショナルデータベース115およびファイルディレクトリ125の2つのデータソースと、それらに対応する生成されたデータサーバ110および120が示される。サーバ110および120は、クライアントアプリケーション130と相互に作用して動作しうる。他の実施形態として、単一のデータソースに対し複数のデータサーバを生成してもよい。各々の生成されたデータサーバは、異なるスキーマを使用してデータを提供してもよい。
ウィザード105による異種のデータソースのためのデータサーバの生成は、図15に示されるように、利用者の操作135に汎用コンピュータシステム1500を使用してもよい。図1〜14のウィザードプロセスは、例えば、アプリケーションプログラムをコンピュータシステム1500の中で実行するソフトウェアとして実装されていてもよい。特に、異種のデータソースにおけるデータサーバ生成方法のステップは、コンピュータにより実行されるソフトウェアの命令により実行される。命令は、一以上のコードモジュール(各々は一以上の特定のタスクを実行する)として形成されてもよい。また、ソフトウェアは、以下の2つの別々の部分に分けられることも可能である。第1の部分はウィザードの処理を実行し、第2の部分は第1の部分と利用者の間のユーザインターフェースを管理する。例えば、ソフトウェアは、後述する記憶装置を含むコンピュータ可読記憶媒体に記憶されていてもよい。ソフトウェアは、コンピュータ可読記憶媒体からコンピュータにロードされ、コンピュータにより実行される。この種のソフトウェアを有しているコンピュータ可読記憶媒体やそれに記録されるコンピュータプログラムは、コンピュータプログラム製品と呼べるであろう。コンピュータにおいて当該コンピュータプログラムを使用することにより、異種のデータソースに係るデータサーバを生成するための進歩した装置を実現しうる。
コンピュータシステム1500は、コンピュータモジュール1501、キーボード1502およびマウス1503のような入力装置、プリンタ1515を含む出力装置、ディスプレイ装置1514およびスピーカ1517により形成される。通信ネットワーク1520を通じて通信する(例えば電話線路1521または他の媒体を経て接続)ために、変復調(モデム)トランシーバデバイス1516がコンピュータモジュール1501によって使用される。モデム1516は、例えば、インターネット、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)のような他のネットワークシステムにアクセスするために用いられ、コンピュータモジュール1501に組み込まれていてもよい。
一般に、コンピュータモジュール1501は、例えば、少なくとも一つのプロセッサユニット1505と、ランダムアクセスメモリ(RAM)および読取り専用メモリ(ROM)を含む半導体記憶装置1506とを含んでいる。また、モジュール1501は、多数の入出力(I/O)インタフェースを具備している。例えば、ビデオディスプレイ1514およびスピーカ1517に取り付けられたオーディオ・ビデオ・インタフェース1507、キーボード1502、マウス1503や任意のジョイスティック(不図示)のための入出力インタフェース1513、モデム1516およびプリンタ1515のためのインタフェース1508などである。実施形態において、例えばインタフェース1508に搭載される等、モデム1516がコンピュータモジュール1501に組み込まれていてもよい。記憶装置1509には、一般に、ハードディスクドライブ(HDD)1510およびフロッピー(登録商標)ディスクドライブ(FDD)1511などが含まれてもよい。また、磁気テープドライブ(不図示)が使用されてもよい。CD−ROMドライブ1512は、一般的にデータの不揮発的なソースとして提供される。コンピュータモジュール1501の構成要素1505〜1513は、一般的に、関連した技術における公知のコンピュータシステム1500の従来の動作モードに従って相互接続されたバス1504を経由して通信する。記載されている装置を実現できるコンピュータの例としては、IBM−PCとその互換機、Sun Sparcstationまたは類似したコンピュータシステムを含む。
一般的にアプリケーションプログラムはハードディスクドライブ1510に記憶されており、プロセッサ1505によって読み込まれ実行を制御される。プログラムおよびネットワーク1520から取得されるいかなるデータも、例えば、ハードディスクドライブ1510と協働して動作する半導体メモリ1506が使用されることで、中間記憶されてもよい。たとえば、アプリケーションプログラムはCD−ROMまたはフロッピー(登録商標)ディスク上にコード化されて記憶され、利用者に提供され、対応するドライブ1512または1511を経て読み込まれてもよいし、あるいは、利用者によって、モデムデバイス1516を経由してネットワーク1520から読み込まれてもよい。さらに、ソフトウェアは他のコンピュータ可読記憶媒体からコンピュータシステム1500へロードされてもよい。ここで、”コンピュータ可読記憶媒体”という用語は、コンピュータシステム1500において実行したり処理したりするための命令やデータを提供する際に関与するいかなる記憶媒体や伝送媒体も指すものとする。記憶媒体には、フロッピー(登録商標)ディスク、磁気テープ、CD−ROM、ハードディスクドライブ、ROMや集積回路、光磁気ディスクまたはPCMCIAカードなどのコンピュータ可読のカードが含まれ、この種のデバイスは、コンピュータモジュール1501に内蔵されてもよいし、外付されてもよい。伝送媒体の例としては、ネットワークによる他のコンピュータやネットワークデバイスへの接続と同様に無線通信、赤外線通信だけでなく、電子メールによる送受信やウェブサイトその他に記録された情報と同様にインターネットやイントラネットなども含まれよう。
一例としてのコンピュータシステム1500によって、このようにデータソース115、125各々のためのハードウェア基盤が形成されてもよい。また、対応するデータサーバ110、120をホストするためのプラットフォームを提供してもよい。あるいは、データサーバ110および120は、データソース115および125を提供しているのとは別のコンピュータシステム1500によってホストされていてもよい。さらに他の例示的なコンピュータシステム1500は、クライアントアプリケーション130をサポートしてもよいし、データサーバウィザード105をサポートしてもよい。この方法によらば、図1に示される通信および接続を、ネットワーク1520を通じたコンピュータ装置間で実行または構築されてもよい。
図2は、データサーバを生成する好適な方法200を表しているフローチャートである。方法200は、データサーバウィザード105と呼ばれるコンピュータプログラムで実装されている。コンピュータ1500を経由して入力された利用者の指示に応じた要求と命令に対して、データサーバウィザード105は、対話的に動作する。初期ステップ205で、データサーバウィザード105は利用者によるデータソースの選択を受信する。これは、図17に示すようなデータサーバウィザード105のウインドウリストから、利用者がサポートされるデータソースの型を1つ選択することを含む。図17のスクリーン左側のパネル1790は、データサーバウィザード105がデータサーバ110を構築しデプロイするために実行しなければならないステップを示している。現在のステップ1795が反転太字で示されている。
選択されたデータソースの型に従い、データサーバウィザード105は利用者に詳細情報の入力を促す。図18は、リレーショナルデータソースの型が選択されたあと、利用者にリレーショナルデータベースの詳細な入力を促しているデータサーバウィザード105のウインドウを示す。この例では、利用者は、入力フィールド1805においてリストからリレーショナルデータベースの型を選択し、入力フィールド1810においてこのデータベースをホストしているコンピュータの名前を選択し、入力フィールド1820においてデータベースの名称を選択する。あるリレーショナルデータベースタイプ(例えばOracle(登録商標)9i)の場合には、入力フィールド1830において、所望のデータベースのスキーマ名を指定することが必要である。データサーバ110を構築する目的でデータソースにアクセスするために、利用者はさらに、入力フィールド1840および1850において利用者名およびパスワードを指定する。その場合、ウィザードはこの利用者が利用できるデータソースのデータにのみアクセス可能となる。
データサーバウィザード105は、異なるデータソースの型が入力された場合、異なる情報を必要とする。例えば、あるデータソースの型は利用者名およびパスワードを必要とするが他は必要としない。好ましい実施形態でサポートされるデータソースの型、および、データサーバウィザード105によって収集が必要となる詳細情報を下記にリストアップする。
(i) リレーショナルデータベースでは、データベースサーバホスト名およびデータベース名が必要である。ある場合には、例えばODBCデータソース名のように単にデータベースを識別するデータソース名のみであってもよい。加えて、データベースが保護されている場合には、データベースのアクセスに関する利用者認証の詳細がさらに必要になり得る。
(ii) メッセージサーバ(例えばMicrosoft社のExchange Server)では、サーバホスト名およびExchange Serverのアクセスに関する利用者認証の詳細が必要となる。
(iii) メールクライアントのローカルメールボックスでは、(例えばMicrosoft社のOutlook ExpressまたはNetscape Communications社のNetscape)メールクライアントの型が必要となる。
(iv) 半構造化データソース(例えばファイルのディレクトリ階層)では、ディレクトリパス名のリストが必要となる。
(v) テキストファイル(例えば区切り付きテキストファイル)では、ファイルのパス名および区切り文字の詳細が必要となる。
(vi) XML:DB APIをサポートするネイティブXMLデータベース(例えばXindice)では、データベースコレクションのURIが必要となる。
(vii) Lotus Domino(登録商標)では、Dominoサーバ名、Lotusデータベース名およびデータベースのアクセスに関する利用者認証の詳細が必要となる。本発明の範囲内において、他のデータソースタイプもまたサポートされうることは明らかである。
(ii) メッセージサーバ(例えばMicrosoft社のExchange Server)では、サーバホスト名およびExchange Serverのアクセスに関する利用者認証の詳細が必要となる。
(iii) メールクライアントのローカルメールボックスでは、(例えばMicrosoft社のOutlook ExpressまたはNetscape Communications社のNetscape)メールクライアントの型が必要となる。
(iv) 半構造化データソース(例えばファイルのディレクトリ階層)では、ディレクトリパス名のリストが必要となる。
(v) テキストファイル(例えば区切り付きテキストファイル)では、ファイルのパス名および区切り文字の詳細が必要となる。
(vi) XML:DB APIをサポートするネイティブXMLデータベース(例えばXindice)では、データベースコレクションのURIが必要となる。
(vii) Lotus Domino(登録商標)では、Dominoサーバ名、Lotusデータベース名およびデータベースのアクセスに関する利用者認証の詳細が必要となる。本発明の範囲内において、他のデータソースタイプもまたサポートされうることは明らかである。
ステップ210では、ネイティブスキーマ情報が利用可能であれば使用し、あるいはデータソースのデータを使用する。そして、データサーバウィザード105は、共通データモデルの選択されたデータソースを表現するデフォルトXMLスキーマを生成する。ステップ210は、図3を用いて更に詳細に記載されている。また、ネイティブスキーマからデフォルトXMLスキーマへのマッピングは多数存在しうるが、そのマッピング処理の一例については図3を用いて後述する。
ステップ215では、データサーバウィザード105はディスプレイ1514を用いて生成されたデフォルトXMLスキーマのグラフィック表示を利用者に提示する。この表示の例は図19に示されている。スキーマ1900は、要素(1905、1910、1915、1920、1925、1926、1927、1928および1929)および属性(図19において不図示)のツリーとして示される。前述したように、デフォルトスキーマはXMLスキーマ言語を使用して表現される。XMLスキーマソースは、図19のタブ1950を選択することによって見ることが可能である。XMLスキーマにおいては、ベースとなる要素の型を定義することが可能である。複雑型は、他の要素および属性を含むことができる型である。単純型は、要素の内容が単純なデータ型を使用して表現されるものである。例えば、要素1905、1910、1915および1920は、これらの内容に他の要素(および、図19において不図示の属性)を含むため複雑型要素である。しかしながら、要素1925、1926、1927、1928および1929は、これらの内容が単純なデータ型(例えば、図19のxs:intやxs:string)により記載されているので単純型要素である。なお、接頭辞”xs”は、XMLスキーマ名前空間から名前を特定するために用いられる。
また、利用者は、生成されたXMLスキーマを使用して示されるデータソースから読み出される、ある例示的なデータのビューを選択することができる。これは、データサーバウィザード105の図19のタブ1960を利用者が選択することによりなされる。利用者によるチェックのため、データはツリーフォーマットにより表示される。
利用者は、生成されたデフォルトXMLスキーマを対話的に修正できる。デフォルトXMLスキーマを修正するための命令を含むコンテキストメニューが提供され、図19に示すようなデータサーバウィザード105のウインドウにおけるデフォルトXMLスキーマのグラフィック表示がアクセス可能となっていることが望ましいだろう。変更形態は、以下を含むが、これに限定されるものではない。
(i) 要素または属性の名前の変更
(ii) 要素から属性への変更およびその逆
(iii) 要素または要素のサブツリーの除外
(iv) 新規な複雑型要素の作成(既存の要素はこの新規要素の子となる別の場所に移されうる)
(v) 新規な単純型要素の作成(この種の要素の値は、既存の要素の値に由来されうる)
(ii) 要素から属性への変更およびその逆
(iii) 要素または要素のサブツリーの除外
(iv) 新規な複雑型要素の作成(既存の要素はこの新規要素の子となる別の場所に移されうる)
(v) 新規な単純型要素の作成(この種の要素の値は、既存の要素の値に由来されうる)
ステップ220では、データサーバウィザード105は生成されたデフォルトXMLスキーマに対する変更が利用者により必要か否かを決定する。必要であれば、データサーバウィザード105はディスプレイ1514に表示されるGUIを経由し、ステップ225で利用者によるデフォルトXMLスキーマへの有効な変更を許可する。変更が不要かまたは変更が完了すると、データサーバウィザード105の動作はステップ230へ進む。
ステップ230において、データサーバウィザード105は利用者の操作135によって入力されたデプロイに関する詳細な情報を受信する。このステップは、図20に示されるウインドウに対応する。この種の詳細は、デプロイしたデータサーバ2010があることになっている目標ホストコンピュータ(例えば1501)の名前、および、デプロイされたデータサーバ2020の識別子を含んでもよい。一旦これらの構築の詳細が図21で示されるデータサーバウィザード105のウインドウにおいて確認されると、ステップ235において、データサーバウィザード105はデータサーバ110を生成しデプロイするために動作を開始する。望ましくは、データサーバはApache Jakarta Tomcatサーブレットコンテナのサーブレットとしてデプロイされる。デプロイプロセスは、この説明の後詳細に説明する。こうして、選択されたデータソースは、デプロイされたデータサーバ110を経由してクライアントアプリケーション130によってアクセス可能となる。
この方法におけるいかなるステップにおいても、利用者はボタン1705を使用して前のステップに戻るか、ボタン1710を使用して次のステップへ進むか、ボタン1715を使用してデータサーバ110を構築しデプロイしたり、キャンセルしたりすることが可能である。望ましくは、データサーバウィザード105は、構築されるデータサーバ110の仕様の情報を保存できる。もし、必要になった際に、利用者のコンピュータは利用者の指示に応じて、データサーバウィザード105を再開し、保存したデータサーバの仕様の情報を再ロードすることにより、特定のデータサーバをデプロイ可能となる。データサーバ110を構築しデプロイすることに関係するステップが、ソフトウェアエンジニアリングに慣れていない利用者により操作され得ることは明らかである。利用者は、コンピュータプログラムやいかなるスクリプトも書くことなく、データサーバを構築しデプロイすることができる。また、利用者はデータベースクエリ言語についての知識を有する必要もない。さらにまた、データサーバウィザード105のステップ(図2参照)を完了するのにはごくわずかな時間しかかからない。このように、データサーバウィザード105は、未経験の利用者であっても、多数の異種のデータソースに対してアクセスできるように補助する。すなわち、共通データモデルとしてXMLを使用する統合されたアクセスをユーザに提供できるようになる。
データソースのデフォルトXMLスキーマはステップ210において生成される。データソースのデータの要素および属性のマッピングを特定するために、注釈要素がXMLスキーマに加えられる。
付録Aは、簡略化されたデフォルトXMLスキーマを示す。10−17行、41−48行および55−62行からそれぞれ分かるように、XMLスキーマの生成されたマッピング情報はXML注釈要素により保存される。xs:schema要素の10−17行のxs:annotation子要素は、mdbas:Settings要素およびmdbas:MappingInfo要素を含んでいる。(接頭辞”mdbas”は、データサーバウィザード105のために定義される名前空間から名前を特定する)このxs:annotation要素は、グローバルマッピング情報注釈要素と呼ばれる。mdbas:Settings要素は、データソースの詳細を保持するデータソース固有の子要素(例えばデータベース名)を含む。mdbas:MappingInfo要素も、マッピングのためにネイティブスキーマ情報を保持するデータソース固有の子要素を含む。
データサーバウィザード105によって生成される全てのXMLスキーマは、18−39行で見ることのできる、グローバル要素であるDataSourceを有する。この要素は、データソースのルート要素を定義する。DataSource要素は、データソースからマップされるデータを含む子孫要素を有する。これらの子孫要素はグローバルな複雑型の中の1つであり、付録AのXMLスキーマの40−53行または54−67行で定義されていることが確認できる。これら各々のグローバルな複雑型は、それぞれ41−48行または55−62行で見られるxs:annotation子要素を有し、複雑型で定義される要素のマッピング情報を含む。
次にデフォルトXMLスキーマを生成する方法の一例を記述する。この例では、リレーショナルデータソースであるCompanyデータベース700(図7参照)が使用される。データベース700は、4つのテーブル(すなわち、Department710、Project 715、ProjMember 720およびEmployee 725)を有する。各々のテーブルの主キーは、鍵記号730により示される。Departmentは、0以上のプロジェクトを有する。この関係はProjectテーブル715の外部キー735によって定義され、この場合の主キーはDepartmentテーブルを参照するDeptIDである。Projectはそのメンバとして0以上のEmployeeを有し、Employeeは0以上のProjectのメンバであってもよい。これらの関係は、ProjectテーブルおよびEmployeeテーブルに対する外部キーであるProjIDおよびEmpIDを有するProjMemberテーブルを使用することによって定義されている。
以下、デフォルトXMLスキーマを生成するステップ210を、図3および付録Bを参照してCompanyデータベース700を用い詳細に説明する。ステップ305では、データサーバウィザード105は、ステップ205において取得したデータソースの詳細を使用し、選択されたデータベース(すなわち図7において示されるCompanyデータベース700)に接続する。ステップ310では、データサーバウィザード105はデータベースのネイティブスキーマ情報を読み出す。リレーショナルデータベースにおいては、これはテーブル、各々のテーブルのカラムおよび主キーおよび外部キーの定義を含む。ステップ315で、データサーバウィザード105は、xs:schema要素および適切な名前空間定義を有するスケルトンXMLスキーマを生成する。それから、ステップ315は、xs:schema要素の子要素として、付録Bの10−64行で見られるグローバルマッピング情報注釈要素を付加する。グローバルマッピング情報注釈要素の中の12−19行で見られるmdbas:Settings要素は、選択されたデータベースの詳細を保持する子要素を含む。20−62行で見られるmdbas:MappingInfo要素は、データソースのデータからデフォルトXMLスキーマの要素へのマッピングに必要なネイティブスキーマ情報を保持する子要素を含む。リレーショナルデータベースでは、例えば図7示されるように、この情報はテーブルおよびテーブルの関係を含む。
ステップ320では、データサーバウィザード105はデータベース(700)内の各々のテーブル(710−725)のためのグローバルな複雑型を生成する。各々の複雑型は、以下を含む:
(i) 対応するテーブルの各々のカラムのための単純型を有する要素
(ii) 対応するテーブルの外部キーにより参照される各々のテーブルのための複雑型を有する要素、
(iii) 対応するテーブルを参照している各々のテーブルのための複雑型を有する要素
例えば、付録Bの222−292行で見られるProject複雑型は、以下の子要素を含む:
(i) Projectテーブル715のフィールドのための、ProjID(267−273行)、ProjName(274−280行)およびDeptID(281−287行)
(ii) Projectテーブル715が外部キーDeptID 735を使用して参照するDepartmentテーブル710のためのDepartment(288行)
(iii) Projectテーブル715を参照するProjMemberテーブル720のためのProjMember(289行)
(i) 対応するテーブルの各々のカラムのための単純型を有する要素
(ii) 対応するテーブルの外部キーにより参照される各々のテーブルのための複雑型を有する要素、
(iii) 対応するテーブルを参照している各々のテーブルのための複雑型を有する要素
例えば、付録Bの222−292行で見られるProject複雑型は、以下の子要素を含む:
(i) Projectテーブル715のフィールドのための、ProjID(267−273行)、ProjName(274−280行)およびDeptID(281−287行)
(ii) Projectテーブル715が外部キーDeptID 735を使用して参照するDepartmentテーブル710のためのDepartment(288行)
(iii) Projectテーブル715を参照するProjMemberテーブル720のためのProjMember(289行)
ステップ320において作成される各々の複雑型に対して、データサーバウィザード105は複雑型に対するxs:annotation子要素を付加する。このxs:annotation要素は、データソースから複雑型の各々の子要素へのマッピングを特定するためのmdbas:MappingInfo要素を含む。例えば、xs:Project複雑型(222−292行)のxs:annotation要素は、Project複雑型の各々の子要素のためのマッピング情報を含む。付録Bの10−64行で見られるグローバルマッピング情報注釈要素のマッピング情報と連携して、このマッピング情報を用いることにより、データサーバ110はXQueryを処理するために必要なデータソース115からデータを検索することが可能となる。データサーバ110によるデータ検索の方法は後で詳細に述べる。
最後に、ステップ330では、データソースの文書要素またはルート要素のためのグローバル要素が生成される。ここで、データサーバウィザード105は、69−127行で見られるグローバル要素DataSourceを生成する。ステップ335では、72−84行などに見られる子要素、および、75−81行などに見られる孫要素が、データベース700の各々のテーブル710−725について生成される。孫要素は、テーブルの対応する複雑型を有している。これは、テーブルの各々のレコードを要素インスタンスにマップする。子要素は、同じテーブルからマップされる要素のコンテナとして作用する。
図3のステップ210に従った方法を用いて生成されるデフォルトXMLスキーマは、複数のマッピングが可能であるデータソースの構造の複数の表現を提供することが可能である。図8は、Companyデータベース700のために生成されたデフォルトXMLスキーマ 800を視覚的に示した図である。リーフノードである単純型要素は、説明の簡単化のために省略した。明確にツリー構造として示され、DepartmentItems、ProjectItems、ProjMemberItemsおよびEmployeeItemsから始まる各々のサブツリーは、要素間の親子関係を変化させることによりデータソースの異なるビューを提供する。XQueryは、データを特定するビューのため、これらのサブツリーのうちのいずれかのデータを読み出すために定式化されうる。例えば、XQueryにおける /DataSource/ProjectItems という表現は、プロジェクトデータおよびデータソースの各々のプロジェクトに関連する他のデータのビューを提供するProjectItemsサブツリーを選択する。
データサーバウィザード105によって、生成されるXMLスキーマは以下の2つの用途に使用される。第1に、データサーバ110によってクエリ処理の実行時に使用される。第2に、クライアントアプリケーション130によって、クエリを定式化する際にデータソース115の構造を決定するために使用される。後者の場合、好ましくは、マッピング情報注釈のないXMLスキーマは全てのクライアントアプリケーション130が利用できるように生成される。クライアントアプリケーション130によって使用されるXMLスキーマはマッピング情報を必要としないことが望ましい。他の実施形態において、XMLスキーマで注釈が付されているマッピング情報を、生成されたXMLスキーマとは別に蓄積してもよい。
共通データモデルのデータソースの構造を表現するためのデフォルトXMLスキーマ(任意でそのスキーマを修正)を生成することに加えて、好ましい実施例のさらなる特徴によって、所定のXMLスキーマをデータサーバとして用いることができる。XMLスキーマの勧告が情報の交換のための構文を定めるために用いられるようになるにつれ、所定のXMLスキーマにより定義される構文に従ってレガシーデータソースからの情報の取り込みが可能となることが望まれている。これは、データソースに格納されたデータ構造を変える必要が無いことを意味している。
所定のスキーマを有するデータサーバ110を生成する方法400を図4に示す。方法400はデータサーバウィザード105により実装され、ステップ405および410はそれぞれ前述したステップ205および210と同様である。ステップ415では、データサーバウィザード105は、生成されたデフォルトXMLスキーマから所定のXMLスキーマまで、利用者がインタラクティブに要素をマップすることができる。このステップは、図5を参照して以下で更に詳細に説明する。ステップ420では、ステップ235に記載されているように実質的にデータサーバウィザード105はデータサーバ110を生成しデプロイするが、この場合は、データサーバ110は生成されたデフォルトスキーマではなく所定のXMLスキーマを使用する。
生成されたデフォルトXMLスキーマを所定のスキーマにマップするステップ415の方法を、図5を参照して説明する。ステップ505では、利用者はデータサーバウィザード105の所定のXMLスキーマを特定する。これは、利用者130によって、キーボード1502を用いて所定のXMLスキーマファイルのパスを入力するか、または、GUIを用いてファイルダイアログを使用することによりなされてもよい。ステップ510では、サーバウィザード105は生成されたデフォルトXMLスキーマ 1405および所定のXMLスキーマ 1410の両方をGUIを用いて利用者に提示する。これは図14に示されているように、グラフィカルに並べて表示される。
ステップ515では、デフォルトXMLスキーマの一以上の要素または属性を所定のXMLスキーマの要素または属性へのマッピングを、利用者は対話的に指定できる。これを実行する1つの方法として、例えば図14に示されるようなグラフィカルユーザインタフェース(GUI)における利用者によるドラッグアンドアンドドロップ動作による実行とデータサーバウィザード105により操作がある。この操作において、デフォルトXMLスキーマのソース要素1415を表現している一以上のグラフィカルオブジェクトがマウス1503のクリック−ホールドにより選択され、ドラッグされ、ターゲット要素1420を表現しているグラフィカルオブジェクトまたはGUIの所定のXMLスキーマの属性にドロップ(マウス1503のクリックを解放)される。この、要素のマッピングはデータサーバウィザード105によって記録される。
マッピングを特定した後、ステップ520において、利用者はマップされるデータの変換を定義してもよい。この変換は、一以上の特定の変換関数に従い、書式つきの値または結合される複数の値であり得る。関数のタイプは以下を含んでいるが、以下に限定されない。
(i) フォーマット関数(数字の書式、通貨フォーマットなど)
(ii) 文字列関数(連結、部分文字列、大文字化など)
(iii) 算術演算
(iv) 統計関数(合計、カウント値、最大値、最小値および平均など)
(i) フォーマット関数(数字の書式、通貨フォーマットなど)
(ii) 文字列関数(連結、部分文字列、大文字化など)
(iii) 算術演算
(iv) 統計関数(合計、カウント値、最大値、最小値および平均など)
ステップ525では、利用者はさらにマッピングを特定し続けることができる。データサーバウィザード105の一部分であるステップ415が終わると、ステップ530において、グローバルマッピング情報注釈要素である10−64行がデフォルトXMLスキーマから所定のXMLスキーマまでコピーが実行される。
ステップ535では、データサーバウィザード105は、ステップ515において記録された各々のマップされた要素の注釈付マッピング情報をデフォルトXMLスキーマから所定のXMLスキーマまでコピーする。ステップ535を、図6を参照して説明する。ステップ605では、データサーバウィザード105は所定のXMLスキーマのグローバルな要素の子注釈要素を生成する。
それからステップ610で所定のXMLスキーマツリーの事前のトラバースが開始される。なお、“トラバース”とは、ツリー内のノード間を移動する動作のことをいう。ステップ615では、デフォルトXMLスキーマからマッピングされた各々のトラバースした先のNp(要素または属性)のノードについて、データサーバウィザード105は、以下の情報を対応する所定のXMLスキーマにおけるNpのmdbas:MappingInfoノードへコピーする。
(i) マッピング定義(デフォルトXMLスキーマからマップされた要素Edのmdbas:Mapping要素)
(ii) Edの上位グループがNpの上位グループにすでにマップされるまでか、または、Edの上位グループがルート要素となるまでの、Edの各々の上位グループ要素のマッピング定義
(ii) Edの上位グループがNpの上位グループにすでにマップされるまでか、または、Edの上位グループがルート要素となるまでの、Edの各々の上位グループ要素のマッピング定義
所定のスキーマツリーにおける各ノードがトラバースされ、必要なマッピング定義がコピーされたとき、デフォルトXMLスキーマから所定のスキーマに対するマッピングは完了する。ステップ415の(図5および6に詳細に例示)デフォルトXMLスキーマを所定のXMLスキーマにマップする方法について例を用いながら説明する。付録Cは、利用者がCompanyデータベースからデータサーバを生成する所定のXMLスキーマを示す。付録Bは、CompanyデータベースのデフォルトXMLスキーマを示す。図9は、実質的に図8のスキーマツリー800の分岐802であるデフォルトXMLスキーマ 902と、所定のXMLスキーマ 904の間に必要なマッピング906を示す。ただし、デフォルトXMLスキーマ 902に関連した部分だけが図9に示される。図8とは異なり、図9は単純型要素も示している。
付録Dは、ステップ415のマッピングを実行した後の、マッピング情報の注釈が付与された所定のXMLスキーマ 904を示す。ただし、付録Dにおいて以下の部分のセクションに注意する。
(i)5−59行は、ステップ530に従いデフォルトXMLスキーマ 902からコピーされ、グローバルマッピング情報注釈要素を定義する。
(ii) 65−116行は、ステップ605−615に従いデフォルトXMLスキーマ902からコピーされた要素マッピング情報を表現する。
(iii) 69−71行は、デフォルトXMLスキーマ902の付録Bにおける133−135行に記述されているDepartment要素のマッピング定義から、ステップ615に従ってコピーされるDepartment要素のマッピング定義を提供する。
(iv) 74−77行は、デフォルトXMLスキーマ902の付録Bにおける145−148行に記述されているDeptName要素のマッピング定義から、ステップ615に従ってコピーされるName要素のマッピング定義を提供する。
(v) 81−83行は、デフォルトXMLスキーマ902の付録Bにおける183−185行に記述されているEmployee要素のマッピング定義から、ステップ615に従ってコピーされるEmployee要素のマッピング定義を提供する。
(vi) 84−98行は、デフォルトXMLスキーマ902の付録Bにおける202−204行、298−300行、323−325行、227−229行および223−225行に記述されているEmployee要素の上位グループ要素のマッピング定義から、ステップ615に従ってコピーされるEmployee要素のマッピング定義である。ステップ615に従って所定のXMLスキーマ 904のEmployee要素の親へすでにコピーされているため、上位グループ要素であるDepartmentのマッピング定義はコピーされない。
(vii) 101−104行は、デフォルトXMLスキーマ902の付録Bにおける188−191行に記述されているEmpID要素のマッピング定義から、ステップ615に従ってコピーされるID要素のマッピング定義である。
(viii) 108−111行は、デフォルトXMLスキーマ902の付録Bにおける195−198行に記述されているEmpName要素のマッピング定義から、ステップ615に従ってコピーされるName要素のマッピング定義である。
(ii) 65−116行は、ステップ605−615に従いデフォルトXMLスキーマ902からコピーされた要素マッピング情報を表現する。
(iii) 69−71行は、デフォルトXMLスキーマ902の付録Bにおける133−135行に記述されているDepartment要素のマッピング定義から、ステップ615に従ってコピーされるDepartment要素のマッピング定義を提供する。
(iv) 74−77行は、デフォルトXMLスキーマ902の付録Bにおける145−148行に記述されているDeptName要素のマッピング定義から、ステップ615に従ってコピーされるName要素のマッピング定義を提供する。
(v) 81−83行は、デフォルトXMLスキーマ902の付録Bにおける183−185行に記述されているEmployee要素のマッピング定義から、ステップ615に従ってコピーされるEmployee要素のマッピング定義を提供する。
(vi) 84−98行は、デフォルトXMLスキーマ902の付録Bにおける202−204行、298−300行、323−325行、227−229行および223−225行に記述されているEmployee要素の上位グループ要素のマッピング定義から、ステップ615に従ってコピーされるEmployee要素のマッピング定義である。ステップ615に従って所定のXMLスキーマ 904のEmployee要素の親へすでにコピーされているため、上位グループ要素であるDepartmentのマッピング定義はコピーされない。
(vii) 101−104行は、デフォルトXMLスキーマ902の付録Bにおける188−191行に記述されているEmpID要素のマッピング定義から、ステップ615に従ってコピーされるID要素のマッピング定義である。
(viii) 108−111行は、デフォルトXMLスキーマ902の付録Bにおける195−198行に記述されているEmpName要素のマッピング定義から、ステップ615に従ってコピーされるName要素のマッピング定義である。
上記の例は、データサーバウィザード105が生成したデフォルトXMLスキーマ 902から所定のXMLスキーマ 904へのマッピング906を示す。マッピング情報906を有するこの所定のXMLスキーマ 904は、Companyデータベースが所定のXMLスキーマ 904に基づいてアクセス可能となるように、データサーバ110とともにデプロイされ得る。
(第2実施形態)
デフォルトXMLスキーマ 902と所定のXMLスキーマ 904の間のマッピング906を指定する代わりに、他の形態を使用してもよい。他の実施形態では、データサーバ110(デフォルトXMLスキーマによる指定されている)のデフォルトビューを、所定の(所望の)XMLスキーマにより指定されるデータのビューに変換するために変換XQueryが使用される。従って、上記の所定のXMLスキーマにおける格納マッピング906の代わりに、利用者は適切な変換XQueryを提供できる。変換XQueryは、利用者によってキーボード1502を使用し入力されるか、または、データサーバウィザード105によってアクセスされるテキストファイルとして提供され得る。
デフォルトXMLスキーマ 902と所定のXMLスキーマ 904の間のマッピング906を指定する代わりに、他の形態を使用してもよい。他の実施形態では、データサーバ110(デフォルトXMLスキーマによる指定されている)のデフォルトビューを、所定の(所望の)XMLスキーマにより指定されるデータのビューに変換するために変換XQueryが使用される。従って、上記の所定のXMLスキーマにおける格納マッピング906の代わりに、利用者は適切な変換XQueryを提供できる。変換XQueryは、利用者によってキーボード1502を使用し入力されるか、または、データサーバウィザード105によってアクセスされるテキストファイルとして提供され得る。
図9と同じ例を用いた場合、以下の変換XQueryは、所定のXMLスキーマと整合したデータのビューを提供する。
<DepartmentInfo>
{
for $i in /DataSource/DepartmentItems/Department
return
<Department>
{
<Name>
{
$i/DeptName/text()
}
</Name>
}
{
for $j in $i/Project/ProjMember/Employee
return
<Employee>
{
<ID>
{
$j/EmpID/text()
}
</ID>
}
{
<Name>
{
$j/EmpName/text()
}
</Name>
}
</Employee>
}
</Department>
}
</DepartmentInfo>
{
for $i in /DataSource/DepartmentItems/Department
return
<Department>
{
<Name>
{
$i/DeptName/text()
}
</Name>
}
{
for $j in $i/Project/ProjMember/Employee
return
<Employee>
{
<ID>
{
$j/EmpID/text()
}
</ID>
}
{
<Name>
{
$j/EmpName/text()
}
</Name>
}
</Employee>
}
</Department>
}
</DepartmentInfo>
この実施形態において、データサーバ110はデータソース115のデータを利用者が指定した変換XQueryを使用して変換し、結果をデフォルトビューとして使用する。
(第3実施形態)
データソース115のデータを表現するためにデータサーバ110により使用可能となる所定のXMLスキーマのさらなる実施形態について説明する。第3の実施形態は、先に記載した2つの実施形態の組合せに関するものである。デフォルトXMLスキーマから所定のXMLスキーマへの要素および属性のマッピングは、第1実施形態のステップ505〜525で説明したように、本実施形態においてもウィザード105を使用している利用者によって実行される。対応するマッピング情報をデフォルトXMLスキーマから所定のXMLスキーマまでコピーする代わりに、記録されたマッピングが、データ(デフォルトXMLスキーマにより指定)のデフォルトビューから、データ(所定のXMLスキーマにより指定)の所望のビューにデータを変換するための変換XQueryを生成するために用いられる。それから、第2実施形態に記載されている変換XQueryが使用される。
データソース115のデータを表現するためにデータサーバ110により使用可能となる所定のXMLスキーマのさらなる実施形態について説明する。第3の実施形態は、先に記載した2つの実施形態の組合せに関するものである。デフォルトXMLスキーマから所定のXMLスキーマへの要素および属性のマッピングは、第1実施形態のステップ505〜525で説明したように、本実施形態においてもウィザード105を使用している利用者によって実行される。対応するマッピング情報をデフォルトXMLスキーマから所定のXMLスキーマまでコピーする代わりに、記録されたマッピングが、データ(デフォルトXMLスキーマにより指定)のデフォルトビューから、データ(所定のXMLスキーマにより指定)の所望のビューにデータを変換するための変換XQueryを生成するために用いられる。それから、第2実施形態に記載されている変換XQueryが使用される。
データサーバウィザード105は、データソースがネットワークを通じてアクセスされ得るようにネットワークアドレス指定可能なデータサーバを生成しデプロイする。好適な実施形態において、このデータサーバ110はサーバ側ウェブアプリケーションであり、好ましくはJava(登録商標)サーブレットとして実装される。データサーバ110は、アプリケーションサーバ(例えばApache Software Foundationにより製造されるTomcat)によって、ホストされるサーバ側プログラムである。クライアントは、通信プロトコル(例えばHTTP)を使用してサーブレットに要求を送信し応答を受信できる。このサーバアプリケーションは、Uniform Resource Identifier(URI)によりアドレス指定が可能である。データサーバ110がデータソースを使用しているXMLスキーマを表現するため、クライアントアプリケーション130の複数のデータサーバへの統合したアクセスを提供することが可能となる。例えば、クライアントアプリケーション130は、データサーバ110を経由して複数のデータソースからデータを得る個々のクエリを処理できる。
クライアントアプリケーション130はデプロイされたデータサーバにアクセスするためにHTTPのgetやpostプロトコルを使用できる。getプロトコルを使用する場合、XQueryはURI内のパラメータとして含まれる。例として、URIである、 http://www.abc.com/DeptDS?xquery=/DepartmentInfo/Department は、提供されたXQuery表現式を使用して http://www.abc.com として識別されるネットワーク上のホストのDeptDSという名のデータサーバのデータにアクセスするために使用される。望ましくは、XQuery表現式はURI文字列として転送可能となるよう適切にコード化される。postプロトコルを使用する場合、XQuery表現式はHTTP要求の本体内で転送され得る。
重要なデータソースのデータサーバは、Secure Socket Layer(SSL)をHTTPの上の使用して(HTTPSと一般に呼称する)アクセスされることが望ましい。また、データサーバに対する要求は、利用者名およびパスワードなどの認証トークンを含むことが好ましい。そして、データサーバはデータソースにアクセスするために提供された認証トークンを使用する。認証トークンのタイプはデータソースの型に依存する。例えば、リレーショナルデータベースは一般的にデータベースとの接続前に利用者名およびパスワードを必要とする。認証トークンは、URIにコード化されるか本体またはHTTPS要求のヘッダにおいて付加的なパラメータとして転送されデータサーバに提供される。
好適な実施形態においても、利用者がデフォルト認証トークンを使用しているデータソース115のデータサーバ110を生成しデプロイできる。このことは、クライアントアプリケーション130は認証トークンを含むことなく、HTTP上のデータサーバにアクセス可能であることを意味する。デフォルト認証トークンは、デフォルトXMLスキーマのmdbas:Settings要素により格納されている。付録Bは、rm:DefaultUserName要素およびrm:DefaultPassword要素(それぞれ17行および18行)を含むデフォルトXMLスキーマの例を示しており、データサーバに向けられる全てのクエリに使用される。
図10はデータサーバ110の構造を示しており、一般的にHTTPサーバ1000にホストされる。データサーバウィザード105によって生成されたXMLスキーマ 1005の情報は、クライアントアプリケーションから入力されるクエリを処理する際に、実行時にデータサーバ110の各種コンポーネントによって使用される。コンポーネントは以下を含む:
(i) クエリパーサ1010(入力されるクエリ文字列を、処理のための適切な構造としてパースする)
(ii) クエリプロセッサ1015(入力されるクエリを分析し処理する)
(iii) クエリマッパー1020(XMLスキーマのマッピング情報を使用して、入力されるクエリを1以上のネイティブクエリまたはAPIコールにマッピングする)
(iv) データアクセス機構1025(ODBCその他のAPIなどの適切なデータアクセスミドルウェアを使用しているマップされたネイティブクエリを発行することにより、データソースからデータを読み出す)
(v) データシリアライザ1030(読み出されたデータをXMLに変換する)
(i) クエリパーサ1010(入力されるクエリ文字列を、処理のための適切な構造としてパースする)
(ii) クエリプロセッサ1015(入力されるクエリを分析し処理する)
(iii) クエリマッパー1020(XMLスキーマのマッピング情報を使用して、入力されるクエリを1以上のネイティブクエリまたはAPIコールにマッピングする)
(iv) データアクセス機構1025(ODBCその他のAPIなどの適切なデータアクセスミドルウェアを使用しているマップされたネイティブクエリを発行することにより、データソースからデータを読み出す)
(v) データシリアライザ1030(読み出されたデータをXMLに変換する)
望ましくは、上記のコンポーネントは、Java(登録商標)クラスとして実装され、データサーバの機能を構成する。クエリパーサ1010、クエリプロセッサ1015およびデータシリアライザ1030は、全てのデータサーバ110に共通である。クエリマッパー1020およびデータアクセス機構1025は、各々の型のデータソースに適用可能なように個別化される。データサーバウィザード105がデータサーバ110を生成する際に、データソースの型に対応する共通および個別化されたコンポーネントはXMLスキーマ 1005と共にウェブアーカイブファイル(.war)にパッケージ化される。望ましくは、データサーバウィザード105は、データサーバ110を、Tomcatマネージャのデプロイ機能によりウェブアーカイブファイルをアップロードおよびインストールすることにより、Tomcat(Apache Software Foundation)サーブレットコンテナのサーブレットとしてデプロイする。このようにデプロイすることにより、データサーバはクエリ要求を処理する準備が整う。明らかに、データサーバは他のウェブサーバ環境を使用してHTTPを通じてアクセス可能なサービスとしてデプロイされることが可能である。
クライアントアプリケーション130によりデータサーバ110に送信される、クエリ要求を処理する方法1100を図11に示す。この方法1100は、図10に示されるデータサーバ110の様々なコンポーネントにより実装される。
ステップ1105は、データサーバ110が動作開始する際に実行される初期化ステップである。ステップ1105で、クエリを処理する際に、データサーバ110は生成されたXMLスキーマおよび付随するマッピング情報を使用するスキーマツリーへロードする。このスキーマツリーは、対応するノードにマッピング情報(リーフノード)を有することを除くと、図8に示されるツリー800に類似したスキーマのツリー構造である。入力されるクエリをデータソース115のネイティブクエリにマップする際に、このスキーマツリーは必要なマッピング情報を取得するためにトラバースされる。
それから、データサーバ110は、次々に入力されるクエリを処理するために、ステップ1110でループに入る。ステップ1115で、データサーバ110のクエリパーサコンポーネント1010は、入力されるクエリを処理のためのクエリ構造にパースする。なお、“パース”とは、文書構造を解析する処理のことをいう。そして、クエリを分析し、クエリプロセッサ1015によって実行計画を考慮することを含むステップ1120の処理が開始される。ステップ1120の詳細は、XQuery処理に関連した従来技術において周知である。
ステップ1125では、クエリマッパー1020は、入力されるクエリを処理するために必要なデータを読み出すために使用される1以上のネイティブクエリに入力されるクエリをマップする。他のデータソースの型は、必要なデータを読み出すために、入力されるクエリが一組のAPIコールにマップされる必要があり得る。このステップは、図12を参照してさらに詳細に説明する。
ステップ1130では、データアクセス機構1025は、データソース115から必要なデータを読み出すために、マップされたネイティブクエリまたはAPIコールを使用する。それから、入力されるクエリはステップ1135のこのデータに評価される。ステップ1140で、データシリアライザ1030は、XMLとして結果をシリアライズし、クライアントアプリケーション130に結果を返す。
リレーショナルデータソースおよび図7において図示されるCompanyデータベースをデータソースとして参照し、ステップ1125について説明する。図12のフローチャートは、ステップ1125において実行されるマッピング方式のステップを示す。XQueryは、読み出され処理されるデータを選択するためにXPath表現式を利用する。ステップ1205で、クエリマッパー1020は、XQueryのFOR句およびLET句の独立XPath表現式を識別する。XQueryによるCompanyリレーショナルデータベースデータソースへのクエリの例は下記のようになる。
<RDProjects>
for $i in /DataSource/DepartmentItems/Department
let $j := $i/Project
where $i/DeptName = "Research"
or $i/DeptName = "Development"
return { $j/ProjName }
</RDProjects>
for $i in /DataSource/DepartmentItems/Department
let $j := $i/Project
where $i/DeptName = "Research"
or $i/DeptName = "Development"
return { $j/ProjName }
</RDProjects>
FOR句およびLET句の独立XPath表現式は、 /DataSource/DepartmentItems/Department である。従属表現式は独立表現式に由来するため、ネイティブクエリへのマッピングのために識別には独立XPath表現式のみ必要とされる。
ステップ1210において、これらのXPath表現式によって選択されたスキーマツリー内のノードのNiが特定され、対応するマッピング情報が読み出される。上記の例において、スキーマツリー内のDepartmentノードは特定され、そのノードのための付録Bの133−135行で示されるマッピング情報が読み出される。ステップ1215で、マッピング情報はNiにマップされるデータを読み出すためのSQL文を構築するために用いられる。WHERE句がXQueryの中に存在する場合、等価なWHERE句がSQL文に追加される。XQuery内のWHERE句の条件式の参照値が異なるテーブルからマップされる場合、このSQL文を構築する際に、等価なWHERE句が追加されるように1以上のJOIN句が追加される。上記のXQueryの例の場合、以下のSQL文は、Departmentノードのために構築される。
SELECT d.*
FROM Department d
WHERE d.DeptName = "Research"
OR d.DepartName = "Development"
FROM Department d
WHERE d.DeptName = "Research"
OR d.DepartName = "Development"
ステップ1220では、クエリマッパー1020は、XQueryのRETURN句のXPath表現式を識別する。これらの表現式が通常用いられるが、必然的ではなく、FOR句またはLET句で識別されるXPath表現式に依存する。この例において、XPath表現式は、 $j/ProjName である。ステップ1225では、XPath表現式によって識別され選択されたスキーマツリーに特定される位置にノードRiは存在し、対応するマッピング情報が読み出される。例では、スキーマツリーのProjNameノードが存在している。ステップ1230で、SQL文が同じテーブルからマップされるRiノードのために構築され、Riのデータが異なるテーブルからマップされる場合、多数のSQL文が必要であった。RiがFOR句またはLET句のXPath表現式に依存しているRETURN句のXPath表現式によって選択される場合、SQL文を構築する際に、ノードNiおよびスキーマツリーのNiおよびRiの間のノードにマップされるテーブルを含まれなければならない。必要となる主キーおよび外部キーの情報は、これらのノードのマッピング情報にあり、適切なJOIN句を構築するために用いられる。例では、RETURN句のXPath表現式は、 $j/ProjName が $i/Project に依存するため、最終的にFOR句およびLET句の中では /DataSource/DepartmentItems/Department となる。Department、ProjectおよびProjNameのノードから読み出されるマッピング情報を用いて、ProjNameにマップするデータを選択しDepartmentおよびProjectにマップするテーブルに接合するために、以下のSQL文が構築される。
SELECT d.DeptID, p.ProjName
FROM Department d JOIN Project p
ON d.DeptID = p.DeptID
WHERE d.DeptName = "Research"
OR d.DeptName = "Development"
FROM Department d JOIN Project p
ON d.DeptID = p.DeptID
WHERE d.DeptName = "Research"
OR d.DeptName = "Development"
XQueryを評価する際に、クエリプロセッサ1015は、データが繰り返して処理されるよう、また、処理しそれぞれの結果を出力するため、FOR句およびRETURN句のXPath表現式からマップされるSQL文により返される結果セットを使用する。
リレーショナルデータソース115を参照して説明されているデータサーバ110を生成する方法は、また、他の型のデータソースのためのデータサーバを生成するために用いてもよい。データソースタイプに特有のマッピング情報は、ステップ210または410において、生成されなければならない。生成されたXMLスキーマ 1005の適切なマッピング情報については、クエリマッパー1020がXQueryを必要となるネイティブクエリまたはAPIコールにマップすることが可能である。そして、これらのネイティブクエリまたはAPIコールは、クエリを処理するために必要なデータを読み出すために、データアクセス機構1025によって使用される。都合のよいことに、データサーバ110は、適切なデータソースタイプ特有のクエリマッパー1020およびデータアクセス機構1025のようなステップ235または420のコンポーネントとともにデプロイされる。
データサーバを生成する方法を、階層的データソース(例えば、Microsoft Exchange Serverのようなメッセージ送信サーバ、または、Microsoft社により製造されるOutlookフォルダのようなメールクライアント)を参照して説明する。この方法は、実質的にリレーショナルデータソースの場合と同じであり、説明が主に階層的データソースに特有のマッピング情報の生成および使用の部分を強調する。
図13は、典型的なメールクライアントのメールフォルダセットの階層1300である。最上位フォルダであるPersonalFolders 1302には、2つのメールフォルダInbox 1304およびProjectMail 1306が存在する。ProjectMailフォルダ1306はサブフォルダ、Research 1308およびDevelopment 1310を含み、それらはそれぞれのプロジェクトのメールを含む。典型的なメッセージ送信サーバの利用者のフォルダ階層は、通常、他の情報(例えばコンタクトおよびタスクなど)を保持するより多くのフォルダを含む。しかしながら、ここでは、階層的アプリケーションの説明のためには単純化されたサブセットで充分である。
方法200および400は、付録Eにて図示されるデフォルトXMLスキーマを生成するステップ210および410を有するメールクライアントデータソースと実質的に同じである。Companyリレーショナルデータベースのために生成される付録Bに示されるデフォルトXMLスキーマと同様に、グローバルマッピング情報注釈要素の中の12−15行にある付録Eのmdbas:Settings要素はデータソースの詳細(すなわち、データソースの型はOutlookおよびOutlook利用者の利用者名)を含んでもよい。
グローバルなxs:complexTypeが、各々の型のフォルダに保持されるデータを特定している。付録Eの180−192行のメールフォルダxs:complexTypeのみがXMLスキーマとして示される。
スキーマのグローバル要素DataSourceは、メールクライアントフォルダ階層の始まりである。付録BのCompanyデータベースのために生成されるXMLスキーマの69−127行のグローバル要素とは異なり、グローバル要素DataSourceはデータソースの複数のビューを提供するための複数のサブツリーを含まず、階層的データソースからXMLスキーマへ基本的に1対1のマッピングとなっている。DataSource要素は、付録Eの、160行の子要素Inboxおよび161−173行の子要素ProjectMailを含む、157−176行に示される子要素PersonalFoldersを含む。ProjectMail要素は、さらに166行の子要素Researchおよび167行の子要素Developmentを含む。
グローバル要素DataSourceは、付録Eの24−154行に子要素xs:annotationを有し、メールクライアントデータのマッピング情報を含む。このマッピング情報は、付録Eの99−101行、94−96行、65−67行および30−32行などに示される、mdbas:Mapping要素のマッピング定義を含んでいる。それらのマッピング要素は、パスに関するメールクライアントデータソースから要素のマッピングを特定する。マッピング定義は、メールクライアントから必要データを読み出すために、XQueryを必要なAPIコールにマップするためにクエリマッパー1020によって使用される。
メールクライアントデータソースのために生成されるデータサーバ110によってXQueryを処理する方法1100は、ステップ1125および1130における若干の差異を除いて、実質的にリレーショナルデータソースの方法と同様である。ステップ1125では、クエリマッパー1020は、表現式により選択される要素のマッピング定義を最初に調べることによって、XQueryの各々の独立XPath表現式をマップする。次に、クエリマッパー1020は、メールクライアントに必要なデータを特定するパスを形成するためにマッピング定義を使用する。例えば、XPath表現式 //Research/Message は以下の要素を選択する:
/DataSource/PersonalFolders/ProjectMail/Research/Message
この要素に対してマップしているメールクライアントのデータのパスは以下のようにして決定することができる。まず、ステップ1105において、初期化されたスキーマツリーのこの要素の位置を決め、そして、この要素およびその上位グループ(付録Eの99−101行、94−96行、65−67行および30−32行など)のマッピング定義を読み出す。これらのマッピング定義は、データにメールフォルダをデータへナビゲートするのに必要な一連のAPIコールに対応するパス PersonalFolders/ProjectMail/Research/Message を形成するために用いられる。ステップ1130で、データアクセス機構1025は、XQueryの処理に必要なデータを読み出すために、適切なAPIコールを呼び出す。
/DataSource/PersonalFolders/ProjectMail/Research/Message
この要素に対してマップしているメールクライアントのデータのパスは以下のようにして決定することができる。まず、ステップ1105において、初期化されたスキーマツリーのこの要素の位置を決め、そして、この要素およびその上位グループ(付録Eの99−101行、94−96行、65−67行および30−32行など)のマッピング定義を読み出す。これらのマッピング定義は、データにメールフォルダをデータへナビゲートするのに必要な一連のAPIコールに対応するパス PersonalFolders/ProjectMail/Research/Message を形成するために用いられる。ステップ1130で、データアクセス機構1025は、XQueryの処理に必要なデータを読み出すために、適切なAPIコールを呼び出す。
所定のXMLスキーマを使用し、それが図5を参照して説明されたデフォルトXMLスキーマからコピーされる必要なマッピング情報を含む場合、クエリ処理は実質的に図11を参照して上記で説明されたものと同様である。
所定のXMLスキーマが変換XQueryと連動して使われる場合、所定のスキーマを含んでいる他の実施形態にて説明したように、所定のXMLスキーマに関して表現される入力されるXQueryを、デフォルトXMLスキーマに関して表現される等価なXQueryに書き換えるための追加のステップが必要である。この追加のステップは、リレーショナルデータソースを使用した例のものと同様の入力されるXQueryを使用して説明される。
絶対パス表現がデフォルトXMLスキーマに関してのXQuery式と置き換えられるように、追加ステップは入力されるXQueryを書き換えることを含んでいる。
<RDProjects>
for $i in /DataSource/DepartmentItems/Department
let $j := $i/Project
where $i/DeptName = "Research"
or $i/DeptName = "Development"
return { $j/ProjName }
</RDProjects>
for $i in /DataSource/DepartmentItems/Department
let $j := $i/Project
where $i/DeptName = "Research"
or $i/DeptName = "Development"
return { $j/ProjName }
</RDProjects>
これは以下のように書き換えられてもよい。
<RDProjects>
let $dept :=
for $d in /DataSource/DepartmentItems/Department
return
<Department>
{
<Name>
{
$d/DeptName/text()
}
</Name>
}
{
for $e in $d/Project/ProjMember/Employee
return
<Employee>
{
<ID>
{
$e/EmpID/text()
}
</ID>
}
{
<Name>
{
$e/EmpName/text()
}
</Name>
}
</Employee>
}
</Department>
for $i in $dept
let $j := $i/Project
where $i/DeptName = "Research"
or $i/DeptName = "Development"
return { $j/ProjName }
</RDProjects>
let $dept :=
for $d in /DataSource/DepartmentItems/Department
return
<Department>
{
<Name>
{
$d/DeptName/text()
}
</Name>
}
{
for $e in $d/Project/ProjMember/Employee
return
<Employee>
{
<ID>
{
$e/EmpID/text()
}
</ID>
}
{
<Name>
{
$e/EmpName/text()
}
</Name>
}
</Employee>
}
</Department>
for $i in $dept
let $j := $i/Project
where $i/DeptName = "Research"
or $i/DeptName = "Development"
return { $j/ProjName }
</RDProjects>
入力されるXQueryの絶対パス表現”/DataSource/DepartmentItems/Department”は、変数 $dept に置き換えられる。この変数はLET句で定められ、その変数の値はXQueryに密接に結びつく。このXQueryは、オリジナルのパス表現により特定される要素を返すためのデフォルトXMLスキーマに関して表現されるものである。書き換えられたXQueryは、デフォルトXMLスキーマに関して表現される。このXQueryは図11を参照して説明したように処理されてもよい。
データサーバを生成する方法200および400および生成されたデータサーバによってXQueryを処理する方法1100の説明を、リレーショナルデータソースおよび階層的データソースの両方を参照して説明したように、この方法も、リレーショナルデータソースおよび階層的データソースに使用することが可能である。従来技術を知っている人々であれば理解できるように、記載されている方法は他のいろいろな形で実施されることができるか、またはそれの基本的特徴から逸脱することなく、データソースの他の型をカバーするために拡張することができる。
図16は図1に類似した表現を示しているが、クエリシステム1600は、データソース1615のデータをクライアントアプリケーション1630に提供するためのデータサーバ1610を形成するために動作しているウィザード1605により形成され、各々のウィザード1605、クライアントアプリケーション1630、データサーバ1610およびデータソース1615は通信ネットワーク1650によって接続されており、より一般的な形として示されている。データソース1615は、ネイティブデータ型およびデータ構造に配置されたデータを有する。ウィザード1605は、最初にネットワーク1650の上のデータソース1615を識別する。さらにウィザード1605は、データ構造と識別されたデータソース1615のうちの少なくとも1つをトラバースするためのアプリケーションプログラムを提供する。アプリケーションプログラムは、ネイティブデータ型を共通データモデルの所定のデータ型に変換するためのマッピングデータを含む代表スキーマ1614を生成するように動作可能である。さらにウィザード1605は、ネイティブデータ型から所定のデータ型へとデータの型を変換し、代表スキーマ1614を使用するのに適しているサーバアプリケーション1612を作成する。この作成されたサーバアプリケーション1612を用いることで、ネットワーク1650を通じ、クライアントアプリケーション1630に対しデータを共通データモデルに従って提供可能となる。こうして、代表スキーマ1614およびサーバアプリケーション1612は、ウィザード1605により生成されるデータサーバ1610を形成する。データサーバ1610が一旦形成されると、クライアントアプリケーション1630からクエリを受信し応答してもよく、ネイティブデータ型についての知識を有すること無くデータソース1615に誘導することを可能とする。
記載されている実施形態は、コンピュータ産業界およびデータ処理産業界において利用でき、特に異種のデータソースからデータを取り出す技術に関連する。
本実施形態は、本発明の一例のみを記載しており、本発明の範囲内で修正や変更等が可能である。また、実施形態は例示的であって限定的なものではない。
Claims (9)
- ネイティブデータ型のデータソースからクライアントアプリケーションにデータを提供するためのデータサーバを形成するためのアプリケーションプログラムを提供する工程を含むデータサーバの形成方法であって、
前記アプリケーションプログラムに基づいて、プロセッサが、
前記データソースを識別する工程と、
前記識別されたデータソースについてデータ構造を含む検査を行う工程と、
前記ネイティブデータ型から共通データモデルの所定のデータ型へと変換するためのマッピングデータを含む代表スキーマを使用し、かつ、前記共通データモデルに従って前記クライアントアプリケーションに前記データを提供するよう構成されたサーバアプリケーションを生成する工程と
を実行することで、前記代表スキーマおよび前記サーバアプリケーションにより前記データサーバが形成されることを特徴とするデータサーバの形成方法。 - 前記データソースは、リレーショナルデータソースおよび階層的データソースから選択されることを特徴とする請求項1に記載のデータサーバの形成方法。
- 前記データソースにはデータベースが含まれることを特徴とする請求項1または2のいずれかに記載のデータサーバの形成方法。
- 前記アプリケーションプログラムが、更に、ネットワークを通じて前記データソースのデータへのアクセスを可能にするために、前記生成されたサーバアプリケーションをデプロイする工程を含むことを特徴とする請求項1に記載のデータサーバの形成方法。
- 更に、URIを使用して、前記デプロイされたサーバアプリケーションにより形成される前記データサーバにアクセスする工程を含むことを特徴とする請求項4に記載のデータサーバの形成方法。
- ネイティブデータ型データソースとクライアントアプリケーションの間でデータを提供するためのデータサーバをコンピュータに形成させるコンピュータプログラムであって、
前記コンピュータプログラムが、
前記データソースを識別するコードと、
前記識別されたデータソースについてデータ構造を含む検査を行うコードと、
前記ネイティブデータ型から共通データモデルの所定のデータ型へと変換するためのマッピングデータを含む代表スキーマを使用し、かつ、前記共通データモデルに従って前記クライアントアプリケーションに前記データを提供するよう構成されたサーバアプリケーションを生成するコードと
を含むことで、前記代表スキーマおよび前記サーバアプリケーションにより前記データサーバを形成させることを特徴とするコンピュータプログラム。 - 前記コンピュータプログラムが、第1のコンピュータに供給可能であり、かつ、前記データサーバを第2のコンピュータにおいて形成するために前記第1のコンピュータにおいて実行可能であり、
前記第1のコンピュータと前記第2のコンピュータはネットワークの一部を形成していること
を特徴とする請求項6に記載のコンピュータプログラム。 - 前記クライアントアプリケーションは、常駐アプリケーションであり、かつ、第3のコンピュータから操作可能であり、
前記データソースは、第4のコンピュータと前記第2のコンピュータのいずれかに基づいて生成されること
を特徴とする請求項7に記載のコンピュータプログラム。 - ネイティブデータ型データソースからクライアントアプリケーションにデータを提供するためのデータサーバを形成するコンピュータ装置であって、
前記コンピュータ装置が、
前記データソースを識別する手段と、
前記識別されたデータソースについてデータ構造を含む検査を行う手段と、
前記ネイティブデータ型から共通データモデルの所定のデータ型へと変換するためのマッピングデータを含む代表スキーマを使用し、かつ、前記共通データモデルに従って前記クライアントアプリケーションに前記データを提供するよう構成されたサーバアプリケーションを生成する手段と
を含むことで、前記代表スキーマおよび前記サーバアプリケーションにより前記データサーバを形成するコンピュータ装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2003907198A AU2003907198A0 (en) | 2003-12-23 | Method of Generating Data Servers for Heterogenous Data Sources |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005182835A true JP2005182835A (ja) | 2005-07-07 |
Family
ID=34705576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004374615A Pending JP2005182835A (ja) | 2003-12-23 | 2004-12-24 | 異種のデータソースのためのデータサーバを生成する方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7660805B2 (ja) |
JP (1) | JP2005182835A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244498A (ja) * | 2005-02-28 | 2006-09-14 | Microsoft Corp | オブジェクトリレーショナルデータ用のデータモデル |
JP2009217424A (ja) * | 2008-03-10 | 2009-09-24 | Fujitsu Ltd | 記憶部統合装置、記憶部統合プログラム、記憶部統合方法 |
JP2017027325A (ja) * | 2015-07-22 | 2017-02-02 | 株式会社東芝 | データベースシステムおよびデータベースシステム用プログラム |
CN115659314A (zh) * | 2022-12-13 | 2023-01-31 | 合肥喆塔科技有限公司 | 一种基于混合数据的数据服务方法 |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7536634B2 (en) * | 2005-06-13 | 2009-05-19 | Silver Creek Systems, Inc. | Frame-slot architecture for data conversion |
US8694532B2 (en) * | 2004-09-17 | 2014-04-08 | First American Data Co., Llc | Method and system for query transformation for managing information from multiple datasets |
US7620641B2 (en) * | 2004-12-22 | 2009-11-17 | International Business Machines Corporation | System and method for context-sensitive decomposition of XML documents based on schemas with reusable element/attribute declarations |
US20060155716A1 (en) * | 2004-12-23 | 2006-07-13 | Microsoft Corporation | Schema change governance for identity store |
US7529931B2 (en) | 2004-12-23 | 2009-05-05 | Microsoft Corporation | Managing elevated rights on a network |
US7607164B2 (en) * | 2004-12-23 | 2009-10-20 | Microsoft Corporation | Systems and processes for managing policy change in a distributed enterprise |
US7536409B2 (en) * | 2005-02-15 | 2009-05-19 | International Business Machines Corporation | Having a single set of object relational mappings across different instances of the same schemas |
US7540014B2 (en) * | 2005-02-23 | 2009-05-26 | Microsoft Corporation | Automated policy change alert in a distributed enterprise |
US7698634B2 (en) * | 2005-03-07 | 2010-04-13 | Computer Associates Think, Inc. | System and method for data manipulation |
US7840895B2 (en) * | 2005-03-07 | 2010-11-23 | Computer Associates Think, Inc. | System and method for data manipulation |
US8768877B2 (en) * | 2005-03-07 | 2014-07-01 | Ca, Inc. | System and method for data manipulation |
US7536390B2 (en) * | 2005-03-11 | 2009-05-19 | Microsoft Corporation | Accessing Web content from any virtualized store |
US8458201B2 (en) * | 2005-04-08 | 2013-06-04 | International Business Machines Corporation | Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment |
US8145653B2 (en) * | 2005-04-08 | 2012-03-27 | International Business Machines Corporation | Using schemas to generate application specific business objects for use in an integration broker |
US20060230048A1 (en) * | 2005-04-08 | 2006-10-12 | International Business Machines Corporation | Method and apparatus for object discovery agent based mapping of application specific markup language schemas to application specific business objects in an integrated application environment |
US20060265352A1 (en) * | 2005-05-20 | 2006-11-23 | International Business Machines Corporation | Methods and apparatus for information integration in accordance with web services |
US20070073771A1 (en) * | 2005-09-28 | 2007-03-29 | Baikov Chavdar S | Method and system for directly mapping web services interfaces and java interfaces |
US9454616B2 (en) | 2005-09-28 | 2016-09-27 | Sap Se | Method and system for unifying configuration descriptors |
US7519606B2 (en) * | 2006-01-31 | 2009-04-14 | International Business Machines Corporation | Schema mapping specification framework |
US7529758B2 (en) * | 2006-02-10 | 2009-05-05 | International Business Machines Corporation | Method for pre-processing mapping information for efficient decomposition of XML documents |
US8301666B2 (en) * | 2006-08-31 | 2012-10-30 | Red Hat, Inc. | Exposing file metadata as LDAP attributes |
US8635242B2 (en) * | 2006-10-11 | 2014-01-21 | International Business Machines Corporation | Processing queries on hierarchical markup data using shared hierarchical markup trees |
US8108765B2 (en) * | 2006-10-11 | 2012-01-31 | International Business Machines Corporation | Identifying and annotating shared hierarchical markup document trees |
EP2092441A1 (en) * | 2006-10-31 | 2009-08-26 | Nielsen Media Research, Inc. et al | Methods and systems to retrieve information from data sources |
US7720868B2 (en) * | 2006-11-13 | 2010-05-18 | Microsoft Corporation | Providing assistance with the creation of an XPath expression |
US20080222515A1 (en) * | 2007-02-26 | 2008-09-11 | Microsoft Corporation | Parameterized types and elements in xml schema |
US20080270469A1 (en) * | 2007-04-26 | 2008-10-30 | Microsoft Corporation | Business metrics aggregated by custom hierarchy |
US8234240B2 (en) * | 2007-04-26 | 2012-07-31 | Microsoft Corporation | Framework for providing metrics from any datasource |
US7716233B2 (en) * | 2007-05-23 | 2010-05-11 | Business Objects Software, Ltd. | System and method for processing queries for combined hierarchical dimensions |
US20090006316A1 (en) * | 2007-06-29 | 2009-01-01 | Wenfei Fan | Methods and Apparatus for Rewriting Regular XPath Queries on XML Views |
US20090064006A1 (en) * | 2007-08-30 | 2009-03-05 | Indran Naick | Techniques for Performing Tasks Associated with Custom Folder Controls |
WO2009050167A1 (en) | 2007-10-18 | 2009-04-23 | International Business Machines Corporation | A method, apparatus and computer program for migrating records in a database from a source database schema to a target database schema |
US7860900B2 (en) * | 2008-02-25 | 2010-12-28 | Microsoft Corporation | Consistently signaling state changes |
US9201874B2 (en) | 2008-02-25 | 2015-12-01 | Microsoft Technology Licensing, Llc | Efficiently correlating nominally incompatible types |
US8307016B2 (en) * | 2008-02-25 | 2012-11-06 | Microsoft Corporation | Accessing different application data via a common data structure |
US20100161344A1 (en) * | 2008-12-12 | 2010-06-24 | Dyson David S | Methods and apparatus to prepare report requests |
US8346819B2 (en) * | 2008-12-22 | 2013-01-01 | Sap Ag | Enhanced data conversion framework |
KR20110122834A (ko) * | 2009-02-05 | 2011-11-11 | 리서치 인 모션 리미티드 | 네트워크-기반 주소록 시스템에서 다수의 연락처 정보 소스를 취합하는 시스템 및 방법 |
US9009137B2 (en) * | 2010-03-12 | 2015-04-14 | Microsoft Technology Licensing, Llc | Query model over information as a networked service |
US20130173667A1 (en) * | 2010-10-05 | 2013-07-04 | Eric Soderberg | Acyclic graph navigator |
US9286414B2 (en) * | 2011-12-02 | 2016-03-15 | Microsoft Technology Licensing, Llc | Data discovery and description service |
US9338248B2 (en) * | 2011-12-15 | 2016-05-10 | Sap Se | Parameter driven value conversion framework in client/server architectures |
US9292094B2 (en) | 2011-12-16 | 2016-03-22 | Microsoft Technology Licensing, Llc | Gesture inferred vocabulary bindings |
US10346444B1 (en) | 2012-01-12 | 2019-07-09 | OpsDog, Inc. | Management of standardized organizational data |
US9116932B2 (en) * | 2012-04-24 | 2015-08-25 | Business Objects Software Limited | System and method of querying data |
US10530894B2 (en) * | 2012-09-17 | 2020-01-07 | Exaptive, Inc. | Combinatorial application framework for interoperability and repurposing of code components |
CN103714086A (zh) * | 2012-09-29 | 2014-04-09 | 国际商业机器公司 | 用于生成非关系数据库的模式的方法和设备 |
US9311429B2 (en) * | 2013-07-23 | 2016-04-12 | Sap Se | Canonical data model for iterative effort reduction in business-to-business schema integration |
US11100218B2 (en) * | 2014-01-20 | 2021-08-24 | Prevoty, Inc. | Systems and methods for improving accuracy in recognizing and neutralizing injection attacks in computer services |
WO2016004188A1 (en) | 2014-07-03 | 2016-01-07 | FishEye Products, LLC | Realtime processing of streaming data |
EP3170100A4 (en) * | 2014-07-15 | 2017-12-06 | Microsoft Technology Licensing, LLC | Data model change management |
CN105518672B (zh) | 2014-07-15 | 2019-04-30 | 微软技术许可有限责任公司 | 跨多个模型的数据检索 |
CN105518670B (zh) | 2014-07-15 | 2021-09-07 | 微软技术许可有限责任公司 | 用于模型查询的数据模型索引 |
WO2016008087A1 (en) | 2014-07-15 | 2016-01-21 | Microsoft Technology Licensing, Llc | Managing multiple data models over data storage system |
US20170046376A1 (en) * | 2015-04-03 | 2017-02-16 | Yahoo! Inc. | Method and system for monitoring data quality and dependency |
US10803078B2 (en) | 2015-10-23 | 2020-10-13 | Oracle International Corporation | Ability to group multiple container databases as a single container database cluster |
WO2017070572A1 (en) | 2015-10-23 | 2017-04-27 | Oracle International Corporation | Application containers for container databases |
US10606578B2 (en) | 2015-10-23 | 2020-03-31 | Oracle International Corporation | Provisioning of pluggable databases using a central repository |
US10360269B2 (en) | 2015-10-23 | 2019-07-23 | Oracle International Corporation | Proxy databases |
CN108431810B (zh) | 2015-10-23 | 2022-02-01 | 甲骨文国际公司 | 代理数据库 |
US10635658B2 (en) | 2015-10-23 | 2020-04-28 | Oracle International Corporation | Asynchronous shared application upgrade |
US20170286455A1 (en) * | 2016-03-31 | 2017-10-05 | Splunk Inc. | Technology Add-On Packages Controlling a Data Input and Query System |
US11249710B2 (en) | 2016-03-31 | 2022-02-15 | Splunk Inc. | Technology add-on control console |
US11216491B2 (en) | 2016-03-31 | 2022-01-04 | Splunk Inc. | Field extraction rules from clustered data samples |
US10685019B2 (en) * | 2017-04-14 | 2020-06-16 | Salesforce.Com, Inc. | Secure query interface |
WO2019027488A1 (en) * | 2017-08-02 | 2019-02-07 | Wepay, Inc. | SYSTEMS AND METHODS FOR INSTANT ACTIVATION OF A MERCHANT PROVIDING SECURE PAYMENT AT A POINT OF SALE |
WO2019076634A1 (en) | 2017-10-17 | 2019-04-25 | Telefonaktiebolaget Lm Ericsson (Publ) | SERVICE REGISTRATION IN A COMMUNICATION NETWORK |
US11579998B2 (en) | 2019-03-14 | 2023-02-14 | Nokia Solutions And Networks Oy | Device telemetry control |
US10896196B2 (en) * | 2019-03-14 | 2021-01-19 | Nokia Solutions And Networks Oy | Data retrieval flexibility |
US11579949B2 (en) | 2019-03-14 | 2023-02-14 | Nokia Solutions And Networks Oy | Device application support |
CN111241054B (zh) * | 2019-12-12 | 2023-05-23 | 贵州电网有限责任公司 | 基于虚拟数据库的电力通信网络异地异构数据源整合方法 |
CN113590085B (zh) * | 2020-04-30 | 2023-06-16 | 广东中砼物联网科技有限公司 | 多源异构数据的处理方法、计算机设备、存储介质 |
US20220405267A1 (en) * | 2021-06-10 | 2022-12-22 | Aras Corporation | Federated services architecture that enables integrating external systems into a self-describing data model |
US20230205741A1 (en) * | 2021-12-24 | 2023-06-29 | Paypal, Inc. | Enterprise data management platform |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5596744A (en) * | 1993-05-20 | 1997-01-21 | Hughes Aircraft Company | Apparatus and method for providing users with transparent integrated access to heterogeneous database management systems |
US5634053A (en) * | 1995-08-29 | 1997-05-27 | Hughes Aircraft Company | Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases |
US5913214A (en) * | 1996-05-30 | 1999-06-15 | Massachusetts Inst Technology | Data extraction from world wide web pages |
US6263342B1 (en) * | 1998-04-01 | 2001-07-17 | International Business Machines Corp. | Federated searching of heterogeneous datastores using a federated datastore object |
US6233586B1 (en) * | 1998-04-01 | 2001-05-15 | International Business Machines Corp. | Federated searching of heterogeneous datastores using a federated query object |
US6272488B1 (en) * | 1998-04-01 | 2001-08-07 | International Business Machines Corporation | Managing results of federated searches across heterogeneous datastores with a federated collection object |
JP2001092695A (ja) | 1999-09-24 | 2001-04-06 | Hitachi Information Systems Ltd | 構造化文書とデータベースのデータ交換処理方法及びそのプログラムを記録した媒体 |
US6449620B1 (en) * | 2000-03-02 | 2002-09-10 | Nimble Technology, Inc. | Method and apparatus for generating information pages using semi-structured data stored in a structured manner |
US6985905B2 (en) * | 2000-03-03 | 2006-01-10 | Radiant Logic Inc. | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
US7260777B2 (en) * | 2001-08-17 | 2007-08-21 | Desknet Inc. | Apparatus, method and system for transforming data |
WO2002035395A2 (en) * | 2000-10-27 | 2002-05-02 | Entigen Corporation | Integrating heterogeneous data and tools |
US20040148232A1 (en) * | 2001-01-22 | 2004-07-29 | Osamu Fushimi | Electronic catalog aggregation apparatus for realizing fast and efficient electronic catalog system |
US8412746B2 (en) * | 2001-05-25 | 2013-04-02 | International Business Machines Corporation | Method and system for federated querying of data sources |
US7673282B2 (en) * | 2001-05-25 | 2010-03-02 | International Business Machines Corporation | Enterprise information unification |
US7324983B1 (en) * | 2001-11-08 | 2008-01-29 | I2 Technologies Us, Inc. | Reproducible selection of members in a hierarchy |
JP2003186735A (ja) | 2001-12-19 | 2003-07-04 | Mitsubishi Electric Corp | 構造化文書設計方法およびその装置並びに構造化文書設計プログラムおよびそれを格納した記憶媒体 |
US7574652B2 (en) * | 2002-06-20 | 2009-08-11 | Canon Kabushiki Kaisha | Methods for interactively defining transforms and for generating queries by manipulating existing query data |
GB2400940A (en) * | 2003-03-25 | 2004-10-27 | Clearing Corp | Method and system for clearing trades |
US20040225632A1 (en) * | 2003-05-08 | 2004-11-11 | Microsoft Corporation | Automated information management and related methods |
US7516157B2 (en) * | 2003-05-08 | 2009-04-07 | Microsoft Corporation | Relational directory |
US7349913B2 (en) * | 2003-08-21 | 2008-03-25 | Microsoft Corporation | Storage platform for organizing, searching, and sharing data |
US20080140705A1 (en) * | 2003-10-01 | 2008-06-12 | Wenqiang Luo | Method of Updating a Data Source from Transformed Data |
-
2004
- 2004-12-14 US US11/010,303 patent/US7660805B2/en not_active Expired - Fee Related
- 2004-12-24 JP JP2004374615A patent/JP2005182835A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244498A (ja) * | 2005-02-28 | 2006-09-14 | Microsoft Corp | オブジェクトリレーショナルデータ用のデータモデル |
JP2009217424A (ja) * | 2008-03-10 | 2009-09-24 | Fujitsu Ltd | 記憶部統合装置、記憶部統合プログラム、記憶部統合方法 |
JP2017027325A (ja) * | 2015-07-22 | 2017-02-02 | 株式会社東芝 | データベースシステムおよびデータベースシステム用プログラム |
CN115659314A (zh) * | 2022-12-13 | 2023-01-31 | 合肥喆塔科技有限公司 | 一种基于混合数据的数据服务方法 |
CN115659314B (zh) * | 2022-12-13 | 2023-04-07 | 合肥喆塔科技有限公司 | 一种基于混合数据的数据服务方法 |
Also Published As
Publication number | Publication date |
---|---|
US7660805B2 (en) | 2010-02-09 |
US20050149552A1 (en) | 2005-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005182835A (ja) | 異種のデータソースのためのデータサーバを生成する方法 | |
US7558791B2 (en) | System and method for ontology-based translation between directory schemas | |
US6601071B1 (en) | Method and system for business to business data interchange using XML | |
JP4406609B2 (ja) | 単一のインターフェイスからのデータの多重階層を管理するための手法 | |
JP4516566B2 (ja) | Xml文書とリレーショナルデータと間のマッピングにおける階層情報の保持 | |
US9159040B2 (en) | Accessing a ERP application over the internet using strongly typed declarative language files | |
US7386567B2 (en) | Techniques for changing XML content in a relational database | |
JP5113764B2 (ja) | データベースと電子ドキュメントとの間での階層データの転送および表示 | |
Frischmuth et al. | Ontowiki–an authoring, publication and visualization interface for the data web | |
US20070282869A1 (en) | Automatically generating web forms from database schema | |
JP2001282594A (ja) | 企業業務統合化システム、複数のデータ・ソースを統合化する方法 | |
US20040205615A1 (en) | Enhanced mechanism for automatically generating a transformation document | |
US7668888B2 (en) | Converting object structures for search engines | |
US20070027897A1 (en) | Selectively structuring a table of contents for accesing a database | |
US7562292B2 (en) | Systems engineering document prototyping system, program product, and related methods | |
WO2001033433A1 (en) | Method and apparatus for establishing and using an xml database | |
JP3914081B2 (ja) | アクセス権限設定方法および構造化文書管理システム | |
US20030037031A1 (en) | Mechanism for automatically generating a transformation document | |
JP3842576B2 (ja) | 構造化文書編集方法及び構造化文書編集システム | |
JP2002041407A (ja) | 情報処理システム、情報公開サーバ、および、ポータルサーバ | |
AU2004235665B2 (en) | Method of generating data servers for heterogenous data sources | |
US8069172B2 (en) | Re-executing query objects without affecting transaction data in an application development framework not providing for creation of multiple instances of the same query object | |
Škrbić et al. | Bibliographic records editor in XML native environment | |
KR100661243B1 (ko) | 토픽맵 에디터와 그 토픽맵 에디터에서의 토픽맵 처리방법및 기록매체 | |
Coles | SQLXML |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080513 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080606 |