(57)【要約】様々な実施形態において、機器は様々な機能を実施するために使用され得る。一部の実施形態においては、機器はＤＢＭＳサーバと共に使用され得る。機器はリクエストを生成し得、ＤＢＭＳサーバは結果を生成し得る。機器は、リクエストに対応するリクエスト者への返信のために結果を異なるフォーマットに変換し得る。他の実施形態において機器は、コンテンツ管理システムやファイルシステム等のような他のバックエンドアプリケーションを実行するように構成されているコンピューターシステムと使用され得る。他の実施形態において、機器は、複数のサーバの第２のサーバへの第１のインプットデータとして提供される第１のアウトプットデータを、複数のサーバの第１のサーバから受信し得る。機器は、第１のアウトプットデータを第１のマークアップ言語フォーマットに変換し、該第１のフォーマットを第２のフォーマットに変換するように構成され得る。
2007509445.tif 000002
【特許請求の範囲】
【請求項１】
リクエストを生成するように構成されている機器と、
一つ以上のデータベースを管理するデータベース管理システム（ＤＢＭＳ）を動作するように構成されているコンピューターシステムであって、該コンピューターシステムは、該リクエストを受け取るように該機器に結合され、該ＤＢＭＳは、一つ以上のデータベースのうちの少なくとも一つの該リクエストを処理するように構成され、該コンピューターシステムは、第１のフォーマットで該リクエストの結果を該機器に返すように構成されている、コンピューターシステムと
を備える装置であって、
該機器は、該リクエストに対応するリクエスト者への返信のために該結果を第２のフォーマットに変換するように構成されている、装置。
【請求項２】
前記第２フォーマットがマークアップ言語によって表現されている、請求項１に記載の装置。
【請求項３】
前記第２フォーマットが前記機器によってサポートされているデフォルトフォーマットを備える、請求項２に記載の装置。
【請求項４】
前記結果が一つのコラムに含まれている主キーを含む場合、前記デフォルトフォーマットが、
前記主キーを含む要素と、
該要素の一つ以上の属性であって、該属性のそれぞれが、前記結果の１つの他のコラムを含む、要素の一つ以上属性と
を備える、請求項３に記載の装置。
【請求項５】
前記結果が１より多いコラムを含む主キーを含む場合、前記デフォルトフォーマットは、属性として前記結果の主キーでは無いそれぞれのコラムを有す第１の要素を備える、請求項３に記載の装置。
【請求項６】
前記デフォルトフォーマットが複数の第２の要素をさらに含み、該複数の第２の要素のそれぞれが前記主キーの前記コラムの一つを含み、該複数の第２の要素のそれぞれが前記第１の要素の子供である、請求項５に記載の装置。
【請求項７】
前記機器が、前記第２のフォーマットを定義する一つ以上のスタイルシートを受け取るように結合されている、請求項２に記載の装置。
【請求項８】
前記機器が前記リクエスト者から第２のリクエストを受け取るように結合され、該機器が前記第２のリクエストに応答する前記コンピューターシステムへの前記リクエストを生成するように構成されている、請求項１に記載の装置。
【請求項９】
前記第２のリクエストが、前記一つ以上のデータベースに適合された一つ以上の式を含む一つ以上のスタイルシートを備える、請求項８に記載の装置。
【請求項１０】
前記一つ以上のデータベースの少なくとも一部のコンテンツは一つ以上のマークアップ言語オブジェクトを含み、前記結果が少なくとも一つのマークアップ言語オブジェクトを含む、請求項１に記載の装置。
【請求項１１】
前記第２のフォーマットが前記ＤＢＭＳによってサポートされているフォーマットを備える、請求項１０に記載の装置。
【請求項１２】
一つ以上のデータベースを管理するデータベース管理システム（ＤＢＭＳ）を動作するように構成されているコンピューターシステムを含む装置内において、該コンピューターシステムのリクエストを生成するように構成され、該コンピューターシステムから該リクエストの結果を受け取るように結合された機器であって、
該結果が第１のフォーマットであり、該機器が、該リクエストに対応するリクエスト者への返信のために該結果を第２のフォーマットに変換するように構成されている、機器。
【請求項１３】
前記第２のフォーマットがマークアップ言語によって表現されている、請求項１２に記載の機器。
【請求項１４】
前記第２のフォーマットが、前記機器によってサポートされているデフォルトフォーマットを備える、請求項１３に記載の機器。
【請求項１５】
前記結果が一つのコラムに含まれている主キーを含む場合、前記デフォルトフォーマットが、
前記主キーを含む要素と、
該要素の一つ以上の属性であって、該属性のそれぞれが、前記結果の１つの他のコラムを含む、要素の一つ以上属性と
を備える、請求項１４に記載の機器。
【請求項１６】
前記結果が一つ以上のコラムを含む主キーを含む場合、前記デフォルトフォーマットは、属性として前記結果の主キーでは無いそれぞれのコラムを有する第１の要素を備える、請求項１４に記載の機器。
【請求項１７】
前記デフォルトフォーマットが複数の第２の要素をさらに含み、該複数の第２の要素のそれぞれが前記主キーの前記コラムの一つを含み、該複数の第２の要素のそれぞれが前記第１の要素の子供である、請求項１６に記載の機器。
【請求項１８】
前記機器が前記第２のフォーマットを定義する一つ以上のスタイルシートを受け取るように結合されている、請求項１３に記載の機器。
【請求項１９】
前記機器が前記リクエスト者から第２のリクエストを受け取るように結合され、前記機器が前記第２のリクエストに応答する前記コンピューターシステムへの前記リクエストを生成するように構成されている、請求項１２に記載の機器。
【請求項２０】
前記第２のリクエストが、前記一つ以上のデータベースに適合された一つ以上の式を含む一つ以上のスタイルシートを備える、請求項１９に記載の機器。
【請求項２１】
前記一つ以上のデータベースの少なくとも一部のコンテンツは、一つ以上のマークアップ言語オブジェクトを含み、前記結果が少なくとも一つのマークアップ言語オブジェクトを含む、請求項１２に記載の機器。
【請求項２２】
前記第２のフォーマットが前記ＤＢＭＳによってサポートされているフォーマットを備える、請求項２１に記載の装置。
【請求項２３】
機器がデータベース管理システム（ＤＢＭＳ）にリクエストを送ることと、
該機器が第１のフォーマットにて該ＤＢＭＳから結果を受け取ることと、
該機器が該リクエストに対応するリクエスト者への伝送のために該結果を第２のフォーマットに変換することと
を包含する、方法。
【請求項２４】
前記第２のフォーマットがマークアップ言語によって表現されている、請求項２３に記載の方法。
【請求項２５】
前記第２のフォーマットが前記機器によって保持されているデフォルトフォーマットを包含する、請求項２４に記載の方法。
【請求項２６】
前記結果が一つのコラムに含まれている主キーを含む場合、前記デフォルトフォーマットが、
前記主キーを含む要素と、
該要素の一つ以上の属性であって、該属性のそれぞれが、前記結果の１つの他のコラムを含む、要素の一つ以上属性と
備える、請求項２５に記載の方法。
【請求項２７】
前記結果が一つ以上のコラムを含む主キーを含む場合、前記デフォルトフォーマットは、属性として前記結果の主キーでは無いそれぞれのコラムを有す第１の要素を備える、請求項２５に記載の方法。
【請求項２８】
前記デフォルトフォーマットが複数の第２の要素をさらに含み、該複数の第２の要素のそれぞれが前記主キーの前記コラムの一つを含み、該複数の第２の要素のそれぞれが前記第１の要素の子供である、請求項２７に記載の方法。
【請求項２９】
前記機器に提供される一つ以上のスタイルシートにおける前記第２のフォーマットを定義することをさらに包含する、請求項２４に記載の方法。
【請求項３０】
前記機器が前記リクエスト者から第２のリクエストを受け取ることと、
前記機器が前記第２のリクエストに応答する前記コンピューターシステムへの前記リクエストを生成することと
を包含する、請求項２３に記載の方法。
【請求項３１】
前記第２のリクエストが、前記一つ以上のデータベースに適合された一つ以上の式を含む一つ以上のスタイルシートを含む、請求項３０に記載の方法。
【請求項３２】
前記一つ以上のデータベースの少なくとも一部のコンテンツは一つ以上のマークアップ言語オブジェクトを含み、前記結果が少なくとも一つのマークアップ言語オブジェクトを含む、請求項２３に記載の方法。
【請求項３３】
前記第２のフォーマットが前記ＤＢＭＳによってサポートされているフォーマットを包む、請求項３２に記載の方法。
【請求項３４】
複数のサーバと、
該複数のサーバに結合されている機器であって、該機器が、該複数のサーバの第１のサーバから第１のアウトプットデータを受け取るように結合され、該第１のアウトプットデータが、該複数のサーバの第２のサーバに第１のインプットデータとして提供され、該第１のアウトプットデータが、該第１のインプットデータのために該第２のサーバによって使用される第２のフォーマットと異なる第１のフォーマットである、機器と
を備える装置であって、
該機器は、該第１のアウトプットデータを第１のマークアップ言語に変換し、そして該第１のマークアップ言語を該第２のフォーマットに変換するように構成されている、装置。
【請求項３５】
前記機器が、前記第１のインプットデータを前記第２のフォーマットにおいて前記第２のサーバへ送るように構成されている、請求項３４に記載の装置。
【請求項３６】
前記第１のアウトプットが複数の個々のデータアイテムを含み、前記機器が前記複数のデータアイテムの第１のデータアイテムを一つ以上のマークアップ言語構造に変換するように構成され、該機器が、該複数のデータアイテムの少なくとも一部をマークアップ言語構造に変換する前に、前記第１のデータアイテムに対応する該マークアップ言語構造を前記第２のフォーマットに変換するように構成されている、請求項３４に記載の装置。
【請求項３７】
前記機器が、前記第１のフォーマットから前記マークアップ言語フォーマットへの変換を定義する第１のスタイルシートと、該マークアップ言語フォーマットから前記第２のフォーマットへの変換を定義する第２のスタイルシートとを受け取るように結合されている、請求項３４に記載の装置。
【請求項３８】
第１のサーバおよび第２のサーバを含む複数のサーバを含む装置であって、該第１のサーバは該第２のサーバへの第１のインプットデータとして提供される第１のアウトプットデータを生成するように構成される、装置内において、該複数のサーバに結合された機器であって、
該機器は該第１のアウトプットデータを受け取るように結合され、該第１のアウトプットデータが、該第１のインプットデータのために該第２のサーバによって使用される第２のフォーマットとは異なる第１のフォーマットであり、該機器が該第１のアウトプットデータを第１のマークアップ言語フォーマットに変換し、該第１のマークアップ言語を該第２のフォーマットに変換するように構成されている、機器。
【請求項３９】
前記機器が、前記第１のインプットデータを前記第２のフォーマットにおいて前記第２のサーバへ送るように構成されている、請求項３８に記載の機器。
【請求項４０】
前記第１のアウトプットが複数の個々のデータアイテムを含み、前記機器が前記複数のデータアイテムの第１のデータアイテムを一つ以上のマークアップ言語構造に変換するように構成され、前記機器が、前記複数のデータアイテムの少なくとも一部をマークアップ言語構造に変換する前に、前記第１のデータアイテムに対応する前記マークアップ言語構造を前記第２のフォーマットに変換するように構成されている、請求項３８に記載の機器。
【請求項４１】
前記機器が、前記第１のフォーマットから前記マークアップ言語フォーマットへの変換を定義する第１のスタイルシートと、該マークアップ言語フォーマットから前記第２のフォーマットへの変換を定義する第２のスタイルシートとを受け取るように結合されている、請求項３８に記載の機器。
【請求項４２】
複数のサーバの第１のサーバから、該複数のサーバの第２のサーバへの第１のインプットデータとして提供される第１のアウトプットデータを受け取ることと、
該第１のアウトプットデータを第１のフォーマットからマークアップ言語フォーマットに変換し、マークアップ言語フォーマットを該第２のサーバによって使用される第２のフォーマットに変換することと
を包含する、方法。
【請求項４３】
前記第１のインプットデータとして前記第２のフォーマットを前記第２のサーバへ送ることを包含する、請求項４２に記載の方法。
【請求項４４】
前記第１のアウトプットデータは複数の個々のデータアイテムを含み、前記変換することは、
前記複数のデータアイテムの第１のデータアイテムを一つ以上のマークアップ言語構造に変換することと、
前記複数のデータアイテムの少なくとも一部をマークアップ言語構造に変換する前に、該第１のデータアイテムに対応する該マークアップ言語構造を該第２のフォーマットに変換することと
を包含する、請求項４２に記載の方法。
【請求項４５】
前記第１のフォーマットから前記マークアップ言語フォーマットへの変換を定義する第１のスタイルシートと、前記マークアップ言語フォーマットから前記第２のフォーマットへの変換を定義する第２のスタイルシートとを受け取ることをさらに包含する、請求項４２に記載の方法。
【請求項４６】
一つ以上のコンピューターシステムを含む装置内において、インプットデータを受け取るように、および該インプットデータをアウトプットデータに変換するように結合された機器であって、該機器は、使用の間、該一つ以上のコンピューターシステムと結合される、機器。
【請求項４７】
データベースプロキシを備える、請求項４６に記載の機器。
【請求項４８】
データ統合スイッチを備える、請求項４６に記載の機器。
【請求項４９】
レンダリングエンジンを備える、請求項４６に記載の機器。
【請求項５０】
ＸＭＬルータを備える、請求項４６に記載の機器。
【請求項５１】
侵入検出装置を備える、請求項４６に記載の機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データセンターの中のデータベースおよびファイルシステムの、拡張可能マークアップ言語（ＸＭＬ）、標準汎用マークアップ言語（ＳＧＭＬ）、ハイパーテキストマークアップ言語（ＨＴＭＬ）のような構造化ドキュメント、そして非構造化データおよびドキュメントを処理および変換する分野に関する。
【背景技術】
【０００２】
ネットワークが遍在することによって、データセンターはコンピューター世界にとって重要なサービスとして現れた。一般的に、データセンターは、ユーザーへデータセンターと同様に、コンテンツ管理サービス、ファイルシステムサービスなど、他のアプリケーションサービスの中に維持される様々なデータベースへのアクセスを含む、アプリケーションサービスを提供する様々なサーバを含み得る。
【０００３】
不都合にも、様々なアプリケーションは、データを、異なるフォーマットにおいて、および／またはユーザによって所望されたものとは異なるフォーマットに生成し得る。従って、アプリケーションサーバ、ウェブサーバ、および／またはユーザのコンピュータシステムは、様々なフォーマットの間を変換することがよくタスクされる。変換ソフトウェアは、オリジナルにデザインされたタスクにおいてのサーバの効率を減らし、コンピュータ資源を消費する。さらに、データセンタのサービスを使用する時にユーザによって経験される待ち時間は、増え得る。
【発明の開示】
【課題を解決するための手段】
【０００４】
一部の実施形態においては、機器および方法は、データベース管理システム（ＤＢＭＳ）を実行するコンピューターシステムとの使用のために考慮されている。機器は、リクエストを生成ように構成されている。コンピューターシステムは、リクエストを受信するように機器と結合され、そしてＤＢＭＳは、一つ以上のデータベースのうちの少なくとも一つのデータベース内のリクエストを処理するように構成されている。コンピューターシステムは、機器にリクエストの結果を第１のフォーマットにおいて受け取るように構成されている。機器は、リクエストに対応するリクエスト者への返信のために結果を第二フォーマットに変換するように構成されている。機器およびコンピューターシステムを含む装置も検討されている。他の実施形態においては、機器は、コンテンツ管理システムやファイルシステム等のような他のバックエンドアプリケーションを実行するように構成されているコンピューターシステムと使用し得る。
【０００５】
他の実施形態においては、機器および方法は、複数のサーバと使用し得る。機器は複数のサーバと結合し、複数のサーバの第１のサーバからの第１のアウトプットデータを受信し得る。第１のアウトプットは、複数のサーバの第２のサーバへの第１のインプットデータとして提供され、第１のアウトプットデータは、第１のインプットデータのための第２のサーバによって使用された第２のフォーマットとは異なる第１のフォーマットにある。機器は、第１のアウトプットデータを第１のマークアップ言語へ変換し、そして第１のマークアップ言語を第２のフォーマットへ変換するように構成されている。機器および複数のサーバを含む装置も意図されている。
【０００６】
更なる実施形態においては、機器はデータセンターまたは他のコンピューター設備の中の他の機能を実行し得る。例えば、機器は、レンダリングエンジン、ＸＭＬルータ、およびファイアーウォール等（例えば、ウィルス検知）を実行し得る。
【発明を実施するための最良の形態】
【０００７】
下記詳細な説明は、添付された図を参照する。
【０００８】
発明が様々な変更および代替の形成が可能である一方で、その特定の実施形態は、図面の実施形態の様に記載され、ここで詳細に説明される。しかしながら、そこの図面および詳細な説明は、開示された特定の形式へ発明を限定することを意図するものではないことが理解されるべきである。反対に、添付された請求項として定義された本発明の精神および範囲の中の全ての変更、均等物、および代替物を網羅することが意図される。
【０００９】
機器の概要
図１を参照すると、機器１０の一実施形態のブロック図が示されている。図１の実施形態においては、機器１０は、ネットワークインターフェース回路１２、プロセッサ１４Ａおよび任意に１４Ｂのような一つ以上のプロセッサ、ドキュメントプロセッサ１６、およびメモリ１８を含み得る。ネットワークインターフェース回路１２は、一つ以上のネットワーク接続を介して、一つ以上のネットワックに結合されている。様々なコンピューターシステム（図１に示されていない）も、一つ以上のネットワークに結合されている。ネットワークインターフェイス回路１２もプロセッサ１４Ａ〜１４Ｂに結合されている。プロセッサは、メモリ１８およびメモリ１８にも結合されているドキュメントプロセッサ１６に結合されている。示されている実施形態においては、メモリ１８はスタイルシートコンパイラ２０、スキーマコンパイラ２０、一つ以上の記号デーブル２４、一つ以上の構文解析時間式ツリー（ｐａｒｓｅ−ｔｉｍｅ  ｅｘｐｒｅｓｓｉｏｎ  ｔｒｅｅ）２６、命令テーブル３０、余白テーブル３２、文書型定義（ＤＴＤ）テーブル３４、式リストテーブル３６、テンプレートリストテーブル３８、様々なドキュメントプロセッサデータ構造３９、および任意に他のソフトウェア３８を格納する。
【００１０】
一般的に、機器１０は、データセンターの中に含み得る他のコンピューターシステムのための一つ以上のサービスを提供するように構成され得る。下記所定の様々な実施形態は、網羅的ではないが、データベースプロキシ、レンダリングエンジン、データ統合スイッチ、マークアップ言語ルータ、およびファイアーウォールを含み得る。機器１０は、インプットドキュメントをアウトプットドキュメントに変換するためにデザインされたハードウェア／ソフトウェアを含み得、一部の実施形態においては、スタイルシートによって特定された変換に基づく。機器１０によって処理された様々なサービスは、一部の実施形態においては、好ましいサービスを達成するための変換機能を使用し得る。機器１０は、サーバに、サーバが提供するために図られたサービスへより多くの資源を捧げる許可を与え、データセンターのサーバからサービスをオフロードするために使用し得る。ここで使用されているように、「機器（ａｐｐｌｉａｎｃｅ）」と言う用語は、ハードウェアと、ネットワークのインストールのためのユニットとして販売されている任意にソフトウェアの任意の組み合わせに関連し得る。機器は、通常、仮にあったとしても、相対的にわずかな構成（例えば、サーバまたはパーソナルコンピューターのような汎用コンピューターシステムに比べて）のネットワークにインストールされるようにデザインされ得、通常、仮にあったとしても、比較的にわずかなサポートで動作するようにデザインされ得る。機器にソフトウェアが含まれている場合、ソフトウェアは通常、機器にプリインストールされている（ネットワークを介して一部の実施形態の中で、たとえソフトウェアアップグレードが機器にダウンロードされ得、または追加のソフトウェアが機器にインストールされ得るが）。管理人は、ネットワークを介して一部の実施形態の中で、機器にアクセスし得る（例えば、ウェブブラウザインターフェイスが提供され得る）。
【００１１】
ここで使用されているように、「ドキュメント」と言う用語は、コンテンツを解釈するために使用できる対応する定義済の構造を有する任意のコンテンツを表す。コンテンツは、高度に構造され得、（ＸＭＬドキュメント、ＨＴＭＬドキュメント、ｐｄｆドキュメント、ワードプロセッサドキュメント、データベース等のような）またはプレーンテキストドキュメント（構造が例えば、文字の連続になり得る）またはデータ（構造が例えば、特定の配列に整えられたデータアイテムセットになり得る）のように単純になり得る。下記説明されている機器１０の様々なアプリケーションの実施形態は、リクエスト（例えば、データベースへのアクセス）、データ、または他の種類のドキュメントを含むドキュメントコンテンツを提供し得る。
【００１２】
一部の実施形態においては、機器１０は、ネットワーク接続を介して、ドキュメントに適用されるスタイルシート、ドキュメントに適用されるスキーマ、および／またはドキュメント自身（ドキュメントにスタイルシート／スキーマを適用するリクエストと共に）を受け得る。スタイルシートを適用するためのリクエストに応じて、機器１０は、ドキュメントにスタイルシートを適用し得、ネットワークを介してリクエスト者に送られるように変換されたドキュメントを生成し得る。一部の実施形態においては、機器１０は、ドキュメントを解析するためのリクエストも受け得る（ＸＭＬのためのｓｉｍｐｌｅ  ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ（ＡＰＩ）（ＳＡＸ）またはｄｏｃｕｍｅｎｔ  ｏｂｊｅｃｔ  ｍｏｄｅｌ（ＤＯＭ））のような定義済のフォーマットへ）。スキーマ（またはＤＴＤ）を適用するためのリクエストに応じて、機器１０は、スキーマまたはＤＴＤに従ってドキュメントを検査し得る。
【００１３】
他の実施形態においては、機器１０はリクエストを受け得、リクエストを解釈するために他のソフトウェア２８を含み得る。機器１０は、リクエストに基づいて他のネットワークデバイス（例えば、サーバ）への通信を生成し得、リクエストの処理を援助するために変換機能も使用し得る。
【００１４】
一実施形態においては、変換機能は、ＸＭＬドキュメントおよび変換（ＸＳＬＴ）のための対応するＸＭＬスタイルシート言語のために最適化され得る。ＸＭＬおよびＸＳＬＴスタイルシートに関連した追加の詳細は、下記に示されている。ＸＳＬＴは、式のためにＸＰａｔｈ言語に基づいている。ＸＰａｔｈに基づいて開発された追加の言語であるＸＱｕｅｒｙは、他の実施形態においても使用され得る。さらに先に、他の実施形態は、任意のマークアップ言語および対応する式言語に基づき得る。一般に、「マークアップ言語」は、ドキュメントコンテンツの構造を定義するために使用され得る任意の言語である。マークアップは通常、コンテンツを識別する様々なタグを含み得、コンテンツの性質についての情報を提供し得る。例えば、ＸＭＬは、コンテンツの構造を説明するために使用され得る要素タグが定義されることを許可する。さらに要素は、要素をさらに説明する様々な属性を含み得、またはコンテンツについての追加の情報を提供し得る。
【００１５】
ＸＭＬドキュメントは、ツリーの根がドキュメントを全体として識別し、ドキュメントの互いのノードは根の子孫とする階層型ツリー構造を有する。様々な要素、属性、およびドキュメントコンテンツがツリーのノードを構成する。要素は、要素が含むコンテンツの構造を定義する。それぞれの要素は要素名を有し、要素は、それぞれが要素名を含む開始タグおよび終了タグを使用するコンテンツの範囲を定める。要素は、コンテンツの構造をさらに定義し得るサブ要素として他の要素を有し得る。さらに、要素は要素または要素コンテンツの構造についての情報をさらに提供する氏名／値の組み合わせである属性（要素名に続いて開始タグに含まれている）を含み得る。ＸＭＬドキュメントはＸＭＬドキュメント、コメント等を読み取るアプリケーションにパスされる処理命令も含み得る。一般に、ドキュメントの「ノード」は、構造定義（例えば、ＸＭＬの要素および／または属性）および／またはドキュメントコンテンツを含み得る。一実施形態においては、ノードは要素、属性、処理命令、コメント、およびテキストを含み得る。
【００１６】
ＸＳＬＴスタイルシートは、テンプレートの集合としてみなし得る。各テンプレートは、（ｉ）ノードを原始（ｓｏｕｒｃｅ）文書のツリー構造を選択する式（ｅｘｐｒｅｓｓｉｏｎ）、および（ｉｉ）原始文書のそれぞれの一致するノードのために例示化されるようにアウトプットドキュメントの構造の対応する一部分を特定する本文を含み得る。原始文書にスタイルシートを適用することは、原始文書のそれぞれのノードのための一致するテンプレートを見つることを試み、アウトプットドキュメントのツリーに一致するテンプレートの本文を例示化することを含み得る。テンプレートの本文は、（ｉ）アウトプットドキュメントに例示化される文字コンテンツ、（ｉｉ）アウトプウトドキュメントの中にコピーされる一致するノードからのコンテンツの選択、（ｉｉｉ）アウトプットドキュメントに例示化される文の結果と一緒に評価される文のうちの一つ以上を含み得る。同時に、例示化されるコンテンツおよび評価される文を、テンプレートと一致するノードに行う「行動（ａｃｔｉｏｎ）」と呼び得る。テンプレートの本文は、一つ以上のノードを選択する式、およびスタイルシートのテンプレートが選択済のノードに適用される原因を引き起こし、従ってテンプレートを効果的に入れ子することを含む「適用テンプレート」を一つ以上含み得る。適用テンプレート文への一致が見つけられた場合、結果のとして残ったテンプレートは、適用テンプレート文を含むテンプレートの例示化の中で例示化される。テンプレートの本文の中の他の文においては、ノードと対照して一致する式（および文は一致するノードにおいて評価され得る）も含み得る。ＸＳＬＴスタイルシートがここの一実施形態に使用され得る間、通常「スタイルシート」は、原始文書をアウトプットドキュメントに変換するための任意の仕様を含み得る。原始文書およびアウトプットドキュメントは、同じ言語になり得（例えば、原始文書およびアウトプットドキュメントは異なるＸＭＬ用語になり得る）、または異なり得る（例えば、ＸＭＬからｐｄｆへ等）。スタイルシートのもう一実施形態は、ＨＴＭＬおよび／またはＸＭＬ  Ｑｕｅｒｙのために定義されたスタイルシートをカスケードすることである。
【００１７】
スタイルシートにおいて使用されている式は、通常、ノード識別子の演算子と加えて、ノード識別子および／または値の間の親子（または先祖／子孫）関係を特定するためにノード識別子および／またはノードの値を含み得る。式は、ノードを一致させるための予備の状態である述語も含み得る。述語は、式の結果が真（およびノードが式ノードと一致する）または嘘（およびノードが式と一致しない）のどちらかであるコンテキストノードとして対応するノードと一緒に評価される式である。従って、式は、ドキュメントのツリーと対照して一致するノードのツリーとしてみなされ得る。ＸＳＬＴに使用されている式言語であるＸＰａｔｈにおいては、式は、「コンテキストノード」のコンテキストの中でも評価され得る（すなわち、式は、コンテキストノードの先祖、子孫、親、または子供と同様に他のノード名との関係として式においてのノード名を特定するコンテキストノードと関連し得る）。所定のドキュメントノードは、所定のドキュメントノードが式の評価を介して選択された場合、式を満たし得る。すなわち、式においての式ノード識別子は、式において特定されている所定のドキュメントノードと同じ関係を有す所定のドキュメントノードの識別子またはドキュメントノード識別子と一致し、式に使用されている任意の値が所定のドキュメントノードと関連する対応する値に対して等しいということである。ノードが所定の式を満たす場合、ドキュメントノードは、所定の式のための「一致ノード」としても参照され得る。この議論の残りの中の一部の場合においては、式のツリーのノードをドキュメントのノードから区別することが、明確さのために役に立ち得る。従って、ノードが式のツリーの一部の場合、ノードは、「式ノード」として参照され得、ノードが処理されているドキュメントの一部の場合、ノードは、「ドキュメントノード」として参照され得る。ノード識別子は、氏名（例えば、要素名、属性名等）または種類によってノードを識別する式の構造（例えば、ノードテスト式は任意のノードと一致し得、またはテキストテスト式は任意のテキストノードと一致し得る）を含み得る。一部の場合において氏名は、特定の名前空間に属し得る。そのような場合においてノード識別子は、名前空間と関連した氏名であり得る。ＸＭＬにおいては、名前空間は、要素を認定する方法を提供し、ｕｎｉｖｅｒｓａｌ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）によって識別された名前空間名と関連することによって氏名を属性させる。従って、ノード識別子は、クォリファイドネームとなり得る（任意の名前空間プレフィックス、コロンによって続き、氏名によって続く）。ここで使用されている氏名（例えば、要素名、属性名等）は、クォリファイドネームを含み得る。
【００１８】
示されている実施形態においては、ドキュメントにスタイルシートを適用することは、下記の方法において行われ得る。スタイルシートコンパイラ２０は、スタイルシートを一つ以上のデータ構造に編集し、ドキュメントプロセッサ１６によっての使用に対してコードするためにプロセッサ１４Ａ〜１４Ｂの一つにおいて実行されるソフトウェア（例えば、複数の命令）を含み得る。ドキュメントプロセッサ１６は、原始文書にデータ構造を適用し得、アウトプットドキュメントを生成する。
【００１９】
特に、一実施形態においては、スタイルシートコンパイラ２０は、ノード識別子（文字列比較を含む）よりむしろ数字を比較することによって式の評価がドキュメントプロセッサにおいて実行され得るように、ノード識別子にシリアル番号を割り当て得る。スタイルシートコンパイラ２０は、記号テーブル２４にノード識別子のシリアル番号へのマッピングを格納し得る。さらに、スタイルシートコンパイラ２０は、スタイルシートからの式を抽出し得、式のマッチングのためにドキュメントプロセッサにおいて使用される式のツリーのデータ構造を生成する（例えば、構文解析時間式ツリー２６）。さらに先に、スタイルシートコンパイラ２０は、それぞれの一致する式のために実行される命令（および一実施形態において、ランタイム述語を評価するために実行される命令）と一緒に命令テーブル３０を生成し得る。命令テーブルにおいての命令は、ドキュメントプロセッサ１６によって実行された時、式が一致した時に実行されると定義された行動を行う結果になり得る。一部の実施形態において命令は、行動が行われるように含み得る（例えば、命令および行動の間の１対１対応があり得る）。他の実施形態においては、少なくとも一部の行動は、二つ以上の命令を実行することによって実現化され得る。スタイルシートコンパイラ２０は、原始文書においての様々な種類の余白がどのようにして処理されるかを定義しながら余白テーブル３２（例えば、保存される、取り除かれる等）、式リストテーブル３６、およびテンプレートリストテーブル３８も生成し得る。
【００２０】
スキーマコンパイラ２２は、プロセッサ１４Ａ〜１４Ｂの一つに実行された命令を同様に含み得る。スキーマコンパイラ２２は、ＤＴＤテーブル３４と同様に一つ以上の記号テーブル２４を生成するために（ノード識別子をシリアル番号と入れ替えながら）スキーマおよびＤＴＤを編集し得る。一般に、ＤＴＤおよびスキーマは、許されたドキュメント構造および所要のドキュメント構造の両方の定義を含み得る。ドキュメントの著者は従って、ＤＴＤおよび／またはスキーマと共に有効なドキュメントの所要のおよび許された構造を説明し得る。一部の場合においては、ＤＴＤまたはスキーマは、属性のためのデフォルト値も含み得る。一実施形態においては、ドキュメントのエンティティ参照を入れ替えるために使用されているエンティティ宣言、有効なドキュメントのために必要な属性である所定の要素の属性、ドキュメントの所定の要素に特定され得ない属性のための属性デフォルト値、ドキュメントの構造のための必要条件（例えば、特定のサブ要素の所要の最小／最大／特定の数字等）、およびドキュメントの許された構造の定義のような様々な情報を含み得る。ＤＴＤテーブル３４は、エンティティ参照入れ替えのテーブル、所要の属性のテーブル、属性のデフォルトのテーブル、および許された構造を識別する骨組みのツリー（および適用可能な場合、所要の構造）を含み得る。
【００２１】
ドキュメントプロセッサ１６は、ドキュメントを解析し、構文解析時間式ツリーにおいてドキュメントノードを式ノードと一致させるためのハードウェア回路を含み得る。すなわち、ドキュメントを解析し、ドキュメントノードを式ノードと一致させるハードウェア回路は、任意のソフトウェア命令の実行をせずにこれらの動作を行い得る。ハードウェアは、一致するドキュメントノードのそれぞれの式のために解析されたコンテンツおよび表示を格納する様々なデータ構造を生成し得る。ハードウェアは、アウトプットドキュメントを生産するために結合された結果を生成しながら、所定の式のそれぞれの一致するドキュメントノードに所定の式のための命令テーブル３０からの命令を実行し得る。一実施形態の追加の詳細は、下記に提供されている。
【００２２】
上記に記載の通り、示されている実施形態においては、スタイルシートコンパイラ２０およびスキーマコンパイラ２２は、ソフトウェアにおいて実行され、ドキュメントプロセッサ１６は、ハードウェアにおいて実行される。一部の実施形態においては、機器１０の性能においての重要な要因は、変換のリクエストがされ、ドキュメントが提供された時のドキュメントの処理があり得る。すなわち、スタイルシートおよび／またはスキーマは、多くの場合において、処理されているドキュメントの数と比べて相対的にまれに変換する。所定のスタイルシートは、スタイルシートが変換される前に（アップデータされたスタイルシートまたは全体で異なるスタイルシートに）、複数のドキュメント（例えば、少なくとも多大なドキュメントの命令）に適用され得る。同様な関係は、適用されているスキーマおよびドキュメントのために保持され得る。従って、スタイルシート／スキーマ（ソフトエウェアを使用しながら）からの相対的に不変な情報を専用のカスタムハードウェアによって効果的にアクセスされ得るデータ構造に取り込むことは、機能性ソルーションを提供し得る。さらに、ハードウェアにスタイルシート／スキーマコンパイルを有することは、一部の実施形態において、異なるスタイルシート／スキーマ言語を実行、および／またはカスタムハードウェアの変換無しで言語仕様の変換を実行するための柔軟性を提供し得る。例えば、ＸＳＬＴ、ＸＰａｔｈ、およびＸＭＬスキーマは、今もなお開発され得、そして将来新しい機能がこれらの言語に加えられ得る。コンパイラは、これらの新しい機能を処理するために適応され得る。使用されるスタイルシート／スキーマは、事前に提供され得、それに従って、スタイルシート／スキーマを編集する時間の重要性が少なくなる。しかしながら、他の実施形態においては、スタイルシートコンパイラ２０およびスキーマコンパイラ２２の一つまたは両方が、ハードウェアまたはハードウェアおよびソフトウェアの組み合わせにおいて実行され得る。
【００２３】
ネットワークインターフェイス回路１２は、ネットワーク接続においての低ラベルな電子的およびプロトコル詳細を処理し得、処理のために受け取ったパケットをプロセッサ１４Ａ〜１４Ｂにパスし得る。任意の種類のネットワークが使用され得る。例えば、一部の実施形態においては、ネットワーク接続は、ギガビットイーサネット（登録商標）コネクションになり得る。所定のラベルの帯域幅を達成するため、および／またはネットワーク接続においての重複性を提供し得るために、要求されたように一つ以上のコネクションが提供され得る。
【００２４】
プロセッサ１４Ａ〜１４Ｂは、任意の種類のプロセッサを含み得る。例えば、一実施形態においては、プロセッサ１４Ａ〜１４Ｂは、ＰｏｗｅｒＰＣネットワークプロセッサになり得る。他の実施形態においては、プロセッサ１４Ａ〜１４Ｂは、ＡＲＭ、インテルＩＡー３２、ＭＩＰＳ等のような他の命令セット構成を実行し得る。
【００２５】
任意の相違接続は、プロセッサ１４Ａ〜１４Ｂ、ドキュメントプロセッサ１６、およびメモリ１８を結合するために使用され得る。さらに、プロセッサ１４Ａ〜１４Ｂは、プロセッサ１４Ａ〜１４Ｂのコネクションから分れて、ドキュメントプロセッサ１６に結合され、そしてそのドキュメントプロセッサはメモリ１８に結合される。例えば、一つのインプリメンテーションにおいては、プロセッサ１４Ａ〜１４Ｂは、一つ以上のｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ（ＰＣＩ−Ｘ）周辺成分相違接続エクスプレスのバスを使用しながらドキュメントプロセッサに結合され得る。
【００２６】
一部の場合においては、ＤＴＤ、スキーマ、またはスタイルシートはドキュメントに埋め込みされ得ることに留意されたい（直接またはスキーマまたはスタイルシートのポインターとしてのどちらか）。そのような場合においては、ＤＴＤ、スキーマ、またはスタイルシートは、ドキュメントから抽出され得、そして説明されているように別々に提供されるスキーマまたはスタイルシートとために処理される。
【００２７】
メモリ１８は、揮発性または不揮発性のメモリの任意の種類を含み得る。例えば、メモリ１８は、一つ以上のＲＡＭ（例えば、ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭ等）、フラッシュメモリまたバッテリーバックアップ式ＲＡＭのような不揮発性メモリ、ディスクまたＣＤ−ＲＯＭ等のような磁気記憶装置または光学的記憶装置を含み得る。メモリ１８は、別々にアクセス可能な複数のメモリを含み得る（例えば、プロセッサ１４Ａ〜１４Ｂにのみアクセス可能な一つの区分または複数の区分およびドキュメントプロセッサ１６にのみアクセス可能なもう一つの区分または複数の区分）。
【００２８】
図１は、スタイルシートコンパイラ２０、スキーマコンパイラ２２、およびメモリ１８において格納されている他のソフトウェア２８を示す。一般に、スタイルシートコンパイラ２０、スキーマコンパイラ２２、および／または他のソフトウェア２８は、任意のコンピューターアクセス可能媒体上に符号化され得る。一般的に言えば、コンピューターアクセス可能媒体は、コンピューターに命令および／またはデータを提供するために使用される間、コンピューターによってアクセス可能な任意の媒体を含み得る。例えば、コンピューターアクセス可能媒体は、ネットワークおよび／またはワイアレスリンクのような通信媒体を介して電気的、電磁的またはデジタル信号のような伝送媒体または信号を介してアクセス可能な媒体と同様に、磁気媒体また光学的媒体、例えばディスク（固定またはリムーバブル）、ＣＤ−ＲＯＭ、またはＤＶＤ−ＲＯＭ、のような記憶装置媒体、ＲＡＭ（例えば、ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭ等）、ＲＯＭ、フラッシュメモリ等のような揮発性または不揮発性記憶装置を含み得る。
【００２９】
一部の実施形態においては、コンピューターアクセス可能媒体は、別々のコンピューターシステムまたはコンパイルを行うためにスタイルシートコンパイラ２０および／またはスキーマコンパイラ２２を実行し得るシステムに含み得る。コンパイルからの結果からなるデータ構造／コードは、機器１０に通信され得る（例えば、機器１０へのネットワーク接続を介して）。
【００３０】
ここの説明がドキュメントに適用されたスタイルシートの実施形態を含み得る間、他の実施形態は、ドキュメントに複数のスタイルシートを適用すること（要望されているように、同時にまたは連続的にのどちらか）、そして複数のドキュメントにスタイルシートを適用すること（要望されているように、コンテキスト交換と同時にまたは連続的にのどちらか）を含み得る。
【００３１】
次に図２を参照すると、ドキュメントプロセッサ１６の一実施形態のブロック図が示されている。図２の実施形態においては、ドキュメントプロセッサ１６は、パーサ回路４０、式プロセッサ４２、変換エンジン４４、アウトプットジェネレータ４６、およびバリデータ回路４８を含み得る。パーサ回路４０は、式プロセッサ４２およびアウトプットジェネレーター４６に結合されている。式プロセッサ４２は、アウトプットジェネレータ４６に結合されている変換エンジン４４に結合されている。バリデータ４８は、アウトプットジェネレータ４６に結合されている。図２においての装置は、お互いに直接結合され得（例えば、装置の間の信号ラインを使用しながら）、メモリ１８を介して結合され得（例えば、ソース装置はデスティネーション装置へ通信される情報をメモリ１８に書き込み得、そしてそのデスティネーション装置はメモリ１８から情報を読み得る）、またはその両方となり得る。
【００３２】
パーサ回路４０は、ドキュメントを受け取り得、そして式プロセッサ４２およびバリデータ回路４８のためのイベントを識別し、そして解析済コンテンツとデータ構造も生成しながらドキュメントを解析する。ドキュメントプロセッサ１６がスタイルシートに従ってドキュメントを変換するためとされた場合、解析済コンテンツは変換エンジン４４のためにメモリ１８のデータ構造に格納され得る。代わりに、ドキュメントが解析されるためだけの場合、パーサ回路４０は、ＳＡＸおよびＤＯＭフォーマットにアウトプットされるために、解析済コンテンツをアウトプットジェネレータ４６に提供し得る。パーサ回路４０は、同様に、メモリ１８を介しても、解析済コンテンツをアウトプットジェネレータ４６に提供し得る。
【００３３】
一実施形態においては、パーサ回路４０は、メモリ１８からの記号テーブル２４、ＤＴＤテーブル３４、および余白テーブル３２にアクセスし得る。パーサ回路４０は、ドキュメントを解析し、そして検出済ドキュメントノードに関連したイベントを生成する。さらに詳しく、パーサ回路４０は、ドキュメントのノード識別子を記号テーブル２４の対応するシリアル番号に変換し、そしてシリアル番号をイベントの一部として式プロセッサ４２（およびバリデータ回路４８）に伝送する。さらに、パーサ回路４０は、変換エンジン４４のためにドキュメントの解析済コンテンツを格納する解析済コンテンツテーブルを生成する。
【００３４】
式プロセッサ４２は、パーサ回路４０からイベントを受け取り（ドキュメントにおいて解析されたドキュメントノードを識別しながら）、そしてパーサ回路４０によって識別されたドキュメントノードを構文解析時間式ツリー２６に対して比較する。式プロセッサ４２は、それぞれの式に対して一致するドキュメントノードのリストを変換エンジン４４にアウトプットする。変換エンジン４４は、パーサ回路４０によって組み立てられた解析済コンテンツのデータ構造を受け取り、そしてアウトプットドキュメントのための結果を生成するために命令テーブル３０からの対応する命令を実行する。変換エンジン４４は、任意のランタイム式も実行し得、ランタイム式を満たさないテンプレートおよび式のマッチリストからのドキュメントノードを排除する。一部の実施形態においては、それぞれの命令は他から独立し得、そしてこのようにして、実行は任意の順序において生じ得る。アウトプットジェネレータ４６は、結果を順番に再組み立てし得、そしてメモリ１８にアウトプットドキュメントを書き込み得る（またはメモリ１８を介さずにアウトプットドキュメントをプロセッサ１４Ａ〜１４Ｂに送り得る）。プロセッサ１４Ａ〜１４Ｂは、アウトプットドキュメントを読み取るためにソフトウェアを実行し得、そしてリクエスト者にアウトプットドキュメントを伝送する。
【００３５】
一つの特定の実行においては、パーサ回路４０はドキュメントをインラインにおいて受け取り得、そして同様に、パーサ回路４０はイベントをインラインにおいて式プロセッサ４２に伝送し得る。すなわち、ドキュメントの一部が受け取られ、再組み立て（例えば、プロセッサ１４Ａによって）される中で、プロセッサ１４Ａはドキュメントの一部をパーサ回路４０にパスする。パーサ回路４０は、従って、プロセッサ１４Ａがドキュメントの全体を受け取る前に、解析を開始し得る。同様に、イベントは識別されたように、式プロセッサ４２にパスされる。一方、解析済コンテンツテーブルおよびテンプレート／式のマッチリストは、メモリ１８を介してパスされる（変換エンジン４４への通信を越えて点線の楕円によって示される）。
【００３６】
バリデータ回路４８は、パーサ回路４０によって送られたイベントも受け取り得、スキーマ／ＤＴＤ（骨組みのツリーおよびＤＴＤテーブル３４によって表されているように）に適用し得、そしてスキーマにおいて示されているように、ドキュメントが有効であるかを判断し得る。ドキュメントが有効な場合、バリデータ回路４８は、アウトプットジェネレータ４６に伝送される成功メッセージを生成し得る。ドキュメントな無効な場合、バリデータ回路４８は、誤動作メッセージ（誤動作の理由を示す）を生成し得、そして誤動作メッセージをアウトプットジェネレータ４６に伝送し得る。アウトプットジェネレータ４６は、メッセージをメモリ１８に格納し得る（そしてプロセッサ１４Ａ〜１４Ｂはメッセージを引き続きリクエスト者に伝送し得る）。
【００３７】
データセンター概要
図３を参照すると、機器１０が様々な目的のために使用され得るデータセンターの一実施形態においてのブロック図が示されている。データセンターは、インターネットまたは任意の他の要望されているネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）等、または上記ネットワークの任意の組み合わせ）に結合され得る。データセンターは、ファイアーウォール５０（一部の実施形態において、機器１０の一つ以上の事例を含み得る）、一つ以上のルータ５２（一部の実施形態において、機器１０の一つ以上の事例を含み得る）、ウェブサーバ５４Ａ〜５４Ｂのようなウェブサーバ、一つ以上のデータ統合スィッチ５６（一部の実施形態において、機器１０の一つ以上のインスタンスを含み得る）、アプリケーションサーバ５８Ａ〜５８Ｂのようなアプリケーションサーバ、データベースプロキシ６０（一部の実施形態において、機器１０の一つ以上のインスタンスを含み得る）、およびリレーショナルデータベース管理システム（ＲＤＢＭＳ）を実行するサーバ６２を含み得る。
【００３８】
図３において示されている結合は、ロジカルになり得る。すなわち、様々な論理的通信経路が図３において示されている。従って、ファイアーウォール５０は、ウェブサーバ５４Ａ〜５４Ｂにロジカルに結合され得る（そして潜在的にアプリケーションサーバ５８Ａ〜５８Ｂも）ルータ５２にロジカルに結合され得る。データ統合スィッチ５６は、ウェブサーバ５４Ａ〜５４Ｂおよびアプリケーションサーバ５８Ａ〜５８Ｂにロジカルに結合され得る。アプリケーションサーバ５４Ａは、ＲＤＢＭＳサーバ６２にロジカルに結合されているデータベースプロキシ６０にロジカルに結合され得る。物理的に、図３において示されている様々なデバイスは、ネットワーク（例えば、ＬＡＮ、ＷＡＮ、ＭＡＮ、ワイアレス等、またはその組み合わせ）、地理的に近いまたは地理的に分配等されている複数の別々のネットワークに結合され得る。例示的ネットワークは、イーサネット（登録商標）ネットワーク、トーケンリング等を含み得る。
【００３９】
ファイアーウォール５０は、データセンターをインターネットまたは他のネットワークからの認定されていないアクセス／攻撃から守り得る。一部の実施形態において機器１０は、データセンターに提供されたドキュメントの中のウィルスを検知するためにファイアーウォール５０の中に実施され得る。図１３に関しての例示的な実施形態が、下記に説明されている。
【００４０】
ルータ５２は、ファイアーウォールを介してパスするパケットを受け取り得、そしてパケットをデータセンターの範囲で、適切な受信機への経路を決め得る（例えば、ウェブサーバ、アプリケーションサーバ等）。一部の実施形態においては、機器１０は、ＸＭＬパケットの経路を決めながら、ＸＭＬルータとして使用され得る。図１２に関しての例示的な実施形態が、下記に説明されている。
【００４１】
ウェブサーバ５４Ａ〜５４Ｂのようなウェブサーバは通常、外部のネットワーク（例えば、インターネットまたは他のネットワーク）からのウェブコンテンツのリクエストに対する応答として、ウェブコンテンツ（例えば、ウェブページ）を提供するために責任があり得る。一部の場合においては、ウェブコンテンツの一部がアプリケーション（ＲＤＢＭＳのような）から引き出された場合、ウェブサーバはアプリケーションサーバと通信し得る。
【００４２】
アプリケーションサーバ５８Ａ〜５８Ｂのようなアプリケーションサーバは、アプリケーションサービスを提供するために構成されている。一般に、アプリケーションサーバは、データセンターのバックエンドアプリケーション（例えば、ＲＤＢＭＳ、コンテンツ管理システム、ファイルシステム等）とリクエストしているユーザー（例えば、インターネットまたは他のネットワークから）の間のインターフェースを提供する。
【００４３】
上記に記載の通り、一部の場合においては、ウェブサーバ５４Ａ〜５４Ｂは、アプリケーションサーバ５８Ａ〜５８Ｂと通信し得、逆も同じくし得る。しかしながら一部の場合においては、一つのサーバおよびもう一つのサーバがすることになっているデータアウトプットのフォーマットは、その他のサーバによって期待されているフォーマットと一致し得ない。データ統合スイッチ５６は、データフォーマットアウトプットをソースサーバによって、デスティネーションサーバによって要求されたフォーマットに変換するために使用され得る。一部の実施形態においては、機器１０は、データ統合スイッチ５６として使用され得る。図９〜１１に関しての例示的な実施形態が、下記に説明されている。
【００４４】
一般に、ここで使用されているように、「サーバ」は、サーバに割り当てられたサービスを提供するために設計されたソフトウェアを含み得るコンピューターシステムを含み得る。
【００４５】
示されている実施形態においてのアプリケーションサーバ５８Ａは、アプリケーションインターフェイスをＲＤＢＭＳサーバ６２に提供するために構成されている。しかしながら、一部の場合においては、アプリケーションサーバ５８Ａは、ＲＤＢＭＳサーバ６２が通信のために構成されているのとは異なる方法で、ＲＤＢＭＳサーバ６２と通信するために構成され得る。例えば、アプリケーションサーバ５８ＡがデータベースをＸＭＬとして表示し得ることに対して、データベースはリレーショナルデータフォーマットを有し得る。もう一実施形態においてデータベースは、オブジェクトのコンテンツがアプリケーションの所定のデータであるが、アプリケーションサーバ５８Ａはリレーショナルデータがフォーマットされたアウトプット（例えば、情報の複数のコラムまたはフィールドを有するそれぞれの記録）またはデータのための他のフォーマットを期待し得るＸＭＬオブジェクトを格納し得る。
【００４６】
データベースプロキシ６０は、ＲＤＢＭＳサーバ６２への「フロントエンド」として含み得る。データベースプロキシ６０は、アプリケーションサーバ５８Ａが期待する方法においてアプリケーションサーバ５８Ａと通信し得、そしてＲＤＢＭＳサーバ６２が期待する方法においてＲＤＢＭＳサーバ６２と通信し得る。従って、データベースプロキシ６０は、一つの形からもう一つの形へと通信を変換し得る。一部の実施形態においては、機器１０はデータベースプロキシ６０として使用され得る。図４〜７に関する例示的な実施形態は、下記に説明されている。
【００４７】
ＲＤＢＭＳサーバ６２は、ＲＤＢＭＳを実行する。示されている実施形態がリレーショナルデータベースを実行し得る間（異なるフィールドに基づく特定の記録に対してのデータベースを検索するための柔軟性を許可する目的として、記録が様々な関連したテーブルに格納されている）、要望された場合に、他の実施形態は非リレーショナルデータベース（例えば、フラットファイルデータベース）を実行し得る。例示的なＲＤＢＭＳは、オラクル、ＤＢ２等のような構造化問合せ言語（ＳＱＬ）データベースを含み得る。一般に、ここで使用されているように、データベース管理システム（ＤＢＭＳ）は、データベースへのエントリーを許可し、データベースの検索を許可し、データベース等のデータを整理するソフトウェアを含み得る。ＲＤＢＭＳは、リレーショナルデータベースのためのＤＢＭＳソフトウェアである。
【００４８】
他の実施形態においては、サーバはコンテンツ管理システム（アクセスを管理し得、そしてソフトウェアソースコード、ドキュメント、または任意の他のデータファイルを含み得るコンテンツを複数のユーザーによってアップデートするシステム）、ファイルシステム等を実行し得、そしてプロキシ６０は、データベースプロキシと同等のフロントエンドとして使用し得る。
【００４９】
機器１０が図３の様々な配置に示されている間、要望されているように、様々な実施形態は任意の一つ以上の示された配置において機器１０を実行し得る。さらに、図３においての機器１０のアプリケーションがデータセンターのコンテキストに示されている間、それぞれのアプリケーションは、データセンターの外である他の環境において使用され得る。
【００５０】
機器アプリケーション
次に図４〜１３を参照すると、機器１０の様々なアプリケーションが更なる詳細において示されている。
【００５１】
図４は、ＲＤＢＭＳサーバ６２のためのデータベースプロキシ６０として使用されている機器１０の一実施形態を示している。データベースプロキシ６０は、機器１０および任意的にスタイルシート７０と７２を含む。機器１０は、リクエスト者からのリクエスト７４（例えば、アプリケーションサーバ５８Ａから）を受け取るために結合され得、そして対応するリクエスト７６をＲＤＢＭＳサーバ６２に生成するために構成され得る。ＲＤＢＭＳサーバ６２は、機器１０が受け取り得、そしてアプリケーションサーバ５８Ａによって要望されたフォーマットにおいて結果８０に変換し得るリクエストの結果７８によって応答し得る。任意的に、インプットスタイルシート７０および／またはアウトプットスタイルシート７２は、機器１０によって使用され得る。
【００５２】
機器１０によって受け取られたリクエストは、任意のフォーマットであり得る。例えば、アプリケーションサーバ５８ＡがデータベースをＸＭＬデータベースとして表示した場合、リクエストはＸＰａｔｈ式またはＸＰａｔｈ式の複数になり得る。機器１０は、ＸＰａｔｈ式をＳＱＬリクエストに変換し得、そしてＳＱＬリクエストをＲＤＢＭＳサーバ６２に伝送し得る。インプットスタイルシート７０は、この変換のために使用され得る。代わりに、ソフトウェア２８は、ＸＰａｔｈ式を受け取り得、そしてそれぞれの式のための対応するＳＱＬ文を生成し得る。それでも他の実施形態においては、アプリケーションサーバからのリクエストは、データベースに適用されるいくつかのＸＰａｔｈ式を含むスタイルシートの形としてあり得る。インプットスタイルシート７０は、一部の実施形態において、リクエスト７４の一部として含み得る。
【００５３】
代わりに、リクエストは、データベースをアクセスするための一つ以上のＳＱＬ文になり得る。この場合において機器１０は、ＳＱＬ文をＲＤＢＭＳサーバ６２に伝送し得る。ＤＢＭＳサーバ６２からの結果７８はまだ、そのような一部の実施形態において、結果８０のためにもう一つの要望されたフォーマットに機器１０によって変換され得る。それでも他の実施形態のおいては、リクエストはもう一つのフォーマットにおいて提供され得、そしてインプットスタイルシート７０はインプットフォーマットを一つ以上のＳＱＬ文に変換するために使用され得る。
【００５４】
機器１０は、ＳＱＬ文をＲＤＢＭＳ６２に伝送し得る。例えば、リクエスト者から直接受け取られ、またはリクエスト者から受け取ったインプットリクエストからの機器１０によって生成されてあろうと、ソフトウェア２８は文を伝送するために構成され得る。ＲＤＢＭＳサーバ６２は、リクエスト７６を処理し、リレーショナルフォーマットにおいて結果７８を提供する。例えば、ＳＱＬ文からの結果からなる記録のテーブルのように、結果７８のフォーマットはテーブルフォーマットになり得る。ＲＤＢＭＳサーバ６２によって管理されているデータベースに定義されているように、それぞれの記録は、コラムのセットまたはフィールドを有し得る。さらに詳しく、少なくとも一つのコラムはデータベースの主キーを含み得る。通常「キー」は、データをソートするために使用され得るデータベースのフィールドになり得る。「主キー」は、データベースのそれぞれの記録の中の独自の値を有するキーになり得る。一部の場合のおいては、主キーは記録の中の一つのコラムになり得る。他の場合においては、主キーは記録の中の二つ以上のコラムの組み合わせになり得る。
【００５５】
機器１０は、ＲＤＢＭＳ６２のアウトプットフォーマットからの結果７８を結果８０のために要望されたフォーマットに変換し得る。アウトプットスタイルシート７２は、一部の実施形態において、要望されたフォーマットを特定するために使用され得る。他の実施形態においては、デフォルトアウトプットフォーマットは機器１０によってサポートされ得る。例えば、図５および図６に示されているように、デフォルトＸＭＬフォーマットはサポートされ得る。他の実施形態は、任意のマークアップ言語または任意の他の要望されたフォーマットにおいてのデフォルトフォーマットを保持し得る。
【００５６】
図５は、それぞれの記録が一つのコラムに主キーを含む場合においてのデフォルトフォーマット８２の一実施形態を示している。この実施形態においては、主キーはＸＭＬ要素にマッピングされている。記録の互いのコラムまたはフィールドは、要素を属性にマッピングされている（例えば、属性１が記録のコラム１の値に等しい、属性２が記録のコラム２の値に等しい等、属性Ｎが記録のコラムＮに等しいまで）。
【００５７】
図６は、それぞれの記録が二つ以上のコラムの組み合わせである主キーを含む場合においてのデフォルトフォーマット８４の一実施形態を示している。この実施形態において、親要素が生成される。親要素は、図５の実施形態と同様に、記録のそれぞれの主キーではないコラムのための属性を含み得る。加えて、親要素は子供要素を含み得る。それぞれの子供要素は、主キーの一つのコラムになり得る。
【００５８】
一部の実施形態においては、機器１０は定義済のサービスを保持し得る。それぞれのサービスは、機器１０にロードされ得、そしてサービスが呼び出された時にＳＱＬ文がＲＤＢＭＳサーバ６２に伝送されること含み得る。サービスは、サービスが呼び出される原因を起こす一つ以上のトリガー状態を特定し得、そして機器１０はサービスを呼び出すためにトリガー状態をモニターし得る。代わりに、外部のイベントはサービスを呼び出すために使用され得、またはユーザーによって明示の呼出しが伝送され得る。サービスはそして、一部の場合において、データベースへのアクセスのリクエスト者として表示され得る結果の受取人を特定し得る。サービスは、アウトプットスタイルシート７２またはアウトプット結果フォーマットのもう一つの仕様を含み得る。図１において示されているソフトウェア２８は、一部の実施形態において、定義済サービスをサポートするためのソフトウェアを含み得る。
【００５９】
図４の実施形態と同等の実施形態は、コンテンツ管理システムまたはファイルシステムのためのプロキシとして使用され得る。
【００６０】
図７は、ＲＤＢＭＳサーバ６２のためのデータベースプロキシ６０として使用されている機器１０の第２の実施形態を示している。データベースプロキシ６０は、機器１０および任意的にスタイルシート７０と７２を含む。図４の実施形態と同様に、機器１０はアプリケーションサーバ５８Ａからのリクエスト７４を受け取るため、そして対応するリクエスト７６を生成するために結合され得ている（または機器１０においてのサービスは、リクエスト７４を受け取る代わりに使用され得る）。さらに図４の実施形態と同様に、ＲＤＢＭＳサーバ６２は、機器１０がアプリケーションサーバ５８Ａによって要望された結果８０に変換し得る結果７８を返し得る。スタイルシート７０と７２が任意的に使用され得る。一部の実施形態においては、図４に関して上記に説明されている定義済サービスが使用され得る。
【００６１】
図７の実施形態においては、ＲＤＢＭＳサーバ６２の中にデータベース８６が示され、そしてデータベースはＸＭＬオブジェクト８８Ａ〜８８ＢのようなＸＭＬオブジェクトを格納する。他の実施形態は、他のマークアップ言語オブジェクトを含み得る。ここで使用されているように、マークアップ言語オブジェクトは完全なマークアップ言語構造になり得る。それぞれのマークアップ言語オブジェクトは、要望されているように、記録、複数の記録、または記録の一部を含み得る。データベース８６は、ＸＭＬオブジェクトを記録、または記録のコラムとして格納し得る。
【００６２】
従って、結果７８はデータベース８６からの一つ以上のＸＭＬオブジェクトを含み得る。アウトプットスタイルシート７２は、ＸＭＬオブジェクトの変換を結果８０のための要望された結果フォーマットに特定され得る。例えば、要望されたフォーマットは、リレーショナルフォーマット（例えば、記録テーブル）においてのＸＭＬオブジェクトの中の記録になり得る。代わりに、データベース８６に格納されたものとは異なる形のＸＭＬが要望されたフォーマットになり得る。一部の実施形態においては、任意の他のフォーマットが使用され得る。
【００６３】
一部の実施形態においては、リクエスト７４は、結果７８を生成するためにデータベース８６に適用されるように一つ以上のＳＱＬ文を含み得、そして機器はＳＱＬ文を変更しないままＲＤＢＭＳサーバ６２にパスし得る。一部の実施形態においては、リクエスト７４は、スタイルシート７０および／または７２の一つまたは両方を含み得る。
【００６４】
他の実施形態においては、データベース８６は、データベースの中のオブジェクトとしてよりも、ＸＭＬデータをリレーショナルフォーム（例えば、様々な要素および属性等のインデックステーブル）において格納し得る。データベースプロキシ６０は、データベース８６からのアウトプットデータの変換を提供するために、そのような実施形態においてまだ使用され得ている。
【００６５】
図８は、レンダリングエンジン９０として使用されている機器１０の一実施形態を示している。レンダリングエンジン９０は、アウトプットドキュメントを生成する目的で、機器１０および一つ以上のスタイルシート９２を、インプットドキュメントに適用されように含み得る。インプットドキュメントは任意のフォーマットになり得、そしてアウトプットドキュメントも同様に任意のフォーマットになり得る。例えば、フォーマットはｅ−ｍａｉｌ、マイクロソフトワード（登録商標)のようなワープロフォーマット、スプレッドシートフォーマット、ポータブルドキュメントフォーマット（ＰＤＦ）、ＳＧＭＬ、ＨＴＭＬ、ＸＭＬ等のような様々なマークアップ言語フォーマット、ポストスクリプトフォーマット等を含み得る。
【００６６】
一般に、レンダリングエンジン９０は、一部または全ての一つ以上のインプットドキュメントを抽出し得、抽出された一部分から一つ以上のアウトプットドキュメントを構成し得る。そしてアウトプットドキュメントは、リクエスト者に返される。一部の実施形態においては、インプットドキュメントは、スタイルシート９２に適用するためにリクエストと伝送され得る。他の実施形態においては、リクエストおよび／またはスタイルシートは、ドキュメントを識別し得る（例えば、ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ（ＵＲＬ）を用いて、そして機器１０がドキュメントを取り出し得る）。
【００６７】
一部の実施形態においては、機器１０は、データベースプロキシ６０の上記説明と同様に、機器１０にロードされた定義済サービスを保持し得る。サービスは適用されるインプットドキュメント、アウトプットドキュメント、およびスタイルシートを定義し得る。一部の実施形態においては、一つ以上の異なるアウトプットドキュメントが生成される場合、レンダリングエンジン９０はインプットドキュメントをキャッシュし得、対応するアウトプットドキュメントを生成するためにそれぞれのスタイルシートを別々に適用する。
【００６８】
図９は、図３に示されているデータセンターの一部についての一実施形態がブロック図において示されている。図９においてアプリケーションサーバ５８Ａ〜５８Ｄは、機器１０を使用するデータ統合スィッチ５６と一緒に示されている。他の実施形態においては、同様に、図３のウェブサーバ５４Ａ〜５４Ｂのようなウェブサーバも含み得る。
【００６９】
それぞれのアプリケーションサーバ５８Ａ〜５８Ｄは、データを様々なフォーマットにおいてアウトプットおよびインプットするために構成されている。例えば、アプリケーションサーバ５８Ａは、フォーマット１においてデータをアウトプットおよびインプットし得る。同様に、アプリケーションサーバ５８Ｃは、データをフォーマット４においてアウトプットおよびインプットし得、アプリケーションサーバ５８Ｄは、データをフォーマット５においてアウトプットおよびインプットし得る。一部の場合においては、所定のアプリケーションサーバのためのアウトプットデータフォーマットおよびインプットデータフォーマットは、異なり得る（例えば、アプリケーションサーバ５８Ｂがデータをフォーマット２においてアウトプットし、フォーマット３においてインプットする）。様々なアプリケーションサーバ５８Ａ〜５８Ｄによって使用されているフォーマットは、互いに異なり得る。従って、アプリケーションサーバ５８Ａ〜５８Ｄがもう一つのアプリケーションサーバ５８Ａ〜５８Ｄへのインプットデータとして供給されるデータをアウトプットする時、データ統合スイッチ５６はソースアプリケーションサーバのアウトプットフォーマットからのデータをターゲットアプリケーションサーバのインプットフォーマットに変換し得る。
【００７０】
さらに詳しく、機器１０はアウトプットフォーマットからインプットフォーマットへの変換を、中間フォーマットとしてＸＭＬを介して実行し得る。すなわち、機器１０はデータをソースフォーマットからＸＭＬに、ＸＭＬからターゲットフォーマットに変換し得る。スタイルシートの組み合わせは、それぞれの変換である、ソースフォーマットからＸＭＬに変換する一つのスタイルシート、そしてＸＭＬからターゲットフォーマットに変換するもう一つのスタイルシート、のために使用され得る。  
【００７１】
一部の実施形態においては、原始データは、原始データフォーマットによって命令される様式に設定された別々のデータアイテムセットを含み得る（例えば、データ構造、順序付けられたデータアイテムセット、またはｅ−ｍａｉｌ、マイクロソフトワードのようなワープロフォーマット、スプレッドシートフォーマット、ポータブルドキュメントフォーマット（ＰＤＦ）、ポストスクリプトフォーマット、データベースフォーマット、ｅｌｅｃｔｒｉｃ  ｄａｔａ  ｉｎｔｅｒｃｈａｎｇｅ（ＥＤＩ）フォーマット等のような任意の要望された構造のドキュメント）。ＸＭＬへのソースのスタイルシートは、原始データアイテムに対応する一つ以上のＸＭＬ構造を生成するために原始データアイテムに適用され得、そしてＸＭＬ構造は、対応するターゲットデータアイテムを生成するためにＸＭＬのターゲットのスタイルシートに適用され得る。ＸＭＬ構造へのＸＭＬのターゲットのスタイルシートのアプリケーションは、他の原始データアイテムのＸＭＬ構造への変換から個別に実行され得る。例えば、ターゲットデータアイテムは、ＸＭＬ構造の生成の前に、他の原始データアイテムの少なくとも一部のために生成され得る。もう一つの方法から見ると、ＸＭＬのターゲットのスタイルシートのアプリケーションは、ＸＭＬへのソースのスタイルシートの全ての原始データアイテムへの適用の完了の前に、開始し得る。
【００７２】
第１のスタイルシートを介して全てのデータアイテムの完了の前に、データアイテムへの二つのスタイルシートのアプリケーションは、一部の実施形態において、データ統合スイッチ５６のスループットを改善し得、そして個別のデータアイテムがアプリケーションサーバ５８Ａ〜５８Ｄの間で伝送される時、応答時間を減らし得る。
【００７３】
図１０は図式的に、ＸＭＬ構造を生成するためにＸＭＬへのソースのスタイルシート１００をソースデータアイテムに適用し、そしてターゲットデータアイテムを生成するためにＸＭＬのターゲットのスタイルシート１０２が適用される一実施形態を示している。
【００７４】
図１１は、データ統合スイッチ５６の一実施形態の流れを示すドキュメントプロセッサ１６（図２から）の一部の一実施形態においてのブロック図である。スタイルシート１００と１０２は、それぞれ別々に構文解析時間式ツリー（図１１の中に個々にあるＰＥＴ１およびＰＥＴ２）および変換エンジン４４のための命令テーブル（図１１の中に個々にあるＩＴ１およびＩＴ２）である。
【００７５】
原始データは、原始イベントを式プロセッサ４２に生成するパーサ回路４０に提供されている。原始イベントは原始データの範囲内においてデータアイテムを識別し得る。式プロセッサ４２は、原始イベントをＰＥＴ１に適用し、そして変換エンジンにＸＭＬへのソースのスタイルシート１００のそれぞれの原始データ時間のための対応する一致を生成する。変換エンジン４４は、所定のソースデータアイテムに対応するＸＭＬ構造を生成するためにＩＴ１からの命令を実行する。変換エンジン４４は、ＸＭＬ構造からのＸＭＬ構造イベントを生成し得、そしてそれらのイベントを式プロセッサ４２にパスし得る。式プロセッサ４２は、ＸＭＬのターゲットのスタイルシート１０２の中のＸＭＬ構造イベントのための一致を生成しながら、ＸＭＬ構造イベントをＰＥＴ２に適用し得る。変換エンジン４４は、アウトプットジェネレータ４６へのアウトプットデータを生成するためにＩＴ２からの命令を実行し得る。
【００７６】
他の実施形態においては、変換エンジンはＸＭＬ構造をＸＭＬのターゲットのスタイルシートに適用し得る（例えば、ＸＭＬのターゲットのスタイルシートは、変換エンジン４４によって実行される命令に完全に実施され得る）。さらに他の実施形態においては、ＸＭＬ構造は変換エンジン４４からパーサ回路４０にパスされ得、そしてそれは式プロセッサ４２のためのＸＭＬ構造イベントを生成するためにＸＭＬ構造を解析し得る。ソフトウェア２８（図１）は変換エンジン４４によってＸＭＬ構造アウトプットを取り込むために使用され得、そして他の実施形態において、式プロセッサ４２へのＸＭＬ構造イベントを生成する。
【００７７】
図１２は、ＸＭＬルータ１１０として使用されている機器１０の一実施形態のブロック図である。例えば、ＸＭＬルータ１１０は、図３に示されているデータセンターの中のルータ５２に含み得る。ＸＭＬルータ１１０は、機器１０およびスタイルシート１１２を含む。
【００７８】
ＸＭＬルータ１１０において機器は、インプットＸＭＬドキュメントを受け取り、そしてアウトプットＸＭＬドキュメントおよびルーティングラベルまたはロケーションをアウトプットする。ルーティングラベルは、ＸＭＬドキュメントのための宛先を識別する。例えば、機器１０のソフトウェア２８は、ルーティングラベルを一つの宛先ＩＰアドレスまたは複数のアドレスに変換するソフトウェアを含み得（テーブルルックアップを介して）、そして機器１０は、アウトプットドキュメントの一つの宛先ＩＰアドレスまたは複数のアドレスへの経路を決め得る。代わりに、ルーティングラベルは、一つの宛先ＩＰアドレスまたは複数のアドレスを検索するためにルータによって使用され得、そしてルータ５２はＸＭＬドキュメントの一つの宛先ＩＰアドレスまたは複数のアドレスまでの経路を決め得る。さらにもう一つの代替においては、ルーティングラベルが一つの宛先ＩＰアドレスまたは複数のアドレスになり得る。
【００７９】
スタイルシート１１２は、所定のインプットドキュメントと一致するうちの一つであるインプットドキュメントに適用されるＸＰａｔｈ式のセットを含み得る。対応するルーティングラベルは、スタイルシートから判断され得る。例えば、示されている実施形態においてスタイルシート１１２は、その式と同等の一致する属性と共にそれぞれの式のためのテンプレート（例えば、Ｅｘｐ１、Ｅｘｐ２等）を含み得る。テンプレートボディーは、ルーティングラベル（例えば、ルーティングラベル１、ルーティングラベル２等）のアウトプットを含み得る。任意的に、スタイルシートもテンプレートボティーに含まれ得る。スタイルシートが含まれた場合、機器１０はアウトプットドキュメントを生成するために、スタイルシートをインプットドキュメントに適用し得る。さもなければ、インプットドキュメントは、アウトプットドキュメントとして変わらず提供され得る。他の実施形態においては、変換スタイルシートは無条件に適用され得る（例えば、式が一致している機能としてではなく）。
【００８０】
次に図１３を参照すると、機器１０がファイアーウォール（例えば、ファイアーウォール５０）において使用される時の一実施形態の動作においてのフローチャートを示している。この実施形態においては、機器１０はＤＴＤ／スキーマに対してドキュメント確認を実行し得、そして侵入検出も実行し得る（例えば、ウィルス検知）。このコンテキストにおいては、ウィルスはワーム、トロイの木馬のソフトウェア等についてのウィルスを含み得る。一般に、ウィルスはソフトウェアが実行するコンピューターシステムに対しての極悪な意図において、（例えば、コンピューターシステムのデータまたはソフトウェアの破壊、他のソフトウェア等に利用可能なコンピューターシステムリソースの削減）、他のコンピューターシステムを複製する意図において、または他のコンピューターシステムに対しての極悪な意図でコンピュータシステムに実行する意図において、（例えば、サービス攻撃の拒絶を始める）書き込まれたソフトウェアを含み得る。
【００８１】
ＸＭＬドキュメントは、標準のウィルス検知と比較して、ウィルス検知にさらなる困難を与え得る。標準のウィルス検知の場合、次のビットストリームは知られているウィルスのビットストリングのデータベースに比較され、次のビットストリームの一部がデータベースと一致する場合、ウィルスとして識別される。ＸＭＬドキュメントと共に、ウィルスはＸＭＬドキュメントの中に分散され得る。例えば、ウィルスの一部は異なる要素になり得る。要素が組み合わせられた時（例えば、スタイルシートによるドキュメントの処理を介して）、ウィルスは発生される。それ以上に、ウィルスはＸＭＬドキュメントに部分的に含まれ得、そしてＸＭＬドキュメントに適用される対応するＤＴＤ／スキーマ（例えば、エンティティ参照または属性デフォルトにおいて）および／またはスタイルシートにも部分的に含まれ得る。従って、上記のどれもがウィルスを分離した形で含んでいないが、ウィルスはＤＴＤ／スキーマおよび／またはスタイルシートのおいてのＸＭＬドキュメントの処理によって発生され得る。さらにもう一つの厄介な問題として、ＸＭＬドキュメント、ＤＴＤ／スキーマ、およびスタイルシートは異なる時に届き、従って、それらの間に分散されたウィルスを検知することを困難にする。攻撃者は、既存の有効なＤＴＤ／スキーマおよび／またはスタイルシートを使用しながら処理した時に、ウィルスを発生させるＸＭＬドキュメントも書き込み得る。
【００８２】
機器１０は、ウィルスの発生を二段階のプロセスにおいて処理し得る。第１のステップにおいては、ＸＭＬドキュメントはＤＴＤ／スキーマを使用しながら有効化され得、そして必要な時にスタイルシートを使用しながら変換され得る。結果として残るドキュメントは、バリデータ４８が結果として残るドキュメントの中のウィルスを調べ得るケースである第２のステップにおいて、再び機器１０を介してパスされ得る。例えば、バリデータ４８は、上記に説明されているように、ウィルスデータベースの中において提供され得る。他の実施形態においては、侵入検出のさらに粗いラベルが適用され得る（例えば、特定のアドレスから、または特定のアドレスへのトラフィックが検出され得る）。
【００８３】
図１３は、二段階のプロセスを示している。インプットドキュメントが受け取られ、有効性のためにチェックされ（ＤＴＤ／スキーマに対して、例えば、バリデータ４８においての）、そしてドキュメントが変換される（ＤＴＤ／スキーマおよびスタイルシートを使用しながら）（ブロック１２０）。そして、ウィルスチェックが実行される場合（決定ブロック１２２の「はい」の枝）、アウトプットドキュメントはウィルスをチェックするためにバリデータ４８に返される（ブロック１２４）。ウィルスが検知された場合（決定ブロック１２６の「はい」の枝）、機器１０は修正処置を取り得る（ブロック１２８）。例えば、ウィルスは修正処置として修復され得る。代わりに、ドキュメントはドロップされ得（データセンターに入ることが許可されない）、または管理者による後の再検査のために機器１０または他で隔離され得る。ウィルスチェックが実行されない場合（決定ブロック１２２の「いいえ」の枝）またはウィルスが全く検知されない場合（決定ブロック１２６の「いいえ」の枝）は、ドキュメントはデータセンターに入ることを許可され得ている（ブロック１３０）。
【００８４】
多数の変更と修正は、上記の開示が十分に理解されると、当業者にとって明らかになるであろう。以下の請求項は、そのような全ての変更と修正を含むように解釈されることが、意図される。
【図面の簡単な説明】
【００８５】
【図１】図１は、機器の一実施形態のブロック図である。
【図２】図２は、図１に記載のドキュメントプロセッサの一実施形態のブロック図である。
【図３】図３は、一つ以上の機器を含むデータセンターの一実施形態のブロック図である。
【図４】図４は、データベースプロキシとして使用されている機器の一実施形態のブロック図である。
【図５】図５は、図４に記載の機器の一実施形態によって用いられるデフォルトアウトプットフォーマットの一実施形態を示す図である。
【図６】図６は、図４に記載の機器の一実施形態によって用いられるデフォルトアウトプットフォーマットの第２の実施形態を示す図である。
【図７】図７は、データベースプロキシとして使用されている機器の第２の実施形態を示すブロック図である。
【図８】図８は、レンダリングエンジンとして使用されている機器の一実施形態を示すブロック図である。
【図９】図９は、データ統合スイッチとして使用されている機器の一実施形態を示すブロック図である。
【図１０】図１０は、拡張可能マークアップ言語（ＸＭＬ）の構造を介してデータをターゲットするための原始データの変換の一実施形態を示すブロック図である。
【図１１】図１１は、ターゲットデータを生成するために原始データにおいて動作する機器の一実施形態の一部を示すブロック図である。
【図１２】図１２は、ＸＭＬルータとして使用されている機器の一実施形態のブロック図である。
【図１３】図１３は、ウィルスチェッカーとしての、機器の一実施形態においての動作を示すフローチャートである。
【図１】
2007509445.tif 000003
【図２】
2007509445.tif 000004
【図３】
2007509445.tif 000005
【図４】
2007509445.tif 000006
【図５】
2007509445.tif 000007
【図６】
2007509445.tif 000008
【図７】
2007509445.tif 000009
【図８】
2007509445.tif 000010
【図９】
2007509445.tif 000011
【図１０】
2007509445.tif 000012
【図１１】
2007509445.tif 000013
【図１２】
2007509445.tif 000014
【図１３】
2007509445.tif 000015
【国際調査報告】
2007509445.tif 000016
2007509445.tif 000017