2012-12-06 5 views
1

Actuellement, nous avons créé des API Web en utilisant SOAP ou une approche plus simple de type HTTP REST. En même temps, il y a plusieurs façons de laisser le serveur et les clients évoluer plus ou moins indépendamment, ce qui, selon moi, est un gros avantage. L'un des inconvénients majeurs est qu'il y a un peu de frais impliqués dans l'utilisation du protocole HTTP. Nous prévoyons d'augmenter l'utilisation des API de service pour exposer les données plutôt que les applications pour accéder directement aux bases de données. Nous sommes inquiets que l'utilisation de HTTP implique trop de frais généraux et cela va augmenter la latence. Bien sûr, nous pourrions utiliser la mise en cache, mais cela augmenterait également la complexité. L'une des suggestions est d'utiliser la liaison WCT NetTcp, qui est supposée être beaucoup plus performante. Je suis inquiet que si nous choisissions cette technologie, nous pourrions perdre les avantages de REST: la capacité d'évoluer indépendamment du serveur et des clients. Je pense que nous allons augmenter les performances au prix d'un couplage serré.La liaison WCF NetTcp augmente-t-elle le couplage?

Ma question est la suivante: en utilisant la liaison WCP NetTcp, est-il encore possible de faire évoluer vos API sans avoir à mettre à jour tous les clients? En d'autres termes: quel degré de couplage peut-on espérer entre le client et le serveur lors de l'utilisation de cette liaison?

Répondre

1

Nous craignons que l'utilisation de HTTP implique trop de frais généraux, ce qui augmente la latence Une des suggestions est d'utiliser la liaison WCF NetTcp, qui est censé être beaucoup plus performant

Qui a dit cette? Demandez-leur de vous montrer des repères car je ne vois pas comment TCP améliorerait autant les performances. Bien sûr, il utilise un protocole binaire, mais la logique métier dans le serveur est probablement le goulot d'étranglement et non le transfert réel.

HTTP est beaucoup mieux car il y a déjà beaucoup de prêts à utiliser l'infrastructure qui vous aidera à l'échelle ultérieure de si nécessaire (comme l'équilibrage de charge, cache proxy, etc.)

0

Je crois que la liaison que vous souhaitez utiliser dépend de qui sont les consommateurs du service. Si vous avez déjà des clients utilisant REST HTTP Client ou SOAP avec une liaison spécifique, le passage à Net TCP nécessitera toujours une mise à jour du service pour tous les clients utilisant déjà le service. Puisque HTTP a déjà beaucoup d'infrastructure disponible, je ne vois pas beaucoup de valeur dans le changement des liaisons.

Questions connexes