ПРЕСС-РЕЛИЗ
20.01.99

Использование технологии CORBA для разработки распределенных приложений с использованием сервера Oracle 8 и Delphi 4.0

23 декабря 1998 года компания Интерфейс Ltd провела очередной бесплатный семинар из серии «Интерфейс к Delphi». Он был посвящен применению технологии CORBA для разработки распределенных информационных систем. Идея семинара заключалась в том, чтобы продемонстрировать в «живую» все этапы разработки информационной системы, с выяснением узких мест в проектировании.

Вначале были рассмотрены особенности использования распределенных информационных систем, построенных на основе CORBA технологии.

Основная задача:

Cоздать распределенное приложение для доступа к Oracle серверу через CORBA интерфейс.

Решение:

1. Приложение сервера.

так же был проведен сравнительный анализ с приложениями Client/Server. Затем докладчик приступил к непосредственной разработке сервера приложения.

При построении сервера особое внимание было уделено методике создания интерфейса CORBA объекта, разъяснена технология формирования экземпляра объекта, как интерфейса. Разобраны функции - заглушки для обмена данными между сервером приложения и запросами пользователя. Релизация заглушек формируется автоматически при создании методов интерфейса, также формируется и коструктор, отвечающий за доступ к объекту класса IdispInterface:

class function TServerOracleCorbaFactory.CreateInstance(const InstanceName: string): IServerOracle;
begin
Result:= CorbaFactoryCreateStub('IDL:server/ServerOracleFactory:1.0', 'ServerOracle', InstanceName, IServerOracle) as IServerOracle;
end.

Благодаря такой автоматизации , разработчик освобождается от изнурительного труда по формированию промежуточных методов пользовательского интерфейса.
После описания всех методов для доступа к серверу приложения, разработчик поставляет своим коллегам библиотеку TLB для формирования тех или иных методов из клиентского приложения.
После того, как сервер был готов к эксплуатации, появилась необходимость его регистрации в сети с помощью утилит, поставляемых совместно с Delphi 4 корпорацией Inprise.

2.Следующий этап - регистрация сервера с помощью приложений VisiBroker. Для этой цели необходимо запустить сервер приложения и обнаружить его в сети с помощью программы OSFIND, входящего в поставку Visibroker. Вот что она сообщит после отработки:

C:\users\default>osfind
osfind: Found one agent at port 14000
HOST: TEACHER_NT
osfind: Found 1 OADs in your domain
HOST: TEACHER_NT
osfind: There are no Object Implementations registered with OADs.
osfind: Following are the list of Implementations started manually.
HOST: TEACHER_NT
REPOSITORY ID: IDL:server/ServerOracleFactory:1.0
OBJECT NAME: ServerOracle
REPOSITORY ID: IDL:visigenic.com/Activation/OAD:1.0
OBJECT NAME: 135.135.135.17

Регистрацию объекта в репозитории OAD (Objects Activation Daemond) произвели для того, чтобы брокеры могли его отыскать в сети и запустить при первом требовании клиентского приложения, объект с помощью брокера и OAD будет найден в сети и запущен при необходимости. После запуска новые клиенты будут иметь доступ к экземплярам нашего объекта.

Лектор показал все тонкости регистрации CORBA объекта, при разработке «тонких клиентов» особое внимание было уделено утилите Objects Activation Daemond и VisiBroker, как средств активизации объектов и предоставления интерфейса доступа к ним со стороны пользовательских приложений. На этом был завершен этап разработки приложения сервера.



Клиентское приложение также разрабатывалось на семинаре с «нуля».

Основная задача:

получить интерфейс к CORBA объекту.

Решение:

Это легко сделать, если у разработчика имеется TLB библиотека сервера, которую необходимо подключить к новому приложению клиента. Реализация доступа к экземпляру осуществляется следующим образом:

var
Form1: TForm1;
interf:IServerOracle;
procedure TForm1.FormCreate(Sender: TObject);
begin
interf:=TServerOracleCorbaFactory.CreateInstance('qqq');
end.

После такой инициализации мы получаем доступ ко всем интерфейсным процедурам и функциям сервера.

СlientDataSet1.Provider:=interf.Query(‘SELECT * FROM BASE WHERE NOMER=33422’);

Особое внимание было уделено библиотеке типов, которую предоставил сервер приложения для статического связывания с интерфейсом CORBA объекта. Разработчик решил получить интерфейс сервера без использования визуальных компонент Delphi 4, таким образом продемонстрировав более гибкий подход к разработке клиентских приложений.

Динамическое выполнение SQL запросов и передача результатов последних на сторону клиента для дальнейшего отображения на форме пользователя производились с помощью компоненты Delphi 4 - ClientDataSet, свойствам которой уделяется особое внимание. В связи с этим были продемонстрированы различные способы перехвата последних и их визуализация для обработки пользовательским приложением. Были разобраны особенности события onReconcilError и, соответственно стандартного диалога, поставляемого с Delphi для обработки ошибок, происходящих на стороне Oracle сервера.


Interface Ltd.

Ваши замечания и предложения направляйте по адресу:
webmaster@interface.ru

Reklama.Ru. The Banner Network.