Фирма 1С Система программ Решения Платформа Методическая поддержка Партнерам Другие сайты
Обзор системы
Внедрения
Локализованные решения
Прикладные решения
Технологическая платформа
1С:Предприятие 8.2 (тестовая)
Новое в платформе (8.1.11)
Новое в платформе (8.1)
Интернационализация
Экономическая и аналитическая отчетность
Работа пользователя
Обмен данными
Web-расширение
Расширение для КПК
Интерфейсные механизмы
Система прав доступа
Средства администрирования
Прикладные механизмы
Интеграция
Общие механизмы
Масштабируемость
Средства разработки
Рекомендации по выбору оборудования
Примеры технологических параметров внедрений
База знаний по технологическим вопросам
Внедрение корпоративных информационных систем
.
 
 
Технологическая платформа
 
Функционал типовых решений
Библиотека стандартных подсистем
Система проектирования прикладных решений
 
1С:Бухгалтерия
 
1С:Упрощенка
 
1С:Предприниматель
 
1С:Управление небольшой фирмой
 
1С:Управление
торговлей
 
1С:Зарплата и Управление
Персоналом
 
1С:Комплексная автоматизация
 
1С:Управление производственным предприятием
 
1С:Консолидация
 
1С:Платежные документы
 
1С:Налогоплательщик
 
1С:Розница
 
1С:Документооборот
 
1С:Деньги
 
1С:Бухгалтерия государственного учреждения
 
1С:Зарплата и кадры бюджетного учреждения
 
1С:Бюджет поселения
 
1С:Документооборот государственного учреждения
 
1С:Бюджетная отчетность
 
1С:Свод отчетов
 
1С:Государственные и муниципальные закупки
 
1С:Электронное обучение
 
1С:Управляющий
Локализованные решения
Отраслевые и специализированные решения
Внедренные решения
Самые масштабные проекты
Технологические вопросы крупных внедрений

Интеграция

Как купить и внедрить?
Центры разработки

Центры компетенции по производству

Центры компетенции по торговле
Партнеры, работающие на корпоративном рынке
Новости и публикации
Обучение
Интернет-поддержка
Версия для печати Поиск Новая модель клиент-серверного взаимодействия Главная Обзор системы Технологическая платформа 1C:Предприятие 8.2 Тестовая версия

Новая модель клиент-серверного взаимодействия

Перенос функциональности на сервер

Архитектура управляемого приложения ориентирована на максимальный перенос выполнения всей функциональности на сервер и максимальное «облегчение» клиента.

В предыдущих версиях платформы форма и командный интерфейс полностью располагались на клиенте и обращения к серверу выполнялись в основном для считывания и записи прикладных данных. Также на сервер могли переноситься отдельные части вычислений с помощью серверных общих модулей.

В управляемом приложении вся работа прикладных объектов выполняется только на сервере. Функциональность форм и командного интерфейса также реализована на сервере.

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

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

При этом механизмы системы ориентированы на минимизацию объема данных, передаваемых на клиентский компьютер. Например, данные списков, табличных частей и отчетов передаются с сервера не сразу, а по мере просмотра их пользователем.

Что работает на сервере:

  • Запросы к базе данных
  • Запись данных
  • Проведение документов
  • Различные расчеты
  • Выполнение обработок
  • Формирование отчетов
  • Подготовка форм к отображению …

Что работает на клиенте:

  • Получение и открытие форм
  • Отображение форм
  • «Общение» с пользователем (предупреждения, вопросы…)
  • Небольшие расчеты в формах, требующие быстрой реакции (например, умножение цены на количество)
  • Работа с локальными файлами
  • Работа с торговым оборудование

Встроенный язык на клиенте

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

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

На клиенте не допускается непосредственная работа с базой данных. Не допускается работа непосредственно с прикладными объектами, например, недоступны такие типы, как СправочникОбъект.<имя>. Не допускается использование запросов. При необходимости вызова действий с данными в клиентском коде нужно вызывать серверные процедуры, которые уже будут обращаться к данным.

Работа управляемых форм

Для работы с прикладными данными в формах используются специализированные типы данных, предназначенные именно для отображения и редактирования данных в форме. Они наполняются на сервере из данных прикладных объектов и преобразуются потом обратно для записи измененной информации в базу данных.

Таким образом, форма не работает непосредственно с данными прикладных объектов, а имеет собственную структуру данных, связанную с элементами формы. Преобразование данных прикладных объектов в данные формы и обратно осуществляется системой автоматически при выполнении стандартных действий в форме.

Но при реализации собственных алгоритмов разработчик должен вызывать такое преобразование самостоятельно. Таким образом, разработчику нужно понимать, что он фактически работает с двумя контекстами исполнения системы: серверным и клиентским. И между ними происходит обмен данными. При разработке необходимо заботиться о минимизации клиент-серверного взаимодействия (сокращении объемов передаваемых данных, минимизации вызовов сервера и максимальной реализации бизнес-логики на сервере).

Одинаковая работа в разных режимах

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

Это определяет ряд особенностей и ограничений. Например, для работы с файлами предоставляется специальный механизм, который обеспечивает обмен файлами между клиентом и сервером с учетом ограничений, которые накладывает модель безопасности интернет-браузеров.

Эффективная проверка прав доступа

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

Например, при проведении документа не обязательно проверять права доступа по регистрам, так как достаточно проверки того, что пользователю можно записать и провести документ с таким составом информации. Для этого введена возможность программного включения и выключения привилегированного режима в модулях на сервере. Также введена возможность установки в метаданных выполнения в привилегированном режиме проведения документа, отмены проведения документа и формирования задач бизнес-процессов.

Файловый вариант

Работа в файловом варианте также поддерживается системой для конфигураций, использующих режим управляемого приложения. Никаких изменений для этого в конфигурацию вносить не нужно. Разумеется, в этом случае вся функциональность (как серверная, так и клиентская) выполняется на клиенте.

Взаимодействие с кластером серверов

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

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

Выполняется автоматическая перезагрузка серверов (recycling).

Изменение в подходах к разработке

  • Раньше: только в отдельных случаях нужно было разбираться с клиент-серверным взаимодействием
  • Теперь: каждый разработчик должен будет понимать, что он в явном виде программирует отдельно клиентскую и серверную части
  • Разработчик должен управлять частотой вызовов сервера и объемом передаваемой информации
  • В конфигурациях нужно будет четко отделять код бизнес-логики от кода интерфейса
  • Нужно будет активнее использовать привилегированный режим, выполняя в нем все операции, не связанные с отображением, например, проведение документа.
   © ООО «1С»

Отправить ваши замечания и предложения по сайту