(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について図面を基に説明する。
【0014】
図1は、本発明における電子メールシステムの構成の一例を表す図である。
【0015】
電子メールシステムは、外部メールサーバ101とクライアント端末104aとがネットワーク105aを介して接続され、さらに中継サーバ102を中継して、内部メールサーバ103とクライアント端末104bとがネットワーク105bを介して接続されている。
【0016】
外部メールサーバ101は、クライアント端末104aを操作するユーザからの電子メールを、指定されたアドレスへ送信するサーバである。SMTPにより電子メールを送信する。SMTPとは、電子メールを送信するためのプロトコルである。
【0017】
中継サーバ102は、外部メールサーバ101から送信される電子メールを中継して内部メールサーバ103へ送信するサーバである。外部メールサーバから送信される電子メールは、配信キューを介して順番に内部メールサーバへ配信される。
【0018】
内部メールサーバ103は、外部メールサーバ101から送信された電子メールを蓄積するサーバである。クライアント端末104aを操作するユーザは、POPにより自分宛の電子メールを受信する。POPとは、電子メールを保存しているサーバからメールを受信するためのプロトコルのことである。
【0019】
クライアント端末104は、電子メールを送受信可能なアプリケーションがインストールされている端末である。
【0020】
ネットワーク105は、インターネットやLANなどの通信回線である。
【0021】
次に、
図2を用いて、
図1に示した中継サーバのハードウェア構成について説明する。
【0022】
図2は、中継サーバ102に適用可能な情報処理装置のハードウェア構成例を示すブロック図である。なお、
図2のブロック図は外部メールサーバ101、内部メールサーバ103、及びクライアント端末104にも適用可能である。
【0023】
図2に示すように、中継サーバ102は、システムバス204を介してCPU(Central Processing Unit)201、RAM(Random Access Memory)203、ROM(Read Only Memory)202、入力コントローラ205、ビデオコントローラ207、メモリコントローラ207、通信I/Fコントローラ208等が接続された構成を採る。
【0024】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0025】
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、各サーバあるいは各PCが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が記憶されている。なお外部メモリはデータベースであってもよい。
【0026】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【0027】
また、入力コントローラ205は、キーボード(KB)209や不図示のマウス(等のポインティングデバイス等からの入力を制御する。
【0028】
ビデオコントローラ206は、ディスプレイ210等の表示器への表示を制御する。尚、表示器は液晶ディスプレイ等の表示器でもよい。これらは、必要に応じて管理者が使用する。
【0029】
メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、あるいは、PCMCIA(Personal Computer Memory Card InternationalAssociation)カードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
【0030】
通信I/Fコントローラ208は、ネットワーク(例えば、
図1に示したネットワーク100)を介して外部機器と接続・通信し、ネットワークでの通信制御処理を実行する。例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いた通信等が可能である。
【0031】
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上に表示することが可能である。また、CPU201は、ディスプレイ210上のマウスカーソル(図示しない)等によるユーザ指示を可能とする。
【0032】
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイルおよび各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明についても後述する。
【0033】
図3は、本発明の実施の形態による全体の流れを示す図である。
【0034】
この図は、クライアント端末104aを操作するユーザからクライアント端末104bを操作するユーザ宛に電子メールが送信され、クライアント端末104bを操作するユーザが受信されるまでの流れを示している。
【0035】
まず、クライアント端末104aを操作するユーザにより、外部メールサーバ101へクライアント端末104bを操作するユーザ宛の電子メールが送信される。
【0036】
そして、外部メールサーバ101は、中継サーバ102を介して、内部メールサーバ103へメールを配信することになる。
【0037】
ここで、中継サーバ102では、配信キュー35を介して受信した電子メールを受信した順番で配信している。そのため、中継サーバ102において、大量の電子メールを受信する事態が生じると、配送処理に時間がかかるようになり、内部メールサーバ103へ遅延して届くようになる。
【0038】
そこで、メール配送の遅延が生じたとしてもメール受信の頻度により影響を受ける人と受けない人がいることを考慮して、本発明では、受信頻度に従って、優先的にメールを配送するかどうかを判断し、優先的にメールを配送すべき場合は、配信キューの先頭へ移動させる処理を行う。
【0039】
実現方法は、次の手順で行う。まず、(1)内部メールサーバ103において、POPサーバ34を介してユーザ毎のメールボックスに対するアクセス頻度(受信頻度)を集計して、受信頻度データベース31へ記憶する。(2)所定のタイミングで内部メールサーバ103の受信頻度データベース31の内容を、中継サーバ102の受信頻度データベース32へコピーする。(3)中継サーバ102の優先度変更機能33は、外部メールサーバ101から送信された電子メールの宛先を監視して、宛先が優先配信すべき宛先であるかを受信頻度データベース32の参照頻度を参照して決定する。(4)優先配信すると決定した電子メールについては、配信キュー35の先頭へ移動させる。
【0040】
上記手順により、優先配信する電子メールは、配信キュー35の先頭へ移動されるため、配信キュー35に滞留して配送遅延することを防ぐことができる。
【0041】
以上、本発明の実施の形態による全体の流れを説明した。
【0042】
次に、
図4および
図5を用いて、内部メールサーバ103のより詳細な処理の流れを説明する。
【0043】
図4は、本発明の実施の形態における内部メールサーバの処理の流れを示すフローチャートである。
【0044】
S401において、内部メールサーバは、クライアント端末からPOP接続の要求があるかを判定する。Yesの場合、S402へ進み、Noの場合、S401へ戻る。
【0045】
S402において、内部メールサーバは、リアルタイムに更新する設定がなされているかを判定する。Yesの場合、S405へ進み、Noの場合、S403進む。この設定はあらかじめ管理者等によってなされるものであり、リアルタイム更新をする場合は、所定のフラグを立てておく等の方法がある。
【0046】
S403において、内部メールサーバは、受信のログ情報を記憶領域に記録しておく。
【0047】
S404において、内部メールサーバは、受信頻度データを更新するかを判定する。Yesの場合、S405へ進み、Noの場合、S401へ戻る。判定する基準として、決められた日時に到達した場合や、受信ログが所定件数たまった場合等、様々な基準を設定することができる。
【0048】
S405において、内部メールサーバは、受信頻度データを更新する。受信頻度データを更新するとは、内部メールサーバが管理する受信頻度データベースの内容を更新することを示している。受信頻度データの例を、
図5を用いて説明する。
【0049】
図5は、受信頻度データベースで管理している受信頻度データの例を示す図である。
【0050】
ここでは、3つのパターンを例示している。
【0051】
パターン1は、「直前受信頻度データ」であり、宛先毎に1時間前から現在までの受信回数を記録したものである。例えば、受信者「tarou@example.jp」は、10回受信していることが分かる。
【0052】
パターン2は、「短期受信頻度データ」であり、宛先毎の受信回数を曜日と時間帯に分けて受信回数を記録したものである。例えば、受信者「tarou@example.jp」は、月曜日の9時台は、30回受信し、月曜日の10時台は、40回受信していることが分かる。
【0053】
パターン3は、「長期受信頻度データ」であり、宛先毎の受信回数を月毎に分けて受信回数を記録したものである。例えば、受信者「tarou@example.jp」は、1月は、634回受信し、2月は、656回受信していることが分かる。
【0054】
パターン1は、直近の受信回数をカウントしているものであるため現在受信頻度の高いユーザを識別することはできるが、パターン2や3のように、所定の期間毎に受信回数のカウントを分けることで、受信者毎の受信頻度の傾向をより明確にすることができる。これにより受信要求される可能性が高い電子メールを優先配送することができるため、配送遅延の影響をより小さくすることが可能となる。
【0055】
つまり、例えば、業務上、9時台にメールを受信する頻度が高いユーザ宛のメールを優先配送することで、当該ユーザへの配送遅延の影響を小さくすることができ、一方、同時刻にはメールを受信する頻度が低いユーザ宛のメールは優先配送しなくとも他の時間帯に受信することになるため配送遅延の影響を受けることはない。
【0056】
なお、本実施の形態では、3つのパターンの例を示したが、受信頻度データはこれに限られるものではなく、その他様々なパターンを採用することが可能である。
【0057】
次に、S406において、内部メールサーバは、更新されたデータを中継サーバへ転送するかを判定する。Yesの場合、S407へ進み、Noの場合、S401へ戻る。判定する基準として、決められた日時に到達した場合や、更新されたデータが所定件数以上になった場合等、様々な基準を設定することができる。
【0058】
S407において、内部メールサーバは、中継サーバへ受信頻度データを転送する。転送する内容は、最新のテーブルを全て転送したり、差分だけ転送したりする等、様々な方法がある。
【0059】
以上、内部メールサーバの処理の流れを説明した。
【0060】
次に、
図6を用いて、中継サーバ102のより詳細な処理の流れを説明する。
【0061】
図6は、本発明の実施の形態における中継サーバの処理の流れを示すフローチャートである。
【0062】
S601において、中継サーバは、外部メールサーバから電子メールを受信する。
【0063】
S602において、中継サーバは、受信した電子メールの宛先を抽出して、当該宛先が受信頻度データベースで管理している受信頻度データに含まれるかを判定する。Yesの場合、S603へ進み、Noの場合、S606へ進む。
【0064】
S603において、中継サーバは、受信頻度データからPOPした頻度(受信頻度)を取得する。
図5の受信頻度データの場合、パターン1では、受信回数を取得することとなるが、パターン2およびパターン3では、受信時に基づいて該当するレコードを取得する。例えば、宛先が「tarou@example.jp」の電子メールを1月17日月曜日の10時台に受信したとすると、パターン2では、受信頻度は40回が取得され、パターン3では、受信頻度は634回が取得されることとなる。
【0065】
S604において、中継サーバは、受信頻度が高いかを判定する。Yesの場合、S605へ進み、Noの場合、S606へ進む。受信頻度が高いかの判定は、あらかじめ定められた閾値を超えるかにより判定する。なお、閾値は、一律の値である必要はなく、配送遅延の影響をより小さくするために、例えば、時間帯によって可変の値を採用しても良い。
【0066】
さらに、直前受信頻度データ、短期受信頻度データ、長期受信頻度データからどれを利用して受信の傾向を判断するか決めることができる。どの受信頻度データを優先するかは中継サーバにあらかじめ設定した順に適用される。
【0067】
S605において、中継サーバは、対象となる電子メールを配信キューの先頭へ移動させる。配信キューの先頭へ移動させることで、直ちに配送処理が行われるため他に比べ早くメールボックスへ到達することになる。そのため受信するユーザは配信遅延の影響を受けることが少なくなる。
【0068】
S605において、中継サーバは、対象となる電子メールを配信キューの末尾へ移動させる。これは、通常の処理と同じである。このように末尾へ移動させる電子メールは、現時点で受信される可能性が低い電子メールであることから配送処理に時間がかかったとしても受信するユーザは配送遅延の影響を受けることは少ない。
【0069】
以上、中継サーバの処理の流れを説明した。
【0070】
上述した通り、本発明によれば、大量の電子メールが流れ込むことでメール配送の遅延が生じたとしても、利用者のメールを受信する頻度に応じて配送順序を制御することで配送遅延の影響を軽減することが可能となる。
【0071】
次に、本発明の第二の実施の形態を説明する。
【0072】
図7は、本発明の第二の実施の形態による全体の流れを示す図である。
【0073】
図3に示す第一の実施の形態との相違点として、第二の実施の形態では、通常配信用の配信キュー35とは別に優先配信専用の優先配信キュー36が存在する。従って、第二の実施の形態では、優先度変更機能33により優先配信すると決定した電子メールについては、優先配信キュー36の末尾へ移動させることとなる。
【0074】
第一の実施の形態は、一つの配信キューの中で優先配信する電子メールを配信キューの先頭へ移動させる方法であることから、優先配信すべき電子メールが増えれば増えるほど場合、割り込まれた電子メールの配送処理がどんどん遅れてしまうという問題が生じる。一方、第二の実施の形態では、優先配信専用の優先配信キューを用いて優先配信する電子メールの配送処理をするため、割り込みにより電子メールの配送処理がどんどん遅れるという問題を解決することができる。また、優先配信すべき電子メールのみなのでキュー内の電子メールの数が少なく滞留も生じにくい仕組みとなる。さらに、中継サーバの上のメールデーモンは、優先配信キュー、通常配信キューの順にそれぞれのキューの順序に従って電子メールを送信することから、優先配信すべき電子メールは、他に比べ早くメールボックスへ到達する。
【0075】
続いて、
図8を用いて第二の実施の形態の中継サーバの処理の流れを説明する。
【0076】
なお、
図6に示す第一の実施の形態の処理の流れと同じ処理であるS601からS604については説明を省略する。
【0077】
S801において、中継サーバは、対象となる電子メールを優先配信キューの末尾へ移動させる。優先配送すべき電子メールのみを優先配信キューへ移動させることになるので配送処理負担増加に基づく配信遅延は生じなくなる。
【0078】
S802において、中継サーバは、対象となる電子メールを通常配信用の配信キューの末尾へ移動させる。これは、通常の処理と同じである。
【0079】
以上、第二の実施の形態の中継サーバの処理の流れを説明した。
【0081】
第三の実施の形態は、第二の実施の形態のS801の処理を行う前に、1つ判断ステップを入れるものである。
【0082】
具体的には、対象となる電子メールを、通常配信用の配信キューの先頭へ移動させるか、もしくは優先配信キューの末尾へ移動させるかを判定するステップである。この判定は、所定の閾値により判定する方法、既に振り分けた優先配信すべき電子メールの数により判定する方法、2つの配信キューに順番に振り分ける方法など様々な方法をとることができる。
【0083】
つまり、第三の実施の形態は、第一の実施の形態と第二の実施の形態を組み合わせた方法であり、配送遅延の影響をより小さくするためにいずれかの処理に振り分けることとなる。
【0085】
第一の実施の形態と同様に第二の実施の形態および第三の実施の形態によっても、大量の電子メールが流れ込むことでメール配送の遅延が生じたとしても、利用者のメールを受信する頻度に応じて配送順序を制御することで配送遅延の影響を軽減することが可能となる。
【0086】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0087】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0088】
また、本発明におけるプログラムは、図の処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は
図3の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは
図3の各装置の処理方法ごとのプログラムであってもよい。
【0089】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0090】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【0091】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることができる。
【0092】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0093】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0094】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0095】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。