近期工作是分析某个业界产品的架构与设计,重点关注其支持配置和二次开发的特性,过程中感觉有些设计值得借鉴,在此总结一下
背景:
系统大致上是C/S架构
server可以响应多种client的请求。client包括与产家提供的标准client,也包括用户自行二次开发的client
浏览器不直接访问Server,而是专门由单独的Web Server提供页面,因此可以认为Web Server是一个特殊的client
设计的关键点:
一、Server在逻辑上划分为接口层和业务逻辑层。client不会直接访问业务逻辑层,所有的请求都是由接口层处理的
二、接口层抽象了请求的差异,提供了若干统一的接口。这个其实是接口粒度的设计问题
三、产商向客户提供了二次开发SDK,客户如果需要自行二次开发client,就需要用到这个二次开发SDK
通过这种设计,对客户端隐藏了server的实现细节,从而至少带来了3个好处:首先是方便,其次是安全,然后是客户端稳定性
方便:想象一下,如果没有API,那么client要与server交互,就必须自行处理建立连接、封装协议、组装数据、解析响应、校验身份……那么二次开发的难度就会很大
安全:通过抽象的接口,向客户端隐藏了server的具体实现
客户端稳定性:只要接口层保持稳定,那么server端的修改,就不会对client造成影响,还可以实现向下兼容的特性
其实仔细想一下,会发现这种设计和模块设计的原则是一致的,即需要交互的两个模块(client和server),不直接依赖,而是通过接口(接口层)交互,彼此不了解对方的实现,达到松耦合
至于提供了SDK,我认为不是核心,只是锦上添花
分享到:
相关推荐
头脑风暴法之一种值得借鉴的数学教研活动方式.pdf
本项目是一个高仿微米UI的项目,虽然是个UI项目但是很多东西还是值得学习和借鉴的,例如里面漂亮的仿IOS开关、仿QQ的圆角退出登录按钮 、字母索引、图文混编、九宫格图片多选、二维码扫描、仿微信的附近的人列表、仿...
我在用MFC实现duilib界面时,借鉴的几种很有价值的参考代码实例,包含有: MFC中使用Duilib; Duilib中使用MFC; Duilib实现加载gif图; ……
值得借鉴 的C++课件值得借鉴 的C++课件
但也有些要自己设计框架的,那就要搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。2)理解电路如果你找到了的参考...
一个值得借鉴的发牌程序,希望可以帮到大家
一个值得借鉴的OA系统。其中涉及权限管理,以及树形导航结构等。
python资料 值得借鉴学习
标志设计创新思路借鉴.pdf
一个值得借鉴的并购重组税务筹划案例.docx
图书管理系统 值得借鉴
本文档属于转载,介绍了FPGA中的同步设计,非常值得借鉴和参考。
Matlab值得借鉴的几个动画-MATLAB动画设计.rar MATLAB动画设计.rar
正在研究统计分析问题,值得借鉴,值得学习
一款简单的反汇编引擎的源码 ,值得借鉴。
日本外包软件开发规约 看看做事的态度啊 值得借鉴
值得借鉴的教学工作总结.doc
值得借鉴的台湾学前教育.docx
人口数据库顶层设计思路.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~