1 WEB层
1.1 总体概括
Web端即前端(严格意义上,Andriod和iOS都可以套用),是直接面对用户的层级,所以基本上所有的模块都跟用户相关,主要包括以下几点。
1.2 页面设计
主要是按照美工的设计图,在浏览器或者终端(包括手机、平板等)上实现一模一样效果的过程,也就是常说的浏览器界面。
1.3 用户交互
主要是和用户进行互动交流,比如识别用户的手势是点击还是滑动,用户点击的是按钮是前进还是后退等等。
1.4 数据收集
收集数据,上传到服务器,比如用户数据,包括用户名密码,邮件,手机号等,还可以获取用户的行为数据,比如浏览的商品,聊天的信息等。
1.5 数据展示
从服务器获取数据,并且展示给用户,比如设备的信息,商品的列表等等。
1.6 文件下载
提供给用户下载文件的功能。
2 API接口层
2.1 总体概括
服务器的接口层主要是提供数据接口,让前端或者终端访问服务器上的数据,也需要对用户提交的数据做相应的处理,主要包括以下几点。
2.2 数据解析
根据前端上传的特殊数据格式(json或者xml格式)解析出需要的数据。
2.3 数据过滤
校验是否为有效数据,保证数据的正确性,因为可能会接收到不符合格式的数据。
2.4 错误验证
保证数据格式正确之后,还要保证数据提交的数据是否合法,比如非法的用户名,密码,邮箱地址,手机号等,如果不正确,不需要提示用户。
2.5 安全验证
数据格式正确而且合法还不够,还要保证数据在传输中没有被串改,所以需要对数据做一些常用的加解密(RSA,MD5,SHA256等)认证
2.6 基础配置
一些前端需要储存在云服务器的基础配置,比如不同地方的用户,需要访问不同区域的服务器,所以要先识别用户来源,再从服务器获取距离用户最近的服务器地址访问,还有一些不能放在设备本地的数据(加密私钥,商业信息等),都需要储存在服务器上,只有通过服务器验证,才可以提供。
3 业务逻辑层
3.1 总体概括
这是后台软件架构中,最关键的一个层级,这里主要是对识别出的数据做进一步的处理,比如做数据分析,统计,或者直接写入数据库等等,所以这个层级涉及的模块也会因需求的不同而变化,下面列举的模块都是根据目前需求定义的。
3.2 用户管理
对用户的信息进行分类管理,从不同维度去区分用户,比如是企业还是个人,是付费用户还是免费用户等等。
3.3 权限控制
对用户的权限进行控制,比如不同等级的用户可以使用的功能不同,可以查看的信息不同等等。
3.4 数据分析
对目前得到的数据进行数据分析和总结,得出规律,这主要帮助运营人员了解产品的受欢迎程度和用户的特征等,从制定有效的销售活动和方案等。
3.5 数据缓存
对常用数据进行缓存处理,这个模块主要是优化服务器的响应速度,从数据库读写数据实际是从磁盘读写数据,而缓存是把数据储存在内存中,所以读写速度要更快。
3.6 数据入库
把数据写入数据库,进行持久化储存,读写数据库也是服务器工作的核心。
3.7 文件转存
把一些比较大的文件(图片,视频)储存到特定的地方,比如内网环境可以是专门的文件服务器,外网环境可以考虑使用一些成熟的CDN加速节点(比如阿里云的OSS,又拍云等)。
3.8 故障报警
对特定的故障设置报警机制,比如服务器运行异常,或者监控的设备参数异常,或者用户的行为异常等等,报警方式可以使用邮件,短信,钉钉,微信等。
3.9 日志收集
对服务器的日志进行收集,主要用于查看服务器的运行状态和发生异常状况后,快速排查问题等。
3.10 访问控制
对访问的来源进行控制,常见用法就是设置白名单,只有白名单内的ip地址才开放访问服务器的权限。
4 数据持久层
4.1 总体概括
这一层级所有的操作都是针对数据库的,数据库是整个软件架构中最重要的一部分,之前的所有服务器行为实际上都是围绕数据库的读写进行的,下发数据实际就是读取数据库的数据,然后发送给前端和终端,收集数据就是需要将前端或者终端提供的数据写入到数据库当中。细分模块,主要包括以下几点。
4.2 数据读写
从数据库中读写数据,这是数据库最基本的功能。
4.3 优化查询
优化数据库的查询速度,提高数据库的查询效率,数据量越大,这里的要做工作就越多。
4.4 数据结算
对特定的数据进行结算,比如每月的订单总额,或者每月新增的用户等,主要也是提高查询速度,满足部分运营需求。
4.5 数据安全
保证数据安全,数据库中保存的都是公司或者用户十分隐私的数据,需要保证数据的安全,常见做法就是数据加密保存,关闭数据库远程访问端口,对数据库设置密码等。
4.6 数据备份
为了防止意外,需要定时对数据库进行备份,以防数据丢失。