Показать сообщение отдельно
Старый 26.12.2006, 12:56   #1  
Morpheus is offline
Morpheus
Участник
Аватар для Morpheus
Соотечественники
 
602 / 164 (7) ++++++
Регистрация: 30.03.2005
Адрес: Київ-København-Düsseldorf
Платформа «1С:Предприятие» как средство разработки бизнес-приложений
http://pcmag.ru/?ID=620525

Особенности «1С:Предприятия» как предметно-ориентированного средства разработки

По оценке экспертов, сейчас рынок средств разработки смещается от конкретных программ, обеспечивающих разработку (компиляторов, IDE, профилировщиков и т. д.), к системам, поддерживающим весь жизненный цикл разработки (например, см. статью Андрея Колесова «Чья IDE всех милее?», PC Week/RE, 14/2006, с. 28, www.pcweek.ru/?ID=606344). Если говорить об этой тенденции проще, то поставщики стремятся вложить в свои комплексы все инструменты, необходимые для коллектива разработчиков, или обеспечить удобное подключение других доступных средств. Разумеется, это сложная задача, и в полном объеме она практически не решаема.

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

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


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

В «1С:Предприятии» процесс написания программного кода — не центральный элемент разработки ПО. Приложение разрабатывается прежде всего как структура метаданных. Код пишется в определенных узлах приложения «по необходимости», чтобы переопределить, если это нужно, стандартное поведение или написать ту часть бизнес-логики, которая требует именно алгоритмической формулировки, например расчет себестоимости. То есть имеется framework, задающий общий облик приложения, а приложение определяется как набор различных артефактов, которые функционируют в данном framework-е. Идея разработки на основе метаданных (metadata-driven) начинает активно использоваться и в универсальных системах, но в предметно-ориентированной среде разработки она дает существенно больший эффект, так как структура метаданных четко ориентирована на круг решаемых системой задач.

Один из моментов, обычно вызывающих споры, — принятое в «1С:Предприятии» построение основной части приложения на основе стандартных прототипов (patterns) прикладных объектов. Действительно, эта модель отличается от классического подхода (объектно-ориентированного программирования и работы с таблицами базы данных или отображаемыми в базу данных произвольными сущностями). Фактически система предоставляет не один базовый класс для построения прикладных объектов приложения, а несколько, каждый из которых имеет специализированную функциональность и предназначен для отображения в приложении объектов предметной области, обладающих схожими свойствами и ролью в бизнес-логике. Разработчик использует эти прототипы для создания объектов приложения, которые уже являются финальными (описывающими конкретные бизнес-сущности).

Прототипы применяются с некоторой параметризацией, определяющей необходимые в конкретном случае свойства и особенности поведения. Например, справочник может быть «плоским» или иерархическим. Такой подход фактически обеспечивает построение приложения на основе определенной прикладной модели, в которой каждый объект играет определенную роль, и система хорошо знает эту роль, что позволяет ей автоматически выполнять существенную часть операций. Выше мы говорили о предоставляемой технологической модели приложения. Заметим, что эти две модели (технологическая и прикладная), с одной стороны, идеологически связаны, но с другой — имеют достаточно высокий уровень независимости в части реализации. Такой подход позволяет использовать в платформе новые архитектурные и технологические решения без смены прикладной модели и без изменения приложения.

Еще одна особенность «1С:Предприятия» как предметно-ориентированной среды разработки — особое отношение к подбору технологических возможностей, предоставляемых разработчику. Разумеется, в «1С:Предприятии» есть возможность подключать другие (внешние) программные модули. Но платформа ориентирована на то, чтобы актуальные для задач автоматизации бизнеса технологии предоставить разработчику в готовом виде. Причем высокая степень «готовности» включает и простоту освоения, и «гладкость» интеграции с общей функциональностью и другими технологическими возможностями системы. Фактически платформа позволяет разработчику прикладных решений задействовать необходимые и современные технологии своевременно, максимально просто и без радикальных изменений в своем приложении.


Примеров этому можно привести много. Одно из сильных конкурентных преимуществ платформы «1С:Предприятия» (по общей оценке разработчиков приложений) — система обмена данными, позволяющая достаточно просто реализовать синхронизацию данных на основе XML как для создания территориально распределенных приложений, так и для целей интеграции (с другими приложениями «1С:Предприятия» и с другими системами). Можно привести и другие примеры. Механизм бизнес-процессов дает возможность организовать совместную работу пользователей. Реализация data-mining позволяет решать сложные задачи бизнес-анализа. Реализация отображения географических карт — решать задачи представления анализа бизнеса по регионам и задачи визуального представления транспортной логистики. И т. д.

Если проанализировать изменения, вошедшие в версию 8.1, то можно выделить такие новые технологии, как элементы SOA (Web-сервисы, XDTO) и система полнотекстового поиска. И та и другая технология сейчас на слуху и вызывают большой интерес у разработчиков. Но при разработке в универсальных системах включение их в проект обычно требует весьма существенных затрат, тогда как в «1С:Предприятии» затраты минимальны. Например, для предоставления пользователям возможности работы с полнотекстовым поиском нужно только, как говориться, поставить галочку. Такой подход позволяет разработчикам решений задействовать наиболее современные технологии прямо сейчас.

Здесь мы плавно подошли к тому, чтобы выделить одно из основных преимуществ предметно-ориентированной среды разработки. Построение системы на основе технологической модели работы приложения, метаданных и прикладной модели работы приложения позволяет существенно упросить и ускорить разработку. Во-первых, опираясь на метаданные и единую модель, все компоненты системы взаимодействуют между собой без существенных усилий со стороны разработчика. Фактически они знают, «что нужно делать» с теми или иными объектами бизнес-логики и типами данных. Например, система отчетности (в версии 8.1 система компоновки данных) позволяет строить сложнейшие отчеты, управляемые пользователем только на основе сформулированного разработчиком запроса, так как она «знает» модель приложения. Во-вторых, существенная часть технологических сложностей реализации решается платформой и не «наваливается» на разработчика решения.

Здесь хочется сделать небольшое историческое отступление. В предыдущем поколении платформы «1С:Предприятие» (версиях 7.x) использовался другой подход, касающийся применения технологий. Система была в основном замкнута. Подход предполагал использование строго ограниченного набора средств и технологий. Разумеется, это в свою очередь существенно ограничивало и спектр применения системы — как по масштабированию решений, так и по широте областей применения.

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

Из перечисленного списка нетрудно понять, что в платформе появились более сложные предметы, требующие хорошего понимания, и само количество предметов стало больше. Как минимум, это видно по объему документации. Однако эта сложность не захлестывает разработчика приложения. Все механизмы можно использовать опционально и вводить по мере надобности. Ну и, разумеется, разработчику, переходящему с предыдущей платформы, нужно понимать, что это вполне разумная (и, по нашему мнению, в реализации «1С:Предприятия 8.0» — минимальная) плата за возможность использовать при быстрой разработке современные технологии и решать задачи, которые в версии 7.x не могли решаться в принципе.

Разумеется, у всех преимуществ предметно-ориентированной среды есть и обратная сторона. В отличие от универсальных средств, здесь имеются ограничения в выборе технологических решений и возможностях их «тонкой» настройки. Многие технологические решения определены в самой модели и не могут быть изменены разработчиком приложения. Например, в «1С:Предприятии» он не имеет прямого доступа к базе данных, ему нужно действовать теми средствами, которые использует модель «1С:Предприятие». В универсальных средствах можно все и можно произвольно выбирать любое сочетание технологических решений.


Возможности применения


Проанализируем особенности платформы «1С:Предприятие» с точки зрения критериев выбора средства разработки. Прежде всего, ее использование стоит рассматривать для решения тех задач, для которых оно предназначено, — автоматизации управления и учета. Конечно, есть и весьма успешные случаи нестандартного применения системы для других областей, но не будем на них отвлекаться. Далее, важный критерий выбора между «1С:Предприятием» и универсальными средствами разработки — по нашему мнению, оценка затрат на разработку и сопровождение системы. При этом затраты вполне можно оценить количественно. Скорость разработки в «1С:Предприятии» обычно выше в 2—10 раз и стоимость соответственно в разы ниже.

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

Особо стоит отметить преимущества предметно-ориентированной среды на этапе поддержки системы. Наличие стандартизованной модели позволяет с существенно меньшими затратами развивать функциональность и включать в работу новых специалистов. Если представить себе стек технологий (от работы с базой данных, коммуникаций с сервером, управлением интерфейсом), то разработчик в среде «1С:Предприятие» будет существенно лучше понимать устройство конкретного приложения при первом знакомстве с ним, так как он знает общую технологическую и прикладную модель его построения.

Попробуем привести еще одно объяснение подхода платформы «1С:Предприятие». У Фреда Брукса в легендарной книге «Мифический человеко-месяц» изложен подход, согласно которому в любом процессе существуют сложности первого порядка (сущностные) и второго порядка (акцидентальные). Первые обусловлены сложностью самой решаемой задачи (предметной областью, многообразием вариантов, требованиями и т. д.), вторые являются «привнесенными». Они обусловлены использованием неадекватных инструментальных средств, методик, подходов к решению задачи и вполне могут быть исключены. Так, задача платформы «1С:Предприятие» — максимально исключить сложности второго порядка, предоставив разработчику возможность сосредоточиться на объективно существующих сложностях первого порядка.