Node-REDの利用傾向について考察


Node-REDがだんだんと認知がたかまりつつあり、キャズムを超える可能性が出てきましたね。まだアーリーマジョリティ（実利主義者）の段階ではないと思いますが、すくなくともイノベーターの段階は超えたのではないかと推測します。

本日の Node-RED アドベント・カレンダーは、イノーベーター段階にあった Node-RED の姿などをもとにキャズムを超える、つまりマジョリティなるための工夫などを考察したいと思っています。また、せっかくのアドベント・カレンダーですので、技術的な内容も多少は含めたいと思っています。

## Node-RED ことの始まり

Node-RED が出たきっかけは、IBM Emerging Technology Team (英国)の発案です。2013に GitHub に登録されました。"git log" をみると　2013年、9月5日に　"Got to start somewhere"(どっかではじめないとー)とありました。

	commit 32796dd74ca2525e3fea302e79ff3fc596bb1bf3
	Date:   Thu Sep 5 15:02:48 2013 +0100

    	Got to start somewhere

もちろん、その以前から開発をすすめていました。IBMというと、規律正しく、かつあまり自由度のない作業しているイメージがある？かもしれませんが、社内では毎年のようにある程度自由度の効く、インキュベーションプロジェクトが発足します。ある意味、社内スタートアップといっていいかもしません。多くのプロジェクトは発表の時点で、ペケをもらい、解散しますが、中には開発継続の ゴーサインがでます。Node-RED もそのうちのひとつです。

infoQ での[インタビュー](http://www.infoq.com/interviews/Node-RED-Nick-OLeary) で開発者はこう答えています。

> A colleague said well, all well and good that you’ve got drawing things in the browser, now make it actually do something when you hit the deploy button. So I went away and just wrote the node.js runtime side of it and it all started coming together and has just grown from that point.

> （拙訳）同僚がこういいました、ブラウザーで物を描画するのは結構なことだが、デプロイボタンを押したらなにか動くようにしないと。そこで、私はその場を離れ、node.js のランタイム部分に少し手を加え、すべてまとまって動作するようにしました、まさにその時点から躍進が始まったわけです。



## 始まった後どうなったかインターネット上での動向調査


さて、プロジェクト開始はされたものの、もちろん GitHub に登録するだけでは広まりませんよね。その技術が使われないと広まりません。Google トレンドを使って Node-RED を見てみると 2014年4月からあがってきていることがわかります。

![google-trend.png](https://qiita-image-store.s3.amazonaws.com/0/74673/316f4b93-83dc-b214-69fe-909e09a6c175.png "Google Node-RED トレンド")

この２ヶ月前に IBM Bluemix のベータ公開がされたというのは大いに関係しています。当時から Node-RED が使えるようになっており、気軽に試せる環境がそろっていました。チャートからわかるように、トレンドはかなり急勾配になっています。経済でも同じですが、この Growth（成長率）が大事です。


それともうひとつは IoT (Internet of Things)の勃興でしょう。2014年にはもやもやしていたものが、ラズペリーパイなどのデバイスの登場、あるいはドローンなどの機器が、Node-RED 同じくEU地域から出て瞬く間に全世界に広がったというのも追い風になったと思われます。

ところで、infoQ のインタビューをみると、JavaScript エディターに当初は Orion を採用していたとありました。少し探してみたのですが、オリジナルのソースには Orion の形跡はみつかりますが、npm パッケージにはなく、代わりに ace.js が見つかりました。シンタックス・ハイライトは ace.js の機能そのひとつのようです。

ためしに、いくつか [ace のショートカットキー](https://github.com/ajaxorg/ace/wiki/Default-Keyboard-Shortcuts
)を試すと、動かないものもありますが、動くものもありました。


例： Control+space (Windows) : コンテンツアシスト

![content-assist.png](https://qiita-image-store.s3.amazonaws.com/0/74673/d21628b1-5147-4b4b-6261-78888bcd60e4.png  "コンテンツアシスト")


例： Alt+l (Windows)　：　行のまとめ

![fold-lines.png](https://qiita-image-store.s3.amazonaws.com/0/74673/f01967ad-92b5-eda2-683f-3d8c363a3e41.png "行のまとめ")


行のまとめは、JavaScript エディターを開いているだけ有効で、閉じて、再度開くと元に戻ってしまうのが難点です。Control+F の検索、Control=U で大文字変換などは有効です。ぜひ皆さんも試してください。



さて、評判はどうでしょうか？

Bluemix の Twitter 分析サービスを使って調査してみました。 Node-RED のアドベント・カレンダーですので、もちろん Node-RED を使っています。Qiita の記事に [Node-Red を簡易WEBサーバーにする](http://qiita.com/ibmamnt/items/d8b2ddd0f2dc2e1f0330)というのを記載しましたが、WEB アプリケーションを static page ディレクトリに突っ込んで実装しています。

![app-architecture.png](https://qiita-image-store.s3.amazonaws.com/0/74673/75208ee7-b861-96ef-73d3-5fcfcb10756b.png
 "アプリケーションアーキテクチャ")


Webクライアントは、サーバー側にクエリーを依頼します。サーバー側(Node-RED)では次のようなフローを実装してみました。

![nodered-flow.png](https://qiita-image-store.s3.amazonaws.com/0/74673/57f3a771-f7ba-aaf9-a944-3b44c51cf103.png "ノードレッドフロー")



あまりたいしたフローではありませんが、Web クライアントからクエリー（単語）を受けて、それを整形した後に、"twitterinsights" ノードで処理をしています。この ノードは自作です。少し勉強がてら作成してみましたが、中身はたいしたことがありません。単純に、IBM Insights for Twitter API をたたいているだけのものです。なお、IBM Insights for Twitter設定 は、Twitterメッセージの 1/10 を検索できる [Decahose](http://support.gnip.com/apis/firehose/overview.html) を使いました（無料版）。このサービスでは、ツイートにさまざまな分析結果を追加してくれています。評判もそのうちのひとつの属性です。

さて、結果は以下のとおり。

![nodered-reputations.png](https://qiita-image-store.s3.amazonaws.com/0/74673/6ec771a2-1282-c3bc-a064-d1203b7ea821.png "ノードレッド評判")

会社のツイート分布図とありますが、これは会社の評判分析をするために作成したものなので、ご容赦ください。多くは "neutral" であり、よくもわるくもないのですが、"positive" は "negative" を超えています。Twitter上でのNode-REDの評判は悪くはありません。


## 今後の展望

未来を予測するのは難しいですが、現在の評判と関心の高さからいうと、これからも Node-RED は引き続き成長するソフトウェアだと思います。ひとつにはハッカソンでの利用の促進があげられます。これについての考察は次回のアﾄﾞベント・カレンダーで記事にしたいと思います。

さらには商用サービスでの利用推進が必要になってきますが、すでに芽が生えつつあります。

例えば、Node-RED ユーザーグループ会長が所属するウフルさんでの利用形態 [enebular](https://enebular.com/ )。さまざまな分析にNode-RED を活用し、お客様に価値を届けています。

Sense Tecnic社では、Node-RED をサービスの形でクラウド提供する [FRED](
https://fred.sensetecnic.com/) ができています。この会社は、WoT (Web of Things)キットを提供している会社です。もちろん、IoT (Internet of Things)も含まれているようです。

Raspberry Pi のOSにNode-RED が組み込まれたニュースもあります。Raspberry Pi　ファンはかなり多いと思うので、これからユーザーが増えるのではないでしょうか？　このグループでラズパイ・マガジンに寄稿というのもありかもしれませんね。

また、自社のデバイスあるいはサービスを有効的にアナウンスするために Node-RED を活用するケースが増えるように思われます。たとえば、PrismTech社は、Vortexという基盤の有効活用に Node-RED を活用しています。紐解いてみると、Bluemix 自体がその宣伝のために Node-RED を有効活用しているとも言えます。したがって、デバイスやサービスを（迅速に）有効性証明するケースは今後増えるであろうと実感しています。

さて、あまり技術的な内容には乏しかったかもしれませんが、ここまで読んで頂き、ありがとうございます。ぜひ、Node-RED を有効活用してビジネスを活性化させましょう。