(57)【要約】  【課題】同一のアプリケーションを提供するサーバが複数ある分散処理環境において、各サーバのコンテンツの同期を図るコンテンツ同期システムの提供。  【解決手段】(a)データ入力を受け付けるデータ入力手段、(b)ユニークＩＤを付与するＩＤ採番手段、(c)所定フォーマットの送信データを生成するデータ生成手段、(d)データを他のサーバに送信するデータ送信手段、(e)データを受信するデータ受信手段、(f)データをデータ記録部に追加するデータ追加手段、(g)追加の処理結果をステータスとして送信するステータス送信手段、(h)他のサーバからのステータスを受信するステータス受信手段、(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段を備える。  【選択図】図３
2006099164.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上における複数のサーバに記録されたコンテンツの同期を図るコンテンツ同期システムであって、各サーバは以下の手段を備えており：
(a)ユーザからのデータ入力を受け付けるデータ入力手段、
(b)受け付けたデータに対してユニークＩＤを付与するＩＤ採番手段、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成手段、
(d)生成したデータを他のサーバに送信するデータ送信手段、
(e)他のサーバにおいて生成されたデータを受信するデータ受信手段、
(f)受信したデータをデータ記録部に追加するデータ追加手段、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信手段、
(h)他のサーバからのステータスを受信するステータス受信手段、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段、
前記データ記録手段は、他サーバのデータ追加手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを記録することを特徴とするもの。
【請求項２】
ネットワーク上における複数のサーバに記録されたコンテンツの同期を図るコンテンツ同期システムを構成する各サーバをコンピュータを用いて実現するためのプログラムであって、コンピュータに以下の手段を構成させ：
(a)ユーザからのデータ入力を受け付けるデータ入力手段、
(b)受け付けたデータに対してユニークＩＤを付与するＩＤ採番手段、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成手段、
(d)生成したデータを他のサーバに送信するデータ送信手段、
(e)他のサーバにおいて生成されたデータを受信するデータ受信手段、
(f)受信したデータをデータ記録部に追加するデータ追加手段、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信手段、
(h)他のサーバからのステータスを受信するステータス受信手段、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段、
前記データ記録手段は、他サーバのデータ追加手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを記録することを特徴とするもの。
【請求項３】
請求項１または２のいずれかのコンテンツ同期システムまたはプログラムにおいて、さらに以下の手段を備えており：
(o)ユーザからのデータ削除の指示を受け付ける削除データ指示手段、
(p)受け付けた削除データに付与されたユニークＩＤに基づいて所定フォーマットの削除データを作成する削除データ作成手段、
(q)削除データ作成手段において作成された削除データを送信する削除データ送信手段、
(r)他のサーバから削除データを受信する削除データ受信手段、
(s)削除データ受信手段において受信した削除データに基づいてデータ記録部のコンテンツデータを削除、または、ステータス受信手段において受信したステータスに基づいて削除データ指示手段において指示されたデータをデータ記録部から削除するデータ削除手段、
前記ステータス送信手段は、前記削除の処理結果をステータスとして、データを送信したサーバに送信し、
前記データ削除手段は、他サーバのデータ削除手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを削除することを特徴とするもの。
【請求項４】
請求項１〜３のいずれかのコンテンツ同期システムまたはプログラムにおいて、さらに以下の手段を備えており：
(j-1)他の各サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、各サーバ毎にユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを対応する他のサーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-1)受信したリストとデータ記録部に記録されているデータを照合するリスト照合手段、
(n)前記照合の処理結果に基づいて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成するデータ作成手段、
前記データ追加手段は、他のサーバのデータ作成手段において作成されたデータを前記データ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項５】
請求項４のコンテンツ同期システムまたはプログラムにおいて、
前記削除データ作成手段は、前記リスト照合手段における照合の処理結果に基づいて、他のサーバのデータ記録部に記録されるべきでないデータを削除データとして作成し、
前記データ削除手段は、他のサーバの削除データ作成手段において作成された削除データを前記データ記録部から削除することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項６】
請求項１〜３のいずれかのコンテンツ同期システムまたはプログラムにおいて、さらに以下の手段を備えており：
(j-2)当該サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、ユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを他の各サーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-2)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合手段、
(t)前記照合の処理結果に基づいて、当該サーバのデータ記録部に記録されていない他のサーバのデータを要求するデータ要求手段
(u)要求を受けて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成する要求データ作成手段、
前記データ追加手段は、他のサーバの要求データ作成手段において作成されたデータを前記データ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項７】
請求項６のコンテンツ同期システムまたはプログラムにおいて、
前記データ削除手段は、前記リスト照合手段における照合の処理結果に基づいて、自己のサーバのデータ記録部に記録されるべきでない他のサーバで入力されたデータをデータ記録部から削除することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項８】
掲示板アプリケーションの提供を行う複数の掲示板サーバを備えた掲示板データ同期システムであって、各掲示板サーバは以下の手段を備えており：
(a)ユーザからの発言データを受け付けるデータ入力手段、
(b)受け付けた発言データに対してタイムスタンプを含むユニークＩＤを付与するＩＤ採番手段、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成手段、
(d)生成したデータを他のサーバに送信するデータ送信手段、
(e)他のサーバにおいて生成されたデータを受信するデータ受信手段、
(f)受信したデータをデータ記録部に追加するデータ追加手段、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信手段、
(h)他のサーバからのステータスを受信するステータス受信手段、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段、
(j-1)他の各サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、各サーバ毎にユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを対応する他のサーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-1)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合手段、
(n)前記照合の処理結果に基づいて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成するデータ作成手段、
前記データ記録手段は、他サーバのデータ追加手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを記録し、
前記データ追加手段は、他のサーバのデータ作成手段において作成されたデータを前記データ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項９】
掲示板アプリケーションの提供を行う複数の掲示板サーバを備えた掲示板データ同期システムを構成する各掲示板サーバをコンピュータを用いて実現するためのプログラムであって、コンピュータに以下の手段を構成させ：
(a)ユーザからの発言データを受け付けるデータ入力手段、
(b)受け付けた発言データに対してタイムスタンプを含むユニークＩＤを付与するＩＤ採番手段、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成手段、
(d)生成したデータを他のサーバに送信するデータ送信手段、
(e)他のサーバにおいて生成されたデータを受信するデータ受信手段、
(f)受信したデータをデータ記録部に追加するデータ追加手段、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信手段、
(h)他のサーバからのステータスを受信するステータス受信手段、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段、
(j-1)他の各サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、各サーバ毎にユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを対応する他のサーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-1)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合手段、
(n)前記照合の処理結果に基づいて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成するデータ作成手段、
前記データ記録手段は、他サーバのデータ追加手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを記録し、
前記データ追加手段は、他のサーバのデータ作成手段において作成されたデータを前記データ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項１０】
掲示板アプリケーションの提供を行う複数の掲示板サーバを備えた掲示板データ同期システムにおいて、各掲示板サーバは以下の手段を備えており：
(a)ユーザからの発言データを受け付けるデータ入力手段、
(b)受け付けた発言データに対してタイムスタンプを含むユニークＩＤを付与するＩＤ採番手段、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成手段、
(d)生成したデータを他のサーバに送信するデータ送信手段、
(e)他のサーバにおいて生成されたデータを受信するデータ受信手段、
(f)受信したデータをデータ記録部に追加するデータ追加手段、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信手段、
(h)他のサーバからのステータスを受信するステータス受信手段、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段、
(j-2)当該サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、ユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを他の各サーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-2)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合手段、
(t)前記照合の処理結果に基づいて、当該サーバのデータ記録部に記録されていない他のサーバのデータを要求するデータ要求手段
(u)要求を受けて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成する要求データ作成手段、
前記データ記録手段は、他サーバのデータ追加手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを記録し、
前記データ追加手段は、他のサーバの要求データ作成手段において作成されたデータを前記データ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項１１】
掲示板アプリケーションの提供を行う複数の掲示板サーバを備えた掲示板データ同期システムを構成する各掲示板サーバをコンピュータを用いて実現するためのプログラムであって、コンピュータに以下の手段を構成させ：
(a)ユーザからの発言データを受け付けるデータ入力手段、
(b)受け付けた発言データに対してタイムスタンプを含むユニークＩＤを付与するＩＤ採番手段、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成手段、
(d)生成したデータを他のサーバに送信するデータ送信手段、
(e)他のサーバにおいて生成されたデータを受信するデータ受信手段、
(f)受信したデータをデータ記録部に追加するデータ追加手段、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信手段、
(h)他のサーバからのステータスを受信するステータス受信手段、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段、
(j-2)当該サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、ユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを他の各サーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-2)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合手段、
(t)前記照合の処理結果に基づいて、当該サーバのデータ記録部に記録されていない他のサーバのデータを要求するデータ要求手段
(u)要求を受けて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成する要求データ作成手段、
前記データ記録手段は、他サーバのデータ追加手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを記録し、
前記データ追加手段は、他のサーバの要求データ作成手段において作成されたデータを前記データ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項１２】
請求項８〜１１のいずれかの掲示板データ同期システムまたはプログラムにおいて、さらに以下の手段を備えており：
(o)ユーザからのデータ削除の指示を受け付ける削除データ指示手段、
(p)受け付けた削除データに付与されたユニークＩＤに基づいて所定フォーマットの削除データを作成する削除データ作成手段、
(q)削除データ作成手段において作成された削除データを送信する削除データ送信手段、
(r)他のサーバから削除データを受信する削除データ受信手段、
(s)削除データ受信手段において受信した削除データに基づいてデータ記録部のコンテンツデータを削除、または、ステータス受信手段において受信したステータスに基づいて削除データ指示手段において指示されたデータをデータ記録部から削除するデータ削除手段、
前記ステータス送信手段は、前記削除の処理結果をステータスとして、データを送信したサーバに送信し、
前記データ削除手段は、他サーバのデータ削除手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを削除することを特徴とするもの。
【請求項１３】
請求項１２のコンテンツ同期システムまたはプログラムにおいて、
前記削除データ作成手段は、前記リスト照合手段における照合の処理結果に基づいて、他のサーバのデータ記録部に記録されるべきでないデータを削除データとして作成し、
前記データ削除手段は、他のサーバの削除データ作成手段において作成された削除データを前記データ記録部から削除することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項１４】
請求項１２のコンテンツ同期システムまたはプログラムにおいて、
前記データ削除手段は、前記リスト照合手段における照合の処理結果に基づいて、自己のサーバのデータ記録部に記録されるべきでない他のサーバで入力されたデータをデータ記録部から削除することにより、他のサーバとのコンテンツの同期を図ることを特徴とするもの。
【請求項１５】
ネットワーク上における複数のサーバに記録されたコンテンツの同期を図るコンテンツ同期方法であって、各サーバは以下のステップを備えていることを特徴とするもの：
(a)ユーザからのデータ入力を受け付けるデータ入力ステップ、
(b)受け付けたデータに対してユニークＩＤを付与するＩＤ採番ステップ、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成ステップ、
(d)生成したデータを他のサーバに送信するデータ送信ステップ、
(e)他のサーバにおいて生成されたデータを受信するデータ受信ステップ、
(f)受信したデータをデータ記録部に追加するデータ追加ステップ、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信ステップ、
(h)他のサーバからのステータスを受信するステータス受信ステップ、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録ステップ。
【請求項１６】
掲示板アプリケーションの提供を行う複数の掲示板サーバを備えた掲示板データ同期システムであって、各掲示板サーバは、以下のステップを備えていることを特徴とするもの：
(a)ユーザからの発言データを受け付けるデータ入力ステップ、
(b)受け付けた発言データに対してタイムスタンプを含むユニークＩＤを付与するＩＤ採番ステップ、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成ステップ、
(d)生成したデータを他のサーバに送信するデータ送信ステップ、
(e)他のサーバにおいて生成されたデータを受信するデータ受信ステップ、
(f)受信したデータをデータ記録部に追加するデータ追加ステップ、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信ステップ、
(h)他のサーバからのステータスを受信するステータス受信ステップ、
(i)受信したステータスに基づいてデータ入力ステップにおいて入力されたデータをデータ記録部に記録するデータ記録ステップ、
(j-1)他の各サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、各サーバ毎にユニークＩＤのリストを作成するリスト作成ステップ、
(k)作成したリストを対応する他のサーバに送信するリスト送信ステップ、
(l)他のサーバが作成したリストを受信するリスト受信ステップ、
(m-1)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合ステップ、
(n)前記照合の処理結果に基づいて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成するデータ作成ステップ。
【請求項１７】
掲示板アプリケーションの提供を行う複数の掲示板サーバを備えた掲示板データ同期システムであって、各掲示板サーバは、以下のステップを備えていることを特徴とするもの：
(a)ユーザからの発言データを受け付けるデータ入力ステップ、
(b)受け付けた発言データに対してタイムスタンプを含むユニークＩＤを付与するＩＤ採番ステップ、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成ステップ、
(d)生成したデータを他のサーバに送信するデータ送信ステップ、
(e)他のサーバにおいて生成されたデータを受信するデータ受信ステップ、
(f)受信したデータをデータ記録部に追加するデータ追加ステップ、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信ステップ、
(h)他のサーバからのステータスを受信するステータス受信ステップ、
(i)受信したステータスに基づいてデータ入力ステップにおいて入力されたデータをデータ記録部に記録するデータ記録ステップ、
(j-2)当該サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、ユニークＩＤのリストを作成するリスト作成ステップ、
(k)作成したリストを他の各サーバに送信するリスト送信ステップ、
(l)他のサーバが作成したリストを受信するリスト受信ステップ、
(m-2)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合ステップ、
(t)前記照合の処理結果に基づいて、当該サーバのデータ記録部に記録されていない他のサーバのデータを要求するデータ要求ステップ
(u)要求を受けて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成する要求データ作成ステップ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワーク上の複数のコンピュータ間において記録されている各コンテンツの同期を図るコンテンツ同期システムに関する。
【背景技術】
【０００２】
負荷分散型クラスタリングの技術分野において、同様の構成にしたサーバ等を複数用意しておき、クライアントからの処理要求を各サーバに割り振る方式が知られている。例えば、一つのドメイン名に対して複数のサーバのＩＰアドレスをＤＮＳに記述しておき、クライアントからの問い合わせがあるたびに、各サーバのＩＰアドレスを順番に返答することにより、1台のコンピュータへアクセスが集中するのを防ぐ「ＤＮＳラウンドロビン」がある。
【０００３】
また、外部ネットワークからの要求を一元的に管理し、同等の機能を持つ複数のサーバに要求を転送するロードバランサ（負荷分散処理装置）を用いて構成し、各サーバの反応速度に応じてクライアントからの処理要求を各サーバに転送する「ロードバランシング技術」がある。
【０００４】
このような分散処理技術においては、各サーバに記録されているコンテンツ間での同期がとれていることが前提となる。すなわち、コンテンツを取り扱うアプリケーションが、データの参照のみを行う参照系アプリケーションの場合には、各サーバ間のコンテンツが同一である限り問題はないが、データの更新を行う更新系アプリケーションの場合には、各クライアントによってコンテンツのデータが更新されるため、常に各サーバ間のコンテンツの同期を図っておくことが必要となる。
【０００５】
このような問題を解決するため、データベースの同期処理を実現する技術として「レプリケーション」が知られている。「レプリケーション」では、マスターとレプリカがネットワークを通じて互いにデータを交換しあい常に内容が一致するように構成されており、一ヶ所でデータを更新するとマスターとすべてのレプリカに自動的に更新内容が伝播される。
【０００６】
また、全てのデータベースをマスターとして構成した「マルチマスターレプリケーション」では、いずれか１つのマスターに対してデータが更新されると、他の全てのマスターに更新内容が伝播される。
【０００７】
さらに、異なるＯＳやデータベース管理システム間で連携させるシステムとして、送信側からデータの変更前後における差分データファイルを受信側に送信し、受信側では差分データファイルを変換して同期処理を行うシステムが知られている（例えば、特許文献１。）。
【０００８】
【特許文献１】特開２００２ー２４４９０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記のような方法においては、ユーザにとって同期処理を行う際の設定が複雑になるとともに、システムにとって同期処理のための処理負荷が増大するという問題が生じていた。
【００１０】
このため、掲示板のような比較的単純なコンテンツを分散処理環境で取り扱う場合であっても、複雑な設定や複雑な処理による同期処理が行われるという問題が発生していた。
【００１１】
また、データベースレプリケーションにおいては、所定のデータ形式を使用して設計・構築する必要があるため、同期させるコンテンツを有するサーバの増減やコンテンツの内容の加減にフレキシブルに対応することができない。
【００１２】
この発明は、上記のような問題を解決するためになされたものであり、サーバ間の各コンテンツの同期を容易に図ることができるとともに、コンテンツを有するサーバ装置の増減やコンテンツの内容の加減等にも容易に対応することのできるコンテンツ同期システムの提供を目的とする。
【課題を解決するための手段】
【００１３】
(1)(2)(15)この発明にかかるコンテンツ同期システムは、
ネットワーク上における複数のサーバに記録されたコンテンツの同期を図るコンテンツ同期システムであって、各サーバは以下の手段を備えており：
(a)ユーザからのデータ入力を受け付けるデータ入力手段、
(b)受け付けたデータに対してユニークＩＤを付与するＩＤ採番手段、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成手段、
(d)生成したデータを他のサーバに送信するデータ送信手段、
(e)他のサーバにおいて生成されたデータを受信するデータ受信手段、
(f)受信したデータをデータ記録部に追加するデータ追加手段、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信手段、
(h)他のサーバからのステータスを受信するステータス受信手段、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段、
前記データ記録手段は、他サーバのデータ追加手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを記録することを特徴としている。したがって、他のサーバにデータが記録されたことを確認してからデータが入力されたサーバにデータを記録することができるので、確実かつ簡単にサーバ間のコンテンツ同期を図ることができる。
【００１４】
(3)この発明にかかるコンテンツ同期システムは、さらに以下の手段を備えており：
(o)ユーザからのデータ削除の指示を受け付ける削除データ指示手段、
(p)受け付けた削除データに付与されたユニークＩＤに基づいて所定フォーマットの削除データを作成する削除データ作成手段、
(q)削除データ作成手段において作成された削除データを送信する削除データ送信手段、
(r)他のサーバから削除データを受信する削除データ受信手段、
(s)削除データ受信手段において受信した削除データに基づいてデータ記録部のコンテンツデータを削除、または、ステータス受信手段において受信したステータスに基づいて削除データ指示手段において指示されたデータをデータ記録部から削除するデータ削除手段、
ステータス送信手段は、前記削除の処理結果をステータスとして、データを送信したサーバに送信し、
データ削除手段は、他サーバのデータ削除手段におけるステータスが処理の成功を示すものである場合にのみ、データを削除することを特徴としている。したがって、あるサーバにアクセスするユーザによってコンテンツデータが削除された場合であっても、削除後のコンテンツについて、確実かつ簡単に他のサーバとのコンテンツの同期を図ることができる。
【００１５】
(4)この発明にかかるコンテンツ同期システムは、さらに以下の手段を備えており：
(j-1)他の各サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、各サーバ毎にユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを対応する他のサーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-1)受信したリストとデータ記録部に記録されているデータを照合するリスト照合手段、
(n)前記照合の処理結果に基づいて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成するデータ作成手段、
データ追加手段は、他のサーバのデータ作成手段において作成されたデータをデータ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴としている。したがって、一部のサーバがダウンしていた場合や新規にサーバを追加した場合であっても、確実かつ簡単に他のサーバとのコンテンツの同期を図ることができる。
【００１６】
(5)この発明にかかるコンテンツ同期システムは、
削除データ作成手段は、リスト照合手段における照合の処理結果に基づいて、他のサーバのデータ記録部に記録されるべきでないデータを削除データとして作成し、
データ削除手段は、他のサーバの削除データ作成手段において作成された削除データをデータ記録部から削除することにより、他のサーバとのコンテンツの同期を図ることを特徴としている。したがって、一部のサーバがダウンしていた場合や新規にサーバを追加した場合であっても、確実かつ簡単に他のサーバとのコンテンツの同期を図ることができる。
【００１７】
(6)この発明にかかるコンテンツ同期システムは、さらに以下の手段を備えており：
(j-2)当該サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、ユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを他の各サーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-2)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合手段、
(t)前記照合の処理結果に基づいて、当該サーバのデータ記録部に記録されていない他のサーバのデータを要求するデータ要求手段
(u)要求を受けて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成する要求データ作成手段、
データ追加手段は、他のサーバの要求データ作成手段において作成されたデータをデータ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴としている。したがって、一部のサーバがダウンしていた場合や新規にサーバを追加した場合であっても、確実かつ簡単に他のサーバとのコンテンツの同期を図ることができる。
【００１８】
(7)この発明にかかるコンテンツ同期システムは、
データ削除手段は、リスト照合手段における照合の処理結果に基づいて、自己のサーバのデータ記録部に記録されるべきでない他のサーバで入力されたデータをデータ記録部から削除することにより、他のサーバとのコンテンツの同期を図ることを特徴としている。したがって、一部のサーバがダウンしていた場合や新規にサーバを追加した場合であっても、確実かつ簡単に他のサーバとのコンテンツの同期を図ることができる。
【００１９】
(8)(9)(16)この発明にかかる掲示板データ同期システムにおいては、各掲示板サーバは以下の手段を備えており：
(a)ユーザからの発言データを受け付けるデータ入力手段、
(b)受け付けた発言データに対してタイムスタンプを含むユニークＩＤを付与するＩＤ採番手段、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成手段、
(d)生成したデータを他のサーバに送信するデータ送信手段、
(e)他のサーバにおいて生成されたデータを受信するデータ受信手段、
(f)受信したデータをデータ記録部に追加するデータ追加手段、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信手段、
(h)他のサーバからのステータスを受信するステータス受信手段、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段、
(j-1)他の各サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、各サーバ毎にユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを対応する他のサーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-1)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合手段、
(n)前記照合の処理結果に基づいて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成するデータ作成手段、
前記データ記録手段は、他サーバのデータ追加手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを記録し、
前記データ追加手段は、他のサーバのデータ作成手段において作成されたデータを前記データ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴としている。したがって、他のサーバに発言データが記録されたことを確認してからデータが入力されたサーバに発言データを記録することができるので、確実かつ簡単にサーバ間のコンテンツ同期を図ることができる。
【００２０】
また、一部のサーバがダウンしていた場合や新規にサーバを追加した場合であっても、確実かつ簡単に他のサーバとのコンテンツの同期を図ることができる。さらに、ユニークＩＤにタイムスタンプを含めることにより、各サーバにおいて入力された発言データを、入力された順に並べて表示することができる。
【００２１】
(10)(11)(17)この発明にかかる掲示板データ同期システムにおいては、各掲示板サーバは以下の手段を備えており：
(a)ユーザからの発言データを受け付けるデータ入力手段、
(b)受け付けた発言データに対してタイムスタンプを含むユニークＩＤを付与するＩＤ採番手段、
(c)受け付けたデータおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成するデータ生成手段、
(d)生成したデータを他のサーバに送信するデータ送信手段、
(e)他のサーバにおいて生成されたデータを受信するデータ受信手段、
(f)受信したデータをデータ記録部に追加するデータ追加手段、
(g)前記追加の処理結果をステータスとして、データを送信したサーバに送信するステータス送信手段、
(h)他のサーバからのステータスを受信するステータス受信手段、
(i)受信したステータスに基づいてデータ入力手段において入力されたデータをデータ記録部に記録するデータ記録手段、
(j-2)当該サーバで生成されたデータにかかるユニークＩＤをデータ記録部から抽出して、ユニークＩＤのリストを作成するリスト作成手段、
(k)作成したリストを他の各サーバに送信するリスト送信手段、
(l)他のサーバが作成したリストを受信するリスト受信手段、
(m-2)受信したリストとデータ記録部に記録されているデータのリストを照合するリスト照合手段、
(t)前記照合の処理結果に基づいて、当該サーバのデータ記録部に記録されていない他のサーバのデータを要求するデータ要求手段
(u)要求を受けて、他のサーバのデータ記録部に記録されていない当該サーバのデータを作成する要求データ作成手段、
前記データ記録手段は、他サーバのデータ追加手段におけるステータスが処理の成功を示すものである場合にのみ、前記データを記録し、
前記データ追加手段は、他のサーバの要求データ作成手段において作成されたデータを前記データ記録部に記録することにより、他のサーバとのコンテンツの同期を図ることを特徴としている。したがって、他のサーバに発言データが記録されたことを確認してからデータが入力されたサーバに発言データを記録することができるので、確実かつ簡単にサーバ間のコンテンツ同期を図ることができる。
【００２２】
また、一部のサーバがダウンしていた場合や新規にサーバを追加した場合であっても、確実かつ簡単に他のサーバとのコンテンツの同期を図ることができる。さらに、ユニークＩＤにタイムスタンプを含めることにより、各サーバにおいて入力された発言データを、入力された順に並べて表示することができる。
【００２３】
(10)この発明にかかる掲示板データ同期システムは、さらに以下の手段を備えており：
(o)ユーザからのデータ削除の指示を受け付ける削除データ指示手段、
(p)受け付けた削除データに付与されたユニークＩＤに基づいて所定フォーマットの削除データを作成する削除データ作成手段、
(q)削除データ作成手段において作成された削除データを送信する削除データ送信手段、
(r)他のサーバから削除データを受信する削除データ受信手段、
(s)削除データ受信手段において受信した削除データに基づいてデータ記録部のコンテンツデータを削除、または、ステータス受信手段において受信したステータスに基づいて削除データ指示手段において指示されたデータをデータ記録部から削除するデータ削除手段、
ステータス送信手段は、前記削除の処理結果をステータスとして、データを送信したサーバに送信し、
データ削除手段は、他サーバのデータ削除手段におけるステータスが処理の成功を示すものである場合にのみ、データを削除することを特徴としている。したがって、あるサーバにアクセスするユーザによって発言データが削除された場合であっても、削除後のコンテンツについて、確実かつ簡単に他のサーバとのコンテンツの同期を図ることができる。
【００２４】
(13)この発明にかかる掲示板データ同期システムは、
削除データ作成手段は、リスト照合手段における照合の処理結果に基づいて、他のサーバのデータ記録部に記録されるべきでないデータを削除データとして作成し、
データ削除手段は、他のサーバの削除データ作成手段において作成された削除データをデータ記録部から削除することにより、他のサーバとのコンテンツの同期を図ることを特徴としている。したがって、一部の掲示板サーバがダウンしていた場合や新規に掲示板サーバを追加した場合であっても、確実かつ簡単に他の掲示板サーバとの掲示板コンテンツデータの同期を図ることができる。
【００２５】
(14)この発明にかかる掲示板データ同期システムは、
データ削除手段は、リスト照合手段における照合の処理結果に基づいて、自己のサーバのデータ記録部に記録されるべきでない他のサーバで入力されたデータをデータ記録部から削除することにより、他のサーバとのコンテンツの同期を図ることを特徴としている。したがって、一部の掲示板サーバがダウンしていた場合や新規に掲示板サーバを追加した場合であっても、確実かつ簡単に他の掲示板サーバとの掲示板コンテンツデータの同期を図ることができる。
【００２６】
この発明において、掲示板とはいわゆる電子掲示板（ＢＢＳ：Bulletin Board System）のことである。電子掲示板は、参加者すべてが読み書きできる電子的な掲示板サービスのことを指し、その多くはインターネット上にＷｅｂサイトの形態で提供されている。
【発明を実施するための最良の形態】
【００２７】
以下、本発明における実施形態について、図面を参照して説明する。
【００２８】
１．第１の実施形態
１−１．全体構成図
図１に、本発明にかかるコンテンツ同期システムの全体構成図を示す。この図において、クライアント１０、第１サーバ１１、第２サーバ１２および第３サーバ１３はインターネット等のネットワーク１に接続されており、当該ネットワーク１を介してそれぞれが通信可能である。なお、図１においては、サーバは３つしか存在していないが３つ以上存在する構成であってもよい。また、クライアント１０は５つしか存在していないが実際には５つ以上存在する構成である。
【００２９】
第１サーバ１１、第２サーバ１２および第３サーバ１３は、それぞれ同一の掲示板アプリケーションを提供するためのサーバ装置であり、ＤＮＳラウンドロビン方式でクライアントからのアクセスを分散させて処理を行うものである。例えば、図２に示すようにＤＮＳラウンドロビンを設定すれば、掲示板アプリケーションのＵＲＬ「www.m_keijiban.com」に対応して複数のＩＰアドレス「１２．３４．５６．７８（第１サーバ１１）、１１．２２．３３．４４（第２サーバ１２）、８７．６５．４３．２１（第３サーバ１３）」をＤＮＳ（Domain Name System）に登録しておけば、ＤＮＳサーバはクライアントからの問い合わせがあるたびに各サーバ（第１サーバ１１、第２サーバ１２、第３サーバ１３）のＩＰアドレスを順番に返答する。
【００３０】
１−２．機能ブロック図
図３に各サーバにおける機能ブロック図を示す。この図において、各サーバ（第１サーバ１１、第２サーバ１２、第３サーバ１３）は、データ入力手段ａ、ＩＤ採番手段ｂ、データ生成手段ｃ、データ送信手段ｄ、データ受信手段ｅ、データ追加手段ｆ、ステータス送信手段ｇ、ステータス受信手段ｈ、データ記録手段ｉ、リスト作成手段ｊ-1、リスト送信手段ｋ、リスト受信手段ｌ、リスト照合手段ｍ-1、データ作成手段ｎおよびデータ記録部ｙを備えている。さらに、各サーバは、削除データ指示手段ｏ、削除データ作成手段ｐ、削除データ送信手段ｑ、削除データ受信手段ｒ、データ削除手段ｓを備えている。
【００３１】
データ入力手段ａは、クライアント１０のＷＷＷブラウザにおいてユーザによって入力された発言データの入力を受け付ける。ＩＤ採番手段ｂは、受け付けた発言データに対してタイムスタンプに基づいたユニークＩＤを付与する。データ生成手段ｃは、受け付けた発言データおよび付与されたユニークＩＤに基づいて所定フォーマットの送信データを生成する。データ送信手段ｄは、データ生成手段ｃにおいて生成した送信データ、またはデータ作成手段ｎにおいて作成されたデータを、ＤＮＳラウンドロビンの対象として設定された他のサーバに送信する。
【００３２】
データ受信手段ｅは、ＤＮＳラウンドロビンの対象として設定された他のサーバにおいて生成された送信データを受信する。データ追加手段ｆは、ＤＮＳラウンドロビンの対象として設定された他のサーバから受信した送信データを、自己のデータ記録部ｙに追加する。ステータス送信手段ｇは、データ追加手段ｆにおける追加処理の結果をステータスとして、ＤＮＳラウンドロビンの対象として設定された他のサーバのうちのデータを送信したいずれかのサーバに送信する。
【００３３】
ステータス受信手段ｈは、ＤＮＳラウンドロビンの対象として設定された他のサーバからの処理結果としてのステータスを受信する。データ記録手段ｉは、ＤＮＳラウンドロビンの対象として設定された他のサーバから受信したステータスを受けて、データ入力手段において入力された発言データをデータ記録部に記録する。
【００３４】
リスト作成手段ｊ−１は、ＤＮＳラウンドロビンの対象として設定された他の各サーバで生成された発言データにかかるユニークＩＤを、データ記録部ｙから抽出して各サーバ毎にユニークＩＤのリストを作成する。リスト送信手段ｋは、リスト作成手段ｊにおいて作成されたユニークＩＤのリストを、ＤＮＳラウンドロビンの対象として設定された他の各サーバに送信する。リスト受信手段ｌは、ＤＮＳラウンドロビンの対象として設定された他のサーバが作成したユニークＩＤのリストを受信する。リスト照合手段ｍ−１は、他のサーバから受信したリストと自己のデータ記録部ｙに記録されている発言データとを照合する。
【００３５】
データ作成手段ｎは、リスト照合手段ｍ−１における照合の処理結果に基づいて、ＤＮＳラウンドロビンの対象として設定された他のサーバのデータ記録部ｙに記録されていない当該サーバのデータを作成してデータ送信手段ｄに引き渡す。
【００３６】
データ記録部ｙは、各サーバの掲示板アプリケーションプログラム４０９１において取り扱われた発言データをすべて記録する。
【００３７】
削除データ指示手段ｏは、クライアント１０のＷＷＷブラウザにおいてユーザによって指示された発言データの削除を受け付ける。削除データ作成手段ｐは、削除を受け付けた発言データに付与されたユニークＩＤに基づいて所定フォーマットの削除データを作成する。削除データ送信手段ｑは、削除データ作成手段ｐにおいて作成した削除データを、ＤＮＳラウンドロビンの対象として設定された他のサーバに送信する。
【００３８】
削除データ受信手段ｒは、ＤＮＳラウンドロビンの対象として設定された他のサーバにおいて作成された削除データを受信する。データ削除手段ｓは、ＤＮＳラウンドロビンの対象として設定された他のサーバから受信した削除データ、または削除データ指示手段ｏにおいて指示された削除データに付与されたユニークＩＤに基づいて、自己のデータ記録部ｙの発言データを削除する。
【００３９】
１−３．ハードウェア構成
図１に示したコンテンツ同期システムを構成する各サーバ（第１サーバ１１、第２サーバ１２、第３サーバ１３）をＣＰＵを用いて実現したハードウェア構成の一例を図４に示す。図４に示すように、各サーバ（第１サーバ１１、第２サーバ１２、第３サーバ１３）は、ディスプレイ４０１、ＣＰＵ４０３、メモリ４０５、キーボード／マウス４０７、ハードディスク４０９、ＣＤ−ＲＯＭドライブ４１１および通信回路４１５を備えている。
【００４０】
ハードディスク４０９は、掲示板アプリケーションプログラム４０９１および掲示板データベース４０９３を有している。掲示板アプリケーションプログラム４０９１はＣＤ−ＲＯＭドライブ４１１を介してＣＤ−ＲＯＭ４１２に記録されたデータを読み出してインストールされたものである。なお、上記インストールは、通信回路４１５を用いてネットワーク０等からダウンロードしたデータを使用して行うようにしてもよい。
【００４１】
データ入力手段ａ、ＩＤ採番手段ｂ、データ生成手段ｃ、データ送信手段ｄ、データ受信手段ｅ、データ追加手段ｆ、ステータス送信手段ｇ、ステータス受信手段ｈ、データ記録手段ｉ、リスト作成手段ｊ−１、リスト送信手段ｋ、リスト受信手段ｌ、リスト照合手段ｍ−１およびデータ作成手段ｎは、掲示板アプリケーションプログラム４０９１によって実現される。データ記録部ｙは、掲示板データベース４０９３によって実現される。さらに、削除データ指示手段ｏ、削除データ作成手段ｐ、削除データ送信手段ｑ、削除データ受信手段ｒ、データ削除手段ｓは、掲示板アプリケーションプログラム４０９１によって実現される。
【００４２】
なお、クライアントのハードウェア構成は図４において示したサーバと基本的に同様であるが、ハードディスクには掲示板アプリケーションプログラム４０９１および掲示板データベース４０９３に代えて、掲示板を表示するためのブラウザプログラムがインストールされている（図示せず）。
【００４３】
１−４．処理詳細
図５〜８を用いて、本実施形態における処理詳細を説明する。なお、本実施形態においては、各サーバ間において同期対象となるコンテンツは、ユーザが投稿した発言データによって構成される電子掲示板のコンテンツとする。
【００４４】
１−４−１．発言データの投稿
図５に、ユーザが、クライアント１０を用いて大阪に設置されている第１サーバ１１の掲示板に対して発言データを投稿した場合に、当該発言データが各サーバ（東京の第２サーバ１２、名古屋の第３サーバ、…等）に記録される場合のフローチャートの例を示す。
【００４５】
ユーザが、クライアント１０のブラウザプログラムを起動して掲示板アプリケーションのＵＲＬを入力すると、ＤＮＳサーバは第１サーバ１１のＩＰアドレスをクライアントに回答し、回答されたＩＰアドレスに基づいてクライアント１０は第１サーバ１１にアクセスする（ステップＳ５０１）。例えば、図２において説明したように、クライアント１０からＵＲＬ「www.m_keijiban.com」を受けたＤＮＳサーバが、第１サーバ１１のＩＰアドレス「１２．３４．５６．７８」を回答することにより、クライアント１０は大阪の第１サーバ１１の掲示板アプリケーションプログラム４０９１にアクセスする。
【００４６】
アクセスを受けて、第１サーバ１１のＣＰＵ４０３は、ハードディスク４０９に記録している掲示板アプリケーションプログラム４０９１を起動させることによって、発言データの入力画面を含む掲示板画面を生成してクライアント１０に送信する（ステップＳ５１１）。図６に、このときに送信される掲示板画面の例を示す。図６において、掲示板画面６０は、掲示板エリア６１と投稿エリア６３から構成されている。
【００４７】
掲示板に投稿を行う場合、ユーザはクライアント１０から発言データを入力して第１サーバ１１に送信する（ステップＳ５０３）。例えば、図６の掲示板画面６０において、投稿者６３１に「一郎」、題名６３３に「お知らせ」、内容６３５に「○月×日に社内勉強会を開催します。…」をそれぞれ入力して投稿ボタン６５を押下すると、クライアント１０から第１サーバ１１へ発言データが送信される。
【００４８】
送信を受けて、第１サーバ１１のＣＰＵ４０３は、発言データに付与するためのユニークＩＤとして発言ＩＤを採番する（ステップＳ５１３）。図７のＡに、上記発言ＩＤを採番する場合の例を示す。ＣＰＵ４０３は、自己のサーバ番号７１「００１」、タイムスタンプである発言日時７３「０４０８１５１１３３５５」および２桁の乱数７５「７７」を連結することによって発言ＩＤを生成する。
【００４９】
ここで、第１サーバ１１のサーバ番号は「００１」であり、第２サーバ１２および第３サーバ１３のサーバ番号は、それぞれ「００２」、「００３」である。  また、発言日時７３のタイムスタンプは各サーバの内部時計に設定された日付時刻（ｙｙｍｍｄｄｈｈｍｍｓｓ）から取得している。なお、各サーバの時刻は、ＮＴＰ（Network Time Protocol）の利用等によって同期が取れているものとする。
【００５０】
発言ＩＤを採番するとＣＰＵ４０３は、クライアントから受信した発言データと上記において採番した発言ＩＤを組み合わせて、ＩＤ付発言データを生成する（ステップＳ５１５）。図７のＢに、上記ＩＤ付発言データを生成する場合の例を示す。ＣＰＵ４０３は、採番した発言ＩＤ７０「００１０４０８１５１１３３５５７７」、親＿発言ＩＤ７２「（ｎｕｌｌ）」、投稿者７４「一郎」、題名７６「お知らせ」、内容７８「○月×実に社内勉強会を開催します。…」を連結することによってＩＤ付発言データを生成する。ここで、親＿発言ＩＤ７２は、ある発言データに対して発言を行うような投稿を行った場合のみ付与されるものであり、この場合においては新規の投稿であるためｎｕｌｌ値としている。
【００５１】
ＩＤ付発言データを生成し終えると、第１サーバ１１のＣＰＵ４０３は、ＤＮＳラウンドラビンの対象として設定された他の各サーバに対して、上記ＩＤ付発言データを送信する（ステップＳ５１７）。図７のＣに、ＤＮＳラウンドラビンの対象として設定された他の各サーバのＩＰアドレスのリストを示す。第１サーバ１１のＣＰＵ４０３は、当該ＩＰアドレスのリストをハードディスク４０９に記憶しており、自己以外のＩＰアドレスに対してＩＤ付発言データを送信する。
【００５２】
例えば、第１サーバ１１はサーバ番号７７が「００１」であるので、これ以外のサーバ番号「００２」、「００３」…のＩＰアドレスの各サーバにＩＤ付データを送信する。
【００５３】
なお、ステップＳ５１７〜Ｓ５１９およびステップＳ５３１〜５３５（図５の枠５０内部）は、第１サーバ１１以外の各サーバ毎に処理が行われるものであるが、ここでは第２サーバ１２に対して行われる処理のみについて説明する。
【００５４】
送信を受けて、第２サーバ１２のＣＰＵ４０３は、ＩＤ付発言データを第２サーバ１２の掲示板データベース４０９３２に記録する（ステップＳ５３１、Ｓ５３３）。図８に、掲示板データベースの例を示す。このデータベースには、発言ＩＤ８０、親＿発言ＩＤ８２、投稿者８４、題名８６、内容８８が記録されている。例えば、図７のＢに示した発言データは、掲示板データベース４０９３２におけるレコード８０５として記録される。
【００５５】
第２サーバ１２のＣＰＵ４０３は、掲示板データベースに対する発言データの記録を終えると、記録結果の処理ステータスを第１サーバ１１に送信する（ステップＳ５３５）。例えば、この処理ステータスは、データベース操作時のＩＮＳＥＲＴ文の処理ステータスであるＳＱＬ変数等に基づいて生成すればよい。
【００５６】
第１サーバ１１のＣＰＵ４０３は、第２サーバ１２からのステータスを受けて、当該ステータスが掲示板データベースへの記録成功を示すものであるか否かを判断する（ステップＳ５１９）。例えば、記録成功時のステータスとして「１」、記録失敗時のステータスとして「０」が設定されているときは、ＣＰＵ４０３は受信したステータスが「１」であるか否かを判断する。
【００５７】
第１サーバ１１のＣＰＵ４０３は、第２サーバ１２から記録失敗のステータスである「０」を受信した場合、上記ステップＳ５１７に戻って処理を繰り返す（ステップＳ５１９、ＮＯ）。
【００５８】
一方、第１サーバ１１のＣＰＵ４０３は、第２サーバ１２から記録成功のステータスである「１」を受信した場合、または、第２サーバ１２からのステータスを所定時間内に受け取ることができずタイムアウトであると判断した場合には（ステップＳ５１９、ＹＥＳ）、ＩＤ付発言データを第１サーバ１１の掲示板データベース４０９３１に記録する（ステップＳ５２０）。
【００５９】
上述したように、上記ステップＳ５１７〜Ｓ５１９およびステップＳ５３１〜５３５（図５の枠５０内部）は、第１サーバ１１以外の各サーバ毎に処理が行われるため、第１サーバ１１のＣＰＵ４０３は、ＤＮＳラウンドラビンの対象として設定された他の各サーバから、記録成功のステータスである「１」を受信した場合、または、各サーバからのステータスを所定時間内に受け取ることができずタイムアウトであると判断した場合には、ＩＤ付発言データを第１サーバ１１の掲示板データベース４０９３１に記録するようにしてもよい。
【００６０】
１−４−２．強制同期（追加）
上記項目においては、一のサーバに発言データが入力されると、他のサーバに発言データの記録を試みた後に、当該サーバのデータベースに記録を行う掲示板データ同期システムの例について説明したが、本項目においては、各サーバにおいて記録している「他のサーバで入力された発言データ」に基づいて、他の各サーバに発言データの整合性を問い合わせ、必要な発言データを受信することによって発言データの同期を図る強制同期（追加）処理の例について説明する。
【００６１】
１−４−２−１．フローチャート
図９に、上記同期処理のフローチャートの例を示す。なお、この処理は、図７のＣにおいて示した自己以外の各サーバ毎に対して行われ、ここでは第１サーバ１１が第２サーバ１２に対して行う場合について説明する。
【００６２】
第１サーバ（大阪）１１のＣＰＵ４０３は、データ記録部ｙの掲示板データベース４０９３１から他サーバにおいて入力された発言ＩＤを抽出する（ステップＳ９１１）。例えば、サーバ番号が「００１」である第１サーバ１１のＣＰＵ４０３は、サーバ番号が「００２」である第２サーバ１２において入力された発言ＩＤを抽出する。より具体的な例を図１０に示す。
【００６３】
第１サーバ１１の掲示板データベース１０１は、掲示板データベース４０９３１の発言ＩＤのみを模式的に表示している。図７において説明したように、発言ＩＤの先頭３桁はサーバ番号を示していることにより、ＣＰＵ４０３は、発言ＩＤの先頭３桁が「００２」である発言ＩＤを抽出する。すなわち、第１サーバ１１の掲示板データベース１０１からレコード１０１１および１０１３の発言ＩＤが抽出される。
【００６４】
発言ＩＤの抽出を終えると、ＣＰＵ４０３は、発言データリストを作成する（ステップＳ９１３）。例えば、抽出した発言ＩＤ「００２…０２…」および「００２…０４…」に基づいてｃｓｖファイルまたはテキストファイル等を作成し、これを第２サーバ向け発言データリスト１０３とする。なお、サーバ番号が「００３」である第３サーバ１３に対しては、第３サーバ向け発言データリスト１０５が作成される。
【００６５】
ＣＰＵ４０３は、作成した発言データリストを第２サーバ（東京）１２に送信する（ステップＳ９１５）。例えば、上記第２サーバ向け発言データリスト１０３を送信する。
【００６６】
送信を受けて、第２サーバ１２のＣＰＵ４０３は、発言データリストを掲示板データベース４０９３２と照合する（ステップＳ９３１、Ｓ９３３）。発言データリストを掲示板データベースとを照合する場合の例を、図１１に模式的に示す。この図において、第２サーバ向け発言データリスト１０３の発言ＩＤレコード１０３１は、第２の掲示板データベース１１１におけるレコード１１１１の発言ＩＤに存在している。同様に、第２サーバ向け発言データリスト１０３の発言ＩＤレコード１０３２は、第２の掲示板データベース１１１におけるレコード１１１２の発言ＩＤに存在している。
【００６７】
しかしながら、第２サーバ１２の掲示板データベース１１１におけるレコード１１１３の発言ＩＤは、第２サーバ向け発言データリスト１０３には存在していない。したがって、発言データリスト１０３における発言ＩＤの数は、掲示板データベース１１１の発言データの数よりも少ないと判断できる。
【００６８】
上記のように判断できる場合（ステップＳ９３４）、ＣＰＵ４０３は、発言データリスト１０３に不足している発言ＩＤに基づいてＩＤ付発言データを作成する（ステップＳ９３５）。例えば、図１１における第２サーバ１２の掲示板データベース１１１のレコード１１１３の発言ＩＤ「００２…０７…」に基づいてＩＤ付発言データを作成する。なお、ＩＤ付発言データのフォーマットは、図７のＢにおいて示したものと同様である。
【００６９】
ＣＰＵ４０３は、作成したＩＤ付発言データを第１サーバ１１に送信する（ステップＳ９３７）。送信を受けて、第１サーバ１１のＣＰＵ４０３は、ＩＤ付発言データを第１サーバの掲示板データベース４０９３１に記録する（ステップＳ９１９）。
【００７０】
第１サーバ１１のＣＰＵ４０３は、掲示板データベース４０９３１に対するＩＤ付発言データの記録を終えると、記録結果の処理ステータスを第２サーバ１２に送信する（ステップＳ９２１）。例えば、この処理ステータスは、データベース操作時のＩＮＳＥＲＴ文の処理ステータスであるＳＱＬ変数等に基づいて生成すればよい。
【００７１】
第２サーバ１２のＣＰＵ４０３は、第１サーバ１１からのステータスを受けて、当該ステータスが掲示板データベースへの記録成功を示すものであるか否かを判断する（ステップＳ９３９）。例えば、記録成功時のステータスとして「１」、記録失敗時のステータスとして「０」が設定されているときは、ＣＰＵ４０３は受信したステータスが「１」であるか否かを判断する。
【００７２】
第２サーバ１２のＣＰＵ４０３は、第１サーバ１１から記録失敗のステータスである「０」を受信した場合、上記ステップＳ９３７に戻って処理を繰り返す（ステップＳ９３９、ＮＯ）。
【００７３】
一方、第２サーバ１２のＣＰＵ４０３は、第１サーバ１１から記録成功のステータスである「１」を受信した場合、または、第１サーバ１１からのステータスを所定時間内に受け取ることができずタイムアウトであると判断した場合には、当該処理を終了する（ステップＳ９３９、ＹＥＳ）。上述したように、上記処理は、第１サーバ１１以外の各サーバ毎に同様の処理が行われる。また、第２サーバ１２（第３サーバ１３）おいても、第２サーバ（第３サーバ）以外の各サーバ毎に同様の処理が行われる。
【００７４】
１−４−２−２．画面遷移の具体例
図１２に、上記強制同期（追加）処理の具体例を、各サーバにおける画面遷移として示す。＜状態１＞においては、第１サーバ（大阪）１１、第２サーバ（東京）１２、第３サーバ（名古屋）１３は全て正常に稼働している。なお、画面は第１サーバ（大阪）１１から発言データ「こんにちは」が投稿された直後を表している。
【００７５】
＜状態２＞においては、第１サーバ（大阪）１１に発言データ「大阪は暑いです。」が投稿され、この発言データが第３サーバ（名古屋）１３に送信されて同期（通常同期）した状態であり、第２サーバ（東京）１２は何らかのトラブル等によりサーバが停止している。
【００７６】
＜状態３＞においては、第３サーバ（名古屋）１３に発言データ「名古屋も暑いです。」が投稿され、この発言データが第１サーバ（大阪）１１に送信されて同期（通常同期）した状態であり、第２サーバ（東京）１２はサーバが復帰した直後の状態である。
【００７７】
＜状態４＞においては、第２サーバ（東京）１２に対して、第１サーバ（大阪）１１および第３サーバ（名古屋）１３から強制同期処理が行われた状態である。すなわち、第１サーバ（大阪）１１から発言データ「大阪は暑いです。」１２１が送信され、第３サーバ（名古屋）１３から発言データ「名古屋も暑いです。」１２３が送信された直後の状態である。このように、各サーバ間において強制同期処理を実行することにより、一部のサーバが停止した場合であっても、簡単かつ確実にコンテンツデータの同期処理を行うことができる。
【００７８】
１−４−３．発言データの削除
上記項目においては、一のサーバに発言データが投稿された場合に、他のサーバに当該発言データを同期させる例について説明したが、本項目においては、一のサーバにおいて発言データが削除された場合に、当該発言データを他のサーバから削除する例について説明する。図１３に、ユーザが、クライアント１０を用いて大阪に設置されている第１サーバ１１の掲示板に対して発言データの削除操作を行った場合に、当該発言データの削除情報である削除データが各サーバ（東京の第２サーバ１２、名古屋の第３サーバ、…等）に送信される場合のフローチャートの例を示す。
【００７９】
ユーザが、クライアント１０のブラウザプログラムを起動して掲示板アプリケーションの発言削除画面のＵＲＬを入力して第１サーバ１１にアクセスする（ステップＳ１３０１）。なお、発言削除画面は、図６に示した発言入力画面からリンクするようにしてもよい。
【００８０】
アクセスを受けて、第１サーバ１１のＣＰＵ４０３は、ハードディスク４０９に記録している掲示板アプリケーションプログラム４０９１を起動させることによって、図１４のＡに示すような発言削除画面１４１を生成してクライアント１０に送信する（ステップＳ１３１１）。
【００８１】
図１４において、発言削除画面１４１は、発言ＩＤ１４１１とパスワード１４１２の入力欄が空欄で表示される。発言データを削除する場合、ユーザはクライアント１０から発言データにかかる発言ＩＤを入力して第１サーバ１１に送信する（ステップＳ１３０３）。例えば、図１４の発言削除画面１４１において、発言ＩＤ１４１に「００１０４０８１５１１３３５５７７」、パスワード１４１２に「＊＊＊＊」をそれぞれ入力して削除ボタン１４３を押下すると、クライアント１０から第１サーバ１１へ、発言ＩＤとパスワードが削除指示データとして送信される。
【００８２】
送信を受けて、第１サーバ１１のＣＰＵ４０３は、削除指示データに基づいてＤＮＳラウンドロビンに設定された他の各サーバに送信するための削除データを生成する（ステップＳ１３１３）。なお、掲示板データベースの各発言レコードには、投稿時に削除用のパスワードが設定されており、当該パスワードが入力された前記パスワード１４１２「＊＊＊＊」と一致するか否かをチェックし、一致する場合にのみ当該削除処理を続行するように構成してもよい。これにより、パスワードを知っている投稿者にのみが発言データを削除できるようになり、掲示板データベースのセキュリティが向上する。
【００８３】
図１５のＢに、このときに生成される削除データの例を示す。ＣＰＵ４０３は、所定文言である処理フラグ１４５「ＤＥＬＥＴＥ」、クライアントから受信した発言ＩＤである発言ＩＤ１４７「００１０４０８１５１１３３５５７７」を連結して削除データを生成する。
【００８４】
削除データを生成すると、第１サーバ１１のＣＰＵ４０３は、ＤＮＳラウンドラビンの対象として設定された他の各サーバに対して、上記削除データを送信する（ステップＳ１３１５）。図７のＣに説明したように、ＤＮＳラウンドラビンの対象として設定された他の各サーバのＩＰアドレスのリストを参照し、自己以外のＩＰアドレスに対して削除データを送信する。
【００８５】
なお、上記と同様に、ステップＳ１３１５〜Ｓ１３１７およびステップＳ１３３１〜１３３５（図１３の枠１３０内部）は、第１サーバ１１以外の各サーバ毎に処理が行われるものであるが、ここでは第２サーバ１２に対して行われる処理のみについて説明する。
【００８６】
送信を受けて、第２サーバ１２のＣＰＵ４０３は、削除データに基づいて第２サーバ１２の掲示板データベース４０９３２の発言ＩＤを削除する（ステップＳ１３３１、Ｓ１３３３）。例えば、図１４のＢに示した削除データの発言ＩＤに基づいて、図８に示した掲示板データベース４０９３２から同一の発言ＩＤを有するレコード８０５を削除する。
【００８７】
第２サーバ１２のＣＰＵ４０３は、掲示板データベースから削除データにかかる発言データの削除を終えると、記録結果の処理ステータスを第１サーバ１１に送信する（ステップＳ１３３５）。例えば、この処理ステータスは、データベース操作時のＤＥＬＥＴＥ文の処理ステータスであるＳＱＬ変数等に基づいて生成すればよい。
【００８８】
第１サーバ１１のＣＰＵ４０３は、第２サーバ１２からのステータスを受けて、当該ステータスが掲示板データベースへの削除成功を示すものであるか否かを判断する（ステップＳ１３１７）。例えば、削除成功時のステータスとして「１」、削除失敗時のステータスとして「０」が設定されているときは、ＣＰＵ４０３は受信したステータスが「１」であるか否かを判断する。
【００８９】
第１サーバ１１のＣＰＵ４０３は、第２サーバ１２から削除失敗のステータスである「０」を受信した場合、上記ステップＳ１３１５に戻って処理を繰り返す（ステップＳ１３１７、ＮＯ）。
【００９０】
一方、第１サーバ１１のＣＰＵ４０３は、第２サーバ１２から削除成功のステータスである「１」を受信した場合、または、第２サーバ１２からのステータスを所定時間内に受け取ることができずタイムアウトであると判断した場合には（ステップＳ１３１７、ＹＥＳ）、ユーザによって削除指示された発言データを第１サーバ１１の掲示板データベース４０９３１から削除する（ステップＳ１３１９）。
【００９１】
上述したように、上記ステップＳ１３１５〜Ｓ１３１７およびステップＳ１３３１〜１３３５（図１３の枠１３０内部）は、第１サーバ１１以外の各サーバ毎に処理が行われるため、第１サーバ１１のＣＰＵ４０３は、ＤＮＳラウンドラビンの対象として設定された他の各サーバから、削除成功のステータスである「１」を受信した場合、または、各サーバからのステータスを所定時間内に受け取ることができずタイムアウトであると判断した場合には、ユーザによって削除指示された発言データを第１サーバ１１の掲示板データベース４０９３１から削除するようにしてもよい。
【００９２】
１−４−４．強制同期（削除）
上記項目においては、一のサーバにおいて発言データが削除されると、他のサーバの発言データの削除を試みた後に、当該サーバのデータベースから削除を行う例について説明したが、本項目においては、各サーバにおいて記録している「他のサーバで入力された発言データ」に基づいて、他の各サーバに発言データの整合性を問い合わせ、削除が必要な発言データを受信することによって発言データの同期を図る強制同期（削除）処理の例について説明する。
【００９３】
１−４−４−１．フローチャート
図１５に、上記同期処理のフローチャートの例を示す。なお、この処理は、図７のＣにおいて示した自己以外の各サーバ毎に対して行われ、ここでは第１サーバ１１が第２サーバ１２に対して行う場合について説明する。なお、第１サーバ１１におけるステップＳ１５１１〜Ｓ１５１５および第２サーバ１２におけるステップＳ１５３１〜Ｓ１５３３は、図９において示したステップＳ９１１〜Ｓ９１５およびステップＳ９３１〜９３３と同様の処理であるため説明を省略する。
【００９４】
第２サーバ１２のＣＰＵ４０３が、発言データリストを掲示板データベース４０９３２と照合する場合の例を、図１１ａに模式的に示す。この図において、第２サーバ向け発言データリスト１０３の発言ＩＤレコード１０３１は、第２の掲示板データベース１１１におけるレコード１１１１の発言ＩＤに存在している。同様に、第２サーバ向け発言データリスト１０３の発言ＩＤレコード１０３２は、第２の掲示板データベース１１１におけるレコード１１１２の発言ＩＤに存在している。
【００９５】
しかしながら、第２サーバ向け発言データリスト１０３のレコード１０３３の発言ＩＤは、第２サーバ１２の掲示板データベース１１１におけるいずれのレコードの発言ＩＤにも存在していない。したがって、発言データリスト１０３における発言ＩＤの数は、掲示板データベース１１１の発言データの数よりも多いと判断できる。
【００９６】
上記のように判断できる場合（ステップＳ１５３４）、ＣＰＵ４０３は、発言データリスト１０３に不足している発言ＩＤに基づいて削除データを作成する（ステップＳ１５３５）。例えば、図１１ａにおける第２サーバ向け発言データリスト１０３のレコード１０３３の発言ＩＤ「００２…０７…」に基づいて削除データを作成する。なお、削除データのフォーマットは、図１４のＢにおいて示したものと同様である。
【００９７】
ＣＰＵ４０３は、作成した削除データを第１サーバ１１に送信する（ステップＳ１５３７）。送信を受けて、第１サーバ１１のＣＰＵ４０３は、削除データの発言ＩＤに基づく発言データを第１サーバの掲示板データベース４０９３１から削除する（ステップＳ１５１９）。
【００９８】
第１サーバ１１のＣＰＵ４０３は、掲示板データベース４０９３１に対する発言データの削除を終えると、削除結果の処理ステータスを第２サーバ１２に送信する（ステップＳ１５２１）。例えば、この処理ステータスは、データベース操作時のＤＥＬＥＴＥ文の処理ステータスであるＳＱＬ変数等に基づいて生成すればよい。
【００９９】
第２サーバ１２のＣＰＵ４０３は、第１サーバ１１からのステータスを受けて、当該ステータスが掲示板データベースへの削除成功を示すものであるか否かを判断する（ステップＳ１５３９）。例えば、削除成功時のステータスとして「１」、削除失敗時のステータスとして「０」が設定されているときは、ＣＰＵ４０３は受信したステータスが「１」であるか否かを判断する。
【０１００】
第２サーバ１２のＣＰＵ４０３は、第１サーバ１１から削除失敗のステータスである「０」を受信した場合、上記ステップＳ１５３７に戻って処理を繰り返す（ステップＳ１５３９、ＮＯ）。
【０１０１】
一方、第２サーバ１２のＣＰＵ４０３は、第１サーバ１１から削除成功のステータスである「１」を受信した場合、または、第１サーバ１１からのステータスを所定時間内に受け取ることができずタイムアウトであると判断した場合には、当該処理を終了する（ステップＳ９３９、ＹＥＳ）。上述したように、上記処理は、第１サーバ１１以外の各サーバ毎に同様の処理が行われる。また、第２サーバ１２（第３サーバ１３）おいても、第２サーバ（第３サーバ）以外の各サーバ毎に同様の処理が行われる。
【０１０２】
１−４−４−２．画面遷移の具体例
図１２ａに、上記強制同期（削除）処理の具体例を、各サーバにおける画面遷移として示す。＜状態１＞においては、第１サーバ（大阪）１１、第２サーバ（東京）１２、第３サーバ（名古屋）１３は全て正常に稼働している。なお、画面は図１２において示した状態４と同様である。
【０１０３】
＜状態２＞においては、第１サーバ（大阪）１１から発言データ「大阪は暑いです。」が削除され、この削除データが第３サーバ（名古屋）１３に送信されて同期（通常同期）した状態であり、第２サーバ（東京）１２は何らかのトラブル等によりサーバが停止している。＜状態３＞においては、第２サーバ（東京）１２はサーバが復帰した直後の状態である。
【０１０４】
＜状態４＞においては、第２サーバ（東京）１２に対して、第１サーバ（大阪）１１から強制同期処理が行われた状態である。すなわち、第１サーバ（大阪）１１から削除データとして発言データ「大阪は暑いです。」１２５の発言ＩＤが送信され、掲示板データベースから当該発言データが削除された直後の状態である。このように、各サーバ間において強制同期処理を実行することにより、一部のサーバが停止した場合であっても、簡単かつ確実にコンテンツデータの同期処理を行うことができる。
【０１０５】
１−５．まとめ
以上説明したように、この発明によれば、発言データの書き込みが行われた場合に、自己の掲示板データベースに記録する前の段階で、ＤＮＳラウンドラビンの対象として設定された他の各サーバに対して発言データの書き込みを試みるように構成している。これにより、ＤＮＳラウンドラビンの対象として設定されたサーバ間における発言データの同期を簡単に取ることができる。また、ＤＮＳラウンドロビンの対象として設定されたサーバの一台が停止していた場合であっても、サーバの復帰後に強制的に同期処理を行うことにより、停止中に追加または削除された発言データを確実に同期させることができる。
【０１０６】
したがって、本発明によれば、各サーバ間において掲示板データベースのレプリケーション設定等の煩わしい設定やデータベース機能を利用する必要がなく、複数サーバによる分散処理環境において簡単かつ確実にコンテンツデータの同期を図ることができる。
【０１０７】
２．第２の実施形態
第１の実施形態における強制同期処理においては、当該サーバにおいて記録している他のサーバの発言データに基づいて発言データリストを作成し、この発言データリストに基づいて他の各サーバにおける発言データの整合性を問い合わせ、他のサーバから必要な発言データまたは削除データを受信することによって発言データの同期を図る構成としている。
【０１０８】
本実施形態においては、当該サーバにおいて記録している当該サーバの発言データに基づいて発言データリストを作成し、この発言データリストに基づいて他の各サーバにおける発言データの整合性を問い合わせ、他のサーバに対して必要な発言データまたは削除データを送信することによって発言データの同期を図る構成について説明する。
【０１０９】
２−１．全体構成図
本実施形態における全体構成図は、第１の実施形態において示した図１と同様であり、第１サーバ１１、第２サーバ１２および第３サーバ１３は、ＤＮＳラウンドロビン方式でクライアントからのアクセスを分散させて掲示板アプリケーションを提供するためのサーバ装置である。
【０１１０】
２−２．機能ブロック図
図１６に各サーバにおける機能ブロック図を示す。この図において、各サーバ（第１サーバ１１、第２サーバ１２、第３サーバ１３）は、データ入力手段ａ、ＩＤ採番手段ｂ、データ生成手段ｃ、データ送信手段ｄ、データ受信手段ｅ、データ追加手段ｆ、ステータス送信手段ｇ、ステータス受信手段ｈ、データ記録手段ｉ、リスト作成手段ｊ−２、リスト送信手段ｋ、リスト受信手段ｌ、リスト照合手段ｍ−２、データ要求手段ｔ、データ作成手段ｕおよびデータ記録部ｙを備えている。さらに、各サーバは、削除データ指示手段ｏ、削除データ作成手段ｐ、削除データ送信手段ｑ、削除データ受信手段ｒ、データ削除手段ｓを備えている。
【０１１１】
リスト作成手段ｊ−２は、当該サーバで生成された発言データにかかるユニークＩＤを、データ記録部ｙから抽出し、ＤＮＳラウンドロビンの対象として設定された他の各サーバ向けのユニークＩＤのリストを作成する。リスト照合手段ｍ−２は、他のサーバから受信したリストと自己のデータ記録部ｙに記録されている発言データとを照合する。データ要求手段ｔは、リスト照合手段ｍ−２の結果に基づいて、ＤＮＳラウンドロビンの対象として設定された他のサーバのデータ記録部ｙに記録されていない当該サーバのデータにかかるユニークＩＤを、他のサーバに送信する。
【０１１２】
データ作成手段ｕは、他のサーバからのユニークＩＤを受けて、これにかかるデータをデータ記録部ｙから読み出して送信データを作成する。データ送信手段ｄは、データ生成手段ｃにおいて生成した送信データ、またはデータ作成手段ｕにおいて作成されたデータを、ＤＮＳラウンドロビンの対象として設定された他のサーバに送信する。
【０１１３】
なお、データ入力手段ａ、ＩＤ採番手段ｂ、データ生成手段ｃ、データ受信手段ｅ、データ追加手段ｆ、ステータス送信手段ｇ、ステータス受信手段ｈ、データ記録手段ｉ、リスト送信手段ｋ、リスト受信手段ｌ、データ記録部ｙ、削除データ指示手段ｏ、削除データ作成手段ｐ、削除データ送信手段ｑ、削除データ受信手段ｒおよびデータ削除手段ｓは、第１の実施形態と同様である。
【０１１４】
２−３．ハードウェア構成
本実施形態におけるコンテンツ同期システムを構成する各サーバ（第１サーバ１１、第２サーバ１２、第３サーバ１３）をＣＰＵを用いて実現したハードウェア構成の一例は、第１の実施形態において示した図４と同様である。
【０１１５】
データ入力手段ａ、ＩＤ採番手段ｂ、データ生成手段ｃ、データ送信手段ｄ、データ受信手段ｅ、データ追加手段ｆ、ステータス送信手段ｇ、ステータス受信手段ｈ、データ記録手段ｉ、リスト作成手段ｊ−２、リスト送信手段ｋ、リスト受信手段ｌ、リスト照合手段ｍ−２、データ要求手段ｔおよびデータ作成手段ｕは、掲示板アプリケーションプログラム４０９１によって実現される。データ記録部ｙは、掲示板データベース４０９３によって実現される。さらに、削除データ指示手段ｏ、削除データ作成手段ｐ、削除データ送信手段ｑ、削除データ受信手段ｒ、データ削除手段ｓは、掲示板アプリケーションプログラム４０９１によって実現される。
【０１１６】
なお、第１の実施形態と同様に、クライアントのハードウェア構成は図４において示したサーバと基本的に同様であるが、ハードディスクには掲示板アプリケーションプログラム４０９１および掲示板データベース４０９３に代えて、掲示板を表示するためのブラウザプログラムがインストールされている（図示せず）。
【０１１７】
２−４．処理詳細
上述したように、本実施形態においては、強制同期処理のみが第１の実施形態と異なるため、強制同期（追加）および強制同期（削除）の場合について説明する。すなわち、本実施形態は、第１の実施形態に示した「１−４−１．発言データの投稿」および「１−４−３．発言データの削除」の処理に、以下の「２−４−１．強制同期（追加）」および「２−４−２．強制同期（削除）」の処理を加えた構成である。
【０１１８】
図１７〜２１を用いて、本実施形態における処理詳細を説明する。なお、本実施形態においても、第１の実施形態と同様に、各サーバ間において同期対象となるコンテンツは、ユーザが投稿した発言データによって構成される電子掲示板のコンテンツとする。
【０１１９】
２−４−１．強制同期（追加）
本項目においては、各サーバにおいて記録している「自己のサーバで入力された発言データ」に基づいて、他の各サーバに発言データの整合性を問い合わせ、必要な発言データを送信することによって発言データの同期を図る強制同期（追加）処理の例について説明する。
【０１２０】
２−４−１−１．フローチャート
図１７に、上記同期処理のフローチャートの例を示す。なお、この処理は、図７のＣにおいて示した自己以外の各サーバ毎に対して行われ、ここでは第１サーバ１１が第２サーバ１２に対して行う場合について説明する。
【０１２１】
第１サーバ（大阪）１１のＣＰＵ４０３は、データ記録部ｙの掲示板データベース４０９３１から自己のサーバにおいて入力された発言ＩＤを抽出する（ステップＳ１７１１）。例えば、ＣＰＵ４０３は、サーバ番号が「００１」である第１サーバ１１において入力された発言ＩＤをすべて抽出する。より具体的な例を図１８に示す。
【０１２２】
第１サーバ１１の掲示板データベース１８１は、掲示板データベース４０９３１の発言ＩＤのみを模式的に表示している。図７において説明したように、発言ＩＤの先頭３桁はサーバ番号を示していることにより、ＣＰＵ４０３は、発言ＩＤの先頭３桁が「００１」である発言ＩＤを抽出する。すなわち、第１サーバ１１の掲示板データベース１０１からレコード１８１１および１８１３の発言ＩＤが抽出される。
【０１２３】
発言ＩＤの抽出を終えると、ＣＰＵ４０３は、発言データリストを作成する（ステップＳ１８１３）。例えば、抽出した発言ＩＤ「００１…０１…」および「００１…０６…」に基づいてｃｓｖファイルまたはテキストファイル等を作成し、これを第２サーバ向け発言データリスト１８３とする。なお、第３サーバ１３に対しては、第３サーバ向け発言データリスト１８５（図１８）が作成される。
【０１２４】
ＣＰＵ４０３は、作成した発言データリストを第２サーバ（東京）１２に送信する（ステップＳ９１５）。例えば、上記第２サーバ向け発言データリスト１８３を送信する。
【０１２５】
送信を受けて、第２サーバ１２のＣＰＵ４０３は、発言データリストを掲示板データベース４０９３２と照合する（ステップＳ１８３１、Ｓ１８３３）。
【０１２６】
発言データリストを掲示板データベースとを照合する場合の例を、図１９のＡに模式的に示す。この図において、第２サーバ向け発言データリスト１８３の発言ＩＤレコード１０３１は、第２の掲示板データベース１９１におけるレコード１９１１の発言ＩＤに存在している。
【０１２７】
しかしながら、第２サーバ向け発言データリスト１０３におけるレコード１８３１の発言ＩＤは、第２サーバ１２の掲示板データベース１９１には存在していない。したがって、発言データリスト１８３における発言ＩＤの数は、掲示板データベース１９１の発言データの数よりも多いと判断できる。
【０１２８】
上記のように判断できる場合（ステップＳ１７３４）、第２サーバ１２のＣＰＵ４０３は、発言データリスト１８３に不足している発言ＩＤに基づいて発言データの要求するための要求データリストを作成する（ステップＳ１７３５）。例えば、図１９のＡにおける第２サーバ向け発言データリストのレコード１８３１の発言ＩＤ「００１…０６…」に基づいて要求データリストを作成する。なお、要求データリストのフォーマットを図１９のＢに示す。図に示すように、要求データリストは、処理フラグ１９５と発言ＩＤ１９７から構成される。
【０１２９】
第２サーバ１２のＣＰＵ４０３は、作成した要求データリストを第１サーバ１１に送信する（ステップＳ１７３７）。送信を受けて、第１サーバ１１のＣＰＵ４０３は、要求データリストに基づいて発言データを抽出する（ステップＳ１７１９）。ＣＰＵ４０３は、抽出した発言データを第２サーバ１２に送信する（ステップＳ１７２１）。例えば、ここで送信される発言データのフォーマットは、図７のＢにおいて示したものと同様である。
【０１３０】
送信を受けて、第２サーバ１２のＣＰＵ４０３は発言データを第２サーバの掲示板データベース４０９３２に記録する（ステップＳ１７３９）。
【０１３１】
第２サーバ１２のＣＰＵ４０３は、掲示板データベース４０９３２に対する発言データの記録を終えると、記録結果の処理ステータスを第１サーバ１１に送信する（ステップＳ１７４１）。例えば、この処理ステータスは、データベース操作時のＩＮＳＥＲＴ文の処理ステータスであるＳＱＬ変数等に基づいて生成すればよい。
【０１３２】
第１サーバ１１のＣＰＵ４０３は、第２サーバ１２からのステータスを受けて、当該ステータスが掲示板データベースへの記録成功を示すものであるか否かを判断する（ステップＳ１７２３）。例えば、記録成功時のステータスとして「１」、記録失敗時のステータスとして「０」が設定されているときは、ＣＰＵ４０３は受信したステータスが「１」であるか否かを判断する。
【０１３３】
第１サーバ１１のＣＰＵ４０３は、第２サーバ１２から記録失敗のステータスである「０」を受信した場合、上記ステップＳ１７２１に戻って処理を繰り返す（ステップＳ１７２３、ＮＯ）。
【０１３４】
一方、第１サーバ１１のＣＰＵ４０３は、第２サーバ１２から記録成功のステータスである「１」を受信した場合、または、第１サーバ１１からのステータスを所定時間内に受け取ることができずタイムアウトであると判断した場合には、当該処理を終了する（ステップＳ１７２３、ＹＥＳ）。
【０１３５】
上述したように、上記処理は、第１サーバ１１以外の各サーバ毎に同様の処理が行われる。また、第２サーバ１２（第３サーバ１３）おいても、第２サーバ（第３サーバ）以外の各サーバ毎に同様の処理が行われる。なお、本実施形態における画面遷移の具体例も、第１の実施形態の図１２において示したものと同様である。
【０１３６】
２−４−２．強制同期（削除）
本項目においては、各サーバにおいて記録している「自己のサーバで入力された発言データ」に基づいて、他の各サーバに発言データの整合性を問い合わせ、削除が必要な発言データを削除させることによって発言データの同期を図る強制同期（削除）処理の例について説明する。
【０１３７】
２−４−２−１．フローチャート
図２０に、上記同期処理のフローチャートの例を示す。なお、この処理は、図７のＣにおいて示した自己以外の各サーバ毎に対して行われ、ここでは第１サーバ１１が第２サーバ１２に対して行う場合について説明する。なお、第１サーバ１１におけるステップＳ２０１１〜Ｓ２０１５および第２サーバ１２におけるステップＳ２０３１〜Ｓ２０３３は、図１７において示したステップＳ１５１１〜Ｓ１５１５およびステップＳ１５３１〜１５３３と同様の処理であるため説明を省略する。
【０１３８】
第２サーバ１２のＣＰＵ４０３が、発言データリストを掲示板データベース４０９３２と照合する場合の例を、図１９ａに模式的に示す。この図において、第２サーバ向け発言データリスト１８３の発言ＩＤレコード１８３１は、第２の掲示板データベース１９１におけるレコード１９１１の発言ＩＤに存在している。同様に、第２サーバ向け発言データリスト１８３の発言ＩＤレコード１８３２は、第２の掲示板データベース１９１におけるレコード１９１２の発言ＩＤに存在している。
【０１３９】
しかしながら、第２サーバ１２の掲示板データベース１９１におけるレコード１９１３の発言ＩＤは、第２サーバ向け発言データリスト１８３の、いずれのレコードの発言ＩＤにも存在していない。したがって、発言データリスト１８３における発言ＩＤの数は、掲示板データベース１９１の発言データの数よりも少ないと判断できる。
【０１４０】
上記のように判断できる場合（ステップＳ２０３４）、第２サーバ１２のＣＰＵ４０３は、発言データリスト１８３に不足している発言ＩＤに基づいて第２サーバの掲示板データベース４０９３２から発言データを削除する（ステップＳ２０３５）。例えば、図１９ａにおける第２サーバの掲示板データベース１９１のレコード１９１３の発言ＩＤ「００１…０９…」に基づいて発言データを削除する。
【０１４１】
第２サーバ１１のＣＰＵ４０３は、掲示板データベース４０９３２に対する発言データの削除を終えると、削除結果の処理ステータスを第１サーバ１１に送信する（ステップＳ２０３７）。例えば、この処理ステータスは、データベース操作時のＤＥＬＥＴＥ文の処理ステータスであるＳＱＬ変数等に基づいて生成すればよい。
【０１４２】
第１サーバ１１のＣＰＵ４０３は、第２サーバ１２からのステータスを受けて、当該ステータスが掲示板データベースへの削除成功を示すものであるか否かを判断する（ステップＳ２０２３）。例えば、削除成功時のステータスとして「１」、削除失敗時のステータスとして「０」が設定されているときは、ＣＰＵ４０３は受信したステータスが「１」であるか否かを判断する。第１サーバ１１のＣＰＵ４０３は、第２サーバ１２から削除失敗のステータスである「０」を受信した場合、上記ステップＳ２０１５に戻って処理を繰り返す（ステップＳ２０２３、ＮＯ）。
【０１４３】
一方、第１サーバ１１のＣＰＵ４０３は、第２サーバ１２から削除成功のステータスである「１」を受信した場合、または、第１サーバ１１からのステータスを所定時間内に受け取ることができずタイムアウトであると判断した場合には、当該処理を終了する（ステップＳ２０２３、ＹＥＳ）。上述したように、上記処理は、第１サーバ１１以外の各サーバ毎に同様の処理が行われる。また、第２サーバ１２（第３サーバ１３）おいても、第２サーバ（第３サーバ）以外の各サーバ毎に同様の処理が行われる。なお、本実施形態における画面遷移の具体例も、第１の実施形態の図１２ａにおいて示したものと同様である。
【０１４４】
２−５．まとめ
以上説明したように、この発明によれば、ＤＮＳラウンドロビンの対象として設定されたサーバの一台が停止していた場合であっても、サーバの復帰後に強制的な同期処理を行うことにより、停止中に追加または削除された発言データを確実に同期させることができる。したがって、本発明によれば、各サーバ間において掲示板データベースのレプリケーション設定等の煩わしい設定やデータベース機能を利用する必要がなく、複数サーバによる分散処理環境において簡単かつ確実にコンテンツデータの同期を図ることができる。
【０１４５】
３．その他の実施形態
上記実施形態においては、発言データを取り扱う掲示板アプリケーションを例に説明したが、掲示板アプリケーション以外のアプリケーションプログラムによって構成してもよい。例えば、会話データを取り扱う（１）チャットアプリケーションや販売データを取り扱う（２）販売管理システム等がこれに該当する。
【０１４６】
（１）チャットアプリケーションの場合は、上記において説明した掲示板アプリケーションとシステム構成および処理フローチャート（図１〜２０）は同一であるが、掲示板データベース４０９３において記録する発言レコードの数が異なる。すなわち、チャットでは掲示板のように過去に発言されたデータを表示する必要がない。これにより本発明はチャットアプリケーションにも適用可能であることになる。なお、この場合、掲示板データベース４０９３の代わりに単純なテキストファイルやＣＳＶを用いて発言レコードを記録するように構成してもよい。
【０１４７】
（２）商品を販売する都度、クライアント１０からいずれかのサーバ（第１サーバ１１、第２サーバ１２、第３サーバ１３）に販売データを送信し、各クライアントから送信された販売データの詳細や合計金額等を販売状況として表示させる販売管理システムについて考える。
【０１４８】
（２−１）画面
図２２に、上記販売管理システムのクライアント１０における販売管理画面２２０の例を示す。図２２において、販売管理画面２２０は、販売データの詳細や合計金額等を表示するための販売状況エリア２２１と、ユーザが販売データを入力するための入力エリア２２３から構成されている。販売管理システムに販売データを入力する場合、ユーザはクライアント１０から、販売店２２３１に「名古屋」、商品名２２３１に「商品Ｃ」、販売価格２２３５に「１５００円」をそれぞれ入力して入力ボタン２２５を押下すると、クライアント１０から第３サーバ１３へ販売データが送信される。
【０１４９】
（２−２）データベース
このような販売管理システムの場合、上記において説明した掲示板アプリケーションとシステム構成および処理フローチャート（図１〜２０）は同一であるが、
掲示板データベース４０９３において記録する発言レコードの構成内容が異なる。すなわち、販売管理システムでは掲示板のように親発言という概念が存在せず、発言ＩＤ、投稿者、題名、内容に代えて、販売ＩＤ、販売店、商品名、販売価格を使用する。
【０１５０】
図２１に販売データベースの例を示す。このデータベースには、販売ＩＤ２１０、販売店２１２、商品名２１４および販売価格２１６が記録されている。例えば、図２２の入力エリア２２３に示す販売データを送信すると、図２１に示す販売レコード２１８が記録される。なお、販売ＩＤの採番方法は上記の掲示板データベースにおける発言ＩＤと同様である。
【０１５１】
（２−３）画面遷移の具体例
図２３に、上記販売管理システムにおける強制同期（追加）処理の具体例を示す。＜状態１＞においては、第１サーバ（大阪）１１、第２サーバ（東京）１２、第３サーバ（名古屋）１３は全て正常に稼働している。なお、画面は第１サーバ（大阪）１１から販売データ「商品Ａ  １０００円」が入力された直後を表している。
【０１５２】
＜状態２＞においては、第２サーバ（東京）１２から販売データ「商品Ｂ  ３０００円」が入力され、この発言データが第３サーバ（名古屋）１３に送信されて同期（通常同期）した状態であり、第１サーバ（大阪）１１は何らかのトラブル等によりサーバが停止している。＜状態３＞においては、第３サーバ（名古屋）１３に販売データ「商品Ｃ  １５００円」が投稿され、この発言データが第３サーバ（名古屋）１３に送信されて同期（通常同期）した状態であり、第１サーバ（大阪）１１はサーバが復帰した直後の状態である。
【０１５３】
＜状態４＞においては、第１サーバ（大阪）１１に対して、第２サーバ（東京）１２および第３サーバ（名古屋）１３から強制同期処理が行われた状態である。すなわち、第２サーバ（東京）１２から販売データ「商品Ｂ  ３０００円」２３１が送信され、第３サーバ（名古屋）１３から販売データ「商品Ｃ  １５００円」２３３が送信された直後の状態である。このように、販売管理システムに本発明を提供した場合であっても、各サーバ間において強制同期処理を実行することにより、一部のサーバが停止した場合であっても、簡単かつ確実にコンテンツデータの同期処理を行うことができる。
【０１５４】
上記実施形態においては、クライアント１０にインストールされたブラウザプログラムを用いて掲示板アプリケーションを表示させるように構成したが、ブラウザプログラムに代えてその他のプログラムを用いてもよい。例えば、Visual Basic（商標）、Visual C++（商標）またはその他の開発言語等で開発されたアプリケーションプログラムがこれに該当する。
【０１５５】
上記実施形態においては、ＩＰアドレスのリスト（図７のＣ）を用いることにより、ＤＮＳラウンドラビンの対象として設定された各サーバのＩＰアドレスを取得するようにしたが、最新のＩＰアドレスのリストを所定サーバに記録しておき、最新のＩＰアドレスのリストと自己のリストとを照合して送信対象となる各サーバのＩＰアドレスを更新した後に、各サーバに対してデータを送信するように構成してもよい。これにより、ＤＮＳラウンドロビンに設定されるサーバの増減があった場合であっても、所定サーバに記録するＩＰアドレスのリストのみを更新しておくだけで、各サーバに同期処理の対象となるサーバを認識させることができる。
【０１５６】
上記実施形態においては、第１の実施形態と第２の実施形態に分けて説明したが、各強制同期処理（追加および削除）については、それぞれの実施形態で説明した処理を同時に行うようにしてもよい。これにより、同期処理を詳細に行うことができ、コンテンツデータの信頼性が向上する。また、運用時間帯に応じて、各同期処理を実行するように構成してもよい。例えば、発言の投稿が多い時間帯には、第１の実施形態で説明した強制同期処理を行い、発言の投稿が少ない時間帯には、第１の実施形態で説明した強制同期処理を行うように構成してもよい。これにより、システムにおける処理負荷に応じた同期処理を行うことができ効率がよい。
【０１５７】
上記実施形態においては、図３に示す各機能を実現する為に、ＣＰＵを用いソフトウェアによってこれを実現している。しかし、その一部もしくは全てを、ロジック回路等のハードウェアによって実現してもよい。なお、プログラムの一部の処理をさらに、オペレーティングシステム（ＯＳ）にさせるようにしてもよい。
【図面の簡単な説明】
【０１５８】
【図１】この発明のコンテンツ同期システムの全体構成の例を示す図である。
【図２】この発明のＤＮＳラウンドロビンの設定の例を示す図である。
【図３】この発明のコンテンツ同期システムを構成するサーバの機能ブロック図の例を示す図である。
【図４】この発明のコンテンツ同期システムを構成するサーバのハードウェア構成図の例を示す図である。
【図５】この発明の発言データの投稿時におけるフローチャートの例を示す図である。
【図６】この発明の発言入力画面の例を示す図である。
【図７】この発明の（Ａ）発言ＩＤ、（Ｂ）発言データ、（Ｃ）ＩＰアドレスのリストの各例を示す図である。
【図８】この発明の掲示板データベースの例を示す図である。
【図９】この発明の強制同期（追加）のフローチャートの例を示す図である。
【図１０】この発明の発言データリストの作成における例を示す図である。
【図１１】この発明の追加時の発言データリストの照合における例を示す図である。
【図１１ａ】この発明の削除時の発言データリストの照合における例を示す図である。
【図１２】この発明の追加時の各サーバ間の画面遷移の例を示す図である。
【図１２ａ】この発明の削除時の各サーバ間の画面遷移の例を示す図である。
【図１３】この発明の強制同期（削除）フローチャートの例を示す図である。
【図１４】この発明の（Ａ）発言削除画面および（Ｂ）削除データの例を示す図である。
【図１５】この発明の強制同期（削除）のフローチャートの例を示す図である。
【図１６】この発明のコンテンツ同期システムにおける機能ブロック図の例を示す図である。
【図１７】この発明の強制同期（追加）のフローチャートの例を示す図である。
【図１８】この発明の発言データリストの作成における例を示す図である。
【図１９】この発明の追加時の（Ａ）発言データリストの照合における例および（Ｂ）要求データリストの例を示す図である。
【図１９ａ】この発明の削除時の発言データリストの照合における例を示す図である。
【図２０】この発明の強制同期（削除）のフローチャートの例を示す図である。
【図２１】この発明を販売管理システムに適用した場合の販売データベースの例を示す図である。
【図２２】この発明を販売管理システムに適用した場合の販売管理画面の例を示す図である。
【図２３】この発明を販売管理システムに適用した場合の追加時の各サーバ間の画面遷移の例を示す図である。
【符号の説明】
【０１５９】
１０    クライアント
１１    第１サーバ
１２    第２サーバ
１３    第３サーバ
【図１】
2006099164.tif 000003
【図２】
2006099164.tif 000004
【図３】
2006099164.tif 000005
【図４】
2006099164.tif 000006
【図５】
2006099164.tif 000007
【図６】
2006099164.tif 000008
【図７】
2006099164.tif 000009
【図８】
2006099164.tif 000010
【図９】
2006099164.tif 000011
【図１０】
2006099164.tif 000012
【図１１】
2006099164.tif 000013
【図１１ａ】
2006099164.tif 000014
【図１２】
2006099164.tif 000015
【図１２ａ】
2006099164.tif 000016
【図１３】
2006099164.tif 000017
【図１４】
2006099164.tif 000018
【図１５】
2006099164.tif 000019
【図１６】
2006099164.tif 000020
【図１７】
2006099164.tif 000021
【図１８】
2006099164.tif 000022
【図１９】
2006099164.tif 000023
【図１９ａ】
2006099164.tif 000024
【図２０】
2006099164.tif 000025
【図２１】
2006099164.tif 000026
【図２２】
2006099164.tif 000027
【図２３】
2006099164.tif 000028