obnizデバイスはデータをobniz Cloudに送信します。obniz Cloudからデータを取得し、サービスシステムに渡すNode.jsプログラムが「Hosted App」です。
サービス提供者は、obnizからデータを取得しサービスに連携させるシステム(Hosted App)を開発する必要があります。
処理の概要
a. obniz cloudが公開するAPIからデバイスの情報を取得
b. 取得したデータを整形
c. 所定の場所にPOST
コードのイメージ:
const data = SomeSensorClass.getScanData(someSensorInstance); // a
const formattedData = format(data); // b
await sendToMyServiceSystem(formattedData); // c
オートスケール・冗長化の機能を標準で実装
obniz Cloudが公開しているAPIをサービスシステムより直接叩きobnizデバイスのデータを取得すれば、理論的にはHosted Appを使わずに同様の仕組みが実現できます。
そのため、Hosted Appという仕組みは冗長に感じられるかもしれませんが、スケールや冗長化が必要になった時にその威力を発揮します。
例えば、前述の二酸化炭素濃度測定システムが、大量の飲食店で導入されていくと仮定します。すると、obnizデバイスが増えるに伴い、システム側のサーバで扱うデータ量が増え、スケールや冗長化などプログラムの運用が問題となります。
Hosted Appを利用すると、オートスケールや様々な負荷分散の機能がobniz-app-sdk(後述)に含まれているため、サービス提供者はビジネスロジックの開発に集中することができます。