Pro Yearly is on sale from $80 to $50! »

Node-RED as a flow-based programming tool current situation

Node-RED as a flow-based programming tool current situation

本資料は、2020年10月23日開催のOSCオンライン2020 Fallでの登壇用になります。

57c9c4b846c73c911cbf795d211904f3?s=128

Taiji HAGINO

October 23, 2020
Tweet

Transcript

  1. フローベースプログラミングツール Node-REDは今でも有効か︖ Node-RED as a flow-based programing tool current situation

    ̶ Taiji HAGINO / @taiponrock IBM Developer Advocate #osc20on #NodeRED #NodeREDJP
  2. スピーカーは、IBMの所属ですが、本セッションは 会社の営利・宣伝⽬的ではありません。 また本セッション内での発⾔及び資料へ掲載されて いる内容についてはスピーカーの個⼈的な⾒解・意 ⾒であり、IBMとは関係のないものです。

  3. Speaker

  4. Taiji (Eddie) Hagino Sr. Developer Advocate IBM Champion Program Regional

    Director IBM Lecturer Tsukuba University @taiponrock Please follow me! Node-RED/Node.js, Swift, Hyperledger Fabric, Functions Books: Node-RED beginner book, Node-RED Experience Handbook, DevRel Q&A Articles: I/O Magazine (Node-RED programming)
  5. Tokyo Leader Akira ONISHI IBM Developer Advocate Tokyo Team Tokyo

    Team is a part of Worldwide Developer Advocate Teams! https://developer.ibm.com/cities/tokyo-jp/ Developer Advocates Noriko KATO Developer Advocates Kyoko NISHITO Developer Advocate Yasushi OSONOI Developer Advocates Aya TOKURA Developer Advocates Taiji HAGINO
  6. What’s Node-RED

  7. Node-REDって何? 7 IoTへとインテグレーションしている多くのアプリケーションでは、多くの場合 において、さまざまなAPI、オンラインサービス、ハードウェアデバイスなどを 最適な⽅法でまとめる必要があります。 例えば、シリアルポートへのアクセス⽅法の把握や、Twitterに対するOAuthフ ローの実装などに時間をかけていては、ソリューションの真の価値を⽣み出す 時間を失う可能性があります。 我々は、どのレベルの開発者でもアプリケーションを作成し、重要な部分に集 中できるようにするツールが必要であると認識しています。

  8. 8 Node-REDエディターはブラウザーで実⾏され、イベントの フローを描画することでアプリケーションを作成できます。 フローの各ノードは、値の更新、データベースクエリの作 成、ツイートの送信など、明確に定義された機能を持ちま す。 開発者は、必要に応じて各ノードを設定できます。ノードが 「どのように動くか︖」ではなく「何をするか︖」という観 点で使います。 フローがNode-REDランタイムにデプロイされると、各ノー

    ドは実⾏中のコードになり、メッセージはフローを通過し始 めます。 “イベント駆動型アプリケーション向けのフローベース・プログラミングツール” Node-REDって何?
  9. 2013年、IBMのNick O’Leary、Dave CJを始めと するIBM Emerging Technologyチームによって オープンソースとして発明されました。 Node-REDの⽣い⽴ち 2013年︓ 2015年︓

    2016年︓ 2018年︓ Nick O’Leary、Dave CJを 始めとする、IBM Emerging Technology Servicesチー ムにより作られ、同年オープ ンソースとなる。 Raspberry Piのデフォルト イメージに追加される。 JS Foundationのfounding projectになる。 1,000,000インストールを記 録。 2019年︓ Node.js FoundationとJS Foundationが合併して設⽴ されたOpenJS Foundation 配下となる。
  10. None
  11. ノード ⼀つ⼀つの箱には既に決 まった処理が実装されて いる フロー 使いたい処理のノードを並べ るだけ。 線でつないだ順番に処理が実 ⾏される。 ⾔ってみればワークフロー。

    公開ノード 主要なAPIの呼び出しなど、よく使われ る処理は、誰かが作って公開している事 が多い。 Watson API呼び出しのノードはIBMが開 発し公開している。 設定パネル 処理のパラメーターな ど、ノードに対する設 定を⾏う。 デプロイボタン ノードを配置、フロー作成、パラメーター変 更など、何か作成したり更新した場合に、こ のボタンを押すと反映される。 メニュー フローの削除やイン ポート・エクスポー トなどはこちらから。
  12. Low-Code/No-Code

  13. Low-Code/No-Codeの世界 13 プログラムが出来ないから使う︖ コードを書きたくないから使う︖ v簡便化 v効率化 v共通化 v⾼品質化

  14. 14 WHY use it?

  15. Why Office? 文書を編集する 数値を計算する アイデアをまとめる

  16. かんたん間違いなくNode.jsアプリを作る Why Node-RED?

  17. None
  18. • ノード、フローが公開 • ユーザーがコントリビュート • 2000個以上のモジュール flows.nodered.org

  19. Node-RED Examples

  20. Node-RED Dashboard データをチャートで可視化するノード デザインのカスタマイズが可能 必要なデータは対象となる数値のみでOK

  21. Node-RED Worldmap 地図に情報を表示するノード 必要なのは名前と緯度経度のみ 現在位置のリアルタイム更新 地図のレイヤー、アイコン、色などは 様々な選択が可能 オーバーレイ表示もOK

  22. Environment

  23. Edge Device / Cloud Services

  24. Embeded MultiConnect® Conduit™ IoT Gateway Developer Hub SNAP PAC Industrial

    Controller
  25. Technical Overview

  26. アーキテクチャ 26 Node-REDには2つの論理パーツがあります。 ランタイムはNode.jsアプリケーションです。デプロイ されたフローの実⾏を担当します。 エディターは、ユーザーがフローを編集できるWebアプ リケーションです。 メインのインストール可能なパッケージには、エディ ターを提供するWebサーバーとランタイムを管理するた めのREST管理APIの両⽅のコンポーネントが含まれてい

    ます。 内部的に、これらのコンポーネントは個別にインス トールし、既存のNode.jsアプリケーションに埋め込む ことができます。 node-red runtime editor HTTP Admin API @node-red/editor-api Client-side Editor @node-red/editor-client Flow Runtime @node-red/runtime Core Nodes @node-red/nodes Node Registry @node-red/registry Common Utils @node-red/util
  27. フロー 27 フローは、相互に接続されたノードのコレクションです。 ノードには複数の出⼒ポートがあり、単⼀のポートには複 数のワイヤを接続できます。 フローはJSONオブジェクトとして、すべてのノードの構成 とそれらがどのように接続されているかの情報として保存 されます。 フローJSONはNode-REDインスタンス間でインポートおよ びエクスポートできるため、フローを簡単に共有できます。

  28. メッセージ 28 フローを通るメッセージ (messages) はJavaScript Objectsです。 これには、柔軟に情報を含むことができるPayloadプロパ ティがあります。ほとんどのノードにおいてデフォルトで 動作するプロパティです。 topic:

    “weather/uk” payload: “sunny!” … …
  29. ノード 29 ノードは、フローの基本的な構成要素です。 フローの開始位置にあるノードは、着信のHTTPリクエスト、 タイマーイベント、ハードウェアIOイベントなどの外部イ ベントの発⽣を待機します。 次に、接続されているノードにメッセージを渡します。 ノードはこれらのメッセージを受信し、いくつかの作業・処 理を⾏ってから、それらをフローに渡します。 payload:

    “Jedi are totally amazing!” payload: “Jedi are totally amazing!” sentiment: { score: 4 } この例では、センチメント分析ノードがメッセージの 「payload」プロパティを調べ、センチメントを評価 し、その結果(スコア)をメッセージの新しいプロパ ティとして追加しています。
  30. 30 ノードは、コミュニティとしてNode-REDを拡張していくこと が可能な主な⽅法でもあります。 それらは2つのパーツで構成されています︓ -ノードの実⾏時の動作を定義するNode.jsモジュール -エディターの外観、編集ダイアログ、およびヘルプテキストを 提供するHTMLファイル これらはNode.jsモジュールとしてパッケージ化され、 NPM package

    repositoryを介して配布されます。 プロジェクトは https://flows.nodered.org をホストし、npm で利⽤可能なNode-REDモジュールのインデックスを⾃動的に 作成します ノード
  31. User Community

  32. Node-RED User Group Node-REDのユーザーコミュニティです Node-REDのユーザーを増やすべく、 ⽇々活動しています︕

  33. None
  34. Japan

  35. Global Collaboration

  36. Global Collaboration

  37. Global Conference https://developer.ibm.com/jp/blogs/node-red-con-tokyo-2020-report/

  38. Showcase

  39. None
  40. Safeguarding online communities Identify abusive context and create alert –

    Granular calibration of severity and priority depending on each community code of conduct Get all situation data in one place – Investigation made easy presenting the detailed context of the communication between parties Manual and automated community intervention – Mute, block, suspend, add strikes – Apply penalties with time limits © 2017 Spirit AI Ltd. All rights reserved.
  41. © 2017 Spirit AI Ltd. All rights reserved.

  42. None
  43. None
  44. Get Started Today!

  45. IBM Cloud上ですぐに使える︕

  46. $ sudo npm install -g --unsafe-perm node-red $ docker run

    -it -p 1880:1880 --name mynodered nodered/node-red ローカルへのインストールも簡単︕
  47. 47 https://ibm.biz/Bdqkuw IBM Cloudアカウント 無料(クレジットカード不要) すぐに使える いつまででも使える (*1) *1 IBM

    Cloudのアカウント形態や料⾦プランの ⾒直しに伴い将来的に変更となる可能性があり ます。
  48. 48 ご注意 今回みなさまへご案内しているのは、クレジットカー ド不要の完全無償でご利⽤頂けるアカウントです。 こちらはライトアカウントと呼ばれ、使える機能に制 限があり、⼀部のサービスはご利⽤いただけません。 アカウント作成後、クレジットカードを登録すると PAYG(PayGo)という全ての機能がご利⽤頂けるアカウ ントへアップグレードできますが、こちらは従量課⾦ が発⽣するアカウントですので、ご利⽤の際にはご注

    意下さい。
  49. Demo

  50. https://github.com/knolleary/node- red-in-production-workshop https://github.com/taijihagino/node- red-making-node-handson ToDoアプリを作るハンズオン (英語) オリジナルノードを作るハンズオン (⽇本語)

  51. Conclusions

  52. 52 - IoT向けフローベースプログラミングツールから Node.jsを実現するNo-code/Low-codeのビ ジュアルプログラミングツールへ - Node-REDの外にあるWebアプリケーションと 組み合わせることで可能性はさらに広く︕ - 今後間違いなくこの領域でデファクトスタン

    ダードになっていくツール︕
  53. 53 Practical Node-RED Programming 私の書籍が12⽉に発売予定です︕ 出版社はPackt Publishingですが、 もう少ししたらAmzonで予約開始さ れる(はず)

  54. 54 Thank you twitter.com/taiponrock facebook.com/taiponrock github.com/taijihagino developer.ibm.com/jp/ developer.ibm.com/code/community/ci ties/tokyo/ Taiji

    HAGINO Sr. Developer Advocate IBM Champion Program Regional Director IBM
  55. 55

  56. ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独⾃の⾒解を反映したものです。それらは情報 提供の⽬的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助⾔を意図したものではなく、またそのような結果を⽣むも のでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努⼒しましたが、「現状のまま」提供され、明⽰または暗 ⽰にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使⽤によって、あるいはその他の関連によって、いかなる損害 が⽣じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかな る保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使⽤を規定する適⽤ライセンス契約の条項を変更することを意図したもので もなく、またそのような結果を⽣むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに⾔及していても、IBMが営業活動を⾏っているすべての国でそれらが使⽤可能であることを暗⽰ するものではありません。本講演資料で⾔及している製品リリース⽇付や製品機能は、市場機会またはその他の要因に基づいてIBM独⾃の決定権をもっ

    ていつでも変更できるものとし、いかなる⽅法においても将来の製品または機能が使⽤可能になると確約することを意図したものではありません。本講 演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上⾼の向上、またはその他の結果が⽣じると述べる、または暗⽰すること を意図したものでも、またそのような結果を⽣むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使⽤し た測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラ ミングの量、⼊出⼒構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、 個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使⽤したか、またそれらのお客様が達成した結果の実例として⽰された ものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、[以下当該情報に関連し商標リスト中に掲載されたIBMブランドやIBMの製品名称があれば追加する]は、 世界の多くの国で 登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があ ります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 [以下特定の他社商標についての商標帰属表⽰]