До недавнего времени фирма «1С» старалась не акцентировать внимание заказчиков на технологических аспектах своих разработок, считая их исключительно внутренней «кухней». Однако в последние годы развитие экономического ПО компании идет по двум параллельным направлениям: платформа и прикладные решения на ее основе. Причём технологическая составляющая — платформа — развивается совсем не эволюционными темпами, что привело к весьма существенным архитектурным изменениям, а в 2007 году — и к появлению новой предварительной её версии с рабочим названием «управляемое приложение».
В глазах многих пользователей деловой софт компании «1С» всегда ассоциировался с функциональной стороной поставляемых готовых прикладных решений для автоматизации предприятий. Потребителей в первую очередь интересовали предлагаемый функционал и нагрузочные характеристики, при этом технологически-архитектурные вопросы — каким образом все устроено — в общем-то оставались в тени. Нужно сказать, что в значительной степени такое восприятие «1С» рынком объяснялось и маркетинговой политикой самой фирмы: она долгое время намеренно старалась не акцентировать внимание заказчиков на технологических аспектах, считая их своим внутренним делом, разбираться в котором должны только профессиональные внедренцы.
Но в 2002—2004 годах одновременно с выходом на рынок восьмой версии «1С:Предприятия» маркетинговая политика компании претерпела существенные изменения: именно технологический аспект стал одним из ключевых в деле продвижения всего экономического софта «1С». Возможно, вопросы развития самой платформы стали освещаться для широкой аудитории даже в большей степени, чем совершенствование прикладных продуктов.
Причины таких изменений определяются качественно новым позиционированием «1С:Предприятия» на рынке средств автоматизации и новыми задачами по расширению сферы применения этой системы в сторону средних и крупных заказчиков. Для выхода на корпоративный рынок компании нужно было решить целый ряд серьезных технических проблем, связанных с существенным повышением производительности и масштабируемости прикладных решений (то есть двух ключевых технологических аспектов создания систем корпоративного уровня, без обеспечения которых нельзя расширять и функциональность продуктов). Именно эти вопросы были изначально поставлены во главу угла выпущенного в 2003 году нового комплекса «1С:Предприятие» 8.0, причём с самого начала в нём был четко выделен базовый компонент всей системы — технологическая платформа. И с тех пор развитие экономического ПО «1С» идет по двум параллельным направлениям, связанным с платформой и прикладными решениями.
Более того, на мой взгляд все это время мы можем наблюдать опережающее движение именно технологической составляющей. Это можно объяснить следующим образом. Дело в том, что хотя в «1С:Предприятии» 8.0 реализованы весьма радикальные архитектурно-технологические изменения по сравнению с предыдущей версией 7.7, все же в момент выпуска новой системы было понятно, что разработчикам еще предстоит пройти значительный путь, чтобы выйти на уровень требований корпоративных клиентов. Да и сама «1С» при этом попала в новую для себя рыночную ситуацию. Если раньше, работая с малыми предприятиями, фирма выступала в роли технологического локомотива, который тянет за собой своих клиентов, то теперь она четко ощутила, что для соответствия требованиям корпоративного рынка и для борьбы с серьезными конкурентами, выступающими на нем, ей необходимы серьезные дополнительные усилия по расширению технологических возможностей своих приложений.
И нужно признать, что разработчики из «1С» вполне успешно справляются с такой задачей. Так или иначе, но все эти годы мы можем наблюдать ускоренное развитие (по сравнению с более эволюционным развитием 7.x) платформы 8.х на архитектурном и технологическом уровнях.
Одной из особенностей «1С:Предприятия» 8.0 по сравнению с 7.x является то, что реализация многих базовых прикладных функций (отчетности, аналитики и др.) была перенесена на уровень платформы. И первые годы новая платформа развивалась именно в плане расширения функционала. Однако уже в начале 2006-го компания объявила о перспективах архитектурного развития «1С: Предприятия» 8.0, выделив ближние и дальние планы. Ближние планы были выполнены к концу года в виде выпуска платформы 8.1, в которой решены важные вопросы поддержки многоплатформенности, повышения производительности и масштабируемости. А спустя два месяца, на мартовском партнерском семинаре «1С» 2007 года, был представлен прообраз уже следующего варианта платформы в виде проекта, получившего название «управляемое приложение».
В ноябре компания объявила о выпуске предварительной версии этой платформы. Надо сказать, что «1С» никогда не любила говорить о графиках выхода своих продуктов, но по опыту предыдущих лет можно предположить, что рабочий вариант системы появится предстоящим летом (скорее всего в августе).
Что такое «управляемое приложение»?
В первую очередь нужно отметить, что само это название для данного проекта является не очень удачным: ведь речь идет не о прикладном решении, а о технологической платформе. Хотя цель новой системы — это как раз поддержка управляемых приложений. Интересно, что «1С» до сих пор не определилась с официальным номером версии своей платформы, что весьма симптоматично в плане понимания характера ее новшеств. Ведь нумерация версий всегда отражает значимость имеющихся в продукте инноваций. (Пока представленная предварительная версия обозначена как 8.2.7, но в сообщении «1С» по поводу ее выпуска подчеркивается, что «…решение об официальном номере будет приниматься при выпуске финального варианта».) Дело в том, что новшества носят довольно радикальный характер, и вполне возможно, что платформа получит более высокий номер, например 8.5.
Краткая характеристика нововведений платформы «управляемое приложение» такова: повышение управляемости прикладных решений в результате радикальной переработки архитектуры и переноса основной вычислительной нагрузки системы с клиентской части на серверную. Как известно, общая структура любого бизнес-приложения состоит из трех основных слоев-частей: пользовательский интерфейс, бизнес-логика, управление данными. Экономический софт «1С» развивался от настольных учетных систем, и это до сих пор находит отражение в архитектуре «1С:Предприятия»: даже несмотря на реализацию клиент-серверного варианта основная вычислительная нагрузка платформы приходится на «толстый» клиент. В версии 8.0 разработчики смогли вычленить из состава платформы средства управления данными и перенести их на сервер.
В «1С: Предприятии» 8.0 впервые была реализована трехзвенная клиент-серверная архитектура. Но подчеркнем: сервер платформы пока не является полноценным сервером приложений, а фактически реализует лишь функции управления базой данных в многопользовательском режиме. Хотя в его состав включен механизм исполнения бизнес-логики и возможность переноса исполнения функций с клиента на сервер реализована на уровне платформы, задействовать эти средства при создании прикладных решений очень и очень непросто. Упрощенно говоря, проблема тут заключается в том, что в силу исторического архитектурного развития функции пользовательского интерфейса и бизнес-логики в «1С:Предприятии» оказались сильно переплетены между собой. По сути на преодоление этого наследия и ориентирована новая версия платформы, которая должна обеспечить разделение интерфейса и бизнес-логики на независимые слои, обеспечив таким образом возможность переноса вычислительной нагрузки с клиента на сервер (см. рисунок).
Вторым важным моментом является то, что реализация идеи такого разделения базируется на технологическом подходе с использованием декларативного описания программного кода и пользовательского интерфейса. Это позволяет существенно повысить управляемость бизнес-приложения (отсюда и название платформы) как на этапе разработки прикладных программ, так и при его настройке на требования конкретных пользователей. В результате появляется возможность перейти к применению тонкого Windows- и Web-клиента. Отметим, что в Web-варианте разработчики обещают представить функционально-насыщенный пользовательский интерфейс на базе технологий JavaScript и DHTML (нечто похожее на AJAX, но пока с использованием только синхронного взаимодействия клиента и сервера).
Первое, что увидит пользователь, — это новый пользовательский интерфейс с ориентированной на задачи моделью взаимодействия человека и компьютера. Но еще важнее, что теперь на качественно новом уровне решаются вопросы управления системой в целом (в том числе в рамках администрирования), что позволяет реализовать ролевую организацию работы, определение функциональной конфигурации с помощью опций и параметрического управления настройками конкретных пользователей.
Производительность, масштабируемость, управляемость, многоплатформенность
В начале статьи было сказано, что одна из стратегических задач развития «1С:Предприятия» в последние годы состояла в повышении производительности и масштабируемости. И на сегодняшний день, особенно с выходом версии 8.1, можно утверждать, что для реального уровня требований корпоративного рынка вопрос этот решен. Теперь на передний план выходит другая задача — повышение эффективности реализации проектов, сопровождения и развития систем. Именно эта цель является главной в новой версии платформы. Хотя надо подчеркнуть, что повышение управляемости закладывает качественно новые возможности и для роста производительности и масштабируемости.
Есть и еще один важный момент: для использования в корпоративных структурах для «1С» очень важна задача поддержки распределенных неоднородных систем. Шаг в направлении обеспечения многоплатформенности был сделан с выпуском версии «1С:Предприятия» 8.1, где имеется возможность поддержки Linux для работы серверной части. Нетрудно заметить, что переход к модели тонкого клиента во многом упрощает использование той же Linux и для клиентского приложения (не говоря уже о Web-клиенте, который сможет работать с разными браузерами).
Наконец, принципиально важно то, что переход на «управляемое приложение» с предыдущих версий платформы 8.x будет носить эволюционный характер с обеспечением совместимости кода. В «1С» обещают, что ранее созданные прикладные решения будут работать в новой среде исполнения без изменений. Но при этом они будут функционировать в старой модели построения приложений без использования возможностей собственно новой версии платформы. Чтобы задействовать новую функциональность платформы «управляемого приложения», прикладное решение необходимо переработать.