web-dev-qa-db-fra.com

Quelle est la différence entre un appel de procédure à distance et un service Web?

Existe-t-il une définition claire du service RPC et du service Web? Une recherche rapide sur wikipedia montre:

RPC: l'appel de procédure distante (RPC) est un Technologie de communication inter-processus cela permet à un programme d'ordinateur de provoquer un sous-programme ou une procédure à exécuter dans un autre espace adresse (généralement sur un autre ordinateur sur un réseau partagé .__) sans le programmeur codant explicitement les détails pour cela interaction à distance. 

Service Web: Les services Web sont typiquement la programmation d'applications des interfaces (API) ou des API Web qui sont accessible via le transfert hypertexte Protocole et exécuté sur une télécommande système hébergeant les services demandés . Les services Web ont tendance à tomber dans l'un des deux camps: Big Web Services [1] et Services Web RESTful.

Je ne suis pas tout à fait clair quelle est la différence réelle entre les deux choses. Il semble qu'une chose puisse appartenir à RPC et est en même temps un service Web.

Le service Web est-il une représentation de niveau supérieur de RPC? 

73
xiao 啸

Le service Web est-il un niveau supérieur représentation de RPC?

Oui, ça l'est. Un service Web est une implémentation spécifique de RPC. Au niveau le plus bas, tous les services Web se connectent à un socket en utilisant le protocole HTTP pour négocier l'envoi d'une charge utile exécutée dans un espace distant (il peut même s'agir du même ordinateur, à la connaissance du consommateur). Toutes ces abstractions sont à sa base RPC.

52
Wayne Hartman

L'appel de procédure distante (RPC) et WebService, dans un souci de fonctionnalité, vont tous deux en parallèle. Mais il y a une différence subtile dans leur manière d'invoquer. Un service Web peut être appelé par n'importe quelle application, utilisant le format XML sur le protocole HTTP pour les procédures et son caractère interopérable, tandis que dans le cas de RPC, la fonction peut être invoquée par plusieurs applications afin de suivre le chemin de la sérialisation pour stocker le données d'objet. Il prend en charge le format binaire via le protocole TCP . Dans une meilleure approche, nous pouvons informer le flux de travail RPC, comme si nous exécutions une fonction par le biais du format Socket et du format approprié du message, sans connaître l'existence réelle du message. fonction particulière dans le serveur client. Même le socket fourni peut ne pas être dans le même serveur que celui où réside la fonction. Mais à chaque fois, cela donne l'impression que la fonction est située dans le local. Dans le service distant, la fonction réside sur un ordinateur distant et peut être appelée par le format et le protocole appropriés, ce qui permet l'évolutivité.

5
fak33r

• Les données sont formatées pour être transférées à l'aide de XML, ce qui permet d'améliorer ou d'éliminer le marshalling, l'unmarshalling et diverses autres exigences liées à la traduction normalement codées par un développeur. • Les données sont transmises à l'aide de protocoles normalisés tels que HTTP ou SMTP, qui ont publié des normes bien définies. • Le service exposé sous-jacent est bien défini à l'aide d'un mécanisme accepté connu, WSDL. • Les services sont trouvés en utilisant un standard bien défini, UDDI, et le ebXML plus avancé. 

WSDL fournit en particulier un certain nombre d'informations clés:

• Une définition du format des messages transmis entre deux points de terminaison à l'aide de ses éléments et des définitions de schéma appropriées. • La sémantique du service: comment il peut être appelé pour faire une demande/réponse synchrone, une réponse synchrone uniquement ou une communication asynchrone. • Le point final et le transport du service via l'élément: c'est-à-dire qui fournit le service. • Un encodage via l'élément, c'est comment accéder au service. 

1
sravan kumar

Je vois que cette question a été posée il y a longtemps, mais je pense que la réponse de quiconque dans cette communauté apportera plus d'informations et clarifiera une question future sur ce sujet. Donc, je voudrais ajouter ma réponse courte avec des différences clés et espérer que cela sera utile pour les futurs lecteurs.

------------------------------------------------------------------------------
| Category             |    RPC              |    Web Services
------------------------------------------------------------------------------
|Operation's Location  |   On top of TCP     |  on top of HTTP Protocol
------------------------------------------------------------------------------
|Data format           | Binary              | Text, XML, JSON, ect.
------------------------------------------------------------------------------
|Speed                 | Slow (Marshilling)   | Fast
------------------------------------------------------------------------------

Je n'ai pas mentionné les descriptions de RPC et des services Web, car vous les voyez clairement dans la réponse des autres.

0
Dosto