Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Распределенные вычислительные системы..pdf
Скачиваний:
16
Добавлен:
05.02.2023
Размер:
1.74 Mб
Скачать

58

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

-v1.1 (устарело)

Генерирует классы заглушек и скелетов только для версии протокола заглушки 1.1 JRMP. Опция -v1.1 полезна только для генерации классов-заглушек, совместимых с сериализацией с существующими статически развернутыми классами-заглушками, которые были сгенерированы командой rmic из JDK 1.1 и которые не могут быть обновлены (и динамическая загрузка классов не используется) , Примечание. Эта опция устарела. Смотри описание.

-v1.2 (устарело)

(По умолчанию) Генерирует классы-заглушки только для версии прото- кола-заглушки 1.2 JRMP. Скелетные классы не генерируются, поскольку скелетные классы не используются с версией протокола-заглушки 1.2. Сгенерированные классы-заглушки не работают, когда они загружаются в виртуальную машину JDK 1.1. Примечание. Эта опция устарела.

ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ:

CLASSPATH

Используется для предоставления системе пути к пользовательским классам. Каталоги разделены двоеточиями, например: .:/usr/local/java/classes.

2.1.2 Преобразование интерфейсов RMI в описание IDL CORBA

Рассмотрим интерфейс RMI-приложения, реализованный в проекте proj12 учебного пособия [1, пункт 3.3.1, рисунок 3.18]. Его исходный текст имеет вид, представленный ниже:

package asu.rvs.rmi;

public interface RmiPad extends java.rmi.Remote

{

//Объявление методов:

//метод, проверяющий наличие соединения с БД; public boolean isConnect() throws

java.rmi.RemoteException;

//метод, получающий содержимое таблицы notepad БД

//exampleDB в виде списка текстовых строк;

public String[] getList() throws java.rmi.RemoteException;

//метод, добавляющий текст к содержимому

//таблицы notepad БД; также учитывается

//уникальность ключа key;

public int setInsert(int key, String str) throws

59

java.rmi.RemoteException;

//метод, удаляющий по заданному ключу key запись из

//таблицы notepad БД;

public int setDelete(int key) throws java.rmi.RemoteException;

}

Если необходимо реализовать приложение по технологии CORBA и с таким интерфейсом, то необходимо описать интерфейс типа orbpad.idl, как это было сделано в проекте proj10 (см. [1, пункт 3.2.4, рисунок 3.13]). В условиях, когда проект большой и сложный, описание интерфейса и его сопровождение тоже становится сложным, что приводит к множеству ошибок. В таких случаях, сопровождать интерфейсы языка Java — гораздо проще, а утилита rmic позволяет генерировать описание IDL CORBA на основе интерфейса Java, что улучшает качество разработки проектов.

Для примера, создадим каталог $HOME/src/proj12, в который перенесем описание интерфейса RmiPad.java, с учетом его оператора package. Далее, в этом каталоге выполним команду:

rmic -idl asu.rvs.rmi.RmiPad

В результате указанного действия будет создан файл RmiPad.idl, а также дополнительные каталоги и файл, необходимый для проекта технологии CORBA.

Учебное задание

Провести экпериментальные действия с файлом RmiPad.java, указанные выше, и дать им подробное описание.