2 最初のCoherenceアプリケーションの作成
ステップを追って、Coherenceの基本的な概念をいくつか示す基本的な例を作成および実行できます。
サンプル・アプリケーションは、簡単な"Hello, World!"アプリケーションであり、スタンドアロンのJavaアプリケーションとして実装されます。
使用するデプロイメント・タイプ、フレームワークまたは言語に応じて、「Coherenceでの様々なデプロイメント・モデル、フレームワークまたは言語の使用」を参照してください。
ノート:
この章の例は、基本的なものであり、一般的な概念を説明することのみを目的としています。より高度な例は、CoherenceのGitHubリポジトリにある例を参照してください。Oracle CoherenceのインストールのCoherenceの例の実行を参照してください。
この章の内容は次のとおりです。
- タスク1: Coherenceのインストール
Coherenceをまだインストールしていない場合は、インストールします。 - タスク2: サンプル・クラスタの構成と起動
キャッシュはCoherenceクラスタ上にホストされます。Coherenceを実行するJVMプロセスはすべて、実行時に自動的にクラスタに参加し、クラスタによって提供されるキャッシュおよびその他のサービスにアクセスできます。クラスタに参加したJVMは、クラスタ・ノードまたはクラスタ・メンバーと呼ばれます。 - タスク3: 基本のCoherenceスタンドアロン・アプリケーションの作成と実行
タスク3は、Hello Worldアプリケーションのサンプルと、このサンプルを実行して検証するためのステップを含む、マルチパートのステップです。 - Coherenceでの様々なデプロイメント・モデル、フレームワークまたは言語の使用
前述の"Hello, World!"サンプル・アプリケーションは、CoherenceとJavaを一緒に使用する方法の簡単なデモンストレーションです。
親トピック: はじめに
タスク1: Coherenceのインストール
Coherenceをまだインストールしていない場合は、インストールします。
Coherenceの商用エディションをインストールする場合は、Oracle CoherenceのインストールのOracle Coherence for Javaのインストールに関する項を参照してください。
COHERENCE_HOME
をインストールのCoherenceディレクトリのフルパスに置き換えてください。
親トピック: 最初のCoherenceアプリケーションの作成
タスク2: サンプル・クラスタの構成と起動
キャッシュはCoherenceクラスタ上にホストされます。Coherenceを実行するJVMプロセスはすべて、実行時に自動的にクラスタに参加し、クラスタによって提供されるキャッシュおよびその他のサービスにアクセスできます。クラスタに参加したJVMは、クラスタ・ノードまたはクラスタ・メンバーと呼ばれます。
この章のサンプル・アプリケーションでは、キャッシュ・サーバー・プロセスと"Hello, World!"アプリケーション・プロセスの2つの個別のJavaプロセスによってクラスタが形成されます。簡素化を図るため、この2つのプロセスは単一のマシン上に置かれます。この2つのプロセスは1つのコンピュータ上に共存します。キャッシュ・サーバーは、デフォルトでキャッシュ・データを格納するように構成されます。
この例では、デフォルト構成を変更してプライベート・クラスタを作成し、ネットワーク上で実行されている可能性のある既存のCoherenceクラスタに2つのプロセスが参加しないようにします。この例では、ほとんどのアプリケーションで十分なデフォルトのキャッシュ構成を使用しています。
この例では、システム・プロパティを使用してデフォルトの構成を変更しますが、構成ファイルを使用して変更することもできます。具体的には、デフォルト構成を変更してプライベート・クラスタを作成し、ネットワーク上で実行されている可能性のある既存のCoherenceクラスタに2つのプロセスが参加しないようにします。ほとんどのアプリケーションでは、デフォルトのキャッシュ構成で十分です。
サンプルのクラスタを構成して起動するには:
ノート:
この例では、COHERENCE_HOME
をCoherenceインストール・ディレクトリに置き換えます。
親トピック: 最初のCoherenceアプリケーションの作成
タスク3: 基本のCoherenceスタンドアロン・アプリケーションの作成と実行
k1
と値Hello World!
をhello-example
キャッシュに入れます。キー値の取得と出力が済むとアプリケーションが終了します。最後に、追加のクラスタ・ノードが起動され、キーがキャッシュ内にあることが確認されます。
この項には次のトピックが含まれます:
サンプル・スタンドアロン・アプリケーションの作成
アプリケーションは、Coherence APIを使用してキャッシュにアクセスし、キャッシュとの相互作用を図ります。CoherenceSession
クラスは、デフォルトのセッション・プロバイダを使用してSession
インスタンスを作成し、getCache
メソッドを使用してNamedCache
インスタンスへの参照を取得します。このNamedCache
インスタンスを使用して、キャッシュ内のオブジェクトを取得および格納します。Hello Worldアプリケーションは非常に基本的なものですが、Session
およびNamedCache
APIを使用するデモとなっています。
例2-1 サンプルのHelloWorldスタンドアロン・アプリケーション
import com.tangosol.net.CoherenceSession;
import com.tangosol.net.NamedCache;
import com.tangosol.net.Session;
public class HelloWorld {
public static void main(String[] args) throws Exception {
String key = "k1";
String value = "Hello World!";
Session session = new CoherenceSession();
NamedCache<String, String> cache = session.getCache("hello-example");
cache.put(key, value);
System.out.println(cache.get(key));
session.close();
}
}
サンプル・キャッシュの確認
この例のキャッシュ・サーバーは、デフォルトでキャッシュのデータを格納するように構成されます。データは、クラスタのすべてのメンバーが使用可能であり、それらのメンバーがクラスタから離脱した後も保持されます。たとえば、Hello Worldアプリケーションは、キャッシュにキーをロードし、そのキーを表示してから終了します。ただし、キャッシュとキーは、その後もすべてのクラスタ・メンバーが使用できます。
このステップでは、接続ファクトリ・コマンド行ツールを使用して、hello-example
キャッシュに接続し、キャッシュ内のすべての項目を一覧表示します。ここでは、Coherenceのキャッシュが永続性と分散性の両方の性質を持っていることを示します。
キャッシュを確認するには:
Coherenceでの様々なデプロイメント・モデル、フレームワークまたは言語の使用
前述の"Hello, World!"サンプル・アプリケーションは、CoherenceとJavaを一緒に使用する方法の簡単なデモンストレーションです。
Coherenceは、他の共通フレームワーク、デプロイメント・タイプおよび言語とともに使用することもできます。
Coherence統合の一般情報は、Oracle Coherence - 統合を参照してください。
それ以外の場合は、次の項で統合の可能性を確認します。
Helidon
Project Helidonは、マイクロサービスを作成するためのJavaライブラリのセットです。Coherenceは、Helidonとの即時利用可能な統合を提供します。
Helidon MPおよびCoherenceの使用開始の詳細は、CoherenceコミュニティのWebサイトでクイック・スタートを参照してください。
Spring
Oracle Coherenceは、Javaベースのエンタープライズ・アプリケーションを構築および実行するためのプラットフォームであるSpringと統合できます。
SpringおよびCoherenceの使用開始の詳細は、GitHubのCoherence Spring統合プロジェクトを参照してください。
Micronaut
Oracle Coherenceは、軽量のモジュラ・アプリケーションおよびマイクロサービスを構築するためのオープン・ソース・フレームワークであるMicronautと統合できます。
MicronautおよびCoherenceの使用開始の詳細は、GitHubのMicronaut Coherenceプロジェクトを参照してください。
Kubernetes
Oracleを使用すると、Coherenceを使用する組織はクラスタをクラウドに移動できます。DockerやKubernetesなどの業界標準をサポートすることで、Oracleはクラウド・ニュートラル・インフラストラクチャでのCoherenceの実行を容易にします。
CoherenceおよびKubernetesの使用開始の詳細は、GitHubのCoherence Operatorリポジトリを参照してください。
WebLogic Server
WebLogic ServerでのCoherenceアプリケーションの開発およびデプロイの詳細は、Oracle WebLogic Server Oracle Coherenceアプリケーションの開発のCoherenceアプリケーションの概要に関する項を参照してください。
.NET
Coherence .NETクライアントでは、.NETベースのアプリケーションがCoherence*Extendプロトコルを使用してキャッシュ・クライアントとして機能できます。
Coherence .NETクライアントの使用開始の詳細は、GitHubのOracle Coherence for .NET - Community Editionを参照してください。
C++
Coherence C++クライアントでは、C++アプリケーションがCoherence*Extendプロトコルを使用してキャッシュ・クライアントとして機能できます。
Coherence C++クライアントの使用開始の詳細は、GitHubのOracle Coherence for C++ Community Editionを参照してください。
JavaScript
Coherence JavaScriptクライアントは、gRPCをネットワーク・トランスポートとして使用し、NodeアプリケーションがCoherenceクラスタのキャッシュ・クライアントとして動作することを可能にします。
Coherence JavaScriptクライアントの使用開始の詳細は、GitHubのCoherence JavaScriptクライアントを参照してください。
Python
Coherence Pythonクライアントは、gRPCをネットワーク・トランスポートとして使用し、PythonアプリケーションがOracle Coherenceクラスタのキャッシュ・クライアントとして動作することを可能にします。
Coherence Pythonクライアントの使用開始の詳細は、GitHubのCoherence Pythonクライアントを参照してください。
Golang
Coherence Goクライアントは、gRPCをネットワーク・トランスポートとして使用し、GoアプリケーションがOracle Coherenceクラスタのキャッシュ・クライアントとして動作することを可能にします。
Coherence Goクライアントの使用開始の詳細は、GitHubのCoherence Goクライアントを参照してください。
親トピック: 最初のCoherenceアプリケーションの作成