JP2007509445A - データセンターの中で使用するためのデータフォーマット変換システム - Google Patents

データセンターの中で使用するためのデータフォーマット変換システム Download PDF

Info

Publication number
JP2007509445A
JP2007509445A JP2006536852A JP2006536852A JP2007509445A JP 2007509445 A JP2007509445 A JP 2007509445A JP 2006536852 A JP2006536852 A JP 2006536852A JP 2006536852 A JP2006536852 A JP 2006536852A JP 2007509445 A JP2007509445 A JP 2007509445A
Authority
JP
Japan
Prior art keywords
format
markup language
request
data
server
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.)
Granted
Application number
JP2006536852A
Other languages
English (en)
Other versions
JP2007509445A5 (ja
JP4707670B2 (ja
Inventor
カレムプディ ブイ. ラマラオ,
Original Assignee
コンフォーマティブ システムズ, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コンフォーマティブ システムズ, インコーポレイテッド filed Critical コンフォーマティブ システムズ, インコーポレイテッド
Publication of JP2007509445A publication Critical patent/JP2007509445A/ja
Publication of JP2007509445A5 publication Critical patent/JP2007509445A5/ja
Application granted granted Critical
Publication of JP4707670B2 publication Critical patent/JP4707670B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

様々な実施形態において、機器は様々な機能を実施するために使用され得る。一部の実施形態においては、機器はDBMSサーバと共に使用され得る。機器はリクエストを生成し得、DBMSサーバは結果を生成し得る。機器は、リクエストに対応するリクエスト者への返信のために結果を異なるフォーマットに変換し得る。他の実施形態において機器は、コンテンツ管理システムやファイルシステム等のような他のバックエンドアプリケーションを実行するように構成されているコンピューターシステムと使用され得る。他の実施形態において、機器は、複数のサーバの第2のサーバへの第1のインプットデータとして提供される第1のアウトプットデータを、複数のサーバの第1のサーバから受信し得る。機器は、第1のアウトプットデータを第1のマークアップ言語フォーマットに変換し、該第1のフォーマットを第2のフォーマットに変換するように構成され得る。

Description

本発明は、データセンターの中のデータベースおよびファイルシステムの、拡張可能マークアップ言語(XML)、標準汎用マークアップ言語(SGML)、ハイパーテキストマークアップ言語(HTML)のような構造化ドキュメント、そして非構造化データおよびドキュメントを処理および変換する分野に関する。
ネットワークが遍在することによって、データセンターはコンピューター世界にとって重要なサービスとして現れた。一般的に、データセンターは、ユーザーへデータセンターと同様に、コンテンツ管理サービス、ファイルシステムサービスなど、他のアプリケーションサービスの中に維持される様々なデータベースへのアクセスを含む、アプリケーションサービスを提供する様々なサーバを含み得る。
不都合にも、様々なアプリケーションは、データを、異なるフォーマットにおいて、および/またはユーザによって所望されたものとは異なるフォーマットに生成し得る。従って、アプリケーションサーバ、ウェブサーバ、および/またはユーザのコンピュータシステムは、様々なフォーマットの間を変換することがよくタスクされる。変換ソフトウェアは、オリジナルにデザインされたタスクにおいてのサーバの効率を減らし、コンピュータ資源を消費する。さらに、データセンタのサービスを使用する時にユーザによって経験される待ち時間は、増え得る。
一部の実施形態においては、機器および方法は、データベース管理システム(DBMS)を実行するコンピューターシステムとの使用のために考慮されている。機器は、リクエストを生成ように構成されている。コンピューターシステムは、リクエストを受信するように機器と結合され、そしてDBMSは、一つ以上のデータベースのうちの少なくとも一つのデータベース内のリクエストを処理するように構成されている。コンピューターシステムは、機器にリクエストの結果を第1のフォーマットにおいて受け取るように構成されている。機器は、リクエストに対応するリクエスト者への返信のために結果を第二フォーマットに変換するように構成されている。機器およびコンピューターシステムを含む装置も検討されている。他の実施形態においては、機器は、コンテンツ管理システムやファイルシステム等のような他のバックエンドアプリケーションを実行するように構成されているコンピューターシステムと使用し得る。
他の実施形態においては、機器および方法は、複数のサーバと使用し得る。機器は複数のサーバと結合し、複数のサーバの第1のサーバからの第1のアウトプットデータを受信し得る。第1のアウトプットは、複数のサーバの第2のサーバへの第1のインプットデータとして提供され、第1のアウトプットデータは、第1のインプットデータのための第2のサーバによって使用された第2のフォーマットとは異なる第1のフォーマットにある。機器は、第1のアウトプットデータを第1のマークアップ言語へ変換し、そして第1のマークアップ言語を第2のフォーマットへ変換するように構成されている。機器および複数のサーバを含む装置も意図されている。
更なる実施形態においては、機器はデータセンターまたは他のコンピューター設備の中の他の機能を実行し得る。例えば、機器は、レンダリングエンジン、XMLルータ、およびファイアーウォール等(例えば、ウィルス検知)を実行し得る。
下記詳細な説明は、添付された図を参照する。
発明が様々な変更および代替の形成が可能である一方で、その特定の実施形態は、図面の実施形態の様に記載され、ここで詳細に説明される。しかしながら、そこの図面および詳細な説明は、開示された特定の形式へ発明を限定することを意図するものではないことが理解されるべきである。反対に、添付された請求項として定義された本発明の精神および範囲の中の全ての変更、均等物、および代替物を網羅することが意図される。
機器の概要
図1を参照すると、機器10の一実施形態のブロック図が示されている。図1の実施形態においては、機器10は、ネットワークインターフェース回路12、プロセッサ14Aおよび任意に14Bのような一つ以上のプロセッサ、ドキュメントプロセッサ16、およびメモリ18を含み得る。ネットワークインターフェース回路12は、一つ以上のネットワーク接続を介して、一つ以上のネットワックに結合されている。様々なコンピューターシステム(図1に示されていない)も、一つ以上のネットワークに結合されている。ネットワークインターフェイス回路12もプロセッサ14A〜14Bに結合されている。プロセッサは、メモリ18およびメモリ18にも結合されているドキュメントプロセッサ16に結合されている。示されている実施形態においては、メモリ18はスタイルシートコンパイラ20、スキーマコンパイラ20、一つ以上の記号デーブル24、一つ以上の構文解析時間式ツリー(parse−time expression tree)26、命令テーブル30、余白テーブル32、文書型定義(DTD)テーブル34、式リストテーブル36、テンプレートリストテーブル38、様々なドキュメントプロセッサデータ構造39、および任意に他のソフトウェア38を格納する。
一般的に、機器10は、データセンターの中に含み得る他のコンピューターシステムのための一つ以上のサービスを提供するように構成され得る。下記所定の様々な実施形態は、網羅的ではないが、データベースプロキシ、レンダリングエンジン、データ統合スイッチ、マークアップ言語ルータ、およびファイアーウォールを含み得る。機器10は、インプットドキュメントをアウトプットドキュメントに変換するためにデザインされたハードウェア/ソフトウェアを含み得、一部の実施形態においては、スタイルシートによって特定された変換に基づく。機器10によって処理された様々なサービスは、一部の実施形態においては、好ましいサービスを達成するための変換機能を使用し得る。機器10は、サーバに、サーバが提供するために図られたサービスへより多くの資源を捧げる許可を与え、データセンターのサーバからサービスをオフロードするために使用し得る。ここで使用されているように、「機器(appliance)」と言う用語は、ハードウェアと、ネットワークのインストールのためのユニットとして販売されている任意にソフトウェアの任意の組み合わせに関連し得る。機器は、通常、仮にあったとしても、相対的にわずかな構成(例えば、サーバまたはパーソナルコンピューターのような汎用コンピューターシステムに比べて)のネットワークにインストールされるようにデザインされ得、通常、仮にあったとしても、比較的にわずかなサポートで動作するようにデザインされ得る。機器にソフトウェアが含まれている場合、ソフトウェアは通常、機器にプリインストールされている(ネットワークを介して一部の実施形態の中で、たとえソフトウェアアップグレードが機器にダウンロードされ得、または追加のソフトウェアが機器にインストールされ得るが)。管理人は、ネットワークを介して一部の実施形態の中で、機器にアクセスし得る(例えば、ウェブブラウザインターフェイスが提供され得る)。
ここで使用されているように、「ドキュメント」と言う用語は、コンテンツを解釈するために使用できる対応する定義済の構造を有する任意のコンテンツを表す。コンテンツは、高度に構造され得、(XMLドキュメント、HTMLドキュメント、pdfドキュメント、ワードプロセッサドキュメント、データベース等のような)またはプレーンテキストドキュメント(構造が例えば、文字の連続になり得る)またはデータ(構造が例えば、特定の配列に整えられたデータアイテムセットになり得る)のように単純になり得る。下記説明されている機器10の様々なアプリケーションの実施形態は、リクエスト(例えば、データベースへのアクセス)、データ、または他の種類のドキュメントを含むドキュメントコンテンツを提供し得る。
一部の実施形態においては、機器10は、ネットワーク接続を介して、ドキュメントに適用されるスタイルシート、ドキュメントに適用されるスキーマ、および/またはドキュメント自身(ドキュメントにスタイルシート/スキーマを適用するリクエストと共に)を受け得る。スタイルシートを適用するためのリクエストに応じて、機器10は、ドキュメントにスタイルシートを適用し得、ネットワークを介してリクエスト者に送られるように変換されたドキュメントを生成し得る。一部の実施形態においては、機器10は、ドキュメントを解析するためのリクエストも受け得る(XMLのためのsimple application programming interface(API)(SAX)またはdocument object model(DOM))のような定義済のフォーマットへ)。スキーマ(またはDTD)を適用するためのリクエストに応じて、機器10は、スキーマまたはDTDに従ってドキュメントを検査し得る。
他の実施形態においては、機器10はリクエストを受け得、リクエストを解釈するために他のソフトウェア28を含み得る。機器10は、リクエストに基づいて他のネットワークデバイス(例えば、サーバ)への通信を生成し得、リクエストの処理を援助するために変換機能も使用し得る。
一実施形態においては、変換機能は、XMLドキュメントおよび変換(XSLT)のための対応するXMLスタイルシート言語のために最適化され得る。XMLおよびXSLTスタイルシートに関連した追加の詳細は、下記に示されている。XSLTは、式のためにXPath言語に基づいている。XPathに基づいて開発された追加の言語であるXQueryは、他の実施形態においても使用され得る。さらに先に、他の実施形態は、任意のマークアップ言語および対応する式言語に基づき得る。一般に、「マークアップ言語」は、ドキュメントコンテンツの構造を定義するために使用され得る任意の言語である。マークアップは通常、コンテンツを識別する様々なタグを含み得、コンテンツの性質についての情報を提供し得る。例えば、XMLは、コンテンツの構造を説明するために使用され得る要素タグが定義されることを許可する。さらに要素は、要素をさらに説明する様々な属性を含み得、またはコンテンツについての追加の情報を提供し得る。
XMLドキュメントは、ツリーの根がドキュメントを全体として識別し、ドキュメントの互いのノードは根の子孫とする階層型ツリー構造を有する。様々な要素、属性、およびドキュメントコンテンツがツリーのノードを構成する。要素は、要素が含むコンテンツの構造を定義する。それぞれの要素は要素名を有し、要素は、それぞれが要素名を含む開始タグおよび終了タグを使用するコンテンツの範囲を定める。要素は、コンテンツの構造をさらに定義し得るサブ要素として他の要素を有し得る。さらに、要素は要素または要素コンテンツの構造についての情報をさらに提供する氏名/値の組み合わせである属性(要素名に続いて開始タグに含まれている)を含み得る。XMLドキュメントはXMLドキュメント、コメント等を読み取るアプリケーションにパスされる処理命令も含み得る。一般に、ドキュメントの「ノード」は、構造定義(例えば、XMLの要素および/または属性)および/またはドキュメントコンテンツを含み得る。一実施形態においては、ノードは要素、属性、処理命令、コメント、およびテキストを含み得る。
XSLTスタイルシートは、テンプレートの集合としてみなし得る。各テンプレートは、(i)ノードを原始(source)文書のツリー構造を選択する式(expression)、および(ii)原始文書のそれぞれの一致するノードのために例示化されるようにアウトプットドキュメントの構造の対応する一部分を特定する本文を含み得る。原始文書にスタイルシートを適用することは、原始文書のそれぞれのノードのための一致するテンプレートを見つることを試み、アウトプットドキュメントのツリーに一致するテンプレートの本文を例示化することを含み得る。テンプレートの本文は、(i)アウトプットドキュメントに例示化される文字コンテンツ、(ii)アウトプウトドキュメントの中にコピーされる一致するノードからのコンテンツの選択、(iii)アウトプットドキュメントに例示化される文の結果と一緒に評価される文のうちの一つ以上を含み得る。同時に、例示化されるコンテンツおよび評価される文を、テンプレートと一致するノードに行う「行動(action)」と呼び得る。テンプレートの本文は、一つ以上のノードを選択する式、およびスタイルシートのテンプレートが選択済のノードに適用される原因を引き起こし、従ってテンプレートを効果的に入れ子することを含む「適用テンプレート」を一つ以上含み得る。適用テンプレート文への一致が見つけられた場合、結果のとして残ったテンプレートは、適用テンプレート文を含むテンプレートの例示化の中で例示化される。テンプレートの本文の中の他の文においては、ノードと対照して一致する式(および文は一致するノードにおいて評価され得る)も含み得る。XSLTスタイルシートがここの一実施形態に使用され得る間、通常「スタイルシート」は、原始文書をアウトプットドキュメントに変換するための任意の仕様を含み得る。原始文書およびアウトプットドキュメントは、同じ言語になり得(例えば、原始文書およびアウトプットドキュメントは異なるXML用語になり得る)、または異なり得る(例えば、XMLからpdfへ等)。スタイルシートのもう一実施形態は、HTMLおよび/またはXML Queryのために定義されたスタイルシートをカスケードすることである。
スタイルシートにおいて使用されている式は、通常、ノード識別子の演算子と加えて、ノード識別子および/または値の間の親子(または先祖/子孫)関係を特定するためにノード識別子および/またはノードの値を含み得る。式は、ノードを一致させるための予備の状態である述語も含み得る。述語は、式の結果が真(およびノードが式ノードと一致する)または嘘(およびノードが式と一致しない)のどちらかであるコンテキストノードとして対応するノードと一緒に評価される式である。従って、式は、ドキュメントのツリーと対照して一致するノードのツリーとしてみなされ得る。XSLTに使用されている式言語であるXPathにおいては、式は、「コンテキストノード」のコンテキストの中でも評価され得る(すなわち、式は、コンテキストノードの先祖、子孫、親、または子供と同様に他のノード名との関係として式においてのノード名を特定するコンテキストノードと関連し得る)。所定のドキュメントノードは、所定のドキュメントノードが式の評価を介して選択された場合、式を満たし得る。すなわち、式においての式ノード識別子は、式において特定されている所定のドキュメントノードと同じ関係を有す所定のドキュメントノードの識別子またはドキュメントノード識別子と一致し、式に使用されている任意の値が所定のドキュメントノードと関連する対応する値に対して等しいということである。ノードが所定の式を満たす場合、ドキュメントノードは、所定の式のための「一致ノード」としても参照され得る。この議論の残りの中の一部の場合においては、式のツリーのノードをドキュメントのノードから区別することが、明確さのために役に立ち得る。従って、ノードが式のツリーの一部の場合、ノードは、「式ノード」として参照され得、ノードが処理されているドキュメントの一部の場合、ノードは、「ドキュメントノード」として参照され得る。ノード識別子は、氏名(例えば、要素名、属性名等)または種類によってノードを識別する式の構造(例えば、ノードテスト式は任意のノードと一致し得、またはテキストテスト式は任意のテキストノードと一致し得る)を含み得る。一部の場合において氏名は、特定の名前空間に属し得る。そのような場合においてノード識別子は、名前空間と関連した氏名であり得る。XMLにおいては、名前空間は、要素を認定する方法を提供し、universal resource identifier(URI)によって識別された名前空間名と関連することによって氏名を属性させる。従って、ノード識別子は、クォリファイドネームとなり得る(任意の名前空間プレフィックス、コロンによって続き、氏名によって続く)。ここで使用されている氏名(例えば、要素名、属性名等)は、クォリファイドネームを含み得る。
示されている実施形態においては、ドキュメントにスタイルシートを適用することは、下記の方法において行われ得る。スタイルシートコンパイラ20は、スタイルシートを一つ以上のデータ構造に編集し、ドキュメントプロセッサ16によっての使用に対してコードするためにプロセッサ14A〜14Bの一つにおいて実行されるソフトウェア(例えば、複数の命令)を含み得る。ドキュメントプロセッサ16は、原始文書にデータ構造を適用し得、アウトプットドキュメントを生成する。
特に、一実施形態においては、スタイルシートコンパイラ20は、ノード識別子(文字列比較を含む)よりむしろ数字を比較することによって式の評価がドキュメントプロセッサにおいて実行され得るように、ノード識別子にシリアル番号を割り当て得る。スタイルシートコンパイラ20は、記号テーブル24にノード識別子のシリアル番号へのマッピングを格納し得る。さらに、スタイルシートコンパイラ20は、スタイルシートからの式を抽出し得、式のマッチングのためにドキュメントプロセッサにおいて使用される式のツリーのデータ構造を生成する(例えば、構文解析時間式ツリー26)。さらに先に、スタイルシートコンパイラ20は、それぞれの一致する式のために実行される命令(および一実施形態において、ランタイム述語を評価するために実行される命令)と一緒に命令テーブル30を生成し得る。命令テーブルにおいての命令は、ドキュメントプロセッサ16によって実行された時、式が一致した時に実行されると定義された行動を行う結果になり得る。一部の実施形態において命令は、行動が行われるように含み得る(例えば、命令および行動の間の1対1対応があり得る)。他の実施形態においては、少なくとも一部の行動は、二つ以上の命令を実行することによって実現化され得る。スタイルシートコンパイラ20は、原始文書においての様々な種類の余白がどのようにして処理されるかを定義しながら余白テーブル32(例えば、保存される、取り除かれる等)、式リストテーブル36、およびテンプレートリストテーブル38も生成し得る。
スキーマコンパイラ22は、プロセッサ14A〜14Bの一つに実行された命令を同様に含み得る。スキーマコンパイラ22は、DTDテーブル34と同様に一つ以上の記号テーブル24を生成するために(ノード識別子をシリアル番号と入れ替えながら)スキーマおよびDTDを編集し得る。一般に、DTDおよびスキーマは、許されたドキュメント構造および所要のドキュメント構造の両方の定義を含み得る。ドキュメントの著者は従って、DTDおよび/またはスキーマと共に有効なドキュメントの所要のおよび許された構造を説明し得る。一部の場合においては、DTDまたはスキーマは、属性のためのデフォルト値も含み得る。一実施形態においては、ドキュメントのエンティティ参照を入れ替えるために使用されているエンティティ宣言、有効なドキュメントのために必要な属性である所定の要素の属性、ドキュメントの所定の要素に特定され得ない属性のための属性デフォルト値、ドキュメントの構造のための必要条件(例えば、特定のサブ要素の所要の最小/最大/特定の数字等)、およびドキュメントの許された構造の定義のような様々な情報を含み得る。DTDテーブル34は、エンティティ参照入れ替えのテーブル、所要の属性のテーブル、属性のデフォルトのテーブル、および許された構造を識別する骨組みのツリー(および適用可能な場合、所要の構造)を含み得る。
ドキュメントプロセッサ16は、ドキュメントを解析し、構文解析時間式ツリーにおいてドキュメントノードを式ノードと一致させるためのハードウェア回路を含み得る。すなわち、ドキュメントを解析し、ドキュメントノードを式ノードと一致させるハードウェア回路は、任意のソフトウェア命令の実行をせずにこれらの動作を行い得る。ハードウェアは、一致するドキュメントノードのそれぞれの式のために解析されたコンテンツおよび表示を格納する様々なデータ構造を生成し得る。ハードウェアは、アウトプットドキュメントを生産するために結合された結果を生成しながら、所定の式のそれぞれの一致するドキュメントノードに所定の式のための命令テーブル30からの命令を実行し得る。一実施形態の追加の詳細は、下記に提供されている。
上記に記載の通り、示されている実施形態においては、スタイルシートコンパイラ20およびスキーマコンパイラ22は、ソフトウェアにおいて実行され、ドキュメントプロセッサ16は、ハードウェアにおいて実行される。一部の実施形態においては、機器10の性能においての重要な要因は、変換のリクエストがされ、ドキュメントが提供された時のドキュメントの処理があり得る。すなわち、スタイルシートおよび/またはスキーマは、多くの場合において、処理されているドキュメントの数と比べて相対的にまれに変換する。所定のスタイルシートは、スタイルシートが変換される前に(アップデータされたスタイルシートまたは全体で異なるスタイルシートに)、複数のドキュメント(例えば、少なくとも多大なドキュメントの命令)に適用され得る。同様な関係は、適用されているスキーマおよびドキュメントのために保持され得る。従って、スタイルシート/スキーマ(ソフトエウェアを使用しながら)からの相対的に不変な情報を専用のカスタムハードウェアによって効果的にアクセスされ得るデータ構造に取り込むことは、機能性ソルーションを提供し得る。さらに、ハードウェアにスタイルシート/スキーマコンパイルを有することは、一部の実施形態において、異なるスタイルシート/スキーマ言語を実行、および/またはカスタムハードウェアの変換無しで言語仕様の変換を実行するための柔軟性を提供し得る。例えば、XSLT、XPath、およびXMLスキーマは、今もなお開発され得、そして将来新しい機能がこれらの言語に加えられ得る。コンパイラは、これらの新しい機能を処理するために適応され得る。使用されるスタイルシート/スキーマは、事前に提供され得、それに従って、スタイルシート/スキーマを編集する時間の重要性が少なくなる。しかしながら、他の実施形態においては、スタイルシートコンパイラ20およびスキーマコンパイラ22の一つまたは両方が、ハードウェアまたはハードウェアおよびソフトウェアの組み合わせにおいて実行され得る。
ネットワークインターフェイス回路12は、ネットワーク接続においての低ラベルな電子的およびプロトコル詳細を処理し得、処理のために受け取ったパケットをプロセッサ14A〜14Bにパスし得る。任意の種類のネットワークが使用され得る。例えば、一部の実施形態においては、ネットワーク接続は、ギガビットイーサネット(登録商標)コネクションになり得る。所定のラベルの帯域幅を達成するため、および/またはネットワーク接続においての重複性を提供し得るために、要求されたように一つ以上のコネクションが提供され得る。
プロセッサ14A〜14Bは、任意の種類のプロセッサを含み得る。例えば、一実施形態においては、プロセッサ14A〜14Bは、PowerPCネットワークプロセッサになり得る。他の実施形態においては、プロセッサ14A〜14Bは、ARM、インテルIAー32、MIPS等のような他の命令セット構成を実行し得る。
任意の相違接続は、プロセッサ14A〜14B、ドキュメントプロセッサ16、およびメモリ18を結合するために使用され得る。さらに、プロセッサ14A〜14Bは、プロセッサ14A〜14Bのコネクションから分れて、ドキュメントプロセッサ16に結合され、そしてそのドキュメントプロセッサはメモリ18に結合される。例えば、一つのインプリメンテーションにおいては、プロセッサ14A〜14Bは、一つ以上のperipheral component interconnect express(PCI−X)周辺成分相違接続エクスプレスのバスを使用しながらドキュメントプロセッサに結合され得る。
一部の場合においては、DTD、スキーマ、またはスタイルシートはドキュメントに埋め込みされ得ることに留意されたい(直接またはスキーマまたはスタイルシートのポインターとしてのどちらか)。そのような場合においては、DTD、スキーマ、またはスタイルシートは、ドキュメントから抽出され得、そして説明されているように別々に提供されるスキーマまたはスタイルシートとために処理される。
メモリ18は、揮発性または不揮発性のメモリの任意の種類を含み得る。例えば、メモリ18は、一つ以上のRAM(例えば、SDRAM、RDRAM、SRAM等)、フラッシュメモリまたバッテリーバックアップ式RAMのような不揮発性メモリ、ディスクまたCD−ROM等のような磁気記憶装置または光学的記憶装置を含み得る。メモリ18は、別々にアクセス可能な複数のメモリを含み得る(例えば、プロセッサ14A〜14Bにのみアクセス可能な一つの区分または複数の区分およびドキュメントプロセッサ16にのみアクセス可能なもう一つの区分または複数の区分)。
図1は、スタイルシートコンパイラ20、スキーマコンパイラ22、およびメモリ18において格納されている他のソフトウェア28を示す。一般に、スタイルシートコンパイラ20、スキーマコンパイラ22、および/または他のソフトウェア28は、任意のコンピューターアクセス可能媒体上に符号化され得る。一般的に言えば、コンピューターアクセス可能媒体は、コンピューターに命令および/またはデータを提供するために使用される間、コンピューターによってアクセス可能な任意の媒体を含み得る。例えば、コンピューターアクセス可能媒体は、ネットワークおよび/またはワイアレスリンクのような通信媒体を介して電気的、電磁的またはデジタル信号のような伝送媒体または信号を介してアクセス可能な媒体と同様に、磁気媒体また光学的媒体、例えばディスク(固定またはリムーバブル)、CD−ROM、またはDVD−ROM、のような記憶装置媒体、RAM(例えば、SDRAM、RDRAM、SRAM等)、ROM、フラッシュメモリ等のような揮発性または不揮発性記憶装置を含み得る。
一部の実施形態においては、コンピューターアクセス可能媒体は、別々のコンピューターシステムまたはコンパイルを行うためにスタイルシートコンパイラ20および/またはスキーマコンパイラ22を実行し得るシステムに含み得る。コンパイルからの結果からなるデータ構造/コードは、機器10に通信され得る(例えば、機器10へのネットワーク接続を介して)。
ここの説明がドキュメントに適用されたスタイルシートの実施形態を含み得る間、他の実施形態は、ドキュメントに複数のスタイルシートを適用すること(要望されているように、同時にまたは連続的にのどちらか)、そして複数のドキュメントにスタイルシートを適用すること(要望されているように、コンテキスト交換と同時にまたは連続的にのどちらか)を含み得る。
次に図2を参照すると、ドキュメントプロセッサ16の一実施形態のブロック図が示されている。図2の実施形態においては、ドキュメントプロセッサ16は、パーサ回路40、式プロセッサ42、変換エンジン44、アウトプットジェネレータ46、およびバリデータ回路48を含み得る。パーサ回路40は、式プロセッサ42およびアウトプットジェネレーター46に結合されている。式プロセッサ42は、アウトプットジェネレータ46に結合されている変換エンジン44に結合されている。バリデータ48は、アウトプットジェネレータ46に結合されている。図2においての装置は、お互いに直接結合され得(例えば、装置の間の信号ラインを使用しながら)、メモリ18を介して結合され得(例えば、ソース装置はデスティネーション装置へ通信される情報をメモリ18に書き込み得、そしてそのデスティネーション装置はメモリ18から情報を読み得る)、またはその両方となり得る。
パーサ回路40は、ドキュメントを受け取り得、そして式プロセッサ42およびバリデータ回路48のためのイベントを識別し、そして解析済コンテンツとデータ構造も生成しながらドキュメントを解析する。ドキュメントプロセッサ16がスタイルシートに従ってドキュメントを変換するためとされた場合、解析済コンテンツは変換エンジン44のためにメモリ18のデータ構造に格納され得る。代わりに、ドキュメントが解析されるためだけの場合、パーサ回路40は、SAXおよびDOMフォーマットにアウトプットされるために、解析済コンテンツをアウトプットジェネレータ46に提供し得る。パーサ回路40は、同様に、メモリ18を介しても、解析済コンテンツをアウトプットジェネレータ46に提供し得る。
一実施形態においては、パーサ回路40は、メモリ18からの記号テーブル24、DTDテーブル34、および余白テーブル32にアクセスし得る。パーサ回路40は、ドキュメントを解析し、そして検出済ドキュメントノードに関連したイベントを生成する。さらに詳しく、パーサ回路40は、ドキュメントのノード識別子を記号テーブル24の対応するシリアル番号に変換し、そしてシリアル番号をイベントの一部として式プロセッサ42(およびバリデータ回路48)に伝送する。さらに、パーサ回路40は、変換エンジン44のためにドキュメントの解析済コンテンツを格納する解析済コンテンツテーブルを生成する。
式プロセッサ42は、パーサ回路40からイベントを受け取り(ドキュメントにおいて解析されたドキュメントノードを識別しながら)、そしてパーサ回路40によって識別されたドキュメントノードを構文解析時間式ツリー26に対して比較する。式プロセッサ42は、それぞれの式に対して一致するドキュメントノードのリストを変換エンジン44にアウトプットする。変換エンジン44は、パーサ回路40によって組み立てられた解析済コンテンツのデータ構造を受け取り、そしてアウトプットドキュメントのための結果を生成するために命令テーブル30からの対応する命令を実行する。変換エンジン44は、任意のランタイム式も実行し得、ランタイム式を満たさないテンプレートおよび式のマッチリストからのドキュメントノードを排除する。一部の実施形態においては、それぞれの命令は他から独立し得、そしてこのようにして、実行は任意の順序において生じ得る。アウトプットジェネレータ46は、結果を順番に再組み立てし得、そしてメモリ18にアウトプットドキュメントを書き込み得る(またはメモリ18を介さずにアウトプットドキュメントをプロセッサ14A〜14Bに送り得る)。プロセッサ14A〜14Bは、アウトプットドキュメントを読み取るためにソフトウェアを実行し得、そしてリクエスト者にアウトプットドキュメントを伝送する。
一つの特定の実行においては、パーサ回路40はドキュメントをインラインにおいて受け取り得、そして同様に、パーサ回路40はイベントをインラインにおいて式プロセッサ42に伝送し得る。すなわち、ドキュメントの一部が受け取られ、再組み立て(例えば、プロセッサ14Aによって)される中で、プロセッサ14Aはドキュメントの一部をパーサ回路40にパスする。パーサ回路40は、従って、プロセッサ14Aがドキュメントの全体を受け取る前に、解析を開始し得る。同様に、イベントは識別されたように、式プロセッサ42にパスされる。一方、解析済コンテンツテーブルおよびテンプレート/式のマッチリストは、メモリ18を介してパスされる(変換エンジン44への通信を越えて点線の楕円によって示される)。
バリデータ回路48は、パーサ回路40によって送られたイベントも受け取り得、スキーマ/DTD(骨組みのツリーおよびDTDテーブル34によって表されているように)に適用し得、そしてスキーマにおいて示されているように、ドキュメントが有効であるかを判断し得る。ドキュメントが有効な場合、バリデータ回路48は、アウトプットジェネレータ46に伝送される成功メッセージを生成し得る。ドキュメントな無効な場合、バリデータ回路48は、誤動作メッセージ(誤動作の理由を示す)を生成し得、そして誤動作メッセージをアウトプットジェネレータ46に伝送し得る。アウトプットジェネレータ46は、メッセージをメモリ18に格納し得る(そしてプロセッサ14A〜14Bはメッセージを引き続きリクエスト者に伝送し得る)。
データセンター概要
図3を参照すると、機器10が様々な目的のために使用され得るデータセンターの一実施形態においてのブロック図が示されている。データセンターは、インターネットまたは任意の他の要望されているネットワーク(例えば、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)等、または上記ネットワークの任意の組み合わせ)に結合され得る。データセンターは、ファイアーウォール50(一部の実施形態において、機器10の一つ以上の事例を含み得る)、一つ以上のルータ52(一部の実施形態において、機器10の一つ以上の事例を含み得る)、ウェブサーバ54A〜54Bのようなウェブサーバ、一つ以上のデータ統合スィッチ56(一部の実施形態において、機器10の一つ以上のインスタンスを含み得る)、アプリケーションサーバ58A〜58Bのようなアプリケーションサーバ、データベースプロキシ60(一部の実施形態において、機器10の一つ以上のインスタンスを含み得る)、およびリレーショナルデータベース管理システム(RDBMS)を実行するサーバ62を含み得る。
図3において示されている結合は、ロジカルになり得る。すなわち、様々な論理的通信経路が図3において示されている。従って、ファイアーウォール50は、ウェブサーバ54A〜54Bにロジカルに結合され得る(そして潜在的にアプリケーションサーバ58A〜58Bも)ルータ52にロジカルに結合され得る。データ統合スィッチ56は、ウェブサーバ54A〜54Bおよびアプリケーションサーバ58A〜58Bにロジカルに結合され得る。アプリケーションサーバ54Aは、RDBMSサーバ62にロジカルに結合されているデータベースプロキシ60にロジカルに結合され得る。物理的に、図3において示されている様々なデバイスは、ネットワーク(例えば、LAN、WAN、MAN、ワイアレス等、またはその組み合わせ)、地理的に近いまたは地理的に分配等されている複数の別々のネットワークに結合され得る。例示的ネットワークは、イーサネット(登録商標)ネットワーク、トーケンリング等を含み得る。
ファイアーウォール50は、データセンターをインターネットまたは他のネットワークからの認定されていないアクセス/攻撃から守り得る。一部の実施形態において機器10は、データセンターに提供されたドキュメントの中のウィルスを検知するためにファイアーウォール50の中に実施され得る。図13に関しての例示的な実施形態が、下記に説明されている。
ルータ52は、ファイアーウォールを介してパスするパケットを受け取り得、そしてパケットをデータセンターの範囲で、適切な受信機への経路を決め得る(例えば、ウェブサーバ、アプリケーションサーバ等)。一部の実施形態においては、機器10は、XMLパケットの経路を決めながら、XMLルータとして使用され得る。図12に関しての例示的な実施形態が、下記に説明されている。
ウェブサーバ54A〜54Bのようなウェブサーバは通常、外部のネットワーク(例えば、インターネットまたは他のネットワーク)からのウェブコンテンツのリクエストに対する応答として、ウェブコンテンツ(例えば、ウェブページ)を提供するために責任があり得る。一部の場合においては、ウェブコンテンツの一部がアプリケーション(RDBMSのような)から引き出された場合、ウェブサーバはアプリケーションサーバと通信し得る。
アプリケーションサーバ58A〜58Bのようなアプリケーションサーバは、アプリケーションサービスを提供するために構成されている。一般に、アプリケーションサーバは、データセンターのバックエンドアプリケーション(例えば、RDBMS、コンテンツ管理システム、ファイルシステム等)とリクエストしているユーザー(例えば、インターネットまたは他のネットワークから)の間のインターフェースを提供する。
上記に記載の通り、一部の場合においては、ウェブサーバ54A〜54Bは、アプリケーションサーバ58A〜58Bと通信し得、逆も同じくし得る。しかしながら一部の場合においては、一つのサーバおよびもう一つのサーバがすることになっているデータアウトプットのフォーマットは、その他のサーバによって期待されているフォーマットと一致し得ない。データ統合スイッチ56は、データフォーマットアウトプットをソースサーバによって、デスティネーションサーバによって要求されたフォーマットに変換するために使用され得る。一部の実施形態においては、機器10は、データ統合スイッチ56として使用され得る。図9〜11に関しての例示的な実施形態が、下記に説明されている。
一般に、ここで使用されているように、「サーバ」は、サーバに割り当てられたサービスを提供するために設計されたソフトウェアを含み得るコンピューターシステムを含み得る。
示されている実施形態においてのアプリケーションサーバ58Aは、アプリケーションインターフェイスをRDBMSサーバ62に提供するために構成されている。しかしながら、一部の場合においては、アプリケーションサーバ58Aは、RDBMSサーバ62が通信のために構成されているのとは異なる方法で、RDBMSサーバ62と通信するために構成され得る。例えば、アプリケーションサーバ58AがデータベースをXMLとして表示し得ることに対して、データベースはリレーショナルデータフォーマットを有し得る。もう一実施形態においてデータベースは、オブジェクトのコンテンツがアプリケーションの所定のデータであるが、アプリケーションサーバ58Aはリレーショナルデータがフォーマットされたアウトプット(例えば、情報の複数のコラムまたはフィールドを有するそれぞれの記録)またはデータのための他のフォーマットを期待し得るXMLオブジェクトを格納し得る。
データベースプロキシ60は、RDBMSサーバ62への「フロントエンド」として含み得る。データベースプロキシ60は、アプリケーションサーバ58Aが期待する方法においてアプリケーションサーバ58Aと通信し得、そしてRDBMSサーバ62が期待する方法においてRDBMSサーバ62と通信し得る。従って、データベースプロキシ60は、一つの形からもう一つの形へと通信を変換し得る。一部の実施形態においては、機器10はデータベースプロキシ60として使用され得る。図4〜7に関する例示的な実施形態は、下記に説明されている。
RDBMSサーバ62は、RDBMSを実行する。示されている実施形態がリレーショナルデータベースを実行し得る間(異なるフィールドに基づく特定の記録に対してのデータベースを検索するための柔軟性を許可する目的として、記録が様々な関連したテーブルに格納されている)、要望された場合に、他の実施形態は非リレーショナルデータベース(例えば、フラットファイルデータベース)を実行し得る。例示的なRDBMSは、オラクル、DB2等のような構造化問合せ言語(SQL)データベースを含み得る。一般に、ここで使用されているように、データベース管理システム(DBMS)は、データベースへのエントリーを許可し、データベースの検索を許可し、データベース等のデータを整理するソフトウェアを含み得る。RDBMSは、リレーショナルデータベースのためのDBMSソフトウェアである。
他の実施形態においては、サーバはコンテンツ管理システム(アクセスを管理し得、そしてソフトウェアソースコード、ドキュメント、または任意の他のデータファイルを含み得るコンテンツを複数のユーザーによってアップデートするシステム)、ファイルシステム等を実行し得、そしてプロキシ60は、データベースプロキシと同等のフロントエンドとして使用し得る。
機器10が図3の様々な配置に示されている間、要望されているように、様々な実施形態は任意の一つ以上の示された配置において機器10を実行し得る。さらに、図3においての機器10のアプリケーションがデータセンターのコンテキストに示されている間、それぞれのアプリケーションは、データセンターの外である他の環境において使用され得る。
機器アプリケーション
次に図4〜13を参照すると、機器10の様々なアプリケーションが更なる詳細において示されている。
図4は、RDBMSサーバ62のためのデータベースプロキシ60として使用されている機器10の一実施形態を示している。データベースプロキシ60は、機器10および任意的にスタイルシート70と72を含む。機器10は、リクエスト者からのリクエスト74(例えば、アプリケーションサーバ58Aから)を受け取るために結合され得、そして対応するリクエスト76をRDBMSサーバ62に生成するために構成され得る。RDBMSサーバ62は、機器10が受け取り得、そしてアプリケーションサーバ58Aによって要望されたフォーマットにおいて結果80に変換し得るリクエストの結果78によって応答し得る。任意的に、インプットスタイルシート70および/またはアウトプットスタイルシート72は、機器10によって使用され得る。
機器10によって受け取られたリクエストは、任意のフォーマットであり得る。例えば、アプリケーションサーバ58AがデータベースをXMLデータベースとして表示した場合、リクエストはXPath式またはXPath式の複数になり得る。機器10は、XPath式をSQLリクエストに変換し得、そしてSQLリクエストをRDBMSサーバ62に伝送し得る。インプットスタイルシート70は、この変換のために使用され得る。代わりに、ソフトウェア28は、XPath式を受け取り得、そしてそれぞれの式のための対応するSQL文を生成し得る。それでも他の実施形態においては、アプリケーションサーバからのリクエストは、データベースに適用されるいくつかのXPath式を含むスタイルシートの形としてあり得る。インプットスタイルシート70は、一部の実施形態において、リクエスト74の一部として含み得る。
代わりに、リクエストは、データベースをアクセスするための一つ以上のSQL文になり得る。この場合において機器10は、SQL文をRDBMSサーバ62に伝送し得る。DBMSサーバ62からの結果78はまだ、そのような一部の実施形態において、結果80のためにもう一つの要望されたフォーマットに機器10によって変換され得る。それでも他の実施形態のおいては、リクエストはもう一つのフォーマットにおいて提供され得、そしてインプットスタイルシート70はインプットフォーマットを一つ以上のSQL文に変換するために使用され得る。
機器10は、SQL文をRDBMS62に伝送し得る。例えば、リクエスト者から直接受け取られ、またはリクエスト者から受け取ったインプットリクエストからの機器10によって生成されてあろうと、ソフトウェア28は文を伝送するために構成され得る。RDBMSサーバ62は、リクエスト76を処理し、リレーショナルフォーマットにおいて結果78を提供する。例えば、SQL文からの結果からなる記録のテーブルのように、結果78のフォーマットはテーブルフォーマットになり得る。RDBMSサーバ62によって管理されているデータベースに定義されているように、それぞれの記録は、コラムのセットまたはフィールドを有し得る。さらに詳しく、少なくとも一つのコラムはデータベースの主キーを含み得る。通常「キー」は、データをソートするために使用され得るデータベースのフィールドになり得る。「主キー」は、データベースのそれぞれの記録の中の独自の値を有するキーになり得る。一部の場合のおいては、主キーは記録の中の一つのコラムになり得る。他の場合においては、主キーは記録の中の二つ以上のコラムの組み合わせになり得る。
機器10は、RDBMS62のアウトプットフォーマットからの結果78を結果80のために要望されたフォーマットに変換し得る。アウトプットスタイルシート72は、一部の実施形態において、要望されたフォーマットを特定するために使用され得る。他の実施形態においては、デフォルトアウトプットフォーマットは機器10によってサポートされ得る。例えば、図5および図6に示されているように、デフォルトXMLフォーマットはサポートされ得る。他の実施形態は、任意のマークアップ言語または任意の他の要望されたフォーマットにおいてのデフォルトフォーマットを保持し得る。
図5は、それぞれの記録が一つのコラムに主キーを含む場合においてのデフォルトフォーマット82の一実施形態を示している。この実施形態においては、主キーはXML要素にマッピングされている。記録の互いのコラムまたはフィールドは、要素を属性にマッピングされている(例えば、属性1が記録のコラム1の値に等しい、属性2が記録のコラム2の値に等しい等、属性Nが記録のコラムNに等しいまで)。
図6は、それぞれの記録が二つ以上のコラムの組み合わせである主キーを含む場合においてのデフォルトフォーマット84の一実施形態を示している。この実施形態において、親要素が生成される。親要素は、図5の実施形態と同様に、記録のそれぞれの主キーではないコラムのための属性を含み得る。加えて、親要素は子供要素を含み得る。それぞれの子供要素は、主キーの一つのコラムになり得る。
一部の実施形態においては、機器10は定義済のサービスを保持し得る。それぞれのサービスは、機器10にロードされ得、そしてサービスが呼び出された時にSQL文がRDBMSサーバ62に伝送されること含み得る。サービスは、サービスが呼び出される原因を起こす一つ以上のトリガー状態を特定し得、そして機器10はサービスを呼び出すためにトリガー状態をモニターし得る。代わりに、外部のイベントはサービスを呼び出すために使用され得、またはユーザーによって明示の呼出しが伝送され得る。サービスはそして、一部の場合において、データベースへのアクセスのリクエスト者として表示され得る結果の受取人を特定し得る。サービスは、アウトプットスタイルシート72またはアウトプット結果フォーマットのもう一つの仕様を含み得る。図1において示されているソフトウェア28は、一部の実施形態において、定義済サービスをサポートするためのソフトウェアを含み得る。
図4の実施形態と同等の実施形態は、コンテンツ管理システムまたはファイルシステムのためのプロキシとして使用され得る。
図7は、RDBMSサーバ62のためのデータベースプロキシ60として使用されている機器10の第2の実施形態を示している。データベースプロキシ60は、機器10および任意的にスタイルシート70と72を含む。図4の実施形態と同様に、機器10はアプリケーションサーバ58Aからのリクエスト74を受け取るため、そして対応するリクエスト76を生成するために結合され得ている(または機器10においてのサービスは、リクエスト74を受け取る代わりに使用され得る)。さらに図4の実施形態と同様に、RDBMSサーバ62は、機器10がアプリケーションサーバ58Aによって要望された結果80に変換し得る結果78を返し得る。スタイルシート70と72が任意的に使用され得る。一部の実施形態においては、図4に関して上記に説明されている定義済サービスが使用され得る。
図7の実施形態においては、RDBMSサーバ62の中にデータベース86が示され、そしてデータベースはXMLオブジェクト88A〜88BのようなXMLオブジェクトを格納する。他の実施形態は、他のマークアップ言語オブジェクトを含み得る。ここで使用されているように、マークアップ言語オブジェクトは完全なマークアップ言語構造になり得る。それぞれのマークアップ言語オブジェクトは、要望されているように、記録、複数の記録、または記録の一部を含み得る。データベース86は、XMLオブジェクトを記録、または記録のコラムとして格納し得る。
従って、結果78はデータベース86からの一つ以上のXMLオブジェクトを含み得る。アウトプットスタイルシート72は、XMLオブジェクトの変換を結果80のための要望された結果フォーマットに特定され得る。例えば、要望されたフォーマットは、リレーショナルフォーマット(例えば、記録テーブル)においてのXMLオブジェクトの中の記録になり得る。代わりに、データベース86に格納されたものとは異なる形のXMLが要望されたフォーマットになり得る。一部の実施形態においては、任意の他のフォーマットが使用され得る。
一部の実施形態においては、リクエスト74は、結果78を生成するためにデータベース86に適用されるように一つ以上のSQL文を含み得、そして機器はSQL文を変更しないままRDBMSサーバ62にパスし得る。一部の実施形態においては、リクエスト74は、スタイルシート70および/または72の一つまたは両方を含み得る。
他の実施形態においては、データベース86は、データベースの中のオブジェクトとしてよりも、XMLデータをリレーショナルフォーム(例えば、様々な要素および属性等のインデックステーブル)において格納し得る。データベースプロキシ60は、データベース86からのアウトプットデータの変換を提供するために、そのような実施形態においてまだ使用され得ている。
図8は、レンダリングエンジン90として使用されている機器10の一実施形態を示している。レンダリングエンジン90は、アウトプットドキュメントを生成する目的で、機器10および一つ以上のスタイルシート92を、インプットドキュメントに適用されように含み得る。インプットドキュメントは任意のフォーマットになり得、そしてアウトプットドキュメントも同様に任意のフォーマットになり得る。例えば、フォーマットはe−mail、マイクロソフトワード(登録商標)のようなワープロフォーマット、スプレッドシートフォーマット、ポータブルドキュメントフォーマット(PDF)、SGML、HTML、XML等のような様々なマークアップ言語フォーマット、ポストスクリプトフォーマット等を含み得る。
一般に、レンダリングエンジン90は、一部または全ての一つ以上のインプットドキュメントを抽出し得、抽出された一部分から一つ以上のアウトプットドキュメントを構成し得る。そしてアウトプットドキュメントは、リクエスト者に返される。一部の実施形態においては、インプットドキュメントは、スタイルシート92に適用するためにリクエストと伝送され得る。他の実施形態においては、リクエストおよび/またはスタイルシートは、ドキュメントを識別し得る(例えば、uniform resource locator(URL)を用いて、そして機器10がドキュメントを取り出し得る)。
一部の実施形態においては、機器10は、データベースプロキシ60の上記説明と同様に、機器10にロードされた定義済サービスを保持し得る。サービスは適用されるインプットドキュメント、アウトプットドキュメント、およびスタイルシートを定義し得る。一部の実施形態においては、一つ以上の異なるアウトプットドキュメントが生成される場合、レンダリングエンジン90はインプットドキュメントをキャッシュし得、対応するアウトプットドキュメントを生成するためにそれぞれのスタイルシートを別々に適用する。
図9は、図3に示されているデータセンターの一部についての一実施形態がブロック図において示されている。図9においてアプリケーションサーバ58A〜58Dは、機器10を使用するデータ統合スィッチ56と一緒に示されている。他の実施形態においては、同様に、図3のウェブサーバ54A〜54Bのようなウェブサーバも含み得る。
それぞれのアプリケーションサーバ58A〜58Dは、データを様々なフォーマットにおいてアウトプットおよびインプットするために構成されている。例えば、アプリケーションサーバ58Aは、フォーマット1においてデータをアウトプットおよびインプットし得る。同様に、アプリケーションサーバ58Cは、データをフォーマット4においてアウトプットおよびインプットし得、アプリケーションサーバ58Dは、データをフォーマット5においてアウトプットおよびインプットし得る。一部の場合においては、所定のアプリケーションサーバのためのアウトプットデータフォーマットおよびインプットデータフォーマットは、異なり得る(例えば、アプリケーションサーバ58Bがデータをフォーマット2においてアウトプットし、フォーマット3においてインプットする)。様々なアプリケーションサーバ58A〜58Dによって使用されているフォーマットは、互いに異なり得る。従って、アプリケーションサーバ58A〜58Dがもう一つのアプリケーションサーバ58A〜58Dへのインプットデータとして供給されるデータをアウトプットする時、データ統合スイッチ56はソースアプリケーションサーバのアウトプットフォーマットからのデータをターゲットアプリケーションサーバのインプットフォーマットに変換し得る。
さらに詳しく、機器10はアウトプットフォーマットからインプットフォーマットへの変換を、中間フォーマットとしてXMLを介して実行し得る。すなわち、機器10はデータをソースフォーマットからXMLに、XMLからターゲットフォーマットに変換し得る。スタイルシートの組み合わせは、それぞれの変換である、ソースフォーマットからXMLに変換する一つのスタイルシート、そしてXMLからターゲットフォーマットに変換するもう一つのスタイルシート、のために使用され得る。
一部の実施形態においては、原始データは、原始データフォーマットによって命令される様式に設定された別々のデータアイテムセットを含み得る(例えば、データ構造、順序付けられたデータアイテムセット、またはe−mail、マイクロソフトワードのようなワープロフォーマット、スプレッドシートフォーマット、ポータブルドキュメントフォーマット(PDF)、ポストスクリプトフォーマット、データベースフォーマット、electric data interchange(EDI)フォーマット等のような任意の要望された構造のドキュメント)。XMLへのソースのスタイルシートは、原始データアイテムに対応する一つ以上のXML構造を生成するために原始データアイテムに適用され得、そしてXML構造は、対応するターゲットデータアイテムを生成するためにXMLのターゲットのスタイルシートに適用され得る。XML構造へのXMLのターゲットのスタイルシートのアプリケーションは、他の原始データアイテムのXML構造への変換から個別に実行され得る。例えば、ターゲットデータアイテムは、XML構造の生成の前に、他の原始データアイテムの少なくとも一部のために生成され得る。もう一つの方法から見ると、XMLのターゲットのスタイルシートのアプリケーションは、XMLへのソースのスタイルシートの全ての原始データアイテムへの適用の完了の前に、開始し得る。
第1のスタイルシートを介して全てのデータアイテムの完了の前に、データアイテムへの二つのスタイルシートのアプリケーションは、一部の実施形態において、データ統合スイッチ56のスループットを改善し得、そして個別のデータアイテムがアプリケーションサーバ58A〜58Dの間で伝送される時、応答時間を減らし得る。
図10は図式的に、XML構造を生成するためにXMLへのソースのスタイルシート100をソースデータアイテムに適用し、そしてターゲットデータアイテムを生成するためにXMLのターゲットのスタイルシート102が適用される一実施形態を示している。
図11は、データ統合スイッチ56の一実施形態の流れを示すドキュメントプロセッサ16(図2から)の一部の一実施形態においてのブロック図である。スタイルシート100と102は、それぞれ別々に構文解析時間式ツリー(図11の中に個々にあるPET1およびPET2)および変換エンジン44のための命令テーブル(図11の中に個々にあるIT1およびIT2)である。
原始データは、原始イベントを式プロセッサ42に生成するパーサ回路40に提供されている。原始イベントは原始データの範囲内においてデータアイテムを識別し得る。式プロセッサ42は、原始イベントをPET1に適用し、そして変換エンジンにXMLへのソースのスタイルシート100のそれぞれの原始データ時間のための対応する一致を生成する。変換エンジン44は、所定のソースデータアイテムに対応するXML構造を生成するためにIT1からの命令を実行する。変換エンジン44は、XML構造からのXML構造イベントを生成し得、そしてそれらのイベントを式プロセッサ42にパスし得る。式プロセッサ42は、XMLのターゲットのスタイルシート102の中のXML構造イベントのための一致を生成しながら、XML構造イベントをPET2に適用し得る。変換エンジン44は、アウトプットジェネレータ46へのアウトプットデータを生成するためにIT2からの命令を実行し得る。
他の実施形態においては、変換エンジンはXML構造をXMLのターゲットのスタイルシートに適用し得る(例えば、XMLのターゲットのスタイルシートは、変換エンジン44によって実行される命令に完全に実施され得る)。さらに他の実施形態においては、XML構造は変換エンジン44からパーサ回路40にパスされ得、そしてそれは式プロセッサ42のためのXML構造イベントを生成するためにXML構造を解析し得る。ソフトウェア28(図1)は変換エンジン44によってXML構造アウトプットを取り込むために使用され得、そして他の実施形態において、式プロセッサ42へのXML構造イベントを生成する。
図12は、XMLルータ110として使用されている機器10の一実施形態のブロック図である。例えば、XMLルータ110は、図3に示されているデータセンターの中のルータ52に含み得る。XMLルータ110は、機器10およびスタイルシート112を含む。
XMLルータ110において機器は、インプットXMLドキュメントを受け取り、そしてアウトプットXMLドキュメントおよびルーティングラベルまたはロケーションをアウトプットする。ルーティングラベルは、XMLドキュメントのための宛先を識別する。例えば、機器10のソフトウェア28は、ルーティングラベルを一つの宛先IPアドレスまたは複数のアドレスに変換するソフトウェアを含み得(テーブルルックアップを介して)、そして機器10は、アウトプットドキュメントの一つの宛先IPアドレスまたは複数のアドレスへの経路を決め得る。代わりに、ルーティングラベルは、一つの宛先IPアドレスまたは複数のアドレスを検索するためにルータによって使用され得、そしてルータ52はXMLドキュメントの一つの宛先IPアドレスまたは複数のアドレスまでの経路を決め得る。さらにもう一つの代替においては、ルーティングラベルが一つの宛先IPアドレスまたは複数のアドレスになり得る。
スタイルシート112は、所定のインプットドキュメントと一致するうちの一つであるインプットドキュメントに適用されるXPath式のセットを含み得る。対応するルーティングラベルは、スタイルシートから判断され得る。例えば、示されている実施形態においてスタイルシート112は、その式と同等の一致する属性と共にそれぞれの式のためのテンプレート(例えば、Exp1、Exp2等)を含み得る。テンプレートボディーは、ルーティングラベル(例えば、ルーティングラベル1、ルーティングラベル2等)のアウトプットを含み得る。任意的に、スタイルシートもテンプレートボティーに含まれ得る。スタイルシートが含まれた場合、機器10はアウトプットドキュメントを生成するために、スタイルシートをインプットドキュメントに適用し得る。さもなければ、インプットドキュメントは、アウトプットドキュメントとして変わらず提供され得る。他の実施形態においては、変換スタイルシートは無条件に適用され得る(例えば、式が一致している機能としてではなく)。
次に図13を参照すると、機器10がファイアーウォール(例えば、ファイアーウォール50)において使用される時の一実施形態の動作においてのフローチャートを示している。この実施形態においては、機器10はDTD/スキーマに対してドキュメント確認を実行し得、そして侵入検出も実行し得る(例えば、ウィルス検知)。このコンテキストにおいては、ウィルスはワーム、トロイの木馬のソフトウェア等についてのウィルスを含み得る。一般に、ウィルスはソフトウェアが実行するコンピューターシステムに対しての極悪な意図において、(例えば、コンピューターシステムのデータまたはソフトウェアの破壊、他のソフトウェア等に利用可能なコンピューターシステムリソースの削減)、他のコンピューターシステムを複製する意図において、または他のコンピューターシステムに対しての極悪な意図でコンピュータシステムに実行する意図において、(例えば、サービス攻撃の拒絶を始める)書き込まれたソフトウェアを含み得る。
XMLドキュメントは、標準のウィルス検知と比較して、ウィルス検知にさらなる困難を与え得る。標準のウィルス検知の場合、次のビットストリームは知られているウィルスのビットストリングのデータベースに比較され、次のビットストリームの一部がデータベースと一致する場合、ウィルスとして識別される。XMLドキュメントと共に、ウィルスはXMLドキュメントの中に分散され得る。例えば、ウィルスの一部は異なる要素になり得る。要素が組み合わせられた時(例えば、スタイルシートによるドキュメントの処理を介して)、ウィルスは発生される。それ以上に、ウィルスはXMLドキュメントに部分的に含まれ得、そしてXMLドキュメントに適用される対応するDTD/スキーマ(例えば、エンティティ参照または属性デフォルトにおいて)および/またはスタイルシートにも部分的に含まれ得る。従って、上記のどれもがウィルスを分離した形で含んでいないが、ウィルスはDTD/スキーマおよび/またはスタイルシートのおいてのXMLドキュメントの処理によって発生され得る。さらにもう一つの厄介な問題として、XMLドキュメント、DTD/スキーマ、およびスタイルシートは異なる時に届き、従って、それらの間に分散されたウィルスを検知することを困難にする。攻撃者は、既存の有効なDTD/スキーマおよび/またはスタイルシートを使用しながら処理した時に、ウィルスを発生させるXMLドキュメントも書き込み得る。
機器10は、ウィルスの発生を二段階のプロセスにおいて処理し得る。第1のステップにおいては、XMLドキュメントはDTD/スキーマを使用しながら有効化され得、そして必要な時にスタイルシートを使用しながら変換され得る。結果として残るドキュメントは、バリデータ48が結果として残るドキュメントの中のウィルスを調べ得るケースである第2のステップにおいて、再び機器10を介してパスされ得る。例えば、バリデータ48は、上記に説明されているように、ウィルスデータベースの中において提供され得る。他の実施形態においては、侵入検出のさらに粗いラベルが適用され得る(例えば、特定のアドレスから、または特定のアドレスへのトラフィックが検出され得る)。
図13は、二段階のプロセスを示している。インプットドキュメントが受け取られ、有効性のためにチェックされ(DTD/スキーマに対して、例えば、バリデータ48においての)、そしてドキュメントが変換される(DTD/スキーマおよびスタイルシートを使用しながら)(ブロック120)。そして、ウィルスチェックが実行される場合(決定ブロック122の「はい」の枝)、アウトプットドキュメントはウィルスをチェックするためにバリデータ48に返される(ブロック124)。ウィルスが検知された場合(決定ブロック126の「はい」の枝)、機器10は修正処置を取り得る(ブロック128)。例えば、ウィルスは修正処置として修復され得る。代わりに、ドキュメントはドロップされ得(データセンターに入ることが許可されない)、または管理者による後の再検査のために機器10または他で隔離され得る。ウィルスチェックが実行されない場合(決定ブロック122の「いいえ」の枝)またはウィルスが全く検知されない場合(決定ブロック126の「いいえ」の枝)は、ドキュメントはデータセンターに入ることを許可され得ている(ブロック130)。
多数の変更と修正は、上記の開示が十分に理解されると、当業者にとって明らかになるであろう。以下の請求項は、そのような全ての変更と修正を含むように解釈されることが、意図される。
図1は、機器の一実施形態のブロック図である。 図2は、図1に記載のドキュメントプロセッサの一実施形態のブロック図である。 図3は、一つ以上の機器を含むデータセンターの一実施形態のブロック図である。 図4は、データベースプロキシとして使用されている機器の一実施形態のブロック図である。 図5は、図4に記載の機器の一実施形態によって用いられるデフォルトアウトプットフォーマットの一実施形態を示す図である。 図6は、図4に記載の機器の一実施形態によって用いられるデフォルトアウトプットフォーマットの第2の実施形態を示す図である。 図7は、データベースプロキシとして使用されている機器の第2の実施形態を示すブロック図である。 図8は、レンダリングエンジンとして使用されている機器の一実施形態を示すブロック図である。 図9は、データ統合スイッチとして使用されている機器の一実施形態を示すブロック図である。 図10は、拡張可能マークアップ言語(XML)の構造を介してデータをターゲットするための原始データの変換の一実施形態を示すブロック図である。 図11は、ターゲットデータを生成するために原始データにおいて動作する機器の一実施形態の一部を示すブロック図である。 図12は、XMLルータとして使用されている機器の一実施形態のブロック図である。 図13は、ウィルスチェッカーとしての、機器の一実施形態においての動作を示すフローチャートである。

Claims (51)

  1. リクエストを生成するように構成されている機器と、
    一つ以上のデータベースを管理するデータベース管理システム(DBMS)を動作するように構成されているコンピューターシステムであって、該コンピューターシステムは、該リクエストを受け取るように該機器に結合され、該DBMSは、一つ以上のデータベースのうちの少なくとも一つの該リクエストを処理するように構成され、該コンピューターシステムは、第1のフォーマットで該リクエストの結果を該機器に返すように構成されている、コンピューターシステムと
    を備える装置であって、
    該機器は、該リクエストに対応するリクエスト者への返信のために該結果を第2のフォーマットに変換するように構成されている、装置。
  2. 前記第2フォーマットがマークアップ言語によって表現されている、請求項1に記載の装置。
  3. 前記第2フォーマットが前記機器によってサポートされているデフォルトフォーマットを備える、請求項2に記載の装置。
  4. 前記結果が一つのコラムに含まれている主キーを含む場合、前記デフォルトフォーマットが、
    前記主キーを含む要素と、
    該要素の一つ以上の属性であって、該属性のそれぞれが、前記結果の1つの他のコラムを含む、要素の一つ以上属性と
    を備える、請求項3に記載の装置。
  5. 前記結果が1より多いコラムを含む主キーを含む場合、前記デフォルトフォーマットは、属性として前記結果の主キーでは無いそれぞれのコラムを有す第1の要素を備える、請求項3に記載の装置。
  6. 前記デフォルトフォーマットが複数の第2の要素をさらに含み、該複数の第2の要素のそれぞれが前記主キーの前記コラムの一つを含み、該複数の第2の要素のそれぞれが前記第1の要素の子供である、請求項5に記載の装置。
  7. 前記機器が、前記第2のフォーマットを定義する一つ以上のスタイルシートを受け取るように結合されている、請求項2に記載の装置。
  8. 前記機器が前記リクエスト者から第2のリクエストを受け取るように結合され、該機器が前記第2のリクエストに応答する前記コンピューターシステムへの前記リクエストを生成するように構成されている、請求項1に記載の装置。
  9. 前記第2のリクエストが、前記一つ以上のデータベースに適合された一つ以上の式を含む一つ以上のスタイルシートを備える、請求項8に記載の装置。
  10. 前記一つ以上のデータベースの少なくとも一部のコンテンツは一つ以上のマークアップ言語オブジェクトを含み、前記結果が少なくとも一つのマークアップ言語オブジェクトを含む、請求項1に記載の装置。
  11. 前記第2のフォーマットが前記DBMSによってサポートされているフォーマットを備える、請求項10に記載の装置。
  12. 一つ以上のデータベースを管理するデータベース管理システム(DBMS)を動作するように構成されているコンピューターシステムを含む装置内において、該コンピューターシステムのリクエストを生成するように構成され、該コンピューターシステムから該リクエストの結果を受け取るように結合された機器であって、
    該結果が第1のフォーマットであり、該機器が、該リクエストに対応するリクエスト者への返信のために該結果を第2のフォーマットに変換するように構成されている、機器。
  13. 前記第2のフォーマットがマークアップ言語によって表現されている、請求項12に記載の機器。
  14. 前記第2のフォーマットが、前記機器によってサポートされているデフォルトフォーマットを備える、請求項13に記載の機器。
  15. 前記結果が一つのコラムに含まれている主キーを含む場合、前記デフォルトフォーマットが、
    前記主キーを含む要素と、
    該要素の一つ以上の属性であって、該属性のそれぞれが、前記結果の1つの他のコラムを含む、要素の一つ以上属性と
    を備える、請求項14に記載の機器。
  16. 前記結果が一つ以上のコラムを含む主キーを含む場合、前記デフォルトフォーマットは、属性として前記結果の主キーでは無いそれぞれのコラムを有する第1の要素を備える、請求項14に記載の機器。
  17. 前記デフォルトフォーマットが複数の第2の要素をさらに含み、該複数の第2の要素のそれぞれが前記主キーの前記コラムの一つを含み、該複数の第2の要素のそれぞれが前記第1の要素の子供である、請求項16に記載の機器。
  18. 前記機器が前記第2のフォーマットを定義する一つ以上のスタイルシートを受け取るように結合されている、請求項13に記載の機器。
  19. 前記機器が前記リクエスト者から第2のリクエストを受け取るように結合され、前記機器が前記第2のリクエストに応答する前記コンピューターシステムへの前記リクエストを生成するように構成されている、請求項12に記載の機器。
  20. 前記第2のリクエストが、前記一つ以上のデータベースに適合された一つ以上の式を含む一つ以上のスタイルシートを備える、請求項19に記載の機器。
  21. 前記一つ以上のデータベースの少なくとも一部のコンテンツは、一つ以上のマークアップ言語オブジェクトを含み、前記結果が少なくとも一つのマークアップ言語オブジェクトを含む、請求項12に記載の機器。
  22. 前記第2のフォーマットが前記DBMSによってサポートされているフォーマットを備える、請求項21に記載の装置。
  23. 機器がデータベース管理システム(DBMS)にリクエストを送ることと、
    該機器が第1のフォーマットにて該DBMSから結果を受け取ることと、
    該機器が該リクエストに対応するリクエスト者への伝送のために該結果を第2のフォーマットに変換することと
    を包含する、方法。
  24. 前記第2のフォーマットがマークアップ言語によって表現されている、請求項23に記載の方法。
  25. 前記第2のフォーマットが前記機器によって保持されているデフォルトフォーマットを包含する、請求項24に記載の方法。
  26. 前記結果が一つのコラムに含まれている主キーを含む場合、前記デフォルトフォーマットが、
    前記主キーを含む要素と、
    該要素の一つ以上の属性であって、該属性のそれぞれが、前記結果の1つの他のコラムを含む、要素の一つ以上属性と
    備える、請求項25に記載の方法。
  27. 前記結果が一つ以上のコラムを含む主キーを含む場合、前記デフォルトフォーマットは、属性として前記結果の主キーでは無いそれぞれのコラムを有す第1の要素を備える、請求項25に記載の方法。
  28. 前記デフォルトフォーマットが複数の第2の要素をさらに含み、該複数の第2の要素のそれぞれが前記主キーの前記コラムの一つを含み、該複数の第2の要素のそれぞれが前記第1の要素の子供である、請求項27に記載の方法。
  29. 前記機器に提供される一つ以上のスタイルシートにおける前記第2のフォーマットを定義することをさらに包含する、請求項24に記載の方法。
  30. 前記機器が前記リクエスト者から第2のリクエストを受け取ることと、
    前記機器が前記第2のリクエストに応答する前記コンピューターシステムへの前記リクエストを生成することと
    を包含する、請求項23に記載の方法。
  31. 前記第2のリクエストが、前記一つ以上のデータベースに適合された一つ以上の式を含む一つ以上のスタイルシートを含む、請求項30に記載の方法。
  32. 前記一つ以上のデータベースの少なくとも一部のコンテンツは一つ以上のマークアップ言語オブジェクトを含み、前記結果が少なくとも一つのマークアップ言語オブジェクトを含む、請求項23に記載の方法。
  33. 前記第2のフォーマットが前記DBMSによってサポートされているフォーマットを包む、請求項32に記載の方法。
  34. 複数のサーバと、
    該複数のサーバに結合されている機器であって、該機器が、該複数のサーバの第1のサーバから第1のアウトプットデータを受け取るように結合され、該第1のアウトプットデータが、該複数のサーバの第2のサーバに第1のインプットデータとして提供され、該第1のアウトプットデータが、該第1のインプットデータのために該第2のサーバによって使用される第2のフォーマットと異なる第1のフォーマットである、機器と
    を備える装置であって、
    該機器は、該第1のアウトプットデータを第1のマークアップ言語に変換し、そして該第1のマークアップ言語を該第2のフォーマットに変換するように構成されている、装置。
  35. 前記機器が、前記第1のインプットデータを前記第2のフォーマットにおいて前記第2のサーバへ送るように構成されている、請求項34に記載の装置。
  36. 前記第1のアウトプットが複数の個々のデータアイテムを含み、前記機器が前記複数のデータアイテムの第1のデータアイテムを一つ以上のマークアップ言語構造に変換するように構成され、該機器が、該複数のデータアイテムの少なくとも一部をマークアップ言語構造に変換する前に、前記第1のデータアイテムに対応する該マークアップ言語構造を前記第2のフォーマットに変換するように構成されている、請求項34に記載の装置。
  37. 前記機器が、前記第1のフォーマットから前記マークアップ言語フォーマットへの変換を定義する第1のスタイルシートと、該マークアップ言語フォーマットから前記第2のフォーマットへの変換を定義する第2のスタイルシートとを受け取るように結合されている、請求項34に記載の装置。
  38. 第1のサーバおよび第2のサーバを含む複数のサーバを含む装置であって、該第1のサーバは該第2のサーバへの第1のインプットデータとして提供される第1のアウトプットデータを生成するように構成される、装置内において、該複数のサーバに結合された機器であって、
    該機器は該第1のアウトプットデータを受け取るように結合され、該第1のアウトプットデータが、該第1のインプットデータのために該第2のサーバによって使用される第2のフォーマットとは異なる第1のフォーマットであり、該機器が該第1のアウトプットデータを第1のマークアップ言語フォーマットに変換し、該第1のマークアップ言語を該第2のフォーマットに変換するように構成されている、機器。
  39. 前記機器が、前記第1のインプットデータを前記第2のフォーマットにおいて前記第2のサーバへ送るように構成されている、請求項38に記載の機器。
  40. 前記第1のアウトプットが複数の個々のデータアイテムを含み、前記機器が前記複数のデータアイテムの第1のデータアイテムを一つ以上のマークアップ言語構造に変換するように構成され、前記機器が、前記複数のデータアイテムの少なくとも一部をマークアップ言語構造に変換する前に、前記第1のデータアイテムに対応する前記マークアップ言語構造を前記第2のフォーマットに変換するように構成されている、請求項38に記載の機器。
  41. 前記機器が、前記第1のフォーマットから前記マークアップ言語フォーマットへの変換を定義する第1のスタイルシートと、該マークアップ言語フォーマットから前記第2のフォーマットへの変換を定義する第2のスタイルシートとを受け取るように結合されている、請求項38に記載の機器。
  42. 複数のサーバの第1のサーバから、該複数のサーバの第2のサーバへの第1のインプットデータとして提供される第1のアウトプットデータを受け取ることと、
    該第1のアウトプットデータを第1のフォーマットからマークアップ言語フォーマットに変換し、マークアップ言語フォーマットを該第2のサーバによって使用される第2のフォーマットに変換することと
    を包含する、方法。
  43. 前記第1のインプットデータとして前記第2のフォーマットを前記第2のサーバへ送ることを包含する、請求項42に記載の方法。
  44. 前記第1のアウトプットデータは複数の個々のデータアイテムを含み、前記変換することは、
    前記複数のデータアイテムの第1のデータアイテムを一つ以上のマークアップ言語構造に変換することと、
    前記複数のデータアイテムの少なくとも一部をマークアップ言語構造に変換する前に、該第1のデータアイテムに対応する該マークアップ言語構造を該第2のフォーマットに変換することと
    を包含する、請求項42に記載の方法。
  45. 前記第1のフォーマットから前記マークアップ言語フォーマットへの変換を定義する第1のスタイルシートと、前記マークアップ言語フォーマットから前記第2のフォーマットへの変換を定義する第2のスタイルシートとを受け取ることをさらに包含する、請求項42に記載の方法。
  46. 一つ以上のコンピューターシステムを含む装置内において、インプットデータを受け取るように、および該インプットデータをアウトプットデータに変換するように結合された機器であって、該機器は、使用の間、該一つ以上のコンピューターシステムと結合される、機器。
  47. データベースプロキシを備える、請求項46に記載の機器。
  48. データ統合スイッチを備える、請求項46に記載の機器。
  49. レンダリングエンジンを備える、請求項46に記載の機器。
  50. XMLルータを備える、請求項46に記載の機器。
  51. 侵入検出装置を備える、請求項46に記載の機器。
JP2006536852A 2003-10-22 2004-10-22 データセンターの中で使用するためのデータフォーマット変換システム Active JP4707670B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US51385003P 2003-10-22 2003-10-22
US60/513,850 2003-10-22
US10/889,626 US7409400B2 (en) 2003-10-22 2004-07-12 Applications of an appliance in a data center
US10/889,626 2004-07-12
PCT/US2004/035166 WO2005043413A1 (en) 2003-10-22 2004-10-22 System for data format conversion for use in data centers

Publications (3)

Publication Number Publication Date
JP2007509445A true JP2007509445A (ja) 2007-04-12
JP2007509445A5 JP2007509445A5 (ja) 2007-12-06
JP4707670B2 JP4707670B2 (ja) 2011-06-22

Family

ID=34526914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006536852A Active JP4707670B2 (ja) 2003-10-22 2004-10-22 データセンターの中で使用するためのデータフォーマット変換システム

Country Status (6)

Country Link
US (1) US7409400B2 (ja)
EP (2) EP1814045A3 (ja)
JP (1) JP4707670B2 (ja)
KR (1) KR101093271B1 (ja)
CN (1) CN1906609B (ja)
WO (1) WO2005043413A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013101676A (ja) * 2005-06-29 2013-05-23 Visa Usa Inc マルチフォーマットのメッセージをパースする動的パース/ビルド・エンジン
JP2013178834A (ja) * 2013-06-06 2013-09-09 Seiko Epson Corp 配信システム、及びデータ配信方法

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509573B1 (en) * 2004-02-17 2009-03-24 Microsoft Corporation Anti-virus security information in an extensible markup language document
EP1577791B1 (en) * 2004-03-16 2011-11-02 Microdasys Inc. XML content monitoring
US20050223316A1 (en) * 2004-04-01 2005-10-06 Sun Microsystems, Inc. Compiled document type definition verifier
US7602972B1 (en) * 2005-04-25 2009-10-13 Adobe Systems, Incorporated Method and apparatus for identifying white space tables within a document
US7925971B2 (en) * 2005-10-31 2011-04-12 Solace Systems, Inc. Transformation module for transforming documents from one format to other formats with pipelined processor having dedicated hardware resources
US7986685B2 (en) * 2005-11-08 2011-07-26 Avaya Inc. Real-time XML messaging protocol
US8984397B2 (en) * 2005-12-15 2015-03-17 Xerox Corporation Architecture for arbitrary extensible markup language processing engine
US9286272B2 (en) * 2005-12-22 2016-03-15 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US20080126317A1 (en) * 2006-07-07 2008-05-29 Adam David Stout Method and system for converting source data files into database query language
KR100836619B1 (ko) * 2006-11-24 2008-06-10 엔에이치엔(주) P2p 시스템에서 피어 관리 서버 및 피어 관리 방법
US20070150494A1 (en) * 2006-12-14 2007-06-28 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
GB2446624A (en) * 2007-02-13 2008-08-20 Ali Guryel Secure network used in educational establishments
US8265457B2 (en) * 2007-05-14 2012-09-11 Adobe Systems Incorporated Proxy editing and rendering for various delivery outlets
US8156149B2 (en) * 2007-07-24 2012-04-10 Microsoft Corporation Composite nested streams
US20090106282A1 (en) * 2007-10-19 2009-04-23 Siemens Product Lifecycle Management Software Inc. System and method for interformat data conversion
US7937392B1 (en) * 2008-03-31 2011-05-03 Sonoa Networks India (PVT) Ltd. Classifying uniform resource identifier (URI) using xpath expressions
US8639086B2 (en) 2009-01-06 2014-01-28 Adobe Systems Incorporated Rendering of video based on overlaying of bitmapped images
US8495005B2 (en) * 2009-01-14 2013-07-23 International Business Machines Corporation Methods for matching metadata from disparate data sources
CN102053994B (zh) * 2009-11-10 2013-06-05 阿里巴巴集团控股有限公司 一种语言解析器和应用该解析器的解析方法
US8412510B2 (en) * 2010-04-21 2013-04-02 Fisher-Rosemount Systems, Inc. Methods and apparatus to display localized resources in process control applications
EP2570921A1 (de) * 2011-06-14 2013-03-20 Siemens Aktiengesellschaft Verfahren und Vorrichtungen zum Austausch von Daten
CN102332002B (zh) * 2011-07-28 2013-11-13 深圳市万兴软件有限公司 一种将pdf格式文件转换为epub格式的方法及系统
US8688624B2 (en) * 2011-08-30 2014-04-01 Bank Of America Corporation Seed data automation
US20130226944A1 (en) * 2012-02-24 2013-08-29 Microsoft Corporation Format independent data transformation
CN102750350B (zh) * 2012-06-08 2015-04-22 北京天地云箱科技有限公司 监控系统及方法
US8706783B2 (en) * 2012-08-09 2014-04-22 Sap Ag Storing hierarchical table as a markup language file
CN102831243A (zh) * 2012-09-12 2012-12-19 北京播思软件技术有限公司 一种灵活部署搜索的方法
WO2014145230A1 (en) * 2013-03-15 2014-09-18 Recent Memory Incorporated Object-oriented data infrastructure
CN103744949B (zh) * 2013-12-31 2017-12-12 金蝶软件(中国)有限公司 数据集成方法和系统
US10528021B2 (en) 2015-10-30 2020-01-07 Rockwell Automation Technologies, Inc. Automated creation of industrial dashboards and widgets
CN105335523A (zh) * 2015-12-01 2016-02-17 深圳市迪菲特科技股份有限公司 一种数据交互方法及Web服务器
US10313281B2 (en) 2016-01-04 2019-06-04 Rockwell Automation Technologies, Inc. Delivery of automated notifications by an industrial asset
CN105610983A (zh) * 2016-03-07 2016-05-25 北京荣之联科技股份有限公司 一种分布式的网络监控方法及系统
US11074270B2 (en) * 2016-03-11 2021-07-27 Sap Se System and method for data integration
US10318570B2 (en) 2016-08-18 2019-06-11 Rockwell Automation Technologies, Inc. Multimodal search input for an industrial search platform
US10319128B2 (en) 2016-09-26 2019-06-11 Rockwell Automation Technologies, Inc. Augmented reality presentation of an industrial environment
US10545492B2 (en) 2016-09-26 2020-01-28 Rockwell Automation Technologies, Inc. Selective online and offline access to searchable industrial automation data
US10401839B2 (en) 2016-09-26 2019-09-03 Rockwell Automation Technologies, Inc. Workflow tracking and identification using an industrial monitoring system
US10388075B2 (en) * 2016-11-08 2019-08-20 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US10735691B2 (en) 2016-11-08 2020-08-04 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US10866631B2 (en) 2016-11-09 2020-12-15 Rockwell Automation Technologies, Inc. Methods, systems, apparatuses, and techniques for employing augmented reality and virtual reality
CN109684324B (zh) * 2017-10-18 2023-05-05 阿里巴巴集团控股有限公司 一种数据处理方法及其相关产品
US11423083B2 (en) * 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
US10445944B2 (en) 2017-11-13 2019-10-15 Rockwell Automation Technologies, Inc. Augmented reality safety automation zone system and method
CN110020307B (zh) * 2017-11-30 2023-06-13 阿里巴巴集团控股有限公司 一种客户端视图的绘制方法和装置
ES2816012T3 (es) * 2018-07-11 2021-03-31 Siemens Ag Procedimiento, dispositivos y sistema para el intercambio de datos entre un sistema distribuido de base de datos y aparatos
US11140036B2 (en) * 2019-01-16 2021-10-05 International Business Machines Corporation Identifying groups of related nodes in an integration flow
CN111078337B (zh) * 2019-11-27 2023-08-29 用友网络科技股份有限公司 样式调整方法、系统及计算机可读存储介质
US11544285B1 (en) * 2021-08-23 2023-01-03 Accenture Global Solutions Limited Automated transformation of hierarchical data from a source data format to a target data format
US20230089365A1 (en) * 2021-09-20 2023-03-23 Salesforce.Com, Inc. Data virtualization adapter in an integration platform

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344147A (ja) * 2000-05-31 2001-12-14 Dainippon Printing Co Ltd 汎用データベースアクセス装置
WO2002021339A2 (en) * 2000-09-07 2002-03-14 Oracle International Corporation Method and apparatus for xml data storage, query rewrites, visualization, mapping and references

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US626332A (en) * 1899-06-06 Frank j
BR9407962A (pt) 1993-11-02 1996-12-03 Paracom Corp Aparelho para processamento acelerado de transaçoes com base de dados de computador
US6247068B1 (en) 1997-03-07 2001-06-12 Advanced Micro Devices Inc. Winsock-data link library transcoder
US5936641A (en) 1997-06-27 1999-08-10 Object Technology Licensing Corp Graphics hardware acceleration method, computer program, and system
EP0917362A1 (en) 1997-11-12 1999-05-19 STMicroelectronics S.r.l. Macroblock variance estimator for MPEG-2 video encoder
US20010042081A1 (en) 1997-12-19 2001-11-15 Ian Alexander Macfarlane Markup language paring for documents
US6263332B1 (en) 1998-08-14 2001-07-17 Vignette Corporation System and method for query processing of structured documents
US6317804B1 (en) 1998-11-30 2001-11-13 Philips Semiconductors Inc. Concurrent serial interconnect for integrating functional blocks in an integrated circuit device
JP4081934B2 (ja) * 1999-09-17 2008-04-30 ソニー株式会社 データ配信方法及び装置、並びに、データ受信方法及び装置
US6615202B1 (en) * 1999-12-01 2003-09-02 Telesector Resources Group, Inc. Method for specifying a database import/export operation through a graphical user interface
US6772413B2 (en) 1999-12-21 2004-08-03 Datapower Technology, Inc. Method and apparatus of data exchange using runtime code generator and translator
US6947440B2 (en) 2000-02-15 2005-09-20 Gilat Satellite Networks, Ltd. System and method for internet page acceleration including multicast transmissions
JP3262325B2 (ja) * 2000-05-15 2002-03-04 有限会社アトリ 電子メール・サービス・システムの構築を支援するエージェント・システムおよびその方法
EP1239375B1 (de) 2001-03-08 2014-05-07 Sap Ag Verfahren zum Konvertieren von Dokumenten
US20030041302A1 (en) 2001-08-03 2003-02-27 Mcdonald Robert G. Markup language accelerator
CN1407465A (zh) * 2001-08-13 2003-04-02 深圳市丛文软件技术有限公司 异构、异种数据库间适用的数据交换方法及装置
JP4039484B2 (ja) 2002-02-28 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション XPath評価方法、これを用いたXML文書処理システム及びプログラム
US20030187850A1 (en) * 2002-03-29 2003-10-02 Reed Michael L. Remote database access through a table entry
EP1502196A4 (en) 2002-05-02 2008-04-02 Sarvega Inc SYSTEM AND METHOD FOR TRANSFORMING XML DOCUMENTS USING STYLE SHEETS

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344147A (ja) * 2000-05-31 2001-12-14 Dainippon Printing Co Ltd 汎用データベースアクセス装置
WO2002021339A2 (en) * 2000-09-07 2002-03-14 Oracle International Corporation Method and apparatus for xml data storage, query rewrites, visualization, mapping and references
JP2004519755A (ja) * 2000-09-07 2004-07-02 オラクル・インターナショナル・コーポレイション Xmlデータ記憶、クエリー再書込、ビジュアライゼーション、マッピング、および参照のための方法および装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013101676A (ja) * 2005-06-29 2013-05-23 Visa Usa Inc マルチフォーマットのメッセージをパースする動的パース/ビルド・エンジン
JP2013178834A (ja) * 2013-06-06 2013-09-09 Seiko Epson Corp 配信システム、及びデータ配信方法

Also Published As

Publication number Publication date
US20050091251A1 (en) 2005-04-28
EP1814045A2 (en) 2007-08-01
CN1906609A (zh) 2007-01-31
EP1676219A1 (en) 2006-07-05
WO2005043413A1 (en) 2005-05-12
CN1906609B (zh) 2012-05-09
KR101093271B1 (ko) 2011-12-14
KR20070019960A (ko) 2007-02-16
US7409400B2 (en) 2008-08-05
EP1814045A3 (en) 2007-08-29
JP4707670B2 (ja) 2011-06-22

Similar Documents

Publication Publication Date Title
JP4707670B2 (ja) データセンターの中で使用するためのデータフォーマット変換システム
US6487566B1 (en) Transforming documents using pattern matching and a replacement language
Wood Minimising Simple XPath Expressions.
US6836778B2 (en) Techniques for changing XML content in a relational database
US7437666B2 (en) Expression grouping and evaluation
US7458022B2 (en) Hardware/software partition for high performance structured data transformation
US7873663B2 (en) Methods and apparatus for converting a representation of XML and other markup language data to a data structure format
US8762410B2 (en) Document level indexes for efficient processing in multiple tiers of a computer system
US20070038930A1 (en) Method and system for an architecture for the processing of structured documents
US7328403B2 (en) Device for structured data transformation
US20060036935A1 (en) Techniques for serialization of instances of the XQuery data model
US20020078094A1 (en) Method and apparatus for XML visualization of a relational database and universal resource identifiers to database data and metadata
Turau Making legacy data accessible for XML applications
US20070299834A1 (en) Techniques of rewriting descendant and wildcard XPath using combination of SQL OR, UNION ALL, and XMLConcat() construct
EP1782277A1 (en) Efficient extraction of xml content stored in a lob
Bergholz Extending your markup: An XML tutorial
AU2007275507B2 (en) Semantic aware processing of XML documents
US6772395B1 (en) Self-modifying data flow execution architecture
Tutorial Extending Your Markup
Rusu et al. The Role Of Xml In The Modeling Process Of A Virtual Business
Wang et al. Extending XML database to support open XML
Davis et al. Web Distributed Authoring and Versioning (WebDAV) SEARCH
JP2000357083A (ja) 文書処理方法及び装置並びに記憶媒体

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110209

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110315

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250