IoTの開発現場に接すると、「プロトコル」という言葉をよく耳にすると思います。事業開発担当者は、このプロトコルを、どう理解したらよいでしょうか?プロトコルというのは、そもそも、IoT機器とIoTゲートウェイ、サーバーなど、コンピュータ同士のデータのやり取りの方法を厳格に定めた規格(規約)のことです(ちなみにIoTに使われるコンピュータに限った話ではありません)。

コンピュータはプログラムに従って動作する機械です。ですので、どのようなタイミングで、どのような情報を相手のコンピューターに伝達し、その情報によってどのような動作をするということを厳密に取り決めなければ、複数のコンピュータは協調して動けないのです。IoTでは、よく使われるプロトコルには、HTTPやMQTTなどがあります。

プロトコルには様々なものがあります。IoTシステムには、様々な形態があるので、その要件に応じて使い分けが必要になります。考慮すべき項目には、以下のようなものがあります。

1、軽量性 プログラム規模
2、消費電力、電池駆動であれば、駆動制限時間、
3、デバイスが固定位置なのか、常に移動なのか?
4、リアルタイム性 応答時間
5、データ到達性 パケットロス率
6、通信形態、1対1なのか、1対Nなのか?
7、トランザクションがどこから開始されるか
8、トランザクションの発生頻度
9、データサイズ
10、使用するIoTセンサーデバイス・ゲートウェイの数

エンジニアさんたちは、上記のような事を考慮してシステム開発をします。技術畑出身ではない事業開発担当者としても、特に、消費電力・デバイスが固定なのかどうか、使用するIoTセンサーデバイスの数など、サービス企画時に考慮する必要があります。

TCP/IPモデル

プロトコルを理解するには、まずは、TCP/IPモデルを理解する必要が有ります。

TCP/IPモデルとは、米国国防高等研究計画局(DARPA)が作ったデータ通信機能におけるモデルです。「通信機能をざっくりと定義したもの」で、事実上の世界標準です。(同じ位置づけで、OSI参照モデルというモノがあり、内容や言葉がよく似ていますが、別物と考えておいた方がよいでしょう)

階層 プロトコル
アプリケーション層 HTTP MQTT
トランスポート層 TCP/UDP
インターネット層 IP
ネットワークインターフェース層 Ethernet  IEEE802.11 等

実際にWebにアクセスした場合を例にして、具体的なプロトコル間のやり取りを説明してみましょう。

例えば、ブラウザに表示したいホームページのアドレスを入力すると、アドレスをサーバへ送信する為に、HTTPの規約にそって下位層のTCPを制御するプログラムに渡されます。TCP制御プログラムは、アプリケーション層から受け取ったデータに、TCPの規約に従った制御情報をヘッダとして加えたデータを作りIP制御プログラムに渡します。IP制御プログラムも受け取ったデータに、IPの規約に従った制御情報をヘッダとして加えたパケットを作り、Ethernet制御プログラムに渡します。最後に、IPパケットを受け取ったEthernet制御プログラムはEthernetの規約に従ったヘッダ情報を加えたデータを作成し、データを構成するビットパターンに応じた電気信号を、Ethernetケーブルを通じて相手のコンピュータに伝送します。

さて、受信側のコンピュータは、ケーブルから送られてきた電気信号を受信するとEthernet制御プログラムで伝送途中でデータが壊れていないかチェックします。正常であればヘッダ情報に応じた処理を行ない、IP制御プログラムにIPパケットを渡します。IP制御プログラムは渡されたIPパケットの中のIPヘッダの処理を行ない、TCP制御プログラムに渡します。同様に、TCP制御プログラムもTCPヘッダ情報の処理を行ない、HTTP サーバプログラムにデータを渡し、HTTPサーバプログラムは、HTTP規約に従った情報を判断し処理を行ないます。

TCP/IPの階層モデルでは、以上のような手順でプロトコル間の情報を受け渡しています。

IoT開発現場では、様々なメーカーのセンサーデバイスや、様々なベンダーのアプリケーションが接続されます。そこで、TCP/IPモデルいう、トランスポート層(=センサーデバイス・IoTゲートウェイ)までは、TCP・IP・Ethernet・IEEE802.11など、一般的なプロトコルを使い、アプリケーション層で、HTTPやIoTシステムで使いやすい軽量プロトコルのMQTTを使う事例が多いです。

※この記事は、プロトコル?な方の為にざっくりイメージを持ってもらう為に書きました。実際の技術畑の方々から見ると、突っ込みどころが多いかとは思いますが、その点はご容赦ください。

外部CTOサービス一覧

中小企業の経営層・事業開発担当者向けに、新規事業開発を行う上で必須の視点である ジョブ理論 講座と事業企画ブラッシュアップセッションを行い事業開発のスタートを後押し。さらに、事業開発を進める中で定期メンタリングを行い、事業開発の停滞を防ぎ、成長への加速支援を行います。
プロトタイプは機能面・外観面・文脈面、3の側面で検討。アイデアを事業提案まで進めるには、実際に動く試作を作り、外観を提示し、顧客の課題解決のためのサービスイメージを企画書に形にする必要が有ります。製品開発での最初に動くものを素早く作るラピッドプロトタイピングで、貴社の新規事業の立ち上げを支援します。
プロトタイプで顧客課題を検証委した後は、問題解決の為に使われる”必要最小限の機能を有したプロダクト(MVP)”を製作し、ユーザーテスト・フィールドでの概念検証(PoC)を行い、ユーザーからのフィードバックを得ながら、量産時の機能の取捨選択をしていく必要が有ります。
電子回路 設計 開発 IoT■デバイスの少量 量産サービス 
小ロットでの量産の為の見積・開発のご相談にやってこられるお客様が圧倒的多数を的占めます。IoTなどのハードウェア開発で、少量で量産を始め、その後、大きく事業を育てたいと考える方々に、外部CTOは、10台~1000台/LoTの少量・小規模量産で、開発リスクを削減します。
顧客課題を解決できそうな有望な製品・サービス・ソリューションアイデアだとしても、そもそも、それは「技術的に実現可能か?」という事を、企画・構想段階で検討・検証していく事は必須です。外部CTOは、技術・開発パートナーのネットワークを通じ技術調査・原理試作を行い事業企画の実現可否判断をサポートします。

外部CTO 受託開発 ものづくり ネットワーク