前回に続き、組み込みシステムの分類をソフトウェア面から考察するとともに、現在の組み込みシステムのトレンドと今後の展望について述べる。
「意外と知らない組み込みシステムの分類方法」では、ハードウェア構成から見た組み込み(Embedded)システムは明確な区別が難しく、使用方法から判断するのが分かりやすいという話をした。では、ソフトウェアから見た場合、組み込みシステムをほかのシステムと明確に区別することはできるだろうか?
一言でいえば、ソフトウェア面から見ても、組み込みシステムを一般的なシステムと明確に分けることは難しい。一般的なシステムとほとんど変わらないことも珍しくない。なぜなのか? 具体的な例を挙げて説明しよう。
情報掲示板(電車のホームにある行き先および発車時刻を示す電光掲示板や、空港におけるフライトの発着案内など)で、Windowsのエラーメッセージが出ているのを見たことはないだろうか。中には、ブルースクリーンを表示するものもある。日常的に見掛ける機器やシステムにWindowsがそのまま搭載されているのは珍しくない。Microsoft Visual Basic(VB)などでプログラムが書き込まれているものもざらにある。
なぜ個別のプログラムを組むのではなく、PCレベルのものを使うのか? その一番の要因は開発コストにある。ハードウェアとインフラは最もコモディティー化しているものを使うのがコスト削減につながるためだ。
最近では、Javaが共通言語の1つになってきたため多少動向が変わってきているが、ほんの数年前まではコストを抑える1つの方法として、デスクトップアプリケーションをVBで記述するのが一般的だった。例えば、前述した電光掲示板の動作は、定期的に表示すべきデータを取得し、そのデータを画面出力するのみとなる。特に複雑な動作はないため、アプリケーション開発に掛かるコストさえ抑えればトータルコストも安くなる。そのため、「PC+Windows」の組み合わせで十分に機能を満たせる場合は、特定用途向けのプログラムをわざわざ組まずに済ませることになる。
もちろん、VBを使うためにはWindowsプラットフォームを使う必要があり、Windowsのライセンスの購入が必要だ。しかし、たとえWindowsのライセンスで3万~4万円のコストが掛かっても、開発期間を1週間短縮できるのなら、コスト全体としては多大な釣りが来る計算となる。一般的に量産効果が期待できないアプリケーションを作る場合、単価は多少上がっても許容される。むしろ開発コストや開発期間を抑える方が重要となる。
ただし、「PC+Windows」の組み合わせはPCを使う場合がメインである。これ以上のクラスのもの、例えばPCサーバクラスの通信機器などになると、性能に対する要求もクリティカルになってくるため、OSに関してもチューニングしやすいものが好まれる。結果、LinuxやUNIX、リアルタイムOS(RTOS)を使うケースが非常に多い。もっと上、つまりメインフレームクラスのシステムになると、そのハードウェアを提供するベンダーがOSやミドルウェアを同時に提供し、これを使う形になるのが一般的だ。
「PC+Linux」の組み合わせは、「PC+Windows」の組み合わせの次に多いと思われる。Windowsより数が少ないのは、Linuxでシステムを組むには相応の知識を持つエンジニアを継続的に確保していく必要があるためだ。やはり、高いスキルがなくても使いこなしやすいWindowsの方が一般的といえるだろう。
ではごく小規模なシステムはどうだろう。こちらは千差万別だ。携帯電話のように、ある程度の機能を搭載しているものにはOSがあり、OS上でアプリケーションソフトウェアが動く。しかし、小規模のものでWindowsが使われることはそれほど多くない。マイクロソフトは、組み込み向けRTOS「Windows Embedded CE」を提供しているが、このクラスになるとどのみちハードウェアはアプリケーションに合わせて作る(つまり、PCの流用はない)。そのため、結局はOSとアプリケーションを全部自分で用意することになるパターンが多い。しかも、OSを実装しない場合も少なくない。例えば、車のドアミラーの制御にはいちいちOSを入れる必要がない。
例に挙げたドアミラーの構成を見てみよう。運転席でミラーの制御ノブを操作すると、その操作結果はLIN(Local Interconnect Network)というバスを経由し、ドアミラー制御システムに「ワンクリック分、上に」「ワンクリック分、左に」などといったコマンドが届く。これをLINインタフェース(I/F)経由で取り込んだCPUは、フラッシュメモリに内蔵された「ワンクリック分上=X軸モーターを右回転2度分」のように指示を解釈し、それに相当するだけの駆動パルスをデジタル-アナログ(D/A)変換経由でX軸モーターに送る。これを受けてモーターは2度回転し、少し上を映すようになるという仕組みだ。
この程度のシステムの場合、OSを使うメリットはない。OSが役に立つのは以下のような場合だ。
単純なシステムでは、どちらのメリットも享受できない。むしろOSを動かすことで余分なCPUパワーやメモリが必要になり、OS自身のコストも掛かる。Linuxなど無償のOSでもメンテナンスコストが掛かるし、VxWorksなどの有償RTOSを使う場合はそのライセンス料も必要だ。従って、こうしたものにOSを搭載する、といった動きには今のところなっていない。
Copyright © ITmedia, Inc. All Rights Reserved.
DXの推進が叫ばれる中、その中核を担うソフトウェア開発の現場では、IT人材不足をはじめとする5つの課題が顕在化している。それらを解消し、ソフトウェアの品質を高める方法として注目されるのが、ソフトウェアテストの外注だ。
ソフトウェア開発ではテストを、開発エンジニアが自ら担当するシーンが散見される。ただ、開発者自身が自ら開発したものをテストすると、観点に偏りが生じてしまい検証品質が下がる。この問題の解決には第三者によるテストが重要だ。
ソフトウェアテストをアウトソースするに当たってはベンダー選びが重要だが、自社に合うテストベンダーをどう選べばよいか分からない、という声もよく聞かれる。そこで、失敗しないベンダー選定の基準を、チェックシート形式で解説する。
生産性向上が重要視される今、エンジニア組織の開発生産性を高めるために、どのような取り組みを進めればよいのか分からないという声も多い。そこで社内報CMSの開発・運用を手掛けるourlyなど、3社の事例からそのヒントを紹介する。
近年の製造業ではスマートファクトリー化やDXが進み、データ活用の重要性が高まっているが、人材・予算の限られた中堅・中小企業では全社的な展開は難しい。このような問題を解消できる専用ツールについて、導入事例を交えて紹介する。
いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは
遠隔のクライアント端末から、サーバにあるデスクトップ環境を利用できる仕組みである仮想デスクトップ(仮想PC画面)は便利だが、仕組みが複雑だ。仮想デスクトップの仕組みを基礎から確認しよう。
「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年5月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。
「ECプラットフォーム」売れ筋TOP10(2025年5月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。
「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年5月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...