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

mjlqq 2010-07-10 10:08:54

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

前言:
由于初次涉及到软件架构,对于架构的知识和经验的十分缺乏,不知道如何做好架构,希望有这方面经验的朋友来谈谈您的看法

,多多指教一下,多给点建议,小弟不胜感激.

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

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

其重要。

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

需求:
(1)实现B/S版,用户可以在浏览器端管理安全设备。
(2)性能:至少保持现有性能。
(3)稳定性:至少保持现有稳定性。
(4)易用性(安装,使用,升级)。
(5)培训成本:跟原来版本差异不大。
(6)调试:调试方便。
(7)测试:测试方便。
(8)架构:符合需要,并有一定的前瞻性。
(9)扩展性:适应一倍以上的需要膨胀。
(10)安全性:高
(11)工作量:尽量减少
(12)开发:可以快速开发,尽可能的复用以前的代码,
(13) 新增的Web代码需要易容开发和维护,把主要的精力专注到核心业务处理上(如性能的提高,软件的稳定等)。


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


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版安全性一般是怎么考虑的?


我列出的问题只是抛了块砖,肯定还有很多需要考虑,希望欢迎大家来讨论,帮一下我,谢谢。
...全文
102 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjlqq 2010-07-10
  • 打赏
  • 举报
回复
谢谢zhangweiit的回答:
应用是在外网使用,内网当然也可以部署。
使用silverlight主要是考虑到,有时实监控,需要用到推和拉双向通讯。
zhangweiit 2010-07-10
  • 打赏
  • 举报
回复
楼主问的这些问题,都是大问题,泛问题,自己多查资料的比较好
zhangweiit 2010-07-10
  • 打赏
  • 举报
回复
如果管理功能不复杂的话,用AJAX也可以,silverlight适合于你的WEBGUI比较复杂的情况,或是需要SOCKET连接的时候
zhangweiit 2010-07-10
  • 打赏
  • 举报
回复
楼主20分,搞这么多问题啊,呵呵

看了楼主描述的需求,觉得,原来的CS版本,还是有很多复用的地方
新项目,可以基于asp.net + silverlight
原来VC的部分,都可以封装成让c#调用的DLL

1.一般类似的软件升级到Web版是如果架构的。采用些什么技术?
WEB版用什么架构,MVC嘛,ASP.NET,本身就按这种架构做了

2.Web版开发中需要注意那些。瓶颈在那?
你这个应用是在内网的,WEB访问不会成为瓶颈

3.Web 版性能的处里通常用那些方法?
同上,性能在此无WEB无关,WEB只是一个管理入口,查询,控制的作用

4.Web版安全性一般是怎么考虑的?
ASP.NET的安全性,就是IIS的安全性,还是那句话,既然是内网应用,安全性都没什么问题


mjlqq 2010-07-10
  • 打赏
  • 举报
回复
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.如果你面临这样的情况,这样的团队,这样的需求。你会怎么去考虑这个项目,你会采用什么方法去架构这个项目呢?
mjlqq 2010-07-10
  • 打赏
  • 举报
回复
@jbz001
所以关于安全通讯,我想采用WCF自带的诸多安全设置来完成。
mjlqq 2010-07-10
  • 打赏
  • 举报
回复
@jbz001

:)已经没有分了。
jbz001 2010-07-10
  • 打赏
  • 举报
回复
楼主应该给300分
zhangweiit 2010-07-10
  • 打赏
  • 举报
回复
如果是要实时监控的话,那确实silverlight比较合适

如果使用了silverlight那安全就包括好几个方面了
服务器系统的安全,这主要交由系统管理员负责了
数据库的安全,也是系统管理员负责
SOCKET连接的安全,在每次提交数据时,最好要有验证串
ASP.NET 的WEB安全,一般用SESSION验证

当然,我讲的是比较粗略的
具体的问题,你要做了才会碰到

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧