デプロイメント・ポリシー記述子 XML ファイルおよび ObjectGrid 記述子 XML ファイルを使用して、トポロジーを管理します。
エンドポイント情報は、動的環境では事前構成されません。デプロイメント・ポリシーには、サーバー名も物理トポロジー情報もありません。データ・グリッド内のすべての断片は、カタログ・サービスによって自動的にコンテナー・サーバーに配置されます。カタログ・サービスは、デプロイメント・ポリシーで定義されている制約を使用して、断片配置を自動的に管理します。この自動断片配置により、大きなデータ・グリッドの構成が容易になります。 また必要に応じて、使用している環境にサーバーを追加することもできます。
デプロイメント・ポリシー XML ファイルは、始動時にコンテナー・サーバーに渡されます。デプロイメント・ポリシーは、ObjectGrid XML ファイルと一緒に使用する必要があります。 デプロイメント・ポリシーはコンテナー・サーバーを始動するために必須ではありませんが、使用されることをお勧めします。デプロイメント・ポリシーは、それと一緒に使用される ObjectGrid XML ファイルと互換性がある必要があります。 デプロイメント・ポリシー内の各 objectgridDeployment エレメントごとに、対応する 1 つの objectGrid エレメントが ObjectGrid XML ファイル内に必要です。 objectgridDeployment 内のマップは、ObjectGrid XML 内の backingMap エレメントと整合している必要があります。 すべての backingMap は、1 つの mapSet エレメント内のみで参照する必要があります。
companyGridDpReplication.xml
<?xml version="1.0" encoding="UTF-8"?>
<deploymentPolicy xmlns:xsi="http://www.w3.org./2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/deploymentPolicy ../deploymentPolicy.xsd"
xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">
<objectgridDeployment objectgridName="CompanyGrid">
<mapSet name="mapSet1" numberOfPartitions="11"
minSyncReplicas="1" maxSyncReplicas="1"
maxAsyncReplicas="0" numInitialContainers="4">
<map ref="Customer" />
<map ref="Item" />
<map ref="OrderLine" />
<map ref="Order" />
</mapSet>
</objectgridDeployment>
</deploymentPolicy>
companyGrid.xml
<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
xmlns="http://ibm.com/ws/objectgrid/config">
<objectGrids>
<objectGrid name="CompanyGrid">
<backingMap name="Customer" />
<backingMap name="Item" />
<backingMap name="OrderLine" />
<backingMap name="Order" />
</objectGrid>
</objectGrids>
</objectGridConfig>
companyGridDpReplication.xml ファイルには、11 個の区画に分割されている mapSet エレメントが 1 つあります。 各区画に含めることができる同期複製は 1 つだけです。同期レプリカの数は、minSyncReplicas 属性および maxSyncReplicas 属性によって指定します。 minSyncReplicas 属性が 1 に設定されているため、書き込みトランザクションを処理するためには、 mapSet エレメント内の各区画では、少なくとも 1 つの同期レプリカが使用可能になっている必要があります。 maxSyncReplicas 属性が 1 に設定されているため、各区画の 同期レプリカの数が 1 つを超えることはできません。この mapSet エレメント内の区画には、非同期レプリカは含まれていません。
カタログ・サービスは、この ObjectGrid インスタンスをサポートするために、numInitialContainers 属性に従って、4 つのコンテナー・サーバーが使用可能になるまで配置を据え置きます。 コンテナー・サーバーが指定数に達すると、numInitialContainers 属性は無視されます。
placementDeferralInterval プロパティーと xscmd -c suspendBalancing コマンドを使用して、コンテナー・サーバーの断片の配置を 遅らせることもできます。
companyGridDpReplication.xml ファイルは基本的な例ですが、デプロイメント・ポリシーによって、環境を完全に制御できます。
WebSphere eXtreme Scale は自動的にサーバーのバランスを取ります。 WebSphere eXtreme Scale を再始動しなくても、追加サーバーを組み込むことができます。eXtreme Scale を再始動せずにサーバーを追加できることで、単純なデプロイメントだけでなく、数千ものサーバーが必要になる大規模なテラバイト・サイズのデプロイメントが可能になります。
このデプロイメント・トポロジーは柔軟です。 カタログ・サービスを使用すると、キャッシュ全体を除去することなく、サーバーを追加および除去して、リソースを効率的に使用できるようになります。 startOgServer コマンドおよび stopOgServer コマンドを使用して、コンテナー・サーバーを始動および停止できます。 これらのいずれのコマンドを使用した場合でも、-catalogServiceEndPoints オプションを指定する必要があります。 分散トポロジーのすべてのクライアントは、Internet Interoperability Object Protocol (IIOP) を介してカタログ・サービスと通信します。すべてのクライアントは、ObjectGrid インターフェースを使用してサーバーと通信できます。
WebSphere eXtreme Scale の動的構成機能を使用すると、簡単にシステムにリソースを追加することができます。コンテナーはデータをホスティングします。 また、カタログ・サービスによって、クライアントはコンテナー・サーバーのグリッドと通信できます。 カタログ・サービスは、要求を転送し、ホスト・コンテナー・サーバー内のスペースを割り振り、システム全体のヘルスと可用性を管理します。 クライアントは、カタログ・サービスに接続し、コンテナー・サーバー・トポロジーの記述を取得し、 必要に応じて各サーバーと直接通信します。新規サーバーの追加または他のサーバーの障害によってサーバー・トポロジーが変更されると、 カタログ・サービスは、データをホスティングする適切なサーバーにクライアント要求を自動的に経路指定します。
通常、カタログ・サービスは、自身の Java 仮想マシン グリッド内に存在します。単一のカタログ・サーバーで複数のサーバーを管理できます。 コンテナー・サーバーは、JVM 内で単独で開始することも、別のサーバーの他のコンテナー・サーバーとともに任意の JVM にロードすることもできます。 クライアントはどの JVM 内にも存在でき、1 つ以上のサーバーと通信できます。また、クライアントはコンテナー・サーバーと同じ JVM 内に存在することも可能です。
既存の Java プロセスまたはアプリケーションにコンテナー・サーバーを組み込む際には、プログラムでデプロイメント・ポリシーを作成することもできます。詳細については、DeploymentPolicy API の資料を参照してください。