可靠性03

来源:互联网 发布:电影搜索下载软件 编辑:程序博客网 时间:2024/05/22 09:44
桌面应用程序可靠性关注点说明桌面应用程序主要指在个人电脑上独立运行的应用程序,通常基于Windows平台,典型的桌面应用程序如Web浏览器,即时通讯客户端,IDE等类别场景可靠性分析和要求数据可靠性桌面应用程序的重点是对数据进行处理,保证数据文件的完整性是其最基本也最重要的可靠性要求应用进程非正常退出、操作系统崩溃、宕机、掉电不破坏数据完整性。要求乒乓写、双写等机制,或通过日志机制支持数据恢复。文件系统被破坏,系统重装等数据与系统、应用相分离,支持备份恢复(包括业务数据导出导入、服务器侧自动备份和恢复等)客户端数据发生变更,或与服务端数据不一致支持数据一致性校验及自动同步输入及环境输入异常:配置、文件、消息、GUI接口等对输入错乱、非法、消息丢失、连续点击等容错保护环境异常:操作系统/组件版本、环境变量、系统资源(如IP)等支持有效性检查,能够快速定位网络暂时性中断,服务器端重启或切换等连接吊死检测及自动恢复;支持离线模式进程重复启动,时间跳变(时钟同步调整,夏时制,闰秒)能正常处理应用资源容错部分功能异常,应不影响其他功能和整体进程级资源物理隔离(类似浏览器的标签隔离,如IE8的LCIE,Firefox的OOPP),TLS(Thread Local Storage)线程资源隔离资源状态异常或吊死:线程、内存池、消息池、连接池状态(退出或吊死)或占用率检测,超时释放程序指针跑飞,或缓冲区溢出,在未标记为可执行的内存页运行代码启用DEP/NX机制(Windows XP以上支持)插件管理单个插件异常(资源占用超限,访问空指针等)故障检测与隔离,可参考Firefox的Multi-process plugin architecture,通过shim layer提供IPDL调用隔离插件运行环境与主进程单个插件管理及升级,应不影响其他功能插件支持版本管理,在线升级用户自定义脚本缺陷(变量定义超过容器能力,死循环等)对用户自定义脚本支持限额保护,状态检测及恢复等故障恢复及定位主进程异常退出通过SEH捕获已知异常,通过SetUnhandledExceptionFilter捕获未知异常,通过DbgHelp.dll记录调用堆栈到DUMP文件主进程吊死或无响应支持应用进程hang检测及恢复,配合RestarManager机制(Windows Vista以上支持)主进程异常重启,尽量恢复到故障前的工作状态检查点技术:处理过程自动保存,故障后自动恢复,配合RestarManager机制恢复工作状态远程发送错误报告参考Windows错误报告机制(WER:Windows Error Reporting),可将程序异常的DMUP信息发送到指定的远程服务器计划性活动自动升级支持最新版本检测,自动下载,自动或手动升级版本兼容性程序与数据或配置之间跨版本兼容,或提供转换能力错误配置回退,或按典型场景多份配置支持配置回退,或配置导出/导入,多用户配置能力
0 0