[架构]FileZilla Server架构分析
2013-05-01 08:55 鉴于 阅读(418) 评论(0) 编辑 收藏 举报FileZilla Server是一个开源的FTP服务器软件。分析一下它的架构设计为以后架构选型提供方案。
FileZilla Server由两部分组成,Service和配置工具,如下图:
FileZilla Server解决方案下有3个项目,
FZS Interface 配置工具
Service FTP服务
Zlib 开源压缩、解压库
在安装时首先会将Service注册为系统服务,开机自动运行。用户运行配置工具后,FZSInterface将会使用TCP链接Service,通信相应的处理,配置用户信息、设置工具目录等。
配置工具中会创建一个CAdminSocket对象,用于和Service通信,CAdminSocket从CAsyncSocketEx派生出来。CAsyncSocketEx和MS的CAsyncSocket类型,但是效率比MFC类CAsyncSocket效率高一些,因为CAsyncSocketEx能够同时开多个消息窗体,而CAsyncSocket所有socket都在一个线程上处理,同一时间只能有一个Socket通知事件。
将Server做成windows服务是一个很好的选择,避免网络通信受UI影响,而且可以直接让UI跟后台部门耦合度降低,两者间直接用TCP通信解决。两个模块可以并行开发,之间只要约定网络数据交互的格式就行。