Інструкція з використання плагіну
1. Встановлення плагіну
Для встановлення плагіну необхідно вибрати у меню Eclipse пункт Help→Install New Software… У діалоговому вікні, яке відкриється, треба додати локальний репозиторій плагінів, натиснувши на кнопку Add…, далі на Local… і вибравши директорію, у якій міститься плагін (ім’я для репозиторію можна вибрати довільним чином). Потім треба вибрати цей репозиторій у списку всіх репозиторіїв плагінів Eclipse. Якщо все було зроблено правильно, то у списку доступних для встановлення плагінів з’явиться плагін з назвою CORBA Tools, який і треба встановлювати. У процесі встановлення виникне повідомлення про непідписаний контент плагіну (unsigned content); треба продовжити установлення, натиснувши на OK. Після перевантаження Eclipse плагін має стати активним.
2. Задання опцій для плагіну
Перша дія, яку слід виконати після встановлення плагіну, – задання його опцій. Для цього слід відкрити менеджер опцій Eclipse, вибравши пункт головного меню Window→Preferences… У списку вкладок у лівій частині вікна слід вибрати вкладку CORBA (див. Рис. 1) і задати на ній директорії, у які встановлено JDK та IIOP.NET, а також початковий порт для брокера запитів orbd. У більшості випадків директорія для JDK визначиться автоматично, якщо вона присутня у списку встановлених середовищ запуску (цей список можна редагувати на вкладці Java→Installed JREs). Початковий порт за замовчуванням (1050) також підходить у більшості випадків, якщо цей порт не блокується брандмауером або антивірусною програмою.
Рис. 1. Параметри плагіну
3. Можливості плагіну
Щоб задіяти можливості плагіну, треба виділити у вікні Package Explorer (за замовчуванням знаходиться у лівій частині вікна Eclipse) Java-файл, у якому міститься публічний клас, і викликати контекстне меню, у якому треба вибрати підменю CORBA. Для всіх дій, окрім створення нового сервісу CORBA, необхідно, щоб цей клас реалізовував віддалений інтерфейс (тобто наслідуваний від інтерфейсу java.rmi.Remote).
3.1. Створення стабів для CORBA
Цій можливості відповідає пункт меню «Create Stubs…/Создать стабы…». Після його виклику з’являється діалог певного виду, як показано на Рис. 2. Діалог відображає незмінні параметри (шлях до брокера об’єктних запитів та його початковий порт) та змінні (назви пакета та файлу для серверного коду, назва зареєстрованого сервісу CORBA). Заповнивши всі необхідні параметри, треба натиснути на кнопку Finish. Після цього будуть проведені наступні дії:
За допомогою програми rmic з комплекту JDK будуть створені клієнтський і серверний стаби для відповідного класу Java;
Буде згенерований код на мові програмування Java для запуску серверної частини програми CORBA. Він буде запускати брокер об’єктних заявок (якщо він ще не запущений) та реєструвати сервіс CORBA під заданим іменем;
Якщо у діалозі був виділений відповідний пункт, відбудеться створення коду на мові C# для клієнтської частини програми. За рахунок цього коду в клієнті можна буде звертатись до сервісу як до локального об’єкту.
Рис. 2. Діалог створення стабів для CORBA
Якщо у процесі виконання цих дій виникнуть проблеми, про це буде повідомлено користувача відповідним повідомленням.
3.2. Створення IDL-опису для сервісу CORBA
Цій можливості відповідає пункт меню «Create IDL description…/Создать IDL-описание…». Пов'язаний діалог показано на Рис. 3.
Рис. 3. Діалог створення IDL-опису для сервісу CORBA
Так само, як і попередній діалог, він містить фіксовані та змінні параметри. Після необхідного редагування змінних параметрів та натиснення кнопки Finish будуть проведені наступні дії:
Якщо IDL-опис створюється у папці проекту «IDL», буде перевірено, чи існує така папка, і якщо не існує, то вона буде створена. У ній буде створено папку з заданою назвою (якщо вона вже існує, весь її зміст буде знищено). Якщо ж IDL-опис створюється у зовнішній по відношенню до проекту папці, то буде перевірено, чи задана папка існує;
У вибраній папці буде за допомогою програми rmic створено IDL-опис віддаленого інтерфейсу, який реалізує клас, для якого було викликане контекстне меню. При необхідності до опису будуть додані IDL-описи класів, які цей інтерфейс використовує (наприклад, визначені користувачем виключення);
У папку буде скопійовано файли IDL, які йдуть у поставці Java Development Kit, у яких містяться описання стандартних типів Java та CORBA.
При виникненні проблем у виконанні цих дій користувача буде повідомлено.
3.3. Створення CLS-бібліотеки для сервісу CORBA
Цій можливості відповідає пункт меню «Create CLS library…/Создать библиотеку…». Після його виклику з’являється діалог певного виду, як показано на Рис. 4. Після редагування параметрів та натиснення кнопки Finish будуть виконані наступні дії:
Буде створена тимчасова папка для IDL-опису сервісу;
Рис. 4. Діалог створення бібліотеки CLS
Буде створений опис сервісу на мові IDL;
Якщо у діалозі був вибраний відповідний пункт, буде створена папка «lib» у корені проекту (якщо її не існує). У іншому випадку буде перевірено, чи існує папка, у яку відбувається запис бібліотеки;
За допомогою компілятора IDL-файлів, який міститься у пакеті програмного забезпечення IIOP.NET, буде створено бібліотеку CLS, в якій знаходитиметься інтерфейс, що відповідає віддаленому інтерфейсу;
Тимчасова папка з описом сервісу буде видалена з файлової системи.
Як і при інших діях, у разі виникнення проблем виконання буде припинено, а користувач повідомлений про проблему.
УВАГА. У поточній версії плагіну реалізована можливість створення бібліотеки лише для одного віддаленого інтерфейсу з тих, які реалізовує вибраний клас Java. У випадку, якщо клас реалізовує більше одного віддаленого інтерфейсу, бібліотека міститиме опис лише одного з них.
3.4. Створення сервісу CORBA
Цій можливості відповідає пункт меню «Create service…/Создать сервис…». Першу сторінку пов'язаного діалогу показано на Рис. 5. Користувач має можливість обрати публічні методи класу, які увійдуть до сервісу, а також може обрати можливість документування викликів методів. Після редагування параметрів і натиснення на кнопку Next будуть проведені наступні дії:
Створені файли на МП Java, у яких міститиметься опис віддаленого інтерфейсу сервісу та реалізація сервісу на основі виділеного класу.
Проект, у якому містяться ці файли, буде скомпоновано.
Рис. 5. Діалог створення сервісу
Якщо ці дії завершилися успішно, то у діалогу відобразиться наступна сторінка, за допомогою якої користувач зможе створити стаби для нового сервісу (див. розділ 3.1), а потім клієнтську бібліотеку (див. розділ 3.3).
4. Приклад використання плагіну
Нижче наведена послідовність кроків для створення і тестування простого сервісу CORBA.
Створити новий проект Java або вибрати який-небудь з існуючих.
Створити пакет demo.corba, у ньому – файл MyClass.java наступного змісту:
package demo.corba;
public class MyClass {
public int doSomething(int a, int b)
{
return (a + b);
}
}
Код 1. Зміст файлу MyClass.java
Як легко бачити, цей клас реалізує додавання двох цілих чисел.
Вибрати в контекстному меню для файлу MyClass.java пункт CORBA→Create service…(Створити сервіс…), відмітити пункт Log method calls (відслідковувати виклики методів) і натиснути Next. У параметрах створення стабів слід відмітити пункт «Створити відповідний клієнтський файл» і натиснути Next. Параметри створення бібліотеки можна залишити без змін. Якщо все пройшло правильно, то у пакеті demo.corba мають з’явитись файли MyClassService.java (віддалений інтерфейс), MyClassWrapper.java (імплементація сервісу) і MyClassWrapperServer.java (сервер, на якому буде знаходитися сервіс). Якщо запустити останній із цих файлів на виконання, у консолі виведеться
Attempting to launch the ORB server...
Server is ready...
Окрім цього, у проекті має з’явитися папка lib з бібліотекою MyClassService.dll, а також файл MyClassServiceClient.cs.
Для того, аби протестувати взаємодію між середовищами Java і .NET на прикладі описаного вище сервісу, можна провести наступні дії (на комп’ютері має бути встановлено MS Visual Studio):
Створити новий консольний проект на МП C# у Visual Studio.
Приєднати до проекту посилання на бібліотеку IiopChannel.dll, що має міститися у директорії IIOPChannel/bin пакету IIOP.NET.
Скопіювати і приєднати до проекту файли MyClassService.dll (як посилання) і MyClassServiceClient.cs (як вихідний файл).
При необхідності слід відредагувати у файлі MyClassServiceClient.cs рядок
namespace CorbaConnection,
змінивши простір імен на потрібний.
Відредагувати головний файл проекту, щоб він виглядав подібним чином:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CorbaConnect
{
class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine(MyClassServiceClient.service.doSomething(5, 3));
Console.WriteLine(MyClassServiceClient.service.doSomething(2, -100));
Console.ReadKey();
}
catch (Exception exc)
{
Console.WriteLine("Error: " + exc.GetType() + " " + exc.Message);
Console.ReadKey();
}
}
}
}
Код 2. Зміст головного файлу проекту
Запустити в Eclipse файл MyClassWrapperServer.java, потім у Visual Studio – проект. При цьому, якщо все піде нормально, в консолі Visual Studio мають вивестися числа 8 і -98 (результати додавання), а у консолі Eclipse – щось на зразок
Server is ready...
[26.06.2011 19:58:10] Method int doSomething(int, int) invoked with the following arguments:
arg0 = 5
arg1 = 3
Result: 8
[26.06.2011 19:58:10] Method int doSomething(int, int) invoked with the following arguments:
arg0 = 2
arg1 = -100
Result: -98
(час виклику буде іншим).
Інструкція по використанню графічного інтерфейсу прикладу
Для запуску головної форми прикладу достатньо вибрати у меню сайту «Проект розробки» пункт «Технології→Corba-Eclipse», натиснути кнопку «Приклад» і відкрити запропонований файл. Після цього має з’явитися головне вікно графічного інтерфейсу, вигляд якого зображений на Рис. 6. Для запуску серверної частини програми треба натиснути кнопку «Запустити» у верхній частині вікна; після цього весь вивід серверної частини буде відображатися у вікні. Сервер можна у будь-який момент зупинити, натиснувши відповідну кнопку.
Рис. 6. Вигляд головного вікна інтерфейсу
Для запуску клієнтської частини (див. Рис. 7) слід натиснути кнопку «Запустити» у нижній частині вікна. Кількість клієнтських програм не обмежена.
Рис. 7. Вигляд клієнтської частини програми
Для перевірки роботи сервісу CORBA слід у клієнтській частині програми ввести аргументи для функції додавання, яку поставляє сервіс, та натиснути кнопку «Викликати». Результати мають відобразитися як у клієнтській, так і у серверній частині програми.
|