SDDS(ストリームデータの動的構造)
ダイナミックパケットストリームデータ処理構造
- アプリケーション層プロトコルバイナリ符号化および復号の共通コンポーネント
- 一般的なコンポーネントは、バイナリストリームのエンコードとデコードをフォーマット。
}
===========
なぜSDDS?
===========
我々はWorkerManを使用するか、Swooleを書くとき
バイナリに基づいてTCPまたはUDP通信アプリケーションは、WorkerManまたはSwooleトランシーバは、バイナリデータパケットを解決しました。典型的には、このようなJT808、などの異なるアプリケーション層プロトコル、のために、時期Modbus、我々は、異なるデータパケット符号化および復号化手順を記述する必要があります。そして、理由は複雑なアルゴリズムとプロトコルの様々なこれらの手順のために、プログラムはほとんど再利用性があります。
もちろん、あなたはまた、エンコードとデコードを達成するためにGoogleのプロトコルバッファを使用することができますが、このような行為は、データパケットの構造を変更した、といくつかの特別なハードウェアやプロトコルがプロトコルバッファを使用することは容易ではありません。
しかし、限り、あなたはスキーム、追加の拡張機能の数は、アプリケーション層プロトコルの符号化と復号化プログラムが完了しているもののJSON定義を使用して、SDDSを使用して、今SDDS、(ストリームデータの動的構造)があります。
したがって、SDDSコンポーネントベースのアプリケーション層プロトコルと再利用性の問題を解決します。だけでなく、開発のスピードを強化するだけでなく、大幅にプログラム、拡張性と保守性の再利用性を向上させます。
簡潔には、SDDSソケット通信は、アプリケーション開発で最も複雑なもの、すなわちを簡素化し、アプリケーションプロトコルレイヤ符号化及び復号化手順の開発。
SDDSを使用し、さらに原因あなたは、アプリケーションのセットで、アプリケーション層のプロトコルの複数のセットをサポートすることができます。
使用SDDSは、大きく異なるアプリケーションバイナリ通信プロトコルの通信のPHPアプリケーション開発速度を強化します。
======================
SDDSといるProtobuf、異なる解体
======================
そして、バッファが同じでないプロトコルで、あなたは準備スキーム後すぐに使用することができます。プロトコルを規定の伝送構造を変更しない間は、コンパイルする必要はありません。したがって、それは広く使用されているのIoT、JT808、のModBus、ジグビー、OBD IIバイナリアプリケーションと他のプロトコルとすることができます。
過去には、異なるアプリケーション層のプロトコルは、異なるコーデックが必要です。さて、すべてそれぞれがJSONスキームに基づいて異なる定義を持っていることを除いて、完成SDDSでSDDS、すべての共通のコーデックを使用しました。
SDDSはまた、そのようなので、上のPDF、MP3および、などのバイナリ形式のファイルを、読み取るために使用されます。解体類似のオープンソースはないコンパイルSDDSのように、異なっている、そして、による動的データ構造定義モードを使用SDDSに、従って、任意のデータの処理の流れは、スキームによって定義することができます。解体便利よりスキームは、可能SDDSを使用して、単にそれぞれの拡張関数を定義します。
したがって、のみならず、バイナリ符号化および復号化手順のSDDS共通アプリケーション層だけでなく、バイナリデータストリームの符号化及び復号化をフォーマット簡便な組み立てのために。
すべてのすべてで、SDDSは、バイナリ通信プロトコル層アプリケーションの開発と高速読み書きバイナリ形式の迅速な開発ソリューションとして、次のような利点があります。
1、SDDS広く産業オートメーション、ネットワーキング及び他のアプリケーションプロトコル、例えばMODBUSとして、ジグビーなどjt808に限定されるものではないが、種々のアプリケーション層プロトコルソケットバイナリ通信サーバアプリケーションの開発に適用することができます。
図2は、使いやすい、開発効率が大幅に向上しました。
図3に示すように、動的構造は、プロセスが完全にコーデックスキームによって定義されます。
4、コンパイルなし。とスキーム書きます。プログラムを修正し、拡張が容易。
図5は、SDDSは、通信にも適用するだけでなく、他のバイナリフォーマットのストリームデータを読み書きするために使用することができます。
SDDSの詳細については、以下を参照してください。
https://github.com/byteferry/sdds
SDDSのPHPコンポーネントは、以下を参照してください。
https://github.com/byteferry/sdds_php