
- •Серверы приложений. Веб-серверы
- •Лекция основные принципы технологии «клиент--сервер»
- •Меры безопасности
- •Установка iis
- •Контрольный список программного обеспечения iis
- •Процедура установки iis
- •Краткая история сервера apache.
- •Лекция основы web-программирования
- •1. Основы функционирования Интернета
- •2. Язык разметки html*
- •3. Каскадные таблицы стилей (css)
- •4. Язык сценариев JavaScript
- •5. Объектная модель dhtml
- •6. Объектная модель dom
- •7. Основы языка xml и объектная модель xml
- •Лекция Протоколы прикладного уровня
- •Что такое soap
- •Что такое веб-сервисы
- •Механизм взаимодействия клиента и сервера
- •Лекция Развитие языков разметки гипертекста
- •Структура html-документа
- •Лекция Описание html. Теги языка, их свойства.
- •Описание html
- •Лекция Фреймы. Формы
- •Html формы
- •Тэги Формы
- •Меню выбора в формах
- •Лекция Каскадные таблицы стилей
- •Id селекторы (id Selectors):
- •Лекция Характеристика и возможности xml
- •Как выглядит xml-документ?
- •Правила создания xml- документа
- •Конструкции языка
- •Элементы данных
- •Комментарии
- •Атрибуты
- •Cпециальные символы
- •Директивы анализатора
- •Просмотр xml - документов
- •Стилевые таблицы xsl
- •С чего начать
- •Структура xsl- таблиц
- •Правила xsl
- •Корневое правило
- •Отношения между элементами
- •Использование атрибутов элементов
- •Фильтрация элементов
- •Лекция Язык описания схемы данных xml (dtd)
- •Схемы данных
- •Лекция Объектная модель документа dom
- •Лекция Характеристика ис. Спецификация cgi. Расширения isapi. Серверы asp
- •Лекция Характеристика программного средства(php)
- •Лекция Основы языка ис. Синтаксис
- •Лекция Элементы и выражения языка
- •Элементы языка
- •Лекция Функции ис (php)
- •Функции отрезания пробелов
- •Базовые функции
- •Лекция Характеристика программного средства (JavaScript )
- •Лекция Синтаксис языка Java Script. Операторы. JavaScript Велечины, Имена, и Литералы
- •Выражения
- •Условные Выражения
- •Декремент (--)
- •Унарное вычитание (-)
- •Побитовые Операторы
- •Побитовые Логические операторы
- •Побитовые Операторы сдвига
- •Логические операторы
- •Вычисление...
- •Операторы Строки
- •Лекция Объекты JavaScript. Методы и события
- •Общие сведения
- •Понятие объектной модели применительно к JavaScript
- •Cвойства
- •События
- •Размещение кода на html-странице
- •Обработчики событий
- •Подстановки
- •Вставка (контейнер script - принудительный вызов интерпретатора)
- •Размещение кода внутри html-документа
- •Условная генерация html-разметки на стороне браузера
- •Иерархия классов
Что такое soap
В настоящее время используемые технологии удаленного вызова методов (DCOM, CORBA/IIOP и RMI) довольно сложны в настройке и организации взаимодействия. Это влечет за собой проблемы в эксплуатации и функционировании распределенных систем (проблемы безопасности, транспорт через брандмауэры и т.д.). Существующие проблемы успешно решены созданием SOAP (Simple Object Access Protocol), простого протокола, основанного на XML, для обмена сообщениями в распределенных средах (WWW). Он предназначен для создания веб-сервисов и удаленного вызова методов. SOAP можно использовать с разными транспортными протоколами, включая HTTP, SMTP и т.д.
Что такое веб-сервисы
Веб-сервисы - это функциональность и данные, предоставляемые для использования внешними приложениями, которые работают с сервисами посредством стандартных протоколов и форматов данных. Веб-сервисы полностью независимы от языка и платформы реализации. Технология веб-сервисов является краеугольным камнем программной модели Microsoft .NET.
Для демонстрации возможностей SOAP я использовал недавно вышедшую реализацию SOAP Toolkit версии 2.0 от Microsoft. Следует заметить, что текущая версия Toolkit заметно отличается от предыдущей (Microsoft SOAP Toolkit for Visual Studio 6.0) и от бета версии SOAP Toolkit 2.0.
Механизм взаимодействия клиента и сервера
Клиентское приложение создает экземпляр объекта SOAPClient
SOAPClient читает файлы описания методов веб-сервиса (WSDL и Web Services Meta Language - WSML). Эти файлы могут храниться и на клиенте.
Клиентское приложение, используя возможности позднего связывания методов объекта SOAPClient, вызывает метод сервиса. SOAPClient формирует пакет запроса (SOAP Envelope) и отправляет на сервер. Возможно использование любого транспортного протокола, но, как правило, используется HTTP.
Пакет принимает серверное приложение Listener (может представлять собой ISAPI приложение или ASP страницу), создает объект SOAPServer и передает ему пакет запроса
SOAPServer читает описание веб-сервиса, загружает описание и пакет запроса в XML DOM деревья
SOAPServer вызывает метод объекта/приложения, реализующего сервис
Результаты выполнения метода или описание ошибки конвертируются объектом SOAPServer в пакет ответа и отправляются клиенту
Объект SOAPClient проводит разбор принятого пакета и возвращает клиентскому приложению результаты работы сервиса или описание возникшей ошибки.
WSDL файл это документ в формате XML, описывающий методы, предоставляемые веб-сервисом. Также параметры методов, их типы, названия и местонахождение Listener`а сервиса. SOAP Toolkit визард автоматически генерирует этот документ.
Фрагмент WSDL файла:
..<message name=" SOAPClass.SubtractNumbers">
<part name="NumberOne" type="xsd:double" />
<part name="NumberTwo" type="xsd:double" />
</message>
<message name=" SOAPClass.SubtractNumbersResponse">
<part name="Result" type="xsd:double" />
</message>
<message name=" SOAPClass.AddNumbers">
<part name="NumberOne" type="xsd:double" />
<part name="NumberTwo" type="xsd:double" />
</message>
<message name=" SOAPClass.AddNumbersResponse">
<part name="Result" type="xsd:double" />
</message>
...
SOAP Envelope (Пакет) - XML документ, который содержит в себе запрос/ответ на выполнение метода. Удобнее всего рассматривать его как почтовый конверт, в который вл
ожена информация.
Структура SOAP пакета
Тэг Envelope должен быть корневым элементом пакета. Элемент Header не обязателен, а Body должен присутствовать и быть прямым потомком элемента Envelope. В случае
ошибки выполнения метода сервер формирует пакет, содержащий в тэге Body элемент Fault, который содержит подробное описание ошибки.
Если вы пользуетесь высокоуровневыми интерфейсами SOAPClient, SOAPServer, то вам не придется вдаваться в тонкости формата пакета, но, при желании, можно воспользоваться низкоуровневыми интерфейсами или же вообще создать пакет «руками».
Объектная модель SOAP Toolkit дает возможность работать с объектами низкоуровневого API:
SoapConnector - Обеспечивает работу с транспортным протоколом для обмена SOAP пакетами
SoapConnectorFactory - Обеспечивает метод создания коннектора для транспортного протокола, указанного в WSDL файле (тэг <soap:binding>)
SoapReader - Читает SOAP сообщения и строит XML DOM деревья
SoapSerializer - Содержит методы создания SOAP сообщения
IsoapTypeMapper, SoapTypeMapperFactory - Интерфейсы, позволяющие работать со сложными типами данных
Используя объекты высокоуровневого API можно передавать данные только простых типов (int, srting, float …), но спецификация SOAP 1.1 допускает работу с более сложными типами данных, например с массивами, структурами, списками и их комбинациями. Для работы с такими типами приходится использовать интерфейсы IsoapTypeMapper и SoapTypeMapperFactory.