Удалённый вызов процедур: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Gromolyak (обсуждение | вклад) Метки: с мобильного устройства через мобильное приложение |
Нет описания правки |
||
Строка 1:
'''Удалённый вызов процедур''', реже '''Вызов удалённых процедур''' (от {{lang-en|Remote Procedure Call, RPC}}) — класс технологий, позволяющих [[Компьютерная программа|компьютерным программам]] вызывать [[Функция (программирование)|функции]] или [[Подпрограмма|процедуры]] в другом адресном пространстве (как правило, на удалённых компьютерах). Обычно реализация RPC-технологии включает в себя два компонента: сетевой протокол для обмена в режиме клиент-сервер и язык [[Сериализация|сериализации]] объектов (или структур, для необъектных RPC). Различные реализации RPC имеют очень отличающуюся друг от друга архитектуру и разнятся в своих возможностях: одни реализуют архитектуру [[Сервис-ориентированная архитектура|SOA]], другие
== Реализации ==
Существует множество технологий, обеспечивающих RPC:
* [[DCE/RPC]]
* [[DCOM]]
* [[Internet Communications Engine|ZeroC ICE]]
* [[JSON-RPC]]— JavaScript Object Notation Remote Procedure Calls (текстовый протокол на базе HTTP) см. спецификацию: [http://www.ietf.org/rfc/rfc4627.txt RFC-4627]
* [[.NET Remoting]] (бинарный протокол на базе TCP, UDP, HTTP)
* [[RMI|Java RMI]] — Java Remote Method Invocation — см. спецификацию: http://java.sun.com/j2se/1.5.0/docs/guide/rmi/index.html
* [[SOAP]]
* [[Sun RPC]] (бинарный протокол на базе TCP и UDP и [[External Data Representation|XDR]]) [http://www.ietf.org/rfc/rfc1831.txt RFC-1831] второе название
* [[XML RPC]] (текстовый протокол на базе HTTP) см. спецификацию: [http://www.ietf.org/rfc/rfc3529.txt RFC-3529]
* [http://ru.routix.net/rpc/ Routix.RPC]
== Принцип ==
Идея вызова удалённых процедур состоит в расширении хорошо известного и понятного механизма передачи управления и данных внутри программы, выполняющейся на одной машине, на передачу управления и данных через сеть. Средства удалённого вызова процедур предназначены для облегчения организации распределённых вычислений и создания распределенных клиент-серверных информационных систем. Наибольшая эффективность использования RPC достигается в тех приложениях, в которых существует интерактивная связь между удалёнными компонентами с небольшим временем ответов и относительно малым количеством передаваемых данных. Такие приложения называются RPC-ориентированными.
Строка 31 ⟶ 30 :
== Подсистемы ==
* Транспортная подсистема
: — управление исходящими и входящими соединениями.
: — поддержка понятия «граница сообщения» для транспортных протоколов, не поддерживающих его непосредственно (TCP).
: — поддержка гарантированной доставки для транспортных протоколов, не поддерживающих её непосредственно (UDP).
* Пул потоков (только для вызываемой стороны). Предоставляет контекст выполнения для вызванного по сети кода.
* [[Маршалинг]] (аналог «[[Сериализация|сериализации]]»). Упаковка параметров вызовов в поток байт стандартным образом, не зависящим от архитектуры (в частности, от порядка байт в слове). В частности, ему могут подвергаться массивы, строки и структуры, на которые указывают параметры-указатели.
Строка 43 ⟶ 42 :
* [[Network File System]]
* [[REST]]
* [https://web.archive.org/web/20120125155258/https://www.jmasters.info:8443/jres/ JRES
== Ссылки ==
|