Web-сервисы 1С - это один из механизмов платформы, используемых для интеграции с другими информационными системами; является средством поддержки SOA (Service-Oriented Architecture) - сервис-ориентированной архитектуры (современного стандарта интеграции приложений и информационных систем).
Указанный объект используется для экспорта функциональности данной (конкретной) информационной базы.
Менеджер web-сервиса, представленный на схеме, решает следующие задачи:
- управляет пулом соединений с информационными базами;
- поддерживает описание сервиса в формате WSDL (Web Services Description Language, язык описания веб-сервисов, основанный на XML);
- реализует протокол SOAP (Simple Object Access Protocol - простой протокол доступа к объектам), обеспечивает сериализацию сообщений, вызов нужных web-сервисов.
Веб-сервисы независимы от платформы, автономны и поддерживаются повсеместно, что позволяет минимизировать издержки за счет интеграции разнородных и унаследованных систем (программных компонентов) в современную структуру предприятия.
Web-сервис в 1С описывается набором операций, каждая из которых может иметь некоторое количество параметров для передачи данных Web-сервису и получения возвращаемых значений.
Типы параметров и возвращаемых значений Web-сервисов описываются с помощью механизма XDTO. Например, в случае если функция, реализующая операцию WEB-сервиса, принимает какое-либо значение в качестве параметра (или возвращает какое-либо значение), то такое значение определяется (при настройке соответствующего объекта конфигурации) как имеющее тип объект или значение XDTO.
Общий объект конфигурации 1С "Web-сервис" содержит модуль, в котором располагаются процедуры, выполняемые при вызове тех или иных операций Web-сервиса.
Для получения доступа к Web-сервису необходимо использовать адрес, который формируется следующим образом:
http://host/base/ws/ИмяWebСервиса
или
http://host/base/ws/АдресWebСервиса.
http://host/base – обычный URL, по которому выполняется доступ, например, к информационной базе с помощью веб-клиента. При наличии разделителей, не поддерживается указание значений разделителей с помощью параметра Z командной строки запуска клиентского приложения.
ws – признак того, что выполняется обращение к Web-сервису (в отличие от hs, который определяет доступ к HTTP-сервису).
ИмяWebСервиса – имя Web-сервиса. Задается в свойстве объекта Web-сервис.
АдресWebСервиса – описывает альтернативное имя для доступа к Web-сервису. Задается в свойстве Имя файла публикации объекта Web-сервис. Может быть изменено при публикации Web-сервиса.
Обращения по имени ИмяWebСервиса и адресу АдресWebСервиса Web-сервиса являются равносильными.
Прикладное решение 1С:Предприятия 8 может являться:
- поставщиком веб-сервисов;
- потребителем веб-сервисов, опубликованных другими поставщиками.
1С:Предприятие как поставщик Web-сервисов
Если прикладное решение является поставщиком web-сервиса то и в файловом, и в клиент-серверном варианте работы взаимодействие между прикладным решением и потребителями веб-сервиса осуществляется через веб-сервер, с помощью модуля расширения веб-сервера (рисунок).
При этом, когда потребитель обращается к web-сервису прикладного решения, выполняется модуль web-сервиса. Этот модуль содержится в конфигурации и в нем располагаются процедуры, выполняемые при вызове тех или иных операций web-сервиса.
В случае клиент-серверного варианта работы этот модуль будет исполняться в кластере. В случае файлового варианта работы - в модуле расширения веб-сервера.
Для использования решения 1С в качестве поставщика Web-сервисов в конфигурацию необходимо добавить общий объект 1С "Web-сервис", с помощью которого описать необходимый функционал прикладного решения (например, получение списка имеющихся на складе товаров, их количества и цен).
Для того чтобы Web-сервис был доступен потребителям, выполняется публикация Web-сервиса. Web-сервис может быть опубликован на веб-сервере Internet Information Services или Apache через файловую систему. После публикации на веб-сервере такой сервис будет доступен сторонним потребителям.
В качестве потребителей могут выступать системы, использующие произвольные аппаратные и программные платформы.
1С:Предприятие как потребитель Web-сервисов
Если прикладное решение является потребителем web-сервиса стороннего поставщика, то в этом случае взаимодействие между прикладным решением и поставщиком веб-сервиса осуществляет клиентское приложение. Оно вызывает те или иные операции веб-сервиса и обрабатывает полученные данные.
В прикладном решении можно описать ссылку (WS-ссылку) на Web-сервис, опубликованный сторонним поставщиком. После этого прикладное решение сможет использовать данные, получаемые с помощью такого веб-сервиса, в своих внутренних прикладных алгоритмах.
WS-ссылка - это общий объект конфигурации, предназначенный для описания в прикладном решении "статической" ссылки на некоторый внешний веб-сервис стороннего поставщика.
Вызов Web-сервиса происходит следующим образом:
- из пула соединений выбирается подходящее соединение с информационной базой; при отсутствии необходимого соединения соединение создается;
- создается новый сеанс и для созданного сеанса вызывается событие УстановкаПараметровСеанса (в модуле сеанса);
- выполняется вызов затребованного метода Web-сервиса, при этом происходит вызов обработчика УстановкаПараметровСеанса() (в модуле сеанса) каждый раз, когда происходит обращение к не инициализированному параметру сеанса.
Не рекомендуется выполнять ресурсоемкие операции в обработчике события УстановкаПараметровСеанса.
Модуль вызванного сервиса исполняется на сервере в обычном режиме.
Модуль сеанса служит для инициализации параметров сеанса и выполнения некоторого набора команд при вызове любого Web-сервиса системы «1С:Предприятие». Событие УстановкаПараметровСеанса модуля сеанса вызывается на сервере в привилегированном режиме.
Примеры реализации Web-сервисов по ссылкам:
Особенности использования Web-сервисов 1С:
- При обращении к WEB сервису последовательность действий следующая:
- по динамической ссылке:
- получение wsdl-описания;
- настройка подключения (создание прокси);
- обращение к операции сервиса.
-
по статической ссылке:
- настройка подключения (создание прокси);
- обращение к операции сервиса.
- по динамической ссылке: