CN109614158A - 一种插件的调用方法、系统、存储介质和处理器 - Google Patents
一种插件的调用方法、系统、存储介质和处理器 Download PDFInfo
- Publication number
- CN109614158A CN109614158A CN201710915145.8A CN201710915145A CN109614158A CN 109614158 A CN109614158 A CN 109614158A CN 201710915145 A CN201710915145 A CN 201710915145A CN 109614158 A CN109614158 A CN 109614158A
- Authority
- CN
- China
- Prior art keywords
- plug
- target website
- calling
- dll
- website
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000002347 injection Methods 0.000 claims description 9
- 239000007924 injection Substances 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 27
- 230000002452 interceptive effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种插件的调用方法,应用于网站服务器,包括:当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL;解析所述URL中包含的与所述目标网站关联的各个插件的插件名称;依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL;对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。上述方法,所述插件的调用发生在同一个网站服务器上,不存在子父站点的问题,避免了现有技术中由于子站点和父站点在交互过程中经常会出现冲突,会导致网站不能访问或者访问结果与预期有偏差的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种插件的调用方法、系统存储介质和处理器。
背景技术
目前,随着网络的飞速发展,越来越多的网络运营商为了保证网站运行的多样化,在网站的运行过程中,会通过调用不同插件的方式,实现该网站的多种功能,通常情况下,网站运行结果通过父站点进行展示,而网站在运行过程中需要调用的插件存储在子站点上,当用户通过URL访问网站时,解析所述网站运行需要的插件,父站点向子站点发送该插件调用请求,子站点对该请求进行响应,实现对该插件的调用。
发明人对现有的插件调用过程进行研究发现,插件的调用过程需要通过父站点和子站点的交互实现,但是,由于子站点和父站点在交互过程中经常会出现冲突,会导致网站不能访问或者访问结果与预期存在偏差。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的插件调用方法,具体方案如下:
一种插件的调用方法,应用于网站服务器,所述方法包括:
当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL;
解析所述URL中包含的与所述目标网站关联的各个插件的插件名称;
依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL;
对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。
上述的方法,优选的,还包括:
当检测到新增插件请求加入所述目标网站时,获取所述新增插件对应的新增DLL;
将所述新增DLL采用依赖注入的方式加载到所述目标网站的运行目录。
上述的方法,优选的,解析所述URL中包含的与所述目标网站关联的各个插件的插件名称包括:
解析所述URL中的包含的多个字符串;
查找所述多个字符串中是否存在一个目标字符串与预设的标识字符串相同;
当存在时,将与所述目标字符串相邻的前一字符串作为与所述目标网站关联的各个插件的插件名称。
上述的方法,优选的,依据所述各个插件的插件名称,在所述网站对应的运行目录下查找组成各个插件的动态链接库文件DLL包括:
获取所述目标网站在所述网站服务器中的运行目录;
在所述运行目录下查找与各个插件名称对应的多个插件目录;
获取所述多个插件目录下存储的组成各个插件的DLL。
上述的方法,优选的,对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用包括:
将所述各个插件的插件名称与预设的正则表达式进行匹配;
当检测到匹配成功信号时,调用控制器工厂对所述各个插件的DLL进行加载,得到预设类型的可执行代码;
运行所述可执行代码,以实现对所述目标网站关联的各个插件的调用。
一种插件的调用系统,应用于网站服务器,所述系统包括:
第一获取模块,用于当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL;
解析模块,用于解析所述URL中包含的与所述目标网站关联的各个插件的插件名称;
查找模块,用于依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL;
调用模块,用于对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。
上述的系统,优选的,还包括:
第二获取模块,用于当检测到新增插件请求加入所述目标网站时,获取所述新增插件对应的新增DLL;
加载模块,用于将所述新增DLL采用依赖注入的方式加载到所述目标网站的运行目录。
上述的系统,优选的,所述调用模块包括:
匹配单元,用于将所述各个插件的插件名称与预设的正则表达式进行匹配;
加载单元,用于当检测到匹配成功信号时,调用控制器工厂对所述各个插件的DLL进行加载,得到预设类型的可执行代码;
调用单元,用于运行所述可执行代码,以实现对所述目标网站关联的各个插件的调用。
一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行上述述的插件的调用方法。
一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行上述的插件的调用方法。
借由上述技术方案,本发明公开了一种插件的调用方法,应用于网站服务器,包括:当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL,解析所述URL中包含的与所述目标网站关联的各个插件的插件名称,依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL,对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。上述方法,所述插件的调用发生在同一个网站服务器上,不存在子父站点的问题,避免了现有技术中由于子站点和父站点在交互过程中经常会出现冲突,会导致网站不能访问或者访问结果与预期有偏差的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请实施例公开的一种插件的调用方法流程图;
图2示出了本申请实施例公开的一种插件的调用方法又一方法流程图;
图3示出了本申请实施例公开的一种插件的调用方法又一方法流程图;
图4示出了本申请实施例公开的一种插件的调用方法又一方法流程图;
图5示出了本申请实施例公开的一种插件的调用方法又一方法流程图;
图6示出了本申请实施例公开的一种插件的调用系统结构框图;
图7示出了本申请实施例公开的一种插件的调用系统又一结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
本发明提供了一种插件的调用方法,所述方法可以应用于插件的调用过程中,所述插件可以为支持目标网站运行的小组件。所述调用方法基于ASP.NET进行开发。所述调用方法应用于目标网站对应的服务器,所述调用方法的流程如图1所示,包括步骤:
S101、当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL;
S102、解析所述URL中包含的与所述目标网站关联的各个插件的插件名称;
S103、依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL;
S104、对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。
本发明实施例中,所述调用方法的执行过程优选采用ASP.NET进行开发,所述ASP.NET又称为ASP+,是微软公司推出的新一代脚本语言。所述ASP.NET本身就支持路由自定义,可以进行自定义自己想要的URL或者个性化URL,并通过相应的路由配置进行个性化路由的解析工作。并且ASP.NET本身也是可以动态进行DLL的加载的,也可以利用一些开源的依赖注入DI工具将组成插件的DLL注入到运行的程序中。当请求过来的时候,动态的进行插件控制器的实例化,实现热加载方式。插件化的开发方式不会影响之前稳定的功能,隔离自己,使系统更加安全稳定。
本发明是实施例中,不但解决了现有的插件调用过程中由于子父站点冲突,会导致网站不能访问或者访问结果与预期存在偏差的问题,而且现有技术中,子站点的形式和依赖的平台也受限制,子站点的形式必须依赖于IIS服务器,也就是强依赖于Windows平台,在Linux中无法实现此功能。本发明中利用asp.net core中,实现Linux的中的插件化开发,也可以在Windows平台下使用接口owin的形式进行插件化的开发,并不会依赖于Windows的平台与IIS服务器。
本发明公开了一种插件的调用方法,应用于网站服务器,包括:当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL,解析所述URL中包含的与所述目标网站关联的各个插件的插件名称,依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL,对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。上述方法,所述插件的调用发生在同一个网站服务器上,不存在子父站点的问题,避免了现有技术中由于子站点和父站点在交互过程中经常会出现冲突,会导致网站不能访问或者访问结果与预期有偏差的问题。
每一个网站服务器会对应一个路由规则,所述路由规则使之能够识别进行自定义的URL并可以成功的进行参数的匹配。所述路由规则定义的过程如下:
所述路由规则确定以后,所述网站服务器对应的目标网站的URL均符合所述路由规则。访问目标网站的过程中需要对所述目标网站中包含的插件进行调用。所述目标网站中插件的数目可以为一个,也可以为多个,插件的数量与网站对应的功能有关,功能越丰富的网站需要的插件的数量就越多。本发明实施例中以所述目标网站的URL中包含的插件个数为一个进行说明,多个插件的情况与一个的相同,在此不再赘述。
插件的名字通过正则表达式的方式进行URL中的匹配,匹配出带有以预设标识结尾的地址,然后进行解析。所述正则表达式,又称规则表达式。计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个规则的文本。本发明实施例中的正则表达式规则为@"^[0-9a-zA-Z],所述预设的标识字符串为Plugin。在确定目标网站插件名称时,首先解析所述目标网站对应的URL,然后解析所述URL中包含的各个插件的插件名称,解析所述插件名称的方法流程如图2所示,包括步骤:
S201、解析所述URL中的包含的多个字符串;
本发明实施例中,所述URL中包含控制器名称、插件名称、ID和预设标识等多个字段,每一个字段都对应着一个字符串,依据与所述网站对应的路由规则,解析所述URL中包含的多个字符串。
S202、查找所述多个字符串中是否存在一个目标字符串与预设的标识字符串相同;
S203、当存在时,将与所述目标字符串相邻的前一字符串作为与所述目标网站关联的各个插件的插件名称。
本发明实施例中,将预设的标识字符串Plugin与每一个字符串进行比对,依据所述路由规则与所述Plugin相邻的上一字符串作为与所述目标网站关联的各个插件的插件名称。当所述URL中包含多个插件时,与所述Plugin相邻的上一字符串会由多个字符串的组成,依据与所述目标网站对应的正则表达式,确定各个插件的插件名称。
当确定了所述URL中包含的插件名称之后,在所述目标网站对应的网站服务器中,依据所述插件名称,获取组成所述各个插件的动态链接库文件DLL的方法流程图如图3所示,包括步骤:
S301、获取所述目标网站在所述网站服务器中的运行目录;
本发明实施例中,所述目标网站的运行目录存储在所述目标网站对应的网站服务器上,依据如下程序语言:
string sitePath=AppDomain.CurrentDomain.BaseDirectory;
获取当前网站所运行目录。
S302、在所述运行目录下查找与各个插件名称对应的多个插件目录;
本发明实施例中,所述运行目录包含多层目录,逐层进行查找,优先查找到插件子目录,每一个插件名称都会对应一个插件目录,在所述插件子目录下查找与所述各个插件名称对应的多个插件目录。
S303、获取所述多个插件目录下存储的组成各个插件的DLL。
本发明实施例中,每一个插件都是由一个或者多个DLL文件组成的,当查找到所述多个插件目录后,解析所述多个插件目录,依次获取所述多个插件目录下存储的组成所述各个插件的DLL。
查找所述多个插件目录下存储的组成所述各个插件的DLL的程序语言为:
var pluginDlls=Directory.GetFiles(sitePath+"Plugins","*Plugin.dll",SearchOption.AllDirectories);
对所述各个插件的DLL进行初始化,加载到所述网站服务器的内存中,并采用依赖注入的方式进行注入,实现将所述各个插件的DLL加载到所述网站服务器的内存中。当检测到所述内存中存在所述各个插件的DLL时,对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用,具体的执行过程如图4所示,包括步骤:
S401、将所述各个插件的插件名称与预设的正则表达式进行匹配;
本发明实施例中,在进行所述各个插件的DLL加载之前,先要判断所述各个插件的插件名称是否符合预设的正则表达式,上述判断的执行过程为:首先获取与所述各个插件的DLL对应的插件名称,获取所述插件名称的程序语言如下:
//获取插件名称
var_pluginName=requestContext.RouteData.Values["pluginName"];
然后,依据所述插件名称,通过正则判断所述插件名称对应的路径是否为插件
//判断是否是插件,插件格式是:插件名称+Plugin字符串
Regex pluginNameReg=newRegex("^[0-9a-zA-Z]+Plugin$");
boolisPlugin=pluginNameReg.Match(pluginName).Success;
S402、当检测到匹配成功信号时,调用控制器工厂对所述各个插件的DLL进行加载,得到预设类型的可执行代码;
本发明实施例中,当检测到匹配成功信号时,调用控制器工厂控制器对所述各个插件的DLL的加载,得到预设类型的可执行代码。在实现上述加载过程之前,还要完成对所述控制器工厂控制器的自定义。自定义的目的是为了,使其能够识别我们自定义的插件。自定义的过程:将所述原来的Default Controller Factory控制器工厂作为父类,继承父类的功能,并在父类的基础上添加满足所述网站服务器的子类,得到自定义的控制器工厂,将所述控制器工厂与默认的控制器工厂进行替换。
S403、运行所述可执行代码,以实现对所述目标网站关联的各个插件的调用。
本发明实施例中,运行所述可执行代码,所述可执行代码的类型为Controller类型。
本发明实施例中,还包括:当检测到匹配失败的信号时,放弃对所述插件的调用过程进行处理并进行错误提示。
本发明实施例中,为了可以实现目标网站运行的多样化,会不断的为所述目标网站新增插件,上述过程的方法流程图如图5所示,包括步骤:
S501、当检测到新增插件请求加入所述目标网站时,获取所述新增插件对应的新增DLL;
S502、将所述新增DLL采用依赖注入的方式加载到所述目标网站的运行目录。
现有技术中,由于当前微软平台的浏览器/服务器(Browser/Server)B/S开发都是基于一个WEB站点进行开发的,统一打包进一个DLL文件,当新模块开发完成后需要将新的程序集文件打包进入原来的程序集中,将网站服务器上的原DLL进行替换。这样容易将以前原运行稳定的程序修改出错,并且在上传的时候需要重复上传以前稳定的功能。而且还有一个缺陷是当项目越来越大的时候,进行整体的编译也是一种负担。本发明所述的新增过程,只对新增的模块进行处理,避免了重复上传和编译困难的问题。
与上述一种插件的调用方法相对应的,本发明还提供了一种插件调用系统,所述系统的结构框图如图6所示,包括:
第一获取模块601、解析模块602、第一查找模块603和解析模块604。
其中,
所述第一获取模块601,用于当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL;
所述解析模块602,用于解析所述URL中包含的与所述目标网站关联的各个插件的插件名称;
所述查找模块603,用于依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL;
所述调用模块604,用于对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。
本发明公开了一种插件的调用系统,应用于网站服务器,包括:当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL,解析所述URL中包含的与所述目标网站关联的各个插件的插件名称,依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL,对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。上述系统,所述插件的调用发生在同一个网站服务器上,不存在子父站点的问题,避免了现有技术中由于子站点和父站点在交互过程中经常会出现冲突,会导致网站不能访问或者访问结果与预期有偏差的问题。
本发明实施例中,所述插件调用系统还包括第二获取模块加载模块。
其中,
所述第二获取模块,用于当检测到新增插件请求加入所述目标网站时,获取所述新增插件对应的新增DLL;
所述加载模块,用于将所述新增DLL采用依赖注入的方式加载到所述目标网站的运行目录。
本发明实施例中,所述调用模块604的结构框图如图7所示,包括:
匹配单元605、加载单元606和调用单元607。
其中,
所述匹配单元605,用于将所述各个插件的插件名称与预设的正则表达式进行匹配;
所述加载单元606,用于当检测到匹配成功信号时,调用控制器工厂对所述各个插件的DLL进行加载,得到预设类型的可执行代码;
所述调用单元607,用于运行所述可执行代码,以实现对所述目标网站关联的各个插件的调用。
所述插件调用系统包括处理器和存储器,上述第一获取模块、解析模块、查找模块和解析模块等均作为程序模块存储在存储器中,由处理器执行存储在存储器中的上述程序模块来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来避免由于子站点和父站点在交互过程中经常会出现冲突,会导致网站不能访问或者访问结果与预期存在偏差。提高用户体验。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
本发明实施例中提供了一种存储介质其上存储有程序,该程序被处理器执行时实现所述插件调用方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述插件调用方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL;
解析所述URL中包含的与所述目标网站关联的各个插件的插件名称;
依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL;
对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。
上述的方法,还包括:
当检测到新增插件请求加入所述目标网站时,获取所述新增插件对应的新增DLL;
将所述新增DLL采用依赖注入的方式加载到所述目标网站的运行目录。
其中,解析所述URL中包含的与所述目标网站关联的各个插件的插件名称包括:
解析所述URL中的包含的多个字符串;
查找所述多个字符串中是否存在一个目标字符串与预设的标识字符串相同;
当存在时,将与所述目标字符串相邻的前一字符串作为与所述目标网站关联的各个插件的插件名称。
其中,依据所述各个插件的插件名称,在所述网站对应的运行目录下查找组成各个插件的DLL包括:
获取所述目标网站在所述网站服务器中的运行目录;
在所述运行目录下查找与各个插件名称对应的多个插件目录;
获取所述多个插件目录下存储的组成各个插件的DLL。
其中,对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用包括:
将所述各个插件的插件名称与预设的正则表达式进行匹配;
当检测到匹配成功信号时,调用控制器工厂对所述各个插件的DLL进行加载,得到预设类型的可执行代码;
运行所述可执行代码,以实现对所述目标网站关联的各个插件的调用。
本文中的设备可以是服务器、PC、PAD、手机等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种插件的调用方法,其特征在于,应用于网站服务器,所述方法包括:
当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL;
解析所述URL中包含的与所述目标网站关联的各个插件的插件名称;
依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL;
对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。
2.根据权利要求1所述的方法,其特征在于,还包括:
当检测到新增插件请求加入所述目标网站时,获取所述新增插件对应的新增DLL;
将所述新增DLL采用依赖注入的方式加载到所述目标网站的运行目录。
3.根据权利要求1所述的方法,其特征在于,解析所述URL中包含的与所述目标网站关联的各个插件的插件名称包括:
解析所述URL中的包含的多个字符串;
查找所述多个字符串中是否存在一个目标字符串与预设的标识字符串相同;
当存在时,将与所述目标字符串相邻的前一字符串作为与所述目标网站关联的各个插件的插件名称。
4.根据权利要求1所述的方法,其特征在于,依据所述各个插件的插件名称,在所述网站对应的运行目录下查找组成各个插件的动态链接库文件DLL包括:
获取所述目标网站在所述网站服务器中的运行目录;
在所述运行目录下查找与各个插件名称对应的多个插件目录;
获取所述多个插件目录下存储的组成各个插件的DLL。
5.根据权利要求1所述的方法,其特征在于,对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用包括:
将所述各个插件的插件名称与预设的正则表达式进行匹配;
当检测到匹配成功信号时,调用控制器工厂对所述各个插件的DLL进行加载,得到预设类型的可执行代码;
运行所述可执行代码,以实现对所述目标网站关联的各个插件的调用。
6.一种插件的调用系统,其特征在于,应用于网站服务器,所述系统包括:
第一获取模块,用于当检测到用户对目标网站的访问指令时,获取所述目标网站对应的统一资源定位符URL;
解析模块,用于解析所述URL中包含的与所述目标网站关联的各个插件的插件名称;
查找模块,用于依据所述各个插件的插件名称,在所述目标网站对应的运行目录下查找组成各个插件的动态链接库文件DLL;
调用模块,用于对所述各个插件的DLL进行加载,以实现对所述目标网站所关联的各个插件的调用。
7.根据权利要求6所述的系统,其特征在于,还包括:
第二获取模块,用于当检测到新增插件请求加入所述目标网站时,获取所述新增插件对应的新增DLL;
加载模块,用于将所述新增DLL采用依赖注入的方式加载到所述目标网站的运行目录。
8.根据权利要求6所述的系统,其特征在于,所述调用模块包括:
匹配单元,用于将所述各个插件的插件名称与预设的正则表达式进行匹配;
加载单元,用于当检测到匹配成功信号时,调用控制器工厂对所述各个插件的DLL进行加载,得到预设类型的可执行代码;
调用单元,用于运行所述可执行代码,以实现对所述目标网站关联的各个插件的调用。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求1至5中任意一项所述的插件的调用方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的插件的调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710915145.8A CN109614158B (zh) | 2017-09-30 | 2017-09-30 | 一种插件的调用方法、系统、存储介质和处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710915145.8A CN109614158B (zh) | 2017-09-30 | 2017-09-30 | 一种插件的调用方法、系统、存储介质和处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614158A true CN109614158A (zh) | 2019-04-12 |
CN109614158B CN109614158B (zh) | 2021-11-26 |
Family
ID=66001503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710915145.8A Active CN109614158B (zh) | 2017-09-30 | 2017-09-30 | 一种插件的调用方法、系统、存储介质和处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614158B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764836A (zh) * | 2019-09-18 | 2020-02-07 | 华为技术有限公司 | 插件实现的方法和插件实现的系统 |
CN111026455A (zh) * | 2019-11-27 | 2020-04-17 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
CN111045983A (zh) * | 2019-11-20 | 2020-04-21 | 岭澳核电有限公司 | 核电站电子文件管理方法、装置、终端设备及介质 |
CN111506366A (zh) * | 2020-04-17 | 2020-08-07 | 咪咕文化科技有限公司 | 插件调用方法、装置、电子设备与存储介质 |
CN112363755A (zh) * | 2020-11-20 | 2021-02-12 | 成都秦川物联网科技股份有限公司 | 一种基于插件引擎注入的低耦合扩展的业务系统 |
CN112925965A (zh) * | 2019-12-05 | 2021-06-08 | 贵州白山云科技股份有限公司 | 一种识别网站插件的方法、装置、设备及介质 |
CN115827140A (zh) * | 2022-12-20 | 2023-03-21 | 北京基调网络股份有限公司 | 可视化大屏的生成方法、装置、设备及存储介质 |
CN117648074A (zh) * | 2024-01-29 | 2024-03-05 | 深圳市恒永达科技股份有限公司 | 一种用于c#软件开发的程序处理方法、系统及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937353A (zh) * | 2010-09-20 | 2011-01-05 | 中兴通讯股份有限公司 | 一种插件部署和加载的方法及装置 |
CN102970346A (zh) * | 2012-11-01 | 2013-03-13 | 北京奇虎科技有限公司 | 浏览器进行软件下载的方法和浏览器 |
CN103268319A (zh) * | 2013-04-17 | 2013-08-28 | 北京航空航天大学 | 一种基于网页的云浏览器 |
CN104346342A (zh) * | 2013-07-24 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 一种加载Flash插件的方法及装置 |
CN104360884A (zh) * | 2014-11-18 | 2015-02-18 | 久邦计算机技术(广州)有限公司 | 一种基于安卓系统的插件资源包加载方法 |
CN105095694A (zh) * | 2014-05-14 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 网页调用插件的方法和系统 |
US20160087974A1 (en) * | 2010-08-17 | 2016-03-24 | Go Daddy Operating Company, LLC | Determining website secure certificate status via partner browser plugin |
CN105912362A (zh) * | 2016-04-11 | 2016-08-31 | 北京金山安全软件有限公司 | 一种加载插件的方法、装置及电子设备 |
-
2017
- 2017-09-30 CN CN201710915145.8A patent/CN109614158B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160087974A1 (en) * | 2010-08-17 | 2016-03-24 | Go Daddy Operating Company, LLC | Determining website secure certificate status via partner browser plugin |
CN101937353A (zh) * | 2010-09-20 | 2011-01-05 | 中兴通讯股份有限公司 | 一种插件部署和加载的方法及装置 |
CN102970346A (zh) * | 2012-11-01 | 2013-03-13 | 北京奇虎科技有限公司 | 浏览器进行软件下载的方法和浏览器 |
CN103268319A (zh) * | 2013-04-17 | 2013-08-28 | 北京航空航天大学 | 一种基于网页的云浏览器 |
CN104346342A (zh) * | 2013-07-24 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 一种加载Flash插件的方法及装置 |
CN105095694A (zh) * | 2014-05-14 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 网页调用插件的方法和系统 |
CN104360884A (zh) * | 2014-11-18 | 2015-02-18 | 久邦计算机技术(广州)有限公司 | 一种基于安卓系统的插件资源包加载方法 |
CN105912362A (zh) * | 2016-04-11 | 2016-08-31 | 北京金山安全软件有限公司 | 一种加载插件的方法、装置及电子设备 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764836A (zh) * | 2019-09-18 | 2020-02-07 | 华为技术有限公司 | 插件实现的方法和插件实现的系统 |
CN110764836B (zh) * | 2019-09-18 | 2024-02-09 | 华为技术有限公司 | 插件实现的方法和插件实现的系统 |
US11880695B2 (en) | 2019-09-18 | 2024-01-23 | Huawei Technologies Co., Ltd. | Plug-in implementation method and plug-in implementation system |
CN111045983A (zh) * | 2019-11-20 | 2020-04-21 | 岭澳核电有限公司 | 核电站电子文件管理方法、装置、终端设备及介质 |
CN111045983B (zh) * | 2019-11-20 | 2023-05-23 | 岭澳核电有限公司 | 核电站电子文件管理方法、装置、终端设备及介质 |
CN111026455A (zh) * | 2019-11-27 | 2020-04-17 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
CN111026455B (zh) * | 2019-11-27 | 2023-02-24 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
CN112925965A (zh) * | 2019-12-05 | 2021-06-08 | 贵州白山云科技股份有限公司 | 一种识别网站插件的方法、装置、设备及介质 |
CN111506366B (zh) * | 2020-04-17 | 2023-09-05 | 咪咕文化科技有限公司 | 插件调用方法、装置、电子设备与存储介质 |
CN111506366A (zh) * | 2020-04-17 | 2020-08-07 | 咪咕文化科技有限公司 | 插件调用方法、装置、电子设备与存储介质 |
CN112363755A (zh) * | 2020-11-20 | 2021-02-12 | 成都秦川物联网科技股份有限公司 | 一种基于插件引擎注入的低耦合扩展的业务系统 |
CN112363755B (zh) * | 2020-11-20 | 2022-08-16 | 成都秦川物联网科技股份有限公司 | 一种基于插件引擎注入的低耦合扩展的业务系统 |
CN115827140A (zh) * | 2022-12-20 | 2023-03-21 | 北京基调网络股份有限公司 | 可视化大屏的生成方法、装置、设备及存储介质 |
CN115827140B (zh) * | 2022-12-20 | 2024-03-12 | 北京基调网络股份有限公司 | 可视化大屏的生成方法、装置、设备及存储介质 |
CN117648074A (zh) * | 2024-01-29 | 2024-03-05 | 深圳市恒永达科技股份有限公司 | 一种用于c#软件开发的程序处理方法、系统及介质 |
CN117648074B (zh) * | 2024-01-29 | 2024-04-19 | 深圳市恒永达科技股份有限公司 | 一种用于c#软件开发的程序处理方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109614158B (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614158B (zh) | 一种插件的调用方法、系统、存储介质和处理器 | |
US11074087B2 (en) | System and method for identifying, indexing, and navigating to deep states of mobile applications | |
CN106559438B (zh) | 一种基于目标网络平台的程序上传方法和装置 | |
CN107992307B (zh) | 一种函数编译方法及装置 | |
CN108268609B (zh) | 一种文件路径的建立、访问方法和装置 | |
US20170249177A1 (en) | Extending user interface of a web console | |
WO2013109555A1 (en) | Managing script file dependencies and load times | |
CN108021564B (zh) | 一种页面重定向的方法和设备 | |
CN111625260A (zh) | 基于混合移动应用程序升级的方法、系统 | |
US9495342B2 (en) | System and method for automatically inserting correct escaping functions for field references in a multi-tenant computing environment | |
CN104899217A (zh) | 一种自定义功能的实现方法及装置 | |
CN108388796B (zh) | 动态域名验证方法、系统、计算机设备和存储介质 | |
CN105447040A (zh) | 二进制文件管理、更新方法、装置以及系统 | |
CN111679828A (zh) | 一种数据处理的方法及装置、电子设备、存储介质 | |
CN105243134B (zh) | 一种处理被劫持浏览器的方法及设备 | |
CN109429100B (zh) | 一种页面路径的存储方法、装置及系统 | |
CN109561121A (zh) | 监控部署的方法及装置 | |
CN110708270A (zh) | 异常链接检测方法以及装置 | |
Ganatra | React Router Quick Start Guide: Routing in React Applications Made Easy | |
CN109635175B (zh) | 页面数据拼接方法、装置、可读存储介质和电子设备 | |
RU2595763C2 (ru) | Способ и устройство менеджмента загрузки на базе браузера android | |
CN105205393A (zh) | 一种处理被劫持浏览器的方法及设备 | |
Koder | Increasing Full Stack Development Productivity via Technology Selection | |
CN110968754A (zh) | 一种爬虫翻页策略的检测方法及装置 | |
CN113835737B (zh) | 一种前端项目添加权限的方法及系统 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |