質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

IoT

IoT(Internet of Things)とは、インターネットがコンピュータなどの情報・通信機器のネットワークだけでなく、世の中のある様々なモノに接続されて自動認識・自動制御・遠隔計測などの能力を備えることです。「モノのインターネット」と一般的にいわれます。

Q&A

解決済

2回答

14152閲覧

なぜIoT分野ではNode.jsが用いられているのでしょうか?

namenamenameko

総合スコア234

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

IoT

IoT(Internet of Things)とは、インターネットがコンピュータなどの情報・通信機器のネットワークだけでなく、世の中のある様々なモノに接続されて自動認識・自動制御・遠隔計測などの能力を備えることです。「モノのインターネット」と一般的にいわれます。

8グッド

23クリップ

投稿2017/05/26 04:08

抽象的な質問ですみません。
Web系のエンジニアで、自動車系の業界のIT部門にいます。
近年、IoTの世界でモノからデータをサーバに送るような試みが多くありますが、
その多くがNode.jsで開発されているような気がします。
しかしながら、Node.jsというサーバ言語がなぜそれほどIoTに適合するのかいまいちわかりません。
Node.jsにはノンブロッキングIOという仕組みがあって多くのリクエストを捌きやすいというのを聞いたことがあります。また、Socket.ioというWebSocketを実装したライブラリあることも知っています。
しかしこれらの要求は、他の汎用言語でも満たせると思いますし、JavaScriptという言語自体がサーバーサイドの開発において難易度が高そうな気がします。
僕はあまり知識がないので、簡単にでいいのでわかりやすく説明していただけないでしょうか。

dohq, allways007, s8_chu, h_daido, m.ts10806, E-T, piacerex👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

harashow1701

2017/05/26 05:33

初耳です!回答が気になります。
namenamenameko

2017/05/26 06:39

すみません、少し調べて見たところ、特にRaspberry Piを用いる際にデフォルトでNode.jsが入っていることと関係しているかもしれないです。RasPi上で動かすのに軽量なシングルスレッドが適しているということでしょうか。
guest

回答2

0

ベストアンサー

JavaScript が持っている特徴の一つにイベント駆動型のプログラミングがしやすいという点が大きく寄与していると思います。

たとえばNode.jsでは EventEmitter という仕組みがあり、 foo.on('some event', bar) のように何かイベントが発火した時に関数が実行される事や foo.emit('some event') のようにイベントを発火させることが非常に簡単にできます。

IoTのような領域ではセンサーの情報をイベントとして表現することが多く、 Node.js にはそのイベント駆動型のプログラミングがしやすい土壌があったという事なのではないかと思います。

たとえば NASA は宇宙服内の環境に Node.js を使っているようです。

https://hackernoon.com/ground-control-to-major-tom-how-nasa-uses-node-js-8d011e167436

NASA がやってるのは宇宙の内部にある水量調整でこれが内部と外部の気温調整に必要だったりするようです。これもセンサーですね。

このイベント駆動しやすいという特徴を活かしてjohnny fiveのようなIoTプラットフォームが存在し、それがIoTのエコシステム全体を盛り上げているんじゃないかと思っています。

投稿2017/05/26 11:03

yosuke_furukawa

総合スコア390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

namenamenameko

2017/05/28 01:41

ご丁寧にありがとうございます!!
piacerex

2017/05/28 18:38

宇宙服内の環境に Node.js が利用されている、というのは、驚きでした
m.ts10806

2017/05/28 21:27

大変参考になります。
harashow1701

2017/06/03 05:42

すごい!勉強になりました。jonny5もきになる。
guest

0

IoT の世界って組み込み系でしょ?
普通に考えて、C,C++,JAVAだと思うけど。。。

投稿2017/05/28 21:34

編集2017/05/28 21:49
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/05/28 21:48

失礼。サーバサイドの話ですね^^;
退会済みユーザー

退会済みユーザー

2017/05/28 22:02

ってことは、C10K 問題の解決のためな気がしますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問