Мне было предложено перенести устаревшее приложение обработки данных на Java.Общая архитектура для долговременной обработки данных в Java?
Текущая версия системы состоит из нумератора (плохо написанных) листов Excel. Листы реализуют большой цикл: подсчитывается количество источников данных. Эти источники представляют собой смесь CSV и веб-сервисов на основе XML.
Процесс концептуально прост:
Это без гражданства, это означает, что расчеты, которые идут чисто зависят от входов. Результаты вычислений публикуются (в настоящее время путем написания нескольких CSV-файлов в некоторых стандартных местах в сети).
После публикации результатов цикл опроса начинается снова.
Для этого процесса не нужен графический интерфейс администратора, но он был бы опрятным, если бы я мог реализовать какую-то панель управления через Интернет. Это было бы нечем красивым и чисто для внутреннего использования. Панель управления сделала бы немного больше, чем рассчитать статистику относительно исходных каналов и, возможно, принудительно обновить входные каналы в случае возникновения проблемы. Этот компонент является чисто необязательным в первом раунде доставки.
Критической особенностью этой системы является отказоустойчивость. Некоторые из входных каналов, как известно, ошибочны. Я хочу, чтобы моя система могла восстановиться в случае нарушения некоторых входов. В этом случае было бы невозможно обновить вывод - я бы хотел, чтобы он продолжал опрос до тех пор, пока система не будет разрешена, возможно, генерируя некоторые сообщения XMPP, чтобы указать статус системы. В целом система должна работать без вмешательства в течение длительных периодов времени.
В настоящее время у пользователей есть пользовательский клиент, который проверяет файлы CSV, которые (надеюсь) не нуждаются в повторной записи. Если я смогу правильно выполнить эту работу, они не заметят, что движок, запускающий эту систему, был повторно реализован.
Я не разработчик java (я в основном делаю Python), но JVM - это требование в этом случае. Менеджер дал мне щедрое время, чтобы учиться.
Я хочу знать, как начать архивирование такого проекта. Я бы хотел использовать рамки & хорошие шаблоны. Есть ли какие-то большие строительные блоки, которые могут помочь мне быстрее запустить систему хорошего качества?
UPDATE0: Никто еще не упомянул весну. Есть ли в этой структуре роль в этом приложении?
Я упомянул Spring как комментарий к ответу @Martin Spamer. – Rich