В общем случае не стоит реализовывать все это в контейнере сервлетов, таком как Tomcat.
Контейнер сервлета предназначен для обслуживания запросов от клиента. Похоже, у вас есть процесс, который будет выполняться постоянно или хотя бы периодически. Вы можете сделать это в Tomcat, но, вероятно, проще сделать это снаружи. Оставьте Tomcat, чтобы делать то, что он хорош, обслуживая запросы от браузеров. Счастливее всего, если запросы недолговечны.
Так что я бы поступил так, как вы предлагаете, и сделал только шаг 4 в контейнере. Вы можете легко опросить базу данных, заполненную на шаге 3, поэтому нет необходимости создавать веб-службы для заполнения контейнера сервлета.
На шаге 4 вам нужно будет предоставить некоторые сервисы от Tomcat, будь то отдых, мыло, что угодно. Клиенты javascript могут затем опросить эти службы. Это все полностью выполнимо с Tomcat.
Для масштабируемости не должно быть проблем с использованием Tomcat. Если все, что он делает, это перекачивает данные из базы данных в клиент, вероятно, нет причин выбирать контейнер J2EE. Если вам не нужно сложное управление транзакциями или безопасность, попробуйте использовать что-нибудь с открытым исходным кодом. Похоже, вы можете получить то, что вы хотите от Tomcat (и спящий режим и весеннюю безопасность, если это необходимо). Если у вас начнутся проблемы с производительностью, исправление, вероятно, будет таким же для JBoss & Tomcat: вам нужно больше серверов.
Мой совет: придерживайтесь простых решений с открытым исходным кодом и переходите на сервер приложений, только если вы сочтете это необходимым.