Skip to main content

Hexabaseの機能構成

Hexabase の機能階層

システムのバックエンドを担うHexabaseは、次のような機能階層を持っています。

データ構造の概要

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

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

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

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

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

ワークスペースの選択

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

ワークスペースの選択

データストアの構造

Hexabaseでは、複数のNoSQLデータべースを統合して、RDBMSライクな独自のデータストレージを実現しています。このおかげで、従来のDB設計技術を活かしながら、データベースのボトルネックを解消します。

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

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

データ構造の概要

データストアの構成要素

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

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

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

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

データベースの構成要素

データベースの関連付け

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

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

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

なお、データベースの論理設計には、ER図などの既存のDB設計技術が有効です。

データベースの関連付け

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

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

ステータスフロー

アクション

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

アクション

ステータス

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

ステータス

ActionScriptによるビジネスロジックの記述

Hexabaseでは、データベースのアイテムに対する操作をアクションと呼びます。このアクションに、Javascriptのコードを割り当てることができます。これがActionScriptです。

ActionScriptでは、アクションを呼び出すことで、割り当てたコードを実行します。簡単なビジネスロジックは、このActionScriptとして実装します。

ActionScript

バックエンド拡張

Hexabaseは、ActionScriptに加えて、WebHookによる外部連携でバックエンドを拡張できます。

Webhookを利用するには、該当するアクションにコールするURLとSecret情報を必要に応じて設定します。

バッチ処理では、AWS LambdaやAzureFunctionの『タイマー トリガー』を利用して、Hexabaseno機能を呼出します。

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

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

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

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

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

データベースの関連付け