2012-06-06 20 views
-2

我來自PHP OOP和LAMP設置的背景。在服務器端java有一些經驗。你將如何構建這個應用程序

我需要建立一個系統,從我們的內部來源收集數據,並將它們存儲查詢,數據分析等(MySQL數據庫)

我想一次創造東西是更大的在線應用程序之後架構而不是用多個類爬行腳本(認爲多功能使用線程一心和隊列這裏)

關於應用程序: 數據需要完成有關穿過我們的系統進程去實體。這是一個大混亂。一些關於這些實體的數據在其他服務器上的日誌文件中,一些在csv中,一些在查詢充滿代表實體的XML的目錄。

這些需要收集,組織(例如實體123ABC從服務器1通過X與輸出消息Y於date處理。然後失敗上的不同的過程在ServerB與失敗消息ž

存儲和數據存儲中的組織這些。

構建前端應用程序完全從後端,查詢這些數據,並幫助運營商追蹤實體(他們在哪裏和當他們由A,B,C的服務器處理)

單獨我的思考過程

因爲我最近一直在處理Ruby和LOVE它,我想在Ruby中構建它。因此,對於後端,我希望將插入器或「收藏者」設計爲通過不同方式運行以獲取數據的對象。它們專用於每個過程。即一次被設計爲讀取XML。一個讀CSV,另一個在目錄上運行一個linux命令來收集統計數據。他們將在一個面向對象的層次結構,如下所示: 收藏家:XMLCollector:CatalogXMLCollector 收藏家:CVSCollector:VericusCollector

我想這些收集對象單獨(不同的進程)中運行,這樣一個不取下來的其他。紅寶石處理線程是否好?快速谷歌搜索告訴我沒有。

我會想象這些收藏家將需要插入數據庫,他們應該直接做?或插入某種類型的閱讀器偵聽的JSON隊列中?

另外。收集器不是盲目的爬蟲,它們確實需要在某些情況下找到UNIQUE數據。他們可能需要知道他們已經發送了什麼,而不是重新發送整個200k行CSV(無用的額外處理重複數據庫將拒絕)

前端: 我需要創建自定義視圖/報告每週基地)收集分析和統計數據。如果操作員可以通過選擇視圖類型(表格,文本,圖形 - >類型)來構建自己的視圖,然後選擇他們需要的數據點以及數據上的任何過濾器/子句,那將會非常棒。然後運行一次,將其保存以供稍後在儀表板上由其他人運行。或者甚至安排它自動運行。

這個前端本身就是一個野獸,但它是我最有信心開發的部分,並且可以逐步完成。

幫助我需要 批評以上。我是否讓自己太複雜了?我基本沒有設定的最後期限。文章,你對我的提示?

感謝您閱讀我巨大的文字牆。

編輯:小的澄清

回答

1

對於你的後端部分,它就像你想用一種ETL(Extract, Transform, Load)過程放在一起的數據倉庫的聲音很多。您可以使用現有的ETL框架,或從中獲取創意。我知道.NET空間中的Rhino ETLReactiveETL,但我確定有很多Ruby或Java。 (快速搜索找到this。)

對於前端,如果你要在報告/製圖方面很沉重,我想你可以自己用Rails和一個體面的圖表庫(例如請參閱Charts library for Ruby),這可能會有更多的工作,或者可能全力以赴使用像JasperReports這樣的報告工具,這種工具不那麼有趣。

+0

ETL,酷酷從未聽說過它。 我並不太擔心前端。我將使用帶有jQuery Charts的Rails和針對JSON數據的Ajax pull請求。我期待儘可能多地進行有趣的學習。經過6年多的發展,我不會爲這些小東西而煩惱。 – dlite922