Я начинаю новый проект с открытым исходным кодом для разработки приложения, которое будет предоставлять услуги для преобразования различных документов в другие форматы (например, doc -> html, pdf -> html, простой текст -> html и т. Д.). Он будет использовать множество других инструментов с открытым исходным кодом для облегчения преобразования документов.
Я ищу рамки, которые я могу использовать для этой цели. Основные требования к заявке следующие:
- Предоставьте как библиотеку для непосредственного использования, так и веб-сервис, который предоставляет базовую библиотеку.
- Предоставляем плагин-ориентированный сервис. Это означает, что клиенты должны использовать подключаемые и отключаемые инструменты для преобразования документов. Это позволяет инструментам конвертировать документы для добавления и удаления в будущем.
- Обеспечить запасной механизм. Это означает, что он должен иметь возможность использовать другие установленные инструменты, если предыдущий инструмент не смог преобразовать документы. Например, используйте инструмент A, инструмент A не удалось, используйте инструмент B, инструмент B также не удалось, используйте инструмент C, инструмент C завершился успешно, остановите и верните результаты.
- Это должно быть надежно. Если инструмент разрушается, он не должен уничтожать все приложение.
- Ошибка восстановления. Возможность перезапустить себя в случае катастрофы.
У кого-нибудь есть какие-либо рекомендации по существующим фреймворкам в Java, которые я могу использовать для удовлетворения большинства (если не всех) вышеуказанных требований?
Спасибо!
PS. В настоящее время я изучаю структуру UIMA (архитектура неструктурированной информации) . Я знаю, что UIMA обычно используется для обработки естественного языка для извлечения сущностей текстовых документов, но на первый взгляд (из чтения руководств - больше ничего не пробовал), он кажется довольно хорошим и, возможно, достаточно гибким, чтобы его можно было настроить, чтобы соответствовать моим требованиям требования выше. У кого-нибудь есть опыт работы с UIMA? Пожалуйста, поделитесь своим опытом (плюсы и минусы), возможно ли его использовать в качестве основы приложения на основе перечисленных выше требований.