CN111857765B - 用于药物设计系统的插件系统及其生成方法和更新方法 - Google Patents

用于药物设计系统的插件系统及其生成方法和更新方法 Download PDF

Info

Publication number
CN111857765B
CN111857765B CN202010549768.XA CN202010549768A CN111857765B CN 111857765 B CN111857765 B CN 111857765B CN 202010549768 A CN202010549768 A CN 202010549768A CN 111857765 B CN111857765 B CN 111857765B
Authority
CN
China
Prior art keywords
plug
version
configuration table
drug design
scene
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010549768.XA
Other languages
English (en)
Other versions
CN111857765A (zh
Inventor
雷焱森
刘阳
谈樑
马健
温书豪
赖力鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Jingtai Technology Co Ltd
Original Assignee
Shenzhen Jingtai Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Jingtai Technology Co Ltd filed Critical Shenzhen Jingtai Technology Co Ltd
Priority to CN202010549768.XA priority Critical patent/CN111857765B/zh
Publication of CN111857765A publication Critical patent/CN111857765A/zh
Application granted granted Critical
Publication of CN111857765B publication Critical patent/CN111857765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种用于药物设计系统的插件系统及其生成方法和更新方法,插件系统包括基线管理模块和配置表:基线版本按照固定时间点更新;配置表用于配置表示一个场景所有信息的描述;生成方法为:编写一个或多个单独维护的插件,启动药物设计系统时,读取插件声明定义;根据插件声明定义,将药物设计系统中的控件转换为通用控件对像;编写一个场景配置描述用插件如何布局;插件根据配置表加载并渲染插件;插件提供自由布局自由改变Panel面板位置;为插件添加新功能并修改版本号;检测插件存在新版本,下载使用新插件。本发明易于实现快速开发迭代与版本更新,使用户能够及时体验最新功能。

Description

用于药物设计系统的插件系统及其生成方法和更新方法
技术领域
本发明属于插件平台技术领域,具体涉及一种用于药物设计系统的插件系统及其生成方法和更新方法。
背景技术
插件是一种遵循一定规范的应用程序接口编写出来的程序,其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的函数库或者数据。
在现有的网络环境中,很多软件都有插件,而插件也有无数种。计算机辅助药物设计是化学、生物学、数学、物理学以及计算机科学交叉的产物,其也需要用到插件。目前来说药物设计软件的插件主要有:
原生桌面软件,原生应用更接近系统,是传统的C/S架构,市面上大多数药物设计软件都基于该技术构建桌面应用。原生桌面软件的原生应用更接近系统,性能是其最大的优势,但其需要在各平台提供提定制开发,需要耗费过多人力、时间和资金,长期维护更新还需要耗费更多的精力;总结其存在以下缺点:1.只能处理一些功能单一的多系统;2.由于需要安装客户端,安装部署困难,所以不易扩展;3.若客户端使用的系统不同,就要针对这些系统分别编写程序;4.客户端界面缺乏通用性,且当业务更改时就需要更改界面;
基于web技术构建的基础桌面应用,使用Electron构建桌面应用,可以方便的在一次编写代码后构建windows、mac和linux平台的桌面应用。使用web技术构建桌面应用,可以很方便的构建桌面应用,一次构建应用可以在多个平台运行;但也存在一定的维护缺陷,例如同时维护多个桌面应用,每个应用都会由多个可复用的组件构成,新功能组件的更新需要应用再次构建、发布、用户更新版本才能体验最新功能的繁琐操作,其流程图如图1所示。
综上所述,药物设计软件在药物设计中起着至关重要的作用,但其不易于快速开发迭代与版本更新的问题一直得不到很好的解决。桌面端应用避免不了反复的构建发布与更新,导致桌面应用维护困难而且用户不能及时体验最新功能。
因此,怎样才能够提供一种实现简单,易于快速开发迭代和版本更新的一种用于药物设计系统的插件系统及其生成方法和更新方法,成为本领域技术人员有待解决的技术问题。
发明内容
针对上述现有技术的不足,本发明所要解决的技术问题是:怎样才能够提供一种实现简单,易于快速开发迭代和版本更新的一种用于药物设计系统的插件系统及其生成方法和更新方法。
为了解决上述技术问题,本发明采用了如下的技术方案:
一种用于药物设计系统的插件系统,包括:
基线管理模块:基线版本按照一个季度或固定时间点更新;
配置表:所述配置表用于配置表示一个场景所有信息的描述,其中,所述配置表描述了如何将多个插件Panel组合为一个场景。
进一步地,所述的配置表中有以下关键字段:
名称,场景的唯一标识;
描述,场景的描述;
版本,场景的更新依据;
插件,场景所需要的插件列表;
布局,场景需要使用插件进行布局绘制的依据。
进一步地,所述插件系统向外暴露多个panel、cell和lib,其中,panel、cell和lib分别采用插件系统提供的接口进行交互;其中,所述插件系统将根据配置表描述的Panel组合布局进行绘制;
更进一步地,所述的Panel由插件系统注入到指定panel区域,由插件系统控制灵活布局;
其中,一个Panel中包含多个Cell,由插件开发者指定Cell占位,由插件系统加载具体插件;
其中,Lib只暴露方法而没有可视化界面的类型。
本申请另外提供了一种用于药物设计系统的插件系统的生成方法,用于生成所述的用于药物设计系统的插件系统,所述的插件生成方法的步骤为:
步骤S101:编写一个或多个单独维护的插件,启动药物设计系统时,读取插件声明定义;
步骤S102:根据插件声明定义,将药物设计系统中的控件转换为通用控件对像;编写一个场景配置描述用插件如何布局;
步骤S103:插件根据配置表加载并渲染插件;
步骤S104:插件提供自由布局自由改变Panel面板位置;
步骤S105:回到步骤S101,为插件添加新功能并修改版本号;
步骤S106:检测插件存在新版本,下载使用新插件。
进一步地,上述的用于药物设计系统的插件系统的生成方法,是通过以下的插件生成系统来实现,所述的插件生成系统包括:
读取模块,所述读取模块在启动药物设计系统时,用于读取插件的声明定义;
渲染插件模块,所述渲染插件模块能够根据配置表加载并渲染插件;
布局模块,所述布局模块能够自由布局以实现自由改变Panel面板位置;
添加模块,所述添加模块用于为插件添加新功能并修改版本号;
下载模块,所述下载模块用于检测插件是否存在新版本,当插件存在新版本时,该下载模块启动下载程序来下载新插件,然后使用新插件。
进一步地,还包括:优化模块,该优化模块用于将所述插件中的冗余数据和无效数据进行删除。
本申请还提供了一种用于药物设计系统的插件系统的更新方法,包括以下步骤:
(A)、插件平台被启动后,获取本地的核心插件对应的更新策略,检查基线是否更新;
(B)、检测出基线有新版本,则说明当前为可更新状态,立即检查配置表版本;
(C)、判断配置表是否存在版本,如果是,则下载最新配置表;
(D)、读取最新配置表,检查插件列表;
(E)、插件存在新版本,更新插件。
进一步地,上述的用于药物设计系统的插件系统的更新方法,是通过以下的插件更新规则来实现,所述插件更新规则包括下列至少之一:
规则一:当前已安装插件是否位于可安装的最低版本与最高版本间范围;
规则二:当前已安装插件是否属于可安装的随机版本号;
规则三:当前已安装插件是否属于可安装的忽略版本号。
进一步地,上述的用于药物设计系统的插件系统的更新方法,是通过以下的更新系统来实现的,所述的更新系统应用于插件宿主,更新系统包括:
确定模块,确定待加载的插件的进程,检查基线是否更新;
判断模块,判断配置表是否存在版本,如果是,则下载最新配置表;
读取模块,读取最新配置表,检查插件列表;
运行模块,插件存在新版本,更新插件。
与现有技术相比,本发明具有如下优点:
1)本申请所述的插件平台可以理解为一种宿主程序,提供可被插件调用的接口。从一种角度来理解插件平台,插件平台可以是一种应用程序,其可以提供某种应用服务。从另一种角度来理解插件平台,插件平台可以是一种客户端程序,其可与服务端程序或后台进行交互。
2)本发明所提供的插件只需要负责开发小部分业务,这将有效为药物设计软件提供快速开发的能力,用户可以更便捷地体验到新功能,插件系统作为软件宿主动态加载本地插件需要具备一些插件管理能力。
附图说明
图1为根据本发明中的应用于插件宿主的插件生成方法的流程图;
图2为根据本发明中的应用于插件宿主的插件生成方法的代码示意图;
图3为根据本发明中的应用于插件宿主的插件生成方法的流程图;
图4为根据本发明中的应用于插件宿主的插件更新方法的流程图;
图5为根据本发明中的应用于安装插件后插件视图在实际工程中的截图;
图6为根据本发明中的设计截图;
图7为根据本发明中的package.json文件示例;
图8为现有技术的流程图。
具体实施方式
下面将结合附图及实施例对本发明作进一步说明。
实施例1:如图1所示,一种用于药物设计系统的插件系统,包括:
基线管理模块:基线版本按照一个季度或固定时间点更新,由管理者管理基线,保证当前基线内插件间依赖绝对可用;
配置表:所述配置表用于配置表示一个场景所有信息的描述,其中,所述配置表描述了如何将多个插件Panel组合为一个场景。其中,如图2所示,所述的配置表中有以下关键字段:Name(名称):场景的唯一标识;Description(描述):场景的描述;Version(版本):场景的更新依据;Plugins(插件):场景所需要的插件列表;Layout(布局):场景需要使用插件进行布局绘制的依据。
实施例2:如图3所示,一个插件可以理解为一个包,其向外暴露多个panel、cell和lib,插件开发者使用插件系统提供的接口进行交互;系统将根据配置表描述的Panel组合布局进行绘制。
Panel(可视区域)
由插件系统注入到指定panel区域,由插件系统控制灵活布局。
Cell(可视区域)
一个Panel中可包含多个Cell,由插件开发者指定Cell占位,由插件系统加载具体插件。
Lib(非可视区域)
只暴露方法而没有可视化界面的类型,一般可用于算法封装或数据处理。
实施例3:
插件更新方式,如图4所示:关于插件间版本依赖、插件依赖宿主接口版本,这种耦合关系下,如果被依赖方版本变动(发生功能逻辑和接口改动),需要如何兼容保证整体APP正常运行,为保证这一点插件只有在基线版本升级后才统一更新,更新流程:
发起检查动作后首先检查基线是否更新;
基线有新版本说明当前为可更新状态,立即检查配置表版本;
配置表存在版本,立即下载最新配置表;
读取最新配置表,检查插件列表;
插件存在新版本,立即更新插件;
安装插件后无需其它操作即可及时使用,插件将根据配置表的布局描述加载插件并进行布局绘制,如图5所示。
本发明以GUI插件系统的形式避免终端软件开发者维护多个终端软件开发,很好的提升了开发效率。
采用本发明的方案,仅需安装一次GUI插件系统的宿主应用,即可增量体验更多的终端应用,避免用户安装多个应用,很好的提升了用户体验。
采用本发明的方案的效果对比如表1所示:
表1
对比项目 原生桌面应用 基于web技术构建的基础桌面应用 本发明
发布一款桌面软件 必须开发并发布多个平台的安装包,用户必须重新安装软件才能体验新功能 必须重新安装软件才能体验新功能 仅安装最新的插件或布局配置即可体验新功能
同时维护10款软件 10款软件必须开发三个平台版本 10款软件一次构建三个平台版本 仅更新10款软件所需插件即可
本申请应用在药物设计系统时,如图7所示,将传统的药物设计业务流程拆分成负责独立模块的插件。业务模块抽象为插件,插件生成与运行的具体步骤为:
第一步:编写插件具体构成内容,由视图展示与业务逻辑组成,在之前的说明中已经提及插件的构成为Panel/Cell/Lib。
第二步:在插件目录下的package.json描述该插件下的Panel/Cell/Lib,供框架调用对应模块。
第三步:编写场景配置文件,描述该场景所依赖的插件(plugins)以及使用插件Panel绘制的默认布局(layout)等信息,场景与插件文件都存放到统一目录下等待框架使用时加载。
第四步:运行框架时默认读取场景配置,框架使用插件前,根据场景配置中的plugins字段查找需要的插件预加载到内存。
第五步:框架根据场景配置表中的layout描述,绘制默认的布局,将插件的Panel加载到指定的Panel位置。
得益于自由布局,由panel呈现的业务模块,可以自由拖动以满足复杂的设计场景。
复杂的算法逻辑可以存放到lib方法库中,在设计业务中可以便捷调用。
插件系统有更新插件的机制,比较版本(vision)差异后触发更新机制,将最新的插件文件存放到统一目录下,更新插件以获取最新的功能,满足设计功能的快速迭代体验。
最后需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制技术方案,本领域的普通技术人员应当理解,那些对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,均应涵盖在本发明的权利要求范围当中。

Claims (7)

1.一种用于药物设计系统的插件系统,其特征在于,包括:
基线管理模块:基线版本按照固定时间点更新;
配置表:所述配置表用于配置表示一个场景所有信息的描述;
所述配置表描述了如何将多个插件Panel组合为一个场景,其中,所述的配置表中有以下关键字段:
名称,场景的唯一标识;
描述,场景的描述;
版本,场景的更新依据;
插件,场景所需要的插件列表;
布局,场景需要使用插件进行布局绘制的依据;
所述的插件系统,其向外暴露多个panel、cell和lib,其中,插件系统提供有接口以实现交互;所述的插件系统将根据配置表描述的Panel组合布局进行绘制;
所述的Panel由插件系统注入到指定panel区域后,由插件系统控制灵活布局;
其中,一个Panel中包含多个Cell,在Cell被指定占位后,由插件系统加载具体插件;
其中,Lib只暴露方法。
2.一种用于药物设计系统的插件系统的生成方法,其特征在于,用于生成如权利要求1所述的用于药物设计系统的插件系统,所述的插件生成方法的步骤为:
步骤S101:编写一个或多个单独维护的插件,启动药物设计系统时,读取插件声明定义;
步骤S102:根据插件声明定义,将药物设计系统中的控件转换为通用控件对像;编写一个场景配置描述插件如何布局;
步骤S103:插件根据配置表加载并渲染插件;
步骤S104:插件提供自由布局自由改变Panel面板位置;
步骤S105:返回步骤S101,为插件添加新功能并修改版本号;
步骤S106:检测插件存在新版本,下载使用新插件。
3.一种插件生成系统,其特征在于,用于实现如权利要求2所述的用于药物设计系统的插件系统的生成方法,所述的插件生成系统包括:
读取模块,所述读取模块在启动药物设计系统时,用于读取插件的声明定义;
渲染插件模块,所述渲染插件模块能够根据配置表加载并渲染插件;
布局模块,所述布局模块能够自由布局以实现自由改变Panel面板位置;
添加模块,所述添加模块用于为插件添加新功能并修改版本号;
下载模块,所述下载模块用于检测插件是否存在新版本,当插件存在新版本时,该下载模块启动下载程序来下载新插件,然后使用新插件。
4.如权利要求3所述的插件生成系统,其特征在于,还包括:优化模块,该优化模块用于将所述插件中的冗余数据和无效数据进行删除。
5.一种如权利要求1所述的用于药物设计系统的插件系统的更新方法,其特征在于,包括以下步骤:
(A)、插件平台被启动后,获取本地的核心插件对应的更新策略,检查基线是否更新;
(B)、检测出基线有新版本,则说明当前为可更新状态,立即检查配置表版本;
(C)、判断配置表是否存在版本,如果是,则下载最新配置表;
(D)、读取最新配置表,检查插件列表;
(E)、插件存在新版本,更新插件。
6.如权利要求5所述的用于药物设计系统的插件系统的更新方法,其特征在于,通过以下的插件更新规则来实现,所述插件更新采用下列的一个或多个规则:
规则一:当前已安装插件是否位于可安装的最低版本与最高版本间范围;
规则二:当前已安装插件是否属于可安装的随机版本号;
规则三:当前已安装插件是否属于可安装的忽略版本号。
7.一种更新系统,其特征在于,用于实现如权利要求5所述的用于药物设计系统的插件系统的更新方法,所述的更新系统应用于插件宿主,更新系统包括:
确定模块,确定待加载的插件的进程,检查基线是否更新;
判断模块,判断配置表是否存在版本,如果是,则下载最新配置表;
读取模块,读取最新配置表,检查插件列表;
运行模块,插件存在新版本,更新插件。
CN202010549768.XA 2020-06-16 2020-06-16 用于药物设计系统的插件系统及其生成方法和更新方法 Active CN111857765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010549768.XA CN111857765B (zh) 2020-06-16 2020-06-16 用于药物设计系统的插件系统及其生成方法和更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010549768.XA CN111857765B (zh) 2020-06-16 2020-06-16 用于药物设计系统的插件系统及其生成方法和更新方法

Publications (2)

Publication Number Publication Date
CN111857765A CN111857765A (zh) 2020-10-30
CN111857765B true CN111857765B (zh) 2024-06-28

Family

ID=72987226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010549768.XA Active CN111857765B (zh) 2020-06-16 2020-06-16 用于药物设计系统的插件系统及其生成方法和更新方法

Country Status (1)

Country Link
CN (1) CN111857765B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112379943A (zh) * 2020-11-17 2021-02-19 北京高途云集教育科技有限公司 Electron应用程序的插件应用方法及装置、存储介质
CN112445595B (zh) * 2020-11-26 2022-10-25 深圳晶泰科技有限公司 基于slurm计算平台的多任务提交系统
WO2022120640A1 (zh) * 2020-12-09 2022-06-16 深圳智药科技有限公司 基于electron的更新方法及系统
CN112463198B (zh) * 2020-12-09 2021-06-22 深圳智药科技有限公司 基于Electron的更新方法及系统
CN113627138B (zh) * 2021-08-05 2024-06-11 金航数码科技有限责任公司 一种工程注释变更方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484445A (zh) * 2015-08-27 2017-03-08 阿里巴巴集团控股有限公司 移动终端应用程序的页面展示方法和装置
CN109460276A (zh) * 2018-10-25 2019-03-12 北京字节跳动网络技术有限公司 页面和页面配置文件生成方法、装置、终端设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1652070A2 (en) * 2003-07-10 2006-05-03 Computer Associates Think, Inc. System and method for generating a web-enabled graphical user interface plug-in
CN102195804A (zh) * 2011-03-10 2011-09-21 易程(苏州)软件股份有限公司 软件自动更新方法及其系统
US8856740B2 (en) * 2012-07-31 2014-10-07 Hewlett-Packard Development Company, L.P. Implementing multiple versions of a plug-in concurrently
CN104714828B (zh) * 2015-03-31 2017-06-09 北京奇虎科技有限公司 应用安装、运行方法及装置
CN106155739A (zh) * 2016-06-30 2016-11-23 北京奇虎科技有限公司 一种插件控量方法、服务器、客户端及控量平台

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484445A (zh) * 2015-08-27 2017-03-08 阿里巴巴集团控股有限公司 移动终端应用程序的页面展示方法和装置
CN109460276A (zh) * 2018-10-25 2019-03-12 北京字节跳动网络技术有限公司 页面和页面配置文件生成方法、装置、终端设备及介质

Also Published As

Publication number Publication date
CN111857765A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN111857765B (zh) 用于药物设计系统的插件系统及其生成方法和更新方法
CN112416524A (zh) 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置
CN111475227B (zh) 业务插件加载实现方法、装置和终端设备
CN111897570A (zh) 一种基于Maven插件的多依赖项文件提取方法及装置
US10896109B2 (en) Non-monotonic eventual convergence for desired state configuration
US20050204351A1 (en) Dynamic addressing (DA) using a centralized DA Manager
KR102052776B1 (ko) 병행가능하고 신뢰성 있는 설치를 위한 설치 엔진 및 패키지 포맷
CN111399840A (zh) 一种模块开发方法及装置
US12061901B2 (en) Documentation enforcement during compilation
CN114968406B (zh) 一种插件管理方法、装置、电子设备及存储介质
CN113986402A (zh) 函数调用方法、装置、电子设备及存储介质
CN112835568A (zh) 一种项目构建方法和装置
CN117707543A (zh) 一种应用安装包制作和安装方法、计算设备及存储介质
CN112631563A (zh) 基于框架的系统开发方法、装置、计算机设备及存储介质
CN112052039A (zh) 一种多项目同步构建的方法、装置及电子设备
CN110599112B (zh) 一种网络页面开发、维护方法和装置
CN116541035A (zh) 容器编排引擎的升级方法、系统、设备及介质
CN113032004A (zh) 在开发环境中管理开发作业的方法、设备和程序产品
CN115794253A (zh) 应用集成方法、装置、电子设备及计算机可读存储介质
CN114816418A (zh) 一种嵌入式操作系统的搭建方法、装置、设备和介质
CN111142972B (zh) 用于扩展应用程序的功能的方法、装置、系统及介质
KR20080027293A (ko) 데이터 언어에서 다수 언어들의 관리
CN113778388A (zh) 程序开发方法和装置
WO2021103495A1 (zh) 一种用于药物设计系统的插件系统及其生成方法和更新方法
CN117472407A (zh) 基于k8s集群构建的平台升级方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant