Fonctionnement du moteur de règles

Le moteur de règles traite et transmet les résultats d'une exécution de règle vers une zone de contenu d'une page Web. La zone de contenu est marquée d'un bean de zone de contenu lequel est placé dans un fichier JSP ou dans un servlet. Le fichier JSP ou le servlet est ensuite lié à la page Web.

Au moment de l'exécution, un bean de zone de contenu recherche la meilleure règle pour remplir la zone avec des données personnalisées. La meilleure règle à utiliser dépend des campagnes créées pour être exécutées. La règle associée à la zone de contenu dans la campagne dont la priorité est la plus élevée est exécutée pour personnaliser votre page Web.

Les résultats du traitement de la règle renvoient un ensemble de ressources ou un profileur. Les ressources ou le profileur renvoyés peuvent être utilisés pour générer tout ou partie d'une page Web. La figure ci-dessous illustre le traitement d'une règle.


traitement des règles

Etape A : Le processus commence lorsqu'un utilisateur demande une page JavaServer (JSP) ou un servlet dans lequel un bean de zone de contenu a été incorporé. Le bean de zone de contenu contient le code permettant de rechercher et d'exécuter la règle. Lorsque le serveur Web reçoit la requête du client pour la page JSP ou le servlet, il la transmet à IBM® WebSphere® Application Server, qui appelle ensuite JSP ou son processeur de servlet.

Le bean de zone de contenu peut être incorporé à la page JSP à l'aide de n'importe quel éditeur JSP. L'exemple de code ci-après montre comment incorporer et utiliser un bean de zone de contenu dans une page JSP.
Remarque : IBM® Rational® Application Server intègre un éditeur JSP visuel (Page Designer) qui simplifie la tâche de développement et génère le codage du scriplet JSP pour vous.

Le bean est incorporé à l'aide de la balise JSP useBean. L'objet HTTPServletRequest est transmis au bean dans le corps de la balise useBean. Les propriétés du bean de zone de contenu sont récupérées de la même manière que toutes les propriétés JavaBeans. La méthode getRuleContent du bean de zone de contenu contactsByLocation détermine la règle appropriée à exécuter. Cette action, basée sur des campagnes ayant une règle mappée sur la zone, exécute la règle et renvoie les résultats. Le bean renvoie un tableau d'objets Personnel.

Tableau 1. Exemple de code montrant l'incorporation et l'utilisation d'un bean de zone de contenu dans un fichier JSP
 <jsp:useBean id="contactsByLocation" class="GetContactsByLocation">
 <% contactsByLocation.setRequest(request); %>
 </jsp:useBean>
 <%
 try {
 Personnel[] contentArray = contactsByLocation.getRuleContent();
 Personnel theContent = contentArray[0]; // throws an exception if empty
 %>
 <TABLE border="1">
 <TBODY> <TR>
 <TD>Last Name</TD>
 <TD>First Name</TD>
 <TD>Role</TD>
 <TD>Site</TD>
 </TR>
 <% for (int _i0 = 0; ; ) { %>
 <TR>
 <TD><%= theContent.getLastName() %></TD>
 <TD><%= theContent.getFirstName() %></TD>
 <TD><%= theContent.getRole() %></TD>
 <TD><%= theContent.getSite() %></TD>
 </TR>
 <% _i0++;
 try {
 theContent = contentArray[_i0];
 }
 catch (java.lang.ArrayIndexOutOfBoundsException _e0) {
 break;
 }
 } %>

 </TBODY>
 </TABLE>
 <% }
 catch (java.lang.ArrayIndexOutOfBoundsException _e0) {
 } %>
 
Remarque : Lorsque vous décidez d'ajouter du contenu personnalisé à une page web, seul le bean de zone de contenu est nécessaire pour développer la page JSP. La zone de contenu peut afficher des données personnalisées d'un type unique (dans cet exemple, Personnel). En effet, le développeur n'a pas besoin de connaître l'origine du contenu ou la manière dont il est récupéré puisque seul le type de contenu Personnel est renvoyé avec un ensemble de propriétés à afficher.

Etape B : Lorsque le bean de zone de contenu incorporé est lancé, le processeur lui transmet l'objet de requête de servlet HTTP. La requête du client est utilisée pour initialiser RequestContext. RequestContext fournit l'accès aux ressources nécessaires au traitement de la règle. Ces ressources incluent les collections, les objets applications, les requêtes et les sessions. RequestContext s'applique pendant toute la durée de vie de la requête HTTP.

Etape C : recherche les règles appropriées dans le référentiel et les exécute. Le moteur de règles Personalization rules engine find the appropriate rules in the IBM® Java Content Repository and runs them

Etape D : Le moteur de règles traite la règle pour obtenir les résultats de l'exécution des règles.

Etape E : le moteur de règles renvoie le résultat de l'exécution de la règle au bean de zone de contenu. Il peut s'agir d'une liste de contenu valide que l'utilisateur peut sélectionner, d'une chaîne, d'une valeur booléenne ou d'aucun résultat. Le scriptlet JSP ou le servlet utilisent les résultats de la règle pour faire dériver du contenu Web spécifique afin de l'inclure dans la page Web générée. Le serveur Web envoie ensuite la page au client.