node.js 版 gotapi 実装 - node-gotapi

12
node.js GotAPI 実装 - node-gotapi 2017413() @futomi futomi.hatano デバイスWebAPIコンソーシアム第三回総会 ライトニングトーク

Upload: device-webapi-consortium

Post on 23-Jan-2018

708 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: node.js 版 GotAPI 実装 - node-gotapi

node.js 版 GotAPI 実装 - node-gotapi2017年4月13日(木)

@futomi futomi.hatano

デバイスWebAPIコンソーシアム第三回総会 ライトニングトーク

Page 2: node.js 版 GotAPI 実装 - node-gotapi

自己紹介

2

マークアップ解説本 API解説本 APIチュートリアル本Windows 8API解説本

有限会社futomi 代表取締役株式会社ニューフォリア 取締役 最高技術責任者

Page 3: node.js 版 GotAPI 実装 - node-gotapi

日経SYSTEMS連載2015年4月号~2016年3月号:こんなに変わったWeb開発/HTML5の基本テクニック

3

Page 4: node.js 版 GotAPI 実装 - node-gotapi

日経SYSTEMSコラム

4

• マイコンボードを使って大気圧と気温を取得• Webブラウザーから制御 MIDIでサーボを動かす• Node.jsで家電を操作 赤外線を利用しよう• ECHONET Liteで家電をコントロール• スマホから機器を制御「デバイスコネクトWebAPI」• 電池交換が不要に 無線技術「EnOcean」に注目• JavaScriptで車載情報を取得「OBD-II」を使う• Node.jsで電力情報を取得スマートメータを活用しよう• ネットワークカメラに注目 Webブラウザーで操作可能に• WebブラウザーからBLEでセンサーにアクセス

IoTで火が付くITエンジニア魂:2016年4月号~2017年3月号

Page 5: node.js 版 GotAPI 実装 - node-gotapi

GitHubとnpm

5

https://www.npmjs.com/~futomihttps://github.com/futomi

Page 6: node.js 版 GotAPI 実装 - node-gotapi

公開中のnodeモジュール

6

Page 7: node.js 版 GotAPI 実装 - node-gotapi

公開中のnodeモジュール

7

Page 8: node.js 版 GotAPI 実装 - node-gotapi

node-gotapiとは• OMA GotAPI 1.1仕様のnode.js実装

• MITライセンスでGitHubに公開• node.jsが動作する環境で動作

• Linux, Windows, Mac OSなど

• ホームサーバーへの組み込みを想定• 組み込み機器

• Rasberry PiなどのSBCやビジネス向けLinuxボードなど• Webブラウザーからの利用

• ホームサーバーではない別のマシン (PC, スマートフォンなど) からWebブラウザーでホームサーバーにアクセスすることを想定

8

https://github.com/futomi/node-gotapi

Page 9: node.js 版 GotAPI 実装 - node-gotapi

マイクロサービス・アーキテクチャ• GotAPIはマイクロサービス・アーキテクチャのプログラミングフレームワーク

• 1つのアプリケーションを3つのコンポーネントに分離• 各インタフェースにはメッセージベースのAPIを規定• シェアード・ナッシングのMVCモデルともいえる

• node-gotapiはFront-end applicationとPlug-In向けにヘルパーライブラリも提供• これらのライブラリを使うことでGotAPI仕様の詳細を知らなくても開発が容易に行える

9

ModelControllerView

GotAPIServer

Plug-In

Plug-In

Plug-In

Front-endapplication

GotAPI-1 Interface

GotAPI-5 Interface

GotAPI-4 Interface

GotAPI-4 Interface

GotAPI-4 Interface

(HTTP REST)

(WebSocket)

Page 10: node.js 版 GotAPI 実装 - node-gotapi

node-gotapiの内部構造

10

Page 11: node.js 版 GotAPI 実装 - node-gotapi

システム構成例

11

GotAPI-1/5Interface

node-gotapiWebアプリ

Plug-In

Plug-In

Plug-In

Plug-In

Plug-In

Plug-In

Plug-In

HTTP REST

スマートメーター

ネットワークカメラ

エアコン

スマートテレビ

スマートライト

環境センサー

環境センサー

ホームサーバー

ユーザーはWebブラウザーを使って、宅内のデバイスにアクセス

さまざまな通信手段とプロトコルをプラグインで吸収プラグインはnodeモジュールとして独立して開発

Page 12: node.js 版 GotAPI 実装 - node-gotapi

ご清聴ありがとうございました

@futomi futomi.hatano

https://github.com/futomi/node-gotapi