Bonjour,

Je suis face à un dilemme relatif au découpage des couches dans mon application JSF qui sera deployé sur un serveur JBoss 7 ou 8.
Mon souci concerne un bean fournissant un service de recherche dans une base de données en utilisant hibernate-search.

La première approche que j'ai imaginé consiste à faire un bean de type singleton implémentant une seule méthode avec tout les paramètres de la recherche dont la signature est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
List<Event> find(double longitude, double latitude, double radius, int start, int end);
Dans ce cas, c'est le bean JSF de type session qui gère les paramètres de la méthode ainsi que les résultats préalablement récupérés.

La seconde approche consiste à fournir individuellement les paramètres de la recherche à l'EJB, dont l’implémentation serait alors de type Statefull, ce qui impose d'ajouter les accesseurs à l'interface remote du bean en question :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
double getLatitude();
void setLatitude(double latitude);
double getLongitude();
void setLongitude(double longitude);
double getRadius();
void setRadius(double radius);
List<Event> find(int start, int end);
Le bean JSF ne sert alors que d'intermédiaire pour l'accès au paramètre de la recherche et des résultats.


Qu'en pensez vous sachant que le site en question pourrait rapidement faire face à une charge importante d'utilisateur ? Existe t'il un consensus entre les deux approches ou l'une d'entre elles est-elle plus adaptée ?