いよいよACRも公開できる段階まで到達した。
帳票アプリケーションという性質上、運用後にはサポート対応が発生する可能性がある。そのため、ライセンス認証の仕組みは必須であると判断した。
・帳票エンジンの特性
以前、AIに帳票エンジンの特性を確認した際に、次のような指摘があった。
「帳票は1ドットでもずれると正しい出力にならない。」
この性質により、帳票エンジンは単なる描画処理ではなく、システム全体の中核となるコンポーネントとなる。
画面表示(Pixel)と印刷(DPI)の差を吸収しながら、常に同一の結果を出し続ける必要がある。また、帳票はプリンタというハードウェアとの連携が前提となるため、この部分の制御も重要になる。
結果として、低レイヤ制御が可能なC/C++系の言語が現実的な選択肢となる。
・ライセンス認証導入の判断
これらの特性を踏まえ、今後のリリースおよびサポート体制を考えた場合、一定の利用状況を把握できる仕組みが必要であると判断した。
その手段として、ライセンス認証を導入することにした。
・ライセンスサーバの実装
昨年、Windowsデスクトップアプリ向けにライセンスサーバを構築した実績があるため、その構成をベースにした。
今回は仕様を細かく固定せず、使用言語のみRustを指定して実装を行った。
その結果、基本構成は短時間で組み上がった。
構成は以下の通りである。
Web画面からのデータ登録
データベースへの保存
ユーザへのメール送信
HTMLについては必要最低限の構成であったが、機能としては十分に成立していた。
・追加機能
その後、運用を想定して以下の機能を追加した。
Google / GitHub アカウントによるログイン
メールアドレスの正当性確認(MXレコード確認)
日本語 / 英語の多言語対応
ここまで含めても、全体の実装は約3日程度で完了した。
なお、最も時間を要したのはGoogleおよびGitHubの認証設定であった。
・ACR本体への組み込み
ライセンスサーバとは別に、ACR本体側にもライセンス機能を組み込んだ。
この対応は既存構造への追加として実施したが、実装自体は短時間で完了した。
