软件功能的实现,往往会分为若干流程。如今有多种多样的因素,干扰着这些流程的顺利执行。
无可奈何的网络
系统会部署在多样的实际环境中
环境中的网络架构、流量控制也各不相同
当然,网络的稳定性,也是一个变量
不说网络硬件设施的变动,而造成的网络动荡
就说说网络的稳定性,在一定程度上,很容易受到影响
简单分为硬性和软性因素:
天气变化,信号干扰,线路受损等硬性因素
路由,分流,网络设置等软性因素
这些因素,是影响流程走向正确的潜在危险
流程走向的多向选择
一个功能的流程,往往不会简单的“一往无前”
分支,循环,折回等等,都有可能出现
流程的多向性,加上网络的多样性,加大了程序出错的风险
备份成本的考虑
保证流程执行正确的一种手段是,备份正确流程节点的状态
但又要考虑时间、成本的因素
以及硬件环境的限制,诸如硬盘存储容量、数据库性能效率、程序性能(耗时、占用内存)
流程中多系统交互的影响
如今,单一系统完成所有功能,是不现实的
往往,需要在已有的若干系统上,整合新的系统功能
因此,系统间的交互,必须要考虑
但各个系统因为网络的多样性,流程的多向性,成本的考虑等,出错的几率就更大,风险也越多
这就要求新增系统必须考虑如何控制这些风险
如,系统 A 发送报文到 系统 B , B 接收成功后,反馈给 A 成功报文, A 继续下面流程
假设, A 和 B 间的报文传送出现问题, 系统 A 就面临着卡死的危险情况