Задача сбора электронных форм является в настоящее время одной из самых актуальных тем в мире ИТ. Сама потребность сбора существовала практически всегда. Действительно, сбор от внешних пользователей (источников) данных в электронном виде с адекватной проверкой является типовой задачей во многих бизнес-процессах. Сбор заявок, анкет, форм мониторинга используется в той или иной мере во всех областях экономической деятельности. Однако технологии, которые позволяют решать эту проблему эффективно, появились только в последнее время.
- Принят стандарт описания логики форм xForms. Достигли зрелости проекты с открытым исходным кодом, обеспечивающие создание шаблонов форм, соответствующих этому стандарту.
- Приняты открытые стандарты представления текстовых документов: ODF и OOXML. Появились бесплатные офисные приложения, способные конкурировать с продуктами компании Microsoft.
- Достигли зрелости XML-базы данных (базы данных, предназначенные для хранения XML-документов).
На сегодняшний день можно говорить о том, что прошла апробация первой волны решений, направленных на сбор электронных форм (Microsoft, Adobe и IBM). Она доказала принципиальную применимость этих технологий, но также показала, что сделать их эффективными возможно только при значительных изменениях многих архитектурных элементов, лежащих в их основе.
Все технологии для сбора электронных форм, реализованные в различных бизнес-приложениях, принципиально можно разделить на два типа по способу сбора данных:
-
Ввод данных напрямую в СУБД, например, при помощи on-line интерфейса.
-
Сбор форм в виде документов. Документы могут заполняться в режимах on-line или off-line, однако принципиально то, что в системе, вплоть до физического уровня, все данные документа рассматриваются как единое целое.
Первый способ не представляет особых технических сложностей. Для реализации он требует СУБД и какого-либо средства для написания интерфейса к СУБД. Не будет преувеличением сказать, что при огромном количестве разнообразных СУБД и средств написания интерфейса существуют тысячи вариантов создания подобных решений.
Однако все решения, основанные на этом принципе, обладают одним серьезным недостатком: пользователь должен иметь постоянное подключение к базе данных (или реплике базы данных).
Более того, как показывает практика, в режиме on-line неудобно обрабатывать документы, данные которых разбросаны по реляционным таблицам . Довольно сложно вносить изменения в структуру документа. Требуются громоздкие (пусть и отлаженные) решения для извлечения документа и внесения его в базу данных. Именно поэтому даже при наличии постоянного подключения к базе данных при решении задачи сбора электронных форм часто приходится использовать технологии второго типа - сбор форм в виде документов.
Одним из первых удачных решений в этом направлении стало (и до сих пор является самым распространенным) использование в качестве средства сбора форм MS Excel. Смысл технологии заключается в следующем. Создается файл Excel с требуемой формой. Пользователь заполняет форму и пересылает в центр обработки анкет. В этом центре производится проверка анкеты и ее автоматическая передача с помощью скрипта в базу данных.
В более совершенном варианте данные сначала п в формат dbf или csv (еще лучше XML) и в этом виде передаются в центр обработки.
Излишне говорить, что Excel не обеспечивает адекватного контроля качества введенных в документ данных. Пользователь всегда может создать документ, который не будет корректно интерпретирован системой.
Одним из наиболее технологичных решений стало использование форм pdf (т.н. Acroforms). При очень удачных решениях, реализованных на основе этого стандарта, сама технология Acroforms обладает одним серьезным недостатком. Она допускает создание только статических форм. Безусловно, статические формы очень просты в заполнении. Если требуется обеспечить массовый сбор простых форм, то лучше всего использовать именно статистические формы. Однако существует целый класс задач, где статические формы неудобны или даже не применимы в принципе. Например, если анкета имеет сложный вид, разнесена на несколько листов, или в нее должен быть внесен список, число элементов которого невозможно определить заранее.
Появление формата XML в конце 90-х годов открыло новые возможности для создания продуктов, обеспечивающих сбор более сложных форм. Один из этих продуктов был основан на формате XFA (в настоящий момент развивается компанией Adobe), второй - на формате XFDL (в настоящий момент развивается компанией IBM). Кроме того, компания Microsoft с выходом MS Office 2003 реализовала свой подход, основанный на XSLT-преобразованиях XML-файла с данными в файл XHTML.
Одновременно с появлением этих продуктов стал разрабатываться стандарт для описания электронных форм XForms, окончательная редакция версии 1.0 которого появилась в 2007 году. К настоящему моменту уже появился ряд проектов с открытым исходным кодом, которые позволяют работать с шаблонами в формате XForms.
Несмотря на бурное развитие стандартов и технологий в этой области, в настоящий момент продукты по сбору форм используются в очень ограниченном классе задач. Бизнес-аналитики проявляют большую осторожность при использовании указанных продуктов.
Для этого существуют объективные причины:
- Плохо решена проблема связи формы с внешними справочниками в случае с off-line заполнением форм.
- Плохо решена проблема создания электронной и печатной версии формы.
- Созданные решения получились очень громоздкими, а потому сложными в реализации и поддержке.
Объяснить эти проблемы довольно просто. Во-первых, разработчики указанных решений оказались первопроходцами. Если технологии создания баз данных достигли своей зрелости уже в 70-х годах, то технологии обработки электронных документов появились значительно позднее. Не будет преувеличением сказать, что эти технологии получили серьезное развитие только во второй половине 90-х годов с появлением стандарта XML, хотя, безусловно, многие результаты относятся к более раннему периоду.
Кроме того, разработчики существующих решений оказались в ситуации, когда при отсутствии признанных стандартов и наработанных технологий они вынуждены были создавать рыночный продукт на промежуточных решениях.
Например, совершенно ясно, что печатная форма документа должна представляться в стандартах ODF или OOXML, т.к. эти стандарты используются для описания форматов файлов для текстовых процессоров и электронных таблиц. Существует огромное количество задач, в которых помимо широких возможностей по форматированию, предоставляемых этими форматами, пользователь должен иметь возможность доработать печатные формы и в части форматирования, и даже в части содержания. Форматы XFA и XFDL, безусловно, содержат широкие возможности форматирования данных. Но они по определению будут уступать возможностям ODF и OOXML.
С другой стороны, для представления электронного вида документа в настоящий момент имеет смысл использовать только формат XHTML. Безусловно, продукты как IBM, так и Adobe умеют конвертировать данные из своих форматов и в ODF, и в OOXML, и в XHTML. Однако нецелесообразно производить лишние действия, когда можно задавать форматы напрямую. Это усложняет работу дизайнера, который должен понимать, как те или иные элементы будут отображаться в другом формате. Это усложняет само решение.
Сравнительный анализ технологий, используемых для сбора форм
Проводить стандартное сравнения по функциональным особенностям различных технологий и программных продуктов в области сбора форм (есть/нет) бессмысленно: все они предполагают различные подходы к решению поставленной задачи. Поэтому для сравнения взяты не функциональные особенности технологий, а характеристики их применения. По каждый из характеристик дано описание, как определенная проблема решается в каждой из технологий, приведены плюсы и минусы используемых подходов.
|