(57)【要約】【課題】  電子メールの保存に要する記憶容量を低減する。【解決手段】  メールデータ管理装置は、電子メールに関するデータを記憶可能なメールデータ保存部と、１以上の電子メールが同一のスレッドに含まれるか否かを判定するスレッド判定部と、電子メールを構成するメールデータを、電子メールが含まれるスレッド毎にメールデータ保存部に記憶されるスレッドデータに含まれる第１の部分データと、電子メール毎に個別にメールデータ保存部に記憶され第２の部分データとに分解するメールデータ分解部と、スレッド毎に、当該スレッドに含まれる電子メールに関する第１の部分データに基づいて、少なくとも当該スレッドに含まれる電子メールのデータサイズの総和よりも小さいデータサイズのスレッドデータを作成するデータサイズ調整部と、を備える。【選択図】  図１０Ａ
2018041206.tif 000002
【特許請求の範囲】
【請求項１】
電子メールに関するデータを記憶可能なメールデータ保存部と、
１以上の前記電子メールが同一のスレッドに含まれるか否かを判定するスレッド判定部と、
前記電子メールを構成するメールデータを、前記電子メールが含まれるスレッド毎に前記メールデータ保存部に記憶されるスレッドデータに含まれる第１の部分データと、前記電子メール毎に個別に前記メールデータ保存部に記憶され第２の部分データとに分解するメールデータ分解部と、
スレッド毎に、当該スレッドに含まれる前記電子メールに関する前記第１の部分データに基づいて、少なくとも当該スレッドに含まれる前記電子メールのデータサイズの総和よりも小さいデータサイズの前記スレッドデータを作成するデータサイズ調整部と、を備える
メールデータ管理装置。
【請求項２】
電子メールに関するデータを記憶可能なメールデータ保存部を備えた情報処理装置が
１以上の電子メールが同一のスレッドに含まれるか否かを判定し、
前記電子メールを構成するメールデータを、前記電子メールが含まれるスレッド毎に前記メールデータ保存部に記憶されるスレッドデータに含まれる第１の部分データと、前記電子メール毎に個別に前記メールデータ保存部に記憶され第２の部分データとに分解し、
スレッド毎に、当該スレッドに含まれる前記電子メールに関する前記第１の部分データに基づいて、少なくとも当該スレッドに含まれる前記電子メールのデータサイズの総和よりも小さいデータサイズの前記スレッドデータを作成する
メールデータ管理方法。
【請求項３】
電子メールに関するデータを記憶可能なメールデータ保存部を備えたコンピュータに、
１以上の電子メールが同一のスレッドに含まれるか否かを判定する処理と、
前記電子メールを構成するメールデータを、前記電子メールが含まれるスレッド毎に前記メールデータ保存部に記憶されるスレッドデータに含まれる第１の部分データと、前記電子メール毎に個別に前記メールデータ保存部に記憶され第２の部分データとに分解する処理と、
スレッド毎に、当該スレッドに含まれる前記電子メールに関する前記第１の部分データに基づいて、少なくとも当該スレッドに含まれる前記電子メールのデータサイズの総和よりも小さいデータサイズの前記スレッドデータを作成する処理と、を実行させる
メールデータ管理プログラム。
【請求項４】
前記メールデータ分解部は、前記電子メールを構成するメールデータを、圧縮される部分である前記第１の部分データと、圧縮されない部分である前記第２の部分データとに分解し、
前記データサイズ調整部は、
前記電子メールが、あるスレッドに含まれると判定された場合、当該電子メールに関する前記第１の部分データを当該スレッドに関する前記スレッドデータに追加して圧縮し、
前記電子メールがいずれのスレッドにも含まれないと判定された場合、当該電子メールに関する前記第１の部分データを圧縮したデータを含む新たなスレッドデータを生成する
請求項１に記載のメールデータ管理装置。
【請求項５】
前記メールデータ保存部に記憶された前記電子メールの少なくとも一部を読み出すリクエストを受け付ける応答部と、
前記メールデータ保存部から、前記リクエストにより指定された前記電子メールに関する前記第２の部分データと、前記リクエストにより指定された前記電子メールが含まれるスレッドに関する前記スレッドデータとの少なくとも一方を取得可能な取得部と、
取得した前記スレッドデータを展開することで、前記リクエストにより指定された前記電子メールに関する前記第１の部分データを取得し、取得した前記第１の部分データと、前記第２の部分データとを結合することで、前記リクエストにより指定された前記電子メールを構成するメールデータを復元可能なメールデータ結合部と、を更に備え、
前記応答部は、前記リクエストに応じて、前記取得部により取得された前記第２の部分データの少なくとも一部を提供するか、又は、前記メールデータ結合部により復元された前記電子メールを構成するメールデータの少なくとも一部を提供する、
請求項４に記載のメールデータ管理装置。
【請求項６】
前記メールデータ分解部は、前記電子メールを構成するメールデータのうち、メールヘッダ部分と、メールボディ部分における先頭から特定の位置までの部分とを、前記第１の部分データとして分解し、当該メールボディ部分における残りの部分を、前記第２の部分データとして分解する
請求項４に又は請求項５に記載のメールデータ管理装置。
【請求項７】
前記応答部は、前記リクエストに応じて前記メールデータ結合部により復元された前記電子メールを構成するメールデータの少なくとも一部を提供する場合、前記メールデータ結合部により実行される前記電子メールを構成するメールデータを復元する処理と並行して、当該電子メールに関する前記第２の部分データを提供する処理を実行する、
請求項５に記載のメールデータ管理装置。
【請求項８】
前記メールデータ分解部は、前記電子メールが、あるスレッドに含まれると判定された場合、当該電子メールを構成するメールデータを、当該電子メールと当該スレッドに含まれる１以上の他の前記電子メールとの間で共通する部分である前記第１の部分データと、共通しない部分である前記第２の部分データとに分解し、
前記データサイズ調整部は、
前記電子メールがあるスレッドに含まれると判定された場合、当該電子メールに関する前記第１の部分データを含む、当該スレッドに関する前記スレッドデータを作成し
前記電子メールがいずれのスレッドにも含まれないと判定された場合、当該電子メールを構成するメールデータの少なくとも一部を含む前記スレッドデータを作成する
請求項１に記載のメールデータ管理装置。
【請求項９】
前記電子メール保存部に記憶された前記電子メールの少なくとも一部を読み出すリクエストを受け付ける応答部と、
前記メールデータ保存部から、前記リクエストにより指定された前記電子メールに関する前記第２の部分データと、前記リクエストにより指定された前記電子メールが含まれるスレッドに関する前記スレッドデータとの少なくとも一方を取得可能な取得部と、
取得された前記スレッドデータに含まれる、前記リクエストにより指定された前記電子メールに関する前記第１の部分データと、前記第２の部分データとを結合することで、前記リクエストにより指定された前記電子メールを構成するメールデータを復元可能なメールデータ結合部と、を更に備え、
前記応答部は、前記リクエストに応じて、前記取得部により取得された前記第２の部分データの少なくとも一部を提供するか、又は、前記メールデータ結合部により復元された前記電子メールを構成するメールデータの少なくとも一部を提供する、
請求項８に記載のメールデータ管理装置。
【請求項１０】
前記メールデータ分解部は、前記電子メールを構成するメールデータにおけるメールボディ部分のうち、前記電子メールと同一のスレッドに含まれる他の全ての電子メールと共通する部分を、前記第１の部分データとして分解し、当該メールボディ部分における残りの部分を、前記第２の部分データとして分解する
請求項８に又は請求項９に記載のメールデータ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、受信したメールデータを保存可能なメールデータ管理装置等に関する。
【背景技術】
【０００２】
近年、電子メールシステムが広く用いられている。電子メールシステムを用いて送受信される電子メールの数及びサイズは増大する傾向にあり、係る電子メールを記憶（保存）するために膨大なサイズの記憶装置（ストレージ）が必要なっている。また、記憶された電子メールが増大するにつれ、電子メールに関するデータの取得（閲覧、検索等）に時間を要することがある。
【０００３】
係る電子メールの管理に関する技術が、例えば、以下の各特許文献に記載されている。
【０００４】
特許文献１には、電子メールを構成するそれぞれの部分を、複数のデータベースを用いて個別に蓄積し、データベース毎に検索条件に該当する電子メールを検索する検索システムが記載されている。
【０００５】
特許文献２には、複数人に送信された同一内容のメールを共有メールボックスにより一元管理するメールシステムに関する技術が記載されている。特許文献２に開示されたメールシステムは、同じ内容のメール本文が重複して蓄積されないよう、共有メールボックスへの蓄積を制御することで、メールの蓄積に要する記憶容量を低減する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１２８９７３号公報
【特許文献２】特開２００９−２００９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
電子メールの保存に要するストレージ容量を低減する技術として、データを圧縮（ｃｏｍｐｒｅｓｓ）する技術が知られている。しかしながら、データの圧縮には時間を要し、また圧縮したデータを読み出す際の展開（ｄｅｃｏｍｐｒｅｓｓ）処理にも時間を要する、という問題がある。よって、電子メールのデータを単に圧縮した場合、当該電子メールの閲覧、検索等の処理性能が低下する可能性がある。即ち、電子メールの保存及び管理に関して、データサイズを低減するとともに、データの読み出し性能の低下を抑制する、という課題がある。
【０００８】
これに対して、上記特許文献１に記載されたシステムは、メールデータの検索を効率化するために、検索する情報に応じて個別のデータベースを使用する。特許文献１に開示された技術では、メールデータの蓄積に要する記憶容量を低減できない場合がある。また、特許文献２のシステムにおいては、一元管理の対象となるメールが限られている。係るシステムでは、一元管理の対象とならないメールの蓄積に要する記憶容量を低減することが困難な場合がある。
【０００９】
本開示に係る技術は、上記のような事情を鑑みて開発されたものである。即ち、本開示は、メールデータの記憶に要する記憶容量を低減しつつ、メールデータの読み出し性能の低下を抑えることができるメールデータ管理装置等を提供することを主たる目的の一つとする。
【課題を解決するための手段】
【００１０】
上記の目的を達成すべく、本開示の一態様に係るメールデータ管理装置は、電子メールに関するデータを記憶可能なメールデータ保存部と、１以上の電子メールが同一のスレッドに含まれるか否かを判定するスレッド判定部と、上記電子メールを構成するメールデータを、上記電子メールが含まれるスレッド毎に上記メールデータ保存部に記憶されるスレッドデータに含まれる第１の部分データと、上記電子メール毎に個別に上記メールデータ保存部に記憶され第２の部分データとに分解するメールデータ分解部と、スレッド毎に、当該スレッドに含まれる上記電子メールに関する上記第１の部分データに基づいて、少なくとも当該スレッドに含まれる上記電子メールのデータサイズの総和よりも小さいデータサイズの上記スレッドデータを作成するデータサイズ調整部と、を備える。
【００１１】
また、本開示の一態様に係るメールデータ管理方法は、電子メールに関するデータを記憶可能なメールデータ保存部を備えた情報処理装置が、１以上の電子メールが同一のスレッドに含まれるか否かを判定し、上記電子メールを構成するメールデータを、上記電子メールが含まれるスレッド毎に上記メールデータ保存部に記憶されるスレッドデータに含まれる第１の部分データと、上記電子メール毎に個別に上記メールデータ保存部に記憶され第２の部分データとに分解し、スレッド毎に、当該スレッドに含まれる上記電子メールに関する上記第１の部分データに基づいて、少なくとも当該スレッドに含まれる上記電子メールのデータサイズの総和よりも小さいデータサイズの上記スレッドデータを作成する方法である。
【００１２】
また、同目的は、上記構成を有するメールデータ管理装置、メールデータ管理方法をコンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み取り可能な記録媒体等によっても達成される。
【発明の効果】
【００１３】
本開示に係る技術に依れば、メールデータの記憶に要する記憶容量を低減しつつ、メールデータの読み出し性能の低下を抑えることが可能である。
【図面の簡単な説明】
【００１４】
【図１】図１は、本開示の第１の実施形態におけるメールデータ管理装置の機能的な構成を例示するブロック図である。
【図２】図２は、本開示の第１の実施形態におけるメールデータ管理装置の動作（メールの保存）の具体例を示すフローチャートである。
【図３】図３は、本開示の第１の実施形態におけるメールデータ管理装置の動作（リクエスト処理）の具体例を示すフローチャートである。
【図４】図４は、受信したメールのサンプル（具体例）を示す説明図である。
【図５】図５は、関連データテーブルの具体例を示す説明図である。
【図６】図６は、メールボックスに保存されたメールの具体例を示す説明図である。
【図７】図７は、本開示の第２の実施形態に係るメールデータ管理装置の機能的な構成を例示するブロック図である。
【図８】図８は、本開示の第２の実施形態におけるメールデータ管理装置の動作（メールの保存）の具体例を示すフローチャートである。
【図９】図９は、本開示の第２の実施形態におけるメールデータ管理装置の動作（リクエスト処理）の具体例を示すフローチャートである。
【図１０Ａ】図１０は、本開示の第３の実施形態に係るメールデータ管理装置の機能的な構成を例示するブロック図である。
【図１０Ｂ】図１０は、本開示の第３の実施形態に係るメールデータ管理装置の他の機能的な構成を例示するブロック図である。
【図１１】図１１は、本開示の実施形態におけるメールデータ管理装置を実現可能なハードウェア装置の構成を例示する図面である。
【発明を実施するための形態】
【００１５】
以下、本開示におけるメールデータ管理装置等を実現可能な実施形態について詳細に説明する。以下の各実施形態に記載されているメールデータ管理装置の構成は例示であり、本開示の技術範囲はそれらには限定されない。以下の各実施形態におけるメールデータ管理装置を構成する構成要素の区分け（例えば、機能的な単位による分割）は、メールデータ管理装置を実現可能な一例である。当該メールデータ管理装置の実装に際しては、以下の例示に限定されず、様々な構成が想定される。即ち、以下の各実施形態におけるメールデータ管理装置を構成する構成要素は、更に分割されてもよい。また、以下の各実施形態におけるメールデータ管理装置を構成する１以上の構成要素が、統合されてもよい。
【００１６】
以下において説明するメールデータ管理装置は、単体の装置（物理的あるいは仮想的な装置）を用いて構成されてもよく、複数の離間した装置（物理的あるいは仮想的な装置）を用いたシステム（メールデータ管理システム）として実現されてもよい。メールデータ管理装置が複数の装置により構成される場合、各装置の間は有線、無線、又はそれらを適切に組み合わせた通信ネットワーク（通信回線）により通信可能に接続されてもよい。係る通信ネットワークは、物理的な通信ネットワークであってもよく、仮想的な通信ネットワークであってもよい。以下において説明するメールデータ管理装置、あるいは、その構成要素を実現可能なハードウェア構成については、後述する。
【００１７】
＜第１の実施形態＞
以下、本開示に係る技術の第１の実施形態について、図面を参照して説明する。以下の説明においては、電子メール（電子メールを構成するデータを含む）、単に「メール」と記載する場合がある（以下の各実施形態において同様）。
【００１８】
［構成］
図１に例示するように、メールデータ管理装置１は、メールサーバ２及びメールクライアント３と、適切な通信ネットワークを用いてそれぞれ通信可能に接続される。
【００１９】
以下、メールデータ管理装置１の構成について説明する。図１に例示するように、メールデータ管理装置１は、メール受信部１０１、スレッド判定部１０２、関連メール管理部１０３、スレッドデータ取得部１０４、メールデータ分解部１０５、圧縮部１０６、格納部１０７、及び、メールボックス１０８を含む。また、メールデータ管理装置１は、展開部１０９、メールデータ結合部１１０、取得部１１１、及び、応答部１１２を含む。
【００２０】
メールデータ管理装置１に含まれる上記構成要素のうち、１以上の構成要素が統合されてもよく、１以上の構成要素が更に分解されてもよい。メールデータ管理装置１に含まれる上記構成要素の間は、適切な通信方法を用いて相互に通史可能に接続されていてよい。図１に示される各構成要素を接続する接続線は、構成要素間の接続関係の具体例を表す。各構成要素は、上記接続線により示された接続関係に限定されず、他の構成要素と適宜通信（データ及び指令の授受などを含む）してよい。以下、各構成要素について説明する。
【００２１】
メール受信部１０１は、メールサーバ２からメールを受信する。メール受信部１０１は、例えば、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｅｒ  Ｐｒｏｔｏｃｏｌ）を利用して、メールサーバ２から電子メールを受信してもよい。
【００２２】
スレッド判定部１０２は、１以上の電子メールが同一のスレッドか否か（同じスレッドに含まれるか否か）を判定する。
【００２３】
関連メール管理部１０３は、受信したメール毎に、当該メールと関連するメールを管理する。関連メール管理部１０３は、例えば、関連メールテーブル（後述）を用いて、各メール間を関連付ける情報を保持する。関連メール管理部１０３は、関連メールテーブルに含まれる情報をスレッド判定部１０２に提供するよう構成されてもよい。
【００２４】
スレッドデータ取得部１０４は、あるメールと同一のスレッド（当該メールが含まれるスレッド）に関するスレッドデータを取得する。
【００２５】
スレッドデータは、同一のスレッドに含まれる各メールの少なくとも一部から生成されるデータである。各スレッドには、少なくとも一つのスレッドデータが関連付けされる。例えば、ある一つのスレッドに、メールＡ、メールＢ、メールＣが含まれることを想定する。この場合、スレッドデータは、メールＡの少なくとも一部、メールＢの少なくとも一部、メールＣの少なくとも一部、から生成される。スレッドデータは、メールＡの少なくとも一部、メールＢの少なくとも一部、メールＣの少なくとも一部に対してサイズを低減する所定の処理（例えば、圧縮処理、共通部分及び差分部分の抽出等）を実行することにより生成したデータを含んでもよい。
【００２６】
メールデータ分解部１０５は、メールを圧縮部分と、無圧縮部分とに分解する。圧縮部分は、あるメールを構成するデータの内、圧縮処理が実行される部分である。即ち、圧縮部分のデータサイズは、圧縮処理により低減される。同一のスレッドに含まれるメールの圧縮部分データは、スレッド毎にまとめて圧縮され、上記スレッドデータを構成する。以下、圧縮部分のデータを、圧縮部分データと記載することがある。無圧縮部分は、あるメールを構成するデータの内、圧縮処理が実行さない部分である。以下、部圧縮部分のデータを無圧縮部分データと記載することがある。
【００２７】
圧縮部１０６は、圧縮部分データに関する圧縮処理を実行する。圧縮部１０６は、適切な圧縮アルゴリズムを適宜選択してよい。また、圧縮部１０６は、データの圧縮処理とともに、アーカイブ処理を実行してもよい。圧縮部１０６は、例えば、係るアーカイブ処理により、複数のデータ（例えば、複数のメールの圧縮部分データ）を、一つのデータにまとめることが可能である。圧縮処理及びアーカイブ処理は、例えば、現在では周知の技術を用いて実現可能である。
【００２８】
圧縮部１０６は、圧縮部分データを圧縮したデータを用いて、スレッドデータを更新あるいは生成する処理を実行するよう構成されてもよい。具体例として、あるメール（メールＡ）が、スレッド（スレッドＸ）に含まれる場合を想定する。圧縮部１０６は、例えば、メールＡの圧縮部分データを圧縮したデータを含むよう、スレッドＸのスレッドデータを更新してよい。圧縮部１０６は、例えば、メールＡの圧縮部分を圧縮したデータをスレッドＸのスレッドデータに追加してもよい。圧縮部１０６は、例えば、スレッドＸのスレッドデータを一時的に展開し、メールＡの圧縮部分を追加した後、再度スレッドＸのスレッドデータを圧縮してもよい。圧縮部１０６は、例えば、アーカイブコマンドを使用して、メールＡの圧縮部分の圧縮及びスレッドＸのスレッドデータへの追加を実行してもよい。
【００２９】
圧縮部１０６は、あるメール（例えば、メールＡ）がいずれのスレッドにも含まれない場合（即ちメールＡが新たなスレッドの起点である場合）、係るメールの圧縮部分を圧縮したデータを用いて、新たなスレッドに関するスレッドデータを生成してもよい。
【００３０】
上記のように生成（あるいは更新）されるスレッドデータのデータサイズは、スレッドに含まれる全メールのデータサイズの総和よりも小さい。なぜならば、圧縮部１０６により各メールの圧縮部分データが圧縮されることで、データサイズが低減されるからである。
【００３１】
格納部１０７は、メールをメールボックス１０８（後述）に格納する。格納部１０７は、例えば、あるメールがあるスレッドに含まれる場合、当該メールの無圧縮部分と、当該メールの圧縮部分を含むスレッドデータとを、メールボックス１０８に別々に格納してよい。
【００３２】
メールボックス１０８は、メールを記憶（保存）する。メールボックスは、例えば、ファイルシステム及びファイルを用いて実現されてもよく、データベースを用いて実現されてもよい。メールボックス１０８がファイルシステムを用いて実現される場合、例えば、各メールは一つのファイルとして保存されてもよい。また、スレッドデータは、スレッド毎に一つのファイルとして保存されてもよい。メールボックス１０８に記憶（保存）されるメールには、それぞれのメールを特定可能なユニークな識別情報（ＩＤ：Ｉｄｅｎｔｉｆｉｅｒ）が付与されてよい。以下、係る識別情報を、”ｕｉｄ”と記載する場合がある。
【００３３】
展開部１０９は、圧縮部１０６により圧縮されたメールのデータを展開する処理を実行する。展開部１０９は、例えば、各メールの圧縮部分データを含むスレッドデータ全体を展開してもよい。展開部１０９は、例えば、スレッドデータのうち、特定のメールに関する圧縮部分データのみを展開してもよい。
【００３４】
メールデータ結合部１１０は、圧縮部分データと、無圧縮部分データとを結合し、元のメールを生成する。具体的には、メールデータ結合部１１０は、あるメールについて、無圧縮部分データと、スレッドデータに含まれる（圧縮された）圧縮部分データを展開したデータとを結合することで、元のメールを生成する。
【００３５】
取得部１１１は、メールボックス１０８から、保存されたメールに関するデータを取得する。具体的には、取得部１１１は、メールボックス１０８から、各メールの無圧縮部分データと、当該メールが含まれるスレッドに関するスレッドデータとを取得するよう構成されてもよい。
【００３６】
応答部１１２は、メールクライアント３から各種リクエストを受け付け、当該リクエストに応答する。応答部１１２は、例えば、メールクライアント３との間で、ＩＭＡＰ（Ｉｎｔｅｒｎｅｔ  Ｍｅｓｓａｇｅ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）を利用してリクエスト及びレスポンスを送受信するよう構成されてもよい。
【００３７】
以下、メールデータ管理装置１と通信可能に接続されるメールサーバ２及びメールクライアント３について概要を説明する。
【００３８】
メールサーバ２は、例えば、ＳＭＴＰ等を利用して、電子メールに関する転送処理を実行可能な、一般的な電子メールサーバであってよい。メールデータ管理装置１は、例えば、ＳＭＴＰを利用して、メールサーバ２から電子メールを受信可能である。メールサーバ２は、例えば、専用装置（電子メールアプライアンス）により実現されてもよく、物理的又は仮想的な情報処理装置（コンピュータ等）により実現されてもよい。メールデータ管理装置１と、メールサーバ２とは、同一の装置（あるいはシステム）を用いて実現されてもよい。
【００３９】
メールクライアント３は、例えば、一般的な電子メールクライアントでよく、例えば、ＩＭＡＰ等を利用して、メールデータ管理装置１から電子メールを受信する。メールクライアント３は、通信機能を備えた情報処理装置（又は当該情報処理装置において実行されるアプリケーション・プログラム）により実現されてもよい。
【００４０】
なお、メールデータ管理装置１、メールサーバ２、及び、メールクライアント３の間で用いられる通信プロトコルは、上記に限定されず、適宜選択されてよい。
【００４１】
［動作］
上記のように構成されたメールデータ管理装置１の動作について説明する。以下に例示する各フローチャートにおける各ステップについては、動作に影響しない範囲で、実行順序が入れ替えられてもよく、１以上のステップが並行して実行されてもよい。これは、以下の各実施形態において同様である。
【００４２】
図２は、メールデータ管理装置１が、メールサーバ２からメールを受信し、メールボックス１０８に格納する動作を例示するフローチャートである。
【００４３】
メール受信部１０１は、メールサーバ２からメールを受信する（ステップＳ２０１）。メール受信部１０１は、受信したメールデータをスレッド判定部１０２に提供してもよい。
【００４４】
スレッド判定部１０２は、受信したメールが既に管理されているスレッドの一部か否かを判定する。即ち、スレッド判定部１０２は、受信したメールが、既に受信済みの他のメールと同一のスレッドに含まれるか否かを判定する。
【００４５】
スレッド判定部１０２は、例えば、受信したメールのメールヘッダに含まれる”Ｍｅｓｓａｇｅ−Ｉｄ”と、”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”とを利用して、当該受信したメールが、あるスレッドの一部か否か（あるスレッドに含まれるか否か）を判定することができる。
【００４６】
メールヘッダにおける”Ｍｅｓｓａｇｅ−Ｉｄ”は、あるメールを特定可能な識別情報を示すデータである。また、メールヘッダにおける”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”は、あるメールが、どのメールに対する返信であるかを示すデータである。一般的に、”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”には、元のメール（返信されるメール）に関する”Ｍｅｓｓａｇｅ−Ｉｄ”が設定され得る。
【００４７】
スレッド判定部１０２は、受信したメールのメールヘッダに”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”が含まれない場合、受信したメールを、新しいスレッドとして処理してよい。即ち、この場合、スレッド判定部１０２は、受信したメールを、新たなスレッドの起点として処理してよい。
【００４８】
スレッド判定部１０２は、受信したメールのメールヘッダに”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”が含まれる場合、その値が、他のメール（他の”ｕｉｄ”が付与されたメールデータ）の”Ｍｅｓｓａｇｅ−Ｉｄ”と同一であるか否かを確認する。スレッド判定部１０２は、受信したメールのメールヘッダに含まれる”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”と、他のメールの”Ｍｅｓｓａｇｅ−Ｉｄ”とが同一である場合、それらのメールは同一スレッドである（同一のスレッドに含まれる）と判定する。受信したメールのメールヘッダに含まれる”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”と、他のメールデータの”Ｍｅｓｓａｇｅ−Ｉｄ”とが同一ではない場合、受信したメールを、新しいスレッドとして処理してよい。なお、スレッド判定部１０２は、関連メール管理部１０３が管理する関連テーブルを利用して上記判定を実行することができる。
【００４９】
受信したメールが、あるスレッドの一部である（あるスレッドに含まれる）場合（ステップＳ２０３においてＹＥＳ）、スレッドデータ取得部１０４は、当該スレッドに関するスレッドデータを取得する（ステップＳ２０４）。上記したように、係るスレッドデータには、当該スレッドに含まれる各メールの圧縮部分データを圧縮したデータが含まれる。
【００５０】
メールデータ分解部１０５は、メール受信部１０１が受信したメールを、圧縮部分データと、無圧縮部分データとに分解する（ステップＳ２０５）。
【００５１】
上記したように、無圧縮部分データには圧縮処理が実行されない。よって、無圧縮部分データに関するアクセス（例えば、検索、分類、閲覧等）は、圧縮及び展開処理に起因する処理時間の影響を受けずに、処理を実行可能である。そこで、メールデータ分解部１０５は、メールに対するアクセスにおいて、比較的高い頻度で参照される部分を、無圧縮部分データに分解する。また、メールデータ分解部１０５は、無圧縮部分データ以外の部分（メール本文における残りの部分）を圧縮部分データに分解する。
【００５２】
ユーザがメール本文における比較的先頭に近い部分を閲覧することで、当該メールを更に閲覧すべきか否かを判断し得る場合も多いと考えられる。そこで、本実施形態においては、メールデータ分解部１０５は、例えば、メールヘッダ及びメール本文の一部を、無圧縮部分データに分解する。
【００５３】
メールデータ分解部１０５は、例えば、メールを構成するデータの内、以下の部分を無圧縮部分データに分解してもよい。即ち、メールデータ分解部１０５は、例えば、メールを構成するデータのうち、メールヘッダ及びメール本体（メールボディ部分）の特定部分（例えば、先頭Ｎ行あるいはＮバイト等（Ｎは自然数））を、無圧縮部分データに分解してもよい。メール本体の特定部分は、例えば、実験やテスト運用等により得られた知見から、適宜設定可能である。上記に限定されず、メールデータ分解部１０５は、例えば、受信したメールが例えばＭＩＭＥ（Ｍｕｌｔｉｐｕｒｐｏｓｅ  Ｉｎｔｅｒｎｅｔ  Ｍａｉｌ  Ｅｘｔｅｎｓｉｏｎｓ）により規定されたマルチパート形式である場合は、メールヘッダ及び特定のパートを、無圧縮部分データに分解してもよい。無圧縮部分データに含まれるパートは適宜設定可能としてよい。係るパートとして、典型的にはメールボディ部分における最初のパートが選択されてよい。メールデータ分解部１０５は、受信したメールに添付ファイルが含まれる場合は、メールヘッダ及び添付ファイル以外のパートを、無圧縮部分データに分解してもよい。上記のように、圧縮部分データと、無圧縮部分データとを分解することで、あるメールの保存（記憶）に要するストレージ容量を低減するとともに、当該メールに対する読み出し性能の低下を抑制することができると考えられる。
【００５４】
圧縮部１０６は、メールデータ分解部１０５において分解された圧縮部分データを圧縮する（ステップＳ２０６）。なお、ステップＳ２０４において、受信したメールが含まれるスレッドに関するスレッドデータを取得している場合、圧縮部１０６は、取得したスレッドデータに圧縮部分データを追加して圧縮してよい。
【００５５】
格納部１０７は、受信したメールから分解された無圧縮部分データと、圧縮された圧縮部分データを含むスレッドデータとをメールボックス１０８に格納する（ステップＳ２０７）。
【００５６】
以上の動作により、メールデータ管理装置１は、メールサーバ２から受信したメールを分解して、メールボックス１０８に格納することができる。
【００５７】
以下、メールデータ管理装置１が、メールクライアント３からのリクエストに応じて、メールクライアント３にレスポンスを返す処理について、図３に例示するフローチャートを参照して説明する。
【００５８】
メールクライアント３からの情報取得要求（リクエスト）を応答部１１２が受信する（ステップＳ３０１）。係るリクエストは、例えば、あるメールの一部（例えばヘッダ等）を読み出すリクエストであってもよく、あるメールの全部を読み出すリクエストであってもよい。係るリクエストは、例えば、ＩＭＡＰにより規定されたコマンドを含んでもよい。
【００５９】
受信したリクエストがメールヘッダのみを取得するリクエストである場合（ステップＳ３０２において［メールヘッダのみ］）、取得部１１１は、ステップＳ３０３の処理を実行する。即ち、取得部１１１は、メールボックス１０８から、リクエストにより指定されたメールの無圧縮部分を取得する（ステップＳ３０３）。具体的には、例えば、応答部１１２が取得部１１１にメールヘッダの情報取得を要求し、当該要求に応じて取得部１１１がメールの無圧縮部分を取り出してもよい。
【００６０】
上記の変形例として、受信したリクエストが、メール本文のうち無圧縮部分に含まれるヘッダ部分以外のデータを取得するリクエストである場合も、取得部１１１はステップＳ３０３における処理を実行してよい。例えば、ＩＭＡＰの場合、”ＦＥＴＣＨ”コマンド等を用いて、メールの一部を取得することが可能である。
【００６１】
応答部１１２は、ステップＳ３０３において取得されたデータを含むレスポンスを、メールクライアント３に返す。
【００６２】
一方、受信したリクエストがメール全体を取得するリクエストである場合（ステップＳ３０２において［メールデータ全体］）、取得部１１１はステップＳ３０４の処理を実行する。即ち、取得部１１１は、メールボックス１０８から、リクエストにより指定されたメールの無圧縮部分と、当該メールが含まれるスレッドに関するスレッドデータとを取得する（ステップＳ３０４）。この場合、応答部１１２が取得部１１１にメール全体の情報取得を要求してもよい。取得部１１１は、取得したスレッドデータを展開部１０９に供給してもよい。
【００６３】
展開部１０９は、スレッドデータを展開する（ステップＳ３０５）。具体的には、展開部１０９は、リクエストにより指定されたメールに関する圧縮部分データをスレッドデータから抽出して展開する。展開部１０９は、スレッドデータを展開した後に、リクエストにより指定されたメールに関する圧縮部分データを抽出してもよい。
【００６４】
メールデータ結合部１１０は、リクエストにより指定されたメールに関する無圧縮部分データと、展開されたスレッドデータから抽出された圧縮部分データとを結合し、元のメールを復元する（ステップＳ３０６）。メールデータ結合部１１０は、復元されたメールを応答部１１２に供給してもよい。
【００６５】
応答部１１２は、ステップＳ３０６において復元されたメールを含むレスポンスを、メールクライアント３に返す（ステップＳ３０９）。
【００６６】
上記の変形例として、受信したリクエストが、メール本文のうち圧縮部分データに含まれる一部データを取得するリクエストである場合も、メールデータ管理装置１は、ステップＳ３０４乃至Ｓ３０６における処理を実行してよい。そして、この場合、ステップＳ３０９において、応答部１１２が、受信してリクエストにおいて指定された部分（例えば、メールボディ部分の一部等）を、メールクライアント３に反してもよい。
【００６７】
以下、具体例を用いて、関連メール管理部１０３が有する関連テーブル及び、メールボックス１０８に保存されるメールの構成について説明する。以下の具体例においては、図４に例示するようなメール１乃至メール５の５通のメールを受信することを想定する。図４には、メール１乃至メール５のヘッダの一部が例示されている。図４において伏せ字（”＊”）が表示されている部分には、適切なデータが適宜設定されてよい。各メールは、当該メールが受信されたタイミングあるいはメールボックス１０８に格納されるタイミングにおいてｕｉｄが設定されてもよい。以下においては、説明の便宜上、図４に例示する各メールにｕｉｄ１乃至ｕｉｄ５が設定されることを想定する。また、以下の具体例においては、メールボックス１０８がファイルシステムを用いて実現されることを想定する。
【００６８】
図５は、ｕｉｄ１〜ｕｉｄ５のメールがメールボックス１０８に格納された際の、関連メール管理部１０３が有する関連テーブルの具体例を示す説明図である。図５において、ｕｉｄ属性（列）にはメールボックスにおいてメールを識別可能なｕｉｄが設定される。Ｍｅｓｓａｇｅ−Ｉｄ属性（列）には、ｕｉｄ属性により特定されるメールに設けられたＭｅｓｓａｇｅ−Ｉｄの値が設定される。Ｉｎ−ｒｅｐｌｙ−ｔｏ属性（列）には、ｕｉｄ属性により特定されるメールに設けられたＩｎ−ｒｅｐｌｙ−ｔｏの値が設定される。ｐｒｅｖ−ｉｄ属性（列）には、ｕｉｄ属性により特定されるメールの返信元となるメールのｕｉｄが設定される。また、Ｔｈｒｅａｄ−Ｉｄ属性（列）には、ｕｉｄ属性により特定されるメールが含まれるスレッドを特定可能なＩＤ（Ｉｄｅｎｔｉｆｉｅｒ：識別情報）であるＴｈｒｅａｄ−Ｉｄが設定される。
【００６９】
図６は、ｕｉｄ１〜ｕｉｄ５のメールがメールボックス１０８に格納された際の、メールボックス１０８におけるメールの配置を例示する説明図である。
【００７０】
メールデータ管理装置１（メール受信部１０１）は、メールサーバ２からｕｉｄ１のメールを受信する。ｕｉｄ１のメールには”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”ヘッダが含まれないことから、メールデータ管理装置１（スレッド判定部１０２）は、ｕｉｄ１のメールが新たなスレッドである（即ち、ｕｉｄ１のメールが新たなスレッドの起点である）と判定する。メールデータ管理装置１は、係るスレッドの識別情報（”Ｔｈｒｅａｄ−ＩＤ”）として、”ｔｈｒ１”を割当て、関連メール管理部１０３の関連データテーブルに登録する（図５の５０１）。
【００７１】
メールデータ管理装置１（メールデータ分解部１０５）は、ｕｉｄ１のメールを、圧縮部分データと、無圧縮部分データとに分解する。メールデータ管理装置１は、例えば、メールヘッダと、メール本文（メールボディ部分）の特定部分（例えば先頭Ｎ行）とを、無圧縮部分データに分解し、メール本文の残りの部分を圧縮部分データに分解してもよい。メールデータ管理装置１（圧縮部１０６）は、圧縮部分データを圧縮し、ｔｈｒ１のスレッドデータを生成する。メールデータ管理装置１（格納部１０７）は、ｕｉｄ１のメール（無圧縮部文データ及び、ｔｈｒ１のスレッドデータ）をメールボックス１０８に格納する。
【００７２】
上記処理により、図６に例示するメールボックス１０８の構成（”ｍａｉｌｂｏｘ１／＃ｍｓｇ／ｔｈｒ１”（スレッドデータ）と、”ｍａｉｌｂｏｘ１／＃ｍｓｇ／ｕｉｄ１”のファイル）が作成される。図６に例示する”ｍａｉｌｂｏｘ１”は、例えば、あるユーザのメールアカウントに対応するメールが保存されるメールボックスであり、ファイルシステムにおけるディレクトリ（フォルダ）として実現可能である。図６に例示する”ｔｈｒ１”は、スレッドＩＤ（Ｔｈｒｅａｄ−Ｉｄ）が”ｔｈｒ１”であるスレッドの、スレッドデータを含むファイルである。図６に例示する”ｕｉｄ１”は、ｕｉｄ１のメールに関する無圧縮部分データを含むファイルである。
【００７３】
メールデータ管理装置１が、メールサーバ２から、ｕｉｄ２のメールを受信する。ｕｉｄ２のメールには、Ｉｎ−Ｒｅｐｌｙ−Ｔｏヘッダが含まれ、その値がｕｉｄ１のＭｅｓｓａｇｅ−Ｉｄと一致する（図４）。そこで、メールデータ管理装置１（スレッド判定部１０２）は、ｕｉｄ１のメールと、ｕｉｄ２のメールとは、同一のスレッドである（同一のスレッドに含まれる）と判定する。即ち、メールデータ管理装置１（スレッド判定部１０２）は、ｕｉｄ２のメールが、ｔｈｒ１のスレッド（Ｔｈｒｅａｄ−Ｉｄがｔｈｒ１）に含まれると判定する。係る判定に応じて、メールデータ管理装置１は、関連データテーブルを更新する（図５の５０２）。また、メールデータ管理装置１（スレッドデータ取得部１０４）は、ｔｈｒ１に関するスレッドデータを、メールボックス１０８から取得する。
【００７４】
メールデータ管理装置１（メールデータ分解部１０５）は、上記ｕｉｄ１のメールと同様、ｕｉｄ２のメールを、無圧縮部分データと、圧縮部分データとに分解する。メールデータ管理装置１（メールデータ分解部１０５）は、ｕｉｄ２のメールに関する圧縮部分データと、ｔｈｒ１のスレッドデータとを合わせて圧縮する。例えば、メールデータ管理装置１（メールデータ分解部１０５）は、周知の圧縮コマンド（あるいは圧縮コマンドとアーカイブコマンドとの組合せ）により、スレッドデータのファイルと、ｕｉｄ２の圧縮部分データのファイルとを一つに合わせて圧縮することが可能である。この場合、メールデータ管理装置１（メールデータ分解部１０５）は、例えば、スレッドデータを展開してｕｉｄ１のメールに関する圧縮部分データのファイルを抽出し、当該ファイルと、ｕｉｄ２の圧縮部分データのファイルとをまとめて再び圧縮してもよい。
【００７５】
メールデータ管理装置１は、ｕｉｄ２に関するメール（無圧縮部分データ、及び、ｕｉｄ２のメールデータに関する圧縮部分データを含むスレッドデータ）を、メールボックス１０８に登録する。
【００７６】
上記処理により、図６に例示するメールボックス１０８の構成のうち、”ｍａｉｌｂｏｘ１／＃ｍｓｇ／ｔｈｒ１”が更新され、”ｍａｉｌｂｏｘ１／＃ｍｓｇ／ｕｉｄ２”のファイルが作成される。
【００７７】
メールデータ管理装置１が、メールサーバ２から、ｕｉｄ３のメールを受信する。ｕｉｄ３のメールには、”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”ヘッダが含まれないことから、メールデータ管理装置１（スレッド判定部１０２）は、ｕｉｄ３のメールが新たなスレッドである（即ち、ｕｉｄ３のメールが新たなスレッドの起点である）と判定する。メールデータ管理装置１は、係るスレッドの識別情報（”Ｔｈｒｅａｄ−Ｉｄ”）として、”ｔｈｒ２”を割当て、関連メール管理部１０３の関連データテーブルに登録する（図５の５０３）。以下、メールデータ管理装置１は、ｕｉｄ３のメールについて、上記説明したｕｉｄ１のメールと同様の処理を実行することができる。係る処理により、図６に例示するメールボックス１０８の構成（”ｍａｉｌｂｏｘ１／＃ｍｓｇ／ｔｈｒ２”（スレッドデータ）と、”ｍａｉｌｂｏｘ１／＃ｍｓｇ／ｕｉｄ３”のファイル）が作成される。
【００７８】
メールデータ管理装置１が、メールサーバ２から、ｕｉｄ４のメールを受信する。ｕｉｄ４のメールには、Ｉｎ−Ｒｅｐｌｙ−Ｔｏヘッダが含まれ、その値がｕｉｄ３のＭｅｓｓａｇｅ−Ｉｄと一致する（図４）。そこで、メールデータ管理装置１（スレッド判定部１０２）は、ｕｉｄ４のメールと、ｕｉｄ３のメールとは、同一のスレッドである（同一のスレッドに含まれる）と判定する。即ち、メールデータ管理装置１（スレッド判定部１０２）は、ｕｉｄ４のメールが、ｔｈｒ２のスレッド（Ｔｈｒｅａｄ−Ｉｄがｔｈｒ２）に含まれると判定する。係る判定に応じて、メールデータ管理装置１は、関連データテーブルを更新する（図５の５０４）。また、メールデータ管理装置１（スレッドデータ取得部１０４）は、ｔｈｒ２に関するスレッドデータを、メールボックス１０８から取得する。以下、以下、メールデータ管理装置１は、ｕｉｄ４のメールについて、上記説明したｕｉｄ２のメールと同様の処理を実行することができる。ｕｉｄ５のメールについても同様である。係る処理により、図６に例示するメールボックス１０８の構成のうち、”ｍａｉｌｂｏｘ１／＃ｍｓｇ／ｔｈｒ２”が更新され、”ｍａｉｌｂｏｘ１／＃ｍｓｇ／ｕｉｄ４”及び”ｍａｉｌｂｏｘ１／＃ｍｓｇ／ｕｉｄ５”のファイルが作成される。
【００７９】
上記のように構成されたメールデータ管理装置１は、スレッド毎に、当該スレッドに含まれる各メールのデータを圧縮することから、データを効率よく圧縮することが可能である。また、メールデータ管理装置１は、各メールのメールヘッダ部分及びメールボディ部分のうちの特定部分（例えば先頭Ｎ行）を圧縮処理が実行されない無圧縮部分データとしてメールボックスに格納する。即ち、メールデータ管理装置１は、データの圧縮及び展開に関する処理時間の影響を受けることなく、各メールの無圧縮データ部分を提供可能である。これにより、メールデータ管理装置１は、例えば、メールクライアント３に対するレスポンスタイムを維持することが可能である。
【００８０】
以上より、上記のように構成されたメールデータ管理装置１は、メールデータの記憶に要する記憶容量を低減しつつ、メールデータの読み出し性能の低下を抑えることができる。その理由は、メールデータ管理装置１は、各メールを圧縮処理が実行されない無圧縮データと、圧縮処理が実行される圧縮分データとに分解し、圧縮部分データを圧縮して管理するからである。また、メールデータ管理装置１は、各メールの圧縮部分データを個別に圧縮するのではなく、各メールが含まれるスレッド毎にまとめて圧縮するからである。
【００８１】
容量（データサイズ）が大きいメールに関して、一般的には、メール本体（メールボディ部分）のデータ部分の容量（データサイズ）が大きいと考えられる。メールデータ管理装置１はメール本体部分を圧縮可能であることから、特に容量の大きいメールが圧縮されることになる。また、メールクライアント３は、無圧縮部分データの情報を用いて一覧表示や、要約表示等を提供することが可能である。即ち、メールデータ管理装置１は、圧縮されたデータ（圧縮部分データ）に関する展開処理を行うことなく、一覧表示や、要約表示等に必要なデータをメールクライアント３に提供可能である。このため、メールデータ管理装置１は、メールデータ全体が無圧縮の場合と同等の応答性能を維持可能である。
【００８２】
なお、圧縮効率の観点からは、全てのメールをまとめて一つのデータとして（例えば、１つのファイルとして）圧縮する場合、データを効率よく圧縮することが可能である（即ち、圧縮効率は高くなる）。しかしながら、この場合、展開処理に多くの時間を要する（展開処理が非効率になる）可能性がある。例えば、一つのメールに関するデータを取得するために、全てのメールを含む圧縮データが展開される可能性がある。一方、各メールを個別に圧縮する場合、全てのメールを１つのファイルとして圧縮する場合に比して、展開処理に要する時間は短いものの、圧縮効率は低くなる。
【００８３】
これに対して、一般的に、メールを返信する際には、元のメール（返信されるメール）を引用することが多いという特徴がある。即ち、一連のスレッドに含まれるメールには、共通部分が多く存在すると考えられる。メールデータ管理装置１は、係る特徴を考慮して、スレッド毎に当該スレッドに含まれるメールをまとめて圧縮する。これにより、メールデータ管理装置１は、各メールを個別に圧縮する場合に比して、高い圧縮効率を達成可能である。また、メールデータ管理装置１は、全てのメールを一つのデータとして圧縮する場合に比して、短い時間で展開処理を実行可能である。なぜならば、一般的に、全てのメールを一つにまとめた圧縮データのサイズよりも、スレッド毎に当該スレッドに含まれるメールを圧縮したデータのサイズの方が小さく、含まれるメールの数も少ないからである。また、一般的に、スレッド毎にメールを操作する（例えば、スレッド毎にメールを参照する、等）こともよくあることから、メールデータ管理装置１は、そのようなリクエストに効率よく応答することが可能である。
【００８４】
［変形例］
以下、メールデータ管理装置１の変形例について説明する。本変形例におけるメールデータ管理装置１の構成は、上記第１の実施形態と同様としてよい。
【００８５】
本変形例においては、展開部１０９、メールデータ結合部１１０、及び、応答部１１２の一部の動作が、上記第１の実施形態とは相違する。以下、係る相違点について説明する。
【００８６】
本変形例における応答部１１２は、メールクライアント３からのリクエストに応じて圧縮部分データを含むメール本文のデータを提供する場合、まず、取得部１１１を介して取得された無圧縮部分データをメールクライアント３に提供する。応答部１１２は、展開処理を実行することなく無圧縮部分データを提供可能であることから、本変形例におけるメールデータ管理装置１は、例えば、メールクライアント３に対するレスポンスタイムを維持することが可能である。
【００８７】
また、本変形例における展開部１０９及びメールデータ結合部１１０は、例えば、応答部１１２における無圧縮部分データの提供と並行して、圧縮部分データの展開及び結合に関する処理を実行する。即ち、本変形例におけるメールデータ管理装置１は、無圧縮部分データの提供と、圧縮部分データを含むメールデータ全体の復元とを並行して実行することができる。これにより、本変形例におけるメールデータ管理装置１は、メールクライアント３に対するメールデータ全体の提供まで含めたターンアラウンドタイムの低下を抑制可能である。
【００８８】
＜第２の実施形態＞
以下、本開示に係る技術の第２の実施形態について、図面を参照して説明する。
【００８９】
［構成］
図７に例示するように、本実施形態におけるメールデータ管理装置７は、上記メールデータ管理装置１におけるメールデータ分解部１０５の代わりに、差分確認部７０１を有する。メールデータ管理装置７は、上記メールデータ管理装置１における圧縮部１０６の代わりに、差分管理部７０２を有する。メールデータ管理装置７は、上記メールデータ管理装置１におけるメールデータ結合部１１０の代わりに、差分結合部７０３を有する。以下、第１の実施形態におけるメールデータ管理装置１との差分について説明する。
【００９０】
差分確認部７０１は、同一のスレッドに含まれる１以上のメールについて、共通する部分（共通部分）と、異なる部分（差分部分）とを確認（特定）する。差分確認部７０１は、例えば、同一のスレッドに含まれる全てのメールについて、メール本体部分において共通する部分を、共通部分として特定してもよい。この場合、差分部分には、メールヘッダ部分と、メール本体部分における共通部分以外の部分とが含まれ得る。以下、同一のスレッドに含まれる１以上のメールにおける共通部分のデータを、共通部分データと記載することがある。また、共通部分データ以外のデータを、差分部分データと記載することがある。
【００９１】
差分管理部７０２は、差分確認部７０１により確認された差分部分と共通部分の関係を管理する。具体的には、差分管理部７０２は、例えば、スレッド毎に、スレッドに含まれる各メールの共通部分を用いてスレッドデータを生成してもよい。また、差分管理部７０２は、受信したメールのデータから共通部分データを取り除くことで、差分部分データを生成してもよい。差分管理部７０２は、また、各メールについて、共通部分が含まれる位置（各メールのデータにおいて、共通部分が配置される位置）を特定可能な情報（配置情報）を管理してもよい。係る配置情報は、例えば、メールを特定可能なｕｉｄと、当該メールが含まれるスレッドのＴｈｒｅａｄ−Ｉｄと、当該メールにおいて共通部分が配置される１以上の場所を特定可能な情報（例えば、メールボディ部分における先頭からのオフセット等）と、を含んでもよい。
【００９２】
差分管理部７０２は、格納部１０７を介して、各メールに関する差分部分データと、スレッドデータとをメールボックスに個別に格納してもよい。
【００９３】
差分結合部７０３は、差分管理部７０２を参照し、差分部分と共通部分を結合することで、元のメールデータを復元する。
【００９４】
図７における他の構成要素は、上記第１の実施形態と同様としてよい。
【００９５】
［動作］
図８及び図９に例示するフローチャートを参照して、メールデータ管理装置７の動作について説明する。図８は、メールデータ管理装置１が、メールサーバ２からメールを受信し、メールボックス１０８に格納する動作を例示するフローチャートである。
【００９６】
図８におけるステップＳ２０１乃至ステップＳ２０４並びにステップＳ２０７は、上記第１の実施形態において説明した図２に例示するステップＳ２０１乃至ステップＳ２０４並びにステップＳ２０７とそれぞれ同様としてよい。
【００９７】
メールデータ管理装置７（差分確認部７０１）は、受信したメールと、当該メールと同一のスレッドに含まれる他のメールとの共通部分及び差分部分を確認（特定）する（ステップＳ８０１）。
【００９８】
メールデータ管理装置７（差分確認部７０１）は、例えば、以下のような方法により上記共通部分及び差分部分を特定してもよい。係る方法の一つとして、メールデータ管理装置７は、例えば、スレッドデータに含まれる共通部分データが、受信したメールに含まれるか否かを確認してもよい。受信したメールが、スレッドデータと同じデータを含む場合、そのデータが共通部分として特定され、それ以外のデータが差分部分として特定される。他の方法として、メールデータ管理装置７は、例えば、受信したメールと、当該メールと同一のスレッドに含まれる他の全てのメールとの間の共通部分及び差分部分を確認してもよい。この場合、メールデータ管理装置７は、例えば、受信したメールと同じスレッドに含まれる他のメールを一度全て復元し、復元された各メールと、受信したメールとの間の共通部分及び差分部分を特定してもよい。上記に限定されず、メールデータ管理装置７は、他の適切な方法を用いて、受信したメールと、当該メールと同一のスレッドに含まれる他のメールとの共通部分及び差分部分を確認してよい。
【００９９】
なお、受信したメールが新たなスレッドの起点である場合（ステップＳ２０３においてＮＯ）、ステップＳ８０１において、差分確認部７０１は、当該メールの一部（典型的には、例えば、メール本体部分）を共通部分として適宜特定し、残りの部分を差分部分として特定してもよい。
【０１００】
差分確認部７０１は、確認した差分部分及び共通部分を、差分管理部７０２に提供してもよい。
【０１０１】
メールデータ管理装置７（差分管理部７０２）は、ステップＳ８０１において確認された共通部分を含むスレッドデータを生成してよい（ステップＳ８０２）。また、差分管理部７０２は、当該スレッドに含まれるメールのデータから共通部分データ（スレッドデータ）を取り除くことで、当該メールの差分部分データを生成してもよい。ステップＳ８０２において作成されるスレッドデータのデータサイズは、スレッドに含まれる全メールのデータサイズの総和よりも小さい。なぜならば、差分管理部７０２により各メールに共通に含まれる重複部分が取り除かれることで、データサイズが低減されるからである。例えば、メールＡ、メールＢ、メールＣに共通部分Ｄが含まれる場合、スレッドデータには共通部分Ｄが一つだけ含まれればよい。スレッドデータを用いて共通部分Ｄの重複を排除することで、メールデータ管理装置７は、メールボックス１０８に保存されるデータのサイズを低減可能である。
【０１０２】
なお、差分管理部７０２は、ステップＳ８０１において確認された共通部分及び差分部分に基づいて、各メールについて共通部分が含まれる位置を特定可能な配置情報を更新してもよい。
【０１０３】
以下、メールデータ管理装置７が、メールクライアント３からのリクエストに応じて、メールクライアント３にレスポンスを返す処理について、図９に例示するフローチャートを参照して説明する。
【０１０４】
図９におけるステップＳ３０１、ステップＳ３０２及びステップＳ３０９は、上記第１の実施形態において説明した図３に例示するステップＳ３０１、ステップＳ３０２及びステップＳ３０９とそれぞれ同様としてよい。
【０１０５】
受信したリクエストが、メールのヘッダ部分を取得するリクエストである場合（ステップＳ３０２において［メールヘッダのみ］）、メールデータ管理装置７（取得部１１１）は、メールボックス１０８から、当該メールに関する差分部分データを取得する（ステップＳ９０１）。
【０１０６】
受信したリクエストが、メール全体を取得するリクエストである場合（ステップＳ３０２において［メールデータ全体］）、メールデータ管理装置７（取得部１１１）は、リクエストされたメールの差分部分データと、指定されたメールが含まれるスレッドのスレッドデータとを取得する（ステップＳ９０１）。係るスレッドデータには、リクエストされたメールに関する共通部分データが含まれる。
【０１０７】
メールデータ管理装置７（差分結合部７０３）は、ステップＳ９０２において取得して共通部分データと、差分部分データとから、元のメールを復元する（ステップＳ９０３）。差分結合部７０３は、例えば、差分管理部７０２が管理する配置情報を参照し、差分部分データと、共通部分データとを結合することで、元のメールを復元してもよい。具体的には、差分管理部７０２は、例えば、配置情報に示された共通部分データにおける特定の箇所に差分部分データを配置することで、元のメールを復元することができる。
【０１０８】
上記のように構成されたメールデータ管理装置７は、メールをスレッド毎に管理し、各メールの共通部分と差分部分を管理することで、メールの保存に要する記憶容量を削減することができる。その理由は、メールデータ管理装置７が、同一スレッドに含まれる各メールを共通部分と差分部分とに分解し、共通部分はスレッドデータとして格納するとともに、各メールについては差分部分のみを格納するからである。これにより、メールデータ管理装置７は、同一スレッドに含まれる各メールから、重複部分を取り除くことが可能である。重複部分（共通部分）が取り除かれることにより、メールボックス１０８に格納される各メールの容量（データサイズ）は低減される。換言すると、メールデータ管理装置７は、同一スレッドに含まれる各メールについて、重複部分を取り除いた最低限のサイズのデータ（差分部分のデータ）を、メールボックス１０８に格納することができる。これにより、メールデータ管理装置７は、メールデータの記憶に要する記憶容量を低減することが可能である。
【０１０９】
また、上記第１の実施形態と同様、メールデータ管理装置７は、例えば、各メールのメールヘッダを、差分部分データとして個別に格納することができる。よって、メールデータ管理装置７は、共通部分データと差分データとの結合処理を行うことなく、一覧表示や、要約表示等に必要なデータをメールクライアント３に提供可能である。このため、メールデータ管理装置７は、メールデータ全体が分割されていない場合と同等の応答性能（レスポンスタイム）を維持可能である。以上より、メールデータ管理装置７は、メールデータの読み出し性能の低下を抑えることが可能である。
【０１１０】
［変形例］
以下、メールデータ管理装置７の変形例について説明する。本変形例におけるメールデータ管理装置７の構成は、上記第２の実施形態と同様としてよい。
【０１１１】
本変形例においては、差分管理部７０２及び差分結合部７０３の一部の動作が、上記第２の実施形態とは相違する。以下、係る相違点について説明する。
【０１１２】
本変形例における差分管理部７０２は、スレッド毎のスレッドデータを圧縮する。本変形例における差分管理部７０２は、格納部１０７を介して、圧縮したスレッドデータをメールボックス１０８に格納する。なお、具体的な圧縮アルゴリズムは適宜選択されてよい。
【０１１３】
本変形例における差分結合部７０３は、取得部１１１を介してメールボックス１０８から、圧縮されたスレッドデータを取得し、当該スレッドデータを展開する。
【０１１４】
本変形例によれば、メールデータ管理装置７は、各スレッドのスレッドデータを圧縮することから、メールボックス１０８に格納されるメールに関するデータのサイズを更に低減可能である。
【０１１５】
＜第３の実施形態＞
以下、本開示の第３の実施形態について説明する。第３の実施形態は、上記各実施形態に共通する基本的な実施形態である。
【０１１６】
図１０Ａに例示するように、本実施形態におけるメールデータ管理装置１０は、メールデータ保存部１００１と、スレッド判定部１００２と、メールデータ分解部１００３と、データサイズ調整部１００４と、を含む。メールデータ管理装置１０を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてよい。以下、それぞれの構成要素について説明する。
【０１１７】
メールデータ保存部１００１は、メールに関するデータを記憶可能に構成される。メールデータ保存部１００１は、後述するように、例えば、各メールが含まれるスレッドに関するデータを記憶してもよい。メールデータ保存部１００１は、スレッドに関するデータとは別に、メール毎に個別のデータを記憶してもよい。上記各実施形態におけるメールボックス１０８は、メールデータ保存部１００１の一つの実現例であると考えられる。メールデータ保存部１００１は、例えば、上記各実施形態におけるメールボックス１０８と同様の構成を有してもよく、同様の処理を実行可能であってもよい。
【０１１８】
スレッド判定部１００２は、１以上のメールが同一のスレッドに含まれるか否かを判定するよう構成される。スレッド判定部１００２は、例えば、各メールのメールヘッダに設定されたデータ（例えば、”Ｍｅｓｓａｇｅ−Ｉｄ”、”Ｉｎ−Ｒｅｐｌｙ−Ｔｏ”等）を参照して、各メールが同一のスレッドに含まれるか否かを判定してもよい。上記各実施形態におけるスレッド判定部１００２は、例えば、スレッド判定部１０２の一つの実現例であると考えられる。スレッド判定部１００２は、上記各実施形態におけるスレッド判定部１０２と同様の構成を有してもよく、同様の処理を実行可能であってもよい。
【０１１９】
メールデータ分解部１００３は、メールを構成するメールデータを、第１の部分データと、第２の部分データとに分解する。第１の部分データは、例えば、当該メールが含まれるスレッドに関連付けされたデータである、スレッドデータに含まれるデータである。係るスレッドデータは、例えば、スレッド毎に個別にメールデータ保存部１００１に記憶されてもよい。第２の部分データは、例えば、メール毎に個別のデータであり、メール毎に個別にメールデータ保存部１００１に記憶されてもよい。
【０１２０】
上記第１の実施形態における圧縮部分データ及び第２の実施形態における共通部分データは、いずれも第１の部分データの一例であると考えられる。また、上記第１の実施形態における無圧縮部分データ及び第２の実施形態における差分部分データは、いずれも第２の部分データの一例であると考えられる。
【０１２１】
上記第１の実施形態におけるメールデータ分解部１０５は、メールデータ分解部１００３の一例であると考えられる。メールデータ分解部１００３は、例えば、上記第１の実施形態におけるメールデータ分解部１０５と同様の構成を有してもよく、同様の処理を実行可能であってもよい。同様に、上記第２の実施形態における差分確認部７０１及び差分管理部７０２は、メールデータ分解部１００３の一例であると考えられる。メールデータ分解部１００３は、例えば、上記第２の実施形態における差分確認部７０１及び差分管理部７０２と同様の構成を有してもよく、同様の処理を実行可能であってもよい。
【０１２２】
データサイズ調整部１００４は、スレッド毎に、当該スレッドに含まれるメールに関する第１の部分データの少なくとも一部に基づいて、少なくとも当該スレッドに含まれるメールのデータサイズの総和よりも小さいデータサイズのスレッドデータを作成するよう構成される。
【０１２３】
データサイズ調整部１００４は、例えば、スレッド毎に、当該スレッドに含まれる各メールに関する第１の部分データを圧縮することで、スレッドデータを作成してもよい。これにより、当該スレッドに含まれる各メールに関する第１の部分データのサイズが低減される。よって、データサイズ調整部１００４は、当該スレッドに含まれる各メールのデータサイズの総和よりも小さいデータサイズのスレッドデータを作成することができる。
【０１２４】
データサイズ調整部１００４は、例えば、スレッド毎に、当該スレッドに含まれる各メールに共通する共通部分を第１の部分データとして抽出し、抽出した共通部分を含むスレッドデータを作成してもよい。これにより、データサイズ調整部１００４は、当該スレッドに含まれる各メールのデータサイズの総和よりも小さいデータサイズのスレッドデータを作成することができる。また、データサイズ調整部１００４は、各メールから、スレッドデータに含まれる共通部分を取り除くことで、メールデータ保存部１００１に記憶されるメールのデータサイズを低減可能である。
【０１２５】
上記第１の実施形態における圧縮部１０６は、データサイズ調整部１００４の一例であると考えられる。データサイズ調整部１００４は、例えば、上記第１の実施形態における圧縮部１０６と同様の構成を有してもよく、同様の処理を実行可能であってもよい。
【０１２６】
同様に、上記第２の実施形態における差分確認部７０１及び差分管理部７０２は、データサイズ調整部１００４の一例であると考えられる。データサイズ調整部１００４は、例えば、上記第２の実施形態における差分確認部７０１及び差分管理部７０２と同様の構成を有してもよく、同様の処理を実行可能であってもよい。
【０１２７】
なお、メールデータ管理装置１０は、図１０Ｂに例示するように、取得部１００５と、メールデータ結合部１００６と、応答部１００７と、を更に備えてもよい。
【０１２８】
取得部１００５は、あるメールについて、当該メールが含まれるスレッドに関するスレッドデータと、当該メールに関する第２の部分データとの少なくとも一方をメールデータ保存部１００１から取得するよう構成される。例えば、上記各実施形態における取得部１１１は、取得部１００５の一つの実現例であると考えられる。取得部１００５は、上記各実施形態における取得部１１１と同様の構成を備えてもよく、同様の処理を実行可能であってもよい。
【０１２９】
メールデータ結合部１００６は、あるメールについて取得部１００５が取得したスレッドデータと、第２の部分データとに基づいて、元のメールを生成（復元）するよう構成される。例えば、あるメールに関する第１の部分データを圧縮したデータがスレッドデータに含まれる場合、メールデータ結合部１００６は、当該スレッドデータを展開して第１の部分データを抽出し、抽出した第１の部分データと、第２の部分データとを結合することで、元のメールを復元してもよい。例えば、あるスレッドに含まれる各メールに共通する共通部分がスレッドデータに含まれる場合、メールデータ結合部１００６は、当該共通部分と、第２のメールデータとを適切に結合することで、元のメールを復元してもよい。
【０１３０】
上記第１の実施形態における展開部１０９及びメールデータ結合部１１０は、メールデータ結合部１００６の一つの実現例であると考えられる。この場合、メールデータ結合部１００６は、上記第１の実施形態における展開部１０９及びメールデータ結合部１１０と同様の構成を備えてもよく、同様の処理を実行可能であってもよい。また、上記第２の実施形態における差分管理部７０２及び差分結合部７０３は、メールデータ結合部１００６の一つの実現例であると考えられる。この場合、メールデータ結合部１００６は、上記第２の実施形態における差分管理部７０２及び差分結合部７０３と同様の構成を備えてもよく、同様の処理を実行可能であってもよい。
【０１３１】
応答部１００７は、例えばメールクライアント等からのリクエストにより指定されたメールの少なくとも一部を提供するよう構成される。具体的には、応答部１００７は、リクエストに応じて、取得部１００５により取得した第２の部分データの少なくとも一部を提供するか、又は、メールデータ結合部により復元された当該メールに関するメールデータの少なくとも一部（前記第１の部分データを含んでもよい）を提供する。上記各実施形態における応答部１１２は、応答部１００７の一つの実現例であると考えられる。応答部１００７は、応答部１１２と同様の構成を備えてもよく、同様の処理を実行可能であってもよい。
【０１３２】
上記のように構成されたメールデータ管理装置１０は、メールデータの記憶に要する記憶容量を低減しつつ、メールデータの読み出し性能の低下を抑えることが可能である。
【０１３３】
その理由は、以下の通りである。メールデータ管理装置１０は、メールを第１の部分データ及び第２の部分データに分割する。また、メールデータ管理装置１０は、当該メールが含まれるスレッド毎に、第１の部分データに基づいて、当該スレッドに含まれるメールのデータサイズの総和よりもデータサイズが小さいスレッドデータを作成する。これにより、メールデータ管理装置１０は、メールデータ保存部１００１に記憶されるメールのデータサイズを、スレッド毎に低減することが可能である。即ち、メールデータ管理装置１０は、メールデータの記憶に要する記憶容量を低減可能である。
【０１３４】
また、各メールに関する第１の部分データは、当該メールが含まれるスレッドに関するスレッドデータとして、スレッド毎にメールデータ保存部に記憶される。一方、各メールに関する第２の部分データは、メール毎に個別にメールデータ保存部に記録される。メールデータ管理装置１０は、例えば、当該メールが含まれるスレッドのスレッドデータから第１の部分データを抽出し、当該メールに関する第２の部分データと結合することで、あるメールに関するメールデータ全体を復元する。これより、例えば、メールクライアントからのリクエストに応じて比較的頻繁に読み出される部分（例えばヘッダ部分等）を第２の部分データとして分解することで、メールデータ管理装置１０は、第２の部分データのみを用いてリクエストに応答可能である。即ち、メールデータ管理装置１０は、メールデータ全体を復元することなくリクエストに素早く対応可能であることから、メールデータの読み出し性能の低下を抑えることが可能である。
【０１３５】
＜ハードウェア及びソフトウェア・プログラム（コンピュータ・プログラム）の構成＞
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
【０１３６】
以下の説明においては、上記各実施形態において説明したメールデータ管理装置（１、７、１０）をまとめて、単に「メールデータ管理装置」と記載する。また、これらメールデータ管理装置の各構成要素を、単に「メールデータ管理装置の構成要素」と記載する場合がある。
【０１３７】
上記各実施形態において説明したメールデータ管理装置は、１つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図（図１、図７、図１０Ａ、図１０Ｂ）に示した各構成要素は、その一部又は全部を統合したハードウェア（処理ロジックを実装した集積回路あるいは記憶デバイス等を用いて構成されたアプライアンス等）を用いて実現されてもよい。
【０１３８】
メールデータ管理装置が専用のハードウェアにより実現される場合、係るメールデータ管理装置の構成要素は、例えば、それぞれの機能を提供可能な回路構成（ｃｉｒｃｕｉｔｒｙ）により実現されてもよい。係る回路構成は、例えば、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）等の集積回路や、当該集積回路を用いて実現されたチップセット等を含む。この場合、メールデータ管理装置の構成要素が保持するデータは、例えば、ＳｏＣとして統合されたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）領域やフラッシュメモリ領域、あるいは、当該ＳｏＣに接続された記憶デバイス（半導体記憶装置等）に記憶されてもよい。また、この場合、メールデータ管理装置の各構成要素を接続する通信回線としては、周知の通信バス等を採用してもよい。また、各構成要素を接続する通信回線は、それぞれの構成要素間をピアツーピアで接続してもよい。
【０１３９】
また、上述したメールデータ管理装置は、図１１に例示するような汎用のハードウェア装置１１００（例えばコンピュータ等）と、係るハードウェア装置１１００によって実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、メールデータ管理装置は、１台以上の適切な数の汎用のハードウェア装置１１００と、ソフトウェア・プログラムとの組合せにより構成されてもよい。
【０１４０】
図１１における演算装置１１０１は、ＣＰＵ（中央処理装置：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ等の演算処理装置である。演算装置１１０１は、例えば後述する不揮発性記憶装置１１０３に記憶された各種ソフトウェア・プログラムをメモリ１１０２に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態におけるメールデータ管理装置の各構成要素の機能は、演算装置１１０１により実行されるソフトウェア・プログラムを用いて実現されてもよい。
【０１４１】
メモリ１１０２は、演算装置１１０１から参照可能な、ＲＡＭ等のメモリデバイスであり、ソフトウェア・プログラムや各種データ等を記憶する。なお、メモリ１１０２は、揮発性のメモリであってもよい。
【０１４２】
不揮発性記憶装置１１０３は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置等の、不揮発性の記憶装置（ストレージデバイス）である。不揮発性記憶装置１１０３は、各種ソフトウェア・プログラムやデータ等を記憶可能である。例えば、メールデータ管理装置の各構成要素を実現可能なプログラムは、不揮発性記憶装置１１０３に記憶されてもよい。例えば、上記各実施形態におけるメールボックス１０８及びメールデータ保存部１００１は、不揮発性記憶装置１１０３にメールのデータを記憶（ストア）してもよい。
【０１４３】
ドライブ装置１１０４は、例えば、後述する記録媒体１１０５に対するデータの読み込みや書き込みを処理する装置である。
【０１４４】
記録媒体１１０５は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。例えば、メールデータ管理装置の各構成要素を実現可能なプログラムは、記録媒体１１０５に記録されていてもよい。
【０１４５】
ネットワークインタフェース１１０６は、通信ネットワークとの間の通信データの送受信を制御する装置である。ネットワークインタフェース１１０６は、例えば、１以上の通信ポートを備え、係る通信ポートを介して、通信ネットワークとの間で通信データを送受信してもよい。例えば、上記説明したメールデータ管理装置は、メールサーバ２及びメールクライアント３と、ネットワークインタフェース１１０６を介して接続された通信ネットワークにより接続されてもよい。
【０１４６】
図１１に例示するハードウェア装置１１００の各構成要素は、例えば、適切な通信方法（通信バス等）を用いて、相互に通信可能に接続されていてもよい。
【０１４７】
上述した各実施形態を例に説明した本開示におけるメールデータ管理装置、あるいはその構成要素は、例えば、図１１に例示するハードウェア装置１１００に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。
【０１４８】
より具体的には、例えば、係るハードウェア装置１１００に対して供給したソフトウェア・プログラムを、演算装置１１０１が実行することによって、本開示に関する技術が実現されてもよい。この場合、係るハードウェア装置１１００で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト、仮想環境基盤等のミドルウェアなどが各処理の一部を実行してもよい。
【０１４９】
上述した各実施形態において、上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能（処理）単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。図１、図７、図１０Ａ及び図１０Ｂの各図に例示したメールデータ管理装置の各構成要素をソフトウェアモジュールとして実現する場合、例えば、これらのソフトウェアモジュールが不揮発性記憶装置１１０３に記憶されてもよい。そして、演算装置１１０１がそれぞれの処理を実行する際に、これらのソフトウェアモジュールをメモリ１１０２に読み出してもよい。また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。このような構成により、これらのソフトウェアモジュールは、相互に通信可能に接続される。
【０１５０】
更に、上記ソフトウェア・プログラムは記録媒体１１０５に記録されてもよい。この場合、上記ソフトウェア・プログラムは、メールデータ管理装置の出荷段階、あるいは運用段階等において、適宜ドライブ装置１１０４を通じて不揮発性記憶装置１１０３に格納されるよう構成されてもよい。
【０１５１】
なお、上記した各種ソフトウェア・プログラムは、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具（ツール）を利用して上記ハードウェア装置１１００にインストールされてもよい。また、各種ソフトウェア・プログラムは、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順により、上記ハードウェア装置１１００にインストールされてもよい。そして、このような場合において、本開示に関する技術は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置１１００と独立した媒体に限らず、ＬＡＮやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記録媒体を含む。
【０１５２】
また、上述したメールデータ管理装置の構成要素は、図１１に例示するハードウェア装置１１００を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、図１１に例示するハードウェア装置１１００の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図１１に例示するハードウェア装置１１００を物理的な装置として構成した場合と同様の構成により、本開示に関する技術を実現可能である。
【０１５３】
以上、本開示を、上述した模範的な実施形態に適用した例として説明した。上記各実施形態においては、本開示に関する技術をメールデータ管理装置（１、７、１０）に適用した例を説明した。例えば、上記各実施形態におけるメールデータ管理装置（１、７、１０）を動作させることによって、本開示に関するメールデータ管理方法を実現することができる。なお、本開示は、複数の装置を含むシステムとして実現されてもよい。
【０１５４】
また、本開示の技術的範囲は、上述した実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本開示の技術的範囲に含まれ得る。上述した実施形態及び具体例を組み合わせた実施形態も本開示の技術的範囲に含まれる。更に、上述した実施形態と、上述した実施形態に変更又は改良を加えた新たな実施形態とを組み合わせた実施形態も、本開示の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【符号の説明】
【０１５５】
１    メールデータ管理装置
２    メールサーバ
３    メールクライアント
１０１    メール受信部
１０２    スレッド判定部
１０３    関連メール管理部
１０４    同一スレッドデータ取得部
１０５    メールデータ分解部
１０６    圧縮部
１０７    格納部
１０８    メールボックス
１０９    展開部
１１０    メールデータ結合部
１１１    取得部
１１２    応答部
７０１    差分確認部
７０２    差分管理部
７０３    差分結合部
１００１    メールデータ保存部
１００２    スレッド判定部
１００３    メールデータ分解部
１００４    データサイズ調整部
１００５    取得部
１００６    メールデータ結合部
【図１】
2018041206.tif 000003
【図２】
2018041206.tif 000004
【図３】
2018041206.tif 000005
【図４】
2018041206.tif 000006
【図５】
2018041206.tif 000007
【図６】
2018041206.tif 000008
【図７】
2018041206.tif 000009
【図８】
2018041206.tif 000010
【図９】
2018041206.tif 000011
【図１０Ａ】
2018041206.tif 000012
【図１０Ｂ】
2018041206.tif 000013
【図１１】
2018041206.tif 000014