这样的应用如何进行架构?

这样的应用如何进行架构?这样的应用如何进行架构?

  • 前言:

   由于初次涉及到软件架构,对于架构的知识和经验的十分缺乏,不知道如何做好架构,希望有这方面经验的朋友来谈谈您的看法,多多指教一下,多给点建议,小弟不胜感激。我知道此类请教的贴子不适合发布在,因为发布到首页规则是:原创、思考与写作时间在1小时以上,能够让读者有真正的收获但是由于求真心切。也希望更多人参与讨论。希望大家能够理解。如果大家实在对非常排斥,我马上去掉。

 

  • 背景:

   产品是一个网络安全设备管理软件,可以对多台硬件防火墙,路由器等进行管理,监控,日志收集,及报表生成。

   由于要对多台设备同时进行实时监控,日志收集有时会达到20000条/秒,甚至更多。报表生成更需要处理海量数据,所以性能及其重要。

   已经有CS版,用C++写的。应用户需求现在想推出BS版。

 

  • 需求:

(1)实现B/S版,用户可以在浏览器端管理安全设备。 

(2)性能:至少保持现有性能。

(3)稳定性:至少保持现有稳定性。 

(4)易用性(安装,使用,升级)。 

(5)培训成本:跟原来版本差异不大。 

(6)调试:调试方便。 

(7)测试:测试方便。

(8)架构:符合需要,并有一定的前瞻性。 

(9)扩展性:适应一倍以上的需要膨胀。

(10)安全性:高

(11)工作量:尽量减少 

(12)开发:可以快速开发,尽可能的复用以前的代码,

(13)  新增的Web代码需要易容开发和维护,把主要的精力专注到核心业务处理上(如性能的提高,软件的稳定等)。

 

  • 软件结构: 

  1. 1.原软件结构:管理器,服务器,单纯的VC++编写,使用原始的套接字通讯

技术架构图和功能架构图的区别_WCF

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平吧下易容开发。并能得到良好的用户体验。

 

 

技术架构图和功能架构图的区别_Silverlight_02

 

  • 问题:

    以上列出软件结构只是我的一种简单设想。我只是简单的根据需求本能列出想法,并没有对它进行深入的调研。

如:富应用程序应选择那种技术(ajax+asp.net、silverlight、flux、还是ajax+php);.net平台调用性能损耗情况如果;WCF的并发处理支持情况.等等。希望有经验的朋友能给点建议.

1.一般类似的软件升级到Web版是如如何架构的。采用些什么技术?

2.Web版开发中需要注意那些。瓶颈在那?

3.Web版性能的处里通常用那些方法?

4.Web版安全性一般是怎么考虑的?

 

  我列出的问题只是抛了块砖,肯定还有很多需要考虑,希望欢迎大家来讨论,帮一下我,谢谢。

 

    update :

 

首先谢谢大家的参与,看了大家评论,感觉自己还是没有把碰到的情况,和自己的意图说清楚,再补充几点:

1.Web版主要跑在外网,方便用户随时随地查看安全设备状态,不需要安装庞大的客户端软件,(考虑使用sl是因为它小和flash一样只要安一次,就再也不用安装,而使用asp.net +ajax,或,ajax框架+html是必写大量的代码还需要处理浏览器兼用问题。开发人员必须有web开发经验);如果是局域网的话现有的C/S版已经可以胜任了。

 

2.我们的团队有几个人,90%都是只有C/S的开发经验。

 

3.我们想在Web上能跑,保证一定的安全性和前瞻性,但又不想在Web那上面花太多的时间。而想更多专注核心业务。 

 

4. 我现在能想到的就是第二个图所示的:C#调C++DLL封装成WCF服务,WCF服务与Silverlight通讯实现UI的管理这样的架构。也想采用这个架构,但徘徊不定,这会有问题吗?缺点在那?那些地方没想到?

  

       5.如果你面临这样的情况,这样的团队,这样的需求。你会怎么去考虑这个项目,你会采用什么方法去架构这个项目呢?