Gestión de niveles de nodo UDDI
Puede utilizar la interfaz administrativa del registro UDDI para establecer límites de nivel de editor, que controlan el número de cada tipo de entidad UDDI que un editor puede guardar en el registro UDDI.
Un nivel tiene un ID, un nombre y una descripción definidos por un
administrador y un conjunto de límites, uno para cada tipo de entidad. El MBean UddiNode
proporciona las siguientes operaciones para gestionar niveles:
- createTier
- getTierDetail
- getTierInfos
- getLimitInfos
- setDefaultTier
- updateTier
- deleteTier
- getUserCount
En los ejemplos para WebSphere Application Server, la clase ManageTiersSample de los ejemplos de registro UDDI demuestra estas operaciones.
- createTier
- Crea un nuevo nivel, con límites de publicación especificados para cada entidad UDDI.
- Establezca el nombre y la descripción de nivel en un objeto TierInfo.
String tierName = "Tier 100"; String tierDescription = "Un nivel con todos los límites establecidos en 100."; TierInfo tierInfo = new TierInfo(null, tierName, tierDescription);
- Defina objetos Limit para cada entidad UDDI:
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);
- Cree el objeto Tier:
Tier tier = new Tier(tierInfo, limits);
- Invoque la operación createTier y recupere el nivel creado:
Tier createdTier = uddiNode.createTier(tier);
- Analice el ID de nivel generado del nivel creado:
tierId = createdTier.getId(); System.out.println("nivel creado tiene ID: " + tierId);
- Establezca el nombre y la descripción de nivel en un objeto TierInfo.
- getTierDetail
- Devuelve el objeto Tier para el ID de nivel dado. La clase Tier tiene
métodos de obtención para el ID del nivel, el nombre y la descripción del
nivel, definidos por el administrador, y la colección de objetos Limit, que
especifica cuántos editores UDDI de cada tipo de entidad UDDI asignados al
nivel pueden publicarse. El método isDefault indica si el nivel es el nivel por omisión, es decir, el nivel asignado a los editores UDDI cuando está habilitado el registro automático.
- Invoque la operación getTierDetail:
Tier tier = uddiNode.getTierDetail("2");
- Invoque la operación getTierDetail:
- updateTier
- Actualiza los contenidos de nivel con el objeto Tier proporcionado.
- Actualice un objeto Tier existente, cuya instancia es posible que se haya
creado recientemente o que lo haya devuelto las operaciones getTierDetail o
createTier. El siguiente ejemplo conserva el nombre y la descripción del nivel,
y todos los valores de límite, excepto él que se actualiza:
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);
- Invoque la operación updateTier:
uddiNode.updateTier(modifiedTier);
- Actualice un objeto Tier existente, cuya instancia es posible que se haya
creado recientemente o que lo haya devuelto las operaciones getTierDetail o
createTier. El siguiente ejemplo conserva el nombre y la descripción del nivel,
y todos los valores de límite, excepto él que se actualiza:
- getTierInfos
- Devuelve una colección de objetos de descriptor de nivel ligero (TierInfo)
que contienen el ID, el nombre y la descripción del nivel, e indican si el
nivel es el nivel predeterminado.
- Invoque la operación getTierInfos:
List tierInfos = uddiNode.getTierInfos();
- Output the content of each TierInfo object:
if (tierInfos != null) { for (Iterator iter = tierInfos.iterator(); iter.hasNext();) { TierInfo tierInfo = (TierInfo) iter.next(); System.out.println(tierInfo); } }
- Invoque la operación getTierInfos:
- setDefaultTier
- Especifica que el nivel con el ID de nivel dado
es el nivel por omisión. El nivel por omisión es el nivel asignado a editores UDDI cuando está habilitado el registro automático. Generalmente, esto se establece en un nivel con un límite de publicación bajo para no
permitir que usuarios ocasionales publiquen demasiadas entidades.
- Invoque la operación setDefaultTier:
uddiNode.setDefaultTier("4");
- Invoque la operación setDefaultTier:
- deleteTier
- Elimina el nivel con el ID de nivel dado. Los niveles sólo pueden
eliminarse si no tienen asignado ningún editor UDDI y cuando el nivel no es el
nivel por omisión.
- Invoque la operación deleteTier:
uddiNode.deleteTier("4");
- Invoque la operación deleteTier:
- getUserCount
- Devuelve el número de editores UDDI que están asignados al nivel
especificado a través del ID de nivel.
- Invoque la operación getUserCount:
Integer userCount = uddiNode.getUserCount("4"); System.out.println("usuario en nivel 4: " + userCount.intValue());
- Invoque la operación getUserCount:
- getLimitInfos
- Devuelve una colección de objetos Limit que representan los valores límite para cada tipo de entidad UDDI. Los límites se utilizan en objetos Tier.
getLimitInfos:
Devuelve la colección de objetos Limit que representan los valores límite para cada tipo de entidad UDDI. Los límites se utilizan en objetos Tier.
- Invoque la operación getLimitInfos:
List limits = uddiNode.getLimitInfos();
- Muestra el ID y el valor de límite para cada objeto Limit:
for (Iterator iter = limits.iterator(); iter.hasNext();) { Limit limit = (Limit) iter.next(); System.out.println("limit ID: " + limit.getId() + ", limit value: " + limit.getIntegerValue()); }