7
votes

L'architecte veut désespérément utiliser du savon sur JMS

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.

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).

Quelqu'un utilise-t-il cette spécification dans un environnement de production? Quel est votre principal avantage d'utiliser cette spécification?

Link: http://www.w3.org/tr/2009 / CR-SOAPJMS-20090604 /


1 commentaires

Tu ne peux pas juste lui demander? : p


6 Réponses :


3
votes

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 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.

Consultez le site Apache CXF pour certains exemples (spécifique à CXF).

http://cxf.apache.org/docs /soapver-over-jms-10-support.html

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é.

EDIT:

BTW, quel conteneur d'application utiliseras-tu? Weblogic, JBoss, WebSphere? Et quel cadre de service Web? Apache CFX, axe?

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.

Quelques liens supplémentaires sur ce sujet controversé:

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 /


0 commentaires

6
votes

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


0 commentaires

14
votes

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).

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:

  • impossible de gérer correctement les délais d'attente. Vous ne savez jamais si une demande attend toujours que la livraison soit bloquée dans le composant appelé.
  • Les réponses sont généralement envoyées sur des files d'attente temporaires. Si le client se déconnecte avant de recevoir la réponse et qu'il n'y a pas de temps explicite pour être défini sur le message de réponse, la file d'attente Temp peut être bloquée dans le serveur JMS jusqu'à ce que vous le redémarrez.
  • Avoir un serveur JMS dans l'intermédiaire augmente considérablement les temps aller-retour et ajoute une compexité inutile.
  • JMS fournit un support de transport fiable qui découle l'expéditeur du récepteur, mais en cas de demande / réponse, le client ne doit pas être découplé à partir du serveur. Le client doit savoir si le serveur est disponible et disponible.

    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.


2 commentaires

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/...



0
votes

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.

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?

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.

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.


1 commentaires

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.



1
votes

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.

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

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.

savon / http et maintenant reste (avec le modèle de verbe Noun) fonctionnent mieux pour des appels de sous-système de confiance


0 commentaires

0
votes

de ici :

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.


0 commentaires