zoukankan      html  css  js  c++  java
  • 通信

    通信

    年前的事情终于可以放一放了,拿了解除劳动证明后去新公司报到,新公司离住的地方不到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逻辑层。

  • 相关阅读:
    [JSOI2015]最小表示
    [洛谷2002]消息扩散
    [洛谷1726]上白泽慧音
    [CodeVS2822]爱在心中
    [POJ2186]Popular Cows
    [洛谷1991]无线通讯网
    [CQOI2009]跳舞
    [洛谷1342]请柬
    [USACO07JAN]Balanced Lineup
    [NOIp2003提高组]神经网络
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5205794.html
Copyright © 2011-2022 走看看