Visual2000 · Статьи А.Колесова по "1С"

Цикл "1С:Предприятие" в PC Magazine/RE

Варианты работы системы "1С:Предприятие 8"

Максим Радченко, фирма "1С"

© Максим Радченко, 2006
Авторский вариант. Статья была опубликована в журнале PC Magazine/RE № 09/06 (с.134-136).


Понимание архитектуры платформы "1С:Предприятие"...

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

В начало статьи

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

Данный вариант ориентирован на работу одного человека или небольшой группы пользователей в локальной сети. При этом все данные информационной базы (ИБ) "1С:Предприятия 8" хранятся в одном файле 1Cv8.1CD, операции с которым выполняет собственный движок базы данных "1С:Предприятия" (рис. 1). Конечный пользователь имеет дело с клиентским приложением, которое самостоятельно взаимодействует с ИБ.

Рис. 1. Схема файлового варианта работы "1С:Предприятия"

Благодаря своей простоте файловый вариант имеет целый ряд преимуществ. Прежде всего он обеспечивает легкость установки и эксплуатации "1С:Предприятия", поскольку для работы с ИБ не требуются дополнительные программные средства, достаточно иметь операционную систему и платформу "1С:Предприятие".

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

Однако есть и ограничения. Наиболее важная особенность файлового варианта -- использование табличных блокировок базы данных. Внешне это проявляется в возникновении конфликтов блокировок при одновременной интенсивной работе большого количества пользователей. Кроме того есть ограничение объема данных, хранимых в ИБ. Файл 1Cv8.1CD имеет специальный формат, в котором данные каждой таблицы хранятся в трех внутренних файлах, и по технологическим причинам размер каждого из них не может превышать 4 Гбайт.

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

В начало статьи

Клиент-серверный вариант работы

Клиент-серверный вариант работы (КСВР) платформы предназначен для использования в рабочих группах или в масштабе предприятия. Он реализован на основе трехуровневой архитектуры (рис. 2), которая подразумевает наличие клиентского приложения, сервера "1С:Предприятия 8.0" и сервера баз данных (в данном случае MS SQL Server). Сервер "1С:Предприятия" реализован как приложение COM+, и механизм COM+ используется для его взаимодействия с клиентскими приложениями.

Рис. 2. Схема клиент-серверного варианта работы

Этот вариант сложнее, но дает целый ряд преимуществ по сравнению с файловым. Прежде всего, сервер "1С:Предприятия 8.0" и MS SQL Server могут располагаться физически как на одном компьютере, так и на разных. Это позволяет администратору при необходимости распределять нагрузку между ними.

Использование сервера "1С:Предприятия 8.0" дает возможность выполнять на нем наиболее объемные операции по обработке данных. Например, при выполнении даже весьма сложных запросов программа, работающая у пользователя, будет получать только необходимую ей выборку, а вся промежуточная обработка будет выполняться на сервере. Обычно увеличить мощность сервера проще, чем обновить весь парк клиентских машин.

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

Неоспоримое преимущество КСВР -- использование возможностей MS SQL Server для эффективной выборки информации. Например, механизм запросов "1С:Предприятия" оптимизирован под эту СУБД для выполнения расчетов и составления отчетов. Например, просмотр больших динамических списков выполняется с минимальным количеством обращений к СУБД, и при этом пользователь может осуществлять эффективный поиск, а также настройку отбора и сортировки данных. Еще одна важная возможность -- использование блокировок на уровне записей и полей базы данных, что значительно увеличивает параллельность работы пользователей по сравнению с файловым вариантом работы.

Отдельно следует остановиться на том, что средства встроенного языка "1С:Предприятия" при работе в КСВР позволяют организовать выполнение различных процедур и функций прикладного решения либо на клиенте, либо на сервере "1С:Предприятия". Для этого используются специальные свойства модулей и операторы препроцессора #Если Сервер Тогда и #Если Клиент Тогда (рис. 3).

Рис. 3. Фрагмент общего модуля, который исполняется только на клиенте

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

И все же КСВР тоже имеет свои ограничения, которые определяются, в том числе, и используемой СУБД. Однако следует отметить, что MS SQL Server вполне удовлетворяет задачам, на решение которых ориентирована система "1С:Предприятие".

Кратко остановимся на некоторых деталях реализации клиент- серверного варианта работы. Как уже говорилось, сервер "1С:Предприятия 8.0" представляет собой рабочий процесс, который выполняется на некотором компьютере. Этот процесс может обслуживать сразу несколько соединений с клиентскими приложениями и несколько соединений с серверами баз данных. Таким образом, сервер "1С:Предприятия" позволяет различным пользователям одновременно работать с разными ИБ. При этом в локальной сети могут существовать несколько компьютеров, на которых функционирует сервер 1С:Предприятия. И в этом случае каждый из них будет обслуживать собственный набор ИБ. Это позволяет распределять нагрузку между различными компьютерами при работе с разными информационными базами.

Однако платформа 8.0 не предоставляет возможности использовать несколько серверов "1С:Предприятия" для одновременной работы с одной и той же информационной базой. Таким образом, количество эффективно обслуживаемых клиентских соединений с одной ИБ напрямую зависит как от технологических особенностей сервера "1С:Предприятия", так и от производительности компьютера, на котором он функционирует. Например, серверу "1С:Предприятия" доступно не более 2 (или 3) Гбайт виртуального адресного пространства, причем это адресное пространство делится между всеми пользователями, которых он обслуживает. Понятно, что при достаточно большом количестве пользователей может снижаться эффективность работы сервера из-за нехватки памяти.

Система "1С:Предприятие" допускает различные варианты взаимного расположения клиентского приложения, сервера "1С:Предприятия" и сервера баз данных на компьютерах. Наиболее желательно расположение всех трех приложений на разных компьютерах. В данном случае все компоненты системы смогут полностью задействовать аппаратные ресурсы и работать с максимальной производительностью. Этот вариант использования также предоставляет лучшие возможности для масштабирования системы, поскольку модифицировать аппаратные средства можно независимо, исходя из реальной загрузки того или иного сервера.

При умеренной нагрузке и небольших объемах вычислений, выполняемых на сервере "1С:Предприятия", его возможно размещать на одном компьютере с MS SQL Server. Такой вариант является более дешевым, но менее производительным. Работа обоих серверов на одном компьютере предъявляет, в частности, повышенные требования к объему оперативной памяти, которая активно используется как одним, так и другим приложением.

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

В начало статьи

Использование различных вариантов работы

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

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

Система "1С:Предприятие" позволяет достаточно просто переводить ИБ из клиент-серверного варианта работы в файловый и наоборот. Для этого используется возможность преобразования ИБ в файл и обратно в режиме конфигурирования системы. Это выполняется в три этапа:

В начало статьи

Развитие архитектуры системы «1С:Предприятия 8»

В июле 2006 г. фирма «1С» выпустила бета-версию технологической платформы "1С:Предприятия 8.1". При ее создании был проанализирован опыт внедрений и эксплуатации прикладных решений "1С:Предприятия 8.0", а также реализованы планы развития всего комплекса ПО "1С:Предприятия" в соответствии с современным представлением о построении корпоративных систем. Подробная информация о новой версии технологической платформы представлена на сайте фирмы "1С" (http://v8.1c.ru/beta81/).

Сейчас мы рассмотрим изменения, которые коснулись архитектуры "1С:Предприятия", в том числе возможности работы прикладных решений в клиент-серверном варианте.

Наиболее важным изменением можно, без сомнения, назвать кластер серверов "1С:Предприятия 8.1", который заменил сервер "1С:Предприятия 8.0". Это решение обеспечивает более высокую надежность, масштабируемость и эффективность использования аппаратных ресурсов по сравнению с версией 8.0.

Кластер серверов "1С:Предприятия 8.1" является логическим понятием и представляет собой множество рабочих процессов, обслуживающих один и тот же набор ИБ (рис. 4). Не вдаваясь в подробности реализации кластера серверов, перечислим его основные возможности:

Рис. 4. Схема клиент-серверного варианта работы "1С:Предприятия 8.1"

Новая схема работы серверной части "1С:Предприятия" предоставляет возможность функционирования кластера серверов не на одном, а на нескольких компьютерах, что позволяет повысить производительность. На каждом из компьютеров можно теперь запускать несколько рабочих процессов. Это, с одной стороны, снижает нагрузку на каждый конкретный рабочий процесс, а с другой — более эффективно использует аппаратные ресурсы компьютера.

Еще одна ключевая особенностью кластера серверов состоит в том, что взаимодействие процессов кластера серверов между собой, а также с клиентскими приложениями и серверами баз данных осуществляется не с использованием механики COM+, а на основе протокола TCP/IP. Благодаря этому, в частности, кластер серверов может объединять в себе компьютеры, работающие под управлением разных операционных систем, как Windows, так и Linux.

В клиент-серверном варианте версия 8.1 обеспечивает поддержку еще одной СУБД — PostgreSQL. Это открытая бесплатная СУБД, которая входит в комплект поставки (ее дистрибутивы для Windows и Linux). Самый общий вид клиент-серверного варианта работы приведен на рис. 5.

Рис. 5. Общая схема клиент-серверного варианта работы

В начало статьи