2009-11-27 5 views
0

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

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

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

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

Спасибо!

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

ответ

1

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

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

Возможно, вам нужна форма идентификации, такая как JHOVE.