(57)【要約】【課題】メモリ制約が原因で応答していないリモート・サーバを復旧する方法が提供される。【解決手段】本方法は、ネットワーク通信チャネルに接続されているリモート・サーバを準備することと、リモート・サーバ内のメモリの中に割り当てられている保留メモリ・セグメントをメモリ制約が生じたときに制御するために、保留メモリ・セグメント・プログラムをリモート・サーバ内のメモリに固定することとを含む。本方法は、割り当てられている保留メモリ・セグメントを解放するためのリクエスト・パケットをリスニングするために、保留メモリ・セグメント・プログラムを継続的に実行することと、リクエスト・パケットの受信に応答して、リモート・サーバ内のメモリの中の保留メモリ・セグメントを解放することと、保留メモリ・セグメントが解放されたときに、リモート・サーバを復旧するためにリモート・サーバにおいて任意の修正アクションを実施することとをさらに含む。【選択図】図３
2009523283.tif 000002
【特許請求の範囲】
【請求項１】
メモリ制約が原因で応答していないリモート・サーバを復旧する方法であって、前記方法は、
ネットワーク通信チャネルに接続されているリモート・サーバを準備するステップと、
前記リモート・サーバ内のメモリの中に割り当てられている保留メモリ・セグメントをメモリ制約が生じたときに制御するために、保留メモリ・セグメント・プログラムを前記リモート・サーバ内の前記メモリに固定するステップであって、上記の固定の結果として前記保留メモリ・セグメント・プログラムは、メモリ内に常に存在するようになり、移動不可とマークされて他のプログラムが前記保留メモリ・セグメント・プログラムとスペースを交換できないようになる、前記ステップと、
割り当てられている前記保留メモリ・セグメントを解放するためのリクエスト・パケットをリスニングするために、前記保留メモリ・セグメント・プログラムを継続的に実行するステップと、
前記リモート・サーバ内の前記メモリの中の前記保留メモリ・セグメントを、前記リクエスト・パケットの受信に応答して解放するステップと、
前記保留メモリ・セグメントが解放されたときに、前記リモート・サーバを復旧するために前記リモート・サーバにおいて任意の修正アクションを実施するステップと、
を含む方法。
【請求項２】
前記固定するステップは、
前記保留メモリ・セグメントを前記リモート・サーバ内の前記メモリの中に割り当てるステップ
を含む、請求項１に記載の方法。
【請求項３】
前記継続的に実行するステップは、
前記ネットワーク通信チャネルを介して、前記リクエスト・パケットを所定のＴＣＰ／ＩＰポートでリスニングするステップと、
前記ネットワーク通信チャネルを介して前記リクエスト・パケットを受信するステップと、
を含む、請求項２に記載の方法。
【請求項４】
前記解放するステップは、
受信された前記リクエスト・パケットを検証するステップと、
受信された前記リクエスト・パケットを識別するステップと、
受信された前記リクエスト・パケットが、前記リモート・サーバ上で許容される動作に対応するかどうかを確認するステップと、
を含む、請求項３に記載の方法。
【請求項５】
前記実施するステップは、
前記メモリ制約を検出するために前記リモート・サーバ上の前記メモリを定期的に確認するステップと、
前記メモリ制約が検出されると、前記保留メモリ・セグメントを解放するための前記リクエスト・パケットを送信するステップと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記実施するステップは、
前記保留メモリ・セグメントが解放されたときに、前記リモート・サーバにおいて前記任意の修正アクションを実施するために前記リモート・サーバ上で自動回復プログラムを実行するステップ
をさらに含む、請求項５に記載の方法。
【請求項７】
先行するいずれかの方法の請求項に記載の方法の前記ステップをすべて遂行するようになっている手段を含むシステム。
【請求項８】
コンピュータ・システム上で実行されると、先行するいずれかの方法の請求項に記載の方法の前記ステップをすべて遂行する命令を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非応答コンピューティング・システムを遠隔復旧するための装置、方法およびプログラム製品に関する。特に本発明は、電源のリセットを実施する必要またはコンピューティング・システムを再起動する必要なく、メモリ制約（ｍｅｍｏｒｙ  ｃｏｎｓｔｒａｉｎｔｓ）に直面している非応答コンピューティング・システムを遠隔復旧する装置、方法およびプログラム製品に関する。
【背景技術】
【０００２】
今日のビジネス環境では、組織または企業あるいはその両方が、多種多様の分散コンピューティング・システムを利用して、多数のワークステーションまたはサーバあるいはその両方でホストされているアプリケーション・プログラム間で通信する。さらに、最近は、企業または組織あるいはその両方で使用されるサーバの数が絶え間なく増加する傾向にある。それに応じて、特定の機能を遂行するさらなる種類のサーバが多数の分散コンピューティング・システムにおいて採用されており、これらのサーバは、企業または組織あるいはその両方において、１つの中心位置ではなく様々な位置に置かれている。
【０００３】
これらのサーバに置かれたデータは企業に欠かせないと考えられているものの、これらのサーバが様々な位置に広がっている場合に単一のサービス・サイトからこれらサーバの適切な動作を保証する手段は、依然として不適当なままである。したがって、このようなサーバの適切な動作を維持するプロセスを単純化しながら、同時にこのような維持に関連するあらゆる費用を抑える必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、請求項１において請求されているとおり、メモリ制約が原因で応答していないリモート・サーバを復旧する方法、ならびに付随するシステムおよびコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００５】
この明細書に組み込まれその一部を形成している添付の図面は本発明の実施形態を例示しており、説明と共に本発明の原理を説明するのに役立つ。
【発明を実施するための最良の形態】
【０００６】
当業者であれば当然のことであるが、本発明の意図および範囲から逸脱することなく本発明では種々の変更および変形が可能である。したがって、本発明の変更および変形物が添付の特許請求の範囲およびそれらの等価物の範囲にあれば、本発明はそれらを対象とするものとする。以下、本発明の好適な実施形態を細部にわたって参照する。
【０００７】
本発明は一実施形態において、メモリ制約が原因で応答していないリモート・コンピューティング・システムまたはリモート・コンピュータ・システムを復旧する装置またはシステムを提供する。装置は、ネットワーク通信チャネルと、ネットワーク通信チャネルに接続されたリモート・コンピューティング・システムと、メモリの中に保留メモリ・セグメント（ｒｅｓｅｒｖｅ  ｍｅｍｏｒｙ  ｓｅｇｍｅｎｔ）を割り当てられているリモート・コンピューティング・システムと、リモート・コンピューティング・システムのメモリに固定され（ｐｉｎｎｅｄ）リモート・コンピューティング・システム上で継続的に実行される保留メモリ・セグメント・プログラムと、リモート・コンピューティング・システムのメモリの中に割り当てられている保留メモリ・セグメントを制御するよう構成されている保留メモリ・セグメント・プログラムと、ネットワーク通信チャネルに接続された制御コンピューティング・システムとを含み、この制御コンピューティング・システムは、メモリ制約が生じたときに保留メモリ・セグメント・プログラムを使用して保留メモリ・セグメントのメモリを解放するためのリクエストを、ネットワーク通信チャネルを介してリモート・コンピューティング・システムへ送信して、制御サーバが１つ以上の修正アクションを施しリモート・コンピューティング・システムを復旧できるようにするよう構成されている。好適な実施形態では、リクエストはＴＣＰ／ＩＰパケットを含む。保留メモリ・セグメント・プログラムは、ネットワーク通信チャネルを介してのリクエストを所定のＴＣＰ／ＩＰポートでリスニングするようさらに構成され、ネットワーク通信チャネルを介してリクエストを受信するようさらに構成されていることが好ましい。さらに、保留メモリ・セグメント・プログラムは、受信されたＴＣＰ／ＩＰパケットを検証して受信されたＴＣＰ／ＩＰパケットを識別するよう構成されていることが好ましい。さらに、保留メモリ・セグメント・プログラムは、ＴＣＰ／ＩＰパケットが、リモート・コンピューティング・システム上で許容される動作に対応するかどうかを確認するようさらに構成されていることが好ましい。制御コンピューティング・システムは、メモリ制約が原因でリモート・コンピューティング・システムが応答していないという判断に基づきリクエストを送信し、保留メモリ・セグメントを解放するための、ＴＣＰ／ＩＰパケットを含むリクエストをリモート・コンピューティング・システムに送信するようさらに構成されていることが好ましい。好適な実施形態では、リモート・コンピューティング・システム上で実行され、メモリ制約を検出するためにリモート・コンピューティング・システム上のメモリを定期的に確認し、メモリ制約が検出されると保留メモリ・セグメントが解放されるようリクエストするように構成されている自動回復プログラムを、装置がさらに含む。自動回復プログラムは、保留メモリ・セグメントが解放されたときにリモート・コンピューティング・システムにおいて１つ以上の修正アクションを実施するようさらに構成されていることが好ましい。
【０００８】
本願明細書で使用される「リモート・コンピューティング・システム」または「リモート・コンピュータ・システム」または「リモート・サーバ」という用語は、リモート・コンピューティング・デバイス、好ましくはネットワーク接続を介してアクセスされるリモート・サーバを指す。さらに、「制御コンピューティング・システム」または「制御サーバ」という用語は、リモート・コンピューティング・デバイス、好ましくはリモート・コンピューティング・システムもしくはサーバ上のプロセスを制御するよう構成されているリモート制御サーバを指す。さらに、「保留メモリ・セグメント」という用語は、コンピューティング・システム、好ましくはリモート・サーバ上のメモリの一部を指し、このメモリの一部は、リモート・サーバに割り当てられているかまたは保留されている。さらに、本願明細書で使用される「保留メモリ・セグメント・プログラム」または「セグメント・プログラム」または「固定プログラム（ｐｉｎｎｅｄ  ｐｒｏｇｒａｍ）」という用語は、リモート・サーバのメモリに固定されリモート・サーバ上で実行される小型のプログラムまたはコードを指す。
【０００９】
ここで図１を参照する。図１は、本発明の実施形態に従った、メモリ制約が原因で応答していないリモート・コンピュータ・システム、好ましくはリモート・サーバを復旧する装置またはシステム１００の一実施形態を例示している。図１の装置またはシステム１００には、コンピューティング・デバイス１０２および１０４、好ましくはネットワーク通信チャネル１４０を介してシステム１００内の他のコンピューティング・システムと通信する個別のワークステーション１０２および１０４を使用するアプリケーション・ユーザが含まれる。一実施形態では、システム１００には、アプリケーション・ユーザ１０２および１０４から離れ、何らかの安全なアプリケーション・アクセス・ポート１０６を用いファイアウォールによって保護されている、コンピューティング・システム１０８、１１０および１１２、好ましくはプロキシ・サーバが含まれる。さらに、システム１００には、コンピューティング・システム１１８、１２０および１２２、好ましくはアプリケーション・サーバ１１８、１２０および１２２が含まれ、これらは、ネットワーク通信チャネル１４０を介してアプリケーション・ユーザ１０２または１０４あるいはその両方によってアクセスされるとよい。システムには、システム１００を過負荷から保護するロード・バランス・サーバ・クラスタ（ｌｏａｄ  ｂａｌａｎｃｅ  ｓｅｒｖｅｒ  ｃｌｕｓｔｅｒ）１１４および１１６が含まれることが好ましい。好適な実施形態では、ロード・バランス・サーバ・クラスタは、ネットワーク・リクエストのトラフィック・システム（ｔｒａｆｆｉｃ  ｓｙｓｔｅｍ）としての機能を果たし、ユーザ・リクエストを受け取ってあまり混んでいないサーバにリクエストを分配する。さらに、システム１００には、種々の機能を実施するその他のコンピューティング・システム、好ましくはサーバ群１２４、１２６、１２８、１３０および１３２が含まれる。一実施形態では、サーバには、データベース・サーバ１２４、メッセージング・サーバ１２６、認証サーバ１２８、バッチ・サーバ１３０およびレポーティング・サーバ１３２が含まれる。サーバ１０８、１１０、１１２、１１８、１２０、１２２、１２４、１２６、１２８、１３０および１３２はそれぞれ、ネットワーク通信チャネル１４０を介して、相互に接続され、さらにアプリケーション・ユーザ１０２および１０４に接続されていることが好ましい。好適な実施形態では、サーバ１０８、１１０、１１２、１１８、１２０、１２２、１２４、１２６、１２８、１３０および１３２のうちいずれか１つは、制御サーバとして構成可能である。サーバを制御サーバとして構成することは、システム管理者によって行われることが好ましい。例えば、サーバ１２０が制御サーバとして構成されるとすると、リモート・サーバまたはコンピューティング・システム１０８、１１０、１１２、１１８、１２２、１２４、１２６、１２８、１３０および１３２のそれぞれに連結されている制御サーバ１２０は、ネットワーク１４０を介して、リモート・サーバ１０８、１１０、１１２、１１８、１２２、１２４、１２６、１２８、１３０および１３２のうちいずれかの遠隔復旧を提供できる。好適な実施形態では、���のような制御は、端末１０２または１０４あるいはその両方でのユーザ入力によって命令されてもよい。図２を参照してさらに詳しく記載するように、図１のシステムの構成は、リモート・サーバ２００での保留メモリ・セグメントの解放をリクエストすることなど何らかの指定の動作を、制御サーバとリモート・サーバとの間でネットワーク１４０上においてメッセージを送信することによって実施するために、制御サーバからリモート・サーバへのリクエストを遂行するために使用されるとよく、これは図２を参照してさらに説明される。
【００１０】
図２を見ると、参照番号２００は、例えば図１に示されているとおりのアプリケーション・サーバ（１１８、１２０または１２２）などのリモート・サーバ２００の実施形態を示しており、これは、例えばメモリ制約が生じたときにリモート・サーバを復旧するよう構成されている。図２はリモート・サーバ２００の実施形態を示す。リモート・サーバ２００には、中央処理ユニット（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）２０８と、ローカル・ストレージ・デバイス２０２と、ユーザ・インターフェース２０４と、ネットワーク・インターフェース２０６と、オペレーティング・システム２１１を含んだメモリ２１０と、保留メモリ・セグメント・プログラム・コンポーネント２１２とが含まれることが好ましい。ＣＰＵ２０８は、一般に、リモート・サーバ２００内で動作を実行するよう構成されている。一実施形態において、ユーザ・インターフェース２０４は、ユーザからの入力データおよび命令を可能にし、出力データをユーザに伝達するなど、ユーザがリモート・サーバ２００と情報をやり取りできるようにするよう構成されている。一実施形態においてネットワーク・インターフェース２０６は、図１内に示されているシステム１００の通信チャネル１４０上で、リモート・サーバ２００がネットワーク通信するのを容易にするよう構成されている。一実施形態では、ローカル・メモリ２１０は、オペレーティング・システム２１１、ならびに、リモート・サーバの復旧および任意の修正アクションまたは動作に使用される可能性のあるいくつかのデータ・ファイルおよびメタデータ・ファイルを格納するよう構成されている。代わりの実施形態では、これらのデータ・ファイルおよびメタデータ・ファイルの一部または全部がローカル・ストレージ・デバイス２０２内に複製されてもよい。さらなる実施形態では、これらのデータ・ファイルおよびメタデータ・ファイルの１つまたはすべてが、メモリ２１０でなくローカル・ストレージ・デバイス２０２内に排他的に格納されてもよい。別の実施形態では、これらのデータ・ファイルおよびメタデータ・ファイルの１つまたはすべてが、システム１００上の分散ストレージに格納されてもよい。
【００１１】
さらに、一実施形態では、リモート・サーバは、割り当てモジュール２１４、リスニング・モジュール２１６、受信モジュール２１８、認証モジュール２２０およびセグメント解放モジュール２２２など、いくつかのモジュールを含む保留メモリ・セグメント・プログラム・コンポーネント２１２を含むことが好ましい。リモート・サーバ上の保留メモリ・セグメント・プログラム・コンポーネントは、例えばメモリ制約が生じたときなどにリモート・サーバを復旧するために、リモート・サーバにおいて保留メモリ・セグメントを解放する必要なステップを機能的に実行するよう構成された複数のモジュールを含む、論理演算ユニットと共に提供される。保留メモリ・セグメント・プログラム・コンポーネント２１２の目的は、メモリの保留メモリ・セグメントをリモート・サーバに割り当て、リモート・サーバがメモリ不足状態に直面しているときに、メモリの中に割り当てられている保留メモリ・セグメントを制御する、種々の方法を実装することである。好適な実施形態では、割り当てモジュール２１４は、リモート・サーバ内のメモリの保留メモリ・セグメントをリモート・サーバに割り当てる。好適な実施形態では、リスニング・モジュール２１６は、所定のポート上で、リスニングして保留メモリ・セグメントの解放をリクエストするパケットを待つ。好適な実施形態では、受信モジュール２１８は、所定のポート上で、保留メモリ・セグメントの解放をリクエストするパケットを受信する。好適な実施形態では、認証モジュール２２０は、受信されたパケットを検証し、受信されたパケット内でされたリクエストの種類を識別する。好適な実施形態では、保留メモリ・セグメント解放モジュール２２２は、リクエストを伴うパケットが認証されると保留メモリ・セグメントを解放する。
【００１２】
本願明細書内で上述された保留メモリ・セグメント・プログラム２１２の機能ユニットは、それらの実装の独立性を特に強調するためにモジュールと呼ばれている。例えば、モジュールは、カスタムＶＬＳＩ回路もしくはゲート・アレイ、論理チップなどの既成の半導体、トランジスタ、またはその他の個別のコンポーネントを含むハードウェア回路として実装されてもよい。さらに、モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ論理、プログラマブル論理デバイスまたは同様のものなどのプログラマブル・ハードウェア・デバイスに実装されてもよい。さらに、モジュールは、様々な種類のプロセッサによる実行を目的としてソフトウェアに実装されてもよい。実行可能コードの個別のモジュールまたはコンポーネントは、例えば、コンピュータ命令の１つ以上の物理的または論理的ブロックを含んでもよく、このブロックは、例えばオブジェクト、プロシージャまたは関数として構成されてもよい。いずれにせよ、個別のモジュールの実行可能部（ｅｘｅｃｕｔａｂｌｅｓ）は、物理的に共に位置する必要はないが、論理的に結合されるとモジュールを構成してそのモジュールについて規定されている目的を達成する、異なる位置に格納された異なる命令を含むとよい。さらに、実行可能コードのモジュールは、単一の命令であることもまたは多数の命令であることもあり得、いくつかの異なるコード・セグメントに分散されること、異なるプログラム中に分散されること、およびいくつかのメモリ・デバイスにわたり分散されることさえもあり得る。同様に、オペレーショナル・データは、本願明細書内ではモジュール内において特定および例示されると思われ、任意の適切な形式で具現化されて任意の適切な種類のデータ構造内で構成されるとよい。オペレーショナル・データは、単一のデータ・セットとして収集されてもよく、または、種々のストレージ・デバイスにわたって、異なるメモリ・デバイスにわたってなど、種々の位置にわたり分散されてもよく、さらに、少なくとも部分的に、単にシステムまたはネットワーク上の電気信号として存在してもよい。さらに、モジュールは、ソフトウェアと１つ以上のハードウェア・デバイスとの組み合わせとして実装されてもよい。例えばモジュールは、メモリ・デバイスに格納されたソフトウェア実行可能コードの組み合わせにおいて具現化されてもよい。さらなる例では、モジュールは一連のオペレーショナル・データに基づき動作するプロセッサの組み合わせであってもよい。さらに、モジュールは、伝送回路を介して伝えられる電気信号の組み合わせにおいて実装されてもよい。
【００１３】
リモート・サーバ２００のメモリ２１０が不足すると、オペレーティング・システム２１１は、リモート・サーバ２００上で実行されており追加のメモリを必要とするプログラム／プロセスを停止しはじめ、より大きなプログラムが初めに終了される傾向にあることが好ましい。リモート・サーバ２００上で実行されているプログラム／プロセスがメモリ２１０に固定されていなければ（通常はされていない）、プログラム／プロセスはメモリ２１０を得ようとして他のプログラムと競合する。プログラム／プロセスがメモリ２１０に固定されていると、プログラム／プロセスはそれに割り当てられたメモリを有しており、他のプログラム／プロセスはそれを使用することができない。リモート・サーバ２００が確実にユーザ１０２または１０４によってアクセス可能であり続けるようにするために、リモート・サーバ２００において保留メモリ・セグメント・プログラム２１２が提供されている。保留メモリ・セグメント・プログラム２１２は、リモート・サーバ２００上で実行される小さなプログラムであり、メモリ２１０に固定されている。リザーブ・メモリ・セグメント・プログラム２１２は、メモリ２１０をほとんど必要としないことが好ましい。好適な実施形態では、保留メモリ・セグメント・プログラム２１２は、メモリ２１０の１０ＭＢ（ｍｅｇａｂｙｔｅ）から１００ＭＢしか使用せず、その結果、リモート・サーバがハングアップまたはフリーズした場合に、リモート・サーバに遠隔ログインするために十分なメモリ２１０がシステム管理者に利用可能となる。なお、保留メモリ・セグメント・プログラム２１２のサイズは、リモート・サーバ上の利用可能な実際のメモリに応じて変更可能であり、さらに、好ましくは、復旧アクションを遂行するのに十分な設定可能なサイズであるべきである。なお、指摘したとおり、本発明は特定のサイズに制限される必要はない。好適な実施形態では、保留メモリ・セグメント・プログラム２１２は、本願明細書で以下に記載するように、リクエスト、好ましくはＴＣＰ／ＩＰリクエストなどの呼に応答する。
【００１４】
別の実施形態では、本発明は、メモリ制約が原因で応答していないリモート・サーバを復旧する方法を提供する。この方法は、ネットワーク通信チャネルに接続されているリモート・サーバを準備することと、リモート・サーバ内のメモリの中に割り当てられている保留メモリ・セグメントをメモリ制約が生じたときに制御するために、保留メモリ・セグメント・プログラムをリモート・サーバ内のメモリに固定することとを含む。固定するステップは、保留メモリ・セグメントをリモート・サーバ内のメモリの中に割り当てることを含むことが好ましい。この方法は、割り当てられている保留メモリ・セグメントを解放するためのリクエスト・パケットをリスニングするために、保留メモリ・セグメント・プログラムを継続的に実行することと、リモート・サーバ内のメモリの中の保留メモリ・セグメントを、リクエスト・パケットの受信に応答して解放することと、保留メモリ・セグメントが解放されたときに、リモート・サーバを復旧するためにリモート・サーバにおいて任意の修正アクションを実施することとをさらに含む。継続的に実行するステップは、ネットワーク通信チャネルを介して、リクエスト・パケットを所定のＴＣＰ／ＩＰポートでリスニングすることと、ネットワーク通信チャネルを介してリクエスト・パケットを受信することとを含むことが好ましい。解放するステップは、受信されたリクエスト・パケットを検証することと、受信されたリクエスト・パケットを識別することと、受信されたリクエスト・パケットが、リモート・サーバ上で許容される動作に対応するかどうかを確認することとを含むことが好ましい。好適な実施形態では、実施するステップは、メモリ制約を検出するためにリモート・サーバ上のメモリを定期的に確認することと、メモリ制約が検出されると、保留メモリ・セグメントを解放するためのリクエスト・パケットを送信することとをさらに含む。さらに、実施するステップは、保留メモリ・セグメントが解放されたときに、リモート・サーバにおいて任意の修正アクションを実施するためにリモート・サーバ上で自動回復プログラムを実行することを含むことが好ましい。
【００１５】
ここで、図３および４を参照する。図３および４は、メモリ制約が原因で応答していないリモート・コンピューティング・システムを復旧する方法を描いている。図３を見ると、リモート・コンピューティング・システム、好ましくはリモート・サーバを復旧する方法３００が、ステップ３０２から開始し、これは保留メモリ・セグメント・プログラムまたはコード（本願明細書では以下で「セグメント・プログラム」とも呼ばれる）を伴い、このプログラムまたはコードはステップ３０４でメモリに固定される。セグメント・プログラムのサイズは小さく、メモリに固定されて、その結果、プログラムが常にメモリ内に存在することが好ましい。さらに、他のプログラムがセグメント・プログラムとスペースを交換できないように、セグメント・プログラムは移動不可とマークされ、セグメント・プログラムはより高い実行優先度を与えられる。さらに、保留メモリ・セグメントはセグメント・プログラムによって保留され、他のいかなる目的にも利用できない。セグメント・プログラムが初めて起動するとき、セグメント・プログラムはステップ３０６で、メモリの一部分を保留または割り当てすることが好ましい。メモリのこの部分は、本願明細書で保留メモリ・セグメントと呼ばれる。好適な実施形態では、保留メモリ・セグメントは非常に小さく、メモリをほとんど使用しない。保留メモリ・セグメントは、システムの実装に応じて、例えば一般的に３０メガバイト（ＭＢ）から１００ＭＢの範囲のサイズを含むとよく、その結果、リモート・サーバがフリーズしたときにリモート・サーバに遠隔ログインするのに十分なメモリが、システム管理者に利用可能となる。なお、保留メモリ・セグメントのサイズは、リモート・サーバ上の利用可能な実際のメモリに応じて変更可能である。あるいは、保留メモリ・セグメントは、保留メモリ・セグメント・プログラムの他に別のプログラムによって作成されることも可能である。例えば、保留メモリ・セグメントは、別のプログラムによってあらかじめ作成されること、または、図３および４に記載されているように固定セグメント・プログラムによってその起動時に作成されることが可能である。なお、保留メモリ・セグメントがセグメント・プログラムによって作成されなかった場合、当該のメモリを解放するには、保留メモリ・セグメントを固定セグメント・プログラムに制御させるためにメカニズムが必要である。
【００１６】
セグメント・プログラムが保留メモリ・セグメントを割り当てると、セグメント・プログラムはステップ３０８で、任意のリクエスト・パケット（単数または複数）の、ポート、好ましくは所定のＴＣＰポートでのリスニングを開始し、ステップ３１０でＴＣＰポート上において任意のパケット（単数または複数）を待つ。パケットは、リモート・サーバにおいてセグメント・プログラムにより実行される特定のアクションを指定するのに使用されるリクエストＴＣＰ／ＩＰパケットを含むことが好ましい。したがって、リモート・サーバがメモリ不足の結果としてハングアップもしくはフリーズするかまたは応答しなくなると、リモート・サーバのオペレーティング・システムは新たなプロセスを起動できないが、リモート・サーバは完全に停止している（ｄｅａｄ）訳ではなく、セグメント・プログラムは、もしそれがメモリに固定されていれば、リモート・サーバ上で実行し続ける。さらに、保留メモリ・セグメント・プログラムは任意の通信を所定のポート上でリスニングする。再度図３を参照すると、図３の右側では、制御サーバがステップ３２４から開始し、ステップ３２６で、リモート・サーバがメモリ不足になっているかどうかが判断される。制御サーバは、ネットワーク接続を介してリモート・サーバに接続されている別のサーバであることが好ましい。制御サーバが３２６でリモート・サーバはメモリ不足になっていないと判断すると、プロセスは３２８で終わる。しかし、制御サーバがステップ３２６で、リモート・サーバはメモリ不足になっていると判断すると、ステップ３３０で、リモート・サーバ上の保留メモリ・セグメントを解放することが決定される。保留メモリ・セグメントの解放は、システム管理者によって手動で、または自動プロセス（例えば、リモート・サーバ上で実行されている自動回復プログラム）によって決定されることが好ましい。この自動プロセスは、リモート・サーバがメモリ制約状態にあるかどうかを確認し、メモリ制約が検出されると、保留メモリ・セグメントの解放などの遠隔操作をリモート・サーバで実施する必要があるという決定を下す。保留メモリ・セグメントを解放する遠隔操作により、リモート・サーバ回復のためのさらなる可能なアクションを取る機会が生まれる。例えば、制御サーバは、リモート・サーバがハングアップしていることを検出することもある。ユーザがログインできない、サーバが応答しない（サーバはまだ電源が入っていて実行中であるが、新たなプログラムを起動しようとする試みなどのさらなるリクエストをメモリ不足が原因で拒否している）、監視ツールによってサーバがダウンしているとレポートされるなど、サービス・リクエストに応答していなければ、リモート・サーバはハングアップまたはフリーズしていると見なされる。システム管理者は、そのような状況すべてにおいて、サーバがダウンしており遠隔操作が必要であると決定する。なお、当業者であれば、たとえサーバがハングアップしていなくても遠隔操作が使用されることもあるということが分かる。この決定の結果として、ステップ３３２で、パケット、好ましくはＴＣＰ／ＩＰパケットが、保留メモリ・セグメントの解放のリクエストと共に所定のＴＣＰポート上で送信される。リモート・サーバはステップ３０８において所定のＴＣＰポート上でリスニングし、ステップ３１０で任意のパケットを待っているため、制御サーバがパケットを送信すると、リモート・サーバはステップ３１２で、保留メモリ・セグメントの解放をリクエストするパケットをＴＣＰポート上で受信できる。リモート・サーバは、ステップ３１４でリクエストの検証を実施し、リクエストが有効かどうかを確認する。さらに、リモート・サーバはステップ３１６でリクエストの種類を識別する。さらに、リモート・サーバはステップ３１８で、リクエスト内で指定されている動作またはアクション（すなわち、保留メモリ・セグメントを解放すること）が、要求側、具体的には制御サーバに対して許可されているかどうかを判断する。リモート・サーバが、制御サーバは保留メモリ・セグメント解放の動作またはアクションをリクエストする権限を与えられていない、または許可されていないと判断すると、リモート・サーバはリクエストされた動作またはアクションを実施せず、代わりにＴＣＰポート上で再び別のパケットを待つ。一方、リモート・サーバが、制御サーバは保留メモリ・セグメント解放をリクエストする権限を与えられている、または許可されていると判断すると、リモート・サーバはリクエストされた動作またはアクションを実施する。認証プロセスの結果として、リモート・サーバはステップ３２０で保留メモリ・セグメントを解放し、プロセスを終える。リモート・サーバは、使用されているプラットフォームに基づき何らかのシステム・コールを使用して保留メモリ・セグメントを解放することが好ましい。上記のように、例えば制御サーバなどの要求側によりリクエストされたときに保留メモリ・セグメントの解放を実施するよう設計されているリモート・セグメント・プログラムは、メモリをほとんど必要としない。セグメント・プログラムがメモリに固定されていれば、セグメント・プログラムはフリーズしたリモート・サーバにおいてもまだ実行可能である。セグメント・プログラムは、リモート・サーバ上のＴＣＰ／ＩＰポートをリスニングする。したがって、リモート・サーバがフリーズするかまたは応答しなくなると、制御サーバは、ハングアップしているリモート・サーバへネットワーク接続を介してリクエストＴＣＰパケットを送信できる。保留メモリ・セグメントを解放することにより、例えば、システム管理者がテルネットまたはＳＳＨを介して遠隔ログインし、メモリ制約もしくはメモリ消費の原因となったプロセス／アプリケーションを終了させること、またはスワップ領域サイズを大きくすることなどの修正アクションを実施できるようになる。
【００１７】
図４を見ると、参照番号４００は、本発明の実施形態に従ったコンピューティング・システム、好ましくはメモリ制約が原因で応答していないリモート・サーバを復旧する代わりの方法の要点をまとめている。リモート・サーバの復旧方法４００はステップ４０２から開始し、ステップ４０４で、保留メモリ・セグメント・プログラムまたはコードがリモート・サーバ内のメモリに固定される。セグメント・プログラムはステップ４０６で、リモート・サーバのメモリ内に保留メモリ・セグメントを割り当てる。セグメント・プログラムは４１０で、任意のリクエスト・パケット、好ましくはＴＣＰ／ＩＰパケットの、所定のＴＣＰポート上でのリスニングを開始する。リモート位置において、定期的に、好ましくは所定の間隔でリモート・サーバ上においてメモリの利用可能性の確認を実施することによって、制御サーバなどの要求側が４２４から開始する。代わりの実施形態では、固定されたセグメント・プログラムは、リモート・サーバにおいての所定の間隔でのメモリ利用可能性点検の実施を開始する自動トリガを含んでいる。要求側はステップ４２８で、利用可能なメモリがあるかどうかを判断する。要求側がステップ４２８でメモリが利用可能であると判断すると、要求側は、メモリの利用可能性の定期的な確認を実施するステップ４２６に戻る。しかし、例えばリモート・サーバが応答していないなど、メモリが利用可能でない、つまりメモリ制約があると要求側が判断すると、要求側はステップ４３０で、パケット、好ましくは保留メモリ・セグメントを解放するリクエストを伴うＴＣＰ／ＩＰパケットを、所定のＴＣＰポート上でリモート・サーバへ送信する。リモート・サーバはステップ４１２で、保留メモリ・セグメントを解放するリクエストを伴うパケットを所定のＴＣＰポート上で受信する。リモート・サーバは、ステップ４１４でリクエストの検証を実施し、ステップ４１６でリクエストの種類を識別する。さらに、リモート・サーバはステップ４１８で、受信されたリクエスト内の動作またはアクション、すなわち保留メモリ・セグメントを解放する動作またはアクションをリクエストすることを、要求側が許可されているかまたは権限を与えられているかを判断する。リモート・サーバが、要求側は保留メモリ・セグメント解放の動作またはアクションをリクエストする権限を与えられていない、または許可されていないと判断すると、リモート・サーバは要求された動作またはアクションを実施せず、代わりにＴＣＰポート上で再び別のパケットを待つ。しかし、リモート・サーバが、要求側は保留メモリ・セグメントを解放する動作またはアクションをリクエストする権限を与えられている、または許可されていると判断すると、リモート・サーバはステップ４２０で、リクエストされた動作またはアクションを実施して保留メモリ・セグメントを解放する。要求側はステップ４３２で、保留メモリ・セグメントが解放されたかどうかを確認する。保留メモリ・セグメントは解放されていないと要求側が判断すると、要求側は所定間隔待ってから保留メモリ・セグメントが解放されたかどうかを確認する。しかし、保留メモリ・セグメントは解放されたと要求側が判断すると、要求側は、リモート・サーバを復旧またはフリーズ解除するために必要な修正アクションを開始し、ステップ４３４でプロセスを終える。保留メモリ・セグメントが解放されると、例えば、システム管理者はテルネットまたはＳＳＨを介して遠隔ログインし、メモリ消費の原因となったプロセス／アプリケーションを終了させること、またはスワップ領域サイズを大きくすることなどの修正アクションを開始できるようになる。したがって、要求側、例えば制御サーバは、「メモリ不足」状況を識別して保留メモリ・セグメントの解放時に必要な任意の修正アクションを自動的に開始し、応答のないサーバの問題を修正することができる。例えば、制御サーバは、リモート・サーバにおいて自動回復プログラムの実行を開始してリモート・サーバを復旧するように構成されていれば、そうすることができる。
【００１８】
さらに別の実施形態において、本発明は、メモリ制約が原因で応答していないリモート・サーバを復旧するコンピュータ・プログラム製品を提供する。コンピュータ・プログラム製品は、コンピュータ可読媒体と、リモート・サーバ上に存在するメモリの保留メモリ・セグメントを割り当てる第１プログラム命令と、リモート・サーバ上に存在するメモリに保留メモリ・セグメント・プログラムを固定する第２プログラム命令と、メモリ制約が生じたときのリクエスト・パケットをリスニングするべく固定されている保留メモリ・セグメント・プログラムを継続的に実行する第３プログラム命令と、リモート・サーバ上でメモリ制約が生じたときに受信されるリクエスト・パケットに応答して保留メモリ・セグメントを解放する第４プログラム命令とを含む。コンピュータ・プログラム製品は、メモリ制約に関してリモート・サーバ上に存在するメモリを定期的に確認してメモリ制約が見つかるとリクエスト・パケットをリモート・サーバへ送信する第５プログラム命令をさらに含む。第１、第２、第３、第４および第５プログラム命令はそれぞれ、媒体上に格納されていることが好ましい。好適な実施形態では、第３プログラム命令は、リクエスト・パケットを所定のＴＣＰ／ＩＰポートでリスニングして、保留メモリ・セグメントを解放するための、ＴＣＰ／ＩＰパケットを含んだリクエスト・パケットを受信する命令をさらに含む。第４プログラム命令は、受信されたリクエストＴＣＰ／ＩＰパケットを検証し、受信されたＴＣＰ／ＩＰパケットを識別する命令をさらに含むことが好ましい。さらに、第４プログラム命令は、受信されたリクエストＴＣＰ／ＩＰパケットがリモート・サーバ上の許容される動作に対応するかどうかを確認する命令をさらに含むことが好ましい。第５プログラム命令は、保留メモリ・セグメントが解放され次第リモート・サーバにおいて修正アクションを実施する命令をさらに含むことが好ましい。
【００１９】
好適な実施形態では、コンピュータ可読媒体は、コンピュータ・ストレージ媒体およびネットワーク媒体両方を含む。コンピュータ・ストレージ媒体は、半導体メモリ、磁気ディスク、磁気テープ、コンパクト・ディスク（ＣＤ：ｃｏｍｐａｃｔ  ｄｉｓｃ）、読み出し専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）またはデジタル・ビデオ・ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｃ）あるいはそれらすべてを含み、ネットワーク媒体は、ケーブル、ルータ、スイッチまたはネットワーク・アダプタ・カードあるいはそれらすべてなど、ネットワーク上の伝送デバイスを含むことが好ましい。したがって、本発明は、例えばストレージ媒体に格納されるか、コンピュータにロードされるかもしくはコンピュータによって実行されるかあるいはその両方か、または、電気配線もしくは電気ケーブル上で、光ファイバを介してもしくは電磁放射を介してなど何らかの伝送媒体上で伝送されるかに関わらず、コンピュータ・プログラム・コードの形式で具現化されることも可能である。このコンピュータ・プログラム・コードがコンピュータにロードされこれによって実行されると、コンピュータは本発明を実践する装置になる。汎用マイクロプロセッサに実装されると、コンピュータ・プログラム・コード・セグメントは、マイクロプロセッサを設定して規定の論理回路を作成する。当業者には当然のことながら、システムのプロセッサによって実行される一連のプログラマブル命令は、上記の発明のシステムおよび方法のプロセス・ステップを実施するために必要である。
【００２０】
コンピュータ・プログラム製品は、コンピュータが使える媒体またはコンピュータ可読媒体からアクセス可能な形式であり、コンピュータもしくは任意の命令実行システムによって、またはこれらと関連して使用されるプログラム・コードもしくは命令を提供することが好ましい。この説明上、コンピュータが使える媒体またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスによって、またはこれらと関連して使用されるコードもしくは命令を、含むこと、格納すること、伝達すること、伝播することもしくは運ぶことができる、任意の装置とすることができる。媒体は、電子、磁気、光学、電磁気、赤外線もしくは半導体のシステム（または装置もしくはデバイス）または伝播媒体を含むことができることが好ましい。特に、コンピュータ可読媒体は、半導体メモリもしくは固体メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み出し専用メモリ（ＲＯＭ）、リジッド磁気ディスク（ｒｉｇｉｄ  ｍａｇｎｅｔｉｃ  ｄｉｓｋ）および光ディスクを含むことができるとより好ましい。さらに、光ディスクの例には、コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ−ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、コンパクト・ディスク読み書き（ＣＤ−Ｒ／Ｗ：ｃｏｍｐａｃｔ  ｄｉｓｃ−ｒｅａｄ／ｗｒｉｔｅ）およびデジタル・バーサタイル／ビデオ・ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ／ｖｉｄｅｏ  ｄｉｓｃ）が挙げられる。さらに、ネットワーク媒体は、ケーブル、ルータ、スイッチまたはネットワーク・アダプタ・カードあるいはそれらすべてなど、ネットワーク上の伝送デバイスを含むことができることが好ましい。
【００２１】
図５を参照すると、参照番号５００は、概略ブロック・システム図であり、メモリ制約が原因で応答していないリモート・サーバを復旧するためのコンピュータ・プログラム製品を例示している。描かれているように、システム５００はコンピュータ・インフラストラクチャ５０２を含んでおり、これは、安全な環境（すなわち、アクセス制御が実施されている）において維持される任意の種類のコンピュータ・アーキテクチャを表すことを意図したものである。コンピュータ・インフラストラクチャ５０２は、本発明を実装するための様々な種類のコンピュータ・インフラストラクチャの実例でしかない。図のように、インフラストラクチャ５０２は、通常はサーバまたは同様のもの、好ましくはリモート・サーバを表すコンピューティング・システム５０４を含み、さらに、コンピューティング・システム５３０、５４０、５４２および５４４を含む。なお、当然のことながら、図示されてはいないが、他のハードウェアおよびソフトウェア・コンポーネント（例えば、追加のコンピュータ・システム、ルータ、ファイアウォールなど）がインフラストラクチャ５０２に含まれることも可能である。一般に、制御サーバ５３０におけるユーザまたはシステム管理者は、メモリ制約が原因で応答していないリモート・サーバを復旧するためにインフラストラクチャ５０２と接続する。さらに、１人以上の他のユーザまたはシステム管理者（図５に示されていない）は、インフラストラクチャ５０２と接続して、メモリ制約が原因で応答していないリモート・サーバを復旧できる。あるいは、システム管理者５３０は、クライアント５４０、５４２および５４４などのクライアントにサービスを提供するサービス・プロバイダであってもよく、この場合、システム管理者５３０は、インフラストラクチャ５０２、好ましくは安全な環境を提供しているインフラストラクチャ５０２と接続して、メモリ制約が原因で応答していないリモート・サーバを復旧するサービスを提供できる。サービス・プロバイダ５３０は、手数料方式で、または予約制で、クライアントにサービスを提供することがより好ましい。一般に、それぞれのパーティ５３０、５４０、５４２および５４４は、インフラストラクチャ５０２に直接、またはコンピュータ化されたデバイス（例えば、パーソナル・コンピュータ、ラップトップ、ハンドヘルド・デバイスなど）に搭載されているインターフェース（例えば、ウェブ・ブラウザ）を介して、ネットワーク上でアクセス可能である。後者の場合、ネットワークは、インターネット、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、仮想プライベート・ネットワーク（ＶＰＮ：ｖｉｒｔｕａｌ  ｐｒｉｖａｔｅ  ｎｅｔｗｏｒｋ）など、任意の種類のネットワークとすることができる。いずれにしても、インフラストラクチャ５０２との通信は、直接ハードワイヤード接続（例えばシリアル・ポート）を介して、またはアドレス指定可能な接続を介して生じ得、アドレス指定可能な接続は、ワイヤ・ラインまたは無線伝送方法あるいはその両方の任意の組み合わせを利用するとよい。さらに、トークン・リング、イーサネット（登録商標）、ＷｉＦｉまたはその他従来の通信規格など、従来のネットワーク接続性が使用されることもあり得る。さらに、接続性は、従来のＴＣＰ／ＩＰソケットに基づくプロトコルによって提供されることも考えられる。
【００２２】
コンピューティング・システムまたはリモート・サーバ５０４が、処理ユニット（ＣＰＵ）５０６、メモリ５１２、バス５１０、および入出力（Ｉ／Ｏ：ｉｎｐｕｔ／ｏｕｔｐｕｔ）インターフェース５０８を含むことが示されている。さらに、コンピューティング・システム５０４は、外部のＩ／Ｏデバイス／リソース５２４およびストレージ・システム５２２と通信している状態で示されている。概して、処理ユニット５０６は、保留メモリ・セグメント・プログラム５１４などのコンピュータ・プログラム・コードもしくはスクリプト、および自動回復プログラム５１８を実行する。これらは、メモリ５１２に格納されていることが好ましく、あるいは外部ストレージ・システム５２２に格納されることも可能である。処理ユニット５０６は、コンピュータ・プログラム・コードを実行している間に、メモリ５１２、ストレージ・システム５２２、またはＩ／Ｏインターフェース５０８あるいはこれらすべてと相互に、データの読み取りまたは書き込みあるいはその両方を行うことができる。メモリ５１２は、保留メモリ・セグメント５１６をさらに含み、これは、認証が済み次第保留メモリ・セグメント・プログラム５１４を実行することによって解放される。バス５１０は、コンピューティング・システム５０４内の各コンポーネント間に通信リンクを提供する。外部デバイス５２４は、ユーザがコンピューティング・システム５０４と情報をやり取りできるようにする任意のデバイス（例えば、キーボード、ポインティング・デバイス、ディスプレイなど）、または、コンピューティング・システム５０４が１つ以上の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（例えばネットワーク・カード、モデムなど）、あるいはその両方を含むことができる。さらに、コンピューティング・システム５０４は、ハードウェアの多数の組み合わせを含むことができる、考えられる種々のコンピュータ・システムの典型でしかない。この点で、その他の実施形態では、コンピューティング・システム５０４は、特定の機能を実施するハードウェアまたはコンピュータ・プログラム・コードあるいはその両方を含む任意の特定目的のコンピュータ製品、特定目的および汎用のハードウェア／ソフトウェアの組み合わせを含むコンピュータ製品、または同様のものなどを含むことができる。いずれの場合にも、プログラム・コードおよびハードウェアは、それぞれ標準的なプログラミングおよびエンジニアリングの技術を用いて作成できる。例えば、処理ユニット５０６は、単一の処理ユニットを含んでもよく、または、例えばクライアント上およびサーバ上など、１つ以上の位置にある１つ以上の処理ユニットにわたり分散されてもよい。同様に、リモート・サーバ５０４上のメモリ５１２またはストレージ・システム５２２あるいはその両方は、１つ以上の物理的な位置に存在する様々な種類のデータ・ストレージまたは伝送媒体あるいはその両方の任意の組み合わせを含むことができる。さらに、Ｉ／Ｏインターフェース５０８は、１つ以上の外部デバイス５２４と情報をやり取りする任意のシステムを含むことができる。さらに、当然のことながら、１つ以上の追加のコンポーネント（例えば、システム・ソフトウェア、数学コプロセッシング・ユニット（ｍａｔｈ  ｃｏ−ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）など――図５には示されていない）がコンピューティング・システム５０４に含まれることが可能である。さらに、コンピューティング・システム５０４がハンドヘルド・デバイスまたは同様のものなどを含む場合、当然のことながら、例えばディスプレイなどの１つ以上の外部デバイスが、コンピューティング・システム５０４に関して示されているように外部にではなく、コンピューティング・システム内に含まれ得る。ストレージ・システム５２２は、本発明に基づいて情報のストレージを提供できる任意の種類のデータベース・システムとすることができる。この点で、ストレージ・システム５２２は、磁気ディスク・ドライブまたは光ディスク・ドライブなどの１つ以上のストレージ・デバイスを含むこともあり得る。別の実施形態では、ストレージ・システム５２２は、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）またはストレージ・エリア・ネットワーク（ＳＡＮ：ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）（図示せず）のいたるところに分散されたデータを含む。図示はしていないが、キャッシュ・メモリ、通信システム、システム・ソフトウェアなど追加のコンポーネントが、コンピューティング・システム５０４に組み込まれてもよい。
【００２３】
したがって、本発明はさらに、例えば、ストレージ媒体に格納されているか、コンピュータへのロードもしくはコンピュータによる実行あるいはその両方がされるか、または、電気配線もしくは電気ケーブル上で、光ファイバによってもしくは電磁放射を介してなど、何らかの伝送媒体上で伝送されるかに関わらず、コンピュータ・プログラム・コードの形式で具現化することができ、このコンピュータ・プログラム・コードがコンピュータにロードされそれにより実行されると、コンピュータは本発明を実践する装置になる。汎用マイクロプロセッサに実装されると、コンピュータ・プログラム・コード・セグメントは、マイクロプロセッサを設定して規定の論理回路を作成する。当業者には当然のことながら、システムのプロセッサにより実行される一連のプログラマブル命令は、上記の発明のシステムおよび方法のプロセス・ステップを実施するために必要とされる。
【００２４】
本発明の特定の実施形態に関する前述の説明が、例示および説明することを目的として提示されてきた。それらが網羅的であることは意図されておらず、本発明を開示された形式に厳密に制限することも意図されておらず、上記の教示を踏まえて多数の変更および変形物が考えられることは明らかである。実施形態は、本発明の原理およびその実際の適用を最もよく説明するために選択および記載されており、その結果、他の当業者が、意図する特定の用途に適するように様々な変更を加えて、本発明および様々な実施形態を最良の形で利用できるようになる。本発明の範囲は、本願明細書に添付されている特許請求の範囲およびそれらの等価物により定義されることが意図されている。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に従った、非応答コンピューティング・システムを遠隔復旧する装置のネットワーク構成を例示する。
【図２】本発明の実施形態に従った、リモート・サーバを復旧するよう構成されたリモート・サーバの一実施形態を例示するブロック図である。
【図３】本発明の実施形態に従った、非応答コンピューティング・システムを遠隔復旧する方法を描くフローチャートの実例である。
【図４】本発明の実施形態に従った、非応答コンピューティング・システムを遠隔復旧する方法を描くフローチャートの実例である。
【図５】本発明の実施形態に従った、具体化されたまたはビジネスの規則に対する変更をテストするコンピュータ・プログラム製品を例示する概略ブロック・システム図である。
【図１】
2009523283.tif 000003
【図２】
2009523283.tif 000004
【図３】
2009523283.tif 000005
【図４】
2009523283.tif 000006
【図５】
2009523283.tif 000007
【手続補正書】
【提出日】平成21年3月18日(2009.3.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリ制約が原因で応答していないリモート・サーバを復旧する方法であって、
ネットワーク通信チャネルに接続されているリモート・サーバを準備するステップと、
前記リモート・サーバ内のメモリの中に割り当てられている保留メモリ・セグメントをメモリ制約が生じたときに制御するために、保留メモリ・セグメント・プログラムを前記リモート・サーバ内の前記メモリに固定するステップであって、上記の固定の結果として前記保留メモリ・セグメント・プログラムは、メモリ内に常に存在するようになり、移動不可とマークされて他のプログラムが前記保留メモリ・セグメント・プログラムとスペースを交換できないようになる、前記ステップと、
割り当てられている前記保留メモリ・セグメントを解放するためのリクエスト・パケットをリスニングするために、前記保留メモリ・セグメント・プログラムを継続的に実行するステップと、
前記リモート・サーバ内の前記メモリの中の前記保留メモリ・セグメントを、前記リクエスト・パケットの受信に応答して解放するステップと、
前記保留メモリ・セグメントが解放されたときに、前記リモート・サーバを復旧するために前記リモート・サーバにおいて任意の修正アクションを実施するステップと、
を含む方法。
【請求項２】
前記固定するステップは、
前記保留メモリ・セグメントを前記リモート・サーバ内の前記メモリの中に割り当てるステップ
を含む、請求項１に記載の方法。
【請求項３】
前記継続的に実行するステップは、
前記ネットワーク通信チャネルを介して、前記リクエスト・パケットを所定のＴＣＰ／ＩＰポートでリスニングするステップと、
前記ネットワーク通信チャネルを介して前記リクエスト・パケットを受信するステップと、
を含む、請求項２に記載の方法。
【請求項４】
前記解放するステップは、
受信された前記リクエスト・パケットを検証するステップと、
受信された前記リクエスト・パケットを識別するステップと、
受信された前記リクエスト・パケットが、前記リモート・サーバ上で許容される動作に対応するかどうかを確認するステップと、
を含む、請求項３に記載の方法。
【請求項５】
前記実施するステップは、
前記メモリ制約を検出するために前記リモート・サーバ上の前記メモリを定期的に確認するステップと、
前記メモリ制約が検出されると、前記保留メモリ・セグメントを解放するための前記リクエスト・パケットを送信するステップと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記実施するステップは、
前記保留メモリ・セグメントが解放されたときに、前記リモート・サーバにおいて前記任意の修正アクションを実施するために前記リモート・サーバ上で自動回復プログラムを実行するステップ
をさらに含む、請求項５に記載の方法。
【請求項７】
先行するいずれかの方法の請求項に記載の方法の前記ステップをすべて遂行するようになっている手段を含むシステム。
【請求項８】
コンピュータ・システム上で実行されると、先行するいずれかの方法の請求項に記載の方法の前記ステップをすべて遂行する命令を含む、コンピュータ・プログラム。
【国際調査報告】
2009523283.tif 000008
2009523283.tif 000009
2009523283.tif 000010