logo search
Ответы к экзамену по ПСП

Служба rpCи технологияXml-rpc.

PRC– удаленный вывод процедур. Главная особенность – вычислительная машина делает вычисления, клиенты посылают данные серверу на вычисления. Работа бывает синхронная и асинхронная. Синхронная клиент ждет ответ от сервера, асинхронная клиент отправляет данные на вычисление и продолжат свою работу. Процесс укомплектования параметров в сообщения называется – маршалинг. На стороне клиента имеется СТАБ клиента – это заглушка которая осуществляет маршалинг. Ядро клиента находится в операционной системе клиента. Процесс клиента передает СТАБУ клиента функцию, СТАБ переводит все в сообщение и передает ядру. Ядро клиента передает ядру сервера, ядро сервера передает СТАБУ сервера. СТАБ распаковывает сообщение вызывает функцию и передает параметры. Процедура отправляет СТАБУ и т.д. … Клиентский СТАБ распаковывает данные и передает их процессу который отправлял сообщение.

  1. Процедура клиента вызывает клиентскую заглушку.

  2. Клиентская заглушка создает сообщение и вызывает функцию RPC локальной ОС.

  3. Служба RPCпересылает сообщение серверу

  4. Служба RPCвызывает серверную заглушку и передает ей сообщение.

  5. Серверная заглушка извлекает из сообщения параметры и вызывает удаленную процедуру.

  6. Удаленная процедура выполняет код и возвращает параметры и значения серверной заглушке.

  7. Серверная заглушка формирует сообщение и вызывает службу RPCсвоей локальной ОС.

  8. Служба RPCсервера пересылает сообщениеRPCОС клиента.

  9. RPCклиента возвращает сообщение заглушке.

  10. Заглушка извлекает данные и передает их процессу.

Существует специальный язык IDL(InterfaceDefinitionLanguage) – кроссплатформенный язык определения интерфейсов. В шаблонеIDLнеобходимо определить название процедуры и ее параметры. Кроме этого, чтобы унифицировать вызов необходимо сделать уникальный идентификатор. Он создается в студии. Он состоит из букв, цифр и знаков, размером 128 бит.MIDL– при помощи этого компилятора на выходе 3 фала: Библиотека *.h, клиентский СТАП и серверный СТАП с расширением *.cpp. После компиляции на сервере получаем исполняемые файлы сервера и клиента.

Проблемы:

Могут случаться ситуации типа потери отправленных данных. Потери ответных сообщений от сервера к клиенту. Невозможность клиента определить местоположение сервера (сервер сменил имя). Сервер может претерпеть некую аварию и необходимо ждать пока сервер не перезагрузится и т.д и т.п.

XML-RPC (сокр. от англ. Extensible Markup Language Remote Procedure Call —

XML-вызов удалённых процедур) — основанный на XML стандарт (протокол) вызова удалённых процедур, является прародителем SOAP, отличается исключительной простотой применения. XML-RPC, как и любой другой интерфейс RPC, определяет набор стандартных типов данных и команд, которые программист может использовать для доступа к функциональности другой программы, находящейся на другом компьютере в сети.

Протокол XML-RPC был изначально разработан Дэйвом Винером из компании «UserLand Software» в сотрудничестве с Майкрософт в 1995 году. Однако корпорация Майкрософт вскоре сочла этот протокол слишком упрощённым, и начала расширять его функциональность. После нескольких циклов по расширению функциональности, появилась система, ныне известная как SOAP. Позднее Майкрософт начала широко рекламировать и внедрять SOAP, а изначальный XML-RPC был отвергнут. Но, несмотря на отвержение Майкрософт, стандарт XML-RPC очаровал многих программистов своей необычайной простотой и, за счёт этого, существует по сей день и даже постепенно набирает популярность.