Utilice los operandos SOAP en el generador del programa de utilidad de subexpresiones, una herramienta opcional que le ayuda a generar condiciones de regla complejas a partir de subexpresiones utilizando AND, OR, NOT y la agrupación de paréntesis.
Cada clase de trabajo contiene una lista opcional ordenada de reglas que se evalúan para una solicitud concreta para determinar la política de dicha solicitud. Cada regla está formada por una expresión booleana y un valor de política. Si la expresión se evalúa en true para una solicitud determinada, se utiliza la política asociada a dicha regla.
La sintaxis y la semántica de una expresión booleana para una regla son similares a la cláusula WHERE de una expresión de lenguaje de consulta estructurado (SQL). De forma más precisa, la sintaxis de una expresión se define mediante la especificación JMS (Java Message Service 1.1). Si desea más información, consulte Clasificación de solicitudes basadas en reglas .
En la especificación JMS, los identificadores hacen referencia a distintos atributos que se pueden asociar a una solicitud, por ejemplo, un parámetro de consulta específico, una cookie o una cabecera HTTP. Un identificador JMS se puede considerar como una variable de solicitud, u operando. Estos operandos pueden ser específicos para un protocolo. Por ejemplo, el nombre de servicio SOAP es un operando que sólo es válido en una clase de trabajo SOAP.
clienthost LIKE '%.ibm.com''%.ibm.com' es un literal que se utiliza para comparar con el nombre de host cliente para una solicitud. Esta expresión es true para todas las solicitudes que se originan a partir de un sistema del dominio ibm.com. Indique estos literales de serie entre comillas simples. No indique los literales numéricos entre comillas simples. Los paréntesis junto con los operadores AND, OR y NOT también se pueden utilizar para formar expresiones booleanas compuestas. Consulte la especificación JMS 1.1 para ver una descripción detallada.
Operando | Sintaxis | Descripción |
---|---|---|
Host de cliente |
clienthost | El nombre de host cliente plenamente cualificado. Este es el valor del nombre de host del mandato del protocolo Internet (IP). Este operando no admite operadores numéricos como >, >=, <, <=. |
IPV4 de cliente |
clientipv4 | La dirección IP de cliente que utiliza el tipo de dirección de cuatro elementos con puntos del Protocolo Internet de versión 4 (IPv4) n.n.n.n. |
IPV6 de cliente |
clientipv6 | El tipo de dirección de 128 bits x:x:x:x:x:x:x:x del Protocolo Internet versión 6 (IPv6) según la RFC (Request for Comments) 1924 del sistema cliente. |
Nombre de cookie |
cookie$<nombre> | Un nombre de cookie. Por ejemplo, la expresión cookie$My_Cookie_Name='My_Cookie_Value' prueba una solicitud para ver si contiene una
cookie denominada My_Cookie_Name con un valor de My_Cookie_Value. Para comprobar si existe o no un cookie determinado, utilice una de las expresiones siguientes:
cookie$MyCookieName IS NOT NULL cookie$MyCookieName IS NULL |
Nombre de cabecera |
header $<nombre> | Nombre de cabecera y el valor. Por ejemplo, la expresión
header$Host='localhost' prueba una solicitud para ver si contiene
una cabecera de host HTTP con un valor de localhost.
Para probar la presencia o ausencia de la cabecera de host, utilice una de las siguientes expresiones:
header$Host IS NOT NULL header$Host IS NULL |
Método HTTP |
HTTPMethod | El método HTTP de la solicitud. Los valores posibles son POST, GET, PUT y DELETE. |
Tipo MIME |
MIMEType | El tipo MIME de la solicitud. |
Operación |
operation | El nombre de una operación de servicio Web. |
Porcentaje |
percentage$<val> | El operando de porcentaje se evalúa en true un
porcentaje fijo de tiempo. Por ejemplo, percentage$50 se evalúa en true el 50% del tiempo aproximadamente. |
Puerto |
port | El puerto de escucha en el cual se recibió la solicitud. |
Protocolo |
protocol | El protocolo de comunicaciones que transmite la solicitud. Los protocolos soportados actualmente son HTTP, HTTPS, SOAP y SOAPS. |
Parámetro de consulta |
queryparm$<nombre> | Nombre de cabecera y el valor. Por ejemplo, la expresión
queryparm$timezone='EST' prueba una solicitud para ver si la solicitud
contiene un parámetro de consulta HTTP denominado timezone con un valor de EST. Para comprobar si existe o no un parámetro de consulta, utilice uno de los siguientes formatos:
queryparm$timezone IS NOT NULL queryparm$timezone IS NULL |
Rampup |
rampup$<horaInicio>$<horaFinalización> | El operando rampup se evalúa en true un porcentaje
variable de tiempo. Siempre se evalúa en false antes de la
<horaInicio> y en true después de la
<horaFinalización>.
Cuando la hora avanza de la <horaInicio> a la
<horaFinalización>, se evalúa en true, un
porcentaje linealmente en aumento. El formato de <horaInicio> y <horaFinalización> es día/mes/año::hora:min:seg. donde día es el día del mes, mes es uno de los doce meses: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, año es el año de 4 dígitos, hora es la hora de 2 dígitos del reloj de 24 horas, y min y seg son los valores de 2 dígitos para los minutos y los segundos, respectivamente.Por ejemplo, rampup$01/Ene/2007::08:00:00$01/Ene/2007::17:00:00 empieza a evaluarse ocasionalmente en true a las 8 AM del 1 Ene 2007 y siempre se evalúa en true según la hora de finalización de rampup a las 5 PM del mismo día. |
Host de servidor |
serverhost | El nombre de host totalmente calificado del servidor. Este operando no admite operadores numéricos como >, >=, <, <=. |
IPV4 de servidor |
serveripv4 | La dirección IP del sistema servidor utilizando el tipo de dirección de cuatro elementos con puntos IPv4 n.n.n.n. |
IPV6 de servidor |
serveripv6 | El tipo de dirección de 128 bits de IPv6 x:x:x:x:x:x:x:x indicado a continuación de RFC 1924 del sistema servidor. |
Servicio |
service | El nombre de un servicio Web. |
Hora |
time | Se utiliza para definir la fecha y hora del día en que debe cumplirse una solicitud determinada. Los dos campos opcionales son StartTime y EndTime. Si se recibe una solicitud fuera de dicha ventana definida, la solicitud no se procesará. Los campos de fecha de hora de inicio y de hora de finalización tienen el formato siguiente: díadelasemana/díadelmes/mes/año::hora:minuto:segundo. Por ejemplo, el jueves 11 de abril del año 2007 a las 1:03:45 PM se especifica de este modo: Thu/11/Apr/2007::13:03:45 Cualquier campo puede utilizar un comodín con el valor *. Por ejemplo, el primer día de cada mes se especifica como */1. Los valores para díadelasemana son Sun, Mon, Tue, Wed, Thu, Fri, Sat y el rango de valores de díadelmes es de 1 a 31. El valor mes es un valor no numérico que representa los doce meses: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec. El valor de año consta de los cuatro dígitos del año. Por ejemplo, 2007. El valor de hora es la hora del día con el formato de 24 horas. Por ejemplo, 8am se representa como ::8. Los valores minuto y segundo son enteros que oscilan del 0 al 59. La barra inclinada (/) se utiliza para separar los parámetros de fecha, los dos puntos (::) se utilizan para separar los parámetros de fecha y los dos puntos (:) se utilizan para separar los parámetros de hora del día. Tenga en cuenta que es el resultado booleano de la regla completa en la que se utiliza el operando time que determina la acción de direccionamiento que se llevará a cabo. |
Portal virtual |
virtualportal | Los portales virtuales se crean dentro de WebSphere Portal Server y WebSphere Virtual Enterprise soporta este operando para una mejor integración con WebSphere Portal Server. El portal virtual es el URL de solicitud menos la raíz del contexto para el módulo web de la aplicación WebSphere Portal. Si una solicitud determinada coincide con el portal virtual definido, se emprende la acción de direccionamiento definida para dicha regla. |
La sintaxis de la expresión Xpath es xpathexpr y está soportada por SOAP.
La expresión de serie XPath tiene un campo obligatorio que contiene la expresión XPath y un campo opcional para definir los espacios de nombres locales. Si todos los espacios de nombres contenidos en la expresión XPath son estándar, entonces el segundo campo puede ser opcional. Si hay varios espacios de nombres locales, entonces sepárelos con una coma (,).
El ejemplo siguiente muestra una xpathexpr con una definición de espacio de nombres local:
xpathexpr$/soap:Envelope/soap:Body/m:getTimeZone/n:clientId$m\\=http://test.classify.ws.ibm.com,n\\=http://test2.classify.ws.ibm.com = \\'1000\\' or operation IS NOT NULL
En la expresión anterior, la expresión XPath es /soap:Envelope/soap:Body/n:getTimeZone/n:clientId. Contiene el espacio de nombres local de n. Por lo tanto, el segundo de xpathexpr se define como n \\=http://test.classify.ws.ibm.com. El símbolo del dólar ($) se utiliza para indicar el inicio de una definición de campo. Las barras invertidas dobles son la secuencia de escape en este ejemplo. El primer símbolo de igual (=) tiene escape porque forma parte de la definición del espacio de nombres local, mientras que el segundo signo de igual (=) es el operador de la expresión de clasificación y no debe tener escape.
El ejemplo siguiente muestra una xpathexpr con dos espacios de nombres locales:
xpathexpr$/soap:Envelope/soap:Body/m:getTimeZone/n:clientId$m\\=http://test.classify.ws.ibm.com,n\\=http://test2.classify.ws.ibm.com = \\'1000\\' or operation IS NOT NULL
Espacio de nombre | URL |
---|---|
soap | http://schemas.xmlsoap.org/soap/envelope/ |
soap-env | http://schemas.xmlsoap.org/soap/envelope/ |
soapenc | http://schemas.xmlsoap.org/soap/encoding/ |
soapbind | http://schemas.xmlsoap.org/wsdl/soap/ |
xsd | http://www.w3.org/2001/XMLSchema |
xsi | http://www.w3.org/2001/XMLSchema-instance |
xsi | http://ws-i.org/schemas/conformanceClaim/ |
wsdl | http://schemas.xmlsoap.org/wsdl/ |
WebSphere Virtual Enterprise soporta los operadores en la tabla siguiente en las expresiones de reglas. También se hace referencia a estos operadores como predicados en la terminología SQL porque aparecen dentro de una cláusula WHERE o HAVING. Los operadores no distinguen entre mayúsculas y minúsculas.
Operador | Descripción |
---|---|
OR | El operador OR lógico. |
AND | El operador AND lógico. |
NOT | El operador de negación. |
IN | Expresa un operando con varios valores en una sola expresión.
Su significado es coherente con el significado estándar SQL del operador.
Por ejemplo, si desea expresar que el valor de puerto
podría ser cualquier valor o todos los valores como, por ejemplo, 9080, 9090,
9091, utilice el fragmento de expresión:
port IN (9080,9090,9091) En
SQL, la forma como se expresan los valores dentro de los paréntesis depende del tipo de datos del puerto. Si el puerto es un entero, los valores sin los símbolos de comillas sencillas son correctos sintácticamente. Si el puerto es una serie, la expresión correcta es:
port IN ('9080','9090','9091') |
LIKE | Expresa el patrón que coincide con los valores de operando de la serie. El valor debe contener el carácter comodín (%) en la posición donde se espera que empiece la coincidencia de patrón.
Por ejemplo, la expresión:
host LIKE %blancacoincide con la palabra blanca y con cualquier palabra que finalice por blanca, mientras que la expresión host LIKE blanca%coincide con la palabra blanca y con cualquier otra palabra que empiece por blanca. La expresión: host LIKE %blanca%coincide con la palabra blanca y con cualquier palabra que tenga la señal blanca incorporada. Se utiliza la clase java.util.regex.Pattern. |
= | El operador de igualdad expresa una coincidencia de mayúsculas y minúsculas. |
> | El operador mayor que se utiliza con operandos numéricos. |
>= | El operador mayor o igual que se utiliza con operandos numéricos. |
< | El operador menor que se utiliza con operandos numéricos. |
<= | El operador menor o igual que se utiliza con operandos numéricos. |
< > | Operador no es igual a. |
BETWEEN | Se utiliza con AND para seleccionar un rango de valores incluyendo el primer valor (inferior) y el último (superior). Conjuntamente, operan en valores de fechas y números. |
IS NULL | Comprueba si un operando tiene un valor NULL. |
IS NOT NULL | Comprueba si un operando tiene un valor que no sea NULL. |