IoTをやるなら「インターネット」とか「センサーとかを知らないと

IoTのプログラムを組むとき、Raspberry-Piがあればいい、C言語でプログラムが組めればいい、ということだけではない。IoTというのは「Internet of Things」の略だ。ということは、インターネットで通信ができるプログラムを組める必要がある。また、センサーのことについての知識も必要だ。その入口はこの本でわかる。ということで、4冊めのKindle-KDPでの出版です。日本の技術者をIoTで賢くしたい。

 


 

IoTというけれども

年明けから、IoTの話題がどこでもすごいのだが、実際のところ、ぼくらの使っているPCのキーボードやマウスにも小さなコンピュータが入っていて、キーボードやマウスの動きをPCにデータ通信で伝え、ぼくらはPCを使えている。つまり、キーボードやマウスの中のコンピュータが本体のPCのコンピュータと「通信」をしている。当然、この通信データをインターネット経由で送れば、ブラジルで叩いたキーボードのデータを東京のPCが受け取るのは簡単だ。つまりIoTの「原型」がそこにある。これはもう30年くらい前からそう作りこまれている。当然、スマートフォンのタッチスクリーンの画面なども同じようなものだ。

【IoTは既に確立した技術。最先端ではない】
要するにIoTというのは、既に30年前には確立している技術の寄せ集めである。技術で見ると、新しいものでは決してない。簡単に言うと、IoTなんてのはコンピュータでは当たり前の技術であって、既にその技術がなければぼくらはマウスとキーボードでコンピュータさえ使えなかったのだ。

【LPWA/LoRa】
最近はLPWAなどの微弱電波による近距離データ通信の技術も表に出てきたが、これらの通信規格は既に2013年に制定されており、やっと一昨年ぐらいから商品がいっぱい出てきた。既に秋葉原に行けば、LPWAの通信モジュールは4千円くらいで売っていて、とても使いやすいモジュールとなっている。これらの国産モジュールは、日本のガス会社などのスマートメーターなどに大量に使われており、そのため、安価かつ安定的に供給されているのだ。ROHMなどの日本メーカーでも、LPWAのモジュールを作って、以前から売っている。これらのLPWAの規格では、最近はLoRa、SIGFOXだけではなく、数多くの名前をよく聞くが、だいたい世界で40くらいの規格がある。個人的には、そろそろ、あまりにいっぱいあって飽きて来たなぁ、と思っていたところで、なにやら盛り上がっているのかなぁ?という感じだが。

【劇的な廉価化と性能向上】
結論から言うと、IoTはこれまでの技術が、インターネットの登場によって、安価で高速、大容量、そして遠隔地での通信も非常に安くできるようになったので、一般に普及をはじめた、ということだし、LPWAについても、やっと世間が認知し始めたもので、実際には何年も前から動いているものではある。と、そういうことだ。ちなみに、ドローンも要するにラジコンであって、2008年には農業用のラジコンヘリをYAMAHAが発売しているので、現在のドローンが出たときも驚きはなかったし、人工知能もこれまでの技術が、CPUの劇的な価格低下と性能向上によって、一般にも降りてきた、という程度のことだ。常に最先端で仕事をしていたら、みんな「古いもの」「今頃出てきたの?なんで?」なんだな。

そういう最先端の場にいなかった人たちが、今頃「最先端」だと思っているに過ぎない。

日本のITとかの技術や、それをマネジメントしていた人たちも、かなり劣化したなぁ、ということを思わざるを得ない。

 

IoTでのセキュリティがなぜ大きな問題になるのか?

Roppongi Hills / Minato-ku, Tokyo

IoTは「Internet of Things」の略であることは、よくご存知だろう。「インターネット」を使わないと、「IoT」ではない。つまり、測定する結果をどこかに送るにしろ、それを受けるにしろ、あるいは、制御情報を送るにしろ、それを受けるにしろ「インターネット」をデータが通らないと「IoT」とは言わない。つまり、「IoT機器」は全て通信にインターネットを使うことが大前提だ。なぜインターネットを使うかというと、遠隔地でデータのやりとりをするからだ。それにインターネットを使うことにより「専用のデータ線」を使うよりも思い切り低いコストで遠隔地どうしで通信ができるのだ。

また、最近のIoT機器で使われている人工知能システムなど、小さな筐体に入りきらない高性能なソフトウエアや、膨大なデータは、クラウドシステムとのデータのやり取りをインターネット経由で行うことは当たり前になった。であれば、インターネットを使わないIoT機器は全く考えられなくなった、と言っていい。

しかし、インターネットを使う、ということは、インターネットという大海を通して、データがやりとりされるわけで、そうなると、大海にいるのは、サメであったりクジラであったり、つまり、ハッカーなどが常にやってくることを考えて、IoT機器を開発しなくてはならない、ということだ。「IoT機器にはハッカー対策は不可欠」ということは、つまりそういうことだ。

 


「IoT」と「セキュリティ」の関わり

専門外の人にはわからないかもしれない。ぼくのように専門家でもわからなかった。いや、専門家だからこそ、わからなかった、と言っていい。最近は「IoT」と「セキュリティ」は、2つのキーワードではなく、相互に補完するような関係になったのだな、と、思うことが多くなった。そんな中で、「IoTのシステムにはセキュリティが必要、なんてのは常識以前の当たり前の話で。。。」なんてぼくは言っていたのだが、ぼくの「当たり前」のことを、最近はそうはみなしていない。別の単語が合成されたものだと思われている。そういう知識がない、という技術者が増えたのだ。完全に「セキュリティ」と「IoTは別の分野だと思っている。これでは素人と同じだ。

たとえば、IoTでよく使われるボードコンピュータの設定をするとき、セキュリティの設定なんてのは、ぼくはまぁ、当然のように普通にやることだと思っていたら、なんと、最近の技術者は技術が細分化されていて「セキュリティのことはセキュリティ技術者にやってもらうこと」になっちゃったんだな。「IoT」もそうで「IoT専門の技術者がやる」って事になってる。でもぼくらはどちらも当たり前のこととして一人でやっていたんだが、それぞれ専門が違う、というのが、現状のICTの業界なんだな。しかし、それでは技術が有機的につながらない。意味がない、ってときも出てくる。両方を知っているから、できる。そういうことがあるんだな。素人ならキーワードで分野が別れいてると思うのはしょうがないだろうが、事実はそうではなく、両方知らないと全く製品ができない。

たとえば、最近流行りの「EMP攻撃」を受けた場合などは、今度はコンピュータや回線のケーブルを電磁波妨害からいかに守るか?ってことなんだが、ぼくらの時代は、一人で「ハードウエア」「ネットワーク設定」「セキュリティ設定」「ソフトウエア」を全部やって、目的のものを作るのが当たり前だったんだな。だから、そういうものに対抗する技術は全てがぼくの手の中にある。なければならなかった。だから、その頃の友人同士の会話だと、「おい、セキュリティのためにftpポート閉じてる?どうせ今回のシステムでは使わないんだからさ、閉じとけよ」「あ、忘れた。やっとくわ」とか、「EMP攻撃を受ける前提でケースえらんだんだけど、どこでテストするといいかな?」「あぁ、その大きさなら、あそこの研究所しかないよ」「ありがとう」「じゃ、ソフトウエアもそのテストでおかしくなって、途中で止まるところがトレースできるようにログ吐いとくな」「わかった」みたいな感じ。つまり、「ハード」「ソフト」「ネットワーク設定」「セキュリティの知識」が全てないと、会話ができなかった。しかし、今の若い技術者はこういう会話ができないんだよね。

悪く言えば、レベルが下がったんだな。僕らの頃は「IT技術者」といえば、そこいらへんの知識はみんな持っていて当たり前だった。今はみんなばらばらだ。

だから、「IoT」と「セキュリティ」が別々に語られることが多く、それを前提にIoTとセキュリティが語られることが多くなったんだな。なんか、それって、やっぱレベル低くなったんだと思うよ。それじゃ素人ですよ。

そのとき、そのときは、チームでそれぞれが「ソフトウエア担当」だったり「ハード担当」だったりするのだが、みんな知識としては同じものを共有していた。だから、会話が成立していたんだな。

なーんていうと、「遠い目のおじさん」なんだが、いや、実際、それじゃ世界には出ていけないよ。

 



「IoT」と「セキュリティ」の向こう側にあるもの

私の主な専門は「IoT」と「セキュリティ」なので、講演をしてくれ、とかセミナーをしてくれ、という話があるのだが、特に最近多いのは「IoT」のほうで、「セキュリティ」はあまり人気がない。「IoT」は、やはり結果が目に見えるものが多く、しかも費用が少なくて済む。そして、プラスのイメージを多く作れるんだけれども、「セキュリティ」は「何事もない」のが成功であるわけで、人気がないのもわからないではない。日本のIT業界全体で考えると、どうもIoTのほうに比重がかけられており、「セキュリティ」は「人工知能」よりも重要視されていない感じがある。実際、経済産業省の補助金などもIoTに比重が高いように思える。

とは言うものの「サイバー攻撃にやられた!」という報告は多くの日本の組織で聞くようになった。世界の中で日本も例外ではなくなってきているので、重要なことではある。問題は「セキュリティ対策が効いている」ことをいかにそれに費用を出す人たちにアピールするか?ということだ。なによりも、組織に密着したセキュリティ技術者がその組織の目的、性質などをよく把握したうえ、その組織に合致したセキュリティの対策をいかに合理的に、かつ安価に提供できるか?ということが重要なのは言うまでもない。そのためには、お客様にあった、きめ細かいセキュリティ対策提案を必要とする。安くできるとは言うものの、人件費がかなりかかるものではある。

このあたりの費用がどのくらいかかるか、それをどう抑えるか、というのがノウハウなのだが、当然のことながら、お客様を騙すわけにはいかないので、様々な技術的に高度な工夫が必要になる。この技術を持っている会社は日本でも少なく、その会社の中でも非常に少ない人員しかこのことをわかっていない。

やがて、日本でもセキュリティインシデントの報告が多くあるだろうが、米国と違って組織のオープンな気風がないので、そういうマイナスの情報は闇に葬られることも多く、なかなか表に出てこない。実際に、セキュリテイの研究者は個別に企業などの組織にあたって、個別に情報をとってくるしかないので、非常に費用対効果が低い分野になってしまっているのが現状だ。JCPERTやIPAなどの政府系団体でも、なかなか存在感が少ないのはそのためかもしれない。

 


IoTで食える会社を作るには

IoTと騒がれているから、経済産業省を中心に政府も力を入れている。IoTシステムのノードコンピュータは最近、低消費電力のARMをCPUにしているものが多いが、そのARMのアーキテクトの会社をソフトバンクが買収。IoTには将来性がある、と多くの人を振り向かせている。「ここにITの将来があるのではないか?」という期待も膨らむ。

IoTという言葉が流行るかなり前から、私はIoTのシステムを企業向けに数多く作ってきた。一番古いのは25年前だが、その頃から、同業者を数多く見てきた。加えて、最近はIT業界の構造や仕事の仕方も大きく変わり、古いやり方が通用しないところも数多く出てきた。しかしながら、技術というところから見ると、IoTシステムは簡単に言えば「ハードウエアがらみのコンピュータ利用」ということであって、その本質的なことは、余り25年前と変わらない。「作り方」という面では、あまり変わることはないのだ。特にIoTでは変わらないことが多いだろう。

変わったのは、IoTのシステムで収集された膨大なデータをPC程度でも大量で高速に、かつ安価に扱えるようになったため、人工知能やビッグデータなどのシステムの利用が比較的簡単になったこと。これは大きな変化だが、多くのシステムでは、そこまで必要ないよ、ということもままある。しかしながら、一番変わったのは、25年前であれば「何を作ったらよいか?」は、顧客から指示があったが、今は「なにを作ったら売れるか」を自分で考えなければならない、ということだ。つまり、昔のシステム屋は「何を作ったらいいか」を考えなくても、仕事があたくさんあった。だから「どうやって実現すればいいか」を考えていればよかった。しかし、今のシステム屋は「なにを作ったらよいか?」から考え、「どうやって売るか」を考えて実現し、その上で「どうやって作るか」という技術の必要がやっと出てくる。つまり、従来から言っている「開発技術」の比重が劇的に減ったのだ。また、その開発技術の一部をパッケージにして安価に(ときにはOSSとして無料で)提供している業者も多く、それらの利用技術も知っていると、同業他社との競争に勝てる。これらのトレンドを常にWatchする必要もある。

つまり、「売れるIoTの会社」の一番の要は「なにを作るかを考える」ことにある。お客様のところに行く「御用聞き」の営業も、もう必要はない。

「IoTでいかに売るか・誰にどう売るか?」

最近は、それを教えてくれ、という、そういうお客様が増えてきた。今はそういうノウハウをお伝えする、というのが、私のセミナーの大きな役目になってきている。

 


技術はお金である

技術がなぜ求められているかと言うと、それがビジネスに直結するからだ。たとえば、インターネットのような国際デジタル通信回線は、インターネット以前にもあった。でも、使う企業や人が少なかった。それはコストが高すぎて使えなかったからだ。コストが高すぎて使えないものは、いくら素晴らしい機能を持っていたとしても、無いのと全く同じだ。例えば、目の前に3億円の高級車があって、水素自動車で壊れるまで燃料の補給を必要としないすごいクルマであったとしても、それを購買の選択肢に入れる人はまずいないし、できたとしても非常に限られているだろう。しかし、数十万円で買える軽自動車はいくら3億円の自動車と比較して貧弱で、使い方によっては毎週ガソリンを入れる必要があったとしても、買う人は多くいることだろう。「素晴らしい機能です」だけを言うのは、全くフェアではない。「素晴らしい機能だけど値段はバカ高い」という言い方がフェアである。あるいは「すごく安いクルマだけど、機能はそんなにありません」でもいい。

しかし、日本はアジアで最初の高度経済成長期を謳歌した時代があって、その時代にモノを作ってきた人たちはこの「価格とのバランス」という考え方をついつい忘れてしまう。特に大企業に雇われていただけの技術者とか研究者は「コスト」についてはほとんど無知だったし、退職後の今も、それで良いと思っていることが多い。

「どうです!すごいアイデアでしょう!」
「すごいですね!価格はどのくらいですか?納期は?」
「1億円です。1年でできます」
「じゃぁ、要りません」

と、なる。

インターネットがなぜここまで普及したかというと、かつては毎月数百万円のお金を払わないとできなかった国際間などの遠距離データ通信が、いまは毎月数千円でできるからだ。そして、そのインターネットがあるからこそ、その上に「IoT」が現在のバズワードにもなっているのだ。その証拠に、かつてのバカ高い通信料金でも、国際的な巨大製造業などでは、必要があるから、その通信にお金をかけるのは当たり前だった。当然、その時代には庶民が国際データ通信を使う、なんてことは、コストを考えれば、できるわけもなかった。言うまでもないだろう。

高度経済成長期という「幸せな時代」に育った研究者とか技術者が「使えない」と言われることが多いのは、コストについて、あまりに無頓着であるからだ。それでいて、自分たちは素晴らしい仕事をした、という記憶だけが残っていて、無駄にプライドだけが高い。時代は変わっていて、技術はコストとの兼ね合いでそれを使うかどうかが決められる、という感覚が全くない、という人があまりに多いのだ。いま、Amazonで「IoT コスト」というキーワードで商品検索をしても、数点しか商品が見つからない。コストのことを考えていない人がいかに多いか、ということなんだろう。

IoTが大きく騒がれているのも、かけるコストに対して得られる効果が大きい時代になったからだ。25年前、その技術は全部あった。しかし、今なぜ再びそれが騒がれているのかといえば、多くの儲けの低いビジネスでも、IT技術を使うのに、お金がかからなくなったからだ。技術の進歩とは、そのままコストである。今は、技術者にとって「コスト」は最重要課題なのだ。

 


IoTの無線と電源と、現代のIoTエンジニアの話

このところ、様々なIoTの実験機器を作っている。特にLPWAの機器、ZigBeeやBLEの機器などは、無線というものが入るので、非常に面白い。しかも、最近では製品レベルでの技適が取れていなくても、正式に電波を飛ばせるモジュールレベルでの技適取得のものが使えるので、簡単な電子工作では、かなり重宝している。こういった低消費電力でローパワーの無線によるデータ通信の規格は、日本で使う場合の多くは「ARIB STD-T108」という規格を使っている。この通信手順は使う側から見ると非常に簡単で、通常はシリアル通信でデータの送受信を行う。この使い方を覚えるだけで、通常はどこのモジュールも似たようなものを使っているので、簡単に通信ができる。ただし長距離のものは通信速度が遅く、このプロトコルにかぶせてTCP/IPを載せる、というのはあまり現実的ではない、と思われており、現状はあまり使われていない。そのため、LPWAのゲートウェイと称する機器が、TCP/IPの終端となって、それ以降の端末側はARIB STD-T108を使う、ということになる。

一方、これらのモジュールをIoT用と言われるRaspberry-Piなどのコンピュータに通常は5VのTTLレベルのシリアルで通信モジュールと接続して通信を行うわけだが、こちらはまさにアプリケーション次第で、いろいろなものが考えられる。ここがIoT技術者の腕の見せ所、という感じだ。

そして、IoTで大切なのは電源だ。アマチュアでも無い限り、いかに低消費電力で動かすか、ということに注力するのは当たり前のことだが、実は、このあたりは使うモジュールにどうしても依存するところだ。まさにスペックを読む力が必要になる。どのモジュールを使うか?という選択のとき、いかに低消費電力のモジュールを選ぶか、ということが必要になる。

いずれにせよ、現代のIoTなどのハードウエアが絡む仕事では、電源のことなどが象徴的だが「いかに多くのデバイスやセンサ、ソフトウエアを知っているか?」というおkとが非常に大切であって「なんでもできます」ということは、逆に余り必要なくなってきた。世の中に現在あり、毎日変わっていくデバイスなどの情報をいかに集め、自分の中で選択できるか、ということが重要になってきた。まさに「1行1行プログラムを書くエンジニア」は、必要な場面は永久になくならないのだろうが、それを必要とする場面も、どんどん減っていることも確かだ。

現代のIoTエンジニア。それはコツコツと黙ってなにかを作る、というイメージではなくなってきた。情報を収集し、収集した情報をいかに調理して、業務に適応させるか、ということが大事になってきたのだ。それはおそらく、エンジニアというよりは、ジャーナリストの仕事に似ている。

 


IoTの機器を実際に作って見ると

IoTの機器を実際に作ってみると、前に書いたフィードバック系が必ず必要、という話も重要なのだが、実は機能よりも「ケース」が大事だったりすることはかなり多い。一番多いのは、見た目をきれいにすること。これは商品としてかなり重要なことだ。そして、防水や防塵の仕組み。電源を外から取るタイプであれば、電源ケーブルを防水のままどうやって内部に入れるか?などの問題もある。さらに、防水、防塵の他、その機器の使用温度もある。真夏の日照りの中で、木陰もないところでは、温度が80度に行く、なんてのはけっこうあって、ケースも膨張する。その時隙間ができないようになっているか?なども重要だ。工場の中で使うとか自動車の中で使う、ということになれば、振動なども十分考慮する必要がある。長時間振動にさらされると、ネジが緩んだりするのだ。

アマチュアでやっているときは、こういうことは自分の都合で自分がなんとかすれば良かったが、お客様のいる「仕事」ではそうはいかない。実際にスペック通りのものができたとして、本当にお客様がほしい、その環境で大丈夫か?というとは十分に考慮されなければならないし、納品前には、スペック以上の過酷な環境条件を作って、実際に動かして見ることが必要になる。

さらに、機器そのものはスペック通りのものができたとしても、今度は「保守」という問題もある。納入したその機器が壊れたとき、24時間稼働ですぐに取り替える必要があるのか?それとも、数時間後でも構わないという機器なのか?保守の人員の「教育」も考えなければならないし、保守に払われるお金はどのくらいなのか?ということも客先と交渉する必要がある。

実際、そのIoT機器の機能を作るだけで満足できないから、どうしてもケースなども作る必要がある。ケースを作るのは、図面が必要になる。その図面を誰が書くのか?など、かなり多くの「やらなければならないこと」が山積する。それがプロのIoT機器を作る仕事なのだ。

私がやっているセミナーでは、こういったプロの技、というものも多くご紹介しているが、こればっかりは場数を踏む、「経験」がやはり必要になる。

IoTとはアマチュアの「電子工作」のことではない、というのはこういうことだ。

 


IoTには「フィードバック」が必要

消毒装置をIoT化したら、おかしなことになった、という記事。前々から私のセミナーでは言っているのだが、IoTでの重要な要素の1つは「フィードバック」による現場確認なのだ。

たとえば、東京でボタンを押すと、サンパウロの街灯が点灯する、というシステムを考えてみよう。アマチュアであれば、いわゆる「Lチカ」ということになるから、書いたプログラムの通りに目の前のLEDが光るかどうか?で終わるので、人間がその操作の結果を目の前で確認して終わる。そこには「人間系」のフィードバックシステムがあるから、動作確認ができている。思った通りにLEDが光らないのであれば、目の前の機器のどこかに配線間違いがあったり、部品不良があったり、プログラム不良があることを追求できる。

しかし、遠隔地で街灯を光らせる、ということになると、人間系は使えないことが基本である。システムでフィードバックを得る他はない。つまり「東京でスイッチを押したら、サンパウロの街灯が光る」システムにおいては「サンパウロの街灯が思い通りに光ったかどうか?が東京でわからなければいけない」ということだ。ついでに言えば、通信回線がつながらなかったときはどうするか?電源が切れていた場合はどうするか?街灯のランプやLEDが壊れていたらどうするか?街灯が盗難にあって、なくなっていたらどうするのか?ということも考えてシステムを作っておく必要がある。それがアマチュアではない、現場のプロのシステムである。

東京からサンパウロであればまだいい。東京から軌道上の衛星の中のシステムであったらどうだろう?壊れたときに飛行機で飛んでいって修理するわけにはいかない。宇宙開発ではそういうことが当たり前であることは言うまでもない。無人の衛星が打ち上げられた直後に、衛星のシステムのバグが発見されたときのことも、考えておかなければならない。この場合はフィードバックシステムを入れたうえ、遠隔地でのシステムそのものの補修もできるようにしておくのは必須なのだ。

当然だが、東京からサンパウロの街灯を制御するとき、フィードバックの結果としてNGが出た場合、どこに連絡してなにをしてもらい、その進捗はどう管理し、報酬はどうするのか?というような人間系のシステムが関わってくる。IoTは良いのだが、その周辺はやはり人間系で固める以外にない。そういうコストを無視してIoTシステムを作るのは、プロとしてはやってはいけないことだ。

フィードバックのことを考えていないシステムはプロの世界ではありえない。