Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Архитектура прокси SOAPClient






SOAPClient, используемый для вызовов удаленного компонента по протоколу SOAP, является оберткой вокруг нескольких низкоуровневых компонентов, осуществляющих всю “грязную” работу. Поэтому при использовании SOAP Toolkit клиент может работать с высокоуровневым компонентом SOAPProxy, скрывающим все детали вызова, или (вручную) с низкоуровневыми компонентами, в случаях, когда необходима дополнительная функциональность, не предусмотренная в SOAPClient. Любой вызов SOAP включает в себя следующие этапы:

  • Разбор WSDL-файла и определение операции и параметров, которые необходимо передать на сервер.
  • Преобразование значений параметров в текстовую форму.
  • Формирование XML-запроса.
  • Передача запроса на сервер.
  • Получение отклика сервера.
  • Преобразование выходных параметров, разбор сообщения об ошибке.
  • За каждый из этапов отвечает специальный компонент SOAP Toolkit 3.0. За разбор WSDL-файла и предоставление информации о количестве и типах параметров отвечает компонент WSDLReader30, результатом работы которого являются WSDLOperation, WSDLPort, WSDLService. С помощью этих компонентов можно получить всю информацию, содержащуюся в WSDL-файле.

Преобразование параметров в текстовую форму осуществляется с помощью так называемых mapper-ов. В состав SOAP Toolkit’а mapper-ы для всех oleautomation-типов и некоторых других. Кроме того, есть Generic Custom Type Mapper, который подходит для большинства составных типов данных (структур). Для тех случаев, когда стандартные mapper-ы не подходят, возможно использование своих собственных mapper-ов.

Формирование XML-запроса и обратное преобразование выполняют SOAPSerializer30 и SOAPReader30.

Передача запроса на сервер и получение отклика осуществляется с помощью так называемого коннектора.

Чтобы расширить функциональные возможности стандартного Proxy, совсем необязательно программировать на низкоуровневом API, оперируя напрямую вспомогательными компонентами. SOAPClient позволяет заменять коннектор через свойства, а в WSDL-описании можно указывать свои mapper-ы.

ПРИМЕЧАНИЕ Представляется возможным создание (с использованием низкоуровневого API) Proxy, осуществляющей вызовы с помощью раннего связывания и/или не зависящей от WSDL-файла, а использующей, например, библиотеку типов наподобие oleautomation Proxy. Однако, по моему мнению, большая часть времени при SOAP-вызове тратится совсем на другие вещи, и использование такой Proxy скорее упростит работу клиента, чем ощутимо повлияет на производительность.





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.