我被要求將遺留數據處理應用程序移植到Java。用於Java中長時間運行的數據處理系統的通用體系結構?
該系統的當前版本由一個(寫得很糟糕的)Excel表單組成。這些工作表執行一個大循環:查詢多個數據源。這些源代碼是CSV和基於XML的Web服務的混合體。
過程的概念很簡單:
它是無狀態的,這意味着它運行計算是完全依賴於輸入。計算結果已發佈(目前通過在網絡上的一些標準位置編寫一些CSV文件)。
發佈結果後,輪詢週期再次開始。
該過程不需要管理GUI,但是如果我可以實現某種基於Web的控制面板,它將會很整潔。這對於內部使用來說並不美觀。控制面板只會顯示關於源提要的顯示統計信息,並可能在出現問題時強制更新輸入提要。該組件在第一輪交付中純粹是可選的。
該系統的一個關鍵特徵是容錯性。一些輸入源是臭名昭着的。我希望我的系統能夠在某些輸入斷開的情況下恢復。在這種情況下,不可能更新輸出 - 我希望它保持輪詢直到系統解決,可能會生成一些XMPP消息來指示系統的狀態。總體而言,系統應該長時間不用幹預地工作。
用戶當前有一個自定義客戶端輪詢CSV文件(希望)不需要重寫。如果我能夠正確地完成這項工作,那麼他們不會注意到運行此係統的引擎已被重新實施。
我不是java devloper(我主要是做Python),但是JVM是這種情況下的需求。經理給了我慷慨的學習時間。
我想知道的是如何開始構建這種類型的項目。我想使用框架&可能的好模式。有沒有什麼大的構建塊可以幫助我更好地運行質量更好的系統?
UPDATE0:沒有人提到過Spring呢 - 這個框架在這類應用程序中扮演了一個角色嗎?
我已經提到過Spring作爲對@Martin Spamer答案的評論。 – Rich 2012-02-07 14:23:51