Лабораторная работа: Технологія SOAP
end;
function TEncodeDecode.EuroToUk(Value: Currency): Currency;
begin
Result := Value * 6.2;
end;
initialization
InvRegistry.RegisterInvokableClass(TEncodeDecode);
end.
У випадку, якщо Ви не хочете успадковувати клас від TInvokableClass , необхідно створити і зареєструвати метод-фабрику класу, який зможе створювати екземпляри класу. Метод повинен бути типу TCreateInstanceProc = procedure(out obj: TObject) . При цьому екземпляр повинен уміти ліквідовувати себе, якщо кількість посилань використовуючих його клієнтів стане нульовою. При реєстрації такого класу методу InvRegistry.RegisterInvokableClass другим параметром необхідно передати ім'я методу-фабрики класу.
Залишився останній крок - створення проекту прикладення. У RAD оберімо команду меню File | New | Other і із закладки WebServices оберімо значок SOAP Server Application. Буде виведений діалог вибору формату прикладення Web Services (мал. 2 ).
Малюнок 2
Оберімо формат CGI Stand-alone executable. При цьому буде створений проект з Web-модулем, що містить три компоненти: HTTPSoapDispatcher, HTTPSoapPascalInvoker, WSDLHTMLPublish (мал. 3 ).
Малюнок 3
· HTTPSoapDispatcher одержує і обробляє SOAP-повідомлення , перенаправляючи їх invoke інтерфейсам, зареєстрованим у прикладенні. Таким чином HTTPSoapDispatcher є диспетчером, відповідальним за прийом, розподіл і відправку SOAP-повідомлень. Інтерпретація запитів і виклик методів інтерфейсів здійснюється іншим компонентом, вказаним у властивості Dispatcher (HTTPSoapPascalInvoker1) .
· HTTPSoapDispatcher автоматично реєструє себе в Web-модулі, як автодиспетчуємий. При цьому всі запити передаються HTTPSoapDispatcher , що позбавляє Вас від необхідності створювати оброблювачі запитів Web-модуля.
· WSDLHTMLPublish1 генерує і видає за запитом клієнта опис інтерфейсу сервера.
На запит про необхідність створення інтерфейсу необхідно клацнути по кнопці Yes (мал . 4.4 ).
Малюнок 4
У вікні діалогу, яке з’явилося, треба задати ім’я служби (мал. 5 ).
Малюнок 5
Далі в проект необхідно підключити файли з описом і реалізацією інтерфейсу. Для цього в RAD оберімо команду меню Project | Add to project і у діалозі, що з'явився, оберімо модулі з описом і реалізацією методів інтерфейсу (мал. 6 ).
Малюнок 6
Тепер можна зберегти проект, побудувати його і розташувати одержаний виконуваний файл у каталозі c:\Inetpub\Scripts Web-сервера IIS. Сервер готовий до роботи.
Створення клієнта Web Services