Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций РСОИ.doc
Скачиваний:
20
Добавлен:
04.11.2018
Размер:
1.93 Mб
Скачать

4.2. Створення серверного застосунка

1. Створення файла опису інтерфейсу

У текстовому редакторі створюємо файл STRServ.IDL, у якому описуємо інтерфейси і функції, що будуть реалізовані в серверній частині.

Зберігаємо в папці проектів – d:\Program Files\Borland\delphi 7\Projects\CORBA

Назвемо його STRServ.idl.

Текст файла (IDL-визначення інтерфейсу) :

interface SimplCORBAInt

{

string getstr(in string instr);

};

У цьому файлі оголошується інтерфейс з іменем SimplCORBAInt, який складається з однієї функції – getstr, вхідний параметр – instr типу string. Функція повертає значення типу string.

  1. Викликання конструктора створення corba сервера

Відкриваємо Delphi. У меню File вибираємо New\Other... На закладці CORBA вибираємо CORBA SERVER APPLICATION, у вікні, що з'явилося, вказуємо тип застосунка (Windows Aplication або Console Application), а також ім'я файла з описом STRServ.IDL і натискаємо кнопку Generate.

Якщо не почнеться процес генерування, необхідно ознайомитись зі змістом файла IDL2pas.BAT, текст якого наведно нижче (це може статися тому, що візард написано на Java, отже, необхідна встановлення коректної версії Java):

echo off

rem jre.exe should be in your path and -cp should be set to the location of idl2pas.jar.

rem -mxNumber is the max heap size. This can be increased if the jvm runs out of heap.

echo on

java -mx40000000 -cp "C:\Program Files\Borland\Delphi6\Bin\idl2pas.jar" com.inprise.vbroker.compiler.tools.idl2pas %1 %2 %3 %4 %5 %6 %7 %8 %9

За допомогою конструктора IDL2pas створюються 6 файлів:

  • STRServ_c – файл, у якому описана заглушка. У ньому визначені класи TSimplCORBAIntHelper (клас для підтримки CORBA-технології) і TSimplCORBAIntStub (опис методу getstr);

  • STRServ_i – файл, у якому описуються інтерфейс;

  • STRServ_s – файл, у якому описаний skeleton-клас TSimplCORBAIntSkeleton, методи якого створюють CORBA об'єкт;

  • STRServ_impl – файл реалізації інтерфейсу;

  • Unit1 – модуль форми, у якому виконується ініціалізація CORBA;

  • Project1 – файл проекту.

  1. Формуємо модуль Unit1

У модулі Unit1 у секції protected оголошуємо змінну STRServ типу SimplCORBAInt.

В автоматично створеному методі форми Form1.InitCorba формуємо текст серванта (процедура створення CORBA-об’єкту і його реєстрації) для нашого CORBA-об’єкту, а саме:

// створити об'єкт

STRServ:=STRServ_s.TSimplCORBAIntSkeleton.Create('My str server', TSimplCorbaInt.Create);

// реєструвати об'єкт

BOA.ObjIsReady(STRServ as _Object);

В оброблювачі події OnClick кнопки Button1 головної форми передбачаємо виклик методу InitCorba.

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.InitCorba;

end;

  1. Формуємо реалізацію методу

У файлі STRServ_impl описуємо реалізацію методу getstr.

function TSimplCORBAInt.getstr (const instr : AnsiString): AnsiString;

begin

{ *************************** }

{ *** User code goes here *** }

{ *************************** }

result:= Instr+' + CORBA ADD STR' ;

end;

4.3. Створення клієнтського застосунка

  1. Викликання конструктора corba-клієнта

Відкриваємо новий проект Delphi. У меню File вибираємо New\Other. На закладці CORBA вибираємо CORBA CLIENT APPLICATION, у вікні, що з'явилося, вказуємо тип застосунка, а також додаємо той самий файл .IDL, що і для серверного застосунка (STRServ.idl) і натискаємо кнопку Generate.

За допомогою майстра IDL2pas створюються 4 файли:

  • STRServ_c – файл, у якому описана заглушка така сама як на сервері;

  • STRServ_i — файл, у якому описуються інтерфейси;

  • Unit1 - файл, у якому описана основна форма;

  • Project1 - файл проекту.