Les modèles de règle de médiation peuvent simplifier l'implémentation des règles de médiation. Cette rubrique décrit certains modèles de base à utiliser avec les règles de médiation.
Le modèle de traitement de règle de médiation définit le résultat du traitement de toute combinaison de règles de médiation. Cependant, vous pouvez simplifier l'implémentation des règles de médiation en suivant certaines règles et modèles de base.
Règles
Pour chaque groupe de propriétés, appliquez les règles suivantes :
Modèle un : règles de médiation par défaut uniquement
Si vous voulez fournir une substitution dynamique pour toutes les propriétés dynamiques de votre module, lorsque vous administrez WSRR, vous pouvez simplement connecter toutes les règles de médiation par défaut à votre module SCA.
Modèle deux : conditions à l'entrée mutuellement exclusives
Si vous avez des conditions à l'entrée mutuellement exclusives, l'environnement d'exécution n'essaiera jamais de fusionner des règles de médiation conditionnelles.
- Ayez une règle de médiation par défaut unique sans conditions à l'entrée
(l'objet attaché n'a pas de conditions). Cette règle de médiation par défaut contient toutes les propriétés du module qui peuvent être remplacées et est utilisée lorsqu'aucune des règles de médiation conditionnelles ne s'applique.
- Créez des conditions à l'entrée de telle sorte que chaque condition à l'entrée représente un cas distinct. Ainsi, les conditions à l'entrée sont mutuellement exclusives et une règle de médiation conditionnelle au maximum peut être choisie. Par exemple, vous pourriez avoir une règle de médiation avec une condition à l'entrée dont la valeur est InsuranceType = "Gold" et une autre règle de médiation avec une condition à l'entrée dont la valeur est InsuranceType
= "Silver". Pour un message particulier, InsuranceType aura la valeur Silver ou Gold et la règle de médiation appropriée sera choisie.
Exemple : conditions à l'entrée mutuellement exclusives
L'exemple suivant illustre trois règles de médiation associées à un module.
Deux règles de médiation ont une condition à l'entrée et une règle de médiation n'a pas de condition à l'entrée. Les deux règles de médiation avec une condition à l'entrée sont mutuellement exclusives.
En phase d'exécution, le contenu du message détermine les règles de médiation qui sont utilisées (et par conséquent les propriétés de module qui peuvent être remplacées) :
- Si InsuranceType = "Gold", la règle de médiation
P1 est utilisée.
- Si InsuranceType = "Silver", la règle de médiation
P2 est utilisée et les propriétés non mentionnées par P2 sont extraites de la règle de médiation P3.
- Si InsuranceType ne correspond ni à Gold ni à Silver, la règle de médiation P3 est utilisée.
Figure 1. Conditions à l'entrée mutuellement exclusives
Modèle trois : distribution des propriétés du module pour éviter les conflits
Si vous n'avez pas de conditions à l'entrée mutuellement exclusives, l'environnement d'exécution essaiera peut-être de fusionner des règles de médiation conditionnelles. Toute règle de médiation conditionnelle susceptible d'être fusionnée doit avoir des propriétés de module uniques.
- Ayez une règle de médiation par défaut unique sans conditions à l'entrée
(l'objet attaché n'a pas de conditions). Cette règle de médiation par défaut
est utilisée lorsqu'aucune des règles de médiation conditionnelles ne s'applique.
- Créez des conditions à l'entrée de telle sorte qu'une règle de médiation conditionnelle puisse être utilisée et assurez-vous que les règles de médiation susceptibles d'être fusionnées ont des propriétés uniques. Par exemple, vous pourriez avoir une règle de médiation avec une condition à l'entrée dont la valeur est InsuranceType = "Gold" et une autre règle de médiation avec une condition à l'entrée dont la valeur est InsuranceType = "Silver" et encore une autre règle de médiation avec une condition à l'entrée dont la valeur est CustomerType = "Student".
Pour un message particulier, InsuranceType aura la valeur Silver ou Gold et la règle de médiation appropriée sera choisie. Toutefois, il est possible que la règle de médiation associée à la condition à l'entrée CustomerType = "Student" doive être fusionnée avec l'autre règle de médiation conditionnelle. C'est pourquoi, elle doit contenir des propriétés de module uniques.
Exemple : distribution des propriétés du module pour éviter les conflits
L'exemple suivant illustre quatre règles de médiation associées à un module.
Trois règles de médiation ont une condition à l'entrée et une règle de médiation n'a pas de condition à l'entrée. Toute règle de médiation conditionnelle susceptible d'être fusionnée ne doit pas avoir des propriétés de module qui se chevauchent.
En phase d'exécution, le contenu du message détermine les règles de médiation qui sont utilisées (et par conséquent les propriétés de module qui peuvent être remplacées) :
- Si InsuranceType = "Gold", la règle de médiation
P1 est utilisée.
- Si InsuranceType = "Silver", la règle de médiation
P2 est utilisée.
- Si CustomerType = "Student", la règle de médiation
P3 est utilisée.
- Si deux règles de médiation conditionnelles sont utilisées, (P1 et
P3 ou P2 et P3), aucune propriété n'apparaît plus d'une fois.
- Si P1 et P3 sont utilisées, Property_A et Property_B proviennent de P1 et Property_C provient de P3.
- Si P2 et P3 sont utiliséss, Property_Aprovient de
P2, Property_C provient de P3 et Property_B provient de P4.
- Si aucune règle de médiation conditionnelle n'est utilisée, la règle de médiation
P4 est utilisée.
Figure 2. Distribution des propriétés du module pour éviter les conflits