【導入事例アリ】組込みミドルウェアとは?が丸ごと分かる

組込みミドルウェアとは

HDDイメージ画像

「ミドルウェア」とは?

ミドルウェアとは、汎用的な機能を担うOSと特定の動作・処理に特化したアプリケーションの間(ミドル)に立ち、快適なシステム動作を補助する役割を持つソフトウェアの一種です。

「組込みシステム」とは?

家電製品や事務機器などにおいて、特定の処理を実行するプログラムが「組込みシステム」です。
以前は限られたメモリ容量やCPU速度で開発される傾向にありましたが、スマートフォンの出現を機に、タッチパネルや認証機能などネットワーク環境に対応する組込みシステムが求められるようになりました。

ミドルウェアと組込みシステム

家電をはじめとした組込みシステムが用いられる製品は、インターネットに接続するなど多機能化しています。その処理を行うために、OSとアプリケーションの間で処理を適切に制御するミドルウェアが欠かせない存在となりました。

組込みシステムに導入される代表的なミドルウェアには次のようなものがあり、開発目的に応じて適切なミドルウェアを使用できれば、開発工数や費用の削減が期待できます。

  • TCP/IPプロトコルスタック
  • FileSystem
  • 暗号/認証アルゴリズム
  • GUI
  • 画像処理、音声処理
  • メモリ操作、文字列操作

ただし、組込みシステムはPCのように汎用的ではありません。期待した動作に合致したミドルウェアやアプリケーションを見つけ出すのは簡単ではなく、ハードウェアとソフトウェアの親和性を考えて自社開発する、あるいは外部から入手する必要があります。

ミドルウェアの選び方

ミドルウェアを実装する場合、外部から入手するか、自力で開発する方法があります。
どちらを選ぶかは持っているスキルや時間によりますが、実運用に耐えられる品質を担保するためのコスト、開発期間を考えると、外部から入手するのが現実的。
外部から入手する場合、組み込みシステムを効果的に動作させるためには、最適なミドルウェアを選ぶ必要があります。

ミドルウェアは、以下のポイントを意識して選びましょう。

カスタマイズの度合い

「どこまでカスタマイズできるか」は重要な要素。ミドルウェアは幅広い用途に向けて汎用的に設計されているため、組み込むシステムの要求仕様を満たすようにカスタマイズする必要があります。
組み込んでから仕様が変更できない状態にならないように、カスタマイズできる範囲を把握しておきましょう。

どの範囲までライセンスが使えるか

無償ミドルウェアの場合、外部からの求めに応じてソースコードを開示する義務があったり、ライセンス条項自体を記載する必要があったりします。
有償ミドルウエアの場合はそういったことは発生しませんが、どこまでそのソースコードを流用して良いかが条件として決められています。ライセンスが用途に合致しているか確認しておきましょう。

サポート体制

実際に組み込んでみて上手く動作しなかったときに、誰がどの程度までサポートしてくれるかも、ミドルウェアを選ぶ際の重要なポイントです。
どんなに動作確認しても意図した挙動をしなかったり、市場に出たときに問題が発生したりする可能性はあります。
ミドルウェアを正常に動作させるために、サポート体制が充実しているかもよく確認しておきましょう。

ミドルウェアのメリット

ミドルウェアを導入した場合、どのような効果が期待できるのでしょうか。3つのメリットを紹介します。

特定の処理で高度な動作ができる

OSでは難しい複雑な処理をミドルウェアが補い、アプリケーション特有の高度な動作を実現します。複数の高度な処理をパッケージ化することで、IoT化で求められる多機能性にも応えられるようになりました。

共通する機能をパッケージ化して開発コストを削減する

OSに搭載するほどでもなく、アプリケーションに備えるほどの限定的な機能でもないという場合には、その機能をパッケージ化したミドルウェアを開発・導入することでコスト削減が可能。こういったミドルウェアがないと都度開発することになり、金銭的なコストが増えるだけでなく時間もかかってしまいます。

開発スピード・開発コストの削減にも寄与

実は組込み開発はミドルウェアを用いずとも進めることができますが、その場合はOSやハードウェアの種類に合わせたアプリケーション開発が必要となり、これには一定以上の期間を要します。
さまざまな種類のOSやハードウェアに対応したミドルウェアなら、アプリケーションに合わせた働きで余計なリソースを削減できます。結果、開発の効率化と安定した動作が可能となり、短期開発によって開発費を抑えることもできるのです。

ミドルウェアのデメリット

ミドルウェア導入の際のデメリットは、「ライセンス費用」と「保守費用」。ミドルウェアは便利な分、ライセンス費用が高価でメーカーごとに金額が異なります。保守費用については固定費として通年発生し、金額が膨らみやすいので予算圧迫の原因にも。
余計なコストを避けるためにも、導入後の保守に必要な費用をあらかじめ計算しておきましょう。中にはランタイムフリー・無償のサポート期間を設けているミドルウェアもありますので、コストを抑えたい場合は候補に加えるとよいでしょう。

組込みミドルウェアの導入事例

組込みミドルウェアの導入事例を紹介します。

IoT家電製品

家電製品は長い年月に渡り使用されるため、ユーザーにストレスを感じさせない使いやすさ、いわゆるユーザビリティーが重要です。近年の家電はIoT化によってユーザーのニーズに柔軟に対応できるようになり、その高いユーザビリティーが商品価値につながっています。
例えば、音声応答を提供する音声ミドルウェアは家電の使いやすさを向上させ、多くの商品に採用されている一例です。

住宅設備機器

さまざまな住宅設備にも組込みシステムが使われています。冷暖房や給湯機などを例に挙げると、以前は「空気を暖める」「水を温める」といった特定の機能だけを提供していましたが、現在では温度設定を音声や画面表示で伝えるのはもちろん、危険を事前に察知して知らせるといった快適かつ安全に使用できるユーザーインターフェースが求められており、そのためのミドルウェアも開発・導入されています。

ライブラリやフレームワークとの違い

ライブラリやフレームワークとミドルウェアの違いは、独立した動作ができるかによって判断されます。
システム開発で活躍するライブラリ・フレームワーク・ミドルウェアは、開発効率を高めるという役割は同じ。しかし、ライブラリやフレームワークはアプリ開発のベースになるプログラムの集合体のため、単体では動作できない点に大きな違いがあります。

ライブラリ

よく使われる機能を再利用しやすくまとめたもの。アプリケーションプログラムからライブラリの機能を呼び出して使用する。

フレームワーク

決まった枠組みに沿って冗長的な工程を削減して効率化を図るためのプログラムコード。

ミドルウェア

OSとアプリケーションの間に立ち、サポートするソフトウェア。

種類豊富で明朗価格!注目の組込みミドルウェア

組込みミドルウェア「Cente」とは

「Cente」は、組込み開発の幅広い知識と経験を備えるエンジニアを有するITbookテクノロジー株式会社とDMG MORI Digital株式会社が開発から製造・販売する組込み開発ブランド。ハードウェアからミドルウェア、アプリケーションから幅広いコンサルティングや技術サポートまで、システム開発に必要なあらゆる「技術」を提供しています。

「Cente」ミドルウェアシリーズの特徴

組込み開発に20年以上関わり、1000プロジェクト・3000ライセンシーの実績を誇るCenteには、以下のような特徴があります。

ランタイムフリーで導入しやすい

一般的にミドルウェアはソフトウェアライセンス形態のように製造台数で課金されるタイプや試作開発だけを許可するタイプが提供されていますが、Centeミドルウェアはプロジェクトライセンスが基本形態となっています。
プロジェクトライセンスとは、顧客の製品開発や研究開発そのものに対してラインセンスを行う形態。そのため、最終的に完成した製品にはロイヤリティが一切発生しません。

扱いやすく透明性の高いツールを提供する

Centeミドルウェアは、顧客が開発するプログラムとミドルウェアの管理を簡略化するため、すべてのソースコードをC言語で統一しています。
ソースコードによる管理により透明性が生まれ、開発におけるブラックボックス化の心配がありません。

Centeミドルウェアパッケージシリーズ一覧

FATファイルシステムシリーズ

FATファイルシステムシリーズ

USBドライバシリーズ

USBドライバシリーズ

TCP/IPネットワークシリーズ

TCP/IPネットワークシリーズ

ミドルウェアセキュリティモジュール

ミドルウェアセキュリティモジュール

アプリケーションパッケージ

アプリケーションパッケージ

ミドルウェア共通モジュール

ミドルウェア共通モジュール

「Cente」ミドルウェアの導入事例

Centeミドルウェアシリーズの導入事例を紹介します。

シリアルインタフェース以外で組込み機器を設定したい

上記画像のようにシリアルインターフェース(RS232C)でPC(独自アプリケーション)と接続して組込み機器を設定していたところ、シリアルインターフェースを搭載したPCが入手困難になり、別の手法で組込みシステムを設定する必要がありました。

導入例A-1

これまで使用していたシリアルインタフェース(RS232C)の代わりに、COMポート(USB)を搭載した事例です。

シリアルインタフェース以外で組込み機器を設定したい

組込み機器のマイコンをUSBコントローラ内蔵のものに変更し、Cente USB Device COMを搭載。
PCと組込み機器をCOMポート(USB)で接続すると、既存PCの独自アプリケーションから組込み機器の設定ができるようになりました。

導入例A-2

続いて、組込み機器のマイコンをLANコントローラ内蔵のものに変更した事例です。
Cente TCP/IPv4、 Cente HTTPdを搭載した組込み機器内に、Webサーバーを立ち上げました。
LAN接続したPCのWebブラウザから組込み機器のWebサーバーにアクセスすることで、組込み機器の設定が可能に。Webブラウザを使用することでPCの独自アプリケーションをメンテナンスする必要もなくなり、スマートフォンやタブレットからでも設定できるようになりました。

シリアルインタフェース以外で組込み機器を設定したい

導入例A-3

導入例A-2ではEthernet(LAN)を使用しましたが、組込み機器に搭載したUSBを経由してLANで通信すると、導入例A-2と同様にWebブラウザを使った操作ができます。

次の画像のように組込み機器のマイコンをUSBコントローラ搭載のマイコンに変更し、Cente USB Device RNDISとCente TCP/IPv4、Cente HTTPdを搭載しました。

シリアルインタフェース以外で組込み機器を設定したい

PCと組込み機器をUSBで接続すると、PCはUSBを使ったLANが追加されたと認識するため、Webブラウザ経由で組込み機器のWebサーバーにアクセスして設定できるようになります。
高価なEthernet(LAN)(※導入例A-2)を使用せずにUSB接続でWebブラウザを利用すると、物理的なコストを抑えられ、さらなるコスト削減が可能です。

「Cente」ミドルウェアに関するQ&A

ライセンスについて

Centeミドルウェアを契約するために条件はありますか?
A:「開発場所」と「CPUコア」の範囲の特定が必要です。
Q:CPUの許諾範囲を外すことはできますか?
A:可能です。その際、お客様のご希望条件から要望に合わせたライセンス提案もできます。

サポートについて

商品のサポート期間はどのようになっていますか?
A:契約時に、無償サポート期間が半年間ついています。
Q:無償サポート期間後はどうなりますか?
A:期間終了後は、ライセンス価格の20%で1年間の契約延長ができます。
Q:再契約はできますか?
A:ライセンス定価の40%で再契約が可能です。

「Cente」ミドルウェア導入の流れ

開発用途に適したCPU選び

まずは開発用途に合わせたCPU選びからはじめます。ネットワーク通信であればLANコントローラが内蔵されたCPUを選び、USB接続が必要ならUSBコントローラが内蔵されたCPUを選ぶのが好ましいでしょう。
LANやUSBコントローラはCPUに外付けのものもあります。用途に適したCPUをお選びください。

RTOSの導入

日本では、uITRON4.0規格のRTOSがメジャーです。Centeでは「Cente RTOS」を販売しています。
お選びのCPUに対応したOSを選択してください。開発者やプロジェクトごとなどのライセンス形態があります。開発形態にふさわしいライセンスを選択してください。

クロスコンパイラを購入

CPUとOSが決まったら、クロスコンパイラを購入します。
GNU Compiler Collection(GCC)という無償のコンパイラや、CPUのアーキテクチャに最適化した有償コンパイラがあります。ご相談いただければ、CPUに合わせた信頼性・実績のあるコンパイラの紹介も可能です。

デバイスドライバを入手

デバイスドライバはCPUメーカーが無償公開しているほか、Centeのパッケージにも添付されています。検討していたデバイスの入手が難しい場合は、最適なドライバをCenteが有償で開発・提供することも可能です。

ソフトウェアをコンパイル

最後に、Centeミドルウェアにパッケージ化されたソースコードをコンパイル環境に追加。マイコン上でソフトウェアが正常に動作すれば完成です。


購入から半年間は、お問い合わせから原則24時間以内に専門のエンジニアが何回でも技術サポートいたします。
組込みミドルウェアの導入を検討されているなら、充実したサポート提供のCenteミドルウェアをぜひご一考ください。

ミドルウェアエンジニアの仕事

ミドルウェアエンジニアとは、OSとアプリケーションの間に立ち、両者を補助するミドルウェアを開発する仕事。具体的には設計から実装、運用などの開発に取り組みます。

ミドルウェアエンジニアの仕事例

ミドルウェアエンジニアは、ミドルウェアの設計や実装、テストなどを担当します。具体的には以下のような業務を行います。

  • 要件定義…システム開発の要件を確認・決定
  • 基本設計…どんなミドルウェアを使ってどんな機能を実装するかを決定
  • 詳細設計…基本設計を元にして、実装方法やパラメータの設定などを設計
  • 実装…設計を元に実装
  • テスト…設計通りに機能が動くか確認

Apache HTTP Server(Webサーバ)・Tomcat(APサーバ)・Oracle Database(DBMS)といったミドルウェアごとに異なる仕様を理解し、要件に沿って実装できるスキルが求められます。