2010-02-07 46 views
1

我正在開發一個Java應用程序,它的一個功能是以圖表形式顯示奇數統計和「前10名」列表的詳細信息。Java應用程序顯示大量圖表和統計信息,存儲數據?

是由應用程序實時產生的數據,把它作爲一個互聯網「蜜罐」,數據是外部攻擊的結果,圖形將需要的各種形式,如

  1. 總體統計(圖表顯示每分鐘/小時/天的攻擊頻率,今天的攻擊次數,攻擊型攻擊次數,前10名攻擊者)

  2. 每個傳感器(圖表顯示每分鐘/小時/天的攻擊頻率,今日傳感器1攻擊,攻擊型攻擊數量,前10名攻擊者)

  3. 每次攻擊型(餅圖)

每種攻擊類型的信息可以有很大不同,並會有其他一些信息有,有些沒有(如DoS將具有攻擊者地址,而用於上傳文件的Remote Exploit將具有攻擊者地址和文件名)。

最初我通過創建Classes來實現這個目標,這裏有一個DoS數據結構,其中可以存儲攻擊的所有細節,並且這些細節存儲在一個向量中,但最終會變得非常快速。

對我來說,最明顯的解決方案是創建一個數據庫(MySQL?)和每個攻擊類型的表,從中獲得所有的1.,2.和3.信息僅僅是一個SQL查詢。

但是,我不禁感覺到我的數據庫解決方案有點兒麻煩,而且我在這裏錯過了一些東西,所以在對我在這裏問的問題點頭之後。

任何指針非常感謝!

回答

1

我傾向於將「攻擊」的整個概念作爲由描述任何類型攻擊所需的所有潛在對象和字段組成的類來構建。您可以根據需要指定接口來指定每個特定攻擊類型的合約(用於工廠創建等),然後將整個對象持久保存到與您的實現類結構幾乎相同的模式的數據庫中。這應該可以讓你有一個非常好的能力去做你想要的報告,我認爲實現將是相當簡單的。

不知道你的攻擊樹有多大,有點難以確定我的方法是正確的,但也許這是有用的。

+0

聽起來很有希望,你建議在什麼數據庫中存儲對象? 我的攻擊樹絕不是很大 – 2010-02-09 13:18:48

+0

我想這取決於你的部署將會有多複雜,以及你期望捕獲多少流量。最簡單的解決方案之一是使用像H2(http://www.h2database.com/)這樣的東西,它可以直接嵌入到你的應用程序中,並且具有相當全面的SQL方言。如果您正在爲您的ORM解決方案考慮此問題,還有一種Hibernate方言。如果你想要更多的靈活性或需要更多的性能,我會傾向於MySql或PostgreSQL(http://www.postgresql.org)。對於你在做什麼,我猜測熟悉是選擇其中一個關鍵因素。 – Ickster 2010-02-10 01:14:40

0

不知道,但你描述什麼樣的OLAP多維數據集的外觀,所以也許可以考慮使用star schemasnowflake schema,並看看像Pentaho

完整的商業智能平臺,包括報告,分析(OLAP),儀表板,數據挖掘和數據集成(ETL)。

+0

我同意,但您是否還需要將數據存儲在第一位?聽起來像OP還沒有那樣做! – Timothy 2010-02-16 14:31:37

+0

@timmyd非常真實。我不知何故錯過了,但並不確定OP要求什麼。我會更新我的答案。 – 2010-02-16 15:10:43

相關問題