Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Web-сервисы в расширениях
Дальше: Автоматическое переиспользование сеансов

Повторное использование сеансов интернет-сервисов

В данном разделе мы рассмотрим, как можно повысить производительность веб-сервисов при помощи повторного использования сеансов этих сервисов. В данном случае под веб-сервисами понимаются любые интернет-сервисы: Web-сервис, HTTP-сервис, а также стандартный интерфейс Odata.

Дело в том, что если не переиспользовать сеансы веб-сервисов, то при каждом вызове сервиса система будет создавать новый сеанс работы с информационной базой. При этом выполняется довольно «тяжелый» обработчик УстановкаПараметровСеанса() и др. При завершении вызова интернет-сервиса сеанс завершается, а при повторном вызове система опять тратит время и ресурсы на создание сеанса.

Кроме этого существует и функциональный недостаток. Веб-сервисы не обладают состоянием. Однако иногда требуется реализовывать логику, использующую сохранение состояния между вызовами веб-сервиса.

Для устранения этих недостатков в настоящее время в платформе реализованы две различные стратегии, обеспечивающие переиспользование сеансов:

Необходимость использования той или иной стратегии можно определить в свойствах объектов конфигурации Web-сервис и HTTP-сервис, а также, при необходимости, переопределить в файле публикации default.vrd.

Свойство объектов конфигурации Web-сервис и HTTP-сервис Повторное использование сеансов может принимать значения:

Свойство Время жизни сеанса позволяет указать:

Если данное свойство установлено в значение 0, то это означает, что сеансы повторно не используются. Такая установка эквивалентна установке свойства Повторное использование сеансов в значение Не использовать.

В файле публикации на веб-сервере default.vrd для элементов, описывающих SOAP-сервисы, HTTP-сервисы и сервисы OData, также существуют соответствующие атрибуты:

Например, файл default.vrd может выглядеть следующим образом (листинг 1.141).

Листинг 1.141. Файл публикации на веб-сервере

<?xml version="1.0" encoding="UTF-8"?>

<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

base="/REST"

ib="File="C:\Users\dell\Documents\InfoBase14";">

<standardOdata enable="true"

reuseSessions="autouse"

sessionMaxAge="20"

poolSize="10"

poolTimeout="5"/>

<ws>

<point name="ЦеныТоваров"

alias="wsprices.1cws"

enable="true"

reuseSessions="autouse"

sessionMaxAge="20"

poolSize="10"

poolTimeout="5"/>

<point name="Заказы"

alias="wsorders.1cws"

enable="true"

reuseSessions="autouse"

sessionMaxAge="20"

poolSize="10"

poolTimeout="5"/>

</ws>

<httpServices>

<service name="Сотрудники"

rootUrl="employees"

enable="true"

reuseSessions="autouse"

sessionMaxAge="20"

poolSize="10"

poolTimeout="5"/>

<service name="ЦеныТоваров"

rootUrl="prices"

enable="true"

reuseSessions="autouse"

sessionMaxAge="20"

poolSize="10"

poolTimeout="5"/>

</httpServices>

</point>

Файл default.vrd имеет больший приоритет, чем конфигурация. При публикации конфигурации атрибуты reuseSessions и sessionMaxAge заполняются из соответствующих свойств объектов конфигурации Web-сервис и HTTP-сервис. Но при необходимости можно изменить эти значения прямо в файле, и тогда платформа будет использовать их, а не значения из конфигурации.

Назад: Web-сервисы в расширениях
Дальше: Автоматическое переиспользование сеансов