Лабораторная работа: Технологія SOAP

Мета : отримання практичних навиків обміну даними між прикладенням C++ Builder і базою даних інформаційної системи в комп'ютерній мережі Internet з використанням технології SOAP .

Завдання:

Створити оригінальну (!) розподілену інформаційну системуна основі технології SOAP на прикладі системи з наступною архітектурою клієнт-серверної взаємодії:

· клієнтське прикладення де-небудь з Internet споживає Web-сервіс;

· Web-сервіс (через SOAP ) виставляє об'єктні методи;

· об'єктні методи звертаються до віддалених даних де завгодно на Web.


Технологія SOAP

Малюнок 1

Клієнт SOAP використовує спеціальний UDDI-реєстр для локалізації Web-сервісу. В більшості випадків, замість керування WSDL безпосередньо, прикладення SOAP буде сконструйовано так, щоб використовувати специфічний тип порту і стиль скріплення, і динамічно конфігуруватиме адресу сервісу, що викликається з метою узгодження з сервісом, знайденим за допомогою UDDI.

Клієнтське прикладення створює повідомлення SOAP , яке є XML-документом, здатним здійснювати необхідні операції запиту / відповіді.

Клієнт посилає SOAP повідомлення JSP або ASP-сторінці на Web-сервері, що слухає запити SOAP .

Сервер SOAP аналізує пакет SOAP і викликає відповідний метод об'єкту в його області, передаваній в параметрах SOAP-документа. Перед ухваленням повідомлення SOAP-сервером вузли проміжної обробки можуть виконувати спеціальні функції, як вказано в заголовках SOAP .

Запрошуваний об'єкт виконує позначену функцію і повертає дані SOAP-серверу , який запаковує відповідь в конверт SOAP . Потім сервер «кладе» конверт SOAP в об'єкт відповіді (наприклад, сервлет або COM-об'єкт), який і посилається назад запитуючій машині.

Клієнт одержує об'єкт, «знімає» конверт SOAP і посилає у відповідь документ програмі, що спочатку запитала його, завершуючи цикл запиту / відповіді.

Delphi дозволяє створювати як сервери, так і клієнти Web Services . Ми почнемо розгляд із створення сервера.

Створення сервера Web Services

Створення сервера Web Services в Delphi складається з наступних етапів:

1. Опис інтерфейсу сервера, тобто методів, які будуть доступні для виклику клієнту;

2. Реалізація методів сервера;

3. Створення проекту Delphi і включення в нього результатів перших двох кроків.

У Delphi при створенні сервера Web Services методи, доступні для виклику клієнту, описуються у вигляді invokable інтерфейсів . Invokable інтерфейс - це інтерфейс, для методів якого доступна RTTI (інформація про типи на етапі виконання). Для того, щоб із звичайного інтерфейсу зробити invokable досить вказати директиву компіляції {$M+}. Після цього всі нащадки і сам інтерфейс міститимуть RTTI. У ієрархії VCL вже є такий інтерфейс IInvokable . Таким чином, при написанні сервера простіше всього успадкувати інтерфейс IInvokable . Крім того, необхідно зареєструвати свій інтерфейс в invocation registry . Реєстрація дозволяє серверу визначити клас, що реалізовує методи інтерфейсу, а клієнту одержати опис методів, підтримуваних сервером. Реєстрація здійснюється викликом методу InvRegistry.RegisterInterface у секції initialization модуля.

Оскільки інтерфейс використовується не тільки сервером, але і клієнтом, то бажано визначити його в окремому модулі Delphi .

Для прикладу ми розробимо сервер, який здійснюватиме перерахунок грошей з € у гривні і назад. У RAD Delphi оберімо пункт меню File | New | Unit. У одержаному порожньому модулі визначимо інтерфейс сервера:

unit u_Intrf;

interface

type

IEncodeDecode = interface(IInvokable)

['{9298D805-A2FB-4860-994E-11CC5BD36025}']

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 383
Бесплатно скачать Лабораторная работа: Технологія SOAP