COLUMN
2021年08月16日
システム品質を高めるHexabaseの技術要素
カテゴリー:サービス, テクノロジー
この記事では、Hexabaseの技術的なポイントとなる技術要素について解説します。対象となるのは、システムを開発するときに必要となる、ストレージやユーザー管理・アクセス制御、セキュリティなどです。
システムエンジニアのみなさんが技術的に評価をするポイントが、Hexabaseでどうなっているか、簡単に紹介します。
ストレージ
リレーショナルなDB設計とORマッピング
DB設計は、システムエンジニアがシステム開発に臨むとき、最も重要視する技術の筆頭です。いかに必要十分なDB設計をできるかが、システムの機能と信頼性・パフォーマンスを左右します。
なぜなら、顧客の要望を実現させながら、変更に強く、パフォーマンス劣化のない、安心安全なシステムを作るとき、DB設計が核になるからです。また、システム開発ビジネスにおいては、常に開発工数を最小化するための配慮も必要となります。
なかでも、情報システムにおいて、リレーショナルデータベースは必須のデータ管理技術となっています。一方で、システムの拡張や利用量の増加により、ボトルネックになりやすいポイントでもあります。
Hexabaseの特徴
Hexabaseは、複数のNoSQLデータべースを統合して、RDBMSライクな独自のデータストレージを実現しています。このおかげで、従来のDB設計技術を活かしながら、データベースのボトルネックを回避できます。
必要なデータは、APIを経由して、親子関係を持つJSON形式で取得・更新できます。フロントエンドでは、Javascriptフレームワークが持つORマッピング機能を利用して操作できます。
スケーリングとトランザクション機能
近年、データの爆発的増加や、ビックデータの活用などにより、単一のハードウェアに依存するRDBMSでは限界となるケースも増えてきました。
これからのシステム開発は、大量データを完全性を担保しながらスケーラブルに実装することができるかが問われています。
一方、ビジネスシステムにおいて、データの完全性は必須です。RDBMSの登場によって、完全な形でデータの整合が担保されるシステムを開発できるようになりました。もはやトランザクション整合なしでシステムを開発することはできません。
Hexabaseの特徴
Hexabaseのデータストレージは、NoSQLデータベースを統合することで、あらかじめスケーラビリティやデータ保守性を考慮して作られています。フロントエンドを開発する際にHexabaseAPIを利用するだけで、一連のトランザクションも担保されます。
関連ページ
システム開発
バックエンドAPI
Webサービス/Webアプリケーションは、ネット上に公開されたAPIを呼び出すことで、機能を制御します。
Webサービスとして業務システムを開発する場合、機能に即したよく整理されたAPIが必要になります。しかし、システム開発の度にAPIを設計・テストし、保守していくことは多くの工数が必要となります。また、許可されたユーザーは安全にアクセスでき、第3者による不正侵入を防ぐため、APIの堅牢な設計とテストが不可欠です。
Hexabaseの特徴
Hexabaseを利用することで、あらかじめ設計・テストされた優れたAPIをすぐに利用できます。データストレージやユーザー管理といった機能を、RESTfulなAPIで呼出しして、JSON形式のデータを取得します。
APIは、ベアラートークンで認証し、ログインしたユーザーの権限に従って、機能の呼出し・データの取得が許可されます。そのため、システム開発のたびに、APIを設計・テストする必要はありません。
関連ページ
データの状態管理
業務データは、ほとんどのケースで「状態」(ステータス)を持っています。ビジネスロジックは、この状態に合わせて、適切にアクセス制御・処理の切り替えなどをおこなう必要があります。
状態遷移を管理する機能を備えていれば、業務システムの開発を効率よく進めることができます。通常、このような処理のためにワークフローエンジン・BPMエンジンなどが利用されます。
例:業務データの状態-受注登録なら、新規→入力中→承認待ち→計上待ち→受注登録済-発注管理なら、注文起票→入力中→発注待ち→承認済→手配中→入荷待ちなど。
Hexabaseの特徴
Hexabaseは、標準でデータの状態遷移を管理する機能を備えています。状態遷移管理を設定ベースで実現でき、データアイテムごとに状態の遷移・アクセス制御・処理の切り替えを簡単に実現できます。
関連ページ
採番管理
業務システムでは、データを一意に表現するため、ユニーク番号の採番が欠かせません。たとえば、多くのケースで、親番号+枝番号などのような採番体系が必要になります。
システム開発時には、同じような採番ロジックを繰り返し設計・実装することになります。
例:ユニーク番号の発売受注番号、顧客番号、発注番号・・・・
Hexabaseの特徴
Hexabaseでは、ユニークな番号を採番する自動採番型フィールドと採番API(GetAutoNumberAPI)を備えています。これを利用することで、親子関係を持った採番体系を設定ベースで実現できます。
関連ページ
システム拡張/バッチ処理
業務システムに求められる機能は、お客様によって様々です。単一のパッケージアプリケーションやSaaS・クラウドサービスだけでは、お客様が必要とする要件を満たせない場合も多いでしょう。
そのために、柔軟で使いやすいシステム拡張機能やバッチ処理が必要になります。
このような拡張機能の開発は、システム開発工数の大きな割合を占めています。また、独自のテクノロジーを利用しすぎると、長期的な保守性が下がってしまいます。
Hexabaseの特徴
Hexabaseは、次のような複数のシステム拡張機能/バッチ処理を備えており、お客様の要件に応じて、柔軟なシステム拡張を効率よく進めることができます。
- API連携:Hexabase内にあるAPI連携機能(WebHook)で、外部WebサービスのAPIを呼び出します。
- ActionScript(Hexabase):Hexabase内にある拡張プログラム呼び出し機能です。小規模なJavascriptコードの実行に最適です。
- FaaS:AWSLamdaやAzureFunctionsなど、FunctionasaServiceとしてサービス提供されている仕組みを利用します。バッチ処理は、IaaSが提供するCronなどで実現します。
関連ページ
- Hexabaseによるシステムの構成|Hexabase開発ガイド
- ActionScriptの基本|Hexabase開発ガイド
- WebHookによるAPI連携|Hexabase開発ガイド
- バッチ処理の実現方法|Hexabase開発ガイド
共通機能
マスターメンテナンスと管理画面
スクラッチでシステムを開発するとき、全体画面数のうちの約2割を、マスター管理画面が占めています。マスター管理画面の機能は単純ですが、システム運用者がデータ変更する際にはどうしても必要になります。
開発工数のなかで大きな割合を占めているため、開発コストの上昇につながります。
Hexabaseの特徴
Hexabaseは、管理画面を標準装備しており、システムのマスターメンテナンスに利用できます。管理画面は、状態管理機能も備えており、あらかじめ設定しておいたワークフローに沿ったマスターメンテナンスが可能になります。
また、管理画面では、ユーザーやグループの管理、アクセス制御の設定など、Hexabaseのバックエンドのほとんどの機能を設定できます。
関連ページ
ユーザー管理とアクセス制御
ほとんどの業務システムで、ユーザーの認証と認可が重要かつ不可欠です。利用者を識別して、業務システムに対する閲覧・入力・編集・削除・承認といった適切な権限を与えるためです。そのために、ユーザー管理とアクセス制御機能が必要になります。
このような機能を正しく開発するには、優れた設計と実装、多くのテスト工数が必要になります。
Hexabaseの特徴
Hexabaseは、標準でユーザー管理とアクセス制御を備えています。
- ユーザーの登録、ログイン、ユーザー情報の更新
- ユーザーやグループなど、きめ細かなアクセス制御
- パスワードポリシー設定などのパスワード管理
関連ページ
マルチテナント機能
単独のシステムで、複数の企業や組織・ユーザーグループを取り扱うマルチテナントシステムを構築するには、アーキテクチャレベルで、機能の適切な分離とアクセス制御を実現する必要があります。
このようなシステムのスクラッチ開発は、シングルテナントシステムと比較して、数倍の開発工数が必要です。もちろん、シングルテナントシステムを並列に配置して運用することも可能ですが、保守・運用などの工数は、テナントが増えるほど増大し、複雑になります。
Hexabaseの特徴
Hexabaseは、あらかじめマルチテナントシステムを考慮したサービスです。ワークスペース・アプリケーション・ロールといった複数のアクセス権限レベルを持ち、要件に応じた柔軟なマルチテナント環境を構築できます。
関連ページ
*
私たちは、Hexabase上で動作するシステムの品質を高める技術をさらに充実させていきます。さらに詳しい情報は、次のドキュメントをご覧ください。