![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Серверные компоненты
Не всякий COM-компонент может быть использован для обслуживания SOAP-запросов. В этом разделе будут рассмотрены требования к компонентам, способы их активации, возможности отладки. Наиболее важное требование к компоненту, рассчитанному на работу с SOAP Toolkit – поддержка интерфейса IDispatch. SOAPServer должен сформировать вызов компонента на основе динамической информации, находящейся в WSML-файле. Чтобы это было возможным, компонент должен поддерживать позднее связывание на основе интерфейса IDispatch.
SOAP Toolkit накладывает ограничение на типы передаваемых параметров. Поскольку интерфейсы серверного компонента должны поддерживать IDispatch, мы ограничены только oleautomation-совместимым типами данных. Но и среди automation-типов есть типы, с которыми могут возникнуть проблемы. Это объектные ссылки (указатели на интерфейсы). В мире COM/DCOM передача указателя на интерфейс сопровождалась неявным маршалингом, и клиент получал указатель на Proxy, который передавал вызовы серверному компоненту. В случае протокола SOAP передача указателя на интерфейс клиенту должна была бы означать, что клиент сможет делать SOAP-вызовы методов передаваемого объекта, но при этом для такого объекта также должны быть доступны WSDL- и WSML-файлы, и кто-то должен контролировать его время жизни (как это происходит в случае с DCOM). Передача указателя на интерфейс от клиента серверу означает, что вызовы методов интерфейса будет делать сервер, а сам объект находится на клиенте. Применительно к SOAP это означало бы, что запросы по протоколу HTTP делал бы сервер, а клиент должен был бы стать полноценным SOAP-сервером. Конечно, все эти проблемы могут быть решены, но в настоящее время SOAP Toolkit не поддерживает передачу объектных ссылок ни от сервера клиенту, ни в обратном направлении.
|