Описание примера решения задач по 2-ой лабе.

(данный текст любезно предоставлен нам Мишей, за что ему огромное спасибо)

  • src\ - папка с исходными java-файлами
  • lib\ - папка подключаемых библиотек
  • bin\ - откомпилированные файлы классов

src\ru\mkanin\
corba\ - мой проект corba
corbaexample\ - учебный пример Example с сайта ibm.com
corbaexamplesources\ - папка для проекта Example CORBA со служебными классами, созданная утилитой idlj
из файла ExampleCORBA.idl
corbasources\ - папка моего проекта CORBA со служебными классами, созданная утилитой idlj
из файла DataCORBA.idl
data\ - папка вспомогательного класса DataManager для работы с СУБД MySQL
rmi\ - мой проект RMI
rmiexample\ - учебный пример Example с сайта ibm.com
lib\
mysql-connector-java-5.1.22-bin.jar - MySQL-коннектор для доступа к СУБД (мы его подключаем на стадии компиляции и выполнения с помощью ключа -classpath)

В корне проекта:
ExampleCORBA.idl - определение интерфейса учебного примера corba на языке IDL
DataCORBA.idl - определение интерфейса моего проекта corba на языке IDL

Important! Все действия команды выполняются из командной строки Windows
из корневой директории проекта RMICORBA
1. Пробуем учебный пример RMI с сайта IBM.com
1.1. Компилируем исходники
Пакет ru.mkanin.rmiexample

javac -d bin -sourcepath src src\ru\mkanin\rmiexample\*.java

Файлы успешно скомпилировались.
1.2. Запускаем проект RMI Example
cd bin
start rmiregistry
cd ..
start java -classpath bin ru.mkanin.rmiexample.Server
java -classpath bin ru.mkanin.rmiexample.ExampleClient

Должно быть выведено Success!

2. Пробуем учебный пример CORBA с сайта IBM.com
2.1. С помощью утилиты idlj получаем папку со вспомогательными классами проекта CORBA
idlj -fall -td src ExampleCORBA.idl
2.2. Компилируем исходники
Пакет ru.mkanin.corbaexample

Все полученные файлы лежат в папке src\ru\mkanin\corbaexamplesources\

2.2.1. Компилируем файлы вспомогательных классов папки corbaexamplesources
javac -d bin -sourcepath src src\ru\mkanin\corbaexamplesources\*.java
2.2.2. Компилируем файлы классов папки проекта corbaexample\
javac -d bin -sourcepath src -classpath bin src\ru\mkanin\corbaexample\*.java
2.3. Запускаем проект CORBA Example
cd bin
start tnameserv
cd ..
start java -classpath bin ru.mkanin.corbaexample.CORBAServer
java -classpath bin ru.mkanin.corbaexample.ExampleCORBAClient -ORBInitialHost localhost
Должно быть выведено CORBA Success!

3. Пробуем мой проект RMI.
Перед началом работы с проектом нужно установить и отконфигурировать СУБД MySQL по инструкции в статье
"Инструментарий веб-разработчика" (доступна по адресу http://php-myadmin.ru/learning/instrumen... ).
В проекте предполагается, что доступ к MySQL через login: root password: pw
Далее в ней создаем БД persons.
Далее создаем таблицу из файла persons.sql (лежит в корне проекта).
3.1. Компилируем исходники
Пакет ru.mkanin.rmi

3.1.1. Компилируем вспомогательный класс для работы с СУБД ru.mkanin.data.DataManager

javac -d bin -sourcepath src -classpath lib\mysql-connector-java-5.1.22-bin.jar src\ru\mkanin\data\DataManager.java

3.1.2. Компилируем классы проекта RMI
javac -d bin -sourcepath src -classpath bin;lib\mysql-connector-java-5.1.22-bin.jar src\ru\mkanin\rmi\*.java
3.2. Запускаем проект RMI
cd bin
start rmiregistry
cd ..
start java -classpath bin;lib\mysql-connector-java-5.1.22-bin.jar ru.mkanin.rmi.Server

Запускаем RMIClient
java -classpath bin ru.mkanin.rmi.DataClient

Смотрим содержимое БД.
Description. Полезно запустить 2 копии клиента и убедиться в синхронизации данных при добавлении и удалении данных.

4. Пробуем мой проект CORBA
4.1. С помощью утилиты idlj получаем папку со вспомогательными классами проекта CORBA src\ru\mkanin\corbasources
idlj -fall -td src DataCORBA.idl
4.2. Компилируем исходники
Пакет ru.mkanin.corba

4.2.1. Если были проделаны действия п. 3.1.1., перейти к сл. шагу.
4.2.2. Компилируем вспомогательные классы проекта CORBA
javac -d bin -sourcepath src src\ru\mkanin\corbasources\*.java

4.2.3. Компилируем классы проекта CORBA
javac -d bin -sourcepath src -classpath bin;lib\mysql-connector-java-5.1.22-bin.jar src\ru\mkanin\corba\*.java

4.3. Запускаем проект CORBA
cd bin
start tnameserv
cd ..
start java -classpath bin;lib\mysql-connector-java-5.1.22-bin.jar ru.mkanin.corba.CORBAServer

Запускаем CORBAClient
java -classpath bin ru.mkanin.corba.DataClientCORBA -ORBInitialHost localhost

Description.
1. Версия проекта с использованием CORBA не работает с кириллическими символами по причине некорректного преобразования UNICODE в ACSII. Все нелатинские символами при выборке заменяются знаками вопроса. При реализации операций вставки и удаления с кириллическими символами может быть сгенерировано исключение.
2. Полезно запустить 2 копии клиента и убедиться в синхронизации данных при добавлении и удалении данных.