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

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

Готовимся к применению "1С:Предприятия 8.1"

Андрей Колесов

© Андрей Колесов, 2006
Авторский вариант. Статья была опубликована в журнале PC Magazine/RE № 10/06 (с.135-138).


Самым "горячим" событием осени 2006 года...

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

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

Как говорят, сами разработчики "1С" в 1С:8.1 речь идет о весьма серьезной внутренней архитектурной и технологической реконструкции системы с целью повышения масштабирования прикладных решений в условиях создания современных корпоративных систем управления предприятиями, а также формирования технологической основы для будущего развития. В новой версии платформы появилась поддержка серверных кластеров, “родной” режим работы сервера в среде Linux, возможность использования СУБД PostgreSQL, расширенное применение технологий XML и Open Source и многое другое.

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

Изменения на серверном уровне

О различных вариантах работы системы "1С:Предприятия" (файловый, клиент- серверный), в том числе с учетом новшеств 8.1, мы рассказывали в предыдущем номере журнала ("Варианты работы системы "1С:Предприятие 8", PC Magazine/RE № 09/2006). Поэтому сейчас отметим только основные моменты в развитии этого направления.

Существующий сейчас клиент-серверный вариант 8.0 позволяет использовать только один сервер “1С:Предприятия”, способный работать с несколькими информационными базами (ИБ). В 1С:8.1 будет реализована возможность создания кластера серверов (рис. 1), управление которым производится через центральное серверное приложение (менеджер кластера). При этом с одной ИБ смогут работать сразу несколько серверов “1С:8.1”. Простейший кластер серверов может располагаться на одном компьютере и содержать один рабочий процесс (рис. 2). Для администрирования кластером реализована утилита в виде встраиваемого модуля для Microsoft Management Console и обработка (форма) в среде "1С:8.1".

Рис. 1. Структура кластера серверов на базе “1С:Предприятия 8.1”

Рис. 2. Простейший кластер серверов может располагаться на одном компьютере

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

По оценкам "1С" суммарная пропускная способность в кластере при одновременной работе нескольких пользователей возрастает на 25-60 процентов, если использовать даже на том же сервере несколько рабочих процессов, а на некоторых интенсивных тестах параллельности общая пропускная способность системы возрастает в разы. Хотя нужно иметь в виду, что это – средние оценки, нельзя ожидать, что программы станут работать быстрее во всех случаях.

Возможность создания кластера – это следствие существенной переработки архитектуры ядра сервера “1С:Предприятия”, в том числе за счет перехода от использования COM+ к протоколу TCP/IP для организации взаимодействия между серверной и клиентской частями системы.

Таблица 1. Сравнительные характеристики сервера 1С:8.0 и кластера серверов 1С:8.1

------------------------------------------------------------------------------------------------------------------
Характеристика                    Сервер "1С:Предприятия 8.0"          Кластер серверов "1С:Предприятия 8.1."
------------------------------------------------------------------------------------------------------------------
Количество компьютеров            Один                                 Один или несколько, объединенных в кластер

Количество серверных процессов    Один                                 Одни или несколько   
на одном компьютере

Распределение нагрузки            Отсутствует                          Распределение нагрузки между различными
                                                                       процессами на основе анализа долгосрочной
                                                                       статистики загруженности процессов

Операционные системы              Windows                              Windows и Linux

Механизм взаимодействия           Для взаимодействия с клиентским      Взаимодействие с клиентским приложением, 
                                  приложением и сервером баз           сервером баз данных и процессов кластера
                                  данных используется механизм COM+    между собой осуществляется на основе TCP/IP

Тип запускаемого приложения       Запускается как приложение COM+      Запускается как приложение или сервис под 
                                                                       Windows, daemon под Linux
------------------------------------------------------------------------------------------------------------------

Эти архитектурные инновации обеспечили также возможность того, что сервер 1С:8.1 теперь будет также функционировать в среде Linux, причем на “родном” уровне, без режима эмуляции Win API. Для этого программный код полностью перекомпилирован под Linux, но основная его часть является единой для Windows и Linux (переписан только уровень взаимодействия с OC). В рамках одного кластера смогут одновременно функционировать Windows- и Linux-серверы (рис. 3). Linux-сервер будет работать без ключа аппаратной защиты (HASP). В то же время нужно иметь в виду, что Linux-сервер не сможет работать с MS SQL Server и COM-объектами.

Рис. 3. Компьютеры, входящие в состав кластера “1С:Предприятия 8.1”, могут работать под управлением Windows или Linux.

Расширение многоплатформенности – это одно из важнейших направлений развития "1С:Предприятия". Кроме возможности работы под Linux, в 1С:8.1в дополнение к MS SQL Server реализована поддержка бесплатной Open Source СУБД PostgreSQL, которая может работать под управлением Windows или Linux.

Эта СУБД создается и поддерживается сообществом разработчиков PostgreSQL Global Development Group (www.postgreSQL.org). В ней применяется весьма либеральная лицензией, предусматривающей ее бесплатное применение и возможность внесения модификаций. По оценкам специалистов “1С”, эта СУБД демонстрирует хороший уровень качества и не требует особых навыков для установки и администрирования. Дистрибутив модифицированной (адаптированной под 1С:8.1) версии PostgreSQL входит в состав поставки новой версии платформы

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

Повышение эффективности внутренних механизмов

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

Управление блокировками в транзакции поддерживает теперь три режима:

Фактически, разработчики "1С" решили отказаться от полной зависимости от механизма блокировок СУБД и предоставить возможность разработчику самому управлять блокировками в терминах предметной области. Это позволить создавать более эффективные программные решения, но нужно иметь в виду, что реализация этих возможностей зависит от уровня квалификации программистов. Если раньше им можно было не очень задумываться над тем, что блокировать, то теперь придется в этом разбираться. С другой стороны в новой модели явное управление будет более наглядным.

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

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

В 8.1 расширены границы использования регистров для работы с большим количеством измерений, прежде всего, это касается регистра бухгалтерии с количеством субконто больше четырех. Оптимизирован также целый ряд режимов работы системы. В результате, как говорят разработчики “1С”, уже сейчас достигнуто существенное ускорение запуска системы и снижение расхода памяти, что особенно важно для создания и внедрения больших прикладных решений.

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

Система компоновки данных

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

Рис. 4. Схема взаимодействия основных элементов системы компоновки данных

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

Движение к сервис-ориентированной архитектуре

В 1С:8.1 сделаны серьезные шаги по расширению интеграционных средств и возможностей взаимодействия с разнородными внешними компонентами на принципах SOA.

В первую очередь это касается поддержки Web-сервисов: информационная база 1С:8.1 сможет теперь стать поставщиком Web-сервисов, а у прикладных решений появится возможность обращаться к любым внешним Web-сервисам. Публикацию Web-сервисов можно выполнять через файловую систему и по протоколу FTP на Web-серверах. Это взаимодействие с Web-сервисами будет поддерживаться на уровне спецификаций WS-I Basic Pofile.

Получила также развитие поддержка XML, что определило появление целого ряда других новшеств 1С:8.1. В частности, это позволило реализовать объектные модели документа XML (ДокументDOM) и схемы XML (СхемаXML), а также возможность проверки соответствия схеме XML при чтении XML. Отметим, что в новой версии платформы для поддержки XML разработчики "1С использовали открытые библиотеки Apache Xerces и Apache Xalan.

Большой потенциал заложен также в еще одной новинке 1С:8.1. Речь идет о создании в платформе дополнительного слоя взаимодействия платформы со стандартными XML-технологиями (рис. 5) на базе собственной технология XDTO (XML Data Transfer Objects). С помощью XDTO можно выполнять описание типов параметров и возвращаемых значений Web-сервисов, обмениваться информацией между конфигурациями 1С:8.1 с существенно разными структурами данных, в том числе на основе схем XML, не привязанных к той или иной конфигурации (например, обмен с информационными системами, построенными не на основе 1С:Предприятия 8.1), а также создавать собственные системы типов и значений для обработки произвольных данных. В системе 1С:8.1 реализована также сериализация данных на основе механизма XDTO, которая предназначена для сохранения данных объекта в файл XML и создания объекта на основе данных, хранящихся в файле XML:

Рис. 5. Использование слоя XDTO (справа) упрощает программирование при работе с XML Schema (слева)

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

Продолжение следует

Заканчивая краткий обзор новшеств 1С:8.1, отметим еще появление средств полнотекстового поиска и расширение возможностей администрования, в том числе новый вариант реализации журнала регистрации (различных событий в системе), который должен повысить надежность и производительность работы системы. Модернизированы также язык запросов, система объектов, встроенный язык программирования, справочная система и многие другие технологические компоненты платформы.

Некоторые новые возможности 1С:8.1 (в частности, средствах администрирования) мы планируем подробнее рассмотреть в следующих выпусках нашей рубрики. А завершить этот рассказ нужно сообщением о том, что нынешний выпуск новой версии платформы – это лишь очередной шаг в ее развитии.

Впервые о планах модернизации платформы 8.0 фирма "1С" объявила еще полгода назад на очередной партнерской конференции. Тогда же было сказано, что это развитие будет проходить в два этапа, в виде реализации ближних и дальних планов. Выпускаемая сейчас "1С:Предприятия 8.1" – это выполнение "ближних" задумок.

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

В первую очередь это будет создание новой технологической модели пользовательского интерфейса на основе к декларативному описанию визуальных объектов без использования программирования. Такой подход в целом вполне согласуется с общими тенденциями в области разработки современного ПО -- в качестве примера скажем о презентационной технологической слое Windows Presentation Foundation (Avalon) в Windows Vista/Longhorn. Впрочем, первые шаги в этом направлении "1С" уже сделала в 8.1 в виде нового механизма построения отчетов. В будущем серьезные изменения произойдут в глобальном пользовательском командном интерфейсе. Помимо решения задач по упрощению поддержки прикладных решений и внедрения больших комплексных систем это позволит создавать клиентские приложения для разных операционных платформ.

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

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