Generic Contract および Function の使用
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
Generic Contract は ScalarDL 3.10 で導入されましたが、ScalarDL 3.12 でリリースされた HashStore は、Generic Contract をラップしたより高次の抽象化を提供します。ほとんどのユースケースでは、Generic Contract を直接使用するよりも、HashStore を使用する方がシンプルで効率的です。詳細については、ScalarDL の最新版の ScalarDL HashStore をはじめようをご参照ください。
このガイドでは、ScalarDL で Generic Contract および Function を使用する方法について説明します。
Generic Contract および Function は、一般的なユースケース用に事前定義された Contract と Function です。現在、ScalarDL は、オブジェクトの真正性 管理とコレクションの真正性管理という2つの機能を提供しています。オブジェクトのハッシュ値を不変に設定して検証し、オブジェクトのコレクションを管理できます。たとえば、Generic Contract および Function を使用すると、独自の Contract と Function を記述しなくても、ファイルサービスや監査ログシステム用の真正性管理アプリケーションを簡単に開発できます。
背景
ScalarDL の Contract は、台帳データベースのアセットレコードの読み取りと書き込みを行う、電子署名された Java ベースのビジネスロジックです。ScalarDL の Function も、ScalarDB にアクセスし、単一のトランザクションで Contract と一緒に実行される Java ベースのビジネスロジックです。
Contract と Function を記述することで、独自の目的のためにさまざまなアプリケーションを開発できます。ただし、ScalarDL のデータモデルとインターフェースは従来のリレーショナルデータベースシステムとは少し異なるため、これらの Contract と Function の記述は難しい場合があります。そのため、ScalarDL では、一般的なユースケース向けに定義済みの Contract と Function を Generic Contract および汎用 Function として提供し、開発者がユーザーインターフェースなどのアプリケーション側に集中できるようにします。
ユースケース
データの真正性の管理は、オブジェクトの真正性管理とオブジェクトのコレクションの真正性管理の2つの方法に分類できます。ScalarDL の Generic Contract および Function は、これら両方をサポートしているため、真正性管理アプリケーションを簡単に開発できます。
オブジェクトの真正性管理では、ファイル、監査ログ、ファイルまたはオブジェクトストレージ内のディレクトリなど、あらゆる種類のオブジェクトの真正性を管理できます。
コレクションの真正性管理では、コレクション内に存在するオブジェクトを管理できます。たとえば、監査プロセスで検証する必要があるオブジェクトのコレクションを作成できます。
Generic Contract および Function を使用してこれらの機能を実現する方法については、以下のオブジェクトの真正性を管理するとコレクションの真正性を管理するの例を参照してください。
環境をセットアップする
このセクションでは、ScalarDL クライアントツールを介して Generic Contract および Function を使用し、ローカルファイルの真正性を確認します。アプリケーションで Generic Contract および Function を操作する 場合は、ScalarDL Java Client SDK API を使用できます。詳細については、Generic Contract を用いた ScalarDL アプリケーションを書くを参照してください。
JDK をインストールする
このガイドでは、Generic Contract および Function の動作を確認するために Java ランタイム環境のみを使用します。ただし、このガイド以外で独自の ScalarDL アプリケーションを構築するには、以下のいずれかの Java Development Kit (JDK) をインストールすることをお勧めします。
- Oracle JDK: 8、11、17、または 21 (LTS バージョン)
- OpenJDK ディストリビューション (Eclipse Temurin、Amazon Corretto、または Microsoft Build of OpenJDK): 8、11、17、または 21 (LTS バージョン)