Какую инфраструктуру Java можно использовать для предоставления надежной службы преобразования документов? - PullRequest
0 голосов
/ 27 ноября 2009

Я начинаю новый проект с открытым исходным кодом для разработки приложения, которое будет предоставлять услуги для преобразования различных документов в другие форматы (например, doc -> html, pdf -> html, простой текст -> html и т. Д.). Он будет использовать множество других инструментов с открытым исходным кодом для облегчения преобразования документов.

Я ищу рамки, которые я могу использовать для этой цели. Основные требования к заявке следующие:

  • Предоставьте как библиотеку для непосредственного использования, так и веб-сервис, который предоставляет базовую библиотеку.
  • Предоставляем плагин-ориентированный сервис. Это означает, что клиенты должны использовать подключаемые и отключаемые инструменты для преобразования документов. Это позволяет инструментам конвертировать документы для добавления и удаления в будущем.
  • Обеспечить запасной механизм. Это означает, что он должен иметь возможность использовать другие установленные инструменты, если предыдущий инструмент не смог преобразовать документы. Например, используйте инструмент A, инструмент A не удалось, используйте инструмент B, инструмент B также не удалось, используйте инструмент C, инструмент C завершился успешно, остановите и верните результаты.
  • Это должно быть надежно. Если инструмент разрушается, он не должен уничтожать все приложение.
  • Ошибка восстановления. Возможность перезапустить себя в случае катастрофы.

У кого-нибудь есть какие-либо рекомендации по существующим фреймворкам в Java, которые я могу использовать для удовлетворения большинства (если не всех) вышеуказанных требований?

Спасибо!

PS. В настоящее время я изучаю структуру UIMA (архитектура неструктурированной информации) . Я знаю, что UIMA обычно используется для обработки естественного языка для извлечения сущностей текстовых документов, но на первый взгляд (из чтения руководств - больше ничего не пробовал), он кажется довольно хорошим и, возможно, достаточно гибким, чтобы его можно было настроить, чтобы соответствовать моим требованиям требования выше. У кого-нибудь есть опыт работы с UIMA? Пожалуйста, поделитесь своим опытом (плюсы и минусы), возможно ли его использовать в качестве основы приложения на основе перечисленных выше требований.

1 Ответ

1 голос
/ 27 ноября 2009

Apache Coccoon звучит как самый близкий к тому, что вы описываете, но я понятия не имею о его характеристиках отказов. UIMA чаще всего используется для построения конвейеров интеллектуального анализа текста, что не совсем то, что вы описываете.

Я подозреваю, что вам нужно что-то написать самостоятельно. Для аспекта плагина вы должны определить интерфейс и центральную абстракцию, а затем использовать Spring / Guice / OSGI или аналогичный для управления реализациями.

Может оказаться полезной структура идентификации формата, например JHOVE .

...