(57)【特許請求の範囲】
【請求項１】
木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリを記憶するディレクトリ記憶手段と、
上記ディレクトリ記憶手段に記憶されたディレクトリに対してエントリの追加または削除による更新を行うと共に、上記更新を行うたびに変化するバージョン番号を管理するディレクトリ操作手段と、
上記ディレクトリ操作手段によるディレクトリの更新内容を表す更新情報を生成する更新情報生成手段と、
上記ディレクトリ記憶手段に記憶されたディレクトリの内容全体を表す全体情報を生成する全体情報生成手段と、
上記全体情報および上記更新情報をネットワークにより送信する伝送手段とを備え、
上記全体情報生成手段は、全体情報の生成に際して、エントリ名と、更新操作と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号とを含む全体情報を生成することを特徴とする送信装置。
【請求項２】
請求項１において、
上記ディレクトリ記憶手段に記憶されたディレクトリの各エントリは、そのエントリの直下に対して更新が起きた時のバージョン番号を持つことを特徴とする送信装置。
【請求項３】
請求項１において、
上記ネットワークが同報ネットワークであることを特徴とする送信装置。
【請求項４】
請求項１において、
上記ネットワークが双方向ネットワークであることを特徴とする送信装置。
【請求項５】
木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリを記憶するディレクトリ記憶手段と、
上記ディレクトリ記憶手段に記憶されるディレクトリを検索、閲覧するためのディレクトリ操作手段と、
上記ディレクトリ記憶手段に記憶されたディレクトリを更新するための更新情報およびディレクトリ全体の全体情報をネットワークを介して受信する受信手段と、
上記更新情報および上記全体情報の内容に従ってディレクトリを更新する更新手段とを備え、
上記全体情報は、エントリ名と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号と、更新操作とを含み、
上記ディレクトリ記憶手段に記憶されたディレクトリの各エントリは、そのエントリの直下に対して更新が起きた時のバージョン番号を持ち、
上記更新手段は、受信した上記全体情報が持つバージョン番号と、上記ディレクトリ記憶手段に記憶されたディレクトリのバージョン番号とを比較することによって、必要な上記全体情報を判別し、必要な上記全体情報のみを上記ディレクトリ記憶手段に記憶されたディレクトリに反映することを特徴とする受信装置。
【請求項６】
請求項５において、
上記ネットワークが同報ネットワークであることを特徴とする受信装置。
【請求項７】
請求項５において、
上記ネットワークが双方向ネットワークであることを特徴とする受信装置。
【請求項８】
送信装置と受信装置とがネットワークを介して接続され、上記送信装置および受信装置の間で、ディレクトリの同期をとるようにした送受信装置において、
上記送信装置は、
木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリを記憶するディレクトリ記憶手段と、
上記ディレクトリ記憶手段に記憶されたディレクトリに対してエントリの追加または削除による更新を行うと共に、上記更新を行うたびに変化するバージョン番号を管理するディレクトリ操作手段と、
上記ディレクトリ操作手段によるディレクトリの更新内容を表す更新情報を生成する更新情報生成手段と、
上記ディレクトリ記憶手段に記憶されたディレクトリの内容全体を表す全体情報を生成する全体情報生成手段と、
上記全体情報および上記更新情報をネットワークにより送信する伝送手段とを備え、
上記全体情報生成手段は、全体情報の生成に際して、エントリ名と、更新操作と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号とを含む全体情報を生成するように構成され、
上記受信装置は、
木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリを記憶するディレクトリ記憶手段と、
上記ディレクトリ記憶手段に記憶されるディレクトリを検索、閲覧するためのディレクトリ操作手段と、
上記送信装置から上記更新情報および上記全体情報を上記ネットワークを介して受信する受信手段と、
上記更新情報および上記全体情報の内容に従ってディレクトリを更新する更新手段とを備え、
上記ディレクトリ記憶手段に記憶されたディレクトリの各エントリは、そのエントリの直下に対して更新が起きた時のバージョン番号を持ち、
上記更新手段は、受信した上記全体情報が持つバージョン番号と、上記ディレクトリ記憶手段に記憶されたディレクトリのバージョン番号とを比較することによって、必要な上記全体情報を判別し、必要な上記全体情報のみを上記ディレクトリ記憶手段に記憶されたディレクトリに反映するように構成されることを特徴とする送受信装置。
【請求項９】
木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリがディレクトリ記憶手段に記憶され、上記ディレクトリ記憶手段に記憶されたディレクトリに対してエントリの追加または削除による更新を行うと共に、上記更新を行うたびに変化するバージョン番号を管理するディレクトリ操作ステップと、
上記ディレクトリの更新内容を表す更新情報を生成する更新情報生成ステップと、
上記ディレクトリ記憶手段に記憶されたディレクトリの内容全体を表す全体情報を生成する全体情報生成ステップと、
上記全体情報および上記更新情報をネットワークにより送信する伝送ステップとを有し、
上記全体情報生成ステップは、上記全体情報の生成に際して、エントリ名と、更新操作と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号とを含む全体情報を生成することを特徴とする送信方法。
【請求項１０】
木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリがディレクトリ記憶手段に記憶され、上記ディレクトリ記憶手段に記憶されたディレクトリを更新するための更新情報およびディレクトリ全体の全体情報をネットワークを介して受信する受信ステップと、
上記更新情報および上記全体情報の内容に従ってディレクトリを更新する更新ステップとを有し、
上記全体情報は、エントリ名と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号と、更新操作とを含み、
上記ディレクトリ記憶手段に記憶されたディレクトリの各エントリは、そのエントリの直下に対して更新が起きた時のバージョン番号を持ち、
上記更新ステップは、受信した上記全体情報が持つバージョン番号と、上記ディレクトリ記憶手段に記憶されたディレクトリのバージョン番号とを比較することによって、必要な上記全体情報を判別し、必要な上記全体情報のみを上記ディレクトリ記憶手段に記憶されたディレクトリに反映することを特徴とする受信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えば不特定多数へのデータ配信の技術分野で用いられ、配信されたデータを効率良く更新管理するための送信装置、受信装置、送受信装置、送信方法および受信方法に関する。
【０００２】
【従来の技術】
ディレクトリサービスの規格として、Ｘ．５００やＬＤＡＰ(Lightweight Directory Access Protocol) が知られている。Ｘ．５００は、ＩＴＵ−Ｔ(International Telecommunication Union-Telecommunication Standardization Sector)で勧告されているディレクトリサービスの国際標準であり、ディレクトリの概念や、階層構造、サービス、オブジェクトの定義などが規定されている。
【０００３】
Ｘ．５００は、汎用性の高いディレクトリサービスプロトコルである反面、実装が重くなる仕様となっていおり、その実装コストが高い。このため、これを、インターネット上のＷＷＷ(World Wide Web)ブラウザや、電子メールソフトウェアなどからも簡単に利用することができるように、軽量化、簡素化したサービスプロトコルとして、ＬＤＡＰが開発された。
【０００４】
ＬＤＡＰは、サーバ・クライアント型のモデルで構成されており、ディレクトリ情報を格納するサーバ（ディレクトリサーバ）と、それにアクセスするクライアントとの間のリクエスト・レスポンス型のメッセージ転送プロトコルを定義している。ディレクトリサーバで集中管理されるディレクトリ情報の規模が大きくなると、クライアントのアクセスが集中することによって、サーバの質が低下するために、複数のディレクトリサーバによって、ディレクトリ情報が分散管理される。
【０００５】
ディレクトリ情報が分散管理されている場合、あるディレクトリサーバが管理しているエントリ（ディレクトリ情報の最小管理単位）の複製が他の１以上のディレクトリサーバに存在することになる。したがって、あるディレクトリサーバにおいてエントリの更新が生じた時には、他のディレクトリサーバにおいても、複製を更新する必要がある。このように、エントリの内容が異なるものとならないように、同期管理が必要とされる。すなわち、あるディレクトリサーバが管理しているエントリが更新された場合に、他のディレクトリサーバが管理しているそのエントリの複製の更新を即座に行うことが必要とされる。同期管理方式として、同報ネットワークを使用した放送型プロトコルを主体としたものが先に提案されている（特願平１０−２７７３５２号および特願平１０−２７７３５３号参照）。
【０００６】
【発明が解決しようとする課題】
上述した同期管理方式を有するディレクトリサービスシステムにおいて、更新内容は、更新前と更新後の差分のデータとして伝送される。若し、受信側のディレクトリサーバが電源オフ等のために長い間休止していると、連続した差分更新通知メッセージを取りこぼすおそれが高くなる。このような場合、放送によって伝送される差分情報だけでは、受信側のディレクトリを同期させることができなくなる。その結果、受信側は、差分情報ではなく、既に受信しているディレクトリ情報を捨て、ディレクトリ全体の情報を最初から受信してディレクトリ全体を再構築することによって、同期した状態へ回復することになる。一般的にディレクトリ全体の情報は、差分に比べて非常に大きなデータサイズとなるため、ディレクトリ回復作業が受信側にとって負荷が高い処理となる。
【０００７】
従って、この発明の目的は、全体の情報を受信することによって受信側が送信側とディレクトリを同期させる際に、既に受信済のディレクトリ構造を可能な限り保持しながらディレクトリ同期を行い、それによって処理の負荷を軽減することが可能な送信装置、受信装置、送受信装置、送信方法および受信方法を提供することにある。
【０００８】
【課題を解決するための手段】
上述した課題を解決するために、請求項１の発明は、木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリを記憶するディレクトリ記憶手段と、
ディレクトリ記憶手段に記憶されたディレクトリに対してエントリの追加または削除による更新を行うと共に、更新を行うたびに変化するバージョン番号を管理するディレクトリ操作手段と、
ディレクトリ操作手段によるディレクトリの更新内容を表す更新情報を生成する更新情報生成手段と、
ディレクトリ記憶手段に記憶されたディレクトリの内容全体を表す全体情報を生成する全体情報生成手段と、
全体情報および更新情報をネットワークにより送信する伝送手段とを備え、
全体情報生成手段は、全体情報の生成に際して、エントリ名と、更新操作と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号とを含む全体情報を生成することを特徴とする送信装置である。
【０００９】
請求項５の発明は、木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリを記憶するディレクトリ記憶手段と、
ディレクトリ記憶手段に記憶されるディレクトリを検索、閲覧するためのディレクトリ操作手段と、
ディレクトリ記憶手段に記憶されたディレクトリを更新するための更新情報およびディレクトリ全体の全体情報をネットワークを介して受信する受信手段と、
更新情報および全体情報の内容に従ってディレクトリを更新する更新手段とを備え、
全体情報は、エントリ名と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号と、更新操作とを含み、
ディレクトリ記憶手段に記憶されたディレクトリの各エントリは、そのエントリの直下に対して更新が起きた時のバージョン番号を持ち、
更新手段は、受信した全体情報が持つバージョン番号と、ディレクトリ記憶手段に記憶されたディレクトリのバージョン番号とを比較することによって、必要な全体情報を判別し、必要な全体情報のみをディレクトリ記憶手段に記憶されたディレクトリに反映することを特徴とする受信装置である。
【００１０】
請求項８の発明は、送信装置と受信装置とがネットワークを介して接続され、送信装置および受信装置の間で、ディレクトリの同期をとるようにした送受信装置において、
送信装置は、
木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリを記憶するディレクトリ記憶手段と、
ディレクトリ記憶手段に記憶されたディレクトリに対してエントリの追加または削除による更新を行うと共に、更新を行うたびに変化するバージョン番号を管理するディレクトリ操作手段と、
ディレクトリ操作手段によるディレクトリの更新内容を表す更新情報を生成する更新情報生成手段と、
ディレクトリ記憶手段に記憶されたディレクトリの内容全体を表す全体情報を生成する全体情報生成手段と、
全体情報および更新情報をネットワークにより送信する伝送手段とを備え、
全体情報生成手段は、全体情報の生成に際して、エントリ名と、更新操作と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号とを含む全体情報を生成するように構成され、
受信装置は、
木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリを記憶するディレクトリ記憶手段と、
ディレクトリ記憶手段に記憶されるディレクトリを検索、閲覧するためのディレクトリ操作手段と、
送信装置から更新情報および全体情報をネットワークを介して受信する受信手段と、
更新情報および全体情報の内容に従ってディレクトリを更新する更新手段とを備え、
ディレクトリ記憶手段に記憶されたディレクトリの各エントリは、そのエントリの直下に対して更新が起きた時のバージョン番号を持ち、
更新手段は、受信した全体情報が持つバージョン番号と、ディレクトリ記憶手段に記憶されたディレクトリのバージョン番号とを比較することによって、必要な全体情報を判別し、必要な全体情報のみをディレクトリ記憶手段に記憶されたディレクトリに反映するように構成されることを特徴とする送受信装置である。
【００１１】
請求項９の発明は、木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリがディレクトリ記憶手段に記憶され、ディレクトリ記憶手段に記憶されたディレクトリに対してエントリの追加または削除による更新を行うと共に、更新を行うたびに変化するバージョン番号を管理するディレクトリ操作ステップと、
ディレクトリの更新内容を表す更新情報を生成する更新情報生成ステップと、
ディレクトリ記憶手段に記憶されたディレクトリの内容全体を表す全体情報を生成する全体情報生成ステップと、
全体情報および更新情報をネットワークにより送信する伝送ステップとを有し、
全体情報生成ステップは、全体情報の生成に際して、エントリ名と、更新操作と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号とを含む全体情報を生成することを特徴とする送信方法である。
【００１２】
請求項１０の発明は、木構造のデータ構造でもって複数のエントリが階層配置されたディレクトリがディレクトリ記憶手段に記憶され、ディレクトリ記憶手段に記憶されたディレクトリを更新するための更新情報およびディレクトリ全体の全体情報をネットワークを介して受信する受信ステップと、
更新情報および全体情報の内容に従ってディレクトリを更新する更新ステップとを有し、
全体情報は、エントリ名と、そのエントリの直下に対して最後に更新が起きた時のバージョン番号と、更新操作とを含み、
ディレクトリ記憶手段に記憶されたディレクトリの各エントリは、そのエントリの直下に対して更新が起きた時のバージョン番号を持ち、
更新ステップは、受信した全体情報が持つバージョン番号と、ディレクトリ記憶手段に記憶されたディレクトリのバージョン番号とを比較することによって、必要な全体情報を判別し、必要な全体情報のみをディレクトリ記憶手段に記憶されたディレクトリに反映することを特徴とする受信方法である。
【００１３】
この発明では、各エントリに対して、その直下に更新が起きた時のバージョン番号を付加することによって、全体情報によってディレクトリの同期を取り直す時に、必要な部分のみを処理することができる。
【００１４】
【発明の実施の形態】
以下、この発明の一実施形態について説明する。図１は、一実施形態におけるデータ配信システムの一例を示す。送信側ディレクトリサーバ１０１は、ディレクトリを保持、管理している。ディレクトリは、木構造のデータ構造を有し、その最小管理単位がコンテナエントリ（単にエントリとも言う）であり、また、コンテナエントリの追加、削除を行うことができる。一例として、ディレクトリサーバ１０１には、情報提供者（図示しない）から提供された交通情報、天気情報、株価情報等のリアルタイムで変化するデータ、リアルタイムで変化しないデータ、テキストデータ、画像データ、オーディオデータ、コンピュータプログラム等のデータが記憶される。ディレクトリのひとかたまりのデータがコンテンツ、またはオブジェクトと呼ばれる。また、送信側ディレクトリサーバ１０１の一例は、放送局である。
【００１５】
送信側ディレクトリサーバ１０１は、同報ネットワーク（例えば放送ネットワーク）１０３および双方向ネットワーク１０４を介して受信側ディレクトリサーバ１０２1 ，１０２2 にディレクトリを提供する。双方向ネットワーク１０４は、具体的には、アナログ公衆電話網、ＩＳＤＮ(Integrated Services Digital Network) 、インターネット等である。受信側ディレクトリサーバの個数は、実際には、無数あるが、図１は、代表的に２個の受信側ディレクトリサーバ１０２1 ，１０２2 を示している。
【００１６】
受信側ディレクトリサーバ１０２1 ，１０２2 は、送信側ディレクトリサーバ１０１から提供されるディレクトリを受信し、蓄積し、利用者に提供するものである。そのため、送信側ディレクトリサーバ１０１に記憶されるディレクトリの全て、またはその一部を同報ネットワーク１０３および双方向ネットワーク１０４を介して受信し、記憶（蓄積）する。
【００１７】
また、送信側ディレクトリサーバ１０１において起こったディレクトリの更新は、同報ネットワーク１０３および双方向ネットワーク１０４を介して受信側ディレクトリサーバ１０２1 ，１０２2 に反映される。それによって、受信側ディレクトリサーバ１０１と送信側ディレクトリサーバ１０２1 ，１０２2 の間でディレクトリの内容の同期が取られる。
【００１８】
ディレクトリは、図２に示すように、木構造で管理されるデータである。木構造を構成する各ノードのうちさらにその下にノードをもつものがコンテナエントリ２０１であり、一番下に位置するノードがリーフノード２０２である。図２中、Ｃ１，Ｃ２，・・・，Ｃ４がコンテナエントリであり、Ｌ１，Ｌ２，Ｌ３がリーフノードである。例えば放送番組表の場合では、コンテナエントリＣ２がニュース番組であり、リーフノードＬ１が午後９時に放送されるニュース番組である。勿論、職業別電話帳等も図２に示す木構造で表すことができる。
【００１９】
図３は、送信側ディレクトリサーバ１０１の構成例を示す。ディレクトリ記憶部３０２には、図２に示す構造を持ったディレクトリが記憶される。ディレクトリ記憶部３０２にデータを追加したり、記憶されたデータを削除するのがディレクトリ操作部３０１である。ディレクトリ操作部３０１によるディレクトリの更新操作の情報が更新情報生成部３０３に供給される。更新操作の情報を受けて、更新情報生成部３０３では、ディレクトリの更新内容を受信側ディレクトリサーバ１０２1 ，１０２2 のディレクトリに反映するための更新情報が生成される。
【００２０】
更新情報生成部３０３によって生成された更新情報が更新情報記憶部３０４に記憶される。更新情報記憶部３０４には、受信側での更新情報の取りこぼしを想定して一定期間繰り返して更新情報を送信するために、複数の更新情報が記憶される。更新情報記憶部３０４に記憶された更新情報は、伝送部３０７によって同報ネットワーク１０３に繰り返して送信される。
【００２１】
ディレクトリ記憶部３０２には、全体情報生成部３０５が接続される。全体情報生成部３０５では、受信側ディレクトリサーバ１０２1 ，１０２2 での更新情報の取りこぼしを考慮し、ディレクトリ記憶部３０２に記憶されたディレクトリ全体の情報が定期的に生成される。生成された全体情報が全体情報記憶部３０６に記憶され、伝送部３０７から同報ネットワーク１０３に一定期間、繰り返して送信される。
【００２２】
双方向ネットワーク１０４に通信制御部３０８が接続される。双方向ネットワーク１０４を介して受信された受信側ディレクトリサーバ１０２1 ，１０２2 からの要求に従って、更新情報記憶部３０４に記憶された更新情報またはディレクトリ記憶部３０２に記憶されるディレクトリ全体を双方向ネットワーク１０４を介して受信側ディレクトリサーバ１０２1 ，１０２2 に提供する。
【００２３】
図４は、受信側ディレクトリサーバ１０２1 ，１０２2 の構成例を示す。同報ネットワーク１０３に対して受信部４０１が接続される。受信部４０１が同報ネットワーク１０３を介して送信側ディレクトリサーバ１０１からディレクトリの更新情報および全体情報を受信する。受信した情報は、更新操作部４０３において解釈され、ディレクトリ記憶部４０４に記憶されているディレクトリに反映される。全体情報を受信したのであれば、そのデータをディレクトリ記憶部４０４に記憶する。また、更新情報を受信したのであれば、ディレクトリ記憶部４０４に記憶されているディレクトリの指示された部分を更新する。
【００２４】
双方向ネットワーク１０４に対して通信制御部４０２が接続される。通信制御部４０２は、受信部４０１で取りこぼした全体情報または更新情報を送信側ディレクトリサーバ１０１に要求する。そして、受信した全体情報や更新情報を更新操作部４０３を通じてディレクトリ記憶部４０４に記憶されているディレクトリに反映する。ディレクトリ操作部４０５は、ディレクトリ記憶部４０４に記憶されているディレクトリを閲覧したり、参照するための操作を行うためのものである。
【００２５】
図５を参照して、送信側ディレクトリサーバ１０１におけるディレクトリの更新例について説明する。更新操作は、ディレクトリ操作部３０１によって行われる。まず、コンテナエントリＣ０にＣ１、Ｃ２が順に追加される（データ構造５０１）。次に、コンテナエントリＣ３がコンテナエントリＣ１の下に追加される（データ構造５０２）。コンテナエントリＣ２の下にコンテナエントリＣ４が追加される（データ構造５０３）。コンテナエントリＣ２の下にコンテナエントリＣ５が追加される（データ構造５０４）。最後にコンテナエントリＣ２の下からコンテナエントリＣ４が削除される（データ構造５０５）。
【００２６】
図５に示すようなディレクトリの更新が起こった場合を考えると、送信側ディレクトリサーバ１０１の更新情報生成部３０３および全体情報生成部３０５では、図６に示すような全体情報および更新情報が生成される。これらの全体情報および更新情報が同報ネットワーク１０３を介して送信される。また、受信側ディレクトリサーバ１０２1 ，１０２2 の要求に応じて、要求された全体情報または更新情報が双方向ネットワーク１０４を介して送信される。
【００２７】
一実施形態においては、ディレクトリ記憶部３０２に記憶される各コンテナエントリには、そのコンテナエントリの直下のエントリに更新が起こったときのスキーマのバージョン（バージョン番号と呼ぶことにする）を格納する。すなわち、コンテナエントリの状態は、（コンテナエントリ名，バージョン番号）で表すことができる。バージョン番号は、更新のたびに変化し、更新の順序を示す値であれば、昇順の数、降順の数等、種々の値を使用できる。
【００２８】
全体情報生成部３０５が生成する全体情報には、更新の起こったコンテナエントリ名と更新操作内容に加えて、最後にそのコンテナエントリ直下に更新が起きた時のバージョン番号を含める。つまり、全体情報は、（バージョン番号，コンテナエントリ名，更新操作）で表される。更新情報も同様に表す。操作は、コンテナエントリの追加、または削除である。
【００２９】
図６中の全体情報について説明すると、最初のバージョン番号（０．３）がデータ構造５０１に対応したものである。すなわち、仮想的なコンテナエントリ（またはノード）ｒにコンテナエントリＣ０を追加したものがバージョン番号（０．１）の全体情報（０．１，ｒ，＋Ｃ０）である。バージョン番号（０．１）に対して、コンテナエントリＣ０にＣ１を追加したバージョン番号が（０．２）である。さらに、コンテナエントリＣ２を追加した全体情報が（０．３，Ｃ０，＋Ｃ１）である。
【００３０】
コンテナエントリＣ０の直下に最後に更新が起きた時のバージョン番号は、コンテナエントリＣ２が追加された時のバージョン番号（０．３）であるので、コンテナエントリＣ１を追加した時の全体情報が（０．３，Ｃ０，＋Ｃ１）とされる。以上の３個の全体情報によって、データ構造５０１が復元できる。また、更新情報としての差分情報は、バージョン番号（０．２）からバージョン番号（０．３）に変化した時の変化を示すように、コンテナエントリＣ０の直下に最後に更新が起きた時のバージョン番号（０．３）と、更新操作からなる。すなわち、（０．３，Ｃ０，＋Ｃ２）である。（＋）が追加を表す。
【００３１】
次に、コンテナエントリＣ１に対して、コンテナエントリＣ３を追加してデータ構造５０２（バージョン番号（１．０））が生成される。この場合には、コンテナエントリＣ１の直下に最後に更新が起きた時のバージョン番号が（１．０）であるので、（１．０，Ｃ１，＋Ｃ３）の全体情報が生成される。コンテナエントリＣ０についてのバージョン番号は、（０．３）のままである。また、差分情報が（１．０，Ｃ１，＋Ｃ３）となる。
【００３２】
次に、コンテナエントリＣ２に対して、コンテナエントリＣ４を追加してデータ構造５０３（バージョン番号（１．１））が生成される。この場合には、コンテナエントリＣ２の直下に最後に更新が起きた時のバージョン番号が（１．１）であるので、（１．１，Ｃ２，＋Ｃ４）の全体情報が生成される。コンテナエントリＣ０についてのバージョン番号は、（０．３）のままで、コンテナエントリＣ１についてのバージョン番号は、（１．０）のままである。また、差分情報が（１．１，Ｃ２，＋Ｃ４）となる。
【００３３】
次に、コンテナエントリＣ２に対して、コンテナエントリＣ５を追加してデータ構造５０４（バージョン番号（１．２））が生成される。この場合には、コンテナエントリＣ２の直下に最後に更新が起きた時のバージョン番号が（１．２）であるので、（１．２，Ｃ２，＋Ｃ５）の全体情報が生成される。これと共に、バージョン番号（１．１）では、（１．１，Ｃ２，＋Ｃ４）であった全体情報が（１．２，Ｃ２，＋Ｃ４）に変更される。また、差分情報が（１．２，Ｃ２，＋Ｃ５）となる。
【００３４】
最後に、コンテナエントリＣ２に対して追加されたコンテナエントリＣ４が削除されてデータ構造５０５（バージョン番号（１．３））が生成される。この場合には、コンテナエントリＣ２の直下に最後に更新が起きた時のバージョン番号が（１．３）であるので、（１．３，Ｃ２，＋Ｃ５）の全体情報が生成される。これと共に、コンテナエントリＣ４の削除の操作と対応して、全体情報（１．２，Ｃ２，＋Ｃ４）が削除される。また、差分情報が（１．３，Ｃ２，−Ｃ４）となる。（−）が削除を表す。
【００３５】
図７は、送信側ディレクトリサーバ１０１において、更新操作がなされた時になされる各コンテナエントリＣｎのバージョン番号管理の流れを示すフローチャートである。ステップＳ１において、あるコンテナエントリＣｎの直下に更新（コンテナエントリの追加または削除）が起こると、ステップＳ２において、バージョン番号Ｖを１増加する。そして、ステップＳ３において、＋１で得られたバージョン番号ＶをコンテナエントリＣｎの直下に更新が起きた時のバージョン番号Ｃｎｖとして記憶する。
【００３６】
図８は、送信側ディレクトリサーバ１０１における全体情報の生成処理の流れを示すフローチャートである。コンテナエントリの総数をＮとし、処理の対象とするコンテナエントリがｉ番目のコンテナエントリＣｉとすると、ステップＳ１１では、（ｉ＜Ｎ）かどうかが決定される。（ｉ＜Ｎ）の関係が成立するときは、全てのコンテナエントリの処理が終了していないことを意味するので、処理がステップＳ１２に移る。若し、（ｉ＜Ｎ）の関係が成立しないときは、全てのコンテナエントリに関する処理終了したものと決定され、処理が終了する。
【００３７】
ステップＳ１２においては、コンテナエントリＣｉの直下にある全てのコンテナエントリＣｊに関して処理がなされる。すなわち、ステップＳ１３において、全体情報に付加するバージョン番号ｖをコンテナエントリＣｉの記憶しているバージョン番号Ｃｉｖとし（ステップＳ１３）、次のステップＳ１４において、全体情報（ｖ，Ｃｉ，＋Ｃｊ）、すなわち、（Ｃｉｖ，Ｃｉ，＋Ｃｊ）を生成する。
【００３８】
全てのコンテナエントリＣｊについての処理（ステップＳ１３およびステップＳ１４）が終了すると、ステップＳ１５に処理が移り、コンテナエントリ番号ｉが１増加される。そして、ステップＳ１１に戻り、全てのコンテナエントリＣｉについての処理が終了したか否かが決定される。
【００３９】
ここで、受信側ディレクトリサーバ１０２1 ，１０２2 が長期間、休止状態であった後に復帰した場合、ディレクトリ記憶部４０４に記憶されている情報を最新の状態に同期させる既存の方法について説明する。まず、ディレクトリの全体情報を受信する。ディレクトリの全体情報を受信し、ディレクトリを同期する際に、既にディレクトリ記憶部４０４に記憶されている情報を全て破棄し、改めて全体情報からディレクトリを再構築する。しかしながら、このような既存の同期方法は、受信側ディレクトリサーバにとって、処理の負荷が重い。
【００４０】
この発明では、ディレクトリを送信側ディレクトリサーバと同期させるために、既に受信済の情報に関して変化が起きたか否かを先に判定することによって処理の負荷を軽減することが可能なものである。その判定のために、送信側ディレクトリサーバ１０１において、上述したように生成された全体情報中のバージョン番号、すなわち、各コンテナエントリに付加されている、そのコンテナエントリの直下のエントリに更新が起こったときのバージョン番号を使用する。
【００４１】
図９は、受信側ディレクトリサーバ１０２1 ，１０２2 の更新処理の流れを示すフローチャートである。最初のステップＳ２１において、最新の差分更新情報に含まれるバージョン番号Ｖｄと受信側に記憶されているバージョン番号Ｖｓとを比較する。（Ｖｄ＝Ｖｓ＋１）ならば、取りこぼしがなく、正常に差分更新情報を受信していることが分かる。その場合には、ステップＳ２２において、差分更新を適用し、バージョン番号Ｖｓを１増加し、更新処理を終了する。ステップＳ２２の処理によって、受信側のバージョン番号が送信側のバージョン番号と等しくなる。
【００４２】
ステップＳ２１において、（Ｖｄ＝Ｖｓ＋１）でなければ、すなわち、（Ｖｄ＞Ｖｓ＋１）ならば、差分更新情報の取りこぼしが起きているものと決定される。この場合では、全体情報を受信することによって、復旧が図られる。まず、ステップＳ２３において、全ての全体情報を受信したか否かが決定される。全ての全体情報を受信していれば、復旧が完了する。
【００４３】
ステップＳ２３において、全ての全体情報を受信していないならば、ステップＳ２４において、全体情報（ｖ，Ｃｉ，＋Ｃｊ）を受信する。ステップＳ２５では、全体情報中のバージョン番号ｖと受信側に記憶されているバージョン番号Ｖｓとの関係が（ｖ＞Ｖｓ）か否かが決定される。（ｖ＞Ｖｓ）でなければ、処理がステップＳ２３に戻る。（ｖ＞Ｖｓ）であれば、コンテナエントリＣｉの直下に不整合が起きていることが分かるので、ステップＳ２６において、コンテナエントリＣｉの直下の全てのコンテナエントリが削除済か否かが決定される。これは、不整合によってコンテナエントリＣｉの直下のコンテナエントリが更新を正しく反映していないおそれがあるからである。
【００４４】
削除済でないならば、ステップＳ２７において、コンテナエントリＣｉの直下のコンテナエントリを全て削除し、ステップＳ２８に処理が移る。ステップＳ２６において、削除済と決定されたときも、処理がステップＳ２８に移る。ステップＳ２８では、全体情報（ｖ，Ｃｉ，＋Ｃｊ）の内容をコンテナエントリＣｉの直下に反映するために、コンテナエントリＣｉにコンテナエントリＣｊを追加する。そして、処理がステップＳ２３に戻る。全ての全体情報を受信するまで、ステップＳ２４〜Ｓ２８の処理が繰り返される。
【００４５】
図６の例を参照してより具体的に説明すると、例えば受信側ディレクトリサーバがバージョン番号（１．１）の状態（全体情報（１．１，Ｃ２，＋Ｃ４））の後、バージョン番号（１．２）の間、電源切断等の何らかの理由によって休止状態となったものとする。
【００４６】
この場合には、全体情報（１．２，Ｃ２，＋Ｃ４）を受信すると、ステップＳ２５（図９）の関係（ｖ＞Ｖｓ）が満たされ、コンテナエントリＣ２の直下のエントリＣ４が削除され（ステップＳ２７）、Ｃ２の直下にＣ４が追加される（ステップＳ２８）。そして、次の全体情報（１．２，Ｃ２，＋Ｃ５）を受信すると、コンテナエントリＣ５がＣ２に追加される。このようにして、コンテナエントリＣ２の部分のみを処理することで、ディレクトリの同期なしうる。
【００４７】
この発明を適用しない場合、受信側ディレクトリサーバ１０２1 ，１０２2 は、ディレクトリ記憶部４０４に記憶されるバージョン番号（１．１）のディレクトリ構造を全て破棄し、バージョン（１．３）の全体情報を受信してディレクトリの同期をとることになる。しかしながら、実際には、バージョン（１．１）と（１．３）の間のディレクトリの違いは、Ｃ４、Ｃ５の部分のみであり、その他の部分については同期処理を必要としない。この発明によれば、コンテナエントリＣ２以下の部分についてのみ同期処理を行うことになるので、受信側の処理の負荷を軽くすることができる。
【００４８】
この発明は、上述した実施形態等に限定されるものでは無く、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００４９】
【発明の効果】
この発明では、ディレクトリの更新において、各コンテナエントリに対して、その直下に更新処理が起きたときのバージョン番号を付加することにより、全体情報によって同期を取り直す時に、必要な部分のみを処理することが可能となり、受信側の処理の負荷を軽くすることができる。
【図面の簡単な説明】
【図１】この発明の一実施形態である、ディレクトリサービスシステムの構成の一例を示す略線図である。
【図２】この発明の一実施形態におけるディレクトリの木構造を説明するための略線図である。
【図３】この発明の一実施形態における送信側ディレクトリサーバの一例を示すブロック図である。
【図４】この発明の一実施形態における受信側ディレクトリサーバの一例を示すブロック図である。
【図５】ディレクトリエントリの更新例を順に示す略線図である。
【図６】受信側ディレクトリサーバにおけるディレクトリ更新処理の一例における全体情報および更新情報を示す略線図である。
【図７】この発明の一実施形態における、送信側でのコンテナエントリの更新バージョン番号管理の処理を示すフローチャートである。
【図８】この発明の一実施形態における、送信側での全体情報の生成処理を示すフローチャートである。
【図９】この発明の一実施形態における、受信側でのディレクトリの更新処理を示すフローチャートである。
【符号の説明】
１０１・・・送信側ディレクトリサーバ、１０２1 ，１０２21，１０２1 ・・・受信側ディレクトリサーバ、１０３・・・同報ネットワーク、２０１・・・コンテナエントリ、２０２・・・リーフノード、３０２・・・ディレクトリ記憶部、３０３・・・更新情報生成部、３０４・・・更新情報記憶部、４０１・・・受信部、４０４・・・ディレクトリ記憶部
【図１】
0004398042.tif 000002
【図２】
0004398042.tif 000003
【図３】
0004398042.tif 000004
【図４】
0004398042.tif 000005
【図５】
0004398042.tif 000006
【図６】
0004398042.tif 000007
【図７】
0004398042.tif 000008
【図８】
0004398042.tif 000009
【図９】
0004398042.tif 000010