概况
大部分的应用都会包含一些跨越逻辑层和物理层的通用功能。这些功能包括:用户认证、授权、缓存、通信、异常管理、日志、基础框架和合法性验证。这些功能通常被叫做“跨层关注”,因为它会影响整个应用,应该尽可能将他们的代码集中在一起。如果这类代码散落在各个地方,需要修改的时候,就需要打开每个地方进行修改;如果集中管理的话,只需要打开一个地方,修改一个地方就可以了。
通常的设计考虑
在设计跨层关注功能的时候,可以考虑下面的因素:
- 检查在每层的功能需求,找到可以抽象出来的功能,这类功能很可能在应用的其他地方也会用到。
- 依赖于应用的物理层和逻辑层部署方式,可能需要在多个物理层部署跨层关注组件。但是你仍然会得到独立跨层组件在可复用性和减少开发时间方面带来的好处。
- 考虑使用DI依赖注入的方式,在配置的基础上,将跨层组件的实例注入到应用中。这将会允许你很容易的修改组件的实现,而不用重新编译和部署整个应用的代码。可以参考:模式和实践小组,Unity。
- 考虑使用第三方的组件,可以减少开发时间。例如:模式&实践小组的企业库。
- 考虑使用AOP技术将跨层关注编织到应用中,而不是硬编码到应用中。Unity和企业库的Policy Injection Application Block支持这种方式。另一个是Castle Windsor和PostSharp。
特殊的设计问题
通常碰到的设计问题包括:
- 用户验证
- 授权
- 缓存
- 通信
- 配置管理
- 异常管理
- 日志和性能指标
- 状态管理
- 数据验证
1 用户验证
设计一个好的用户验证策略对于应用的安全性和可靠性来说是非常重要的。在设计的时候,可以参考下面的原则:
- 确定你的可信边界,需要验证的用户,以及跨越可信边界的调用。
- 强制使用密码策略。
- 如果有多个系统,用户一定要跨越多个系统,考虑使用SSO。
- 不要明文传输密码,不要明文存储密码。应该存储密码的哈希值。
2 授权
- 确认你的可信边界,需要验证的用户,以及跨越可信边界的调用。
- 通过用户的身份来保护资源。
- 考虑使用角色为基础的业务授权机制。
- 考虑使用ACL。
3 缓存
- 为缓存选择适当的位置。如果在web服务器场的环境使用缓存,避免使用本地缓存,因为还需要数据同步。考虑使用是分布式缓存,Memcached或者是Velocity。
- 考虑在内存中缓存强类型的数据,而不是数据库的原始形式DataRow之类的,缓存对象方便使用。
- 不要缓存敏感数据。
- 不要依赖于缓存的数据, 因为它有可能已经被移除了。在访问缓存数据失败的时候,从数据源重新获取数据。
- 在多线程访问缓存的时候,需要特别小心,确保是线程安全的。
4 通信
5 配置管理
6 异常管理
7 日志和仪表盘
8 状态管理
9 数据验证
缓存的设计步骤
1 确定缓存的数据
2 确定数据缓存的位置
3 确定数据缓存的格式
4 确定一个适当的数据缓存策略
5 确定如何加载数据到缓存
异常管理的设计
1 确定要处理的异常
2 确定异常发现策略
3 确定异常传播策略
4 确定自定义异常策略
5 确定收集适当的异常信息
6 确定异常日志记录策略
7 确定异常通知策略
8 确定如何处理未预期的异常
设计输入和数据验证
1 确定可信边界
2 确定关键的方案
3 确定在什么位置进行数据验证
4 确定验证策略
分享到:
相关推荐
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 ...
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。
一、前言本文件主要规定了在 2020 C-V2X“新四跨”暨大规模先导应用示范活动中,车载终端和路侧设备的接入层参数和 AID 取值配置要求。二、接入层参数(一
SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注。 目录如下: 第一章 SV环境构建常识 1 1.1 数据类型 1 四、二值逻辑 4 定宽数组 9 foreach 13 动态数组 16 队列 19 关联数组 21 ...
AADL 学习笔记参考文件 AADL 标准V2
SystemVerilog路科验证V2是一个SystemVerilog的听课学习笔记,包括讲义截取、知识点记录、注意事项等细节的标注,可快速获取自已需要的知识,喜欢的平台可下载试试! 介绍设计描述和验证语言SystemVerilog的基本...
【SystemVerilog】路科验证V2学习笔记.7z
计算机应用行业:C-V2X四跨互联互通示范应用举行在即.pdf
王晓波-从微服务到Serverless+架构应用与实践V2-32页.pdf
一、大规模验证意义: 定位2:面向公众演示多样化的C-V2X功能和服务 • 相较2019四跨,上海...在2019年四跨基础上,增加高精度地图和定位,探索C-V2X在地图和定位方面面临法律法规问题的解决方案,进一步推动产业发展
《合作式智能运输系统 车用通信系统应用层及应用数据交互标准》(TCSAE 53-2017)全文 中国 V2X 标准.pdf
微服务架构分享V2.pptx
王晓波-从微服务到Serverless+架构应用与实践V2.pdf
计算机应用行业:C-V2X四跨互联互通示范应用举行在即
云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2.docx云平台系统架构设计文档v2....
大型金融数据中心网络架构设计V2.pptx
NoSQL数据库技术__城市时空数据引擎JUST的架构与应用实践V2.zip
参考书,淘宝技术架构介绍,可用于研究学习。
包含V2X应用层ASN1一期与二期编码文件,用户可利用asn编解码工具生成源文件与头文件、消息集包括BSM/MAP/二期扩展消息
V2X 通过无线通信技术将车辆(Vehicle)与周围万物(X)连接起来。汽车之间(V2V),汽车与基础...进一步地,在应用场景的基础上,阐述了国内应用层消息集的标准化进程,并指明后续与应用场景相关联的重点研究方向。