UDDI 节点层的管理
可以使用 UDDI 注册中心管理界面来设置发布层限制,这些限制可控制发布者可以保存在 UDDI 注册中心中的每种 UDDI 实体的数目。
一个层具有标识、管理员定义的名称和描述及限制集,每种实体都有一组。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);
- 检查针对创建的层生成的层标识:
tierId = createdTier.getId(); System.out.println("created tier has ID: " + tierId);
- 用 TierInfo 对象设置层的名称和描述。
- getTierDetail
- 返回给定层标识的 Tier 对象。层类拥有 getter 方法,用来获取层标识、层名、描述(由管理员设置)以及 Limit 对象的集合,此集合指定分配到层的 UDDI 发布者可以发布的每种 UDDI 实体类型的数目。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) 的集合。
- 调用 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
- 指定给定层标识的层为缺省层。缺省层是启动自动注册时分配到 UDDI 发布者的层。通常,将此设置设为发布限制较低的层,以阻止用户偶尔发布过多的实体。
- 调用 setDefaultTier 操作:
uddiNode.setDefaultTier("4");
- 调用 setDefaultTier 操作:
- deleteTier
- 移除给定层标识的层。仅当层没有指定给它们的 UDDI 发布者且不是缺省层时才可移除。
- 调用 deleteTier 操作:
uddiNode.deleteTier("4");
- 调用 deleteTier 操作:
- getUserCount
- 返回指定给指定层(由层标识指定)的 UDDI 发布者的数量。
- 调用 getUserCount 操作:
Integer userCount = uddiNode.getUserCount("4"); System.out.println("users in tier 4: " + userCount.intValue());
- 调用 getUserCount 操作:
- getLimitInfos
- 返回表示每种 UDDI 实体类型的限制值的 Limit 对象的集合。限制用于 Tier 对象。
getLimitInfos:
返回表示每种 UDDI 实体类型的限制值的 Limit 对象的集合。限制用于 Tier 对象。
- 调用 getLimitInfos 操作:
List limits = uddiNode.getLimitInfos();
- 输出每个 Limit 对象的标识和限制值:
for (Iterator iter = limits.iterator(); iter.hasNext();) { Limit limit = (Limit) iter.next(); System.out.println("limit ID: " + limit.getId() + ", limit value: " + limit.getIntegerValue()); }