Dear friends,
I need an advice for best practice for a distributed system architecture. I need to use Java and MS SQL server 2008. The main program flow I as follows:
- New data is loaded into the database, usually from external process or via ETL.
- A main process should monitor periodically for new data in the database.
- Once new data is detected it should be dispatched to one or more data processors.
- The system may have different data processors, running on different machines
- Some of the data processors are state-full and others are stateless.
- Once data is processed, a result is submitted to a results queue
- The main process collects the results from the queue and writes them to a table in the database.
I need to be able to support sclability, as data processing is suppose to grow. It is requiered to have an administration console for the system. It is required to be able to start and stop data processors remotely. The system will have an administrator interface (I thought of FLEX with Web Services). The system will have a data analysis web interface (I guess I will use FLEX).
Everything will run on windows OS.
I thought of using Tomcat for web services, I am not sure about the main process, whether to make it a standalone application, or can it be a thread that never exit in the Application Server?
I would appreciate any thoughts, help, links Thanks.