Hexabase によるシステムの構成

ここでは、Hexabase アプリケーションのシステム構成について説明します。

アプリケーションのシステム構成#

Hexabase は、Web システムのバックエンドを提供します。フロントエンドは、Hexabase の機能を API 呼び出しする形でスクラッチ開発できます。バックエンド拡張が必要な場合は、FaaS など を利用します。

アプリケーション構成

レイヤーフロントエンドバックエンド(Hexabase)バックエンド拡張
役割操作画面データベース定義 業務フロー定義 アクセス制御データ処理ロジック 外部連携
実装言語 実現手段JavaScript TypeScriptブラウザでの設定作業 Hexabase CLI Hexabase SDKC# Python Nodejs Java など
実装フレームワークSPA React Vue Angular---FaaS AzureFunctions AWS Lamda GCP Cloud Functions API 連携

フロントエンド開発の利用技術#

Hexabase のフロントエンドは、 SPA フレームワークにより、スクラッチ開発できます。

フロントエンド技術は進化の早い領域ですが、2020 年には React・Vue.js・Angular が人気を集めています。

https://2020.stateofjs.com/en-US/technologies/front-end-frameworks/

ReactVueAngular
採用技術Virtual DOMVirtual DOMVirtual DOM
JSX静的 HTML templates静的 HTML templates
GitHub stars159k175k67k
npm weekly downloads8,882,5621,963,4892,072,443
学習コストやや高い標準高い
フレームワークサイズ
大規模開発〇正しいコンポーネント分割が必須〇可能だが、比較的シンプルなサイト開発に向いている△ 大規模化すると複雑性が増す

バックエンド拡張の利用技術#

Hexabase のバックエンド拡張は、以下のようなケースで利用します。

  • メール送信などの通知(Hexabase からの出力)
  • 特別な計算処理(Hexabase 内データの更新)
  • 外部システムとのデータ連携(外部から Hexabase への入力を含む)

実装方法には、主に次の 4 種類があります。

API 連携#

Hexabase 内にある API 連携機能(WebHook)で、外部 Web サービスの API を呼び出します。

  • プラットフォーム:Hexabase +各 Web サービス
  • 開発言語:なし
  • 追加費用:各 Web サービスの利用料
  • 用途:メール連携、決済/請求、カレンダー など

ActionScript(Hexabase)#

Hexabase 内にある拡張プログラム呼び出し機能

  • プラットフォーム:Nodejs
  • 開発言語:JavaScript
  • 追加費用:なし
  • 用途:ごく小規模なプログラム実行に最適化

FaaS#

Function as a Service としてサービス提供されている仕組みを利用する

  • プラットフォーム:Azure Functions、AWS Lamda, GCP Cloud Functions
  • 開発言語:C#,Python,Java,Node(JavaScript)など
  • 追加費用:実行時間による課金
  • 用途:ある程度の本格的なサービス開発も可能

独自実装#

独自のマイクロサービスを開発

  • プラットフォーム:自由に選定可能
  • 開発言語:自由に選定可能
  • 追加費用:サーバ利用料、システム運用コスト
  • 用途:独自のサービス