UDDI ノード層の管理
UDDI レジストリー管理インターフェースを使用すると、層の公開限界を設定できます。これによって、パブリッシャーが UDDI レジストリー内に保存できる UDDI エンティティーのタイプごとの数を管理できます。
層には、ID、管理者が定義する名前と説明、および限界セットが、エンティティーのタイプごとに 1 つずつあります。
UddiNode MBean
では、層を管理するための以下の操作を提供します。
- createTier
- getTierDetail
- getTierInfos
- getLimitInfos
- setDefaultTier
- updateTier
- deleteTier
- getUserCount
上記操作の実例については、WebSphere® Application Server のサンプル集で、UDDI レジストリー・サンプルの ManageTiersSample クラスを参照してください。
- createTier
- 各 UDDI エンティティーに対する公開限界を指定した新しい層を作成します。
- TierInfo オブジェクトで層の名前と説明を設定します。
String tierName = "Tier 100"; String tierDescription = "A tier with all limits set to 100."; TierInfo tierInfo = new TierInfo(null, tierName, tierDescription);
- 各 UDDI エンティティーの Limit オブジェクトを定義します。
List limits = new ArrayList(); Limit businessLimit = new Limit(); businessLimit.setIntegerValue(100); businessLimit.setId(LimitConstants.BUSINESS_LIMIT); Limit serviceLimit = new Limit(); serviceLimit.setIntegerValue(100); serviceLimit.setId(LimitConstants.SERVICE_LIMIT); Limit bindingLimit = new Limit(); bindingLimit.setIntegerValue(100); bindingLimit.setId(LimitConstants.BINDING_LIMIT); Limit tModelLimit = new Limit(); tModelLimit.setIntegerValue(100); tModelLimit.setId(LimitConstants.TMODEL_LIMIT); Limit assertionLimit = new Limit(); assertionLimit.setIntegerValue(100); assertionLimit.setId(LimitConstants.ASSERTION_LIMIT); limits.add(businessLimit); limits.add(serviceLimit); limits.add(bindingLimit); limits.add(tModelLimit); limits.add(assertionLimit);
- Tier オブジェクトを作成します。
Tier tier = new Tier(tierInfo, limits);
- createTier 操作を呼び出し、作成した層を取得します。
Tier createdTier = uddiNode.createTier(tier);
- 作成した層の生成済み層 ID を検査します。
tierId = createdTier.getId(); System.out.println("created tier has ID: " + tierId);
- TierInfo オブジェクトで層の名前と説明を設定します。
- getTierDetail
- 指定した層 ID の Tier オブジェクトを戻します。
Tier クラスには、層 ID、層名および説明に対する getter メソッド (管理者により設定) と、その層に割り振られた UDDI パブリッシャーが公開できる UDDI エンティティーのタイプごとの数を指定する Limit オブジェクトの集合があります。isDefault メソッドは、その層がデフォルト層、
すなわち自動登録が使用可能になっている場合に UDDI パブリッシャーに割り振られる層であるかどうかを示します。
- getTierDetail 操作を呼び出します。
Tier tier = uddiNode.getTierDetail("2");
- getTierDetail 操作を呼び出します。
- updateTier
- 提供された Tier オブジェクトで層の内容を更新します。
- 既存の Tier オブジェクトを更新します。このオブジェクトは新しくインスタンス化することも、getTierDetail 操作または createTier 操作で戻すこともできます。次の例では、
層の名前、説明、および更新される制限を除くすべてのしきい値が保持されます。
modifiedTier.setName(tier.getName()); modifiedTier.setDescription(tier.getDescription()); Limit tModelLimit = new Limit(); tModelLimit.setId(LimitConstants.TMODEL_LIMIT); tModelLimit.setIntegerValue(50); List updatedLimits = new ArrayList(); updatedLimits.add(tModelLimit); modifiedTier.setLimits(updatedLimits);
- updateTier 操作を呼び出します。
uddiNode.updateTier(modifiedTier);
- 既存の Tier オブジェクトを更新します。このオブジェクトは新しくインスタンス化することも、getTierDetail 操作または createTier 操作で戻すこともできます。次の例では、
層の名前、説明、および更新される制限を除くすべてのしきい値が保持されます。
- getTierInfos
- 軽量の層記述子オブジェクト (TierInfo) の集合を戻します。このオブジェクトには、層 ID、層の名前、層の説明、およびその層がデフォルト層かどうかという情報が含まれます。
- getTierInfos 操作を呼び出します。
List tierInfos = uddiNode.getTierInfos();
- 各 TierInfo オブジェクトの内容を出力します。
if (tierInfos != null) { for (Iterator iter = tierInfos.iterator(); iter.hasNext();) { TierInfo tierInfo = (TierInfo) iter.next(); System.out.println(tierInfo); } }
- getTierInfos 操作を呼び出します。
- setDefaultTier
- 任意の層 ID の層をデフォルト層に指定します。
デフォルト層とは、自動登録が使用可能になっている場合に UDDI パブリッシャーに割り振られる層です。
通常、これを公開制限の低い層に設定して、ユーザーが不注意で過多のエンティティーを公開するのを防ぎます。
- setDefaultTier 操作を呼び出します。
uddiNode.setDefaultTier("4");
- setDefaultTier 操作を呼び出します。
- deleteTier
- 指定した ID の層を除去します。
層を除去できるのは、その層に UDDI パブリッシャーが割り当てられておらず、
その層がデフォルト層ではない場合に限られます。
- deleteTier 操作を呼び出します。
uddiNode.deleteTier("4");
- deleteTier 操作を呼び出します。
- getUserCount
- 層 ID で指定した層に割り当てられている UDDI パブリッシャーの数を戻します。
- getUserCount 操作を呼び出します。
Integer userCount = uddiNode.getUserCount("4"); System.out.println("users in tier 4: " + userCount.intValue());
- getUserCount 操作を呼び出します。
- getLimitInfos
- 各タイプの UDDI エンティティーのしきい値を表す Limit オブジェクトの集合を戻します。 Limit は、Tier オブジェクト内で使用されます。
getLimitInfos:
各タイプの UDDI エンティティーのしきい値を表す Limit オブジェクトの集合を戻します。
Limit は、Tier オブジェクト内で使用されます。
- getLimitInfos 操作を呼び出します。
List limits = uddiNode.getLimitInfos();
- 各 Limit オブジェクトの ID およびしきい値を出力します。
for (Iterator iter = limits.iterator(); iter.hasNext();) { Limit limit = (Limit) iter.next(); System.out.println("limit ID: " + limit.getId() + ", limit value: " + limit.getIntegerValue()); }