Клиент-серверная архитектура 1С

В клиент-серверной архитектуре 1С: Предприятие выделяются 3 звена (так называемая трехзвенная архитектура):

  1. Клиент 1С (Толстый, Тонкий, Web);
  2. Сервер 1С (или несколько серверов = кластер);
  3. Сервер СУБД (или несколько серверов = кластер).

Курсы 1С: Эксперт. Клиент-серверная архитектура 1С. 3 звена
Клиент-серверная архитектура 1С. 3 звена

При разработке системы или приложений, все тяжелые расчеты мы, конечно, переносим на сервер. На клиенте выполняются простые арифметические вычисления, работа с клиентской файловой системой, а так же, очевидно, работа форм управляемого приложения.

Операционные системы и разрядности ОС (32/64) на клиенте, сервере 1С и сервере СУБД могут быть разными.

Например, пользователь может работает в Mac OS (тонкий клиент), при этом сервер 1С работать на windows x86, а СУБД на Postgres Linux.

Понятие сеанс и соединение 1С

Важным является различие сеанса 1С и соединения 1С, потому что – это разные сущности, которые содержат в себе различную информацию, и каждая из них играет свою роль.

Соединения клиент-1С и 1С-СУБД не всегда связаны между собой, по сути напрямую они никак не связаны, но сервер 1С, конечно, хранит информацию о соединениях и какой сеанс его вызвал. Теоретически могут быть случаи, когда выполняется тяжелый запрос, администратор принудительно завершил работу пользователя 1С , а СУБД все еще висит.

Это вызвано тем, что есть активное соединение именно к СУБД, и запрос на стороне СУБД все еще выполняется. Чтобы прекратить выполнение на стороне СУБД, вам необходимо получить все текущие запросы в СУБД, узнать ID подключения и сделать «kill ID», чтобы убить соединение именно на стороне СУБД.

  • Сеанс – это информация о пользователе и поток управления этого пользователя (пассажир такси):
    • Его номер
    • Наименование информационной базы
    • Имя аутентифицированного пользователя информационной базы
    • Язык интерфейса
    • Значения параметров
    • Временные хранилища
    • Статистику работы
    • Информация форм управляемого приложения
    • Некоторые внутренние данные платформы.
  • Соединение – это средство доступа «пассажира» к серверу (автомобиль такси).
Курсы 1С: Эксперт. Клиент-серверная архитектура. Сеанс и соединение
Клиент-серверная архитектура 1С. Сеанс пользователя.

Так же важным моментом является засыпание неактивного сеанса и его принудительное завершение чрез заданный интервал времени.

Особенности сеанса и соединения 1С

  • Может быть случай, когда пользователь запускает 2 клиента, тогда будут существовать 2 сеанса.
  • Может быть случай, когда запущен 1 клиент, но создается 2 сеанса (Уровень Отказоустойчивости > 0).
  • Соединение может обрываться или даже завершаться из консоли кластера, но сеанс не ‘умрет’, а просто подключится заново с новым соединением.
  • Если пользователь не активен более 20 секунд, то соединение автоматически отключается.
  • Если пропала связь, то создается новое соединение по возможности на тот же рабочий процесс / тот же сервер. Если есть более производительный процесс/сервер, то будет назначен он.

В толстом клиенте обычного приложения работа пользователя жестко привязана к конкретному рабочему процессу. И если прерывается подключение, то в толстом клиенте работа завершается аварийно.

Данная тема подробнее рассматривается в пакете видео-курса «Секреты 1С: Эксперта» Шаг 1. Занятие 01-01. Знакомство с 1С.

Курсы 1С: Эксперт. Клиент-серверная архитектура. Соединение - это такси, а сеанс - это пассажир!

КОНСТАНТИН ЕФИМОВ
Комментарии и вопросы