2010-02-07 45 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

相关问题