У чому різниця між віддаленим викликом процедури та веб-службою?


80

Чи існує чітке визначення RPC та веб-служби? Швидкий пошук у Вікіпедії показує:

RPC: віддалений виклик процедур (RPC) - це технологія міжпроцесорного зв'язку, яка дозволяє комп’ютерній програмі викликати підпрограму або процедуру для виконання в іншому адресному просторі (зазвичай на іншому комп’ютері у спільній мережі), без того, щоб програміст чітко кодував деталі для ця віддалена взаємодія.

Веб-служба: Веб-служби - це, як правило, інтерфейси прикладного програмування (API) або веб-API, до яких здійснюється доступ через протокол передачі гіпертексту та виконуються у віддаленій системі, що розміщує запитувані послуги. Веб-послуги, як правило, потрапляють в один із двох таборів: Big Web Services [1] та RESTful Web Services.

Я не зовсім зрозумів, яка справжня різниця між цими двома речами. Здається, що одне може належати RPC і є свого роду веб-сервісом одночасно.

Чи є веб-служба вищим рівнем представництва RPC?

Відповіді:


60

Чи є веб-служба вищим рівнем представництва RPC?

Так. Веб-служба - це конкретна реалізація RPC. На найнижчому рівні веб-служба підключається до Socket, використовуючи протокол HTTP, для узгодження відправлення корисного навантаження, яке виконується у віддаленому просторі (віддалений простір може бути тим самим комп’ютером). Усі ці віддалені абстракції дзвінків за своєю суттю є RPC.


1
Подальші атрибути веб-служби на додаток до того, що писав Уейн: дозволяє незалежний від платформи спосіб RPC, є доступним для самоопису (порівняйте це з Win32 RPC).
Алекс

6
Ні, це не правильно. RPC - це архітектурний стиль веб-служби. Альтернативою буде REST. Довідково: ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5339611
schlamar

@schlamar Чи має веб-служба щось спільне з RPC? Якщо так, чи є у нас клієнтські та серверні заглушки в середовищі веб-сервісу?
переобмін

9

Я бачу це питання. Питання було задане давно, але я думаю, що будь-яка відповідь у цій спільноті, яка надає більше інформації та ясності щодо цієї теми, буде корисною для майбутніх тих, хто запитує. Отже, я хотів би додати своє вдосконалення, вказавши на ключові відмінності, і я сподіваюся, це буде корисним для майбутніх читачів.

------------------------------------------------------------------------------
| 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 (Marshalling)  | Fast
------------------------------------------------------------------------------

Я не згадував описи RPC та веб-служб, оскільки ви бачите їх у відповіді інших.


4

Віддалений виклик процедур (RPC) та WebService, заради функціональності, ідуть паралельно. Але є незначна різниця у способі їх закликання. Веб-сервіс може бути викликаний будь-якою програмою, використовуючи формат XML через протокол HTTP для провадження та його взаємосумісний характер, тоді як у випадку RPC функція може бути викликана декількома програмами, щоб вона йшла шляхом серіалізації для зберігання даних об'єкта. Він підтримує двійковий формат через протокол TCP. У кращому підході ми можемо коротко описати робочий процес RPC, наче ми виконуємо функцію через належний Socket і належний формат повідомлення, але не знаємо фактичного існування певної функції на клієнтському сервері. Навіть наданий сокет може бути не в той самий сервер, на якому функція знаходиться. Але щоразу, коли це створює відчуття, що функція розташована в локальній мережі.


будь ласка, вдосконалюйте англійську. Не можу зрозуміти
Мохіт Шах

1

• Дані відформатовані для передачі за допомогою XML, покращуючи або усуваючи маршірування, демаршалінг та інші вимоги, пов’язані з перекладом, які зазвичай кодуються розробником. • Дані передаються за допомогою стандартизованих протоколів, таких як HTTP або SMTP, які опублікували чітко визначені стандарти. • Основна викрита послуга чітко визначена за допомогою відомого прийнятого механізму, WSDL. • Послуги знаходять за допомогою чітко визначеного стандарту UDDI та вдосконаленого ebXML.

Зокрема, WSDL надає низку ключових відомостей:

• Визначення формату повідомлень, які передаються між двома кінцевими точками, використовуючи його та елементи, та відповідні визначення схеми. • Семантика служби: як її можна викликати, щоб зробити синхронний запит / відповідь, синхронний відповідь лише або асинхронний зв’язок. • Кінцева точка та транспорт послуги через елемент: тобто хто надає послугу. • Кодування через елемент, тобто спосіб доступу до послуги.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.