En Java, quelle est la différence entre un top-down service web et un bottom-up web service? Aussi, quelle est la différence entre un SAVON et un REST-ful service web?
Réponses
Trop de publicités?De haut en bas signifie que vous commencez avec un WSDL et ensuite créer les échafaudages en Java tout le chemin vers le bas.
Bas signifie que vous commencez avec une méthode en Java, et de générer le WSDL à partir d'elle.
SAVON signifie que l'URL est la même pour toutes les invocations, et seuls les paramètres de la méthode Java diffère. RESTE signifie que l'URL reflète l'opération à faire.
Contrat-première par rapport à un Contrat-dernière
En plus de l'Objet/XML de Mapping questions mentionnées dans la section précédente, il existe d'autres raisons de préférer un premier contrat de développement de style.
1. La fragilité Comme mentionné précédemment, le contrat-le dernier développement de ce style dans votre site web de contrat de service (WSDL et XSD) étant générée à partir de votre Java contrat (généralement une interface). Si vous utilisez cette méthode, vous n'avez aucune garantie que le contrat reste constante au cours du temps. Chaque fois que vous changez votre Java contrat et le redéployer, il peut y avoir des modifications ultérieures à la web contrat de service. Aditionally, pas toutes les piles SOAP générer le même service web contrat de Java contrat. Cela signifie changer votre pile de SAVON pour un autre (pour quelque raison que ce soit), également susceptibles de modifier votre site web contrat de service. Lorsqu'un service web de modifications de contrat, les utilisateurs du contrat devra être tenu d'obtenir un nouveau contrat et éventuellement de modifier leur code afin de s'adapter à tout changement dans le contrat. Pour qu'un contrat puisse être utile, il doit rester constante pour aussi longtemps que possible. Si un contrat de modifications, vous devrez communiquer avec tous les utilisateurs de votre service, et à les instruire, à la nouvelle version du contrat.
2. Performance Lorsque Java est automatiquement transformé en XML, il n'y a aucun moyen d'être sûr que ce qui est envoyé à travers le réseau. Un objet peut faire référence à un autre objet, qui se réfère à un autre, etc. En fin de compte, la moitié des objets sur le tas dans votre machine virtuelle peut être converti en XML, qui aura pour conséquence de ralentir les temps de réponse. Lors de l'utilisation du contrat-tout d'abord, vous décrire explicitement ce que XML est envoyé où, assurant que c'est exactement ce que vous voulez.
3. La réutilisabilité La définition de votre schéma dans un fichier séparé vous permet de réutiliser ce fichier dans différents scénarios.
4. Gestion des versions Même si un contrat doit rester constant aussi longtemps que possible, ils ne doivent être modifiés, parfois. En Java, cela se traduit généralement par une nouvelle interface Java, tels que les AirlineService2, et un (nouveau) de la mise en œuvre de cette interface. Bien sûr, l'ancien service doit être maintenu autour de, car il peut y avoir des clients qui n'ont pas encore migré. Si l'aide de premier contrat, on peut avoir un couplage lâche entre le contrat et la mise en œuvre. Tel un couplage lâche nous permet de mettre en œuvre les deux versions du contrat dans une classe. Nous pourrions, par exemple, utiliser une feuille de style XSLT pour convertir n'importe quel "old-style" messages pour le "nouveau style" des messages.
@mad_programmer - Vous voulez dire la création de Services Web avec un Bas en Haut ou de Haut en Bas de l'Approche. Dans la première, vous de commencer la programmation des classes et la logique métier en code java, puis générer le web de contrat de service (c'est à dire WSDL) de celui-ci. La dernière approche, qui signifie le contraire (la génération de la classe des talons à partir du WSDL).
Soutenir la réponse d'andersen, je voudrais ajouter un point. En fait, les gens ont tendance à utiliser l'approche Bottom-up, parce que dans la plupart des cas, nous avons déjà commencé le processus de l'écriture, les haricots, la logique d'entreprise etc, alors que dans la couche de persistance, nous avons créer le site web-services, wsdl, etc.... où, comme dans un nouveau projet, où vous construire quelque chose à partir de zéro, nous pouvons utiliser l'approche top-down, où nous venons d'écrire le wsdl et la construction du squelette serait de vous donner les haricots, les implémentations des interfaces etc. Encore, souvenez-vous de l'ordinateur ne peut pas générer la logique que vous voulez. Donc, encore besoin de vous pour aller à travers l'ensemble du projet et de combler les lacunes.
Pour ajouter à la réponse, lorsque le projet a commencé à partir de zéro approche habituelle est de créer des interface de base, puis de créer un fichier WSDl à partir d'elle. Cela vous permettra d'économiser de l'écriture complexe de WSDl. Ensuite, nous pouvons ajouter un projet des opérations spécifiques dans WSDl directement et une fois WSDl est finalisé, nous pouvons aller de l'avant avec l'approche top-down.