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として実装します。
バックエンド拡張
Hexabaseは、ActionScriptに加えて、WebHookによる外部連携でバックエンドを拡張できます。
Webhookを利用するには、該当するアクションにコールするURLとSecret情報を必要に応じて設定します。
バッチ処理では、AWS LambdaやAzureFunctionの『タイマー トリガー』を利用して、Hexabaseno機能を呼出します。
データレポートとダッシュボード
「データレポート」は、データベースの特定のアイテムやフィールドだけを表示したり、連結・集計したりできる機能です。Hexabase では、「データレポート」を使って報告書(レポート)用の表を作成できます。また、ダッシュボードのグラフ(チャート)も、データレポートを基に作成します。
「ダッシュボード」は、複数のグラフ(チャート)をまとめる領域です。「ダッシュボード」に表示するグラフは、「データレポート」をもとに作成します。
ダッシュボードは、サーバーサイドでチャートをレンダリングして表示します。主に、管理画面で状況を把握する用途を想定しています。
フロントエンドでグラフなどを表示する場合は、データレポートをソースとして独自のグラフ表示ライブライを利用するといいでしょう。