Задача сбора электронных форм является в настоящее время одной из самых актуальных тем в мире ИТ. Сама потребность сбора существовала практически всегда. Действительно, сбор от внешних пользователей (источников) данных в электронном виде с адекватной проверкой является типовой задачей во многих бизнес-процессах. Сбор заявок, анкет, форм мониторинга используется в той или иной мере во всех областях экономической деятельности. Однако технологии, которые позволяют решать эту проблему эффективно, появились только в последнее время.

  • Принят стандарт описания логики форм 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. Однако нецелесообразно производить лишние действия, когда можно задавать форматы напрямую. Это усложняет работу дизайнера, который должен понимать, как те или иные элементы будут отображаться в другом формате. Это усложняет само решение.

  

        Сравнительный анализ технологий, используемых для сбора форм

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

Характеристика


Infopath

Продукты на основе Acroforms

Продукты на основе XFA

Продукты на основе IBM Lotus Forms

Удобство разработки шаблонов форм

 

В качестве основного средства для разработки предлагается дизайнер форм.
Поскольку шаблон формы - это, по сути, набор XSLT-преобразований. XSLT-преобразования создаются дизайнером форм автоматически. Они достаточно объемны, поэтому ручной перенос кусков одного шаблона в другой практически неосуществим.
Это очень усложняет разработку и использование стандартных элементов шаблонов.
Автоматическая (с использованием программного кода) генерация XSLT-преобразований для шаблона также исключительна проблематична и требует значительных временных затрат.

Acroforms - это расширение формата pdf. Для ручного редактирования форм может использоваться Adobe Acrobat и множество других, в том числе бесплатных продуктов.
Автоматическое создание форм также возможно с использованием дополнительных библиотек (например, iText).
Наиболее распространенной библиотекой в настоящее время является java-библиотека iText, которая зарекомендовала себя, как качественное средство работы как с файлами pdf в целом, так и с расширением Acroforms.

Ручная разработка форм возможна при помощи продукта Adobe Form Designer. По нашим данным в настоящий момент альтернативного ПО для создания форм в формате XFA не существует.
Формат XFA основан на XML, поэтому при необходимости шаблоны форм могут создаваться автоматически.

Ручная разработка форм возможна при помощи продукта IBM Lotus Forms Designer. По нашим данным, в настоящий момент альтернативного ПО для создания форм для работы с IBM Lotus Forms не существует.
IBM Lotus Forms использует следующие стандарты: xForms для описания логики формы, XFDL для описания вида формы. Существуют средства, которые конвертируют формат XFDL в формат XHTML.

Возможность создания динамических форм (форм, содержащих таблицы с возможностью добавления строк)

 

Да

Нет

Да

Да

Наличие компонентов для отображения полей формы

 

В Infopath реализован очень широкий набор компонентов, однако большая часть их недоступна при подготовке форм для заполнения on-line. Возможности, реализованные в Form Server могут быть также реализованы в шаблонах Infopath.

Возможно использование ограниченного количества компонент (текстовое поле, числовое поле, ограниченный список значений, переключатель, галка).

Набор компонент достаточен для решения большинства задач. Возможности, реализованные в Form Server могут быть также реализованы в шаблонах XFA.

Набор компонент достаточен для решения большинства задач. Возможности, реализованные в Form Server могут быть также реализованы в формах IBM Lotus Notes.

Представление данных в виде документа для печати

 

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

Поскольку Acroforms - это дополнение к pdf, формы Acroforms могут быть сразу напечатаны.

В целом, использование XFA для описания вида форм позволяет осуществлять их печать в значительно большем количестве случаев, чем в случае с Infopath. Однако сложные формы требуют разработки вида для печати.
Никаких специальных средств для передачи данных в формат текстового процессора не предусмотрено.

В целом, использование XFDL для описания вида форм позволяет осуществлять их печать в значительно большем количестве случаев, чем в случае с Infopath. Однако сложные формы требуют разработки вида для печати.
Никаких специальных средств для передачи данных в формат текстового процессора не предусмотрено.

Скорость работы формы

 

Общим недостатком форм Infopath является медленная работа.
При прочих равных форма в приложении Infopath (в режимах on-line и off-line) работает в 3-5 раз медленнее, чем форма в приложении Form Server.

Нет данных

Нет данных

Нет данных

Сбор форм

 

Поддерживаются оба способа сбора данных: on-line и off-line. Развертывание многоступенчатой системы сбора данных в силу сложности on-line клиента проблематично.

Существует ПО, в т.ч. бесплатное для сбора как on-line, так и off-line форм. Поскольку данный способ допускает создание только простейших форм, то любая форма совместима с обоими режимами.

Поддерживаются оба способа сбора данных: on-line и off-line.
Техническая возможность использования многоступенчатой системы сбора не анализировалась.
Организационно каждый шлюз требует лицензирования.

Поддерживаются оба способа сбора данных: on-line и off-line.
Техническая возможность использования многоступенчатой системы сбора не анализировалась.
Организационно каждый шлюз требует лицензирования.

Использование внешних справочников при отсутствии подключения к центральному источнику данных (off-line), хранящих справочную информацию

 

Требуется обязательное внедрение файла со справочником в шаблон.

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

Требуется обязательное внедрение файла со справочником в шаблон.

Требуется обязательное внедрение файла со справочником в шаблон.

Лицензирование

 

1. Практически, учреждение может приобрести Infopath для заполнения форм off-line только для внутренних нужд.
Например, если субъект РФ хочет заполнять формы в режиме off-line, он должен приобрести Infopath самостоятельно.
2. Infopath входит в редакцию MS Office Business Plus. Наиболее распространенной редакцией является MS Office Business, не содержащей Infopath.
3. Разработка форм, совместимых со старой версией MS Office (2003) в настоящий момент нецелесообразна.
4. Для сбора on-line форм предназначен продукт Sharepoint или Form Services, распространяемые на коммерческой основе.

Существует большое количество ПО, в том числе свободного и с открытым исходным кодом для создания, сбора и обработки форм.

В качестве off-line клиента для заполнения формы может использоваться бесплатно распространяемое приложение Adobe Acrobat Reader.
Обработка форм также может осуществляться при помощи бесплатных библиотек.
Все остальные приложения, связанные с заполнением форм в режиме on-line, их сбором и обработкой, распространяются на коммерческой основе.
Отметим, что Adobe Acrobat Reader не относится ни к свободному ПО, ни к ПО с отрытым исходным кодом, т.к. Adobe Acrobat Reader не распространяется по лицензиям, соответствующим указанным классам ПО.

Лицензионная политика в части возможности закупки ПО для третьих лиц не анализировалась.
Обработка форм также может осуществляться при помощи бесплатных библиотек.
Все приложения, связанные с созданием, заполнением (off-line и on-line), сбором и обработкой форм, распространяются на коммерческой основе.