Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: свободно | ВУЗ: Санкт-Петербургский государственный университет
Лекция 9:

Методы взаимодействия процессов

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >

Клиент-серверная взаимосвязь – один из наиболее распространенных видов коммуникации процессов

Используются, в частности, следующие ее разновидности, которые мы и рассмотрим:

  • Сокеты (Sockets)
  • Удаленные вызовы процедур (Remote Procedure Calls – RPC)
  • Удаленные вызовы методов (Remote Method InvocationRMI).

Сокеты – наиболее распространенный способ связи клиента и сервера в сети. Впервые они были реализованы в UNIX BSD 4.2. Сокет можно определить как отправную (конечную) точку для коммуникации - endpoint for communication. Сокет создается клиентом для взаимодействия с сервером. Сокет связан с определенным номером порта,через который клиент и сервер обмениваются информацией, используя числовой или символьный последовательный поток. Сервер, со своей стороны, прослушивает порт с заданным номером и создает для этого серверный сокет. По сути дела, сокет можно представлять как конкатенацию IP-адреса и порта. Например, сокет 161.25.19.8:1625 ссылается на порт 1625 на машине (хосте) 161.25.19.8. Коммуникация осуществляется между парой сокетов – клиентским и серверным. Она изображена на рис. 9.1.

Взаимодействие с помощью сокетов.

Рис. 9.1. Взаимодействие с помощью сокетов.

Удаленные вызовы процедур (Remote Procedure Calls – RPC) впервые предложены фирмой Sun и реализованы в ОС Solaris.

Удаленный вызов процедуры (RPC) – абстракция вызова процедуры между процессами в сетевых системах. Он основан на следующей идее. В клиентской части создаются заглушка (proxy, stub) – локальная процедура, осуществляющая связь с фактической процедурой, находящейся на сервере. Заглушка в клиентской части находит сервер и выстраивает (marshals) параметры для их передачи на сервер по сети. Проблема здесь в том, что адресация на клиенте и на сервере различная, и передавать адрес в памяти каких-либо данных с одного хоста на другой не имеет смысла. Поэтому приходится использовать особую форму передачи информации в виде последовательного потока байтов. Заглушка в серверной части принимает сообщение, распаковывает параметры, преобразует их к нормальному виду и выполняет процедуру на сервере.

Схема организации удаленного вызова процедуры изображена на рис. 9.2.

Исполнение RPC.

увеличить изображение
Рис. 9.2. Исполнение RPC.

Удаленный вызов метода (Remote Method Invocation, RMI) – механизм в Java-технологии, аналогичный RPC, но в объектно-ориентированной форме.

RMI позволяет Java-приложению на одной машине вызвать метод удаленного объекта.

Схема RMI изображена на рис. 9.3.

Удаленный вызов метода в Java.

Рис. 9.3. Удаленный вызов метода в Java.

Схема выстраивания параметров и результатов при удаленных вызовах изображена на рис. 9.4.

 Выстраивание параметров при удаленном вызове.

Рис. 9.4. Выстраивание параметров при удаленном вызове.

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков
Андрей Садовщиков
Андрей Садовщиков
Россия