Задача сбора электронных форм является в настоящее время одной из самых актуальных тем в мире ИТ. Сама потребность сбора существовала практически всегда. Действительно, сбор с внешних пользователей (источников) данных в электронном виде с адекватной проверкой является типовой задачей во многих бизнес-процессах. Сбор заявок, анкет, форм мониторинга используется в той или иной мере во всех областях экономической деятельности. Однако технологии, которые позволяют решать эту проблему эффективно, появились только в последнее время.
Принят стандарт описания логики форм 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. Однако нецелесообразно производить лишние действия, когда можно задавать форматы напрямую. Это усложняет работу дизайнера, который должен понимать, как те или иные элементы будут отображаться в другом формате. Это усложняет само решение.
Краткое описание приложения Form Server
Объединение всех описанных выше технологий позволило создать продукт Form Server, который дает возможность решать задачи сбора данных более технологично, чем это практикуется в настоящее время. При этом новые технологические возможности и невысокие затратына внедрение и поддержку этого продукта делают возможным его применение для очень широкого круга задач.
Программное обеспечение Form Server позволяет собирать формы в электронном виде и сохранять их в виде XML-файлов либо в файловой системе, либо в XML-базе данных. Кроме того, заполненные формы могут быть переданы во внешнее хранилище.
Программное обеспечение для сбора форм обладает следующими характеристиками.
Эффективное создание шаблонов форм
Шаблоны форм описываются в соответствии со стандартом XForms.
Для упрощения работы разработчиков форм мы создали стандартные шаблоны, соответствующие типовым формам, которые используются для сбора показателей. Эти шаблоны содержат все необходимые элементы, чтобы облегчить конечным пользователям заполнение форм: вставка строк из буфера обмена, передача данных в буфер обмена, изменение порядка следования строк.
Для каждой формы может быть разработана версия для печати. При этом документ передается в файл формата табличного процессора (OOXML или ODF). Большинство настроек пользователь может изменить без помощи ИТ-специалиста, редактируя шаблон документа в форматах OOXML или ODF с помощью визуального редактора.
Предусмотрена возможность создания документов на основе других документов.
Гибкая архитектура ПО
ПО реализовано в трехзвенной архитектуре. Оно может быть легко развернуто при помощи дистрибутива. Это позволяет использовать данное решение для заполнения форм в режиме офф-лайн, когда пользователь разворачивает и использует все решение на одной локальной машине.
ПО построено в сервисной архитектуре, что позволяет легко интегрировать его с другими программными средствами.
ПО реализовано на языке Java и независимо от операционной системы (Windows, UNIX/Linux).
Удобные средства управления сбора отчетностью
Для упрощения заполнения отчетности в системе реализован механизм заданий. Задание представляет собой набор шаблонов, который должен заполнить пользователь в рамках подготовки пакета отчетности. Это удобно, например, при заполнении пакета форм в режиме офф-лайн, когда пользователь получает задание, открывает его в системе и заполняет формы, шаблоны которых содержатся в задании.
Заполненные формы могут быть экспортированы из Системы или импортированы в Систему с помощью пакетов, подписанных электронной подписью.
Приложение позволяет собирать формы других форматов, если, как в случае с Acroforms, существуют бесплатные Java библиотеки, обеспечивающие возможность просмотра и/или заполнения форм.
В системе реализована система безопасности, позволяющая гибко определять права на работу с формами, содержащимися в системе.
Сравнительный анализ технологий, используемых для сбора форм
Проводить стандартное сравнения по функциональным особенностям различных технологий и программных продуктов в области сбора форм (есть/нет) бессмысленно: все они предполагают различные подходы к решению поставленной задачи. Поэтому для сравнения взяты не функциональные особенности технологий, а характеристики их применения. По каждый из характеристик дано описание, как определенная проблема решается в каждой из технологий, приведены плюсы и минусы используемых подходов.
Характеристика
Form Server
Infopath
Продукты на основе Acroforms
Продукты на основе XFA
Продукты на основе IBM Lotus Forms
Удобство разработки шаблонов форм
Form Server использует только открытые международные, поддерживаемые стандарты: xForms для описания логики формы, XHTML для описания электронного вида формы, XSLT для описания структуры печатного документа, ODF для описания вида печатного документа.
Специального средства для разработки шаблонов форм не предусмотрено. Шаблон может быть легко создан с помощью распространенных бесплатных средств разработки, таких как Eclipse.
Структура шаблонов XForms позволяет просто создавать решения по их автоматической генерации.
Разработчик при создании шаблона может брать уже разработаны (стандартные) шаблоны и дорабатывать их по своему желанию.
В качестве основного средства для разработки предлагается дизайнер форм.
Поскольку шаблон формы - это, по сути, набор 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.
Возможность создания динамических форм (форм, содержащих таблицы с возможностью добавления строк)
Да
Да
Нет
Да
Да
Наличие компонентов для отображения полей формы
Набор компонент xForms достаточен для решения большинства задач. Разработчики компании КУРС расширили эти компоненты такими удобными (необходимыми) возможностями, как изменение порядка следования строк, корректная вставка данных из буфера обмена в несколько ячеек.
В Infopath реализован очень широкий набор компонентов, однако большая часть их недоступна при подготовке форм для заполнения on-line. Возможности, реализованные в Form Server могут быть также реализованы в шаблонах Infopath.
Возможно использование ограниченного количества компонент (текстовое поле, числовое поле, ограниченный список значений, переключатель, галка).
Набор компонент достаточен для решения большинства задач. Возможности, реализованные в Form Server могут быть также реализованы в шаблонах XFA.
Набор компонент достаточен для решения большинства задач. Возможности, реализованные в Form Server могут быть также реализованы в формах IBM Lotus Notes.
Представление данных в виде документа для печати
В Form Server реализовано средство, позволяющее создавать печатную форму документа в минимальные сроки. Более того, пользователь может легко править большинство визуальных элементов без привлечения ИТ-специалиста.
Печатная форма представляется в формате ODF (формат текстового процессора). Таким образом, пользователь может ее отредактировать и применить дополнительное форматирование.
Опыт компании разработчиков компании КУРС показывает, что прямая печать данных формы имеет смысл в исключительно редких случаях. Т.е. для каждой формы требуется обязательно разрабатывать вид для печати.
Никаких специальных средств для передачи данных в формат текстового процессора не предусмотрено.
Поскольку Acroforms - это дополнение к pdf, формы Acroforms могут быть сразу напечатаны.
В целом, использование XFA для описания вида форм позволяет осуществлять их печать в значительно большем количестве случаев, чем в случае с Infopath. Однако сложные формы требуют разработки вида для печати.
Никаких специальных средств для передачи данных в формат текстового процессора не предусмотрено.
В целом, использование XFDL для описания вида форм позволяет осуществлять их печать в значительно большем количестве случаев, чем в случае с Infopath. Однако сложные формы требуют разработки вида для печати.
Никаких специальных средств для передачи данных в формат текстового процессора не предусмотрено.
Скорость работы формы
При прочих равных форма, отображаемая при помощи Form Server работает в 3-5 раз быстрее, чем аналогичная форма Infopath в режиме off-line. Формы Infopath в режиме on-line работают еще медленнее.
Общим недостатком форм Infopath является медленная работа.
При прочих равных форма в приложении Infopath (в режимах on-line и off-line) работает в 3-5 раз медленнее, чем форма в приложении Form Server.
Нет данных
Нет данных
Нет данных
Сбор форм
Form Server позволяет собирать формы только с помощью браузера. Однако, он сделан как легкое решение. Т.е. пользователь может развернуть систему на своем компьютере, заполнить необходимые формы и передать их в виде подписанного пакета в центральную систему. Это позволяет использовать данную систему для сбора форм off-line.
Такая архитектура дает также возможность создавать многоступенчатые системы сбора форм.
При этом шаблон формы работает одинаково на всех уровнях сбора.
Форм сервер позволяет реализовать сбор форм других форматов, например, наиболее распространенных форм формата Acroforms.
Поддерживаются оба способа сбора данных: on-line и off-line. Развертывание многоступенчатой системы сбора данных в силу сложности on-line клиента проблематично.
Существует ПО, в т.ч. бесплатное для сбора как on-line, так и off-line форм. Поскольку данный способ допускает создание только простейших форм, то любая форма совместима с обоими режимами.
Поддерживаются оба способа сбора данных: on-line и off-line.
Техническая возможность использования многоступенчатой системы сбора не анализировалась.
Организационно каждый шлюз требует лицензирования.
Поддерживаются оба способа сбора данных: on-line и off-line.
Техническая возможность использования многоступенчатой системы сбора не анализировалась.
Организационно каждый шлюз требует лицензирования.
Использование внешних справочников при отсутствии подключения к центральному источнику данных (off-line), хранящих справочную информацию
Form Server позволяет хранить файл со справочной информацией в системе и определять ссылку к нему через уникальный идентификатор файла (без привязки к шаблону).
Более того, Form Server позволяет в зависимости от наличия подключения к центральной базе брать справочную информацию из центрального источника или из определенного файла.
Требуется обязательное внедрение файла со справочником в шаблон.
Использование внешних справочников практически невозможно. В некоторых случаях данное ограничение можно обойти, если ввести справочник в структуру формы.
Требуется обязательное внедрение файла со справочником в шаблон.
Требуется обязательное внедрение файла со справочником в шаблон.
Лицензирование
Система не содержит компонент, которые требуют лицензионных отчислений.
Она также не содержит компонент, препятствующих коммерческому распространению продукта.
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), сбором и обработкой форм, распространяются на коммерческой основе.
Ключевыe особенности приложения Form Server Использует только ПО с открытым исходным кодом
Эффективно решает проблемы использования внешних справочников при заполнении форм в режиме off-line
Позволяет реализовать систему многоступенчатого сбора форм
Позволяет комбинировать средства сбора. Например, для массового сбора простых форм можно использовать формат Acroforms, а для сбора более сложных форм с ограниченного количества респондентов - xForms
Эффективно решает проблему представления формы в электронном и бумажном виде за счет использования наиболее адекватных международных стандартов в обоих случаях: XHTML/ODF.