Лабораторная работа: Удаленный вызов методом RMI

Использование RMI

Сейчас наступило время создать рабочую RMI‑систему и получить практический опыт. Вы создадите простую удаленную службу, реализующую калькулятор, и попробуете использовать ее из клиентской программы.

Рабочая RMI‑система состоит из нескольких частей.

• Определение интерфейсов для удаленных служб

• Реализация удаленных служб

• Файлы заглушки и скелета

• Сервер, предоставляющий удаленные службы

• Служба имен RMI, дающая возможность клиентам найти удаленные службы

• Поставщик файла классов (HTTP или FTP‑сервер)

• Клиентская программа, которая нуждается в удаленных службах

Для упрощения задачи вы будете использовать один и тот же каталог для кода как клиента, так и сервера. При запуске клиента и сервера из одного и того же каталога вам не придется настраивать HTTP или FTP серверы для доступа к файлам классов. (Использование серверов HTTP и FTP в качестве поставщиков файлов классов детально рассматривается в разделе «Распространение и установка программного обеспечения RMI »)

Если предположить, что RMI‑система уже спроектирована, для ее создания необходимо выполнить следующие шаги:

1. Написать и откомпилировать Java‑код для интерфейсов

2. Написать и откомпилировать Java‑код для классов реализации

3. Создать файлы классов заглушки и скелета из классов реализации

4. Написать Java‑код программы хоста для удаленного обслуживания

5. Разработать Java‑код для клиентской программы RMI

6. Установить и запустить RMI‑систему

1. Интерфейсы

Первым шагом является написание и компилирование Java‑кода для интерфейсов служб.

Когда вы создаете удаленный интерфейс, вы должны следовать следующим правилам:

1. Удаленный интерфейс должен быть публичным – public (он не может иметь «доступ на уровне пакета», так же он не может быть «дружественным»). В противном случае клиенты будут получать ошибку при попытке загрузки объекта, реализующего удаленный интерфейс.

2. Удаленный интерфейс должен расширять интерфейс java.rmi. Remote .

3. Каждый метод удаленного интерфейса должен объявлять java.rmi. RemoteException в своем предложении throws в добавок к любым исключениям, специфичным для приложения.

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

Интерфейс Calculator определяет все удаленные возможности, предлагаемые службой:

public interface Calculator

extends java.rmi. Remote {public long add (long a, long b)

throws j ava.rmi. RemoteException;

К-во Просмотров: 308
Бесплатно скачать Лабораторная работа: Удаленный вызов методом RMI