MODE JAPAN Blog

IoTを活用したデジタルトランスフォーメーションのための情報、開発の現場から技術的な情報や取り組みについてお届けします。

IoTクラウドとしてのMODEの紹介 〜 IoT サービス・プラットフォーム編 〜

どうも、MODEのソフトウェアエンジニアの篠田です。

私の担当エントリではMODEクラウドの各種機能を説明してきました。今日は、MODEクラウドが提供する基本的な管理体系についてお話したいと思います。*1

はじめに

MODE では IoT を利用したデータ活用およびデバイス制御のための管理体系を用意しています。ただデバイスを登録し、整理するという設計だけではうまく IoT のためのサービス基盤としてはうまくいかない、という経験を通してMODEクラウドは設計されています。本エントリではそれが具体的にはどのようになっているかを、かいつまんで説明していきたいと思います。

もし本エントリを読んでご興味を持たれた場合はマニュアルも参照していただけるとより詳しく知ることができますので是非!

概要

MODEクラウドには主に Project, Home, Device, User の4種類の登場人物がでてきます。サービス提供に関わる登場人物です。4つの登場人物は次の図のような階層構造になっています。 Project は複数の Home を持ち、 Device はひとつの Home に所属します。 User は1つ以上の Home に所属することができます。

次の項以降で個別に説明していきましょう。

f:id:takeshinoda-mode:20200615144545p:plain

Project

ひとつのサービスを表し、idを持ちます。例えば、弊社のセンサー・クラウドというサービスはMODE クラウドの一つの Project を持っています。

MODEクラウドの一番大きな単位です。MODEを利用したサービスはまず Project を作るところから始めます。

使い方として、ひとつのサービスをひとつの Project で提供する方法と、ひとつのサービスを複数の Project で提供する方法があります。 マルチテナント的なアプリケーションでは前者、アプリケーションがマルチテナントを想定していない場合は後者の手法が採用されることが多いです。

Project は API 呼び出しのためのキーを持っています。キーとしては権限が広く、Project 内のデータを横断的に参照・書き込みしたり、 Device の制御を横断的にすることができます。

Home

ひとつの空間やグループを表し、id を持ちます。家に見立てて Home という名前がついています。ひとつの Project 内には複数の Home を作ることができ、ひとつの Home はひとつの Project にのみ所属できます。また、Home には後述する複数の「Device」と複数の「ユーザー」を所属させることができます。

Home はデータの格納と可視範囲の単位でもあり、User と Device は所属している Home のみデータを参照したり、書き込んだりすることができます。

特長としては、データは Device に紐付くのでは無く、 Home に紐付くという点です。お察しの通りではあるとは思いますが、デバイスは壊れ得ますので、改善や補修を目的として交換、もしくはひとつのデバイスに付属されていたセンサーが複数のデバイスに分割されるかもしれません。サーバシステムであれば同じサーバとして振る舞うマシンをデータセンタなりクラウド上で交換するだけですが、 IoT では違う id を持つ Device を交換しても同じ種類のデータをクラウドに送信し続けることが想定されます。 Home にデータを紐付ける設計により、サービスは固有のデバイスを意識すること無くデータを取り扱う事ができます。もちろん固有のデバイスとの紐付が大事なデータの場合は、デバイス固有の情報を紐付けられるような情報を付与するなども可能です。

Device

制御するデバイスを指します。IoTっぽくなりましたね。idとキーがあり、 Home 内にデータを書き込んだり、 Home 内のデータを読み込んだりすることができます。

ひとつの Device はひとつの Home に所属することができます。 Home の項でも説明しましたが、モードクラウドへのアクセスの権限は Device 単位で管理されますが、データの管理権限は Home 単位で管理されます。

クラウドとデバイスの通信とデバイスの管理はこの単位で管理されます。 Device からのデータは固有のデバイスを意識しないが、 固有の Device とのコミュニケーションはこの単位。という使い分けになっています。

User

サービスを利用するエンドユーザーを指します。ひとつの User は Device とは違い複数の Home に所属することができます。User は複数の物理的な空間をまたがって利用する可能性があるためです。

User はログインすることでアクセストークンが払い出され、データを参照したり、所属する Home のデバイスを操作する権限が与えられます。

User のMODEクラウドへの登録はメールか電話番号を指定することが出来、MODEクラウド内で管理できます。ただし、一般的にMODEクラウドだけでいわゆるWebアプリケーションを作るユースケースだけではもちろん無いため、連携する外部システムのユーザーを取り込むことができる BYOU という機能も提供されています。詳しくは、How to integrate MODE to your existing web service をご覧ください。

まとめ

このエントリでは駆け足でMODEクラウド内のプラットフォームとしての機能を眺めました。

シンプルな構造ですが、様々なデザインパターンがこの中から選択することができます。特に、データと Device の間に Home があることで、クラウドの抽象度とデバイスの具象性をうまく包み込んでいます。例えば、通常 Home には空間内に複数の Device があような設計を最初に思いつきますが、Device はバラバラに各所にひとつづつ配布するといった用途の場合もあります。この場合、各所ごとにひとつの Home を作成し、それぞれ Device ひとつとすると、デバイスの可換性とデータの永続性を同時に満たすことができます。

MODEではこのような IoT にまつわる設計のパターンを事前に用意しています。サービス提供者はイチから考える必要なく、必要なサービスの価値の提供に集中することができます。

IoT 基盤というと、デバイスとのコミュニケーションに焦点が当てられがちですが、インターネットとモノとの間には巧妙かつシンプルな管理体系も必要になってきます。

このシンプルな構造で様々なパターンのIoTサービスの提供が可能です。是非弊社のソリューションアーキテクトにお問い合わせください。

www.tinkermode.jp

*1:概要としては次のようなエントリがあります IoTクラウドとしてのMODEの紹介 - 概要編 - - MODE JAPAN Blog