(57)【特許請求の範囲】
【請求項１】
クライアント装置により送受信されるデータを管理する複数のサーバ装置と、前記クライアント装置と前記複数のサーバ装置それぞれとの間の通信を中継する中継装置と、を備え、
前記複数のサーバ装置のそれぞれは、
前記クライアント装置の利用者宛のデータと当該データに対して当該サーバ装置が付与した識別情報とを対応づけて記憶するデータ記憶手段と、
前記データ記憶手段に記憶されたデータに関する処理の要求を受信した場合に、受信した要求に応じて処理を行い、この処理の結果を含む応答を要求元に対して送信する要求処理手段と、
を備え、
前記中継装置は、
前記利用者宛のデータを前記複数のサーバ装置それぞれの前記データ記憶手段に格納させることで前記複数のサーバ装置それぞれの前記データ記憶手段中のデータを同期させる同期手段と、
前記同期手段により各サーバ装置の前記データ記憶手段に格納させられたデータに対して各サーバ装置が付与した識別情報を各サーバ装置から取得し、取得した各識別情報であるサーバ用識別情報のそれぞれと、当該データの識別情報として前記クライアント装置に送信されるクライアント用識別情報と、を対応づけて識別情報記憶手段に登録する識別情報登録手段と、
前記クライアント装置が前記サーバ装置に対して行った要求を受信して前記複数のサーバ装置のうちの１つに対して転送し、当該要求を受信したサーバ装置の前記要求処理手段が当該要求に応じて送信した応答を受信して前記クライアント装置に対して転送する中継処理を行う中継処理手段であって、当該応答が前記サーバ用識別情報を含む場合に、当該応答に含まれる当該サーバ用識別情報を、当該サーバ用識別情報に対応づけて前記識別情報記憶手段に記憶されたクライアント用識別情報で置換した上で、当該応答を前記クライアント装置に対して転送する、中継処理手段と、
を備える、ことを特徴とするデータ中継システム。
【請求項２】
前記複数のサーバ装置それぞれの前記要求処理手段は、前記利用者宛の新たなデータの前記データ記憶手段への格納を要求する格納要求を受信した場合に、当該格納要求の対象のデータを前記データ記憶手段に格納し、かつ、当該データに新たな識別情報を付与し、付与した識別情報を当該データに対応づけて前記データ記憶手段に格納し、
前記中継装置において、
前記同期手段は、前記クライアント装置からの前記格納要求を前記中継処理手段が受信した場合に、前記複数のサーバ装置それぞれに対して前記格納要求を送信し、
前記識別情報登録手段は、前記同期手段が送信した格納要求の対象のデータに対して前記複数のサーバ装置それぞれが付与したサーバ用識別情報を前記複数のサーバ装置それぞれから取得し、当該格納要求の対象のデータに対して前記クライアント用識別情報を付与し、付与したクライアント用識別情報と、前記複数のサーバ装置それぞれから取得した各サーバ用識別情報と、を互いに対応づけて前記識別情報記憶手段に登録する、
ことを特徴とする請求項１に記載のデータ中継システム。
【請求項３】
前記複数のサーバ装置それぞれの前記要求処理手段は、前記データ記憶手段に記憶されたデータの削除を要求する削除要求を受信した場合に、受信した削除要求の対象のデータを前記データ記憶手段から削除し、
前記中継装置の前記同期手段は、前記中継処理手段が前記複数のサーバ装置のうちの１つに対して前記削除要求を転送した場合に、当該削除要求の対象のデータに対して当該１つのサーバ装置が付与したサーバ用識別情報を当該１つのサーバ装置から取得し、取得したサーバ用識別情報に対応づけて前記識別情報記憶手段に記憶された、当該１つのサーバ装置の他のサーバ装置それぞれに対応する各サーバ用識別情報を参照して、当該データを対象とする削除要求を前記他のサーバ装置それぞれに対して送信する、
ことを特徴とする請求項２に記載のデータ中継システム。
【請求項４】
稼働中の前記複数のサーバ装置に追加して新たなサーバ装置を稼動させる場合に、
前記中継装置において、
前記同期手段は、稼働中の前記複数のサーバ装置のうちの１つから、前記データ記憶手段に記憶されたデータと当該データに対して当該１つのサーバ装置が付与したサーバ用識別情報とを取得し、取得したデータを対象とする前記格納要求を前記新たなサーバ装置に対して送信し、
前記識別情報登録手段は、前記新たなサーバ装置に対して前記同期手段が送信した格納要求の対象のデータに前記新たなサーバ装置が付与したサーバ用識別情報を前記新たなサーバ装置から取得し、取得したサーバ用識別情報を、稼働中の前記複数のサーバ装置のうちの１つから前記同期手段が取得したサーバ用識別情報に対応づけて前記識別情報記憶手段に登録する、
ことを特徴とする請求項２または３に記載のデータ中継システム。
【請求項５】
クライアント装置により送受信されるデータを管理する複数のサーバ装置のそれぞれと、前記クライアント装置と、の間の通信を中継し、
前記利用者宛のデータを前記複数のサーバ装置それぞれのデータ記憶手段に格納させることで前記複数のサーバ装置それぞれの前記データ記憶手段中のデータを同期させる同期手段と、
前記同期手段により各サーバ装置の前記データ記憶手段に格納させられたデータに対して各サーバ装置が付与した識別情報を各サーバ装置から取得し、取得した各識別情報であるサーバ用識別情報のそれぞれと、当該データの識別情報として前記クライアント装置に送信されるクライアント用識別情報と、を対応づけて識別情報記憶手段に登録する識別情報登録手段と、
前記クライアント装置が前記サーバ装置に対して行った要求を前記複数のサーバ装置のうちの１つに対して転送し、当該要求を受信したサーバ装置が当該要求に応じて送信した応答を前記クライアント装置に対して転送する中継処理を行う中継処理手段であって、当該応答が前記サーバ用識別情報を含む場合に、当該応答に含まれる当該サーバ用識別情報を、当該サーバ用識別情報に対応づけて前記識別情報記憶手段に記憶されたクライアント用識別情報で置換した上で、当該応答を前記クライアント装置に対して転送する、中継処理手段と、
を備えることを特徴とする中継装置。
【請求項６】
前記同期手段は、前記サーバ装置が１つだけ稼働中であり、新たな前記サーバ装置を稼動させる場合に、前記稼働中のサーバ装置が管理するデータと当該データの識別情報とを前記稼働中のサーバ装置から取得し、取得したデータを前記新たなサーバ装置に送信することで、前記新たなサーバ装置と前記稼働中のサーバ装置との間でデータを同期させ、
前記識別情報登録手段は、前記稼働中のサーバ装置から前記同期手段が取得したデータの識別情報を、当該データの前記クライアント用識別情報とし、このクライアント用識別情報と前記同期手段が取得したデータの識別情報であるサーバ用識別情報とを対応づけて前記識別情報記憶手段に登録する識別情報登録手段であって、さらに、前記新たなサーバ装置に対して前記同期手段が送信したデータに前記新たなサーバ装置が付与した識別情報を前記新たなサーバ装置から取得し、取得した識別情報を前記新たなサーバ装置に対応するサーバ用識別情報として、前記同期手段が取得したサーバ用識別情報に対応づけて前記識別情報記憶手段に登録する、
をさらに備えることを特徴とする請求項５に記載の中継装置。
【請求項７】
コンピュータを、
クライアント装置により送受信されるデータを管理する複数のサーバ装置のそれぞれと、前記クライアント装置と、の間の通信を中継する中継装置として機能させ、
前記利用者宛のデータを前記複数のサーバ装置それぞれのデータ記憶手段に格納させることで前記複数のサーバ装置それぞれの前記データ記憶手段中のデータを同期させる同期手段、
前記同期手段により各サーバ装置の前記データ記憶手段に格納させられたデータに対して各サーバ装置が付与した識別情報を各サーバ装置から取得し、取得した各識別情報であるサーバ用識別情報のそれぞれと、当該データの識別情報として前記クライアント装置に送信されるクライアント用識別情報と、を対応づけて識別情報記憶手段に登録する識別情報登録手段、
前記クライアント装置が前記サーバ装置に対して行った要求を前記複数のサーバ装置のうちの１つに対して転送し、当該要求を受信したサーバ装置が当該要求に応じて送信した応答を前記クライアント装置に対して転送する中継処理を行う中継処理手段であって、当該応答が前記サーバ用識別情報を含む場合に、当該応答に含まれる当該サーバ用識別情報を、当該サーバ用識別情報に対応づけて前記識別情報記憶手段に記憶されたクライアント用識別情報で置換した上で、当該応答を前記クライアント装置に対して転送する、中継処理手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ中継システム、中継装置、およびプログラムに関する。
【背景技術】
【０００２】
クライアント間のデータの送受信を管理するサーバを含むシステムにおいて、サーバを多重化することでシステムの可用性を高める技術がある。
【０００３】
例えば、特許文献１に記載の電子メールシステムは、複数のメールサーバを備え、これら複数のメールサーバは、これらのうち１台のファイルシステムを他のメールサーバがマウントすることで、電子メールの送受信や格納に用いるファイルシステムを共有する。このシステムに対するログインは、複数のメールサーバのいずれに対しても同一のアカウントおよびパスワードでログインできるように管理される。このシステムは、さらに、電子メールの送信先となるメールサーバのホスト名を管理するＤＮＳサーバを備え、当該ＤＮＳサーバは、１つのメールサーバに障害が発生すると、他のメールサーバにより電子メールを送受信するように設定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−８６１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、クライアント間のデータの送受信を管理するサーバを多重化する場合に、複数のサーバにおいて互いに共通のファイルシステムを持たせることなくサーバを多重化できるデータ中継システム、中継装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に係る発明は、クライアント装置により送受信されるデータを管理する複数のサーバ装置と、前記クライアント装置と前記複数のサーバ装置それぞれとの間の通信を中継する中継装置と、を備え、前記複数のサーバ装置のそれぞれは、前記クライアント装置の利用者宛のデータと当該データに対して当該サーバ装置が付与した識別情報とを対応づけて記憶するデータ記憶手段と、前記データ記憶手段に記憶されたデータに関する処理の要求を受信した場合に、受信した要求に応じて処理を行い、この処理の結果を含む応答を要求元に対して送信する要求処理手段と、を備え、前記中継装置は、前記利用者宛のデータを前記複数のサーバ装置それぞれの前記データ記憶手段に格納させることで前記複数のサーバ装置それぞれの前記データ記憶手段中のデータを同期させる同期手段と、前記同期手段により各サーバ装置の前記データ記憶手段に格納させられたデータに対して各サーバ装置が付与した識別情報を各サーバ装置から取得し、取得した各識別情報であるサーバ用識別情報のそれぞれと、当該データの識別情報として前記クライアント装置に送信されるクライアント用識別情報と、を対応づけて識別情報記憶手段に登録する識別情報登録手段と、前記クライアント装置が前記サーバ装置に対して行った要求を受信して前記複数のサーバ装置のうちの１つに対して転送し、当該要求を受信したサーバ装置の前記要求処理手段が当該要求に応じて送信した応答を受信して前記クライアント装置に対して転送する中継処理を行う中継処理手段であって、当該応答が前記サーバ用識別情報を含む場合に、当該応答に含まれる当該サーバ用識別情報を、当該サーバ用識別情報に対応づけて前記識別情報記憶手段に記憶されたクライアント用識別情報で置換した上で、当該応答を前記クライアント装置に対して転送する、中継処理手段と、を備える、ことを特徴とするデータ中継システムである。
【０００７】
請求項２に係る発明は、請求項１に係る発明において、前記複数のサーバ装置それぞれの前記要求処理手段は、前記利用者宛の新たなデータの前記データ記憶手段への格納を要求する格納要求を受信した場合に、当該格納要求の対象のデータを前記データ記憶手段に格納し、かつ、当該データに新たな識別情報を付与し、付与した識別情報を当該データに対応づけて前記データ記憶手段に格納し、前記中継装置において、前記同期手段は、前記クライアント装置からの前記格納要求を前記中継処理手段が受信した場合に、前記複数のサーバ装置それぞれに対して前記格納要求を送信し、前記識別情報登録手段は、前記同期手段が送信した格納要求の対象のデータに対して前記複数のサーバ装置それぞれが付与したサーバ用識別情報を前記複数のサーバ装置それぞれから取得し、当該格納要求の対象のデータに対して前記クライアント用識別情報を付与し、付与したクライアント用識別情報と、前記複数のサーバ装置それぞれから取得した各サーバ用識別情報と、を互いに対応づけて前記識別情報記憶手段に登録する。
【０００８】
請求項３に係る発明は、請求項２に係る発明において、前記複数のサーバ装置それぞれの前記要求処理手段は、前記データ記憶手段に記憶されたデータの削除を要求する削除要求を受信した場合に、受信した削除要求の対象のデータを前記データ記憶手段から削除し、前記中継装置の前記同期手段は、前記中継処理手段が前記複数のサーバ装置のうちの１つに対して前記削除要求を転送した場合に、当該削除要求の対象のデータに対して当該１つのサーバ装置が付与したサーバ用識別情報を当該１つのサーバ装置から取得し、取得したサーバ用識別情報に対応づけて前記識別情報記憶手段に記憶された、当該１つのサーバ装置の他のサーバ装置それぞれに対応する各サーバ用識別情報を参照して、当該データを対象とする削除要求を前記他のサーバ装置それぞれに対して送信する。
【０００９】
請求項４に係る発明は、請求項２または３に係る発明において、稼働中の前記複数のサーバ装置に追加して新たなサーバ装置を稼動させる場合に、前記中継装置において、前記同期手段は、稼働中の前記複数のサーバ装置のうちの１つから、前記データ記憶手段に記憶されたデータと当該データに対して当該１つのサーバ装置が付与したサーバ用識別情報とを取得し、取得したデータを対象とする前記格納要求を前記新たなサーバ装置に対して送信し、前記識別情報登録手段は、前記新たなサーバ装置に対して前記同期手段が送信した格納要求の対象のデータに前記新たなサーバ装置が付与したサーバ用識別情報を前記新たなサーバ装置から取得し、取得したサーバ用識別情報を、稼働中の前記複数のサーバ装置のうちの１つから前記同期手段が取得したサーバ用識別情報に対応づけて前記識別情報記憶手段に登録する。
【００１０】
請求項５に係る発明は、クライアント装置により送受信されるデータを管理する複数のサーバ装置のそれぞれと、前記クライアント装置と、の間の通信を中継し、前記利用者宛のデータを前記複数のサーバ装置それぞれのデータ記憶手段に格納させることで前記複数のサーバ装置それぞれの前記データ記憶手段中のデータを同期させる同期手段と、前記同期手段により各サーバ装置の前記データ記憶手段に格納させられたデータに対して各サーバ装置が付与した識別情報を各サーバ装置から取得し、取得した各識別情報であるサーバ用識別情報のそれぞれと、当該データの識別情報として前記クライアント装置に送信されるクライアント用識別情報と、を対応づけて識別情報記憶手段に登録する識別情報登録手段と、前記クライアント装置が前記サーバ装置に対して行った要求を前記複数のサーバ装置のうちの１つに対して転送し、当該要求を受信したサーバ装置が当該要求に応じて送信した応答を前記クライアント装置に対して転送する中継処理を行う中継処理手段であって、当該応答が前記サーバ用識別情報を含む場合に、当該応答に含まれる当該サーバ用識別情報を、当該サーバ用識別情報に対応づけて前記識別情報記憶手段に記憶されたクライアント用識別情報で置換した上で、当該応答を前記クライアント装置に対して転送する、中継処理手段と、を備えることを特徴とする中継装置である。
【００１１】
請求項６に係る発明は、請求項５に係る発明において、前記同期手段は、前記サーバ装置が１つだけ稼働中であり、新たな前記サーバ装置を稼動させる場合に、前記稼働中のサーバ装置が管理するデータと当該データの識別情報とを前記稼働中のサーバ装置から取得し、取得したデータを前記新たなサーバ装置に送信することで、前記新たなサーバ装置と前記稼働中のサーバ装置との間でデータを同期させ、前記識別情報登録手段は、前記稼働中のサーバ装置から前記同期手段が取得したデータの識別情報を、当該データの前記クライアント用識別情報とし、このクライアント用識別情報と前記同期手段が取得したデータの識別情報であるサーバ用識別情報とを対応づけて前記識別情報記憶手段に登録する識別情報登録手段であって、さらに、前記新たなサーバ装置に対して前記同期手段が送信したデータに前記新たなサーバ装置が付与した識別情報を前記新たなサーバ装置から取得し、取得した識別情報を前記新たなサーバ装置に対応するサーバ用識別情報として、前記同期手段が取得したサーバ用識別情報に対応づけて前記識別情報記憶手段に登録する。
【００１２】
請求項７に係る発明は、コンピュータを、クライアント装置により送受信されるデータを管理する複数のサーバ装置のそれぞれと、前記クライアント装置と、の間の通信を中継する中継装置として機能させ、前記利用者宛のデータを前記複数のサーバ装置それぞれのデータ記憶手段に格納させることで前記複数のサーバ装置それぞれの前記データ記憶手段中のデータを同期させる同期手段、前記同期手段により各サーバ装置の前記データ記憶手段に格納させられたデータに対して各サーバ装置が付与した識別情報を各サーバ装置から取得し、取得した各識別情報であるサーバ用識別情報のそれぞれと、当該データの識別情報として前記クライアント装置に送信されるクライアント用識別情報と、を対応づけて識別情報記憶手段に登録する識別情報登録手段、前記クライアント装置が前記サーバ装置に対して行った要求を前記複数のサーバ装置のうちの１つに対して転送し、当該要求を受信したサーバ装置が当該要求に応じて送信した応答を前記クライアント装置に対して転送する中継処理を行う中継処理手段であって、当該応答が前記サーバ用識別情報を含む場合に、当該応答に含まれる当該サーバ用識別情報を、当該サーバ用識別情報に対応づけて前記識別情報記憶手段に記憶されたクライアント用識別情報で置換した上で、当該応答を前記クライアント装置に対して転送する、中継処理手段、として機能させるためのプログラムである。
【発明の効果】
【００１３】
請求項１、５または７に係る発明によると、クライアント装置間のデータの送受信を管理するサーバ装置を多重化する場合に、複数のサーバ装置において互いに共通のファイルシステムを持たせることなくサーバ装置を多重化できる。
【００１４】
請求項２に係る発明によると、サーバ装置のデータ記憶手段に新たなデータが格納される場合に、複数のサーバ装置においてデータ記憶手段中のデータを同期させることができる。
【００１５】
請求項３に係る発明によると、サーバ装置のデータ記憶手段からデータが削除される場合に、複数のサーバ装置においてデータ記憶手段中のデータを同期させることができる。
【００１６】
請求項４に係る発明によると、システムに新たに追加されるサーバ装置のデータ記憶手段のデータを、すでに稼働中のサーバ装置のデータ記憶手段のデータに同期させることができる。
【００１７】
請求項６に係る発明によると、システムに新たに追加されるサーバ装置のデータ記憶手段のデータを、すでに稼働中のサーバ装置のデータ記憶手段のデータに同期させると共に、サーバ装置がデータに付与した識別情報であってクライアント装置に通知済みの可能性がある識別情報を、クライアント装置に送信する識別情報として識別情報記憶手段に登録できる。
【図面の簡単な説明】
【００１８】
【図１】システムの概略構成の例を示すブロック図である。
【図２】メールサーバの内部構成の概略の例を示すブロック図である。
【図３】メールアカウントテーブルの例を示す図である。
【図４】電子メール代理装置の内部構成の概略の例を示すブロック図である。
【図５】ＵＩＤＬテーブルの内容の例を示す図である。
【図６】システムにメールサーバを追加する際の電子メール代理装置およびメールサーバの動作の例を示すシーケンス図である。
【図７】図６の例のシーケンス中のある時点でのＵＩＤＬテーブルの内容の例を示す図である。
【図８】ＵＩＤＬテーブルの内容の他の例を示す図である。
【図９】クライアント端末がＰＯＰにより電子メールを受信する場合のシステムの動作の例を示すシーケンス図である。
【図１０】クライアント端末がＰＯＰにより電子メールを受信する場合のシステムの動作の他の例を示すシーケンス図である。
【図１１】図１０の例のシーケンスに続いて実行される動作の例を示すシーケンス図である。
【図１２】クライアント端末がＳＭＴＰにより電子メールを送信する場合のシステムの動作の例を示すシーケンス図である。
【図１３】コンピュータのハードウエア構成の例を示すブロック図である。
【発明を実施するための形態】
【００１９】
図１に例示するシステムは、複数のメールサーバ１０−１，１０−２・・・がネットワーク４０−１を介して電子メール代理装置２０に接続され、クライアント端末３０がネットワーク４０−２を介して電子メール代理装置２０に接続された構成を有する。さらに、ネットワーク４０−２には、他ドメインメールサーバ５０も接続されている。
【００２０】
各メールサーバ１０−１，１０−２・・・は、互いに同一のドメイン名を含むメールアドレスによる電子メールの送受信を管理するサーバ装置である。各メールサーバ１０−１，１０−２・・・は、互いに同一の機能を備える。以下の説明では、各メールサーバ１０−１，１０−２，・・・を区別する必要がない場合、メールサーバ１０と総称する。また、以下の説明において、各メールサーバ１０−１，１０−２，・・・を区別する必要がある場合、メールサーバ１，メールサーバ２などと呼ぶこともある。メールサーバ１０の詳細は後述する。
【００２１】
電子メール代理装置２０は、各メールサーバ１０−１，１０−２，・・・とクライアント端末３０や他ドメインメールサーバ５０との間の通信を中継する。電子メール代理装置２０は、本発明の一実施形態の例の中継装置として機能する。クライアント端末３０および他ドメインメールサーバ５０は、電子メール代理装置２０を介してメールサーバ１０との間の通信を行う。電子メール代理装置２０の詳細は後述する。
【００２２】
クライアント端末３０は、電子メールの送受信を行う端末装置である。クライアント端末３０は、パーソナル・コンピュータや携帯情報端末などの情報処理装置であってよい。
【００２３】
ネットワーク４０−１，４０−２は、装置間の通信を可能とする通信手段である。例えば、ネットワーク４０−１を、特定の装置のみが接続されるＬＡＮ（ローカル・エリア・ネットワーク）などのネットワークとし、ネットワーク４０−２を、不特定の装置が接続され得るインターネットなどのネットワークとすればよい。また、図１の例では、ネットワーク４０−１，４０−２は互いに異なるネットワークであるが、他のシステムの例では、ネットワーク４０−１，４０−２を同一のネットワークとしてもよい。ただし、ネットワーク４０−１，４０−２を同一のネットワークとする場合においても、メールサーバ１０と他の装置との間の通信は電子メール代理装置２０を介して行われるようにシステムを設計しておく。
【００２４】
他ドメインメールサーバ５０は、メールサーバ１０の管理対象のドメイン名と異なるドメイン名を含むメールアドレスによる電子メールの送受信を管理するサーバである。
【００２５】
図１では、クライアント端末３０および他ドメインメールサーバ５０をそれぞれ１つだけ示すが、複数のクライアント端末３０および他ドメインメールサーバ５０がネットワーク４０−２に接続されていてもよい。また、クライアント端末３０は、ネットワーク４０−２だけでなく、ネットワーク４０−１にも接続されていてよい。ただし、クライアント端末３０がネットワーク４０−１に接続されている場合であっても、クライアント端末３０とメールサーバ１０との間の通信は、電子メール代理装置２０を介して行われる。
【００２６】
図２を参照し、メールサーバ１０の構成の例を説明する。メールサーバ１０は、メールＤＢ（データベース）１００、ＳＭＴＰ処理部１０２、およびＰＯＰ処理部１０４を備える。
【００２７】
メールＤＢ１００は、メールサーバ１０の管理対象のメールアドレス宛の電子メールを記憶する記憶手段である。また、メールＤＢ１００は、メールサーバ１０の管理対象の各メールアドレスのユーザのアカウントを登録した情報テーブルであるメールアカウントテーブルを記憶する。図３に、メールアカウントテーブルの例を示す。
【００２８】
図３の例の表では、各メールアドレスに対応づけて、当該メールアドレスのユーザのＰＯＰアカウント、およびＰＯＰパスワードが登録されている。図３に例示するメールアドレスは、いずれも、同一のドメイン名「example.com」を含む。ＰＯＰアカウントは、ＰＯＰ（Post Office Protocol）に従ってクライアント端末３０がメールサーバ１０と通信する際のユーザ認証に用いられるアカウントである。ＰＯＰは、電子メールを管理するサーバからクライアントが電子メールを受信する場合に一般的に用いられる通信規約の一つである（ＲＦＣ  １９３９などを参照）。本実施形態の例において、クライアント端末３０は、ＰＯＰに従って電子メール代理装置２０を介してメールサーバ１０から電子メールを受信する（詳細は後述）。ＰＯＰパスワードは、ＰＯＰアカウントに対応するパスワードである。メールサーバ１０は、ＰＯＰアカウントとＰＯＰパスワードとの組による認証に成功した場合にのみ、クライアント端末３０からのＰＯＰに従った要求に応答する。
【００２９】
メールＤＢ１００は、図３の例の各項目に加えて、ＳＭＴＰアカウントおよびＳＭＴＰパスワードをさらに記憶しておいてもよい。ＳＭＴＰ（Simple Mail Transfer Protocol）は、電子メールを送信する場合に、クライアントとサーバとの間の通信およびサーバ間の通信において一般的に用いられる通信規約の一つである（ＲＦＣ  ５３２１などを参照）。本実施形態の例では、クライアント端末３０は、ＳＭＴＰに従って、電子メール代理装置２０を介してメールサーバ１０に対し電子メール送信の要求を行う（詳細は後述）。本例では、ＳＭＴＰに従った電子メールの送信においてユーザ認証を行わないため、ＳＭＴＰアカウントおよびＳＭＴＰパスワードをメールＤＢ１００に記憶しない。ＳＭＴＰに従った通信を開始する前にユーザ認証を行う例では、メールＤＢ１００において、各電子メールアドレスに対応づけてＳＭＴＰアカウントおよびＳＭＴＰパスワードを記憶させておき、メールサーバ１０は、このＳＭＴＰアカウントとＳＭＴＰパスワードとの組によるユーザ認証に成功した場合にのみ、クライアント端末３０からのＳＭＴＰに従った要求に応答する。
【００３０】
図２の説明に戻り、メールＤＢ１００は、メールアカウントテーブルに登録されたメールアドレスごとに、当該メールアドレス宛の電子メールを記憶する。各電子メールには、後述するように、ＰＯＰ処理部１０４によりＵＩＤＬ（Unique ID Listing）と呼ばれる識別情報が付与される。メールＤＢ１００は、各電子メールと当該電子メールのＵＩＤＬとを対応づけて記憶する。
【００３１】
ＳＭＴＰ処理部１０２は、ＳＭＴＰに従った通信に関する処理を行う。例えば、メールサーバ１０がＳＭＴＰに従った要求（以下、「ＳＭＴＰ要求」とも呼ぶ）を受けると、ＳＭＴＰ処理部１０２により、このＳＭＴＰ要求に応じた処理が行われる。例えば電子メール送信のＳＭＴＰ要求であれば、ＳＭＴＰ処理部１０２は、まず、送信対象の電子メールの宛先アドレスを確認する。この宛先アドレスがメールＤＢ１００中のメールアカウントテーブルに登録されたメールアドレスであれば、当該メールアドレス宛の電子メールとして、当該送信対象の電子メールをメールＤＢ１００に格納する。また、宛先アドレスがメールＤＢ１００中のメールアカウントテーブルに登録されたメールアドレスでなければ、この宛先アドレスに含まれるドメイン名に対応する他ドメインメールサーバ５０宛に、当該送信対象の電子メールを転送する。
【００３２】
ＰＯＰ処理部１０４は、ＰＯＰに従った通信に関する処理を行う。ＰＯＰ処理部１０４は、例えば、ＳＭＴＰ処理部１０２が上述のようにメールＤＢ１００に格納した各電子メールに対し、ＰＯＰに従った要求（以下、「ＰＯＰ要求」とも呼ぶ）を行った装置との間で各電子メールの識別情報として用いるＵＩＤＬを付与する。また、ＰＯＰ処理部１０４は、ＰＯＰ要求を受けた場合に、メールＤＢ１００中のメールアカウントテーブルに登録されたＰＯＰアカウントおよびＰＯＰパスワードを用いて、要求元のユーザの認証を行う。ユーザ認証に成功すると、ＰＯＰ処理部１０４は、ＰＯＰ要求に応じた処理を行う。例えば、認証されたユーザのメールアドレス宛の電子メールのＵＩＤＬを問合わせるＰＯＰ要求に応じて、ＰＯＰ処理部１０４は、当該メールアドレス宛の各電子メールに付与したＵＩＤＬを要求元に返送する。ＰＯＰ要求の他の例に応じた処理の詳細は後述する。なお、ＰＯＰアカウントおよびＰＯＰパスワードによるユーザ認証に失敗した場合は、ＰＯＰ処理部１０４は、ＰＯＰ要求に応じた処理を行わない。
【００３３】
複数のメールサーバ１０−１，１０−２，・・・のそれぞれが備えるメールＤＢ１００に記憶されるメールアカウントテーブルおよび電子メールの内容は、互いに同一となるように電子メール代理装置２０により管理される。つまり、各メールサーバ１０−１，１０−２，・・・のメールＤＢ１００には、同一内容のメールアカウントテーブルが格納される。さらに、各メールサーバ１０−１，１０−２，・・・のメールＤＢ１００中の各メールアドレス宛の電子メールが同一となるように、メールＤＢ１００のデータ内容の同期が行われる。ただし、複数のメールサーバ１０のそれぞれにおいて、同じ電子メールに対して、ＰＯＰ処理部１０４は、異なるＵＩＤＬを付与してよい。すなわち、メールサーバ１０−１，１０−２，・・・のそれぞれのメールＤＢ１００に同様に格納された、ある電子メールに対して、各メールサーバ１０−１，１０−２，・・・において付与されるＵＩＤＬは異なっていてよい。
【００３４】
また、複数のメールサーバ１０において、メールＤＢ１００の具体的なデータ構造や、ＳＭＴＰ処理部１０２およびＰＯＰ処理部１０４を実現するソフトウエアは、互いに異なっていてよい。例えば、複数のメールサーバ１０のメールＤＢ１００は、互いに異なるファイルシステムによって実現されていてよい。また例えば、複数のメールサーバ１０のオペレーティングシステムが互いに異なっていてもよいし、共通のオペレーティングシステムで動作する複数のメールサーバ１０の間で、ＳＭＴＰ処理部１０２およびＰＯＰ処理部１０４を実現するソフトウエアが異なっていてもよい。
【００３５】
図４を参照し、電子メール代理装置２０の構成の例を説明する。電子メール代理装置２０は、記憶部２００、中継処理部２１０、および同期処理部２２０を備える。
【００３６】
記憶部２００は、メールアカウントテーブルおよびＵＩＤＬテーブルを記憶する。記憶部２００に記憶されたメールアカウントテーブルの内容は、各メールサーバ１０のメールＤＢ１００に記憶されたメールアカウントテーブルの内容と同一である。例えば、図３の例の表のメールアカウントテーブルが各メールサーバ１０のメールＤＢ１００に記憶されている場合、記憶部２００にも、同様に図３の例の表のメールアカウントテーブルが記憶される。ＵＩＤＬテーブルは、同一の電子メールに対して各メールサーバ１０が付与したＵＩＤＬのそれぞれと、当該電子メールのＵＩＤＬとしてクライアント端末３０に通知されるＵＩＤＬと、を対応づける情報テーブルである。図５に、ＵＩＤＬテーブルの例を示す。
【００３７】
図５の例の表は、メールアドレス「aaa@example.com」宛の電子メールに付与されたＵＩＤＬを示す。図５の例の表の１行は、１つの電子メールに付与されたＵＩＤＬを示す。図５の例の表において、「ＰＯＰクライアント用ＵＩＤＬ」は、当該電子メールのＵＩＤＬとしてクライアント端末３０に通知されるＵＩＤＬを表す。各電子メールのＰＯＰクライアント用ＵＩＤＬは、電子メール代理装置２０によって付与される。「メールサーバ１用ＵＩＤＬ」，「メールサーバ２用ＵＩＤＬ」は、それぞれ、当該電子メールに対し各メールサーバ１０−１，１０−２が付与したＵＩＤＬを表す。例えば、図５の例の表の行Ｌ１に対応する電子メールには、電子メール代理装置２０によってＰＯＰクライアント用ＵＩＤＬ「iiii」が付与され、メールサーバ１によってＵＩＤＬ「1001」が付与され、メールサーバ２によってＵＩＤＬ「aaax」が付与されている。
【００３８】
本実施形態の例の電子メール代理装置２０は、メールアカウントテーブルに登録されたメールアドレスごとに、図５の例のようなＵＩＤＬテーブルを生成して記憶部２００に格納する。ＵＩＤＬテーブルの生成の手順の例は後述する。
【００３９】
図４の説明に戻り、中継処理部２１０は、メールサーバ１０とその他の装置との間の通信を中継するための処理を行う。中継処理部２１０は、データ中継部２１２およびＵＩＤＬ変更部２１４を備える。
【００４０】
データ中継部２１２は、クライアント端末３０または他ドメインメールサーバ５０からメールサーバ１０に対して送信されたデータを受信し、受信したデータを複数のメールサーバ１０のうちの１つに対して転送する。また、データ中継部２１２は、メールサーバ１０からクライアント端末３０または他ドメインメールサーバ５０に対して送信されたデータを受信し、受信したデータを送信先の装置に対して転送する。例えば、データ中継部２１２は、クライアント端末３０からＰＯＰまたはＳＭＴＰに従った要求を受信すると、複数のメールサーバ１０のうちの１つに対して当該要求を転送し、当該１つのメールサーバ１０から当該要求に応じて返される応答を要求元のクライアント端末３０に対して転送する。
【００４１】
ＵＩＤＬ変更部２１４は、メールサーバ１０からクライアント端末３０に対して送信されたデータの中に、当該メールサーバ１０用のＵＩＤＬが含まれている場合に、記憶部２００中のＵＩＤＬテーブルを参照し、当該メールサーバ１０用のＵＩＤＬに対応づけられたクライアント用ＵＩＤＬを取得する。そして、メールサーバ１０からクライアント端末３０に対して送信されたデータに含まれる当該メールサーバ１０用のＵＩＤＬを、ＵＩＤＬテーブルから取得したクライアント用ＵＩＤＬで置換した上で、当該データをクライアント端末３０に対して転送する。
【００４２】
本実施形態の例の中継処理部２１０は、データ中継部２１２によりメールサーバ１０に対して転送される要求がメールＤＢ１００のデータ内容を変更する処理の要求である場合、同期処理部２２０に対しその旨を通知する。例えば、メールサーバ１０の管理対象のメールアドレス宛に電子メールを送信するＳＭＴＰ要求の場合、メールサーバ１０において、送信対象の電子メールがメールＤＢ１００に新たに格納されることから、メールＤＢ１００のデータ内容に変更が生じる。また例えば、ある電子メールをメールサーバ１０から削除するＰＯＰ要求の場合、メールサーバ１０のメールＤＢ１００から当該電子メールが削除されるため、メールＤＢ１００のデータ内容に変更が生じる。これらの例のような要求を複数のメールサーバ１０のうちの１つに対して転送する場合、中継処理部２１０は、その旨を同期処理部２２０に通知する。
【００４３】
同期処理部２２０は、複数のメールサーバ１０のメールＤＢ１００のデータ内容を同期するための処理を行う。同期処理部２２０は、中継処理部２１０からの上述のような通知に応じて、同期のための処理を開始する。同期処理部２２０は、メールサーバ同期部２２２およびＵＩＤＬテーブル管理部２２４を備える。
【００４４】
メールサーバ同期部２２２は、各メールサーバ１０が備えるメールＤＢ１００のデータ内容を同期させる処理を行う。例えば、上述の電子メール送信のＳＭＴＰ要求がメールサーバ１０のうちの１つに対して転送されて当該メールサーバ１０のメールＤＢ１００に新たな電子メールが格納された場合、メールサーバ同期部２２２は、ＰＯＰ要求を行って当該メールサーバ１０から当該新たな電子メールを取得し、他の各メールサーバ１０に対してＳＭＴＰ要求を行ってメールＤＢ１００に当該新たな電子メールを格納させる。また例えば、上述の電子メール削除のＰＯＰ要求がメールサーバ１０の１つに対して転送される場合、メールサーバ同期部２２２は、他の各メールサーバ１０のメールＤＢ１００においても当該ＰＯＰ要求の削除対象の電子メールが削除されるように、他の各メールサーバ１０に対してＰＯＰ要求を行う。
【００４５】
ＵＩＤＬテーブル管理部２２４は、ＵＩＤＬテーブルの生成および更新を行う。ＵＩＤＬテーブル管理部２２４は、各メールサーバ１０が備えるメールＤＢ１００のデータ内容の変更に関わる電子メールのＵＩＤＬを取得し、記憶部２００中のＵＩＤＬテーブルを更新する。例えば、上述のＳＭＴＰ要求の例においてメールサーバ同期部２２２により各メールサーバ１０のメールＤＢ１００に新たな電子メールが格納された場合、ＵＩＤＬテーブル管理部２２４は、各メールサーバ１０において当該新たな電子メールに付与されたＵＩＤＬを各メールサーバ１０から取得する。そして、取得した各ＵＩＤＬを各メールサーバ用のＵＩＤＬと、当該新たな電子メールに対して付与したクライアント用ＵＩＤＬとを対応づけてＵＩＤＬテーブルに登録する。また例えば、上述の電子メール削除のＰＯＰ要求の例の場合、削除対象の電子メールに対して各メールサーバ１０が付与したＵＩＤＬを各メールサーバ１０から取得し、取得した各ＵＩＤＬを含む情報レコードをＵＩＤＬテーブルから削除する。なお、電子メール削除のＰＯＰ要求により、各メールサーバ１０から当該電子メールが削除された後、必ずしも、ＵＩＤＬテーブルにおける削除対象の電子メールに対応する情報レコードは削除しなくてもよい。
【００４６】
以上、図１の例のシステムの構成の例を説明した。以下、図１の例のシステムの動作の例を説明する。
【００４７】
［メールサーバの追加］
図６および図７を参照し、システムにメールサーバを追加する際のシステムの動作の例を説明する。ここでは、すでに稼働中である１つのメールサーバを多重化する場合を例にとり説明する。本例の説明では、稼働中のメールサーバをメールサーバ１と呼び、メールサーバ１の多重化のために追加される新たなメールサーバをメールサーバ２と呼ぶ。
【００４８】
まず、システムの管理者などの指示により、追加されるメールサーバ２のメールＤＢ１００および電子メール代理装置２０の記憶部２００のそれぞれに、稼働中のメールサーバ１０のメールＤＢ１００中のメールアカウントテーブルと同一内容のメールアカウントテーブルが格納される。その後、図６に例示するシーケンスの動作が開始され、メールサーバ１のメールＤＢ１００に格納された電子メールがメールサーバ２のメールＤＢ１００に同期されると共に、電子メール代理装置２０においてＵＩＤＬテーブルが生成されて記憶部２００に格納される。
【００４９】
図６のシーケンスが開始されると、電子メール代理装置２０の同期処理部２２０は、記憶部２００のメールアカウントテーブルから、メールアドレス、ＰＯＰアカウント、およびＰＯＰパスワードの組を取得する（ステップＳ１００）。そして、ステップＳ１００で取得した組（メールアドレス，ＰＯＰアカウント，ＰＯＰパスワード）ごとに、ステップＳ１０２〜Ｓ１１８の処理を繰り返す。
【００５０】
同期処理部２２０は、現在の処理対象のＰＯＰアカウントおよびＰＯＰパスワードを用いてメールサーバ１に対してＰＯＰ要求を行い、現在の処理対象のメールアドレス宛の電子メールの本文およびＵＩＤＬの返送を要求する（ステップＳ１０２）。例えば、図３の例のメールアカウントテーブルのメールアドレス「aaa@example.com」が処理対象である場合、対応するＰＯＰアカウント「aaa」およびＰＯＰパスワード「password_of_aaa」を用いて、メールアドレス「aaa@example.com」宛の電子メールとしてメールサーバ１のメールＤＢ１００に格納されている各電子メールの本文およびＵＩＤＬの返送を要求するＰＯＰ要求を行う。
【００５１】
メールサーバ１のＰＯＰ処理部１０４は、ステップＳ１０２のＰＯＰ要求に応じて、処理対象のメールアドレス宛の電子メールの本文およびＵＩＤＬを含むＰＯＰ応答を返す（ステップＳ１０４）。
【００５２】
このＰＯＰ応答を受けて、ＵＩＤＬテーブル管理部２２４は、当該ＰＯＰ応答に含まれる各ＵＩＤＬをＵＩＤＬテーブルに登録する（ステップＳ１０６）。ステップＳ１０６で、ＵＩＤＬテーブル管理部２２４は、例えば、現在の処理対象のメールアドレスのＵＩＤＬテーブルを新規生成し、当該ＵＩＤＬテーブルのメールサーバ１用ＵＩＤＬの項目にステップＳ１０４で受信したＵＩＤＬの値を設定する。さらに、設定した各メールサーバ１用ＵＩＤＬに対応するＰＯＰクライアント用ＵＩＤＬとして、メールサーバ１用ＵＩＤＬと同一の値を設定する。これは、メールサーバ１から既にＵＩＤＬを取得したクライアント端末３０が保持しているＵＩＤＬと、図６の例のシーケンスの終了後に電子メール代理装置２０からクライアント端末３０に対して通知されるＰＯＰクライアント用ＵＩＤＬとの間の整合性を保つためである。
【００５３】
図７（ａ）に、ステップＳ１０６が完了した時点でのＵＩＤＬテーブルの内容の一例を示す。図７（ａ）は、メールサーバ１のメールＤＢ１００に処理対象のメールアドレス「aaa@example.com」宛の電子メールが３通格納されており、これら各電子メールのＵＩＤＬ「0001」，「0002」，「0003」をステップＳ１０４で同期処理部２２０が取得した場合の例である。なお、この時点では、ＵＩＤＬテーブルのメールサーバ２用ＵＩＤＬの項目の値は「なし（−）」である。
【００５４】
再び図６を参照し、同期処理部２２０のメールサーバ同期部２２２は、追加される新たなメールサーバ２に対し、ステップＳ１０４で取得した各電子メールの本文を含むＳＭＴＰ要求を行う（ステップＳ１０８）。このとき、各電子メールの宛先アドレスとして処理対象のメールアドレスを設定する。例えば、ＳＭＴＰで送信対象の電子メールの受信者（宛先）を指定するコマンド「RCPT TO」により、現在の処理対象のメールアドレスを指定することで、当該メールアドレスが各電子メールの宛先アドレスとして設定される。
【００５５】
ステップＳ１０８のＳＭＴＰ要求を受けたメールサーバ２において、ＳＭＴＰ処理部１０２は、送信対象の各電子メールの宛先アドレスが管理対象のメールアドレスである（つまり、メールアカウントテーブルに登録されている）ことから、当該メールアドレス宛の電子メールとして、当該ＳＭＴＰ要求の送信対象の各電子メールをメールＤＢ１００に格納する（ステップＳ１１０）。その後、メールサーバ２のＳＭＴＰ処理部１０２は、ＳＭＴＰ要求に応じた処理が完了した旨を表すＳＭＴＰ応答を返す（ステップＳ１１２）。
【００５６】
ステップＳ１１２のＳＭＴＰ応答を受信した同期処理部２２０のＵＩＤＬテーブル管理部２２４は、メールサーバ２に対してＰＯＰ要求を行い、現在の処理対象のメールアドレス宛の各電子メールのＵＩＤＬの返送を要求する（ステップＳ１１４）。
【００５７】
ステップＳ１１４のＰＯＰ要求に応じて、メールサーバ２のＰＯＰ処理部１０４は、ＰＯＰ要求に係るメールアドレス宛の各電子メールのＵＩＤＬを含むＰＯＰ応答を返す（ステップＳ１１６）。このＰＯＰ応答に含まれるＵＩＤＬは、ステップＳ１１０でメールサーバ２のメールＤＢ１００に格納された各電子メールに対してメールサーバ２のＰＯＰ処理部１０４が付与したＵＩＤＬである。
【００５８】
ステップＳ１１６のＰＯＰ応答を受けた同期処理部２２０のＵＩＤＬテーブル管理部２２４は、当該ＰＯＰ応答に含まれるＵＩＤＬをＵＩＤＬテーブルに登録する（ステップＳ１１８）。ステップＳ１１８で、ＵＩＤＬテーブル管理部２２４は、ステップＳ１０６でＰＯＰクライアント用ＵＩＤＬおよびメールサーバ１用ＵＩＤＬが登録されたＵＩＤＬテーブル（図７（ａ）参照）において、メールサーバ２用ＵＩＤＬの項目にメールサーバ２から取得したＵＩＤＬの値を設定する。どのメールサーバ１用ＵＩＤＬに、メールサーバ２から取得したＵＩＤＬのうちのどれを対応づけるかは、例えば、メールサーバ２に対してＰＯＰ要求をさらに行って各ＵＩＤＬの電子メールの本文を取得し、ステップＳ１０４でメールサーバ１から取得した各電子メールの本文と比較することで特定すればよい。言い換えると、メールサーバ１およびメールサーバ２のそれぞれから取得した電子メールのうち、互いに同じ内容の本文を有する電子メールのＵＩＤＬ同士を対応づけるようにすればよい。電子メールの本文の比較を行う代わりに、各電子メールのデータサイズを要求するＰＯＰのコマンド「LIST」により、メールサーバ１およびメールサーバ２のそれぞれから、各電子メールのデータサイズを取得し、同一サイズの電子メールのＵＩＤＬ同士を対応づけるようにしてもよい。あるいは、各電子メールのヘッダ情報（送信者、受信者、送信日時などを含む）をＰＯＰ要求によりメールサーバ１およびメールサーバ２のそれぞれから取得し、取得したヘッダ情報が同一である電子メールのＵＩＤＬ同士を対応づけるようにしてもよい。上述のいずれの例の場合も、メールサーバ１およびメールサーバ２の各メールＤＢ１００に格納された、同一の電子メールに対して各メールサーバ１，２が付与したＵＩＤＬ同士を対応づけてＵＩＤＬテーブルに登録することになる。
【００５９】
図７（ｂ）に、ステップＳ１１８が完了した時点でのＵＩＤＬテーブルのデータ内容の一例を示す。図７（ｂ）は、ステップＳ１０６が完了した時点での図７（ａ）の例のＵＩＤＬテーブルにおいて、メールサーバ２用ＵＩＤＬの値を登録した場合の例である。図７（ｂ）の表においてメールサーバ１用ＵＩＤＬ「0001」を含む行を参照すると、当該行に対応する電子メールに対し、メールサーバ２ではメールサーバ２用ＵＩＤＬ「aaaa」が付与されたことがわかる。
【００６０】
以上で説明したステップＳ１０２〜Ｓ１１８の手順を、ステップＳ１００で取得されたメールアドレスごとに行うことで、メールサーバ１のメールＤＢ１００において管理対象のメールアドレスごとに格納された電子メールが、メールサーバ２のメールＤＢ１００に同様に格納される。さらに、電子メール代理装置２０において各メールアドレスのＵＩＤＬテーブルが生成されて記憶部２００に格納される。
【００６１】
図６の例のシーケンスが終了した後、さらにメールサーバを追加して３つ以上のメールサーバ１０を含むシステムを構築する場合にも、基本的には図６の例と同様の手順により、稼働中のメールサーバ１０と新たなメールサーバ１０との間の同期を取ると共に、ＵＩＤＬテーブルの更新を行う。この場合、稼働中の複数のメールサーバ１０のうちの１つを図６の例のメールサーバ１とし、新たに追加するメールサーバをメールサーバ２とすればよい。ただし、メールサーバ１から取得したＵＩＤＬをＵＩＤＬテーブルに登録する処理（ステップＳ１０６）において、すでにＵＩＤＬテーブルに登録済みのサーバ１用ＵＩＤＬの登録は省略する。
【００６２】
図６の例のシーケンスでは、新たなメールサーバ１０のシステムへの追加にあたり、稼働中のメールサーバ１０のソフトウエアやファイルシステムを変更する必要はない。また、稼働中のメールサーバ１０と追加のメールサーバ１０との間でソフトウエアやファイルシステムが異なっていたとしても、両者に同一内容のメールアカウントテーブルを設定しておきさえすれば、図６の例のシーケンスの実行に支障はない。
【００６３】
［ＰＯＰアクセス（電子メールの受信）］
図８〜図１１を参照し、クライアント端末３０がＰＯＰアクセスにより電子メールを受信する場合のシステムの動作の例を説明する。ここでは、説明のための具体例として、システムが２つのメールサーバ１０（メールサーバ１およびメールサーバ２）を備え、処理対象のメールアドレス「aaa@example.com」のＵＩＤＬテーブルが図８に示す内容を有するとする。
【００６４】
図８を参照し、メールアドレス「aaa@example.com」宛の電子メールとして１通の電子メールが各メールサーバ１，２のメールＤＢ１００に格納されており、当該電子メールに対し、メールサーバ１はＵＩＤＬ「0010」を、メールサーバ２はＵＩＤＬ「aaaj」を付与しているとする。また、当該電子メールに対し電子メール代理装置２０において付与されたＰＯＰクライアント用ＵＩＤＬは、「1111」であるとする。
【００６５】
クライアント端末がメールサーバから電子メールを受信する際には、クライアント端末で受信した電子メールをメールサーバに残す場合もあるし、受信した電子メールをメールサーバから削除する場合もある。受信済みの電子メールをメールサーバに残すか否かは、例えば、各メールアドレスのユーザが設定する。以下では、受信済みの電子メールをメールサーバに残すよう設定されている場合と残さないように設定されている場合とに分けて、電子メール受信におけるシステムの動作の例を説明する。
【００６６】
（１）受信済みの電子メールをメールサーバに残す設定の場合
図９は、受信済みの電子メールをメールサーバに残すように設定されている場合のシステムの動作の例を示すシーケンス図である。図９の例のシーケンスにおいて、クライアント端末３０が行う要求は、すべてＰＯＰ要求である。
【００６７】
まず、クライアント端末３０は、メールサーバ１０に対して認証要求を行う（ステップＳ２００）。この認証要求には、クライアント端末３０のユーザのＰＯＰアカウントおよびＰＯＰパスワードが含まれる。この認証要求は、電子メール代理装置２０で受信される。
【００６８】
ステップＳ２００の認証要求を受信した電子メール代理装置２０の中継処理部２１０は、複数の（本例では２つの）メールサーバ１０の中から、マスタサーバを１つ選択する（ステップＳ２０２）。例えば、複数のメールサーバ１０のうちの１つをラウンドロビン方式でマスタサーバとして選択すればよい。あるいは、例えば、複数のメールサーバ１０に対して予め優先順位を設定しておき、優先順位の高いメールサーバ１０から順に動作確認を行い、正常動作しているメールサーバ１０のうち最も優先順位の高いものをマスタサーバとして選択してもよい。本例では、マスタサーバとしてメールサーバ１を選択したとする。
【００６９】
中継処理部２１０のデータ中継部２１２は、ステップＳ２０２で選択したマスタサーバであるメールサーバ１に対して、クライアント端末３０からの認証要求をそのまま転送する（ステップＳ２０４）。
【００７０】
ステップＳ２０４により認証要求を受信したメールサーバ１のＰＯＰ処理部１０４は、自身のメールＤＢ１００中のメールアカウントテーブルに登録されたＰＯＰアカウントおよびＰＯＰパスワードの組と、ステップＳ２０４で転送されてきた認証要求に含まれるＰＯＰアカウントおよびＰＯＰパスワードの組とを比較することでユーザ認証を行い、認証の成否を応答する（ステップＳ２０６）。この応答は、電子メール代理装置２０で受信されてデータ中継部２１２によりクライアント端末３０に転送される（ステップＳ２０８）。
【００７１】
以下では、認証応答（ステップＳ２０６，Ｓ２０８）が認証の成功を表す場合のシーケンスの例を説明する。メールサーバ１のＰＯＰ処理部１０４で認証に失敗した場合は、以下で説明する処理を行わずに図９の例のシーケンスは終了する。
【００７２】
メールサーバ１からの認証応答を受信したクライアント端末３０は、ＵＩＤＬ要求を行う（ステップＳ２１０）。本例では、ステップＳ２１０で、クライアント端末３０は、ステップＳ２００〜Ｓ２０８で認証されたユーザのメールアドレス（処理対象のメールアドレス）宛の電子メールとしてメールサーバ１のメールＤＢ１００に格納された全ての電子メールのＵＩＤＬを要求する。
【００７３】
ステップＳ２１０のＵＩＤＬ要求は、電子メール代理装置２０により受信されてデータ中継部２１２によりメールサーバ１に対して転送される（ステップＳ２１２）。
【００７４】
ＵＩＤＬ要求を受信したメールサーバ１のＰＯＰ処理部１０４は、メールＤＢ１００に格納された、処理対象のメールアドレス宛の電子メールのＵＩＤＬを含む応答を返す（ステップＳ２１４）。この応答は、各電子メールのメッセージ番号およびＵＩＤＬの組を含む。メッセージ番号とは、ＰＯＰに従った通信において電子メールを識別するためにＰＯＰ処理部１０４により付与される番号であり、ＵＩＤＬとは別の番号である。ＰＯＰには、処理の実行対象の電子メールをメッセージ番号で指定する形式のコマンドがある。このため、ＰＯＰ処理部１０４は、各電子メールに関する情報（ＵＩＤＬや本文など）を含む応答を返す場合、当該応答に各電子メールのメッセージ番号と当該電子メールに関する情報との組を含める。本例では、ステップＳ２１４で、ＰＯＰ処理部１０４は、メールサーバ１のメールＤＢ１００に格納された、処理対象のメールアドレス「aaa@example.com」宛の１通の電子メールについて、メッセージ番号「1」，ＵＩＤＬ「0010」（図８参照）の組を含む応答を返す。
【００７５】
ステップＳ２１４の応答は、電子メール代理装置２０により受信される。受信した応答は、メールサーバ１が電子メールに付与したＵＩＤＬを含むため、中継処理部２１０のＵＩＤＬ変更部２１４は、ＵＩＤＬテーブルを参照し、応答中のＵＩＤＬをＰＯＰクライアント用ＵＩＤＬに変更する（ステップＳ２１６）。本例では、ＵＩＤＬ変更部２１４は、応答中のＵＩＤＬ「0010」を、図８に示すＵＩＤＬテーブルにおいてメールサーバ１用ＵＩＤＬ「0010」に対応づけられたＰＯＰクライアント用ＵＩＤＬ「1111」で置換する。
【００７６】
ステップＳ２１６の後、データ中継部２１２は、ＵＩＤＬ変更後の応答をクライアント端末３０に対して転送する（ステップＳ２１８）。本例において、クライアント端末３０に対して転送される応答は、メールサーバ１が返した応答中のメッセージ番号「1」と、ステップＳ２１６による変更後のＵＩＤＬ「1111」との組を含む。
【００７７】
ステップＳ２１８で受信したＵＩＤＬを用いて、クライアント端末３０は、未受信の電子メールを特定する（ステップＳ２２０）。クライアント端末３０は、ステップＳ２１８までのシーケンスによりＵＩＤＬ要求に応じて受信されるＵＩＤＬを自身の記憶装置に保存しておく。これにより、今回のステップＳ２１８で受信したＵＩＤＬのうち記憶装置に保存されていないＵＩＤＬの有無を調べることで未受信の電子メールが特定される。つまり、記憶装置に保存されていないＵＩＤＬをステップＳ２１８で受信した場合、当該ＵＩＤＬの電子メールを未受信の電子メールとして特定する。本例において、ステップＳ２１８でクライアント端末３０が受信するＵＩＤＬ「1111」は、未受信の電子メールのＵＩＤＬであるとする。
【００７８】
未受信の電子メールを特定すると、クライアント端末３０は、特定した電子メールの本文を要求する（ステップＳ２２２）。この要求のためのＰＯＰのコマンドとして、例えば、「RETR <メッセージ番号>」を用いればよい。「RETR」コマンドは、指定されたメッセージ番号の電子メールの全体を返送することを要求するコマンドである。ステップＳ２２２では、クライアント端末３０は、ステップＳ２２０で特定した未受信の電子メールのＵＩＤＬに対応するメッセージ番号（本例では「1」）を指定する「RETR」コマンドを生成してメールサーバ１に対して送信する。
【００７９】
ステップＳ２２２の要求は、電子メール代理装置２０で受信され、データ中継部２１２によりメールサーバ１に対して転送される（ステップＳ２２４）。
【００８０】
メールサーバ１のＰＯＰ処理部１０４は、ステップＳ２２４で転送された要求に応じて、指定されたメッセージ番号の電子メールの本文を含む応答を返す（ステップＳ２２６）。本例では、メッセージ番号「1」を指定する「RETR」コマンドに応じて、このメッセージ番号の電子メール（つまり、メールサーバ１用ＵＩＤＬ「0010」の電子メール）の全体を含む応答が返される。
【００８１】
電子メール代理装置２０のデータ中継部２１２は、ステップＳ２２６の応答を受信してクライアント端末３０に転送する（ステップＳ２２８）。
【００８２】
図９の例のシーケンスにより、クライアント端末３０は、メールサーバ１のメールＤＢ１００に格納された、処理対象のメールアドレス宛の電子メールのうち未受信のものを受信する。
【００８３】
図９の例のシーケンスでは、メールサーバ１は、メールＤＢ１００中の電子メールのＵＩＤＬおよび本文をクライアント端末３０に対して送信するだけで、メールＤＢ１００のデータ内容を変更することはない。このため、システム中のもう１つのメールサーバ２のメールＤＢ１００についてメールサーバ１と同期を取る必要はなく、電子メール代理装置２０の同期処理部２２０による処理は行われない。
【００８４】
（２）受信済みの電子メールをメールサーバに残さない設定の場合
次に、図１０および図１１を参照し、受信済みの電子メールをメールサーバ１０に残さないように設定されている場合のシステムの動作の例を説明する。
【００８５】
まず図１０を参照し、ＰＯＰによる認証処理（ステップＳ２００〜Ｓ２０８）は、図９のステップＳ２００〜Ｓ２０８と同様であるため、その説明を省略する。
【００８６】
ＰＯＰの認証が完了すると、クライアント端末３０は、処理対象のメールアドレス宛の電子メールのメッセージ番号を要求する（ステップＳ２５０）。本例では、処理対象のメールアドレス宛の電子メールとしてメールサーバ１のメールＤＢ１００に格納された全ての電子メールのメッセージ番号を要求する。ステップＳ２５０の要求は、例えば、ＰＯＰの「LIST」コマンドにより行えばよい。「LIST」コマンドは、各電子メールのメッセージ番号と当該電子メールのデータサイズとを含む応答を要求するコマンドである。
【００８７】
ステップＳ２５０のメッセージ番号の要求は電子メール代理装置２０で受信され、中継処理部２１０のデータ中継部２１２により、マスタサーバであるメールサーバ１に対して転送する（ステップＳ２５２）。
【００８８】
電子メール代理装置２０からメッセージ番号の要求を転送されたメールサーバ１のＰＯＰ処理部１０４は、メールＤＢ１００に格納された、処理対象のメールアドレス宛の各電子メールのメッセージ番号を応答する（ステップＳ２５４）。本例では、図８に示すように、処理対象のメールアドレス「aaa@example.com」宛に一通の電子メール（ＵＩＤＬは「0010」）がメールＤＢ１００に格納されていることから、当該一通の電子メールに対してメールサーバ１が付与したメッセージ番号「1」を含む応答が返される。
【００８９】
ステップＳ２５４の応答は、電子メール代理装置２０が備える中継処理部２１０のデータ中継部２１２によりクライアント端末３０に対して転送される（ステップＳ２５６）。
【００９０】
クライアント端末３０は、ステップＳ２５６で受信したメッセージ番号の電子メールの本文を要求する（ステップＳ２５８）。ステップＳ２５８では、メールサーバ１から返されたメッセージ番号の全てについて電子メールの本文を要求する。本例では、受信済みの電子メールをメールサーバに残さないように設定されているため、メールサーバ１のメールＤＢ１００に格納されている電子メールは全て未受信であると捉えられるからである。なお、クライアント端末３０がメッセージ番号「1」を含む応答を受信する本例では、上述の「RETR」コマンドでメッセージ番号「1」を指定することでステップＳ２５８の要求を行う。
【００９１】
ステップＳ２５８の要求は、電子メール代理装置２０が備える中継処理部２１０のデータ中継部２１２によりメールサーバ１に対して転送される（ステップＳ２６０）。
【００９２】
メールサーバ１のＰＯＰ処理部１０４は、転送された要求において指定されたメッセージ番号の電子メールの本文を含む応答を返し（ステップＳ２６２）、中継処理部２１０のデータ中継部２１２は、当該応答をクライアント端末３０に転送する（ステップＳ２６４）。
【００９３】
ステップＳ２６４で電子メールの本文を受信すると、クライアント端末３０は、当該電子メールのメールサーバ１からの削除を要求する（ステップＳ２６６）。この要求は、ＰＯＰの「DELE」コマンドにより行えばよい。「DELE」コマンドは、メッセージ番号を指定して当該メッセージ番号の電子メールをメールサーバから削除することを要求するＰＯＰのコマンドである。本例では、クライアント端末３０は、メッセージ番号「1」を指定する「DELE」コマンドによりステップＳ２６６の要求を行う。
【００９４】
ステップＳ２６６の削除要求を受信した電子メール代理装置２０において、中継処理部２１０は、この削除要求により電子メールがメールサーバ１のメールＤＢ１００から削除されることでメールＤＢ１００のデータ内容に変更が生じる旨を同期処理部２２０に対して通知する。この通知を受けた同期処理部２２０のＵＩＤＬテーブル管理部２２４は、メールサーバ１に対して、クライアント端末３０が行った削除要求の対象の電子メールのＵＩＤＬを要求するＰＯＰ要求を行う（ステップＳ２６８）。本例では、ＵＩＤＬテーブル管理部２２４は、クライアント端末３０からの「DELE」コマンドで指定されたメッセージ番号「1」の電子メールのＵＩＤＬを要求する。
【００９５】
ステップＳ２６８のＵＩＤＬの要求に応じて、メールサーバ１のＰＯＰ処理部１０４は、当該要求により指定されたメッセージ番号の電子メールのＵＩＤＬを含む応答を返す（ステップＳ２７０）。本例では、メールサーバ１において、メッセージ番号「1」の電子メールにはＵＩＤＬ「0010」が付与されているので（図８参照）、このＵＩＤＬ「0010」がステップＳ２７０の応答となる。
【００９６】
ステップＳ２６８，Ｓ２７０で同期処理部２２０が取得した、削除対象の電子メールのメールサーバ１におけるＵＩＤＬは、この電子メールをメールサーバ２のメールＤＢ１００から削除する処理において用いられる。この削除処理については、図１１を参照して後述する。
【００９７】
電子メール代理装置２０の同期処理部２２０においてメールサーバ１から削除対象の電子メールのＵＩＤＬを取得すると、中継処理部２１０のデータ中継部２１２は、ステップＳ２６６でクライアント端末３０から受信した削除要求をメールサーバ１に対して転送する（ステップＳ２７２）。この削除要求を受信したメールサーバ１のＰＯＰ処理部１０４は、削除要求により指定されたメッセージ番号の電子メールをメールＤＢ１００から削除する（ステップＳ２７４）。本例では、ＵＩＤＬ「0010」の電子メール（図８参照）を削除する。削除が完了すると、ＰＯＰ処理部１０４は、その旨を通知する応答を行い（ステップＳ２７６）、この応答は電子メール代理装置２０のデータ中継部２１２によりクライアント端末３０に対して転送される（ステップＳ２７８）。
【００９８】
以上、図１０のステップＳ２７８までのシーケンスにより、クライアント端末３０は、処理対象のメールアドレス宛の電子メールをメールサーバ１０から受信する。電子メールの受信に関し、クライアント端末３０の処理はステップＳ２７８までで完了する。
【００９９】
ステップＳ２７８の後、電子メール代理装置２０により、マスタサーバの他の各メールサーバ（スレーブサーバ）のメールＤＢ１００のデータ内容を、マスタサーバのメールＤＢ１００のデータ内容と同期させる処理が行われる。本例では、電子メール代理装置２０の同期処理部２２０は、マスタサーバであるメールサーバ１で削除された電子メールを、スレーブサーバであるメールサーバ２のメールＤＢ１００から削除するための処理を行う（ステップＳ２８０）。
【０１００】
図１１は、図１０のステップＳ２８０の削除処理の詳細手順の例を示すシーケンス図である。
【０１０１】
図１１を参照し、まず、同期処理部２２０のメールサーバ同期部２２２は、図１０のシーケンスにおける処理対象のメールアドレスに対応するＰＯＰアカウントおよびＰＯＰパスワードを用いて、メールサーバ２に対して、ＰＯＰによる認証要求を行う（ステップＳ２８２）。
【０１０２】
メールサーバ２のＰＯＰ処理部１０４は、ステップＳ２８２の認証要求に応じて、認証を行い、その成否を含む応答を返す（ステップＳ２８４）。ここでは、認証に成功するとする。
【０１０３】
ステップＳ２８４で認証成功の応答を受信すると、同期処理部２２０のＵＩＤＬテーブル管理部２２４は、メールサーバ２に対し、認証されたユーザのメールアドレス（つまり、図１０のシーケンスにおける処理対象のメールアドレス）宛の各電子メールのＵＩＤＬをＰＯＰにより要求する（ステップＳ２８６）。
【０１０４】
ステップＳ２８６の要求を受けて、メールサーバ２のＰＯＰ処理部１０４は、メールサーバ２のメールＤＢ１００に格納されている、処理対象のメールアドレス宛の各電子メールのＵＩＤＬを含む応答を返す（ステップＳ２８８）。処理対象のメールアドレス「aaa@example.com」宛に一通の電子メールがメールＤＢ１００に格納されているとする本例では、メールサーバ２のＰＯＰ処理部１０４は、この電子メールに付与したメッセージ番号「1」とＵＩＤＬ「aaaj」（図８参照）との組を含む応答を返す。
【０１０５】
ステップＳ２８８の応答を受信すると、同期処理部２２０は、記憶部２００中のＵＩＤＬテーブルを参照し、削除対象の電子メールのメッセージ番号を特定する（ステップＳ２９０）。ステップＳ２９０では、例えば、ステップＳ２８８でメールサーバ２から受信したＵＩＤＬのうち、図１０のステップＳ２７０でメールサーバ１から受信した、削除対象の電子メールのＵＩＤＬに対応づけられたメールサーバ２用ＵＩＤＬをＵＩＤＬテーブル中で特定する。このように特定されたメールサーバ２用ＵＩＤＬは、削除対象の電子メールに対してメールサーバ２が付与したＵＩＤＬである。そして、ステップＳ２８８で受信した応答において、上述のように特定されたメールサーバ２用ＵＩＤＬに対応づけられたメッセージ番号を特定する。図８のＵＩＤＬテーブルの例を参照し、ステップＳ２８８のメールサーバ２からの応答に含まれるＵＩＤＬ「aaaj」は、図１０のステップＳ２７０で取得された、削除対象の電子メールのメールサーバ１におけるＵＩＤＬ「0010」に対応づけられている。したがって、同期処理部２２０は、メールサーバ２用ＵＩＤＬ「aaaj」の電子メールを削除対象として特定する。さらに、ステップＳ２８８のメールサーバ２からの応答では、上述の例のように、ＵＩＤＬ「aaaj」にメッセージ番号「1」が対応づけられているので、削除対象の電子メールのメッセージ番号として「1」が特定される。
【０１０６】
同期処理部２２０のメールサーバ同期部２２２は、ステップＳ２９０で特定した削除対象のメッセージ番号を指定して、電子メールの削除を要求するＰＯＰ要求をメールサーバ２に対して行う（ステップＳ２９２）。例えば、上述の「DELE」コマンドにおいてメッセージ番号「1」を指定した削除要求を行う。
【０１０７】
メールサーバ２のＰＯＰ処理部１０４は、ステップＳ２９２の削除要求に応じて、指定されたメッセージ番号の電子メールをメールＤＢ１００から削除する（ステップＳ２９４）。削除が完了すると、メールサーバ２のＰＯＰ処理部１０４は、その旨を表す応答を同期処理部２２０に対して返す（ステップＳ２９６）。
【０１０８】
以上、図１１を参照して説明したシーケンスにより、マスタサーバであるメールサーバ１で削除された電子メールが、スレーブサーバであるメールサーバ２においても削除され、２つのメールサーバ１，２のメールＤＢ１００のデータ内容が同期される。
【０１０９】
なお、以上では、システムがメールサーバ１０を２つだけ備える場合を例にとり説明した。システムが３つ以上のメールサーバ１０を備える場合にも、図９〜図１１の例のシーケンスは上記と同様に実行され得る。ただし、３つ以上のメールサーバ１０をシステムが備える場合、図１０の例のシーケンスの後、マスタサーバの他の２つ以上のメールサーバ１０のそれぞれに対し、図１１の例のシーケンスを実行する。
【０１１０】
［ＳＭＴＰアクセス（電子メールの送信）］
図１２を参照し、ＳＭＴＰアクセスにより電子メールが送信される場合のシステムの動作の例を説明する。以下の説明では、システムが２つのメールサーバ１０−１，１０−２を備えるとする。また、以下では、クライアント端末３０が、メールサーバ１０−１，１０−２の管理対象のメールアドレス宛に電子メールを送信するＳＭＴＰ要求を行う場合の例を説明する。
【０１１１】
図１２を参照し、クライアント端末３０は、送信対象の電子メールを含むＳＭＴＰ要求をメールサーバ１０に対して行う（ステップＳ３００）。この電子メールの送信者は、当該要求元のクライアント端末３０のユーザのメールアドレスに設定され、宛先アドレス（受信者）は、ユーザが指定したメールアドレスに設定される。本例では、宛先アドレスが、メールサーバ１０の管理対象のメールアドレス「aaa@example.com」であるとする。
【０１１２】
電子メール代理装置２０においてステップＳ３００のＳＭＴＰ要求を受信すると、中継処理部２１０は、複数のメールサーバ１０の中からマスタサーバを１つ選択する（ステップＳ３０２）。マスタサーバの選択の方法は、上述のＰＯＰアクセスの場合の例において図１０のステップＳ２０２に関して説明した方法と同様であってよい。本例では、メールサーバ１がマスタサーバとして選択されるとする。
【０１１３】
中継処理部２１０のデータ中継部２１２は、ステップＳ３０２で選択したマスタサーバであるメールサーバ１に対し、ステップＳ３００のＳＭＴＰ要求を転送する（ステップＳ３０４）。
【０１１４】
このＳＭＴＰ要求を受信したメールサーバ１のＳＭＴＰ処理部１０２は、当該ＳＭＴＰ要求に係る送信対象の電子メールの宛先アドレスを確認する。本例では、宛先アドレスがメールサーバ１の管理対象のメールアドレスである（メールＤＢ１００中のメールアカウントテーブルに登録されたメールアドレスである）ことから、ＳＭＴＰ処理部１０２は、当該送信対象の電子メールを当該宛先アドレスのメールアドレス宛の電子メールとしてメールＤＢ１００に格納する（ステップＳ３０６）。なお、ステップＳ３０４で受信したＳＭＴＰ要求に係る送信対象の電子メールの宛先アドレスが管理対象のメールアドレスでない場合、ＳＭＴＰ処理部１０２は、当該送信対象の電子メールを、宛先アドレスのドメイン名の他ドメインメールサーバ５０宛に転送する。この場合は、送信対象の電子メールのメールＤＢ１００への格納を行わない。なお、メールＤＢ１００への電子メールの格納が行われない場合、後述のステップＳ３１２以降の処理も行われない。
【０１１５】
ステップＳ３０６の後、ＳＭＴＰ処理部１０４は、ＳＭＴＰ要求に応じた処理が完了した旨を表す応答を返し（ステップＳ３０８）、この応答は、電子メール代理装置２０の中継処理部２１０のデータ中継部２１２によりクライアント端末３０に対して転送される（ステップＳ３１０）。
【０１１６】
電子メールの送信においてクライアント端末３０が関わる処理は、ステップＳ３１０までの処理で終了する。電子メール代理装置２０の中継処理部２１０は、メールサーバ１に転送したＳＭＴＰ要求により、送信対象の電子メールが新たにメールサーバ１のメールＤＢ１００に格納されることでメールＤＢ１００のデータ内容に変更が生じるため、その旨を同期処理部２２０に通知する。この通知を受けた同期処理部２２０は、スレーブサーバのメールＤＢ１００のデータ内容をマスタサーバのメールＤＢ１００のデータ内容と同期させる処理を行う。本例では、同期処理部２２０は、ステップＳ３１２以降の処理により、メールサーバ１でメールＤＢ１００に新たに格納された電子メールを他のメールサーバ２（スレーブサーバ）のメールＤＢ１００にも格納する。
【０１１７】
ステップＳ３１２では、同期処理部２２０は、記憶部２００中のメールアカウントテーブルから、ＳＭＴＰ要求に係る送信対象の電子メールの宛先アドレスに対応するＰＯＰアカウントおよびＰＯＰパスワードを取得する。送信対象の電子メールの宛先アドレスが「aaa@example.com」である本例では、図３の例のメールアカウントテーブルを参照し、当該メールアドレスに対応するＰＯＰアカウント「aaa」およびＰＯＰパスワード「password_of_aaa」が取得される。
【０１１８】
同期処理部２２０のＵＩＤＬテーブル管理部２２４は、ステップＳ３１２で取得したＰＯＰアカウントおよびＰＯＰパスワードを用いて、マスタサーバであるメールサーバ１に対してＰＯＰアクセスを行い、認証を受ける（図１２では図示を省略する）。その後、ＵＩＤＬテーブル管理部２２４は、メールサーバ１に対し、認証されたユーザのメールアドレス宛の電子メールのＵＩＤＬを要求する（ステップＳ３１４）。認証されたユーザのメールアドレスは、ＳＭＴＰ要求に係る送信対象の電子メールの宛先アドレス「aaa@example.com」である。したがって、ステップＳ３１４では、ＳＭＴＰ要求に応じて当該宛先アドレス宛の電子メールとしてメールサーバ１のメールＤＢ１００に格納された電子メールのＵＩＤＬを要求することになる。
【０１１９】
ステップＳ３１４のＵＩＤＬ要求に応じて、メールサーバ１のＰＯＰ処理部１０４は、当該要求の対象のメールアドレス宛の電子メールとして格納された、メールＤＢ１００中の電子メールのＵＩＤＬを含む応答を返す（ステップＳ３１６）。この応答は、今回のステップＳ３０６の実行によりメールＤＢ１００に格納された電子メールのＵＩＤＬだけでなく、以前に実行された図１２の例のシーケンスにおいてメールＤＢ１００に格納されていた電子メールのＵＩＤＬも含む。一具体例として図５を参照し、行Ｌ１，Ｌ２の内容（メールサーバ１用ＵＩＤＬ「1001」，「1002」）がＵＩＤＬテーブルに登録済みであり、ステップＳ３０６によりメールサーバ１のメールＤＢ１００に新たに登録された電子メールのＵＩＤＬが「1003」であるとする。この具体例の場合、ステップＳ３１６のＵＩＤＬ応答は、ＵＩＤＬ「1001」，「1002」，「1003」を含む。また、ステップＳ３１６のＵＩＤＬ応答は、図９などを参照して説明したように、メッセージ番号とＵＩＤＬとの組を含む。上述の具体例では、例えば、（メッセージ番号，ＵＩＤＬ）の３つの組（1，1001），（2，1002），（3，1003）を含むＵＩＤＬ応答になる。
【０１２０】
ステップＳ３１６の応答を受信した電子メール代理装置２０において、ＵＩＤＬテーブル管理部２２４は、当該応答に含まれるＵＩＤＬを用いて、記憶部２００中のＵＩＤＬテーブルを更新する（ステップＳ３１８）。例えば、ＵＩＤＬテーブルに登録済みのメールサーバ１用ＵＩＤＬと、ステップＳ３１６の応答に含まれるＵＩＤＬとを比較し、当該応答に含まれるＵＩＤＬのうちＵＩＤＬテーブルに未登録のＵＩＤＬを特定する。図５を参照する上述の具体例の場合、登録済みの行Ｌ１，Ｌ２のメールサーバ１用ＵＩＤＬ「1001」，「1002」と、ＵＩＤＬ応答に含まれる「1001」，「1002」，「1003」とを比較し、未登録のＵＩＤＬとして「1003」が特定される。そして、特定したＵＩＤＬの電子メールに対応する情報レコードをＵＩＤＬテーブルに追加して、追加した情報レコードのメールサーバ１用ＵＩＤＬの項目に、特定したＵＩＤＬの値を設定する。さらに、追加した行のＰＯＰクライアント用ＵＩＤＬの項目に、新たに生成したＰＯＰクライアント用ＵＩＤＬの値を設定する。図５を参照する具体例では、行Ｌ３をＵＩＤＬテーブルに追加し、新たなメールサーバ１用ＵＩＤＬ「1003」とこれに対応するＰＯＰクライアント用ＵＩＤＬ「kkkk」が設定される。なお、この時点では、図５の行Ｌ３においてメールサーバ２用ＵＩＤＬの項目の値は空（Ｎｕｌｌ）である。
【０１２１】
なお、ステップＳ３１８で新たなメールサーバ１用ＵＩＤＬに対応づけて登録されるＰＯＰクライアント用ＵＩＤＬは、当該メールサーバ１用ＵＩＤＬの値と同じ値であってもよいし、異なる値であってもよい。上述の図６のシーケンスの例（メールサーバ追加）のステップＳ１０６の場合は、メールサーバ１からＵＩＤＬを取得済みのクライアント端末３０が存在し得るため、メールサーバ１から取得したＵＩＤＬとＰＯＰクライアント用ＵＩＤＬとを同じ値に設定する必要がある。しかし、本例の場合、ＵＩＤＬテーブルに新たに登録されるメールサーバ１用ＵＩＤＬは、ステップＳ３０６でメールサーバ１のメールＤＢ１００に新たに格納された電子メールのＵＩＤＬであるため、ステップＳ３１８の時点では、当該ＵＩＤＬを取得済みのクライアント端末３０は存在しない。したがって、ステップＳ３１８では、新たなメールサーバ１用ＵＩＤＬに対応づけて、これと異なる値のＰＯＰクライアント用ＵＩＤＬをＵＩＤＬテーブルに登録してもよい。
【０１２２】
ＵＩＤＬテーブルの更新が完了すると、同期処理部２２０のメールサーバ同期部２２２は、スレーブサーバであるメールサーバ２のサービスが稼働中であるか否かを確認する（ステップＳ３２０）。稼働中であれば、ステップＳ３２２以降の処理を開始し、稼働中でなければ、メールサーバ２がサービスの稼動を開始するまで、ステップＳ３２２以降の処理の開始を待つ。ただし、この待機中に、メールサーバ１のメールＤＢ１００にステップＳ３０６で格納された電子メールが、上述の図１０の例のシーケンスによりメールサーバ１のメールＤＢ１００から削除された場合、メールサーバ２のサービスが稼動開始しても、ステップＳ３２２以降の処理を行わない。
【０１２３】
ステップＳ３２２で、メールサーバ同期部２２２は、まず、メールサーバ１に対し、今回新たにメールＤＢ１００に格納された電子メールの本文を要求するＰＯＰ要求を行う。例えば、ステップＳ３１８でＵＩＤＬテーブルに新たに登録されたメールサーバ１用ＵＩＤＬに対応するメッセージ番号をステップＳ３１６の応答から特定し、特定したメッセージ番号の電子メールの本文を要求する。図５を参照する上述の具体例では、新たに登録されたメールサーバ１用ＵＩＤＬ「1003」に対応するメッセージ番号は「3」であるので、例えば、特定したメッセージ番号「3」を指定してＰＯＰの「RETR」コマンドの要求を行えばよい。
【０１２４】
ステップＳ３２２の要求に応じて、メールサーバ１のＰＯＰ処理部１０４は、指定された電子メールの本文を含む応答を返す（ステップＳ３２４）。ここでは、ステップＳ３０６でメールＤＢ１００に格納された電子メールの本文が返される。
【０１２５】
ステップＳ３２４の応答を受信すると、同期処理部２２０のメールサーバ同期部２２２は、ステップＳ３２４の応答中の本文を含む電子メールを送信対象とし、メールサーバ２に対してＳＭＴＰ要求を行う（ステップＳ３２６）。このとき、送信対象の電子メールの宛先アドレスとして、メールサーバ同期部２２２は、ステップＳ３００のＳＭＴＰ要求に係る送信対象の電子メールの宛先アドレス「aaa@example.com」を設定する。
【０１２６】
ステップＳ３２６の要求を受信したメールサーバ２のＳＭＴＰ処理部１０２は、メールＤＢ１００に当該送信対象の電子メールを格納し（ステップＳ３２８）、ＳＭＴＰ要求に応じた処理が完了した旨の応答を返す（ステップＳ３３０）。ステップＳ３２８，Ｓ３３０の処理は、メールサーバ１により行われる上述のステップＳ３０６，Ｓ３０８と同様であってよい。
【０１２７】
ステップＳ３２２〜Ｓ３３０の処理により、メールサーバ１のメールＤＢ１００に新たに格納された電子メールがメールサーバ２のメールＤＢ１００にも格納される。
【０１２８】
ステップＳ３３０の後、同期処理部２２０のＵＩＤＬテーブル管理部２２４は、メールサーバ２に対してＰＯＰ要求を行って、処理対象のメールアドレス宛の各電子メールのＵＩＤＬを要求する（ステップＳ３３２）。
【０１２９】
ステップＳ３３２の要求に応じて、ステップＳ３３４は、ＵＩＤＬを含む応答を返す（ステップＳ３３４）。この応答には、ステップＳ３２８でメールサーバ２のメールＤＢ１００に新たに格納された電子メールのＵＩＤＬが含まれる。図５を参照する上述の具体例では、メールサーバ２のメールＤＢ１００に格納済みであった電子メールのＵＩＤＬ「aaax」，「aaay」と（図５の行Ｌ１，Ｌ２のメールサーバ２用ＵＩＤＬ参照）、新たに格納された電子メールのＵＩＤＬ「aaaz」とを含むＵＩＤＬ応答が返される。
【０１３０】
ＵＩＤＬテーブル管理部２２４は、ステップＳ３３４の応答に含まれるＵＩＤＬを用いて、ＵＩＤＬテーブルを更新する（ステップＳ３３６）。ステップＳ３３６の処理は、例えば次のような手順で行えばよい。まず、ＵＩＤＬテーブルに登録済みのメールサーバ２用ＵＩＤＬと、ステップＳ３３４の応答に含まれるＵＩＤＬとを比較し、当該応答に含まれるＵＩＤＬのうちＵＩＤＬテーブルに未登録のＵＩＤＬを特定する。上述の具体例では、未登録のＵＩＤＬとして「aaaz」が特定される。この具体例では未登録のＵＩＤＬが１つだけであり、ＵＩＤＬテーブル管理部２２４は、ステップＳ３１８で登録されたメールサーバ１用ＵＩＤＬ「1003」に対応するメールサーバ２用ＵＩＤＬとして当該未登録のＵＩＤＬ「aaaz」をＵＩＤＬテーブルに登録する（図５の行Ｌ３）。特定された未登録のＵＩＤＬが複数存在する場合、例えば図６のステップＳ１１８で説明したのと同様に、メールサーバ１およびメールサーバ２の各メールＤＢ１００に登録された、処理対象のメールアドレス宛の各電子メールの本文、データサイズ、またはヘッダ情報などを参照して、未登録の（メールサーバ２用）ＵＩＤＬのうちのどのＵＩＤＬがどのメールサーバ１用ＵＩＤＬに対応するかを特定する。そして、未登録のメールサーバ２用ＵＩＤＬのそれぞれを、対応するメールサーバ１用ＵＩＤＬに対応づけてＵＩＤＬテーブルに登録する。
【０１３１】
以上、図１２のステップＳ３１２〜Ｓ３３６の処理により、マスタサーバであるメールサーバ１のメールＤＢ１００に新たに格納された電子メールがスレーブサーバであるメールサーバ２のメールＤＢ１００にも格納される。なお、スレーブサーバが複数存在する場合は、ステップＳ３１８の後、各スレーブサーバに対して、ステップＳ３２０〜Ｓ３３６の処理を行えばよい。また、図１２の例のシーケンスでは、クライアント端末３０が電子メール送信のＳＭＴＰ要求を行うが、他ドメインメールサーバ５０によりメールサーバ１０の管理対象のメールアドレス宛の電子メール送信のＳＭＴＰ要求を行うこともある。この場合も、電子メール代理装置２０およびメールサーバ１０の動作は図１２の例と同様であってよい。この場合、図１２の例において、クライアント端末３０の代わりに他ドメインメールサーバ５０が、ステップＳ３００のＳＭＴＰ要求を行い、ステップＳ３１０のＳＭＴＰ応答を受信することになる。
【０１３２】
以上で説明した実施形態の例によると、クライアント端末３０にとっては、１台のメールサーバ１０を相手に通信する場合と同様のＰＯＰアクセスおよびＳＭＴＰアクセスにより、電子メールの送受信が実現されることになる。また、複数のメールサーバ１０において、同じ電子メールに異なるＵＩＤＬが付与されても、電子メール代理装置２０のＵＩＤＬテーブルを利用することで、ある電子メールについてクライアント端末３０に対して通知されるＵＩＤＬは一意に決定される。
【０１３３】
［変形例］
本発明の実施の形態は、以上で説明した例に限定されず、各種の変形例があってよい。例えば、ＰＯＰアクセスにおいて受信済みの電子メールをメールサーバから削除する設定の場合に、図１０のステップＳ２６８，Ｓ２７０を省略して、マスタサーバで電子メールの削除を実行させた後、次のような手順で、マスタサーバとスレーブサーバとの間の同期をとってもよい。まず、マスタサーバおよび各スレーブサーバに対してＰＯＰ要求を行い、処理対象のメールアドレス宛の電子メールのＵＩＤＬおよび本文をマスタサーバおよび各スレーブサーバから取得する。その後、マスタサーバから取得されたＵＩＤＬおよび本文と一致しないＵＩＤＬおよび本文の電子メールを、ＰＯＰの削除要求を行って各スレーブサーバから削除する。これにより、マスタサーバで削除された電子メールが各スレーブサーバからも削除される。
【０１３４】
また例えば、ＳＭＴＰアクセスによる電子メール送信の場合に、図１２の例のシーケンスの代わりに、電子メール代理装置２０がクライアント端末３０からのＳＭＴＰ要求を処理してＳＭＴＰ応答を返した後、当該ＳＭＴＰ要求の送信対象の電子メールを複数のメールサーバ１０それぞれのメールＤＢ１００に格納してもよい。この例の場合、電子メール代理装置２０は、例えば、各メールサーバ１０に対し、図１２の例のステップＳ３２６〜Ｓ３３６の処理を行うことで、各メールサーバ１０に新たな電子メールを格納すると共にＵＩＤＬテーブルを更新する。
【０１３５】
さらに他の変形例では、メールサーバ１０だけでなく、電子メール代理装置２０を多重化してもよい。例えば、図１の例のネットワーク４０−１に複数の電子メール代理装置２０を接続し、複数の電子メール代理装置２０の間で記憶部２００のメールアカウントテーブルおよびＵＩＤＬテーブルの内容を同期させておく。電子メール代理装置２０間の同期は、例えば、ある電子メール代理装置２０の記憶部２００の内容の複製を、ネットワーク４０−１または移動可能な記憶媒体を介して、他の電子メール代理装置２０の記憶部２００に格納することで行えばよい。複数の電子メール代理装置２０を用いる場合、例えば、これらのうちの１つを稼動させておき、他の電子メール代理装置２０は待機状態にしておく。そして、稼働中の電子メール代理装置２０に何らかの不具合が発生した場合に、大気状態の電子メール代理装置２０のうちの１つを稼動させる。待機状態の電子メール代理装置２０は、起動済みの状態で待機（ホットスタンバイ）していてもよいし、起動していない状態で待機（ウォームスタンバイ）していてもよい。
【０１３６】
なお、以上で説明した実施形態および変形例は、電子メールの送受信を行うものであるが、電子メールのシステムに限らず、クライアント端末間のデータの送受信をサーバで管理するシステムについて、上述の実施形態および変形例と同様の構成により、サーバを多重化することもできる。例えば、クライアントとサーバとの間の通信を中継する中継装置において、複数のサーバのそれぞれにおいて同一データに対して付与される各サーバ用識別情報と、当該データの識別情報としてクライアントに通知されるクライアント用識別情報と、を対応づける情報テーブルを保持しておけばよい。
【０１３７】
以上で説明した電子メール代理装置２０は、典型的には、汎用のコンピュータにて上述の電子メール代理装置２０の各部の機能または処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図１３に示すように、ＣＰＵ（中央演算装置）８０、メモリ（一次記憶）８２、各種Ｉ／Ｏ（入出力）インタフェース８４等がバス８６を介して接続された回路構成を有する。また、そのバス８６に対し、例えばＩ／Ｏインタフェース８４経由で、ＨＤＤ（ハードディスクドライブ）８８やＣＤやＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ９０が接続される。このようなドライブ８８又は９０は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、またはネットワーク経由で、ＨＤＤ８８等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されることにより、実施形態の処理が実現される。メールサーバ１０およびクライアント端末３０についても同様である。
【符号の説明】
【０１３８】
１０  メールサーバ、２０  電子メール代理装置、３０  クライアント端末、４０  ネットワーク、５０  他ドメインメールサーバ、８０  ＣＰＵ、８２  メモリ、８４  Ｉ／Ｏインタフェース、８６  バス、８８  ＨＤＤ、９０  ディスクドライブ、１００  メールＤＢ、１０２  ＳＭＴＰ処理部、１０４  ＰＯＰ処理部、２００  記憶部、２１０  中継処理部、２１２  データ中継部、２１４  ＵＩＤＬ変更部、２２０  同期処理部、２２２  メールサーバ同期部、２２４  ＵＩＤＬテーブル管理部。
【図１】
0005545141.tif 000002
【図２】
0005545141.tif 000003
【図３】
0005545141.tif 000004
【図４】
0005545141.tif 000005
【図５】
0005545141.tif 000006
【図６】
0005545141.tif 000007
【図７】
0005545141.tif 000008
【図８】
0005545141.tif 000009
【図９】
0005545141.tif 000010
【図１０】
0005545141.tif 000011
【図１１】
0005545141.tif 000012
【図１２】
0005545141.tif 000013
【図１３】
0005545141.tif 000014