次に、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
図1は、本発明のルータの概略構成を示すブロック図である。
図1に示すルータ(router)100は、LAN(Local Area Network:ラン)インタフェース10、WAN(Wide Area Network:ワン)インタフェース20、制御部90を備えている。ルータ100は、通信速度が比較的低速なナローバンド(narrow band)で通信ネットワークに接続するルータでもよいし、広帯域のブロードバンド(broadband)で通信ネットワークに接続するブロードバンドルータであってもよい。
LANインタフェース10は、LAN400を介して端末200と接続するインタフェースである。LANインタフェース10は、LAN400からパケット(packet)を受信すると制御部90に送信し、制御部90からパケットを受信するとLAN400に送信する。
WANインタフェース20は、WAN600を介してウェブサーバ300と接続するインタフェースである。WANインタフェース20は、WAN600からパケットを受信すると制御部90に送信し、制御部90からパケットを受信するとWAN600に送信する。
制御部90は、ルータ100全体の動作制御を行う。制御部90の詳細については、図2を参照して後述する。
図1に示すLAN400は、ルータ100と端末200を通信接続するネットワークである。LAN400は、有線LANであってもよいし、無線LANであってもよい。
図1に示す端末200は、パーソナルコンピュータ等の端末装置であり、ウェブサーバ300にアクセスする機能が組み込まれている。
図1に示すWAN600は、公衆回線、専用回線などにより構築される広域ネットワークであり、ルータ100とウェブサーバ300を通信接続する。なお、WAN600とルータ100の接続は、有線接続であってもよいし、無線接続であってもよい。
図1に示すウェブサーバ300は、ウェブサイト310を形成するサーバである。
次に、図1に示すルータの概略動作について説明する。
前提として、端末200とウェブサーバ300の通信プロトコルとしては、HTTP(ハイパーテキスト転送プロトコル)が使用される。HTTPについては後述する。
そして、端末200からウェブサーバ300に対して要求を行う場合は、HTTPリクエストを送信する。HTTPリクエストを受信したウェブサーバ300は、HTTPレスポンスを端末200に対して返送する。ここで、HTTPレスポンスには、HTTPリクエストが成功したか、或いは、HTTPリクエスが失敗したかのステータスコードが付されている。
また、図1に示すルータは、前記したHTTPリクエスト、或いは、HTTPレスポンスを監視している。
そして、本実施形態のルータ100は、端末(200)と接続するLANインタフェース(10)と、ウェブサイト(310)を形成するウェブサーバ(300)と接続するWANインタフェース(20)と、を備えている。また、ルータ100は、制御手段(制御部90)を備えている。
そして、制御手段は、端末からウェブサイト宛の第1のHTTPリクエストを受信した場合に前記第1のHTTPリクエストを前記ウェブサイトへ転送する。そして、前記転送の結果受信したHTTPレスポンスがエラーの発生を示すレスポンスであった場合、或いは、所定の待ち時間内に前記転送の結果としてのHTTPレスポンスを受信できない場合、以下を行う。すなわち、前記端末と前記ウェブサイトに関する情報をアクセス先情報として記憶する。次に、前記アクセス先情報に基づく第2のHTTPリクエストを生成し所定の時間間隔で、かつ、所定の回数だけ前記ウェブサイトへ送信する。ここで、前記ウェブサイトから前記第2のHTTPリクエストが成功した旨のHTTPレスポンスを受信した際、前記ウェブサイトの前記エラーが解消した旨を前記端末に通知する、ようになっている。
従って、本実施形態によれば、ネットワーク管理者でなくとも、ウェブサーバなどの障害の復旧を自動的に検知し、ウェブサイトに再接続することが可能となる。
次に、図2を参照して、図1に示したルータ100の詳細構成について説明する。
図2は、本発明のルータの第1の実施形態を示すブロック図である。
図2に示すルータ100は、LANインタフェース10、WANインタフェース20、ルーティング部30、ルータ装置機能部40、記憶部50を備えている。ここで、ルーティング部30、ルータ装置機能部40、記憶部50は図1に示したルータ100の制御部90の詳細構成である。
LANインタフェース10とWANインタフェース20は、図1に示したものと同一であるため、その説明を省略する。
ルーティング部30は、LANインタフェース10から受信したパケットをWANインタフェース20に送信し、WANインタフェース20から受信したパケットをLANインタフェース10に送信する。ルーティング部30は、特定の条件下においてはルータ装置機能部40にパケットを送信し、ルータ装置機能部40から送信されたパケットを受信し、LANインタフェース10或いはWANインタフェース20に送信する。
ルータ装置機能部40は、ルーティング部30から受信したパケットに対して特定の処理を行い、ルーティング部30に送信する。ルータ装置機能部40は、特定の条件下においてはパケットを生成してルーティング部30に送信する。ルータ装置機能部40は、必要な情報を記憶部50に記憶させ、或いは、必要な情報を記憶部50から読み出して使用する。
記憶部50は、ルータ装置機能部40が必要とする情報を記憶する。記憶部50が記憶する情報の具体例については、図3を参照して後述する。
図2に示すLAN400は、ルータ100と端末200を通信接続するネットワークである。
図2に示す端末200は、パーソナルコンピュータ等の端末装置であり、ウェブブラウザ210が組み込まれている。本実施形態においては、複数の端末200(端末200−1、・・・、端末200−n)がLAN400に接続されている。端末200は、ウェブブラウザ210を用い、ルータ100を介してウェブサーバ300にアクセスする。そして、ウェブサーバ300からウェブページが返送された場合は、当該ウェブページを図示しない表示装置に表示する。
図2に示すインターネット500は、コンピュータネットワーク、電話交換網、移動体通信網、企業内イントラネット(Intranet)などが相互に接続された通信網であり、ルータ100とウェブサーバ300を通信接続する。なお、インターネット500は、図1に示したWAN600である。
図2に示すウェブサーバ300は、ウェブサイト310を形成するサーバである。本実施形態においては、複数のウェブサーバ300(ウェブサーバ300−1、・・・、ウェブサーバ300−m)がインターネット500に接続されている。
次に、図3を参照して、ルータ100の記憶部50が記憶する情報について説明する。
図3は、ルータの記憶部が記憶する情報の一例を示す図である。
図3において、記憶部50には、設定情報51、アクセス先情報52が記憶されるようになっている。
設定情報51は、端末200からウェブサイト310にアクセスし、通信ネットワーク(インターネット500)、或いは、ウェブサーバ300、の障害等によりアクセスできなかった場合、当該ウェブサイト310に再接続する際の条件を設定する。すなわち、設定情報51には、再接続する間隔(51−1行、51−11列)及び再接続する回数(51−1行、51−12列)が設定される。一例として、再接続する間隔が「10分」(51−2行、51−11列)、再接続する回数が「6回」(51−2行、51−12列)と設定されている。
アクセス先情報52は、端末200からのウェブサイト310へのアクセスができなかった場合、アクセスしようとした端末200やアクセス先ウェブサイト310の情報などを記憶する。すなわち、アクセス先情報52は、アクセス先情報52のNo.(52−1行、52−11列)、端末のIP(Internet Protocol:アイピー)アドレス(52−1行、52−12列)を記憶する。また、アクセス先ウェブサイト310のURL(Uniform Resource Locator:ユーアールエル)すなわちアクセス先URL(52−1行、52−13列)も記憶する。さらに、残り再接続回数(52−1行、52−14列)、アクセス可否(52−1行、52−15列)も記憶する。一例として、No.が「1」(52−2行、52−11列)の行には、端末のIPアドレスが「192.168.0.1」(52−2行、52−12列)、アクセス先URLが「http://□□□/△△△/」(52−2行、52−13列)が記憶されている。また当該行の続きとして、残り再接続回数が「6回」(52−2行、52−14列)、アクセス可否が「×」(52−2行、52−15列)が記憶されている。ここで、アクセス可否が「×」は、アクセスできない、ことを示し、アクセスできる、の場合は「○」が記憶されるようになっている。
次に、図4以降を参照して、本実施形態の動作について説明する。
ここで先ず、本実施形態の、端末200とウェブサーバ300間の通信を行うために用いられる通信プロトコル、すなわち、HTTP(Hypertext Transfer Protocol:ハイパーテキスト転送プロトコル)の概略につき説明を行うものとする。
周知のように、HTTPは、ファイルを提供するサーバ(本実施形態のウェブサーバ300に相当)と、ファイルを要求するクライアント(本実施形態の端末200に相当)の間でファイル転送を行う手順を定めたものである。
HTTPには、クライアントからサーバに要求を出すためのHTTPリクエストと、サーバからクライアントに応答するためのHTTPレスポンスとがある。
HTTPリクエストの一例として、GETリクエストやPOSTリクエストを挙げることができる。GETリクエストは、クライアントがファイルを貰うためのリクエストであり、POSTリクエストは、クライアントからファイルを送ってサーバ内のウェブページに書き込むためのリクエストである。
また、HTTPレスポンスは、HTTPリクエストに応じたHTML(Hyper Text Markup Language:エイチティエムエル)ファイルなどを応答データとして返すものである。HTTPレスポンスには、応答データに加えて、HTTPリクエストに対するサーバの処理結果を表す3桁の番号としてのステータスコードが付加されている。
ここで、図4を参照して、HTTPレスポンスのステータスコードについて説明する。
図4は、HTTPレスポンスのステータスコードの一例を示す図である。
図4において、例えば(3)の行に示すように、200番台のステータスコードの行には、メッセージが「Success」であり、その解説として「成功」と記載されている。これは、サーバがHTTPリクエストを処理できたことを伝える「成功」を意味している。また、(7)の行に示すように、400番台のステータスコードの行には、メッセージが「Client Error」であり、その解説として「クライアントエラー」と記載されている。これは、HTTPリクエストに問題があり、サーバが処理できなかったことを伝える「クライアントエラー」を意味している。同様に、(10)の行に示す500番台は、サーバ側に問題があって処理できなかったことを伝える「サーバエラー」を意味するようになっている。
具体的には、図4の(4)行に示す「200」のステータスコードは、HTTPリクエストが「成功」したことを意味している。また、(8)行に示す「404」のステータスコードは、クライアントエラーであり、その詳細は、「要求されたリソースが見つからなかった」を意味している。さらに、(9)行に示す「408」のステータスコードは、クライアントエラーであり、その詳細は、「クライアントは、サーバの待ち時間内にHTTPリクエストを発行しなかった」を意味するものである。
またさらに、図4の(11)行に示す「500」のステータスコードは、サーバエラーであり、その詳細は、「予期せぬエラーが原因でHTTPリクエストを実行できなかった」を意味している。また、(12)行に示す「503」のステータスコードは、サーバエラーであり、その詳細は、「過負荷やメンテナンスのため、一時的にHTTPリクエストを実行できない」を意味するものである。
次に、図5を参照して、本実施形態の概略動作について説明する。
図5は、第1の実施形態の概略動作を示すシーケンスチャートである。なお、図5においては、一例として、端末200−1がウェブサーバ300−1のウェブサイト310−1へアクセスする場合について説明するものとする。
図5において、端末200−1は、ウェブサーバ300−1のウェブサイト310−1にアクセスするために、HTTPリクエストを送出する(図5のステップS11)。すると、ルータ100は、当該HTTPリクエストをウェブサーバ300−1に転送する(ステップS12)。
HTTPリクエストを受信したウェブサーバ300−1は、HTTPレスポンスを返送する。このときのHTTPレスポンスが、HTTPエラーレスポンスであり、そのステータスコードが「503」であったものとする(ステップS13)。なお、以降の説明において、HTTPレスポンスの記載を、以下のようにするものとする。すなわち、「成功」を意味する場合は、「HTTP成功レスポンス(“200”)」の様に記載し、ステータスコードは「“”」で囲み括弧内に記述するものとする。また、クライアントエラーの内のステータスコードが“404”や“408”のもの、或いは、サーバエラーの内のステータスコードが“500”や“503”のものである場合は、「HTTPエラーレスポンス(“503”)」の様に記載する。そして、ステータスコードは「“”」で囲み括弧内に記述するものとする。
サーバエラーを意味するHTTPエラーレスポンス(“503”)を受信したルータ100は、当該HTTPリクエストを送出した端末200−1やアクセス先ウェブサイト310−1の情報などを、アクセス先情報52としてルータ100の記憶部50に記憶する(ステップS14)。そして、ルータ100は、当該HTTPエラーレスポンス(“503”)を端末200−1に転送する(ステップS15)。
次に、アクセス先情報52を記憶したルータ100は、記憶部50に記憶したアクセス先情報52に基づいて、HTTPリクエストを生成する(ステップS16)。ここで生成するHTTPリクエストは、ステップS11で端末200−1が送出したHTTPリクエストを代替するものである。そして、ルータ100は、生成したHTTPリクエストをウェブサーバ300−1に送信する(ステップS17)。ここで送信するHTTPリクエストは、「サーバエラー」の状態であったウェブサーバ300−1が復旧したかを確認する為に送信するものであり、端末200−1から新たに送出されるHTTPリクエストを転送するものではない。この時点で、端末200−1のユーザは、ウェブサーバ300−1が「サーバエラー」の状態であることを知っているため、他の作業を行っていてもよい。
HTTPリクエストを受信したウェブサーバ300−1は、HTTPレスポンスを返送する。このときのHTTPレスポンスが、ステップS13と同一のHTTPエラーレスポンス(“503”)であったものとする(ステップS18)。
HTTPエラーレスポンス(“503”)を再度受信したルータ100は、ステップS16と同様に、再度、HTTPリクエストを生成し(ステップS19)、生成したHTTPリクエストをウェブサーバ300−1に送信する(ステップS20)。
ステップS20のHTTPリクエストを受信したウェブサーバ300−1は、HTTPレスポンスを返送する。このときのHTTPレスポンスは、HTTP成功レスポンス(“200”)であったものとする(ステップS21)。このHTTP成功レスポンス(“200”)は、サーバエラーの状態だったウェブサーバ300−1が復旧したことを意味するものである。
HTTP成功レスポンス(“200”)を受信したルータ100は、ステップS16或いはステップS19で行っていた動作、すなわち、アクセス先情報52に基づいてHTTPリクエストを生成する動作、を終了する。そして、端末200−1からの次のHTTPリクエストを受信するのを待つ状態となる(ステップS22)。
端末200−1では、ウェブサイト310−1へのアクセスは中断しており、代わりに、ウェブサイト310−2へのアクセスを行おうとしたものとする。そして、端末200−1からは、ウェブサイト310−2へアクセスするためのHTTPリクエスト(ウェブサイト310−2宛)を送出する(図5のステップS31)。
HTTPリクエスト(ウェブサイト310−2宛)を受信したルータ100は、ステップS11で受信したウェブサイト310−1宛のHTTPリクエストとは異なるウェブサイト310−2へのアクセスであることを検知する。そこで、ルータ100は、端末200−1に対する通知画面を生成する(ステップS32)。ここで生成する通知画面は、以前アクセスしようとしたが出来なかったウェブサイト310−1が復旧している旨を通知する画面である。そして、生成した通知画面を、HTTP成功レスポンスとして端末200−1に送信する(ステップS33)。
通知画面を受信した端末200−1で、ウェブサイト310−2ではなくウェブサイト310−1へアクセスする旨を入力し(ステップS34)、次に、端末200−1はHTTPリクエストを送出する(ステップS35)。ステップS35のHTTPリクエストは、以前アクセスしようとして出来なかったウェブサイト310−1へアクセスするためのHTTPリクエストである。
ウェブサイト310−1へアクセスするためのHTTPリクエストを受信したルータ100は、当該HTTPリクエストをウェブサーバ300−1へ転送する(ステップS36)。
当該HTTPリクエストを受信したウェブサーバ300−1は、HTTPレスポンスを返送する。ここで、ウェブサーバ300−1はサーバエラーの状態からは復旧しているため、HTTP成功レスポンス(“200”)を送信する(ステップS37)。
HTTP成功レスポンス(“200”)を受信したルータ100は、これを端末200−1へ転送する(ステップS38)。
端末200−1は、ウェブサーバ300−1からのHTTP成功レスポンス(“200”)を受信したことにより、中断していたウェブサイト310−1への再接続がなされたことを認識する。そして、以降、端末200−1からウェブサイト310−1へのアクセスが再開されることとなる。
以上、本実施形態の概略動作について説明した。
次に、図6〜図10を参照して、本実施形態の詳細動作について説明する。なお、詳細動作の説明においては、端末200−1からルータ100を介して、ウェブサイト310−1へアクセスするものとする。そして、端末200−1のIPアドレスを「192.168.0.1」であるものとし、ウェブサイト310−1のURLを「http://□□□/△△△/」であるものとする。また、ウェブサイト310−2のURLは「http://○○○/◇◇◇/」であるものとする。また、詳細動作の実行は、ルータ100の制御部90が行うものであるが、説明の容易化のため、ルータ100が行うものとして以下の記述を行う。
図6は、第1の実施形態の詳細動作を説明する第1のフローチャートである。
図6において、ルータ100は、端末200−1から送出されるHTTPリクエストを受信したかの判定を行っている(ステップS101)。HTTPリクエストを受信しない場合(ステップS101でNo)、ステップS101の判定を繰り返し行う。
HTTPリクエストを受信した場合(ステップS101でYes)、ルータ100は、受信したHTTPリクエストを宛先であるところのウェブサーバ300−1へ転送する(ステップS102)。
次に、ルータ100は、HTTPリクエストを転送した時点から、ウェブサーバ300−1からのHTTPレスポンスを待ち受ける所定の時間が経過したかの判定を行う(ステップS103)。所定の時間が経過している場合(ステップS103でYes)、HTTPレスポンスを所定の時間内に受信できなかった為、ステップS106の動作に進む。なお、ここでは、HTTPレスポンスを受信していないため、ステップS106の次のステップS107の動作は実行されない。
所定の時間が経過していない場合(ステップS103でNo)、ルータ100は、ウェブサーバ300−1からHTTPレスポンスを受信したかの判定を行う(ステップS104)。HTTPレスポンスを受信していない場合(ステップS104でNo)、ルータ100は、ステップS103の判定動作に戻る。
HTTPレスポンスを受信した場合(ステップS104でYes)、ルータ100は、受信したHTTPレスポンスがHTTPエラーレスポンスであるかの判定を行う(ステップS105)。HTTPエラーレスポンスでない場合(ステップS105でNo)、HTTPレスポンスはHTTP成功レスポンスである為、ルータ100はステップS107の動作に進む。
HTTPエラーレスポンスである場合(ステップS105でYes)、ルータ100は、ステップS101で受信したHTTPリクエストを送出した端末200−1やアクセス先ウェブサイト310−1の情報などを、アクセス先情報52として記憶部50に記憶する(ステップS106)。ここで記憶するアクセス先情報52について、図9を参照して説明する。
図9は、アクセス先情報の変更される様子を示す図である。
図9の(1)に示すアクセス先情報52は、ステップS106で記憶するアクセス先情報52である。すなわち、アクセス先情報52の「端末のIPアドレス」の欄には、HTTPリクエストを送出した端末200−1のIPアドレス(192.168.0.1)が記載される。また、「アクセス先URL」の欄には、アクセス先ウェブサイト310−1のURL(http://□□□/△△△/)が記載される。さらに、「残り再接続回数」の欄には、記憶部50内に記憶されている設定情報51の中の、「再接続する回数」の欄に記載されている回数(6回)が記載される。またさらに、「アクセス可否」の欄には、アクセスできなかったことを示す「×」が記載される。
なお、図9の(2)或いは(3)として示すアクセス先情報52は、図9の(1)で示したアクセス先情報52が、ルータ100の今後の動作に応じて変更される様子を示すものである。従って、これらのアクセス先情報52については、ルータ100の今後の動作を説明する際に適宜参照して説明を行うものとする。
図6に戻り、ステップS106の後、ルータ100は、ウェブサーバ300−1から受信したHTTPレスポンスを、端末200−1へ転送する(ステップS107)。そして、ルータ100の動作は、図7で説明する次のステップに進む。
次に、図7を参照し、本実施形態の動作の続きについて説明する。
図7は、第1の実施形態の詳細動作を説明する第2のフローチャートである。
図6のステップS107の後、ルータ100は、記憶部50内に記憶されたアクセス先情報52の中の「アクセス先URL」に対し、定期的にアクセスを行うようになる。
すなわち、ルータ100は、アクセス先情報52の中の「残り接続回数」に記載されている回数が、「0」より大きいか判定する(ステップS111)。ステップS107の直後にステップS111の判定を行った場合、アクセス先情報52の「残り接続回数」は、図9の(1)で説明したように「6回」となっている。従って、残り接続回数>0であり、ステップS111の判定はYesとなる。
残り接続回数が「0」より大きい場合(ステップS111でYes)、ルータ100は、記憶部50内の設定情報51の「再接続する間隔」に記載されている時間(本実施形態では「10分」)が経過したかを判定する(ステップS112)。「再接続する間隔」が経過していない場合(ステップS112でNo)、ステップS112の判定動作を繰り返す。
「再接続する間隔」が経過した場合(ステップS112でYes)、ルータ100は、記憶部50に記憶されたアクセス先情報52に基づき、HTTPリクエストを生成する(ステップS113)。そして、ルータ100は、生成したHTTPリクエストを、アクセス先情報52の中の「アクセス先URL」の欄に記載されているURLに送信する。このとき同時に、アクセス先情報52の中の「残り接続回数」の欄に記載されている回数から「1」を減算する(ステップS114)。この時のアクセス先情報52の様子を図9(2)として示す。すなわち、図9(2)のアクセス先情報52の「残り接続回数」の欄は「5回」となっており、図9(1)の「残り接続回数」の「6回」から「1」が減算されている。
次に、ルータ100は、ウェブサイト310−1からHTTP成功レスポンスを受信したかの判定を行う(ステップS115)。HTTP成功レスポンスを受信していない場合(ステップS115でNo)、ステップS111に戻る。
HTTP成功レスポンスを受信した場合(ステップS115でYes)、ルータ100は、アクセス先情報52の「アクセス可否」の欄の記載を、アクセス可能、を示す「○」に書き替える(ステップS116)。この時のアクセス先情報52の様子を図9(3)として示す。すなわち、図9(3)のアクセス先情報52の「アクセス可否」の欄は「○」となっており、図9(1)の「アクセス可否」の「×」が、「○」に書き替えられている。
そしてルータ100は端末200−1からの次のHTTPリクエストを受信するのを待つ状態となり、ルータ100の動作は、図8で説明する次のステップに進む。
ステップS111の判定の説明に戻り、残り接続回数が「0」より大きくない場合(ステップS111でNo)、ルータ100は、記憶部50に記憶したアクセス先情報52を消去する(ステップS117)。そしてルータ100は端末200−1からの次のHTTPリクエストの受信を待つ状態となり、ルータ100の動作は、図8で説明する次のステップに進む。
次に、図8を参照し、本実施形態の動作の続きについて説明する。
図8は、第1の実施形態の詳細動作を説明する第3のフローチャートである。
図7のステップS116或いはステップS117の後、ルータ100は端末200−1からの次のHTTPリクエストの受信を待つ状態となっている。そして、ルータ100は、HTTPリクエストを受信したかの判定を行う(ステップS121)。HTTPリクエストを受信していない場合(ステップS121でNo)、ステップS121の判定動作を繰り返す。
HTTPリクエストを受信した場合(ステップS121でYes)、ルータ100は、当該HTTPリクエストに関し、以下の確認を行う。すなわち、先ず、記憶部50内にアクセス先情報52が記憶されているかを判定する(ステップS122)。アクセス先情報52が記憶されていない場合(ステップS122でNo)、ルータ100の動作はステップS128へ進む。
アクセス先情報52が記憶されている場合(ステップS122でYes)、ルータ100は、当該HTTPリクエストがアクセスしようとしているURLは、アクセス先情報52の「アクセス先URL」の欄に記載されているURLと一致するかを判定する(ステップS123)。例として、当該HTTPリクエストが、ウェブサイト310−2へのアクセスを行うものであったとする。ウェブサイト310−2のURLは「http://○○○/◇◇◇/」であるため、記憶部50のアクセス情報52のアクセス先URL(http://□□□/△△△/)とは異なっている。従ってこの例では、ステップS123の判定は「No」となる。
当該HTTPリクエストのURLが、アクセス先情報52に記載されているURLと一致しない場合(ステップS123でNo)、ルータ100の動作はステップS128へ進む。
当該HTTPリクエストのURLが、アクセス先情報52に記載されているURLと一致した場合(ステップS123でYes)、ルータ100は、アクセス先情報52の「アクセス可否」の欄にはアクセス可能を示す「○」が記載されているか判定する(ステップS124)。「アクセス可否」の欄がアクセス可能となっていない場合(ステップS124でNo)、ルータ100の動作はステップS128へ進む。
「アクセス可否」の欄がアクセス可能となっている場合(ステップS124でYes)、ルータ100は、端末200−1に対する通知画面を生成する(ステップS125)。ここで生成する通知画面は、以前アクセスしようとしたが出来なかったウェブサーバ300−1のウェブサイト310−1が復旧している旨を通知するものである。加えて、この通知画面では、今アクセスしようとしているウェブサイト310−2と以前のウェブサイト310−1の何れにアクセスするかの問い合わせも含んでいる。ここで、図10を参照して、ルータ100が生成する通知画面について説明を行っておく。
図10は、ルータが生成する通知画面の一例を示す図である。
図10の(1)部分は、今アクセスしようとしているウェブサイト310−2に関する表示である。(1)の中段に、ウェブサイト310−2のURLが記載されており、このURLをクリックすれば、当該URLへの接続を行う旨を表示している。
また、図10の(2)部分は、以前アクセスしようとしたが出来なかったウェブサイト310−1に関する表示である。(2)の上段に、ウェブサイト310−1が復旧した旨を表示している。そして、(2)の下段に記載されているURLをクリックして選択すれば、当該URLへの接続を行う旨を表示している。
図8に戻り、ステップS125で通知画面を生成した後、ルータ100は、通知画面を、ステップS121で受信した当該HTTPリクエストに対するHTTP成功レスポンスとして、端末200−1に返送する(ステップS126)。
そして、ルータ100は、HTTPリクエストを受信したかについて判定を行う(ステップS127)。ここで受信するHTTPリクエストは、ステップS126で端末200−1に返送した通知画面において、ウェブサイト310−2とウェブサイト310−1の何れかのURLが選択された場合に、受信するものである。HTTPリクエストを受信しない場合(ステップS127でNo)、ステップS127の判定動作を繰り返す。
HTTPリクエストを受信した場合(ステップS127でYes)、ルータ100は、HTTPリクエストを宛先であるところのウェブサーバ300へ転送する(ステップS128)。
次に、ウェブサーバ300のウェブサイト310からHTTPレスポンスを受信する(ステップS129)。すると、ルータ100は、受信したHTTPレスポンスがHTTP成功レスポンスであるかの判定を行う(ステップS130)。
受信したHTTPレスポンスがHTTP成功レスポンスでない場合(ステップS130でNo)、ルータ100の動作はステップS105に戻る。
受信したHTTPレスポンスがHTTP成功レスポンスである場合(ステップS130でYes)、ルータ100は、これを端末200へ転送する(ステップS131)。そして、ルータ100は、本実施形態における動作を終了する。
以上、本発明の第1の実施形態の動作について説明した。
なお、上述した本実施形態において、以下のような変更を行ってもよい。
すなわち、先ず、記憶部50に記憶するアクセス先情報52の「端末のIPアドレス」に代えて、「端末のMAC(Media Access Control:マック)アドレス」を用いるようにしてもよい。
また、HTTPレスポンスの内、ステータスコードが“200”のものを、HTTP成功レスポンスであるとしていた。これに加えて、ステータスコードが“401”のものを、HTTP成功レスポンスであるとしてもよい。ステータスコード“401”は、「認証が拒否された」旨を意味するレスポンスである。さらに、ウェブサイト310にアクセスできない、と判定するのは、HTTPレスポンスのステータスコードが“404”や“408”のもの、或いは、“500”や“503”のものを受信した場合であるとしている。これに加えて、HTTPリクエストに対するレスポンスが所定の時間以内に帰らない場合も、ウェブサイト310にアクセスできない、と判定するようにしてもよい。
以上説明したように、本実施形態のルータ100は、端末(200)と接続するLANインタフェース(10)と、ウェブサイト(310)を形成するウェブサーバ(300)と接続するWANインタフェース(20)と、を備えている。また、ルータ100は、制御手段(制御部90)を備えている。
そして、制御手段は、端末からウェブサイト宛の第1のHTTPリクエストを受信した場合に前記第1のHTTPリクエストを前記ウェブサイトへ転送する。そして、前記転送の結果受信したHTTPレスポンスがエラーの発生を示すレスポンスであった場合、或いは、所定の待ち時間内に前記転送の結果としてのHTTPレスポンスを受信できない場合、以下を行う。すなわち、前記端末と前記ウェブサイトに関する情報をアクセス先情報として記憶する。次に、前記アクセス先情報に基づく第2のHTTPリクエストを生成し所定の時間間隔で、かつ、所定の回数だけ前記ウェブサイトへ送信する。ここで、前記ウェブサイトから前記第2のHTTPリクエストが成功した旨のHTTPレスポンスを受信した際、前記ウェブサイトの前記エラーが解消した旨を前記端末に通知する、ようになっている。
従って、本実施形態によれば、ネットワーク管理者でなくとも、ウェブサーバなどの障害の復旧を自動的に検知し、ウェブサイトに再接続することが可能となる。
また、前記制御手段は、前記端末からエラーが解消した前記ウェブサイト宛の第3のHTTPリクエストを受信した場合に前記第3のHTTPリクエストを前記ウェブサイトへ転送する、ようになっている。
従って、本実施形態によれば、端末のユーザは、障害等の影響でアクセスできなくなっているウェブサーバの復旧確認のための操作を行う必要がない。
[第2の実施形態]
次に、図11〜図14を参照して、本発明の第2の実施形態について説明する。
本発明の第2の実施形態は、ルータ100によってウェブサイト310へ再接続を行わせるか否かについて、端末200毎に設定できるようにしたものである。そして、ルータ100の構成は、図2に示したものと同一であるが、記憶部50に記憶させる設定情報51が、第1の実施形態とは異なるものである。
図11は、第2の実施形態の設定情報を示す図である。
図11において、記憶部50に記憶される設定情報513は、端末200からウェブサイト310にアクセスしようとしたが、アクセスできなかった場合、当該ウェブサイト310に再接続する際の条件を設定する。
すなわち、設定情報513には、設定情報513のNo.(513−1行、513−11列)、ウェブサイト310への再接続を行わせる端末のIPアドレス(513−1行、513−12列)が設定される。また、再接続する間隔(513−1行、513−13列)及び再接続する回数(513−1行、513−14列)が設定される。一例として、No.が「1」(513−2行、513−11列)の行には、端末のIPアドレスが「192.168.0.10」(513−2行、513−12列)が設定されている。また当該行の続きとして、再接続する間隔が「20分」(513−2行、513−13列)、再接続する回数が「9回」(513−2行、513−14列)と設定されている。
つまり、設定情報513内に、端末のIPアドレスが設定されている端末200だけが、ウェブサイト310へのアクセスが出来なかった場合に、ルータ100による再接続を行わせることとなる。設定情報513内に端末のIPアドレスが設定されていない端末200は、ウェブサイト310へのアクセスが出来なかった場合、ルータ100による再接続動作は行われない。図11に示した例においては、端末のIPアドレスとして「192.168.0.10」を有する端末200の場合だけ、ルータ100による再接続動作が行われることとなる。
次に、図12を参照して、本実施形態の動作例について説明する。
図12は、第2の実施形態の概略動作を示す第1のシーケンスチャートである。なお、図12においては、一例として、端末200−1及び端末200−2がウェブサーバ300−1のウェブサイト310−1へアクセスする場合について説明する。ここで、端末200−1のIPアドレスは「192.168.0.1」であるものとし、設定情報513内に当該IPアドレスは設定されていないものとする。また、端末200−2のIPアドレスは「192.168.0.10」であるものとし、図11に示したように、設定情報513内に当該IPアドレスが設定されているものとする。
図12において、端末200−1は、ウェブサーバ300−1のウェブサイト310−1にアクセスするために、HTTPリクエストを送出する(図12のステップS21)。すると、ルータ100は、当該HTTPリクエストをウェブサーバ300−1に転送する(ステップS22)。
HTTPリクエストを受信したウェブサーバ300−1は、HTTPレスポンスを返送する。このときのHTTPレスポンスが、HTTPエラーレスポンスであったものとする(ステップS23)。
HTTPエラーレスポンスを受信したルータ100は、当該HTTPリクエストを送出した端末200−1のIPアドレスが、設定情報513内に設定されているかを確認する。上述したように、端末200−1のIPアドレスは、設定情報513内に設定されていない。従って、ルータ100は、受信したHTTPエラーレスポンスをそのまま、端末200−1に転送する(ステップS24、ステップS25)。
次に、端末200−2は、ウェブサーバ300−1のウェブサイト310−1にアクセスするために、HTTPリクエストを送出する(ステップS31)。すると、ルータ100は、当該HTTPリクエストをウェブサーバ300−1に転送する(ステップS32)。
HTTPリクエストを受信したウェブサーバ300−1は、HTTPレスポンスを返送する。このときのHTTPレスポンスが、HTTPエラーレスポンスであったものとする(ステップS33)。
HTTPエラーレスポンスを受信したルータ100は、当該HTTPリクエストを送出した端末200−2のIPアドレスが、設定情報513内に設定されているかを確認する。上述したように、端末200−2のIPアドレスは、設定情報513内に設定されている。従って、ルータ100は、当該HTTPリクエストを送出した端末200−2やアクセス先ウェブサイト310−1の情報などを、アクセス先情報52としてルータ100の記憶部50に記憶する(ステップS34)。そして、ルータ100は、当該HTTPエラーレスポンスを端末200−2に転送する(ステップS35)。
ステップS35の後、ルータ100は、第1の実施形態で説明したと同様の動作を行うようになり、端末200−2がウェブサイト310−1に再接続できるよう動作する。
次に、本実施形態の第2の動作例について説明する。
本実施形態の第2の動作例は、2台の端末200が、2つのウェブサイト310にアクセスする場合の動作を例示するものである。
前提として、2台の端末200は、端末200−1(IPアドレス=「192.168.0.1」)と端末200−2(IPアドレス=「192.168.0.10」)であるものとする。また、2つのウェブサイト310は、ウェブサイト310−1(URL=「http://□□□/△△△/」)とウェブサイト310−2(URL=「http://○○○/◇◇◇/」)であるものとする。
そして、2台の端末200は共に、記憶部50の設定情報513内に、端末のIPアドレスが設定されている。また、2台の端末200がアクセスしようとしているアクセス先URLは、記憶部50のアクセス先情報52内に記憶されている。
図13は、第2の実施形態において記憶部が記憶する情報の一例を示す図である。
図13において、設定情報513には、端末200−1に関する設定情報(513−2行)と端末200−2に関する設定情報(513−3行)が設定されている。
また、アクセス先情報52には、端末200−1がアクセスしようとしているアクセス先URLなどが記憶され(52−2行)、また、端末200−2がアクセスしようとしているアクセス先URLなどが記憶されている(52−3行)。そして、アクセス先情報52のアクセス可否の欄には「○」が記載されている(52−2行、52−3行)。これは、両端末200がそれぞれアクセスしようとして出来なかったウェブサイト310が、今は復旧した状態に戻っている、ということを意味している。
以上の前提をもとに、本実施形態の第2の動作例について説明する。
図14は、第2の実施形態の概略動作を示す第2のシーケンスチャートである。
図14において、端末200−1は、ウェブサーバ300−1のウェブサイト310−1にアクセスするために、HTTPリクエスト(ウェブサイト310−1宛)を送出する(図14のステップS41)。すると、ルータ100は、当該HTTPリクエストを送出した端末200−1が、以前アクセスしたアクセス先URLを確認する。図13(52−2行)に示したように、端末200−1が以前アクセスしたアクセス先URLはウェブサイト310−1(URL=「http://□□□/△△△/」)である。すなわち、以前アクセスしたアクセス先と、今回アクセスしたアクセス先は同一である。従って、ルータ100は、第1の実施形態で説明した通知画面は生成せず、当該HTTPリクエストをウェブサーバ300−1に転送する(ステップS42)。第1の実施形態で説明したように、通知画面を生成する場合とは、以前アクセスしようとして出来なかったアクセス先とは異なるアクセス先に接続しようとした場合である。
HTTPリクエストを受信したウェブサーバ300−1は、HTTPレスポンスを返送する。このときのHTTPレスポンスが、HTTP成功レスポンスであったものとする(ステップS43)。
HTTP成功レスポンスを受信したルータ100は、受信したHTTP成功レスポンスをそのまま端末200−1に転送する(ステップS44)。
次に、端末200−1は、ステップS41でアクセスしたウェブサイト310−1とは別の、ウェブサーバ300−2のウェブサイト310−2にアクセスするために、HTTPリクエスト(ウェブサイト310−2宛)を送出する(ステップS51)。
すると、ルータ100は、当該HTTPリクエストを送出した端末200−1が、以前アクセスしたアクセス先URLを確認する。図13(52−2行)に示したように、端末200−1が以前アクセスしたアクセス先URLはウェブサイト310−1(URL=「http://□□□/△△△/」)である。すなわち、以前アクセスしたアクセス先と、今回アクセスしたアクセス先は異なっている。従って、ルータ100は、通知画面を生成する(ステップS52)。そして、ルータ100は、生成した通知画面を、ステップS45で受信したHTTPリクエストに対するHTTP成功レスポンスとして、端末200−1に返送する(ステップS53)。
端末200−1と同様に、端末200−2は、ウェブサーバ300−2のウェブサイト310−2にアクセスするために、HTTPリクエスト(ウェブサイト310−2宛)を送出する(図14のステップS61)。すると、ルータ100は、当該HTTPリクエストを送出した端末200−2が、以前アクセスしたアクセス先URLを確認する。図13(52−3行)に示したように、端末200−2が以前アクセスしたアクセス先URLはウェブサイト310−2(URL=「http://○○○/◇◇◇/」)である。すなわち、以前アクセスしたアクセス先と、今回アクセスしたアクセス先は同一である。従って、ルータ100は、通知画面は生成せず、当該HTTPリクエストをウェブサーバ300−2に転送する(ステップS62)。
HTTPリクエストを受信したウェブサーバ300−2は、HTTPレスポンスを返送する。このときのHTTPレスポンスが、HTTP成功レスポンスであったものとする(ステップS63)。
HTTP成功レスポンスを受信したルータ100は、受信したHTTP成功レスポンスをそのまま端末200−2に転送する(ステップS64)。
次に、端末200−2は、ステップS61でアクセスしたウェブサイト310−2とは別の、ウェブサーバ300−1のウェブサイト310−1にアクセスするために、HTTPリクエスト(ウェブサイト310−1宛)を送出する(ステップS71)。
すると、ルータ100は、当該HTTPリクエストを送出した端末200−2が、以前アクセスしたアクセス先URLを確認する。図13(52−3行)に示したように、端末200−2が以前アクセスしたアクセス先URLはウェブサイト310−2(URL=「http://○○○/◇◇◇/」)である。すなわち、以前アクセスしたアクセス先と、今回アクセスしたアクセス先は異なっている。従って、ルータ100は、通知画面を生成する(ステップS72)。そして、ルータ100は、生成した通知画面を、ステップS55で受信したHTTPリクエストに対するHTTP成功レスポンスとして、端末200−2に返送する(ステップS73)。
以上、本発明の第2の実施形態の動作について説明した。
前述したように、本発明の第2の実施形態は、ルータ100によってウェブサイト310へ再接続を行わせるか否かについて、端末200毎に設定できるようにした点でのみ、第1の実施形態と異なるものである。従って、以下においては、第2の実施形態に特有の箇所に関してのみ説明するものとする。
以上説明したように、第2の実施形態の制御手段(制御部90)は、以下のように動作する。制御手段は、前記第1のHTTPリクエストを前記ウェブサイトへ転送し、前記転送の結果受信したHTTPレスポンスがエラーの発生を示すレスポンスであった場合、或いは、所定の待ち時間内に前記転送の結果としてのHTTPレスポンスを受信できない場合、以下を行う。すなわち、前記端末が設定情報内に設定されている場合にのみ、前記端末と前記ウェブサイトに関する情報をアクセス先情報として記憶する、ようになっている。
従って、本実施形態によれば、ルータによってウェブサイトへ再接続を行わせるか否かについて、端末毎に設定できるようなる。
[第3の実施形態]
次に、図15、図16を参照して、本発明の第3の実施形態について説明する。
図15は、本発明のルータの第3の実施形態を示すブロック図である。本発明の第3の実施形態は、図2に示した第1の実施形態のルータ100内に、USB(Universal Serial Bus:ユーエスビー)インタフェースを追加した点でのみ異なるものである。従って、図15において、第1の実施形態で示した図2の構成要素に対応するものは同一の参照数字または符号を付し、その説明を極力省略するものとする。
図15において、ルータ100−3は、LANインタフェース10、WANインタフェース20、ルーティング部30、ルータ装置機能部40、記憶部50、USBインタフェース60、USBマスストレージデバイス70を備えている。ここで、ルーティング部30、ルータ装置機能部40、記憶部50、USBインタフェース60は、図1に示したルータ100の制御部90の詳細構成である。
LANインタフェース10、WANインタフェース20、ルーティング部30、ルータ装置機能部40、記憶部50は、図2に示した第1の実施形態と同一であるため、その説明を省略する。
USBインタフェース60は、USB規格に則ったUSBマスストレージデバイス70と接続するインタフェースである。
USBマスストレージデバイス70は、USB規格に則った大容量の記憶装置である。
図15に示すLAN400、端末200、インターネット500、ウェブサーバ300は、図2に示した第1の実施形態と同一であるため、その説明を省略する。
次に、本実施形態の動作について説明する。
本実施形態のルータ100−3は、ウェブサイト310のエラー状態が復旧して当該ウェブサイト310へのアクセスが可能になったと判断した場合に、以下の動作を行うものである。すなわち、ルータ100−3は、当該ウェブサイト310が提供するウェブページなどのコンテンツ情報を取得し、これを、USBインタフェース60を介してUSBマスストレージデバイス70にキャッシュ(履歴フォルダ等)として保存しておく。そして、当該ウェブサイト310に再度アクセスできなくなった場合に、保存したキャッシュを端末200に表示させるものである。
以下、図16のシーケンスチャートを参照して、本実施形態の動作の具体例を説明する。
図16は、第3の実施形態の概略動作を示すシーケンスチャートである。
図16において、ステップS11からステップS21までの動作は、図5に示した動作と同一である。従って、図16において、図5に示した動作と同一のものは、同一の参照数字または符号を付しその説明を省略するものとする。
図16のステップS21において、ルータ100−3は、ウェブサーバ300−1からHTTP成功レスポンス(“200”)を受信したので、当該ウェブサーバ300−1へのアクセスが可能になったと判断する。そして、その時点で、ウェブサーバ300−1のウェブサイト310−1からコンテンツ情報を取得し、USBマスストレージデバイス70にキャッシュとして保存しておく(ステップS21−1)。
次に、HTTP成功レスポンス(“200”)を受信したルータ100−3は、ステップS16或いはステップS19で行っていた動作、すなわち、アクセス先情報52に基づいてHTTPリクエストを生成する動作、を終了する。そして、端末200−1からの次のHTTPリクエストを受信するのを待つ状態となる(ステップS22)。
次に、端末200−1は、ウェブサイト310−1へアクセスするためのHTTPリクエストを送信する(ステップS81)。すると、ルータ100−3は、当該HTTPリクエストを、ウェブサーバ300−1に対して転送する(ステップS82)。
ここで、ウェブサーバ300−1は、HTTPエラーレスポンス(“503”)を返送したものとする(ステップS83)。
次に、ルータ100−3は、ウェブサーバ300−1からHTTPエラーレスポンス(“503”)を受信したので、当該ウェブサイト310−1にはアクセスできなくなったと判断する。そして、その時点で、USBマスストレージデバイス70に保存しておいたコンテンツ情報を、端末200−1に送信する。また、端末200−1やアクセス先ウェブサイト310−1の情報などを、アクセス先情報として記憶する(ステップS84)。
ルータ100−3からは、端末200−1に対し、コンテンツ情報が送信される(ステップS85)。
以上、本実施形態の動作について説明した。
前述したように、本発明の第3の実施形態は、図2に示した第1の実施形態のルータ100内に、USBインタフェース60を追加した点でのみ異なるものである。従って、以下においては、第3の実施形態に特有の箇所に関してのみ説明するものとする。
以上説明したように、第3の実施形態の制御手段(制御部90−3)は、前記ウェブサイトから前記第2のHTTPリクエストが成功した旨のHTTPレスポンスを受信した際、前記ウェブサイトからコンテンツ情報を取得し、キャッシュとして保存する、ようになっている。
従って、本実施形態によれば、ウェブサイトに再度のエラーが発生した場合に備えて、コンテンツ情報を予め保存しておくことが可能となる。
また、前記制御手段は、前記ウェブサイトに再度前記エラーが発生した際、前記コンテンツ情報を前記端末へ送信して表示させる、ようになっている。
従って、本実施形態によれば、ウェブサイトに再度のエラーが発生した場合であっても、エラーが発生する前のコンテンツ情報を端末に表示させることが可能となる。