CN113867833A - 一种异构环境下的插件运行方法及系统 - Google Patents
一种异构环境下的插件运行方法及系统 Download PDFInfo
- Publication number
- CN113867833A CN113867833A CN202111083175.XA CN202111083175A CN113867833A CN 113867833 A CN113867833 A CN 113867833A CN 202111083175 A CN202111083175 A CN 202111083175A CN 113867833 A CN113867833 A CN 113867833A
- Authority
- CN
- China
- Prior art keywords
- plug
- application
- refreshing
- web
- module
- 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 94
- 230000006870 function Effects 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims description 74
- 230000003993 interaction Effects 0.000 claims description 12
- 230000006378 damage Effects 0.000 claims description 7
- 230000002452 interceptive effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002194 synthesizing effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及计算机信息技术领域,具体地说是一种异构环境下的插件运行方法及系统。包括交互模块、插件进程管理模块、图形处理模块和外部接口,本发明同现有技术相比,操作系统的Web应用可开发由C/C++语言编写的插件,通过Web语言调用插件中实现的本地功能,从而完成如编解码、复杂计算、多线程等Web语言实现起来较为低效的功能,并且可通过本发明将C/C++绘制的图形,显示在Web应用中,丰富了操作系统生态。
Description
技术领域
本发明涉及计算机信息技术领域,具体地说是一种异构环境下的插件运行方法及系统。
背景技术
终端操作系统目前以Web引擎作为应用的运行环境,应用以HTML、JavaScript、CSS开发,不支持C/C++语言开发,为拓宽操作系统生态,需要支持C/C++语言开发应用,包括C/C++服务的开发,以及C/C++图形界面的开发。
目前针对Web环境的插件技术,主要为Firefox浏览器的NPAPI插件技术以及Chrome浏览器支持的PPAPI插件技术,但是目前只有针对PC平台浏览器上方案,在移动平台不支持上述两种插件运行,尚无完善的基于Web引擎作为应用运行环境的操作系统上的C/C++插件解决方案,
因此,需要设计一种异构环境下的插件运行方法及系统,可以实现操作系统下Web应用中调用C/C++插件,提高应用编码的灵活性,拓展应用生态。
发明内容
本发明的目的是克服现有技术的不足,提供了一种异构环境下的插件运行方法及系统,可以实现操作系统下Web应用中调用C/C++插件,提高应用编码的灵活性,拓展应用生态。
为了达到上述目的,本发明提供一种异构环境下的插件运行方法及系统,包括交互模块、插件进程管理模块、图形处理模块和外部接口,其中:
【交互模块】:解耦C/C++插件与Web应用层的运行交互,在Web应用中的操作指令和设备传感器事件为输入,交互模块进行处理并向插件转发,交互模块通过建立事件队列,插件对输入事件队列进行轮询的方式,实现插件对输入事件的响应;
【插件进程管理模块】:应用没有访问除I/O读写之外的权限时,C/C++插件独立于Web应用的进程运行;
插件在运行时只有一个进程,进程由系统核心进程创建与管理;
插件被多个应用程序访问时,共享同一个插件进程,共享方式为:在插件进程中创建插件实例;
插件进程中创建一个代理模块,实现对应用进程指令的接收,然后向插件本身进行转发的功能,代理模块将指令执行回调函数向应用进程转发;
系统核心进程通过IPC句柄系统核心进程与插件进程进行通信实现对插件的创建、管理、销毁;
应用通过在HTML文件中编码一个WebPluginElement标签,通过该标签下的WebAPI实现对插件的访问;
【图形处理模块】:将C/C++插件图形数据显示在Web界面上;
插件图形数据通过共享内存的形式在系统核心进程、应用进程、插件进程中传递;
插件图形数据与Web内容图形数据分别进行渲染形成两个layer,然后一起进行合成;
图形处理模块包括建立图形刷新处理模块,刷新请求来源有两个,第一是C/C++插件根据自身功能逻辑,主动请求刷新;第二是应用的Web内容被修改,WebPluginElement接收到了UI刷新指令,这两个请求都将生成刷新事件,建立刷新事件队列,当UI刷新事件队列不为空时,出队UI刷新事件,对应用的C/C++插件图形内容以及Web图形内容进行重绘;
【外部接口】:包括两类C/C++开发接口,第一类接口为C++虚函数,由插件开发者实现,被操作系统调用,主要包括插件的创建、初始化、关闭、销毁、信息查询等;第二类接口为本地接口,由操作系统实现,被插件调用,这类接口提供绘制图形、数据处理、操作系统信息查询、内存分配/释放功能。
本发明同现有技术相比,操作系统的Web应用可开发由C/C++语言编写的插件,通过Web语言调用插件中实现的本地功能,从而完成如编解码、复杂计算、多线程等Web语言实现起来较为低效的功能,并且可通过本发明将C/C++绘制的图形,显示在Web应用中,丰富了操作系统生态。
附图说明
图1为本发明的插件运行方法及系统插件进程管理模块示意图
图2为本发明的插件运行方法及系统交互模块示意图
图3为本发明的插件运行方法及系统图形处理模块示意图
具体实施方式
现结合附图对本发明做进一步描述。
参见图1-3,本发明提供一种异构环境下的插件运行方法及系统,包括交互模块、插件进程管理模块、图形处理模块和外部接口,其中:
【交互模块】:解耦C/C++插件与Web应用层的运行交互,在Web应用中的操作指令和设备传感器事件为输入,交互模块进行处理并向插件转发,交互模块通过建立事件队列,插件对输入事件队列进行轮询的方式,实现插件对输入事件的响应;
【插件进程管理模块】:应用没有访问除I/O读写之外的权限时,C/C++插件独立于Web应用的进程运行;
插件在运行时只有一个进程,进程由系统核心进程创建与管理;
插件被多个应用程序访问时,共享同一个插件进程,共享方式为:在插件进程中创建插件实例;
插件进程中创建一个代理模块,实现对应用进程指令的接收,然后向插件本身进行转发的功能,代理模块将指令执行回调函数向应用进程转发;
系统核心进程通过IPC句柄系统核心进程与插件进程进行通信实现对插件的创建、管理、销毁;
应用通过在HTML文件中编码一个WebPluginElement标签,通过该标签下的WebAPI实现对插件的访问;
【图形处理模块】:将C/C++插件图形数据显示在Web界面上;
插件图形数据通过共享内存的形式在系统核心进程、应用进程、插件进程中传递;
插件图形数据与Web内容图形数据分别进行渲染形成两个layer,然后一起进行合成;
图形处理模块包括建立图形刷新处理模块,刷新请求来源有两个,第一是C/C++插件根据自身功能逻辑,主动请求刷新;第二是应用的Web内容被修改,WebPluginElement接收到了UI刷新指令,这两个请求都将生成刷新事件,建立刷新事件队列,当UI刷新事件队列不为空时,出队UI刷新事件,对应用的C/C++插件图形内容以及Web图形内容进行重绘;
【外部接口】:包括两类C/C++开发接口,第一类接口为C++虚函数,由插件开发者实现,被操作系统调用,主要包括插件的创建、初始化、关闭、销毁、信息查询等;第二类接口为本地接口,由操作系统实现,被插件调用,这类接口提供绘制图形、数据处理、操作系统信息查询、内存分配/释放功能。
实施例1:
下面结合附图和实施例对本发明作进一步的详细说明,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。
一种异构环境下的插件运行方法及系统的具体实施例,包括以下步骤:
S1:在银河锐华终端操作系统的支撑层中扩展用于管理交互的EventHandler模块,运行在系统核心进程中,调用libevet库对用户输入操作和设备中的传感器事件进行抽象,使用对象pluginEvent进行保存输入事件的数据结构体,并采用C++STL提供的std::queue类实现事件队列,输入事件发生,将其抽象为pluginEvent送入队列。活跃的插件进程通过IPC对各事件队列进行轮询,当事件队列不为空时,出队首个可用事件,交由插件进程进行处理,插件进程进入事件处理的流程。
S2:在银河锐华终端操作系统的支撑层中扩展用于插件进程管理PluginProcessManager模块,在Web引擎中增加<plugin>标签,实现此标签中的WebAPI用于对插件的创建、管理、销毁等操作。应用通过<plugin>标签初始化插件内容后,通过IPDL消息与系统核心进程进行通信,请求使用插件,若此时对应插件进程还未被创建,则系统核心进程创建插件进程,创建成功后系统核心进程返回IPC handle用于创建和插件进程通讯的PluginIPCHost;插件进程中则创建代理模块PluginProxy用于接收应用进程的指令,同时向插件进行转发,指令完成后,将指令的返回值向应用进程转发。
S3:在银河锐华终端操作系统的支撑层中扩展用于图形处理的PluginRenderer模块,首先应用进程通过EGL申请一个GraphicBuffer用于绘制<plugin>标签对应显示区域,然后通过共享内存的方式将此GraphicBuffer共享给插件进程以及系统核心进程,插件进程通过图形接口将图形绘制在GraphicBuffer上得到PluginLayer,系统核心进程将PluginLayer和Web内容渲染后得到的WebContentLayer进行合成,最后得到显示数据,送显到显示器上。
S4:为插件开发者提供两类接口:第一,提供插件管理接口:由插件开发者实现,此接口为C++虚函数,,被操作系统调用,主要包括插件的创建、初始化、关闭、销毁、信息查询;第二,提供本地功能接口:由操作系统实现,用于给插件实现与操作系统相关联的功能,绘制图形、数据处理、操作系统信息查询、内存分配/释放功能。
以上所述仅是本发明的优选实施方式,只是用于帮助理解本申请的方法及其核心思想,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
本发明使操作系统的Web应用可开发由C/C++语言编写的插件,通过Web语言调用插件中实现的本地功能,从而完成如编解码、复杂计算、多线程等Web语言实现起来较为低效的功能,并且可通过本发明将C/C++绘制的图形,显示在Web应用中,丰富了操作系统生态,提高应用编码的灵活性,拓展应用生态。
Claims (1)
1.一种异构环境下的插件运行方法及系统,其特征在于:包括交互模块、插件进程管理模块、图形处理模块和外部接口,其中:
【交互模块】:解耦C/C++插件与Web应用层的运行交互,在Web应用中的操作指令和设备传感器事件为输入,交互模块进行处理并向插件转发,所述交互模块通过建立事件队列,插件对输入事件队列进行轮询的方式,实现插件对输入事件的响应;
【插件进程管理模块】:应用没有访问除I/O读写之外的权限时,C/C++插件独立于Web应用的进程运行;
所述插件在运行时只有一个进程,所述进程由系统核心进程创建与管理;
所述插件被多个应用程序访问时,共享同一个插件进程,所述共享方式为:在插件进程中创建插件实例;
所述插件进程中创建一个代理模块,实现对应用进程指令的接收,然后向插件本身进行转发的功能,所述代理模块将指令执行回调函数向应用进程转发;
所述系统核心进程通过IPC句柄系统核心进程与插件进程进行通信实现对插件的创建、管理、销毁;
所述应用通过在HTML文件中编码一个WebPluginElement标签,通过该标签下的WebAPI实现对插件的访问;
【图形处理模块】:将C/C++插件图形数据显示在Web界面上;
所述插件图形数据通过共享内存的形式在系统核心进程、应用进程、插件进程中传递;
所述插件图形数据与Web内容图形数据分别进行渲染形成两个layer,然后一起进行合成;
所述图形处理模块包括建立图形刷新处理模块,刷新请求来源有两个,第一是C/C++插件根据自身功能逻辑,主动请求刷新;第二是应用的Web内容被修改,WebPluginElement接收到了UI刷新指令,这两个请求都将生成刷新事件,建立刷新事件队列,当UI刷新事件队列不为空时,出队UI刷新事件,对应用的C/C++插件图形内容以及Web图形内容进行重绘;
【外部接口】:包括两类C/C++开发接口,第一类接口为C++虚函数,由插件开发者实现,被操作系统调用,主要包括插件的创建、初始化、关闭、销毁、信息查询等;第二类接口为本地接口,由操作系统实现,被插件调用,这类接口提供绘制图形、数据处理、操作系统信息查询、内存分配/释放功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111083175.XA CN113867833B (zh) | 2021-09-15 | 2021-09-15 | 一种异构环境下的插件运行方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111083175.XA CN113867833B (zh) | 2021-09-15 | 2021-09-15 | 一种异构环境下的插件运行方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113867833A true CN113867833A (zh) | 2021-12-31 |
CN113867833B CN113867833B (zh) | 2024-03-15 |
Family
ID=78996080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111083175.XA Active CN113867833B (zh) | 2021-09-15 | 2021-09-15 | 一种异构环境下的插件运行方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113867833B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691235A (zh) * | 2022-03-22 | 2022-07-01 | 上海智殷自动化科技有限公司 | 一种支持插件间数据自由交互的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009139843A1 (en) * | 2008-05-13 | 2009-11-19 | Google Inc. | Separate plug-in processes in browsers and applications thereof |
CN102073520A (zh) * | 2010-12-30 | 2011-05-25 | 中国民航信息网络股份有限公司 | 一种c++应用程序版本动态管理系统和方法 |
KR20110122995A (ko) * | 2010-05-06 | 2011-11-14 | 에스케이플래닛 주식회사 | 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 |
CN103645901A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种基于事件链的用户界面插件化交互方法 |
CN109325157A (zh) * | 2018-07-06 | 2019-02-12 | 中科星图股份有限公司 | 基于浏览器的地理空间信息承载方法 |
-
2021
- 2021-09-15 CN CN202111083175.XA patent/CN113867833B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009139843A1 (en) * | 2008-05-13 | 2009-11-19 | Google Inc. | Separate plug-in processes in browsers and applications thereof |
KR20110122995A (ko) * | 2010-05-06 | 2011-11-14 | 에스케이플래닛 주식회사 | 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 |
CN102073520A (zh) * | 2010-12-30 | 2011-05-25 | 中国民航信息网络股份有限公司 | 一种c++应用程序版本动态管理系统和方法 |
CN103645901A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种基于事件链的用户界面插件化交互方法 |
CN109325157A (zh) * | 2018-07-06 | 2019-02-12 | 中科星图股份有限公司 | 基于浏览器的地理空间信息承载方法 |
Non-Patent Citations (1)
Title |
---|
张金, 游承启: "一种异构语言系统间数据通信的实现", 计算机系统应用, no. 01, 31 January 2005 (2005-01-31), pages 56 - 59 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691235A (zh) * | 2022-03-22 | 2022-07-01 | 上海智殷自动化科技有限公司 | 一种支持插件间数据自由交互的方法 |
CN114691235B (zh) * | 2022-03-22 | 2024-03-22 | 上海智殷自动化科技有限公司 | 一种支持插件间数据自由交互的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113867833B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106991154B (zh) | 网页渲染方法、装置、终端及服务器 | |
CN108572965B (zh) | 一种资源加载方法及装置 | |
CN101697139B (zh) | 一种远程过程调用方法、装置和注册库 | |
CN109240677A (zh) | 一种图层处理方法及装置 | |
CN105069132A (zh) | 一种基于静态外壳的网页实现方法 | |
WO2023065707A1 (zh) | 一种页面显示方法及装置 | |
CN113867833B (zh) | 一种异构环境下的插件运行方法及系统 | |
US9052924B2 (en) | Light-weight managed composite control hosting | |
CN115809056B (zh) | 组件复用实现方法、装置和终端设备、可读存储介质 | |
CN116503529A (zh) | 渲染、3d画面控制方法、电子设备和计算机可读存储介质 | |
CN111414085A (zh) | 一种麒麟移动操作系统的输入法运行方法、系统及介质 | |
CN115474074B (zh) | 一种视频背景替换方法、装置、计算设备和存储介质 | |
WO2023044876A1 (zh) | 一种多线程渲染方法、装置、电子设备及存储介质 | |
CN115421693A (zh) | 微前端架构的实现方法、装置、计算机设备和存储介质 | |
CN112597408B (zh) | 一种系统融合方法、装置、设备和存储介质 | |
CN114371838A (zh) | 一种小程序画布渲染方法、装置、设备及存储介质 | |
CN111949265A (zh) | 一种数据处理方法、装置和电子设备 | |
CN112650965A (zh) | 用于大型网站的单页面开发方法、框架及介质 | |
CN113961279A (zh) | 页面渲染方法、装置、服务器和存储介质 | |
CN112667410A (zh) | 跨进程通讯方法、终端及计算机可读存储介质 | |
CN117251661B (zh) | 网页文件生成方法、装置、计算机设备和存储介质 | |
CN115033737A (zh) | 直播间架构系统及其运行方法、电子设备和介质 | |
CN110162370B (zh) | 交互应用程序的运行方法、交互界面统一化方法及其装置 | |
CN116541621A (zh) | 一种页面渲染方法及装置 | |
CN118276983A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |