(57)【特許請求の範囲】
【請求項１】
メール送信装置からメールを受信しメール受信装置へメールを配信するメールゲートウェイを備えるメールシステムであって、
前記メールゲートウェイは、
プログラム内部処理における情報を取得する機能と、
前記情報を監視する機能と、
前記監視した情報からメールゲートウェイの規制の処理を関連付ける機能と、
前記関連した情報からメールゲートウェイの規制の開始または終了する機能と、
受信したメールをメールゲートウェイおよび/またはメールシステムへ与える影響によりメールをグループ分けする機能と、
前記メールグループ毎に前記規制時にメールの処理を選択する機能と、
通信端末からのメール受信に失敗したときの通信維持時間の統計時間を取得する機能と、
前記メールゲートウェイの受信処理にかかる統計時間を取得する機能と、
前記２種類の統計情報を比較する機能と、
前記受信処理時間が前記通信維持時間を超過した場合にコネクションを切断する機能と、を備える
ことを特徴とするメールシステム。
【請求項２】
請求項１に記載のメールシステムであって、
前記メールゲートウェイは、
受信したメールおよび/またはコマンドの特徴を解析する機能と、
受信したメールおよび/またはコマンドの特徴と前記メールシステムの監視情報を関連付けて管理する機能と、
受信したメールの特徴によりメールの受信規制を判定する機能と、を備える
ことを特徴とするメールシステム。
【請求項３】
請求項２に記載のメールシステムであって、
前記メールゲートウェイは、
受信したメールをメールゲートウェイおよび/またはメールシステムへ与える影響が大きいほど、受信規制する確率を上げる機能を備える
ことを特徴とするメールシステム。
【請求項４】
請求項２に記載のメールシステムであって、
前記メールゲートウェイは、
受信したメールをメールゲートウェイおよび/またはメールシステムへ与える影響が大きいと判定した場合に、受信したメールの処理方法を、影響を削減する処理に変更する機能を備える
ことを特徴とするメールシステム。
【請求項５】
メール送信装置からメールを受信しメール受信装置へメールを配信するメールゲートウェイを備えるメールシステムであって、
前記メールゲートウェイは、
プログラム内部処理における情報を取得する機能と、
前記情報を監視する機能と、
前記監視した情報からメールゲートウェイの規制の処理を関連付ける機能と、
前記関連した情報からメールゲートウェイの規制の開始または終了する機能と、
受信したメールをメールゲートウェイおよび/またはメールシステムへ与える影響によりメールをグループ分けする機能と、
前記メールグループ毎に前記規制時にメールの処理を選択する機能と、
送信を試みるメールの特徴と前記メールシステムの監視情報を関連付けて管理する機能と、
前記メールシステムの監視情報が閾値を超過していた場合に送信メールの特徴によりメールの送信規制を行うか判定する機能と、
前記判定で規制を行うと判定した場合に前記メールの送信を規定時間遅らせる機能と、を備える
ことを特徴とするメールシステム。
【請求項６】
メール送信装置からメールを受信しメール受信装置へメールを配信するメールゲートウェイを備えるメールシステムであって、
前記メールゲートウェイは、
プログラム内部処理における情報を取得する機能と、
前記情報を監視する機能と、
前記監視した情報からメールゲートウェイの規制の処理を関連付ける機能と、
前記関連した情報からメールゲートウェイの規制の開始または終了する機能と、
受信したメールをメールゲートウェイおよび/またはメールシステムへ与える影響によりメールをグループ分けする機能と、
前記メールグループ毎に前記規制時にメールの処理を選択する機能と、
受信するコマンドの特徴と前記メールシステムの監視情報を関連付けて管理する機能と、
前記メールシステムの監視情報が閾値を超過していた場合に受信したコマンドの特徴によりコマンドの受信規制を行うか判定する機能と、
前記判定で規制を行うと判定した場合に前記コマンドに対し規制応答を送信する機能と、を備える
ことを特徴とするメールシステム。
【請求項７】
メール送信装置からメールを受信しメール受信装置へメールを配信するメールゲートウェイを備えるメールシステムであって、
前記メールゲートウェイは、
プログラム内部処理における情報を取得する機能と、
前記情報を監視する機能と、
前記監視した情報からメールゲートウェイの規制の処理を関連付ける機能と、
前記関連した情報からメールゲートウェイの規制の開始または終了する機能と、
受信したメールをメールゲートウェイおよび/またはメールシステムへ与える影響によりメールをグループ分けする機能と、
前記メールグループ毎に前記規制時にメールの処理を選択する機能と、
受信するコマンドの特徴と前記メールシステムの監視情報を関連付けて管理する機能と、
前記メールシステムの監視情報が閾値を超過していた場合にメールゲートウェイの更新を確認するコマンド応答受信した場合に、前記コマンドに対し更新がないことを示す応答を送信する機能と、を備える
ことを特徴とするメールシステム。
【請求項８】
メール送信装置からメールを受信しメール受信装置へメールを配信するメールゲートウェイを備えるメールシステムであって、
前記メールゲートウェイは、
プログラム内部処理における情報を取得する機能と、
前記情報を監視する機能と、
前記監視した情報からメールゲートウェイの規制の処理を関連付ける機能と、
前記関連した情報からメールゲートウェイの規制の開始または終了する機能と、
受信したメールをメールゲートウェイおよび/またはメールシステムへ与える影響によりメールをグループ分けする機能と、
前記メールグループ毎に前記規制時にメールの処理を選択する機能と、
前記メールシステムの監視情報が閾値を超過していた場合、または前記メールシステムの監視情報が短時間で大きな変化が発生した場合、前記監視情報状態に関連するひとつまたは複数の規制機能を有効化する機能と、を備える
ことを特徴とするメールシステム。
【請求項９】
メール送信装置からメールを受信しメール受信装置へメールを配信するメールゲートウェイを備えるメールシステムであって、
前記メールゲートウェイは、
プログラム内部処理における情報を取得する機能と、
前記情報を監視する機能と、
前記監視した情報からメールゲートウェイの規制の処理を関連付ける機能と、
前記関連した情報からメールゲートウェイの規制の開始または終了する機能と、
受信したメールをメールゲートウェイおよび/またはメールシステムへ与える影響によりメールをグループ分けする機能と、
前記メールグループ毎に前記規制時にメールの処理を選択する機能と、
前記メールゲートウェイ内のプロセスまたはスレッドが利用する排他処理において、複数のロックごとに排他処理を行った回数情報、および/または排他処理の時間の情報を含んだ排他処理の情報を取得する機能と、
前記排他情報を運用端末に表示する機能と、を備える
こと特徴とするメールシステム。
【請求項１０】
メール送信装置からメールを受信しメール受信装置へメールを配信するメールゲートウェイを備えるメールシステムであって、
前記メールゲートウェイは、
プログラム内部処理における情報を取得する機能と、
前記情報を監視する機能と、
前記監視した情報からメールゲートウェイの規制の処理を関連付ける機能と、
前記関連した情報からメールゲートウェイの規制の開始または終了する機能と、
受信したメールをメールゲートウェイおよび/またはメールシステムへ与える影響によりメールをグループ分けする機能と、
前記メールグループ毎に前記規制時にメールの処理を選択する機能と、
前記メールシステムの監視情報が閾値を超過していた場合、または前記メールシステムの監視情報が短時間で大きな変化が発生した場合、前記監視情報状態に関連するひとつまたは複数のリソースを増加する機能と、を備える
ことを特徴とするメールシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、メールシステムを構成するメールゲートウェイの技術に関する。
【背景技術】
【０００２】
携帯電話の電子メール（以下、メールと表記する）の普及により、携帯電話や携帯端末（以下、携帯電話という）向けの通信サービスを提供している会社（以下、携帯通信キャリア）のメールサービスを提供するシステム（以下、メールシステム）では、大量のメールを処理している。以下、携帯通信キャリアのメールシステムの事例について説明する。
【０００３】
携帯通信キャリアのメールシステムは、携帯電話やインターネットから受信したメールを宛先へ中継する処理、メールの文字コード、添付されている画像などの変換処理、認証処理、課金処理等を行って、メールを配信している。上記の処理は、携帯通信キャリア内に設置するメールゲートウェイ（メールサーバ、メール中継装置、メール転送サーバ、メール配信サーバ等）というサーバ装置（以下、サーバ装置をサーバという）で実現している。
【０００４】
また、メールゲートウェイは同時に、メールシステム全体の安定稼動を実現するため、メールゲートウェイ自体や、メールシステム全体の輻輳制御を担っている。メールゲートウェイが行う輻輳制御の一例として、特許文献１の方法がある。特許文献1では、メールゲートウェイの単位時間当たりのメール処理数を計測し、処理数が所定の閾値を超えた場合、メールゲートウェイはメールの受信規制を行う（段落0016、0017）。上記閾値および受信規制の方法は運用者により予め設定でき、運用者は複数の閾値を設定することにより輻輳状態に合せたメールの受信規制を可能にする（段落0025、0078、図5）。これにより、メールゲートウェイ自体、またはメールシステムの処理能力を超える大量のメールトラフィックが発生しても、メールゲートウェイがメールの流入量を規制し、安定稼動を実現する（段落0028）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第3735631号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、スマートフォンなどの普及等によりキャリアシステムへ流入するトラフィックが増加傾向にあり、携帯キャリアはシステムの変更や増設を頻繁に行なっている。以上のような背景において、メールゲートウェイには以下の２つの課題があった。
【０００７】
第一の課題は、上述のように処理能力を超える大量のメールトラフィックが発生してもシステムの安定稼働を実現させることである。しかしながら、特許文献１のようにサーバの処理状況を予め設定してから受信規制の閾値を設定する方法では、予め設定したサーバの処理状況と、実システムにおける処理状況が異なってしまうと、メールゲートウェイの輻輳制御が十分に機能しない、または最適な処理性能を維持できなくなるという問題があった。
【０００８】
メールゲートウェイの閾値を設定するには次の作業が必要である。最初にメールのサイズ、宛先数、内容当のメールプロファイルや携帯電話からの接続パターンといった条件（処理状況）を決定する。次に決定した条件で様々な負荷のメールトラフィックをかける負荷試験を行い、メールゲートウェイやメールシステムが輻輳にならないで安定稼動できる閾値を決定する。上記閾値は、メールゲートウェイやメールシステムの単位時間当たりの最大のメール処理数（以下、限界処理性能と呼ぶ）から余裕分を引いた値、または限界処理性能に余裕率という係数をかけた値に決定する。
【０００９】
実際のメールシステムにおいて、メールのサイズが想定よりも大きい場合や宛先数が増加した場合、閾値と実際の限界処理性能が乖離するため、安定稼動できなくなる可能性がある。運用者は上記閾値を決定する一連の作業を行ない、再度閾値を設定する必要ある。これら条件の変化は、携帯電話やユーザ側の変化だけでなく、サービス拡張やシステム構成の変更などの携帯通信キャリアのシステム側の都合によっても発生する。
【００１０】
第二の課題は、メールゲートウェイの輻輳回避するために増設を行う場合、上述のように前提条件が変化しやすい環境では、増設する台数の見積もり（サイジング）することが難しいことであった。一般的に、メールゲートウェイのサイジングは、メールの処理数やCPU利用率、メモリ使用といったメールゲートウェイの外部から明確な指標とすることが多い。しかしながら、いくつもの前提条件が変化する環境においては、メールゲートウェイの性能の試算は困難である。
【００１１】
すなわち、携帯電話キャリアのメールシステムにおいて、以上の２つの課題を解決する技術が求められている。
【課題を解決するための手段】
【００１２】
本明細書では、メールゲートウェイが複数のプログラム内部処理の情報を監視し、メールゲートウェイもしくは外部から上記情報に閾値を自動または手動で設定し、閾値超過の場合に規制を行うことにより輻輳を回避する方法と、メールゲートウェイが受信したメール毎に輻輳への影響度を判定し、輻輳への影響度が高いメールの処理を優先的に規制する方法により、メールプロファイル等の前提条件が変化した場合でも、メールゲートウェイおよび/またはメールシステムを安定稼働させる技術が開示される。また、メールゲートウェイは、従来サーバ外部から監視できなかったプログラム内部処理を可視化し、各処理を関連化して解析し、表示することにより、メールゲートウェイの性能の試算を容易化する技術が開示される。
【００１３】
開示されるメールシステムは、メールゲートウェイを有する構成とする。メールゲートウェイは、プログラム内部の内部処理時間や状態、排他情報を含む情報、ディスク装置やネットワークI/O出力の情報、外部のサーバとの通信情報等を取得し、運用管理端末等へ出力する。メールゲートウェイは、取得した情報または上記情報を組み合わせたものを監視し、規制を開始するか判定する。メールゲートウェイは、SMTP（Simple Mail Transfer Protocol）等のメールの受信規制だけではなく、メールの送信規制やIMAP（Internet Message Access Protocol）等のメールボックスを操作するプロトコルにおけるコマンドの中継規制を行う。メールゲートウェイが規制時に行う処理は、上記取得し、監視している情報によって異なる。
【００１４】
メールゲートウェイは、規制が開始した場合、メールの内容や状況に応じて、処理を変更する。特許文献１とは異なり、メールのサイズ、宛先数、解析対象となる部分のサイズ、メールを送受信するためのコマンドの内容、等の特徴からメールゲートウェイへ与える処理負荷が大きいものを優先的に規制する。ただし、処理負荷の大きいメールが全く送信されない状況を防ぐため、メールゲートウェイは処理負荷の違いにより、メールの分類（以下、メールクラスと呼ぶ）を設定し、各メールクラスで規制の確率を変更する。輻輳への影響、処理負荷の高いメールクラスの規制確率は高く、負荷の低いメールクラスの規制率は低く設定される。また、メールゲートウェイは規制を行わなかった処理負荷の高いメールクラスのメールの処理を、負荷を削減した処理に切り替えることを行う。
【００１５】
メールゲートウェイのプログラムは、通信処理やプログラムの状態等の単位でブロック化された関数（以下、ステート処理関数と呼ぶ）の組み合わせで実現されており、内部処理時間や状態を含む情報はこのステート処理関数内部または、複数のステート処理関数間で取得される。運用者は、運用管理端末からメールゲートウェイのステート処理関数一覧と内部処理状態を監視し、運用管理端末に画面出力されたステート処理関数を操作することにより、取得する内部処理情報を動的に変更することができる。また、運用者は運用管理端末からメールゲートウェイの監視したい項目や組み合わせたい項目を設定し、動的に適用することが可能である。
【００１６】
具体的な一つの態様は、メールを送受信するメールゲートウェイを備えるメールシステムであって、
当該メールゲートウェイは、プログラム内部の情報を取得する機能と、上記プログラム内部の情報を監視する機能と、上記監視した情報からメールゲートウェイの規制の処理を関連付ける機能と、上記関連した情報からメールゲートウェイの規制の開始または終了する機能と、メールがメールゲートウェイおよび/またはメールシステムへ与える影響によりメールをグループ分けする機能と、上記メールグループ毎に上記規制時にメールの処理を選択する機能と、を備えることを特徴とする。
【００１７】
さらに、上記メールゲートウェイにおいて、プログラム内部の情報を取得する機能は、上記取得した情報を外部サーバまたは端末に出力する機能と、外部サーバまたは端末にプログラムの内部処理をブロック化した処理関数単位で表示し、どの処理関数が遅延しているか自動判定、または運用者が容易に判定可能にする機能と、運用者が取得したい上記情報を上記処理関数単位で動的に設定できる機能と、を備えても良い。
【発明の効果】
【００１８】
開示によれば、メールのプロファイル等の前提条件が変化しても効果的に輻輳を回避するメールゲートウェイを提供可能になる。また、メールゲートウェイの性能試算を容易化することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】実施例における概略システム構成を例示するブロック図である。
【図２】メールゲートウェイ106の構成を例示するブロック図である。
【図３】運用管理端末109の表示例を示す。
【図４】メールゲートウェイ106の各規制のシーケンスの一例を示す。
【図５】メールゲートウェイ106のメール受信規制のフロー図の一例を示す。
【図６】メールゲートウェイ106のメール送信規制のフロー図の一例を示す。
【図７】メールゲートウェイ106のコマンド規制のフロー図の一例を示す。
【図８】メールゲートウェイ106の監視処理のフロー図の一例を示す。
【発明を実施するための形態】
【００２０】
以下、実施例について図面を参照して説明する。
【００２１】
図１は、本実施形態のメールシステムのシステム構成を示すブロック図である。
【００２２】
本実施の形態のメールシステムは、キャリア設備網103内に構成されており、メールゲートウェイ106、メールボックスサーバ107、運用管理端末109を備える。
【００２３】
通信端末101は、携帯電話端末やタブレット、PC等のデータ通信可能な端末装置を示し、無線網102を介して、キャリア設備網103内の本実施形態のメールシステムと接続している。無線網102は、携帯電話通信キャリアが管理する無線ネットワークである。キャリア設備網103は、無線網102からの通信をインターネット104、およびメールゲートウェイ106へ中継するネットワークおよびネットワーク設備である。無線網102とキャリア設備網103は、本実施例のメールゲートウェイ106を管理する携帯電話キャリアによって管理される。
【００２４】
メール転送サーバ105は、MTA（Mail Transfer Agent）とも呼ばれ、インターネット104を経由して、キャリア設備網103内の本実施形態のメールシステムと接続し、メールゲートウェイ106とメールの送受信を行う。メール転送サーバ105は、インターネットプロバイダや、他の携帯電話通信キャリア等の通信事業者が管理する設備網に設置される。メール転送サーバ105は、メール転送サーバ105を管理する他の通信事業者のメールを、メールゲートウェイ106へ送信する処理を行う。
【００２５】
メールゲートウェイ106は、通信端末101から受信したメールをメール転送サーバ105またはメールボックスサーバ107へ中継する処理と、メール転送サーバ105から受信したメールをメールボックスサーバ107へ中継する処理と、通信端末101とメールボックスサーバ107の間でメールボックスを操作する要求とその応答を中継する処理を行う。本実施例では、メールの送信経路が順に通信端末101、メールゲートウェイ106、メール転送サーバ105またはメールボックスサーバ107であるシーケンスを例として説明するが、これに限定されること無く、他のシーケンスにも適用可能である。本実施例では通信プロトコルは限定しないが、一般的にはメールゲートウェイ106と通信端末101間、またはメールゲートウェイ106とメール転送サーバ105間のプロトコルは、SMTP、ESMTP(Extended SMTP)、IMAP、MMS（Multimedia Messaging Service）のいずれかを使用する。
【００２６】
メールボックスサーバ107は、メールゲートウェイ106を介して受信したメールをユーザのメールボックスに格納する処理と、メールゲートウェイ106を介して受信したメールボックス操作の要求に対する処理を行う。
【００２７】
本実施例では、メールゲートウェイ106、メールボックスサーバ107は負荷分散のため、それぞれ複数台で１システムとして構成されている。
【００２８】
運用管理端末109は、PCやタブレット等のメールシステムを監視したり、運用したり、するための端末装置であり、メールゲートウェイ106やメールボックスサーバ107の状態表示、設定変更等を行う処理、メールゲートウェイ106やメールボックスサーバ107から受信したアラームを運用者へ通知する処理等を行う。
【００２９】
認証情報サーバ110は、携帯通信キャリアのユーザ情報等を管理するサーバである。メールゲートウェイ106は、ユーザの認証等を行う際に認証情報サーバ110からユーザの認証情報を取得する。
【００３０】
図２は、メールゲートウェイ106を実現する情報処理装置のハードウェア構成である。
【００３１】
メールゲートウェイ106を実現する情報処理装置は、プロセッサ202と、揮発性メモリ207と、不揮発性の記憶部であるディスク209と、キャリア設備網103にデータを送受信するための入出力回路インタフェイス203と、これらを接続するバスなどの内部通信線と、を含んで構成される。
【００３２】
揮発性メモリ207またはディスク209は、メールゲートウェイプログラム204を格納しており、また、データを格納する揮発性記憶部205を備えている。メールゲートウェイプログラム204には、メールゲートウェイ106がメールの送受信を行う処理を実現する各種制御プログラムが含まれ、これらの制御プログラムがプロセッサ202により実行される。
【００３３】
メールゲートウェイプログラム204は、予め、揮発性メモリ207またはディスク209に格納されていてもよいし、図示していない着脱可能な記憶媒体または通信媒体（すなわちネットワークまたはそれを伝播するデジタル信号や搬送波）を介して、揮発性メモリ207またはディスク209に導入されてもよい。ディスク209には、さらに、メールゲートウェイプログラム204が出力したログやメールゲートウェイプログラム204の設定ファイル等のデータを格納する。
【００３４】
以下説明する内容は、メールゲートウェイプログラム204に含まれる各種制御プログラムがプロセッサ202により実行されることにより、メールゲートウェイ106の機能として実現されるものである。
【００３５】
揮発性記憶部205は、メールゲートウェイ106が取得および/または監視する監視情報210と、輻輳を回避するための規制の方法を定義する規制情報221、メールの輻輳への影響の大きさを算出するためにメールを分類するための定義情報であるメールクラス定義情報222、キュー250を含んで構成される。監視情報210は、処理統計情報211、ロック情報212、I/O入出力情報213、セッション情報214、メール処理数215、メールプロファイル統計216、キュー滞留情報217、プロセスのＣＰＵ情報218を含んで構成される。処理統計情報211は、メールゲートウェイ106が行っている各処理にかかった時間の統計（以下、処理時間統計）や実行回数の統計（以下、実行回数統計）を含む情報である。ロック情報211は、メールゲートウェイ106が行う排他処理の情報であり、ロックの取得回数、ロックが取得できなかった回数、ロックの保持時間、ロックを取得できずに待たされた時間等の情報を含む。ロック情報211は、メールゲートウェイ106の処理の効率性を判定するために使用される。メールゲートウェイ106の処理効率が排他処理により低下すると、ロックが取得できなかった回数、ロックの保持時間、ロックを取得できずに待たされた時間の各値が大きくなる。
【００３６】
メールゲートウェイ106は複数種類のロックを持ち、メールゲートウェイ106は複数のプロセス、またはスレッドで構成されている（以下、本実施例では、プロセスまたはスレッドをプロセスという表記で統一する）。メールゲートウェイ106は、ロック情報211を取得するために排他処理を行うことを避けるため、ロック情報211をロックの種類数とプロセス数の積と同数分を用意する。I/0入出力情報213は、ディスクやRAIDストレージ装置、外部サーバとの通信等の各I/0の処理情報であり、通信時間、処理数、待ち状態になっている処理数といった情報を含む。また、外部サーバとの通信とのI/0の処理情報は、送受信に使用するためのメモリ領域（以下、送受信バッファ）の状態を含む。一般的に、I/0入出力はメールゲートウェイ106の性能ボトルネックになりやすいため、メールゲートウェイ106はI/0分のI/0入出力情報213を保持する。
【００３７】
セッション情報214は、通信端末101やメール転送サーバ105との通信セッションの情報であり、セッション数、セッションを保留していた時間、通信端末101から切断された時間等を含む。
【００３８】
メール処理数215は、メールゲートウェイ106が一定時間内に処理したメール数である。メールプロファイル情報216は、メールトラフィック、メール送信のコマンド、メールボックス操作等のコマンドのプロファイルの統計情報を示し、メールのサイズ、宛先数、メールヘッダやボディのサイズ、コマンド等の統計情報を含む。キュー滞留情報217は、メールゲートウェイ106が保持するキュー250の情報であり、キュー250に滞留しているメール数、送信成功数、失敗数等の情報を含む。プロセスのCPU情報218は、メールゲートウェイ106の各プロセスのCPU使用率である。以上の監視情報210に含まれる情報は、運用管理端末109でリアルタイム表示することができる。
【００３９】
メールクラス定義情報222は、メールを分類するための定義情報である。メールクラスは、メールのサイズ、宛先数、メールゲートウェイ106が行う処理の対象となる部分のサイズ、メールを送受信するためのコマンドの内容、等のメールの特徴をいくつかのグループに分類したものである。たとえば、メールのサイズを指標としたメールクラスは、メールのサイズが1KB以下、1KB〜100KB、100KB超といった分類ができる。コマンド内容を指標としたメールクラスでは、コマンドの種類とそのコマンドの引数として付随している情報の組み合わせ条件で定義できる。たとえば、メールボックスを検索するコマンドと、検索する範囲といったように条件を記述できる。１つのメールクラス定義情報222には、1指標のメールクラスを格納する。
【００４０】
規制情報221は、監視情報210が閾値超過または短時間で大きな変化をした場合に実行される規制に関する情報である。規制情報221には、監視情報210の１つまたは複数の情報と、規制を行うための上記監視情報210の閾値、上記監視情報210に影響をあたえるメールクラス、上記メールクラスごとの規制時の処理（または機能）、を含んで構成する。規制情報221には、メールクラスと監視情報210の複数の組み合わせを設定できる。規制情報221により、メールゲートウェイ106は、メールの特徴（すなわちメールクラス）と、そのメールを処理することにより影響が大きい監視情報210を関連づけ、輻輳回避の効果が高い規制処理を選択できる。
【００４１】
また、規制情報221には、規制を行わない場合でも、メールの処理負荷を削減するために、
メールクラスごとに処理を変更できる設定を記述できる。規制情報221の具体的な使用例は、図5から図8で説明する。
【００４２】
キュー250は、メールゲートウェイ106が受信したメールを格納しておく領域である。メールゲートウェイ106は、処理中にメールを失なわないように、キュー250のバックアップをディスク209に保持している。
【００４３】
図3は運用管理端末109の表示例の一例を示す図である。符号300は処理統計情報211を取得するための設定画面であり、符号350は処理統計情報211の処理時間統計を表示した画面である。
【００４４】
設定画面300は、メールゲートウェイ106を構成するステート処理関数のフローを示し、ここではメールの受信処理と送信処理の例を示している。メール受信処理のフロー301の中には、メールゲートウェイ106が通信端末101からの接続を受信する処理（302）、通信端末101との通信の開始時に行うグリーティング処理（303）、通信端末101を認証するための認証情報サーバ110との通信処理（304）、メールの受信処理（305）等のメール受信における一連の処理が処理順に並んでいる。メールゲートウェイ106は、上記ステート処理関数ごと、一連のメール受信処理301、および後述する設定した時間、の3種類の各処理時間統計を取得し、対応する処理統計情報211に格納している。
【００４５】
運用者は、ステート処理関数のどこからどこまでの処理時間統計を表示するかを設定できる。図3の例では、「統計Ａ」は302から305の処理時間統計を示し、「統計Ｂ」は認証情報サーバ110との通信304の処理時間統計を示す。たとえば、運用管理端末109がタブレット等で実現されている場合は、この処理ステートを指でタッチすることにより取得するか否かを設定できる。また、処理統計情報211の実行回数統計や、ロック情報212の各項目についても同様に表示設定することが可能である。
【００４６】
表示画面350は、上記設定した処理時間統計を表示した画面の一例である。図3の例以外にも、ステート処理関数単位の処理時間統計、一連のメール受信処理301の処理時間統計、ロック情報212等の監視情報210の各項目を表示可能である。また、比較したい情報だけを選択して表示することや、ログに残っている過去の処理統計情報211との比較表示も可能である。
【００４７】
運用者は、上記表示した情報群の相関を元に、メールゲートウェイ106のどの処理が遅延しているか、何がメールゲートウェイ106の性能ボトルネックになっているかを突き止めることができる。また、同様にメールゲートウェイ106に上記相関をつきとめる処理フローをを設定することにより、遅延や性能ボトルネックの原因を自動で検出することも可能である。
【００４８】
図4はメールゲートウェイ106の規制のシーケンスの一例を示す図である。メールゲートウェイ106は、メールの受信を規制するメール受信規制、メールの送信を規制するメール送信規制、メールボックス操作等のコマンドを規制するコマンド規制の3種類の規制機能を備える。図4の各規制は、メールゲートウェイ106が監視情報210を監視している処理（以下、監視処理）において、監視情報210のいずれかの閾値超過を検知した（ステップ401）後から開始される。監視処理の詳細については、図8で示す。
【００４９】
ステップ402からステップ409は、メール受信規制のシーケンスを示す。最初に、通信端末101は、メールを送信するためにメールゲートウェイ106へ接続し（ステップ402）、メールゲートウェイ106は受信規制判定1を行う（ステップ403）。メール受信規制判定1（ステップ403）の詳細は図5の502で説明する。ステップ403において、規制と判定した場合、メールゲートウェイ106は通信端末101とのコネクションを切断し（ステップ404）、規制しないと判定した場合は受信処理を続行し、通信端末101からメールを送るためのコマンドおよびメール本文を受信する（ステップ405）。次にメールゲートウェイ106は、ステップ405で取得した情報からメール受信判定2（ステップ406）を行う。メール受信判定2（ステップ406）の詳細は図5の506で説明する。ステップ406において規制と判定した場合、メールゲートウェイ106は通信端末101のユーザにエラー内容がわかる形で規制応答を送信し（ステップ407）、規制しないと判定した場合は受信したメールをキュー250に格納し（ステップ408）、通信端末101へ正常応答409を送信する。
【００５０】
ステップ421からステップ424は、メール送信規制のシーケンスを示す。最初に、メールゲートウェイ106は、ステップ408で格納されたメールをキュー250から取り出す（ステップ421）。次にメールゲートウェイ106は、取り出したメールの内容を参照し、メール送信規制判定を行う（ステップ422）。ステップ422は、取り出したメールのサイズ、処理の対象となる領域のサイズ、送信のために想定する処理負荷から送信規制を行うかを判定する処理であり、詳細は図6で説明する。ステップ422において規制と判定した場合、メールゲートウェイ106は上記メールを一定時間後に取り出されるキュー250に格納し、規制しないと判定した場合、メールゲートウェイ106はメール転送サーバ105へメールを送信するための複数の処理を行い、送信する（ステップ424）。
【００５１】
ステップ441からステップ446の通信は、通信端末101のメールボックス操作のコマンドおよびその応答である。メールボックス操作とは、通信端末101が自分のメールボックスにログインし、メールの取得、メールを既読にする等の状態変更、メールボックスのリスト取得等の操作であり、IMAP、POP、MMSといったプロトコルで実現されることが多い。ステップ441からステップ446では、通信端末101がメールボックスサーバ107からメールを取得するシーケンスにおける、コマンド中継規制の例を示す。
【００５２】
最初に、メールゲートウェイ106は、通信端末101からメールを取得するコマンド要求を受信し（ステップ441）、メールゲートウェイ106はコマンド規制判定を行う（ステップ443）。ステップ443は、メールゲートウェイ106およびメールボックスサーバ107の輻輳を回避するための規制判定処理であり、詳細は図7で説明する。ステップ443において規制と判定した場合、規制応答を送信し（ステップ444）、それ以外であればメールボックス107へメール取得要求を送信する（ステップ445）。次にメールゲートウェイ106は、メールを取得し（ステップ446）、それを通信端末101へ送信する（ステップ447）。
【００５３】
図5はメールゲートウェイ106のメール受信規制判定機能のフローを示す図である。図5では、メールゲートウェイ106が通信端末101からメールを受信するときに、規制するか否かの判定と、規制方法を選択するフローを示す。ステップ502は、図4の403に該当し、ステップ506は図4の406に該当する。図5で示すフローは、メールゲートウェイプログラム204の一部として実行される。
【００５４】
図5のメール受信規制判定には、コネクション切断する方法と規制応答する方法の2種類がある。規制応答は、メールゲートウェイ106通信端末101から受信したメールやメールを送信するコマンドに対する応答に、規制したことを示すメッセージを含めて送信する手段であり、通信端末101を操作しているユーザに対して状況等を伝えることができる。一方、コネクション切断は、メールゲートウェイ106が通信端末101とのコネクションを切断する手段であり、通信端末101からは規制で切断されたかわからない。そのため、メールゲートウェイ106は受信規制においては規制応答を選択する方がよい。ただし、メールゲートウェイ106の状況によっては、輻輳回避のためにコネクション切断を行った方が輻輳回避に効果的である場合がある。図5では、メールゲートウェイ106は以上のような前提条件をもとにフローを実行する。
【００５５】
最初にメールゲートウェイ106は、通信端末101からの接続を受領し（ステップ501）、以下の判定処理を行う（ステップ502）。
【００５６】
（１）通信端末101とのセッション数が閾値を超過しているか
（２）メールゲートウェイ106の受信処理の処理時間統計が、メールの受信処理中に通信端末101側からコネクションを切断する時間（以下、受信失敗時の平均セッション保留時間）を超過しているか
上記の判定条件に該当した場合、メールゲートウェイ106はコネクションを切断し、（ステップ503）し、規制しないと判定した場合は、メール受信へ進む（ステップ504）。（１）は、セッション数が増えてメールゲートウェイ106、無線網102、キャリア設備網103の負荷が増大することを抑止するために行う。（２）については、通信端末101によるメールの再送を削減するために行う。メールゲートウェイ106が輻輳状態に近づくと、メールゲートウェイ106の受信処理時間が長くなる。さらに状況が悪化すると、メールゲートウェイ106が受信処理を完了する前に、通信端末101を扱うユーザが切断してしまう状況が発生し、メールゲートウェイ106の処理継続している状況で、通信端末101が再送を行う場合がある。このとき、メールゲートウェイ106は、通信端末101が再送した分の処理を行うことにより、メールゲートウェイ106の負荷がさらに増大する。そこで、メールゲートウェイ106は、上記メールの再送を削減するため、（２）の判定を行っている。
【００５７】
メールゲートウェイ106はメールを受信後（ステップ504）、そのメールのサイズ、宛先数、メールの解析の対象となるメールのヘッダやメール本文のサイズ、画像や文字の変換が必要な宛先（メール転送サーバ105）であるか、といった情報を取得し、そのメールをメールクラス定義情報222に従ってメールクラスの判定をする（ステップ505）。次にメールゲートウェイ106は、規制情報221に上記判定したメールクラスに該当する項目がないか検索し、規制するか否かの判定を行う（ステップ506）。ステップ506では、メールゲートウェイ106またはメールシステムへの負荷が大きいほど、規制される割合が上がるように設定される。ただし、メールシステムへの負荷が非常に大きいだけで、メール規制される割合をゼロには設定しない。メール規制される割合をゼロにしない理由は、通信端末101から常に送信できないメールを発生させないためである。なお、ステップ505で一つのメールが複数のメールクラスに判定されている場合、メールゲートウェイ106はステップ506において、複数のメールクラスごとに規制するか否かの判定を行う。
【００５８】
ステップ506の規制判定で使用するメールクラスの例としては、メールのサイズ、メールの宛先数、文字変換やヘッダの解析等の解析サイズ等がある。メールのサイズについては、サイズ大きいほど、ディスクI/O（I/0入出力情報213）に対して負荷を増大させる。同様にメールの宛先数についても、メールゲートウェイ106が内部で宛先分コピーして処理している場合、宛先数が大きいほどディスクI/O（I/0入出力情報213）への負荷を増大させる。文字変換、ヘッダの解析といった処理については、その処理を行うプロセスのCPU情報218の負荷増大や、排他処理（ロック情報212）の効率を悪化させる場合や、その処理の処理統計情報211が遅くなる可能性がある。また、メールのサイズとメールの宛先数の積といった複数の情報を組み合わせたメールクラスを設定することも可能である。運用者は、以上のように、メールクラスと相関のある監視情報210を、規制情報221に動的に設定することが可能である。
【００５９】
ステップ506で、規制と判定した場合、メールゲートウェイ106は規制応答を送信し（ステップ507）し、規制しない場合はステップ509へ進む。
【００６０】
ステップ509では、メールゲートウェイ106は、規制情報221を参照して、メールクラスが受信処理を変更する対象であるか判定し、処理を変更する対象である場合ステップ510に進む。ステップ510では、メールゲートウェイ106は、通常の受信処理ではなく、メールゲートウェイ106またはメールシステムへの負荷を削減するために一部を変更した受信処理を実行する。ステップ509、510の例としては、メールのサイズとメールの宛先数の積が閾値を超過しているメールクラスのフローがある。メールゲートウェイ106がメールを宛先分コピーして処理している場合、メールゲートウェイ106は宛先分コピーされたメールを1回でキュー250に格納するが、メールのサイズとメールの宛先数の積が大きくなるにつれて、ディスクI/O（I/0入出力情報213）へ負荷が増大する。そこで、メールのサイズとメールの宛先数の積が閾値を超過しているメールクラスに判定されるメールであれば（ステップ509）、メールゲートウェイ106はディスクI/Oへの負荷を削減する処理に変更する（ステップ510）。負荷を削減する処理とは、メールゲートウェイ106は、宛先分コピーされたメールを複数回で格納するように分割し、1回格納後に一定時間を待ってから次の分の格納を行うといった方法がある。メールゲートウェイ106は、ステップ509またはステップ510を通過後、メールの受信処理を継続する。
【００６１】
図6はメールゲートウェイ106のメール送信規制判定機能のフローを示す図である。図6では、メールゲートウェイ106がメール転送サーバ105へメールを送信するとき（詳細は、図4を参照）に、規制するか否かの判定と、規制方法を選択するフローを示す。図6で示すフローは、メールゲートウェイプログラム204の一部として実行されており、主にメールを送信するプロセス（以下、送信プロセスとする）とメールの送信先に合わせてメールの文字等を変換するプロセス（以下、変換プロセスとする）によって実行されている。これらのプロセスは、監視情報210のCPU情報218として登録されている。
【００６２】
最初にメールゲートウェイ106は、キュー250からメールを取得し（ステップ601）、送信処理に関連した監視情報210が閾値を超過しているか判定する（ステップ603）。ステップ603の監視情報210例として、変換プロセスのCPU情報218、処理時（処理統計情報211）の遅延、排他処理（ロック情報212）があり、これらの監視情報210は、変換プロセスの行う処理と関連している。変換プロセスは、メールのヘッダの変換やメール本文に含まれる文字の変換を行うため、メールのヘッダや本文などの変換の対象なる部分が大きい場合、変換プロセスのCPU情報218が上昇、処理時間（処理統計情報211）の遅延、排他処理（ロック情報212）の効率が悪くなるという特性がある。そこで、メールゲートウェイ106は、上記特性を利用した規制方法をステップ604〜607で行う。
【００６３】
ステップ603において、上記監視情報210が閾値超過していた場合はステップ604に進み、規制しないと判定した場合はステップ607へ進む。ステップ604では、メールゲートウェイ106は、変換プロセスの処理の対象となるメールサイズや解析するサイズを取得し、そのメールをメールクラス定義情報222に従ってメールクラスの判定をする。次にメールゲートウェイ106は、規制情報221に上記判定したメールクラスに該当する項目がないか検索し、規制するか否かの判定を行う（ステップ605）。ステップ605は、ステップ506と同様に、監視情報210への与える負荷が大きいメールほど規制される確率が高く設定される。ステップ605で規制判定した場合は、メールゲートウェイ106は上記メールを一定時間後に取り出されるキュー250に格納し（ステップ606）、規制しないと判定した場合はメールの送信処理を継続する（ステップ607）。ステップ606において、メールゲートウェイ106はメールクラスごとにキュー250に格納しておく時間を変更してもよい。
【００６４】
図7はメールゲートウェイ106のコマンド規制判定機能のフローを示す図である。図7では、メールゲートウェイ106が通信端末101からメールボックス操作の要求コマンドの受信時に（詳細は、図4を参照）に、規制するか否かの判定と、規制方法を選択するフローを示す。図7で示すフローは、メールゲートウェイプログラム204の一部として実行される。
【００６５】
最初にメールゲートウェイ106は、メールボックスサーバ107の応答時間（処理統計情報211）やコマンド処理を行うプロセスのCPU情報218等の監視情報210が閾値超過しているか判定する（ステップ701）。ステップ701において、上記監視情報210が閾値超過していた場合はステップ702に進み、規制しないと判定した場合はステップ707へ進む。ステップ702では、メールゲートウェイ106はメールクラス定義情報222に従ってメールクラスの判定をする。ステップ702で使用するメールクラス定義情報222には、コマンド種別を指標として分類されており、必ずしもメールの特徴等を含まなくてもよい。ステップ703では、メールゲートウェイ106は、上記メールクラスと、規制情報221に従って、そのコマンド処理が上記監視情報201に与える負荷が高いか判定し、規制を行うか判定する。
【００６６】
ステップ703の規制を行うコマンド（メールクラス）の一例として、具体的には負荷の高いメールボックスの検索要求、サイズの大きいメールの取得要求、一度に大量のメールを取得しようとする要求等がある。ステップ703において、規制と判定した場合、メールゲートウェイ106コマンドの応答として、規制応答を送信し（ステップ704）、規制しないと判定した場合はステップ705に進む。ステップ705において、メールゲートウェイ106は、設定時間内の受信要求数が閾値を超過したユーザであるか判定する。ステップ705の例として、メールボックスサーバ107内にあるユーザのメールボックスに新着メールが届いていないか確認する要求（以下、更新確認要求）がある。現在、携帯通信キャリアでは、更新確認要求を頻繁に自動で送信する通信端末101があるため、ステップ705では不必要な更新確認要求に対し、更新はないことを示す応答を送信する。通信端末101の中には、メールボックスに新着メールが到着しているか確認するために頻繁にメールボックスへアクセスするものがある。頻繁なメールボックスへアクセスは、メールゲートウェイ106およびメールボックスサーバ107への負荷が増加する。そこで、ステップ705では、メールボックスアクセスの多いユーザと判定した場合、規制とメールゲートウェイ106からメールボックスサーバ107へコマンドは中継しないで、規制応答、もしくは新着メールがないこと示す応答を作成して送信する（ステップ706）。ステップ705で規制しないと判定した場合は、コマンドの処理を継続する（ステップ707）。
【００６７】
なお、図5から図7で示したフローは規制判定の一例に過ぎない。オペレータがメールゲートウェイ106の設定を変更することにより、各規制の判定条件と、規制処理の内容、各判定の順番を自由に変更することができる。上記設定は、運用者が運用管理端末109で判定条件等を設定するか、メールゲートウェイ106の設定ファイルを変更することにより実現される。上記設定変更により、運用者がメールゲートウェイ106の運用経験によって得られた情報を反映でき、輻輳回避の効果を高めることができる。
【００６８】
図8はメールゲートウェイ106の監視処理機能のフローを示す図である。図8では、メールゲートウェイ106が監視情報210を監視し、監視情報のいずれかが閾値を超過した場合に規制情報221に記述された規制処理を有効化するまでのフローを示す。図8で示すフローは、メールゲートウェイプログラム204の一部として、繰り返し、例えば定期的に実行されている。
【００６９】
最初にメールゲートウェイ106は、監視情報210の各情報をチェック(ステップ801)し、いずれかの情報が閾値超過、または短時間で変化幅が大きい変化があった場合、規制情報221に記述されている規制処理の機能を有効化する(ステップ803)。ステップ803の規制処理の機能とは、メール受信規制、メール送信規制、コマンド規制のいずれかの規制の機能を示し、規制機能の有効化とは上記規制の判定処理（図5〜図7）を開始することを示す。ステップ801において、監視情報210に問題がなかった場合、規制機能を無効化、すなわち規制状態を解除する(ステップ807)。
【００７０】
次に、ステップ804では、メールゲートウェイ106は規制機能の効果を判定し、効果がある場合は規制を継続し(ステップ806)、効果がない場合は運用者または運用管理端末109にアラームをあげる(ステップ805)。
【００７１】
次に、メールゲートウェイ106はステップ811から813において、処理遅延の原因を特定する。メールゲートウェイ106は、メールの受信処理、メールの送信処理、コマンド中継処理等の処理統計情報211の処理時間統計や実行回数統計、ロック情報212を取得し、各処理のいずれかが閾値超過しているか判定する（ステップ811）。ステップ811において、閾値超過している処理があれば、その処理のステート処理関数の処理等情報を参照して相関している部分を抽出し（ステップ812）、遅延原因またはボトルネック部分を運用者へ通知または運用管理端末109へ表示する(ステップ813)。ステップ813により、運用者はメールゲートウェイ106の性能ボトルネック解析、および性能試算を容易化することができる。
【００７２】
次に第二の実施例について説明する。上記相関を抽出するアルゴリズムは、運用者が運用管理端末109で判定条件等を設定するか、メールゲートウェイ106の設定ファイルを変更することにより、変更可能である。
【００７３】
第二の実施例は、第一の実施例が行っている規制機能の代わりに、閾値超過した監視情報210に関連するリソースを増やすことにより輻輳を回避する方法である。第二の実施例は、第一の実施例が行っている規制機能を、リソースを増やす機能に置き換えることにより実現できる。第二の実施例と、第一の実施例との相違点を、図を用いて以下説明する。第二の実施例は、図1に示す構成をとり、図3に示す運用管理端末109の表示機能を持つ。第二の実施例では、図4から図7で示す規制機能は使用しない。
【００７４】
図2において、第一の実施例で規制情報221に格納されている規制機能の代わりに、第二の実施例はリソースを増やす機能を格納する。
【００７５】
図8のステップ803〜807において、規制機能をリソースを増やす機能に置き換える。たとえば、特定のプロセスのCPU情報218の閾値が超過していて（ステップ801）、サーバ全体のCPUには余裕がある場合、メールゲートウェイ106は上記特定プロセスの数を増やす（ステップ803）。また、ディスク装置のＩ/Ｏ入出力情報213が閾値超過している場合であれば（ステップ801）、メールゲートウェイ106は追加のディスク領域をマウントする（ステップ803）。他サーバのＩ/Ｏ入出力情報213が閾値超過している場合であれば（ステップ801）、メールゲートウェイ106をトリガーとして、もう一台上記サーバを起動させる（ステップ803）といったことができる。ステップ804〜807においては、規制機能をリソースを増やす機能に置き換えただけで、フローは同一になる。
【００７６】
なお、実際のメールシステムには、第一と第二の実施例で示したサーバ群以外にも課金の処理を行うサーバ等、様々な処理を行うサーバが存在するが、上記実施例をこれらサーバの輻輳を回避する方法に適用することも可能である。
【符号の説明】
【００７７】
101：通信端末、103：キャリア設備網、105：メール転送サーバ、106：メールゲートウェイ107：メールボックスサーバ、109：運用管理端末。
【図１】
0005965720.tif 000002
【図２】
0005965720.tif 000003
【図３】
0005965720.tif 000004
【図４】
0005965720.tif 000005
【図５】
0005965720.tif 000006
【図６】
0005965720.tif 000007
【図７】
0005965720.tif 000008
【図８】
0005965720.tif 000009