新闻中心
当前位置:
  • 首页/
  • 新闻中心/
  • 新闻公告/
  • 【工业软件学习营】第五期第3讲

    【工业软件学习营】总第73讲,于2021年10月29日如期举行,本期讲师是北京瑞风协同科技股份有限公司工程软件技术部工程师,在工程软件应用咨询领域有10多年的经验

    本期课程重点分为以下四个方面:知识插件技术概述、知识插件式开发技术、知识插件技术优缺点、知识插件技术应用方向。

    • 插件技术概述
    1. 插件技术的起源与历史

    计算机的硬件设备是由许多插件板连接而成的,而这些插件板又是将许多具有独立功能的集成电路插件按插件板的设计要求组装连接而成的。各种插件卡插到计算机主板上,通过总线让它们可以相互通信、协同工作,计算机的迅速发展与这种结构特征及集成电路的发展是分不开的。近年来受到硬插件技术的启发,人们开始研究软插件技术口,与硬插件系统类似,软插件系统由总线也称宿主程序、接口和插件三部分组成。

     

    插件通过预先定制的接口连接到总线上。总线是一个总控程序,一般是一个线程,负责插件之间的通信和互操作。接口负责插件的设置、初始化、启动、关闭以及数据的传递工作。插件就是普通的程序,由界面、数据和函数组成,可以完成某种功能由于对插件接口制定了统一的规范,系统投入运行后,用户可以根据自己的需要制作插件,通过接口集成到系统中去。修改或淘汰某个插件时可以简单地将其卸载,而总控程序不用修改,如果总控程序正在运行、修改某个插件时,不用停止运行这个总控程序。通过这种技术,增强了系统的灵活性和可扩展性。降低了系统维护费用,延长了软件系统的生命周期。

     

    1. 插件的技术原理
    1. 宿主

    程序平台上一般表现为一个可执行的文件,这个可执行文件负责启动整个系统,将插件系统所需的插件加载到自己的进程地址空间中,插件系统所需要的插件是一些服务性的插件,常驻进程之中。宿主程序还必须对插件进行管理,不同产品的服务性插件的设计都不完全相同,但是对插件进行管理的功能是一定要实现的

    1. 插件

    能够动态地插入到系统中,提供给插件系统相对简单的功能,但是多个插件能够使系统功能完善,完成许多复杂功能的处理,是插件系统的重要组成部分。在插件中必须提供给宿主程序调用的接口,当宿主程序需要调用插件的时候能够找到这个接口,以完成与宿主程序的通讯与交互,并且使得宿主程序能够得到插件的相关信息

    1. 接口

    宿主程序和插件能够互相结合在一起工作,必须有一套互相协作的规则和协议来使不同来源的程序互相协调工作,完成这些规则和协议的部分称为插件系统的接口。这是一个逻辑上的接口,由宿主程序和插件各完成一部分,它们共同完成插件的插入、调用、停止以及宿主程序与插件以及插件与插件之间的交互,是插件系统中的重要组成部分

     

    • 插件式开发技术
    1. 插件管理
    • 插件管理功能
    • 插件树 
    • 插件路径
    1. 插件的现实方案
    • 动态链接库 DLL

    动态链接库 DLL 是具有某种功能的可执行软件模块,本身并不能独立运行,只能输出变量、函数或类,但能够通过其它能独立运行的程序调用其内部的功能,基于这种特性,使用动态链接库也能产生插件对象。主程序有两种使用动态链接库的方式,一种是隐式链接方式,另一种是显式链接方式。使用隐式链接方式,在主程序中可以直接调用动态链接库输出的函数或类。但在编译链接时要提供输出库文件,编译链接后,动态链接库的个数及模块名都是固定的。而使用显式链接方式不需要输出库文件,它使用操作系统提供的系统函数加载动态链接库,调用其中的功能,并在合适的时候释放它

    • 组件对象模型

    组件对象模型是以组件为发布单元的模型,这种模型使组件间可以用统一的方式进行交互。COM 既提出了组件之间进行交互的规范,也提供了实现交互的环境,它以 COM 接口作为不同组件之间通信的通道,由于同类插件一般有统一的调用接口,只要实现了 COM 标准,使用任何一种支持 COM 语言编写的组件都能够相互调用,因此可使用 COM 技术作为开发插件的基础

    • “.NET” 反射技术

    .NET Framework 中,通过反射机制和接口技术也能够制作插件。.NET 平台动态加载一个插件程序集后,可以通过反射机制,获得程序集中的类型信息,如果插件类型满足主程序的接口要求,主程序使用对象动态生成技术在内存中根据类型定义产生一个插件对象实例并加载到主程序中

     

    • 插件技术优缺点
    1. 插件技术优点
    • 结构清晰、易于理解

    由于借鉴了硬件总线的结构,而且各个插件之间是相互独立的,所以结构非常清晰也更容易理解

    • 易修改、可维护性强

    由于插件与宿主程序之间通过接口联系,就像硬件插卡一样,可以被随时删除,插入和修改,所以结构很灵活,容易修改,方便软件的升级和维护

    • 结构容易调整

    系统功能的增加或减少,只需相应的增删插件,而不影响整个体系结构,因此能方便的实现结构调整

    • 可移植性强、重用力度大

    因为插件本身就是由一系列小的功能结构组成,而且通过接口向外部提供自己的服务,所以复用力度更大,移植也更加方便。

     

    1. 插件技术缺点
    • 可维护性:管理版本和向后兼容现有的插件可能非常困难
    • 复杂性:虽然每个插件都可以在单独测试时工作,但插件之间的交互可能会导致新的问题,只有使用某些插件组合才会出现错误
    • 测试:如果插件系统不提供某种形式的模拟插件运行器进行测试,测试插件可能会很困难,测试只能通过运行插件来实现,这会降低开发速度
    • 插件开发,对开发人员的要求更高
    • 由于插件是在运行时加载的,第三方插件可能对用户造成危害,软件开发者可能需要对第三方插件进行检验和认证,或者干脆不对外提供插件开发接口,仅由自己提供插件

     

    • 插件技术应用方向
    1. 基于插件模型的工程软件集成技术

    应用目标

    • 打通专业工具软件之间的壁垒,实现数据共享
    • 提高设计仿真自动程度,减少工程师重复性工作
    • 提高数字化程度,便于仿真性能参数追溯、管控
    • 提高设计仿真的复用性
    • 为不同专业、不同工具软件集成提供一个标准规范
    1. 基于插件的工程材料知识集成

    应用目标

    • 保证材料数据数据源的统一
    • 实现材料数据的共享
    • 数据标准化
    • 数据有依有据
    1. 基于插件的知识采集和知识推送
    • 自动采集业务系统及其他系统的知识
    • 打开工程软件,推送最近的工作,可以直接复用、打开
    • 创建模型后,推送类似的模型
    • 在设计仿真过程中,依据场景特征推送专业过程知识

    如果您对我们的课程感兴趣,欢迎扫描下方二维码进行听课!