这样的应用如何进行架构?
由于初次涉及到软件架构,对于架构的知识和经验的十分缺乏,不知道如何做好架构,希望有这方面经验的朋友来谈谈您的看法,多多指教一下,多给点建议,小弟不胜感激。
产品是一个网络安全设备管理软件,可以对多台硬件防火墙,路由器等进行管理,监控,日志收集,及报表生成。
由于要对多台设备同时进行实时监控,日志收集有时会达到20000条/秒,甚至更多。报表生成更需要处理海量数据,所以性能及其重要。
已经有CS版,用C++写的。应用户需求现在想推出BS版。
(1)实现B/S版,用户可以在浏览器端管理安全设备。
(2)性能:至少保持现有性能。
(3)稳定性:至少保持现有稳定性。
(4)易用性(安装,使用,升级)。
(5)培训成本:跟原来版本差异不大。
(6)调试:调试方便。
(7)测试:测试方便。
(8)架构:符合需要,并有一定的前瞻性。
(9)扩展性:适应一倍以上的需要膨胀。
(10)安全性:高
(11)工作量:尽量减少
(12)开发:可以快速开发,尽可能的复用以前的代码,
(13) 新增的Web代码需要易容开发和维护,把主要的精力专注到核心业务处理上(如性能的提高,软件的稳定等)。
2.设想软件结构:
a.平台选择.net: 原因:满足(4),(6)VC++ ,C#,Silverlight都可在VS下开发,微软的现成的诸多类库和框架。减少了大量的工作量,使有更多的精力专注到核心业务处理,而用少量的精力就可以处理界面展示问题 b.服务器实现方式:将老服务器封装成Dll,使用WCF技术通过.net平台调用调c++Dll,并封成Wcf服务。 原因:满足(12),(13),(10)WCF提供了很多提高安全的方法。 c.管理器:使用Silverlight,使用MVVM架构 原因:满足(4),(6)Silverlight良好的支持WCF,支持双向通讯。在VS平吧下易容开发。并能得到良好的用户体验。
以上列出软件结构只是我的一种简单设想。我只是简单的根据需求本能列出想法,并没有对它进行深入的调研。
如:富应用程序应选择那种技术(ajax+asp.net、silverlight、flux、还是ajax+php);.net平台调用性能损耗情况如果;WCF的并发处理支持情况.等等。希望有经验的朋友能给点建议.
1.一般类似的软件升级到Web版是如果架构的。采用些什么技术?
2.Web版开发中需要注意那些。瓶颈在那?
3.Web版性能的处里通常用那些方法?
4.Web版安全性一般是怎么考虑的?
我列出的问题只是抛了块砖,肯定还有很多需要考虑,希望欢迎大家来讨论,帮一下我,谢谢。