技術的な時計の振り子は分散型に向かって振れており、Zenohは機能の充実化を継続しています。
2023年は、Zenohユーザにとって特に収穫が多い年でした。新しい機能が追加された他に、性能、ユーザビリティ、そして統合能力が大幅に向上しました。
1. パフォーマンスメトリクスの向上
Zenoh Bahamutの導入により、ユーザは、メッセージスループットの大幅な向上を目のあたりしました。8バイトペイロードで秒あたり500万件のメッセージ、8Kbで60Gb/s以上です。当社は遅延性を7 µsほどにまで減少させました。
これにより、Zenohは市場における最も速いデータ管理ソリューションのひとつという位置を維持できました。
2. Zenoh-Flow データフロープログラミング
当社はZenoh-FlowをZenohファミリーに加えたことをうれしく思っています。
これにより、複雑なデータプロセッシングパイプラインの開発を簡素化するデータフロープログラミングモデルを提供できます。理解しやすく、維持やスケーリングも簡単なデータを作成することができます。Zenoh-Flowにより、デベロッパーは、基礎となるデータ管理の複雑さを心配することなくアプリケーションのロジックに集中できます。
Julien Loudet がZenoh-Flowのウェビナーを行って、それがどのように動くのかデモを行います。以下でご覧になれます。
3. ZenohにおけるROS 2統合
ROS 2統合
Font: Zenoh routers used in route DDS traffic
ROS(ロボットオペレーティングシステム)は、複数のロボティックアプリケーションの構築を可能にするソフトウェアとツールのセットです。ROS 2は、通信用ミドルウェアとして主にO.M.G. DDSに依存しています。
ZenohはすでにDDS向けにブリッジをしており、ROS graph、ROS toolings(Ros2, rviz2…)などの統合をよりよくブリッジするROS 2専用のブリッジを用いて多くのロボティクの使用ケースでワイヤレスコネクティビティ、帯域幅、統合といったいくつかの問題の克服を助けています。また、Zenohのネイティブアプリとより簡単に統合し、ブリッジ間のディスカバリ情報の交換もよりコンパクトに行うことができます。
Julien Enochが、2023年に行ったウェビナーでROS 2ブリッジのデモを行っており、以下で見ることができます。
MQTT統合
Font: Zenoh integration on MQTT broker
MQTTは、ブローカーを利用してMQTTクライアント間でのメッセージのルーティングをするpub/subPub/Subプロトコルです。2023年、Zenoh用のMQTTプラグインを追加しました。これはMQTTブローカーとして動作し、MQTT クライアント(V3およびV5)からの接続を受け付け、MQTT pub/subをZenoh pub/subPub/Subに翻訳します。これにより、どんなMQTTシステムもZenohと緊密に統合できるだけでなく、Zenohのルーティングインフラストラクチャの優位点も MQTTシステムにもたらします。
いくつかの実施例としては、MQTTをエッジからクラウドにルーティングすること、2つの別々のMQTTシステムをNAT traversalによりインターネットを介してブリッジングすること、Zenoh REST APIを介したMQTTへの pub/sub、MQTT-ROS2(ロボット)通信、MQTT パブリケーションのあらゆるタイプの Zenoh ストレージへの保存(RocksDB、nfluxDB、file system…)そして InfluxDBをストレージとして用いたMQTT の記録/返送などが挙げられます。
以下のウェビナーでは、Julien EnochがZenoh について、およびその MQTTプラグインを使ったお客様のシステムの性能のスケーラビリティの向上についてお話しします。プラグイン設定や使用例、そのコードなどの詳細も見ることができます。
4. 超低遅延性サポート
Zenohは、すでに非常に低い遅延性(詳細については、Zenoh、MQTT、KafkaおよびDDSの性能について説明しているこちらのブログ投稿 をご覧ください)を提供することができますが、もっとできると思っています!
2023年には、超低遅延性通信のサポートを導入し、各マイクロ秒を念頭に置くこれらアプリケーションに対応しました。例えば、共有メモリにわたって通信するアプリケーションは、これから大きな恩恵を受けるでしょう。また、当社が開発中の新しいZenohの高性能SHM APIについてもこれは必要になるでしょう。
5. Let’s Encrypt サポート
LetsEncryptは、ウェブサイト上でHTTPS (SSL/TLS) の暗号化を可能にするデジタル証明を提供する無料の自動化されたオープン認証局(WebPKIの一部) です。2023年、Zenoh with TLSを通信トランスポートとして有するZenoh を用いる際のLetsEncryptのサポートを加え、Zenoh通信をセキュアにする簡単な方法を提供しました。
Zenohを備えたLetsEncryptをどのように使用するかにするかについて 総合ガイドを書きましたので、ご興味があればご覧ください。
6. C++ API
すでにサポートしているzenoh-cに加え、zenoh-picoにも C++ APIを加えました。zenoh-picoによりサポートされているどんな組み込みプラットフォームにでもZenoh C++アプリケーションを書いて実行できるようになったということです!
また、2023年に、共有メモリサポートを含むZenoh安定版APIの完全なカバレッジをついに提供します。Zenoh C/C++ プロジェクトのビルドも、よりシンプルに、よりフレキシブルになっています。zenoh-c、zenoh-pico、そして zenoh-cpp を事前のインストールなしに親CMakeプロジェクトに直接含めることができます。
7. Kotlin API
また、ZenohをKotlinの世界に導入し、その逆も行いました。Zenoh Kotlin APIは、JVM環境をターゲットにして、実質的に Zenoh の使用をすべてのJVMベースのプログラミング言語に対してオープンにしています。
このアルファバージョンで、Zenohの機能のほとんどが見られるでしょう。データのパブリッシュ、サブスクライブ、そしてクエリを行うことができます。現在、当社は、プラットフォーム独立型のパッケージングとAndroidのサポートに取り組んでいます。
8. ライブリネスサポート
昨年、当社は、あらゆるZenohアプリケーションがネットワークで他のどんなZenohアプリケーションでもライブリネスをアサーションしモニタリングすることを可能にするライブリネス機能を導入しました。
すべてのZenohアプリケーションは、いくつかのキーエクスプレッションと関連付けられたライブリネストークンを宣言することができます。ライブリネストークンは、Zenohがそれがアライブだと宣言する限り、他のZenohアプリケーションによりアライブだと見られます。これにより、Zenohアプリケーションは、ライブリネストークンのライブリネス変化(ライブリネストークンの出現/消滅)を照会し、サブスクライブができるようになります。
9. コンプレッションサポート
また、2023年にはトランスペアレントなコンプレッション機能を追加しました。
コンプレッションは、ホップ・ツー・ホップでネットワーク上で実行されます。つまり、メッセージは、送信ノードで圧縮され、受信ノードで拡張されます(ノードはルータ、クライアント、ピアなどです)。
これは、特にWiFiなどの限定された帯域幅のネットワーク上で通信が行われるときに便利です。
10. S3 ストレージバックエンド統合
当社のユーザは、S3ストレージバックエンドの統合を要請していました。
この機能によりZenohは、Amazon S3やMinIOのインターフェイスとなることができ、ユーザにZenohエコシステム内のクラウドストレージ能力を利用できるようにします。S3 バックエンドは、Amazon S3とMinIOの両方のために構成されており、保存中のデータに対して柔軟性とスケーラビリティを提供します。
当社のチームはバックエンドシステムと構成の詳細について ブログ投稿をしました。
結論
性能の向上からZenoh-Flowの導入まで、Zenohはクラウド・ツー・モノのコンティニュアムのための全体論的なソリューションを提供し続けていきます。さらなるイノベーションを目指し、Zenohは、パワフルであるだけでなく、フレキシブルで使いやすいデータ管理ソリューションを提供するためにコミットしていきます。
いつもと同じですが、当社が言うことをうのみにしてはなりません。ご自分で試してみてください。Zenohはオープンソースですから、GitHub上のZenohドキュメントのすべてを見つけることができます。何か質問がありましたら、当社のDiscordチャンネルに参加して、当社のエンジニア達にお問い合わせください。
2024年にもう足を踏み入れているなら、当社が開発中の機能や今年度リリース予定のものをご覧ください。