2011-08-08 15 views
-1

デバイスをシリアルポートに接続し、特定のプロトコルを使用してデバイスと通信しています。 与えられたメッセージフォーマットに従ってプロトコルメッセージの書き込み/読み出し用のパーサを書く必要があります。Javaでのプロトコル処理に最適なライブラリですか?

基本的には、指定されたフォーマットを使用してストリームとの間でオブジェクトをシリアル化/デシリアライズする必要があります。

何か良いJavaライブラリがJava.IOの上に、この目的のために特定が行われた場合、私は思ったんだけど?プロトコルがシリアルポートを介して実行されているため、速度が遅くなることに注意してください。私はGoogleのprotocolbufferを読んだ

は、非常に有望なソリューションに聞こえるが、それは私が使用canot独自のシリアル化形式を、持って見えます。

ありがとうございました。

答えて

3

まず、オブジェクトがどのようにシリアル化されているかが重要です。図書館が両方の目的のために読者とライターを提供しているなら、なぜそれについて心配しますか?一方、あなたはまた、そのフォーマットを読み書きすることを望んでいるJavaベースではないいくつかの他のシステムを持っている場合、あなたは問題があります。

すべてのシリアライズライブラリは両端場合は、独自の形式

  • Javaのシリアライズ
  • プロトコルバッファ
  • お気に入りのXMLバインディングフレームワーク
  • 倹約
  • のJBossシリアライズ

を紹介lを使うことができますibraryが最良...より速く、より良い

  • サイズであるように

    • スピードと実行時の特性に基づいているものを選ぶ...以下は、より良い
    • 圧縮である - が重要であるかもしれない
    • セキュリティ/その下にレイヤーを保護するには、暗号化が必要な場合があります。
    • アプリの成長に合わせてメッセージの進化をサポートするバージョン管理...(MGありがとう)
  • +1

    メッセージ形式がすでに定義されているので、私は、「バージョン管理」の物語は、リスト –

    +0

    のためのもう一つの重要な一つであることを提案すると、ハードウェアで使用されます。上記のいずれかを使用することはできません。しかし、私はまだフォーマット定義に従って、必要なフォーマットされたメッセージを生成し、それを構文解析できるライブラリに興味があります。それは、通常行わなければならない退屈な構文解析作業に多くの助けとなります。 – Wudong

    関連する問題