"入力ソースからの入力データ列の入力セットを出力データ列の出力セットに変換するコンピュータベースの方法であって、a前記入力セットに対応する1つまたは複数の制約から成るスキーマコントラクトを受け取るステップと、b前記入力データ列のセットを記述するメタデータを受け取るステップであって、前記メタデータが各入力データ列に対応する型定義を含む、ステップと、c前記入力セットの1つまたは複数のデータフローを表すデータフロー構成データを受け取るステップと、d前記データフロー構成データにより指定される各データフローを実行するステップと、e各データフローのデータを受け取る前に、列型のセットを生成するステップであって、各列型が、前記メタデータおよび前記制約のセットに基づき、データフローに関連するそれぞれの入力データ列に対応する、ステップとを含むことを特徴とする方法。前記スキーマコントラクトが、前記入力データ列の内の1つまたは複数の列と前記スキーマコントラクトの関連する制約との間のマッピングを記述するデータを含み、前記マッピングを採用して、入力データ列のそれぞれをデータ統合コンポーネントの入力指定にマッチさせるステップをさらに含むことを特徴とする請求項1に記載のコンピュータベースの方法。インターフェースを採用して、入力列の型定義に基づき出力列の型定義について、1つまたは複数のデータ統合コンポーネントにクエリを行うステップをさらに含むことを特徴とする請求項1に記載のコンピュータベースの方法。インターフェースを採用して、入力列の型定義に基づき出力列の型定義について、1つまたは複数のデータ統合コンポーネントの1つまたは複数のクエリを行うステップと、前記1つまたは複数のクエリに基づき前記スキーマコントラクトが有効であるかどうかを判定するステップと、をさらに含むことを特徴とする請求項1に記載のコンピュータベースの方法。前記列型のセットに基づき1つまたは複数のメモリブロックを割り当てるステップと、前記入力ソースからデータを受け取るステップと、前記入力ソースからのデータを前記1つまたは複数のメモリブロックに記憶するステップと、をさらに含むことを特徴とする請求項1に記載のコンピュータベースの方法。a別の入力ソースから入力データ列の別のセットを受け取るステップと、b前記データ列の他のセットを記述する他のメタデータを受け取るステップであって、前記他のメタデータが前記入力データ列のセットに関連する対応する列の型定義とは異なる1つまたは複数の列の型定義を含む、ステップと、c前記スキーマコントラクトに基づき、前記他の入力ソースに対応する列型の別のセットを生成するステップとをさらに含むことを特徴とする請求項1に記載のコンピュータベースの方法。前記スキーマコントラクトがオプション列と前記オプション列に対応するデフォルト値との指定を含み、前記方法が、前記オプション列がデータ列の入力セットから省略された場合に、前記デフォルト値に対応するデータを用いて列を生成するステップをさらに含むことを特徴とする請求項1に記載のコンピュータベースの方法。前記スキーマコントラクトが可変数の列を表すプロトタイプ列の指定を含み、前記方法が、a前記プロトタイプ列に対応するデータ列の入力セットの1つまたは複数の列を判定するステップと、b1つまたは複数の判定された列内の列の数を判定するステップと、c前記判定された1つまたは複数の列を入力としてデータ統合コンポーネントに提供するステップとをさらに含むことを特徴とする請求項1に記載のコンピュータベースの方法。a前記スキーマコントラクトの1つまたは複数の制約のデザイン検証を行うステップと、b各データフローを実行する前に、各入力データ列に対応する型定義のランタイム検証を行うステップとをさらに含むことを特徴とする請求項1に記載のコンピュータベースの方法。入力データから出力データへの変換を円滑にするためのコンピュータベースのシステムであって、a1つまたは複数のデータ統合コンポーネントであって、各データ統合コンポーネントが、入力データ列を受け取るよう、および、前記入力データ列に基づき出力データ列を生成するよう構成される、データ統合コンポーネントと、b1つまたは複数の制約および列マッピングデータを含むスキーマコントラクトを受け取るよう、および、前記スキーマコントラクトを検証するよう構成されるスキーマ処理部と、c前記1つまたは複数の制約を受け取るよう、データ列を記述するメタデータを入力ソースから受け取るよう、および、前記1つまたは複数のデータ統合コンポーネントにより使用するための実際の列型のセットを生成して前記入力データ列を変換するよう構成される制約コンパイラとを備え、前記システムは、第1のセットの入力データを変換し、および第2のセットの入力データを変換するためのスキーマコントラクトを採用するよう構成され、前記第1のセットの入力データおよび前記第2のセットの入力データはそれぞれが、他方の入力列型の指定とは異なる入力列型の指定のそれぞれのセットを有することを特徴とするコンピュータベースのシステム。前記第1のセットの入力データが第1の数のデータ列を持ち、第2のセットの入力データが第1の数のデータ列とは異なる第2の数のデータ列を持つことを特徴とする請求項10に記載のコンピュータベースのシステム。前記制約コンパイラが、列マッピングデータを採用して前記入力データ列を実際の列型のセットにマッチさせるよう構成されることを特徴とする請求項10に記載のコンピュータベースのシステム。前記制約コンパイラが前記スキーマコントラクトを検証する手段を備えることを特徴とする請求項10に記載のコンピュータベースのシステム。前記制約コンパイラが、前記データ統合コンポーネントにクエリを行うことによりスキーマコントラクトを検証するよう構成されることを特徴とする請求項10に記載のコンピュータベースのシステム。入力データから出力データへの変換を円滑にするためのコンピュータプログラム命令を含むコンピュータ可読記憶媒体であって、前記プログラム命令は1つまたは複数のプロセッサにより実行可能であり、a1つまたは複数の列の制約のセットを受け取るステップと、b入力列のセットを記述するメタデータを入力ソースから受け取るステップと、c前記メタデータを前記列の制約に基づき検証するステップと、d前記メタデータを前記列の制約に基づき実際の列型のセットに変換するステップとe前記実際の列型を1つまたは複数のデータ統合コンポーネントに提供して前記入力ソースから受け取ったデータの変換を円滑にするステップとを含む動作を実行することを特徴とするコンピュータ可読記憶媒体。列マッピングデータを受け取るステップと、前記メタデータを実際の列型のセットに変換するステップとをさらに含み、前記変換するステップが前記列マッピングデータに基づき前記入力列のセットのそれぞれを対応する実際の列型にマッピングするステップを含むことを特徴とする請求項15に記載のコンピュータ可読記憶媒体。前記1つまたは複数のデータ統合コンポーネントが別の入力ソースから受け取られた他のデータを変換することを可能にするステップをさらに含み、前記他のデータは前記入力列のセットとは型が異なる入力列の別のセットを有することを特徴とする請求項15に記載のコンピュータ可読記憶媒体。第1のデータ統合コンポーネントの出力データ型を前記メタデータに基づき判定するステップと、前記出力データ型と第2のデータ統合コンポーネントの入力データ型とに基づき、前記メタデータと前記制約のセットとの有効性を判定するステップとをさらに含むことを特徴とする請求項15に記載のコンピュータ可読記憶媒体。この要約は、以下の発明を実施するための形態でさらに述べる概念を選択して簡略化した形式で紹介するために提供するものである。この要約は、請求の主題の重要な特徴もしくは主要な特徴を確認することを意図しておらず、請求の主題の範囲を制限するものとして使用されることも意図していない。簡潔には、システム、方法およびコンポーネント構成要素が、入力ソースからデータを抽出し、該データを変換し、変換されたデータを出力先にロードすることを円滑にするべく動作する。一実施形態において、スキーマコントラクトスキーマ規約には入力データ列型のセットを検証し、かつ、それらを実際の型のセットに変換するために使用される制約が含まれる。一実施形態において、スキーマコントラクトにおけるデータマッピングにより、入力データ列をデータ統合コンポーネントにより使用されるデータ列にマッピングすることが可能とされる。一実施形態において、データマッピングにより、オプション列もしくは1つまたは複数の列のセットの指定が可能とされる。入力列は、種々の方法で配置され、データ統合コンポーネントにより使用されるデータ列にマッピングされて良い。入力列は、配置、名前、もしくは型定義が可変とされて良い。システムにより、スキーマコントラクトは、各入力データソースの列型の指定が異なる、異なる入力データソースで再利用可能とされる。一例の相違点には、入力列に対する型定義の変形がある。例えば、異なるソースからの対応する列が他のソースとは異なる文字列長を有することがある。一実施形態において、各データフローのデータを受け取る前に、列型のセットが生成され、各列型は、データフローに関連するそれぞれの入力データ列に対応する。該生成は、スキーマコントラクトの制約のセットおよび入力データ列に対応するメタデータに基づいて良い。前述および関連する目的の達成のため、システムの特定の例示の態様が、以下の記載および添付の図面と関連して本明細書において記載される。しかし、これらの態様は、本発明の原理が採用されて良い種々の方法の内のほんの一部を示すものであり、本発明が全てのそのような態様およびその等価物を含むことが意図される。本発明の他の利点および新規な特徴は、以下の本発明の詳細な説明から、図面と関連して考察すれば明らかになるであろう。ここで、本発明の例示の実施形態について、以下に図面を参照してより全体的に説明するが、これはその一部を形成するものであり、本発明を実践することができる特定の実施形態を実例として示すものである。しかし、本発明は多くの他の形式で具現化されて良く、本明細書に記載される実施形態に限定されるものと解釈されるべきではない。むしろ、これらの実施形態は、本開示を徹底かつ完全にするために、また、本発明の範囲を当業者に完全に伝達するために、提供される。とりわけ、本発明は方法もしくは装置として具現化されて良い。従って、本発明は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態、もしくはソフトウェアとハードウェアの態様が組み合わせられた実施形態の形式をとることができる。従って、以下の詳細な説明は制限的な意味で捉えられることはない。明細書および請求項を通して、以下の用語は、文脈において特に明確に指示されない限り、本明細書において明示的に関連付けられる意味を持つ。一実施形態においてというフレーズは、本明細書において使用される時、必ずしも以前の実施形態を参照するとは限らないが参照することもある。さらに、別の実施形態においてというフレーズは、本明細書において使用される時、必ずしも異なる実施形態を参照するとは限らないが参照することもある。従って、本発明の種々の実施形態は、本発明の範囲および精神から逸脱することなく容易に組み合わされて良い。同様に、一実装においてというフレーズは、本明細書において使用される時、必ずしも同一の実装を参照するとは限らないが参照することもあり、種々の実装の技術が組み合わされて良い。加えて、用語もしくはは、本明細書において使用される時、文脈において特に明確に指示されない限り、包括的なOR演算子であり、用語および/またはと等価である。用語に基づきは排他的ではなく、文脈において特に明確に指示されない限り、記載されない追加的な要因に基づくことが許容される。加えて、明細書を通して、1つの一つのおよびそのは、複数を参照することも意味する。においてには、の中におよびの上にの意味が含まれる。本明細書において記載されるコンポーネントは、種々のデータ構造を有する種々のコンピュータ可読媒体から実行されて良い。コンポーネントは、ローカルもしくはリモートの処理を介して、1つまたは複数のデータパケット例えば、1つのコンポーネントからのデータであって、該1つのコンポーネントはローカルシステム、分散システム、もしくはインターネットなどのネットワーク上の信号を介した他のシステム、における別のコンポーネントと対話するを有する信号に従うなどして通信を行うことができる。ソフトウェアコンポーネントは、例えば、非一時的なコンピュータ可読記憶媒体上に記憶させることができ、該記憶媒体には、本発明の実施形態に従う、特定用途向け集積回路ASIC、CDcompactdisk、DVDデジタル多用途ディスク:digitalversatiledisk、RAMrandomaccessmemory、ROMreadonlymemory、フロッピーディスク、ハードディスク、EEPROMelectricallyerasableprogrammableROM、フラッシュメモリ、もしくはメモリスティックが含まれるがこれに限定されない。用語コンピュータ可読媒体には、本明細書において使用される時、非一時的な記憶媒体と通信媒体の両方が含まれる。通信媒体は典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、もしくは、搬送波もしくは他の転送機構などの変調データ信号内の他のデータを具現化し、任意の情報配信媒体を含む。制限ではなく例として、通信媒体には、有線ネットワークおよび直接有線接続などの有線媒体、ならびに、音響、ラジオ、赤外線および他の無線媒体などの無線媒体が含まれる。図1は、本明細書に記載される機構を展開させることができる一例のデータ統合環境100のブロック図である。実施形態は様々な環境において展開されて良く、環境100はそのような例を提供する。環境100は大きなデータ統合環境の一部であっても良い。図示されるように、環境100には入力データソース102が含まれる。データソース102には、1つまたは複数のファイル、データベース、メモリ構造、ネットワーク資源、データストリーム等、もしくはその組み合わせが含まれて良い。データソース102は、抽出変換ロードシステムETL104への入力として機能する。ETL104は、データソース102からデータを受け取り、データに対して種々の操作を行い、データ出力106を提供する。データ出力106は、ファイル、データベース等において具現化されるようなデータソース102の品質を有しても良い。データソース102は、種々のテーブルのプロパティおよびテーブルに含まれる列のプロパティを提供する入力スキーマを有することができる。データ出力106は、種々のテーブルのプロパティおよびテーブルに含まれる列のプロパティ、より具体的には、ETL104により出力される列のプロパティを提供する出力スキーマを有することができる。ETL104には、入力データの1つまたは複数の変換をそのデータを送り先に提供する前に実行する操作の順番が含まれて良い。従って、データは、進む順番もしくは変換される順番に各入力ソースからETLを通って流れると言うことができる。出力スキーマを入力スキーマと異ならせる変換も行うことができる。一例の変換では、2つの文字列の列を連結させて第3の列を生成することができる。入力スキーマでは、それぞれ長さが30の文字列を有する2つの列であるという指定を含んで良い。出力スキーマでは、これら2つの列を、長さが60の文字列を有する1つの列と置き換えることができる。別の例の変換では、テーブルの行をソートして、入力スキーマと等価である列毎のスキーマを得ることができる。入力スキーマと出力スキーマとの間で多数の構成および関係が可能である。図2は、本明細書に記載される機構を展開させることができる一例のデータ統合システム200のブロック図である。システム200には、環境100の態様がさらに詳細に例示される。図示されるように、システム200には、3つの型の入力ソース、すなわち、ファイル202、データベース204および他のソース205が含まれる。これら3つの型の入力ソースは環境100の入力データソース102を表すことができる。システム200はETLシステムの3つのコンポーネントをさらに例示する。ソースコンポーネント208、変換コンポーネント214および送り先コンポーネント220は、ETL104のコンポーネントとすることができる。一構成において、ソースコンポーネント208は、入力ソースからデータを抽出し、変換コンポーネント214はソースコンポーネント208から受け取ったデータを修正、要約もしくは処理することができ、送り先コンポーネント220は、出力データをファイル224、データベース226もしくは他の送り先データ228などの出力データソーソースにロードすることができる。ETLシステムは、本明細書においてデータ統合システムとも呼ばれる。ソースコンポーネント208、変換コンポーネント214および送り先コンポーネント220はデータ統合コンポーネントと呼ばれる。図示される例示のシステム200において、ソースコンポーネント208、変換コンポーネント214および送り先コンポーネント220のそれぞれが、それ自身の入力インターフェースおよび出力インターフェースを有する。これらが、対応するインターフェースもしくはデータと接続されてデータソース102とデータ出力106との間のデータフローを形成する。図示されるように、外部列インターフェース206はソースコンポーネント208に入力を提供し、ファイル202、データベース204もしくは他のソース205からデータを受け取る。ソースコンポーネント208の出力インターフェース210は、変換コンポーネント214の入力インターフェース212に接続する。変換コンポーネント214の出力インターフェース216は、送り先コンポーネント220の入力インターフェース218に接続する。外部列222は、出力ソース、すなわちファイル224、データベース226もしくは他の送り先データ228に接続する送り先コンポーネント220の出力とすることができる。ソースコンポーネント208、変換コンポーネント214および送り先コンポーネント220はパイプラインを形成することができ、それにおいてデータは、データソースから受け取られ、これらのコンポーネントそれぞれにより処理され、データ出力に対して出力される。パイプラン内での操作は並行して行われても良い。例えば、送り先コンポーネント220が変換コンポーネント214から受け取ったデータを処理しているのと同時に、変換コンポーネント214がソースコンポーネント208から受け取ったデータを処理していて良く、一方で、ソースコンポーネント208はデータソースから受け取った新しいデータを並行して処理する。図2には単純な構成が示されるが、ソースコンポーネント208、変換コンポーネント214もしくは送り先コンポーネント220の追加のインスタンスをETLシステムに追加して、より複雑なシステムを構成することもできる。いくつかの構成において、ソースコンポーネント、変換コンポーネントもしくは送り先コンポーネントが、他のコンポーネントの機能を実行しても良い。例えば、変換コンポーネントが、外部ソースからデータをインポートしてメモリ内のデータとの合成を行い、ソースコンポーネントと変換コンポーネントの組み合わせとして機能しても良い。別の例において、変換コンポーネントが外部の送り先にデータの書き込みを行っても良い。いくつかの構成において、ソースコンポーネント、変換コンポーネントもしくは送り先コンポーネントは、複数の入力もしくは複数の送り先を有することができる。これを使用して、例えば、入力を組み合わせること、もしくは入力を複数の出力に分割することができる。図3は、図1のETL104などのETLを実装することができる一例のデータ統合システム300を例示するブロック図である。図3は、適切なシステム構成の単なる一例であり、本発明の使用もしくは機能性の範囲について何ら制限を示唆することは意図されない。従って、本明細書に記載される機構の範囲もしくは精神から逸脱することなく、種々のシステム構成を採用することができる。システム300のコンポーネントは、1つまたは複数のコンピュータ装置間に分散させて良く、コンピュータ装置のそれぞれが他の装置との通信を、IP、TCP/IP、UDP、HTTP、SSL、TLS、FTP、SMTP、WAP、Bluetooth登録商標、WLANなどの1つまたは複数の種々の有線もしくは無線の通信プロトコルを採用することにより行うことができる。コンピュータ装置は専用もしくは汎用のコンピュータ装置であって良い。コンピュータ装置の例には、メインフレーム、サーバ、ブレードサーバ、パーソナルコンピュータ、携帯型コンピュータ、通信装置、家庭用電化製品、等が含まれる。図9では、システム300もしくはその一部を実装するために使用することができるコンピュータ装置の一例の実施形態を例示する。図3には、ユーザ302が点線で示され、ユーザ302がシステム300の一部ではないが、システムと対話することができることが示される。一実施形態において、ユーザ302はスキーマコントラクト304で1つまたは複数の制約をシステム300に与える。スキーマコントラクトには制約のセットを含んで良く、追加のデータを含むこともできる。制約はそれ自身が型の指定であって良い。いくつかの実施形態において、制約を汎用の型の指定とすることができる。例えば、文字列の制約では、種々の型もしくは長さを持つ文字列の型を受け入れることができる。整数の制約では、種々の整数の型を受け入れることができる。一実施形態において、スキーマコントラクトには、入力データ列を1つまたは複数のデータ統合コンポーネントで使用される仕様にマッチさせるためのデータのマッピングが含まれる。データマッピングにより可変数の列を処理する方法を指定することができる。例えば、制約により、任意の型の1つまたは複数の列、もしくは任意の型のゼロもしくは1以上の列を指定することができる。別の例の制約により、文字列の1つまたは複数の列を指定することができる。制約により、型の制約およびデフォルト値と共に、1つのオプション列を指定することができる。オプション入力列が省略される場合、デフォルトの値および型の制約をデータフローに挿入させることができる。いくつかのデータマッピングにより、指定を提供して入力列とデータ統合コンポーネントにより処理される列との間のマッピングを可能にし、一方で、列の意味情報が保存される。例えば、マッピング機構では、名前で列を指定することができる。対応する列が、データ統合コンポーネントが想定するのとは、他の列に対して異なる位置にある場合、該列を列名指定によりマッピングすることができる。いくつかの実施形態において、名前指定は、ワイルドカードの文字もしくは入力列名をマッチさせるための他の機構を使用することなどにより法則化されて良い。例えば、制約により、ABという名前の1つまたは複数の文字列の列を指定し、文字ABで始まる列にマッピングさせることができる。一実装において、内部マップが物理的な列の参照と内部参照との間の対応を提供することができる。システムのコンポーネントが変更されても等価の列が提供される場合、マッピング機構により、各列の自動的な再マッピングが円滑にされる。一実施形態において、システムは、想定される列と実際の入力列との意味上の前後関係をユーザに提示し、ユーザが1つまたは複数の列に対する列マッピングを示すことを可能にする。図9は列マッピングの例を提供する。スキーマコントラクト304での制約は、任意の数の形式に存在し、種々の方法で生成されて良い。一実施形態において、スキーマ処理部306が、図1の入力データソース102に対応する入力ソース322からメタデータ323を受け取る。入力ソース322およびメタデータ323は点線で示され、システム300の外部にあって良いが、システムへの入力として提供される。メタデータ323には、入力ソース322から受け取った実際の型のデータを含んで良い。スキーマ処理部306は、実際の型からの制約の指定を円滑にすることができる。一実施形態において、スキーマ処理部306は、各列の実際の型を示し、ユーザ302が実際の型をスキーマコントラクト304での制約の型と置き換えることを可能にすることができる。一実施形態において、スキーマ処理部306は、メタデータ323から派生しかつシステムに有効であろう制約を判定する処理を実行して良い。スキーマ処理部306は、例えば、下流のコンポーネントの入力を検査し、実際の型をより一般的な制約にし得ることを判定する。例えば、下流の入力では、長さが50の一般的文字列の列に対する指定を示すことができる。対応する実際の型は、長さが30のユニコード文字列を指定することができる。スキーマ処理部306は、実際の型が一般的文字列の制約に変更されて良いと判定することができる。スキーマ処理部306は、示された制約の型をユーザ302に対して提示し、示された型の受諾もしくは変更を円滑にすることができる。制約は、その特定性を変更することができる。制約の例には、長さ50の文字列、文字列、任意の仮数部の数、任意の型、オプション列、もしくは1つまたは複数の列、がある。一実施形態において、スキーマ処理部306は、スキーマコントラクト304での制約を分析して、下流のコンポーネントの入力もしくは出力のインターフェースに基づき、制約が有効であるかどうかを判定することができる。一実施形態において、各データ統合コンポーネントは、入力の制約指定を用いて構成されて良い。一実施形態において、データ統合コンポーネントの入力制約指定が、データフロー用の対応する制約を受け入れることが可能であるかどうかを判定することにより、検証が実行されて良い。例えば、下流のコンポーネントがデータフロー用の入力として整数型を指定する場合、数値型の制約の型は無効とみなされる場合がある。一実施形態において、ETLの各データ統合コンポーネントは、スキーマ処理部306がその入力もしくは出力のインターフェースにクエリを行うことを可能にするインターフェースを実装しても良い。一実施形態において、コンポーネントインターフェースは、1つまたは複数の対応する入力データ型に基づき出力されるデータ型を提供することができる。出力データ型は、下流のデータ統合コンポーネントの後に続くクエリにおいて使用されて良い。この情報を使用して、スキーマコントラクト304での制約のそれぞれの型を検証することができる。一実施形態において、スキーマ処理部306は、警告メッセージもしくはエラーメッセージをユーザ302に与えて、無効の型もしくは無効の可能性のある型の指定を示すことができる。従って、ユーザ302により任意の数の反復が行われてスキーマコントラクト304での制約が作成される。例示の実施形態において、スキーマ処理部306は、スキーマコントラクト304をパッケージ308に変換することができる。一実施形態において、パッケージ308は、拡張マークアップ言語XMLファイルとすることができるが、種々の他のフォーマットを使用しても良い。一実施形態において、パッケージ308はオブジェクトモデルの形態を成して良い。一実施形態において、第1のフォーマットにはXMLなどを使用して良く、これは次にオブジェクトモデルなどの第2のフォーマットに変換される。パッケージには、制御フロー指定および1つまたは複数のデータフロー指定を含むことができる。制御フローの要素には、構造を提供する1つまたは複数のコンテナ、機能性を提供するタスク、コンテナとタスクを連結して順序付けされた制御フローを作成する優先順位制約が含まれて良い。制御フロータスクは、データを抽出し、変換を適用し、データをロードする、データフローを定義かつ実行することできる。図示されるように、一例のシステム300において、パッケージ308は別のソースから受け取られて良い。例えば、XMLファイルは、スキーマ処理部306による円滑化なしで、別の処理により生成されシステム300に提供されても良い。いくつかの実装では、パッケージ308を内部もしくは外部の処理から受け取ることが許可されて良い。一実施形態において、パッケージ処理部310は、パッケージ308を受け取り、ランタイム時の使用のための形式に変換することができる。パッケージ処理部310は、パッケージ308内に含まれるスキーマに対してデザイン検証を行うことができる。一実装において、この検証は、スキーマ処理部306により行われるデザイン検証に略類似して良い。いくつかの構成において、スキーマ処理部306のデザイン検証は、パッケージ308が別のソースから受け取られるような構成では省略されても良い。従って、パッケージ処理部310のデザイン検証は、いくつかの検証を繰り返しても良いし、もしくは、前回行われなかった検証を実行しても良い。なお、スキーマ処理部306およびパッケージ処理部310は、本検討のために別個のコンポーネントとして例示されるが、1つまたは複数のコンポーネントに少なくとも部分的に組み合わせられて実装されるものがあっても良い。一実施形態において,パッケージ処理部310がパッケージ308の実行を開始することができる。これには、ワークフローとは別の1つまたは複数のタスクの実行が含まれて良い。例えば、パッケージ308に対応するタスクには、1つまたは複数の電子メールもしくは他のメッセージを指定された受信者に送信すること、1つまたは複数のファイルをFTPもしくは別のプロトコルを介して転送すること、指定スクリプトの実行、もしくは、他の動作が含まれて良い。一実装において、パッケージ処理部310はワークフロー処理を開始することができる。ワークフロー処理には制約コンパイラ312の実行が含まれて良い。一実施形態において、制約コンパイラ312は、パッケージ308内で指定された制約を受け取り、入力ソース322から受け取られるメタデータ323に基づき、該制約を実際の列型314に変換する。メタデータ323には、対応するデータの実際の型が含まれて良い。一実装において、制約コンパイラ312は、パッケージ308において指定された列の制約のランタイム検証を実行することができ、種々のデータ統合コンポーネントが対応する型を処理するべく構成されるかどうかを判定する。制約が有効である場合、制約コンパイラ312は、メタデータ323およびパッケージ308に基づき実際の列型314を生成することができる。一実装において、実際の列型314はパッケージ308内に含まれて良いが、いくつかの実装においてはパッケージ308とは別個であって良い。一例として、変換コンポーネント214等のデータ統合コンポーネントは、ユニコード文字列30という実際の型指定を有する第1の列と、ユニコード文字列40という実際の型指定を有する第2の列とを含むデータフローを受け取ることができる。変換コンポーネント214は、文字列入力を指定する制約を有することができる。システムでは、変換コンポーネントが、2つの列を連結する操作に基づく、ユニコード文字列70という出力型指定を有することが判定されてよい。実際の列型314には、入力ソース322から受け取られる各入力型の型指定が含まれる。一実施形態において、制約コンパイラ312は各データ統合コンポーネントに対する各入力列の実際の列型を判定して良く、かつ、この情報を実際の列型314内に含んで良い。従って、外部列206、入力インターフェース212、もしくは入力インターフェース218に対応する入力列指定が、判定されかつ含有されて良い。第1の入力ソース322に基づく本明細書に記載されるようなシステムにより作成されるパッケージ308を使用して、第2の入力ソース322を処理することができることに留意されたい。第2の入力ソース322は、第1の入力ソース322とは異なる型を有する列を有しても良い。第2の入力ソース322を実行する時、実際の列型314は同一のものでも、第1の入力ソース322を処理する際に生成される実際の列型とは異なるものでも良い。一実施形態において、計画生成部316は、実際の列型314を含むパッケージ308を受け取ること、かつ、パッケージ308および実際の列型314に基づく実行計画318を生成することができる。実行計画318には、テーブルサイズ、割り当てられるメモリブロック、採用するスレッドの数とスレッド間の関係、呼び出す処理と処理のタイミング、ワークフローの1つまたは複数のグラフ、もしくは他のそのようなデータ、の指定が含有されて良い。実行計画318は、ワークフロー実行のための青写真として機能することができる。実行計画318は、任意の1つまたは複数のデータ統合コンポーネントにより使用されて良い。一実装において、実行計画318は入力ソース322からデータを受け取る前に生成される。実行計画318はワークフローの実行中、固定のままとして良い。実行計画を固定にすることにより、性能を向上させ、リソース使用を低減させ、もしくは他の利益を与える操作効率が得られる。一実施形態において、パイプライン実行部320は、実行計画318を受け取り、かつメモリ326、スレッド328、データ構造、オブジェクト、などのソースを割り当てることができる。パイプライン実行部320は、ソースコンポーネント208、変換コンポーネント214、もしくは送り先コンポーネント220等の種々のコンポーネントによるワークフローの実行を開始もしくは管理することができる。出力324はパイプライの実行により作成されて良い。出力324にはデータ出力106が含まれて良い。出力324には、ステータスデータ、メッセージなど、ユーザに対して提示されるデータもが含まれて良い。一実施形態において、各データ統合コンポーネントは本明細書において記載される機構を円滑にするインターフェースを実装する。具体的には、データ統合コンポーネントは、実行用の実際の型の1つまたは複数の列を指定する方法の呼び出しを受けて良い。出力列に対する変更を追跡して下流のコンポーネントへ伝播させても良い。図4は、データ統合システムにおいてスキーマコントラクトを円滑にするための処理400の一例の実施形態を例示するフロー図である。一実施形態において、処理400の動作の内少なくともいくつかが、図3のシステム300のコンポーネントにより実行される。処理400の内の例示される部分は、ブロック402にて開始させることができ、ここでパッケージが生成される。パッケージには1つまたは複数の柔軟性のある制約もしくはマッピングデータが含まれる。パッケージ308は、そのようなパッケージの一例である。ブロック402の動作は、図5とそれに関連する考察においてにさらに詳細に例示され考察される。処理はループ404に向かって流れ、ループ404では入力ソースの各セットと対応する実行が繰り返される。本明細書で検討されるように、本明細書において記載される機構によって生成されるパッケージは、1つまたは複数の異なる列型を含む異なるメタデータを有する1つまたは複数のセットの入力ソースと共に再使用されて良い。ループ404の各繰り返しは、データ統合の実行および対応する入力ソースのセットに相当する。例示される実施形態では、ループ404はブロック406-408を含み、ブロック410で終了する。処理はブロック406に進んで良く、入力データソースの新しいセットを取り出す。処理はブロック408に進んで良く、現在のパッケージを実行する。図6では、パッケージを実行するための処理の一例の実施形態を例示する。処理はブロック410に進み、システム構成もしくはユーザによる動作の制御に基づき、選択的にループ404の別の繰り返しを実行することができる。ループ404を出ると、処理は完了ブロック412に進み、終了しても呼び出しプログラムに戻っても良い。図5は、制約指定もしくはマッピングデータを含む、図3のパッケージ308などのパッケージを生成するための処理500の一例の実施形態を例示するフロー図である。処理500もしくはその変形は、図4のブロック402の動作の内の少なくともいくつかを実行することができる。処理500の例示される部分はブロック502にて開始されて良く、システムがスキーマコントラクトの生成を円滑にする。本明細書で検討されるように、スキーマ処理部306などのシステムコンポーネントは、入力ソースからメタデータを取り出す動作、メタデータを分析する動作、および、ユーザが実際のスキーマを制約のセットに変換することを可能にする動作などを実行することができる。これには、少なくともいくつかの型指定を、対応する制約指定に自動的に修正することが含まれる。このことには指定をユーザに対して提示すること、および指定を修正するコマンドを受け取ること、が含まれて良い。処理はブロック504に進んで良く、スキーマコントラクトと、ソースコンポーネント208、変換コンポーネント214および送り先コンポーネント220などのデータ統合システムコンポーネントの構造とに基づき、デザイン検証を実行し得る。処理はブロック506に進んで良く、デザイン検証に基づき、警告もしくはエラーメッセージを選択的に発行する。矢印507で例示されるように、いくつかの実施形態において、処理はブロック502に戻って、制約生成の円滑化を追加的に実行して良い。ブロック502、504および506は、繰り返し処理の一部とすることができ、ユーザが1つまたは複数の制約もしくはマッピングデータを生成および修正する。処理はブロック506からブロック508に進んで良く、データフロー指定をパッケージに保存する。データフロー指定には1つまたは複数の制約指定もしくはマッピングデータが含まれる。処理は完了ブロック510に進み、終了もしくは処理400などの呼び出しプログラムに戻っても良い。図6は、制約指定もしくはマッピングデータを含むパッケージを実行するための処理600の一例の実施形態を例示するフロー図である。処理600もしくはその変形は、図4のブロック408の動作の内の少なくともいくつかを実行することができる。処理600の例示される部分はブロック602にて開始されて良く、パッケージの実行を開始し得る。これには、スクリプト等の実行など、パッケージ内に指定されるような種々の動作の開始が含まれる。処理はブロック604に進んで良く、パッケージのデザイン検証を実行し得る。図6には示さないが、一実施形態において、エラーが見つかった場合、処理は終了してもユーザにコマンドの入力を促しても良い。処理はループ606に進んで良く、ループ606ではパッケージ内で指定される各データフローが繰り返される。パッケージには、1つまたは複数のデータフロー指定が含まれて良い。一部のデータフローの実行は、構成およびシステム能力に依存して、並行して実行され得る。また、あるデータフローは、他のデータフローに依存して順次実行され得る。さらにまた、あるデータフローについて、同時実行と順次実行との組み合わせもあり得る。ループ606は順次ループとして示されるが、ループ606の複数の繰り返しが少なくとも部分的に並行して実行されて良いことを理解されたい。各繰り返しにおいて、対応するデータフローが現在のデータフローとして参照される。処理はブロック608に進んで良く、現在のデータフローを実行し得る。図7は、データフローを実行するための処理の一例の実施形態を例示する。処理はブロック610に進み、システム構成もしくはユーザによる動作の制御に基づき、選択的にループ606の別の繰り返しを実行することができる。ループ606を出ると、処理は完了ブロック612に進み、終了もしくは処理500などの呼び出しプログラムに戻っても良い。図7は、データフローを実行するための処理700の一例の実施形態を例示するフロー図である。処理700もしくはその変形は、図6のブロック608の動作の内の少なくともいくつかを実行することができる。一実施形態において、処理700の動作の少なくとも一部は、図3のパイプライン実行部320に実行もしくは管理されて良い。処理700の例示される部分はブロック702にて開始されて良く、図3のメタデータ323などの外部のメタデータを、入力ソース322などのデータソースから取り出す。このメタデータには、データソースからの各列内のデータの実際の型が含まれて良い。処理はブロック704に進んで良く、現在のデータフローに対応する実際の型が検証され、実際のデータ型が生成される。一実施形態において、実際の型のランタイム検証を実行する処理は、各入力型を検証し対応する出力型を指定するデータフローを受け取る各データ統合コンポーネントに、クエリを行って良い。そして、対応する出力型が、次の下流のデータ統合コンポーネントへの入力として提供されて良い。検証が成功した場合、ブロック704の動作では、各データ統合コンポーネントの入力用の実際の列型を生成することができる。従って、実際の列型は、メタデータもしくはコンポーネントクエリ処理からの応答に基づき判定されて良い。図8では、ランタイム時のデータフローの検証および実際の列型の生成の一例の処理を例示する。処理はブロック708に進み、実際の列型に基づき実行計画を生成する。いくつかの実施形態において、実行計画では、割り当てられるメモリブロックのサイズ、操作の順番、配置する実行スレッドの数、実行スレッド間の処理の分散、割り当てられるまたは割り当てが解除される他のリソース、もしくはデータフロー実行の一部として実行される他の動作、を指定することができる。実行計画は、後続する実行のための青写真として機能する。一実施形態において、実際の列型の生成および実行計画の生成を含むブロック704および708の動作は、対応するデータフローのデータを受け取る前に実行される。処理はブロック710に進んで良く、データフローの実行が行われる。これには入力データソースからのデータの検索、メモリの割り当て、スレッド、もしくは他のリソース、種々の処理のスケジューリングと実行など、が含まれてもよい。処理は完了ブロック712に進み、終了もしくは処理600などの呼び出しプログラムに戻っても良い。図8は、ランタイム時の実際のデータ型の生成と検証を実行する一例の処理800を例示するフロー図である。処理800もしくはその変形は、図7のブロック704の動作の内の少なくともいくつかを実行することができる。処理800の例示される部分はブロック802にて開始されて良く、データフローのレイアウトを取り出す。データフローのレイアウトでは、データフローを構成するコンポーネントの順番、に加えて他の情報を指定することができる。処理はブロック804に進んで良く、現在の入力ソースに対応する実際のデータ型を取り出す。これらデータ型は、例えば、図3のメタデータ323の一部として受け取られて良い。処理はループ806に進んで良く、データフローの各データ統合コンポーネントがデータフローの順番でループされる。ループ806は、ブロック808-812を含み、ブロック814により終了される。各繰り返しのデータ統合コンポーネントが現在のコンポーネントとして参照される。繰り返しの順番および現在のコンポーネントは、ブロック802にて取り出されるデータフローのレイアウトに基づくもので良い。処理はブロック808に進んで良く、1つまたは複数の入力型が現在のコンポーネントに提供される。例えば、現在のコンポーネントが2つのデータ列を受け取ると、システムは、コンポーネントに各データ列の実際のデータ型を提供することができる。処理はブロック810に進んで良く、現在のコンポーネントが、実際の入力データ型をその構成に基づき検証することができる。コンポーネントが入力データ型を正確に処理できない場合、コンポーネントは無効のステータスを返す。図示されないが、いくつかの実装において、無効のステータスが返される場合、ループ806を終了して処理を終了させて良い。処理はブロック812に進んで良く、1つまたは複数の出力データ型を現在のコンポーネントから取り出し得る。現在のコンポーネントは、入力型に基づく任意の出力型を判定し、これらの出力型を返すことができる。本明細書で検討されるように、出力列の数は入力列の数と異なって良い。返された出力型は、ループ806の後続の繰り返しにおける入力型として提供されて良く、ループ806には、1つまたは複数のこれらの出力型を入力型として受け取る後続のコンポーネントを有する。一実装において、データフローの各データ統合コンポーネントは、1つまたは複数の入力型を受け取り1つまたは複数の出力型に加えて検証ステータスを返す方法を含むインターフェースを実装して良い。従って、ブロック808、810および812の動作では、いくつかの実装においてこのインターフェースを採用することができる。種々の実装において、他のインターフェースもしくは機構を使用して、ブロック808-812の動作を実行すること、および、データ統合コンポーネントとパイプライン実行部320との間の対話を制御することができる。処理はブロック814に進み、システム構成、各検証のステータス、もしくはユーザによる動作の制御に基づき、ループ806の別の繰り返しを選択的に実行して良い。ループ806は、データフローの各下流のコンポーネントで繰り返されて良い。ループ806が終了すると、処理は完了ブロック816に進み、処理700などの呼び出しプログラムに戻っても良い。ランタイム検証の一例において、変換コンポーネントは、2つの入力文字列の列を受け取り、連結された文字列を出力するべく構成されて良い。連結された文字列の列の長さは入力列の長さに依存する。入力文字列の列のそれぞれは、指定された長さを持たない文字列型の制約を有することもできる。この変換コンポーネントから入力を受け取る送り先コンポーネントは、60文字を超えない文字列を受け取るべく指定されて良い。制約コンパイラ312によるランタイム検証は、第1の入力文字列が実際の長さ40を持ち、第2の入力文字列が実際の長さ15を持つ、ことを示すメタデータを受け取ることができる。変換コンポーネントは、入力型が有効であること、および出力列型が長さ55の文字列であることを示すことができる。下流のデータ統合コンポーネントに対する後続のクエリでは、入力列が長さ55の文字列型であることを示すことができる。同じ例を用いて、同じ制約を使用する別のソース入力が、第1の入力文字列の列が長さ40であり、第2の入力文字列の列が長さ30であることを示すメタデータを提供する場合がある。変換コンポーネントは、結合された長さがその制限である60を超えているため、入力列の結合が無効であることを示し得る。ユーザはシステムを再構成しても良く、もしくは、所望の通りに修正を行っても良い。従って、デザイン型指定の柔軟性により、入力ソース型の変形が可能とされるが、その結果いくつかの構成に対してはランタイム時に無効となることもある。図9Aおよび9Bでは、制約指定と物理的な入力ソースとの間のマッピング900の例が示される。これらの例では、本明細書において記載されるマッピングおよびコンパイル機構が例示される。テーブル904は、例示のデータ統合コンポーネントに対する制約指定を示す。指定には、3つの列参照入力1入力2および入力3が含まれ、それぞれ整数型、文字列型、長さ100以上の文字列型、というデータ型の制約を有する。テーブル902は、入力データソースの3つの列に対する実際のデータ型を示す。3つの列ID名前および記述は、データ統合コンポーネントの列参照入力1入力2および入力3、にそれぞれマッピングされる。矢印930は一例のマッピングを示す。入力列のデータ型はデータ統合コンポーネントの制約に対して有効である。テーブル906は、入力データソースの修正後の実際のデータ型を示す。修正は、入力データソースにおける変更、入力データソースとして異なるデータソースを使用すること、データフローにおける中間での変更、もしくは環境における別の変更、が要因となる。テーブル902と比較すると、テーブル906では、カテゴリという追加の列が、記述という列の前の第3の位置に挿入されている。テーブル908は、テーブル904と同一の制約指定を示す。矢印932は、テーブル908の列参照とテーブル906の列参照との間のマッピングを示す。図示されるように、列入力3は、テーブル902とテーブル904との間の元のマッピングと同様に、引き続き列記述にマッピングされる。本明細書で検討されるように、列名の使用、内部マップ、もしくはユーザからの指定などの、堅牢なマッピング機構では、入力データソース列の変更後に、システムが正確な列マッピングを維持することを可能とすることができる。テーブル910は、入力データにおける別の変更を示す。テーブル902の入力データと比較すると、テーブル910の入力データには、テーブル906と同様に追加の列カテゴリが含まれる。矢印934は、矢印932で例示されるのと同様に、元のマッピングが保持されることを示す。テーブル910にはさらに、列名前の実際の型における変更を示す。テーブル910において、データ型はVarChar型40であり、長さが40であることが示される。テーブル902において、名前のデータ型はVarChar型30である。従って、このフィールドのサイズは大きくなっている。テーブル912で図示されるように、データ統合コンポーネントの対応する列に対する制約は、任意の文字列型であり、VarChar型30の列を受け入れることができる。このように、制約の使用によって図示されるように、入力データ型における少なくともいくつかの変更が可能とされる。図9Bでは、マッピング機構の別の例を示す。テーブル916に示すように、データ統合コンポーネントには、入力1入力2および入力3の列参照が含まれ、それぞれ整数型、文字列型、長さ100以上の文字列型というデータ型の制約を有する。列参照入力4は、デフォルト値がNULLの任意の日付型という対応する制約を有する。別の列参照入力5は対応する制約を有する。一実施形態において、制約では、列が選択的であり、従って入力ソースから省略されて良いことを指定することができる。制約では、デフォルト値を指定して、列が省略される構成で使用されるようにすることができる。テーブル916の入力4に対する制約はそのような指定の一例を提供することであるが、種々の実装でデフォルトの列もしくはデフォルト値を指定する他のフォーマットもしくは方法が使用されて良い。一実施形態において、データ統合コンポーネントは、1つまたは複数の新しい列本明細書においてプロトタイプ列と呼ばれるを追加するための機構を提供することができる。一実装において、1つまたは複数のプロトタイプ列はアスタリスクで指定されるが、指定の機構は異なって良い。実際のデータ型を検証する時、およびデータフローをコンパイルする時、実際の型が挿入されることにより、実際の列のセットがプロトタイプ列に対応しても良く。矢印936で示されるように、図9Bの例において、プロトタイプ列入力5は列カテゴリおよびジャスティフィケーションにマッピングされる。テーブル916は、テーブル912に示すように、入力データソースのデータ型に基づきテーブル914の制約をコンパイルした結果生成することができる実際の列型の一例を示す。一実装において、コンパイルは図3の制約コンパイラ312により実行もしくは制御されて良い。図示されるように、テーブル914の各列の制約は、テーブル916内の実際のデータ型を持つ1つまたは複数の列を有する。列入力1はLONG型の実際のデータ型を持ち、列入力2はVarChar型40の実際のデータ型を持ち、列入力3はWVarChar型120の実際のデータ型を持つ。これらのデータ型のそれぞれが、テーブル912に示すような入力ソースからの対応するデータ型とマッチする。指定された実際の列入力4は、テーブル914の制約で指定されるように、値がNULLのDateTime型の実際の型を持つ。この値は、入力データソースから対応する列が省略されたため、与えられる。入力データソースが対応する列を有する環境においては、列の値が入力として受け取られる。入力5のプロトタイプ列の制約は2つの列指定に変換され、対応する入力列をマッチさせる。従って、入力5aが、テーブル912のカテゴリ列から受け取られたVarChar型20の実際の型を受け取り、入力5bが、ジャスティフィケーション列から受け取られたChar型80の実際の型を受け取る。異なる入力ソースに基づくコンパイルされた実際の型のセットが大幅に変化し得ることに留意されたい。図3に示し本明細書で検討されるように、コンパイルされた列型を使用して、実行計画を生成し、各パイプラインを効率的な方法で実行することができる。図10は、コンピュータ装置1000の一実施形態を示すブロック図であり、システム300を実装するため、もしくは処理400、500、600、700もしくは800を含む本明細書に記載される機能を実行するために使用することができるコンピュータ装置の内の選択されたコンポーネントが例示される。コンピュータ装置1000には、図示されるものよりも多くのコンポーネントが含まれて良く、もしくは、例示されるもの全てよりも少なく含まれても良い。コンピュータ装置1000は、スタンドアロンのコンピュータ装置、もしくは1つまたは複数のブレードを搭載する筺体内のブレードなどの統合システムの一部であって良い。図示されるように、コンピュータ装置1000には1つまたは複数のプロセッサ1002が含まれ、該プロセッサは種々のコンピュータプログラムの命令を実行するための動作を行う。一構成において、各プロセッサ1002には、1つまたは複数の中央処理装置、1つまたは複数のプロセッサコア、1つまたは複数のASIC、キャッシュメモリ、もしくは他のハードウェア処理コンポーネントおよび関連するプログラム論理が含まれて良い。図示されるように、コンピュータ装置1000には、オペレーティングシステム1004が含まれる。オペレーティングシステム1004は、汎用もしくは専用のオペレーティングシステムとすることができる。ワシントン州レドモンドのマイクロソフト社によるWindows登録商標ファミリーのオペレーティングシステムは、コンピュータ装置1000上で実行可能なオペレーティングシステムの一例である。メモリ記憶装置1006には、様々な型の非一時的コンピュータ記憶媒体の内の1つまたは複数が含まれて良く、非一時的コンピュータ記憶媒体には、揮発性もしくは不揮発性のメモリ、RAM、ROM、ソリッドステートメモリ、ディスクドライブ、光記憶装置、もしくは、デジタル情報の記憶に使用可能な任意の他の媒体が含まれる。メモリ記憶装置1006には、本明細書に記載される1つまたは複数のコンポーネントもしくは他のコンポーネントが格納されて良い。一実施形態において、メモリ記憶装置1006には、システム300のソフトウェアコンポーネントもしくはその一部が格納される。メモリ記憶装置1006には、入力ソース322、メタデータ323もしくはその一部が記憶されて良い。これらのコンポーネントの内の任意の1つまたは複数が、RAM、不揮発性メモリ、もしくはRAMと不揮発性メモリとの間の異なる場所へ、オペレーティングシステム1004もしくは他のコンポーネントにより移動されて良い。コンピュータ装置1000には、プログラムコードもしくは他の情報をユーザに対して表示することを円滑にする映像表示アダプタ1012が含まれて良い。図10には図示されないが、コンピュータ装置1000には、基本入出力システムBIOSおよび関連するコンポーネントが含まれて良い。コンピュータ装置1000にはまた、ネットワークとの通信を行うためのネットワークインターフェースユニット1010が含まれて良い。システム200もしくは300のソフトウェアコンポーネントは、一時的媒体およびネットワークインターフェースユニット1010を介して受け取られて良い。コンピュータ装置1000には、1つまたは複数の表示モニタ1014が含まれて良い。コンピュータ装置1000の実施形態には、キーボード、ポインティング装置、音声コンポーネント、マイク、音声認識コンポーネント、もしくは他の入力/出力機構などの1つまたは複数の入力装置1016が含まれて良い。図4から8のフローチャート例示の各ブロック、およびフローチャート例示のブロックの組み合わせを、ソフトウェア命令により実装されることが可能であることは理解されるであろう。これらのプログラム命令が、マシンを形成するプロセッサに提供されることで、命令がプロセッサ上で実行されて、フローチャートブロック単数または複数内で指定される動作を実装するための手段が作成される。ソフトウェア命令はプロセッサにより実行されて、フローチャートブロック単数または複数内で指定される動作を実装するためのステップを提供することができる。加えて、フローチャート例示内の1つまたは複数のブロックもしくはブロックの組み合わせはまた、他のブロックもしくはブロックの組み合わせと同時に実行させることも、もしくは、本発明の範囲もしくは精神から逸脱することなく、例示されるものとは異なる順番で実行させることもできる。上記の仕様、例およびデータは、本発明の構成の製造および使用に関する完結的な説明を提供する。本発明の多くの実施形態は本発明の精神および範囲から逸脱することなく行うことが可能であるので、本発明は以下に添付される請求項に帰する。"