[论文解读] Opaque Service Virtualisation: A Practical Tool for Emulating Endpoint Systems
本文提出了一种透明服务虚拟化技术,该技术无需事先了解协议即可利用消息追踪自动生成准确的服务响应。通过应用改进的Needleman-Wunsch算法进行多序列比对以提取消息原型,该方法在模拟企业级消息协议方面实现了超过99%的准确率,并已成功集成至CA Service Virtualization中,实现工业级应用。
Large enterprise software systems make many complex interactions with other services in their environment. Developing and testing for production-like conditions is therefore a very challenging task. Current approaches include emulation of dependent services using either explicit modelling or record-and-replay approaches. Models require deep knowledge of the target services while record-and-replay is limited in accuracy. Both face developmental and scaling issues. We present a new technique that improves the accuracy of record-and-replay approaches, without requiring prior knowledge of the service protocols. The approach uses Multiple Sequence Alignment to derive message prototypes from recorded system interactions and a scheme to match incoming request messages against prototypes to generate response messages. We use a modified Needleman-Wunsch algorithm for distance calculation during message matching. Our approach has shown greater than 99% accuracy for four evaluated enterprise system messaging protocols. The approach has been successfully integrated into the CA Service Virtualization commercial product to complement its existing techniques.
研究动机与目标
- 解决在无法访问真实后端服务的情况下,于类生产环境中测试企业系统所面临的挑战。
- 克服现有服务虚拟化工具需要显式协议建模或仅限于已知协议的局限性。
- 实现对复杂企业级消息协议的自动化、可扩展且高精度的仿真,且无需事先了解消息结构或模式。
- 为DevOps环境提供实用解决方案,以支持在真实条件下频繁进行实时测试。
- 将该技术集成至商业产品中,以支持其在工业领域的广泛部署与实际可用性。
提出的方法
- 从真实系统交互中捕获消息追踪,收集具有代表性的请求-响应对。
- 应用多序列比对(MSA)以识别相似消息中的共同模式,为每类操作类型提取消息原型。
- 使用改进的Needleman-Wunsch算法,计算传入请求与消息原型之间的基于比对的距离以实现匹配。
- 在原型中使用通配符区分可变字段与固定字段,以分离稳定与不稳定的消息组件。
- 选择与传入请求距离最小的原型作为最佳匹配,用于响应生成。
- 基于匹配的原型生成响应,实现实时、高精度的仿真,且无需进行协议逆向工程。
实验结果
研究问题
- RQ1是否可以仅利用消息追踪,在不了解消息格式或协议的前提下,自动生成准确且协议无关的服务响应模型?
- RQ2使用改进的Needleman-Wunsch算法进行多序列比对,在将多样化请求消息匹配到所提取原型方面效果如何?
- RQ3该方法在真实企业系统中,对不同消息编码、长度和负载的适应程度如何,能否实现高准确率与强鲁棒性?
- RQ4该技术是否可成功集成至商业工具中,并在DevOps环境中实现规模化工业应用?
- RQ5无状态建模方法在真实测试场景中的局限性是什么?未来如何扩展以支持有状态行为的建模?
主要发现
- 该方法仅使用录制的消息追踪,即在模拟四种企业级消息协议时实现了超过99%的准确率。
- 该技术成功使CA Service Virtualization支持了此前不被兼容的协议,消除了手动协议建模的需求。
- 原型中使用通配符使得即使消息长度或结构存在微小差异,也能实现稳健匹配。
- 该方法在多种消息编码和操作类型下表现出色,证明了其在真实环境中的强鲁棒性。
- 集成至CA Service Virtualization后,实现了数千名用户的部署,验证了其工业级可扩展性与实际应用价值。
- 尽管准确率很高,但在小规模事务库场景下仍存在挑战,且在需要100%正确性的边缘情况下仍需人工干预。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。