工商银行IaaS云建设中的软件追踪研究与实践

6.8 基于框架的软件追踪是通过活动对象建立的一个运行中的应用程序,它是一个高度结构化的系统,所有重要的系统交互都是通过实时框架和状态机事件处理器完成的。这提供了一个独特的机会来实施软件追踪技术。简单地说,软件追踪类似于在代码中添加一些printf()语句,这些被称为检测代码,记录并分析从目标系统中提取的感兴趣的事件。当然,一个好的软件追踪设备可以做到比简单的printf()更少的侵入并更有效。通过适当地检测实时框架代码,你可以获得比任何传统的RTOS更详细和全面的运行系统信息。框架自身生成的软件追踪数据,允许你为系统中所有的活动对象生成完整的、带有时间戳的顺序图和详细的状态机活动图。这一能力可以为你的应用程序的整个测试策略提供基础。活动对象是测试的天然实体,你可以简单地为活动对象注入事件并收集追踪数据。框架层的软件追踪即使在没有检测装置加入应用层代码的情况下,也能提供这些全面的信息。绝大多数商业实时框架习惯使用软件追踪来提供系统内状态机的可视动画效果。QF实时框架也可以被检测,所得的软件追踪数据可以使用QS(“Q-Spy”)构件提取,我将在第十一章介绍这个构件。6.9 小结 事件驱动型编程需要与传统顺序式编程不同的范式转换。这个转换导致在事件驱动型应用程序和其基础设施之间的控制转换。事件驱动型基础设施可以是通用的,并且通常以实时框架的形式出现。使用这样一个框架来实现你的事件驱动型应用程序可以避免为每个系统重新开发基础代码。实时框架可以利用多种不同的CPU管理策略,因此理解从简单的前后台系统到合作式多任务系统到完全可抢占多任务系统的基本实时概念是重要的。传统上,这些执行模型都使用“阻塞”范式,“阻塞”意味着程序频繁地等待事件,要么在执行查询循环,要么被多任务内核阻塞。“阻塞”模型与事件驱动型范式不兼容,但可以被改造。总的策略是在事件驱动基础设施(框架)中集中并封装所有“阻塞”代码,因此应用程序代码完全不会阻塞。活动对象计算模型将多个传统的事件队列和一个多任务环境结合起来。在这个模型中,应用程序被分为多个自治的活动对象,每个活动对象封装了一个执行线程(事件循环)、一个事件队列和一个状态机。
pdf 文件大小:4.31MB