框架需求分析设计-----通信

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

如果有更好意见的提出来,一起成长,共同进步,谢谢~~~~~

时间: 2024-08-06 11:55:53

框架需求分析设计-----通信的相关文章

蓝牙(BLE)应用框架接口设计和应用开发——以TI CC2541为例

本文从功能需求的角度分析一般蓝牙BLE单芯片的应用框架(SDK Framework)的接口设计过程,并以TI CC2541为例说明BLE的应用开发方法. 一.应用框架(Framework) 我们熟知的Framework包括Android Framework.Linux QT.Windows MFC.应用框架抽象并封装实现了一般应用场景的需求,完成应用开发的80%,剩下的20%则以回调(callback)和接口的方式供应用开发人员调用以完成具体的需求. 一般Framework完成的工作包括:任务分

探讨插件式GIS框架的设计

三年前,听当时的师兄推荐,买了蒋波涛的一本关于GIS插件框架的书.当时一边看书一边将其中的例子完整的实现了一遍,收益匪浅.后来由于项目需要,也做过一个插件的C/S系统,用的是微软提供的MEF框架.在这个系统中,把蒋波涛在他的书中没有涉及到的插件和插件的通信完成了.不过,蒋波涛的那本书,涉及到了插件系统的很多底层内容,其中关于插件引擎的设计尤其值得学习.近来,我将自己当年实现的那个例子进行了一个总结,和大家一起分享. 1.插件式框架的组成 (1).框架分为宿主程序和插件对象两部分 (2).两部分交

《自己动手写框架9》:理想的开源框架与设计原则

理想的开源框架?她应该是小的.简单的,满足Simple Is Beautiful?她应该是成长性好的,随着不断的扩展,她可以越来越丰满?她应该是有良好工具支持的,为什么要花时间做工具可以完成的事情呢??她应该是自组装的,也就是尽可能的脱离配置,而是用一种依赖即可用,取消依赖即消失的全自动处理模式?她应该是模块化的,所有的内容都可以被打入jar包而作为一个整体进行发布,并且能支持热部署的,可以开着车儿换轮胎的?她应该是支持水平部署的,想加服务器就加,想减服务器就减?她应该是有良好知识积累体系的,使

我们一起完成插件框架的设计与实现

原文:我们一起完成插件框架的设计与实现 开场一些题外话,今天登陆这个"小菜"的博客园,感触颇多."小菜"是我以前在QQ群里面的网名,同时也申请了这个博客园账户,五年前的"小菜"在NET和C++某两个群里面非常的活跃,也非常热心的帮助网友尽能力所及解决技术上的问题.依稀记得当时NET群里面的"青菊.Allen.酷酷",C++群里面的"夏老师.风筝兄"等网友.哥们.时过境迁,后来因为某些原因而慢慢淡出了QQ群里

[连载]《C#通讯(串口和网络)框架的设计与实现》- 11.调试器的设计

目       录 第十一章     调试器设计... 2 11.1         调试接口... 2 11.2         界面方式调试... 3 11.3         命令行方式调试... 5 11.4         小结... 6 第十一章      调试器设计 SuperIO 框架平台设计.开发完毕后,想把代码编译成程序集(DLL),二次开发都通过引用DLL实现接口.继承类库来实现驱动和插件的开发,SuperIO框架的代码不会轻易去改变.这是框架设计最终要达到的效果,但是在二

框架模块设计经验总结

转自:http://www.cnblogs.com/zgynhqf/archive/2011/07/15/2107593.html 这是原创,尊重原创............ 框架模块设计经验总结 三个月没写日志了,比较懒散--下半年准备做OEA 的 B/S 版本,比较复杂,需要从架构设计开始认真入手.正好今天到了部门反思的时间,今天先把原来的一些设计经验总结一下,以方便将来回顾. 直入主题,这篇日志主要用于总结一些框架级别的模块设计经验. 总述 一个大型的框架,必然由多个较独立的子系统/子模块

企业信息系统集成框架(设计思路)C++模式

设计要求: 1.企业信息系统框架.第三方产品通过接口层进行分层. 2.企业信息系统框架如何自由的继承第三方产品:通过一个抽象类.(软件设计要求:模块要求松,接口要求紧). 设计步骤: 1.报文的接受与发送抽象类: C++与C语言设计区别:C语言中有个句柄,原因是需要分配一个结构体资源,把发送和接受的信息存储起来.而C++中由于有类的存在,可以直接将这个句柄内容存储在子类中,不需要再单独设置. 2.测试界面面向抽象类框架集成,开始初步完成测试界面. 4.厂商的产品实现(自己的头文件和.cpp文件)

activiti5.13 框架 数据库设计说明书

转载自:http://www.cnblogs.com/llzgzljl/p/3356108.html activiti5.13 框架 数据库设计说明书 1.结构设计 1.1.    逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的表.带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等). ACT_RU_*: ‘RU’表示runtime,运行时表-Runtim

Java日志系统框架的设计与实现

推荐一篇好的文章介绍java日志系统框架的设计的文章:http://soft.chinabyte.com/database/438/11321938.shtml 文章内容总结: 日志系统对跟踪调试.程序状态记录.数据恢复等功能有重要作用 日志系统一般作为服务进程或者系统调用存在,我们一般程序中使用系统调用 常用日志系统包括log4j的简单介绍 日志系统的系统架构 日志系统的信息分级 日志输出的设计 下面是全文的引用: 在Java领域,存在大量的日志组件,open-open收录了21个日志组件.日