UDDI 发布者的管理
可以使用 UDDI 注册中心管理界面来注册 UDDI 发布者。
管理 UDDI 发布者
UddiNode MBean 提供以下操作来管理 UDDI 发布者:
- createUddiUser
- createUddiUsers
- updateUddiUser
- deleteUddiUser
- getUddiUser
- getUserInfos
- getEntitlementInfos
- assignTier
- getUserTier
在 WebSphere® Application Server 的样本中,UDDI 注册中心样本中的 ManagePublishersSample 类演示这些操作。为每种操作提供利用 UddiNodeProxy 客户机类的示例。
- createUddiUser
- 用指定的资格在指定的层中注册单个 UDDI 发布者。UddiUser 类表示 UDDI 发布者,它由用户标识、TierInfo 对象(指定分配给 UDDI 发布者的层标识)和 Entitlement 对象(指定允许 UDDI 发布者执行的操作)集合所构造。提示: 要分配 UDDI 发布者缺省的资格,请将资格参数设为空值。
- 创建 UddiUser 对象:
UddiUser user = new UddiUser("user1", new TierInfo("3"), null);
- 调用 createUddiUser 操作:
uddiNode.createUddiUser(user);
- 创建 UddiUser 对象:
- createUddiUsers
- 注册多个 UDDI 发布者。以下示例显示如何在一个调用中使用缺省资格来注册七个 UDDI 发布者。
- 为发布者所分配到的层创建 TierInfo 对象:
TierInfo tier1 = new TierInfo("1"); TierInfo tier4 = new TierInfo("4");
- 为每个 UDDI 发布者创建 UddiUser 对象,并为每个发布者指定层:
UddiUser publisher1 = new UddiUser("Publisher1", tier4, null); UddiUser publisher2 = new UddiUser("Publisher2", tier4, null); UddiUser publisher3 = new UddiUser("Publisher3", tier4, null); UddiUser publisher4 = new UddiUser("Publisher4", tier1, null); UddiUser publisher5 = new UddiUser("Publisher5", tier1, null); UddiUser cts1 = new UddiUser("cts1", tier4, null); UddiUser cts2 = new UddiUser("cts2", tier4, null);
- 将 UddiUser 对象添加到列表:
List uddiUsers = new ArrayList(); uddiUsers.add(publisher1); uddiUsers.add(publisher2); uddiUsers.add(publisher3); uddiUsers.add(publisher4); uddiUsers.add(publisher5); uddiUsers.add(cts1); uddiUsers.add(cts2);
- 调用 createUddiUsers 操作:
uddiNode.createUddiUsers(uddiUsers);
- 为发布者所分配到的层创建 TierInfo 对象:
- updateUddiUser
- 用提供的 UddiUser 对象中的详细信息更新 UDDI 发布者。通常,使用此操作来更改一个 UDDI 发布者的层,或更新 UDDI 发布者的资格。只提供您想要更新的资格;其他可用资格会保留其现有值。
- 创建具有适当许可权的 Entitlement 对象。资格标识是在 EntitlementConstants 中。
Entitlement publishUuiDKeyGenerator = new Entitlement(PUBLISH_UUID_KEY_GENERATOR, true); Entitlement publishWithUuidKey = new Entitlement(PUBLISH_WITH_UUID_KEY, true);
- 将 Entitlement 对象添加到列表:
List entitlements = new ArrayList(); entitlements.add(publishUuiDKeyGenerator); entitlements.add(publishWithUuidKey);
- 更新具有已更新资格的 UddiUser 对象:
user.setEntitlements(entitlements);
- 调用 updateUddiUser 操作:
uddiNode.updateUddiUser(user);
- 创建具有适当许可权的 Entitlement 对象。资格标识是在 EntitlementConstants 中。
- getUddiUser
- 获取关于 UDDI 发布者(UddiUser 对象形式)的详细信息。这指定 UDDI 发布者标识、UDDI 发布者所指定给的层的信息以及 UDDI 发布者的资格。
- 调用 getUddiUser 操作:
UddiUser user1 = uddiNode.getUddiUser("user1");
- 输出 UddiUser 对象的内容:
System.out.println("retrieved user: " + user1);
- 调用 getUddiUser 操作:
- getUserInfos
- 返回 UserInfo 对象的集合。每个 UserInfo 对象都表示 UDDI 节点所知道的 UDDI 发布者,以及 UDDI 发布者所分配到的层。要获取特定 UDDI 发布者的更多详细信息,其中包括层标识和资格,请使用 getUddiUser 操作。
- 调用 getUserInfos 操作:
List registeredUsers = uddiNode.getUserInfos();
- 输出 UserInfo 对象:
System.out.println("retrieved registered users: "); System.out.println(registeredUsers);
- 调用 getUserInfos 操作:
- getEntitlementInfos
- 返回 Entitlement 对象的集合。每个资格都是属性,可控制 UDDI 发布者是否有权执行指定的操作。
- 调用 getEntitlementInfos 操作:
List entitlementInfos = uddiNode.getEntitlementInfos();
- 指定在何处查找消息资源:
String messages = "com.ibm.uddi.v3.management.messages"; ResourceBundle bundle = ResourceBundle.getBundle(messages, Locale.ENGLISH);
- 在 Entitlement
对象中进行迭代,显示标识、名称以及描述:
for (Iterator iter = entitlementInfos.iterator(); iter.hasNext();) { Entitlement entitlement = (Entitlement) iter.next(); StringBuffer entitlementOutput = new StringBuffer(); String entitlementId = entitlement.getId(); String entitlementName = bundle.getString(entitlement.getNameKey()); String entitlementDescription = bundle.getString(entitlement.getDescriptionKey()); entitlementOutput.append("Entitlement id: "); entitlementOutput.append(entitlementId); entitlementOutput.append("\n name: "); entitlementOutput.append(entitlementName); entitlementOutput.append("\n description: "); entitlementOutput.append(entitlementDescription); System.out.println(entitlementOutput.toString()); }
- 调用 getEntitlementInfos 操作:
- deleteUddiUser
- 从 UDDI 注册中心移除具有指定用户标识的 UDDI 发布者。
- 调用 deleteUddiUser 操作:
uddiNode.deleteUddiUser("user1");
- 调用 deleteUddiUser 操作:
- assignTier
- 将具有所提供标识的 UDDI 发布者指定给特定的层。当要限制若干 UDDI 发布者时此操作很有用,例如,将它们都指定给不允许发布任何实体的层。
- 创建发布者标识列表:
List uddiUserIds = new ArrayList(); uddiUserIds.add("Publisher1"); uddiUserIds.add("Publisher2"); uddiUserIds.add("Publisher3"); uddiUserIds.add("Publisher4"); uddiUserIds.add("Publisher5"); uddiUserIds.add("cts1"); uddiUserIds.add("cts2");
- 调用 assignTier 操作:
uddiNode.assignTier(uddiUserIds, "0");
- 创建发布者标识列表:
- getUserTier
- 返回有关 UDDI 发布者所指定给的层的信息。返回的 TierInfo 具有 getter 方法,可获取层标识、层名、层描述以及层是否为缺省层的信息。
- 调用 getUserTier 操作:
TierInfo tierInfo = getUserTier("Publisher3");
- 输出 TierInfo 对象的内容:
System.out.println(tierInfo);
- 调用 getUserTier 操作: