電子メール中継システム、電子メール中継方法、プログラム
【課題】 電子メールの中継サーバに障害が発生した場合にも、電子メールの配送の遅延を低減させる仕組みを提供すること
【解決手段】 第1の中継サーバが、情報処理装置から送信される電子メールを受信し、受信した電子メールに対して処理を実行し、処理が実行された電子メールを送信する。第2の中継サーバが、第1の中継サーバに障害が発生しているか否かを検出し、障害の発生が検出された場合には第1の中継サーバに対してその旨を通知して、第1の中継サーバから前記電子メールのコピーを取得して当該電子メールの宛先へ送信する。
【解決手段】 第1の中継サーバが、情報処理装置から送信される電子メールを受信し、受信した電子メールに対して処理を実行し、処理が実行された電子メールを送信する。第2の中継サーバが、第1の中継サーバに障害が発生しているか否かを検出し、障害の発生が検出された場合には第1の中継サーバに対してその旨を通知して、第1の中継サーバから前記電子メールのコピーを取得して当該電子メールの宛先へ送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子メールの中継システムに関する。
【背景技術】
【0002】
従来から、電子メールの中継を行うサーバにおいて、電子メールに対してウイルススキャンや電子メールの暗号化などの処理を行い、電子メールを配送する仕組みがある。
【0003】
このような仕組みにおいては、中継サーバの負荷が高く、一時に多くの電子メールが送信されると、中継サーバの処理が追いつかずにサーバがダウンしてしまうことがある。
【0004】
中継サーバがダウンしてしまうと、電子メールの配送が滞るため、ユーザにとって不都合が生じていた。
【0005】
このような問題に対処すべく、特許文献1には、主サーバと副サーバの2台のサーバを用意し、片方のサーバがダウンしても、もう片方のサーバが同様の処理を行い、電子メールの中継の停滞を防ぐ仕組みが開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2000−124946号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1には、多くのメールが送信された場合など、サーバの処理が追いつかずにサーバがダウンしてしまった場合の対応については記載がなく、副サーバにおいても同様にダウンしてしまう可能性がある。
【0008】
そこで、本発明は、電子メールの中継サーバに障害が発生した場合にも、電子メールの配送の遅延を低減させる仕組みを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムであって、第1の中継サーバが、前記情報処理装置から送信される電子メールを受信する受信手段と、前記受信手段により受信した電子メールに対して予め規定された処理を実行する処理手段と、前記処理手段により処理が実行された電子メールを送信する第1の送信手段と、を備え、第2の中継サーバが、前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出手段と、前記検出手段により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知手段と、を備え、前記第1の中継サーバは、さらに、前記第2の中継サーバの通知手段により、障害の発生を検知した旨が通知された場合に、前記受信手段で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信手段を備え、前記第2の中継サーバは、さらに、前記第2の送信手段により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信手段を備えることを特徴とする電子メール中継システム。
【0010】
また、本発明は、情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムにおける電子メール中継方法であって、第1の中継サーバの受信手段が、前記情報処理装置から送信される電子メールを受信する受信工程と、第1の中継サーバの処理手段が、前記受信工程により受信した電子メールに対して予め規定された処理を実行する処理工程と、第1の中継サーバの第1の送信手段が、前記処理工程により処理が実行された電子メールを送信する第1の送信工程と、第2の中継サーバの検出手段が、前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出工程と、第2の中継サーバの通知手段が、前記検出工程により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知工程と、を備え、前記第1の中継サーバの第2の送信手段が、前記第2の中継サーバの通知工程により、障害の発生を検知した旨が通知された場合に、前記受信工程で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信工程を備え、前記第2の中継サーバの第3の送信手段が、前記第2の送信工程により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信工程を備えることを特徴とする。
【0011】
また、本発明は、情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムおいて実行されるプログラムであって、第1の中継サーバを、前記情報処理装置から送信される電子メールを受信する受信手段と、前記受信手段により受信した電子メールに対して予め規定された処理を実行する処理手段と、前記処理手段により処理が実行された電子メールを送信する第1の送信手段として機能させ、第2の中継サーバを、前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出手段と、前記検出手段により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知手段として機能させ、前記第1の中継サーバを、さらに前記第2の中継サーバの通知手段により、障害の発生を検知した旨が通知された場合に、前記受信手段で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信手段として機能させ、前記第2の中継サーバを、さらに、前記第2の送信手段により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信手段として機能させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、電子メールの中継サーバに障害が発生した場合にも、電子メールの配送の遅延を低減させることが可能となる。
【図面の簡単な説明】
【0013】
【図1】本発明のシステム構成の一例を示す図である。
【図2】クライアントPC100、受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500に適用可能な情報処理装置のハードウエア構成を示す図である。
【図3】受信サーバ200における電子メール中継処理を示すフローチャートである。
【図4】正系サーバ300における電子メール中継処理を示すフローチャートである。
【図5】副系サーバ400における送信遅延判断処理を示すフローチャートである。
【図6】副系サーバ400における電子メール中継処理を示すフローチャートである。
【図7】配送サーバ500における電子メール中継処理を示すフローチャートである。
【図8】副系サーバ400へ電子メールを送信するか否かを示す切替フラグを示す図である。
【図9】計測用メールの送受信時刻を示す送受信時刻テーブルである。
【図10】正系サーバ300の処理が遅延しているか否かを判定するための遅延判定時間を示す図である。
【図11】計測用メールの送信間隔を示す図である。
【図12】副系サーバ400が受信した電子メールを示す図である。
【図13】配送サーバ500が配送した電子メールを示す図である。
【図14】本実施形態における受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500それぞれの機能構成を示す機能ブロック図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【0015】
図1は本発明のシステム構成の一例を示すシステム構成図である。
【0016】
本発明の実施例のシステム構成は、クライアントPC100、受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500がそれぞれLAN600を介して通信可能に接続されている。
【0017】
以下、図2を用いて、図1に示したクライアントPC100、受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500に適用可能な情報処理装置のハードウエア構成について説明する。
【0018】
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な各種プログラム等が記憶されている。
【0019】
202はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【0020】
また、205は入力コントローラで、入力装置209等からの入力を制御する。206はビデオコントローラで、液晶ディスプレイ等のディスプレイ装置210への表示を制御する。なお、ディスプレイ装置は、液晶ディスプレイに限られず、CRTディスプレイなどであっても良い。これらは必要に応じてクライアントが使用するものである。
【0021】
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
【0022】
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したLAN600)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
【0023】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0024】
ハードウエア上で動作する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0025】
次に、図3を用いて受信サーバ200における電子メールの中継処理について説明する。
【0026】
図3は、受信サーバ200がクライアントPC100から受信した電子メールを正系サーバ300、副系サーバ400へ送信する処理を示すフローチャートである。
【0027】
なお、図3のフローチャートで示す処理については、受信サーバ200のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0028】
ステップS101では、受信サーバ200のCPU201は、クライアントPC100から送信された電子メールを受信する。
【0029】
ステップS102では、受信サーバ200のCPU201は、副系サーバ400から切替シグナルが発信されているか否かを判断する。具体的には、図5のステップS304において副系サーバ400から切替シグナルが発信されると、受信サーバ200が当該切替シグナルを受信し、切替フラグ(図8)が設定されるため、当該切替フラグが設定されているか否かによって判断する。
【0030】
ステップS102において切替シグナルが発信されていると判断されると(ステップS102:YES)処理をステップS103に移行する。切替シグナルが発信されていない場合(ステップS102:NO)は、処理をステップS105に移行する。
【0031】
ステップS103では、受信サーバ200のCPU201は、ステップS101で受信した電子メールのコピー(複写)を作成する。
【0032】
ステップS104では、受信サーバ200のCPU201は、ステップS103で作成されたコピーメールを副系サーバ400へ送信する。
【0033】
ステップS105では、受信サーバ200のCPU201は、ステップS101で受信した電子メールを正系サーバに送信する。
【0034】
以上の処理により、切替シグナルが発信されている場合、すなわち正系サーバにおける処理に何らかの異常が発生している場合には、正系サーバ300、副系サーバ400の双方に対して電子メールを送信することが可能となる。
【0035】
次に、図4を用いて、正系サーバ300における電子メールの中継処理について説明する。
【0036】
図4は、本発明の実施形態における、正系サーバ300における処理を示すフローチャートである。
【0037】
なお、図4のフローチャートで示す処理については、正系サーバ300のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0038】
ステップS201では、正系サーバ300のCPU201は、ステップS105で受信サーバ200から送信された電子メール、ステップS301で副系サーバ400から送信された計測用の電子メールを受信する。
【0039】
ステップS202では、正系サーバ300のCPU201は、ステップS201で受信した電子メールに対してウイルススキャンを実行する。なお、ウイルススキャンの方法については、公知の技術を用いるものとし、ここでは詳細は省略する。
【0040】
ステップS203では、正系サーバ300のCPU201は、ステップS201で受信した電子メールが計測用電子メールであるか否か、すなわち副系サーバ400から送信された電子メールであるか否かを判定する。
【0041】
計測用電子メールであると判定された場合(ステップS203:YES)は、処理をステップS204に移行する。
【0042】
計測用電子メールではない(受信サーバ200から送信された電子メールである)と判定された場合(ステップS203:NO)は、処理をステップS205に移行する。
【0043】
ステップS204では、正系サーバ300のCPU201は、当該計測用電子メールをその送信元である副系サーバ400へ送信する。
【0044】
ステップS205では、正系サーバ300のCPU201は、ステップS204でウイルススキャンをした結果、ウイルスが検出されたか否かを判断する。
【0045】
ウイルスが検出された場合(ステップS205:YES)は処理をステップS206に移行する。ウイルスが検出されなかった場合(ステップS205:NO)は処理をステップS207に移行する。
【0046】
ステップS206では、正系サーバ300のCPU201は、当該ウイルスが検出された電子メールを削除する。
【0047】
ステップS207では、正系サーバ300のCPU201は、ステップS201で受診した電子メールを配送サーバ500へ送信する。
以上の処理が正系サーバにより実行される処理である。
【0048】
なお、ステップS202、S205〜S207におけるウイルスチェックの処理は、あくまでも正系サーバにおける処理の一例である。すなわち、本発明においては正系サーバにおける処理の内容はいずれでもよく、ウイルススキャンに限られず、暗号化処理やメール送信制御処理などであってもよい。
【0049】
次に、図5を用いて、副系サーバ400における送信遅延判断処理について説明する。
【0050】
図5は、本発明の実施形態における、副系サーバ400における電子メールの送信遅延判断処理を示すフローチャートである。
【0051】
なお、図5のフローチャートで示す処理については、副系サーバ400のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0052】
ステップS301では、副系サーバ400のCPU201は、計測用電子メールを正系サーバ300に対して送信する。なお、ここで送信する電子メールは、正系サーバ300に異常が発生しているか否かを確かめるためのメールである。また、送信した時刻とメールIDとを対応付けて記録しておく(図9)。
【0053】
ステップS302では、副系サーバ400のCPU201は、ステップS301で送信した計測用電子メールを正系サーバ300から受信する。すなわち、正系サーバ300における処理(図4)のステップS204で送信された電子メールを受信する。そして、受信したメールの受信時刻を記録する(図9)。
【0054】
ステップS303では、副系サーバ400のCPU201は、ステップS301で計測用電子メールを送信した時刻とステップS302で計測用電子メールを受信した時刻とを比較し、その差が予め設定された値(図10)よりも大きいか否かを判定する。すなわち、計測用電子メールを送信した時刻と受信した時刻との差を算出し、正系サーバ300による処理に遅延が発生しているか否かを判断する。
【0055】
遅延が発生している場合(時刻差が予め設定された値よりも大きい場合)(ステップS303:YES)は、処理をステップS304に移行する。
【0056】
遅延が発生していない場合(ステップS303:NO)は、本フローチャートの処理を終了する。
【0057】
例えば、図10の例では閾値として30分が設定されているため、送信時刻と受信時刻との差が30分以上である場合には、遅延が発生していると判定される。すなわち、図9の例では、メールIDが「0004」の電子メールについては送信時刻(2010/11/15 09:45:00)と受信時刻(2010/11/15 10:24:50)との差が30分以上であるため、メールIDが「0004」のメールを受信した際に、遅延が発生していると判定される。
【0058】
なお、送信時刻から予め設定された時間が経過しても受信出来ない場合には遅延が発生していると判定されるようにしてもよい。そのように構成した場合には、メールIDが「0004」の電子メールの送信時刻である「2010/11/15 09:45:00」から30分が経過した「2010/11/15 10:15:00」が到来した時点で遅延が発生している(本実施形態においては、ウイルスチェックの処理に時間を要している)と判定される。
【0059】
なお、計測用メールを送信するタイミングについては、予め設定された間隔(図11)に従い送信されるものとする。すなわち、予め設定された間隔をおいて本フローチャートの処理が繰り返されることとなる。
【0060】
また、送信間隔については、本実施例では固定としているが、時間帯によって変化させるように設定されていてもよい。例えば9:00〜18:00までは5分間隔で計測用メールの送信を行い、18:00〜翌日9:00までは15分間隔で送信するというような設定でも良い。
【0061】
このようにすることで、9:00〜18:00の間は遅延の発生をより早い段階で検知することが可能となり、電子メール配送の遅延をより低減させることが可能となる。
【0062】
また、遅延判定時間についても、計測用メールの送信間隔と同様に、時間帯に応じて異なる時間を設定できるようにしてもよい。すなわち、9:00〜18:00までは5分間遅延した場合には切替シグナルを発信し、18:00〜翌日9:00までは15分間遅延があった場合に切替シグナルを発信するというような設定が可能であってもよい。
【0063】
ステップS304では、副系サーバ400のCPU201は、受信サーバ200に対して切替シグナルを発信する。すなわち、正系サーバ300に何らかの異常が発生していることを受信サーバ200に通知する。
【0064】
なお、切替シグナルが発信されている状態(図8の切替フラグが「1」である状態)においてステップS303で遅延がないと判断された場合(ステップS303:NO)には、切替フラグを「0」に戻すように受信サーバへ通知を出してもよい。
【0065】
この通知を出すことにより、正系サーバ300による処理の遅延が解消された以降は副系サーバに対して電子メールのコピーが送信されなくなる。
【0066】
以上の処理により、正系サーバ300の処理が遅延しているといった異常発生を検知することが可能となる。
【0067】
次に、図6を用いて、副系サーバ400における電子メール配送処理について説明する。
【0068】
図6は、本発明の実施形態における、副系サーバ400におけるメール中継処理を示すフローチャートである。
【0069】
なお、図6のフローチャートで示す処理については、副系サーバ400のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0070】
ステップS401では、副系サーバ400のCPU201は、電子メールを受信する。
【0071】
ステップS402では、副系サーバ400のCPU201は、ステップS401で受信した電子メールが計測用メールであるか否かを判定する。
【0072】
計測用メールであると判定された場合、すなわちステップS203で正系サーバ300から送信された計測用のメールである場合(ステップS402:YES)は、本フローチャートによる処理を終了する。
【0073】
計測用メールではないと判定された場合、すなわちステップS104で受信サーバ200から送信された電子メールである場合(ステップS402:NO)は、処理をステップS403に移行する。
【0074】
ステップS403では、副系サーバ400のCPU201は、ステップS401で受信した電子メールのメッセージIDを取得する。なお、ここでのメッセージIDは、電子メールを識別できるものの一例であり、メッセージID以外でも電子メールを識別可能なものであれば何れでも良い。
【0075】
ステップS404では、副系サーバ400のCPU201は、ステップS403で取得したメッセージIDを副系メールテーブル(図12)へ登録する。すなわち、副系サーバを経由した電子メールの情報を記録する。
【0076】
ステップS405では、副系サーバ400のCPU201は、ステップS401で受信した電子メールに対して、正系サーバにより実行される処理が実行されていない旨の情報を付加する。なお、本実施例では、ウイルススキャンを実行しないことになるため、その旨の情報を付加することとなる。
【0077】
ステップS406では、副系サーバ400のCPU201は、ステップS401で受信した電子メールを配送サーバ500へ送信する。
【0078】
以上のように、副系サーバ400での配送処理では、図4に示す正系サーバ300での配送処理と異なり、ウイルススキャンといった処理は実行しない。
【0079】
次に、図7を用いて、配送サーバ500における電子メールの配送処理について説明する。
【0080】
図7は、本発明の実施形態における、配送サーバ500による処理を示すフローチャートである。
【0081】
なお、図7のフローチャートで示す処理については、配送サーバ500のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0082】
ステップS501では、配送サーバ500のCPU201は、ステップS206で正系サーバ300から送信された電子メール、ステップS406で副系サーバ400から送信された電子メールを受信する。
【0083】
ステップS502では、配送サーバ500のCPU201は、副系サーバ400がステップS404で登録した副系メールテーブル(図12)を取得する。
【0084】
ステップS503では、配送サーバ500のCPU201は、ステップS501で取得した電子メールが、ステップS502で取得した副系メールテーブルに含まれるか否かを判定する。すなわち、副系サーバ400を経由してきた電子メールまたは正系サーバ300を経由した電子メールであって当該電子メールのコピーが副系サーバ400に送信された電子メールであるか否かを判定する。
【0085】
副系メールテーブルに含まれる場合(ステップS503:YES)は、処理をステップS504へ移行する。
【0086】
副系メールテーブルに含まれない場合(ステップS503:NO)は、処理をステップS506に移行する。
【0087】
ステップS504では、配送サーバ500のCPU201は、ステップS501で受信した電子メールが既に送信済みの電子メールであるか否かを送信済メールテーブル(図13)を用いて判断する。
【0088】
既に送信済みの電子メールである場合(ステップS504:YES)は、処理をステップS505に移行する。
【0089】
未だ送信されていない電子メールである場合(ステップS504:NO)は、処理をステップS506に移行する。
【0090】
ステップS505では、配送サーバ500のCPU201は、当該電子メールを削除する。そして、処理をステップS501に移行し、再度電子メールの受信処理を実行する。
【0091】
ステップS506では、配送サーバ500のCPU201は、ステップS501で取得した電子メールを当該電子メールの宛先へ送信する。
【0092】
ステップS507では、配送サーバ500のCPU201は、ステップS506で送信した電子メールを識別する情報(メッセージIDなど)を送信済メールテーブル(図13)へ登録する。
【0093】
以上の図7に示すフローチャートの処理により、正系サーバ300と副系サーバ400のいずれにも送信された電子メールについては、配送サーバ500へ先に到達した電子メールを送信することが可能となる。また、後から到達した電子メールについては、二重に送信がされないように制御することが可能となる。
【0094】
図8は受信サーバ200に記憶される切替フラグを示す図である。
【0095】
ステップS304で副系サーバ400から切替シグナルが発信され、受信サーバ200が当該切替シグナルを受信すると、切替フラグが設定される。図8の例では、切替シグナルが発信され受信サーバ200が受信すると、フラグが「1」となるものとしている。
【0096】
受信サーバ200のCPU201は、この切替フラグに従いステップS102の判断を実行する。
【0097】
図9は、副系サーバ400に記録される計測用メールの送信時刻と受信時刻を示すテーブルである。「送信時刻」は副系サーバ400から正系サーバ300へ計測用メールが送信された時刻を示し、「受信時刻」は正系サーバ300から送信された計測用メールを副系サーバ400が受信した時刻を示している。
【0098】
なお、計測用メールには、それぞれメールIDが副系サーバ400により付与されて送信され、送信時刻、受信時刻は当該メールIDごとに記録される。
【0099】
図10は、副系サーバ400に記憶される、正系サーバ300の処理の遅延を判定するための遅延判定時間が設定されたテーブルである。
【0100】
副系サーバ400は、図9の送受信時刻テーブルに記録される計測用メールの送信時刻と受信時刻との差が図10の遅延判定時間を超える場合には、正系サーバ300における処理に遅延が発生していると判断をする。
【0101】
図11は、副系サーバ400に記憶される、計測用メールの送信間隔が設定されたテーブルである。副系サーバ400は、図11に示すテーブルに設定された間隔で正系サーバ300に対して計測用メールを送信する。
【0102】
図12は、副系サーバ400に記憶される、副系サーバ400を経由して配送サーバ500へ配送された電子メールを示すリストである。
【0103】
本実施形態においては、電子メールのメッセージIDを記録するが、電子メールを識別できる情報であればメッセージIDに限らずいずれでもよい。
【0104】
図13は、配送サーバ500に記憶される、配送サーバ500から送信された電子メールを示すリストである。このリストには、配送サーバ500から送信された全ての電子メールが記録される。なお、図12に示す副系メールテーブルと同様に、記録される情報は電子メールを識別できる情報であればメッセージIDに限られずいずれでもよい。
【0105】
図14は、本実施形態における受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500それぞれの機能構成を示す機能ブロック図である。
【0106】
1401は、受信サーバ200が備える電子メール受信部であり、クライアントPC100から送信された電子メールを受信する機能を備える。
【0107】
1402は、受信サーバ200が備える電子メール複写部であり、電子メール受信部1401が受信した電子メールのコピーを作成する機能を備える。
【0108】
1403は、受信サーバ200が備える電子メール送信部であり、電子メール受信部1401が受信した電子メールや電子メール複写部1402が作成した電子メールを正系サーバ300および副系サーバ400へ送信する機能を備える。
【0109】
1404は、正系サーバ300が備える電子メール受信部であり、受信サーバ200や副系サーバ400から送信された電子メールを受信する機能を備える。
【0110】
1405は、正系サーバ300が備える電子メール処理実行部であり、予め規定された処理を電子メールに対して実行する機能を有する。なお、本実施形態では、電子メールに対するウイルススキャン処理を実行する機能を有する。
【0111】
1406は、正系サーバ300が備える電子メール送信部であり、正系サーバ300の電子メール受信部1404で受信した電子メールを副系サーバ400や配送サーバ500へ送信する機能を備える。
【0112】
1407は、副系サーバ400が備える電子メール受信部であり、受信サーバ200や正系サーバ300から送信された電子メールを受信する機能を有する。
【0113】
1408は、副系サーバ400が備える電子メール送信部であり、正系サーバ300の障害を検知するための計測用メールを予め設定された間隔で送信する機能や、電子メール受信部1407で受信した電子メールを配送サーバ500へ送信する機能を有する。
【0114】
1409は、副系サーバ400が備えるシグナル発信部であり、正系サーバに障害が発生していることを検知した際に、受信サーバ200に対して切替シグナルを発信する機能を有する。
【0115】
1410は、副系サーバ400が備える送信メール記憶部であり、図12に示す副系メールテーブルを作成、保持する。
【0116】
1411は、副系サーバ400が備える遅延判断処理部であり、電子メール送信部1408が計測用メールを送信した日時からの経過時間を算出し、予め設定された値と比較することで正系サーバ300で障害(処理の遅延)が発生しているか否かを判断する機能を有する。
【0117】
1412は、配送サーバ500が備える送信制御部であり、図12に示す副系メールテーブルと図13に示す送信済みメールテーブルとを用いて、重複して電子メールを送信しないように制御する機能を有する。
【0118】
1413は、配送サーバ500が備える電子メール受信部であり、正系サーバ300、副系サーバ400から送信された電子メールを受信する機能を備える。
【0119】
1414は、配送サーバ500が備える電子メール送信部であり、クライアントPCから送信された電子メールを当該電子メールに設定された宛先へ送信する機能を備える。
【0120】
1415は、配送サーバ500が備える送信メール記憶部であり、配送サーバ500の電子メール送信部1414により送信された電子メールを記憶する機能を備える(図13に示す送信済みメールテーブルを作成、保持する)。
【0121】
以上の構成を備えることにより、電子メールの中継サーバに障害が発生した場合にも、電子メールの配送の遅延を低減させることが可能となる。
【0122】
特に、副系サーバ400においては、正系サーバ300で実行する処理(本実施形態においてはウイルススキャン)を実行しないようにすることで、多量の電子メールが集中したことにより処理が追いつかずに遅延が発生したというケースにも対応が可能となる。
【0123】
なお、本実施形態においては、受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500をそれぞれ別の端末として説明したが、複数の端末の機能をひとつの端末から成る装置に適用してもよい。
【0124】
例えば、受信サーバ200、正系サーバ300が実行する処理を一つの端末において実行するように構成してもよい。
【0125】
また、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0126】
また、本発明におけるプログラムは、図3〜図7の処理方法をコンピュータが実行可能なプログラムである。なお、本発明におけるプログラムは図3〜図7の各装置の処理方法ごとのプログラムであってもよい。
【0127】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0128】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0129】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0130】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0131】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0132】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0133】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0134】
100 クライアントPC
200 受信サーバ
300 正系サーバ
400 副系サーバ
500 配送サーバ
600 LAN
【技術分野】
【0001】
本発明は、電子メールの中継システムに関する。
【背景技術】
【0002】
従来から、電子メールの中継を行うサーバにおいて、電子メールに対してウイルススキャンや電子メールの暗号化などの処理を行い、電子メールを配送する仕組みがある。
【0003】
このような仕組みにおいては、中継サーバの負荷が高く、一時に多くの電子メールが送信されると、中継サーバの処理が追いつかずにサーバがダウンしてしまうことがある。
【0004】
中継サーバがダウンしてしまうと、電子メールの配送が滞るため、ユーザにとって不都合が生じていた。
【0005】
このような問題に対処すべく、特許文献1には、主サーバと副サーバの2台のサーバを用意し、片方のサーバがダウンしても、もう片方のサーバが同様の処理を行い、電子メールの中継の停滞を防ぐ仕組みが開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2000−124946号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1には、多くのメールが送信された場合など、サーバの処理が追いつかずにサーバがダウンしてしまった場合の対応については記載がなく、副サーバにおいても同様にダウンしてしまう可能性がある。
【0008】
そこで、本発明は、電子メールの中継サーバに障害が発生した場合にも、電子メールの配送の遅延を低減させる仕組みを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムであって、第1の中継サーバが、前記情報処理装置から送信される電子メールを受信する受信手段と、前記受信手段により受信した電子メールに対して予め規定された処理を実行する処理手段と、前記処理手段により処理が実行された電子メールを送信する第1の送信手段と、を備え、第2の中継サーバが、前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出手段と、前記検出手段により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知手段と、を備え、前記第1の中継サーバは、さらに、前記第2の中継サーバの通知手段により、障害の発生を検知した旨が通知された場合に、前記受信手段で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信手段を備え、前記第2の中継サーバは、さらに、前記第2の送信手段により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信手段を備えることを特徴とする電子メール中継システム。
【0010】
また、本発明は、情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムにおける電子メール中継方法であって、第1の中継サーバの受信手段が、前記情報処理装置から送信される電子メールを受信する受信工程と、第1の中継サーバの処理手段が、前記受信工程により受信した電子メールに対して予め規定された処理を実行する処理工程と、第1の中継サーバの第1の送信手段が、前記処理工程により処理が実行された電子メールを送信する第1の送信工程と、第2の中継サーバの検出手段が、前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出工程と、第2の中継サーバの通知手段が、前記検出工程により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知工程と、を備え、前記第1の中継サーバの第2の送信手段が、前記第2の中継サーバの通知工程により、障害の発生を検知した旨が通知された場合に、前記受信工程で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信工程を備え、前記第2の中継サーバの第3の送信手段が、前記第2の送信工程により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信工程を備えることを特徴とする。
【0011】
また、本発明は、情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムおいて実行されるプログラムであって、第1の中継サーバを、前記情報処理装置から送信される電子メールを受信する受信手段と、前記受信手段により受信した電子メールに対して予め規定された処理を実行する処理手段と、前記処理手段により処理が実行された電子メールを送信する第1の送信手段として機能させ、第2の中継サーバを、前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出手段と、前記検出手段により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知手段として機能させ、前記第1の中継サーバを、さらに前記第2の中継サーバの通知手段により、障害の発生を検知した旨が通知された場合に、前記受信手段で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信手段として機能させ、前記第2の中継サーバを、さらに、前記第2の送信手段により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信手段として機能させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、電子メールの中継サーバに障害が発生した場合にも、電子メールの配送の遅延を低減させることが可能となる。
【図面の簡単な説明】
【0013】
【図1】本発明のシステム構成の一例を示す図である。
【図2】クライアントPC100、受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500に適用可能な情報処理装置のハードウエア構成を示す図である。
【図3】受信サーバ200における電子メール中継処理を示すフローチャートである。
【図4】正系サーバ300における電子メール中継処理を示すフローチャートである。
【図5】副系サーバ400における送信遅延判断処理を示すフローチャートである。
【図6】副系サーバ400における電子メール中継処理を示すフローチャートである。
【図7】配送サーバ500における電子メール中継処理を示すフローチャートである。
【図8】副系サーバ400へ電子メールを送信するか否かを示す切替フラグを示す図である。
【図9】計測用メールの送受信時刻を示す送受信時刻テーブルである。
【図10】正系サーバ300の処理が遅延しているか否かを判定するための遅延判定時間を示す図である。
【図11】計測用メールの送信間隔を示す図である。
【図12】副系サーバ400が受信した電子メールを示す図である。
【図13】配送サーバ500が配送した電子メールを示す図である。
【図14】本実施形態における受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500それぞれの機能構成を示す機能ブロック図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【0015】
図1は本発明のシステム構成の一例を示すシステム構成図である。
【0016】
本発明の実施例のシステム構成は、クライアントPC100、受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500がそれぞれLAN600を介して通信可能に接続されている。
【0017】
以下、図2を用いて、図1に示したクライアントPC100、受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500に適用可能な情報処理装置のハードウエア構成について説明する。
【0018】
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な各種プログラム等が記憶されている。
【0019】
202はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【0020】
また、205は入力コントローラで、入力装置209等からの入力を制御する。206はビデオコントローラで、液晶ディスプレイ等のディスプレイ装置210への表示を制御する。なお、ディスプレイ装置は、液晶ディスプレイに限られず、CRTディスプレイなどであっても良い。これらは必要に応じてクライアントが使用するものである。
【0021】
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
【0022】
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したLAN600)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
【0023】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0024】
ハードウエア上で動作する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0025】
次に、図3を用いて受信サーバ200における電子メールの中継処理について説明する。
【0026】
図3は、受信サーバ200がクライアントPC100から受信した電子メールを正系サーバ300、副系サーバ400へ送信する処理を示すフローチャートである。
【0027】
なお、図3のフローチャートで示す処理については、受信サーバ200のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0028】
ステップS101では、受信サーバ200のCPU201は、クライアントPC100から送信された電子メールを受信する。
【0029】
ステップS102では、受信サーバ200のCPU201は、副系サーバ400から切替シグナルが発信されているか否かを判断する。具体的には、図5のステップS304において副系サーバ400から切替シグナルが発信されると、受信サーバ200が当該切替シグナルを受信し、切替フラグ(図8)が設定されるため、当該切替フラグが設定されているか否かによって判断する。
【0030】
ステップS102において切替シグナルが発信されていると判断されると(ステップS102:YES)処理をステップS103に移行する。切替シグナルが発信されていない場合(ステップS102:NO)は、処理をステップS105に移行する。
【0031】
ステップS103では、受信サーバ200のCPU201は、ステップS101で受信した電子メールのコピー(複写)を作成する。
【0032】
ステップS104では、受信サーバ200のCPU201は、ステップS103で作成されたコピーメールを副系サーバ400へ送信する。
【0033】
ステップS105では、受信サーバ200のCPU201は、ステップS101で受信した電子メールを正系サーバに送信する。
【0034】
以上の処理により、切替シグナルが発信されている場合、すなわち正系サーバにおける処理に何らかの異常が発生している場合には、正系サーバ300、副系サーバ400の双方に対して電子メールを送信することが可能となる。
【0035】
次に、図4を用いて、正系サーバ300における電子メールの中継処理について説明する。
【0036】
図4は、本発明の実施形態における、正系サーバ300における処理を示すフローチャートである。
【0037】
なお、図4のフローチャートで示す処理については、正系サーバ300のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0038】
ステップS201では、正系サーバ300のCPU201は、ステップS105で受信サーバ200から送信された電子メール、ステップS301で副系サーバ400から送信された計測用の電子メールを受信する。
【0039】
ステップS202では、正系サーバ300のCPU201は、ステップS201で受信した電子メールに対してウイルススキャンを実行する。なお、ウイルススキャンの方法については、公知の技術を用いるものとし、ここでは詳細は省略する。
【0040】
ステップS203では、正系サーバ300のCPU201は、ステップS201で受信した電子メールが計測用電子メールであるか否か、すなわち副系サーバ400から送信された電子メールであるか否かを判定する。
【0041】
計測用電子メールであると判定された場合(ステップS203:YES)は、処理をステップS204に移行する。
【0042】
計測用電子メールではない(受信サーバ200から送信された電子メールである)と判定された場合(ステップS203:NO)は、処理をステップS205に移行する。
【0043】
ステップS204では、正系サーバ300のCPU201は、当該計測用電子メールをその送信元である副系サーバ400へ送信する。
【0044】
ステップS205では、正系サーバ300のCPU201は、ステップS204でウイルススキャンをした結果、ウイルスが検出されたか否かを判断する。
【0045】
ウイルスが検出された場合(ステップS205:YES)は処理をステップS206に移行する。ウイルスが検出されなかった場合(ステップS205:NO)は処理をステップS207に移行する。
【0046】
ステップS206では、正系サーバ300のCPU201は、当該ウイルスが検出された電子メールを削除する。
【0047】
ステップS207では、正系サーバ300のCPU201は、ステップS201で受診した電子メールを配送サーバ500へ送信する。
以上の処理が正系サーバにより実行される処理である。
【0048】
なお、ステップS202、S205〜S207におけるウイルスチェックの処理は、あくまでも正系サーバにおける処理の一例である。すなわち、本発明においては正系サーバにおける処理の内容はいずれでもよく、ウイルススキャンに限られず、暗号化処理やメール送信制御処理などであってもよい。
【0049】
次に、図5を用いて、副系サーバ400における送信遅延判断処理について説明する。
【0050】
図5は、本発明の実施形態における、副系サーバ400における電子メールの送信遅延判断処理を示すフローチャートである。
【0051】
なお、図5のフローチャートで示す処理については、副系サーバ400のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0052】
ステップS301では、副系サーバ400のCPU201は、計測用電子メールを正系サーバ300に対して送信する。なお、ここで送信する電子メールは、正系サーバ300に異常が発生しているか否かを確かめるためのメールである。また、送信した時刻とメールIDとを対応付けて記録しておく(図9)。
【0053】
ステップS302では、副系サーバ400のCPU201は、ステップS301で送信した計測用電子メールを正系サーバ300から受信する。すなわち、正系サーバ300における処理(図4)のステップS204で送信された電子メールを受信する。そして、受信したメールの受信時刻を記録する(図9)。
【0054】
ステップS303では、副系サーバ400のCPU201は、ステップS301で計測用電子メールを送信した時刻とステップS302で計測用電子メールを受信した時刻とを比較し、その差が予め設定された値(図10)よりも大きいか否かを判定する。すなわち、計測用電子メールを送信した時刻と受信した時刻との差を算出し、正系サーバ300による処理に遅延が発生しているか否かを判断する。
【0055】
遅延が発生している場合(時刻差が予め設定された値よりも大きい場合)(ステップS303:YES)は、処理をステップS304に移行する。
【0056】
遅延が発生していない場合(ステップS303:NO)は、本フローチャートの処理を終了する。
【0057】
例えば、図10の例では閾値として30分が設定されているため、送信時刻と受信時刻との差が30分以上である場合には、遅延が発生していると判定される。すなわち、図9の例では、メールIDが「0004」の電子メールについては送信時刻(2010/11/15 09:45:00)と受信時刻(2010/11/15 10:24:50)との差が30分以上であるため、メールIDが「0004」のメールを受信した際に、遅延が発生していると判定される。
【0058】
なお、送信時刻から予め設定された時間が経過しても受信出来ない場合には遅延が発生していると判定されるようにしてもよい。そのように構成した場合には、メールIDが「0004」の電子メールの送信時刻である「2010/11/15 09:45:00」から30分が経過した「2010/11/15 10:15:00」が到来した時点で遅延が発生している(本実施形態においては、ウイルスチェックの処理に時間を要している)と判定される。
【0059】
なお、計測用メールを送信するタイミングについては、予め設定された間隔(図11)に従い送信されるものとする。すなわち、予め設定された間隔をおいて本フローチャートの処理が繰り返されることとなる。
【0060】
また、送信間隔については、本実施例では固定としているが、時間帯によって変化させるように設定されていてもよい。例えば9:00〜18:00までは5分間隔で計測用メールの送信を行い、18:00〜翌日9:00までは15分間隔で送信するというような設定でも良い。
【0061】
このようにすることで、9:00〜18:00の間は遅延の発生をより早い段階で検知することが可能となり、電子メール配送の遅延をより低減させることが可能となる。
【0062】
また、遅延判定時間についても、計測用メールの送信間隔と同様に、時間帯に応じて異なる時間を設定できるようにしてもよい。すなわち、9:00〜18:00までは5分間遅延した場合には切替シグナルを発信し、18:00〜翌日9:00までは15分間遅延があった場合に切替シグナルを発信するというような設定が可能であってもよい。
【0063】
ステップS304では、副系サーバ400のCPU201は、受信サーバ200に対して切替シグナルを発信する。すなわち、正系サーバ300に何らかの異常が発生していることを受信サーバ200に通知する。
【0064】
なお、切替シグナルが発信されている状態(図8の切替フラグが「1」である状態)においてステップS303で遅延がないと判断された場合(ステップS303:NO)には、切替フラグを「0」に戻すように受信サーバへ通知を出してもよい。
【0065】
この通知を出すことにより、正系サーバ300による処理の遅延が解消された以降は副系サーバに対して電子メールのコピーが送信されなくなる。
【0066】
以上の処理により、正系サーバ300の処理が遅延しているといった異常発生を検知することが可能となる。
【0067】
次に、図6を用いて、副系サーバ400における電子メール配送処理について説明する。
【0068】
図6は、本発明の実施形態における、副系サーバ400におけるメール中継処理を示すフローチャートである。
【0069】
なお、図6のフローチャートで示す処理については、副系サーバ400のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0070】
ステップS401では、副系サーバ400のCPU201は、電子メールを受信する。
【0071】
ステップS402では、副系サーバ400のCPU201は、ステップS401で受信した電子メールが計測用メールであるか否かを判定する。
【0072】
計測用メールであると判定された場合、すなわちステップS203で正系サーバ300から送信された計測用のメールである場合(ステップS402:YES)は、本フローチャートによる処理を終了する。
【0073】
計測用メールではないと判定された場合、すなわちステップS104で受信サーバ200から送信された電子メールである場合(ステップS402:NO)は、処理をステップS403に移行する。
【0074】
ステップS403では、副系サーバ400のCPU201は、ステップS401で受信した電子メールのメッセージIDを取得する。なお、ここでのメッセージIDは、電子メールを識別できるものの一例であり、メッセージID以外でも電子メールを識別可能なものであれば何れでも良い。
【0075】
ステップS404では、副系サーバ400のCPU201は、ステップS403で取得したメッセージIDを副系メールテーブル(図12)へ登録する。すなわち、副系サーバを経由した電子メールの情報を記録する。
【0076】
ステップS405では、副系サーバ400のCPU201は、ステップS401で受信した電子メールに対して、正系サーバにより実行される処理が実行されていない旨の情報を付加する。なお、本実施例では、ウイルススキャンを実行しないことになるため、その旨の情報を付加することとなる。
【0077】
ステップS406では、副系サーバ400のCPU201は、ステップS401で受信した電子メールを配送サーバ500へ送信する。
【0078】
以上のように、副系サーバ400での配送処理では、図4に示す正系サーバ300での配送処理と異なり、ウイルススキャンといった処理は実行しない。
【0079】
次に、図7を用いて、配送サーバ500における電子メールの配送処理について説明する。
【0080】
図7は、本発明の実施形態における、配送サーバ500による処理を示すフローチャートである。
【0081】
なお、図7のフローチャートで示す処理については、配送サーバ500のCPU201が所定の制御プログラムを読み出して実行する処理である。
【0082】
ステップS501では、配送サーバ500のCPU201は、ステップS206で正系サーバ300から送信された電子メール、ステップS406で副系サーバ400から送信された電子メールを受信する。
【0083】
ステップS502では、配送サーバ500のCPU201は、副系サーバ400がステップS404で登録した副系メールテーブル(図12)を取得する。
【0084】
ステップS503では、配送サーバ500のCPU201は、ステップS501で取得した電子メールが、ステップS502で取得した副系メールテーブルに含まれるか否かを判定する。すなわち、副系サーバ400を経由してきた電子メールまたは正系サーバ300を経由した電子メールであって当該電子メールのコピーが副系サーバ400に送信された電子メールであるか否かを判定する。
【0085】
副系メールテーブルに含まれる場合(ステップS503:YES)は、処理をステップS504へ移行する。
【0086】
副系メールテーブルに含まれない場合(ステップS503:NO)は、処理をステップS506に移行する。
【0087】
ステップS504では、配送サーバ500のCPU201は、ステップS501で受信した電子メールが既に送信済みの電子メールであるか否かを送信済メールテーブル(図13)を用いて判断する。
【0088】
既に送信済みの電子メールである場合(ステップS504:YES)は、処理をステップS505に移行する。
【0089】
未だ送信されていない電子メールである場合(ステップS504:NO)は、処理をステップS506に移行する。
【0090】
ステップS505では、配送サーバ500のCPU201は、当該電子メールを削除する。そして、処理をステップS501に移行し、再度電子メールの受信処理を実行する。
【0091】
ステップS506では、配送サーバ500のCPU201は、ステップS501で取得した電子メールを当該電子メールの宛先へ送信する。
【0092】
ステップS507では、配送サーバ500のCPU201は、ステップS506で送信した電子メールを識別する情報(メッセージIDなど)を送信済メールテーブル(図13)へ登録する。
【0093】
以上の図7に示すフローチャートの処理により、正系サーバ300と副系サーバ400のいずれにも送信された電子メールについては、配送サーバ500へ先に到達した電子メールを送信することが可能となる。また、後から到達した電子メールについては、二重に送信がされないように制御することが可能となる。
【0094】
図8は受信サーバ200に記憶される切替フラグを示す図である。
【0095】
ステップS304で副系サーバ400から切替シグナルが発信され、受信サーバ200が当該切替シグナルを受信すると、切替フラグが設定される。図8の例では、切替シグナルが発信され受信サーバ200が受信すると、フラグが「1」となるものとしている。
【0096】
受信サーバ200のCPU201は、この切替フラグに従いステップS102の判断を実行する。
【0097】
図9は、副系サーバ400に記録される計測用メールの送信時刻と受信時刻を示すテーブルである。「送信時刻」は副系サーバ400から正系サーバ300へ計測用メールが送信された時刻を示し、「受信時刻」は正系サーバ300から送信された計測用メールを副系サーバ400が受信した時刻を示している。
【0098】
なお、計測用メールには、それぞれメールIDが副系サーバ400により付与されて送信され、送信時刻、受信時刻は当該メールIDごとに記録される。
【0099】
図10は、副系サーバ400に記憶される、正系サーバ300の処理の遅延を判定するための遅延判定時間が設定されたテーブルである。
【0100】
副系サーバ400は、図9の送受信時刻テーブルに記録される計測用メールの送信時刻と受信時刻との差が図10の遅延判定時間を超える場合には、正系サーバ300における処理に遅延が発生していると判断をする。
【0101】
図11は、副系サーバ400に記憶される、計測用メールの送信間隔が設定されたテーブルである。副系サーバ400は、図11に示すテーブルに設定された間隔で正系サーバ300に対して計測用メールを送信する。
【0102】
図12は、副系サーバ400に記憶される、副系サーバ400を経由して配送サーバ500へ配送された電子メールを示すリストである。
【0103】
本実施形態においては、電子メールのメッセージIDを記録するが、電子メールを識別できる情報であればメッセージIDに限らずいずれでもよい。
【0104】
図13は、配送サーバ500に記憶される、配送サーバ500から送信された電子メールを示すリストである。このリストには、配送サーバ500から送信された全ての電子メールが記録される。なお、図12に示す副系メールテーブルと同様に、記録される情報は電子メールを識別できる情報であればメッセージIDに限られずいずれでもよい。
【0105】
図14は、本実施形態における受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500それぞれの機能構成を示す機能ブロック図である。
【0106】
1401は、受信サーバ200が備える電子メール受信部であり、クライアントPC100から送信された電子メールを受信する機能を備える。
【0107】
1402は、受信サーバ200が備える電子メール複写部であり、電子メール受信部1401が受信した電子メールのコピーを作成する機能を備える。
【0108】
1403は、受信サーバ200が備える電子メール送信部であり、電子メール受信部1401が受信した電子メールや電子メール複写部1402が作成した電子メールを正系サーバ300および副系サーバ400へ送信する機能を備える。
【0109】
1404は、正系サーバ300が備える電子メール受信部であり、受信サーバ200や副系サーバ400から送信された電子メールを受信する機能を備える。
【0110】
1405は、正系サーバ300が備える電子メール処理実行部であり、予め規定された処理を電子メールに対して実行する機能を有する。なお、本実施形態では、電子メールに対するウイルススキャン処理を実行する機能を有する。
【0111】
1406は、正系サーバ300が備える電子メール送信部であり、正系サーバ300の電子メール受信部1404で受信した電子メールを副系サーバ400や配送サーバ500へ送信する機能を備える。
【0112】
1407は、副系サーバ400が備える電子メール受信部であり、受信サーバ200や正系サーバ300から送信された電子メールを受信する機能を有する。
【0113】
1408は、副系サーバ400が備える電子メール送信部であり、正系サーバ300の障害を検知するための計測用メールを予め設定された間隔で送信する機能や、電子メール受信部1407で受信した電子メールを配送サーバ500へ送信する機能を有する。
【0114】
1409は、副系サーバ400が備えるシグナル発信部であり、正系サーバに障害が発生していることを検知した際に、受信サーバ200に対して切替シグナルを発信する機能を有する。
【0115】
1410は、副系サーバ400が備える送信メール記憶部であり、図12に示す副系メールテーブルを作成、保持する。
【0116】
1411は、副系サーバ400が備える遅延判断処理部であり、電子メール送信部1408が計測用メールを送信した日時からの経過時間を算出し、予め設定された値と比較することで正系サーバ300で障害(処理の遅延)が発生しているか否かを判断する機能を有する。
【0117】
1412は、配送サーバ500が備える送信制御部であり、図12に示す副系メールテーブルと図13に示す送信済みメールテーブルとを用いて、重複して電子メールを送信しないように制御する機能を有する。
【0118】
1413は、配送サーバ500が備える電子メール受信部であり、正系サーバ300、副系サーバ400から送信された電子メールを受信する機能を備える。
【0119】
1414は、配送サーバ500が備える電子メール送信部であり、クライアントPCから送信された電子メールを当該電子メールに設定された宛先へ送信する機能を備える。
【0120】
1415は、配送サーバ500が備える送信メール記憶部であり、配送サーバ500の電子メール送信部1414により送信された電子メールを記憶する機能を備える(図13に示す送信済みメールテーブルを作成、保持する)。
【0121】
以上の構成を備えることにより、電子メールの中継サーバに障害が発生した場合にも、電子メールの配送の遅延を低減させることが可能となる。
【0122】
特に、副系サーバ400においては、正系サーバ300で実行する処理(本実施形態においてはウイルススキャン)を実行しないようにすることで、多量の電子メールが集中したことにより処理が追いつかずに遅延が発生したというケースにも対応が可能となる。
【0123】
なお、本実施形態においては、受信サーバ200、正系サーバ300、副系サーバ400、配送サーバ500をそれぞれ別の端末として説明したが、複数の端末の機能をひとつの端末から成る装置に適用してもよい。
【0124】
例えば、受信サーバ200、正系サーバ300が実行する処理を一つの端末において実行するように構成してもよい。
【0125】
また、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0126】
また、本発明におけるプログラムは、図3〜図7の処理方法をコンピュータが実行可能なプログラムである。なお、本発明におけるプログラムは図3〜図7の各装置の処理方法ごとのプログラムであってもよい。
【0127】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0128】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0129】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0130】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0131】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0132】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0133】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0134】
100 クライアントPC
200 受信サーバ
300 正系サーバ
400 副系サーバ
500 配送サーバ
600 LAN
【特許請求の範囲】
【請求項1】
情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムであって、
第1の中継サーバが、
前記情報処理装置から送信される電子メールを受信する受信手段と、
前記受信手段により受信した電子メールに対して予め規定された処理を実行する処理手段と、
前記処理手段により処理が実行された電子メールを送信する第1の送信手段と、
を備え、
第2の中継サーバが、
前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出手段と、
前記検出手段により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知手段と、
を備え、
前記第1の中継サーバは、さらに、
前記第2の中継サーバの通知手段により、障害の発生を検知した旨が通知された場合に、前記受信手段で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信手段を備え、
前記第2の中継サーバは、さらに、
前記第2の送信手段により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信手段を備えることを特徴とする電子メール中継システム。
【請求項2】
前記電子メール中継システムは、さらに、
前記第1の送信手段により送信された電子メールおよび前記第3の送信手段により送信された前記第1の送信手段により送信された電子メールの複写を受信する第2の受信手段と、
前記第2の受信手段で受信した電子メールと当該電子メールの複写のいずれかを当該電子メールに設定された宛先に送信する第3の送信手段と、
を備える配送サーバを備えることを特徴とする請求項1に記載の電子メール中継システム。
【請求項3】
前記配送サーバの第3の送信手段は、前記第2の受信手段で受信した電子メールと当該電子メールの複写のうち、前記第2の受信手段で受信した時が早い方を送信することを特徴とする請求項2に記載の電子メール中継システム。
【請求項4】
前記第2の中継サーバは、さらに、
前記第1の中継サーバに障害発生を検出するための計測用メールを送信する第1の計測用メール送信手段と、
前記計測用メール送信手段で送信した計測メールを前記第1の中継サーバから受信する第1の計測用メール受信手段と、
前記第1の計測用メール送信手段で計測用メールを送信した日時からの経過時間を算出する遅延時間算出手段と、
前記第1の中継サーバにおける処理に障害が発生しているか否かを判定するための遅延判定時間を記憶する遅延判定時間記憶手段と、
前記遅延時間算出手段により算出された経過時間が前記遅延判定時間記憶手段に記憶された時間よりも大きいか否かを判定する遅延判定手段と、
を備え、
前記第1の中継サーバは、さらに、
前記第2の中継サーバから計測用メールを受信する計測用メール受信手段と、
前記計測用メール受信手段で受信した計測用メールを、前記第2の中継サーバへ送信する第2の計測用メール送信手段と、
を備え、
前記通知手段は、前記遅延判定手段により時間差が前記遅延判定時間記憶手段に記憶された遅延判定時間よりも大きいと判定された場合に、障害の発生を検知した旨を通知することを特徴とする請求項1乃至3のいずれか1項に記載の電子メール中継システム。
【請求項5】
前記通知手段は、さらに、
前記遅延判定手段により時間差が前記遅延判定時間記憶手段に記憶された遅延判定時間よりも大きいと判定された後に、前記遅延判定手段により時間差が前記遅延判定時間記憶手段に記憶された遅延判定時間よりも小さいと判定された場合に、前記障害が解消した旨の通知をすることを特徴とする請求項4に記載の電子メール中継システム。
【請求項6】
前記遅延判定時間記憶手段に記憶された遅延判定時間は、時間帯によって異なることを特徴とする請求項4または5に記載の電子メール中継システム。
【請求項7】
前記第2の中継サーバはさらに、
前記第3の送信手段で送信される電子メールに、第2の中継サーバから送信された旨の情報を付加する情報付加手段を備えることを特徴とする請求項1乃至6のいずれか1項に記載の電子メール中継システム。
【請求項8】
情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムにおける電子メール中継方法であって、
第1の中継サーバの受信手段が、前記情報処理装置から送信される電子メールを受信する受信工程と、
第1の中継サーバの処理手段が、前記受信工程により受信した電子メールに対して予め規定された処理を実行する処理工程と、
第1の中継サーバの第1の送信手段が、前記処理工程により処理が実行された電子メールを送信する第1の送信工程と、
第2の中継サーバの検出手段が、前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出工程と、
第2の中継サーバの通知手段が、前記検出工程により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知工程と、
を備え、
前記第1の中継サーバの第2の送信手段が、前記第2の中継サーバの通知工程により、障害の発生を検知した旨が通知された場合に、前記受信工程で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信工程を備え、
前記第2の中継サーバの第3の送信手段が、前記第2の送信工程により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信工程を備えることを特徴とする電子メール中継方法。
【請求項9】
情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムおいて実行されるプログラムであって、
第1の中継サーバを、
前記情報処理装置から送信される電子メールを受信する受信手段と、
前記受信手段により受信した電子メールに対して予め規定された処理を実行する処理手段と、
前記処理手段により処理が実行された電子メールを送信する第1の送信手段として機能させ、
第2の中継サーバを、
前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出手段と、
前記検出手段により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知手段として機能させ、
前記第1の中継サーバを、さらに
前記第2の中継サーバの通知手段により、障害の発生を検知した旨が通知された場合に、前記受信手段で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信手段として機能させ、
前記第2の中継サーバを、さらに、
前記第2の送信手段により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信手段として機能させることを特徴とするプログラム。
【請求項1】
情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムであって、
第1の中継サーバが、
前記情報処理装置から送信される電子メールを受信する受信手段と、
前記受信手段により受信した電子メールに対して予め規定された処理を実行する処理手段と、
前記処理手段により処理が実行された電子メールを送信する第1の送信手段と、
を備え、
第2の中継サーバが、
前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出手段と、
前記検出手段により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知手段と、
を備え、
前記第1の中継サーバは、さらに、
前記第2の中継サーバの通知手段により、障害の発生を検知した旨が通知された場合に、前記受信手段で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信手段を備え、
前記第2の中継サーバは、さらに、
前記第2の送信手段により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信手段を備えることを特徴とする電子メール中継システム。
【請求項2】
前記電子メール中継システムは、さらに、
前記第1の送信手段により送信された電子メールおよび前記第3の送信手段により送信された前記第1の送信手段により送信された電子メールの複写を受信する第2の受信手段と、
前記第2の受信手段で受信した電子メールと当該電子メールの複写のいずれかを当該電子メールに設定された宛先に送信する第3の送信手段と、
を備える配送サーバを備えることを特徴とする請求項1に記載の電子メール中継システム。
【請求項3】
前記配送サーバの第3の送信手段は、前記第2の受信手段で受信した電子メールと当該電子メールの複写のうち、前記第2の受信手段で受信した時が早い方を送信することを特徴とする請求項2に記載の電子メール中継システム。
【請求項4】
前記第2の中継サーバは、さらに、
前記第1の中継サーバに障害発生を検出するための計測用メールを送信する第1の計測用メール送信手段と、
前記計測用メール送信手段で送信した計測メールを前記第1の中継サーバから受信する第1の計測用メール受信手段と、
前記第1の計測用メール送信手段で計測用メールを送信した日時からの経過時間を算出する遅延時間算出手段と、
前記第1の中継サーバにおける処理に障害が発生しているか否かを判定するための遅延判定時間を記憶する遅延判定時間記憶手段と、
前記遅延時間算出手段により算出された経過時間が前記遅延判定時間記憶手段に記憶された時間よりも大きいか否かを判定する遅延判定手段と、
を備え、
前記第1の中継サーバは、さらに、
前記第2の中継サーバから計測用メールを受信する計測用メール受信手段と、
前記計測用メール受信手段で受信した計測用メールを、前記第2の中継サーバへ送信する第2の計測用メール送信手段と、
を備え、
前記通知手段は、前記遅延判定手段により時間差が前記遅延判定時間記憶手段に記憶された遅延判定時間よりも大きいと判定された場合に、障害の発生を検知した旨を通知することを特徴とする請求項1乃至3のいずれか1項に記載の電子メール中継システム。
【請求項5】
前記通知手段は、さらに、
前記遅延判定手段により時間差が前記遅延判定時間記憶手段に記憶された遅延判定時間よりも大きいと判定された後に、前記遅延判定手段により時間差が前記遅延判定時間記憶手段に記憶された遅延判定時間よりも小さいと判定された場合に、前記障害が解消した旨の通知をすることを特徴とする請求項4に記載の電子メール中継システム。
【請求項6】
前記遅延判定時間記憶手段に記憶された遅延判定時間は、時間帯によって異なることを特徴とする請求項4または5に記載の電子メール中継システム。
【請求項7】
前記第2の中継サーバはさらに、
前記第3の送信手段で送信される電子メールに、第2の中継サーバから送信された旨の情報を付加する情報付加手段を備えることを特徴とする請求項1乃至6のいずれか1項に記載の電子メール中継システム。
【請求項8】
情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムにおける電子メール中継方法であって、
第1の中継サーバの受信手段が、前記情報処理装置から送信される電子メールを受信する受信工程と、
第1の中継サーバの処理手段が、前記受信工程により受信した電子メールに対して予め規定された処理を実行する処理工程と、
第1の中継サーバの第1の送信手段が、前記処理工程により処理が実行された電子メールを送信する第1の送信工程と、
第2の中継サーバの検出手段が、前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出工程と、
第2の中継サーバの通知手段が、前記検出工程により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知工程と、
を備え、
前記第1の中継サーバの第2の送信手段が、前記第2の中継サーバの通知工程により、障害の発生を検知した旨が通知された場合に、前記受信工程で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信工程を備え、
前記第2の中継サーバの第3の送信手段が、前記第2の送信工程により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信工程を備えることを特徴とする電子メール中継方法。
【請求項9】
情報処理装置から送信される電子メールを当該電子メールに設定された宛先に送信するべく中継する電子メール中継システムおいて実行されるプログラムであって、
第1の中継サーバを、
前記情報処理装置から送信される電子メールを受信する受信手段と、
前記受信手段により受信した電子メールに対して予め規定された処理を実行する処理手段と、
前記処理手段により処理が実行された電子メールを送信する第1の送信手段として機能させ、
第2の中継サーバを、
前記第1の中継サーバが実行する処理に障害が発生しているか否かを検出する検出手段と、
前記検出手段により障害の発生が検出された場合に、前記第1の中継サーバに対してその旨を通知する通知手段として機能させ、
前記第1の中継サーバを、さらに
前記第2の中継サーバの通知手段により、障害の発生を検知した旨が通知された場合に、前記受信手段で受信した電子メールの複写を前記第2の中継サーバへ送信する第2の送信手段として機能させ、
前記第2の中継サーバを、さらに、
前記第2の送信手段により送信された電子メールの複写を、当該電子メールの宛先に送信する第3の送信手段として機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−129660(P2012−129660A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−277484(P2010−277484)
【出願日】平成22年12月13日(2010.12.13)
【出願人】(390002761)キヤノンマーケティングジャパン株式会社 (656)
【出願人】(312000206)キヤノンMJアイティグループホールディングス株式会社 (259)
【出願人】(592135203)キヤノンITソリューションズ株式会社 (528)
【Fターム(参考)】
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願日】平成22年12月13日(2010.12.13)
【出願人】(390002761)キヤノンマーケティングジャパン株式会社 (656)
【出願人】(312000206)キヤノンMJアイティグループホールディングス株式会社 (259)
【出願人】(592135203)キヤノンITソリューションズ株式会社 (528)
【Fターム(参考)】
[ Back to top ]