アプリケーションをローカルで実行するための少なくとも一つのアプリケーションサーバと、前記少なくとも一つのアプリケーションサーバとの間でI/O伝送するためにこれと通信している一つ以上のストレージサーバと、を含むストレージアプライアンスシステム。前記少なくとも一つのアプリケーションサーバは複数のアプリケーションサーバを含む、請求項1に記載のシステム。前記アプリケーションは、データベースアプリケーション、スクラッビングアプリケーション、およびビジネス分析アプリケーションから成るアプリケーションの群から選択される、請求項1に記載のシステム。前記アプリケーションは、一つ以上の他のマシン上で実行するよう設計される、請求項1に記載のシステム。前記一つ以上の他のマシンは、アプリケーションサーバおよびホストから成るマシンの群から選択される、請求項4に記載のシステム。前記少なくとも一つのアプリケーションサーバは、一つ以上のホストと通信するようにも構成された少なくとも一つのハイブリッドアプリケーションサーバを含む、請求項1に記載のシステム。アプリケーションをローカルで実行するための少なくとも一つのアプリケーションサーバと、I/O伝送のため前記少なくとも一つのアプリケーションサーバと通信する一つ以上のストレージサーバとを包含する、ストレージアプライアンスシステムを設けるステップと、前記少なくとも一つのアプリケーションサーバ上でアプリケーションをローカルに実行するステップと、前記少なくとも一つのアプリケーションサーバと前記一つ以上のストレージサーバのストレージサーバとの間でI/O伝送を通信するステップと、を含む方法。前記少なくとも一つのアプリケーションサーバは、複数のアプリケーションサーバを含み、前記方法は、前記複数のアプリケーションサーバの各々でローカルにアプリケーションを実行するステップを含む、請求項7に記載の方法。前記アプリケーションは、データベースアプリケーション、スクラッビングアプリケーション、およびビジネス分析アプリケーションから成るアプリケーションの群から選択される、請求項7に記載の方法。前記アプリケーションは、一つ以上の他のマシン上で実行するよう設計される、請求項7に記載の方法。前記一つ以上の他のマシンは、アプリケーションサーバおよびホストから成るマシンの群から選択される、請求項10に記載の方法。前記少なくとも一つのアプリケーションサーバは、一つ以上のホストと通信するようにも構成された少なくとも一つのハイブリッドアプリケーションサーバを含み、前記方法は、前記少なくとも一つのハイブリッドアプリケーションサーバと一つ以上ホストとの間でI/O伝送を通信するステップを含む、請求項7に記載の方法。コンピュータ可読記憶媒体に格納されたコンピュータプログラムであって、前記コンピュータプログラムは、アプリケーションをローカルで実行するための少なくとも一つのアプリケーションサーバ、およびI/O伝送のため前記少なくとも一つのアプリケーションサーバと通信する一つ以上のストレージサーバを包含するストレージアプライアンスシステムの、前記少なくとも一つのアプリケーションサーバ上でアプリケーションをローカルに実行するステップと、前記少なくとも一つのアプリケーションサーバと前記一つ以上のストレージサーバのストレージサーバとの間でI/O伝送を通信するステップと、のためのコードを包含する、前記コンピュータプログラム。前記アプリケーションは、データベースアプリケーション、スクラッビングアプリケーション、およびビジネス分析アプリケーションから成るアプリケーションの群から選択される、請求項13に記載のコンピュータプログラム。前記アプリケーションは、一つ以上の他のマシン上で実行するよう設計される、請求項13に記載のコンピュータプログラム。前記一つ以上の他のマシンは、アプリケーションサーバおよびホストから成るマシンの群から選択される、請求項15に記載のコンピュータプログラム。前記少なくとも一つのアプリケーションサーバは、一つ以上のホストと通信するようにも構成された少なくとも一つのハイブリッドアプリケーションサーバを含み、前記コンピュータプログラムは、前記少なくとも一つのハイブリッドアプリケーションサーバと一つ以上ホストとの間でI/O伝送を通信するためのコードを包含する、請求項13に記載のコンピュータプログラム。ストレージアプライアンスシステム中に組み込むためのアプリケーションサーバであって、前記アプリケーションサーバは、アプリケーションをローカルで実行し、少なくとも一つのストレージサーバとI/O伝送を通信するよう構成される、前記アプリケーションサーバ。前記アプリケーションは、データベースアプリケーション、スクラッビングアプリケーション、およびビジネス分析アプリケーションから成るアプリケーションの群から選択される、請求項18に記載のアプリケーションサーバ。一つ以上のホストと通信するようにも構成される、請求項19に記載のアプリケーションサーバ。このことは、I/Oオペレーションが、アプライアンスおよびI/Oの種類に応じて、少なくとも2つのホップを必要とすることを意味する。ホストから物理記憶装置への間の距離に基づいてサーバの階層的分類を行うことができ、上から下に見れば、ストレージサーバ、インタフェースサーバ、そして外部ホストということになろう。システムリソースの観点から、各ホップのコストは無視できず、これには、通常、少なくとも一つのデータコピーと、相互接続待ち時間と、プロトコルおよび経路設定のオーバーヘッドとが含まれる。本発明の実施形態によって、ストレージアプライアンスシステムが提供される。このシステムには、アプリケーションをローカルで実行するための少なくとも一つのアプリケーションサーバと、アプリケーションサーバまたはサーバ群との間のI/O伝送のため、該サーバと通信する一つ以上のストレージサーバとを含めることができる。また、本発明の実施形態によって、ストレージアプライアンスシステムを提供するステップを含めることのできる方法が提供される。このストレージアプライアンスシステムには、アプリケーションをローカルで実行するための少なくとも一つのアプリケーションサーバと、I/O伝送のため、該少なくとも一つのアプリケーションサーバと通信する一つ以上のストレージサーバとを含めることができる。また、該方法には、アプリケーションサーバ上でアプリケーションをローカルに実行するステップ、およびアプリケーションサーバと一つ以上のストレージサーバとの間でI/O伝送を通信するステップを含めることができる。本発明の実施形態によって、持続性有形のコンピュータ可読記憶媒体に格納されたコンピュータプログラムがさらに提供される。このコンピュータプログラムには、ストレージアプライアンスシステムのアプリケーションサーバ上でアプリケーションをローカルに実行するためのコードを含めることができる。このストレージアプライアンスシステムには、一つ以上のアプリケーションサーバと、I/O伝送のため該アプリケーションサーバと通信する一つ以上のストレージサーバとを含めることができる。該方法には、アプリケーションサーバとストレージサーバとの間でI/O伝送を通信するステップをさらに含めることができる。また、本発明の実施形態によって、ストレージアプライアンスシステムに組み込むためのアプリケーションサーバが提供される。該アプリケーションサーバは、アプリケーションをローカルで実行し、少なくとも一つのストレージサーバとI/O伝送を通信するよう構成することができる。発明と見なされる主題は具体的に指摘され、本明細書に添付された請求項の中ではっきりと請求されている。ただし、本発明は、添付の図面と併せ以下の詳細説明を読み、参照することによって、その目的、特質、および利点とともに、機構およびオペレーションの方法の双方として最善に理解することができよう。当業者ならよく理解するであろうように、本発明の態様は、システム、方法、またはコンピュータプログラムとして具現することができる。従って、本発明の態様は、全体がハードウエアの実施形態、全体がソフトウエアの実施形態ファームウエア、常駐ソフトウエア、マイクロコードなどを含む、あるいは、一般に本明細書では全て回路、モジュール、またはシステムといわれる、ソフトウエアおよびハードウエア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の態様は、内部に具体化されたコンピュータ可読プログラムコードを有する一つ以上のコンピュータ可読媒体群中に具現されたコンピュータプログラムの形を取ることもできる。一つ以上のコンピュータ可読媒体群の任意の組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体のシステム、装置、またはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のさらに具体的な例限定的リストには、一つ以上の配線を有する電気接続、携帯コンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM:randomaccessmemory、読み取り専用メモリROM:read-onlymemory、消去可能プログラム可能読み取り専用メモリEPROMerasableprogrammableread-onlymemoryまたはフラッシュメモリ、光ファイバ、携帯コンパクトディスク読み取り専用メモリCD-ROM:compactdiscread-onlymemory、光記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組み合わせが含まれよう。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の持続性有形の媒体とすることができる。コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現されたコンピュータ可読プログラムコードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の組み合わせを含め、さまざまな形態の任意の形を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではないが、命令実行システム、装置、またはデバイスによって、またはこれらに関連させて使うためのプログラムを通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。コンピュータ可読媒体に具現されたプログラムコードは、以下に限らないが、無線、有線、光ファイバケーブル、RFなどまたはこれらの任意の組み合わせを含む、任意の適切な媒体を使って送信することができる。本発明の態様のためのオペレーションを実行するためのコンピュータプログラムコードは、JavaR、SmalltalkR、Cなどのオブジェクト指向プログラミング言語、および、Cプログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組合せで記述することができる。これらプログラムコードは、全体をユーザのコンピュータで、一部をユーザのコンピュータでスタンドアロンソフトウエアパッケージとして実行することができ、一部をユーザのコンピュータで他の部分を遠隔コンピュータで、または全体を遠隔コンピュータまたはサーバで実行することができる。後者のシナリオでは、ローカルエリアネットワークLAN:localareanetworkまたは広域ネットワークWAN:wideareanetworkを含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することができ、あるいは例えばインターネットサービスプロバイダを使いインターネットを介し外部のコンピュータへの接続を行うことができる。本発明の実施形態による方法、装置システム、およびコンピュータプログラムのフローチャート説明図もしくはブロック図またはその両方を参照しながら、以下に本発明の態様を説明する。フローチャート説明図もしくはブロック図またはその両方の各ブロック、および、フローチャート説明図もしくはブロック図またはその両方のブロックの組合せは、コンピュータプログラム命令によって実行可能であることは理解されよう。これらのコンピュータプログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、コンピュータ又は他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能/処理を実施するための手段を生成するようにすることができる。また、これらのコンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または特定の仕方で機能する他のデバイスに命令できるコンピュータ可読媒体に格納し、コンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能/処理を実施する命令を包含する製品を生成するようにできる。さらに、これらコンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または、他のデバイスにロードして、そのコンピュータ、他のプログラム可能装置、または他のデバイス上で一連のオペレーションステップを実施させてコンピュータ実行のプロセスを生成し、コンピュータまたは他のプログラム可能装置で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能/処理を実施するためのプロセスを提供するようにすることもできる。図面中のフローチャート群およびブロック図群は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータプログラムの、可能な実装のアーキテクチャ、機能、およびオペレーションを例示している。これに関し、フローチャートまたはブロック図中の各ブロックは、規定された論理機能群を実施するための一つ以上の実行可能命令を含むコードのモジュール、セグメント、または部分を表し得る。また、ある別な実装においては、ブロックに記載された機能が図に記載されたのと違った順序で実施され得ることにも留意すべきである。例えば、関与する機能性によっては、引き続きに示された2つのブロックが、実際はほぼ同時に実行されることがあり、ブロック群が時として逆の順序で実行されることがある。また、ブロック図もしくはフローチャート説明図またはその両方の各ブロック、および、フローチャート説明図もしくはブロック図またはその両方中のブロックの組合せは、特定の機能または処理を遂行する特殊用途のハードウエアベースシステム、または特殊用途ハードウエアとコンピュータ命令との組合せによって実施できることにも留意すべきである。ストレージアプライアンス時としてストレージコントローラともいわれるは、通常、データを格納するためのストレージサーバ、および、ホストとストレージサーバとの間の仲介装置として用いることのできるインタフェースサーバを包含する。本発明の実施形態による、ストレージアプライアンスを図示する図1を参照する。典型的ストレージアプライアンスには、ストレージサーバ16およびインタフェースサーバ14を含めることができる。データもしくは命令またはその両方を包含し得るI/O要求が、ある外部ホスト20によって開始され、その要求がストレージエリアネットワークSAN:StorageAreaNetwork18を介してインタフェースサーバ14に通信される。命令はインタフェースサーバ14によって処理され、データが読み出し要求の場合はストレージサーバから16から取り出され、書き込み要求の場合はこれに格納される。本発明の実施形態によれば、ストレージアプライアンスに、サーバの新しいクラスが導入される。本明細書では以降これらサーバをアプリケーションサーバといい、これらは階層的にはインタフェースサーバと実際上同等な階層である。アプリケーションサーバ12図1参照は単一のホップでストレージサーバ16にアクセスすることができる。同時に、アプリケーションサーバには、例えば、データ集約型のソフトウエアを実行することによって外部ホストの機能を組み入れ、例えば、単一のホップで記憶装置にアクセスすることによってインタフェースサーバの機能を組み入れることができる。本発明の実施形態によれば、アプリケーションサーバは、いくつかの点でインタフェースサーバに類似させてもよい。すなわち、アプリケーションサーバは、ストレージアプライアンスの内部ネットワークに接続することができ、クラスタメンバーシップソフトウエアを実行することができ、ストレージアプライアンスの内部ネットワークを用いてストレージサーバと例えば、専用のプロトコルを使って通信をすることができる。アプリケーションサーバを使って、例えば、データベースアプリケーション例、IBMIBMの登録商標のDB2IBMの登録商標、スクラッビングソフトウエア、ビジネス分析ソフトウエアなどの、アプリケーションを実行することができる。このとき、アプリケーションサーバ上で実行されているソフトウエアは、インタフェースサーバの必要なく、ストレージサーバと直接交信することができる。本発明の実施形態によれば、アプリケーションサーバは、アプリケーションサーバの故障または追設が、クラスタソフトウエアのグループメンバーシップの変更をもたらさないという点で、インタフェースサーバとは異なる。本発明の実施形態によれば、記憶装置ネットワークの内部ネットワークへの物理的接続性の付与に加え、アプリケーションサーバのソフトウエアに、クラスタマネジメントソフトウエアおよびストレージアプライアンスの内部通信プロトコルを存知させておくことができる。この機能は、この知識を備えたデバイスドライバをインストールすることによって加えることができ、これはこの機能を拡張する広く認められた標準的やり方を提供する。デバイスドライバの使用するアプローチは、通信ホップの回避に加え、プロトコルスタックの一部を削除でき、待ち時間をさらに低減する。典型的なインタフェースサーバソフトウエアコードには、プロトコル固有のコード例、iSCSI、FCなど、待ち行列をアドレス指定するコード、サービス品質のコード、ストレージサーバとデータをやり取り送信するために適切なストレージサーバを選定するためのロジックをアドレス指定するコード、およびストレージサーバとデータをやり取り送信するためのコードを含めることができる。図2Aは、典型的なインタフェースサーバソフトウエアのコードスタックの一例を示す。インタフェースサーバソフトウエアのこの例は、プロトコル固有のコード202、待ち行列コード204、サービス品質のコード206、ストレージサーバ選定のためのロジック208、およびストレージサーバとやり取り送信のためのコード210を含む。本発明の実施形態によれば、アプリケーションサーバのために設計されたソフトウエアには、そのアプリケーションサーバ上で実行するため設計されたアプリケーションコード実際上は、このアプリケーションは、必ずしもこの特定のサーバで実行するため特に設計されたものである必要はなく、他のコンピュータで実行するよう設計されたアプリケーションソフトウエアであってもよいと、一つ以上のストレージサーバとデータをやり取り送信するためのコードとを含めることができる。図2Bは、本発明の実施形態による、アプリケーションサーバソフトウエアのコードスタックの一例を示す。アプリケーションコード212が備えられ、これをアプリケーションサーバの処理ユニット上でローカルに実行することができ、ストレージサーバとやり取り送信するためのコード210も含まれている。また、このスタックはストレージサーバを選定するためのロジックコード208も含む。インタフェースサーバ中に存在する各種ソフトウエアコードの多くがストレージサーバとの交信のためのコードと、ストレージサーバ選定のためのロジックを除いて、図2A参照ホストとインタフェースサーバとの間の適切な通信を容易にすることを目的としているのは明らかである。本発明の実施形態によれば、アプリケーションサーバには、該アプリケーションサーバ上でローカルに実行するよう設計されたアプリケーションコード、アプリケーションサーバとストレージサーバとの間で適切な通信を容易にするコード、およびでき得れば、ストレージサーバの選定のためのロジックを含めることができる。本発明の実施形態によれば、アプリケーションサーバでは、データは、アプリケーションサーバを経由して伝送されるのでなく、外部デバイス例、ホストとストレージサーバとの間を行き来する。アプリケーションサーバは、むしろ、ストレージサーバとだけの通信を維持することができる。本発明の実施形態によれば、原理上は、一つ以上のアプリケーションサーバおよび一つ以上のストレージサーバだけを包含する、スタンドアロンストレージアプライアンスシステムを設けることができるが、典型的なストレージアプライアンスシステムは、一つ以上通常は複数のストレージサーバ、一つ以上のアプリケーションサーバ、およびホストと通信するための一つ以上通常は複数のインタフェースサーバを含むことになろう。本発明のいくつかの好適な実施形態によって、ハイブリッド型のアプリケーションサーバが提供される。図3は、本発明の実施形態による、ハイブリッドアプリケーションサーバを備えたストレージアプライアンスシステムを示す。ストレージアプライアンスシステム32には、ストレージサーバ16およびインタフェースサーバ14を含めることができる。これにはハイブリッドアプリケーションサーバ12aも包含されており、その各々はアプリケーションを実行し、ストレージサーバ16と通信することを目的としているが、同時に、SAN18を介してホスト21と通信するインタフェースサーバとしての役割も果たせるよう構成されている。このアプリケーションは、例えば、いくつかのアプリケーションサーバ、または、一つ以上のアプリケーションサーバと一つ以上の追加のホストとでなど、一群のマシン上で実行されるように設計することができる。例えば、アプリケーションのいくつかの部分を一つ以上のアプリケーションサーバで実行することができ、残りを一つ以上の外部ホストで実行するよう設計することができる。例えば、8台のマシンで実行するよう構成された分析ソフトウエア分散し、これらマシンの2台をアプリケーションサーバとすることができ、残りの6台を外部ホストとすることができよう。本発明のいくつかの実施形態によれば、インタフェースサーバコードおよびアプリケーションサーバコードの両方をハードウエア上で直接実行する代わりに、ハイパーバイザを用いて、これらの一つまたは両方をバーチャルマシン内で実行することができる。例えば、ハイパーバイザを使えば、アプリケーションサーバの機能をインタフェースサーバにもっと容易に付加することができる。図4は、本発明の実施形態によって、アプリケーションサーバを作動させる方法を示す。アプリケーションサーバ上でアプリケーションをローカルに実行する402ことができる。I/O要求が生じた404場合、アプリケーションサーバとストレージサーバとの間でI/O伝送406を行うことができる。本発明の実施形態の前述の記載は、例示および説明の目的で提示された。これは、網羅的であることまたは本発明を開示されたとおりの形態に限定することは意図されていない。当業者は、上記の教示を踏まえ多くの修改、変形、代替、変更、および同等物が可能であることをよく理解すべきである。従って、添付の請求項は、本発明の真の趣旨に含まれる、かかる修改および変更を全て網羅することが意図されている。