JMS vs Webservices
Quels sont les grands avantages de JMS sur Webservices ou vice-versa?
(Webservices sont gonflés? Est JMS globalement mieux pour fournir des interfaces?)
Vous devez vous connecter pour publier un commentaire.
Quels sont les grands avantages de JMS sur Webservices ou vice-versa?
(Webservices sont gonflés? Est JMS globalement mieux pour fournir des interfaces?)
Vous devez vous connecter pour publier un commentaire.
ÉDITÉ après correction de erickson:
JMS exige que vous ayez un fournisseur JMS, une classe Java qui implémente l'interface MessageListener pour le traitement des messages, et un client qui sait comment se connecter à la file d'attente JMS. JMS moyens de traitement asynchrone - le client envoie le message et de ne pas forcément attendre une réponse. JMS peut être utilisé dans un point-à-point de la file d'attente de la mode ou de la publication/abonnement.
"Service" est un fluide terme. Je pense à un service en tant que composante de ce qui vit sur un réseau et l'annonce d'un contrat: "Si vous m'envoyer X je vais effectuer cette tâche pour vous et retournez Y."
De composants distribués ont été autour pendant un long moment. Chacun communiqué en utilisant un protocole différent (p. ex., COM, Corba, RMI, etc.) et les exposés de leur contrat de différentes manières.
Services Web sont la dernière tendance dans la distribution de services. Ils utilisent le protocole HTTP comme protocole et peut s'interfacer avec n'importe quel client peut se connecter via TCP/IP et de faire une requête HTTP.
Vous pouvez utiliser du SAVON ou de la RPC XML ou de REPOS ou de "contrat première" les styles, mais l'idée sous-jacente d'un composant distribué à l'aide de HTTP comme protocole reste.
Si vous acceptez tout cela, les services web sont généralement des appels synchrones. Ils n'ont pas besoin d'être gonflé, mais vous pouvez écrire les composants défectueux dans n'importe quel style ou de la langue.
Vous pouvez commencer à concevoir tout composant distribué par la conception de la demande et des réponses. Compte tenu de ces, vous choisissez JMS ou des services web basés sur ce genre de clients que vous voulez avoir et si la communication est synchrone ou asynchrone.
Message en fonction des systèmes, y compris JMS, offrent la possibilité d'être "chronologiquement découplé" de l'autre extrémité. Un message peut être envoyé sans l'autre extrémité étant disponible.
Toutes les autres communes A2A approches nécessitent le partenaire pour être en mesure de répondre immédiatement, les obligeant à être en mesure de gérer les pics de charge, avec peu de capacité de propagation de traitement.
Je dirais que la plus grande différence est que JMS est orienté message, plutôt que de RPC orienté. Out-of-the-box, la plupart des JMS fournisseurs prennent en charge les protocoles de haut niveau qui effectuent des tentatives, éviter les doublons, et de prendre en charge les transactions.
Il existe de nombreuses applications où ces capacités sont inutiles. Mais là où ils sont nécessaires, de les construire vous-même à la tête d'un mécanisme RPC est compliquée, coûteuse et sujette à erreur.
permettez-moi de parler w.r.t de SAVON mise en œuvre du protocole de services web...ce qui est mieux JMS vs webservices....JMS fournit protocole de transport et il est sous-jacent de messagerie du fournisseur qui représente la façon dont beaucoup de bonne ou mauvaise, est ur fournisseur JMS pour, par exemple, la MQ est un puissant fiable fournisseur JMS, où en tant que protocole SOAP peuvent être considérés à la fois le niveau d'application du protocole et peut aussi être traité comme un protocole de transport (dans le sens de SOAP/HTTP)...le plantera de SAVON est à l'appui de XML standard...comme une demande de protocole de niveau, nous considérons que le SAVON qu'un message soit passé d'un système à l'autre au-dessus de tout protocole de transport où un protocole de transport, le SAVON peut être considéré comme un conteneur pour le transport d'une charge utile(données de message)...SOAP/HTTP peuvent également être considérés comme JMS meesaging fournisseur....mais dans la dernière forme, HTTP a des problème de fiabilité, comme il invloves les erreurs liées à la mise en réseau, les connexions socket, bande passante etc...donc les garder pour faire une histoire courte, JMS avec des messages fiables fournisseur fait-il bon standard de l'interaction avec le bon protocole de transport où webservice comme une demande de protocole de niveau rend disparates application de communiquer à l'aide de XML-comme-protocole SOAP...espérons que cela clarifie...
Services Web sont une mise en œuvre d'Architectures Orientées Services (SOA). Un SOA a trois parties: un fournisseur, d'un courtier, et un demandeur, qui sont faiblement couplés. Le fournisseur propose un service de l'entreprise que représente une mise en oeuvre particulière, qui n'est pas directement visible par le demandeur. Le demandeur apprend par le courtier de la structure de l'information qu'il a à envoyer et à recevoir par le fournisseur et le protocole à utiliser pour accéder à ce service. Le demandeur n'a pas connaissance de la façon dont le fournisseur met en œuvre le service de l'entreprise.
Web services sont définis comme nécessaires interfaces entre un demandeur et un fournisseur, et non pas comme un tuyau commun pour toutes les demandes de l'entreprise. Il y a plusieurs variables qui peuvent caractériser des services web, y compris les suivants:
JMS est un message asynchrone basé sur l'interface. Vous pouvez également utiliser JMS pour accéder à la logique métier répartis entre des systèmes hétérogènes. Avoir un message basé sur l'interface permet les fonctions suivantes:
De Point à Point et publier/souscrire des mécanismes. Basé sur le Message cadres peuvent pousser les informations aux autres applications sans leur demander explicitement. La même information peut être livré à de nombreux abonnés en parallèle.
Rythme de l'indépendance. JMS cadres de la fonction en mode asynchrone, mais offrent également la possibilité de simuler un synchrone demande/réponse de la mode. Cela permet aux systèmes source et cible de travailler simultanément sans avoir à attendre les uns des autres.
De la garantie de livraison de l'information. JMS cadres peuvent gérer les messages en mode transactionnel et d'assurer la livraison d'un message (mais sans aucune garantie de respect des délais de livraison).
L'interopérabilité entre hétérogène cadres. La source et cible les applications peuvent fonctionner dans des environnements hétérogènes, sans avoir à gérer les problèmes de communication et d'exécution liées à leurs cadres respectifs.
Rendre les échanges plus fluides. Le commutateur de mode message permet à grains plus fins de l'échange d'informations.
Source
Serait ajouter un commentaire à dyffymo post, mais n'ont pas encore de la rep.
Citant votre réponse:
"Services Web sont la dernière tendance dans la distribution de services. Ils utilisent le protocole HTTP comme protocole et peut s'interfacer avec n'importe quel client peut se connecter via TCP/IP et de faire une requête HTTP.
Vous pouvez utiliser du SAVON ou de la RPC XML ou de REPOS ou de "contrat première" les styles, mais l'idée sous-jacente d'un composant distribué à l'aide de HTTP comme protocole reste."
Je suis en supposant que par des services web tu veux dire que le WS-* ensemble de protocoles, WSDL et SOAP. Si oui, alors aucun de ces exiger l'utilisation de HTTP comme le "transport" du protocole. La SOA ensemble de protocoles a été conçu pour être agnostique quant à la tramission protocoles utilisés, de sorte que vous pouvez utiliser HTTP, NamedPipes, raw TCP, et même JMS comme le moyen de transmettre des messages vers et à partir d'un service web.
Ainsi, dans le cas de l'utilisation directe de JMS vs l'utilisation de "services web", je pense que cela se réduit essentiellement à l'outillage, le niveau de confort, et si vous en avez vraiment besoin d'un accès direct à certains JMS fonctionnalité spécifique (qui à l'aide de WS-* voulez-vous cacher). À ce stade, je pense que seulement assez specilized applications nécessitent raw JMS accès.
De ceux que j'ai fait, voici les différences que j'ai trouvé:
JMS - je suis attaché au fournisseur JMS - toutefois, j'ai des choix de mise en œuvre de type (pub/sub, point à point)
Service Web - plus facile à manipuler/architecte - toutefois son plus d'une communication directe entre les cases. Beaucoup d'outils à utiliser pour faire la mise au point et une interface propre (WSDL), afin chargé de l'implémentation et de l'appelant peut être indépendant.
Lequel utiliser? Dépend de ce que le problème est.
Tout dépend de vos besoins, quels cadres que vous utilisez et de votre environnement d'applications et de comportement . Si vous pouvez donner un aperçu à ce sujet, alors vous pouvez obtenir un rigide réponse.
Maintenant c'est comme comparer un camion avec une voiture berline, Vous devez savoir ce que vous utiliser et sur la route pour être en mesure de décider ce qui est mieux.
JMS et WS à la fois permettre de distribuer des applications. La différence est asynchrone(JMS) vs synchrone (Web Services). Les Services Web peuvent être mis en œuvre dans la fabrication de SAVON ou de REPOS styles. JMS est une api qui prend en charge la communication dans les deux modes - point-à-point et de publier-souscrire. Apache ActiveMQ, RabitMQ sont quelques-uns des nombreux JMS réalisateurs.