バックエンド機能の構成

データ構造の概要#

Hexabase は、複数のデータベース管理システムを組み合わせてデータを管理しています。

ひとつは、グローバルなスケーラブルなドキュメント指向データベース MongoDB です。そして、キャッシュにはインメモリベースの Redis、リレーションには ArangoDB、ユーザー情報とトランザクションには MySQL を採用しています。

どのデータベース管理システムをどの機能に利用するか、あらかじめ決められています。アプリケーションの開発者は、どのデータベース管理システムを利用するか気にする必要はありません。

データ構造の概要

Hexabase の機能階層#

Hexabase は、次のような機能階層を持っています。

データ構造の概要

ワークスペースとアプリケーション#

「ワークスペース」は、Hexabase のアプリケーションをまとめておく領域です。ワークスペースごとに、複数のアプリケーションをまとめることができます。また、ワークスペースごとに、ユーザーやグループを分離できます。

Hexabase のワークスペースは、一種のテナント機能を提供するものです。ワークスペースごとに利用者を分離して、アプリケーションを提供できます。

Hexabase では、「アプリケーション(プロジェクト)」ごとに、データベース・データレポート・ダッシュボードなどをまとめます。新しくワークスペースを作成すると「新しいアプリケーション」という名前のアプリケーションが作成されています。

ワークスペースとアプリケーション

ワークスペースの選択#

ワークスペースとアプリケーションの選択の実装例です。 ユーザーは複数のワークスペースに所属できるため、ログイン後にワークスペースとアプリケーションの選択画面を表示しています。

ワークスペースの選択

データベースの構成要素#

Hexabase では、「データベース」に業務データを格納します。「データベース」は、表のようなイメージでデータを表示できます。この「データベース」が RDB のテーブルに相当します。Hexabase は、リレーショナルデータベース(RDB)ではありませんが、独自のデータベース間の関連付けが可能です。

Hexabase では、データベースの各データを「アイテム」と呼びます。表の横1行がアイテムになります。一般的な RDB のレコードに相当します。また、「アイテム」のカラムを「フィールド」または「項目」と呼びます。

Hexabase は、管理画面のビューを使って、データをメンテナンスできます。 そのために、Hexabase は、「テーブルビュー」「ボードビュー」「グリッドビュー」という 3 つのビューを持っています。

ビューは、サーバーサイドで表を表示・操作する機能です。主に、管理画面で状況を把握したり、データをメンテナンスする用途を想定しています。

データベースの構成要素

アクションとワークフロー#

Hexabase では、「アクション」により、アイテムに対して指定した操作を実行できます。アイテムの作成・更新・削除といった基本的なアクションは、あらかじめ用意されており、さらにアイテムに対する共通操作を登録できます(例:外部 API の呼び出し)。これにより、データベースに対する操作を共通化できます。

アクション

さらに、データベースに「ステータス」(status)というフィールドがあると、自動的にワークフローの手順名として利用できます。ワークフローのステータスを変更するには、「ステータス」フィールドを更新する「アクション」を実行します(例:次のステータスに進める)

ステータス

状態遷移をベースとした BPM ワークフロー#

Hexabase を用いたシステム開発では、アイテムの状態(ステータス)と状態変化を起こすアクションを組み合わせることで、効率的かつ汎用的な画面設計が可能です。

ステータスフロー

データベースの関連付け#

Hexabase は、NoSQL データベースを採用しており、SQL の知識やスキルがなくても、データベースを操作できます。また、動的に、データベースや関連付けを容易に追加できるようになっています。データベースの論理設計には、E-R 図が有効です。

「データベース関連」 と「データリンクキー」は、複数のデータベースを関連付ける機能です。一般的なリレーショナルデータベースの「リレーション」に相当します。

なお、関連付けした結果は「データレポート」で出力します。このとき、出力するデータを「データソース設定」の「データベースの結合」と、「出力フィールドの設定」で指定します。

データベースの関連付け

データレポートとダッシュボード#

「データレポート」は、データベースの特定のアイテムやフィールドだけを表示したり、連結・集計したりできる機能です。Hexabase では、「データレポート」を使って報告書(レポート)用の表を作成できます。また、ダッシュボードのグラフ(チャート)も、データレポートを基に作成します。

「ダッシュボード」は、複数のグラフ(チャート)をまとめる領域です。「ダッシュボード」に表示するグラフは、「データレポート」をもとに作成します。

ダッシュボードは、サーバーサイドでチャートをレンダリングして表示します。主に、管理画面で状況を把握する用途を想定しています。

フロントエンドでグラフなどを表示する場合は、データレポートをソースとして独自のグラフ表示ライブライを利用するといいでしょう。

データベースの関連付け