![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
Intelligent Management : opérandes SOAP
Utilisez les opérandes SOAP dans le générateur de sous-expression, un outil disponible en option permettant de générer des conditions de règle complexes à partir de sous-expressions avec AND, OR, NOT et le regroupement entre parenthèses.
Règles
Chaque classe de travail contient une liste ordonnée et facultative de règles qui sont évaluées pour une demande particulière afin de déterminer la stratégie à lui appliquer. Chaque règle se compose d'une expression booléenne et d'une valeur de stratégie. Si l'expression renvoie la valeur true pour une demande particulière, la stratégie associée à cette règle est utilisée.
La syntaxe et la sémantique d'une expression booléenne d'une règle sont similaires à celles de la clause WHERE d'une expression SQL (Structured Query Language). Plus précisément, la syntaxe d'une expression est définie par la spécification Java™ Message Service (JMS) 1.1. Pour plus d'informations sur la syntaxe et la sémantique des expressions, consultez la rubrique relative à la classification des demandes basées sur des règles.
Dans la spécification JMS, les identificateurs font référence à différents attributs pouvant être associés à une demande, par exemple, un paramètre de demande, un cookie ou un en-tête HTTP spécifique. Un identificateur JMS peut être considéré comme une variable de demande ou opérande. Ces opérandes peuvent être propres à un protocole. Par exemple, le nom de service SOAP est un opérande qui n'est valide que dans une classe de travail SOAP.
clienthost LIKE '%.ibm.com'
'%.ibm.com' est un littéral utilisé pour comparer le nom d'hôte client pour une demande.
Cette expression est vraie pour toutes les demandes qui émanent d'un ordinateur du domaine ibm.com.
Placez les littéraux chaîne entre guillemets simples. Ne placez pas les littéraux numériques entre guillemets simples. Utilisées avec les opérateurs AND, OR et NOT, les parenthèses permettent de former des expressions booléennes complexes. La spécification JMS 1.1 propose une description détaillée de ces éléments.Opérandes SOAP
Opérande | Syntaxe | Description |
---|---|---|
Hôte client |
clienthost | Nom d'hôte complet du client. Il s'agit de la valeur du nom d'hôte de la commande IP. Cet opérande ne prend pas en charge les opérateurs numériques tels que >, >=, <, <=. |
IPV4 client |
clientipv4 | clientipv4 – Adresse IP du client dans le format Internet Protocol version 4 (IPv4) à quatre éléments séparés par des points n.n.n.n. |
IPV6 client |
clientipv6 | Adresse Internet Protocol version 6 (IPv6) 128 bits du type x:x:x:x:x:x:x:x conforme au protocole RFC 1924 de l'ordinateur client. |
Nom du cookie |
cookie$<nom> | Nom d'un cookie. Par exemple, l'expression cookie$Nom_cookie='Nom_cookie' permet de vérifier qu'une demande contient le cookie Nom_cookie associé à la valeur Nom_cookie. Pour vérifier la présence ou l'absence d'un cookie particulier, utilisez l'une des expressions suivantes :
|
Nom d'en-tête |
header $<nom> | Nom et valeur de l'en-tête. Par exemple, l'expression header$Hote='localhost' permet de vérifier qu'une demande contient un en-tête hôte HTTP avec la valeur localhost.
Pour vérifier la présence ou l'absence de l'en-tête d'hôte, utilisez l'une des expressions suivantes :
|
Méthode HTTP |
HTTPMethod | Méthode HTTP de la demande. Les valeurs possibles sont POST, GET, PUT et DELETE. |
Type MIME |
MIMEType | Type MIME de la demande. |
Opération |
operation | Nom d'une opération de service Web. |
Pourcentage |
percentage$<val> | L'opérande de pourcentage a pour valeur true pour un pourcentage fixe du temps. Par exemple, percentage$50 a pour valeur true 50 % du temps. |
port |
port | Port d'écoute sur lequel la demande a été reçue. |
Protocole |
protocol | Protocoles de communication qui transmettent la demande. Les protocoles actuellement pris en charge sont HTTP, HTTPS, SOAP et SOAPS. |
Paramètre de demande |
queryparm$<nom> | Nom et valeur de l'en-tête. Par exemple, l'expression queryparm$Hote='EST' permet de vérifier que la demande contient un paramètre de demande HTTP de fuseau horaire dont la valeur est EST. Pour vérifier la présence ou l'absence d'un paramètre de demande particulier, utilisez l'une des expressions suivantes :
|
Augmentation progressive |
rampup$<heure_début> $<heure_fin> |
L'opérande d'augmentation progressive a pour valeur true pour un pourcentage variable du temps. Il est toujours associé à la valeur false avant <heure_début> et à la valeur true avant <heure_fin>.
Au fur et à mesure que l'heure se rapproche de la valeur <heure_fin>, il prend la valeur true pour un pourcentage du temps qui augmente de façon linéaire. Le format de <heure_début> et <heure_fin> est jour/mois/année::hour:min:sec. où jour est le jour du mois, mois est l'un des douze mois (Jan, Fév, Mar, Avr, Mai, Jui, Juil, Aoû, Sep, Oct, Nov, Déc), année est une année composée de 4 chiffres, heure est l'heure militaire à 2 chiffres et mn et s sont des valeurs à 2 chiffres pour les minutes et les secondes, respectivement.Par exemple, rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 est parfois associé à la valeur true à 8 heures le 1er janvier 2007 et est toujours associé à la valeur true à 17 heures le même jour, une fois l'heure de fin atteinte progressivement. |
Hôte serveur |
serverhost | Nom d'hôte complet du serveur. Cet opérande ne prend pas en charge les opérateurs numériques tels que >, >=, <, <=. |
IPV4 serveur |
serveripv4 | Adresse IP de l'ordinateur serveur au format IPv4 à quatre éléments séparés par des points n.n.n.n. |
IPV6 serveur |
serveripv6 | Adresse IPv6 128 bits du type x:x:x:x:x:x:x:x conforme au document RFC 1924 de l'ordinateur serveur. |
Maintenance |
service | Nom d'un service Web. |
Line |
time | Permet de définir la date et l'heure auxquelles une demande doit être traitée. Les deux zones facultatives sont StartTime et EndTime. Si une demande est reçue en dehors de la plage horaire définie, elle n'est pas traitée. Le format des zones d'heure de début et d'heure de fin est le suivant : jour/date/mois/année::heure:minutes:secondes. Par exemple, "mardi 11 avril 2007 à 13:03:45" est indiqué sous la forme suivante : Mar/11/Avr/2007::13:03:45 Vous pouvez utiliser le caractère générique * dans n'importe quelle zone. Par exemple, le 1er de chaque mois est indiqué sous la forme : */1. Les valeurs du jour sont Dim, Lun, Mar, Mer, Jeu, Ven, Sam et les valeurs de date sont comprises entre 1 et 31. La valeur du mois est une valeur non numérique correspondant aux mois de l'année : Jan, Fev, Mar, Avr, Mai, Jui, Juil, Aoû, Sep, Oct, Nov, Déc. La valeur de l'année comporte quatre chiffres, par exemple : 2007. L'heure est indiquée au format 24 heures. Par exemple, 8 heures du matin est indiqué sous la forme ::8. Les minutes et les secondes sont des entiers compris entre 0 et 59. La barre oblique inverse (/) sépare les paramètres de date, les deux-points doubles (::) séparent les paramètres de date, et les deux points simples (:) séparent les paramètres d'heure. Notez que c'est le résultat booléen de la règle complète dans laquelle l'opérande time est utilisé qui détermine l'action de routage appliquée. |
Portail virtuel |
virtualportal | Des portails virtuels sont créés dans WebSphere Portal Server ; la fonction Gestion intelligente prend en charge cet opérande pour une meilleure intégration à WebSphere Portal Server. Le portail virtuel est l'URL de la demande, amputée de la racine de contexte pour le module Web de l'application WebSphere Portal. Si une demande donnée correspond au portail virtuel défini, l'action de routage définie pour cette règle est appliquée. |
Expression Xpath
La syntaxe de l'expression Xpath estxpathexpr et est prise en charge par SOAP.
L'expression de type chaîne XPath comporte une zone obligatoire contenant l'expression XPath et une zone facultative permettant de définir le ou les espaces de nom locaux. Si l'expression contient uniquement des espaces de nom standard, la deuxième zone est facultative. S'il existe plusieurs espaces de nom locaux, séparez-les par une virgule (,).
Voici un exemple d'expression xpathexpr avec une définition d'espace de nom 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
Dans ce qui précède, l'expression XPath est /soap:Envelope/soap:Body/n:getTimeZone/n:clientId. Elle contient l'espace de nom local de n. Par conséquent, la deuxième zone de l'expression est définie sous la forme n \\=http://test.classify.ws.ibm.com. Le signe dollar ($) indique le début d'une définition de zone. Les doubles barres obliques inverses constituent la séquence d'échappement dans cet exemple. Une séquence d'échappement est entrée pour le premier signe égal (=) car il fait partie de la définition de l'espace de nom local, alors que le deuxième signe égal (=) est l'opérateur dans l'expression de classification, qui ne doit pas être associé à une séquence d'échappement.
L'exemple suivant affiche une expression xpathexpr avec deux espaces de nom locaux :
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
Espace de nom | 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/ |
Opérateurs
La fonction Gestion intelligente prend en charge les opérateurs dans les expressions de règles. Ces opérateurs sont également appelés prédicats dans la terminologie SQL car ils figurent dans une clause WHERE ou HAVING. La distinction entre les minuscules et les majuscules n'est pas nécessaire pour les opérateurs.
Opérateur | Description |
---|---|
OR | Opérateur logique OR (ou). |
AND | Opérateur logique AND (et). |
NOT | Opérateur logique de négation. |
IN | Exprime un opérande avec des valeurs multiples dans une même expression. Sa signification est conforme à la spécification SQL de l'opérateur. Par exemple, si vous souhaitez indiquer que le port peut avoir pour valeur 9080, 9090 et/ou 9091, utilisez le fragment d'expression suivant :
Dans SQL, la façon dont les valeurs à l'intérieur des parenthèses sont exprimées dépend du type de données de port. Cela signifie que si le port est de type entier, la syntaxe des valeurs sans apostrophes est correcte. Si le port est de type chaîne, l'expression correcte est :
|
LIKE | Exprime une correspondance de masque pour les valeurs d'opérande chaîne. La valeur doit contenir le caractère générique (%) à la position où la correspondance de masque est censée débuter. Par exemple, l'expression
host LIKE %blancapermet de rechercher les occurrences du terme blanca et tout autre terme se terminant par blanca, alors que l'expression host LIKE blanca%permet de rechercher les occurrences du terme blanca et tout autre terme commençant par blanca. L'expression host LIKE %blanca%permet de rechercher les occurrences du terme blanca et tous les termes comportant la chaîne blanca. La classe java.util.regex.Pattern est utilisée. |
= | Opérateur d'égalité utilisé pour exprimer une correspondance différenciant les minuscules et les majuscules. |
> | Opérateur supérieur à, qui doit être utilisé avec des opérandes numériques. |
>= | Opérateur supérieur ou égal à, qui doit être utilisé avec des opérandes numériques. |
< | Opérateur inférieur à, qui doit être utilisé avec des opérandes numériques |
<= | Opérateur inférieur ou égal à, qui doit être utilisé avec des opérandes numériques. |
< > | Opérateur logique de négation. |
BETWEEN | Cet opérateur est utilisé conjointement avec l'opérateur AND pour sélectionner un intervalle de valeurs comprenant la première valeur (la plus basse) et la dernière valeur (la plus haute). Ensemble, ils agissent sur des nombres et des dates. |
IS NULL | Teste un opérande dont la valeur est NULL. |
IS NOT NULL | Teste un opérande dont la valeur est autre que NULL. |