Bucket と KiiObject
Kii Cloud 上にデータを作成するには、各スコープに紐付いた Bucket を作成し、その内部に KiiObjectを格納します。
これらの機能の全体像は「はじめに」の モバイル向け機能 で紹介しています。先にこちらをご覧ください。
Bucket
「はじめに」に示すように、Bucket は、アプリケーションスコープ、ユーザースコープ、グループスコープのいずれかに作成します。IoT ソリューションでは Thing スコープにも作成できます。
アプリケーションスコープでは、全ユーザーから共通してアクセスできる Bucket を作成できます。ユーザースコープとグループスコープでは、それぞれのユーザーやグループに対応付けて Bucket を作成できます。
Bucket を使うことで様々な利点が生じます。以下に Bucket を使用する目的を挙げます。
データ整理のため
KiiObject として格納するデータを、サービスで使いやすいように整理することができます。
検索のため
KiiObject を検索する際は、Bucket ごとに検索クエリーを実行します。1 つの検索クエリーでまとめて検索したい KiiObject を 1 つの Bucket に格納しておくことで、条件に合った KiiObject を取得できます。
セキュリティのため
Buket 単位で ACL ベースのアクセス権を設定できます。特定のユーザーやグループにだけアクセスさせたいデータを 1 つの Bucket に格納し、適切な ACL を設定することで、セキュリティのカスタマイズが容易になります。
KiiObject
KiiObject は JSON ドキュメント(キーと値のペア)と Object Body(ファイル)を持つことができるデータ構造です。
JSON ドキュメント(キーと値のペア)
Kii Cloud SDK では、キーと値のペアとして JSON ドキュメントの値を読み書きする機能を提供します。Kii Cloud SDK では、
object.set(key, value)
のようなメソッドを使って JSON ドキュメントにアクセスすることで、JSON が持つデータ表現の自由度を保持したまま、シンプルな実装を実現します。JSON パーサーも不要です。キーと値のペアを設定する際は、JSON オブジェクトを値として設定できるため、複数階層を持った JSON を使ってデータを表現することもできます。
Kii Cloud 上では JSON ドキュメントとして扱われるため、プラットフォームによるデータ表現の差違も吸収できます。Android で書き込んだデータを iOS で読み込むようなことも簡単に実現できます。
Object Body
Object Body はファイルなどの大きなデータを KiiObject に添付する仕組みです。
機能の概要は、後続のページ Object Body の利用 で説明します。
設計の自由度
Bucket と KiiObject の設計次第で、構築したいサービスの仕様に合わせた様々なデータ構造を実現できます。
たとえば、チャットのようなサービスを構築する際、設定データとメッセージを保存したいとします。設定データはユーザーごとに記憶させたいためユーザースコープの Bucket に、メッセージはユーザー間で共有したいためグループスコープの Bucket にそれぞれ保存すれば、適切にデータを扱うことができます。
また、健康管理アプリのように自分の測定データを共有したくない場合は、ユーザースコープの Bucket に格納すれば、他のユーザーからの参照を禁止することもできます。
Bucket へのアクセスはスケールするように設計されています。全ユーザーが単一 Bucket に集中してアクセスするようなボトルネックを発生させない限り、ユーザー数が増加してもパフォーマンスへの影響はありません。
データ構造を構築する際に必要な処理は、モバイルアプリからのデータ保存だけです。
サーバー側の実装や管理者による設定も不要であるため、クライアントの実装チームだけで、すぐに目的の機能を実現できます。
この機能の詳細は...
- Bucket と KiiObject の操作については、リファレンスガイドの「Bucket」(Android、iOS、JavaScript、REST)、および、「KiiObject」(Android、iOS、JavaScript、REST)を参照してください。
- KiiObject を使ったデータ表現では、データの意味づけによりツリーやグラフなどのデータ構造を表現することもできます。データ構造の例は、「データ構造の構築」(Android、iOS、JavaScript、REST)を参照してください。