- Клиент-серверный режим работы 1С
- Клиентские приложения
- Кластер серверов 8.2
- Администрирование клиент-серверного варианта работы 8.2
- Выполнение на сервере
- Использование встроенного языка версии 8.2 на клиенте
- Клиент-серверный вариант работы
- Клиентские приложения
- Кластер серверов
- Сервер баз данных
- Администрирование кластера серверов
- Выполнение основной функциональности на сервере
- Использование встроенного языка на клиенте
- Варианты работы системы
- Работа под управлением различных операционных систем
- Подключение через Интернет
- Системные требования
- Максимально эффективная по скорости работы — серверная схема, для клиент-серверной 1С 8.х
Клиент-серверный режим работы 1С
Клиент-серверный вариант работы (Client-Server Operation Variant)
Один из альтернативных вариантов работы платформы 1С: Предприятие 8, является клиент – серверный. «Клиент – сервер» выполнен на основе архитектуры 3ех уровней.
Архитектура клиент- сервера делит работающую систему на три части, которые обусловленным образом взаимодействуют между собой
- клиентское приложение
- кластер — серверов 1С: Предприятия
- сервер баз данных.
Клиентское приложение любого пользователя, работая с кластером серверов 1С: Предприятия 8 при необходимости обращается к базе данных на сервере.
При этом совершенно не обязательно чтобы сервер базы данных и кластер серверов 1С: Предприятия 8 находился на одном компьютере, это может быть и другой компьютер. Такие возможности помогут пропорционально разделить нагрузку между серверами.
Применение кластера серверов 1С: Предприятия 8 , это возможность сконцентрировать на нем осуществление объемных операций по обработке баз данных. Это могут быть выполнение объемных сложных запросов, и в этом случае программа пользователя получит только необходимую информацию в виде тематической выборки, а вся обработка будет происходить непосредственно на сервере. Такая возможность дает значительно облегчить работу, ведь увеличить мощность кластера намного легче, чем обновление программных систем целого ряда компьютеров.
Еще одно достоинство трехуровневой архитектуры, это возможность свободно администрировать и контролировать доступ всех пользователей к информации базы данных. И совершенно не обязательно пользователю вникать в расположение баз данных или конфигурации, весь доступ происходит через кластер серверов платформы 1С: Предприятия 8. При вводе запроса достаточно указать название информационной базы и имя необходимого кластера, сообщив при этом пароль.
В данном случае платформа 1С: Предприятие 8 для результативной выборки информации сама оперирует всеми базами данных:
- Специальные механизмы запросов направлены на самую максимальную эксплуатацию СУБД для выполнения необходимых видов работ связанных с расчетами и оформлением отчетов
- Возможность избежать огромного числа запросов к базе данных при большом объеме запрашиваемой информации. Действия упрощаются за счет существующих настроек отбора и сортировки данных, увеличивая при этом эффективность поиска
Формирование клиент-серверной версии, и ее администрирование не требует специальных навыков. Создание баз данных выполняется вовремя запуска конфигуратора , то же самое и для файлового варианта.
Клиентские приложения
Работа с клиентским приложением возможна через веб-сервер или напрямую с кластером. При подключении к кластеру толстый клиент и тонкий клиент непосредственно используют для передачи данных протокол TCP/IP. Если подключение осуществляется через веб-сервер тонкий клиент и веб-клиент используют протокол HTTP или HTTPS.
Кластер серверов 8.2
Основным компонентом системы 1С:Предприятия 8, с помощью которого взаимодействуют пользователи с системой баз данных при работе с клиент сервером, является кластер серверов.
Существование кластера делает возможной бесперебойную, отказоустойчивую, работу значительного числа пользователей с большими информационными базами.
Сервер баз данных
В качестве сервера баз данных используются:
- База Microsoft SQL Server
- База PostgreSQL
- База IBM DB2
- База Oracle Database
Администрирование клиент-серверного варианта работы 8.2
В комплект платформы входит специальная утилита, которая позволяет администрировать клиент-сервер и управлять администратору всеми подключенными пользователями и информационными базами.
Выполнение на сервере
Вся работа с необходимыми объектами, чтение баз данных и запись осуществляется непосредственно на сервере. Все функции командного интерфейса и определенных форм выполняются тоже на сервере.
Подготовка всевозможных форм, запись произведенных изменений и их расположение все эти функции , это задача сервера. Клиент отображает уже готовые формы, которые могут заполняться пользователем, вызов сервера осуществляется через поле ввод.
Командный интерфейс формируется аналогично на сервере, и все отчеты выводятся на клиенте
При этом сам механизм платформы направлен на то чтобы объем данных запрошенных данных был минимальным, за счет сортировки данных на сервере. Обработанные данные же поступают с сервера после просмотра их пользователем(данные списков, таблицы, отчеты)
На сервере выполняются следующее:
- Запросы к базам данных
- Запись всех данных
- Проводка документов
- Разные расчеты
- Проведение обработок
- Формирование готовых отчетов
- Подготовка форм к показу.
На клиенте выполняется следующее:
- Передача и открытие форм
- Показ форм
- Получение пользователем сообщений, предупреждений, т.е. информирование
- Проведение быстрых расчетов по простым формулам (цена Х количество)
- Операции с локальными файлами
- Операции с торговым оборудованием.
Использование встроенного языка версии 8.2 на клиенте
Управлять всеми функциями форм возможно как на сервере, так и на клиенте. Клиент поддерживает работу встроенного языка программирования. Если есть необходимость произвести быстрые расчеты по отображенной формуле, посчитать сумму или количество строк в документе просмотреть файл или отправить, то встроенный язык программирования, как раз на этот случай. Тем не менее, работа встроенного языка программирования рассчитана на ограниченные объемы, это связано с тем, что функции клиента отличаются от функций сервера, и объектный состав модуля ограничен.
На самом клиенте отсутствует возможность работы с базой данных, с прикладными объектами, запрещается употребление запросов. Прежде чем начать работу с базой в клиентском коде необходимо запросить сервер, а он в свою очередь к базе данных.
Источник
Клиент-серверный вариант работы
Клиент-серверный вариант работы — один из вариантов работы системы «1С:Предприятие 8». Клиент-серверный вариант работы предназначен для использования в рабочих группах или в масштабе предприятия. Он реализован на основе трехуровневой архитектуры «клиент-сервер».
Программа, работающая у пользователя, (клиентское приложение) взаимодействует с кластером серверов «1С:Предприятия 8», а кластер, при необходимости, обращается к серверу баз данных.
При этом физически кластер серверов «1С:Предприятия 8» и сервер баз данных могут располагаться как на одном компьютере, так и на разных. Это позволяет администратору при необходимости распределять нагрузку между серверами.
Использование кластера серверов «1С:Предприятия 8» позволяет сосредоточить на нем выполнение наиболее объемных операций по обработке данных. Например, при выполнении даже весьма сложных запросов программа, работающая у пользователя, будет получать только необходимую ей выборку, а вся промежуточная обработка будет выполняться на сервере. Обычно увеличить мощность кластера серверов гораздо проще, чем обновить весь парк клиентских машин.
Другим важным аспектом использования 3-х уровневой архитектуры является удобство администрирования и упорядочивание доступа пользователей к информационной базе. В этом варианте пользователь не должен знать о физическом расположении конфигурации или базы данных. Весь доступ осуществляется через кластер серверов «1С:Предприятия 8». При обращении к той или иной информационной базе пользователь должен указать только имя кластера и имя информационной базы, а система запрашивает соответственно имя и пароль пользователя.
- механизм запросов ориентирован на максимальное использование СУБД для выполнения расчетов и составления отчетов,
- просмотр больших динамических списков обеспечивается без выполнения большого количества обращений к базе данных; при этом пользователю предоставляются возможности эффективного поиска, а также настройки отбора и сортировки.
Развертывание клиент-серверного варианта и его администрирование выполняется довольно просто. Например, создание базы данных производится непосредственно в процессе запуска конфигуратора (так же, как и для файлового варианта).
Клиентские приложения
Работа в клиент-серверном варианте возможна как напрямую с кластером, так и через веб-сервер. При этом в случае непосредственного подключения к кластеру толстый клиент и тонкий клиент используют протокол TCP/IP. При подключении через веб-сервер тонкий клиент и веб-клиент используют протокол HTTP или HTTPS.
Кластер серверов
Кластер серверов «1С:Предприятия 8» — основной компонент платформы, обеспечивающий взаимодействие между пользователями и системой управления базами данных в клиент-серверном варианте работы. Наличие кластера позволяет обеспечить бесперебойную, отказоустойчивую, конкурентную работу большого количества пользователей с крупными информационными базами. Подробнее…
Сервер баз данных
Администрирование кластера серверов
В поставку платформы входит набор различных инструментов, позволяющих администратору управлять составом кластера, информационными базами и подключением пользователей. Подробнее…
Выполнение основной функциональности на сервере
Вся работа с прикладными объектами, чтение и запись базы данных выполняется только на сервере. Функциональность форм и командного интерфейса также реализована на сервере.
На сервере выполняется подготовка данных форм, расположение элементов, запись данных форм после изменения. На клиенте отображается уже подготовленная на сервере форма, выполняется ввод данных и вызовы сервера для записи введенных данных и других необходимых действий.
Аналогично командный интерфейс формируется на сервере и отображается на клиенте. Также и отчеты формируются полностью на сервере и отображаются на клиенте.
При этом механизмы платформы ориентированы на минимизацию объема данных, передаваемых на клиентский компьютер. Например, данные списков, табличных частей и отчетов передаются с сервера не сразу, а по мере просмотра их пользователем.
- Запросы к базе данных,
- Запись данных,
- Проведение документов,
- Различные расчеты,
- Выполнение обработок,
- Формирование отчетов,
- Подготовка форм к отображению.
- Получение и открытие форм,
- Отображение форм,
- «Общение» с пользователем (предупреждения, вопросы…),
- Небольшие расчеты в формах, требующие быстрой реакции (например, умножение цены на количество),
- Работа с локальными файлами,
- Работа с торговым оборудованием.
Использование встроенного языка на клиенте
Управлять функциональностью форм можно не только на сервере, но и на клиенте. На клиенте поддерживается работа встроенного языка. Он используется в тех случаях, когда необходимо провести расчеты, связанные с отображенной на экране формой, например, быстро (без обращения к серверу) подсчитать сумму строки документа на основе цены и количества; задать пользователю вопрос и обработать ответ; прочитать файл из файловой системы компьютера и отправить его на сервер.
Однако работа встроенного языка на клиенте поддерживается в строго ограниченном объеме. Клиентские процедуры в модулях в явном виде отделяются от серверных, и в них используется ограниченный состав объектной модели встроенного языка.
На клиенте не допускается непосредственная работа с базой данных. Не допускается работа непосредственно с прикладными объектами, например, недоступны такие типы встроенного языка, как СправочникОбъект. . Не допускается использование запросов. При необходимости вызова действий с данными в клиентском коде нужно вызывать серверные процедуры, которые уже будут обращаться к данным.
Источник
Варианты работы системы
Платформа поддерживает два варианта работы: файловый и клиент-серверный. И в том, и в другом варианте все прикладные решения работают полностью идентично.
Файловый вариант работы рассчитан на персональную работу одного пользователя или работу небольшого количества пользователей в локальной сети. В этом варианте все данные информационной базы располагаются в одном файле — в файловой СУБД.
Клиент-серверный вариант работы предназначен для использования в рабочих группах или в масштабе предприятия. Он реализован на основе трехуровневой архитектуры «клиент-сервер». В этом варианте информационная база хранится в одной из поддерживаемых систем управления базами данных, а взаимодействие между клиентским приложением и СУБД осуществляет кластер серверов «1С:Предприятия 8».
Работа под управлением различных операционных систем
Все основные компоненты платформы способны функционировать как под управлением операционной системы Windows, так и под управлением операционной системы Linux. Благодаря тому, что взаимодействие процессов между собой осуществляется по протоколу TCP/IP, в составе системы могут присутствовать компоненты с различными операционными системами. Подробнее…
Подключение через Интернет
Тонкий клиент и веб-клиент обеспечивают подключение удаленных пользователей к информационной базе через Интернет. При этом используется специальным образом настроенный веб-сервер, обеспечивающий взаимодействие таких пользователей с файловой базой данных или с кластером. Подробнее…
Системные требования
Различные варианты работы допускают использование различного программного обеспечения на компьютерах, на которых функционируют те или иные приложения системы «1С:Предприятие 8». В обобщенном виде эта информация собрана в системных требованиях «1С:Предприятия 8».
Источник
Максимально эффективная по скорости работы — серверная схема, для клиент-серверной 1С 8.х
Постоянно сталкивался с высказываниями ИТ специалистов «сеть нагружена на 20%… процессоры на 50%… очередей к дискам мало… Значит сеть и сервера справляются… смотрите код в 1С проблемы исключительно там».
На самом деле происходило следующее ( сервер 1С и SQL разнесены на разные компьютеры): сеть практически использовалась по максимуму(эти «20% загрузки сетевого интерфейса» = «20% полезные данные» + «80% потеря на служебной обработке»). И соответственно из-за малой ширины канала обмена «полезными» данными — SQL сервер с «Сервером 1С» постоянно ожидали друг друга, что вело к малой утилизации ресурсов CPU и дисковой системы.
Ведение: Сначала хочу заострить внимание на том что же такое 1С платформа?.
Итак начнем с главного 1С — построенная на ORM (объектно-реляционном отображении)-система и программист в ней работает не напрямую с реляционным представлением, а с объектами.
ru.wikipedia.org/wiki/ORM
Программист в среде 1С — пишет объектную логику, а за сборку/разборку и запись объектов в «плоский вид» по таблицам базы данных отвечает сама платформа.
Основные «+» и «-» с точки зрения ORM:
«+» Программист в среде ORM получает преимущество в скорости разработки приложения из-за уменьшения количества кода и его простоты по сравнению с исключительно реляционным программным кодом (пример SQL запросы). А также освобождается от написания кода работающего непосредтсвенно с записями в таблицах Реляционной СУБД.* 1
«-« Сложности для создателей «платформ» ORM и проблемы производительности:
Использование реляционной базы данных для хранения объектно-ориентированных данных приводит к «семантическому разрыву», заставляя программистов писать программное обеспечение, которое должно уметь как обрабатывать данные в объектно-ориентированном виде, так и уметь сохранить эти данные в реляционной форме. Эта постоянная необходимость в преобразовании между двумя разными формами данных не только сильно снижает производительность, но и создает трудности для программистов, так как обе формы данных накладывают ограничения друг на друга.
*1«Уточнение». Несмотря на то, что 1С 8.х позволяет работать с реляционно-подобным кодом (только чтение) в объекте 1С «Запрос» — это все-таки не напрямую один-в-один транслируемый в реляционную СУБД запрос к таблицам хранения данных, а прежде всего «Объектный запрос» — также не минующий стадию сборки разборки объектов. Поэтому зачастую вместо много-тысяче строчных «Объектных запросов» — наиболее оптимально по быстродействию кода и скорости разработки — написать объектный не ряляционно-подобный код.
Глава 1: Расмотрим модель клиент-серверной 1С 8.х
Отмечу основные «узкие» места влияющие на производительность:
1) Первое узкое место — это коммуникационная среда передачи данных.
На рисунке стрелками показаны потоки обмена данными, где «красные» — это Реляционная СУБД Объектная СУБ, «оранжевые» — синхронизация между Объектными СУБД.
Т.к. при использовании отдельных серверов для СУБД и кластеров 1С – коммуникационная среда это сетевые соединения – то существуют существенные задержки в передаче данных многочисленными мелкими порциями – как из-за латентности самой физической реализации интерфейсов, так и из-за латентности узлов в этой сети.
Рассмотрим на примере сетевого стандарта Ethernet Gigabit (график зависимости скорости передачи данных… ниже)
на примере работы Сервера 1С с MS SQL (по умолчанию размер коммуникационных пакетов 4 кб):
На графике видно, что при использовании пакетов ДАННЫХ =4 кб пропускная способность рассмотренной сети всего 250 Мегабит/с. (как правильно заметили в комментария к публикаци: это не пакеты протоколов например уровня TCP, а пакеты ДАННЫХ которые генерируют приложения участвующие в обмене)
…
Из практики: такое разнесение на Два отдельных сервера
MS SQL (сервер №1) «Сервер 1С»(сервер №1)
проигрывало по скорости работы платформы
на 50% варианту MS SQL (сервер №1) «Сервер 1С»(сервер №1)… и это уже «на одном высоконагруженном пользовательском сеансе»
2) Узкое место — это количество отдельных компьютеров «кластеров 1С», чем их больше тем больше затраты на синхронизацию и как следствие уменьшение производительности системы.
3) Узкое место — количество отдельных процессов сервера 1с, чем их больше тем больше затрат на их синхронизацию… Но тут скорей всего необходимо найти «золотую середину» — для обеспечения стабильности. 2*
2* «Уточнение» — для MS Windows существует такое правило:
Процессы дороже чем потоки, что означает применительно к данному случаю на практике следующее: скорость обмена между двумя потоками внутри одного процесса значительно превышает, скорость обмена между потоками находящихся в разных процессах.
Поэтому например «Файловая 1С 8.х» всегда превышает по скорости однопользовательской работы платформы в клиент-серверном варианте. Все просто т.к. в случае «Файловой 1С 8.х» поток «Реляционной СУБД» общается с потоком «Объектной СУБД» внутри одного единого процесса.
4)Узкое место – одно-поточность пользовательского сеанса, т.к. каждый отдельно взятый — пользовательский сеанс не распараллеливается платформой на несколько, то его работа ограничивается использованием ресурсов одного ядра CPU => следовательно желательна максимальная скорость каждого ядра, в этом случае быстродействие платформы 1C например на 10-ядерном CPU по 1 ггц — будет значительно уступать быстродействию платформы на 4-ех ядерном CPU по 3 Ггц – естественно до определенного количества потоков.
Глава 2(Итог): Рассмотрим не масштабируемый и масштабируемый варианты — наиболее эффективных схем для платформы 1с 8.х. для OS Windows (пологаю для Linux ситуация аналогична)
1-Вариант(не масштабируемый). В расчете на 100 «высоконагруженных пользовательских сеанса»
1) эффективен обычный 2-ух сокетный сервер с 4-ех ядерными CPU по 3 Ггц.
2) быстрая дисковая система на SSD
3) MS SQL «Сервер 1С»
2-Вариант(масштабируемый). начиная со 100 «высоконагруженных пользовательских сеанса» и далее….
Тут логичней всего пойти по пути немецкой 1с-ки «Sap HANA»))
Собирать модульный «Супер-компьютер» от фирмы SGI – состоящий из «лезвий» на 2-х сокетных материнских платах, каждое лезвие соединяется друг с другом сложной топологией сверх-быстрого интерконнекта на основе NUMA-чипов, и все находится под управлением единой OS. Т.е. программы внутри такого сервера по определению имеют доступ к ресурсам любого «лезвия».
1) добавляем «лезвия» по необходимой нагрузке… из расчета примерно одно «лезвие» на 100 пользователей.
Источник