框架需求分析设计-----通信
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了框架需求分析设计-----通信相关的知识,希望对你有一定的参考价值。
年前的事情终于可以放一放了,拿了解除劳动证明后去新公司报到,新公司离住的地方不到10分钟,中午都可以回家吃饭了,现在要做的是把公司的需求写出来,然后再去实现它,写一个DEMO,也希望园友们有好建议或好想法的可以讲出来,在此先谢谢各位了。
首先说要做的是一套ERP系统基础框架,分为客户端与服务端,部门经理跟我说他们现在用的是socket技术,使用C++来做的,这样做任务量会比较大,另外一个好像扩展性不是很好,所以希望我用.net去实现。具体实现的要求差不多如下:
1、能够采用多种通信协议,如客户端用winform,webpage操作数据或文件传输,所以希望至少可以用比较主流的协议,如Http, Tcp, Udp等,在特殊情况下,可以配置或切换通信协议。
2、服务端是可扩展的,就是说服务端中的应用服务器是把客户端中的请求转发到相应的Dll中的对应函数去处理的。
3、客户端将请求数据组装成特定格式的请求数据发送给服务端,然后交给服务端去解析并转发到相应的处理模块。
4、客户端分为两层,UI表示层与UI逻辑层,逻辑层将收集到的UI数据进行封装,交有中间通信层发送给服务端。
5、服务端根据客户端发送过来的数据进行解析和处理,处理逻辑层可以扩展,不仅仅只是数据相关操作(CURD),还可能包含其他处理逻辑。
上面是主要需求,至于像事务,安全,可靠性等可以先不考虑,前期demo先考虑客户端与服务端的通信。实现数据的相关操作(CURD)。
基于上面的需求,个人建议使用wcf实现通信,它本身支持多种协议,安全,可靠性等方面也是wcf的优势。在客户端封装一个请求消息类,类中包含消息头与消息体,其中消息头中包含消息请求类型,比如是数据库的查询还是操作,另外是一些附加信息,如请求时间,要请求处理业务逻辑的程序集,函数等,消息体则是请求数据内容,比如将UI窗体中的数据插入到数据库表中,则请求体则是包含此UI窗体数据的封装体,格式可以采用XML,JSON等。然后再调用wcf通信层将请求数据发送给服务端。
服务端将接受到的客户端请求头进行解析, 找到请求头中的程序集与处理函数,通过反射创建包含处理方法的对象,再通过反射调用相应方法,从而可以实现处理逻辑层的扩展,从而实现一次服务调用。当然也可以使用一个文件来存储程序集与处理函数相关的信息,每行代表一个处理函数,在系统刚运行时就可以把文件中的信息读取到系统的内存中。客户端请求头仅保存能够找到文件中唯一处理函数信息的键即可。
上面是关于通信部分的主要设计思想,像其他的部分暂时先不考虑,其他层则包含:
1、Common层:日志与其他公共方法的封装体。
2、Entitiy层: 数据库表对象对应的实体类。
3、DAL层:数据库访问层,可以采用一些比较流行的库。
4、IDAL层:数据操作接口层。
5、DLL层:数据业务逻辑层,处理数据业务。
6、UI层:主要包含UI表示层与UI逻辑层。
如果有更好意见的提出来,一起成长,共同进步,谢谢~~~~~
以上是关于框架需求分析设计-----通信的主要内容,如果未能解决你的问题,请参考以下文章