主な概念#
My Page v3.6.0 / Meas Hub v1.10.0 / Media Explorer v1.5.0 / Edge Finder v2.11.0 / Project Console v1.2.0 /Admin Console v1.7.0
本章では、intdashで使用される主な用語と概念について説明します。
エッジ#
intdashサーバーにデータを送信したり、intdashサーバーからデータを受信したりするデバイスをエッジと呼びます。
例えば、センサーを使ってデータを取得しintdashサーバーに送信するデバイスや、遠隔操作信号をサーバーから受信して動作するデバイスがエッジにあたります。
サーバーを介することにより、エッジとエッジの間で双方向にデータを送信することができます。
エッジがintdashサーバーに接続するためには、エッジ用のアカウントが必要です。
エッジアカウントは、各ユーザーのMy Pageで作成することができます。またグローバルコンテキストでadminロールを持つユーザーは、Admin Consoleでエッジアカウントを作成することができます。
各ユーザーがMy Pageで作成したエッジは、各ユーザーの所有になります。Admin Consoleで作成されたエッジは所有者がありませんが、Admin Consoleで所有者を設定することができます。
エッジアカウントを作成すると、認証情報(エッジのUUIDとクライアントシークレット)が発行されます。これをエッジデバイスに設定して使用します。
計測#
エッジからデータをintdashサーバーに送信するとき、データ取得開始から終了までの、一続きの時系列データを計測と呼びます。 また、計測が開始された時刻を基準時刻と呼びます。
例えば、以下の図の例は、2020年9月1日9時00分00秒に開始された計測を表します。
この例には、基準時刻からの経過時間0.10秒では速度15.0km/h、経過時間0.15秒では17.5km/h、経過時間0.30秒では19.5km/h…といったデータポイントがあります。このような、1つの基準時刻からの一連のデータポイントの集まりが、計測です。
計測には、そのデータを送信したエッジ(計測を行ったエッジ)の情報が必ず記録されます。 そのため、Meas Hub等のアプリケーションで、「特定のエッジから送信された計測だけを一覧する」といったことが可能です。
注釈
intdashでは、時系列データポイントの時刻を、基準となる時刻(基準時刻)とその基準時刻からの経過時間に分解して管理しています。 詳細については、 詳説iSCP 1.0 を参照してください。
ユーザー#
intdashに接続するデバイスをエッジと呼ぶのに対して、intdashに接続する人はユーザーと呼びます。
ユーザーは、ウェブアプリケーションやモバイルアプリケーションを使ってintdash上のデータを閲覧したり操作したりします。 ユーザーがintdashを使用するには、ユーザーアカウントが必要です。
ユーザーアカウントは、グローバルコンテキストでadminロールを持つユーザーが作成できます。
ウェブアプリケーションを使用するときは、ユーザーがユーザー名とパスワードでログインします。 ユーザーがintdash APIを直接使用したい場合は、My PageでAPIトークンを発行して使用することもできます。
重要
モバイルアプリケーションであるintdash Motionを使用する際はユーザーとしてログインしますが、データの送信はエッジとして行う必要があります。どのエッジとしてデータを送信するかはintdash Motionで設定します。
注意
以前のintdashを使用されていた方への補足
以前のintdash(My Pageアプリケーションのバージョン2.4まで)と新しいintdashでは、「エッジ」の意味が若干異なります。以下の点についてご注意ください。
新しいintdashでは、ユーザー(人)とエッジ(デバイス)が区別されます
以前のintdashでは、intdashに接続する人とデバイスを区別なく「エッジ」と呼ばれていました。
新しいintdashでは、intdashに接続する人は「ユーザー」と呼び、intdashに接続するデバイスは「エッジ」と呼んで、人とデバイスを区別しています。
新しいintdashでは、エッジアカウントでウェブアプリケーションにログインすることはできません
以前のintdashでは、エッジアカウントにもパスワードが発行され、エッジ名とパスワードを使ってウェブアプリケーションにログインすることができました。
新しいintdashでは、エッジアカウントはデバイス専用であるため、エッジアカウントのパスワードは発行されません。そのため、エッジアカウントでウェブアプリケーションにログインすることはできません。
新しいintdashでは、エッジアカウントの設定は所有者のユーザーが行います
以前のintdashでは、エッジアカウントのパスワードを使ってMy Pageにログインすることにより、エッジアカウント自身の設定ができました。
新しいintdashでは、エッジアカウントの設定はそのエッジの所有者であるユーザーがMy Pageで行います。
また、グローバルコンテキストでadminロールを持つユーザーは、すべてのエッジアカウントの設定を行うことができます。
プロジェクト#
プロジェクトは、計測等のデータへのアクセスを管理するための仕組みです。 そのプロジェクトに所属するユーザーやエッジのみが、プロジェクト内にアクセスすることができます。
ユーザーやエッジが計測などのデータにアクセスする場合は、まずプロジェクトを指定し、そのうえで、プロジェクト内のデータにアクセスします。
ユーザーがウェブアプリケーションを使用する場合を例にすると、ユーザーはまずProject Console開き、プロジェクトを選択します。 そのうえで、Meas HubやData Visualizerなどのアプリケーションを起動し、プロジェクトからデータを読み込みます。
エッジデバイスにおいても、どのプロジェクトを使用するかを設定しておく必要があります。
プロジェクトを作成したユーザーは、自動的にそのプロジェクトのオーナーになります。 プロジェクトのオーナーにはそのプロジェクトにおける全ロールが付与されます。また、プロジェクトの削除およびオーナーの追加/除外はオーナーのみが行うことができます。
注釈
プロジェクトにユーザーを追加しても、そのユーザーが所有するエッジはプロジェクトに追加されません。 エッジは別途追加する必要があります。
ロールとコンテキスト#
ロールは、ユーザーがどのような操作ができるか(権限)を定義したものです。
ユーザーが何らかの操作を行うときには、操作を行うコンテキストにおいてユーザーが持っているロールが効力を持ちます。 コンテキストには以下の種類があります。 各コンテキストでユーザーにこれらのロールを割り当てることにより、アクセス制御を行います。
コンテキストの種別 |
コンテキスト内での操作 |
ロールと許可される操作の例 |
---|---|---|
グローバルコンテキスト |
ユーザーやエッジの作成、名前の変更、削除など |
グローバルコンテキストでadminロールを持つユーザーは、Admin Consoleを使用してユーザーやエッジを作成できます。 |
グループコンテキスト |
グループへのユーザーの割り当て、グループ内でのプロジェクトの作成 |
あるグループのコンテキストでadminロールを持つユーザーは、グループにメンバーを追加できます。 |
プロジェクトコンテキスト |
プロジェクトへのユーザーやエッジの割り当て、計測の確認、削除など |
あるプロジェクトのコンテキストでadminロールを持つユーザーは、プロジェクトにメンバーを追加できます。 あるプロジェクトのコンテキストでadminまたはmemberロールを持つユーザーは、プロジェクトに自分のエッジを追加できます。 |
通常は、「admin」、「member」という少なくとも2つのロールが用意されています。
プロジェクト/グループコンテキストのロールは、グローバルコンテキストのロールとは関係なく設定することができます。 例えば、グローバルコンテキストでmemberであるユーザーが、プロジェクトにおいてadminロールを持つことは可能です。
グループに設定されたロールは、グループ内のサブグループやプロジェクトに継承されます。
ある操作を許可されたロールと許可されていないロールが1人のユーザーに設定されている場合、許可のほうが優先され、ユーザーはその操作を行うことができます。
例えば、プロジェクトXにおいて、ユーザーAがadminロールとmemberロールの両方を持っているとします。プロジェクトにおけるadminロールはメンバーの追加が許可されており、memberロールは許可されていません。この場合、許可のほうが優先されるためユーザーAはメンバーの追加を行うことができます。
新しいロールの定義や、ロール定義の変更を行うにはサーバー側での設定が必要です。詳細についてはお問い合わせください。
注釈
ユーザーのMy Pageに表示される自分のロールは、グローバルコンテキストでのロールです。 また、管理者がAdmin Consoleでユーザーを作成するときに設定するロールはグローバルコンテキストのロールです。
注釈
後述する Global Project は1つのプロジェクトです。 グローバルコンテキストのロールと、Global Projectというプロジェクトにおけるロールは別のものです。
グループ#
グループは、複数のプロジェクトにおける権限をまとめて管理するために使用します。 グループに設定されたメンバーとロールは、そのグループ内のプロジェクトに継承されます。
また、グループ内にさらにグループを作成することもできます(サブグループ)。 サブグループを作成すると、親グループに設定されたメンバーとそのロールがサブグループに継承されます。 サブグループの階層数に制限はありません。
(以下の図の矢印は「子→親」の方向で描かれています)
グループには1名以上のオーナー(オーナーとして設定されたユーザー)が存在します。 グループ作成者は自動的にそのグループのオーナーになり、全ロールが付与されます。 また、グループの削除およびオーナーの追加/除外はオーナーのみが行うことができます。
継承したメンバー以外に、プロジェクト/サブグループで直接メンバーを追加することも可能です。 しかし、親グループから継承されたメンバーやロールを削除することはできません(親グループで設定されたロールを打ち消すことはできません)。
グループを削除すると、そのグループに含まれるプロジェクト(サブグループに含まれるプロジェクトを含む)は削除されます。プロジェクト内の計測および計測に関連するデータは、プロジェクトとともに削除されます。
グループやプロジェクトを削除した場合、そこでのユーザーの割り当ては削除されますが、そのユーザーのアカウント自体は残っていますので、ユーザーは他のプロジェクトを使い続けることができます。エッジの場合も同様です。
注釈
グループでは、メンバーとしてユーザーを設定することができますが、メンバーとしてエッジを設定することはできません。エッジは各プロジェクトで設定してください。
Global Project#
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
です。
注釈
お使いの環境によっては、新く作成されたユーザーとエッジは自動的にGlobal Projectに追加されます。 この場合、以下のようになります。
新しく作成されたユーザーは自動的にGlobal Projectに追加されます。 このとき、ユーザー作成時に選択されたロール(グローバルコンテキストのロール)と同じロールがプロジェクト内でのロールとして設定されます。 例えば、グローバルコンテキストでmemberとして作成されたユーザーは、Global Projectにmemberとして追加されます。
新しく作成されたエッジは自動的にGlobal Projectに追加されます。 このとき、エッジ作成時に設定されたエッジの名前(または、表示名も設定した場合は表示名)が、Global Projectでのそのエッジの「プロジェクト内での名前」として設定されます。
既存のエッジの「プロジェクト内での名前」と重複してしまう場合は、新しいエッジの「プロジェクト内での名前」に、区別のための文字列(エッジIDの先頭8文字)が追加されます。 例えば、Global Projectに「edge1」という「プロジェクト内での名前」を持つエッジが既に存在する場合に、edge1という名前を持つエッジが追加されると、追加されたエッジの「プロジェクト内での名前」は、「edge1_1dd96b63」のようになります。
Global ProjectはGlobal Groupに所属しています。 Global GroupはGlobal Projectのためのグループで、通常はこのグループについての操作が必要になることはありません。 グローバルコンテキストでadminロールを持つユーザーもGlobal Groupの設定を変更することはできません。
ドメイン(intdashドメイン)#
intdashサーバーを中心とする、1つのintdash使用環境をドメイン(またはintdashドメイン)と呼びます。
intdashサーバーに接続できるのは、そのドメインで発行されたアカウントを持つユーザーとエッジのみです。
テナント#
ご使用の環境によっては、intdashサーバーへのログイン時に「テナントID」の入力欄が表示される場合があります。 その場合は、テナントIDを入力してログインしてください。 これにより、intdashサーバーの特定のテナントにログインします。
注釈
テナントIDが不明の場合は管理者にお問い合わせください。
テナントID入力欄を空欄にした場合は、デフォルトのテナントを指定したことになります。
テナントは、1つのintdashドメインを、仮想的に2つ以上のintdash環境として使用するための仕組みです。 サーバー上では、データはすべてテナント別に管理されており、テナントが異なれば別のintdashドメインであるかのように扱われます。
例えば、intdashサーバー https://example.intdash.jp/
にテナントAとテナントBがある場合、テナントAとテナントBはユーザーやエッジにとってはまったく別の環境です。
テナントAのユーザーやエッジのアカウントで、テナントBを使用することはできません。
テナントの作成はインフラ管理者のみが行うことができます。