(57)【特許請求の範囲】
【請求項１】
ウェブベース・アプリケーションの分散オペレーティングシステムをサポートする複数のサーバを含むコンピュータネットワークにおいて、システムダウンタイムを自動的に管理するシステムであって、
コンピュータ実行可能命令を記憶するメモリと、
前記メモリに機能的に結合されたプロセッサと
を備え、
前記コンピュータ実行可能命令は、前記プロセッサによって実行されると、前記システムに、
前記コンピュータネットワークの少なくとも１つのウェブベース・アプリケーションに関してダウンタイムをスケジュールするイベントを、アプリケーションサーバにおいて作成することであって、前記イベントを作成する際に、前記イベントの優先度レベルを特定する優先度データが受信され、前記優先度レベルは、前記ウェブベース・アプリケーションのユーザに、前記スケジュールされたダウンタイムをどのように通知するかを決定する、ことと、
前記スケジュールされたダウンタイムより前に、ウェブサーバ上の前記少なくとも１つのウェブベース・アプリケーションへのリクエストを自動的に停止することと、
前記少なくとも１つのウェブベース・アプリケーションへのリクエストを自動的にリダイレクトすることであって、前記リダイレクトする際に、前記少なくとも１つのウェブベース・アプリケーションの読み／書きバージョンから前記少なくとも１つのウェブベース・アプリケーションの読み取り専用バージョンへの切り替えが行われ、前記読み／書きバージョンのアップグレード時に前記読み取り専用バージョンへの切り替えが行われ、前記少なくとも１つのウェブベース・アプリケーションの前記読み／書きバージョンおよび前記読み取り専用バージョンは、単一のＵＲＬに関連付けられる、ことと、
を実行させることを特徴とするシステム。
【請求項２】
前記スケジュールされたダウンタイムより前に、前記少なくとも１つのウェブベース・アプリケーションのユーザに、ダウンタイム通知メッセージを自動的に通信することをさらに実行させることを特徴とする請求項１に記載のシステム。
【請求項３】
前記ダウンタイム通知メッセージは、パーソナル・インフォメーション・マネジャーのカレンダ・アイテムを含むことを特徴とする請求項２に記載のシステム。
【請求項４】
前記ダウンタイム通知メッセージは、電子メール（Ｅメール）メッセージを含むことを特徴とする請求項２に記載のシステム。
【請求項５】
前記イベントを作成する際に、ダウンタイムの開始をスケジュールされた日付と時刻を含む第１のデータを受信することと、前記ダウンタイムに関連した停止ウインドウの長さを含む第２のデータを受信することと、前記ダウンタイムの理由を含む第３のデータを受信することと、前記ダウンタイムに関連する追加情報を得るための連絡先を含む第４のデータを受信することのうち、少なくとも１つを行うことをさらに実行させることを特徴とする請求項１に記載のシステム。
【請求項６】
前記少なくとも１つのウェブベース・アプリケーションは、ユーザアカウントのパスワードを更新するためのアプリケーションであることを特徴とする請求項１に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
多くのコンピュータネットワークは、単一のウェブベースのインタフェースを介して、エンドユーザにリソースを提供する、多数のコンピュータによって共有されるインフラストラクチャを含む。これらのコンピュータネットワークは、一般的に、サーバファームを単一の論理ユニットとして制御する分散オペレーティングシステム・アプリケーションを含む。サーバファームは、一般的には、処理状態を把握しないステートレスなウェブフロントエンド（すなわち、ウェブサーバ）、アプリケーションサーバ、サーバが共有するデータベースバックエンドを含む。分散オペレーティングシステムによって、サーバリソース（すなわち、データ）は、１つまたは複数のウェブサイトとして、エンドユーザの前に現れることが可能になる。
【０００２】
しかしながら、分散オペレーティングシステム・アプリケーションを利用するコンピュータネットワークには、多くの欠点がある。その欠点の１つは、システムのメンテナンスやアップグレードが必要なとき、コンピュータネットワーク全体をオフラインにする必要があるかもしれない点である。結果として、メンテナンスやアップグレードが完了するまで、ユーザは、サーバリソースにアクセスするためのウェブサイトに、アクセスできない。ダウンタイムすなわち停止時間の間、影響を受けるウェブサイトのユーザを、他のウェブサイトに一時的にリダイレクト（出力先変更）してもよいが、現在のところ、リダイレクトは、完全な手作業である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
詳細には、リダイレクトを行うためには、一時的なウェブサイトのホストコンピュータを、手作業で構成する必要があり、ドメイン名システム（ＤＮＳ）の変更も手作業で行う必要がある。しかしながら、ＤＮＳの変更は、技術的な専門知識を必要とすることが多く、システムアドミニストレータの知識の範囲を超えることもあり、その結果、さらに人員が必要となる。結果として、手作業でのリダイレクトは、時間、人員、資源という点で、高くつくことが多い。これらのことなどを考慮して、本発明の様々な実施形態が考案された。
【課題を解決するための手段】
【０００４】
本概要は、発明を実施するための形態でさらに説明する主題の一部を簡潔に紹介するためのものである。本概要は、発明の主題の主要な特徴または本質的な特徴を特定しようとするものではなく、また、発明の主題の範囲を限定することを意図してもいない。
【０００５】
コンピュータネットワークのシステムダウンタイムを自動的に管理する実施形態を記載する。１つの実施形態では、アプリケーションサーバにおいて、コンピュータネットワークのウェブサーバのシステムダウンタイム期間をスケジュールするイベントを作成する。スケジュールされたダウンタイムが発生すると、ネットワークサーバへのトラフィックを管理しているネットワーク負荷分散装置から、自動的にそのウェブサーバが取り除かれ、ダウンタイム通知メッセージを自動的に伝達する。ダウンタイム通知メッセージは、ウェブサーバが停止して、何らかの予定のメンテナンスに備えていることを、システムアドミニストレータに伝えてもよい。別の実施形態では、コンピュータネットワークにおける、ウェブサイトなどのウェブベース・アプリケーションのダウンタイムをスケジュールするイベントを作成してもよい。スケジュールされたダウンタイムに先立って、ウェブベース・アプリケーションへのリクエストを、自動的に停止し、指定したロケーションにリダイレクトしてもよい。別の実施形態では、ウェブサーバのオペレーションは、障害状態の存在を検出するために自動的にモニタされ、１つまたは複数のウェブサーバに障害状態があると、障害のあるウェブサーバを停止して、停止したウェブサーバへのリクエストを自動的に他のサーバにリダイレクトするという決定をしてもよい。
【０００６】
これらの特徴や利点およびその他の特徴や利点は、下記の発明を実施するための形態やそれに付随する図面から明らかとなる。上述した一般的な記載と下記の発明を実施するための形態は例示的なものであり、特許を請求する発明を制限するものではない。
【図面の簡単な説明】
【０００７】
【図１】様々な実施形態に応じて、コンピュータネットワークのシステムダウンタイムを自動的に管理するように構成されたシステムのネットワークアーキテクチャの図である。
【図２】本明細書に記載された様々な実施形態を実装するコンピュータ環境を示すブロック図である。
【図３】１実施形態によるコンピュータネットワークのシステムダウンタイムを自動的に管理するルーチンを示すフロー図である。
【図４】別の実施形態によるコンピュータネットワークのシステムダウンタイムを自動的に管理するルーチンを示すフロー図である。
【図５】別の実施形態によるコンピュータネットワークのシステムダウンタイムを自動的に管理するルーチンを示すフロー図である。
【発明を実施するための形態】
【０００８】
コンピュータネットワークのシステムダウンタイムを自動的に管理する実施形態を記載する。１つの実施形態では、アプリケーションサーバにおいて、コンピュータネットワークのウェブサーバのシステムダウンタイム期間をスケジュールするイベントを作成する。スケジュールされたダウンタイムが発生すると、そのウェブサーバは、ネットワークサーバへのトラフィックを管理するネットワーク負荷分散装置から自動的に取り除かれ、ダウンタイム通知メッセージが、自動的に伝えられる。ダウンタイム通知メッセージは、ウェブサーバは停止しており、何らかの予定のメンテナンスに備えている旨をシステムアドミニストレータに伝えてもよい。別の実施形態では、コンピュータネットワークにおける、ウェブサイトなどのウェブベース・アプリケーションのダウンタイムをスケジュールするイベントを作成してもよい。スケジュールしたダウンタイムに先立って、ウェブベース・アプリケーションへのリクエストを自動的に停止し、指定したロケーションにリダイレクトしてもよい。別の実施形態では、ウェブサーバのオペレーションは、障害状態の存在を検出するために自動的にモニタされ、１つまたは複数のウェブサーバに障害状態が存在した場合、障害のあるウェブサーバを停止と決定して、停止したウェブサーバへのリクエストを、自動的に別のサーバにリダイレクトしてもよい。
【０００９】
図面を参照して、様々な例示的な実施形態について記載する。なお、図面内の同じ番号は同じ要素を表すものとする。図１は、自動的に共有のリソースを対象とするように構成されたコンピュータネットワーク１００のネットワークアーキテクチャの図である。１つの実施形態においては、コンピュータネットワーク１００の様々なコンポーネントは、ワシントン州レドモンドにあるマイクロソフト社が開発したＳＨＡＲＥＰＯＩＮＴサービステクノロジーのオペレーティングシステムなどの、ウェブベース・アプリケーション用分散オペレーティングシステムを使って構成してもよい。当業者には周知のように、ＳＨＡＲＥＰＯＩＮＴサービステクノロジーによって、ユーザは、協調環境を、作成、維持、公開して、情報を共有することができる。ＳＨＡＲＥＰＯＩＮＴサービステクノロジーを用いると、ユーザまたは組織は、１つまたは複数のウェブサイトを作成して、そのウェブサイトに関連付けられた他のユーザに情報（例えば、ウェブサーバやウェブフォルダ等にある書類）を提供し、共有することができる。本明細書に記載する実施形態はＳＨＡＲＥＰＯＩＮＴサービステクノロジーに限定されるものではなく、他の開発者および／または他の製造業者の協調サービス技術を利用してもよいことを理解されたい。コンピュータネットワーク１００およびそのコンポーネントは、他のコンピュータ装置、通信装置、および／または他のシステムと通信する機能を備え、本明細書に記載の実施形態と実施例に限定されない。
【００１０】
図１に示すように、コンピュータネットワーク１００は、バックエンドサーバ１０１、アプリケーションサーバ１０２Ａ、１０２Ｂ、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃ、ドメイン名システム（ＤＮＳ）サーバ１１４、ネットワーク負荷分散装置１１６、およびクライアントコンピュータ１５０、１５２を含むが、それらに限定されない。１つの実施形態では、バックエンドサーバ１０１、アプリケーションサーバ１０２Ａ、１０２Ｂ、およびウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃは、ＳＨＡＲＥＰＯＩＮＴサービステクノロジーを利用して、クライアントコンピュータ１５０、１５２と情報を共有する協調環境を作成するように構成してもよい。特に、１つの実施形態によると、アプリケーションサーバ１０２Ａ、１０２Ｂは、ＷＩＮＤＯＷＳ  ＳＨＡＲＥＰＯＩＮＴ  ＳＥＲＶＩＣＥＳテクノロジーを組み込んだＷＩＮＤＯＷＳサーバオペレーティングシステムや、アプリケーションプログラムＯＦＦＩＣＥスイートなどの、クライアントコンピュータの生産性アプリケーションプログラム（例えば、ワードプロセッシング・アプリケーション、個人情報管理アプリケーション、スプレッドシート・アプリケーション）と協調するＯＦＦＩＣＥ  ＳＨＡＲＥＰＯＩＮＴ  ＳＥＲＶＥＲアプリケーションプログラムを実行するように構成してもよい。上述のオペレーティングシステム、テクノロジー、アプリケーションプログラムは、ワシントン州レドモンドにあるＭＩＣＲＯＳＯＦＴ社が開発したものである。しかしながら、他の製造業者のオペレーティングシステムやアプリケーションプログラムを使用して、本明細書に記載された技術的特徴の様々な態様を実現してもよいことを理解されたい。
【００１１】
バックエンドサーバ１０１は、（ファイヤウォール１１０を介して）アプリケーションサーバ１０２Ａ、１０２Ｂ、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃと通信する。ある実施形態によると、バックエンドサーバ１０１は、コンピュータネットワーク１００で利用できるデータを記憶し、アプリケーションサーバ１０２Ａ、１０２Ｂ、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃと共有する、データベース問い合わせ言語（ＳＱＬ）データベースを備えてもよい。
【００１２】
アプリケーションサーバ１０２Ａ、１０２Ｂは、（ファイヤウォール１１０を介して）バックエンドサーバ１０１、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃと通信する。一般には、アプリケーションサーバ１０２Ａ、１０２Ｂは、検索用インデックス作成オペレーションの実行や、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃがホストするウェブサイトに公開されているアクティブディレクトリの情報の伝達に利用してもよい。アプリケーションサーバ１０２Ａ、１０２Ｂは、ダウンタイム管理アプリケーション１０４Ａ、１０４Ｂやイベントデータ１０６Ａ、１０６Ｂを備えてもよいが、それらに限定されない。１つの実施形態によると、ダウンタイム管理アプリケーション１０４Ａ、１０４Ｂは、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃのダウンタイムと、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃがホストするウェブベース・アプリケーションのダウンタイムと、をスケジュールするイベントデータ１０６Ａ、１０６Ｂ（すなわち、イベント）を作成するように構成してもよい。
【００１３】
１つの実施形態においては、ダウンタイム管理アプリケーション１０４Ａ、１０４Ｂは、ネットワーク管理者が、グラフィカルユーザインタフェースにイベントデータ１０６Ａ、１０６Ｂを入力する選択をすることができるダウンタイム管理ハイパーリンクを備える中央管理ウェブサイトを生成するように構成してもよい。イベントデータ１０６Ａ、１０６Ｂは、スケジュールされたダウンタイムの日付、停止ウインドウ、ダウンタイムメッセージ、連絡先、スケジュールされたダウンタイムに関する優先度、停止した（すなわち、オフラインの）ウェブサーバおよび／またはウェブベース・アプリケーションへサーバリクエストをリダイレクトするためのリダイレクト先ロケーション（ＵＲＬ）を含んでよいが、これらに限定されない。例えば、様々な実施形態によると、ダウンタイム管理アプリケーション１０４Ａ、１０４Ｂのうち１つを用いて、ネットワーク管理者（または他のユーザ）が、サーバソフトウェアのアップグレード、サーバのメンテナンス、ソフトウェアパッチのインストール、ユーザアカウントのパスワードの更新などのために、所定の停止時間の間、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃのうちの１つをオフラインにするようスケジュールし、スケジュールされたダウンタイムの理由、スケジュールされたダウンタイムに関して追加情報を得るための連絡先などの、ダウンタイム通知メッセージを、１つまたは複数のクライアントコンピュータにスケジュールされたダウンタイムに先立って送信し、かつ、スケジュールされたダウンタイムの間、ユーザを代わりのサーバまたはＵＲＬにリダイレクトするイベントを作成してもよい。ある実施形態によると、ダウンタイム管理アプリケーション１０４Ａ、１０４Ｂは、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃのオペレーションに関して、システムの健康状態をモニタするように構成してもよい。例えば、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃは、障害状態（例えば、ウェブサーバが、バックエンドデータベースに接続できない、ウェブサーバのＣＰＵの負荷が重過ぎる、ウェブサーバへのリクエストが最大閾値に達している等）の存在をモニタすることができる。そして、障害状態が存在すれば、障害のあるウェブサーバへのリクエストをコンピュータネットワーク１００内の別のサーバにリダイレクトする。コンピュータネットワーク１００内のシステムダウンタイムを管理する際に、ダウンタイム管理アプリケーション１０４Ａ、１０４Ｂが実行し得る様々なオペレーションを、図３〜図５を参照して下記に詳述する。
【００１４】
ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃは、ファイヤウォール１１０を介して、バックエンドサーバ１０１、アプリケーションサーバ１０２Ａ、１０２Ｂと通信する。また、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃは、ファイヤウォール１１８を介して、ＤＮＳサーバ１１４、ネットワーク負荷分散装置１１６、クライアントコンピュータ１５０、１５２とも通信する。ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃは、ウェブページ１２５Ａ、１２５Ｂ、ウェブベース・アプリケーション１２７Ａ、１２７Ｂを含んでもよいが、それらに限定されない。ウェブページ１２５Ａ、１２５Ｂは、クライアントコンピュータ１５０、１５２がコンピュータネットワーク１００の共有のリソースにアクセスするために利用するホストウェブサイトを備えてもよい。例えば、ウェブページ１２５Ａ、１２５Ｂは、情報技術（ＩＴ）ウェブサイト、人材ウェブサイト、法律ウェブサイトなど、組織の種々の部門が利用する複数のウェブサイトを備えてもよい。
【００１５】
ＤＮＳサーバ１１４は、ファイヤウォール１１８を介したネットワークバス１２０を通じてクライアントコンピュータ１５０、１５２と通信する、また、ドメイン名（例えば、ｗｗｗ．ＩＴｗｅｂ．ｃｏｍ）をＩＰアドレス（例えば、１９８．１０５．２３２．４）に翻訳するように構成してもよい。ネットワーク負荷分散装置１１６は、ファイヤウォール１１８を介したネットワークバス１２０を通じてクライアントコンピュータ１５０、１５２と通信する、また、ネットワークトラフィックの負荷が多くのサーバに均等になり、トラフィックを自動的にオペレーショナルサーバに再分配するように構成してもよい。クライアントコンピュータ１５０、１５２は、ファイヤウォール１１８とネットワークバス１２０を通じて、ＤＮＳサーバ１１４、ネットワーク負荷分散装置１１６、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃと通信する。各クライアントコンピュータ１５０、１５２は、１つまたは複数のアプリケーションプログラムを実行可能な、デスクトップ型、ラップトップ型、ハンドヘルド型、タブレット型、およびその他の型の、汎用コンピュータを含んでもよく、各クライアントコンピュータ１５０、１５２を利用して、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃがホストするウェブページ、ウェブサイトおよびウェブベース・アプリケーションにユーザのリクエストを送信してもよい。
【００１６】
［例示的なオペレーティング環境］
ここで図２を参照して、本発明の実施形態を実施し得る適切なコンピュータ環境を、一般的、簡潔に下記に記載する。本発明を、パーソナルコンピュータ上のオペレーティングシステムで実行するプログラムモジュールとともに実行するプログラムモジュールという一般的な状況で記載するが、当業者は、本発明を、他の種類のコンピュータシステムやプログラムモジュールとともに実施してもよいことを理解されるであろう。  
【００１７】
一般に、プログラムモジュールには、特定のタスクを行う、または、抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造、他の種類の構造が含まれる。さらに、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等の、他のコンピュータシステム構成と共に実施してもよいことを、当業者は理解されるであろう。本発明は、通信ネットワークでつながれた遠隔処理装置によってタスクを行う分散コンピュータ環境で実施してもよい。分散コンピュータ環境においては、プログラムモジュールは、ローカル記憶装置においてもよく、遠隔記憶装置においてもよい。
【００１８】
図２を参照して、本発明の実施形態を行うための例示的な動作環境について記載する。図２に示すように、アプリケーションサーバ１０２Ａは、サーバコンピュータを備え、サーバコンピュータは、１つまたは複数のアプリケーションプログラムを実行可能な、デスクトップ型、ラップトップ型、ハンドヘルド型、タブレット型、他の型の汎用コンピュータを含んでもよい。アプリケーションサーバ１０２Ａは、少なくとも１つの中央処理装置（ＣＰＵ）、ランダムアクセスメモリ１８（ＲＡＭ）や読取専用メモリ（ＲＯＭ）２０などのシステムメモリ１２、システムメモリをＣＰＵ８に接続するシステムバス１０を含む。スタートアップ時などにコンピュータ内の要素間の情報伝達を助ける基本ルーチン、を含む基本入出力システムは、ＲＯＭ２０に記憶されている。
【００１９】
アプリケーションサーバ１０２Ａは、さらに、オペレーティングシステム３２と、ダウンタイム管理アプリケーション１０４Ａと、イベントデータ１０６Ａと、サーバアプリケーション１６０と、を記憶する大容量記憶装置１４を備える。様々な実施形態によると、オペレーティングシステム３２は、ＷＩＮＤＯＷＳ  ＳＨＡＲＥＰＯＩＮＴ  ＳＥＲＶＩＣＥＳテクノロジーを組み込んだＷＩＮＤＯＷＳ  ＳＥＲＶＥＲオペレーティングシステムを備えてもよく、サーバアプリケーション１６０は（図１に関して上述したように）ＯＦＦＩＣＥ  ＳＨＡＲＥＰＯＩＮＴ  ＳＥＲＶＥＲアプリケーションプログラムを備えてもよい。大容量記憶装置１４は、ＢＵＳ１０に接続された大容量記憶装置コントローラ（図示せず）を介してＣＰＵ８に接続される。大容量記憶装置１４と同装置に関連するコンピュータ可読媒体は、共有のリソースポータル１１０に不揮発性記憶装置を提供する。本明細書でのコンピュータ可読媒体の記載は、ハードディスクやＣＤ−ＲＯＭドライブなどの大容量記憶装置に関するものであるが、コンピュータ可読媒体は、アプリケーションサーバ１０２Ａがアクセスすなわち利用可能な任意の媒体であってもよいことを、当業者は理解されるであろう。
【００２０】
限定ではなく１例として、コンピュータ可読媒体は、コンピュータ記憶媒体や通信媒体を備えてもよい。コンピュータ記憶媒体は、コンピュータ読取可能な、指示、データ構造、プログラムモジュールまたは他のデータ等の情報、を記憶する任意の方法または技術で実装する、揮発性、不揮発性、取り外し可能、取り外し不可能な、媒体を含む。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリおよびその他の固体メモリ技術と、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）およびその他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置およびその他の磁気記憶装置、または、所望の情報の記憶に使用でき、かつ、アプリケーションサーバ１０２Ａがアクセスできる任意の他の媒体が含まれるが、これらに限定されない。
【００２１】
本発明の様々な実施形態によると、アプリケーションサーバ１０２Ａは、例えば、ローカルネットワークや広域ネットワーク（例えば、インターネット）などのネットワーク４を通して、リモートコンピュータへの論理接続を利用し、ネットワーク環境で動作することができる。アプリケーションサーバ１０２Ａは、バス１０に接続されたネットワークインタフェースユニット１６を通してネットワーク４に接続してもよい。
【００２２】
ネットワークインタフェースユニット１６は、他の種類のネットワークやリモートコンピューティングシステムに接続して利用してもよいことは理解されたい。アプリケーションサーバ１０２Ａは、キーボード、マウス、ペン、スタイラス、指および／または他の手段など、多くの入力タイプからの入力を受信し、処理する入出力コントローラ２２を含んでもよい。同様に、入出力コントローラ２２は、ディスプレイ、プリンタ、他の種類の出力装置に出力してもよい。また、タッチスクリーンは、入力機構および出力機構の機能を果たすことができる。
【００２３】
簡単に上述したように、多くのプログラムおよびデータファイルを、ワシントン州レドモンドにあるＭＩＣＲＯＳＯＦＴ社製ＷＩＮＤＯＷＳ  ＳＥＲＶＥＲオペレーティングシステムなどの、ネットワーク化されたパーソナルコンピュータのオペレーション制御に適したオペレーティングシステム３２を含む、アプリケーションサーバ１０２Ａの大容量記憶装置１４およびＲＡＭ１８に記憶してよい。大容量記憶装置１４およびＲＡＭ１８は、１つまたは複数のプログラムモジュールを記憶してもよい。詳細には、大容量記憶装置１４およびＲＡＭ１８は、ダウンタイム管理アプリケーション１０４Ａ、イベントデータ１０６Ａ、およびサーバアプリケーション１６０を記憶してよい。
【００２４】
図３は、１実施形態による、コンピュータネットワークのシステムダウンタイムを自動的に管理するルーチン３００を示すフロー図である。図３に関する記載では、図１、２のコンポーネントを指しているが、実施形態はそれらに限定されない。本明細書のルーチンに関する記載を読めば、本発明の様々な実施形態の論理オペレーションは、（１）コンピューティングシステムで実行する一連のコンピュータ実装アクトまたはプログラムモジュールとして、および／または（２）コンピューティングシステム内で相互に接続された機械論理回路または機械論理回路モジュールとして実装されることは理解されよう。実装については、本発明を実装するコンピューティングシステムの性能用件に応じて選択する事項である。したがって、本明細書に記載する本発明の実施形態を構成する、図３〜図５に示す論理オペレーションは、オペレーション、構造装置、アクト、またはモジュールなどと、様々に呼ばれる。これらのオペレーション、構造装置、アクト、およびモジュールは、本明細書に添付した特許請求の範囲に記載される本発明の精神および範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊目的のデジタル論理、およびこれらのどの組合せにおいても実装してよいことが、当業者には理解されよう。
【００２５】
ルーチン３００は、オペレーション３０５から始まる。オペレーション３０５において、アプリケーションサーバ１０２Ａまたは１０２Ｂで実行するダウンタイム管理アプリケーション１０４Ａまたは１０４Ｂのいずれか（以下、アプリケーションプログラム１０２Ａとする）を用いて、受信したイベントデータ１０６Ａから、スケジュールされたダウンタイムイベントを作成する。図１に関する記載で述べたように、イベントデータ１０６Ａは、スケジュールされたダウンタイムの日付と、停止ウインドウと、ダウンタイムメッセージと、連絡先と、スケジュールされたダウンタイムに関する優先度と、停止した（すなわちオフラインの）ウェブサーバおよび／またはウェブベース・アプリケーションへのサーバリクエストをリダイレクトするリダイレクト先ロケーション（ＵＲＬ）と、を含んでよい。例えば、ダウンタイムイベントは、サーバのメンテナンスを行うために、または、ソフトウェアパッチのインストールなどのアップグレードを行うために、ウェブサーバ１１２Ｃをオフラインにするように作成することができる。
【００２６】
オペレーション３０５から、ルーチン３００は、オペレーション３１０に続き、オペレーション３１０において、ダウンタイム管理アプリケーション１０４Ａは、ダウンタイムがスケジュールされたウェブサーバ（例えば、ウェブサーバ１１２Ｃ）をネットワーク負荷分散装置１１６から自動的に取り除く。詳細には、ダウンタイム管理アプリケーション１０４Ａは、アプリケーションサーバ１０２Ａに対して、ネットワーク負荷分散装置１１６に自動的に通信するよう指示し、スケジュールされたダウンタイムにクライアントコンピュータ１５０、１５２からのリクエストのルーティングを停止させるように構成してもよい。
【００２７】
オペレーション３１０から、ルーチン３００は、オペレーション３１５に続き、オペレーション３１５において、ダウンタイム管理アプリケーション１０４Ａは、オフラインになるようにスケジュールされたウェブサーバが停止しているということを示すダウンタイム通知メッセージを自動的に伝える。１つの実施形態によると、ダウンタイム通知メッセージは、スケジュールされたダウンタイムの理由（例えば、サーバのメンテナンス）と、停止ウインドウと、追加の情報を得るための連絡先（例えば、電話番号やＥメールアドレス）と、に関する情報を含む。ダウンタイム通知メッセージは、スケジュールされたダウンタイムに、またはそれに先立って通信することができる電子メール（Ｅメール）メッセージまたはパーソナル・インフォメーション・マネージメントのカレンダのアイテムでもよい。別の実施形態によると、ダウンタイム通知メッセージは、スケジュールされたダウンタイムに先立って、停止されるウェブサーバがホストする更新したウェブページを含んでもよい。この実施形態においては、ダウンタイム管理アプリケーション１０４Ａは、「このウェブサイトは、．．．から利用できません」などのダウンタイム通知メッセージを含んでウェブページを更新するよう、スケジュールされたダウンタイムの所定時間前に、停止するウェブサーバに通信するよう構成してもよい。
【００２８】
オペレーション３１５から、ルーチン３００は、オペレーション３２０に続き、オペレーション３２０において、ダウンタイム管理アプリケーション１０４Ａは、スケジュールされたダウンタイム期間の間、オフラインのウェブサーバへのリクエストを指定のＵＲＬに自動的にリダイレクトする。詳細には、ダウンタイム管理アプリケーション１０４Ａは、アプリケーションサーバ１０２Ａに対して、ＤＮＳサーバ１１４に自動的に通信するよう指示して、スケジュールされたダウンタイムの間、クライアントコンピュータ１５０、１５２からのウェブページへのリクエストを、オンラインのウェブサーバ（ウェブサーバ１１２Ｂなど）にリダイレクトさせるように構成することができる。１つの実施形態によると、オンラインのウェブサーバは、オフラインにされたウェブサーバに対して冗長機能（すなわち、同じウェブページおよび／またはウェブベース・アプリケーションをホストする）を有し、そのためスケジュールされたダウンタイム中のユーザエクスペリエンスに影響がないことは理解されよう。スケジュールされたダウンタイムが終了する時に、オフラインのウェブサーバは、ウェブサーバをネットワーク負荷分散装置１１６に再度追加し、以前のＵＲＬにリクエストを再度マップするようＤＮＳサーバ１１４を構成することにより、オンラインに戻してよいことは理解されよう。オペレーション３２０の後、ルーチン３００は終了する。
【００２９】
図４を参照しながら、別の実施形態によるコンピュータネットワークのシステムダウンタイムを自動的に管理するルーチン４００について記載する。図４に記載のオペレーションは、ウェブベースのアプリケーションまたはプロパティがオフラインであって、かつ、ウェブサーバ自体は、ダウンタイムがスケジュールされていない影響を受けないアプリケーションまたはプロパティに対して機能している状態に、適用可能なことを理解されたい。
【００３０】
ルーチン４００は、オペレーション４０５から始まり、オペレーション４０５において、アプリケーションプログラム１０２Ａを利用して、受信したイベントデータ１０６Ａからスケジュールされたダウンタイムイベントを作成する。図１に関する記載で上述したように、イベントデータ１０６Ａは、スケジュールされたダウンタイムの日付と、停止ウインドウと、ダウンタイムメッセージと、連絡先と、スケジュールされたダウンタイムに関する優先度と、停止中の（すなわちオフラインの）ウェブベース・アプリケーションへのサーバリクエストをリダイレクトするためのリダイレクト先ロケーション（ＵＲＬ）と、を含んでよい。例えば、ウェブサーバ１１２Ｃは、組織内のＩＴ部門、人事部門、法務部門用のウェブベース・アプリケーションをホストするように構成できる。ある実施形態によると、ダウンタイムイベントは、（例えば、アプリケーションがＣＰＵリソースを使いすぎた、または、新しいカスタマイズを行ってアプリケーションが不安定になったなどの理由で）人事部門のアプリケーションをオフラインにして、別のウェブサーバに移動できるように構成してもよい。
【００３１】
オペレーション４０５から、ルーチン４００は、オペレーション４１０に続き、オペレーション４１０において、ダウンタイム管理アプリケーション１０４Ａは、スケジュールされたダウンタイムに先立って、ウェブベースのアプリケーションまたはプロパティへのリクエストを自動的に停止する。例えば、ダウンタイム管理アプリケーション１０４Ａは、アプリケーションサーバ１０２Ａに対して、ＤＮＳサーバに自動的に通信するよう指示して、スケジュールされたダウンタイムの３０分前に、クライアントコンピュータ１５０、１５２から入るリクエストをウェブベースのアプリケーションまたはプロパティに伝えるのを停止させるよう構成することができる。
【００３２】
オペレーション４１０から、ルーチン４００は、オペレーション４１５に続く。オペレーション４１５において、ダウンタイム管理アプリケーション１０４Ａは、オフラインになるようにスケジュールしたウェブベースのアプリケーションまたはプロパティが停止していることを示すダウンタイム通知メッセージを自動的に通信する。１つの実施形態によると、ダウンタイム通知メッセージは、スケジュールされたダウンタイムの理由と、停止ウインドウと、追加の情報を得るための連絡先（例えば、電話番号やＥメールアドレス）と、に関する情報を含んでよい。ダウンタイム通知メッセージは、電子メール（Ｅメール）メッセージまたはパーソナル・インフォメーション・マネージメントのカレンダのアイテムであってもよく、それらは、スケジュールされたダウンタイム時またはそれに先立って伝えられてもよい。ダウンタイムイベント作成時に、管理者がダウンタイム通知メッセージの通信期間を指定することも可能で、ダウンタイムイベントは、優先度が高いイベントに関しては、スケジュールされたダウンタイムより所定の時間（例えば、２４時間）より前に、ダウンタイム通知メッセージを自動的に通信するように、さらに優先度（例えば、低・普通・高）分類を割り当ててもよいことは、理解されたい。
【００３３】
オペレーション４１５から、ルーチン４００は、オペレーション４２０に続き、オペレーション４２０において、ダウンタイム管理アプリケーション１０４Ａは、オフラインのウェブベースのアプリケーションまたはプロパティへのリクエストを自動的にリダイレクトする。詳細には、ダウンタイム管理アプリケーション１０４Ａは、アプリケーションサーバ１０２Ａに対して、ＤＮＳサーバ１１４に自動的に通信するよう指示して、スケジュールされたダウンタイムの間、クライアントコンピュータ１５０、１５２から入るウェブベース・アプリケーションへのリクエストをリダイレクトさせるよう構成することができる。１つの実施形態によると、ウェブベース・アプリケーションに入るリクエストを、そのウェブベース・アプリケーションが、現在、利用不可であることを表示した別のウェブページ宛のＵＲＬにリダイレクトしてよい。別の実施形態によると、ウェブベース・アプリケーションへの入来リクエストを、ウェブサーバ上の第２バージョンのウェブベース・アプリケーションにリダイレクトしてよい。詳細には、ウェブベース・アプリケーションをホストするウェブサーバを、ウェブベース・アプリケーションの読み書きバージョンおよび読取専用バージョンの両方を有するように設定してよい。ウェブベース・アプリケーションの読み書きバージョンが（例えば、アップグレードなどのために）オフラインになると、読み書きバージョンのアップグレードが行われている間、ユーザが（データを変更する可能性なしに）データにアクセス可能なように、入ってくるリクエストは、読取専用バージョンに向けてよい。１つの実施形態によると、ウェブベース・アプリケーションの読み書きバージョンおよび読取専用バージョンを、同じＵＲＬに関連付けてよく、そうすることによって、システムアドミニストレータが二重のＵＲＬを管理する必要がなくなることを理解されたい。この実施形態においては、読み書きバージョンおよび読取専用バージョンの両方のアプリケーションをホストするウェブサーバは、リクエストを行っているユーザにどちらのバージョンを示すべきか（例えば、そのバージョンがアップグレード中でなければ、新しいバージョンまたは読み書きバージョンを示す）自動的に検出するように構成してもよい。その後、ルーチン４００は終了する。
【００３４】
図５を参照して、別の実施形態によるコンピュータネットワークのシステムダウンタイムを自動的に管理するルーチン５００を説明する。ルーチン５００は、オペレーション５０５から始まり、オペレーション５０５において、ダウンタイム管理アプリケーションプログラム１０４Ａを利用して、障害状態を検出するためにコンピュータネットワーク１００内のウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃのオペレーションを自動的にモニタする。詳細には、ダウンタイム管理アプリケーション１０４Ａは、システムの健康状態診断機能を持つように構成することができ、システムの健康状態診断機能は、ウェブサーバがウェブサイトのコンテンツデータベースに接続可能かどうかなどのシステム障害を検出するため、定期的に（例えば、１時間毎、１日毎）にウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃをモニタする。
【００３５】
オペレーション５１０において、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃのいずれにも障害状態が存在しないと判断されると、ルーチン５００は、オペレーション５０５に戻り、オペレーション５０５において、ダウンタイム管理アプリケーション１０４Ａは、障害状態を検出するためにウェブサーバのモニタを続ける。オペレーション５１０において、ダウンタイム管理アプリケーション１０４Ａが、ウェブサーバ１１２Ａ、１１２Ｂ、１１２Ｃのいずれかに障害状態が存在すると判断すると、ルーチン５１０はオペレーション５１５に進み、オペレーション５１５において、ダウンタイム管理アプリケーション１０４Ａは、障害のあるウェブサーバを停止（すなわち、オフライン）にする判断をする。
【００３６】
オペレーション５１５から、ルーチン５００は、オペレーション５２０に続き、オペレーション５２０において、ダウンタイム管理アプリケーション１０４Ａは、障害のあるウェブサーバへのリクエストを、コンピュータネットワーク１００内の別のサーバ（ダウンタイム管理アプリケーション１０４Ａで、管理者が前もって指定できる）に自動的にリダイレクトする。詳細には、ダウンタイム管理アプリケーション１０４は、アプリケーションサーバ１０２Ａに対して、ＤＮＳサーバ１１４と自動的に通信するように指示して、クライアントコンピュータ１５０、１５２から入ってくるリクエスト（ウェブベース・アプリケーションやウェブページへのリクエストを含む）を別のサーバにリダイレクトさせるよう構成することができる。
【００３７】
オペレーション５２０から、ルーチン５００は、オペレーション５２５に続く。オペレーション５２５において、ダウンタイム管理アプリケーション１０４Ａは、アプリケーションサーバ１０２Ａに対して、別のサーバに通信して、リクエストがあったウェブページ、ウェブサイトまたはウェブベース・アプリケーションをホストするサーバが停止していることを示すダウンタイム通知メッセージのウェブページを、入ってくるリクエスト全てに対して表示するよう指示する。オペレーション５２５から、ルーチン５００は、オペレーション５３０に続き、オペレーション５３０において、ダウンタイム管理アプリケーション１０４Ａは、現在、予定外のダウンタイムの原因となった障害状態に対処する可能性のある関係者に、ダウンタイム通知メッセージを自動的に通信する。例えば、ダウンタイム管理アプリケーション１０４Ａは、障害の診断に基づいてウェブサーバが停止していると判断すると直ちに、オペレーション技術者に自動的にＥメールを送信するよう構成してもよい。その後、ルーチン５００は、終了する。
【００３８】
様々な例示的な実施形態と共に本発明を記載してきたが、請求項の範囲内で多くの変更が可能であることを当業者は理解されるであろう。従って、本発明の範囲は、上記記載にいささかも制限されることはなく、本発明の範囲は、請求項によってのみ決定される。
【図１】
0005211160.tif 000002
【図２】
0005211160.tif 000003
【図３】
0005211160.tif 000004
【図４】
0005211160.tif 000005
【図５】
0005211160.tif 000006