Czy istnieje jasna definicja RPC i usług internetowych? Szybkie wyszukiwanie w Wikipedii pokazuje:
RPC: Zdalne wywołanie procedury (RPC) to technologia komunikacji międzyprocesowej, która umożliwia programowi komputerowemu wykonanie podprogramu lub procedury w innej przestrzeni adresowej (zwykle na innym komputerze w sieci współdzielonej) bez konieczności jawnego kodowania przez programistę szczegółów tej zdalnej interakcji.
Usługa sieci Web: usługi internetowe to zazwyczaj interfejsy programowania aplikacji (API) lub internetowe interfejsy API, do których dostęp uzyskuje się za pośrednictwem protokołu Hypertext Transfer Protocol i są one wykonywane w zdalnym systemie obsługującym żądane usługi. Usługi internetowe zwykle należą do jednego z dwóch obozów: Big Web Services [1] i RESTful Web Services.
Nie do końca rozumiem, jaka jest prawdziwa różnica między tymi dwiema rzeczami. Wygląda na to, że jedna rzecz może należeć do RPC i jest jednocześnie usługą sieciową.
Czy usługa internetowa jest reprezentacją RPC wyższego poziomu?
źródło
Widzę to pytanie. Pytanie zostało zadane dawno temu, ale myślę, że odpowiedź kogokolwiek w tej społeczności, podająca więcej informacji i jasność na ten temat, będzie pomocna dla przyszłych pytających. Chciałbym więc dodać moje ulepszenie wskazujące na kluczowe różnice i mam nadzieję, że okaże się pomocne dla przyszłych czytelników.
Nie wspomniałem o opisach RPC i usług internetowych, ponieważ wyraźnie widzisz je w odpowiedziach innych.
źródło
Zdalne wywołanie procedury (RPC) i WebService, ze względu na funkcjonalność, działają równolegle. Ale jest subtelna różnica w ich sposobie przywoływania. Usługa internetowa może być wywoływana przez dowolną aplikację, używając formatu XML przez protokół HTTP do postępowania i ma charakter interoperacyjny, podczas gdy w przypadku RPC funkcja może być wywoływana przez wiele aplikacji, więc podąża ścieżką serializacji do przechowywania danych obiektu. Obsługuje format binarny przez protokół TCP. W lepszym podejściu możemy przedstawić przepływ pracy RPC, tak jak wykonujemy funkcję za pomocą odpowiedniego gniazda i odpowiedniego formatu wiadomości, ale nie wiemy, jakie jest rzeczywiste istnienie określonej funkcji na serwerze klienta. Nawet podane gniazdo może nie znajdować się w ten sam serwer, na którym znajduje się funkcja. Ale za każdym razem daje wrażenie, że funkcja znajduje się w lokalnym.
źródło
• Dane są sformatowane do przesyłania przy użyciu XML, ulepszając lub eliminując krosowanie, usuwanie błędów i różne inne wymagania związane z tłumaczeniem, normalnie kodowane przez programistę. • Dane są przesyłane za pomocą standardowych protokołów, takich jak HTTP lub SMTP, które mają opublikowane dobrze zdefiniowane standardy. • Podstawowa udostępniona usługa jest dobrze zdefiniowana przy użyciu znanego, akceptowanego mechanizmu WSDL. • Usługi są wyszukiwane przy użyciu dobrze zdefiniowanego standardu, UDDI i bardziej zaawansowanego ebXML.
W szczególności WSDL dostarcza wielu kluczowych informacji:
• Definicja formatu komunikatów, które są przekazywane między dwoma punktami końcowymi przy użyciu jego elementów i oraz odpowiednich definicji schematów. • Semantyka usługi: jak można ją wywołać, aby wykonać synchroniczne żądanie / odpowiedź, synchroniczną tylko odpowiedź lub komunikować się asynchronicznie. • Punkt końcowy i transport usługi za pośrednictwem elementu, czyli tego, kto świadczy usługę. • Kodowanie poprzez element, czyli sposób uzyskiwania dostępu do usługi.
źródło