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