フィールド展開IoTデバイス向けリアルタイムソフトウェアトレーシング
ソフトウェアトレーシングは、高度な可視化と組み合わせると、すべての組み込み開発者にとって不可欠な技術です。ほとんどの組み込みシステムは反復的で循環的なパターンを示します。デバッグ時の目標は、この正常な動作からの逸脱、つまり根本的な問題を示唆する異常を特定することです。
トレーシング単体では単にデータを収集するだけです。大量のテキストや数値のログをふるいにかけるのは、干し草の山から針を探すようなものです。適切な可視化により、これを視覚的パターン認識タスクに変換し、人間の脳が得意とする分野で処理できます。実行時間、応答時間、タスク切り替え、タスク間メッセージングを表示するインタラクティブなグラフにより、開発者は瞬時に異常を発見し、どこをさらに調査すべきか判断できます。
10年以上にわたり、視覚的トレース診断はラボ環境で非常に貴重であることが証明されてきました。セキュアな「Internet of Things」クラウド接続の急増に伴い、フィールドで動作するデバイスへのトレーシング拡張が論理的になりました。トレーシングはソフトウェアベースなので追加ハードウェアは不要で、接続されたIoTデバイスは通常のアプリケーションデータと同様に診断トレースをアップロードできます。これにより、開発者は事前展開テストでは得られない実世界の洞察を得られます。
ソフトウェアトレーシングを仮想「フライトレコーダー」と考えてください。継続的に記録し、問題発生時に重要な情報を提供します。物理的なフライトレコーダーとは異なり、このソリューションは純粋にソフトウェアであり、ソフトウェア固有の故障を捕捉するように設計されています。
PercepioのDevAlert(図1参照)は、IoT監視のためのターンキーソリューションです。これには以下が含まれます:
- トレーシングとアラート機能をコードに組み込むファームウェアモニタ。
- 視覚的トレース診断ツールTracealyzer。
- アラートを分類、保存、開発者に通知し、重複アラートをフィルタリングするクラウドサービス。

図1. Percepio DevAlertはクラウド接続デバイスのエラーに即座にフィードバックし、ファームウェアの迅速な継続的改善を可能にします。(クリックで拡大)
初期リリースはAWSをターゲットとし、AWS IoT Coreを活用するRTOSアプリケーション向けに調整されていますが、アーキテクチャは他のクラウドプラットフォームにも適応可能です。
ソフトウェアトレーシングとクラウド接続の融合
ラボでのトレーシングと本番環境でのトレーシングは大きく異なります。ラボ対応の視覚診断をフィールド展開デバイスに拡張する際、いくつかの考慮事項が生じます。
直接のUSBやEthernetリンクとは異なり、クラウド接続は限られた帯域幅と高いレイテンシを提供します。例えば、5KBのトレースデータをアップロードするのに、ワイヤレスインターフェースでは数十〜数百ミリ秒かかることがあります。しかし、DevAlertのアップロードはイベント駆動型です:正常性チェック失敗、ハードフォルト、ウォッチドッグリセットなどのアラートが発生したときのみ、直近のイベントの短いトレースが送信されます。このアプローチにより帯域幅使用を最小限に抑えつつ、最も重要な情報を配信します。
セキュリティはすべてのIoTデバイスで最優先事項です。DevAlertは、デバイスの既存のセキュアなクラウド接続を活用することで、新たな攻撃面を作りません。アプリケーションが既に依存している同じデバイス認証(例:X.509証明書)と暗号化トランスポート(TLS)を使用します。アラートは一方通行で送信され、着信トラフィックはありません。これは通常のIoTデータと同じセキュリティモデルです。
クラウドに到達すると、軽量なメタデータ署名のみがDevAlertサービスに送信され、完全なトレースはデバイス独自のクラウドアカウント内に留まります。図2aと2bはデータフローとセキュリティレイヤーを示しています。
図2a. データはデバイスファームウェアで発生;各アラートには直前のイベントの簡潔なトレースが含まれる。メタデータ署名がDevAlertクラウドサービスに転送される。(クリックで拡大)

図2b. クラウドサービスは着信アラートを顧客の全フリートのアラートと比較し、新しい問題のみで開発者に通知。重複アラートは記録されるが再通知されず、受信箱の煩雑さを防ぐ。(クリックで拡大)
アラート送信の運用コストは通常無視できるレベルで、特に問題が検出されない場合は顕著です。クラウドプロバイダは時折のメッセージに最小限の料金を請求します。例えば、AWS IoT Coreに100万MQTTメッセージを送信するコストは約1米ドルです。逆に、バグを修正するOTAアップデートにはより多くのデータ転送が必要です。AWSは60万デバイスの更新コストを1,275米ドルと見積もっています。これは、未解決の欠陥による潜在的損失(顧客離れ、悪評、安全インシデント)より遥かに低い投資です。
組み込み開発のためのDevOps
デバイスがソフトウェア障害で「ホームに電話」できるようにすることは、本番ファームウェアと開発チームの間に強力なフィードバックループを確立します。迅速な検出、診断、OTA修正は、モバイルおよびクラウドアプリケーション開発で長年確立されてきたDevOpsマインドセットを、セキュアなクラウドプラットフォームを通じて組み込みシステムにも適用可能にします。

図3. TracealyzerのDevAlertダッシュボードには最新アラートと関連トレースが一覧表示され、開発者に即座にコンテキストを提供。(クリックで拡大)
ビジネス視点では、DevOpsスタイルの監視は、不満な顧客の減少、サポートコストの削減、責任の軽減につながります。ほとんどの組み込みリリースには検証をすり抜ける軽微なバグが含まれますが、理想的には数秒以内の早期可視化により、迅速な分析とOTA修正が可能になります。その結果、修復時間の短縮と顧客影響の最小化により、ブランド評判と収益を守れます。
バグを超えて:パフォーマンスとユーザー体験
アラートは欠陥報告に限定されません。開発者は重要なパフォーマンス指標やユーザーインタラクションフローを計装できます。例えば、車載インフォテインメントシステムで、ユーザーのメニュー操作が5秒以上停滞したらアラートを発するタイマーを設定できます。同じUIパスでのアラート集積はユーザビリティのボトルネックを明らかにし、反復的な製品改善を導きます。
要約すると、フィールド展開デバイスでソフトウェアトレーシングとクラウドベースのアラートを統合することで、過度な複雑さなしに、信頼性向上、迅速な問題解決、データ駆動型製品進化という具体的なメリットが得られます。しかし、このワークフローを完全に採用するには、OTA更新機能と、リリース後の継続的改善を重視するアジャイルな組織が必要です。
埋め込み
- RISC-V Summit 2020:主要セッションと見所
- サイプレス、Cirrentを買収:セキュアでシームレスなWi-FiソフトウェアでIoT接続を強化
- Infineon、OPTIGA Trust M発表:接続デバイス向け高速・セキュアなクラウド接続
- ルネサス、FSPでRA、RX、RZ/Aライン全体にAzure RTOS統合を拡大
- 医療機器技術の進歩を追跡:市場予測と主要トレンド
- クラウドERPで優位に立つのは? SAP、Microsoft、Oracleを徹底比較
- エッジクラウドコンピューティング:IoT急成長を支える必須のバックボーン
- IoTデバイスのアップデート:モダンワークプレイスにおける配布課題の克服
- Blackbaud、2020年データ侵害で身代金支払いを認める-世界的ランサムウェア急増のさなか
- IoTデバイスを守る4つの実証済みステップ:包括的なソフトウェア保証ブループリント
- IoTデバイスのソフトウェアテスト:主要課題と解決策