软件构架实践:对一些质量属性使用的战术

下面是我在做一个产品中总结的对于一些常用质量属性使用的战术,对于质量属性驱动的软件构架有一定的指导意义。

一、   可用性战术

1HAC双机热备:主动式冗余,切换时间非常短,数据和计算都热备

2)总控双机热备:被动式冗余,异地数据灾备,主要是数据的热备,发生故障,需要手工切换

3)故障检测:提供ping后台主机、总控和HAC心跳检测、日志空间告警、内存/日志空间检测、异常信息记录至日志文件、升级操作的回滚

4)错误预防:进程监视,如果异常退出则重启;配置备份和恢复;日志备份

 

二、   可修改性战术

1)功能模块划分独立,封装变化点,降低模块依赖性,接口保持不变,能够适应需求变更,需求变更只需做局部化少量修改;

2)使用ODBC操作数据库;

3)采用配置文件,使得用户可灵活设置想要的功能;

4)防止连锁反应,即修改一个错误导致另一个错误的产生,通过代码复查、单元测试、QA、生产人员多道关卡;

5(软件热插拔,多态性)

 

三、   性能战术

1)资源管理战术:

      增加可用资源:更快的处理器、多处理器、更大的内存、硬盘,分1U2U设备;

      采用缓冲技术:减少资源竞争;

      引入并发机制:大量采用多进程、多线程技术

      负载均衡:VDH采用负载均衡

2)资源需求战术:

      提高计算效率:使用更高效的算法;找出处理的瓶颈部分,采用异步处理方式

      减少计算开销:优化各个进程的内存和CPU占用率

      控制取样频率:总控系统收集会话日志文件控制了下载的速度;

3)资源仲裁战术:

      采用合适的调度策略:日志文件二次处理采用FIFO队列方式;保证实时进程的优先级;    考虑线程的优先级问题

 

四、   安全性战术

要求:不可否认性、保密性、完整性、身份一致性、可用性(没DOS

1)抵抗攻击战术:

      身份认证战术:静态口令、动态令牌、证书key认证、LDAP认证、A/D域认证、Radius认证、(生物识别技术)

      授权战术:基于角色和权限的方式进行访问控制;访问时间控制;访问时长控制;IP地址黑白名单;

      保密性战术:传输过程加密,SSL技术,https技术,(VPN技术);文件存储加密;密码存储加密

      完整性战术:传输过程的完整性依赖于SSL的哈希算法;升级包的完整性采用生成MD5校验的方法;文件的变化使用sum程序来检测;

      可用性战术:总控和HAC之间的连接为独占式长连接,其他连接一律拒绝,DOS攻击也无效;

      限制开放端口:比如常用服务端口,不用的时候都关闭,比如ssh端口22

2)检测攻击战术:

      通过审计日志记录,可以识别一些非法的攻击记录,追踪攻击者,支持不可否认性

3)从攻击中恢复:

      使用前面提到的可用性战术,备份、冗余等技术;

      采用电子盘技术,程序无法被篡改,重启后即可恢复;

     

五、   可测试性战术

可测试性目标:允许在完成软件开发的一个增量后,较轻松的对软件进行测试。

测试在系统开发中占很高比例,在架构设计时可测试性往往得不到足够关注。

1)(接口与实现分离,允许实现的替换,以支持各种测试目的;

2)组件、模块或子系统提供可测试的接口;

3)提供内部监视器,以方便测试人员获取各种组件、模块或子系统的状态;)

 

六、   易用性战术

1)界面风格统一,操作简单。

2)界面与业务逻辑分离。

3)(文档视图架构);

4)(MVC模式);

5)(表现抽象控制);

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2009年11月26日
下一篇 2009年11月26日

相关推荐