什么的软件算可靠

 

软件必须具有复原性

软件必须是可恢复的

软件必须可预测

必须不可中断

软件必须是生产就绪的

 

 

应用程序的复原能力取决于其薄弱的一环。

 

运行时故障

异步异常:这些异常在任何时候,任何代码中都有可能会发生,包括资源耗尽(内存不足和堆栈溢出)、线程终止和访问冲突。(在执行托管代码时,访问冲突会再运行时发生)

 

几个发生在运行时的分配示例,他们在资源有限的环境中可能会发生故障:

  • 装箱和取消装箱
  • 延迟的类加载,直到第一次使用类为止
  • 对MarshalByRef对象的远程操作
  • 对字符串的某些操作
  • 安全检查
  • JITing方法

无法预测何时可能会发生OutOfMemoryException、StackOverflowException和ThreadAbortException。因此,在大多数情况下,编写退出代码来师徒从异步异常恢复是不切实际的。

 

有三个模型可成功创建具有复原性的托管应用程序

第一个模型是使进程本身成为故障的单元,并隔离一个或多个可随时终止及随时生成的工作进程中的托管代码的执行

第二个模型是保持两个并行处理方式工作的冗余进程,其中一个处理活动状态,而另一个则处于休眠状态。一个出现故障,休眠的进程会接管任务,并生成里一个休眠的进程充当备份,以防再次发生故障。

第三个模型是使AppDomain成为故障单元,并确保该进程绝不会受发生在托管代码或运行时钟的任何故障的影响。

 

posted @ 2010-11-19 15:56  程序员阿呆  阅读(203)  评论(0)    收藏  举报