JP2011512730A - テンプレート式のパラメータを使用したメッセージの符号化および復号化 - Google Patents

テンプレート式のパラメータを使用したメッセージの符号化および復号化 Download PDF

Info

Publication number
JP2011512730A
JP2011512730A JP2010544986A JP2010544986A JP2011512730A JP 2011512730 A JP2011512730 A JP 2011512730A JP 2010544986 A JP2010544986 A JP 2010544986A JP 2010544986 A JP2010544986 A JP 2010544986A JP 2011512730 A JP2011512730 A JP 2011512730A
Authority
JP
Japan
Prior art keywords
message
template
compressed
value
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
Application number
JP2010544986A
Other languages
English (en)
Other versions
JP2011512730A5 (ja
Inventor
ケー.ナンダ アルーン
ピー.シューチャック ジョン
ジー.ケイラー クリストファー
オー.ウィルソン ハーヴェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011512730A publication Critical patent/JP2011512730A/ja
Publication of JP2011512730A5 publication Critical patent/JP2011512730A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

圧縮されたメッセージをメッセージ・プロセッサ間で通信チャネルを介して通信する。圧縮されたメッセージを、明示的あるいは暗黙的なテンプレート識別、および1つまたは複数のパラメータ値という観点から表現することができる。テンプレート識別に基づいて、1つまたは複数のパラメータの意味を理解することができ、その一方で、テンプレートを知らなければパラメータ(複数可)の意味を理解することはできない。テンプレートは1つまたは複数のパラメータに対して意味論的な文脈を提供する。送信メッセージ・プロセッサが、識別されたテンプレートを使用してメッセージを圧縮しておくことができる。あるいは、または追加として、受信メッセージ・プロセッサが、識別されたテンプレートを使用してメッセージを解凍することができる。テンプレート自体は、送信されるとき、圧縮されたメッセージの一部である必要はない。

Description

本発明は、圧縮されたメッセージをメッセージ・プロセッサ間で通信チャネルを介して通信することに関する。
我々の今日の接続された世界は、メッセージをやりとりするメッセージ・プロセッサによって容易化されている。メッセージ・プロセッサは、機能を完全に備えるコンピューティング・システム、またはコンピューティング・システムの集合体のように、非常に複雑であることもある。他方、メッセージ・プロセッサが非常に単純であることもあり、単純な状態機械(例えば、イヤホン)でしかないかもしれない。メッセージ・プロセッサが、これらの2つの極端な場合の間に位置する機能を有することもある。さらに、メッセージ・プロセッサ間のチャネル機能も同様に多様である。チャネルは光ファイバ・バンドルであることがあり、この場合は、毎秒何テラビット(10の12乗ビット)ものオーダの情報が乗る大容量帯域幅を有する。または、チャネルが、例えば赤外線接続やBluetooth接続のように非常に低速であることもある。
特定のチャネルを介してメッセージ・プロセッサの間で送信される情報の量を減らすために、情報が圧縮されることがよくある。典型的な圧縮技術では、記号の辞書が構築され、この場合、各記号で特定のビット行が置き換えられる。ハフマン符号化、算術符号化、およびLZW符号化は、係る辞書ベースの圧縮技術の例である。しかし、係る圧縮技術はビット・レベルでの知識に基づいて圧縮を実施するものであり、圧縮を実施するためにデータの意味論的知識(すなわち、データの意味)は使用しない。
本明細書に説明する実施形態は、圧縮されたメッセージをメッセージ・プロセッサ間で通信チャネルを介して通信することに関する。
送信側から見た一実施形態では、送信メッセージ・プロセッサは、圧縮された形態のメッセージを(明示的または暗黙的に識別された)テンプレート識別、および1つまたは複数のパラメータによって表現することができる。テンプレート識別に基づいて1つまたは複数のパラメータの意味を理解することができ、その一方で、テンプレートを知らなければパラメータ(複数可)の意味を理解することはできない。一実施形態では、送信メッセージ・プロセッサが、最初に、圧縮前のメッセージにアクセスし、そのメッセージを圧縮するために使用するテンプレートを識別し、テンプレート内に存在しない、メッセージの1つまたは複数のパラメータを識別する。次いで、送信メッセージ・プロセッサは、単にテンプレートを(明示的または暗黙的に)識別し次いでパラメータの具体的な値を含めることによって、圧縮されたメッセージを編成することができる。あるいは、送信メッセージ・プロセッサは、単に、識別されたテンプレートの意味を正確に理解できるパラメータ値に対して動作する。
受信側の一実施形態では、受信メッセージ・プロセッサは圧縮された形態のメッセージを受信することができる。受信メッセージ・プロセッサは圧縮されたメッセージに対して直接動作することができ、または、最初に、メッセージに対して動作する前にメッセージを解凍するように動作してもよい。いずれの場合でも、テンプレート識別は、圧縮されたメッセージに含まれるパラメータの意味を文脈上意味論的に理解するのに役立つ。受信メッセージ・プロセッサがメッセージを解凍する場合、識別されたテンプレートを解凍されたメッセージに対する構造的基盤として使用することができる。この場合、パラメータ値は、その解凍されたメッセージの部分を埋めるために使用される。
本明細書に説明する原理は、どの特定の種類のテンプレートにも限定されない。一例として、テンプレートは、両方のメッセージ・プロセッサによってアクセス可能であり且つ理解される静的なテンプレート・セットの一部であってもよい。例えば、静的なテンプレート・セットは、或る規格の一部であってもよいし、両方のメッセージ・プロセッサが関与する分散アプリケーションの一部であってもよいし、通信の開始時のハンドシェイク・プロセス中に交渉されてもよいし、または、他の何らかの方法で設定されてもよい。あるいは、または追加として、テンプレート・セットは動的、すなわち、静的なテンプレート・セットの上に構築され、メッセージ・プロセッサ間のさらなる通信を基盤とするものであってもよい。
本「発明の概要」は、請求項に記載の主題の重要な特徴または本質的な特徴を特定することを意図しておらず、請求項に記載の主題の範囲を限定することを意図しているものでもない。
上述した利点および特徴ならびに他の利点および特徴を得ることができる方法を説明するために、様々な実施形態のより具体的な説明を、添付図面を参照して行うこととする。これらの図面は例示的な実施形態を示すにすぎず、したがって、本発明の範囲を限定するものとはみなされないということを理解して、添付の図面を使用して実施形態をさらに具体的且つ詳細に記述し説明することとする。
メッセージ・プロセッサの一例をコンピューティング・システムの形態で示す図である。 メッセージ・プロセッサの別の例を状態機械の形態で示す図である。 送信メッセージ・プロセッサが送信用のメッセージを圧縮するが、受信メッセージ・プロセッサが圧縮された形態のメッセージに対して直接動作する、メッセージング環境を示す図である。 送信メッセージ・プロセッサが圧縮された形態のメッセージに対して動作するが、受信メッセージ・プロセッサがそのメッセージを解凍する、メッセージング環境を示す図である 送信メッセージ・プロセッサが送信用のメッセージを圧縮し、受信メッセージ・プロセッサがメッセージを解凍する、メッセージング環境を示す図である。 1つまたは複数のパラメータで表すことができるメッセージのデータ構造、ならびにメッセージの何らかの意味論的な文脈およびメッセージ内の1つまたは複数のパラメータに対する意味論的な文脈を表現するテンプレートを示す図である。 テンプレート識別子および1つまたは複数のパラメータを含む圧縮されたメッセージのデータ構造を示す図である。 メッセージの意味論的な文脈を表現するために使用できるテンプレートのデータ構造、およびメッセージ内の1つまたは複数のパラメータの意味論的な文脈を概略的に示す図である。 テンプレートを使用してメッセージを圧縮する方法のフロー図である。 テンプレートを使用してメッセージを解凍する方法のフロー図である。 動的にテンプレート・セットを変更する方法のフロー図である。
本明細書で説明する実施形態によって、メッセージの圧縮および解凍を説明する。圧縮されたメッセージを、明示的また暗黙的なテンプレート識別、および1つまたは複数のパラメータ値という観点から表すことができる。テンプレート識別に基づいて、1つまたは複数のパラメータの意味を理解することができ、その一方で、テンプレートを知らなければパラメータ(複数可)の意味を理解することができないであろう。テンプレートは1つまたは複数のパラメータに対して意味論的な文脈を提供する。送信メッセージ・プロセッサが、識別されたテンプレートを使用してメッセージを圧縮しておくことができる。あるいは、または追加として、受信メッセージ・プロセッサが、識別されたテンプレートを使用してメッセージを解凍することができる。テンプレート自体は、送信されるとき、圧縮されたメッセージの一部である必要はない。
先ず、図1Aおよび1Bに関して、メッセージ・プロセッサに関するいくつかの導入的な議論を行う。次いで、図2Aから図7に関して、意味論的テンプレートを使用した圧縮および解凍の様々な実施形態を説明する。最後に、図8に関して、圧縮または解凍に使用できるテンプレート・セットを動的に変更する方法を説明する。
本明細書および請求項においては、「メッセージ・プロセッサ」とは、メッセージを処理できる任意の装置またはコンピューティング・システムを含めて非常に広範囲に解釈されるべきである。メッセージの「処理」とは、メッセージからデータにアクセスすること、データをメッセージに提供すること、メッセージを構築すること、メッセージを圧縮すること、メッセージを解凍すること、および/またはメッセージ内のデータを解釈すること、のうち任意の1つまたは複数を含む。
図1Aは、メッセージ・プロセッサの一例をコンピューティング・システムの形態で示すものであり、ここで幾分詳細に説明する。その後、別のメッセージ・プロセッサを、図1Bの状態機械に関して説明する。とはいっても、「メッセージ・プロセッサ」という用語は図1Aおよび図1Bに説明する実施形態に限定されず、図1Aおよび図1Bは例示を目的として与えたに過ぎないことは、当業者には理解されよう。メッセージ・プロセッサの可能な実装形態が文字通り無限に多様に存在する。それらのすべてを例示し説明すると、本発明の広範な原理が不要に曖昧となるはずである。
コンピューティング・システムの形態は今日ますます多種多様となっている。コンピューティング・システムは、例えば、ハンドヘルド装置、電化製品、ラップトップ・コンピュータ、デスクトップ・コンピュータ、メインフレーム、分散コンピューティング・システムであることもあれば、従来はコンピューティング・システムとはみなされていなかった装置であることさえもある。本明細書および請求項においては、「コンピューティング・システム」という用語は、少なくとも1台のプロセッサ、および当該プロセッサによって実行できるコンピュータ実行可能命令を搭載できるメモリとを含む任意の装置またはシステム(またはそれらの組合せ)を含むとして広汎に定義される。メモリの形態は任意であってよく、コンピューティング・システムの性質および形態に依存してもよい。コンピューティング・システムをネットワーク環境上で分散させてもよく、コンピューティング・システムは複数構成のコンピューティング・システム(multiple constituent computing system)を含んでもよい。とはいっても、「メッセージ・プロセッサ」は、コンピューティング・システムにおける使用には全く限定されない。
図1Aは、メッセージ・プロセッサをコンピューティング・システム100Aの形態で示す。その最も基本的な構成では、コンピューティング・システム100は、一般に、少なくとも1台の処理ユニット102およびメモリ104を含む。メモリ104は物理的なシステム・メモリであることができ、当該システム・メモリは、揮発性、不揮発性、またはその2つの何らかの組合せであることができる。本明細書ではまた、「メモリ」という用語を、物理的な記憶媒体のような不揮発性の大容量記憶を指すように使用してもよい。コンピューティング・システムが分散している場合は、処理機能、メモリ機能、および/または記憶機能も同様に分散させてもよい。
本明細書で使用する場合、「モジュール」または「コンポーネント」という用語は、コンピューティング・システム上で実行されるソフトウェア・オブジェクトまたはルーチンを指すことができる。本明細書で説明する異なるコンポーネント、モジュール、エンジン、およびサービスを、(例えば、別々のスレッドとして)コンピューティング・システム上で実行されるオブジェクトまたはプロセスとして実装してもよい。ソフトウェア・アプリケーションはいくつかの相互に関連する構成モジュールを有することができる。分散アプリケーションでは、異なるアプリケーション・モジュールを異なる物理マシン上に展開することができる。
以下の説明では、1つまたは複数のコンピューティング・システムによって実施される動作を参照して実施形態を説明する。係る動作がソフトウェアで実装される場合は、その動作を実施する関連コンピューティング・システムの1つまたは複数のプロセッサが、コンピュータ実行可能命令を実行したことに応じてコンピューティング・システムの動作を指揮する。係る動作の例には、データの操作が含まれる。コンピュータ実行可能命令(および操作されるデータ)をコンピューティング・システム100Aのメモリ104に格納することができる。例えば、コンピューティング・システム100Aが本明細書で説明するようにメッセージを圧縮するメッセージ・プロセッサである場合は、その圧縮(または解凍)を、圧縮(または解凍)を実行させるようにプロセッサに指令するコンピュータ実行可能命令を使用して実現することができるであろう。
コンピューティング・システム100Aはまた、コンピューティング・システム100Aが他のメッセージ・プロセッサと、例えば、ネットワーク110上で通信できるようにする通信チャネル108を含むことができる。通信チャネル108は通信媒体の例である。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータを、搬送波または他のトランスポート機構のような変調データ信号で具現化し、任意の情報配信媒体を含む。限定ではなく例として、通信媒体には、有線ネットワークおよび直接配線接続のような有線媒体、および音響、ラジオ、赤外線、および他の無線媒体のような無線媒体が含まれる。本明細書で使用する場合、コンピュータ可読媒体という用語には記憶媒体および通信媒体の両方が含まれる。
また、本発明の範囲内の実施形態は、コンピュータ実行可能命令またはデータ構造を運搬または格納するためのコンピュータ可読媒体を含む。係るコンピュータ可読媒体は、汎用目的または特殊目的のコンピュータによってアクセスできる任意の利用可能な媒体であることができる。限定ではなく例として、係るコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶、磁気ディスク記憶もしくは他の磁気記憶装置、または所望のプログラム・コード手段をコンピュータ実行可能命令もしくはデータ構造の形態で運搬もしくは記憶するために使用でき且つ汎用目的もしくは特殊目的のコンピュータによってアクセスできる他の任意の媒体のような、物理記憶および/またはメモリ媒体を備えることができる。情報を、ネットワークまたは別の通信接続(ハードワイヤード、無線、またはハードワイヤードもしくは無線の組合せのいずれか)を介してコンピュータに転送または提供する場合は、当該コンピュータは当該接続を、適切にコンピュータ可読媒体とみなす。このように、任意の上記の接続を適切にコンピュータ可読媒体と称する。上記の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
コンピュータ実行可能命令は、例えば、汎用目的のコンピュータ、特殊目的のコンピュータ、または特殊目的の処理装置にある特定の機能や機能群を実施させる命令およびデータを含む。主題を構造的な特徴および/または方法論的な動作に固有な言葉で説明しているが、当然のことながら添付の請求項で定義する主題は本明細書で説明する特定の特徴または動作に必ずしも限定されない。むしろ、本明細書で説明する特定の特徴および動作は、請求項を実装する形態の例として開示されている。
図1Bは、メッセージ・プロセッサを状態機械120の形態で示す。状態機械120を専らハードウェアで実装してもよい。状態機械は、入力信号(複数可)121を受信して、出力信号(複数可)122を決定的に生成する。場合によっては、決定的な機能を1つまたは複数の任意の構成設定123に依存させてもよい。一実施形態では、状態機械120を、論理ゲートを使用して実装してもよいし、おそらくレジスタおよびクロックのような、他の回路コンポーネントを使用して実装してもよい。メッセージ・プロセッサとして実装した場合は、状態機械120は本明細書で説明する圧縮および/または解凍を実施することができる。圧縮の場合は、入力信号(複数可)121は圧縮前のメッセージを表すことができ、出力信号(複数可)122は圧縮されたメッセージを表すことができる。解凍の場合は、入力信号(複数可)121は圧縮されたメッセージを表すことができ、出力信号(複数可)122は解凍されたメッセージを表すことができる。
メッセージ・プロセッサの例を説明したので、これより、メッセージ・プロセッサを使用してメッセージに対する意味論的テンプレートを使用してメッセージを圧縮および解凍する様々な実施形態を、図2Aから図7に関して説明する。先ず、図2Aから図2Cは様々なメッセージング環境200A、200B、および200Cを示す。それぞれの場合において、メッセージ環境は送信メッセージ・プロセッサ201(送信メッセージ・プロセッサ201A、201B、および201Cに対応)、および受信メッセージ・プロセッサ202(受信メッセージ・プロセッサ202A、202B、および202Cに対応)を含む。送信メッセージ・プロセッサ201は「送信」メッセージ・プロセッサと呼ばれるが、その理由は単にそれらが本明細書で説明する例においてメッセージを送信するからである。受信メッセージ・プロセッサ202は「受信」メッセージ・プロセッサと呼ばれるが、その理由は単にそれらが本明細書で説明する例においてメッセージを受信するからである。しかし、一般的なメッセージ・プロセッサがメッセージを送受信することがよくある。従って、「送信」および「受信」という用語を、送信メッセージ・プロセッサの場合はメッセージ・プロセッサがメッセージを送信するのみであり、受信メッセージ・プロセッサの場合はメッセージ・プロセッサがメッセージを受信するのみであることを排他的に要求していると解釈すべきではない。
図2Aは、送信メッセージ・プロセッサ201Aがメッセージを圧縮するが、受信メッセージ・プロセッサ202Aが圧縮されたメッセージに対して直接動作する、メッセージ環境200Aを示す。具体的には、送信メッセージ・プロセッサは、圧縮前のメッセージ212Aを圧縮コンポーネント213Aへ提供する上層(複数可)211Aを含む。
メッセージは様々な段階の圧縮および処理を受けることができる。「圧縮前の」メッセージとは、メッセージがまだ本発明の原理を使用して圧縮されていないことを意味する。メッセージの一部または全てが、本明細書で説明しておらず本発明の範囲内にない他の圧縮技術を使用して他種の圧縮を受けている可能性はあるかもしれない。しかし、その場合でも、メッセージが本明細書で説明した圧縮を受けていないので、メッセージは「圧縮前」といえる。さらに、「コンポーネント」という用語は、メッセージ・プロセッサを参照して使用される場合はソフトウェア・コンポーネント、ハードウェア・コンポーネント、またはそれらの組合せであってもよい。
圧縮コンポーネント213Aは、テンプレート214Aを使用してメッセージを圧縮する。具体的には、一実施形態では、圧縮コンポーネント213Aはメッセージ自体の意味論的文脈にマッチするテンプレートを選択する。次いで、テンプレートは、メッセージ全体を送信するのではなく、送信すべきメッセージから1つまたは複数のパラメータを選択するために使用される。複数のテンプレートがある場合は、テンプレート・セット215Aからテンプレート214Aにアクセスする。圧縮コンポーネント213Aは、受信メッセージ・プロセッサ202Aに送信するための圧縮されたメッセージ216Aを、1つまたは複数のパラメータおよびテンプレートの(暗黙的なまたは明示的な)識別の形態で作成する。圧縮されたメッセージは、圧縮コンポーネントから直接送信されず、当該メッセージを物理的に送信する前に他の処理を受けることがよくある。従って、「送信されている」状態のメッセージは、論理チャネル230A上の論理的な送信とみなされるべきである。論理チャネル230Aは物理チャネルを含んでもよいが、送信メッセージ・プロセッサおよび受信メッセージ・プロセッサのいずれかまたは両方の上に低レベルの処理コンポーネントを含んでもよい。
受信メッセージ・プロセッサ202Aが論理チャネル230Aからの圧縮されたメッセージ216A(あるいは少なくともその派生物)にアクセスすると、受信メッセージ・プロセッサ202は、メッセージ216Aを最初に解凍することなく、圧縮されたメッセージ216Aに対して直接動作する。
対照的に、図2Bは、送信メッセージ・プロセッサ201Bが圧縮されたメッセージ216Bに対して直接動作するメッセージング環境200Bを示す。この意味で、メッセージ216Bを説明するために「圧縮された」という用語を使用することは、これは当該メッセージがより大きいメッセージから以前に圧縮されたことを意味しない。そうではなく、「圧縮された」という用語は、当該メッセージを、意味論的テンプレートを使用して解凍するか、またはより大きい形態に拡張することができることを意味するにすぎない。送信メッセージ・プロセッサ201Bは圧縮されたメッセージ216Bを論理チャネル230Bに送信する。
論理チャネル230Bから圧縮されたメッセージ216Bを受信すると、受信メッセージ・プロセッサ202Bは解凍コンポーネント223Bを使用してメッセージ216Bを解凍する。解凍はテンプレート224Bを使用して達成される。テンプレート224Bを、圧縮されたメッセージ自体の中で暗黙的あるいは明示的に識別することができる。一実施形態では、解凍は、圧縮されたメッセージの中で提供された1つあるいは複数のパラメータ値を圧縮されたメッセージの中で識別されたテンプレートのインスタンスに置いて、拡張されたメッセージを埋めることよって達成される。複数のテンプレートがある場合は、テンプレート224Bをテンプレート・セット225Bから選択する。解凍は、テンプレート224Bを使用して達成することができる。解凍または拡張されたメッセージ222Bを、次いで、上層(複数可)221Bに提供してさらに処理する。
図2Cは、送信メッセージ・プロセッサ201Cがメッセージを圧縮し、受信メッセージ・プロセッサ202Cがメッセージを解凍する、メッセージ環境200Cを示す。具体的には、送信メッセージ・プロセッサ201Cは、圧縮前のメッセージ212Cを圧縮コンポーネント213Cに提供する上層(複数可)211Cを含む。
圧縮コンポーネント213Cは、おそらくテンプレート・セット215Cから選択されたテンプレート214Cを使用してメッセージを圧縮する。一実施形態では、圧縮コンポーネント213Cは、受信メッセージ・プロセッサ202Aへ送信するための圧縮されたメッセージ216Cを、テンプレートの(暗黙的または明示的な)識別および1つまたは複数のパラメータの形態で作成する。次いで、圧縮されたメッセージ216Cを論理チャネル230C上で送信することができる。
圧縮されたメッセージ216Cを論理チャネル230Cから受信すると、受信メッセージ・プロセッサ202Cは、解凍コンポーネント223Cを使用してメッセージ216Cを解凍する。解凍は、おそらくテンプレート・セット215Cから選択されたテンプレート214Cを使用して達成される。解凍に使用されたテンプレートは、圧縮に使用したテンプレートと同じでもよいが、必ずしもその必要はない。さらに、受信メッセージ・プロセッサ202Cは、送信メッセージ・プロセッサ201Cがアクセスできる同じテンプレート・セットにアクセスすることができるが、必ずしもその必要はない。解凍されたメッセージ212Cを、次いで、上層(複数可)221Cへ提供してさらに処理することができる。
以上のように、本明細書で説明する実施形態を使用して、送信側でメッセージを圧縮することができ、且つ/または、受信側でメッセージを解凍することができる。これより、送信プロセスの例を、拡張されたメッセージ、テンプレート、および圧縮されたメッセージ例の具体例に関して説明する。
図3は、拡張されたメッセージ300のデータ構造を概略的に示す。必須ではないが、図示した例では、メッセージは幾つかのパラメータの名前と値の組を含む。具体的には、7つの名前と値の組301から307が示されており、それぞれの組は、名前(名前301Aから307Aにそれぞれ対応する)、および値(値301Bから307Bにそれぞれ対応する)を有する。楕円208は、処理されている任意の所与のメッセージにおいて7つより多いかまたは少ない名前と値の組がありうることを表す。さらに具体的な一例では、パラメータの名前と値の組の集合を、XML(eXtensible Markup Language)文書において階層的に構造化してもよく、この場合は、それぞれの名前と値の組はXML階層内で特定のノードを表す。
議論の目的でのみ、以下で、明快さと参照の簡便さのために行番号を付与した具体的なXMLメッセージの例を与える。
Figure 2011512730
Figure 2011512730
Figure 2011512730
このXMLメッセージの例では、メッセージの正確な内容は、より広く理解するためには重要ではない。おそらく、メッセージ・プロセッサ201および202はこの種のメッセージを非常に頻繁に処理し、メッセージの各インスタンスに対して少数のパラメータ値のみしか変化しない。例えば、行9、20、23、27、30、および33には、これらの値がメッセージごとに変化しうることを記号的に表すためにアスタリスクを付与してある。図3では、例えば、おそらく値302Bおよび305Bが変化するが、その種のメッセージと別のメッセージの間では残りの値は同じ値のままである傾向がある。従って、値302Bおよび305Bにもアスタリスクが付けられている。
図4は、圧縮されたメッセージのデータ構造400を示す。圧縮されたメッセージ400はパラメータ値402およびテンプレート識別子401を含む。テンプレート識別子401は、対応するテンプレートを識別できる十分な情報を含んでいる。幾つかの場合では、これは明示的な識別子であるかもしれない。しかし、他の場合では、テンプレート識別子は暗黙的であってもよい。
テンプレートの例を、図5に関して説明する。しかし、ここでは、テンプレート識別子401によって識別されたテンプレートを使用して、より広く拡張されたメッセージの文脈において意味論的文脈をパラメータ402に提供できることを述べれば十分である。換言すれば、テンプレートが、メッセージに含まれる値に対する意味論的な枠組みを定義する。例えば、対応するテンプレートは、メッセージ300に対する意味論的文脈の多くを反映することができ、メッセージ300内の値302Bに対する適切な意味論的文脈(すなわち、値302Bがパラメータ名302Aに対応すること)、およびメッセージ内の値305Bに対する適切な意味論的文脈(すなわち、値305Bがパラメータ名305Aに対応すること)を示すことができる。この意味論的文脈の例を図5に関して説明する。
図5は、メッセージ300に対応するテンプレート例500のデータ構造を概略的に示す。テンプレート500はメッセージ300に対する意味論的文脈の多くを含む。例えば、7つのパラメータの名前と値の組501から507がテンプレート500にあり、それらは、拡張メッセージ300の7つのパラメータの名前と値の組301から307に対応する。さらに、テンプレート500のパラメータの名の組501から507のそれぞれは、メッセージ300の対応する名前の組301から307(すなわち、名前301Aから307A)と同じである。また、この例では、実際のパラメータ値(値301B、303B、304B、306B、および307B)のうち幾つかも、テンプレート500およびメッセージ300において同じである。しかし、そのメッセージの種類のインスタンス間で変化する可能性が高いメッセージ300内の値(すなわち、メッセージ300の値302Bおよび305B)の場合は、テンプレートは抽象的な値(すなわち、対応する抽象的な値502Bおよび505B)を含む。係る抽象的な値は、パラメータ名に対する実際の値は含まず、単に指定されたプレースホルダである。
メッセージ300を圧縮するとき、テンプレート500はその密接な意味論的な類似性に基づいて選択されているかもしれない。そうすると、テンプレート500を使用してメッセージ300を圧縮することができる。圧縮されたメッセージ400は、テンプレート全体を含むのではなく、テンプレート500を(暗黙的あるいは明示的に)識別するはずである。テンプレート500の抽象的な値に対応するメッセージ300の具体的な値も、圧縮されたメッセージ400に含まれるはずである。例えば、メッセージ300の値302Bは、テンプレート500の抽象的なプレースホルダの値502Bに対応し、従って、圧縮されたメッセージ400に含まれるはずである。一実施形態では、圧縮されたメッセージ内の値302Bの位置は、値302Bを抽象的な値502Bに関連付ける。さらに、メッセージ300の値305Bはテンプレート500の抽象的なプレースホルダの値505Bに対応し、従って、圧縮されたメッセージ400に含まれるはずである。圧縮されたメッセージ内の値302Bの位置は、値302Bを抽象的な値502Bに関連付ける。従って、圧縮されたメッセージから拡張されたメッセージを再構築する場合に、実際のパラメータ値でテンプレートの対応する抽象的な値を置き換えることにより、テンプレート500を使用して意味論的な枠組みを提供することができる。
以下で、明快さのために行番号を付与したテンプレートの例を示す。この例は上述のXMLメッセージの例に対応する。
Figure 2011512730
Figure 2011512730
Figure 2011512730
このテンプレートの例は、上述したメッセージの例と非常に似ているようにみえる。実際、この例では、メッセージの意味は保たれており、テンプレートの各行(行1〜39)はメッセージの各行(行1〜39)を複製したものである。この例における唯一の例外は、行9、20、23、27、30、および33であり、これらは実際の値に対するプレースホルダを表す。
以下で、例示的な39行のテンプレートを使用して例示的な39行のメッセージを圧縮したことから生ずる、圧縮されたメッセージの具体的な例を示す。行番号を明快さのために付与しているが、圧縮されたメッセージは行番号の概念をもたない単なるビット列である。行番号は、ビット列の構造を説明する一助として使用されるにすぎない。
Figure 2011512730
Figure 2011512730
各行は16進法を使用して表されている。メッセージは、16進法の0x0001をもつ行1で始まる。16進法の0x0001はビット列0000000000000001と同じである。これは圧縮されたメッセージの開始を示す。
この基準では、次に表れる情報はテンプレート識別子であろう。しかし、メッセージからテンプレート識別子を適切に解析するために、行2はテンプレート識別子の長さ(0x0032、10進法では50)を含む。従って、解凍コンポーネントは、行2のビット列を読んだ後、次の50バイトがテンプレート識別子を含むであろうことを知る。デフォルトでは、解凍コンポーネントは、文字列において1文字ごとに1バイトを有する文字列としてテンプレート識別子が表現されることを理解することができる。
次いで、解凍コンポーネントは、行3で表された次の50バイトのデータを読み込み、以下の文字列を作成する。
Figure 2011512730
これにより、解凍コンポーネントは、解凍用の正しいテンプレートにアクセスすることができる。例えば、テンプレート500にアクセスしてメッセージ400を解凍することができる。
次いで、解凍コンポーネントは、値の長さにその値自体が続くという形態で、実際のパラメータ値を受信すると予測する。例えば、行4は、次のパラメータが8バイトの長さであることを識別する。具体的には、そのパラメータ値は文字列Message1である。行6は、次の値が10バイトの長さであることを識別し、2007年11月30日の日付に対する文字列の値である行7を読み込む。行8は、次の値が10バイトの長さであることを識別し、2008年6月30日の日付に対する文字列の値である行9を読み込む。行10は、次の値が(16進法で表した)0x0000410aバイトの長さであることを識別し、行11において[binary target service x509 certificate]によって記号的に表したバイナリ列を読み込む。行12は、次の値が8バイトの長さであることを識別し、行13を値12345678として読み込む。行14は、次の値が8バイトの長さであることを識別し、行15を値12345678として読み込む。行16は、16進の列0xFFFFFFFFを含み、これはメッセージの終了を示す。必要に応じて、幾つかのオプショナルな値があった場合は、代わりにビット列0xFFFFFFFFEと、それに続いて長さと値の組からなる1つまたは複数の列を使用することができる。
次いで、抽出された値を使用することができるが、テンプレートを使用して拡張されたメッセージを再度作成する。例えば、「Message1」をテンプレートの行9に差し込み、「30/11/2007」を行20に差し込み、「30/06/2008」を行23に差し込み、[binary target service x509 certificate]を行27に差し込み、12345678を行30に差し込み、12345678を行33に差し込んで、より大きなメッセージを再構築することができる。
図6は、圧縮されたメッセージを圧縮する方法600のフロー図を示す。例えば、図2A(および図2C)では、送信メッセージ・プロセッサ201A(および201C)はメッセージ212A(212C)を圧縮して、圧縮されたメッセージ216A(216C)を作成する。
圧縮コンポーネントは、先ず、圧縮前のメッセージにアクセスする(動作601)。例えば、図2Aでは、圧縮コンポーネント213Aがメッセージ212Aにアクセスする。図2Cでは、圧縮コンポーネント213Cがメッセージ212Cにアクセスする。
圧縮コンポーネントはまた、圧縮されたメッセージに含まれる1つまたは複数のパラメータを識別し(動作602)、そのメッセージに対応するテンプレートを識別する(動作603)。圧縮コンポーネントは、そのテンプレートを使用して、メッセージのどのパラメータを圧縮されたメッセージに含めるべきかを識別するであろう。いずれにせよ、圧縮されたメッセージは、次いで、テンプレートが少なくとも暗黙的に識別されるように構築される(動作604)。次いで、圧縮されたメッセージを、受信メッセージ・プロセッサに送信することができる(動作605)。
図7は、圧縮されたメッセージを解凍する方法700のフロー図を示す。受信メッセージ・プロセッサは、例えば、圧縮されたメッセージの少なくとも派生物を送信メッセージ・プロセッサから受信することによって、圧縮されたメッセージにアクセスする(動作701)。例えば、図2B(および2C)では、受信メッセージ・プロセッサ202B(および202C)が圧縮されたメッセージ216B(動作216C)を受信する。
受信メッセージ・プロセッサの解凍コンポーネントは、次いで、圧縮されたメッセージから1つまたは複数のパラメータ値にアクセスし(動作702)、また、圧縮されたメッセージに関連付けられたテンプレートを識別する(動作703)。例えば、圧縮されたメッセージが図4の圧縮されたメッセージ400に対して説明したように構成された場合、解凍コンポーネントは、テンプレート識別子401を圧縮されたメッセージ400からテンプレートに読み込むことができ、圧縮されたメッセージ400から1つまたは複数のパラメータ値402を読み込むことができる。
しかし、前述したように、テンプレート識別子を圧縮されたメッセージに明示的に含めることはできないが、おそらく推論することはできる。例えば、2つのメッセージ・プロセッサ間で通信する場合に使用される単一のテンプレートが存在することができ、または、おそらく、他のテンプレートが指定されない場合に使用されるデフォルトのテンプレートが存在する。
解凍コンポーネントは、次いで、圧縮されたメッセージ内に含まれていたパラメータ値を使用して、および前述したように識別されたテンプレートを使用して、圧縮されたメッセージを拡張されたメッセージに解凍または拡張することができる(動作704)。
テンプレートによって記述される意味情報を、メッセージ・プロセッサ間で最初に通信する時点より相当前に送信メッセージ・プロセッサおよび受信メッセージ・プロセッサによって理解することができる。例えば、異なるコンポーネントを各メッセージ・プロセッサにインストールして、圧縮および解凍を分散アプリケーションの機能に含めることができる。その場合、各メッセージ・プロセッサは、アプリケーションの初期設定に基づいて同じテンプレート・セットを暗黙的に理解することができる。あるいは、メッセージがおそらく初期ハンドシェーク動作として通信されるので、テンプレートの意味情報を、同一の通信セッション内で送信メッセージ・プロセッサおよび受信メッセージ・プロセッサによって交渉することができる。テンプレート・セットは静的および不変であってもよい。あるいは、または追加として、送信メッセージ・プロセッサと受信メッセージ・プロセッサとの間で通信が継続する際に、テンプレート・セットを動的に変更することができる。
図8は、2つのメッセージ・プロセッサ間で通信するために使用されるテンプレート・セットを動的に更新する方法800のフロー図を示す。先ず、メッセージ・プロセッサ間の通信において使用するための初期の意味論的テンプレート・セットを識別する(動作801)。次いで、メッセージ・プロセッサ間で通信される少なくとも幾つかのメッセージごとに、テンプレート・セットの特定のテンプレートを使用してメッセージを圧縮および/または解凍することができる(動作802)。さらに、テンプレート・セットを追加するための1つまたは複数の規準を定義することができる(決定ブロック803)。1つまたは複数の規準に合致する場合(決定ブロック803で、はい、の場合)、テンプレート・セットが変更される(動作804)。例えば、特定の意味論的構造を有するメッセージが何らかの頻度で発生すると認識される場合は、係る意味論的構造に対するテンプレートを作成することができる。
以上のように、本明細書で説明する実施形態は、メッセージを、そのメッセージに対する意味論的文脈を使用して圧縮および/または解凍するための効果的な機構を提示する。本発明を、その精神および本質的な特徴から逸脱しない他の特定の形態で具現化してもよい。説明した実施形態は、あらゆる点で、例示的なものに過ぎず、限定的なものではないと考えるべきである。したがって、本発明の範囲は、前述の説明によってではなく添付の特許請求の範囲によって示される。特許請求の範囲の意味および同等の範囲に含まれるあらゆる変更は、その範囲に包含されるべきである。

Claims (20)

  1. 送信メッセージ・プロセッサ(201A、201C)および受信メッセージ・プロセッサ(202A、202C)を含むメッセージング環境(100A)において、メッセージ(212A、212C、300)を前記受信メッセージ・プロセッサに送信することに備えて、前記送信メッセージ・プロセッサが前記メッセージを圧縮する方法(600)であって、
    圧縮前のメッセージ(212A、212C、300)にアクセスする動作(601)と、
    前記メッセージに対応するテンプレート(214A、214C、500)を識別する動作(603)と、
    圧縮されたメッセージ(216A、216C、400)に含まれるべき前記圧縮前のメッセージの1つまたは複数のパラメータ(302B、305A)を識別する動作(602)であって、前記識別されたテンプレートが前記識別された1つまたは複数のパラメータに対して意味論的な枠組み(502B、505B)を定義する動作と、
    前記テンプレートは少なくとも暗黙的に識別されるように(401)、且つ前記圧縮されたメッセージは前記識別された1つまたは複数のパラメータの値(402)を含むように、前記圧縮されたメッセージを構築する動作(604)と
    を含むことを特徴とする方法。
  2. 前記1つまたは複数のパラメータは、前記圧縮前のメッセージの複数のパラメータであることを特徴とする請求項1に記載の方法。
  3. 前記テンプレートはパラメータの名前と値のフィールドの組からなる集合を表し、前記組のうち少なくとも1つに対する値のフィールドはリテラル値を含み、且つ前記組のうち少なくとも1つに対する値のフィールドは抽象的な値を含むことを特徴とする請求項1に記載の方法。
  4. 前記メッセージは前記テンプレートによって表されるが、前記1つまたは複数の識別されたパラメータのそれぞれに対する実際の値で前記テンプレートの対応する抽象的な値を置き換えることを特徴とする請求項3に記載の方法。
  5. 前記圧縮されたメッセージは、前記1つまたは複数の識別されたパラメータのそれぞれに対する実際の値と前記テンプレートの対応する抽象的な値との間の相関関係が前記圧縮されたメッセージ内における前記実際の値の位置に基づいて表されるように、構築されることを特徴とする請求項4に記載の方法。
  6. 前記パラメータの名前と値のフィールドからなる集合は、それぞれ階層的に構成したデータ構造におけるノードとして表現されることを特徴とする請求項3に記載の方法。
  7. 前記識別されたテンプレートは、前記圧縮されたメッセージにおいて明示的に識別されることを特徴とする請求項1に記載の方法。
  8. 前記圧縮されたメッセージを前記受信メッセージ・プロセッサに送信する動作をさらに含むことを特徴とする請求項1に記載の方法。
  9. 前記テンプレートに含まれる意味情報は、前記送信メッセージ・プロセッサと前記受信メッセージ・プロセッサとの間の同一の通信セッションの前に、前記送信メッセージ・プロセッサおよび前記受信メッセージ・プロセッサの双方によって理解されたことを特徴とする請求項1に記載の方法。
  10. 前記テンプレートに含まれる前記意味情報は、前記メッセージが通信される際の同一の通信セッション中に前記送信メッセージ・プロセッサおよび前記受信メッセージ・プロセッサによって交渉されたことを特徴とする請求項1に記載の方法。
  11. 前記送信メッセージ・プロセッサと前記受信メッセージ・プロセッサとの間で通信が継続する際に、テンプレート・セットは動的に変化することを特徴とする請求項1に記載の方法。
  12. 送信メッセージ・プロセッサ(201B、201C)および受信メッセージ・プロセッサ(202B、202C)を含むメッセージング環境(100a)において、前記受信メッセージ・プロセッサが、前記送信メッセージ・プロセッサから受信したメッセージ(216A、216C、400)を解凍する方法(700)であって、
    圧縮されたメッセージ(216A、216C、400)にアクセスする動作(700)と、
    前記圧縮されたメッセージに対応するテンプレート(224B、214C、500)を識別する動作(703)と、
    前記圧縮されたメッセージから1つまたは複数のパラメータに対する値(402)にアクセスする動作(702)であって、前記テンプレート(500)が、前記圧縮されたメッセージに対応する解凍されたメッセージ内の識別された1つまたは複数のパラメータ(302B、305B)に対して意味論的な枠組み(502B、505B)を定義する動作と、
    前記識別されたテンプレートおよび前記圧縮されたメッセージからアクセスされる前記1つまたは複数のパラメータの前記値を使用して、前記圧縮されたメッセージを解凍して前記対応する解凍されたメッセージ(212B、212C)を生成する動作(704)と
    を含むことを特徴とする方法。
  13. 前記圧縮されたメッセージにアクセスする前記動作は、前記圧縮されたメッセージの少なくとも派生物を前記送信メッセージ・プロセッサから受信する動作を含むことを特徴とする請求項12に記載の方法。
  14. 前記識別されたテンプレートおよび前記圧縮されたメッセージからアクセスされる前記1つまたは複数のパラメータの前記値を使用して、前記圧縮されたメッセージを解凍して前記対応する解凍されたメッセージを生成する前記動作は、
    前記値ごとに、前記圧縮されたメッセージ内の前記値の位置を使用して、前記テンプレート内の前記値の位置を決定する動作
    を含むことを特徴とする請求項12に記載の方法。
  15. 前記圧縮されたメッセージに対応するテンプレートを識別する前記動作は、
    前記圧縮されたメッセージ内のテンプレート識別子を使用して前記テンプレートを識別する動作
    を含むことを特徴とする請求項12に記載の方法。
  16. 前記圧縮されたメッセージに対応するテンプレートを識別する前記動作は、
    デフォルトのテンプレートを前記テンプレートとして識別する動作
    を含むことを特徴とする請求項12に記載の方法。
  17. テンプレートを識別する前記動作は、デフォルトのテンプレートを識別する前記動作の前に、
    前記圧縮されたメッセージ内にテンプレート識別子がないことを判定する動作
    をさらに含むことを特徴とする請求項16に記載の方法。
  18. テンプレートを識別する前記動作は、少なくとも前記圧縮されたメッセージ内の情報を使用して新しいテンプレートを作成するステップを含むことを特徴とする請求項12に記載の方法。
  19. 1つまたは複数のプロセッサ(102)によって実行されるとき、メッセージを送信メッセージ・プロセッサから受信メッセージ・プロセッサへ送信するためのプロトコルを規定するコンピュータ実行可能命令をコンピュータ可読媒体上に具備した1つまたは複数のコンピュータ可読媒体(104)であって、前記プロトコルは、
    メッセージを前記メッセージ・プロセッサ間で通信する際に使用するための初期テンプレート・セットを識別する動作(801)であって、各テンプレートは、共通の意味をもつメッセージに対して意味論的な文脈を提供する動作と、
    前記メッセージ・プロセッサ間で通信される少なくとも幾つかのメッセージごとに、前記メッセージの圧縮または解凍の際に使用するためのテンプレートを前記テンプレート・セットから識別する動作(802)と、
    テンプレートを前記テンプレート・セットに追加するための1つまたは複数の基準を定義する動作と、
    前記1つまたは複数の基準に合致すると判定すると(803)、前記テンプレート・セットを変更する動作(804)と
    を含むことを特徴とする1つまたは複数のコンピュータ可読媒体。
  20. 前記1つまたは複数のコンピュータ可読媒体は物理メモリおよび/または記憶媒体であることを特徴とする請求項19に記載の1つまたは複数のコンピュータ可読媒体。
JP2010544986A 2008-01-31 2008-12-31 テンプレート式のパラメータを使用したメッセージの符号化および復号化 Pending JP2011512730A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/023,998 US7746250B2 (en) 2008-01-31 2008-01-31 Message encoding/decoding using templated parameters
PCT/US2008/088637 WO2009099501A1 (en) 2008-01-31 2008-12-31 Message encoding/decoding using templated parameters

Publications (2)

Publication Number Publication Date
JP2011512730A true JP2011512730A (ja) 2011-04-21
JP2011512730A5 JP2011512730A5 (ja) 2012-01-19

Family

ID=40932708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010544986A Pending JP2011512730A (ja) 2008-01-31 2008-12-31 テンプレート式のパラメータを使用したメッセージの符号化および復号化

Country Status (5)

Country Link
US (1) US7746250B2 (ja)
EP (1) EP2248310A4 (ja)
JP (1) JP2011512730A (ja)
CN (1) CN101933297B (ja)
WO (1) WO2009099501A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8190769B1 (en) 2008-12-30 2012-05-29 Juniper Networks, Inc. Methods and apparatus for provisioning at a network device in response to a virtual resource migration notification
US8565118B2 (en) * 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US8054832B1 (en) 2008-12-30 2011-11-08 Juniper Networks, Inc. Methods and apparatus for routing between virtual resources based on a routing location policy
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US9390099B1 (en) * 2011-03-29 2016-07-12 Emc Corporation Method and apparatus for improving a compression ratio of multiple documents by using templates
CN103516579A (zh) * 2012-06-27 2014-01-15 腾讯科技(深圳)有限公司 提供离线消息的服务系统及相应的服务方法
US9123076B2 (en) * 2013-10-16 2015-09-01 Nasdaq OMX Group, Inc. Customizable macro-based order entry protocol and system
CN104378282B (zh) 2013-12-25 2016-08-24 腾讯科技(深圳)有限公司 消息发送方法、消息转发方法、装置及系统
CN104378341B (zh) * 2013-12-25 2016-04-20 腾讯科技(深圳)有限公司 模板获取方法、模板提供方法、装置及系统
CN104270223B (zh) * 2014-09-10 2017-11-21 四川九洲电器集团有限责任公司 一种传输报文的方法及装置
US10498683B2 (en) 2016-07-20 2019-12-03 At&T Intellectual Property I, L.P. Compressed message sets for storage efficiency
CN106534356B (zh) * 2016-12-12 2018-05-22 腾讯科技(深圳)有限公司 模板数据处理、请求模板数据、模板数据展示的方法和装置
US10547577B2 (en) 2017-03-28 2020-01-28 Whatsapp Inc. Techniques for templated messages
CN108696899B (zh) * 2017-04-07 2021-09-03 北京京东尚科信息技术有限公司 Sip消息传输与接收方法及传输与接收装置
CN108090034B (zh) * 2017-12-29 2021-02-26 政采云有限公司 基于集群的单证代码统一编码生成方法和系统
US11337183B2 (en) 2019-02-28 2022-05-17 Qualcomm Incorporated Aggregated control information for a wireless communication network
CN113093992B (zh) * 2021-03-24 2024-09-10 深圳大普微电子科技有限公司 一种命令的解压方法、系统及固态硬盘

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004032774A (ja) * 2002-06-21 2004-01-29 Microsoft Corp マークアップ言語文書を符号化するための方法およびシステム
JP2004096717A (ja) * 2002-06-17 2004-03-25 Lucent Technol Inc 無線通信システムにおけるプロトコル・メッセージの圧縮
JP2005202507A (ja) * 2004-01-13 2005-07-28 Ntt Docomo Inc データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム
JP2005284903A (ja) * 2004-03-30 2005-10-13 Matsushita Electric Ind Co Ltd 文書符号化装置、文書復号化装置、文書符号化方法及び文書復号化方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082162B2 (en) * 1999-04-17 2006-07-25 Pts Corporation Segment-based encoding system including segment-specific metadata
US20020099734A1 (en) * 2000-11-29 2002-07-25 Philips Electronics North America Corp. Scalable parser for extensible mark-up language
US6888893B2 (en) * 2001-01-05 2005-05-03 Microsoft Corporation System and process for broadcast and communication with very low bit-rate bi-level or sketch video
US6976081B2 (en) * 2002-01-30 2005-12-13 Motorola, Inc. Session initiation protocol compression
US7350199B2 (en) * 2003-01-17 2008-03-25 Microsoft Corporation Converting XML code to binary format
CA2514832C (en) * 2003-02-14 2011-09-20 Research In Motion Limited System and method for compression of wireless applications expressed in a structured definition language
JP4261299B2 (ja) * 2003-09-19 2009-04-30 株式会社エヌ・ティ・ティ・ドコモ データ圧縮装置、データ復元装置およびデータ管理装置
US7509387B2 (en) * 2004-04-07 2009-03-24 Nokia Corporation System, apparatus, and method for using reduced Web service messages
US20060117307A1 (en) * 2004-11-24 2006-06-01 Ramot At Tel-Aviv University Ltd. XML parser
US8296354B2 (en) * 2004-12-03 2012-10-23 Microsoft Corporation Flexibly transferring typed application data
US7987272B2 (en) * 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US8346737B2 (en) * 2005-03-21 2013-01-01 Oracle International Corporation Encoding of hierarchically organized data for efficient storage and processing
WO2007070591A2 (en) * 2005-12-13 2007-06-21 Siemens Medical Solutions Usa, Inc. A system for configuring a data exchange and format conversion system
US7292160B1 (en) * 2006-04-19 2007-11-06 Microsoft Corporation Context sensitive encoding and decoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004096717A (ja) * 2002-06-17 2004-03-25 Lucent Technol Inc 無線通信システムにおけるプロトコル・メッセージの圧縮
JP2004032774A (ja) * 2002-06-21 2004-01-29 Microsoft Corp マークアップ言語文書を符号化するための方法およびシステム
JP2005202507A (ja) * 2004-01-13 2005-07-28 Ntt Docomo Inc データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム
JP2005284903A (ja) * 2004-03-30 2005-10-13 Matsushita Electric Ind Co Ltd 文書符号化装置、文書復号化装置、文書符号化方法及び文書復号化方法

Also Published As

Publication number Publication date
WO2009099501A1 (en) 2009-08-13
US20090198761A1 (en) 2009-08-06
EP2248310A4 (en) 2013-06-26
CN101933297B (zh) 2013-03-27
EP2248310A1 (en) 2010-11-10
CN101933297A (zh) 2010-12-29
US7746250B2 (en) 2010-06-29

Similar Documents

Publication Publication Date Title
JP2011512730A (ja) テンプレート式のパラメータを使用したメッセージの符号化および復号化
KR101027299B1 (ko) 웹 서비스 통신의 히스토리 구동 최적화를 위한 시스템 및방법
US5946467A (en) Application-level, persistent packeting apparatus and method
JP4982501B2 (ja) 無線装置と通信するためにデータを圧縮/解凍するための方法及び装置
US7391735B2 (en) Parsing messages with multiple data formats
US9338258B2 (en) Methods and network devices for communicating data packets
US20110219357A1 (en) Compressing source code written in a scripting language
CN112988409B (zh) 一种接口调用方法、装置、计算机设备及存储介质
EP1667404B1 (en) Method for the transmission of structured data using a byte stream
US7895347B2 (en) Compact encoding of arbitrary length binary objects
US8954400B2 (en) Method, system and program product for managing structured data
CN113204683B (zh) 信息重构方法和装置、存储介质及电子设备
CN115167869A (zh) 一种Java对象序列化和反序列化的方法、电子设备及介质
Yoshino Compression extensions for websocket
EP1540919B1 (en) Flexible approach for representing different bus protocols
JP2015135630A (ja) Usbデバイスサーバ
WO2022230809A1 (ja) シリアル化方法、逆シリアル化方法、情報処理プログラム、情報処理装置及び通信システム
JP4830558B2 (ja) 構造化文書符号化装置および構造化文書復号化装置
CN118138622A (zh) 基于Fury序列化和soft通信协议的Node.js RPC框架实现方法
Lang et al. Package ‘RCurl’
WO2024165767A2 (en) Http multiplexing transfer using an intermediate header in websocket frames
CN118158626A (zh) 短消息传输方法及相关装置
CN117749777A (zh) 一种诊断报文的编辑方法、装置、计算设备及存储介质
CN115878344A (zh) 基于protobuf的数据处理方法、装置、介质及设备
CN116887204A (zh) 号码处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111125

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120521

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120629