JP2015509232A - クラウドにおけるメッセージングのための方法および装置 - Google Patents
クラウドにおけるメッセージングのための方法および装置 Download PDFInfo
- Publication number
- JP2015509232A JP2015509232A JP2014549044A JP2014549044A JP2015509232A JP 2015509232 A JP2015509232 A JP 2015509232A JP 2014549044 A JP2014549044 A JP 2014549044A JP 2014549044 A JP2014549044 A JP 2014549044A JP 2015509232 A JP2015509232 A JP 2015509232A
- Authority
- JP
- Japan
- Prior art keywords
- session
- state
- message
- context
- processor
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
- H04L65/1086—In-session procedures session scope modification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本分散メッセージハンドリングシステムは、セッション状態を使用してメッセージハンドリングシステムにおいて複数のセッションコンテキストを表すことによって、作成される。セッション状態は、セッションを完全に記述するセッションコンテキストのフラット表現である。セッション状態を使用してシステムメッセージリクエストを処理することは、メッセージハンドリングシステムがメッセージリクエストのハンドリングを複数の状態機械に分散させることを可能にする。有利には、分散メッセージングシステムは、メッセージハンドリングシステムが需要に応じてアプリケーションインスタンスにメッセージハンドリング資源を動的に割り当てることを可能にする。そのような動的割当ては、プロバイダが、アプリケーション実行需要を満たしながら、需要を満たすために資源を効率的に割り当てることを可能にする。
Description
本発明は、概して、ネットワークにおいてメッセージを処理するための方法および装置に関する。
本項は、本発明のよりよい理解を促進する際に有用であり得る態様を紹介する。したがって、本項の記述は、この観点から読まれるべきであり、先行技術にあるものまたは先行技術にないものに関する承認として理解されるべきではない。
いくつかの知られているシステムで、ネットワークプロバイダは、専用の機器を使用して、提供されるアプリケーションを処理する。これらの場合、プロバイダが新しいサービスの提供を望む場合、将来の最大需要を予測し、予測された需要を満たすための正しい量の専門のおよび専用のボックスを購入する必要がある。後で、需要が増えた場合、オペレータはより多くのボックスを購入する必要があり、需要予測が高すぎた場合、ボックスは遊休状態にある。このプロセスのすべては、数分ではなく、約数カ月であり、かなり遅い。そのようなセットアップでは、ネットワークプロバイダは投資を渋る。
他の知られているシステムで、コンテンツプロバイダは、自らのアプリケーション専用の資源を動的に調節するために、従来のクラウドネットワークに自らのアプリケーションを置く。しかし、従来のクラウドネットワークは、ネットワークプロバイダアプリケーションの実行需要を満たすことができない。
G.DeCandia、D.Hastorum、M.Jampani、G.Kakulapati、A.Lakshman、A.Pilchin、S.Sivasubramanian、P.Vosshall、およびW.Vogels、「Dynamo:Amazon’s Highly Available key−value Store」、Proc.21st ACM Symp.Operating Systems Principles(SOSP’07)、205−220頁、2007年10月
様々な実施形態は、分散メッセージハンドリングシステムを作成する方法および装置を提供する。分散メッセージハンドリングシステムは、セッション状態を使用してメッセージハンドリングシステムにおける複数のセッションコンテキストを表すことによって、作成される。セッション状態は、セッションを完全に記述するセッションコンテキストのフラット表現である。セッション状態を使用してシステムメッセージリクエストを処理することは、メッセージハンドリングシステムがメッセージリクエストのハンドリングを複数の状態機械に分散させることを可能にする。有利には、分散メッセージングシステムは、メッセージハンドリングシステムが需要に応じてアプリケーションインスタンスにメッセージハンドリング資源を動的に割り当てることを可能にする。そのような動的割当ては、プロバイダが、アプリケーション実行需要を満たしながら、需要を満たすための資源を効率的に割り当てることを可能にする。
一実施形態で、分散メッセージハンドリング装置は、分散メッセージングシステムにおいてメッセージを処理するために提供される。分散メッセージハンドリング装置は、データストレージ、および、データストレージに通信可能に結合されたプロセッサを含む。プロセッサは、受信されたメッセージのセッションidに基づいてセッション状態を検索し、セッション状態に基づいてセッションコンテキストを作成し、状態機械を使用してセッションコンテキストを実行するようにプログラムされる。
いくつかの実施形態で、セッション状態は、セッションid、複数のセッションパラメータ、および、現在のノード識別子を含む。
いくつかの実施形態で、セッションパラメータの少なくとも一部は、名前−値ペアとしてフォーマットされる。
いくつかの実施形態で、プロセッサはまた、受信されたメッセージの第2のセッションidに基づいて第2のセッション状態を検索し、第2のセッション状態およびフロー定義に基づいて第2のセッションidのメッセージのシーケンスを再作成するようにプログラムされる。
いくつかの実施形態で、セッションコンテキストの実行は、実行されたセッションコンテキストに基づいて更新されたセッション状態を作成するようにプロセッサをプログラムするステップを含む。
いくつかの実施形態で、データストレージは、状態機械に関連する更新されたセッション状態と、第2の分散メッセージハンドリング装置の第2の状態機械に関連するセカンダリセッション状態とを含む。
いくつかの実施形態で、プロセッサはまた、以下を行うようにプログラムされる:更新されたセッション状態を第2の分散メッセージハンドリング装置に送信し、第2の分散メッセージハンドリング装置からセカンダリセッション状態を受信する。
第2の実施形態で、分散メッセージハンドリング装置は、分散メッセージングシステムにおいてメッセージを処理するために提供される。分散メッセージハンドリング装置は、データストレージと、データストレージに結合されたプロセッサとを含む。データストレージは、セッションデータストアを含む。プロセッサは、以下を行うようにプログラムされる:複数のメッセージを受信し、それらのメッセージのうちの少なくとも第1のメッセージを分散メッセージハンドリングシステム内の第2の分散メッセージハンドリング装置に転送し、それらのメッセージのうちの少なくとも第2のメッセージを処理する。プロセスは、以下を行うようにプロセッサをプログラムするステップを含む:第2のメッセージに基づいてセッションデータストアからセッション状態を検索し、セッション状態に基づいてセッションコンテキストを作成し、状態機械を使用してセッションコンテキストを実行し、実行されたセッションコンテキストに基づいて更新されたセッション状態を作成し、データストレージにおいて更新されたセッション状態を格納する。
いくつかの実施形態で、セッション状態は、セッションid、複数のセッションパラメータ、および、現在のノード識別子を含む。
いくつかの実施形態で、セッションコンテキストの作成は、受信されたメッセージから少なくとも1つの事象パラメータを抽出するようにプロセッサをプログラムするステップと、セッションコンテキストを抽出された事象パラメータ(複数可)に基づかせるステップとを含む。
いくつかの実施形態で、少なくとも第1のメッセージおよび第2のメッセージは、セッションidを含む。
いくつかの実施形態で、プロセッサはまた、以下を行うようにプログラムされる:セッションidに基づいてセッションデータストアがメッセージのセッション状態情報を含むかどうかを判定して、メッセージを転送または処理するかどうかの判定に基づいてセッションデータストアがメッセージのセッション状態情報を含むかどうかの判定に基づかせる。
いくつかの実施形態で、プロセッサはまた、第2のメッセージを処理するという判定に応答して状態機械を起動させるようにプログラムされる。
いくつかの実施形態で、プロセッサはまた、以下を行うようにプログラムされる:分散メッセージハンドリングシステムにおいて第3の分散メッセージハンドリング装置から移行されたセッション状態を受信し、移行されたセッション状態に基づいてセッションデータストアを更新する。
いくつかの実施形態で、状態機械は、フロー定義を備える。
第3の実施形態で、受信されたメッセージを分散メッセージハンドリングシステム内で処理するための方法が、提供される。本方法は、受信されたメッセージのセッションidに基づいてセッション状態を検索するステップと、セッション状態に基づいてセッションコンテキストを作成するステップと、状態機械を使用してセッションコンテキストを実行するステップとを含む。
いくつかの実施形態で、セッションコンテキストの翻訳作成は、状態機械によって作成された更新されたセッションコンテキストを使用し、更新されたセッション状態を翻訳するステップと、更新されたセッション状態をセッションデータストアに送信するステップとを含む。
いくつかの実施形態で、セッション状態は、セッションid、複数のセッションパラメータ、および、現在のノード識別子を含む。
いくつかの実施形態で、セッションコンテキストの作成は、受信されたメッセージから少なくとも1つの事象パラメータを抽出するステップと、セッションコンテキストを抽出された事象パラメータ(複数可)に基づかせるステップとを含む。
様々な実施形態が、以下のような添付の図面に示される。
理解を容易にするために、同一の参照番号は、ほぼ同じまたは同様の構造および/またはほぼ同じまたは同様の機能を有する要素を指示するために使用されてある。
分散メッセージハンドリングシステムは、セッション状態を使用してメッセージハンドリングシステムにおいて複数のセッションコンテキストを表すことによって、作成される。セッション状態は、セッションを完全に記述するセッションコンテキストのフラット表現である。セッション状態を使用してシステムメッセージリクエストを処理することは、メッセージハンドリングシステムがメッセージリクエストのハンドリングを複数の状態機械に分散させることを可能にする。有利には、分散メッセージングシステムは、メッセージハンドリングシステムが需要に応じてアプリケーションインスタンスにメッセージハンドリング資源を動的に割り当てることを可能にする。そのような動的割当ては、プロバイダが、商品ハードウェアを使用して需要を満たすために、たくさんの資源にわたりメッセージハンドリングサービスを効率的に割り当てることを可能にする。
有利には、分散メッセージハンドリングシステムは、資源の一部がアプリケーション全体の機能および可用性に影響を及ぼすことなしに機能しなくなることを可能にする頑強なフェイルオーバ機構を可能にさせることができる。加えて、分散メッセージハンドリングシステムは、ユーザの増大とともに拡大または縮小することができる、すなわち、より多くの資源へそれ自体を拡張するまたは資源を解放することができる。最後に、分散メッセージハンドリングシステムは、優先権割当て方式を介してアプリケーションのタイミング要件に合わせることができる。
図1は、分散メッセージハンドリングシステム100内の格納されたセッションデータの階層を示す。分散メッセージハンドリングシステム100は、1つまたは複数のアプリケーション110−1−110−n(集合的にアプリケーション110)を処理することができる。アプリケーション110の各々は、1つまたは複数のインスタンス120−1−120−n(集合的にインスタンス120)を有し得る。インスタンス120の各々は、1つまたは複数のセッション130−1(1)−130−1(n)(集合的にセッション130)からのメッセージを処理することができる。メッセージを処理するために、セッションは、特定のユーザおよびセッションに関連するセッションコンテキストデータ140を必要とする。
図2は、図1の分散メッセージハンドリングシステム100の一実施形態を示す分散メッセージハンドリングシステム200の機能ブロック図を示す。セッションルータ210は、アンカーポイント(図示せず)から受信されたメッセージ250をセッションマネージャ220にルーティングする。セッションマネージャ220は、メッセージ250内の識別子を使用して、セッションデータストア240からセッション状態を検索する。セッションマネージャは、次いで、セッション状態に基づいてセッションコンテキストを作成し、状態機械230を選択してメッセージリクエストを処理する。状態機械230は、メッセージリクエストを処理し、メッセージ応答250−6を実行することができる。
図1−3を参照すると、セッションルータ210が、受信されたメッセージ250−1からセッションidを抽出し、セッションidに関連するセッションマネージャにメッセージ250−2をルーティングする(たとえば、方法300のステップ310)。具体的には、各メッセージ250−1は、メッセージをセッションコンテキストにマップするセッション識別子を含む。セッションコンテキストは、稼働中のセッション(たとえば、図1の130−1)を記述する永続的データである。本明細書では「セッションコンテキスト」という用語は、ユーザコンテキスト、または、受信されたメッセージ250を処理するために分散メッセージハンドリングシステム200によって必要とされる任意の他の永続的データをも含むものとして、広く理解されるべきである。
受信されたメッセージから抽出されるセッションidは、メッセージが属するセッションを識別するメッセージの任意の部分でもよいことを理解されたい。さらに、抽出されたセッションidは、分散メッセージハンドリングシステム100の任意の適切な構成要素によって任意の他のインディケータにマップされ得ることを理解されたい。したがって、本明細書では「セッションid」という用語は、抽出されたセッションidと、抽出されたセッションidを表すために分散メッセージハンドリングシステム100によって使用される任意のマップされた識別子との両方を含むものとして、広く理解されるべきである。
セッションルータ210はさらに、セッションコンテキストをセッションコンテキストに関連するメッセージを処理する責任を有する少なくとも1つのセッションマネージャ220にマップする。たとえば、セッションルータ210は、ハッシングアルゴリズムを使用して、ルーティングテーブルを使用して、および/または、次ホップまたは最近傍方式を使用して、セッションidをセッションマネージャ220にマップすることができる。
セッションマネージャ220は、セッションidを使用し、セッションデータストア240からセッション状態を検索する。具体的には、セッションルータ220は、データ検索クエリ250−3への鍵としてセッションidを使用する(たとえば、方法300のステップ320)。データ検索クエリ250−3は、セッションデータストア240に向けられるデータクエリである。セッションデータストア240は、データ検索クエリ250−3に応答して、セッションidに関連するセッション状態250−4を返す。
本明細書では、「セッション状態」という用語は、セッションコンテキストのフラット表現である。セッション状態は、コンパクトな形でセッションコンテキストを完全に記述し、セッションコンテキスト全体を検索するために必要とされる情報を含む。有利には、分散メッセージハンドリングシステム200内の各セッションのセッションコンテキスト情報の代わりにセッション状態情報(たとえば、図1の140)を保持することは、必要なストレージがより少なく、分散システムにおけるタイミング要件を満たすことを容易にする。
セッションマネージャ220は、メッセージに関連するセッションを記述するセッションコンテキストにセッション状態を翻訳し(たとえば、方法300のステップ330)、翻訳されたセッションコンテキスト250−5を状態機械230に渡す。セッションマネージャは、並列性を構成するそれらのメッセージを順序付けることができる。
状態機械230は、メッセージを実行するプログラムを実行する論理を含む(たとえば、方法300のステップ340)。実行されるプログラムの出力は、メッセージまたはシステムコマンド250−6あるいは任意の他の適切な応答を出力し得る。セッションコンテキストが状態機械によって変更される場合、更新されたセッションコンテキストは、更新されたセッション状態250−7に翻訳され(たとえば、方法300のステップ350)、セッション状態データ240に送信される(たとえば、方法300のステップ360)。
セッションコンテキストは、実行環境において状態機械230によって使用され得る形へのセッション状態の任意の適切な翻訳でもよいことを理解されたい。さらに、いくつかの実施形態で、状態機械230は、セッション状態と同じフォーマットでセッションコンテキストを受け付けることができる。これらの実施形態で、変更のないセッション状態を状態機械230に渡すことは、セッション状態のセッションコンテキストへの翻訳である。
セッション状態データ240は、分散メッセージハンドリングシステム200によって必要とされるデータの永続的記憶である。具体的には、セッション状態は、セッション状態データ240で記憶される。セッション状態は、データ検索を容易にするために、セッションidによってインデックスを付けられ得る。セッション状態データ240において、そのセッションの特性を示す情報、たとえばセッション状態データ、を記憶することによって、同量の資源がより多くのセッションを処理することができることを理解されたい。たとえば、任意の状態機械230は、任意のセッション状態を取り上げてセッションを再構成し、セッションの入力メッセージを処理することができるので、本システムは、各稼働中のセッションおよび回復力のために複製されたそのバックアップを維持するために必要とされるかなりの量のメモリを確保する必要がない。セッションは、資源使用、資源障害、サービス品質の契約および/またはセッション遊休時間などのシステム考察に基づいて、待機中にされて資源を節約することができる、または、異なる資源に移行され得る。有利には、セッション分散ハンドリングシステム200は、何億もの並列ユーザセッションをサポートすることができる。
いくつかの実施形態で、様々な機能ブロック210、220、230および240は、1つの装置内にともに配置され得る。
いくつかの実施形態で、機能ブロック210、220、230および240のうちの1つまたは複数は、複数の機能要素を含み得る。たとえば、セッションデータストア240は、複数のデータ記憶装置で構成され得る。これらの実施形態では、様々な機能ブロック210、220、230および240は、複数の装置にわたり分散され得る。
いくつかの実施形態で、セッション状態データは、名前−値のペアとしてフォーマットされ、そこで名前はセッション状態変数を識別し、値はセッション状態変数の値を表す。
いくつかの実施形態で、セッション状態データは、セッションパラメータ(複数可)、および、セッション流れを表す状態図内のセッションの現在のノードを表す少なくとも1つの識別子を含む。これらの実施形態で、状態図は、状態図におけるノード間の状態遷移およびセッション状態に関して、定義される。
いくつかの実施形態で、状態機械230は、番号を付けられた頂点を有するグラフを使用して状態を識別する。この実施形態で、セッション状態は、現在のセッションおよび状態機械230によって必要とされる格納された変数の頂点の数である。
いくつかの実施形態で、セッションデータストア240は、状態機械230内のいくつかの状態機械にわたり分散され得る。
いくつかの実施形態で、セッションデータストア240内で記憶されたセッション状態は、プライマリデータ記憶装置および1つまたは複数の待機中データ記憶装置において記憶され得る。具体的には、更新されたセッション状態250−7を受信したとき、セッションデータストア240は、1つまたは複数のデータ記憶装置を更新することができる。
いくつかの実施形態で、セッションデータストア240は、従来のログファイル、および/または、セッションデータストアの完全性を維持するためのチェックポイントを使用することができる。
いくつかの実施形態で、図1のアプリケーション110のうちの少なくとも1つは、LTE通信アプリケーションでもよい。この実施形態で、メッセージのうちの1つは、MME機能でもよい。MMEは、セッション指向アプリケーションであり、各セッションは、それ自体のデータを有し、共用データ構造体(たとえば、追跡エリア)にアクセスする。MME機能は、LTEワイヤレス通信ネットワークの「知能」の多くを実装する。MME機能は、システムにアクセスするユーザ機器(UE)を認証し、ユーザが遊休状態である間にUE状態を管理し、異なる基地局コントローラ(eNB)間のハンドオーバを監視し、モバイルコンテキストにおいてインターネット(PDN)接続性に必要とされるようなベアラを確立し、課金情報を生成し、合法的傍受ポリシならびにさらに多くの機能を実装する。他の実施形態で、メッセージのうちの1つは、PBX、AAA、HLR、SGSN、および、高度に利用可能な、リアルタイム保障を有する他の信号伝達機能でもよい。
図4−7を参照すると、図2の分散メッセージハンドリングシステム200の一実施形態が、基本的H.248呼設定を実装して、図示される。
図4は、基本的H.248呼設定に関わるユーザAとユーザBの間のメッセージ410の例示的交換を示す。この実施形態で、メディアゲートウェイコントローラ(MGC)は、図2のメッセージハンドリングシステム200の機能性を含み得る。たとえば、メッセージ410−1は、ユーザAと被呼者ユーザBの間の接続を起動するための事象データを含み得る。同様に、メッセージ410−2は、使用されることになる通信パラメータを指定するためのユーザBの事象データを含み得る。
図5は、図2の機能ブロックに示すようなセッション状態にメッセージを翻訳するための方法500の流れ図を示す。方法500は、メッセージを受信するステップ(ステップ510)と、メッセージを構文解析してセッションidを抽出するステップ(ステップ520)と、セッションデータストアからセッション状態を検索するステップ(ステップ530)と、メッセージを構文解析して関連事象を判定するステップ(ステップ540)と、メッセージを構文解析して事象パラメータ(複数可)を抽出するステップ(ステップ550)と、セッション状態、関連事象および事象データに基づいて、更新されたセッション状態を作成するステップ(ステップ560)とを含む。
方法500で、ステップ510は、メッセージを受信するステップを含む。いくつかの実施形態で、メッセージは、H.248メッセージでもよい。たとえば、図4のメッセージ410−1の一実施形態は、図6の行(1)−(20)によって示されるようでもよい。同様に、メッセージ410−2の一実施形態は、図7の行(21)−(40)として示されるようでもよい。
方法500で、ステップ520は、セッションidのメッセージを構文解析するステップを含む。たとえば、図6を参照すると、セッションidは、メッセージ410−1から構文解析され得る。具体的には、行1のIPアドレス/ポート番号タプル、および/または、行2のトランザクション識別子が、セッションidを判定するために、メッセージから抽出され得る。
方法500で、ステップ530は、図1−3で前述されたようなセッションデータストアからセッション状態を受信するステップを含む。いくつかの実施形態で、セッション状態は、セッション状態を定義するデータの例示的セグメントを示す図8にあるようなセッションコンテキストを定義する関連データを表す名前−値ペアの一群によって表すことができる。
方法500で、ステップ540は、メッセージを構文解析して関連事象を判定するステップを含む。たとえば、図6の行3−17を参照すると、第1の事象は、新しいコンテキストを作成し、それに物理終端TermAを加えることである。第2の事象は、短命終端を作成し、以前の事象によって作成された同コンテキストで作成された終端を追加することである。
方法500で、ステップ550は、メッセージを構文解析して事象パラメータ(複数可)を判定するステップを含む。たとえば、それぞれメッセージ410−1および410−2の一実施形態を示す図6および図7における例を参照すると、接続フィールドIPアドレスおよびメディアフィールドポート番号は、図6のメッセージでは指定されていない。図7で応答を構文解析することによって、IPアドレスおよびポート番号が、判定され得る。具体的には、行32および行33は、割り当てられたIPアドレス(すなわち、209.110.59.33)、および、この例で使用されることになるポート番号(すなわち、30000)を識別する。
方法500で、ステップ560は、セッション状態、関連事象および事象データに基づいて、更新されたセッション状態を作成するステップを含む。具体的には、事象データから抽出されたおよび/または関連事象に関連するパラメータが、受信されたセッション状態において現在のセッション状態および/またはセッションパラメータを修正するために使用され得る。セッションパラメータは、パラメータを加えることおよび/または新しい値で受信されたセッション状態に既に存在するセッションパラメータを更新することによって、修正され得る。任意の関連事象および/または事象データが抽出されるおよび/または関連するかどうかに基づいて、更新されたセッション状態は、検索されたセッション状態と同じでもよく、あるいは、更新されたセッション状態は、関連事象および/または事象データによって修正された検索されたセッション状態でもよいことを理解されたい。
いくつかの実施形態で、ステップ520、540および/または550でのメッセージの構文解析は、コンテキストに敏感な規則を使用することができる。規則は、トークンの場所のコンテキストに敏感でもよい。たとえば、図6の行1に示すように、ipアドレス/ポートタプルは、「MEGACO」メッセージプロトコル識別子に続く第1の行に置かれ得る。
いくつかの実施形態で、方法300および/または500はまた、フロー定義を使用し、受信されたメッセージを実行するステップを含み得る。フロー定義、または有限状態オートマトンは、関連状態図のノード、エッジおよび論理を記載する。検索されたセッション状態、関連事象、および事象データは、フロー定義への入力として使用され得る。フロー定義出力は、トランザクションを生成することができる。たとえば、トランザクションは、図4に示すように呼出し、リングバックまたはRTP通信ストリームを起動するためのメッセージでもよい。同様に、フロー定義出力は、セッションコンテキストを更新することができる。たとえば、ipアドレスおよびポートは、以下などの名前−値ペアで発呼者または被呼者と関連付けられ得る:「CALLED PARTY IPADDRESS(被呼者IPアドレス)」、「209.110.59.33」。本明細書では「状態図」という用語は、「流れ図」、流れ図論理を成立させるプログラムされたサブルーチン、または、状態システム内の受信されたメッセージの処理を対象とする任意の他のプログラミング技法も含むものとして、広く理解されるべきである。
いくつかの実施形態で、方法300および/または500はさらに、検索されたセッション状態を更新して関連事象を反映させるステップ、関連事象および/または検索された事象データに応答して取られるアクション、を含み得る。たとえば、名前−値ペアは、検索された関連事象、関連事象に応答して取られるアクションおよび/または検索された事象データを反映し、作成され得る。検索されたセッション状態は、次いで、作成された名前−値ペアを反映するように更新され、セッションデータストアで格納され得る。従来のデータベース技法が、セッションデータストアを更新するために使用され得ることを理解されたい。さらに、更新されたセッション状態全部がセッションデータストアにアップロードされる必要はないことを理解されたい。たとえば、いくつかの実施形態で、クエリ(複数可)が、新しい名前−値ペアを作成するおよび/または修正された名前−値ペアを更新して更新されたセッション状態を反映するために形成され得る。
いくつかの実施形態で、方法300および/または500はさらに、実行する実体の間でセッション状態を移行させるステップを含み得る。有利には、セッション状態を移行させるステップは、通常は、VM全体を動かすよりも少ないメモリを必要とし、そのようにして、それは迅速に行われ得る。さらに、状態の形は機械のアーキテクチャから独立しているので、セッション状態は、以下などの異種のハードウェアの間で移行することができる:サーバからスマートフォンへ、または、セットトップからサーバへ。
いくつかの実施形態で、方法300および/または500はさらに、検索されたセッション状態およびフロー定義に基づいて、受信されたメッセージのシーケンスを再作成するステップを含み得る。具体的には、状態図の現在のノードは、セッション状態内の格納されたデータ(たとえば、名前−値ペア)から判定され得る。現在のノードは、次いで、現在のノードから最初のノードへの流れをスキャンするためのフロー定義内の起点として使用され得る。シーケンス内の各連続するノードは、目標ノードにつながる起こり得るパスを判定することと、セッション状態データに基づく起こり得るパスからスキャンされるパスを選択することとによって、判定され得る。連続するノードが判定された後は、連続するノードから目標ノードへのメッセージが、フロー定義に格納された知られているメッセージフォーマットと、メッセージフォーマットに含まれる事象データに対応するセッションデータとを使用し、再作成され得る。
図8を参照すると、図8は、図3のステップ320および図5のステップ530で検索されたセッション状態の一実施形態を示す。セッション状態は、セッションid、セッションの現在の状態のインディケータ、および、セッションパラメータを含む。
行(1)で、「|」は、新しいセッションidまたはセッションコンテキストの開始を指示するファイル区切り記号であり、インディケータ「C4」および「Cxt:4」は、両方とも、セッションデータがセッションid4(たとえば、コンテキスト4)についてであることを指示するセッション識別子であり、インディケータ「NTFY(1)」は、セッションの現在の状態を指示する(たとえば、NOTIFY 1(1を通知する))。名前値リスト(NVL)が、次いで、明確さを目的として全リストから編集された行(2)−(26)に記載される。NVLは、前のメッセージから抽出されたおよび/または前の状態機械によってインスタンス化されたセッションパラメータを含む。たとえば、行(8)は、以前のメッセージから抽出されたダイヤルされた数字の格納されたストリングを示す。
いくつかの実施形態で、セッション状態は、現在の状態に必要とされないセッションパラメータの履歴を含むことになる。格納された履歴は、前述のような受信されたメッセージのシーケンスを再作成するために使用され得る。たとえば、行(14)−(21)は、1つのクライアントによって提案されたセッション記述プロトコル(SDP)を表し、行(22)−(29)は、他のクライアントによって合意されたSDPを表す。合意されたSDPのみが通信において稼働中であるが、提案されたSDPは、原案メッセージを再作成するために使用され得る。
図8は、格納されたセッション状態の「詳細な」リスティングの一部であり、全セッション状態の検索は必要とされないことを理解されたい。いくつかの実施形態では、関連するセッション状態データのみが、検索される。具体的には、セッションパラメータのサブセット(たとえば、名前−値ペア)のみが検索される。検索されるサブセットは、セッションの現在の状態の状態機械によって必要とされるそれらのセッションパラメータのみを含み得る。
特定のシーケンスにおいて主に図示および記載されるが、方法300および500に示されるステップは、任意の適切なシーケンスで実行され得ることを理解されたい。さらに、1つのボックスによって識別されるそれらのステップはまた、シーケンス内の複数の場所で実行され得る。
様々な前述の方法のステップは、プログラムされたコンピュータによって実行され得ることを理解されたい。本明細書では、いくつかの実施形態はまた、機械またはコンピュータ可読であり、命令の機械実行可能またはコンピュータ実行可能プログラムをコード化するプログラム記憶装置、たとえば、データ記憶メディア、を包含するものであり、前記命令は、前記の前述の方法のステップのうちのいくつかまたはすべてを実行する。プログラム記憶装置は、たとえば、デジタルメモリ、磁気ディスクおよび磁気テープなどの磁気記憶メディア、ハードドライブ、または、光学的可読データ記憶メディアでもよい。それらの実施形態はまた、前述の方法の前記ステップを実行するようにプログラムされたコンピュータを包含するものである。
図9は、分散メッセージハンドリングシステム100の第1の実施形態を概略的に示すブロック図である。分散メッセージハンドリングシステム100は、受信されたメッセージを1つまたは複数の状態機械930−1−930−n(集合的に状態機械930)に転送する1つまたは複数のアンカーポイント910−1−910−n(集合的にアンカーポイント910)を含む。分散メッセージハンドリングシステム100はまた、1つまたは複数のセッションデータストア940−1−940−n(集合的にセッションデータストア940)を含む。
アンカーポイント910は、入力メッセージを状態機械930−1−930−nにルーティングする。具体的には、アンカーポイントは、ネットワークからメッセージを受信し、図2のセッションルータ210の機能を実行する。この実施形態で、入力メッセージはいつも、同じ状態機械930−1−930−nに配布され、すなわち、ユーザセッションは維持している。ユーザエンドポイント(「UE」)からメッセージを受信するアンカーポイントは、UEおよび目標状態機械930−1−930−nを関連付ける。
状態機械930は、図2のセッションマネージャ220のならびに図2の状態機械230の機能を実行する。具体的には、状態機械(たとえば、930−1)は、セッション(たとえば、図1の120−1)に割り当てられる。割り当てられた状態機械は、インスタンスによってサポートされる最新のセッションコンテキストについて知る唯一のものである。状態機械930は、アンカーポイント910をスキャンすることなしに、エンドユーザに直接応答することができることを理解されたい。
セッションデータストア940は、図2のセッションデータストア240の機能を実行する。具体的には、セッションデータストア940−1−940−nのうちの1つまたは複数は、別個のデータ記憶装置に常駐でもよい。
いくつかの実施形態で、アンカーポイント910は、UE(ユーザエンドポイント)と目標状態機械の間の割当てのテーブルを保持する。
いくつかの実施形態で、アンカーポイント910は、関連状態機械とそれをマッチさせるためのリクエストをハッシュする。
いくつかの実施形態で、アンカーポイント910は、アクティブ−アクティブおよび/またはホット−スタンバイなどの従来の複製技法を使用し、複製される。
いくつかの実施形態で、状態機械930内の状態機械(たとえば、930−1)が、複製される。さらなる実施形態で、複製される状態機械は、従来のアクティブ−アクティブ複製技法を使用して複製され、たとえば、複製される状態機械は、少なくとも1つのパートナ機械に複製される。
たとえば、各セッション(たとえば、図1の120−1)のために1つのプライマリ状態機械(たとえば、930−1)が存在し得る。プライマリ状態機械は、次いで、1つまたは複数のセカンダリ状態機械(たとえば、930−2)と関連付けられ得る。プライマリおよびセカンダリ状態機械は、それらがアンカーポイント910、たとえば関連アンカーポイント、たとえば910−1、を更新する限り、関連セッション状態をスワップおよびプッシュすることができる。たとえば、図2および図5を参照すると、状態機械930−1は、更新されたセッションコンテキストを作成する翻訳されたセッションコンテキスト250−5を実行し、更新されたセッションコンテキストを更新されたセッション状態250−7に翻訳し、更新されたセッション状態250−7を待機状態機械にコピーすることができる。
以下のテーブル1には、インスタンス、プライマリセッションおよび待機中セッションが、図1に関して示される。インスタンス120−2のセッションは、130−2(1)−130−2(n)(図1に示さず)である。
いくつかの実施形態で、セッションデータストア940は、高い信頼性を提供するために、従来のデータバックアップ技法を使用し、セッション状態を格納する。有利には、セッションデータストア940は、セッションのセッションコンテキストを再構築することができるセッション状態を格納するので、アンカーポイント910および/または状態機械930は、高い信頼性がある必要はなく、商品構成要素でもよい。
いくつかの実施形態で、分散メッセージハンドリングシステム100は、セッションデータストア940内でセッション状態チェックポイントを格納する。このセッションデータストアは、参照により本明細書に組み込まれる、G.DeCandia、D.Hastorum、M.Jampani、G.Kakulapati、A.Lakshman、A.Pilchin、S.Sivasubramanian、P.Vosshall、およびW.Vogels、「Dynamo:Amazon’s Highly Available key−value Store」、Proc.21st ACM Symp.Operating Systems Principles(SOSP’07)、205−220頁、2007年10月、に記載されるような従来の1ホップDHTとして設計することができる。さらなる実施形態で、セッションデータストアは、鍵はセッション識別子であり、値はセッション状態である、鍵−値ストアでもよい。有利には、ネットワークが分割される、または全データセンタが停止する場合、これらの実施形態はさらに可用性を高める。いくつかの実施形態で、状態機械を稼働させる資源は、このセッションデータストアに関与してもよく、または、他のクラウド資源が、それに帰され得る。
図10は、分散メッセージハンドリングシステム100の第2の実施形態を概略的に示すブロック図である。分散メッセージハンドリングシステム100は、受信されたメッセージを1つまたは複数の作業者インスタンス1020−1−1020−n(集合的に作業者インスタンス1020)に転送する1つまたは複数のアンカーポイント1010−1−1010−n(集合的にアンカーポイント1010)を含む。作業者インスタンスは、状態機械1030を開いて受信されたメッセージを実行する。
アンカーポイント1010は、入力メッセージを作業者インスタンス1020−1−1020−nにランダムにルーティングする。この実施形態で、セッションルータ機能性は、アンカーポイント1010には含まれず、マッピング論理を必要としないより単純なアンカーポイント1010を作り出す。具体的には、アンカーポイント1010は、実行中の作業者インスタンス1020を追跡し、入力メッセージをランダムに配布する。有利には、アンカーポイントが使用不可能になった場合、分散メッセージハンドリングシステム100は、作業者インスタンスへのルーティングのために別の知られているアンカーポイントにメッセージを単に送る。さらに、アンカーポイント1010は状態を保持しないので、それらは複製される必要はない。
作業者インスタンス1020は、図2のセッションルータ210、図2のセッションマネージャ220、図2の状態機械230、および図2のセッションデータストア240の機能を実行する。具体的には、作業者インスタンス、たとえば1020−1、は、状態機械であり、セッションデータストアの断片を含む。
いくつかの実施形態で、アンカーポイント1010は、S1、S6、S10、S11などのLTEプロトコルをルーティングする。
いくつかの実施形態で、作業者インスタンス、たとえば1020−1、は、アンカーポイント1010からメッセージを受信し、それがメッセージのセッション状態情報を有するかどうかを判定する。作業者インスタンス1020−1がセッション状態情報を有する場合、作業者インスタンス1020−1は、状態機械1030を起動し、本明細書に記載のようにメッセージを実行する。作業者インスタンスがメッセージのセッション状態情報を含まない場合、作業者インスタンスは、セッション状態を有する別の作業者インスタンスにメッセージを転送する。作業者インスタンスは、セッションルータ210に関して前述したように、作業者インスタンスにセッションidをマップすることができる。たとえば、作業者インスタンスは、セッションidをマップする、または、ランダム転送もしくは次ホップ技法を使用することができる。
いくつかの実施形態で、作業者インスタンス1020が、複製される。この実施形態で、プライマリ作業者インスタンス1020−1−1020−n内のセッションデータストアの断片の少なくとも一部が、セカンダリ作業者インスタンス1020−1−1020−nに複製される。さらなる実施形態で、作業者インスタンス1020はネットワーク化され、そして、近傍はセカンダリストアである。これらの実施形態で、プライマリ作業者インスタンスが停止するとき、セカンダリ作業者インスタンスが入力メッセージを処理することができる。
いくつかの実施形態で、作業者インスタンス1020は、メッセージが受信されるときに状態機械1030を起動し、メッセージが処理された後に作成された状態機械を削除することができる。
いくつかの実施形態で、図1のアプリケーション110のうちの少なくとも1つは、LTE通信アプリケーションでもよい。この実施形態で、メッセージのうちの1つは、MME機能でもよい。この実施形態で、作業者インスタンス1020は、MME状態機械論理を含み、そして、結合した複製されたデータストア(たとえば、1ホップDHT)は、セッションコンテキストを構築するために必要なすべての情報を含む。この実施形態で、作業者インスタンスは、どのUEからメッセージが送信されたかを識別するセッションidを含むメッセージを受信し、その複製されたデータストアからセッション状態を検索し、状態機械を起動してメッセージを処理し、その複製されたデータストア内で更新されたセッション状態を格納し、必要があれば、UEにまたはLTEネットワーク内の別の構成要素にメッセージを送り返す。
図11は、図2のセッションルータ210、セッションマネージャ220、状態機械230および/またはセッションデータストア240、図9のアンカーポイント910、状態機械930および/またはセッションデータストア940、および/または、図10のアンカーポイント1010および/または作業者インスタンス1020などの様々なデバイス1100の一実施形態を概略的に示す。これらの様々なデバイス1100は、たとえば、方法300および/または500を使用し、本明細書に記載の機能を実行することができる。様々なデバイス1100は、プロセッサ1110およびデータストレージ1111を含む。
プロセッサ1110は、様々なデバイス1100の動作を制御する。プロセッサ1110は、データストレージ1111と連携する。
データストレージ1111は、セッションデータ(たとえば、図2のセッションデータストア240、図9のセッションデータストア940および図10の作業者インスタンス1020)と、状態機械論理(たとえば、図2の状態機械230、図9の状態機械930および図10の作業者インスタンス1020)とを格納することができる。データストレージ1111はまた、プロセッサ1110によって実行可能なプログラム1120を格納する。
プロセッサ実行可能プログラム1120は、セッションルータプログラム1110、セッションマネージャプログラム1123、状態機械プログラム1125および/またはセッションデータストアプログラム1127を含み得る。プロセッサ1110は、プロセッサ実行可能プログラム1120と連携して、図1−10に記載の機能性を実装するおよび/または方法300および/または500のステップを実行する。例示的プロセッサ実行可能プログラム1121、1123、1125および1127は、デバイスの機能に応じて任意選択でもよいことを理解されたい(たとえば、データセッションストアプログラム1127は、図2のセッションルータ210を実装するために必要とされない)。
プロセッサ実行可能プログラム1120がプロセッサ1110に実装されるとき、プログラムコードセグメントは、プロセッサと結合して、特定の論理回路と同じように動作する固有のデバイスを提供する。
たとえば、プログラムおよび論理がデータストレージ内で格納され、メモリがプロセッサに通信可能に接続される実施形態に関して本明細書に図示および説明されるが、そのような情報は、任意の適切な配列のデバイスに通信可能に結合された任意の適切な配列のメモリ、ストレージまたはデータベースを使用する、任意の適切な組合せのメモリ(複数可)、ストレージ(複数可)および/または内部もしくは外部データベース(複数可)で情報を格納する、あるいは、任意の適切な数のアクセス可能な外部メモリ、ストレージまたはデータベースを使用する、任意の他の適切な形(たとえば、任意の適切な数のメモリ、ストレージまたはデータベースを使用する)で格納され得ることを理解されたい。したがって、本明細書では、データストレージという用語は、メモリ(複数可)、ストレージ(複数可)、およびデータベース(複数可)のすべての適切な組合せを包含することを意図されている。
本説明および図面は、本発明の原理を単に例示する。したがって、本明細書に明示的に記載または図示されていなくても、本発明の原理を実施するおよびその趣旨および範囲に含まれる様々な配列を当業者は考案することができようことが、理解されよう。さらに、本明細書で挙げられたすべての例は、本発明の原理および当技術分野を促進するために本発明者(複数可)によって提供される概念を読者が理解することを助けるための教育的目的のためにのみ明示的に主に意図され、そのような具体的に挙げられた例および条件への限定のないものとして解釈されるべきである。さらに、本発明の原理、態様、および実施形態ならびにそれらの具体的な例を挙げる本明細書のすべての記述は、それらの相当物を包含するものとする。
「プロセッサ」のラベルを付された任意の機能ブロックを含む、図面に示された様々な要素の機能は、専用のハードウェア、ならびに、適切なソフトウェアに関連してソフトウェアを実行する能力を有するハードウェアの使用を介して、提供され得る。プロセッサによって提供されるとき、それらの機能は、単一の専用のプロセッサによって、単一の共用プロセッサによって、または複数の個々のプロセッサによって、提供することができ、それらのうちのいくつかは共用され得る。さらに、「プロセッサ」または「コントローラ」という用語の明示的使用は、ソフトウェアを実行する能力を有するハードウェアを排他的に指すものとして解釈されるべきではなく、デジタル信号プロセッサ(DSP)ハードウェア、ネットワークプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ソフトウェアを記憶するための読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、および不揮発性ストレージを黙示的に含み得るが、これらに限定されない。従来のおよび/または特注の他のハードウェアもまた含まれ得る。同様に、図中に示す任意のスイッチは、単に概念的である。それらの機能は、プログラム論理の動作を介して、専用の論理を介して、プログラム制御および専用の論理の対話を介して、または、手動でも実行することができ、特定の技法が、コンテキストからより具体的に理解されるように実装者によって選択可能である。
本明細書に記載のいずれのブロック図も、本発明の原理を実施する例示的回路の概念的視点を表すことを理解されたい。同様に、任意のフローチャート、流れ図、状態遷移図、疑似コード、および同様のものは、そのようなコンピュータまたはプロセッサが明示的に示されていてもいなくても、コンピュータ可読メディア内に実質的に表すことができ、そうしてコンピュータまたはプロセッサによって実行され得る様々なプロセスを表すことを理解されたい。
Claims (10)
- 分散メッセージハンドリング装置であって、
データストレージと、
データストレージに通信可能に結合されたプロセッサとを備え、プロセッサが、
受信されたメッセージのセッションidに基づいてセッション状態を検索する、
セッション状態に基づいてセッションコンテキストを作成する、および、
状態機械を使用してセッションコンテキストを実行する
ように構成された、装置。 - セッション状態が、セッションid、複数のセッションパラメータ、および、現在のノード識別子を含む、請求項1に記載の装置。
- プロセッサが、
受信されたメッセージの第2のセッションidに基づいて第2のセッション状態を検索する、および、
第2のセッション状態およびフロー定義に基づいて第2のセッションidのメッセージのシーケンスを再作成する
ようにさらに構成された、請求項2に記載の装置。 - セッションコンテキストの作成が、
受信されたメッセージから少なくとも1つの事象パラメータを抽出する
ようにプロセッサをさらに構成するステップを含み、
セッションコンテキストがさらに、少なくとも1つの事象パラメータに基づく、請求項2に記載の装置。 - セッションコンテキストの実行が、
実行されたセッションコンテキストに基づいて、更新されたセッション状態を作成する
ようにプロセッサをさらに構成するステップを含む、請求項1に記載の装置。 - プロセッサが、
更新されたセッション状態を第2の分散メッセージハンドリング装置に送信する、および、
第2の分散メッセージハンドリング装置からセカンダリセッション状態を受信する
ようにさらに構成され、
データストレージが、状態機械に関連する更新されたセッション状態と、第2の分散メッセージハンドリング装置の第2の状態機械に関連するセカンダリセッション状態とを備える、請求項5に記載の装置。 - 分散メッセージハンドリングシステム内で受信されたメッセージを処理するための方法であって、
データストレージに通信可能に結合されたプロセッサで、受信されたメッセージのセッションidに基づいてセッション状態を検索するステップと、
データストレージと連携するプロセッサによって、セッション状態に基づいてセッションコンテキストを作成するステップと、
データストレージと連携するプロセッサによって、状態機械を使用し、セッションコンテキストを実行するステップと
を含む、方法。 - セッションコンテキストを作成するアクションが、
データストレージと連携するプロセッサによって、状態機械によって作成された更新されたセッションコンテキストを使用し、更新されたセッション状態を翻訳するステップと、
データストレージと連携するプロセッサによって、更新されたセッション状態をセッションデータストアに送信するステップと
を含む、請求項7に記載の方法。 - セッション状態が、セッションid、複数のセッションパラメータ、および、現在のノード識別子を含む、請求項7に記載の方法。
- セッションコンテキストを作成するアクションが、
第2のメッセージから少なくとも1つの事象パラメータを抽出するステップ
を含み、セッションコンテキストが、少なくとも1つの事象パラメータにさらに基づく、請求項9に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/329,357 US9432321B2 (en) | 2011-12-19 | 2011-12-19 | Method and apparatus for messaging in the cloud |
US13/329,357 | 2011-12-19 | ||
PCT/US2012/061796 WO2013095770A1 (en) | 2011-12-19 | 2012-10-25 | Method and apparatus for messaging in the cloud |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015509232A true JP2015509232A (ja) | 2015-03-26 |
Family
ID=47633536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014549044A Pending JP2015509232A (ja) | 2011-12-19 | 2012-10-25 | クラウドにおけるメッセージングのための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9432321B2 (ja) |
EP (1) | EP2795849B1 (ja) |
JP (1) | JP2015509232A (ja) |
KR (1) | KR20140093720A (ja) |
CN (1) | CN103999413A (ja) |
WO (1) | WO2013095770A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9432321B2 (en) | 2011-12-19 | 2016-08-30 | Alcatel Lucent | Method and apparatus for messaging in the cloud |
US9948726B2 (en) * | 2013-07-01 | 2018-04-17 | Avaya Inc. | Reconstruction of states on controller failover |
US10182105B2 (en) * | 2014-12-31 | 2019-01-15 | Juniper Networks, Inc. | Policy based framework for application management in a network device having multiple packet-processing nodes |
US10193958B2 (en) | 2014-12-31 | 2019-01-29 | Juniper Networks, Inc. | Policy based framework for application management in distributed systems |
EP3099027B1 (en) * | 2015-05-26 | 2017-09-13 | Urban Software Institute GmbH | Computer system and method for message routing with content and reference passing |
US10110683B2 (en) * | 2015-08-11 | 2018-10-23 | Unisys Corporation | Systems and methods for maintaining ownership of and avoiding orphaning of communication sessions |
US10140068B1 (en) * | 2017-07-31 | 2018-11-27 | Oracle International Corporation | Asynchronous management of movable components |
US10163460B1 (en) | 2017-07-31 | 2018-12-25 | Oracle International Corporation | Reservation-based management of movable components |
US11528328B2 (en) * | 2017-12-15 | 2022-12-13 | Nokia Technologies Oy | Stateless network function support in the core network |
CN111414242B (zh) * | 2020-03-13 | 2023-07-11 | 天津美腾科技股份有限公司 | 状态机的运行方法、装置、服务器、系统和存储介质 |
US11196817B1 (en) * | 2020-06-03 | 2021-12-07 | Dell Products L.P. | Intelligently managing resource utilization in desktop virtualization environments |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09223095A (ja) * | 1996-02-16 | 1997-08-26 | Fuji Xerox Co Ltd | サーバ装置 |
JP2001060155A (ja) * | 1999-08-20 | 2001-03-06 | Fujitsu Ltd | メッセージ処理装置 |
JP2003338839A (ja) * | 2002-05-20 | 2003-11-28 | Fujitsu Ltd | Rsvpを用いた移動通信システム |
US20080209438A1 (en) * | 2007-02-28 | 2008-08-28 | International Business Machines Corporation | Method and apparatus for a service control layer |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000068856A2 (en) * | 1999-05-11 | 2000-11-16 | Webvan Group, Inc. | Electronic commerce enabled delivery system and method |
US6772333B1 (en) * | 1999-09-01 | 2004-08-03 | Dickens Coal Llc | Atomic session-start operation combining clear-text and encrypted sessions to provide id visibility to middleware such as load-balancers |
GB0103999D0 (en) | 2001-02-19 | 2001-04-04 | Sensible Group Ltd | Enhanced text-based messaging system |
US7111162B1 (en) * | 2001-09-10 | 2006-09-19 | Cisco Technology, Inc. | Load balancing approach for scaling secure sockets layer performance |
JP4406604B2 (ja) | 2002-06-11 | 2010-02-03 | アシシュ エイ パンドヤ | Tcp/ip、rdma、及びipストレージアプリケーションのための高性能ipプロセッサ |
US7636917B2 (en) * | 2003-06-30 | 2009-12-22 | Microsoft Corporation | Network load balancing with host status information |
US7590736B2 (en) * | 2003-06-30 | 2009-09-15 | Microsoft Corporation | Flexible network load balancing |
US7613822B2 (en) * | 2003-06-30 | 2009-11-03 | Microsoft Corporation | Network load balancing with session information |
US7882251B2 (en) * | 2003-08-13 | 2011-02-01 | Microsoft Corporation | Routing hints |
US7464141B2 (en) | 2004-06-30 | 2008-12-09 | Scencera Technologies, Llc | Method and system for associating related messages of different types |
US20060187838A1 (en) * | 2005-02-24 | 2006-08-24 | Utstarcom, Inc. | Method and system for load balancing in a network platform |
EP1705562A1 (en) | 2005-03-18 | 2006-09-27 | Orange SA | Applications server and method of providing services |
US7693050B2 (en) * | 2005-04-14 | 2010-04-06 | Microsoft Corporation | Stateless, affinity-preserving load balancing |
US20060277596A1 (en) * | 2005-06-06 | 2006-12-07 | Calvert Peter S | Method and system for multi-instance session support in a load-balanced environment |
US9497600B2 (en) * | 2005-10-28 | 2016-11-15 | Hewlett Packard Enterprise Development Lp | Service chaining |
US8707323B2 (en) * | 2005-12-30 | 2014-04-22 | Sap Ag | Load balancing algorithm for servicing client requests |
US7580974B2 (en) * | 2006-02-16 | 2009-08-25 | Fortinet, Inc. | Systems and methods for content type classification |
CN101163141B (zh) * | 2007-11-12 | 2012-01-11 | 中兴通讯股份有限公司 | 一种基于无线会话协议实现数据快速处理的方法 |
US9456007B2 (en) * | 2008-11-15 | 2016-09-27 | Adobe Systems Incorporated | Session aware notifications |
FR2942931B1 (fr) * | 2009-03-05 | 2014-05-16 | Opencode Systmes Ood | Centre reseau multiservices generique de creation et d'orchestration d'applications et de services reseaux |
US8751281B2 (en) * | 2009-03-20 | 2014-06-10 | Sap Ag | Method for acquiring by a session manager a list of active sessions |
CN101882089B (zh) * | 2009-05-07 | 2013-05-08 | 中兴通讯股份有限公司 | 一种采用多线程处理业务会话应用的方法及装置 |
US8549038B2 (en) * | 2009-06-15 | 2013-10-01 | Oracle International Corporation | Pluggable session context |
JP5400222B2 (ja) * | 2009-06-19 | 2014-01-29 | ゼットティーイー(ユーエスエー)インコーポレーテッド | ソースサービングゲートウェイとターゲットサービングゲートウェイとの間でパケットを転送するインターネットワーキング技術 |
GB2486126B (en) * | 2009-09-21 | 2014-01-08 | Ericsson Telefon Ab L M | Caching in mobile networks |
EP2553901B1 (en) * | 2010-03-26 | 2016-04-27 | Citrix Systems, Inc. | System and method for link load balancing on a multi-core device |
CN102208988B (zh) * | 2010-03-29 | 2013-09-11 | 华为技术有限公司 | 消息处理方法、系统及设备 |
US9361604B2 (en) * | 2010-09-23 | 2016-06-07 | Avaya Inc. | System and method for a context-based rich communication log |
CN103444215B (zh) * | 2011-04-01 | 2017-10-27 | 瑞典爱立信有限公司 | 用于避免网络攻击的危害的方法和装置 |
US8458210B2 (en) * | 2011-05-06 | 2013-06-04 | Verizon Patent And Licensing Inc. | Database load balancing through dynamic database routing |
US8477621B2 (en) * | 2011-05-24 | 2013-07-02 | Tektronic, Inc. | Multiple protocol correlation and topology detection in eHRPD networks |
US8949938B2 (en) * | 2011-10-27 | 2015-02-03 | Cisco Technology, Inc. | Mechanisms to use network session identifiers for software-as-a-service authentication |
US9432321B2 (en) | 2011-12-19 | 2016-08-30 | Alcatel Lucent | Method and apparatus for messaging in the cloud |
-
2011
- 2011-12-19 US US13/329,357 patent/US9432321B2/en active Active
-
2012
- 2012-10-25 KR KR1020147016733A patent/KR20140093720A/ko not_active Application Discontinuation
- 2012-10-25 CN CN201280062649.5A patent/CN103999413A/zh active Pending
- 2012-10-25 WO PCT/US2012/061796 patent/WO2013095770A1/en active Application Filing
- 2012-10-25 JP JP2014549044A patent/JP2015509232A/ja active Pending
- 2012-10-25 EP EP12821159.6A patent/EP2795849B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09223095A (ja) * | 1996-02-16 | 1997-08-26 | Fuji Xerox Co Ltd | サーバ装置 |
JP2001060155A (ja) * | 1999-08-20 | 2001-03-06 | Fujitsu Ltd | メッセージ処理装置 |
JP2003338839A (ja) * | 2002-05-20 | 2003-11-28 | Fujitsu Ltd | Rsvpを用いた移動通信システム |
US20080209438A1 (en) * | 2007-02-28 | 2008-08-28 | International Business Machines Corporation | Method and apparatus for a service control layer |
Also Published As
Publication number | Publication date |
---|---|
US20130159374A1 (en) | 2013-06-20 |
US9432321B2 (en) | 2016-08-30 |
WO2013095770A1 (en) | 2013-06-27 |
KR20140093720A (ko) | 2014-07-28 |
CN103999413A (zh) | 2014-08-20 |
EP2795849A1 (en) | 2014-10-29 |
EP2795849B1 (en) | 2019-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015509232A (ja) | クラウドにおけるメッセージングのための方法および装置 | |
CN101102250B (zh) | 用于自组织网络的分布式散列机制 | |
US20200336554A1 (en) | Proxy routing based on path headers | |
US11477670B2 (en) | Network resource function supporting multi-region querying | |
WO2018000993A1 (zh) | 一种分布式存储的方法和系统 | |
CN109510770B (zh) | 负载均衡节点之间的信息同步方法、装置和处理设备 | |
US9069761B2 (en) | Service-aware distributed hash table routing | |
US11818209B2 (en) | State management and object storage in a distributed cloud computing network | |
US20210133245A1 (en) | Historical state management in databases | |
US20210368006A1 (en) | Request response method, device, and system applied to bit torrent system | |
US20210377326A1 (en) | Method, apparatus, device and storage medium for pushing video stream | |
US20160301625A1 (en) | Intelligent High-Volume Cloud Application Programming Interface Request Caching | |
US20240015135A1 (en) | Domain management and synchronization system | |
CN111010444B (zh) | 一种实现Wowza流媒体引擎分布式集群的系统及方法 | |
CN109587062B (zh) | 负载均衡信息同步的方法、装置和处理设备 | |
Jin et al. | Content routing and lookup schemes using global bloom filter for content-delivery-as-a-service | |
US20220263759A1 (en) | Addressing method, addressing system, and addressing apparatus | |
US20190387054A1 (en) | Method, electronic device and computer program product for searching for node | |
JP2023547880A (ja) | バックアップネットワーク機能を提供するためのネットワークノードおよびネットワークノードにおける方法 | |
JP2024514467A (ja) | 地理的に分散されたハイブリッドクラウドクラスタ | |
JP2023537468A (ja) | 間接通信のためのネットワークノード及びネットワークノードにおける方法 | |
US20090313307A1 (en) | Manipulation of network management information | |
Antoine et al. | Multiple order-preserving hash functions for load balancing in P2P networks | |
CN116996933A (zh) | 融合网关的控制方法、控制模块、融合网关以及存储介质 | |
CN117420956A (zh) | 一种信息处理方法、装置、设备和计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150724 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150804 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160105 |