J'ai utilisé JMS dans le passé pour créer une application et cela fonctionne bien. Maintenant, je travaille avec des architectes qui aimeraient utiliser les spécifications: SOAP sur Java Message Service 1.0. P>
Cette spécification coutures trop compliquées. Je ne vois pas beaucoup de mise en œuvre (à côté des fournisseurs qui poussent pour la spécification). P>
Quelqu'un utilise-t-il cette spécification dans un environnement de production? Quel est votre principal avantage d'utiliser cette spécification? P>
6 Réponses :
Goddammit, je déteste travailler avec des astronautes d'architecte. Je sens ton frère de douleur. Ont-ils réellement une raison réelle et fonctionnelle de le faire autre que «c'est une normalisation»? Cette décision va-t-elle les verrouiller dans un fournisseur de conteneurs EE spécifique (dire WebSphere)? C'est tellement 2002; très peu de gens ont un besoin réel fort> em> pour cela; Et en fait, le savon a été presque ignoré par la plupart des implémentations réussies. À moins d'avoir un besoin réel de plus de fiabilité que ce qu'il est fourni par JMS ou SOAP-Over-http seul, vous êtes pour un voyage. P>
Consultez le site Apache CXF pour certains exemples (spécifique à CXF). P>
http://cxf.apache.org/docs /soapver-over-jms-10-support.html P>
La règle de base serait d'utiliser vraiment les minimums nus, et non la pile complète. Si vos astronautes d'architecte insistent toujours pour utiliser le tout, vous pouvez simplement entrer dans un monde de douleur. Désolé. P>
BTW, quel conteneur d'application utiliseras-tu? Weblogic, JBoss, WebSphere? Et quel cadre de service Web? Apache CFX, axe? P>
Les astronautes des architectes aimeront dire que ce sont des détails de la mise en œuvre. Taureau. Toute décision sur un système dont les opérateurs de changement un coût élevé (ou dont la mise en œuvre comporte des économies importantes) est une décision architecturale. Celles-ci dictent à peu près comment les choses seront mises en œuvre (et quels seront les coûts de changement) afin de déterminer tôt sur lequel vous utiliserez est une décision architecturale, sauf avec des systèmes très autonomes. P>
Quelques liens supplémentaires sur ce sujet controversé: p>
http://www.subbu.org/blog/2005 / 03 / SOAP-Over-JMS
http: // parand .com / dites / index.php / 2005/03/29 / SOAP-Over-JMS-NO-TEL-THOW / P> EDIT: H2>
Je dirais que, d'une prospection d'un architecte la même question, il s'agirait de savoir pourquoi avoir un modèle Internet à 5 couches, le 5 étant l'application lorsque l'on pourrait simplement coder la totalité de l'application au niveau de la prise. Pour résumés de la couche de transport (JMS dans votre cas) de ce que votre application produit ou consomme (SOA Messages) est une bonne pratique pour les raisons pour lesquelles les mesures de l'unité indépendantes et les migrations futures vers d'autres plates-formes sont les premières à venir à mon esprit p>
J'ai eu la malchance avec du savon sur JMS. Cela donne un sens, s'il est utilisé pour les opérations d'incendie et d'oubli (aucun message de réponse défini dans la WSDL). Dans ce cas, vous pouvez utiliser le WSDL pour générer des squelettes client et vous pouvez stocker le WSDL dans votre registre de service. De plus, vous obtenez tous les avantages habituels de JMS (expéditeur et récepteur de découplage, équilibrage de la charge, hiérarchisation, sécurité, pontage à plusieurs destinations - par exemple audit non intrusif). P>
D'autre part SOAP est principalement utilisé pour les opérations de demande / de réponse. Modèle de mise en œuvre de demande / réponse sur JMM introduit les problèmes suivants: P>
Le seul avantage que je pouvais penser est que le serveur peut être déplacé ou équilibré de la charge sans que le client le connaisse, mais à l'aide d'un équilibreur de charge UDDI et HTTP est une solution meilleure. P>
Puis-je poser une question: le savon signifie-t-il qu'un service Web est nécessaire, c'est-à-dire HTTPS? Dans les manuels IBM sur MQ pour les API de protocole JMS pour JMS sont utilisés. Le savon peut-il être utilisé avec une API JMS?
Contrairement au repos, le savon ne définit pas le protocole d'application sous-jacent (API). Le savon peut fonctionner sur http (s), JMS ou Post Pigeons. IMHO, "service Web" signifie savon sur http (s). Dans le passé, lorsque le savon était toujours traditionnel, des fournisseurs tels que TIBCO (EMS) et IBM (MQ) ont introduit le savon sur le support JMS. C'est toujours là, mais je ne pense pas qu'il a beaucoup d'usage. par exemple: docs.tibco.com/pub/activematrix_businessworks/6.5.1/doc/html / ... ibm.com/support/knowledgegecenter/fr/ssfksj_9.1.0/...
Image Vous avez implémenté un service Web fréquemment utilisé, que tend à courir des threads OUF pendant que vous avez promis, qu'aucun message sera perdu. p>
Une implémentation sur le service Web (le serveur) qui traverse une Bean de session vient avec une quantité limitée de fils (dire n PE actif dans votre piscine), qui peut exécuter n demande de service Web simultanément. Que va-t-il arriver à la demande N + 1? P>
MRDE, vous n'avez pas promis votre propriétaire de l'application, que non le message sera perdu. Donc, les quarantages JMS cette fonctionnalité. Le squelette WebService doit uniquement stocker les données dans une file d'attente, et cela donne également une fiabilité en ce qui concerne les pics de charge. P>
La chose intéressante sur WS sur JMS est que le temps écoulé d'une demande WS-WRS est assez courte, donc le calcul de Ressouce sera de retour immédiatement au serveur la demande suivante. P>
Hmmm, je n'ai pas acheté l'argument. Cela suggère quasiment d'utiliser du savon / JMS pour couvrir les problèmes d'évolutivité avec une conception ou une architecture.
SOAP / JMS et SOAP / HTTP sont utilisés pour différents scénarios, bien que des incendies de messages et de la requête / réponse. SOAP / JMS est en fait terrible pour la propagation de messages découverts (si nécessaire convertis) sur plusieurs Sourecs simplement par usage de la savon et Targetservice. Les spécifications JMS aident également à router complexe à l'aide des en-têtes. P>
En fait, UDDI ainsi que des serveurs de construction peuvent, est et a été utilisé comme sources pour découvrir les WSDLS publiés (Inline) à partir de déploiements de middleware massives (indépendamment de l'architecture du moteur) sous forme de message SOAP / JMS à Singular Soa Repository. Très important dans la gouvernance d'entreprise p>
Il est donc de la plus haute importance pour les modèles de robinets de fil essentiellement lorsque l'asynchronicité est d'une importance primordiale. P>
savon / http et maintenant reste (avec le modèle de verbe Noun) fonctionnent mieux pour des appels de sous-système de confiance p>
de ici : P>
Savon sur JMS offre un mécanisme de messagerie alternatif au savon Http. Bien que ce ne soit pas encore standardisé et que ce ne soit peut-être pas interopérable entre les plates-formes, le savon sur JMS offre plus fiable et Support de messagerie évolutif que le savon sur http. Comme Jax-RPC et JSR-109 devenir des parties intégrales de la norme J2EE, messagerie d'entreprise dans Les services Web utilisant SOAP sur JMS deviendront bien établis. P> blockQuote>
Tu ne peux pas juste lui demander? : p