PR
松岡正人(まつおか まさと)

 マイクロソフト モバイル&エンベデッドデバイス本部エグゼクティブプロダクトマネージャ。

 組み込み開発がこの数年の間に大きく変化して来ていることについては,前回少し述べましたが,全体的な傾向についてあらためておさらいしてみましょう。

  • 求められるUI(ユーザー・インタフェース)やグラフィックスの高度化
  • データ処理の必然性によるデータベース利用の拡大
  • インターネットや業務ネットワークへの接続
  • アプリケーションの多機能化,複雑化と平行処理

 これらを皆さんの身の回りにある家電製品で観察してみましょう。例えば,テレビ。かつてブラウン管が主流で,お茶の間の主役であり,かつ邪魔者でもあった四角い箱は,今では100インチもの大きさの薄い板状の液晶やプラズマ・テレビが主流です。製品によっては,1T(テラ)バイトものハードディスクを装備していて,番組の録画や再生を行うことができます。これらはハードウエア上の違いですが,ソフトウエアにも大きな変化があります。簡単な比較表にしてみました。

表1●旧来のテレビと今どきのテレビとの違い
旧来のテレビ 今どきのテレビ
表示装置 ブラウン管 液晶/プラズマディスプレイ
放送方式 アナログ デジタル(いわゆる地デジ*1
録画機能 ない 機種により
UI テキストベースの設定画面 GUIによる設定画面
データ処理 ない 地上デジタル放送関連ARIB規格*2
に基づくデータ処理など
ネットワーク接続 ない 機種により

 表1の赤字部分は,組み込みソフトウエアに影響がある変化です。いままではハードウエアだけで処理できたものが,デジタル放送では受信した番組の映像のみならず,双方向で様々な情報をやり取りするために,定められた規格に則って動作するアプリケーションが必要になっています。例えば,サッカーの試合を観ながら各チームの選手の今シーズンのデータを見たり,視聴者参加型の番組で,お茶の間から投票したり,デジタル化したことで多様なサービスをテレビ番組といっしょに提供できるようになったからです。

 かつてほとんどソフトウエアを必要としていなかったテレビのような製品も,今ではかなりの規模のソフトウエアを必要としているわけです。ここで注目していただきたいのは,表1にあるように,GUIデザインのようなものや,XMLによるデータの送受信の仕組みといったネットワーク接続を前提とした組み込みアプリケーションの開発には,ITシステムやネットワーク機器の開発で用いられて来たノウハウや技術が必要だということです。

 テレビが提供する,高精細な画像や深みのある色彩といった目で見てわかるものは,まさにテレビ職人の世界と言えるでしょう。一方で,放送方式の変化によって,新しい技術の習得,またはその新しい技術を習得済みの開発者が必要とされているのです。極論すれば,デジタル化によって,ITエンジニアのノウハウが必要になっているとも言えるでしょう。

 また,放送を受信し,映像を再生しながら,DRMなどの技術を用いて暗号化して,ハードディスクなどに録画するといった具合に,同時に複数の処理を行うシステムを効率良く開発するには,OSを使うのが効果的で便利です。そのため,組み込みOSは,ほとんどのデジタル・テレビに搭載されています。

図1●デジタル・テレビでは,一度に複数の処理を行わなければならない
図1●デジタル・テレビでは,一度に複数の処理を行わなければならない

 OSを使うと,なぜこれらを扱いやすくなるのか。パソコンで日々仕事をしている状態を思い出していただければ,わかりやすいと思います。

図2●パソコンでのアプリケーションの並列動作
図2●パソコンでのアプリケーションの並列動作

 パソコンでは,複数のアプリケーションを動作させることができ,それらがメモリーやネットワークなどにアクセスする場合,その管理はOSが行います。したがって,アプリケーションの開発者は,ほかのアプリケーションの振る舞いを気にすることなく開発できます。OSを使わない場合は,アプリケーション間でのこれらの調整を開発者が考慮しながら実装する必要がありました。

 ただし,組み込みOSによっては,ネットワークや各種ハードウエアへのアクセスを制御するデバイス・ドライバやミドルウエア(プロトコル・スタック,ファイル・システムなど)が用意されていないため,個別に調達しなければならない場合もあります。

 OSを必要とする組み込み開発が増えていることは,ITエンジニアにとっては,組み込み開発に携わるうえで,自分の知識や経験を生かしやすくなります。同時に,組み込み開発の体制も変わっています。ハードウエアおよびプラットフォーム(OSやデバイス・ドライバなどを含むアプリケーションの実行可能な環境)を開発する典型的な組み込み開発の能力が要求される部分と,ITの世界で使われてきた技術を生かして複雑で高度なアプリケーションを開発する部分と,大きく二つの役割が必要となります。

 おそらく組み込み開発における大きな課題の一つは,IT開発者を,またはIT開発者のノウハウをいかに効果的に取り込むかということでしょう。冒頭で述べたいくつかの変化に対応するために,解決しなければならない大きな課題なのです。

 次回(最終回)は,これからの組み込み開発の姿をいくつかの事例を交えながら予想してみたいと思います。