GNT sans publicité, site mobile, fonctionnalitées exclusives...

afficher dans jsp toutes les autres jsp génerées par l'appli

Le
thisislife
bonjour à tous,

dans le contexte d'une application devant pouvoir gérer plusieurs
centaines d'utilisateurs, je cherche à ce que [b]quand un utilisateur
effectue une action dans une jsp, celle-ci fasse recharger
immédiatement certaines pages spécifiques[/b] affichées par d'autres
utilisateurs

par exemple, il y a 10 utilisateurs dans l'appli. vous cliquez sur un
bouton dans votre page, et les 3 autres utilisateurs concernés voient
immédiatement leurs pages mises à jour avec la modif que vous avez
faite alors que les 7 autres utilisateurs gardent leur page inchangée.

le but est qu'il n'y ait que quatre connexions à la base, une pour
chacune de ces pages modifiées, au lieu d'une dizaine si chaque page
doit vérifier régulièrement si ses données ont été changées


pour tester ca, je voudrais parvenir à afficher dans une jsp toutes
les autres jsp en cours d'affichage générées par cette application
ainsi, s'il y a 4 personnes qui vont sur cette page au même moment
(session non expirée), ou sur d'autres pages de cette appli test, elle
devra afficher qu'il y a 4 pages

l'étape suivante sera de parvenir à faire recharger les autres pages
affichées à partir de celle-ci

évidemment il faut arriver à faire cela avec un minimum de conso
serveur ^^


les solutions que je vois :

[b]1) base de données[/b]. solution classique. pour rester un minimum
réactif, cela implique que
>> toutes les pages se rechargent régulièrement pour savoir si leur aff=
ichage doit changer, ce qui est idiot puisque la page sera rechargée mê=
me si l'affichage n'a pas besoin d'être mis à jour.
>> chaque page lance une petite thread vérifiant régulièrement si les=
données la concernant ont été modifiées. si oui, elle recharge la =
page.
>>>> entraine un gaspillage de ressources serveur et de connexions bd éno=
rme (si chaque page lance une thread ou se recharge toutes les secondes)

2) parvenir, à partir d'une page, à [b]accéder aux autres pages
crées par le serveur pour les autres utilisateurs[/b]
dans ce cas, il "suffit" de ne faire recharger que les pages
concernées par la modif. et celles-ci ne se connecteront à la base
que si elles en ont besoin.
mais comment une page peut être accéder aux autres pages générées
par l'application ?
>> par la session ? il y avait un HttpSessionContext bien utile, mais visib=
lement supprimé
>> par des streams ?
>> ouvrir des sockets entre les pages ? ce qui implique de développer un =
véritable mécanisme serveur/clients un peu lourd quand même dans c=
e cas je vois pas l'intéret de faire du dev internet :(
>> par les fichiers physiques générés sur le serveur, mais ca ne perm=
et pas de communiquer avec elles, juste de savoir qu'elles existent et év=
entuellement de les supprimer (bonjour les effets de bord en perspective ^^)
>> ???


bref, si vous avez des idées elles sont les bienvenues ! ^^

cordialement

David
Lire les 2 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
alexandre cartapanis
Le #207729
thisislife wrote:
bonjour à tous,

dans le contexte d'une application devant pouvoir gérer plusieurs
centaines d'utilisateurs, je cherche à ce que [b]quand un utilisateur
effectue une action dans une jsp, celle-ci fasse recharger
immédiatement certaines pages spécifiques[/b] affichées par d'aut res
utilisateurs

par exemple, il y a 10 utilisateurs dans l'appli. vous cliquez sur un
bouton dans votre page, et les 3 autres utilisateurs concernés voient
immédiatement leurs pages mises à jour avec la modif que vous avez
faite alors que les 7 autres utilisateurs gardent leur page inchangée .

le but est qu'il n'y ait que quatre connexions à la base, une pour
chacune de ces pages modifiées, au lieu d'une dizaine si chaque page
doit vérifier régulièrement si ses données ont été changé es



Heu si au lieu de mettre ton code JDBC dans tes JSPs tu utilises une
couche DAO, couplé a une pool de connection, a mon avis t'as pas besoin
de te faire chier. D'autant plus si tu rajoutes une gestion des
transactions...
Bon apres c'est vrai que suivant les cas ca ne resoudra pas toujours tes
souci...


pour tester ca, je voudrais parvenir à afficher dans une jsp toutes
les autres jsp en cours d'affichage générées par cette applicatio n
ainsi, s'il y a 4 personnes qui vont sur cette page au même moment
(session non expirée), ou sur d'autres pages de cette appli test, ell e
devra afficher qu'il y a 4 pages

l'étape suivante sera de parvenir à faire recharger les autres page s
affichées à partir de celle-ci

évidemment il faut arriver à faire cela avec un minimum de conso
serveur ^^


les solutions que je vois :

[b]1) base de données[/b]. solution classique. pour rester un minimum
réactif, cela implique que

toutes les pages se rechargent régulièrement pour savoir si leur a ffichage doit changer, ce qui est idiot puisque la page sera rechargée même si l'affichage n'a pas besoin d'être mis à jour.
chaque page lance une petite thread vérifiant régulièrement si l es données la concernant ont été modifiées. si oui, elle recharge la page.

entraine un gaspillage de ressources serveur et de connexions bd é norme (si chaque page lance une thread ou se recharge toutes les secondes ...)






2) parvenir, à partir d'une page, à [b]accéder aux autres pages
crées par le serveur pour les autres utilisateurs[/b]
dans ce cas, il "suffit" de ne faire recharger que les pages
concernées par la modif. et celles-ci ne se connecteront à la base
que si elles en ont besoin.
mais comment une page peut être accéder aux autres pages généré es
par l'application ?

par la session ? il y avait un HttpSessionContext bien utile, mais vis iblement supprimé...
par des streams ?
ouvrir des sockets entre les pages ? ce qui implique de développer u n véritable mécanisme serveur/clients... un peu lourd quand même da ns ce cas je vois pas l'intéret de faire du dev internet :(
par les fichiers physiques générés sur le serveur, mais ca ne pe rmet pas de communiquer avec elles, juste de savoir qu'elles existent et éventuellement de les supprimer (bonjour les effets de bord en perspect ive ^^)
???






Une autre possibilité est de passer par des evenements peut etre. Mais
en statique je vois pas trop. Regarde du coté des technologies AJAX.
Google fais des trucs sympa AJAX.


bref, si vous avez des idées elles sont les bienvenues ! ^^

cordialement

David







Fabien Bergeret
Le #207724
thisislife wrote:
bonjour à tous,

dans le contexte d'une application devant pouvoir gérer plusieurs
centaines d'utilisateurs, je cherche à ce que [b]quand un utilisateur
effectue une action dans une jsp, celle-ci fasse recharger
immédiatement certaines pages spécifiques[/b] affichées par d'autres
utilisateurs

par exemple, il y a 10 utilisateurs dans l'appli. vous cliquez sur un
bouton dans votre page, et les 3 autres utilisateurs concernés voient
immédiatement leurs pages mises à jour avec la modif que vous avez
faite alors que les 7 autres utilisateurs gardent leur page inchangée.

le but est qu'il n'y ait que quatre connexions à la base, une pour
chacune de ces pages modifiées, au lieu d'une dizaine si chaque page
doit vérifier régulièrement si ses données ont été changées


pour tester ca, je voudrais parvenir à afficher dans une jsp toutes
les autres jsp en cours d'affichage générées par cette application
ainsi, s'il y a 4 personnes qui vont sur cette page au même moment
(session non expirée), ou sur d'autres pages de cette appli test, elle
devra afficher qu'il y a 4 pages

l'étape suivante sera de parvenir à faire recharger les autres pages
affichées à partir de celle-ci

évidemment il faut arriver à faire cela avec un minimum de conso
serveur ^^


les solutions que je vois :

[b]1) base de données[/b]. solution classique. pour rester un minimum
réactif, cela implique que

toutes les pages se rechargent régulièrement pour savoir si leur affichage doit changer, ce qui est idiot puisque la page sera rechargée même si l'affichage n'a pas besoin d'être mis à jour.
chaque page lance une petite thread vérifiant régulièrement si les données la concernant ont été modifiées. si oui, elle recharge la page.

entraine un gaspillage de ressources serveur et de connexions bd énorme (si chaque page lance une thread ou se recharge toutes les secondes...)






2) parvenir, à partir d'une page, à [b]accéder aux autres pages
crées par le serveur pour les autres utilisateurs[/b]
dans ce cas, il "suffit" de ne faire recharger que les pages
concernées par la modif. et celles-ci ne se connecteront à la base
que si elles en ont besoin.
mais comment une page peut être accéder aux autres pages générées
par l'application ?

par la session ? il y avait un HttpSessionContext bien utile, mais visiblement supprimé...
par des streams ?
ouvrir des sockets entre les pages ? ce qui implique de développer un véritable mécanisme serveur/clients... un peu lourd quand même dans ce cas je vois pas l'intéret de faire du dev internet :(
par les fichiers physiques générés sur le serveur, mais ca ne permet pas de communiquer avec elles, juste de savoir qu'elles existent et éventuellement de les supprimer (bonjour les effets de bord en perspective ^^)
???





bref, si vous avez des idées elles sont les bienvenues ! ^^

cordialement

David

De toutes facons, tu ne coupes pas a un polling donc a une interrogation

de ton serveur.
Ensuite, si t'as bcp de requetes indentiques a la BDD, tu peux mettre en
place un cache
Ma proposition "old school" (sans Ajax) : le multiframe : une frame se
resoumet toutes les n secondes. Si la page a besoin d'etre rechargee,
elle declenche un javascript de rechargement de la page principale.
La meme "high tech" : toutes les n secondes, tu fais une requete par
Javascript qui te remonte l'etat de ta page (a jour, ou pas), et suivant
le resultat, la page se rafraichit ou ne fait rien





Publicité
Suivre les réponses
Poster une réponse
Anonyme