(57)【要約】【課題】  マルチパートメッセージからパートのデータを抽出するための処理負荷が大きくなってしまう場合があった。【解決手段】  受信装置１０２の制御部２０１は、受信したマルチパートメッセージと予め受信されたメッセージ情報が対応するか判断する（Ｓ５０７）。そして、対応すると判断するとメッセージ情報からデータ長を表わすデータ長情報を取得し（Ｓ５１０）、メッセージ情報に対応すると判断されたマルチパートメッセージから、データ長情報に基づいて前記データ長のデータを抽出する（Ｓ５０９）。【選択図】  図３
2010092156.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２のメッセージを受信する受信装置であって、
前記第１のメッセージと前記第２のメッセージが対応するか判断する判断手段と、
前記第１のメッセージからデータ長を表わすデータ長情報を取得する取得手段と、
前記第１のメッセージに対応すると前記判断手段が判断した前記第２のメッセージから前記データ長情報に基づいて前記データ長のデータを抽出する抽出手段と
を有することを特徴とする受信装置。
【請求項２】
前記第１のメッセージは、対応する第２のメッセージの識別情報を含み、
前記判断手段は、前記識別情報に応じて、前記第１のメッセージと前記第２のメッセージが対応するか判断する
ことを特徴とする請求項１記載の受信装置。
【請求項３】
前記取得手段は、前記第１のメッセージから、前記第２のメッセージに含まれる第１のデータの識別情報を含む第１のデータ長情報、及び、前記第２のメッセージに含まれる第２のデータの識別情報を含む第２のデータ長情報を取得し、
前記抽出手段は、前記第１のデータ長情報に基づいて、前記第２のメッセージに含まれる第１のデータを抽出し、前記第２のデータ長情報に基づいて、前記第２のメッセージに含まれる第２のデータを抽出する
ことを特徴とする請求項１記載の受信装置。
【請求項４】
前記第２のメッセージから、前記データの開始を示す文字列を検出する検出手段を有し、
前記抽出手段は、前記検出された文字列、及び、前記データ長情報に基づいて、前記データ長のデータを抽出する
ことを特徴とする請求項１記載の受信装置。
【請求項５】
前記データ長情報と前記第２のメッセージの識別情報とを対応付けて記憶する記憶手段と、
前記第２のメッセージから、前記データとそれ以外のデータとの区切りを示す文字列を検出する検出手段とを有し、
前記受信された前記第２のメッセージに対応するデータ長情報が前記記憶手段に記憶されていない場合、
前記抽出手段は、
前記検出手段による前記文字列の検出に応じて前記データ長のデータを抽出する
ことを特徴とする請求項２記載の受信装置。
【請求項６】
第１及び第２のメッセージを受信する受信装置が行うデータ抽出方法であって、
前記第１のメッセージと前記第２のメッセージが対応するか判断する判断工程と、
前記第１のメッセージからデータ長を表わすデータ長情報を取得する取得工程と、
前記第１のメッセージに対応すると前記判断工程で判断した前記第２のメッセージから前記データ長情報に基づいて前記データ長のデータを抽出する抽出工程と
を有することを特徴とするデータ抽出方法。
【請求項７】
第１及び第２のメッセージを受信するコンピュータに、
前記第１のメッセージと前記第２のメッセージが対応するか判断する判断手順と、
前記第１のメッセージからデータ長を表わすデータ長情報を取得する取得手順と、
前記第１のメッセージに対応すると前記判断手順で判断した前記第２のメッセージから前記データ長情報に基づいて前記データ長のデータを抽出する抽出手順と
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージの受信装置、及び受信装置が行うデータ抽出方法に関する。
【背景技術】
【０００２】
従来、電子メールやＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）メッセージの送受信時に、メッセージ本体にファイルを添付することが一般的に行われている。ファイルを添付する形式としてはＭＩＭＥ／Ｍｕｌｔｉｐａｒｔ（Ｍｕｌｔｉｐｕｒｐｏｓｅ  Ｉｎｔｅｒｎｅｔ  Ｍａｉｌ  Ｅｘｔｅｎｓｉｏｎ）形式が一般的に広く使われている。ＭＩＭＥ／Ｍｕｌｔｉｐａｒｔでは、メッセージ本文と添付ファイルをバウンダリ文字列で区切ることにより複数パートを１つにパッケージングしてマルチパートメッセージとすることを可能にしている。
【０００３】
特許文献１には、マルチパートメッセージから検出されるバウンダリ文字列によって、メール本文のパートと添付ファイルのパートを区別することについて記載されている。
【特許文献１】特開２００８−１０９３８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、マルチパートメッセージに含まれるデータを抽出するための処理負荷が大きくなってしまう場合があった。
【０００５】
すなわち、例えば、ＭＩＭＥ／Ｍｕｌｔｉｐａｒｔ仕様のマルチパートメッセージから、あるパートのデータを抽出するためには、マルチパートメッセージをはじめから順番に読んでいき、読んだデータをバウンダリ文字列と比較していく必要がある。このため、特に大容量のデータが添付されている場合、受信側の処理負荷が大きくなってしまうことがあった。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、マルチパートメッセージに含まれるデータを抽出するための処理負荷を低減することである。
【課題を解決するための手段】
【０００７】
上記の問題点を解決するために、本発明の受信装置は、例えば、以下の構成を有する。即ち、第１及び第２のメッセージを受信する受信装置であって、前記第１のメッセージと前記第２のメッセージが対応するか判断する判断手段と、前記第１のメッセージからデータ長を表わすデータ長情報を取得する取得手段と、前記第１のメッセージに対応すると前記判断手段が判断した前記第２のメッセージから前記データ長情報に基づいて前記データ長のデータを抽出する抽出手段とを有する。
【０００８】
また、本発明のデータ抽出方法は、第１及び第２のメッセージを受信する受信装置が行うデータ抽出方法であって、前記第１のメッセージと前記第２のメッセージが対応するか判断する判断工程と、前記第１のメッセージからデータ長を表わすデータ長情報を取得する取得工程と、前記第１のメッセージに対応すると前記判断工程で判断した前記第２のメッセージから前記データ長情報に基づいて前記データ長のデータを抽出する抽出工程とを有する。
【発明の効果】
【０００９】
本発明によれば、マルチパートメッセージに含まれるデータを抽出するための処理負荷を低減できる。
【発明を実施するための最良の形態】
【００１０】
＜実施形態１＞
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。
【００１１】
図１は、本実施形態におけるネットワークの構成例を示すブロック図である。図１において１０１、１０２はそれぞれ同等の機能を有する通信装置であるが、本形態では、送信装置１０１から受信装置１０２へメッセージを送信する場合について説明する。また、１１０はネットワークであり、送信装置１０１、及び受信装置１０２はネットワーク１１０によりお互いに接続されている。
【００１２】
次に、送信装置１０１、及び受信装置１０２のハードウェア構成について図２を用いて説明する。上述のように、本形態における送信装置１０１、及び受信装置１０２はそれぞれ同等の機能を有する通信装置である。ただし、送信装置１０１がメッセージの送信専用の装置であり、受信装置１０２がメッセージの受信専用の装置であっても良い。また、送信装置１０１、受信装置１０２は、パーソナルコンピュータ、ワークステーション、ノートブックＰＣ、コンピュータを内蔵した各種家電製品、ゲーム機、携帯電話、デジタルビデオカメラ、デジタルカメラなどのうち、メッセージを通信可能な機器によって実施可能である。
【００１３】
図２は、送信装置１０１、受信装置１０２のハードウェア構成の一例を示すブロック図である。送信装置１０１、受信装置１０２は、それぞれ、制御部２０１、入力部２０２、出力部２０３、通信制御部２０４、及び記憶部２０５を備える。
【００１４】
図２において、制御部２０１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、及び周辺機器などを含み、装置全体を制御する。入力部２０２は、キーボードやマウスなどを接続するためのインターフェースを含み、自装置への指示や各種入力を制御する。出力部２０３は、ディスプレイなどを接続するためのインターフェースを含み、自装置の状態や処理結果などの出力を制御する。通信制御部２０４は、ネットワークとの間で通信するためのインターフェースを含み、ネットワーク１１０を通して他の通信装置との通信を制御する。記憶部２０５は、大容量記憶装置へのアクセスを制御するインターフェースを含む記憶部である。そして、システムバス２１０により、上述の各部が接続されている。
【００１５】
次に、送信装置１０１と受信装置１０２との間で行われる、マルチパートメッセージの送受信処理の流れについて図３を用いて説明する。尚、マルチパートメッセージとは、メッセージ本文のパートと、例えば１つ以上の添付ファイルのパートとを含む複数のパートで構成されたメッセージである。このメッセージ本文と添付ファイルを例えば、バウンダリ文字列で区切ることにより、複数のパートを含むメッセージを１つのマルチパートメッセージとして送受信することができる。マルチパートメッセージとして送受信されるメッセージの例として、例えば、電子メールやＳＯＡＰメッセージがある。
【００１６】
図３は、送信装置１０１から受信装置１０２にマルチパートメッセージを送受信する際の処理の概要を示すシーケンス図である。
【００１７】
Ｓ３０１において、送信装置１０１は、通信制御部２０４を介して、ＭｅｓｓａｇｅＩｄとＣｏｎｔｅｎｔＩｄ、及び各パートのデータ長を含むメッセージ情報（第１のメッセージ）を受信装置１０２に対して送信する。尚、このＭｅｓｓａｇｅＩＤは、これから送信されるマルチパートメッセージ（第２のメッセージ）の識別情報（ＭｅｓｓａｇｅＩＤ）である。ＣｏｎｔｅｎｔＩＤは、マルチパートメッセージである第２のメッセージに含まれる各パートの識別情報（ＣｏｎｔｅｎｔＩＤ）であり、データ長は、第２のメッセージの各パートのデータ長の情報である。ＭｅｓｓａｇｅＩＤとは、マルチパートメッセージに固有に割り当てられる文字列である。また、ＣｏｎｔｅｎｔＩＤとは、マルチパートメッセージで送られる各パートのコンテンツにそれぞれ固有に割り当てられる文字列である。つまり、メッセージ情報には、これから送信されるマルチパートメッセージの識別情報（ＭｅｓｓａｇｅＩＤ）と、それに含まれる各パートの識別情報（ＣｏｎｔｅｎｔＩＤ）と、各パートのデータ長の情報が含まれる。また、トランスポートプロトコルを通じて、ＳＯＡＰメッセージごとにＡｃｔｉｏｎの値が送信される。受信装置１０２は、受信したメッセージのＡｃｔｉｏｎの値に基づいて、受信したメッセージがメッセージ情報（第１のメッセージ）であるか判定することができる。
【００１８】
また、Ｓ３０１において、通信制御部２０４を介してメッセージ情報（第１のメッセージ）を受け取った受信装置１０２は、それに含まれる各データを制御部２０１に含まれるＲＡＭに記憶する。
【００１９】
次にＳ３０２において、受信装置１０２は、メッセージ情報の受信確認を通信制御部２０４を介して送信装置１０１に送信し、Ｓ３０３に進む。
【００２０】
Ｓ３０３において、送信装置１０１は、Ｓ３０１で送信したメッセージ情報と同じＭｅｓｓａｇｅＩＤを持つマルチパートメッセージ（第２のメッセージ）を通信制御部２０４を介して受信装置１０２へ送信する。このように、本形態の送信装置１０１は、メッセージ情報の受信確認を受け取ってからマルチパートメッセージを送信する。このようにすることで、受信装置１０２がメッセージ情報の受信処理を完了していない状態でマルチパートメッセージを受信してしまうことにより、メッセージ情報を利用したパート抽出できなくなることを防止する。尚、本形態の送信装置１０１は、メッセージ情報を送信してから一定時間経過してもメッセージ情報の受信確認を受信しなかった場合、メッセージ情報（第１のメッセージ）を再送する。このようにすることによって、受信装置１０２が何らかの理由によってメッセージ情報が正常に受信できなかった場合でも、再送されたメッセージ情報を取得することができる。ただし、メッセージ情報の再送は行わずに、マルチパートメッセージを送るようにしても良い。
【００２１】
Ｓ３０３において、マルチパートメッセージを受信した受信装置１０２は、受信したマルチパートメッセージに対応するメッセージ情報のデータが記憶されているか判断する。そして、マルチパートメッセージに対応するメッセージ情報のデータが記憶されている場合は、各パートのデータ長の値を読み出す。つまり、Ｓ３０３において、受信装置１０２は、受信したマルチパートメッセージに含まれるＭｅｓｓａｇｅＩＤと同じＭｅｓｓａｇｅＩＤをＲＡＭから検索する。そして、ＭｅｓｓａｇｅＩＤがＲＡＭから見つかった場合は、そのＭｅｓｓａｇｅＩＤに対応付けて記憶されている各パートのデータ長を読み出す。  図４は、メッセージ情報、及びマルチパートメッセージの例を模式化したものである。本実施形態で送信されるマルチパートメッセージはＳＯＡＰメッセージである。一般的に、ＳＯＡＰメッセージは、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）をトランスポートプロトコルとして通信される。しかし、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）やその他のプロトコルを使って送信される場合も本発明は適用可能である。
【００２２】
図４において、４０１は、Ｓ３０１で送られるメッセージ情報の例である。また、４０２は、Ｓ３０３で送信されるマルチパートメッセージの例である。図４に示すように、メッセージ情報４０１の＜ｓｏａｐ：Ｂｏｄｙ＞（ＳＯＡＰボディ）に含まれるＭｅｓｓａｇｅＩＤと、マルチパートメッセージ４０２のヘッダに記述されているＭｅｓｓａｇｅＩＤは同じ文字列である。これは、メッセージ情報４０１がマルチパートメッセージ４０２に対応していることを示している。つまり、図４に示すメッセージ情報４０１が、マルチパートメッセージ４０２の各パートのデータ長を列挙したメッセージ情報だということを示している。
【００２３】
また、メッセージ情報４０１のＭｅｓｓａｇｅＩｄ要素に続くｐａｒｔｓ要素は複数のｐａｒｔ要素をもつことが可能である。また、各ｐａｒｔ要素の子要素として記述されるｃｏｎｔｅｎｔＩｄ要素には、マルチパートメッセージ４０２の対応するパートのＣｏｎｔｅｎｔＩｄが記述される。また、各ＣｏｎｔｅｎｔＩＤの子要素であるｌｅｎｇｔｈ要素には、それぞれ、マルチパートメッセージ４０２の対応するパートのデータ長が記述される。つまり、メッセージ情報４０１に記述される１つのｐａｒｔ要素が、マルチパートメッセージ４０２における１つのパートに対応している。また、ｐａｒｔ要素に含まれるｌｅｎｇｔｈ要素には、マルチパートメッセージ４０２において対応するパートのデータ長が記述されている。
【００２４】
本実施形態では、マルチパートメッセージ４０２に含まれる第１の添付ファイルのＣｏｎｔｅｎｔＩｄ（ａｔｔａｃｈｍｅｎｔ１＠ｃａｎｏｎ．ｃｏｍ）が矢印４１１で示すようにメッセージ情報４０１に記述されている。また、マルチパートメッセージ４０２に含まれる第２の添付ファイルのＣｏｎｔｅｎｔＩｄ（ａｔｔａｃｈｍｅｎｔ２＠ｃａｎｏｎ．ｃｏｍ）が、矢印４１２に示すようにメッセージ情報４０１に記述される。
【００２５】
メッセージ情報４０１に含まれるデータ長は、マルチパートメッセージ４０２に含まれる添付ファイルのデータ長であるが、添付ファイルのヘッダ（図４におけるＣｏｎｔｅｎｔＩＤなど）のデータ長は、含まない。
【００２６】
次に、メッセージ情報とマルチパートメッセージを受信する受信装置１０２の処理について図５を用いて詳細に説明する。
【００２７】
尚、受信装置１０２は、メッセージ情報（第１のメッセージ）、及びマルチパートメッセージ（第２のメッセージ）を受信する受信装置である。また、本実施形態の受信装置１０２は、図５を用いて説明する各処理を、記憶されたプログラムに基づいて行う。即ち、受信装置１０２の制御部１０１は、例えば記憶部２０５に記憶されている本発明に係るプログラムを適宜読み出し、処理を実行する。上述のように、受信装置１０２の制御部１０１には、ＣＰＵ、ＲＯＭ、ＲＡＭが含まれている。
【００２８】
図５は、受信装置１０２がメッセージを受け取る際の処理の詳細を示したフローチャートである。
【００２９】
受信装置１０２はＳ５０１でメッセージを受信すると、Ｓ５０２に進む。
【００３０】
Ｓ５０２において、受信装置１０２の制御部２０１は、受信したメッセージに記述されているＡｃｔｉｏｎの値が、データ長を列挙したメッセージ情報のＡｃｔｉｏｎの値と一致するか判定する。メッセージ情報に対応するＡｃｔｉｏｎの値は、予め決められている。
【００３１】
Ｓ５０２において、受信したメッセージのＡｃｔｉｏｎの値とメッセージ情報のＡｃｔｉｏｎの値が一致する場合、制御部２０１は、それがメッセージ情報４０１であると判断し、Ｓ５０３に進む。一方、受信したメッセージのＡｃｔｉｏｎの値とメッセージ情報のＡｃｔｉｏｎの値が一致しない場合、制御部２０１は、それがメッセージ情報ではないと判断し、Ｓ５０５に進む。つまり、Ｓ５０２において、制御部２０１は、Ｓ５０１で受信したメッセージが、メッセージ情報であるか否かを判定する。
【００３２】
Ｓ５０３において、制御部２０１は、メッセージ情報のボディを読み込み、ボディから取得したＭｅｓｓａｇｅＩｄを記憶し、Ｓ５０４に進む。上述のように、制御部２０１には、ＣＰＵ、ＲＡＭ、ＲＯＭ等が含まれている。
【００３３】
Ｓ５０４（取得手順）において、制御部２０１は、メッセージ情報のボディを読み込み、ボディから取得したＣｏｎｔｅｎｔＩｄの値とそれに対応するデータ長の値とを組にしてＭｅｓｓａｇｅＩｄと対応付けて記録し、受信処理を終了する。
【００３４】
即ち、Ｓ５１０において、制御部２０１は、メッセージ情報（第１のメッセージ）からデータ長を表わすデータ長情報を取得する。
【００３５】
つまり、Ｓ５０４の処理が終了した時点において、受信装置１０２の制御部２０１には、ＭｅｓｓａｇｅＩＤと、そのメッセージに含まれる各パートのＣｏｎｔｅｎｔＩＤ、及び、各パートのデータ長が対応付けられた状態で記憶される。
【００３６】
尚、図４の例に示したように、マルチパートメッセージ４０２に複数のパートが存在する場合、それぞれのパートにＣｏｎｔｅｎｔＩＤが付加される。つまり、例えば、マルチパートメッセージ（第２のメッセージ）には、ＣｏｎｔｅｎｔＩＤがａｔｔａｃｈｍｅｎｔ１＠ｃａｎｏｎ．ｃｏｍで示されるパート（第１のデータ）とａｔｔａｃｈｍｅｎｔ２＠ｃａｎｏｎ．ｃｏｍで示されるパート（第２のデータ）が含まれている。そして、制御部２０１は、メッセージ情報を受信すると、Ｓ５０４において、第１のデータのＣｏｎｔｅｎｔＩＤと第１のデータ長（１０２４００）の情報、及び、第２のデータのＣｏｎｔｅｎｔＩＤと第２のデータ長（２０４８００）の情報を取得する。
【００３７】
即ち、制御部２０１は、Ｓ５０４で、メッセージ情報から、マルチパートメッセージに含まれる第１のデータの識別情報（ＣｏｎｔｅｎｔＩＤ）を含む第１のデータ長情報、及び第２のデータの識別情報（ＣｏｎｔｅｎｔＩＤ）を含む第２のデータ長情報を取得する。
【００３８】
Ｓ５０２において、制御部２０１は、Ａｃｔｉｏｎの値があらかじめ登録されているメッセージ情報のＡｃｔｉｏｎの値と違う場合、Ｓ５０５において、送られてきたメッセージがマルチパートメッセージか否かを判断する。送られてきたメッセージがマルチパートメッセージではない場合、Ｓ５０６においてメッセージを処理して終了する。送られてきたメッセージがマルチパートメッセージか否かは、受信したメッセージのヘッダに含まれる情報から判断する。
【００３９】
一方、Ｓ５０５において、送られてきたメッセージがマルチパートメッセージであると判断された場合は、Ｓ５０７に進む。
【００４０】
Ｓ５０７（判断手順）において、受信装置１０２の制御部２０１は、マルチパートメッセージのＭｅｓｓａｇｅＩｄが受信装置１０２の制御部２０１に記憶されているか否かを確認する。マルチパートメッセージに対応するメッセージ情報をすでに受信している場合は、ＭｅｓｓａｇｅＩＤが制御部２０１に記憶されている。
【００４１】
即ち、受信装置１０２の制御部２０１は、Ｓ５０７において、メッセージ情報（第１のメッセージ）とマルチパートメッセージ（第２のメッセージ）が対応するか判断する。
【００４２】
また、制御部２０１は、識別情報（ＭｅｓｓａｇｅＩＤ）に応じて、メッセージ情報とマルチパートメッセージが対応するか判断する。受信装置１０２に送られてきたマルチパートメッセージのＭｅｓｓａｇｅＩｄが記憶されていない場合、Ｓ５０８に進む。
【００４３】
Ｓ５０８において、受信装置１０２の制御部２０１は、通常のＭＩＭＥ−Ｍｕｌｔｉｐａｒｔにおけるパートの区切りを特定する処理を行う。すなわち、制御部２０１は、マルチパートメッセージを先頭から順に読み込み、読み込んだデータとバウンダリ文字列を比較し、バウンダリ文字列が出現した箇所をパートの区切りとして特定し、Ｓ５０９に進む。
【００４４】
一方、Ｓ５０７でＭｅｓｓａｇｅＩｄが受信装置１０２の制御部２０１に記憶されていると判断された場合、Ｓ５１０に進む。
【００４５】
Ｓ５１０において、制御部２０１は、ＭｅｓｓａｇｅＩｄに対応されているＣｏｎｔｅｎｔＩｄとデータ長の値の組を取り出し、ＭＩＭＥ−Ｍｕｌｔｉｐａｒｔの各パートのヘッダに記述されているＣｏｎｔｅｎｔＩｄからデータ長を取得する。そして、制御部２０１は、マルチパートメッセージを先頭から順に読み込んでいく。その結果、Ｓ５０４で記憶したＣｏｎｔｅｎｔＩＤを検出すると、制御部２０１は、そのＣｏｎｔｅｎｔＩＤのヘッダの次からバウンダリ文字列との比較を行わずに、読み込んだバイト数をカウントしていく。そして、そのカウント値が取得したデータ長に合致したところをパートの区切りとして特定し、Ｓ５０９に進む。尚、この一致した個所にバウンダリ文字列が存在するか、確認してもよい。
【００４６】
尚、本形態において、制御部２０１は、メッセージの本文に添付されたパートが開始する位置を、文字列の検出によって行う。つまり、制御部２０１は、メッセージの先頭から文字列を読み込み、添付されたパートの開始を示す文字列（バウンダリ文字列）を検出する。そして、検出された文字列から上述のデータ長の情報を用いて、当該パートの区切りを特定する。
【００４７】
また、Ｓ５０４において、複数のデータ長情報を取得している場合、制御部２０１は、複数のデータ長情報に基づいて、複数のパートのそれぞれの区切りを特定する。Ｓ５１０において、制御部がパートの区切りを特定するとＳ５０９に進む。
【００４８】
Ｓ５０９（抽出手順）において、制御部２０１は、Ｓ５０８又はＳ５１０で特定されたパートの区切りに基づいて、マルチパートメッセージの各パートを抽出する。つまり、例えば、Ｓ５１０において、メッセージ情報からデータ長情報を取得していた場合、それに基づいてデータ長のデータ（パート）を抽出する。
【００４９】
即ち、Ｓ５０９において、制御部２０１は、メッセージ情報（第１のメッセージ）に対応すると判断されたマルチパートメッセージ（第２のメッセージ）から、データ長情報に基づいてデータ長のデータを抽出する。
【００５０】
また、Ｓ５０４において、複数のデータ長情報を取得している場合、その複数のデータ長情報に基づいて、複数のパートのデータを抽出する。
【００５１】
即ち、制御部２０１は、第１のデータ長情報に基づいて、マルチパートメッセージに含まれる第１のデータを抽出し、第２のデータ長情報に基づいて、マルチパートメッセージに含まれる第２のデータを抽出する。
【００５２】
一方、Ｓ５０８において、バウンダリ文字列の検出によってパートの区切りを特定した場合は、その検出結果に基づいて各パートを抽出する。制御部２０１は、Ｓ５０９において、各パートを抽出した後、パートのデータに応じた処理を実行し、メッセージの受信処理を終了する。パートのデータに応じた処理には、例えば、パートのデータの表示、再生、記録などを含む。
【００５３】
以上説明したように、本形態の受信装置１０２は、受信されたマルチパートメッセージに対応するメッセージ情報が記憶されているか否かに応じて、各パートを抽出する処理を切り替える。すなわち、マルチパートメッセージに対応するメッセージ情報が記憶されている場合は、メッセージ情報に含まれる各ｐａｒｔ要素のｌｅｎｇｔｈ（データ長）の値を用いて、各パートを抽出する。一方、マルチパートメッセージに対応するメッセージ情報が記憶されていない場合は、受信したメッセージのデータを順次読み出し、各パートの区切りを示すバウンダリ文字列との比較を行うことによって特定された各パートの区切りに基づいて各パートを抽出する。
【００５４】
このようにすることで、受信装置１０２は、あらかじめデータ長を列挙したメッセージ情報を送ってこない送信装置からマルチパートメッセージを受信した場合には、バウンダリを検索することで各パートのデータを抽出できる。一方、あらかじめデータ長を列挙したメッセージ情報を送ってくる送信装置からマルチパートメッセージを受信した場合には、バウンダリを検索するのではなく、バイト数を単純にカウントする処理で各パートのデータを抽出できる。従って、相互接続性を妨げずにより高速にマルチパートメッセージから各パートのデータを抽出することが可能となる。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施形態におけるネットワーク構成例
【図２】送信装置１０１、受信装置１０２のハードウェア構成例
【図３】メッセージを送受信する際の処理の概要を示すシーケンス図
【図４】メッセージの例を模式化した図
【図５】受信装置１０２によるメッセージの受信処理を示したフローチャート
【符号の説明】
【００５６】
２０１  制御部
２０２  入力部
２０３  出力部
２０４  通信制御部
２０５  記憶部
２１０  システムバス
４０１  メッセージ情報
４０２  マルチパートメッセージ
【図１】
2010092156.tif 000003
【図２】
2010092156.tif 000004
【図３】
2010092156.tif 000005
【図４】
2010092156.tif 000006
【図５】
2010092156.tif 000007