Главная » Delphi » CORBA и Web службы

0

Расширить приложение CORBA для использования в архитектуре Web служб дос таточно просто. Согласно спецификации SOAP ссылки  на объекты между приложе ниями передаваться не могут, поэтому  для изоляции клиентов SOAP от деталей реа лизации приложений CORBA необходимо внести небольшие изменения на среднем уровне.

В следующем примере, созданный в предыдущем разделе EJB, используется клиен

тами SOAP. Структура такого приложения представлена на рис. 19.5.

EJB устанавливается на сервере BorlandAppServer. Он предоставляет интерфейс CORBA для всех клиентов CORBA. В приложении Web служб будут одновременно ис пользоваться и сервер SOAP, и клиент CORBA. Участок  приложения, который отве чает  за взаимодействие с сервером SOAP, будет применять вызовы, основанные на клиентском интерфейсе CORBA.

При  таком подходе  будут использованы возможности EJB для возвращения резуль татов  тем клиентам, которые могут обращаться только  к интерфейсам SOAP. Это оз начает, что приложение, применяющее спецификацию SOAP, может  получать  доступ к приложениям, использующим EJB. Благодаря этому возможности клиентских при ложений значительно расширяются. Кроме  того,  такой  подход  позволяет избежать установки на стороне клиента брокера ORB CORBA.

В данном  примере EJB будет использоваться точно тот  же,  как и в предыдущем разделе. Никаких изменений в его  интерфейс и  функции  вноситься не  будет.  Эта часть приложения закончена.

Создание Web службы

Для создания Web службы будут использоваться файлы IDL из предыдущего разде ла. Клиентские файлы можно  создать  при помощи компилятора DL2Pas, запущенного из командной строки. Создайте каталог  для хранения файлов проекта и скопируйте в него  файлы SIDL.idl и HelloHome.idl. Затем  откройте окно  командной строки и наберите следующее:

IDL2Pas HelloHome.idl

Компилятор IDL2Pas создаст файлы приложения. В данном случае на стороне кли

ента CORBA будут использованы два файла:  HelloHome_I.pas и HelloHome_C.pas.

Для построения данного проекта необходимо предварительно установить мастер

Invokamatic, который  позволяет создавать приложения  SOAP  всего  за  пару  минут. При  регистрации Delphi  6 предоставляется доступ к официальному Web сайту зареги стрированных пользователей Delphi  6. На этом  Web сайте  можно  получить дополни тельные средства eXtreme Toys, в состав  которых входит  и мастер  Invokamatic. Полу чите этот мастер  и установите его в интегрированной среде разработки.

Теперь создайте приложение Web службы, выполнив следующие действия:

1.  Закройте в Delphi  все  активные проекты, выберите в меню  File пункты  New,

Other, Web Services и пиктограмму Soap Server Application.

2.  В  качестве  типа   приложения  Web сервера  выберите  Web  App  Debugger Executable и присвойте ему имя  coHelloWorld (поле  ввода  coClass). Каждый раз при  повторении этих  действий либо  используйте уникальные имена, либо по окончании работы с приложением удаляйте его регистрационные данные.

3.  Мастер  создаст  заготовку  приложения. Сохраните ее в каталоге проекта, где уже находятся файлы IDL. Присвойте файлу модуля имя ServerMod.pas, файлу главной формы — имя ServerMain.pas, а файлу приложения — Server.dpr.

4.   Теперь выберите в меню File пункты New, Other, Web Services и выберите пик

тограмму Invokamatic Wizard.

5.  На экране появится диалоговое окно  с запросом на ввод имени. Введите  Hel- loWorldSoap. Это  имя  будет использовано для  автоматического именования интерфейсов и файлов. В раскрывающемся списке  Invokable Class (Вызывае мый класс)  выберите значение TInvokable Class. После  щелчка  на кнопке ОК в проект будут добавлены два новых  модуля. Первый — это модуль интерфейса, а второй — модуль реализации.

6.  Перейдите в модуль интерфейса и добавьте в интерфейс IHelloWorldSoap- Intf следующий метод:

function sayHello: string; stdcall;

Дескриптор stdcall необходим для обеспечения корректного вызова (в соот

ветствии с соглашением о вызовах).

7.  Теперь скопируйте объявление этого  метода в модуль реализации класса THel- loWorldSoapIntf раздела  public.

8.   Поместите курсор в любом месте строки метода и для автоматического завер

шения  реализации класса  нажмите комбинацию клавиш  <Ctrl+Shift+C>. Чтобыпроверить  корректность  работы  клиента,  укажите  в  качестве  результата,  воз

вращаемого методом, следующую строку:

result := ‘Hello, world';

9.  Сохраните, откомпилируйте и запустите программу. В момент запуска она заре гистрирует интерфейс метода.  Убедитесь, что  отладчик Web App Debugger за пущен  (запускается в меню  Delphi   Tools).  Теперь можно  запустить сервер и проверить доступные интерфейсы, щелкнув  мышью  на поле  URL в отладчике Web App Debugger.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии