Распределенный объект связь

редактировать

В среде распределенных вычислений распределенный объект взаимодействует ion реализует связь между распределенными объектами. Основная роль состоит в том, чтобы разрешить объектам доступ к данным и вызывать методы для удаленных объектов (объектов, находящихся в нелокальном пространстве памяти ). Вызов метода удаленного объекта известен как вызов удаленного метода (RMI ) или удаленный вызов, и является объектно-ориентированным программированием аналог удаленного вызова процедуры (RPC).

Содержание

  • 1 Заглушки и скелеты классов
  • 2 Заглушка
  • 3 Скелет
  • 4 Протоколы с использованием подхода заглушек / скелетов
  • 5 См. Также
  • 6 Ссылки

Заглушки и скелеты классов

Широко используемый подход к реализации канала связи реализуется с помощью заглушек и скелетов. Это сгенерированные объекты, структура и поведение которых зависят от выбранного протокола связи, но в целом предоставляют дополнительные функции, обеспечивающие надежную связь по сети.

В RMI заглушка (которая является битом на клиенте) определяется программистом как интерфейс. Rmic (компилятор rmi) использует это для создания заглушки класса. Заглушка выполняет проверку типа. Каркас определяется в классе, который реализует заглушку интерфейса.

Распределенный объект связи.png

Когда вызывающий объект хочет выполнить удаленный вызов вызываемого объекта, он делегирует запросы его заглушке, которая инициирует связь с удаленным скелетом. Следовательно, заглушка передает аргументы вызывающего абонента по сети в скелет сервера. Затем скелет передает полученные данные вызываемому объекту, ожидает ответа и возвращает результат клиентской заглушке. Обратите внимание, что между вызывающим и вызываемым объектом нет прямой связи.

Более подробно, коммуникация состоит из нескольких этапов:

  1. вызывающий вызывает локальную процедуру, реализованную с помощью заглушки
  2. заглушки маршаллов вызов введите и во входных аргументах в сообщение запроса
  3. клиентская заглушка отправляет сообщение по сети на сервер и блокирует текущее выполнение поток
  4. скелет сервера получает сообщение запроса из сети
  5. скелет распаковывает тип вызова из сообщения запроса и ищет процедуру на вызываемом объекте
  6. скелет разупорядочивает аргументы процедуры
  7. скелет выполняет процедуру на вызываемом объекте
  8. вызываемый объект выполняет вычисление и возвращает результат
  9. скелет упаковывает выходные аргументы в скелет сообщения ответа
  10. отправляет сообщение по сети обратно клиенту
  11. клиентская заглушка получает ответное сообщение из сети
  12. заглушка распаковывает выходные аргументы из сообщения
  13. заглушка передает выходные аргументы в Вызывающая сторона освобождает выполнение thread, а затем вызывающая сторона продолжает выполнение

Преимущество этой архитектуры состоит в том, что ни вызывающий, ни вызываемый объект не должны реализовывать логику, связанную с сетью. Эта функция, обеспечивающая надежный канал связи по сети, была перенесена на уровень stub и слой скелета.

Заглушка

Объект на стороне клиента, участвующий в обмене данными между распределенными объектами, известен как заглушка или прокси и является примером прокси-объект.

Заглушка действует как шлюз для объектов на стороне клиента и всех исходящих запросов к объектам на стороне сервера, которые проходят через него. Заглушка обертывает функциональность клиентского объекта и, добавляя сетевую логику, обеспечивает надежный канал связи между клиентом и сервером. Заглушку можно записать вручную или сгенерировать автоматически в зависимости от выбранного протокола связи.

Заглушка отвечает за:

  • инициирование связи с сервером; скелет
  • перевод вызовов от вызывающего объекта
  • маршалинг параметров
  • информирование скелета о том, что вызов должен быть вызван
  • передача аргументов в скелет по сети
  • демаршалинг ответа от скелет
  • , информирующий вызывающего о завершении вызова

Скелет

Объект на стороне сервера, участвующий в распределенном обмене объектами, известен как скелет (или заглушка; здесь термин избегается).

Каркас действует как шлюз для объектов на стороне сервера, и все входящие запросы клиентов маршрутизируются через него. Каркас обертывает функциональность объекта сервера и предоставляет его клиентам, кроме того, добавление сетевой логики обеспечивает надежный канал связи между клиентами и сервером. Скелеты могут быть написаны вручную или созданы автоматически в зависимости от выбранного протокола связи.

Каркас отвечает за:

  • преобразование входящих данных из заглушки в правильные вызовы серверных объектов
  • демаршалинг аргументов из полученных данных
  • передача аргументов серверным объектам
  • маршалинг возвращенных значений из серверных объектов
  • передача значений обратно клиенту заглушка по сети

Протоколы с использованием подхода «заглушка / каркас»

См. также

Ссылки

Последняя правка сделана 2021-05-17 09:16:15
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте