Система 1С:Предприятие для SQL представляет собой расширение сетевой версии системы 1C: Предприятие и, в отличие от последней, обладает возможностью работать как с «обычными» информационными базами системы 1C:Предприятие, так и с информационными базами, в которых таблицы базы данных размещены на специализированном сервере баз данных. В качестве сервера баз данных 1C:Предприятие для SQL использует MS SQL Server 6.5. Для доступа к базе данных на сервере используются средства ODBC 3.5. То есть, можно сказать, что 1С:Предприятие для SQL представляет собой систему, способную работать в режиме клиент-сервер, но при этом сохраняющую возможность работы с обычными для системы 1С:Предприятие информационными базами (в которых таблицы базы данных представляются в виде файлов формата DBF-CDX).
В остальном системы 1С:Предприятие и 1С:Предприятие для SQL практически неразличимы. То есть сохраняется полная функциональная идентичность между указанными системами. Конфигурации, разработанные для одной из систем, могут без изменения переноситься для использования в среде другой. Имеющиеся отличия не затрагивают принципиальным образом основы построения и функционирования системы.
Использование технологии клиент-сервер дает ряд преимуществ, причем эти преимущества становятся очевиднее по мере роста объема информационной базы и числа одновременно работающих с ней пользователей.
Особенности хранения данных в системе 1 1C:Предприятие для SQL лучше всего пояснить в сравнении с тем, как хранятся данные в «обычной» системе 1C:Предприятие. При этом, хотя в дальнейшем и будет говориться о способах хранения данных в «обычной» системе 1C:Предприятие и в системе 1С:Предприятие для SQL, не следует забывать, что система 1С:Предприятие для SQL имеет возможность полноценной работы с информационной базой «обычной» системы 1C:Предприятие.
Для системы 1С:Предприятие важным понятием является каталог информационной базы. В этом каталоге и его подкаталогах, как правило, хранятся все файлы данных, с которыми работает система 1C:Предприятие, то есть то, что принято называть информационной базой системы. Все множество данных, составляющее информационную базу системы 1C:Предприятие можно разделить на две группы:
· файлы конфигурации системы;
· таблицы базы данных;
Файлы конфигурации системы, как правило, содержат значительные по размерам объекты данных, такие как конфигурация прикладной системы, ее словарь данных, различные тексты, таблицы и т. п. Чтение и запись таких объектов производится, как правило, за один прием, и одновременный доступ к одному и тому же файлу со стороны нескольких экземпляров системы 1С:Предприятие (особенно на запись), как правило, не допускается.
В базе данных информация представлена в виде таблиц и индексов и, с точки зрения целостности данных, вся база данных (все множество таблиц ее составляющих) представляет собой единую информационную сущность. В отличие от файлов конфигурации, доступ к базе данных может осуществляться одновременно со стороны нескольких экземпляров системы 1С:Предприятие. При этом отдельные части таблиц могут независимо считываться или модифицироваться различными экземплярами системы. В таблицах базы данных сосредоточена основная масса данных, с которыми работает система 1С:Предприятие, и частота обращения на чтение или запись таблиц базы данных в режиме нормальной работы системы многократно превышает частоту обращения к файлам конфигурации.
Варианты организации информационных баз систем 1С:Предприятие и 1С:Предприятие для SQL отличаются способом хранения и организации доступа к таблицам базы данных. Схематически организацию информационной базы «обычной» системы 1С:Предприятие можно представить следующим образом:
Как видно из рисунка для хранения таблиц и индексов базы данных «обычная» система 1C:Предприятие использует файлы в формате DBF и CDX, которые размещаются в каталоге информационной базы системы.
1C:Предприятие для SQL для хранения таблиц базы данных использует не файловую систему, а средства специализированного сервера баз данных Microsoft SQL Server. Схема организации информационной базы
Как видно из схемы, каталог информационной базы системы 1С: Предприятие для SQL отличается двумя важными деталями. Вместо файла словаря данных «обычной» системы 1C:Предприятие - 1CV7.DD, присутствует другой файл - 1CV7.DDS. Это тоже словарь данных, но для информационной базы системы 1C:Предприятие для SQL. Второе важное отличие - это то, что каталог информационной базы больше не содержит файлов таблиц базы данных (*.DBF, *.CDX). Вместо них в указанном каталоге содержится файл 1CV7.DBA, содержащий параметры, с помощью которых система 1C:Предприятие для SQL устанавливает соединение с базой данных, хранимой на сервере баз данных.
Таким образом, данный способ организации информационной базы системы 1С:Предприятие предполагает перемещение в среду сервера баз данных той части данных, которая организована в виде таблиц и подвергается в процессе работы наиболее частым изменениям.
Какие же преимущества дает такая модель организации данных? Как отмечалось выше, частота, с которой система 1С:Предприятие обращается к базе данных, во много раз превосходит частоту обращения к файлам конфигурации. В случае использования для доступа к таблицам базы данных обычной модели работы с файлами, любые, даже простейшие операции взаимодействия с базой данных представляются в виде ряда отдельных файловых операций чтения и записи страниц индексных файлов и отдельных записей файлов данных. При этом, даже очень простые операции с базой данных, например, поиск записи по значению ключевого поля, не могут быть сведены к одиночной файловой операции. Сервер баз данных предоставляет возможность работы с данными, представленными в виде таблиц, индексов и т. п. Соответственно, и операции взаимодействия с базой данных, хранящейся в среде такого специализированного сервера, ориентированы на логику работы с данными, организованными в виде таблиц. Так выборка одиночной записи может быть представлена в виде единичной операции. При этом сервер, получив запрос на выполнение операции, сам произведет все необходимые промежуточные действия, и вернет запрашивающей стороне только требуемый результат, в данном случае - искомую запись. Кроме того, сервер баз данных способен производить гораздо более сложные операции по выборке и обработке данных.
Очевидно, что с точки зрения построения прикладных систем это означает, что сервер баз данных берет на себя часть (временами значительную часть) нагрузки по обработке данных, разгружая компьютеры пользователей и, что может быть еще более важно, снижая нагрузку на сеть.
Еще одно важное для практического использования преимущество хранения данных на сервере баз данных - это повышенная устойчивость данных к неполадкам и сбоям аппаратуры и программных средств. Как правило, типичная операция модификации базы данных (транзакция), такая, как запись или проведение документа системой 1C:Предприятие, состоит из согласованного обновления записей в нескольких таблицах. При этом совершенно недопустима такая ситуация, при которой изменения будут внесены не во все таблицы, в которые они должны быть внесены. В таком случае можно говорить о нарушении целостности базы данных. Естественно, что сервер базы данных содержит специальные механизмы, обеспечивающие целостность хранимых данных. Например, операция фиксации изменений в данных, произведенных в процессе выполнения транзакции - это отдельная операция сервера базы данных, которая может быть либо выполнена, либо нет, в то время как при работе с файлами может произойти такая ситуация, когда не все требуемые изменения будут внесены в файлы данных, например, но причине разрыва сетевого соединения или отключения электропитания на компьютере пользователя во время выполнения операции записи в файл.
Конечно, аварийные ситуации могут произойти и на машине, работающей в качестве сервера, но, как правило, в роли серверов работают специально предназначенные для этого компьютеры, отличающиеся лучшими характеристиками производительности и надежности. Кроме того, для обеспечения устойчивости их работы принимаются дополнительные меры: применяются источники бесперебойного питания, используются программные продукты, специально предназначенные для работы на серверах и отличающиеся повышенной устойчивостью и т. п.
Кроме того, сервер баз данных обладает дополнительными возможностями по сохранению и восстановлению данных, что позволяет поддерживать в более актуальном состоянии резервные копии данных и более оперативно восстанавливать данные в случае, если их разрушение все-таки произойдет. Это позволяет достичь лучших показателей готовности системы, то есть свести к минимуму потери времени в вынужденных простоях, вызванных сбоями аппаратуры и программных средств.
На приведенной схеме особое место занимает клиентская часть MS SQL Server. Зачем она здесь нужна? Как известно, 32-разрядные драйверы ODBC для MS SQL Server способны «напрямую» работать с сервером, не используя «родной» для MS SQL Server клиентский интерфейс DB-Library. При этом для взаимодействия с сервером и ODBC и DB-Library пользуются одним и тем же промежуточным слоем - Net-Library, задачей которого является передача данных по сети. Net-Library - это набор взаимозаменяемых динамических библиотек, каждая из которых обеспечивает возможность взаимодействия сервера и клиентской части с помощью того или иного сетевого протокола.
При установке драйвера ODBC для MS SQL Server, на машину пользователя копируется библиотека, позволяющая работать с сервером по протоколу Named Pipes, и сам драйвер, в отсутствие иных указаний, будет стремиться воспользоваться именно этой библиотекой. Named Pipes - это достаточно удобный протокол, он не требует специальных настроек и стабильно работает в различных конфигурациях сетей. Но в некоторых ситуациях использование этого протокола для связи с MS SQL Server сопровождается весьма существенной потерей производительности. Поэтому, в большинстве случаев, для взаимодействия с MS SQL Server целесообразно воспользоваться каким-либо другим протоколом из числа возможных (TCP/IP, NWLink IPX и т. п.). Динамические библиотеки для работы с указанными протоколами устанавливаются на компьютер пользователя в процессе установки клиентской части MS SQL Server. Но одной только установки соответствующих библиотек недостаточно. Для того чтобы обеспечить взаимодействие с MS SQL Server по сетевому протоколу, отличному от Named Pipes необходима утилита SQL Client Configuration Utility. С помощью данной утилиты можно настроить клиентскую часть MS SQL Server на работу с выбранной библиотекой Net-Library. Эта же библиотека будет использоваться и драйвером ODBC для MS SQL Server.
Требования к аппаратуре и программному обеспечению, предъявляемые системой 1С:Предприятие для SQL, можно разделить на три части:
· требования к компьютерам пользователей, на которых будет работать система 1C:Предприятие для SQL;
· требования к программному обеспечению сервера базы данных со стороны системы 1С: Предприятие для SQL;
· требования к программному и аппаратному обеспечению компьютера, работающего в качестве сервера базы данных.
Все требования к компьютерам пользователей, предъявляемые системой 1 1C:Предприятие версия 7.5 для SQL полностью совпадают с требованиями системы 1C:Предприятие версия 7.5.
В качестве сервера баз данных система 1С: Предприятие версия 7.5 для SQL должен использоваться сервер баз данных на основе MS SQL Server 6.5 + Service Pack 3.
Формальные требования к программному и аппаратному обеспечению компьютера, работающего в качестве сервера баз данных, предъявляемые со стороны MS SQL Server 6.5 изложены в различных документах компании Microsoft. Но, в конечном счете, надо говорить не о работе сервера баз данных самого по себе, а о работе прикладной системы, построенной на его основе. Наиболее заметным параметром функционирования системы 1C:Предприятие для SQL, на который может оказать влияние выбор той или иной аппаратной платформы для сервера базы данных, является производительность. Причем, в большинстве случаев, затруднительно дать точные спецификации на аппаратную часть сервера, так как в различных случаях применения системы интенсивность использования сервера базы данных может различаться существенным образом, в зависимости от числа одновременно работающих пользователей, объема базы данных и других факторов.
В качестве общей рекомендации, организациям, где с системой 1C:Предприятие для SQL работают не менее 15-20 человек, и объем базы данных составляет более 100 МБ в качестве сервера базы данных целесообразно рассматривать компьютер со следующими характеристиками:
· 2 процессора PentiumPro 200 или Pentium II 266;
· не менее 128 МБ оперативной памяти (желательно 256 МБ);
· быстрая дисковая подсистема (SCSI-2, аппаратная поддержка RAID);
· 32-разрядная сетевая плата, снабженная процессором и встроенной кэш-памятью и подключаемая через слот PCI или EISA.
При этом следует учитывать, что работа в качестве сервера базы данных системы 1С:Преднриятие для SQL практически полностью загружает ресурсы аппаратной части компьютера. Поэтому, крайне нежелательно, чтобы компьютер, использующийся в качестве сервера базы данных, был задействован в каком-либо другом качестве (сервер Internet, файл-сервер и т. п.), так как это приведет к значительному ухудшению производительности сервера баз данных.