ブログ:
最新のソフトウェアツールで組み込みソリューションを構築 - RND Groupによるケーススタディー

2022年2月17日木曜日
RND Group

The NABIT製品に関連し、Conservation X LabsのHal Holmes博士の協力を得てRND Groupが行ったケーススタディー。NABITは、「世界のいたるところで、特別な訓練、装置、試薬または持続的な電力がなくても野生動物または食品製品を特定できる、現場で即使用可能な低コストかつコンパクトな自動化ツール」です。

Torizon組み込みLinuxディストリビューションで稼働するdockerコンテナを利用することで実現したプロジェクトです。


コンテナごとに組み込みソフトウェアを構築

RND Group
Linux | Docker Container

組み込みソフトウェアを書くプロジェクトの話となると、プロジェクトマネージャーは普通、そのプロジェクトには非常に専門的なスキルを持つソフトウェア開発者が必要となる、と考えるものです。これまでの組み込みソフトウェア開発では、電気工学とコンピューターサイエンス双方のスキルを持つ開発者、CまたはC++などの低水準言語によるソフトウェアとファームウェアのプログラミング、高価なソフトウェア開発ツールの購入が必要でした。さらに、開発されるユーザーインターフェースは、現代のGUI基準よりも非常に基礎的なものとなるのが常でした。

現在でも組み込みソフトウェアプロジェクトの多くにはそうした特徴がありますが、その一方で、最新のソフトウェア開発ツールを利用した組み込みソフトウェア開発を実現して、組み込み開発の生産性を飛躍させる新しいテクノロジーも誕生しています。このケーススタディーは、オープンソースツール、高水準プログラミング言語、最新のUIツールキット、さらに、ハードウェアが完成する前にソフトウェアの大部分の開発と検証を可能にするコンテナ化テクノロジーを利用して、組み込みデバイス向けのソフトウェアを書いたRND Groupの体験について説明します。

組み込みシステムとは?

組み込みシステムと汎用システムには、オペレーティングシステム、デバイスインターフェイス / デバイスドライバー、ビジネスロジックとユーザーインターフェースといった共通の要素があります。主な相違点は、組み込みシステムは特定の目的のために設計、構築されるため、ネットワーク機能やセキュリティー、コンフィグレーション、多様なアプリケーションといった、汎用システムに見られる機能の多くが削除または削減されていることです。組み込みシステムの機能を縮小することにより、低メモリー、小容量ストレージと低消費電力の要件を持つ、制約のあるプロセッサーでソフトウェアを実行できるようになります。組み込みシステムは、ハンドヘルド型または携帯型ユニットや、充電池の電力で稼働する必要があるデバイスなど、小型サイズのデバイスで非常に一般的に利用されています。

組み込みシステム開発に利用できるオペレーティングシステムは多数ありますが、現在最もよく選ばれているのがLinuxです。Linuxは、オープンソースのオペレーティングシステムで、組み込みオペレーティングシステムとして優れた性能を発揮するようカスタマイズされた、Android、Maemo、BusyBox、Yocto / Open Embedded、Buildroot、Mobilinuxを含むさまざまなLinuxバージョンが存在しています。

Dockerと組み込みLinux

Dockerは、LinuxやWindowsといったオペレーティングシステムに内蔵された仮想化機能を利用するソフトウェアコンテナ化テクノロジーで、ソフトウェアパッケージの作成に対応します。こうしたソフトウエアパッケージは、アプリケーション、システムサービス、ファイルシステム、デバイスサービスというソフトウェアのフルスタックをまとめて、分離された独自の仮想化環境で動作するようにします。Dockerコンテナには、従来型の仮想化テクノロジーよりも非常に軽量で、Dockerコンテナをほかの既存のDockerコンテナから構築したり既存のコンテナを拡張したりすることが可能で、ソフトウェア導入先のハードウェアが何であってもDockerコンテナ内のソフトウェアパッケージが同じ動作をする保証があるなど、多数の利点があります。

Container

Dockerの初リリース以降、過去8年の間にDockerの採用と利用は飛躍的に拡大しており、医療デバイスのソフトウェア分野などでも利用されています。RNDでは過去2~3年の間、複数の顧客のプロジェクトでDockerを採用してきました。

テクノロジーの自然な進化と集中化により、今ではDocker基盤のサポートを含んだ組み込みLinuxバージョンが新しく登場しています。これにはFoundries.ioのLinux microPlatformやToradexのTorizonCore、balenaのbalenaOSなどがあります。こうした製品ではLinuxディストリビューションが提供されるため、組み込みソフトウェア開発者はカスタマイズされたLinuxイメージを構築する必要性から解放され、その代わりにコンテナ内で稼働するアプリケーションの開発に集中することができます。次の図で示すように、複数のコンテナを作成することもでき、必要であれば、ファイル共有、TCPやHTTPなどのよく知られるチャネルを通じたコンテナ同士の通信も可能です。

プロジェクトのアーキテクチャー

RNDは最近、TorizonCore組み込みLinuxディストリビューションで稼働するDockerコンテナを利用して、2つの異なる医療デバイス向けソフトウェアシステムを提供しました。ハンドヘルド型PCR検査デバイスとデスクトップ型の血液検査デバイスです。これらのデバイスは双方とも携帯可能で、充電池の電力で8時間以上動作します。

Handheld PCR Testing Device, Conservation X Labs

ハンドヘルド型PCR検査デバイス、Conservation X Labs

このアーキテクチャーのコンテナは次のとおりです。

Software Architecture
2つのプロジェクト(PCR検査デバイス、デスクトップ血液検査デバイス)に使用されたソフトウェアアーキテクチャーは類似しており、詳細は上記のとおりです。

UI / Business Logic
これは、C#と.Net Coreで書かれたウェブサーバーです。実行ワークフロー管理、結果ディスプレイ、QC実行管理、ユーザー / アカウント管理、監査トレイル、およびレポート機能などの機能を含みます。UIはReact、AngularまたはRazorで書かれ、Kiosk Browserコンテナでレンダリングされます。

Results Calculation
C#またはPythonで書かれたこのコンテナは、分析試料に特化した結果の計算ロジックを隔離したもので、UI / ビジネスロジックのコンテナに呼び出されます。

Weston
Toradexが提供したこのコンテナは、Kiosk Browserコンテナなどが生成するディスプレイウィンドウの起動を調整するウィンドウマネージャーです。

Kiosk Browser
Toradexが提供したこのコンテナは、UI / ビジネスロジックコンテナが提供するウェブサーバーに接続するHTMLウェブブラウザーです。

Hardware Controller
C#や.Net Coreで書かれたこのコンテナは、ハードウェアサービスを提供し、ハードウェア制御のため、Linuxカーネルやカスタムデバイスドライバーとのやり取りを行います。UI / ビジネスロジックコンテナには、このコンテナと通信するためのコマンド / レスポンスのインターフェースがあります。

上記で説明したようなソフトウェアアーキテクチャーを利用する利点は次のように多数あります。

  1. 低コストのオープンソース言語、フレームワークとオペレーティングシステムを使用することで、実行時の使用料なしで開発と導入が可能です。
  2. C#といったよく知られる高水準の言語を利用することで、開発者はアプリケーションロジックを書くことに集中でき、組織は、C#を知る多くの人材を開発者として使うことができます。
  3. ソフトウェアを異なるコンテナにモジュール型に分離することで、アプリケーションのさまざまな部分の独立した開発が可能となり、各コンポーネント / コンテナごと明確に定義された一連の役割に集中できます。
  4. コンテナ間のインターフェースが明確に定義されるため、当然、シミュレーションに容易に対応できます。例えば、ハードウェアコントローラーのコンテナを置き換えてハードウェア動作をシミュレートすることが可能で、ハードウェア開発と並行してほかのコンテナの開発を進めることができます。
  5. 2つの理由からクロスプラットフォームのサポートも容易になります。.Net Coreの利用により、Dockerコンテナの外で、LinuxまたはWindowsでコードを書いて検証することができます。さらに、Dockerコンテナ内への導入はオペレーティングシステムに特化されていますが、Dockerコンテナ自体はLinuxとWindowsを含むさまざまなオペレーティングシステムでホストおよび検証が可能です
お客様からの感想

「当社のハンドヘルド医療デバイス向けにRNDが構築したソフトウェアアーキテクチャーは、開発作業に高い柔軟性をもたらしました。厳しい要件を持つユーザーインターフェースを迅速に導入することに成功し、さらにこのアーキテクチャーによってUIの主要な機能を迅速に複製して変更することができました。開発とユーザー検証の全過程を通じて新しい機能の実装が可能となりました。また、このソフトウェアの形式のおかげで、まずはデスクトップを使って更新を検証することができました。ハードウェアを開発中の段階や完全な装置が足りないか存在しない段階においてもキャリアボードを使って検証することができたのです。この優れたアーキテクチャーとRNDの優秀で機敏なプロジェクトマネジメントのおかげで、不可能と思われるほどの効率で、組み込みソフトウェアを要件から現実のものにすることができました。」

Hal Holmes博士
Thylacine BioSciences、
Conservation X Labs、
首席エンジニア
最後に

RNDは、DockerとTorizonCore Linuxディストリビューションを利用することで得られる安定性と完成度に満足しています。Toradexは、さらに多数の事前構築されたコンテナとLinuxカーネルイメージを提供しています。組み込みプロジェクト向けにYoctoまたは類似のツールを使ってカスタマイズされたLinuxディストリビューションを構築するのに必要な時間は、これらのツールと構築用ブロックによって大幅に短縮されます。RNDには、C#やウェブユーザーインターフェースの開発に精通した開発者が多数います。これらのツールを利用して組み込みLinuxシステム向けのソフトウェアを作成できることは、RNDがこうしたプロジェクトを担当する人員をいつでも確保できることを意味しています。


記者:
Brad Graves
, Principal Project Manager, RND Group, Inc.
Contributor:
Dr. Hal Holmes
, Chief Engineer, Conservation X Labs, Thylacine BioSciences

コメントを投稿

Please login to leave a comment!
Have a Question?