(57)【特許請求の範囲】
【請求項１】
仮想アプリケーション分配シャーシにおけるマスターブレードを選択する方法であって、前記仮想アプリケーション分配シャーシは複数のブレードを有し、前記方法は、
（ａ）前記複数のブレードのうちの各ブレードが、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信するステップと、
（ｂ）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内にマスターブレードから受信されたか判断するステップと、
（ｃ）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記マスターブレードから受信されなかったとの判断に応じて、各ブレードが、前記仮想アプリケーション分配シャーシの他の各ブレードにマスタークレームメッセージを送信するステップであって、各マスタークレームメッセージは送信するブレードのブレード優先度を含む、ステップと、
（ｄ）前記マスタークレームメッセージを受信した各ブレードが、前記受信したマスタークレームメッセージから取得したブレード優先度が受信したブレードのブレード優先度より高いか判断するステップと、
（ｅ）一受信ブレードが、前記受信したマスタークレームメッセージから取得したブレード優先度がどれも前記一受信ブレードのブレード優先度より高くないと判断するとそれに応じて、前記一受信ブレードの状態を新しいマスターブレードに設定するステップと、
（ｆ）前記一受信ブレードが、第２の仮想アプリケーション分配シャーシメッセージを前記仮想アプリケーション分配シャーシの他のブレードに送信するステップであって、前記第２の仮想アプリケーション分配シャーシメッセージは前記一受信ブレードの新しいマスターブレードのステータスを示す、ステップと、
（ｇ）新しいブレードを前記仮想アプリケーション分配シャーシに追加するステップと、
（ｈ）前記新しいブレードが、前記仮想アプリケーション分配シャーシ中の他の各ブレードに第２のマスタークレームメッセージを送信するステップと、
（ｉ）前記新しいブレードから第２のマスタークレームメッセージを受信するとそれに応じて、前記他の各ブレードが、前記マスターブレードが正常に動作しているとマークされているか判断するステップと、
（ｊ）前記他の各ブレードが、前記マスターブレードが正常に動作しているとマークされていると判断するとそれに応じて、前記第２のマスタークレームメッセージを無視し、そうでなければ前記送信するステップ（ｃ）、前記判断するステップ（ｄ）、前記設定するステップ（ｅ）、及び前記送信するステップ（ｆ）を実行するステップとを有する、
方法。
【請求項２】
前記複数のブレードはマスターブレードと一又は複数のスレーブブレードとを有し、
前記スレーブブレードは、正常に動作しているとき、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信し、
前記マスターブレードは、正常に動作しているとき、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信する、
請求項１に記載の方法。
【請求項３】
前記複数のブレードはマスターブレードと一又は複数のスレーブブレードとを有し、
前記判断するステップ（ｂ）は、さらに、
（ｂ１）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内に前記仮想アプリケーション分配シャーシの各スレーブブレードから受信されたか判断するステップと、
（ｂ２）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に一スレーブブレードから受信しなかったとの判断に応じて、前記仮想アプリケーション分配シャーシメッセージを受信した各ブレードが、前記一スレーブブレードを「故障中」とマークするステップと、
（ｂ３）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記一スレーブブレードから受信したとの判断に応じて、前記仮想アプリケーション分配シャーシメッセージを受信した各ブレードが、前記一スレーブブレードを正常に動作しているとマークするステップとを有する、
請求項１に記載の方法。
【請求項４】
前記判断するステップ（ｄ）と前記設定するステップ（ｅ）とは、
（ｄ１）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度を前記一受信ブレードのブレード優先度と比較するステップと、
（ｅ１）前記一受信ブレードのブレード優先度が前記一マスタークレームメッセージから取得したブレード優先度より高いと判断するとそれに応じて、他の受信したマスタークレームメッセージと前記比較するステップ（ｄ１）をくり返すステップと、
（ｅ２）前記一受信ブレードのブレード優先度が前記受信した他の受信した各マスタークレームメッセージから取得したブレード優先度より高いと判断するとそれに応じて、前記一受信ブレードを新しいマスターブレードに設定するステップとを有する、
請求項１に記載の方法。
【請求項５】
前記判断するステップ（ｄ）と前記設定するステップ（ｅ）とは、
（ｄ１）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度を前記一受信ブレードのブレード優先度と比較するステップと、
（ｅ１）前記一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度より高いと判断するとそれに応じて、前記一受信ブレードのスレーブステータスを維持するステップとを有する、
請求項１に記載の方法。
【請求項６】
各マスタークレームメッセージはさらに送信ブレードのブレード識別を有し、
前記比較するステップ（ｄ１）、くり返すステップ（ｅ１）、及び設定するステップ（ｅ２）は、
（ｄ１ｉ）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度と等しいと判断するステップと、
（ｄ１ｉｉ）前記一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度と等しいと判断するとそれに応じて、前記一マスタークレームメッセージから取得したブレード識別が前記一受信ブレードのブレード識別より数値的に小さいか判断するステップと、
（ｅ１ｉ）前記一マスタークレームメッセージから取得したブレード識別が前記一受信ブレードのブレード識別より数値的に低いと判断するとそれに応じて、他の受信したマスタークレームメッセージと前記比較するステップ（ｄ１）をくり返すステップと、
（ｅ２ｉ）前記一受信ブレードのブレード優先度が、前記受信した他の受信した各マスタークレームメッセージから取得したブレード優先度より高いと、又は等しく且つ各マスタークレームメッセージから取得したブレード識別が前記一受信ブレードのブレード識別より数値的には低いと判断するとそれに応じて、前記一受信ブレードを新しいマスターブレードに設定するステップとを有する、
請求項４に記載の方法。
【請求項７】
前記送信するステップ（ｆ）は、
（ｆ１）前記複数のブレードのうちの一スレーブブレードが、第２の仮想アプリケーション分配シャーシメッセージが第２の所定時間内に受信されたか判断するステップと、
（ｆ２）前記一スレーブブレードが、前記第２の仮想アプリケーション分配シャーシメッセージが前記第２の所定時間内に受信されないと判断するとそれに応じて、前記一スレーブブレードのステータスを新しいマスターブレードに設定し、前記一スレーブブレードが前記仮想アプリケーション分配シャーシ中の他のブレードに第２の仮想アプリケーション分配シャーシメッセージを送信するステップとを有する、
請求項１に記載の方法。
【請求項８】
前記複数のブレードは、データネットワーク内の前記仮想アプリケーション分配シャーシとして動作可能に結合され、前記データネットワークはネットワークスイッチを有し、
前記方法は、さらに、
（ｋ）前記複数のブレードの第１のブレードをアクティブブレードとして仮想アドレスに割り当て、前記複数のブレードの第２のブレードをバックアップブレードとして前記仮想アドレスに割り当て、前記仮想アドレス宛てのサービス要求は前記ネットワークスイッチにより前記第１のブレードに送信される、
請求項１に記載の方法。
【請求項９】
さらに、
（ｌ）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内に前記第１のブレードから受信されなかったと判断するステップと、
（ｍ）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記第１のブレードから受信されなかったとの判断に応じて、前記第２のブレードのステータスを前記仮想アドレスのアクティブブレードに変更するステップと、
（ｎ）前記ネットワークスイッチに仮想アドレス変更メッセージを送信して、前記ネットワークスイッチに前記仮想アドレス宛のサービス要求は前記第２のブレードに送信するように通知するステップとを有する、
請求項８に記載の方法。
【請求項１０】
コンピュータ読み取り可能プログラムを有する非一時的なコンピュータ読み取り可能記憶媒体であって、
前記コンピュータ読み取り可能プログラムは、一又は複数のコンピュータに実行されると、前記コンピュータに、
（ａ）仮想アプリケーション分配シャーシの複数のブレードのうちの各ブレードが、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信するステップと、
（ｂ）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内にマスターブレードから受信されたか判断するステップと、
（ｃ）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記マスターブレードから受信されなかったとの判断に応じて、各ブレードが、前記仮想アプリケーション分配シャーシの他の各ブレードにマスタークレームメッセージを送信するステップであって、各マスタークレームメッセージは送信するブレードのブレード優先度を含む、ステップと、
（ｄ）前記マスタークレームメッセージを受信した各ブレードが、前記受信したマスタークレームメッセージから取得したブレード優先度が受信したブレードのブレード優先度より高いか判断するステップと、
（ｅ）一受信ブレードが、前記受信したマスタークレームメッセージから取得したブレード優先度がどれも前記一受信ブレードのブレード優先度より高くない判断するとそれに応じて、前記一受信ブレードの状態を新しいマスターブレードに設定するステップと、
（ｆ）前記一受信ブレードが、第２の仮想アプリケーション分配シャーシメッセージを前記仮想アプリケーション分配シャーシの他のブレードに送信するステップであって、前記第２の仮想アプリケーション分配シャーシメッセージは前記一受信ブレードの新しいマスターブレードのステータスを示す、ステップと、
（ｇ）新しいブレードを前記仮想アプリケーション分配シャーシに追加するステップと、
（ｈ）前記新しいブレードが、前記仮想アプリケーション分配シャーシ中の他の各ブレードに第２のマスタークレームメッセージを送信するステップと、
（ｉ）前記新しいブレードから第２のマスタークレームメッセージを受信するとそれに応じて、前記他の各ブレードが、前記マスターブレードが正常に動作しているとマークされているか判断するステップと、
（ｊ）前記他の各ブレードが、前記マスターブレードが正常に動作しているとマークされていると判断するとそれに応じて、前記第２のマスタークレームメッセージを無視し、そうでなければ前記送信するステップ（ｃ）、前記判断するステップ（ｄ）、前記設定するステップ（ｅ）、及び前記送信するステップ（ｆ）を実行するステップとを実行させる、
非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１１】
前記複数のブレードはマスターブレードと一又は複数のスレーブブレードとを有し、
前記スレーブブレードは、正常に動作しているとき、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信し、
前記マスターブレードは、正常に動作しているとき、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信する、
請求項１０に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１２】
前記複数のブレードはマスターブレードと一又は複数のスレーブブレードとを有し、
前記判断するステップ（ｂ）は、さらに、
（ｂ１）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内に前記仮想アプリケーション分配シャーシの各スレーブブレードから受信されたか判断するステップと、
（ｂ２）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に一スレーブブレードから受信しなかったとの判断に応じて、前記仮想アプリケーション分配シャーシメッセージを受信した各ブレードが、前記一スレーブブレードを「故障中」とマークするステップと、
（ｂ３）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記一スレーブブレードから受信したとの判断に応じて、前記仮想アプリケーション分配シャーシメッセージを受信した各ブレードが、前記一スレーブブレードを正常に動作しているとマークするステップとを実行させる、
請求項１０に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１３】
前記判断するステップ（ｄ）と前記設定するステップ（ｅ）とは、
（ｄ１）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度を前記一受信ブレードのブレード優先度と比較するステップと、
（ｅ１）前記一受信ブレードのブレード優先度が前記一マスタークレームメッセージから取得したブレード優先度より高いと判断するとそれに応じて、他の受信したマスタークレームメッセージと前記比較するステップ（ｄ１）をくり返すステップと、
（ｅ２）前記一受信ブレードのブレード優先度が前記受信した他の受信した各マスタークレームメッセージから取得したブレード優先度より高いと判断するとそれに応じて、前記一受信ブレードを新しいマスターブレードに設定するステップとを実行させる、
請求項１０に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１４】
前記判断するステップ（ｄ）と前記設定するステップ（ｅ）とは、
（ｄ１）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度を前記一受信ブレードのブレード優先度と比較するステップと、
（ｅ１）前記一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度より高いと判断するとそれに応じて、前記一受信ブレードのスレーブステータスを維持するステップとを実行させる、
請求項１３に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１５】
各マスタークレームメッセージはさらに送信ブレードのブレード識別を有し、
前記比較するステップ（ｄ１）、前記くり返すステップ（ｅ１）、及び前記設定するステップ（ｅ２）は、
（ｄ１ｉ）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度と等しいと判断するステップと、
（ｄ１ｉｉ）前記一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度と等しいと判断するとそれに応じて、前記一マスタークレームメッセージから取得したブレード識別が前記一受信ブレードのブレード識別より数値的に小さいか判断するステップと、
（ｅ１ｉ）前記一マスタークレームメッセージから取得したブレード識別が前記一受信ブレードのブレード識別より数値的に低いと判断するとそれに応じて、他の受信したマスタークレームメッセージと前記比較するステップ（ｄ１）をくり返すステップと、
（ｅ２ｉ）前記一受信ブレードのブレード優先度が前記受信した他の受信した各マスタークレームメッセージから取得したブレード優先度より高いと、又は等しく且つ各マスタークレームメッセージから取得したブレード識別が前記一受信ブレードのブレード識別より数値的には低いと判断するとそれに応じて、前記一受信ブレードを新しいマスターブレードに設定するステップとを有する、
請求項１４に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１６】
前記送信するステップ（ｆ）は、
（ｆ１）前記複数のブレードのうちの一スレーブブレードが、第２の仮想アプリケーション分配シャーシメッセージが第２の所定時間内に受信されたか判断するステップと、
（ｆ２）前記一スレーブブレードが、前記第２の仮想アプリケーション分配シャーシメッセージが前記第２の所定時間内に受信されないと判断するとそれに応じて、前記一スレーブブレードのステータスを新しいマスターブレードに設定し、前記一スレーブブレードが前記仮想アプリケーション分配シャーシ中の他のブレードに第２の仮想アプリケーション分配シャーシメッセージを送信するステップとを有する、
請求項１０に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１７】
前記複数のブレードは、データネットワーク内の前記仮想アプリケーション分配シャーシとして動作可能に結合され、前記データネットワークはネットワークスイッチを有し、
前記コンピュータ読み取り可能プログラムは、さらに、
（ｋ）前記複数のブレードの第１のブレードをアクティブブレードとして仮想アドレスに割り当て、前記複数のブレードの第２のブレードをバックアップブレードとして前記仮想アドレスに割り当て、前記仮想アドレス宛てのサービス要求は前記ネットワークスイッチにより前記第１のブレードに送信される、ステップを有する、
請求項１０に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１８】
さらに、
（ｌ）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内に前記第１のブレードから受信されなかったと判断するステップと、
（ｍ）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記第１のブレードから受信されなかったとの判断に応じて、前記第２のブレードのステータスを前記仮想アドレスのアクティブブレードに変更するステップと、
（ｎ）前記ネットワークスイッチに仮想アドレス変更メッセージを送信して、前記ネットワークスイッチに前記仮想アドレス宛のサービス要求は前記第２のブレードに送信するように通知するステップとを有する、
請求項１７に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項１９】
システムであって、
データネットワーク内で仮想アプリケーション分配シャーシとして動作可能に結合した複数のブレードを有し、
各ブレードは、プロセッサと、コンピュータ読み取り可能プログラムを有するコンピュータ読み取り可能記憶媒体とを有し、前記コンピュータ読み取り可能プログラムは、前記プロセッサにより実行されると、前記複数のブレードに、
（ａ）各ブレードが、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信するステップと、
（ｂ）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内にマスターブレードから受信されたか判断するステップと、
（ｃ）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記マスターブレードから受信されなかったとの判断に応じて、各ブレードが、前記仮想アプリケーション分配シャーシの他の各ブレードにマスタークレームメッセージを送信するステップであって、各マスタークレームメッセージは送信するブレードのブレード優先度を含む、ステップと、
（ｄ）前記マスタークレームメッセージを受信した各ブレードが、前記受信したマスタークレームメッセージから取得したブレード優先度が受信したブレードのブレード優先度より高いか判断するステップと、
（ｅ）一受信ブレードが、前記受信したマスタークレームメッセージから取得したブレード優先度がどれも前記一受信ブレードのブレード優先度より高くない判断するとそれに応じて、前記一受信ブレードの状態を新しいマスターブレードに設定するステップと、
（ｆ）前記一受信ブレードが、第２の仮想アプリケーション分配シャーシメッセージを前記仮想アプリケーション分配シャーシの他のブレードに送信するステップであって、前記第２の仮想アプリケーション分配シャーシメッセージは前記一受信ブレードの新しいマスターブレードのステータスを示す、ステップと、
（ｇ）新しいブレードを前記仮想アプリケーション分配シャーシに追加するステップと、
（ｈ）前記新しいブレードが、前記仮想アプリケーション分配シャーシ中の他の各ブレードに第２のマスタークレームメッセージを送信するステップと、
（ｉ）前記新しいブレードから第２のマスタークレームメッセージを受信するとそれに応じて、前記他の各ブレードが、前記マスターブレードが正常に動作しているとマークされているか判断するステップと、
（ｊ）前記他の各ブレードが、前記マスターブレードが正常に動作しているとマークされていると判断するとそれに応じて、前記第２のマスタークレームメッセージを無視し、そうでなければ前記送信するステップ（ｃ）、前記判断するステップ（ｄ）、前記設定するステップ（ｅ）、及び前記送信するステップ（ｆ）を実行するステップとを行わせる、
システム。
【請求項２０】
前記複数のブレードはマスターブレードと一又は複数のスレーブブレードとを有し、
前記スレーブブレードは、正常に動作しているとき、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信し、
前記マスターブレードは、正常に動作しているとき、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信する、
請求項１９に記載のシステム。
【請求項２１】
前記複数のブレードはマスターブレードと一又は複数のスレーブブレードとを有し、
前記判断するステップ（ｂ）は、さらに、
（ｂ１）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内に前記仮想アプリケーション分配シャーシの各スレーブブレードから受信されたか判断するステップと、
（ｂ２）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に一スレーブブレードから受信しなかったとの判断に応じて、前記仮想アプリケーション分配シャーシメッセージを受信した各ブレードが、前記一スレーブブレードを「故障中」とマークするステップと、
（ｂ３）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記一スレーブブレードから受信したとの判断に応じて、前記仮想アプリケーション分配シャーシメッセージを受信した各ブレードが、前記一スレーブブレードを正常に動作しているとマークするステップとを実行させる、
請求項１９に記載のシステム。
【請求項２２】
前記判断するステップ（ｄ）と前記設定するステップ（ｅ）とは、
（ｄ１）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度を前記一受信ブレードのブレード優先度と比較するステップと、
（ｅ１）前記一受信ブレードのブレード優先度が前記一マスタークレームメッセージから取得したブレード優先度より高いと判断するとそれに応じて、他の受信したマスタークレームメッセージと前記比較するステップ（ｄ１）をくり返すステップと、
（ｅ２）前記一受信ブレードのブレード優先度が前記受信した他の受信した各マスタークレームメッセージから取得したブレード優先度より高いと判断するとそれに応じて、前記一受信ブレードを新しいマスターブレードに設定するステップとを実行させる、
請求項１９に記載のシステム。
【請求項２３】
前記判断するステップ（ｄ）と前記設定するステップ（ｅ）とは、
（ｄ１）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度を前記一受信ブレードのブレード優先度と比較するステップと、
（ｅ１）前記一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度より高いと判断するとそれに応じて、前記一受信ブレードのスレーブステータスを維持するステップと、を有する、
請求項２２に記載のシステム。
【請求項２４】
各マスタークレームメッセージはさらに送信ブレードのブレード識別を有し、
前記比較するステップ（ｄ１）、前記くり返すステップ（ｅ１）、及び前記設定するステップ（ｅ２）は、
（ｄ１ｉ）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度と等しいと判断するステップと、
（ｄ１ｉｉ）前記一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度と等しいと判断するとそれに応じて、前記一マスタークレームメッセージから取得したブレード識別が前記一受信ブレードのブレード識別より数値的に小さいか判断するステップと、
（ｅ１ｉ）前記一マスタークレームメッセージから取得したブレード識別が前記一受信ブレードのブレード識別より数値的に低いと判断するとそれに応じて、他の受信したマスタークレームメッセージと前記比較するステップ（ｄ１）をくり返すステップと、
（ｅ２ｉ）前記一受信ブレードのブレード優先度が前記受信した他の受信した各マスタークレームメッセージから取得したブレード優先度より高いと、又は等しく且つ各マスタークレームメッセージから取得したブレード識別が前記一受信ブレードのブレード識別より数値的には低いと判断するとそれに応じて、前記一受信ブレードを新しいマスターブレードに設定するステップとを有する、
請求項２３に記載のシステム。
【請求項２５】
前記送信するステップ（ｆ）は、
（ｆ１）前記複数のブレードのうちの一スレーブブレードが、第２の仮想アプリケーション分配シャーシメッセージが第２の所定時間内に受信されたか判断するステップと、
（ｆ２）前記一スレーブブレードが、前記第２の仮想アプリケーション分配シャーシメッセージが前記第２の所定時間内に受信されないと判断するとそれに応じて、前記一スレーブブレードのステータスを新しいマスターブレードに設定し、前記一スレーブブレードが前記仮想アプリケーション分配シャーシ中の他のブレードに第２の仮想アプリケーション分配シャーシメッセージを送信するステップとを有する、
請求項１９に記載のシステム。
【請求項２６】
前記複数のブレードは、データネットワーク内の前記仮想アプリケーション分配シャーシとして動作可能に結合され、前記データネットワークはネットワークスイッチを有し、
前記コンピュータ読み取り可能プログラムは、さらに、
（ｋ）前記複数のブレードの第１のブレードをアクティブブレードとして仮想アドレスに割り当て、前記複数のブレードの第２のブレードをバックアップブレードとして前記仮想アドレスに割り当て、前記仮想アドレス宛てのサービス要求は前記ネットワークスイッチにより前記第１のブレードに送信される、ステップを有する、
請求項１９に記載のシステム。
【請求項２７】
さらに、
（ｌ）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内に前記第１のブレードから受信されなかったと判断するステップと、
（ｍ）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記第１のブレードから受信されなかったとの判断に応じて、前記第２のブレードのステータスを前記仮想アドレスのアクティブブレードに変更するステップと、
（ｎ）前記ネットワークスイッチに仮想アドレス変更メッセージを送信して、前記ネットワークスイッチに前記仮想アドレス宛のサービス要求は前記第２のブレードに送信するように通知するステップとを有する、
請求項２６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してデータ通信に関し、より具体的には仮想アプリケーションデリバリシャーシシステムに関する。
【背景技術】
【０００２】
ウェブサービスとクラウドコンピューティングは前例のない速さで展開されている。データセンターには毎日、新しいサーバが運ばれ、設置されている。あらゆる方向から、ウェブサービスとコーポレートコンピューティングへの需要がある。消費者向けサービスには、ｉＰｈｏｎｅアプリ、ロケーションベースサービスなどの携帯アプリ、ナビゲーションサービス、キンドルなどの電子ブックサービス、ユーチューブやＨｕｌｕなどのビデオアプリケーション、パンドラやｉＴｕｎｅｓなどの音楽アプリケーション、Ｎｅｔｆｌｉｘなどのインターネットテレビジョンサービス、その他の急速に成長している多数の消費者向けウェブサービスなどがある。企業面では、Google(TM)  docs、Microsoft(TM)  Office  Live、Sharepoint(TM)  softwareなどのサービスに基づくクラウドコンピューティング、Salesforce.com(TM)のオンラインソフトウェアサービス、テレプレゼンス、及びウェブ会議サービス、及びその他の多数の企業クラウドコンピューティングサービスがある。
【０００３】
結果として、増大するコンピューティング需要を満たすため、ますます多くのサービスが展開されている。これらのサーバは一般的にはサーバロードバランサ（ＳＬＢ）又はアプリケーションデリバリコントローラ（ＡＤＣ）により管理される。ＡＤＣはＡ１０ネットワーク社のＡＸシリーズトラフィックマネージャなどのネットワーク機器である。ＡＤＣは、入来するサービス要求に基づき、ロードバランシングと、クライアントホストコンピュータからサーバへのサービスセッションのデリバリとを管理する。より多くのサーバが展開されるにつれ、より多くのＡＤＣが適宜展開される。同様に、より多くのサーバがデータセンタ内に集積され（pooled  together）、又は複数のデータセンタに分散され、サービスのスケーラブルソリューションを提供するので、ＡＤＣがボトルネックになる。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明の一実施形態において、仮想アプリケーション分配シャーシにおけるマスターブレードを選択する方法であって、前記仮想アプリケーション分配シャーシは複数のブレードを有し、前記方法は、（ａ）前記複数のブレードのうちの各ブレードが、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信するステップと、（ｂ）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内に前記マスターブレードから受信されたか判断するステップと、（ｃ）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記マスターブレードから受信されなかったとの判断に応じて、各ブレードが、前記仮想アプリケーション分配シャーシの他の各ブレードにマスタークレームメッセージを送信する、各マスタークレームメッセージは送信するブレードのブレード優先度を含む、ステップと、（ｄ）前記マスタークレームメッセージを受信した各ブレードが、前記受信したマスタークレームメッセージから取得したブレード優先度が受信したブレードのブレード優先度より高いか判断するステップと、（ｅ）一受信ブレードが、前記受信したマスタークレームメッセージから取得したブレード優先度がどれも前記一受信ブレードのブレード優先度より高くない判断するとそれに応じて、前記一受信ブレードの状態を新しいマスターブレードに設定するステップと、（ｆ）前記一受信ブレードが、第２の仮想アプリケーション分配シャーシメッセージを前記仮想アプリケーション分配シャーシの他のブレードに送信する、前記第２の仮想アプリケーション分配シャーシメッセージは前記一受信ブレードの新しいマスターブレードのステータスを示す、ステップとを有する。
【０００５】
本発明の一態様において、前記複数のブレードはマスターブレードと一又は複数のスレーブブレードを有し、前記少なくとも一のスレーブブレードは、正常に動作しているとき、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信し、前記マスターブレードは、正常に動作しているとき、前記仮想アプリケーション分配シャーシ中の他の各ブレードに仮想アプリケーション分配シャーシメッセージを送信する。
【０００６】
本発明の一態様において、前記複数のブレードはマスターブレードと一又は複数のスレーブブレードを有し、前記判断するステップ（ｂ）は、さらに、（ｂ１）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内に前記仮想アプリケーション分配シャーシの各スレーブブレードから受信されたか判断するステップと、（ｂ２）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に一スレーブノードから受信しなかったとの判断に応じて、前記仮想アプリケーション分配シャーシメッセージを受信した各ブレードが、前記一スレーブブレードを「故障中」とマークするステップと、（ｂ３）前記仮想アプリケーション分配シャーシメッセージが前記所定時間内に前記一スレーブノードから受信したとの判断に応じて、前記仮想アプリケーション分配シャーシメッセージを受信した各ブレードが、前記一スレーブブレードを正常に動作しているとマークするステップとを有する。
【０００７】
本発明の一態様において、前記判断するステップ（ｄ）と設定するステップ（ｅ）は、（ｄ１）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度を前記受信ブレードのブレード優先度と比較するステップと、（ｅ１）前記一受信ブレードのブレード優先度が前記マスタークレームメッセージから取得したブレード優先度より高いと判断するとそれに応じて、他の受信したマスタークレームメッセージと比較するステップ（ｄ１）をくり返すステップと、（ｅ２）前記一受信ブレードのブレード優先度が前記受信した他の受信した各マスタークレームメッセージから取得したブレード優先度より高いと判断するとそれに応じて、前記一受信ブレードを新しいマスターブレードに設定するステップとを有する。
【０００８】
本発明の一態様において、前記判断するステップ（ｄ）と設定するステップ（ｅ）は、（ｄ１）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度を前記受信ブレードのブレード優先度と比較するステップと、（ｅ１）前記一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度より高いと判断するとそれに応じて、前記一受信ブレードのスレーブステータスを維持するステップとを有する。
【０００９】
本発明の一態様において、各マスタークレームメッセージはさらに前記受信ブレードのブレード識別を有し、前記比較するステップ（ｄ１）、くり返すステップ（ｅ１）、設定するステップ（ｅ２）は、（ｄ１ｉ）前記一受信ブレードが、一マスタークレームメッセージから取得したブレード優先度が前記受信ブレードのブレード優先度と等しいと判断するステップと、（ｄ１ｉｉ）前記一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度と等しいと判断するとそれに応じて、前記一マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度より数値的に小さいか判断するステップと、（ｅ１ｉ）前記マスタークレームメッセージから取得したブレード優先度が前記一受信ブレードのブレード優先度より数値的に低いと判断するとそれに応じて、他の受信したマスタークレームメッセージと比較するステップ（ｄ１）をくり返すステップと、（ｅ２ｉ）前記一受信ブレードのブレード優先度が前記受信した他の受信した各マスタークレームメッセージから取得したブレード優先度より高いと、又は等しく数値的には低いと判断するとそれに応じて、前記一受信ブレードを新しいマスターブレードに設定するステップとを有する。
【００１０】
本発明の一態様において、前記送信するステップ（ｆ）は、（ｆ１）前記複数のブレードのうちの一スレーブブレードが、第２の仮想アプリケーション分配シャーシメッセージメッセージが第２の所定時間内に受信されたか判断するステップと、（ｆ２）前記一スレーブブレードが、前記第２の仮想アプリケーション分配シャーシメッセージが前記第２の所定時間内に受信されないと判断するとそれに応じて、前記一スレーブブレードのステータスを新しいマスターブレードに設定し、前記一スレーブブレードが前記仮想アプリケーション分配シャーシ中の他のブレードに第２の仮想アプリケーション分配シャーシメッセージを送信するステップとを有する。
【００１１】
本発明の一態様において、前記方法は、（ｇ）新しいブレードを前記仮想アプリケーション分配シャーシに追加するステップと、（ｈ）前記新しいブレードが、前記仮想アプリケーション分配シャーシ中の他の各ブレードに第２のマスタークレームメッセージを送信するステップと、（ｉ）前記新しいブレードから第２のマスタークレームメッセージを受信するとそれに応じて、前記他の各ブレードが、前記マスターブレードが正常に動作しているとマークされているか判断するステップと、（ｊ）前記他の各ブレードが、前記マスターブレードが正常に動作しているとマークされていると判断するとそれに応じて、前記第２のマスタークレームメッセージを無視し、そうでなければ送信するステップ（ｃ）、判断するステップ（ｄ）、設定するステップ（ｅ）、及び送信するステップ（ｆ）を実行するステップとを有する。
【００１２】
本発明の一態様において、前記複数のブレードは、データネットワーク内の前記仮想アプリケーション分配シャーシとして動作可能に結合され、前記データネットワークはネットワークスイッチを有し、前記方法は、さらに、（ｇ）前記複数のブレードの第１のブレードをアクティブブレードとして仮想アドレスに割り当て、前記複数のブレードの第２のブレードをバックアップブレードとして前記仮想アドレスに割り当て、前記仮想アドレス宛てのサービス要求は前記ネットワークスイッチにより前記第１のブレードに送信される。
【００１３】
本発明の一態様において、前記方法は、（ｈ）各ブレードが、前記仮想アプリケーション分配シャーシメッセージが所定時間内に前記第１のブレードから受信されなかったと判断するステップと、（ｉ）前記仮想アプリケーション分配シャーシが前記所定時間内に前記第１のブレードから受信されなかったとの判断に応じて、前記第２のブレードのステータスを前記仮想アドレスのアクティブブレードに変更するステップと、（ｊ）前記ネットワークスイッチに仮想アドレス変更メッセージを送信して、前記ネットワークスイッチに前記仮想アドレス宛のサービス要求は前記第２のブレードに送信するように通知するステップとを有する。
【００１４】
上記の方法に対応するシステムとコンピュータプログラム製品もここに説明し特許請求の範囲に記載した。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態による、ホストからサーバへのサービスセッションを分配する仮想アプリケーションデリバリシャーシを示す図である。
【図２】本発明の一実施形態による、アプリケーションデリバリブレード、ホスト及びサーバのコンポーネントを示す図である。
【図３】本発明の一実施形態による仮想アプリケーション分配シャーシ内のアプリケーションデリバリブレードの接続を示す図である。
【図４】本発明の一実施形態による仮想アプリケーション分配シャーシ内のブレードの役割を示す図である。
【図５】本発明の一実施形態による仮想アプリケーション分配シャーシ内のマスターブレードを選択するプロセスを示す図である。
【図６】本発明の一実施形態による仮想アプリケーション分配シャーシを結合するブレードを示す図である。
【図７】本発明の一実施形態による、仮想アプリケーション分配シャーシとホストとの間のサービス接続を示す図である。
【発明を実施するための形態】
【００１６】
以下の説明は、当業者が本発明の生産と使用をすることができるように説明するものであり、特許出願とその要件の文脈で説明するものである。当業者には、実施形態の様々な修正が容易に明らかになり、ここに説明する一般的な原理は他の実施形態にも適用できるだろう。このように、本発明は、図示した実施形態に限定されるものではなく、ここに説明する原理と特徴と一致する最も広い範囲を与えられるべきである。
【００１７】
本発明の実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアとソフトウェアを両方含む実施形態の形式を取ることができる。好ましい一実施形態では、本発明は、ソフトウェアで実施できる。ソフトウェアは、ファームウェア、レジデントソフトウェア、マイクロコードなどを含むが、これらに限定されない。
【００１８】
さらに、本発明は、コンピュータや命令実行システムにより使用されるプログラムコードを提供するコンピュータ利用可能媒体またはコンピュータ読み取り可能媒体からアクセスできるコンピュータプログラム製品の形体を取りうる。本開示の目的では、コンピュータ使用可能またはコンピュータ読み取り可能媒体は、命令実行システム、装置、又はデバイスにより、またはそれらに関して使用される、プログラムを包含、格納、伝達、伝送、搬送できる任意の装置である。
【００１９】
この媒体は、電子的媒体、磁気的媒体、光媒体、光磁気媒体、赤外線媒体、半導体システム（または装置やデバイス）、伝達媒体などである。コンピュータ読み取り可能媒体の例としては、半導体または固体メモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、固定磁気ディスク、光ディスクなどがある。光ディスクの例としては、コンパクトディスク−リードオンリメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）、及びＤＶＤなどがある。
【００２０】
プログラムコードを格納及び／又は実行するのに好適なデータ処理システムは、システムバスを通してメモリ要素に直接的または間接的に結合された少なくとも１つのプロセッサを含む。メモリエレメントは、プログラムコードの実行時に使われるローカルメモリと、バルク記憶と、実行時にコードをバルク記憶から読み出さねばならない回数を低減するために、少なくともプログラムコードの一部を一時的に記憶するキャッシュメモリと、を含む。
【００２１】
（キーボード、ディスプレイ、ポインティングデバイスなどを含むがこれに限定されない）入出力すなわちＩ／Ｏデバイスを、直接的に、またはＩ／Ｏコントローラを介在させて、システムに結合できる。
【００２２】
ネットワークアダプタをシステムに結合して、データ処理システムを、プライベートネットワークやパブリックネットワークを通して、他のデータ処理システムやリモートプリンタや記憶装置に結合することもできる。モデム、ケーブルモデム及びイーサネット（登録商標）カードは、現在利用できるネットワークアダプタの一部である。
【００２３】
ブロック図は、本発明の様々な実施形態によるシステム、方法及びコンピュータプログラム製品のアーキテクチャ、機能及びありうる実装の動作を示す。これに関連して、ブロック図の各ブロックは、モジュール、セグメント、コードの一部分を表す。これは指定されたローカル機能を実装する一又は複数の実行可能命令を含む。留意すべき点として、代替的な実施形態では、ブロックに示した機能は図面に示した順序でない順序で行ってもよい。例えば、順次的に示された２つのブロックは、その機能に応じて、実際には、実質的に同時に実行してもよく、逆の順序で実行してもよい。また、留意点として、ブロック図の各ブロック、及びブロック図のブロックの組合せは、指定された機能や動作を実行する特定目的ハードウェアベースシステムにより、又は特定目的ハードウェアとコンピュータ命令との組合せにより実施できる。
【００２４】
ここで用いる用語は、具体的な実施形態を説明することを目的としており、本発明の限定を意図したものではない。ここで、冠詞「a」、「an」、及び「the」は、明らかに文脈に反しない限り、複数の場合も含む。さらに、言うまでもなく、「有する」との用語は、本明細書で用いるとき、記載した特徴、整数、ステップ、動作、要素及び／又はコンポーネントがあることを示し、その他の特徴、整数、ステップ、動作、要素、コンポーネント及び／またはこれらのグループがあることを排除するものではない。
【００２５】
図１は、本発明の一実施形態による、アプリケーションサービスセッション４０１をサーバ２００からホスト１００へデリバリする仮想アプリケーションデリバリシャーシを示す図である。仮想アプリケーションデリバリシャーシ３００は、ホスト１００とサーバ２００との間のアプリケーションサービスセッションのサービス要求４０３を、ホスト１００から受信する。サービス要求４０３はデータネットワーク１５３によりデリバリされる。一実施形態では、サービスセッション４０１はウェブサービスセッションであり、サービス要求４０３は、例えば、HTTP(Hypertext  Transport  Protocol)要求、セキュアHTTP要求、FTP(File  Transfer  Protocol)要求、ファイル転送要求、SIP(Session  Initiation  Protocol)セッション要求、ウェブ技術に基づく要求、ビデオ又はオーディオストリーミング要求、ウェブ会議セッション要求、又はインターネット又は企業ネットワーク上の任意の要求である。
【００２６】
一実施形態では、サービスセッション４０１は、リモートアクセスサービス、ファイル及び印刷サービス、ネーム又はディレクトリサービス、エンタープライズアプリケーションサービス、データベースアプリケーションサービス、又はメッセージングサービスなどの非ウェブサービスのセッションである。サービス要求４０３は、対応するサービスセッション４０１の要求である。
【００２７】
図２は、本発明の一実施形態による、アプリケーションデリバリブレード、ホスト及びサーバのコンポーネントを示す図である。ホスト１００はネットワークアクセス機能を有するコンピューティング装置である。図２に示したように、ホスト１００は、プロセッサ１０３、コンピュータ読み取り可能媒体１０４、及びネットワークインタフェース１０５に動作可能に結合している。コンピュータ読み取り可能媒体１０４は、ここに説明する、プロセッサ１０３により実行された時、本発明の様々な実施形態を実施するコンピュータ読み取り可能プログラムコードを格納している。ネットワークインタフェース１０５はデータネットワーク１５３を接続する。ネットワークインタフェース１０５の例としては、イーサネット（登録商標）、ＷｉＦｉ、モバイルネットワークインタフェース、ブルートゥース、ＷｉＭＡＸ、デジタル加入者線（ＤＳＬ）、ケーブルインタフェース、Ｔ１やＴ３などのブロードバンドネットワークインタフェース、光ネットワークインタフェース、無線ネットワークインタフェース、その他のデータネットワークインタフェースがある。一実施形態では、ホスト１００はワークステーション、デスクトップパーソナルコンピュータ、又はラップトップパーソナルコンピュータである。一実施形態では、ホスト１００はパーソナルデータアシスタント（ＰＤＡ）、スマートホン、タブレットＰＣ又はセルラー電話である。一実施形態では、ホスト１００は、セットトップボックス、インターネットメディアビュアー、インターネットメディアプレーヤ、スマートセンサ、スマートメディカルデバイス、ネットトップボックス、ネットワークテレビジョンセット、ネットワークＤＶＲ、ネットワークＢｌｕ−ｒａｙプレーヤ、又はメディアセンターである。
【００２８】
図１において、仮想アプリケーションデリバリシャーシ３００は、ブレード３１０、ブレード３１２、ブレード３１４及びブレード３１６などの複数のブレードを含む。各ブレードは、例えばブレード３１０は、図２に示したように、プロセッサ３０３、コンピュータ読み取り可能媒体３０４及びネットワークインタフェース３０５に動作可能に結合している。コンピュータ読み取り可能媒体３０４は、ここに説明する、プロセッサ３０３により実行された時、本発明の様々な実施形態を実施するコンピュータ読み取り可能プログラムコードを格納している。ある実施形態では、仮想アプリケーションデリバリシャーシ３００は、複数のサーバへの負荷を分配する、サーバロードバランサ、アプリケーションデリバリコントローラ、サービスデリバリプラットフォーム、トラフィックマネージャ、セキュリティゲートウェイ、ファイアウォールシステムの一コンポーネント、仮想プライベートネットワーク（ＶＰＮ）の一コンポーネント、ビデオサーバのロードバランサ、又はサービスゲートウェイとして実装される。ネットワークインタフェース３０５はデータネットワーク１５５を接続する。図１において、ブレード３１０、３１２、３１４、３１６もデータネットワーク１５１に接続している。ブレード３１０−３１２、３１４、３１６は、データネットワーク１５１への接続により、仮想アプリケーションデリバリシャーシ３００を形成する。一実施形態では、ネットワークインタフェース３０５はネットワークインタフェース１０５の様々な実施形態を含む。一実施形態では、ネットワークインタフェース３０５は、さらに光ネットワークインタフェースを含む。
【００２９】
図２に示したように、サーバ２００は、プロセッサ２０３、コンピュータ読み取り可能媒体２０４、及びネットワークインタフェース２０５に動作可能に結合している。コンピュータ読み取り可能媒体２０４は、ここに説明する、プロセッサ２３３により実行された時、本発明の様々な実施形態を実施するコンピュータ読み取り可能プログラムコードを格納している。ある実施形態では、コンピュータ読み取り可能プログラムコードは、サーバ２００を、ウェブサーバ、ファイルサーバ、ビデオサーバ、データベースサーバ、メッセージングサーバ、ファイルサーバ、プリンタサーバ、アプリケーションサーバ、ボイスシステム、会議サーバ、メディアゲートウェイ、ＳＩＰサーバ、リモートアクセスサーバ、ＶＰＮサーバ、又はメディアセンターとして機能するように実施する。ネットワークインタフェース２０５はデータネットワーク１５５を接続する。
【００３０】
図１に戻り、一実施形態では、データネットワーク１５３は、ホスト１００と仮想アプリケーションデリバリシャーシ３００とを接続する。一実施形態では、データネットワーク１５３はインターネットプロトコル（ＩＰ）ネットワークである。一実施形態では、データネットワーク１５３は、企業データネットワークやリージョナル企業データネットワークであり、イントラネット、プライベートネットワーククラウド、仮想プライベートネットワーク、又はキャンパスエリアネットワークを含むがこれらに限定されない。一実施形態では、データネットワーク１５３はインターネットサービスプロバイダネットワークである。一実施形態では、データネットワーク１５３は、住居データネットワークであり、ＤＳＬネットワーク、ケーブルネットワーク、パーソナルエリアネットワークなどのブロードバンドネットワークを含むがこれらに限定されない。一実施形態では、データネットワーク１５３は、イーサネット（登録商標）などの有線ネットワークを含む。一実施形態では、データネットワーク１５３は、ＷｉＦｉネットワーク、セルラーネットワークなどの無線ネットワークを含む。一実施形態では、ネットワークインタフェース２０５はネットワークインタフェース１０５とネットワークインタフェース３０５の様々な実施形態を含む。
【００３１】
データネットワーク１５１は、仮想アプリケーションデリバリシャーシ３００をデータネットワーク１５３に接続する。一実施形態では、データネットワーク１５１はデータネットワーク１５３の様々な実施形態を含む。一実施形態では、データネットワーク１５１は、データセンターにあり、又は光ネットワークなどのワイドエリアネットワークで複数のデータセンターに跨り、またはキャンパスエリアネットワーク中の複数のビルに広がっている。
【００３２】
データネットワーク１５５はサーバ２００をデータネットワーク１５１に接続する。一実施形態では、データネットワーク１５５は、データネットワーク１５１に含まれるサブネットワークである。一実施形態では、データネットワーク１５５はデータネットワーク１５１の様々な実施形態を含む。一実施形態では、データネットワーク１５１はデータネットワーク１５５とは異なるネットワークである。
【００３３】
一実施形態では、ホスト１００は、サーバ２００と、アプリケーションサービスセッション４０１を開始する。ホスト１００は、仮想アプリケーションデリバリシャーシ３００にサービス要求４０３を送る。仮想アプリケーションデリバリシャーシ３００は、サービス要求４０３を受信すると、サーバセッション４０５を確立し、サービス要求４０３をサーバ２００にリレーする。仮想アプリケーションデリバリシャーシ３００は、サーバセッション４０５を通じてサーバ２００から応答を受信する。仮想アプリケーションデリバリシャーシ３００は、実質的に、サービス要求４０３への応答として、サーバセッション４０５を通じて、その応答をリレーする。
【００３４】
図３は、本発明の一実施形態による仮想アプリケーションデリバリシャーシのブレードの結合を示す図である。好ましい一実施形態では、ブレード３１０は、他のブレードとは別のハードウェアである。ブレード３１０は、ブレード３１２、ブレード３１４、及びブレード３１６などの他のブレードに、データネットワーク１５１により接続されている。一実施形態では、データネットワーク１５１は、スイッチ４１４、スイッチ４１２、及びスイッチ４１６などの複数のネットワークスイッチを含む。ネットワークスイッチ４１２やネットワークスイッチ４１４は、複数のブレードと他のネットワークスイッチを接続するネットワーキングデバイスである。一実施形態では、スイッチ４１２は、イーサネットスイッチ、ＩＰルータ、光ネットワークスイッチ、ＷＡＮネットワーク機器、ＡＴＭスイッチ、ＭＰＬＳスイッチ、レイヤ２ネットワークスイッチ／ハブ／ブリッジ、又はレイヤ３ネットワークスイッチ／ルータである。一実施形態では、図３に示したように、スイッチ４１２はブレード３１２、ブレード３１０及びスイッチ４１６を接続し、スイッチ４１４はブレード３１４、ブレード３１６及びスイッチ４１６を接続する。この実施形態では、ブレード３１２は、スイッチ４１２を用いてブレード３１０と接続され、スイッチ４１２、スイッチ４１６及びスイッチ４１４を用いてブレード３１６に接続されている。
【００３５】
一実施形態では、スイッチ４１２、スイッチ４１４及びスイッチ４１６は、データセンターなど、同じ地理的ロケーションにある。一実施形態では、スイッチ４１２、スイッチ４１４及びスイッチ４１６は、２以上のデータセンターなど、異なる地理的ロケーションにある。この実施形態では、ブレード３１０、３１２、３１４及び３１６は、地理的に、異なるデータセンターにある。
【００３６】
ブレード３１０は、仮想アプリケーションデリバリシャーシメッセージ（ＶＤＳ）５００を送受信することにより、仮想アプリケーション分配シャーシ３００中の他のブレードと通信する。一実施形態では、ブレード３１０は、イーサネットブロードキャストアドレスなどのブロードキャストネットワークアドレスを用いて、仮想アプリケーションデリバリシャーシメッセージ５００を送信する。一実施形態では、仮想アプリケーションデリバリシャーシメッセージ５００は、イーサネットマルチキャストアドレス、ＩＰマルチキャストアドレス、またはその他のマルチキャストネットワークアドレスなどのマルチキャストアドレスを用いて送信される。一実施形態では、ブレード３１０は、ブレード３１２と通信セッション（図示せず）を確立し、その通信セッションを用いて、ブレード３１２に、仮想アプリケーションデリバリシャーシメッセージ５００を送る。また、ブレード３１０は、仮想アプリケーション分配シャーシ３００中の他のブレードと別の通信セッションを確立し、他のブレードにその通信セッションで仮想アプリケーションデリバリシャーシメッセージ５００を送る。通信セッションの例には、ＵＤＰセッション、ＴＣＰセッション、ＩＰベース通信セッション、ピアツーピア通信セッション、ユニキャスト通信セッション、又はその他の形式のデータ通信セッションがある。一実施形態では、ブレード３１０は、仮想アプリケーション分配シャーシ３００中のブレード３１２その他のブレードと、ブロードキャストアドレス、マルチキャストアドレス又は通信セッションを用いて、仮想アプリケーションデリバリシャーシメッセージ５００を受信する。
【００３７】
図４は、本発明の一実施形態による仮想アプリケーション分配シャーシ内のブレードの役割を示す図である。各ブレードは、仮想アプリケーションデリバリシャーシ３００中でマスター又はスレーブいずれかの役割をするように構成され、一ブレードのみがマスターの役割をするように構成されている。例えば、ブレード３１２がマスターブレードであるとすると、ブレード３１０、３１４及び３１６はスレーブブレードである。スレーブブレード３１０を含む各スレーブブレードは、仮想アプリケーション分配シャーシ３００中の他のブレードに、スレーブレポートメッセージ５１０を送る。スレーブレポートメッセージ５１０は、仮想アプリケーションデリバリシャーシメッセージ５００の形式である。スレーブブレード３１０からスレーブレポートメッセージ５１０を受信することにより、他のブレードには、そのスレーブブレード３１０が正常に動作していることを示す。任意的に、スレーブレポートメッセージ５１０は、本発明の範囲外の機能に用いることができる、ブレード３１０に関するその他の情報を含む。一実施形態では、スレーブブレード３１０はタイマー３２０を含む。タイマー３２０は所定時間を測る。タイマー３２０が満了すると、スレーブブレード３１０は、仮想アプリケーション分配シャーシ３００中のその他のブレードに、スレーブレポートメッセージ５１０を送信する。一実施形態では、スレーブブレード３１０は、メッセージ５１０を、３０秒ごと、５秒ごと、又は３分ごとに、定期的に送信する。一実施形態では、スレーブブレード３１０は、スレーブブレード３１０中の情報に変化があった時に、例えばアップデートによるソフトウェアバージョンの変更があった時に、メッセージ５１０を送信する。一実施形態では、スレーブブレード３１０は、仮想アプリケーション分配シャーシ３００中の他の一ブレードから、対応するスレーブレポートメッセージ又はマスターアドバタイズメントメッセージ５０４を受信した時に、メッセージ５１０を送信する。
【００３８】
図４に示した一例では、スレーブブレード３１４とマスターブレード３１２は、スレーブブレード３１０からスレーブレポートメッセージ５１０を受信する。スレーブレポートメッセージ５１０内にステータス表示を含めるのとは逆に、スレーブレポートメッセージ５１０自体の受信により、スレーブブレード３１４とマスターブレード３１２には、スレーブブレード３１０が正常に動作していることが分かる。スレーブブレード３１４とマスターブレード３１２は、それぞれ、スレーブブレード３１０が正常動作状態であると記録（mark）する。一実施形態では、スレーブブレード３１４はタイマー３２４を含む。スレーブブレード３１４は、タイマー３２４が満了する前にスレーブブレード３１０からメッセージ５１０を受信しないと、スレーブブレード３１０が「故障中（failed）」と、すなわちサービス要求を処理できないと考える。同様に、マスターブレード３１２は、タイマー３２２が満了する前にスレーブブレード３１０からメッセージ５１０を受信しない場合、スレーブブレード３１０が「故障中（failed）」と考える。
【００３９】
マスターブレード３１２は、仮想アプリケーションデリバリシャーシメッセージ５００のもう１つの形式であるマスターアドバタイズメントメッセージ５０４を送出して、仮想アプリケーションデリバリシャーシ３００中のスレーブブレードに、マスターブレード３１２が正常に動作していることを知らせる。一実施形態では、マスターブレード３１２は、所定時間を測るように構成されたタイマー３２２を含み、タイマー３２２が満了した時に、マスターアドバタイズメントメッセージ５０４を送信する。一実施形態では、マスターブレード３１２は、マスターアドバタイズメントメッセージ５０４を定期的に、例えば１／２秒ごとに、５秒ごとに、３０秒ごとに、又は１分ごとに送信する。一実施形態では、マスターブレード３１２は、マスターブレード３１２中の情報に変化があった時に、例えばアップデートによるソフトウェアバージョンの変更があった時に、メッセージ５０４を送信する。
【００４０】
一実施形態では、スレーブブレード３１４を含む各スレーブブレードは、マスターブレード３１２からマスターアドバタイズメントメッセージ５０４を受信する。マスターアドバタイズメントメッセージ５０４内にステータス表示を含めるのとは逆に、マスターアドバタイズメントメッセージ５０４の受信自体により、スレーブブレードには、マスターブレード３１２が正常に動作していることが分かる。図４に示した例では、スレーブブレード３１４は、タイマー３２４が満了する前にマスターアドバタイズメントメッセージ５０４を受信した時、マスターブレード３１２が正常に動作していることを記録（mark）する。一実施形態では、スレーブブレード３１４は、タイマー３２４が満了する前にマスターブレード３１２からマスターアドバタイズメントメッセージ５０４を受信しない場合、マスターブレード３１２が「故障中（failed)」であると記録（mark）する。この場合、スレーブブレード３１０と３１６は、同様に、自機のタイマー３２０と３２６が満了する前にマスターブレード３１２からマスターアドバタイズメントメッセージ５０４を受信しない場合、マスターブレード３１２が「故障中（failed)」であると記録（mark）する。
【００４１】
スレーブブレード３１０、３１４及び３１６は、マスターブレード３１２の故障を認識した後、新しいマスターブレードを選ぶ。図５は、本発明の一実施形態による仮想アプリケーション分配シャーシ内のマスターブレードを選択するプロセスを示す図である。図５において、スレーブブレード３１０、３１４及び３１６は、それぞれ、自機が新しいマスターブレードになると考える。各ブレード３１０、３１４、３１６は、仮想アプリケーションデリバリシャーシ３００中の他のブレードに、マスタークレームメッセージ５２０、５２４、５１６を送信する。マスタークレームメッセージには送信したブレードのブレード優先度が含まれる。ブレード優先度は、予め設定され、シャーシアドミニストレータにより設定可能な要因に基づき、マスターの役割を割り振るブレードの順序を規定する。マスタークレームメッセージは、仮想アプリケーションデリバリシャーシメッセージ５００の一形式である。
【００４２】
例えば、図５において、スレーブブレード３１０は、そのブレード優先度５３０を含むマスタークレームメッセージ５２０を送信する。スレーブブレード３１４は、そのブレード優先度５３４を含むマスタークレームメッセージ５２４を送信する。スレーブブレード３１６は、そのブレード優先度５３６を含むマスタークレームメッセージ５２６を送信する。スレーブブレード３１４は、スレーブブレード３１０からマスタークレームメッセージ５２０を受信し、マスタークレームメッセージ５２０からブレード優先度５３０を取得する。スレーブブレード３１４は、自機のブレード優先度５３４をマスタークレームメッセージ５２０からのブレード優先度５３０と比較して、ブレード優先度５３０がブレード優先度５３４より高いと判断する。これに応じて、スレーブブレード３１４はスレーブの役割を維持する。スレーブブレード３１６は、スレーブブレード３１０からマスタークレームメッセージ５２０を受信し、マスタークレームメッセージ５２０からブレード優先度５３０を取得する。スレーブブレード３１６は、自機のブレード優先度５３６をマスタークレームメッセージ５２０からのブレード優先度５３０と比較して、ブレード優先度５３０がブレード優先度５３６より高いと判断する。これに応じて、スレーブブレード３１６はスレーブの役割を維持する。
【００４３】
スレーブブレード３１０は、スレーブブレード３１４からマスタークレームメッセージ５２４を受信し、マスタークレームメッセージ５２４からブレード優先度５３４を取得する。スレーブブレード３１０は、自機のブレード優先度５３０をマスタークレームメッセージ５２４からのブレード優先度５３４と比較して、ブレード優先度５３０がブレード優先度５３４より高いと判断する。また、スレーブブレード３１０は、スレーブブレード３１６からマスタークレームメッセージ５２６を受信し、マスタークレームメッセージ５２６からブレード優先度５３６を取得する。スレーブブレード３１０は、自機のブレード優先度５３０をブレード優先度５３６と比較して、ブレード優先度５３０がブレード優先度５３６より高いと判断する。一実施形態では、これに応じて、スレーブブレード３１０は自機の役割をマスターブレードに変更する。一実施形態では、スレーブブレード３１０は、タイマー３２０を含み、タイマー３２０が満了する前には、ブレード優先度５３０より高いブレード優先度を有するマスタークレームメッセージを受信しない。これに応じて、スレーブブレード３１０は自機の役割をマスターブレードに変更する。新しいマスターブレード３１０は、仮想アプリケーション分配シャーシ３００中の他のブレードに、各ブレードにマスターアドバタイズメントメッセージ５１５を送信することにより、自機がマスターの役割を果たすことを通知する。
【００４４】
一実施形態では、スレーブブレード３１０は、ブレード優先度５３０がブレード優先度５３４と等しいと判断する。これに応じて、スレーブブレード３１０は、所定のアービトレーションプロセスを用い、スレーブブレード３１０とスレーブブレード３１４のどちらが高い優先度を有するか判断する。例えば、一実施形態では、スレーブブレード３１０はブレード識別３３０を割り当てられる。スレーブブレード３１０は、マスタークレームメッセージ５２０中のブレード識別３３０を含める。同様に、スレーブブレード３１４は、ブレード識別３３４が割り当てられ、マスタークレームメッセージ５２４にブレード識別３３４を含める。スレーブブレード３１０は、マスタークレームメッセージ５２４を受信すると、マスタークレームメッセージ５２４のブレード識別３３４を自機のブレード識別３３０と比較して、ブレード識別３３４がブレード識別３３０より数値的に小さいと判断する。これに応じて、スレーブブレード３１０は、自機がブレード３１４より高い優先度を有すると判断する。スレーブブレード３１０は、高いブレード優先度を有する他のマスタークレームメッセージ、又は同じブレード優先度と高いブレード識別とを有する他のマスタークレームメッセージを受信しないと、自機の役割をマスターブレードに変更する。一実施形態では、所定のアービトレーションプロセスでは、ブレード識別が数値的に高いものではなく、数値的に低いものを選択していてもよい。所定のアービトレーションプロセスは、本発明の精神と範囲から逸脱することなく、ブレード識別以外の情報を用いてもよい。
【００４５】
ブレード３１０は、自機の役割をマスターブレードに変更すると、仮想アプリケーション分配シャーシ３００中の他の各ブレードに、マスターアドバタイズメントメッセージ５１５を送信する。ブレード３１０からマスターアドバタイズメントメッセージ５１５受信することは、他の各ブレードに対して、ブレード３１０がマスターブレードであることを示す。例えば、スレーブブレード３１４は、マスターブレード３１０からマスターアドバタイズメントメッセージ５１５を受信すると、マスターブレード３１０が仮想アプリケーションデリバリシャーシ３００のマスターブレードであることを記録する。
【００４６】
一実施形態では、スレーブブレード３１４は、タイマー３２４を含み、タイマー３２４が満了する前にはマスターアドバタイズメントメッセージを受信しない。スレーブブレード３１４は、マスターブレードが決定されていないと判断する。これに応じて、スレーブブレード３１４は、自機をマスターブレードとして選択し、仮想アプリケーション分配シャーシ３００中の他のブレードにマスターアドバタイズメントメッセージを送信する。
【００４７】
図６は、本発明の一実施形態による仮想アプリケーション分配シャーシにマスターブレードが追加された時のプロセスを示す図である。仮想アプリケーションデリバリシャーシ３００は、ブレード３１２をマスターブレードとして有するが、このシャーシにブレード３１６が追加される。スレーブブレード３１６は、追加されると、そのブレード優先度５３６を含むマスタークレームメッセージ５２６を送信する。仮想アプリケーションデリバリシャーシ３００中の他のブレード３１０、３１２、３１４は、ブレード３１６からマスタークレームメッセージ５２６を受信し、それぞれがレポートモードにあると判断し（すなわち、マスターブレード３１２が正常な動作状態にあるとマークされ）、メッセージ５２６を無視する。マスターブレード３１２は、自機のタイマー３２２（図４）が満了すると、マスターアドバタイズメントメッセージ５０４を送信する。一実施形態では、マスターアドバタイズメントメッセージ５０４はマスターブレード３１２のブレード優先度５３２を含む。ブレード３１６は、マスターアドバタイズメントメッセージ５０４の受信に応じて、自機の役割をスレーブブレードに設定する。ブレード３１６に対して、マスターアドバタイズメントメッセージ５０４を受信することは、仮想アプリケーション分配シャーシ３００が正常に動作しているマスターブレードをすでに有することを示す。その後、タイマー３２６（図４）が満了すると、スレーブブレード３１６は、仮想アプリケーション分配シャーシ３００中の他のブレードに、スレーブレポートメッセージ５１６を送信する。図４を参照して上で説明したように、マスターブレード３１２を含む他のブレードが、スレーブブレード３１６からスレーブレポートメッセージ５１６を受信するということは、ブレード３１６が仮想アプリケーションデリバリシャーシ３００に新しく加入したことを示す。この実施形態では、上記のプロセスは、既存のシャーシ又は新しく構成されたシャーシにブレードを追加するのに用いられる。新しい仮想アプリケーション分配シャーシを構成するとき、そのシャーシに加入する各ブレードはマスタークレームメッセージを送信する。図５を参照して上で説明したように、マスターブレードは未だ無いので、すなわち、タイマーが満了する前にマスターアドバタイズメントメッセージを受信するブレードは無いので、ブレードはマスターブレード選択プロセスに入る。
【００４８】
仮想アプリケーションデリバリシャーシ３００とホスト１００との間の接続に戻り、図７は、本発明の一実施形態によるホスト１００と仮想アプリケーションデリバリシャーシ３００との間の接続を示している。この実施形態では、ホスト１００は、ネットワークスイッチ４１８を通じて、仮想アプリケーションデリバリシャーシ３００と通信する。ネットワークスイッチ４１８は、ブレード３１０とブレード３１４に接続されている。仮想アプリケーションデリバリシャーシ３００は仮想アドレス４２３を含む。仮想アドレス４２３は、ホスト１００が仮想アプリケーションデリバリシャーシ３００と通信するのに用いるネットワークアドレスである。一実施形態では、仮想アドレス４２３はＩＰアドレスその他のネットワークアドレスである。ブレード３１０は仮想アドレス４２３のアクティブブレードとして指定されている。ブレード３１４は仮想アドレス４２３のバックアップブレードとして指定されている。よって、仮想アプリケーション分配シャーシ３００中のアクティブブレードとバックアップブレードとは、データネットワーク１５１の各仮想アドレスに指定されている。ネットワークスイッチ４１８は、仮想アドレス４２３宛のデータパケットをアクティブブレード３１０に配信する。ホスト１００は、仮想アドレス４２３を用いて、仮想アプリケーションデリバリシャーシ３００にサービス要求４０３を送る。ネットワークスイッチ４１８は、サービス要求４０３パケットを受信すると、そのパケットを仮想アドレス４２３のアクティブブレード３１０に送信する。アクティブブレード３１０は、サービス要求４０３を受信して処理する。
【００４９】
一実施形態では、アクティブブレード３１０は、故障し、タイマー３２０が満了した時にマスターブレードであれば、スレーブレポートメッセージ５１０又はマスターアドバタイズメントメッセージを送信しない。バックアップブレード３１４は、タイマー３２４が満了する前には、アクティブブレードからスレーブレポートメッセージ５１０を受信しない。これに応じて、バックアップブレード３１４はアクティブブレード３１０が故障したと判断する。バックアップブレード３１４は、自機の役割を、仮想アドレス４２３のアクティブブレードに変更する。アクティブブレード３１４は、仮想アドレス変更メッセージ４４６を送信して、ネットワークスイッチ４１８に、今後、仮想アドレス４２３宛のパケットはアクティブブレード３１４に送ることを通知する。一実施形態では、仮想アドレス４２３はＩＰアドレスであり、ネットワークスイッチ４１８はイーサネットスイッチである。アクティブブレード３１４は、ＡＰＲ（Address  Resolution  Protocol）メッセージを用いてネットワークスイッチ４１８に通知する。このメッセージは、アクティブブレード３１４のネットワークインタフェースの仮想アドレス４２３とＭＡＣアドレスとを含む。ネットワークスイッチ４１８は、仮想アドレス変更メッセージ４４６を受信すると、今後、仮想アドレス４２３宛のパケットはアクティブブレード３１４に送信されるように状態を変更する。
【００５０】
一実施形態では、サービス要求４０３に基づくホスト１００とサーバ２００との間のサービスセッションは、アクティブブレード３１０が故障（fail）すると、切断される（fail）。一実施形態では、ホスト１００は、その後、仮想アドレス４２３を用いて他のサービスセッションのサービス要求４０７を送信する。ネットワークスイッチ４１８は、サービス要求４０７を受信し、仮想アドレス４２３を含むサービス要求４０７をアクティブブレード３１４に送信する。アクティブブレード３１４は、サービス要求４０７を処理し、その要求をサーバ２００に送信する。
【００５１】
本発明を実施形態を参照して説明したが、本技術分野の当業者には言うまでもなく、これらの実施形態にはバリエーションがあり、これらのバリエーションも本発明の精神と範囲に含まれる。したがって、本技術分野の当業者は、添付した特許請求の範囲の精神と範囲から逸脱せずに、多くの修正をすることができる。
【図１】
0005948345.tif 000002
【図２】
0005948345.tif 000003
【図３】
0005948345.tif 000004
【図４】
0005948345.tif 000005
【図５】
0005948345.tif 000006
【図６】
0005948345.tif 000007
【図７】
0005948345.tif 000008