(57)【要約】  ＭＩＭＥまたはＸＭＬフォーマット済みメッセージが格納されて、メッセージの代わりにマップが処理される。マップは、メッセージのコンパクトな表現である。マップは、メッセージのコンテンツおよび構造を示す。マップは、メッセージ部分へマップしてこれを指し示すタグを備える。メッセージの一部にアクセスされるとき、マップに関連付けられているタグは、関連するメッセージ部分の場所を決定するように処理され、関連するメッセージ部分がその決定した場所でアクセスされる。署名付きメッセージを正確に復号するために、メッセージのフォーマットが保持される。
2010512573.tif 000002
【特許請求の範囲】
【請求項１】
メッセージを処理する方法であって、
前記メッセージを受信するステップと、
前記メッセージを格納するステップと、
前記メッセージの表現であって、前記格納されたメッセージの構造およびコンテンツを示す前記表現を作成するステップと、
前記メッセージの代わりに前記表現を提供するステップと、
を備えることを特徴とする方法。
【請求項２】
前記メッセージは、
ＭＩＭＥ（multipurpose internet mail extension）メッセージと、
ＸＭＬフォーマット済みメッセージと、
のうちの１つを備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記表現は、前記格納されたメッセージのうちの少なくとも一つの部分をそれぞれ示す少なくとも１つのタグを備えることを特徴とする請求項２に記載の方法。
【請求項４】
前記表現の少なくとも１つのタグの表示を受信するステップと、
前記格納されたメッセージの少なくとも１つの対応する部分をそれぞれ提供するステップと、
をさらに備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記少なくとも１つのタグのうちの少なくとも１つは、前記表現のバージョンを示すことを特徴とする請求項３に記載の方法。
【請求項６】
前記少なくとも１つのタグのうちの少なくとも１つは、前記メッセージのヘッダを示すことを特徴とする請求項３に記載の方法。
【請求項７】
前記少なくとも１つのタグのうちの少なくとも１つは、前記メッセージの本文部分に対応することを特徴とする請求項３に記載の方法。
【請求項８】
前記少なくとも１つのタグのうちの少なくとも１つは、
前記格納されたメッセージの本文部分の先頭と、
前記格納されたメッセージの本文部分の最後と、
のうちの少なくとも１つを備えることを特徴とする請求項３に記載の方法。
【請求項９】
前記少なくとも１つのタグのうちの少なくとも１つは、
前記格納されたメッセージの子部分の先頭と、
前記格納されたメッセージの子部分の最後と、
のうちの少なくとも１つを備えることを特徴とする請求項３に記載の方法。
【請求項１０】
前記メッセージを格納するステップは、前記メッセージのフォーマットを保持するステップを含むことを特徴とする請求項２に記載の方法。
【請求項１１】
メッセージを処理するシステムであって、
前記メッセージはＭＩＭＥ（multipurpose internet mail extension）メッセージおよびＸＭＬフォーマット済みメッセージのうちの１つを含む前記メッセージを受信し、かつ、前記メッセージの代わりに表現または前記メッセージを提供する
ように構成される入出力部分と、
前記メッセージを格納するように構成されるメモリ部分と、
前記メッセージの表現であって、前記格納されたメッセージの構造およびコンテンツを示す前記表現を作成するように構成される処理部分と、
を備えることを特徴とするシステム。
【請求項１２】
前記表現は、前記格納されたメッセージのうちの少なくとも一つの部分をそれぞれ示す少なくとも１つのタグを備えることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記入出力部分は、前記表現の少なくとも１つのタグの表示を受信し、かつ、前記格納されたメッセージの少なくとも１つの対応する部分をそれぞれ提供するようにさらに構成されることを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記少なくとも１つのタグのうちの少なくとも１つは、前記表現のバージョンを示すことを特徴とする請求項１２に記載のシステム。
【請求項１５】
前記少なくとも１つのタグのうちの少なくとも１つは、前記メッセージのヘッダを示すことを特徴とする請求項１２に記載のシステム。
【請求項１６】
前記少なくとも１つのタグのうちの少なくとも１つは、前記メッセージの本文部分に対応することを特徴とする請求項１２に記載のシステム。
【請求項１７】
前記少なくとも１つのタグのうちの少なくとも１つは、
前記格納されたメッセージの本文部分の先頭と、
前記格納されたメッセージの本文部分の最後と、
のうちの少なくとも１つを備えることを特徴とする請求項１２に記載のシステム。
【請求項１８】
前記少なくとも１つのタグのうちの少なくとも１つは、
前記格納されたメッセージの子部分の先頭と、
前記格納されたメッセージの子部分の最後と、
のうちの少なくとも１つを備えることを特徴とする請求項１２に記載のシステム。
【請求項１９】
前記メッセージは、前記メッセージのフォーマットを保持するようにして格納されることを特徴とする請求項１１に記載のシステム。
【請求項２０】
メッセージを受信するステップと、
前記メッセージを格納するステップと、
前記メッセージの表現であって、前記格納されたメッセージの構造およびコンテンツを示し、かつ、前記格納されたメッセージのうちの少なくとも一つの部分をそれぞれ示す少なくとも１つのタグを備える前記表現を作成するステップと、
前記メッセージの代わりに前記表現を提供するステップと、
を実行することにより、ＭＩＭＥ（multipurpose internet mail extension）メッセージおよびＸＭＬフォーマット済みメッセージのうちの１つを処理するためのコンピュータ実行可能命令を格納したコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術分野は、一般にはコンピューティングシステムに関し、より詳細には、ＭＩＭＥフォーマット済み電子メールメッセージ処理に関する。
【背景技術】
【０００２】
電子メールメッセージの一般的な形式は、ＭＩＭＥ（Multipurpose Internet Mail Extensions）標準によって定義される。ＭＩＭＥ標準により、電子メールは、マルチパートメッセージを含むことができる。ＭＩＭＥ適合の電子メールメッセージは通常、ヘッダセクションおよび本文セクションを含む。ヘッダは、送信者、受信者、件名または要約、メッセージが最初に送信された時刻と日付、および電子メールに関するその他の情報に関連した情報を含む。本文セクションは、メッセージテキストおよびさまざまなタイプの添付ファイルなど、１つまたは複数の要素（entity）を含む。
【０００３】
分散システムにおいて、電子メッセージは、電子メールメッセージを配信するために蓄積交換の方法でプロセッサからプロセッサへと渡される。電子メールメッセージが、配信プロセス中に複数の処理ステップを経由することは、一般的である。通常、各処理ステップ中には、ＭＩＭＥメッセージ（つまり、ＭＩＭＥ適合の電子メールメッセージ）はこの処理中に変更され、ＭＩＭＥメッセージには、解析、変更、再構築、ＭＩＭＥフォーマッティングが行われ、次の処理ステップに渡される。解析、変更、再構築、およびフォーマッティングの処理は、単一のプロセッサ上で配信処理中に複数回発生する可能性がある。たとえば、メッセージは、ウィルススキャンが行われ、ある形式から別の形式に変換され、ヘッダフィールドが追加され、および特記事項がメッセージテキストに付加されることがある。また、次のプロセッサがメッセージを配信する責務を引き受ける準備ができていない場合、メッセージが保留されることもある。そのような場合、メッセージは格納され、後で再び読み込まれる。解析、変更、再構築、およびフォーマッティングの処理は、多大な時間を要し、非効率的である可能性もある。
【発明の概要】
【０００４】
本発明の概要は、以下の「発明を実施するための形態」でさらに説明される一連の概念を簡略化された形態で示すために提供される。本発明の概要は、特許請求の範囲に係る主題の重要な特徴または基本的特徴を特定することを意図するものではなく、また特許請求の範囲に係る主題の範囲を限定するために使用されることを意図するものでもない。
【０００５】
ＭＩＭＥフォーマット済み電子メールメッセージ（ＭＩＭＥメッセージ）ヘッダおよび本文の構造を表すＭＩＭＥマップが作成される。ＭＩＭＥマップは、ＭＩＭＥメッセージの本文コンテンツを示す。１つの例示の構成において、ＭＩＭＥマップは、元のＭＩＭＥメッセージよりもサイズが大幅に小さくなっている（たとえば、バイト数が少ない）。元のＭＩＭＥメッセージは適切な場所に格納され、ＭＩＭＥマップは、ＭＩＭＥメッセージ本文コンテンツの一部、または複数の部分がアクセスされるまで、ＭＩＭＥメッセージの代わりに処理される。ＭＩＭＥマップは、ＭＩＭＥメッセージの本文コンテンツの部分へマップされ、該部分を指し示すタグを備える。ＭＩＭＥメッセージ本文コンテンツの一部がアクセスされるとき、ＭＩＭＥマップに関連付けられたタグは、ＭＩＭＥメッセージに関連付けられた部分の場所を決定するように処理されて、ＭＩＭＥメッセージに関連付けられた部分がその場所でアクセスされる。一実施形態において、ＭＩＭＥメッセージのフォーマットでは、ＭＩＭＥメッセージの完全性が保たれて、そして署名付きＭＩＭＥメッセージが正確に復号されるように維持される。一実施形態において、メッセージはＸＭＬフォーマット済みメッセージであり、マップはＸＭＬメッセージの表現である。
【０００６】
上記の「発明の概要」および以下の詳細な説明は、添付の図面と併せて読めばより深く理解されよう。メッセージマップを使用するメッセージ処理を説明する目的で、その例示的な構造が図面に示されている。ただし、メッセージマップを使用するメッセージ処理は、開示されている特定の方法および手段に限定されることはない。
【図面の簡単な説明】
【０００７】
【図１】例示のＭＩＭＥマップのタグ形式を載せたテーブルである。
【図２】例示のＭＩＭＥマップを示す図である。
【図３】例示のＭＩＭＥマップタグを示す図である。
【図４】ＭＩＭＥマップを使用してＭＩＭＥメッセージを処理するための例示のプロセスを示す流れ図である。
【図５】ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理を実施するための例示的なプロセッサを示す図である。
【図６】ＭＩＭＥマップを実施することができる例示のコンピューティング環境を示す図である。
【発明を実施するための形態】
【０００８】
本明細書において説明されるメッセージマップは、さまざまなフォーマットを有するメッセージに適用することができる。たとえば、メッセージマップは、ＸＭＬフォーマット済みメッセージ、およびＭＩＭＥ（Multipurpose Internet Mail Extensions）標準に従ってフォーマットされたメッセージに適用することができる。本明細書における説明は、ＭＩＭＥメッセージに適用可能なＭＩＭＥマップを対象とする。しかし、メッセージマップは、ＭＩＭＥメッセージに適用可能なＭＩＭＥマップに限定されるべきではなく、たとえばＸＭＬなどの他のフォーマットを有するメッセージに適用することができることを理解されたい。
【０００９】
ＭＩＭＥメッセージと呼ばれる、ＭＩＭＥフォーマット済み電子メールメッセージを表現するＭＩＭＥマップは、ＭＩＭＥメッセージの代わりに処理される。ＭＩＭＥメッセージは元の形式で格納され、ＭＩＭＥマップは、メッセージのヘッダを含むように作成される。ＭＩＭＥマップは、格納されたＭＩＭＥメッセージのそれぞれの部分に関連付けられているタグと呼ばれる付加的な情報を含む。各々のタグは、ＭＩＭＥメッセージに関連付けられた部分の場所（へのマップ）の表示を与える。一実施形態において、元のＭＩＭＥメッセージの先頭からのオフセットは、ＭＩＭＥマップのタグを、ＭＩＭＥメッセージの関連する部分にマップするために用いられる。別個のファイルまたはデータベースフィールドに格納されるＭＩＭＥメッセージを指し示す明示的なポインタは、マップ内にない。一実施形態において、ＭＩＭＥマップが処理されたとき、プロセッサは、ＭＩＭＥマップの場所および格納されたＭＩＭＥメッセージの場所を特定する。ＭＩＭＥマップは、ＭＩＭＥメッセージの代わりに処理される。ＭＩＭＥマップの使用は、ＭＩＭＥメッセージデータ全体を解析およびロードすることなく、データベースなどに保持されている（格納されている）ＭＩＭＥメッセージを表現するメモリ内オブジェクトモデルを再インスタンス化するための機構を提供する。ＭＩＭＥマップがＭＩＭＥメッセージの代わりに処理されるので、入出力（Ｉ／Ｏ）データベース処理は、格納されているＭＩＭＥメッセージを処理する場合に比べて軽減される。ＭＩＭＥマップはＭＩＭＥメッセージよりも小さいので、ＭＩＭＥメッセージの代わりにＭＩＭＥマップを渡すことで、より効率的なシステム処理およびより高速な配信時間をもたらすことができる。さらに、ＭＩＭＥメッセージは繰り返して解析および再フォーマットされることはないので、ＭＩＭＥマップの使用はリソース使用の低減をもたらす。
【００１０】
ＭＩＭＥメッセージのメモリ内表現が変更される場合、新しいＭＩＭＥマップが作成され、ＭＩＭＥメッセージ本文コンテンツの変更されたどの部分も、適切な場所に格納されて、そして新しいＭＩＭＥマップから参照される。一実施形態において、本文コンテンツの変更された部分は、元のＭＩＭＥメッセージに付加される。しかし、変更がＭＩＭＥメッセージヘッダのみに加えられる場合、一実施形態において、ＭＩＭＥマップのみが更新される。対応するＭＩＭＥメッセージよりもはるかに小さいＭＩＭＥマップは、変更されたＭＩＭＥメッセージを保存するために必要な処理および入出力のリソースを節約する。
【００１１】
ＭＩＭＥマップは、ＭＩＭＥマップを元のＭＩＭＥメッセージと結合することによってメモリ内ＭＩＭＥオブジェクトモデルを再読み込みすることなく、変更されたＭＩＭＥメッセージを再構築するようにして使用されることができる。この結合プロセス中に、ＭＩＭＥマップ内のタグは必要に応じて除去され、元のＭＩＭＥメッセージの適切な部分と置き換えられる。
【００１２】
ＭＩＭＥマップは、ＭＩＭＥメッセージをコンパクトに表現する。ＭＩＭＥマップは、格納されているＭＩＭＥメッセージのコンテンツを構造的に視覚できるようにフォーマットされる。ＭＩＭＥマップは、ＭＩＭＥメッセージの部分をタグに置き換えることによって作成される。ＭＩＭＥメッセージのどの適切な部分も、タグに置き換えることができる。一実施形態において、ＭＩＭＥメッセージの本文部分のコンテンツの部分は、タグに置き換えられる。各々のタグは、ＭＩＭＥメッセージの関連する部分にアクセス（たとえば、検索）できるようにする情報を提供する。ＭＩＭＥメッセージは、ＭＩＭＥマップとは別の場所に格納することができ、タグは、別の場所においてＭＩＭＥメッセージにアクセスできるようにする。
【００１３】
ＭＩＭＥマップのフォーマットは、ＭＩＭＥフォーマット済み情報およびバイナリフォーマット済み情報の組み合わせを含む。一実施形態において、ＭＩＭＥマップは、リーフ部分の本文コンテンツが取り除かれて、適当な挿入位置に挿入されたバイナリエントリ（つまり、タグ）と置き換えられたＭＩＭＥメッセージを含む。タグは、ＭＩＭＥメッセージを読み込み、再構築するために使用される。タグはまた、ＭＩＭＥマップを更新して、ＭＩＭＥメッセージに対してなされた修正を反映するために用いられる。したがって、ＭＩＭＥマップは、ＭＩＭＥメッセージの解析を必要とすることなく更新される。
【００１４】
図１は、例示的なＭＩＭＥマップのタグ形式およびそれに関連付けられている情報を一覧にするテーブル１２である。一実施形態において、ＭＩＭＥマップは、テーブル１２に示されるように、最大６つのタグ形式を備えることができる。テーブル１２に示される６つのタグ形式の名前は、HeaderStart、LeafBodyStartEnd、ChildrenStart、ChildrenEnd、Continuation、およびVersionである。テーブル１２に示されているタグ形式の数、ＩＤおよびタグ名の割り当ては例であり、任意の適切なタグ形式の数、ＩＤ、およびタグ名を使用できることが強調される。
【００１５】
図２は、ＭＩＭＥマップ１３の一例を示す図である。ＭＩＭＥマップ１３は、ＭＩＭＥメッセージ１５の構造および内容を表現する。一実施形態において、ＭＩＭＥマップ１３は、ＭＩＭＥメッセージのヘッダと、ＭＩＭＥメッセージ１５の構造化された本文のさまざまな部分に関連付けられているタグと、を備える。すなわち、ＭＩＭＥマップ１３は、ＭＩＭＥメッセージ１５の構造化された中身のリーフ（Leaf）の先頭および最後を示すタグ、およびＭＩＭＥメッセージ１５の構造化された中身の中の子（Children）の先頭および最後を示すタグを備える。一実施形態において、ＭＩＭＥマップ内の最初のタグは、Versionタグ形式１７である。Versionタグ１７は、ＭＩＭＥマップ１３の先頭に配置される。Versionタグ１７は、ＭＩＭＥマップ１３のバージョンを示し、ＭＩＭＥマップ１３が、ＭＩＭＥメッセージ１５自身ではなくＭＩＭＥメッセージ１５を表現していることを示す。すなわち、Versionタグ１７は、ＭＩＭＥマップ１３がＭＩＭＥマップであることを示し、ＭＩＭＥマップ１３のバージョンを示す。ＭＩＭＥマップ１３のさまざまなバージョンが作成されることが想定されて、Versionタグ１７は、ＭＩＭＥマップ１３のバージョンが反映される。Versionタグ１７は、他のソフトウェアとのＭＩＭＥマップ１３の互換性を決定するのを容易にする。一実施形態において、文書の処理は文書フォーマットのバージョンに依存することがあるので、Versionタグ１７は、潜在的に変化しうるファイルフォーマット要素の前のＭＩＭＥマップ１３の先頭に置かれて、将来的に変化することのあるフォーマット要素への柔軟性を維持する。
【００１６】
Continuationタグは、ＭＩＭＥマップ１３のどこにでも配置されることができる（Continuationタグは図２には図示されていない）。Continuationタグは、このタグから特定のバイト数以内に他のタグが現れないことを示す。Continuationタグは、ＭＩＭＥマップの処理中に膨大な量のＭＩＭＥデータをバッファに格納しなければならない状況を避けるために使用される。ＭＩＭＥマップ１３の各ヘッダセクション２１の前には、HeaderStartタグ１９が置かれる。HeaderStartタグ１９は、ＭＩＭＥメッセージ１５の関連するヘッダの先頭を示す。LeafBodyStartEndタグは、ＭＩＭＥメッセージ１５のリーフ部分の本文の代わりにＭＩＭＥマップ１３に配置される。たとえば、図２に示されるように、LeafBodyStartEndタグ２３は、ＭＩＭＥメッセージ１５のリーフ部分の本文２７の代わりにＭＩＭＥマップ１３に配置され、LeafBodyStartEndタグ３１は、ＭＩＭＥメッセージ１５の添付コンテンツ２９の代わりにＭＩＭＥマップ１３に配置される。LeafBodyStartEndタグ２３、３１は、ＭＩＭＥメッセージ１５の構造化されたコンテンツのリーフの関連する先頭および最後を示す。
【００１７】
ChildrenStartタグ３３は、ＭＩＭＥメッセージ１５の構造化されたコンテンツの関連する境界の先頭、つまり開始を示す。当技術分野において知られているように、境界は、ＭＩＭＥフォーマットにおける本文の部分の区切りとしての役割を果たすバイト列である。ChildrenStartタグ３３の後に、ChildrenEndタグ３５が続く（必ずしも連続しない）。ChildrenEndタグ３５は、境界の最後、つまり終了を示す。一実施形態において、HeaderStartタグ１９は、ＭＩＭＥマップ１３内で後に出現する一致する子またはリーフ終了タグ３３、３５を有する。たとえば、マルチパートＭＩＭＥメッセージについて、ＭＩＭＥマップは、一致するChildrenStartおよびChildrenEndタグの両方を有し、ＭＩＭＥメッセージのリーフ部分について、ＭＩＭＥマップは、対応するLeafBodyStartEndタグを有する。本明細書において示されるＭＩＭＥマップ１３内のタグの配置は例示的なものであり、限定的であってはならないことを理解されたい。たとえば、第１の本文タグは、格納されているＭＩＭＥメッセージの最後の部分に参照をつけることができ、第２のタグは、格納されているＭＩＭＥメッセージの先頭により近い部分に参照つけることができる。
【００１８】
図３は、ＭＩＭＥマップ１４のタグの一例を示す図である。１つの例示の構成において、ＭＩＭＥマップは、前述のように複数のタグを備える。各々のタグは、１バイトのタグＩＤ部分１６から始まる。１バイトのタグＩＤ部分１６の後に、タグに含まれるデータサイズについての２バイトのインジケータ１８が続く。タグサイズインジケータ１８の後にはタグデータ２０そのものが続くが、これはテーブル１２に関して上記の説明のようにタグ形式ごとに個別に定義される。タグデータ部分２０の後には、タグが関連付けられているＭＩＭＥメッセージの部分のサイズを含む４バイトの部分２２が続く。このフォーマットは、ＭＩＭＥマップ１３のいかなる追加のタグにも繰り返される。
【００１９】
図４は、ＭＩＭＥマップを使用してＭＩＭＥメッセージを処理する工程を例示したフロー図である。ＭＩＭＥメッセージは、ステップ２４において受信される。ＭＩＭＥメッセージは、ステップ２６において格納される。ＭＩＭＥメッセージは、たとえばデータベース、サーバ、ローカルメモリ、またはそれらの組み合わせなど、どの適切な場所にも格納されることができる。ＭＩＭＥマップは、ステップ２８において作成される。ＭＩＭＥマップは、ＭＩＭＥメッセージを表現する。前述のように、ＭＩＭＥマップは、ＭＩＭＥメッセージのヘッダと、ＭＩＭＥメッセージのコンテンツと構造の表示と、を備える。ＭＩＭＥマップは、ＭＩＭＥメッセージの関連する部分を示すタグを備える。作成されると、ＭＩＭＥマップは、ＭＩＭＥメッセージの代わりに提供され、処理される。メモリ内ＭＩＭＥオブジェクトモデルは、ステップ３０において処理される。メモリ内ＭＩＭＥオブジェクトモデルの本分コンテンツに対する任意の変更は、ステップ３２において保存される。変更が行われた場合、新しいＭＩＭＥマップは、ステップ３４において作成される。メモリ内ＭＩＭＥオブジェクトモデルは、ステップ３６において、新しいＭＩＭＥマップで再び読み込まれる。ステップ３０、３２、３４および３６は、必要に応じて繰り返される。ＭＩＭＥメッセージが更新／変更される場合、ＭＩＭＥマップはそれに応じて、ＭＩＭＥメッセージ内の更新／変更を反映して更新／変更される。ＭＩＭＥメッセージの更新中、変更された本文コンテンツは格納されているＭＩＭＥメッセージに付加され、追加のタグおよび／または更新されたオフセットがＭＩＭＥマップに追加される。ＭＩＭＥメッセージのコンテンツに変更がない場合、作成されたＭＩＭＥマップは、ＭＩＭＥメッセージの代わりに使用される。たとえば、添付ファイルがＭＩＭＥメッセージに追加される場合、ＭＩＭＥマップは、タグを含むように、および／または追加された添付ファイルを示すオフセット値を更新するように変更される。ＭＩＭＥメッセージがアクセスされる場合、ＭＩＭＥマップは、ＭＩＭＥメッセージにアクセスするために使用される。たとえば、ＭＩＭＥメッセージの受信対象者にＭＩＭＥマップを配信する際、受信されるオブジェクトがＭＩＭＥマップであることを示すVersionタグが処理される。ＭＩＭＥマップが処理されて、タグおよび関連するオフセット値は、ＭＩＭＥメッセージの適切な部分にアクセス（たとえば、検索）するために使用される。
【００２０】
セキュリティを確保するため、ＭＩＭＥメッセージは任意に署名されることが知られている。ＭＩＭＥメッセージはまた、ＭＩＭＥメッセージの暗号化および／またはＭＩＭＥメッセージのハッシュ値の暗号化など、暗号技術を介して保護することもできる。その目的は、受信者に、ＭＩＭＥメッセージを変更しようとする試みがあることを認識させることである。ＭＩＭＥマップの一実施形態において、ＭＩＭＥメッセージが格納されるとき、ＭＩＭＥメッセージの完全性を確保するためにＭＩＭＥメッセージのフォーマットは保持される。ＭＩＭＥメッセージのフォーマットを保持することで、署名付きＭＩＭＥメッセージの精度を保持することができるようになる。ＭＩＭＥマップが作成される場合、タグは、ＭＩＭＥメッセージの構造を正確に反映するようにして作成される。ＭＩＭＥメッセージがＭＩＭＥマップを介してアクセスされる場合、いかなる場合にも署名付きＭＩＭＥメッセージの解釈に影響を及ぼさないようにして、署名によって保護されているＭＩＭＥメッセージ本文の部分は変更されずに、ＭＩＭＥメッセージはアクセスされる。
【００２１】
ＭＩＭＥマップを使用してＭＩＭＥメッセージを処理することで、元のＭＩＭＥメッセージの再解析に関する好ましくない性能の損失をまねくことなくＭＩＭＥメッセージを再作成する能力をもたらす。たとえば、これは、EXCHANGEサーバのOUTLOOK WEB ACCESSのユーザが、要求されるまで添付ファイルをダウンロードしたくないような場合に適用される。この例において、添付ファイルが要求されるまで、ＭＩＭＥマップのみが提供される。ＭＩＭＥマップを使用してＭＩＭＥメッセージを処理することにより好ましくない性能の損失が軽減されるもう１つの例示的な場合は、転送エージェントがＭＩＭＥメッセージを変更し、ＭＩＭＥメッセージが残されて、システム内でのその存続期間内に任意の場所においてデータベースから再読み込みされるような転送ルートを備える場合である。この例において、ＭＩＭＥメッセージは存続され（格納され）、ＭＩＭＥマップがＭＩＭＥメッセージの代わりに処理される。ＭＩＭＥメッセージがその格納場所において変更される時に、ＭＩＭＥマップは、タグおよび／またはオフセット値の追加および／または変更により、ＭＩＭＥメッセージの変更を反映するようにして変更される。
【００２２】
図５は、ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理を実施するための例示的なプロセッサ４０を示す図である。プロセッサ４０は、処理部分４２、メモリ部分４４、および入出力部分５０を備える。処理部分４２、メモリ部分４４、および入出力部分５０は、相互間の通信を可能にするように、互いに接続される（接続は図５には示されていない）。入出力部分５０は、前述のＭＩＭＥマップを使用するＭＩＭＥメッセージ処理を実施するために使用されるコンポーネントを提供および／または受信することができる。入出力部分５０は、ＭＩＭＥメッセージを提供および／または受信することができる。入出力部分５０は、ＭＩＭＥマップを提供および／または受信することができる。
【００２３】
処理部分４２は、前述のＭＩＭＥマップを使用するＭＩＭＥメッセージ処理を実施することができる。処理部分４２はまた、ＭＩＭＥマップを作成するためにＭＩＭＥメッセージを解析することができる。処理部分４２はまた、ＭＩＭＥメッセージのコンテンツおよび構造を示すＭＩＭＥマップを作成することができる。処理部分４２は、ＭＩＭＥメッセージのそれぞれの部分に関連付けられるタグを作成することができる。処理部分４２は、ＭＩＭＥメッセージが正確にアクセスされるように、ＭＩＭＥマップをフォーマットすることができる。処理部分４２は、ＭＩＭＥメッセージが分散データベースなどに格納される場合にＭＩＭＥメッセージが正確に再構築できるように、ＭＩＭＥマップをフォーマットすることができる。処理部分４２は、ＭＩＭＥメッセージの完全性が維持されて署名付きＭＩＭＥメッセージの正確な復号が可能になるように、ＭＩＭＥメッセージを保持することができる。
【００２４】
プロセッサ４０は、クライアントプロセッサおよび／またはサーバプロセッサとして実施することができる。基本構成において、プロセッサ４０は、少なくとも１つの処理部分４２およびメモリ部分４４を含むことができる。プロセッサの正確な構成および形式に応じて、メモリ部分４４は、揮発性（ＲＡＭなど）４６、不揮発性（ＲＯＭ、フラッシュメモリなど）４８、またはそれらの組み合わせにすることができる。プロセッサ４０は、追加の特徴／機能を有することができる。たとえば、プロセッサ４０は、磁気または光ディスク、テープ、フラッシュ、スマートカード、またはその組み合わせを含む追加の記憶装置（取り外し可能記憶装置５２および／または固定式記憶装置５４）を含むこともできるが、これらに限定されることはない。メモリ部分４４、４６、４８、５２、および５４のようなコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術において実施された揮発性および不揮発性の、取り外し可能および固定式の媒体を含むことができる。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、ＵＳＢ（ユニバーサルシリアルバス）互換のメモリ、スマートカード、あるいは望ましい情報を格納するために使用することができ、プロセッサ４０によってアクセスすることができる他の媒体を含むが、これらに限定されることはない。そのようなどのコンピュータ記憶媒体も、プロセッサ４０の一部にすることができる。
【００２５】
プロセッサ４０はまた、プロセッサ４０が他のデバイスと通信できるようにする通信接続部６０も含むことができる。通信接続部６０は、通信媒体の一例である。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを搬送波などの搬送メカニズムのような変調データ信号で具現し、任意の情報伝達媒体を含む。「変調データ信号」という用語は、１つまたは複数の特性セットを備える信号、または信号の情報を符号化するような方法で変更された信号を意味する。たとえば、通信媒体は、有線ネットワークまたは直接配線接続のような有線媒体、および音響、ＲＦ、赤外線その他の無線媒体のような無線媒体を含むが、これらに限定されることはない。本明細書で使用されているコンピュータ可読媒体という用語は、記憶媒体および通信媒体を共に含む。プロセッサ４０はまた、キーボード、マウス、ペン、音声入力デバイス、接触入力デバイスなどの入力デバイス５８を備えることもできる。ディスプレイ、スピーカー、プリンターなどの出力デバイス５６も含めることができる。
【００２６】
ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理のさまざまな実施形態は、コンピューティングデバイス上で実行可能である。図６および以下の説明は、そのようなコンピューティングデバイスを実施することができる適切なコンピューティング環境の概略を簡潔に説明する。必須ではないが、ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理のさまざまな態様は、クライアントワークステーションまたはサーバなどのコンピュータによって実行されるプログラムモジュールのような、コンピュータ実行可能命令の一般的なコンテキストに即して説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ形式を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理の実施形態は、ハンドヘルド機器、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成により実施することができる。さらに、ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理はまた、通信ネットワークを通じて接続されたリモート処理デバイスによってタスクが実行されるような分散コンピューティング環境においても実施することができる。分散コンピューティング環境において、プログラムモジュールは、ローカルおよびリモートの記憶装置に配置させることができる。
【００２７】
コンピュータシステムは、ハードウェアコンポーネント、ハードウェア／ソフトウェアインターフェイスシステムコンポーネント、およびアプリケーションプログラムコンポーネント（「ユーザコンポーネント」または「ソフトウェアコンポーネント」とも呼ばれる）という、３つのコンポーネントグループに大きく分類することができる。コンピュータシステムのさまざまな実施形態において、ハードウェアコンポーネントは、中央演算処理装置（ＣＰＵ）５２１、メモリ（ＲＯＭ５６４およびＲＡＭ５２５）、基本入出力システム（ＢＩＯＳ）５６６、および、とりわけ、キーボード５４０、マウス５４２、モニタ５４７、および／またはプリンタ（図示せず）などのさまざまな入出力（Ｉ／Ｏ）デバイスを備える。ハードウェアコンポーネントは、コンピュータシステムについての基本的な物的基盤を備える。
【００２８】
アプリケーションプログラムコンポーネントは、コンパイラ、データベースシステム、ワードプロセッサ、ビジネスプログラム、ビデオゲームなどを含むさまざまなソフトウェアプログラムを備えるが、これらに限定されることはない。アプリケーションプログラムは、さまざまなユーザ（マシン、他のコンピュータシステム、および／またはエンドユーザ）に対して問題の解決、ソリューションの提供、およびデータの処理を行うためにコンピュータリソースが利用される手段を提供する。例示の実施形態において、アプリケーションプログラムは、前述のように、ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理に関連付けられている機能を実行する。
【００２９】
ハードウェア／ソフトウェアインターフェイスシステムコンポーネントは、ほとんどの場合シェルおよびカーネルを備えるオペレーティングシステムを備えている（一部の実施形態においては、オペレーティングシステムのみで構成される）。「オペレーティングシステム」（ＯＳ）は、アプリケーションプログラムとコンピュータハードウェアの間の仲介としての役割を果たす特殊なプログラムである。ハードウェア／ソフトウェアインターフェイスシステムコンポーネントはまた、仮想マシンマネージャ（ＶＭＭ）、共通言語ランタイム（ＣＬＲ）もしくはその機能的に相当するもの、Ｊａｖａ（登録商標）仮想マシン（ＪＶＭ）もしくはその機能的に相当するもの、またはコンピュータシステムのオペレーティングシステムに代わるかもしくはこれに追加する他のそのようなソフトウェアコンポーネントを備えることができる。ハードウェア／ソフトウェアインターフェイスシステムの目的は、ユーザがアプリケーションプログラムを実行することができる環境を提供することである。
【００３０】
ハードウェア／ソフトウェアインターフェイスシステムは一般に、起動時にコンピュータシステムに読み込みされ、その後コンピュータシステム内のすべてのアプリケーションプログラムを管理する。アプリケーションプログラムは、アプリケーションプログラムインターフェイス（ＡＰＩ）を介してサービスを要求することによってハードウェア／ソフトウェアインターフェイスシステムと対話する。一部のアプリケーションプログラムは、コマンド言語またはグラフィカルユーザインターフェイス（ＧＵＩ）などのユーザインターフェイスを介してエンドユーザがハードウェア／ソフトウェアインターフェイスシステムと対話できるようにする。
【００３１】
ハードウェア／ソフトウェアインターフェイスシステムは伝統的に、アプリケーション向けのさまざまなサービスを実行する。複数のプログラムが同時に実行されるマルチタスキングハードウェア／ソフトウェアインターフェイスシステムにおいて、ハードウェア／ソフトウェアインターフェイスシステムは、どのアプリケーションをどの順序で実行すべきか、また別のアプリケーションに切り替えるまでに各アプリケーションにどのくらいの時間を与えるかを決定する。ハードウェア／ソフトウェアインターフェイスシステムはまた、複数のアプリケーション間の内部メモリの共有を管理し、ハードディスク、プリンター、およびダイヤルアップポートなどの接続されたハードウェアデバイスとの間の入出力も処理する。ハードウェア／ソフトウェアインターフェイスシステムはまた、オペレーションの状態および発生した可能性のあるエラーについて各アプリケーション（および特定の場合にはエンドユーザ）にメッセージを送信する。ハードウェア／ソフトウェアインターフェイスシステムはまた、バッチジョブ（たとえば印刷など）の管理を解放することもでき、起動アプリケーションがこの作業から解放されて他の処理および／またはオペレーションを再開することができるようになっている。並列処理を提供することができるコンピュータにおいて、ハードウェア／ソフトウェアインターフェイスシステムはまた、同時に複数のプロセッサ上で実行するようにプログラムの分割も管理する。
【００３２】
ハードウェア／ソフトウェアインターフェイスシステムシェル（「シェル」と呼ばれる）は、ハードウェア／ソフトウェアインターフェイスシステムへの対話型エンドユーザインターフェイスである（シェルはまた、「コマンドインタープリタ」と呼ばれるか、または、オペレーティングシステムでは「オペレーティングシステムシェル」とも呼ばれることもある）。シェルは、アプリケーションプログラムおよび／またはエンドユーザによって直接アクセス可能なハードウェア／ソフトウェアインターフェイスシステムの外側のレイヤである。シェルとは対照的に、カーネルは、ハードウェアコンポーネントと直接対話するハードウェア／ソフトウェアインターフェイスシステムの最も内側のレイヤである。
【００３３】
図６に示すように、例示的な汎用コンピューティングシステムは、処理ユニット５２１、システムメモリ５６２、およびシステムメモリを含むさまざまなシステムコンポーネントを処理ユニット５２１に接続するシステムバス５２３を含む、従来型のコンピューティングデバイス５６０などを含む。システムバス５２３は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む、さまざまなタイプのバス構造のいずれかであってもよい。システムメモリは、読み取り専用メモリ（ＲＯＭ）５６４およびランダムアクセスメモリ（ＲＡＭ）５２５を含む。起動時などにコンピューティングデバイス５６０内の要素間の情報の転送を助ける基本ルーチンを含む基本入出力システム５６６（ＢＩＯＳ）は、ＲＯＭ５６４に格納される。コンピューティングデバイス５６０はさらに、ハードディスク（ハードディスクは図示せず）との間の読み取りおよび書き込みを行うハードディスクドライブ５２７、取り外し可能の磁気ディスク５２９（たとえば、フロッピー（登録商標）ディスク、取り外し可能記憶装置）との間の読み取りまたは書き込みを行う磁気ディスクドライブ５２８（たとえば、フロッピー（登録商標）ドライブ）、およびＣＤ−ＲＯＭまたはその他の光媒体など、取り外し可能の光ディスク５３１との間の読み取りまたは書き込みを行う光ディスクドライブ５３０を含むことができる。ハードディスクドライブ５２７、磁気ディスクドライブ５２８、および光ディスクドライブ５３０は、それぞれハードディスクドライブインターフェイス５３２、磁気ディスクドライブインターフェイス５３３、および光ドライブインターフェイス５３４によってシステムバス５２３に接続される。ドライブおよびその関連するコンピュータ可読媒体は、コンピューティングデバイス５６０のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性記憶装置をもたらす。本明細書において説明される例示的な環境は、ハードディスク、取り外し可能磁気ディスク５２９、および取り外し可能光ディスク５３１を採用しているが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）などの、コンピュータによりアクセス可能なデータを格納することができる他のタイプのコンピュータ可読媒体も、例示的な動作環境に使用できることを当業者であれば理解するであろう。同様に、例示的な環境はまた、熱感知器および警備または火災報知システム、およびその他の情報源など、多くの種類の監視デバイスを含めることもできる。
【００３４】
ハードディスク、磁気ディスク５２９、光ディスク５３１、ＲＯＭ５６４またはＲＡＭ５２５には、オペレーティングシステム５３５、１つまたは複数のアプリケーションプログラム５３６、その他のプログラムモジュール５３７、およびプログラムデータ５３８を含む、多数のプログラムモジュールが格納される。ユーザは、キーボード５４０およびポインティングデバイス５４２（たとえば、マウス）などの入力デバイスを介してコンピューティングデバイス５６０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナなどを含むことができる。上記およびその他の入力デバイスは、システムバスに接続されているシリアルポートインターフェイス５４６を介して処理ユニット５２１に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など他のインターフェイスによって接続されることもできる。モニタ５４７またはその他の種類の表示デバイスもまた、ビデオアダプタ５４８などのインターフェイスを介してシステムバス５２３に接続される。モニタ５４７に加えて、コンピューティングデバイスは通常、スピーカーおよびプリンターなど、他の周辺出力デバイス（図示せず）を含む。図６の例示的な環境はまた、ホストアダプタ５５５、ＳＣＳＩ（Small Computer System Interface）バス５５６、およびＳＣＳＩバス５５６に接続されている外部記憶装置５６２も含む。
【００３５】
コンピューティングデバイス５６０は、リモートコンピュータ５４９など、１つまたは複数のリモートコンピュータへの論理接続を用いるネットワーク化された環境において動作することができる。リモートコンピュータ５４９は、別のコンピューティングデバイス（たとえば、パーソナルコンピュータ）、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の共通ネットワークノードであってもよく、通常は上記でコンピューティングデバイス５６０に関連して説明されている要素の多くまたはすべてを含むが、図６においては記憶装置５５０（フロッピー（登録商標）ドライブ）のみが示されている。図６に示される論理接続は、ローカルエリアネットワーク（ＬＡＮ）５５１およびワイドエリアネットワーク（ＷＡＮ）５５２を含む。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで一般化している。
【００３６】
ＬＡＮネットワーク環境において使用される場合、コンピューティングデバイス５６０はネットワークインターフェイスまたはアダプター５５３を介してＬＡＮ５５１に接続される。ＷＡＮネットワーク環境において使用される場合、コンピューティングデバイス５６０は、モデム５５４またはインターネットなどのワイドエリアネットワーク５５２にわたって通信を確立するための他の手段を含むことができる。モデム５５４は、内蔵または外付けであってもよく、シリアルポートインターフェイス５４６を介してシステムバス５２３に接続される。ネットワーク化された環境において、コンピューティングデバイス５６０に関して示されるプログラムモジュール、またはその部分は、リモート記憶装置に格納されることができる。図示されているネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使用できることを理解されたい。
【００３７】
ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理の多数の実施形態はコンピュータ化されたシステムに特に適切であると想定されるが、本明細書において本発明をそのような実施形態に限定することを意図しない。一方、本明細書において使用されている「コンピュータシステム」という用語は、情報を格納することおよび処理することが可能であり、および／または格納された情報を使用してデバイスが事実上電子、機械、論理、または仮想のいずれであるかに関わりなく、デバイス自体の振る舞いまたは実行を制御することが可能である任意のおよびすべてのデバイスを包含することが意図されている。
【００３８】
本明細書において説明されるさまざまな技術は、ハードウェアまたはソフトウェア、あるいは必要に応じてその両方を組み合わせて実施することができる。したがって、ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理を実施するための方法および装置、またはその特定の態様もしくは部分は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、または他の機械可読記憶媒体などの有形媒体において具現されるプログラムコード（つまり命令）の形態を取ることができ、プログラムコードがコンピュータなどの機械によって読み込まれて実行されるときに、機械はＭＩＭＥマップを使用するＭＩＭＥメッセージ処理を実施するための装置となる。
【００３９】
プログラムは、必要に応じて、アセンブリ言語またはマシン言語で実施することができる。いずれの場合おいても、言語はコンパイルまたは解釈された言語であり、ハードウェア実施と組み合わされることができる。ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理を実施するための方法および装置はまた、電気配線または電気ケーブル経由、光ファイバ経由、または他の伝送形態経由など、一部の伝送媒体上を伝送されるプログラムコードの形態で具現される通信を介して実施することもでき、プログラムコードがＥＰＲＯＭ、ゲートアレイ、プログラム可能論理デバイス（ＰＬＤ）、クライアントコンピュータなどのマシンによって受け取られ、読み込まれ、実行されるときに、そのマシンはＭＩＭＥマップを使用するＭＩＭＥメッセージ処理のための装置となる。汎用プロセッサ上で実施される場合、プログラムコードはプロセッサに組み合わされて、ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理の機能を起動するように動作する固有の装置を提供する。加えて、ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理に使用される記憶技術は、常にハードウェアおよびソフトウェアの組み合わせにすることもできる。
【００４０】
ＭＩＭＥマップを使用するＭＩＭＥメッセージ処理についてさまざまな図の実施例に関して説明したが、他の類似した実施形態を使用することができるか、または逸脱することなくＭＩＭＥマップを使用するＭＩＭＥメッセージ処理の同じ機能を実行するために説明されている実施形態に変更および追加を行うことができることを理解されたい。たとえば、ＭＩＭＥマップの概念は、ＸＭＬなどの他のフォーマットに適用することができる。したがって、ＸＭＬマップがＸＭＬメッセージの代わりに処理されることできる。ＭＩＭＥマップに関して上記で説明されたように、ＸＭＬマップはＸＭＬメッセージのコンパクトな表現を提供することができ、ＸＭＬマップはＸＭＬメッセージ部分へマップして、これを指し示すタグを含むことができる。したがって、本明細書において説明されるＭＩＭＥマップを使用するＭＩＭＥメッセージ処理は、いかなる単一の実施形態に限定されることもなく、添付の特許請求の範囲に従った広がりと範囲において解釈されるべきである。
【図１】
2010512573.tif 000003
【図２】
2010512573.tif 000004
【図３】
2010512573.tif 000005
【図４】
2010512573.tif 000006
【図５】
2010512573.tif 000007
【図６】
2010512573.tif 000008
【国際調査報告】
2010512573.tif 000009
2010512573.tif 000010