CN113867833A - 一种异构环境下的插件运行方法及系统 - Google Patents

一种异构环境下的插件运行方法及系统 Download PDF

Info

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
Application number
CN202111083175.XA
Other languages
English (en)
Other versions
CN113867833B (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.)
Sutai Intelligent Technology Shanghai Co ltd
Original Assignee
Sutai Intelligent Technology Shanghai 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 Sutai Intelligent Technology Shanghai Co ltd filed Critical Sutai Intelligent Technology Shanghai Co ltd
Priority to CN202111083175.XA priority Critical patent/CN113867833B/zh
Publication of CN113867833A publication Critical patent/CN113867833A/zh
Application granted granted Critical
Publication of CN113867833B publication Critical patent/CN113867833B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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++虚函数,由插件开发者实现,被操作系统调用,主要包括插件的创建、初始化、关闭、销毁、信息查询等;第二类接口为本地接口,由操作系统实现,被插件调用,这类接口提供绘制图形、数据处理、操作系统信息查询、内存分配/释放功能。
CN202111083175.XA 2021-09-15 2021-09-15 一种异构环境下的插件运行方法及系统 Active CN113867833B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114691235A (zh) * 2022-03-22 2022-07-01 上海智殷自动化科技有限公司 一种支持插件间数据自由交互的方法

Citations (5)

* Cited by examiner, † Cited by third party
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 中科星图股份有限公司 基于浏览器的地理空间信息承载方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
张金, 游承启: "一种异构语言系统间数据通信的实现", 计算机系统应用, no. 01, 31 January 2005 (2005-01-31), pages 56 - 59 *

Cited By (2)

* Cited by examiner, † Cited by third party
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