Web Services et transaction ? (JAVA)

Web Services et transaction ? (JAVA) - Java - Programmation

Marsh Posté le 16-08-2005 à 09:38:31    

Salut à tous,  
 
est-il possible de faire des transactions avec les web services ?  
Je m'explique un peu :  
on a 4 web-services.  
L'utilisateur peut appeler un ou plusieurs de ces ws dans l'ordre ou il veut seulement on souhaite que lorsqu'il a appeler son dernier ws (c'est l'utilisateur qui le précise) on fasse un commit ou un rollback de tout ce que les ws appelés ont fait.  
Chaque ws fait une ou plusieurs actions dans une base de données (la même pour tous les ws).
 
Ex : 1-2-3, tout est ok, on commit.
1-4, tout est ok, on commit
1-2-3-4, le ws 2 plante, on ne fait pas 3-4, on rollback 1.
 
Merci de votre aide.
Nestor.

Reply

Marsh Posté le 16-08-2005 à 09:38:31   

Reply

Marsh Posté le 16-08-2005 à 10:27:44    

J'imagine mal que tu laisses une transaction en suspens en attendant une requête WS pour décider du commit/rollback.
 
Les transactions doivent rester les plus courtes possibles dans le temps. Pense seulement aux questions d'accès sur les données non commitées avec une transaction qui va peut-être attendre plusieurs minutes et tu comprendras que ce n'est pas une bonne idée.
 
- Soit tu revois ton design pour éviter que les données ne soient considérées comme définitives (p.e. flags);
- Soit tu prévois un mécanisme logique pour défaire ce qui a été fait si nécessaire.
 
Dans tous les cas, je ne saurais que trop te conseiller de ne pas reporter ce boulot sur la transaction, même si c'est tentant. Le gain n'est même pas forcément assuré, puisque que tu devras de tte façon prévoir un moyen de récupérer le contexte transactionnel en cours lors de l'arrivée d'une requête WS.
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 16-08-2005 à 11:26:14    

(surtout si le client se casse la gueule entre 2 appels)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 16-08-2005 à 11:54:33    

the real moins moins a écrit :

(surtout si le client se casse la gueule entre 2 appels)


T'es bon pour implémenter toi-même un mécanisme de timeout qui reprendra la transaction en cours pour la couler.   [:pingouino]
 
Plus j'y pense, plus je trouve que c'est une très mauvaise idée.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 25-08-2005 à 21:26:46    

Nestor a écrit :

Salut à tous,  
 
est-il possible de faire des transactions avec les web services ?  
Je m'explique un peu :  
on a 4 web-services.  
L'utilisateur peut appeler un ou plusieurs de ces ws dans l'ordre ou il veut seulement on souhaite que lorsqu'il a appeler son dernier ws (c'est l'utilisateur qui le précise) on fasse un commit ou un rollback de tout ce que les ws appelés ont fait.  
Chaque ws fait une ou plusieurs actions dans une base de données (la même pour tous les ws).
 
Ex : 1-2-3, tout est ok, on commit.
1-4, tout est ok, on commit
1-2-3-4, le ws 2 plante, on ne fait pas 3-4, on rollback 1.
 
Merci de votre aide.
Nestor.


 
Moi aussi je suis perplexe.
 
Soit l'appel de tes 4 WS  se fait dans une ou plusieurs logique correspondant a un ou plusieurs "use case" que tu as identifié et il faudrait avoir des WS de plus haut niveaux qui representeraient ces uses cases et ce serait a eux de maintenir une transaction
Soit l'appel a un WS est un use case a lui même....
 
Sinon il y a une norme WS-Transaction ou qqchose dans le genre mais je ne l'ai pas regardé en détail...

Reply

Marsh Posté le 28-08-2005 à 18:13:41    

Nestor a écrit :

Salut à tous,  
 
est-il possible de faire des transactions avec les web services ?  
Je m'explique un peu :  
on a 4 web-services.  
L'utilisateur peut appeler un ou plusieurs de ces ws dans l'ordre ou il veut seulement on souhaite que lorsqu'il a appeler son dernier ws (c'est l'utilisateur qui le précise) on fasse un commit ou un rollback de tout ce que les ws appelés ont fait.  
Chaque ws fait une ou plusieurs actions dans une base de données (la même pour tous les ws).
 
Ex : 1-2-3, tout est ok, on commit.
1-4, tout est ok, on commit
1-2-3-4, le ws 2 plante, on ne fait pas 3-4, on rollback 1.
 
Merci de votre aide.
Nestor.


 
A l'heure actuelle, je ne pense pas que cela soit possible, en tout cas de manière "standard".
Je m'explique : autour des Services Web, seuls les besoins en terme de transport (SOAP), découverte (UDDI), description du service (WSDL) sont bien adressés; les implémentations sont matures, leurs specs sont arrivés au terme de leur cycle de validation. C'est la brique minimum pour faire des SW. Par dessus sont en train de se greffer des briques pour adresser d'autres besoins tels que la transactionnalité, la sécurité (mature avec WS-Security si je ne m'abuse), et d'autres services métiers ... avec des implémentations et des specs plus ou moins matures.
 
Concernant la transactionnalité, il me semble bien que c'est encore loin d'être mature et implémenté (et effectivement, il faudrait regarder du côté de WS-Transaction).
 
Il va donc falloir développer une solution "maison" (qui ne sera donc pas "standard" ) ou contourner le pb pour répondre de manière plus ou moins satisfaisante aux besoins. Mais ça sera, à vue d'oeil, un compromis ..
 
Si qqun pouvait confirmer, ça fait quelques temps que j'ai pas touché aux SW mais aux dernières nouvelles, pas possible de mettre un contexte transactionnel.

Reply

Marsh Posté le 28-08-2005 à 18:27:10    

C'est gentil de répondre à un gars qui ne s'est pas manifesté depuis 12 jours...
 
Enfin, on disait que ça servirait aux suivants, qui ne feront de toute façon pas de recherche avant de poser la même question.
 
[:pingouino]

Reply

Marsh Posté le 28-08-2005 à 18:50:43    

sircam a écrit :

C'est gentil de répondre à un gars qui ne s'est pas manifesté depuis 12 jours...
 
Enfin, on disait que ça servirait aux suivants, qui ne feront de toute façon pas de recherche avant de poser la même question.
 
[:pingouino]


 
 :D  
 
Exact, j'avais même pas tilté sur la date de son message ... bah on va dire que c'était ma petite contribution inutile du dimanche après-midi ..

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed