JP2006510325A - ステートレスな(処理状態を把握しない)メッセージのルーティング - Google Patents

ステートレスな(処理状態を把握しない)メッセージのルーティング Download PDF

Info

Publication number
JP2006510325A
JP2006510325A JP2004565495A JP2004565495A JP2006510325A JP 2006510325 A JP2006510325 A JP 2006510325A JP 2004565495 A JP2004565495 A JP 2004565495A JP 2004565495 A JP2004565495 A JP 2004565495A JP 2006510325 A JP2006510325 A JP 2006510325A
Authority
JP
Japan
Prior art keywords
message
incoming data
routing
data
stateless
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.)
Granted
Application number
JP2004565495A
Other languages
English (en)
Other versions
JP4324561B2 (ja
Inventor
ツァオ,マイケル,マン−ハク
ノートン,ジョセフ,ウェイン
オガサワラ,ゲーリー,ハヤト
シュワルツ,ヨナ
ストーン,デーヴィッド
Original Assignee
ジェミニ モバイル テクノロジーズ,インコーポレーテッド
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 ジェミニ モバイル テクノロジーズ,インコーポレーテッド filed Critical ジェミニ モバイル テクノロジーズ,インコーポレーテッド
Publication of JP2006510325A publication Critical patent/JP2006510325A/ja
Application granted granted Critical
Publication of JP4324561B2 publication Critical patent/JP4324561B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting

Landscapes

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

Abstract

入来データの処理のシステムと方法は、入来データの受信処理と、入来データに関連した1以上のデスティネーション・ホストに基いて入来データのステートレスなルーティングを採用するか否かの決定を行なう処理とを提供する。あるやり方においては、ステートレスなルーティングは、入来データを揮発性メモリにのみ格納し、デスティネーション・ホストか下流側のルータから送達の通知を受信するまで、入来データの受信の通知を保留することを含む。ステートレスなルーティングが採用されるべきか否かの判定は、制御データや、デスティネーション・ホストについての履歴データを考慮に入れて行われ得る。この判定は、デスティネーション・ホストの数に基いても行われ得る。

Description

本発明の実施形態は、概ね、電子メッセージのルーティングに関する。さらに詳細に言えば、本発明の実施形態は、未保存の状態におけるメッセージを選択的にルーティングするシステムと方法に関する。
(論点)
インターネットと無線通信の人気は、増す一方なので、ネットワークの設計者とサービス・プロバイダーは、多くの性能の問題を呈されている。特に、メッセージのルーティングには、懸念がはらわれている。メッセージ・ルータは、送信側のホスト(例えば、送信元の機器自体)からメッセージを受信して、これらのメッセージを1以上のデスティネーション・ホスト(送り先のホスト;例えば、受信側の機器自体)に転送する。メッセージの送受信の手順は、トランザクションと呼ばれることがあり、いかなるネットワーク・アーキテクチャにおいても重要な構成要素である。高性能のメッセージ・ルータは、1秒間に、数100個のトランザクションを完了することを要求されることが珍しくない。
従来のメッセージ・システムは、メッセージのルーティングに、蓄積交換方式を用いる。そのようなやり方の下では、メッセージは、ルータによって受信されると、不揮発性メモリ(NVM)に格納される。これは、メモリに電源が供給されなくなっても、メッセージの内容が保持されるようにするためである。上記の不揮発性メモリの例には、EEPROM(Dynamic Random Access Memory)や磁気ディスクが含まれるが、不揮発性メモリは、これらに限定されない。不揮発性メモリへのメッセージの格納は、システム障害や停電が発生した場合におけるメッセージの復旧を可能にする。不幸にして、不揮発性メモリへの読み書きは、相対的にスピードが遅いので、ネットワークにおける性能のボトルネックになる可能性がある。それ故、メッセージのルーティングのシステムと方法は、システム障害や停電の可能性を考慮に入れる一方、メッセージの喪失を防ぎ、従来の蓄積交換方式に関するボトルネックの問題を減ずる必要がある。
本発明の実施形態の様々な利点は、以下の明細書と添付の請求項を読み、次の図面を参照することによって、この分野の当業者にとって明らかになるだろう。
本発明の一実施態様によるメッセージングのアーキテクチャの例のブロック図。
本発明の一実施態様による入来データの処理方法の例のフローチャート。
本発明の他の実施態様による入来データの処理方法の例のフローチャート。
本発明の一実施態様によるステートレスなルーティングの適格性の判定処理の例のフローチャート。
本発明の他の実施態様によるステートレスなルーティングの適格性の判定処理の例のフローチャート。
本発明の一実施態様によるステートレスなルーティングの接続の例のメッセージング図。
本発明の他の実施態様によるステートレスなルーティングの接続の例のメッセージング図。
図1は、送信側のホスト14(例えば、メールクライアント端末)とデスティネーション・ホスト(送り先のホスト)18(例えば、メールサーバ)とを有するアーキテクチャ10を示す。送信側のホスト14は、ステートレスな(処理状態を把握しない)メッセージ・ルータ12a(例えば、メール・ゲートウェイ)と通信し、デスティネーション・ホスト18は、ステートレスなメッセージ・ルータ12b(例えば、メール・ゲートウェイ)と通信する。そして、ルータ12aとルータ12bとは、ネットワーク16を介して相互に通信する。より詳細に論じると、「ステートレス」の語は、ここでは、最初にメッセージを不揮発性メモリ(NVM)に格納することなく、メッセージのルーティングを行う手順を記載するのに用いられている。これにより、メッセージは、不揮発性メモリに「未格納」の状態で、デスティネーション・ホスト18に送信される。ステートレスなルーティングは、デスティネーション・ホストか下流側のルータからメッセージの送達の通知を受信するまで、メッセージの受信の確認を保留することを含むであろう。
ここでは、デスティネーション・ホストへのメッセージのルーティングに関して、ある例が述べられるけれども、本発明の実施態様は、これに限定されない。実際、ここで述べられる方式は、本発明の実施態様の概念と範囲から分かたれることなく、いかなる種類の入来データにも容易に適用され得る。例えば、画像、音声のファイルや、他の種類のデータも、ここで述べられた方式から恩恵を受け得る。それにも拘らず、本発明の実施態様がうまく適用される、多くのメッセージの局面がある。1つのメッセージが、多数の受信先(不図示)及び/又はデスティネーション・ホストに送られるかもしれず、そこでは、各デスティネーション・ホストは、上記の受信先(の機器)がその特別の受信側のホストに接続されるように、上記の受信先にサービスを提供するということにも注意すべきである。
図示の例では、仮想の回路20が、複数の接続22(22a−22b)を経由して、ホスト14と18との間に配設されている。この仮想の回路20は、シンプル・メッセージ・トランスポート・プロトコル(SMTP)(リクエスト・フォー・コメント/RFC2821)、ショート・メッセージ・ピア・ツー・ピア(SMPP)プロトコル(プロトコル・スペシフィケーション/V3.4 イシュー1.2、ショート・メッセージ・サービス/SMSフォーラム)、又はマルチメディア・メッセージ・サービス・クライアント・トランザクション・スペシフィケーション(MMSCTR)プロトコル(WAP−206−MMSCTR−20020115−a)等の広範な種類のプロトコルを介して使用され得る。あるプロトコルが、送信側のホストからメッセージを受信するために用いられ、別のプロトコルが、デスティネーション・ホストへメッセージを送信するために用いられるというように、上記のようなプロトコルのうち、1つ以上のプロトコルが、1つのトランザクション内に使用され得る。
従来のインターネット・プロトコル(IP)におけるデータ・パケットのルーティングは、ある程度のデータの喪失に耐えられるように設計されているが、Eメールのメッセージのようなメッセージのルーティングは、より高いレベルの信頼性を要求する。この結果、メッセージ・ルータは、データの喪失に対する耐性が少なくなってしまい、従来は上記の蓄積交換方式を採用してきた。ある実施態様は、上記のプロトコルのうちの1つ以上に関連付けて述べられるが、本発明の実施態様がこれに限定されないことに注意すべきである。実際、ステートレスなメッセージのルーティングが実施され得る、いかなる接続プロトコルも、使用され得る。それにも拘らず、上記のプロトコルがうまく適用される、本発明の実施態様の多くの局面がある。
ルータ12a、12bは、メッセージを最初に不揮発性メモリに格納することなく、メッセージを送るために、ステートレスなメッセージングを用いることができる。あるやり方では、送信側のホスト14は、メッセージ・ルータ12aにメッセージを送信し、メッセージ・ルータ12aは、メッセージの受信を直ぐには通知しない。その代わりに、メッセージ・ルータ12aは、ネットワーク16を介してメッセージ・ルータ12bに接続し、メッセージを送信する。メッセージ・ルータ12bは、デスティネーション・ホスト18に対して、上記と同様なステートレスなメッセージングのルーティング方法を行う。メッセージ・ルータ12bが、デスティネーション・ホスト18へのメッセージの送達を通知し、メッセージ・ルータ12aが、メッセージ・ルータ12bへのメッセージの送達を通知した後でなければ、ルータ12aは、それ自身のメッセージの受信の通知を送信側のホスト14に送信しない。この結果、アーキテクチャ10は、ルータ12aと12bのどちらの不揮発性メモリにもメッセージの複製物を格納する必要がなくなる。送信側のホスト14だけが、メッセージの受信の通知を受信するまで、不揮発性メモリにメッセージの複製物を格納するので、データ喪失の可能性は、最小限に抑えられるか、又は取り除かれる。
図2は、入来データの処理方法100を示す。方法100は、プロセッサによって実行され得る一組の命令として実施され得る。これらの命令は、いくつもの有名なソフトウェア・プログラミング手法を用いて書くことができ、EEPROM(Electrically Erasable Programmable Read−Only Memory)、CD−ROM(Compact Disk ROM)、DRAM(Dynamic Random Access Memory)等のような広範な種類の機械読み取り可能な記録媒体に格納され得る。入来データは、処理ブロック102において受信されて、ブロック104において揮発性メモリに格納される。処理ブロック106は、入来データに関連するデスティネーション・ホストに基いて入来データについてステートレスなルーティングを採用するか否かの決定を行うという処理を提供する。より詳細に言うと、ブロック106における決定には、履歴データ108及び/又は制御データ110を用いることができる。もし、ステートレスなルーティングを採用するという決定がされると、デスティネーション・ホストか別の下流側のルータからメッセージの送達の通知を受信するまで、ブロック112において、入来データの受信の通知も保留され得る。ブロック114は、デスティネーション・ホストに向けた入来データの送信を提供する。
もし、ブロック106において、ステートレスなルーティングが採用されないと決定されると、ブロック116において、入来データが、不揮発性メモリに格納される。このような場合には、入来データの送信元への受信の通知の送信を保留する必要がない。従って、ブロック118は、送信側のホストに向けた、入来データの受信の通知の送信を提供し、ブロック115は、デスティネーション・ホストに向けた入来データの送信を提供する。
ブロック103は、ステートレスなルーティングを停止するか否かの決定処理を提供する。ブロック103における決定は、待ち時間や優先度等の多くの要因に基いて行われ得る。例えば、デスティネーション・ホストに向けた入来データの送出後に、タイムアウトが発生すると、ステートレスなルーティングは、停止されるべきと決定されてもよい。ブロック103における決定は、所定のデスティネーション・ホストについて、一度以上行なわれ得るということにも注意すべきである。ブロック103において、ステートレスなルーティングが継続されるべきであると決定されると、ブロック105が、デスティネーション・ホスト又は下流側のルータからの入来データの送達通知の受信を提供する。ブロック107では、入来データの受信通知が、入来データの送信元(の機器)に向けて送信される。ブロック103において、ステートレスなルーティングが停止されるべきであると決定されると、ブロック109が、入来データの不揮発性メモリへの格納を提供して、ブロック105における送達通知の受信が回避される。
履歴データ108は、ブロック106における決定をする上で有用であり得る広範な種類の情報を提供し得る。例えば、履歴データ108は、特定のデスティネーション・ホストについての以前のステートレスなルーティングの成果を含み得る。そのような場合において、履歴データが、直近のM個のステートレスなルーティングを用いたトランザクションのうちのN個が成功したか否かを確認するためのものであって、処理ブロック106が、以前のステートレスなルーティングの成果に基いて、成功の確率を計算してもよい。もし、成功の確率が、所定の成功率の閾値を超えると、問題となっているデスティネーション・ホストについて、ステートレスなルーティングが採用されるべきであると決定され得る。履歴データ108は、上記の成功の確率に変えて、以前のルーティングの待ち時間を含み得る。このルーティングの待ち時間は、直近のM個のトランザクションについて、平均化されたものであってもよい。待ち時間の平均の計算は、より直近のトランザクションに、より大きな重み付けをして行なってもよい。そして、処理ブロック106における決定を行う際に、計算された待ち時間の平均を、待ち時間の閾値と比較してもよい。
あるやり方では、制御データ110は、対応する制御チャネルを通って受信され得る。この場合、入来データは、対応する入来データチャネルを持ち、これら2つのチャネルは、相互に独立である。別のやり方では、制御データ110は、メッセージのヘッダ又は同封情報に組み込まれて、従来のデータチャンネルを介して受信され得る。制御データのある例は、その後でステートレスなルーティングが打ち切られるべき、「有効期間」(TTL)の値を含む。制御データの別の例は、入来データが通過した、ステートレスなルーティングのホップの数を特定する「ホップカウント」の値である。ホップカウントの値は、ステートレスなルータの各々によって、それが次のルータに渡される前に、インクリメントされる。制御データのさらに別の例では、「最大ホップ」値が、それに沿って入来データが転送され得る、ステートレスなルーティングのホップの最大数を特定し得る。この場合には、最大ホップ値は、ステートレスなルータの各々によって、それが次のルータに渡される前に、デクリメントされる。入来データが、複数のデスティネーション・ホストに関連付けられると、TTLや最大ホップの値が減らされ得ることに注意する必要がある。これらの値を減らすことは、デスティネーション・ホストが多数である場合に、ステートレスなルーティングが成功する確率を減らす原因となる。
処理ブロック106における決定処理は、ステートレスなルーティングが採用されるべきか否かを表すバイナリーの決定値、ステートレスなルーティングが採用されるべきか否かを表す確率の決定値等を生成し得る。デスティネーション・ホストが複数の場合には、バイナリーの決定値は、複数のデスティネーション・ホストの各々について生成され得る。この場合には、ステートレスなルーティングが採用されるべきか否かを表すバイナリーの決定値の各々の間でAND演算が実行される。確率の決定値についても、同様に、複数のデスティネーション・ホストの各々についての決定値が生成され得る。この場合には、ステートレスなルーティングが採用されるべきか否かを表すために、各確率の決定値が相互に掛け合わせられる。
入来データは、それがメッセージであろうが、他のタイプのデータであろうが、そのように望まれるならば、ルータを通って流され得る。そのような場合には、ブロック114における、入来データのデスティネーション・ホストに向けた送信処理は、ブロック102における入来データの受信処理が完了する前に始まる。
図3には、メッセージ等の入来データをルーティングするための別の方法24が示されている。方法24は、ステートレスなルーティングを達成するために、プロセッサによって実行され得る一組の命令として実施され得る。これらの命令は、いくつもの有名なソフトウェア・プログラミング手法を用いて書くことができ、EEPROM、CD−ROM、DRAM等のような広範な種類の機械読み取り可能な記録媒体に格納され得る。一般的に、処理ブロック26では、メッセージ又は他のタイプの入来データが、第1の接続を通って受信される。ブロック28は、メッセージが、単一のデスティネーション・ホストに送られたものであるか否かという決定を行うという処理を提供する。ブロック30では、メッセージが、第2の接続を通って、デスティネーション・ホストに向けて送られる。この場合、もし、メッセージが、単一のデスティネーション・ホストに送られたものであれば、このメッセージは、不揮発性メモリに未格納の状態で、送られる。これにより、図示の例では、ステートレスなルーティングを採用するか否かの決定は、部分的に、デスティネーション・ホストの数に基いて行なわれる。
上記の方法24と、図2に示される方法100は、ステートレスなメッセージングを提供するために、仮想の回路内の各ルータによって用いられ得るけれども、接続に用いられる全てのルータが、ステートレスなルーティングの機能を実行することができる必要はないことに注意すべきである。そのような場合には(ステートレスなルーティングの機能を実行することができないルータがある場合には)、ステートレスなルーティングに関する恩恵は、各ステートレスなメッセージ・ルータにおいて局所的に得られる。
デスティネーション・ホストが多数の場合には、ブロック32は、各デスティネーション・ホストへの接続が成功し、各デスティネーション・ホストへのデータの送達が達成され得るか否かを決定する処理を提供する。もし、そうであるならば、ブロック30において、メッセージは、各デスティネーション・ホストに向けて、不揮発性メモリに未格納の状態で送られる。そうでなければ、メッセージは、ブロック34において、従来の蓄積交換方式に基いて、格納された状態で送られる。
図4は、ブロック28’(図3参照)において、メッセージが、単一のデスティネーション・ホストに送られたものであるか否かという決定をするための1つのやり方を示す。この場合、デスティネーション・ホストが単一であるということが、ステートレスなルーティングの適格性の唯一の指標である。特に、ブロック38は、メッセージが、単一の受信先を持つか否かの決定処理を提供する。もし、そうであるならば、ブロック40におけるステートレスなルーティングが用いられる。もし、メッセージが、多数の受信先を持つならば、ブロック42が、各受信先についてのデスティネーション・ホストを求める処理を提供し、ブロック44は、各受信先が、同じデスティネーション・ホストを持つか否かを決定する。もし、そうであるならば、ブロック40におけるステートレスなルーティングが用いられる。そうでなければ、ブロック46が、従来のルーティングを提供する。
既に述べたように、デスティネーション・ホストが多数の場合に、ステートレスなルーティングを採用することも可能である。従って、図5は、処理ブロック32’(図3参照)において、各デスティネーション・ホストへの接続が成功し、各デスティネーション・ホストへのデータの送達が達成され得るか否かを決定する処理のやり方を示す。このやり方では、ブロック44において、多数のデスティネーション・ホストが競合させられた場合に、ブロック48は、各デスティネーション・ホストへの接続がなされ得るか否かの判定を行なう。もし、接続することができるならば、ブロック50は、メッセージが、各接続を通って各デスティネーション・ホストへ送達され得るか否かを確認する。もし、送達され得るならば、ブロック40におけるステートレスなルーティングが用いられる。もし、ブロック48とブロック50のいずれかで、失敗すると、ステートレスなルーティングは用いられない。
図6には、ステートレスなルーティングの接続を確立し、維持するための1つのやり方が、メッセージングの図表52に示されている。具体的に言うと、第1の接続がメッセージ54によって開始されて、メッセージ・ルータが、メッセージ56を用いて第1の接続を受け入れる。メッセージ56に応答して、メッセージ58が送信される。この場合に、メッセージ58は、当初のメッセージの起点と宛先に関するデータを有するエンベロープを内包している。メッセージ・ルータは、メッセージ60を送信することにより、上記のエンベロープの受け取りを知らせ、ブロック62において、当初のメッセージが、ステートレスなルーティングの適格性があるか否かを判定する。ブロック62における決定は、上述の処理ブロック28’(図4)及び/又は処理ブロック32’(図5)に従って、行なわれ得る。例えば、ブロック62は、単一のデスティネーション・ホストのみが存在するという判定に帰結するかもしれない。メッセージ64は、当初のメッセージからのデータを含み、メッセージ60の受信に応答して送信される。第2の接続は、メッセージ66によって開始されて、第2の接続の受け入れは、メッセージ68で知らされる。上記のエンベロープは、メッセージ70でメッセージの受信先に向けて送られ、メッセージ72は、上記エンベロープの受信通知を提供する。メッセージ・ルータは、メッセージ72に応答して、メッセージ74により当初のメッセージのデータを送信する。メッセージ74における当初のメッセージのデータは、従来の蓄積交換のルーティングに付随する待ち時間を減らすために、不揮発性メモリに未格納の状態で送られる。メッセージ76及び78は、メッセージのデータの受信を知らせ、当初のメッセージが意図された受信先に到達するまで送信されない。
メッセージ74の送信とメッセージ76の受信との間の時間に、ステートレスなメッセージ・ルータに障害が発生するというリスク(危険性)はあるけれども、同様なリスクは、従来のメッセージのルーティングのための蓄積交換方式に関しても存在する。どちらのケースにおいても、データの受信は、知らされず、当初のメッセージは、1回以上送達されるだろう。障害は、メッセージ送信側(のホスト)、メッセージ・ルータ、又は2つのホストの間のネットワーク接続のいずれにも発生し得る。このリスクは、「メッセージの複製とSMTP」(ネットワーク・ワーキング・グループ、RFC−1047、1988年2月)に記載されている。
図7は、接続を確立するために、SMTPのプロトコルが用いられている、メッセージングの図表80を示す。一般的に、第1の接続は、複数のメッセージ82によって開始され、当初のメッセージのデータがメッセージ84で送信される。第2の接続は、複数のメッセージ86を通して確立され、当初のメッセージのデータがメッセージ88で送信される。データの受信と接続の終了の通知は、複数のメッセージ90を通してなされる。既に注意したように、SMTPは、用いられ得るいくつかのプロトコルの1つに過ぎない。
それ故、最初にメッセージを不揮発性メモリ(NVM)に格納することなく、メッセージを送るために、ステートレスなメッセージのルーティングが採用されるかもしれない。送信側のホストは、最初にメッセージをメッセージ・ルータに送信するが、メッセージ・ルータは、メッセージの受信を直ぐには通知せず、受信側のホストに接続して、上記のメッセージを受信側に送信する。受信側が上記のメッセージの受信を通知した後でなければ、ルータは、送信側への通知を行なわない。このやり方は、上記メッセージの複製品の不揮発性メモリへの格納を回避する一方、同時に、システム障害が発生した場合でも、送信側に「受信された」と立証される各メッセージが、確実に受信側に送達されるようにする。
ステートレスなメッセージのルーティングは、メッセージの受信用の入来側の接続とメッセージの送信用の発信側の接続の両方を用いる。従来のメッセージングシステムと違って、両方の接続が、同時にアクティブとなる。従って、ステートレスなメッセージのルーティングは、従来のメッセージングシステムよりも、よりアクティブな接続を要求する。あるやり方は、これらの接続を管理するために、非同期の入出力(I/O)を用いるであろう。
もし、メッセージが、その最終的なデスティネーション(送り先)に到着する前に、一連のメッセージ・ルータを通過しなければならず、各メッセージ・ルータが、ステートレスなルーティングを採用するならば、メッセージのデータが送信される前に、メッセージのルーティングのための「仮想の回路」を確立することが、より効率的である。いかなるメッセージのルーティングのプロトコル(例えば、SMTP)も、この仮想の回路の管理を可能にさせるために、拡張され得る。
全てのメッセージを、ステートレスなメッセージのルーティングを用いて配信することができないかもしれないので、あるやり方は、複合型のシステムにおいて、従来のメッセージのルーティングと並べて、ステートレスなメッセージのルーティングを配置する。下記に、具体的な実施例を、より詳細に述べる。
(単一の受信側のホストについてのステートレスなルーティング)
上記の実施形態に応じた構成のシステムは、ステートレスなルーティングが可能であるか否かを検出することができる。各入来メッセージは、そのメッセージに関連する受信先のリストを持つことができる。SMTPのメッセージのルーティングのプロトコルの場合には、これらの受信先は、”RCPT TO”コマンドによって示される。各受信先は、それに対してメッセージが送られなければならない、特定のデスティネーション・ホストを持つ。このデスティネーション・ホストは、そのメッセージのルーティングのプロトコルに特有のアルゴリズムによって決定される。SMTPについては、上記のデスティネーション・ホストは、受信側のホストのホストネームとIPアドレスを決定するためのDNSルックアップ機能を用いて決定される。もし、各メッセージ受信先のデスティネーション・ホストが同じであれば、そのメッセージの配信に、ステートレスなルーティングを採用するようにしてもよい。
単一の受信側のホストについてのステートレスなルーティングについては、従来のメッセージのルーティングよりも、僅かにメッセージを重複して送る確率が高くなるかもしれない。そのリスクは、メッセージの受信側によるメッセージの受信の通知と、メッセージングのゲートウェイによるメッセージの送信元へのメッセージ受信の通知との間の時間において、メッセージ・ルータが故障したり、送信元のサーバの接続が切れるということである。もし、このようなことが起これば、メッセージは送られるが、メッセージの送信元は、メッセージが送られたと分からないであろうから、おそらくメッセージを重複して送ってしまうだろう。とはいえ、ステートレスなルーティングに付随した時間節約の効果は、メッセージを重複して送ってしまうことに付随した潜在的なコストを、はるかに上回っている。
(楽観的なステートレスなメッセージのルーティング)
既に述べたように、受信側のホストが多数の場合にも、ステートレスなルーティングを試みることができる。そのような場合には、各ホストへの配信は、順次に又は並行して試みられ得る。もし、1つ以上のホストへの配信が失敗した場合には、該当のメッセージを不揮発性メモリに書き込んでもよい。
「楽観的な」ステートレスなルーティングの場合、最初のメッセージの受信先によるメッセージの受信の通知と、最後のメッセージの受信先によるメッセージの受信の通知との間の時間は、極めて長くなり得る。SMTPのメッセージのルーティングの場合、SMTPのRFCは、SMTPサーバが、メッセージの受信を通知するための時間を10分まで許容している。上記の2つの通知の間における、送信側の障害、ルータの障害、ネットワークの切断等の障害は、重複したメッセージの送達に帰結するかもしれない。既に述べたように、メッセージを重複して送ってしまうことに付随した潜在的なコストは、無視し得る。
この分野の当業者は、上述の記載から、本発明の広範な手法の実施形態が、様々な手法で実施され得ると分かるであろう。それ故、本発明の実施形態は、その特定の例について記載されているけれども、図面、明細書、及び次の請求項を考察すれば、熟練者にとって他の変形が可能であることが明らかなので、本発明の実施形態の真の範囲は、上述の範囲に限定されるべきではない。
本出願は、2002年12月16日付けの米国仮出願第60/433,592号に基く優先権を主張する。その全体が、参照により本願に取り込まれ、本願は、上記出願の出願日に基く恩恵を享受する。

Claims (33)

  1. 入来データの受信処理と、
    前記入来データに関連するデスティネーション・ホストに基いて、前記入来データについてステートレスなルーティングを採用するか否かの決定を行う処理とからなる入来データの処理方法。
  2. ステートレスなルーティングが採用されるべきという決定処理と、
    前記入来データの揮発性メモリのみへの格納処理とをさらに含む請求項1の方法。
  3. デスティネーション・ホストか下流側のルータから送達の通知を受信するまで、入来データの受信の通知を保留する処理をさらに含む請求項2の方法。
  4. 入来データの送信側が、受信の通知を受信するまで、前記送信側が、前記入来データの複製物を不揮発性メモリに格納する請求項3の方法。
  5. 送達の通知を受信する処理と、
    前記入来データの送信側に向けて受信の通知を送信する処理とをさらに含む請求項3の方法。
  6. 前記入来データを不揮発性メモリに格納することによってステートレスなルーティングを停止する処理と、前記入来データの送信側に向けて前記入来データの受信の通知を送信する処理とをさらに含む請求項2の方法。
  7. 前記デスティネーション・ホストについての履歴データを格納する処理と、
    前記履歴データに基いて、ステートレスなルーティングを採用するか否かの決定を行う処理とをさらに含む請求項1の方法。
  8. 前記履歴データは、以前のステートレスなルーティングの成果と以前のルーティングの待ち時間とのうちの少なくとも1つを含む請求項7の方法。
  9. 以前のルーティングの成果に基いて、成功の確率を計算する処理をさらに含む請求項8の方法。
  10. 以前のルーティングの待ち時間に基いて、重み付けされた待ち時間の平均を計算する処理をさらに含む請求項8の方法。
  11. 制御データを受信する処理と、
    前記制御データに基いて、ステートレスなルーティングを採用するか否かを決定する処理をさらに含む請求項1の方法。
  12. 前記入来データは、データチャネルで受信され、前記制御データは、制御チャネルで受信される請求項11の方法。
  13. 前記入来データと前記制御データは、データチャネルで受信される請求項11の方法。
  14. 前記制御データは、前記入来データについての、有効期間の値、ホップカウントの値、及び最大ホップ値のうちの少なくとも1つを含む請求項11の方法。
  15. 前記入来データが、複数のデスティネーション・ホストに関連付けられているときは、前記有効期間の値と前記最大ホップ値のうちの少なくとも1つを減らす請求項14の方法。
  16. ステートレスなルーティングが採用されるべきか否かを表すバイナリーの決定値をキャッシングする処理か、生成する処理のいずれかをさらに含む請求項1の方法。
  17. 前記入来データは、複数のデスティネーション・ホストに関連付けられており、
    前記方法は、
    前記複数のデスティネーション・ホストの各々についてのバイナリーの決定値を生成する処理と、
    ステートレスなルーティングが採用されるべきか否かを表す前記バイナリーの決定値の各々の間でAND演算を実行する処理とをさらに含む請求項16の方法。
  18. ステートレスなルーティングが採用されるべきか否かを表す確率の決定値を生成する処理をさらに含む請求項1の方法。
  19. 前記入来データは、複数のデスティネーション・ホストに関連付けられており、
    前記方法は、
    前記複数のデスティネーション・ホストの各々についての確率の決定値を生成する処理と、
    ステートレスなルーティングが採用されるべきか否かを表すために、前記各確率の決定値を相互に掛け合わせる処理とをさらに含む請求項18の方法。
  20. 前記入来データは、第1の接続を通って受信され、
    前記方法は、前記入来データを、第2の接続を介して、デスティネーション・ホストに向けて送信する処理をさらに含み、
    前記第1及び第2の接続が、仮想の回路の一部である請求項1の方法。
  21. 前記入来データの送信処理が、前記入来データの受信処理の完了前に始まる請求項20の方法。
  22. 前記入来データは、メッセージを含む請求項1の方法。
  23. 1以上のデスティネーション・ホストについての履歴データを格納する処理と、
    制御データを受信する処理と、
    前記1以上のデスティネーション・ホストに関連するメッセージを、第1の接続を介して受信する処理と、
    前記履歴データ及び前記制御データに基づいて、前記メッセージについてのステートレスなルーティングを採用するか否かを決定する処理と、
    ステートレスなルーティングが採用されると決定された場合に、前記メッセージを揮発性メモリにのみ格納し、前記メッセージの受信の通知を保留する処理と、
    1以上の仮想の回路を形成する追加の接続を介して、前記1以上のデスティネーション・ホストに前記メッセージを送信する処理と、
    前記メッセージに関連した1以上のデスティネーション・ホストから送達の通知を受信する処理と、
    前記メッセージの送信元に受信の通知を送信する処理とを含むメッセージの処理方法。
  24. 前記メッセージの送信元が、受信の通知を受信するまで、前記送信元が、前記メッセージの複製物を不揮発性メモリに格納する請求項23の方法。
  25. 前記履歴データは、以前のステートレスなルーティングの成果と以前のステートレスなルーティングの待ち時間とのうちの少なくとも1つを含む請求項23の方法。
  26. 前記制御データは、前記メッセージについての、有効期間の値、ホップカウントの値、及び最大ホップ値のうちの少なくとも1つを含む請求項23の方法。
  27. ステートレスなルーティングが採用されるべきか否かを表すバイナリーの決定値を生成する処理をさらに含む請求項23の方法。
  28. ステートレスなルーティングが採用されるべきか否かを表す確率の決定値を生成する処理をさらに含む請求項23の方法。
  29. 前記メッセージの送信処理が、前記メッセージの受信処理の完了前に始まる請求項23の方法。
  30. 入来データを受信し、
    前記入来データに関連するデスティネーション・ホストに基いて、前記入来データについてステートレスなルーティングを採用するか否かの決定を行うために、
    プロセッサによって実行可能な一組の命令を格納した機械読取可能な記録媒体。
  31. 前記命令は、さらに、
    ステートレスなルーティングが採用されるべきという決定を行い、
    前記入来データを揮発性メモリにのみ格納するように、実行され得る請求項30の記録媒体。
  32. 前記命令は、さらに、
    デスティネーション・ホストか下流側のルータから送達の通知を受信するまで、入来データの受信の通知を保留するように、実行され得る請求項31の記録媒体。
  33. 入来データの送信元が、受信の通知を受信するまで、前記送信元が、前記入来データの複製物を不揮発性メモリに格納する請求項32の記録媒体。
JP2004565495A 2002-12-16 2003-12-16 ステートレスな(処理状態を把握しない)メッセージのルーティング Expired - Fee Related JP4324561B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43359202P 2002-12-16 2002-12-16
PCT/US2003/039875 WO2004062215A2 (en) 2002-12-16 2003-12-16 Stateless message routing

Publications (2)

Publication Number Publication Date
JP2006510325A true JP2006510325A (ja) 2006-03-23
JP4324561B2 JP4324561B2 (ja) 2009-09-02

Family

ID=32712986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004565495A Expired - Fee Related JP4324561B2 (ja) 2002-12-16 2003-12-16 ステートレスな(処理状態を把握しない)メッセージのルーティング

Country Status (5)

Country Link
US (1) US7606252B2 (ja)
EP (1) EP1582037B1 (ja)
JP (1) JP4324561B2 (ja)
AU (1) AU2003297116A1 (ja)
WO (1) WO2004062215A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011171867A (ja) * 2010-02-17 2011-09-01 Hitachi Ltd メールシステムにおけるデータストアサーバのデータ格納方法およびメール中継方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4324561B2 (ja) * 2002-12-16 2009-09-02 ジェミナイ モバイル テクノロジーズ,インコーポレーテッド ステートレスな(処理状態を把握しない)メッセージのルーティング
GB2403633B (en) * 2003-07-03 2006-01-04 Datasmith Ltd Improvements in and relating to data transfer
ES2318560T3 (es) * 2004-11-12 2009-05-01 Intellprop Limited Aparato y metodo de servicios de telecomunicaciones.
US7542430B2 (en) * 2005-01-13 2009-06-02 Tektronix, Inc. System and method for measuring end-to-end network delay and user-perspective delay
ZA200710375B (en) * 2005-06-13 2009-03-25 Mtn Mobile Money Sa Pty Ltd A method of authenticating a message transmitted on a communications network and a system therefor
US20070299979A1 (en) * 2006-06-27 2007-12-27 Avshalom Houri Stateless publish/subscribe messaging using sip
ZA200901040B (en) * 2006-08-10 2010-05-26 Mtn Mobile Money Sa Pty Ltd A system and method for verifying an image transmitted over a communications network
US8085799B2 (en) * 2007-06-19 2011-12-27 International Business Machines Corporation System, method and program for network routing
US9178916B2 (en) 2007-06-28 2015-11-03 Voxer Ip Llc Real-time messaging method and apparatus
US8180029B2 (en) 2007-06-28 2012-05-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8825772B2 (en) 2007-06-28 2014-09-02 Voxer Ip Llc System and method for operating a server for real-time communication of time-based media
US11095583B2 (en) 2007-06-28 2021-08-17 Voxer Ip Llc Real-time messaging method and apparatus
US8688789B2 (en) 2009-01-30 2014-04-01 Voxer Ip Llc Progressive messaging apparatus and method capable of supporting near real-time communication
US20110019662A1 (en) 2007-06-28 2011-01-27 Rebelvox Llc Method for downloading and using a communication application through a web browser
US20100198988A1 (en) 2009-01-30 2010-08-05 Rebelvox Llc Methods for using the addressing, protocols and the infrastructure of email to support near real-time communication
US8645477B2 (en) 2009-01-30 2014-02-04 Voxer Ip Llc Progressive messaging apparatus and method capable of supporting near real-time communication
US8849927B2 (en) 2009-01-30 2014-09-30 Voxer Ip Llc Method for implementing real-time voice messaging on a server node
US8347021B1 (en) * 2010-04-09 2013-01-01 Google Inc. Storing application messages
US10187478B2 (en) * 2014-07-18 2019-01-22 Hewlett Packard Enterprise Development Lp Dynamic detection of inactive virtual private network clients
US10545667B1 (en) 2015-03-04 2020-01-28 Amazon Technologies, Inc. Dynamic data partitioning for stateless request routing
US10630571B1 (en) 2017-11-16 2020-04-21 Amazon Technologies, Inc. Fault-tolerant request routing
US11429517B2 (en) * 2018-06-20 2022-08-30 EMC IP Holding Company LLC Clustered storage system with stateless inter-module communication for processing of count-key-data tracks

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3870828A (en) * 1973-09-06 1975-03-11 Paradyne Corp Superimposed binary signal
US4980913A (en) * 1988-04-19 1990-12-25 Vindicator Corporation Security system network
US6785021B1 (en) * 1988-09-22 2004-08-31 Audiofax, Ip, Llc Facsimile telecommunications system and method
US5509000A (en) * 1994-06-10 1996-04-16 Motorola, Inc. Method and apparatus for routing information in a communication system
WO1996038987A1 (en) * 1995-05-31 1996-12-05 Sloo Marshall A Method and apparatus for handling communications
WO1999008424A1 (de) * 1997-08-06 1999-02-18 Siemens Aktiengesellschaft Verfahren und vorrichtung zur generierung von informationen über versendete nachrichten
US6161198A (en) * 1997-12-23 2000-12-12 Unisys Corporation System for providing transaction indivisibility in a transaction processing system upon recovery from a host processor failure by monitoring source message sequencing
US6370584B1 (en) * 1998-01-13 2002-04-09 Trustees Of Boston University Distributed routing
US6353614B1 (en) * 1998-03-05 2002-03-05 3Com Corporation Method and protocol for distributed network address translation
US6483834B1 (en) * 1998-12-10 2002-11-19 Sprint Communications Company L.P. System for creating switched virtual circuits to transport information over an ATM network
US6721315B1 (en) * 1999-09-30 2004-04-13 Alcatel Control architecture in optical burst-switched networks
US6351776B1 (en) * 1999-11-04 2002-02-26 Xdrive, Inc. Shared internet storage resource, user interface system, and method
US20010024436A1 (en) * 1999-12-17 2001-09-27 Keith Barraclough Voice-over IP audio-data terminal processor
DE10011667C2 (de) * 2000-03-10 2002-11-21 Infineon Technologies Ag Hochgeschwindigkeits-Router
CN1270490C (zh) * 2000-07-13 2006-08-16 诺基亚公司 提供消息发送业务的方法与系统
US7065568B2 (en) * 2000-11-30 2006-06-20 Microsoft Corporation System and method for managing states and user context over stateless protocols
WO2002054800A2 (en) * 2001-01-08 2002-07-11 Bmd Wireless Ag Method and message server for conveying messages in a telecommunications network
US7433967B2 (en) * 2001-02-16 2008-10-07 Microsoft Corporation Method and system for routing SMS messages
US20030101190A1 (en) * 2001-03-14 2003-05-29 Microsoft Corporation Schema-based notification service
US6801604B2 (en) * 2001-06-25 2004-10-05 International Business Machines Corporation Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources
US7194535B2 (en) * 2001-10-01 2007-03-20 Ixia Methods and systems for testing stateful network communications devices
US8001189B2 (en) * 2001-10-16 2011-08-16 Microsoft Corporation Routing of network messages
US7487212B2 (en) * 2001-12-14 2009-02-03 Mirapoint Software, Inc. Fast path message transfer agent
US20030212818A1 (en) * 2002-05-08 2003-11-13 Johannes Klein Content based message dispatch
JP4324561B2 (ja) * 2002-12-16 2009-09-02 ジェミナイ モバイル テクノロジーズ,インコーポレーテッド ステートレスな(処理状態を把握しない)メッセージのルーティング
US7260186B2 (en) * 2004-03-23 2007-08-21 Telecommunication Systems, Inc. Solutions for voice over internet protocol (VoIP) 911 location services

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011171867A (ja) * 2010-02-17 2011-09-01 Hitachi Ltd メールシステムにおけるデータストアサーバのデータ格納方法およびメール中継方法

Also Published As

Publication number Publication date
US7606252B2 (en) 2009-10-20
JP4324561B2 (ja) 2009-09-02
WO2004062215A2 (en) 2004-07-22
AU2003297116A8 (en) 2004-07-29
EP1582037A2 (en) 2005-10-05
US20040170158A1 (en) 2004-09-02
WO2004062215A3 (en) 2005-01-27
EP1582037B1 (en) 2012-08-08
AU2003297116A1 (en) 2004-07-29

Similar Documents

Publication Publication Date Title
JP4324561B2 (ja) ステートレスな(処理状態を把握しない)メッセージのルーティング
US8990401B2 (en) Fast path message transfer agent
US7398315B2 (en) Reducing unwanted and unsolicited electronic messages by preventing connection hijacking and domain spoofing
US7552176B2 (en) Reducing unwanted and unsolicited electronic messages by exchanging electronic message transmission policies and solving and verifying solutions to computational puzzles
US7080123B2 (en) System and method for preventing unnecessary message duplication in electronic mail
US8019823B2 (en) Method, system and device for increasing multimedia messaging service system capacity
US20060224673A1 (en) Throttling inbound electronic messages in a message processing system
US8032596B2 (en) System and method for managing e-mail messages
US20080294795A1 (en) Determining Availability Of A Destination For Computer Network Communications
US20070110046A1 (en) Internet protocol optimizer
JP2004532443A (ja) 状態転送動作のための分散型キャッシュ
US20060168017A1 (en) Dynamic spam trap accounts
WO2009094919A1 (fr) Procédé, dispositif et système pour diagnostiquer si, dans le réseau p2p, des noeuds sont anormaux ou non
JP5607461B2 (ja) システム及びゲートウェイ
JP2010520687A (ja) 物理伝送媒体が中断した場合のtcpデータ伝送プロセスを改善する方法
JP4565788B2 (ja) パケット認証
KR101213935B1 (ko) 불필요하고 요청되지 않은 전자 메시지를 감소시키는 방법
CN106790728A (zh) 消息推送方法和系统
US20200389409A1 (en) In-band-telemetry-based path mtu size determination system
CN112187902B (zh) IPv6隧道模式下的DNS代理方法、装置、存储介质及终端设备
JP2005065100A (ja) データ配信方法、中継装置及びコンピュータプログラム
KR100521801B1 (ko) 네트워크상에서의 스팸메일 차단 시스템 및 방법
Simpson Network Working Group T. Narten Request for Comments: 1970 IBM Category: Standards Track E. Nordmark Sun Microsystems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090508

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: 20090526

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090608

R150 Certificate of patent or registration of utility model

Ref document number: 4324561

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees