美文网首页
一种高效的跨进程MVC 架构2018-06-26

一种高效的跨进程MVC 架构2018-06-26

作者: 3479da3be4fa | 来源:发表于2018-06-26 00:48 被阅读12次

    ******************************************************************************************

    关注凡猫学院:加微信+17031115530,拉测试微信群交流

    关注凡猫学院:加微信+17031115530,拉测试微信群交流

    *******************************************************************************************

    微信+17031115530,拉测试微信群交流

    一种高效的跨进程MVC 架构

    VcSmith、VcTester、VcAuto 基同于一体系架构,功能层次划分清晰,很好的实现了组件重

    用,使用一种跨进程MVC 结构,保证系统具良好的伸缩性,构造出一种软性的、脚本化的

    缓冲层,让调测变得很便利而高效。

    VcTester 分层架构

    一个高效的软件开发系统应有良好的分层架构,使各层能采用最恰当、最高效的语言进行开

    发,层之间接口除了要简洁、清晰、便于理解,还应为调试与自动化测试提供便利,良好的

    分层架构还需适应经常性软件重构,便于产品功能拓展延伸,并支持大幅度代码重用或组件

    重用。

    VcSmith、VcTester、VcAuto 软件架构具备上述高效研发系统的特征。在抽象层次理解,它

    可以划分4 层:最上层是终端操作层,其下依次是调测接口层、业务实现层、基础库支持层。

    VcTester 系列软件采用分布式架构,由多个可执行文件构成一个协调灵活、功能拓展便利的

    体系。如下图,在被测系统中驻留一个调测代理(是CSE 脚本系统),然后将被测系统中

    的实例映射到调测代理,在调测试代理中可以用脚本自由模拟被测系统的行为,也即:调测

    代理具备较完整的产品功能展现能力,以此为基础衍生出各种各样的调测支持功能。

    用户操作终端是独立的可执行程序,它与被测系统中的调测代理通过共享内存方式建立连

    接。在此连接基础上,我们封装本地过程调用(Local Procedure Call,LPC)系统,之后再

    微信+17031115530,拉测试微信群交流

    在LPC 之上构造跨进程MVC 系统,使界面操作与底层业务实现分离,并建立柔性互动,

    让操作接口具备良好的可扩展性与可测试性。

    基于这一架构,VcTester 系列软件可以方便的支持多个用户终端,包括:控制台终端(CON)、

    图形界面终端(GUI)、表格驱动终端(TABLE),也能方便的接入一个远程通信代理来支

    持远程诊断接入。

    在终端操作层与其下业务实现层之间设有调测接口层,这一层是天然的脚本解释执行形式,

    调试、测试、诊断都方便的支撑起来,且能快速实现自动化作业。

    SRPC 组件接口

    VcTester 系列软件的各个进程主要通过共享内存方式实现通信,这是一种端到端、总线式结

    构,各个端口都挂接在共享内存总线上,每个端口都用它的注册名标识(比如VcSmith 与

    VcTester 的被测系统缺省注册名是CseClient,用户界面注册名是CseWin),各端口在底层

    通信层次是对等的,无client、server 之分,而在此之上叠加特定框架结构(比如MVC)后

    才有client 与server 之分。

    VcTester 采用CSE 提供的共享内存架构,即SRPC 组件(Simple Remote Procedure Call),

    之所以称RPC,是因为该组件既支持LPC,也支持RPC,两者基于同一架构,远程通信插

    件作用于LPC,就成为RPC,所以统称为RPC。SRPC 提供两类远程调用,一类是exec 调

    用,另一类是eval 调用,前者是异步模式,不要求等待返回结果,后者是同步模式,等待

    返回结果,除了远程调用,SRPC 还提供建立(或停止)通信连接、查看连接端状态等辅助

    功能。

    用户可以将CSE 的SRPC 组件引入到自己的产品中,因为CSE 是共享软件,SRPC 组件允

    许用于二次发布,另外,SRPC 提供多种接口,包括C/C++、Delphi、CSE、Python、VBA

    等,方便接入各个系统,在SRPC 之上还提供一些封装(如跨进程MVC)。

    跨进程MVC 结构

    将用户操作终端与业务逻辑实现分离到两个进程后,我们构造一种跨进程的MVC 结构,如

    下图,其中Module 提供业务逻辑实现,在驻留于被测系统的调测代理中实现,View 与

    Controller 在用户界面实现。有关CSE 的跨进程MVC 实现细节可到CSE 官方网站查阅相关

    微信+17031115530,拉测试微信群交流

    资料。

    各个层次重用

    因为VcTester 系列软件具备良好框架结构,所以能实现大幅度代码重用或组件重用。高度

    重用是我们研发过程的显著特色,它让我们在维持低成本生产的同时,能快速推出产品。

    在基础库支持层(在调测代理中),我们重用CSE 脚本语言(这是一款开源的共享软件)、

    VC 调测组件接口(既支持映射系统,也支持我们集成界面的单步调试)。

    在调测接口层与终端操作层,我们重用了SRPC 与跨进程MVC 组件,在GUI 界面重用了

    CVP 插件系统、SynEditV2 控件(用于构造脚本编辑器、C/C++编辑器),我们还重用VC

    编译功能,提取编译结果信息来实施更精准、更智能的C/C++语言分析。

    当然,重用不限于源码或组件,我们在构筑VcTester 系列工具形成一套技术体系与调测理

    念的过程中,方方面面都体现重用思想。被测实体映射到脚本,让脚本系统具备对等的表现

    能力,是一种重用;调试驱动脚本与测试驱动分享,调试操作生成测试脚本,也是一种重用;

    单元与集成测试、接口测试、自动化测试、诊断测试各阶段工作成果可重用;本系列工具的

    IDE 环境提供强大的外部工具集成功能,象Pclint、VSS、VLD、ANT、SourceMonitor、Koders

    等工具都能方便集成进来,当然也是一种重用;再如,采用Excel 构造表格驱动,也体现了

    一种重用,否则我们要自行开发(Excel 够强大了,没必要重复发明一个轮子,再说,我们

    怎么做也超不过Excel)。

    就连用户学习CSE 语言,也可以高度重用。CSE 具备良好的表述能力与语言映射能力,CSE

    V1.5 将引入兼容Python 的功能,任意Python 扩展模块都可重用到CSE 系统中,会用CSE

    意味着你开始敲打掌握超强测试语言的大门。另外,CSE 从V1.6 开始支持混合编程,CSE

    脚本能自动转化为C/C++代码,此方式可让编程效率倍升,上述SRPC 与跨进程MVC 也从

    该版本开始延伸为一个高效的编程框架,用户可将它重用到自己的产品。再进一步,在CSE

    V2 与V3 规划中,语言映射技术将进一步拓展,支持跨平台,支持64 位,展现文档化编程、

    可视化编程、扁平化编程等理念。

    ******************************************************************************************

    关注凡猫学院:加微信+17031115530,拉测试微信群交流

    关注凡猫学院:加微信+17031115530,拉测试微信群交流

    *******************************************************************************************

    相关文章

      网友评论

          本文标题:一种高效的跨进程MVC 架构2018-06-26

          本文链接:https://www.haomeiwen.com/subject/qlauyftx.html