FREENANCE Ad

IoTソフトウェア開発における7つの課題。決まらない"標準規格"

FREENANCE Ad
ENGINEER

モノのインターネット(IoT)が産業やビジネスの手法、ソフトウェア開発を一変させる」といった話は、もはや多くの人が聞き飽きたことでしょう。「IoTに関するあらゆる市場予測はどの産業でも高い期待を示ている」「投資をすれば高いリターンが返ってくる」「消費者はより便利に生活でき、ビジネスはお正月休み中のお腹まわりよりも速く成長する」―――。こんなことばかりが言われ続けています。

IoTへの期待が高まる一方で、忘れられていることがあります。最近のIoTソフトウェア開発には「隠れた注意点」が潜んでいるということです。

この記事では、IoTプロジェクトのソフトウェア開発における7つの課題を解説していきます。

IoTソフトウェア開発における7つの課題

IoT

IoT需要の高まりを受け、Iot関連の開発競争には血を見る勢いがあります。熾烈な競争にくわえ、IoTの標準規格がまだ整備されていないことから、プログラマーたちは常に新たな手法や最新のプロトコルを探し求めています。IoTソフトウェアが抱える問題一つひとつに丁寧な解決策を講じなければ、開発を効率的に進めることはできないでしょう。

では、IoTソフトウェア開発における7つの課題をそれぞれ見ていきましょう。

1. オペレーティングシステムの検討

IoTアプリケーションの開発を始める前に、いくつかの技術的要因を慎重に検討する必要があります。

まずはアプリケーションを実行するIoTデバイスを検討しましょう。従来のデスクトップコンピューターと違い、IoTデバイスは遥かにパワーが低く、比較的小さなメモリ容量しかありません。つまり、開発者はそれに合ったオペレーティングシステム(OS)を選択することが求められるのです。デバイスの「能力」と「機能性」、その両方のバランスを取る必要があるでしょう。

IoT開発者への最新調査によると、IoTのOSとして最も選ばれているのはLinuxです。

2. ゲートウェイの選択

IoTゲートウェイは、すべての要素を繋ぐ「カギ」となるものです。Bluetooth、Wi-Fi、シリアルポート、Zigbee……デバイスによって接続プロトコルはさまざまで、エナジープロファイルも異なります。ゲートウェイは接続されたデバイス、IoTセンサー、クラウドの間に位置しており、IoTエコシステム全体がそれに依存します。

Dell Technologies、Intel、Nexcomや他の大手企業が提供するモダンなインテリジェントゲートウェイには、開発者の作業を楽にする共通の必須機能が備わっています。あなたのIoTアプリケーションの要件を満たすものを正しく選択しましょう。

さらに、インターフェイス、ネットワーク仕様、出力定格、メモリ容量、開発環境や他のパラメーターも考慮する必要があります。上述のインテリジェントゲートウェイを使えば、安全な、内密で、信用できるデバイス間のコミュニケーションはデフォルトで保証されています。

3. 適切なIoTプラットフォームの決定

普通の神経をした開発者であれば、「ソフトウェアをゼロから開発したい」と思う人はいません。実存するものをわざわざ開発し直すのは時間の無駄です。

そこで役立つのが、さまざまなツールを使って物理的なオブジェクトをオンライン化できるIoTプラットフォームです。プラットフォーム市場は大きく、さまざまなサービスが存在します。あなたのアプリケーションに適したものを選びましょう。

プラットフォームを選ぶポイントは以下のとおりです。

  • 接続性
  • 安全性
  • 拡張性
  • 統合しやすさ
  • 有用性

しかし開発者が注意したいのは、スマートファクトリーに最適なプラットフォームが、スマートカーやエネルギー消費ソリューションにも適しているとは限らないということです。ある企業は、現実世界にテストベッドを設け、製造プロセスのデータを用いて適切なプラットフォームを決定するという方法をとっています。

4. クドいようでも、セキュリティ

ティム・キャドレックが言ったIoTジョークを聞いたことがありますか?

「IoTのSはセキュリティのSだ」

お分かりのとおり、IoTに「S」の文字はありません。セキュリティはそれほどIoTにとって重要だという意味のジョークです。

IoT技術は多数の接続されたデバイスを含むことから、ハッカーにとっては脆弱性につけ込む「美味しいターゲット」になります。さらにネットワークを構成するすべてのデバイスが、ハッカーの侵入に対し十分にテストされているわけではありません。たった一つの脆弱性が、システム全体を危険に晒すこともあります。

ITリサーチ企業のガートナーは、2020年までに発生するハッキング攻撃のうち25%がIoTに関連すると発表しています。にもかかわらず、ハッキングからIoTシステムを保護するのに充てがわれている予算は、ITセキュリティ全体の予算のわずか10%というから驚きです。

サイバー攻撃の件数は今後増え続け、IoTプロジェクトに従事する開発者にとってセキュリティ対策は大きな問題として立ちはだかります。保護のレベルは、IoTプロジェクトの構想段階でセキュリティ分野にいくら投資するかに大きく左右されます。

攻撃や不正アクセスの可能性を減らすには、以下の対策が必要です。

  • SSL/TLS暗号化技術
  • 隔離したVLA
  • 隔離した企業VPN
  • モダンな最新アンチウイルス対策
  • エンドユーザー、マシーン対マシーンの認証
  • Web開発・デザイン向けに慎重に選ばれたフレームワーク

従来の保護・制御方法を用いたセキュリティ構成のままの場合、直ちに最新式にアップデートし、今日のIoTにおける新たな課題に正面から向き合う必要があります。

私は忠告しましたよ。実行に移すかどうかはあなた次第です。

5. 品質の全体管理

IoTのソフトウェアが抱えるもうひとつの弱点が品質保証です。IoTデバイスは倉庫の温度管理だけでなく、インスリンポンプの制御といった命に関わる用途にも使われます。品質テストは徹底的に行わなければなりません。どんな小さな問題でも文字どおり命取りになる恐れがあります。

プロジェクトの序盤から、ソフトウェア開発プロセスにセキュリティテストをくわえましょう。プロセスを最適化するために、毎回のリリースにテストを必要としないモジュールを採用します。すでにセキュリティテストが行われており、今後数回のリリースで変わらないプロトコルを見つけましょう。

セキュリティテストにくわえ、有用性や互換性も保証する必要があります。プロジェクトのリリース後に、技術サポートを提供するのも良いでしょう。

6. ユーザーが使いやすいデザイン

消費者向けIoTアプリケーションはデザイン重視で、可能な限りシンプルでなければなりません。スマートウォッチのアップデートに、マニュアルを熟読したい人などいません(マニュアル著者には申し訳ないですが)。

産業分野のIoTスタートアップ企業にとっても、ユーザーが使いやすいデザインを提供するのは大切です。産業分野のIoTデバイスは、データの可視化や迅速な意思決定が重要視されるためです。IoTのワークフローはデバイス、モノ、人それぞれがお互いに繋がる構図であるため、IoT開発者とデザイナーが密に協力することが欠かせません。

以下の点を確実に実行しましょう。

  • 安全性を確保しつつ、簡単な認証方法
  • デバイスとシステム間のシームレスな移行
  • ユーザーエクスペリエンスを個人化し、プロダクトを行動パターンに対応させる
  • IoTシステム全体向けの統一された環境

7. クロスプラットフォーム展開

IoTエコシステムは、さまざまな構成、プロトコル、オペレーティングシステムを持ったデバイスを含みます。しかしシステムは、プラットフォームに関わらずシームレスに動作しなければなりません。

インターネット技術特別調査委員会(IETF)、米国電気電子学会(IEEE)やその他の名高い組織は、クロスプラットフォーム展開に関するオープン標準と構成モデルを策定しました。これは常に最新版にアップデートされ続けています。

IoTサービスはこれらのベストプラクティスを取り入れて、相互に接続したコミュニケーションを確実にする必要があるでしょう。

まとめ

ここ何年かでIoT普及率は高まりましたが、IoTのソフトウェア開発には未解決の課題がまだ多くあります。今日においてIoTを開発する企業は、今まで考慮してこなかった詳細な部分に注意する必要があるでしょう。

IoTプロジェクトに一般的に使用される標準規格を取り入れることで、開発における課題は部分的に解決できます。特にIoTアプリケーションのセキュリティやクロスプラットフォーム展開の改善が可能でしょう。

しかしIoTはまだまだ新しい分野であり、そもそも明確な標準規格が決まっていないのが現実です。IoT開発コミュニティにおいて規格が決定されるには、しばらく時間がかかるでしょう。

IoTへの期待が高まりメリットばかりが注目される中で、IoTの課題は放置され続けています。この記事でご紹介した課題の意識し、今後のIoTソフトウェア開発にぜひ活かしてください。

(原文:ELIFTECH 翻訳:Yui Tamura)

 

SHARE

  • 広告主募集
  • ライター・編集者募集
  • WorkshipSPACE
週2日20万円以上のお仕事多数
Workship