2. intdashにおけるドメイン、ユーザー、エッジ、計測、プロジェクト#

My Page v3.4.0 / Meas Hub v1.7.0 / Media Explorer v1.2.0 / Edge Finder v2.8.0 / Project Console v1.0.0 /Admin Console v1.4.0

本章では、intdashを使用する際の前提として、intdashで使用する主な概念について説明します。

../_images/concept-domain-user-edge.ja.png

図 1 ドメイン、ユーザー、エッジ#

2.1. ドメイン(intdashドメイン)#

intdashサーバーを中心とする、1つのintdash使用環境をドメイン(またはintdashドメイン)と呼びます。

intdashサーバーに接続できるのは、そのドメインで発行されたアカウントを持つユーザーとエッジ(データを送受信するデバイス)のみです。

intdashドメインのグローバルレベルでadminロールを持つユーザーをintdashドメインの管理者と呼びます。 intdashドメインには、管理者が1名以上存在します。

2.2. ユーザーとエッジ#

intdashに接続する存在として、「ユーザー」と「エッジ」があります。

ユーザー

intdashを使用する人を「ユーザー」と呼びます。 ユーザーは、主にウェブアプリケーションやモバイルアプリケーションを使って時系列データの閲覧を行います。

エッジ

センサーを使ってデータを取得するデバイスや、遠隔操作されるデバイスを「エッジ」と呼びます。 エッジは、時系列データをintdashサーバーに送信したりサーバーから受信したりします。

intdashを使用するユーザーには「ユーザーアカウント」が必要です。また、エッジには「エッジアカウント」が必要です。

2.2.1. ロール#

ロールは、ユーザーがどのような操作ができるか(計測の作成ができる、エッジの作成ができる、ユーザー情報の変更ができる、など)を定義したものです。 通常のintdashドメインでは、「admin」、「member」という少なくとも2つのロールが用意されています。 ユーザーにこれらのロールを割り当てることにより、アクセス制御を行うことができます。

ユーザーには、intdashドメインのグローバルレベルでのロールと、プロジェクトごとに設定されたロールがあります。

  • グローバルレベルのロールは、intdashドメイン全体に関わる操作ができるかを表します。 例えば、グローバルレベルで「admin」ロールを持つユーザーのみが、Admin Consoleを利用できます。

  • グループレベルのロールは、個別グループに関わる操作ができるかを表します。 例えば、あるグループで「admin」ロールを持つユーザーは、そのグループにメンバーを追加することができます。

  • プロジェクトごとのロールは、個別プロジェクトに関わる操作ができるかを表します。 例えば、あるプロジェクトで「admin」ロールを持つユーザーは、そのプロジェクトにメンバーを追加することができます。 あるプロジェクトで「member」ロールを持つユーザーは、そのプロジェクトに自分のエッジを追加することができます。

ユーザーに、ある操作を許可するロールと許可しないロールの両方が設定されている場合、許可のほうが優先され、ユーザーはその操作を行うことができます。 例えば、あるプロジェクトXにおいて、ユーザーAはadminロールとmemberロールの両方を持っているとします。adminロールはメンバーの追加を許可されており、memberロールはメンバーの追加を許可されていませんが、この場合は許可のほうが優先されるため、ユーザーAはメンバーの追加を行うことができます。

なお、新しいロールの定義や、ロール定義の変更は、Admin Consoleでは行うことができません。サーバー側での設定が必要です。詳細についてはお問い合わせください。

2.2.2. エッジアカウント#

  • エッジアカウントは、エッジを作成する権限を持つユーザーが作成します。 通常は、intdashドメインのグローバルレベルでmemberロールを持つユーザーはエッジアカウントを作成できます。

  • ユーザーがエッジアカウントを作成すると、ユーザーはそのエッジの所有者となります。

  • エッジアカウントの所有者とintdashドメインの管理者は、エッジアカウントを編集したり削除したりできます。

  • intdashドメインの管理者は、エッジアカウントの所有者を変更することができます。また、エッジアカウントに所有者がない状態にすることもできます。

2.2.3. 用途によるユーザーとエッジの使い分け#

基本的に、時系列データを発生させてintdashサーバーに送信するのは「エッジ」です。 また、intdashサーバーから時系列データを受信して動作する物(遠隔操作されるロボットなど)も「エッジ」です。

「ユーザー」は、時系列データの閲覧やダウンロード、エッジの管理を行います。同じドメイン内であれば、自分の所有でないエッジのデータも閲覧することができます。

使用するアプリケーション、SDK

認証(ログイン)に使用するアカウント

使用する認証情報

ウェブアプリケーション

Data Visualizer、Meas Hub、Edge Finderなど

ユーザー

ユーザー名とパスワード

閲覧用モバイルアプリケーション

Stream Video、Stream Monitor、VM2M Viewer

ユーザー

ユーザー名とパスワード

計測用モバイルアプリケーション

intdash Motion

ユーザー

ユーザー名とパスワード

intdash SDK for Python

ユーザー

APIトークン、またはユーザー名とパスワード(ユーザー名とパスワードは非推奨になる予定です)

intdash Edge Agent、Terminal System

エッジ

クライアントシークレット

重要

  • intdash Motionを使用する際はユーザーアカウントでログインしますが、データの取得・送信はエッジとして行う必要があります。どのエッジとしてデータを取得・送信するかはintdash Motionの設定画面で設定します。

  • intdash SDK for Pythonを使用する際はユーザーアカウントで認証します。 リアルタイムデータの送受信はエッジとして行う必要があるため、Pythonコード内でアップストリームまたはダウンストリームを作成する際は、どのエッジとして送受信を行うかを指定してください。詳細については、intdash SDK for Pythonのドキュメントを参照してください。

注意

以前のintdashを使用されていた方への補足

以前のintdash(My Pageアプリケーションのバージョン番号では2.4まで)と新しいintdashでは、「エッジ」の意味が若干異なります。以下の点についてご注意ください。

新しいintdashでは、ユーザー(人)とエッジ(デバイス)が区別されます

  • 以前のintdashでは、intdashに接続する人とデバイスを区別なく「エッジ」と呼んでいました。

  • 新しいintdashでは、intdashに接続する人は「ユーザー」と呼び、intdashに接続するデバイスは「エッジ」と呼んで、人とデバイスを区別しています。

新しいintdashでは、エッジアカウントでウェブアプリケーションにログインすることはできません

  • 以前のintdashでは、エッジアカウントにパスワードが発行され、エッジ名とパスワードを使ってウェブアプリケーションにログインすることができました。

  • 新しいintdashでは、エッジアカウントはデバイス専用であるため、エッジアカウントによるウェブアプリケーションの利用は想定されていません。 そのため、エッジアカウントにはパスワードは発行されず、エッジ名とパスワードを使ってウェブアプリケーションにログインすることはできません。

新しいintdashでは、エッジアカウントの設定は所有者のユーザーが行います

  • 以前のintdashでは、エッジアカウントを使ってMy Pageにログインすることにより、エッジアカウント自身の設定ができました。

  • 新しいintdashでは、エッジアカウントの設定はそのエッジの所有者であるユーザーがMy Pageで行ってください。

    また、intdashドメインの管理者は、ドメイン内のすべてのエッジアカウントの設定を行うことができます。

2.3. 計測#

intdashでは、ある基準時刻を共有した時系列データポイントの集まりを「計測(Measurement)」と呼びます。

例えば、以下の図の例は、2020年9月1日9時00分00秒に開始された計測を表します。

../_images/concept-measurement.ja.png

図 2 計測の概念#

計測開始を基準時刻として、その基準時刻からの経過時間0.10秒では速度15.0km/h、経過時間0.15秒では17.5km/h、経過時間0.30秒では19.5km/h…といったデータポイントが存在しています。これら、1つの基準時刻を持つ一連のデータポイントの集まりが、計測です。

計測には、そのデータを送信したエッジ(計測を行ったエッジ)の情報が必ず記録されます。 そのため、Meas Hub等のアプリケーションで、「特定のエッジから送信された計測だけを一覧する」といったことが可能です。

注釈

intdashは、時系列データポイントの時刻を、基準となる時刻(基準時刻)とその基準時刻からの経過時間に分解して管理します。 詳細については、 詳説iSCP 1.0 を参照してください。

2.4. プロジェクト#

プロジェクトは、計測をまとめて管理するための仕組みです。intdashで作成された計測は必ずいずれかのプロジェクトの計測として扱われます。

アクセス権が設定されたユーザーおよびエッジだけが、そのプロジェクトにアクセスできます。

ユーザーがProject Consoleアプリケーションを開くと、自分がアクセスできるプロジェクトの一覧が表示されます。 Project Consoleでプロジェクトを選択し、そこからData Visualizerなどのアプリケーションを開くことで、そのプロジェクトのデータにアクセスすることができます。

プロジェクトを使用する各エッジデバイスでは、使用するプロジェクトのUUIDを設定しておく必要があります(後述のGlobal Projectを使用する場合を除く)。

プロジェクトには1名以上のオーナー(オーナーとして設定されたユーザー)が存在します。 プロジェクト作成者は自動的にそのプロジェクトのオーナーになります。 プロジェクトのオーナーには全ロールが付与されます。また、プロジェクトの削除およびオーナーの追加/除外はオーナーのみが行うことができます。

プロジェクトを作成する際は、グループ内に作成します。 作成されたプロジェクトはそのグループに所属することになり、グループで設定されたメンバーのアクセス権がプロジェクトに継承されます。

注釈

intdashドメインによっては、Global Projectという名前のプロジェクトが存在する場合があります。 Global Projectはグループに所属しない特別なプロジェクトで、そのintdashドメイン内のすべてのユーザーおよびエッジがアクセスできます。

intdashドメイン内でプロジェクトを区別する必要がない場合は、Global Projectを使用します。

Global Projectはデフォルトのプロジェクトであるため、プロジェクトを指定しないでウェブアプリケーションを開いた場合(例えば、Data VisualizerのURL https://example.intdash.jp/vm2m/ に直接アクセスした場合)は、Global Projectのデータが表示されます。 また、プロジェクトを指定しないでエッジからデータを送信した場合、Global Projectのデータとして扱われます。

Global ProjectのプロジェクトUUIDは 00000000-0000-0000-0000-000000000000 です。

2.5. グループ#

グループは複数のプロジェクトの集合です。プロジェクトに誰がアクセスできるのかをまとめて管理するために使用します。 グループに設定されたメンバーとロールは、そのグループに属するプロジェクトに継承されます。

また、グループ内にさらにグループを作成することもできます(サブグループ)。 サブグループを作成すると、親グループに設定されたメンバーとそのロールがサブグループに継承されます。 作成するサブグループの階層数に制限はありません。

グループには1名以上のオーナー(オーナーとして設定されたユーザー)が存在します。 グループ作成者は自動的にそのグループのオーナーになります。 グループのオーナーには全ロールが付与されます。また、グループの削除およびオーナーの追加/除外はオーナーのみが行うことができます。

グループを削除すると、そのグループの下位に所属するグループおよびプロジェクトのデータがすべて削除されます。

注釈

グループにはメンバー(ユーザー)を設定することができますが、エッジを設定することはできません。プロジェクトにアクセスするエッジは各プロジェクトで設定してください。

2.6. サブグループやプロジェクトへのメンバーの継承#

前述のとおり、プロジェクト/サブグループは親グループで設定されたメンバーとロールを継承します。

継承したメンバー以外に、プロジェクト/サブグループで直接メンバーを追加することも可能です。 しかし、プロジェクト/サブグループで、親グループから継承されたメンバーやロールを削除することはできません。

../_images/concept-group-project-inheritance.ja.png

図 3 親グループからのメンバーの継承#

2.7. テナント#

ご使用の環境によっては、intdashサーバーへのログイン時に「テナントID」の入力欄が表示される場合があります。 その場合は、サーバー管理者から受け取ったテナントIDを入力してください。 これにより、intdashサーバーの特定のテナントにログインします。

「テナント」は、1つのintdashサーバー上で、ユーザーおよびそのデータを分ける単位です。 サーバー上では、作成されたデータはすべてテナントを区別して管理されており、テナントが異なれば別のintdashドメインであるかのように扱われます。 ある1つのテナントのユーザー(またはエッジ)は、別のテナントのデータにアクセスすることはできません。

intdashサーバーへのログイン時にテナントID入力欄が表示され、使用すべきテナントIDが不明の場合は、サーバー管理者にお問い合わせください。

ログイン画面のテナントID入力欄を空欄にした場合は、デフォルトのテナントを指定したことになります。