JP5746995B2 - メールシステムにおけるデータストアサーバのデータ格納方法 - Google Patents

メールシステムにおけるデータストアサーバのデータ格納方法 Download PDF

Info

Publication number
JP5746995B2
JP5746995B2 JP2012058136A JP2012058136A JP5746995B2 JP 5746995 B2 JP5746995 B2 JP 5746995B2 JP 2012058136 A JP2012058136 A JP 2012058136A JP 2012058136 A JP2012058136 A JP 2012058136A JP 5746995 B2 JP5746995 B2 JP 5746995B2
Authority
JP
Japan
Prior art keywords
mail
domain
data
order management
management information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012058136A
Other languages
English (en)
Other versions
JP2013192124A (ja
Inventor
衣津美 小柳
衣津美 小柳
木下 雅文
雅文 木下
邦彦 東村
邦彦 東村
直規 原口
直規 原口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012058136A priority Critical patent/JP5746995B2/ja
Priority to US13/718,757 priority patent/US9071563B2/en
Publication of JP2013192124A publication Critical patent/JP2013192124A/ja
Application granted granted Critical
Publication of JP5746995B2 publication Critical patent/JP5746995B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本明細書で開示される主題は、メールシステムにおけるメール配信性能の向上に関する。
携帯電話の電子メールが普及し、携帯通信キャリアが提供しているメールサービスシステム(以下、メールシステム)は、大量のメールトラフィックを処理している。携帯通信キャリアは、携帯電話やインターネットから受信したメールを宛先へ中継する処理を、携帯通信キャリア内に設置するメールゲートウェイとメールを格納するデータストアサーバから成るメール中継システムによって行われる。
メール中継システムは送受信性能を向上させるべく、メールの中継時に以下の処理を行っている。まず、メールゲートウェイが携帯電話からメールを受信し、受信したメールを揮発性メモリに記憶した上で、送信先サーバに中継する。中継に成功した場合、メールゲートウェイは携帯電話にメールを受信したことを示す応答を返した上で、揮発性メモリに記憶したメールを削除して終了する。
上記手順中、送信先サーバへ中継してから一定時間が経過した場合、メールゲートウェイは送信したメールに再送時刻を設定した上で、データストアサーバの揮発性メモリか、不揮発性メモリに記憶する。そして、メールゲートウェイは、携帯電話にメールを受信したことを示す応答を返した後、揮発性メモリに記憶したメールを削除する。次にメールゲートウェイ(受信処理を行ったメールゲートウェイに限定されない)は揮発性メモリに、データストアサーバの揮発性メモリもしくは不揮発性メモリから読み込んだメールを記憶し、メールの再送時刻に合わせて、送信先サーバに中継する。中継に成功した場合、メールゲートウェイは揮発性メモリとデータストアサーバの揮発性メモリもしくは不揮発性メモリに記憶したメールを削除して終了する。
メールなど、大規模なデータを格納するデータストアサーバは、スケーラビリティと処理速度を考慮して、分散インメモリKVS(Key Value Store)を利用した構成が普及している。分散インメモリKVSは、KeyとValueの組を揮発性メモリに記憶するデータストアであり、高いスケーラビリティを実現できるほか、インメモリのため高い処理性能を持つ。インメモリKVSでは、インメモリ環境において心配されるデータのロストは、複数サーバへのデータのレプリケーション(複製)を行うことによって、保証することが可能である。以降、KeyとValueの組を揮発性メモリに記憶する処理を格納、Keyに対応するValueを揮発性メモリから読み込む処理を取得、KeyとValueの組を揮発性メモリから消去する処理を削除と表記する。
メールシステムでは、メールをKVSに格納した順番で取得し、送信する必要があるため、先入れ先出しのキュー構造でメールを保持する必要がある。KVS上にキュー構造を実現する方法として、特許文献1(段落0020)がある。特許文献1では、順序を管理する情報(以下、順序管理情報と表記する)を用いてメールの順序をKVS上で管理する。順序管理情報は、KVSに格納されているメールの送信時刻と、メールのValueに対応するKeyの組を、時系列順に管理したものである。順序管理情報は、全メールゲートウェイで共有する必要があるため、特定のKeyをもつValueとしてKVS上に格納される。
しかしながら、データストアサーバ上に格納されているメール数の増加に比例して、順序管理情報のデータサイズが増加するため、データストアサーバ上に格納されているメール数の増加に比例して、データストアサーバへのメールの格納およびメールの取得処理に時間がかかり、メールゲートウェイのメール配信性能が劣化する。この理由は以下の2つである。
・KVSではデータの一部を取得および格納することができず、順序管理情報を参照および更新する際には、順序管理情報全体を取得および格納する必要がある。そのため、順序管理情報が膨大化すると、これに比例して、メールゲートウェイとKVS間のデータ送受信時間が増加する。
・インメモリ上での動作を保証するため、KVSへデータを格納するたびに複製動作が必要となる。そのため、順序管理情報が膨大化すると、これに比例して、複製動作の処理時間が増加する。
順序管理情報の膨大化を防ぐ方法として、順序管理情報を分割して管理する方法が挙げられる。
順序管理情報を分割して管理する方法として、リスト構造を用いて管理する方法がある。リスト構造は、リスト内の各要素をポインタによって連結したものであり、KVS上でメールキューを実現する際には、各要素の中にメールの送信時刻と、メールへのKeyの組を1つずつ格納する形となる。つまり、順序管理情報をメール1通毎に分割して管理する形となる。これにより、メールの格納処理や取得処理を行う際に、必要のない順序管理情報を取得することなく処理を行うことができるため、配信性能の向上を見込むことができる。
非特許文献1では、順序管理情報を管理する下位テーブルと、下位テーブルを管理する上位テーブルの2種類のテーブルを用いて全てのメールを階層的に管理する。下位テーブルには一定数のメールの順序管理情報が格納される。つまり、順序管理情報を一定数毎に分割して管理する形となる。これにより、メールの格納処理や取得処理を行う際に、必要のない順序管理情報を取得することなく処理を行うことができる。
特開2002−132801号公報
Yuan Wang, Han Chen, Bin Wang, Jing Min Xu, Hui Lei. "A Scalable Queuing Service Based on an In-Memory Data Grid". [online]. 10-12 November 2010, IEEE Xplore DIGITAL LIBRARY, [2012年3月8日検索]. インターネット <URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5704322>.
しかし、上記の順序管理情報を分割して管理する方法では、以下に示すメール中継システムの特徴に適した形とは言えず、メールゲートウェイのメール配信性能を改善することができない。
・送信可能なメールは複数まとめて、送信先サーバへ一括送信することで効率化を行う
・メール中継サーバのN分散化の観点から、送信時刻までに長時間を要するメールの取得は行わない
仮にリスト構造を用いて管理する方法を実現すると、1通毎に順序管理情報が分割されているため、送信可能なメール数分の順序管理情報の取得が必要となり、順序管理情報へのアクセス回数過多が原因となり、メール配信性能が劣化する。
また、仮に非特許文献1の方法を実現すると、一定数毎に順序管理情報が分割されているため、1つの順序管理情報内に送信時刻間近なメールから送信時刻まで長時間要するメールが含まれる可能性があり、取得が行えないメールの順序管理情報を取得することによる、メールゲートウェイとKVS間の順序管理情報の転送データ量の増加が原因となり、メール配信性能が劣化する。
本明細書で開示されるのは、順序管理情報を分割して管理する際に、メール中継システムの特徴を考慮した順序管理情報の分割および管理を行うことで、メールゲートウェイのメール配信性能を向上させる方法と、それを用いたメール中継システムである。
開示されるより具体的な態様は、メールサーバ(またはメールゲートウェイという)が、メール送信装置から受信したメールをデータストアサーバ上に格納する際に、格納されているメールの順序、およびメールサーバがメールを送信する先である送信先サーバに該当メールを送信する時刻を記載した順序管理情報を参照するメールサーバ(またはメールゲートウェイ)であって、上記順序管理情報の管理方法は、順序管理情報に記載された、1通のメールに対する、メール本体をValueとした際のKeyおよび該当メールを送信先サーバに送信する時刻の組を、1エントリとし、前記順序管理情報を分割するにあたり、分割された順序管理情報内に含まれているエントリ数を規定以下とすること、および、分割された順序管理情報内に含まれている各エントリの、該当メールを送信先サーバに送信する時刻において、最も早いものと最も遅いものの差を規定以下とすること、という2つの条件を満たすことを特徴とする。
開示によれば、高い配信性能を備えるメール中継システムを実現できる。
システム構成を例示する図である。 各実施例を適用したメールゲートウェイ106の構成を例示する図である。 各実施例を適用したデータストアサーバ107の構成を例示する図である。 順序管理情報312の内容を例示する図である。 順序管理情報312に含まれる各データとメールデータ313の関係を例示する図である。 メールゲートウェイ106のメール受信シーケンスを例示する図である。 メールゲートウェイ106のメール送信シーケンスを例示する図である。 送信先サーバ105へメールが送信できない状態における、メールゲートウェイ106のメール送信シーケンスを例示する図である。 メールゲートウェイ106のデータストアサーバI/F部213のメール格納処理フローを例示する図である。 メールゲートウェイ106のデータストアサーバI/F部213のメール取得処理フローを例示する図である。 メールゲートウェイ106のメール送信および削除処理フローを例示する図である。
以下、本発明の実施例を添付図面に基づいて説明する。
図1は、本発明のシステム構成の一例である。
携帯端末101は、モバイルネットワーク102を介してキャリア設備網103と接続している。モバイルネットワーク102は携帯端末101とキャリア設備網103を接続している、無線ネットワークである。キャリア設備網103は、モバイルネットワーク102、インターネット104、メールゲートウェイ106、データストアサーバ107を接続しているネットワークである。
送信先サーバ105は、インターネット104を介してメールゲートウェイ106とメールの送受信を行う。メールゲートウェイ106は、キャリア設備網103に接続されており、携帯端末101がキャリア設備網103へ送信したメールを受信し、送信先サーバ105へメールを中継する。データストアサーバ107はキャリア設備網103に接続されており、メールゲートウェイ106から送られたメールを保持する。
図2は、メールゲートウェイ106を実現する情報処理装置のハードウェア構成である。
メールゲートウェイ106を実現する情報処理装置は、ネットワークI/F202と、プロセッサ203と、揮発性メモリ204と、不揮発性メモリ205と、これらを接続するバスなどの内部通信線と、を含んで構成される。メールゲートウェイ106はネットワークI/F202を介してキャリア設備網103に接続している。
揮発性メモリ204は、メールゲートウェイプログラム206を格納しており、また、データを格納する揮発性記憶部207を備えている。
メールゲートウェイプログラム206は、メール中継部212と、データストアサーバI/F部213と、を含んで構成される。メール中継部212は、メールゲートウェイ106が携帯端末101からメールを受信し、そのまま送信先サーバ105へ中継する処理と、データストアサーバ107から取得されたメールを、送信先サーバ105へ中継する処理を実現する各種制御プログラムが記録され、プロセッサ203により実行される。
データストアサーバI/F部213は、送信先サーバ105へのメール中継が失敗した際の、受信したメールをデータストアサーバ107へ格納する処理と、データストアサーバ107からメールを取得する処理を実現する各種制御プログラムが記録され、プロセッサ203により実行される。 揮発性記憶部207には、メールゲートウェイプログラム206が管理するデータを格納する。
不揮発性メモリ205は、不揮発性記憶部208を備えている。不揮発性記憶部208には、メールゲートウェイプログラム206が管理するデータを格納する。
メール中継部212は、携帯端末101とメールゲートウェイ106、およびメールゲートウェイ106と送信先サーバ105の間で生じる処理を担当する。
データストアサーバI/F部213は、メールゲートウェイ106とデータストアサーバ107間で生じる処理を担当する。
図3は、データストアサーバ107を実現する情報処理装置のハードウェア構成である。
データストアサーバ107を実現する情報処理装置は、ネットワークI/F302と、プロセッサ303と、揮発性メモリ304と、不揮発性メモリ305と、これらを接続するバスなどの内部通信線と、を含んで構成される。データストアサーバ107はネットワークI/F302を介してキャリア設備網103に接続している。
揮発性メモリ304は、データストアサーバプログラム306を格納しており、また、データを格納する揮発性記憶部307を備えている。データストアサーバプログラム306には、データストアサーバ107がメールゲートウェイ106から受信したKeyとValueの組を、揮発性記憶部307へ格納する処理、もしくはデータストアサーバ107がメールゲートウェイ106から受信したKeyに対応したValueを返す処理、あるいはデータストアサーバ107がメールゲートウェイ106から受信したKeyに対応したValueを削除する処理を実現する各種制御プログラムが記録され、プロセッサ303により実行される。
揮発性記憶部307には、データストアサーバプログラム306が管理するデータを格納する。
不揮発性メモリ305は、不揮発性記憶部308を備えている。不揮発性記憶部308には、データストアサーバプログラム306が管理するデータを格納する。
メールデータ313は、データストアサーバプログラム306が格納したメールのデータであり、順序管理情報312はメールデータ313を送信時刻順に管理するための情報である。順序管理情報312の内容に関しては、後述する。
図4は順序管理情報312の構成を例示する図である。本実施例では、全メールは宛先アドレスのドメイン毎にグループ分けされる。本実施例ではさらに、宛先アドレスのドメイン毎に分けられたメールは、宛先アドレスのHash値によって、グループ分けされる。グループ分けに用いるHash関数は、MD5やSHA−1など、均等にグループ分け可能である一般的なHash関数であれば、何を用いても良い。
順序管理情報312は、総合管理部402と、ドメイン別管理部403と、ドメイン別グループ始端部404と、ドメイン別グループ終端部405と、メールデータ順序管理部406と、を含んで構成される。本実施例では、ドメイン別管理部403と、ドメイン別グループ始端部404と、ドメイン別グループ終端部405と、メールデータ順序管理部406は、データストアサーバ107上に複数個存在するため、ドメイン別管理部403aのようにアルファベットを添え字として表記したものは特定のデータ単体を示し、総称する場合は、添え字をつけずに表記する。
総合管理部402は、データサイズ412と、キューサイズ413と、各ドメイン別管理部へのKey414と、各ドメイン別管理部のデータサイズ415と、各ドメイン別管理部のキューサイズ416と、を含んで構成される。総合管理部402は、データストアサーバ107に格納されているメールおよび関連情報を一括管理するデータである。
データサイズ412は、データストアサーバ107に格納されている全メールの総バイト数である。この値は、各ドメイン別管理部のデータサイズ415の総和で表すことができる。この値が、データストアサーバ107に格納可能なバイト数に達した場合には、新規メールの格納が規制される。ここで、データストアサーバ107に格納可能なバイト数は、メールゲートウェイ106のメールゲートウェイプログラム206に規定値として与えても良いし、データストアサーバ107の揮発性記憶部307上に管理し、参照しても良い。
キューサイズ413は、データストアサーバ107に格納されている全メールの数である。この値は、各ドメイン別管理部のキューサイズ416の総和で表すことができる。この値が、データストアサーバ107に格納可能な全メール数に達した場合には、新規メールの格納が規制される。ここで、データストアサーバ107に格納可能な全メール数は、メールゲートウェイ106のメールゲートウェイプログラム206に規定値として与えても良いし、データストアサーバ107の揮発性記憶部307上に管理し、参照しても良い。
各ドメイン別管理部へのKey414は、単体のドメイン別管理部403aをValueとするKeyが、全ドメイン別管理部403分格納される。
各ドメイン別管理部のデータサイズ415は、単体のドメイン別管理部403aが管理する全メールの総バイト数が、ドメイン別管理部403aに一意につけられるID名とともに全ドメイン別管理部403分格納される。
各ドメイン別管理部のキューサイズ416は、単体のドメイン別管理部403aが管理する全メールの数が、ドメイン別管理部403aに一意につけられるID名とともに全ドメイン別管理部403分格納される。
ドメイン別管理部403は、データサイズ422と、キューサイズ423と、秒間送信数424と、受信規制フラグ425と、送信規制フラグ426と、コネクション数427と、各ドメイン別グループ始端部へのKey428と、各ドメイン別グループ終端部へのKey429と、各メールデータ順序管理部のデータサイズ430と、各メールデータ順序管理部のキューサイズ431と、を含んで構成される。
データサイズ422は、データストアサーバ107に格納されている全メールのうち、各ドメイン別管理部403の管理下にあるものの総バイト数である。この値は、各メールデータ順序管理部のデータサイズ430の総和で表すことができる。この値が、データストアサーバ107に格納可能な各ドメインに設定されたバイト数に達した場合には、新規メールの格納が規制される。ここで、データストアサーバ107に格納可能な各ドメインに設定されたバイト数は、メールゲートウェイ106のメールゲートウェイプログラム206に規定値として与えても良いし、データストアサーバ107の揮発性記憶部307上に管理し、参照しても良い。
キューサイズ423は、データストアサーバ107に格納されている全メールのうち、各ドメイン別管理部403の管理下にあるものの数である。この値は、各メールデータ順序管理部のキューサイズ431の総和で表すことができる。この値が、データストアサーバ107に格納可能な各ドメインに設定されたメール数に達した場合には、新規メールの格納が規制される。ここで、データストアサーバ107に格納可能な各ドメインに設定されたメール数は、メールゲートウェイ106のメールゲートウェイプログラム206に規定値として与えても良いし、データストアサーバ107の揮発性記憶部307上に管理し、参照しても良い。
秒間送信数424は、データストアサーバ107に格納されている全メールのうち、各ドメイン別管理部403の管理下にあるものを、1秒間に送信している件数および最後に送信した時刻の2つの値で表される。この値は、特定の宛先へのメール送信が相次いだ場合に、送信規制を行う(スロットリング)ために、必要とされる。この値が、各ドメインの規定の秒間送信数に達した場合には、再送メールの送信が規制される。ここで、各ドメインの規定の秒間送信数は、メールゲートウェイ106のメールゲートウェイプログラム206に規定値として与えても良いし、データストアサーバ107の揮発性記憶部307上に管理し、参照しても良い。
受信規制フラグ425は、受信したメールが、宛先アドレスによって一意に定められた、該当のドメイン別管理部403aの管理下のデータに、格納可能であるかどうかを示す。受信フラグ425がセットされている場合には、該当のドメイン別管理部403aの管理下となる受信メールの格納は失敗する。
送信規制フラグ426は、データストアサーバ107に格納されている全メールのうち、各ドメイン別管理部403の管理下にあるものが、送信可能であるかどうかを示す。
コネクション数427は、データストアサーバ107に格納されている全メールのうち、各ドメイン別管理部403の管理下にあるものに関して、メールゲートウェイサーバ107と送信先サーバ105間にいくつのコネクションを張って送信されているかを示す。この値が、各ドメインの規定のコネクション数に達した場合には、再送メールの送信が規制される。ここで、各ドメインの規定の秒間送信数は、メールゲートウェイ106のメールゲートウェイプログラム206に規定値として与えても良いし、データストアサーバ107の揮発性記憶部307上に管理し、参照しても良い。
各ドメイン別グループ始端部へのKey428は、各ドメイン別グループ始端部404をValueとしたときのKeyを保持する。
各ドメイン別グループ終端部へのKey429は、各ドメイン別グループ終端部405をValueとしたときのKeyを保持する。
各メールデータ順序管理部のデータサイズ430は、該当ドメインが管理している各グループのメールデータ順序管理部406内に格納されているメールのデータサイズが、メールデータ順序管理部406に一意につけられるID名とともに全メールデータ順序管理部406分格納される。
各メールデータ順序管理部のキューサイズ431は、該当ドメインが管理している各グループのメールデータ順序管理部406内に格納されているメール数が、メールデータ順序管理部406に一意につけられるID名とともに全メールデータ順序管理部406分格納される。
ドメイン別グループ始端部404は、メールデータ順序管理部へのKey442と、送信規制フラグ443と、送信中フラグ444と、を含んで構成される。
メールデータ順序管理部へのKey442は、該当のドメイン別グループが管理しているメール群の中で、最も送信時刻が早いメール群を管理しているメールデータ順序管理部406へのKeyを保持する。
送信規制フラグ443は、該当のドメイン別グループに管理されているメールを、送信先サーバ105へ送信することができるか否かを示す。この値は、特定の宛先へのメール送信が相次いだ場合にセットされる。
送信中フラグ444は、該当のドメイン別グループに管理されているメールが、メールゲートウェイ106によって、送信先サーバ105へ送信されているか否かを示す。該当ドメイン別グループに管理されているメールがあるメールゲートウェイ106によって送信されている最中に、メールゲートウェイ106bが該当ドメイン別グループに管理されているメールを送信すると、順序逆転や二重配信を発生させる原因となるため、送信中フラグ444を設けることで、これを防ぐ。送信中フラグ444がセットされている場合には、あるメールゲートウェイ106によって該当ドメイン別グループに管理されているメールが送信されているため、該当ドメイン別グループに管理されているメールの送信は行わない。また、該当ドメイン別グループに管理されているメールを送信する際には、送信前に送信中フラグ444の設定を行い、送信が終了しだい送信中フラグ444の解除を行う。
ドメイン別グループ終端部405は、メールデータ順序管理部へのKey452と、フィードバック値453と、受信規制フラグ454と、メールデータ順序管理部の格納メールデータ数閾値455と、メールデータ順序管理部の格納メールデータ時刻閾値456と、を含んで構成される。
メールデータ順序管理部へのKey452は、該当のドメイン別グループが管理しているメール群の中で、最も送信時刻が遅いメール群を管理しているメールデータ順序管理部406へのKeyを保持する。
フィードバック値453は、総合管理部402およびドメイン別管理部403内に格納されている管理情報を更新する頻度を表す。フィードバック値は1以上の整数値をとり、この値が小さければ更新頻度が高く、この値が大きければ更新頻度が低下する。この値は、固定としても良いし、データストアサーバ107に格納されているメール数によって動的に変更しても良い。
受信規制フラグ454は、現在該当のドメイン別グループのメール格納が規制されているか否かを示す。ここで、この受信規制フラグが有効となるのは、新規に受信したメールを格納する際であり、再送に失敗して再格納となったメールを格納する際には、このフラグは無効である。このフラグがセットされている場合には、メールの格納は失敗し、携帯端末101にはエラー応答が返される。受信規制フラグは454が設定されるのは、全メール格納数が規定数を上回っている場合、該当ドメインのメール格納数が規定数を上回っている場合等が挙げられる。
メールデータ順序管理部の格納メールデータ数閾値455は、メールデータ順序管理部406内に格納できるメール数の上限値を示す。この値は固定としても良いし、データストアサーバ107の揮発性記憶部307上に管理パラメータを一括管理する情報を設置し、それらを参照し、定期的に変更しても良い。
メールデータ順序管理部の格納メールデータ時刻閾値456は、メールデータ順序管理部406内に格納できるメールの送信時刻の差の上限値を示す。つまり、メールデータ順序管理部406内に格納されているメールのうち、最も送信時刻が早いものと、最も送信時刻が遅いものの差が、メールデータ順序管理部の格納メールデータ時刻閾値456以内でなければならない。この値は固定としても良いし、データストアサーバ107の揮発性記憶部307上に管理パラメータを一括管理する情報を設置し、それらを参照し、定期的に変更しても良い。
メールデータ順序管理部406は、各メールデータへのKey462と、各メールデータの送信時刻463と、格納メールデータ数464と、格納メールデータのデータサイズ465と、次のメールデータ順序管理部へのKey466と、を含んで構成される。
各メールデータへのKey462は、該当のメールデータ順序管理部406が管理しているメールの、メール本体をValueとしたときのKeyが格納される。
各メールデータの送信時刻463は、該当のメールデータ順序管理部406が管理しているメールの送信時刻が格納される。
格納メールデータ数464は、該当のメールデータ順序管理部406が管理しているメール数が格納される。
格納メールデータのデータサイズ465は、該当のメールデータ順序管理部406が管理しているメールの総データサイズが格納される。
次のメールデータ順序管理部へのKey466は、該当のメールデータ順序管理部406aが管理しているメール群の次に送信されるメール群を格納しているメールデータ順序管理部406bへのKeyが格納される。次に送信されるメール群を格納しているメールデータ順序管理部406bがない場合には、NULLが格納される。
図5は、データストアサーバ107内の揮発性記憶部307上に格納される、図4で示した順序管理情報312に含まれる各データとメールデータ313の関係図を例示した図である。順序管理情報312を構成する各データは、該当データ内に含まれている他のデータへのKeyを参照することによって、参照先である他データを得ることができるため、該当データと参照先データとの間にリレーションを持つことになる。図5では、該当データが保持しているKeyを参照して得られるデータを表すために、該当Keyを参照することで得られるデータを、参照元から参照先への矢印で表現している。なお、図5では全データの構成の説明を重視するため、各データ内には他のデータへのKeyを図示している。
総合管理部402は、各ドメイン別管理部へのKey414を保持しており、このKeyを参照することでドメイン別管理部403を取得することができる。
ドメイン別管理部403は、ドメイン別グループ始端部へのKey428およびドメイン別グループ終端部へのKey429を保持しており、これらのKeyを参照することでドメイン別グループ始端部404とドメイン別グループ終端部405を取得することができる。
ドメイン別グループ始端部404は、メールデータ順序管理部へのKey442を保持しており、ドメイン別グループ終端部405は、メールデータ順序管理部へのKey452を保持している。ドメイン別グループ始端部404、ドメイン別グループ終端部405は、ともに保持しているKeyを参照することでメールデータ順序管理部406を取得することができる。
メールデータ順序管理部406は、次のメールデータ順序管理部へのKey466を保持しており、このKeyを参照することで次のメールデータ順序管理部を取得することができる。また、メールデータ順序管理部406は、各メールデータへのKey462を保持しており、これらのKeyを参照することでメールデータ313を取得することができる。 順序管理情報312の総合管理部402はドメイン別管理部403へのKeyを持ち、ドメイン別管理部403はドメイン別グループ始端部404およびドメイン別グループ終端部405へのKeyを持つため、総合管理部402、ドメイン別管理部403、ドメイン別グループ始端部404およびドメイン別グループ終端部405は階層構造をとることとなる。また、ドメイン別グループ始端部404およびドメイン別グループ終端部405はメールデータ順序管理部406へのKeyを持ち、メールデータ順序管理部406は次のメールデータ順序管理部へのKeyを持っており、メールデータ順序管理部が連結される形となるため、ドメイン別グループ始端部404、ドメイン別グループ終端部405およびメールデータ順序管理部406は連結リスト構造をとることとなる。
図6、図7、図8は、メールゲートウェイ106がメールを受信する際、および送信する際のシーケンスを例示する図である。本発明では、データストアサーバ107へのメールの格納および取得、削除動作に特化したシーケンスを説明するため、データストアサーバ107へのメール格納が発生しない場合、つまり送信先サーバ105への中継が成功した場合のシーケンスに関しては、今回取り上げない。
メールの受信、および送信する際のシーケンスでは、メールゲートウェイ106のデータストアサーバI/F部213とデータストアサーバ107間でメールや各種要求および通知を交換するが、実際の交換データはヘッダ情報やデータ本体を示すペイロードなどを含む形となる。以降の説明では、メールの受信および送信処理に特化したシーケンスを説明するために、実際の交換データではなく、ペイロード部分となるメールおよび各種要求、各種通知と表記する。これは、携帯端末101とメールゲートウェイ106のメール中継部212間で交換するメールおよび各種通知も同様である。また、メールをデータストアサーバ107の揮発性記憶部307へ格納もしくは取得、削除する際には、メールゲートウェイ106のデータストアサーバI/F部213とデータストアサーバ107間で順序管理情報312の交換が何度か行われるが、メールの受信および送信処理に特化したシーケンスを説明するため、順序管理情報312の交換も含め、メールの格納もしくは取得、削除に要するやりとりは1リクエスト1レスポンスの形で表現する。
図6は送信先サーバ105へメールが送信できない状態が一定期間継続した場合の、メールゲートウェイ106のメール受信シーケンスを例示する図である。送信先サーバ105へメールが送信できない状態が継続する原因は、送信先サーバ105への障害中または輻輳中である、またはメールゲートウェイ106と送信先サーバ105間のネットワーク不通などがある。上記の場合、メールゲートウェイ106は、送信に失敗した送信先サーバ105向けのメールは全てエラーとなり、送信先サーバ105へ送信可能になるまでメールを保持しなければならない。
最初に、携帯端末101は、メールをメールゲートウェイ106へ送信する(ステップ501)。そして、メールゲートウェイ106のメール中継部212は、メールを受信し(ステップ502)、揮発性記憶部207にメールを格納する(ステップ503)。
次に、メールゲートウェイ106のメール中継部212は、送信先サーバ105へメールを送信する(ステップ504)。
メールを送信後、応答が受信できない時間がタイムアウト値を超えた時点で、メール中継部212は、メールの送信時刻を更新する(ステップ505)。この送信時刻は、タイムアウト値を越えた時点での送信時刻に、規定の再送時刻を加えた時刻となる。
次に、メールゲートウェイのデータストアサーバI/F部213は、メール格納要求およびメールをデータストアサーバ107へ送信する(ステップ506)。
次に、データストアサーバ107のデータストアプログラム306はメール格納要求およびメールを受信し(ステップ507)、揮発性メモリにメールを格納する(ステップ508)。図6には記述していないが、ステップ506において格納に失敗した場合、データストアプログラム306はメールゲートウェイ106へメール格納失敗通知を返し、メールゲートウェイ106は携帯端末101へメール送信失敗通知を返す。
次に、データストアサーバ107のデータストアプログラム306は、メール格納完了通知をメールゲートウェイ106に送信し(ステップ509)、メールゲートウェイ106のデータストアサーバI/F部213はメール格納完了通知を受信する(ステップ510)。
次に、メールゲートウェイ106のメール中継部212はメール送信完了通知を携帯端末101に送信し(ステップ511)、携帯端末101がメール送信完了通知を受信する(ステップ512)。ステップ509の後、メールゲートウェイ106のメール中継部212は、揮発性記憶部307からメールを削除する。
図7は再送メールの送信シーケンスを例示する図である。
最初に、メールゲートウェイ106のデータストアサーバI/F部213は、メール取得要求をデータストアサーバ107へ送信する(ステップ601)。そして、データストアサーバ107のデータストアプログラム306は、メール取得要求を受信し(ステップ602)、データストアサーバ107のデータストアプログラム306は、取得完了通知およびメールをメールゲートウェイ106へ送信する(ステップ603)。
次に、メールゲートウェイ106のデータストアサーバI/F部213は取得完了通知およびメールを受信し(ステップ604)、揮発性記憶部207へ受信したメールを格納した後(ステップ605)、メールゲートウェイ106のメール中継部212は、取得したメールの送信時刻に、送信先サーバ105へメールを送信する(ステップ606)。
次に、送信先サーバ105がメールゲートウェイ106から送信されたメールを受信し(ステップ607)、メールゲートウェイ106に対してメール送信完了通知を返す(ステップ608)。
次に、メールゲートウェイ106のメール中継部212は、送信先サーバ105からのメール送信完了通知を受信し(ステップ609)、揮発性記憶部207からメールを削除する(ステップ610)。そして、メールゲートウェイ106のデータストアサーバI/F部213は、データストアサーバ107へメール削除要求を送信する(ステップ612)。 次に、データストアサーバ107のデータストアプログラム306は、メール削除要求を受信し(ステップ612)、揮発性記憶部307からメールを削除し(ステップ613)、メールゲートウェイ106へ削除完了通知を送信する(ステップ614)。
最後に、メールゲートウェイ106のデータストアサーバI/F部213は、データストアサーバ107から送信された削除完了通知を受信する(ステップ615)。
図8は、送信先サーバ105へメールが送信できない状態が一定期間継続した場合の、メールゲートウェイ106の再送メール送信シーケンスを例示する図である。
最初に、メールゲートウェイ106のデータストアサーバI/F部213は、メール取得要求をデータストアサーバ107へ送信する(ステップ701)。そして、データストアサーバ107のデータストアプログラム306は、メール取得要求を受信し(ステップ702)、データストアサーバ107のデータストアプログラム306は、取得完了通知およびメールをメールゲートウェイ106へ送信する(ステップ703)。
次に、メールゲートウェイ106のデータストアサーバI/F部213は取得完了通知およびメールを受信し(ステップ704)、揮発性記憶部207へ受信したメールを格納した後(ステップ705)、メールゲートウェイ106のメール中継部212は、取得したメールの送信時刻に、送信先サーバ105へメールを送信する(ステップ706)。
メールを送信後、応答が受信できない時間がタイムアウト値を超えた時点で、メール中継部212は、メールの送信時刻を更新する(ステップ707)。この送信時刻は、タイムアウト値を越えた時点での送信時刻に、規定の再送時刻を加えた時刻となる。
次に、メールゲートウェイのデータストアサーバI/F部213は、メール格納要求およびメールをデータストアサーバ107へ送信する(ステップ708)。ここで送信するメールは、ステップ707において送信時刻を更新したメールである。
次に、データストアサーバ107のデータストアプログラム306はメール格納要求およびメールを受信し(ステップ709)、揮発性メモリにメールを格納する(ステップ710)。
次に、データストアサーバ107のデータストアプログラム306は、メール格納完了通知をメールゲートウェイ106に送信し(ステップ711)、メールゲートウェイ106のデータストアサーバI/F部213はメール格納完了通知を受信する(ステップ712)。
次に、メールゲートウェイ106のメール中継部212は、揮発性記憶部207からメールを削除し(ステップ713)、メールゲートウェイ106のデータストアサーバI/F部213は、データストアサーバ107へメール削除要求を送信する(ステップ714)。ここで、削除要求を行ったメールは、送信時刻を更新する前のメールである。現時点では送信時刻を更新する前のメール、送信時刻を更新した後のメールが1通ずつデータストアサーバ107の揮発性記憶部307に格納されているため、古いほうのメールを削除する必要がある。
次に、データストアサーバ107のデータストアプログラム306は、メール削除要求を受信し(ステップ715)、揮発性記憶部307からメールを削除し(ステップ716)、メールゲートウェイ106へ削除完了通知を送信する(ステップ717)。
最後に、メールゲートウェイ106のデータストアサーバI/F部213は、データストアサーバ107から送信された削除完了通知を受信する(ステップ718)。
図9はメールゲートウェイ106のデータストアサーバI/F部213のメール格納処理フローを示す図である。この処理フローは、図6に示したシーケンス図のステップ506からステップ510、および図8に示したシーケンス図のステップ708からステップ712までの間に発生する、メールゲートウェイ106のデータストアサーバI/F部213の動作を例示したものである。
最初に、データストアサーバI/F部213はドメイン別グループ終端部405をデータストアサーバ107から取得する(ステップ801)。ここで、ドメイン別グループ終端部405の取得に関して、格納するメールの宛先アドレスを元に、該当のドメイン別部ループ終端部405aをValueとするKeyを直接指定して取得してもよいし、総合管理部402を取得し、総合管理部402内の各ドメイン別管理部へのKey414を元に該当のドメイン別管理部403aを取得し、取得したドメイン管理部403a内の各ドメイン別グループ終端部へのKey429を元に、該当のドメイン別グループ終端部405aをValueとするKeyを取得してもよい。
前者の方法では、ドメイン別グループ終端部405の取得がメールゲートウェイ106のデータストアサーバI/F部213によって支配される形となるため、取得ルールの変更はメールゲートウェイプログラム206の変更でしか行えない。しかしながら、直接該当のドメイン別グループ終端部405を取得することができるため、メールゲートウェイ106とデータストアサーバ107間の通信処理を減らすことができる。
後者の方法では、ドメイン別グループ終端部405の取得が総合管理部402もしくはドメイン管理部403によって支配される形となるため、取得ルールの変更はこれらの順序管理情報の変更で行うことができ、柔軟であるといえる。しかしながら、総合管理部402およびドメイン別管理部403の取得が必要なため、メールゲートウェイ106とデータストアサーバ107間の通信処理が増加する。
これら2つの方法は、基本は後者の方法をとり、一定時間の間ドメイン別グループ終端部405の情報をキャッシュとして、揮発性記憶部207に保持しておき、キャッシュにデータが存在する場合に前者の方法をとれば、柔軟さと低い通信処理コストを両立することも可能である。
次に、格納するメールが新規かつ、取得したドメイン別グループの終端部405a内の受信規制フラグ454がセットされていた場合には処理を終了し、そうでない場合はステップ803へ進む(ステップ802)。受信規制フラグ454は、データストアサーバ107内に保持されているメールが規定以上の場合や、データストアサーバ107に格納されている全メールのうち、各ドメイン別管理部403の管理下にあるものが規定以上の場合などのときに設定される。この受信規制フラグは新規メールに対して有効であり、再送扱いとなって格納されるメールの場合は、この受信規制は行われない。
次に、取得したドメイン別グループの終端部405内のメールデータ順序管理部へのKey452を用いて、メールデータ順序管理部406を取得し(ステップ803)、取得したメールデータ順序管理部406へメールを格納できるかどうかを判定し(ステップ804)、格納条件を満たさない場合にはステップ806へ進み、格納条件を満たす場合には805へ進む。
上記格納条件は、取得したドメイン別グループの終端部405内のメールデータ順序管理部の格納メールデータ数閾値455およびメールデータ順序格納部の格納メールデータ時間閾値456を元に設定され、以下の2つを満たす場合に、格納条件を満たしているとする。
・取得したメールデータ順序管理部406の格納メールデータ数464が、メールデータ順序管理部の格納メールデータ数閾値455の示す値未満である。
・取得したメールデータ順序管理部406の各メールデータの送信時刻463のうち、もっとも早い送信時刻と、格納するメールの送信時刻の差が、メールデータ順序管理部の格納メールデータ時間閾値456の示す値未満である。
これらの条件を設けることによって、各順序管理部406内に格納されるメール群を、送信先サーバ105へ一括送信可能な形でまとめることが可能となる。
ステップ806において、データストアサーバI/F部213は、新しいメールデータ順序管理情報部406を作成し、データストアサーバ107へ新しいメールデータ順序管理情報部406を格納する。この処理によって、順序管理情報406を上記2つの条件により、メールの送信単位毎に分割されることとなる。また、取得したドメイン別グループの終端部405内のメールデータ順序管理部へのKey452を新しいメールデータ順序管理情報部406をValueとするKeyに変更し、変更したドメイン別グループの終端部405をデータストアサーバ107へ格納する。
ステップ805において、データストアサーバI/F部213は、取得したメールデータ順序管理部406内の各メールデータへのKey406へ、格納するメールをValueとするKeyを格納する。合わせて、取得したメールデータ順序管理部406内の各メールデータの送信時刻463へ、格納するメールの送信時刻を追加し、取得したメールデータ順序管理部406内の格納メールデータ数464を1増加させ、取得したメールデータ順序管理部406内の格納メールデータのデータサイズ465へ、格納するメールのデータサイズを加算する処理を行う。
ステップ807において、データストアサーバI/F部213は、データストアサーバ107の揮発性記憶部307に格納されているメールデータ順序管理部406が、ステップ801において取得したものと一致しているかどうかを調査する。一致している場合にはステップ808へ進み、一致していない場合には、このまま格納するとデータの不整合が発生するため、ステップ801へ進む。この処理はCAS(Compare And Swap)操作と呼ばれるものであり、データストアサーバ107の揮発性記憶部307に格納されるデータのアトミックな操作を保証するものである。CAS操作では、格納を行うデータが、該当データの取得時から更新されていないことを確認したうえで、格納処理を行う。CAS操作は、前述のステップ806でも利用する必要があり、ステップ806においてアトミックな操作が失敗した場合には、同様にステップ801へ進む。CAS操作は、データストアサーバ107の揮発性記憶部307に既に格納されているデータを更新する際に必ず必要とされ、新しく追加するデータの格納や、データの削除の際には必要とされない。
メールデータ順序管理部406の格納にアトミックな操作が成功した場合には、メールデータ順序管理部406は正常にデータストアサーバ107の揮発性記憶部307へ格納される(ステップ808)。
次に、データストアサーバI/F部213は、格納するメールをValueとし、ステップ805においてメールデータ順序管理部406内の各メールデータへのKey406へ格納した、格納するメールをValueとするKeyをKeyとして、データストアサーバ107の揮発性記憶部307へ格納する(ステップ809)。
メールの格納をメールデータ順序管理部406の格納よりも先に行うと、メールの格納動作を行った後に、メールゲートウェイ106が電源障害やサーバ障害によって停止となった場合、格納したメールデータ313のKeyを持つメールデータ順序管理部406が存在せず、格納したメールデータ313を取り出すことが困難となる。この状況が頻繁に発生すると、データストアサーバ107の揮発性記憶部307が取り出すことのできないメールデータ313によって格納可能領域が圧迫される原因となる。そのため、本実施例ではメールデータ順序管理部406の格納(ステップ808)後にメールの格納(ステップ809)を行う。この結果、データストアサーバ107の揮発性記憶部307に取り出すことのできないメールデータが作成されることを防ぐことができる。
ステップ810において、データストアサーバI/F部213は、一連の処理の中で、新しいメールデータ順序管理部406を作成したか、もしくはステップ808において格納したメールデータ順序管理部406内の格納メールデータ数464がドメイン別グループ終端部405内のフィードバック値453の倍数であるかを調査し、どちらかの条件を満たす場合には、ステップ811へ進み、どちらの条件も満たさない場合には処理を終了する。
フィードバック値453は、ドメイン別管理部403および総合管理部402の更新頻度を表す値であり、小さく設定することで、更新頻度が上昇し、大きく設定することで、更新頻度が低下する。更新頻度が上昇した場合には、ドメイン別管理部403および総合管理部402の情報の精度が高くなるが、その分処理負荷が増加する。また、更新頻度が低下した場合には、ドメイン別管理部403および総合管理部402の情報の精度が低くなるが、その分処理負荷が軽減できる。そのため、格納メール数が格納上限に達しつつある場合など、情報の精度を必要とする場合にはフィードバック値453を小さくし、情報の制度が特別必要でない場合にはフィードバック値453を大きくするといった運用を行うことができる。
ステップ811において、データストアサーバI/F部213は、ドメイン別管理部403および総合管理部402を更新する。
ドメイン別管理部403の更新は、ドメイン別管理部403内の各メールデータ情報管理部のデータサイズ430および各メールデータ順序管理情報部のキューサイズ431に、ステップ808にて格納したメールデータ順序管理部406の格納メールデータ数464および格納メールデータのデータサイズ465の値を反映する。その後、反映したドメイン別管理部403内の各メールデータ情報管理部のデータサイズ430および各メールデータ順序管理情報部のキューサイズ431を元に、データサイズ422およびキューサイズ423を各メールデータ情報管理部のデータサイズ430および各メールデータ順序管理情報部のキューサイズ431の総和から算出し、反映する。ここで、データサイズ422が、各ドメイン別のメール格納数上限に達している場合には、受信規制フラグ425をセットし、さらに各ドメイン別グループ終端部へのKey429を参照し、各ドメイン別グループ終端部405内の受信規制フラグ454をセットする。
総合管理部402の更新は、総合管理部402内の各ドメイン別管理部のデータサイズ415および各ドメイン別管理部のキューサイズ416に、上記手順によって更新した、ドメイン別管理部403のデータサイズ422およびキューサイズ423の値を反映する。その後、反映した総合管理部402内の各ドメイン別管理部のデータサイズ415および各ドメイン別管理部のキューサイズ416を元に、データサイズ412およびキューサイズ413を各ドメイン別管理部のデータサイズ415および各ドメイン別管理部のキューサイズ416の総和から算出し、反映する。ここで、データサイズ412が、全体のメール格納数上限に達している場合には、各ドメイン別管理部へのKey414を参照し、ドメイン別管理部内の受信規制フラグ425をセットし、さらに各ドメイン別グループ終端部へのKey429を参照し、各ドメイン別グループ終端部405内の受信規制フラグ454をセットする。
ステップ810以降に関しては、新規メールの場合には、ステップ809後に携帯端末101へ送信完了通知を配信した後、行っても良い。これによって、携帯端末101への送信完了通知が早い段階で送信することが可能となる。
図10はメールゲートウェイ106のデータストアサーバI/F部213のメール取得処理フローを示す図である。この処理フローは、図7に示したシーケンス図のステップ601からステップ604、および図7に示したシーケンス図のステップ701からステップ704までの間に発生する、メールゲートウェイ106のデータストアサーバI/F部213の動作を例示したものである。
最初に、データストアサーバI/F部213はドメイン別グループ始端部404をデータストアサーバ107から取得する(ステップ901)。ここで、ドメイン別グループ始端部404の取得に関しても、ドメイン別グループ終端部405の取得と同様に、格納するメールの宛先アドレスを元に、該当のドメイン別グループ始端部404をValueとするKeyを直接指定して取得してもよいし、総合管理部402を取得し、総合管理部402内の各ドメイン別管理部へのKey414を元に該当のドメイン別管理部403を取得し、取得したドメイン管理部403内の各ドメイン別グループ始端部へのKey428を元に、該当のドメイン別グループ始端部404を取得してもよい。また、基本は後者の方法をとり、一定時間の間ドメイン別グループ終端部405の情報をキャッシュとして、揮発性記憶部207に保持しておき、キャッシュにデータが存在すれば前者の方法をとるようにしてもよい。
次に、取得したドメイン別グループの始端部404内の送信規制フラグ443もしくは送信中フラグ444がセットされていた場合には処理を終了し、そうでない場合はステップ903へ進む(ステップ902)。送信規制フラグは、規定数以上のメール送信が行われ、メールの送信に規制がかかっている場合に設定される。送信中フラグ444は、既に該当のドメイン別グループのメールを取得し、送信しているメールゲートウェイ106が存在する場合に設定される。
ステップ903において、ドメイン別グループの始端部404内の送信中フラグ444をセットする。ここでセットすることで、該当のドメイン別グループのメールの取得および送信動作を行っていることを表すことが可能となる。
ステップ904において、データストアサーバI/F部213は、データストアサーバ107の揮発性記憶部307に格納されているドメイン別グループ始端部404が、ステップ901において取得したものと一致しているかどうかを調査する。一致している場合にはステップ905へ進み、一致していない場合には、処理を終了する。この処理は前述のCAS操作と呼ばれるものであり、データストアサーバ107の揮発性記憶部307に格納されるデータのアトミックな操作を保証するものである。
ドメイン別グループ始端部404の格納にアトミックな操作が成功した場合には、ドメイン別グループ始端部404は正常にデータストアサーバ107の揮発性記憶部307へ格納される(ステップ905)。
次に、取得したドメイン別グループの始端部404内のメールデータ順序管理部へのKey442を用いて、メールデータ順序管理部406を取得し(ステップ906)、取得したメールデータ順序管理部406内の各メールデータへのKey462を用いて、メールデータ313を取得し、処理を終了する。
図11はメールゲートウェイ106のメール送信および削除処理フローを示す図である。この処理フローは、図7に示したシーケンス図のステップ606からステップ615、および図8に示したシーケンス図のステップ714からステップ718までの間に発生する、メールゲートウェイ106のメールゲートウェイプログラム206の動作を例示したものである。
最初に、メール中継部212は送信先サーバ105へメールを送信し、送信先サーバ105からメール送信完了通知を取得し(ステップ1001)、揮発性記憶部207からメールの削除を行う(ステップ1002)。
次に、データストアサーバI/F部213はドメイン別グループ始端部404をデータストアサーバ107から取得し、(ステップ1003)取得したドメイン別グループの始端部404内のメールデータ順序管理部へのKey442を用いて、メールデータ順序管理部406を取得する(ステップ1004)。ここで、ドメイン別グループ始端部404の取得に関しては、これまでと同様にどのような手順で取得してもかまわない。
ステップ1005において、取得したメールデータ順序管理部406内の、各メールデータへのKey462、各メールデータの送信時刻463から、送信が完了したメールに関する情報を削除する。
ステップ1006において、データストアサーバI/F部213は、データストアサーバ107の揮発性記憶部307に格納されているメールデータ順序管理部406が、ステップ1004において取得したものと一致しているかどうかを調査する。一致している場合にはステップ1007へ進み、一致していない場合には、ステップ1004へ進む。この処理は前述のCAS操作と呼ばれるものであり、データストアサーバ107の揮発性記憶部307に格納されるデータのアトミックな操作を保証するものである。
ドメイン別グループ始端部404の格納にアトミックな操作が成功した場合には、メールデータ順序管理部406は正常にデータストアサーバ107の揮発性記憶部307へ格納される(ステップ1007)。
ステップ1008において、これまでの工程を経て更新されたメールデータ順序管理部406内の各メールデータへのKey462、各メールデータの送信時刻463を参照し、格納されているメールが存在するか否かを調査する。調査の結果、格納されているメールが存在する場合には処理を終了し、存在しない場合にはステップ1009へ進む。
ステップ1009において、データストアサーバI/F部213は、ドメイン別グループ始端部404の更新、メールデータ順序管理部406の削除、ドメイン別管理部403の更新および総合管理部402の更新を行う。
ドメイン別グループ始端部404の更新は、メールデータ順序管理部へのKey442を、メールデータ順序管理部406内の次のメールデータ順序管理部へのKey466の内容に置き換え、さらに送信中フラグ444を解除する。
ドメイン別管理部403の更新は、ドメイン別管理部403内の各メールデータ情報管理部のデータサイズ430および各メールデータ順序管理情報部のキューサイズ431から、削除したメールデータ順序管理部406に関連する情報を削除する。その後、反映したドメイン別管理部403内の各メールデータ情報管理部のデータサイズ430および各メールデータ順序管理情報部のキューサイズ431を元に、データサイズ422およびキューサイズ423を各メールデータ情報管理部のデータサイズ430および各メールデータ順序管理情報部のキューサイズ431の総和から算出し、反映する。また、秒間送信数424を処理時点での時刻と、今回の処理中に送信したメール数を元に、最新の値に反映し、さらにコネクション数427を1デクリメントする。
ここで、秒間送信数424が、各ドメイン別のメール秒間送信数上限に達している場合には、送信規制フラグ426をセットし、さらに各ドメイン別グループ終端部へのKey429を参照し、各ドメイン別グループ始端部404内の送信規制フラグ443をセットする。また、更新したドメイン別管理部403のデータサイズ422およびキューサイズ423から、受信規制が必要なくなった場合には、受信規制フラグ425を解除し、さらに各ドメイン別グループ終端部へのKey429を参照し、各ドメイン別グループ終端部405内の受信規制フラグ454を解除する。
総合管理部402の更新は、総合管理部402内の各ドメイン別管理部のデータサイズ415および各ドメイン別管理部のキューサイズ416に、上記手順によって更新した、ドメイン別管理部403のデータサイズ422およびキューサイズ423の値を反映する。その後、反映した総合管理部402内の各ドメイン別管理部のデータサイズ415および各ドメイン別管理部のキューサイズ416を元に、データサイズ412およびキューサイズ413を各ドメイン別管理部のデータサイズ415および各ドメイン別管理部のキューサイズ416の総和から算出し、反映する。ここで、データサイズ412から、メールの受信規制が必要なくなった場合には、各ドメイン別管理部へのKey414を参照し、ドメイン別管理部内の受信規制フラグ425を解除し、さらに各ドメイン別グループ終端部へのKey429を参照し、各ドメイン別グループ終端部405内の受信規制フラグ454を解除する。
101:携帯端末、102:モバイルネットワーク、103:キャリア設備網、104:インターネット、105:送信先サーバ、106:メールゲートウェイ、107:データストアサーバ、202:ネットワークI/F、203:プロセッサ、204:揮発性メモリ、205:不揮発性メモリ、206:メールゲートウェイプログラム、207:揮発性記憶部、208:不揮発性記憶部、212:メール中継部、213:データストアサーバI/F部、302:ネットワークI/F、303:プロセッサ、304:揮発性メモリ、305:不揮発性メモリ、306:データストアサーバプログラム、307:揮発性記憶部、308:不揮発性記憶部、312:順序管理情報、313:メールデータ、402:総合管理部、403:ドメイン別管理部、404:ドメイン別グループ始端部、405:ドメイン別グループ終端部、406:メールデータ順序管理部。

Claims (3)

  1. メール送信装置から受信したメールをデータストアサーバ上に格納するメールサーバであって、
    前記メールの宛先アドレス別のドメイン毎に、格納されているメールの順序、およびメールサーバがメールを送信する先である送信先サーバに該当メールを送信する送信時刻、を含んで管理するドメイン別順序管理情報を備え、
    前記ドメイン別順序管理情報は、
    当該ドメイン別順序管理情報が管理対象とするメールのデータサイズと数とを管理し、
    1通のメールに対する、当該メールをValueとした際のKeyと、前記送信時刻と、の組を1エントリとして管理する下位順序管理情報を、複数含むものであり、
    前記下位順序管理情報は、当該下位順序管理情報が管理対象とするメールのデータサイズと数とを管理し、
    前記メールサーバは、
    各々の前記下位順序管理情報を、当該下位順序管理情報に含まれているエントリ数を規定以下とすること、および、当該下位順序管理情報に含まれている各エントリの、該当メールを送信先サーバに送信する時刻において、最も早いものと最も遅いものの差を規定以下とすること、の条件を満たすように、作成し、
    各々の前記下位順序管理情報を、互いに順序付けて管理し、
    各々の前記下位順序管理情報が管理するメールの前記データサイズと前記数とを用いて、前記ドメイン別順序管理情報が管理するメールの前記データサイズと前記数とを更新する
    ことを特徴とするメールサーバ。
  2. 請求項1に記載のメールサーバであって、
    前記ドメイン別順序管理情報が管理する前記データサイズと予め定めた上限値とを比較して、当該ドメイン別順序管理情報と、当該ドメイン別順序管理情報の終端にある前記下位順序管理情報と、の受信規制フラグを設定または解除する
    ことを特徴とするメールサーバ。
  3. 請求項1または2に記載のメールサーバであって、
    複数の前記ドメイン別順序管理情報が管理するメールの前記データサイズの総和と前記数の総和とを管理する上位順序管理情報を備え、
    各々の前記ドメイン別順序管理情報が管理するメールの前記データサイズと前記数とを用いて、前記上位序管理情報の前記データサイズの前記総和と前記数の前記総和とを更新し、
    前記上位序管理情報の前記データサイズの前記総和と予め定めた上限値とを比較して、各々の前記ドメイン別順序管理情報と、各々の前記ドメイン別順序管理情報の終端にある前記下位順序管理情報と、の受信規制フラグを設定または解除する
    ことを特徴とするメールサーバ。
JP2012058136A 2012-03-15 2012-03-15 メールシステムにおけるデータストアサーバのデータ格納方法 Active JP5746995B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012058136A JP5746995B2 (ja) 2012-03-15 2012-03-15 メールシステムにおけるデータストアサーバのデータ格納方法
US13/718,757 US9071563B2 (en) 2012-03-15 2012-12-18 Data storing method used for data store server in mailing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012058136A JP5746995B2 (ja) 2012-03-15 2012-03-15 メールシステムにおけるデータストアサーバのデータ格納方法

Publications (2)

Publication Number Publication Date
JP2013192124A JP2013192124A (ja) 2013-09-26
JP5746995B2 true JP5746995B2 (ja) 2015-07-08

Family

ID=49158708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012058136A Active JP5746995B2 (ja) 2012-03-15 2012-03-15 メールシステムにおけるデータストアサーバのデータ格納方法

Country Status (2)

Country Link
US (1) US9071563B2 (ja)
JP (1) JP5746995B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8849919B2 (en) * 2005-02-04 2014-09-30 International Business Machines Corporation Space-efficient mail storing and archiving based on communication structure
CN105007445B (zh) * 2014-04-24 2020-09-15 中兴通讯股份有限公司 一种实现信箱业务的方法及系统
JP6043817B2 (ja) * 2015-01-16 2016-12-14 三菱電機インフォメーションシステムズ株式会社 メール配信装置及びメール配信プログラム
CN116319651B (zh) * 2023-02-06 2024-09-03 深圳前海微众银行股份有限公司 报表邮件的推送方法、装置、终端以及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000207306A (ja) * 1999-01-14 2000-07-28 Toshiba Corp 情報機器および送信メ―ルの管理方法
JP2002132801A (ja) 2000-10-23 2002-05-10 Ntt Comware Corp 時系列情報管理装置、方法、及びそのプログラムを記録した記録媒体
US8849919B2 (en) * 2005-02-04 2014-09-30 International Business Machines Corporation Space-efficient mail storing and archiving based on communication structure
JP2006260369A (ja) * 2005-03-18 2006-09-28 Oki Data Corp 電子メール送信装置
JP4800020B2 (ja) * 2005-11-30 2011-10-26 株式会社野村総合研究所 電子メールシステム及び電子メールサーバ
US8572287B2 (en) * 2008-02-14 2013-10-29 Blackberry Limited Method and apparatus for communicating compression state information for interactive compression
WO2013066450A1 (en) * 2011-10-31 2013-05-10 Forsythe Hamish Method, process and system to atomically structure varied data and transform into context associated data
US9576032B2 (en) * 2012-02-23 2017-02-21 Applied Materials, Inc. Providing dynamic content in context of particular equipment

Also Published As

Publication number Publication date
US9071563B2 (en) 2015-06-30
JP2013192124A (ja) 2013-09-26
US20130246541A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
EP3669274B1 (en) Event delivery
US7849199B2 (en) Content router
US7623515B2 (en) Content router notification
US20070038703A1 (en) Content router gateway
US20070028293A1 (en) Content router asynchronous exchange
US20070014307A1 (en) Content router forwarding
US20070014277A1 (en) Content router repository
JP5537181B2 (ja) メッセージシステム
JP5746995B2 (ja) メールシステムにおけるデータストアサーバのデータ格納方法
AU2015291916B2 (en) Apparatus and method for data delivery in Delay-Tolerant Network (DTN)
WO2012029374A1 (ja) メール転送システム、メールゲートウェイ及びデータストアサーバ
JPWO2015133055A1 (ja) Disruption/Delay/Disconnect Tolerant Networkで利用されるノード装置及び通信方法
JP2008124977A (ja) メッセージ配送方法、装置及びプログラム
JP2015082126A (ja) データ仲介装置、データ転送システム及びプログラム
US20120278409A1 (en) Mail system
JPH11252165A (ja) メール削除機能付き電子メールシステム
CA2895921C (en) System and method for obtaining a portion of an archived email message
JP5865424B2 (ja) メッセージシステムおよびデータストアサーバ
JP2011191944A (ja) メーリングリスト管理支援装置、メーリングリスト管理支援方法及びメールシステム
CN110971693A (zh) 一种事件发布方法及装置
JP2005051474A (ja) 負荷を軽減するメール受信システム、ルータ装置、メール受信方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150511

R151 Written notification of patent or utility model registration

Ref document number: 5746995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151