PluginOK(牛插)中间件发布正式版

        PluginOK(牛插)中间件(以下简称“PluginOK”)是一个实现浏览器网页(Web Browser)与本地程序(Local App)之间可双向调用的低成本、强兼容、安全可控、轻量级、易集成、可扩展、跨浏览器的原生小程序系统,已经完美支持Windows XP、Windows 2008及以上版本的桌面和Windows Server系列系统。PluginOK及其之上运行的小程序可在网页中通过脚本直接请求在线安装或升级,无需用户干预。

        通过此中间件可实现网页前端JS脚本无障碍操控本地电脑的各类设备、调用本地系统的API及已安装的各种组件功能,支持ActiveX控件、NPAPI插件及自动化程序(如MSOffice、金山WPS、AutoCAD、Solidworks等)在Chrome、Edge(Chromium内核)、360极速/安全/企业、FireFox、IE、Opera、QQ、搜狗等浏览器最新版中的完美嵌入运行,媲美ActiveX控件和NPAPI插件的运行效果,并且提供的集成接口与前端开发语言无关,网页端只需使用JS+JSON+Web Socket相关技术即可完成与B/S系统的完美对接,实现信息化系统的最佳用户体验。

        PluginOK可在本地部署并以系统服务形式运行,也支持以普通桌面进程方式运行。本中间件不依赖任何浏览器本身提供的插件接口,而且采用了HTML5国际标准中的Web Socket技术作为中间件的通信基础,可确保本技术方案不会过时,而功能及参数采用JSON包可实现开发语言的无关性,支持HTTPS网站运行(需绑定对应子域名的SSL证书)。

        采用本中间件,可以彻底摆脱浏览器功能扩展需要依赖各浏览器自身API、版本及系统兼容的大麻烦。目前是同类产品中全球唯一商用的成熟中间件,技术水平遥遥领先。

        基于PluginOK的SDK(二次开发包)接口可开发本地硬件DLL驱动模块的封装小程序,实现在网页中操作控制本地的读卡器、打印机、扫描仪、高拍仪、U盾等各种硬件设备;也可以将Windows本地API函数(如证书获取、文件读写、上传下载等)功能封装成小程序后供网页端调用;还可以把成熟的ActiveX控件及自动化程序(如MSOffice、AutoCAD、Solidworks等)模块封装为独立进程的弹窗或内嵌窗口小程序,从而可彻底解决它们在Chrome、Edge、Firefox、360、Opera、QQ等高版本的浏览器不能兼容运行的问题。

针对不同的业务使用场景,PluginOK支持三种类型的小程序:

  • DLL小程序,实现为进程内COM组件,主要用于封装各种硬件设备的驱动库及Windows API等,此类型小程序和PluginOK运行于同一进程,拥有较高的访问权限,一般不能访问当前桌面登录用户的注册表及相关配置
  • EXE弹窗小程序,此类型小程序是原生的Win32执行程序,主要是封装打印机、扫描仪、高拍仪等的驱动控件给前端调用,以弹出类似网页新窗口的形式运行,权限和普通桌面应用一样
  • EXE内嵌网页小程序,此类型小程序也是原生的Win32执行程序,主要是封装如视频播放、办公软件、工业设计软件的ActiveX控件给前端以内嵌网页的形式运行,体验效果和原ActiveX控件及NPAPI插件一致

其中DLL小程序和弹窗小程序类型,作为PluginOK标准版的功能,在2019年5月正式发布的第一个版本中提供支持。而支持网页中内嵌窗口程序运行的独家技术,是本中间件的高级版特色功能,于2020年7月正式对外发布,需要签定试用协议才能试用。

尽快采用PluginOK中间件技术方案,您将获得以下好处:

  • 技术领先于竞争对手,可最大程度的满足客户的主流浏览器兼容使用的要求;
  • 大幅降低产品/项目的开发迭代成本,从而提高公司的整体效益;
  • 产品/项目的交付周期可大大缩短,从而可抢占市场先机;
  • 我们给您提供最专业的开发和维护支持,使您能获得持续改进的产品服务;
  • 对各种操作系统及各种版本浏览器有最好的兼容能力,小程序的安装及升级便捷容易,维护成本大幅度降低。

PluginOK支持最新版的Windows 10的32/64位系统,包括32/64位的Windows Server 2019系统。浏览器兼容:1、IE 8及以上版本;2、Chrome 41及以上版本;3、Firefox 50及以上版本;4、Opera 36及以上版本;5、Edge(Chrome内核) 80及以上版本;6、360极速浏览器 9.5及以上版本;7、360安全及企业安全浏览器; 8、QQ浏览器10及以上版本; 9、搜狗浏览…

微信咨询:ZorroSoftqq972340118

手机咨询:18081958957、18051018685

客服热线:400 683 1589

电子邮件:wzh@zorrosoft.com

在线体验

PluginOK产品介绍

中间件版本及授权说明

海康及大华RTSP流播放方案

Office网页在线编辑方案

相关下载

常见问题解答

当前最新版本于2021-06-10 日发布:

网络版 2.1.3.5

单机版 1.3.3.5

微软官宣IE将“退役”,老网站如何实现在Chrome、Firefox高版本中兼容运行?

  • 一、问题

        美国微软公司为了推广其Chromium内核的Edge浏览器,在2021年5月19日突然宣布,自2022年6月15日起,绝大多数版本的Windows 10系统将不再支持IE浏览器,因此IE即将彻底退出互联网的舞台。具体来说微软决定将不再支持Windows 10所有消费者版本中的IE运行,即使用户强制启动IE也会重定向到Edge浏览器来打开网页,类似这样:

服务器和长期服务渠道(LTSC)Windows 10版本中虽说暂时不变,但谁也说不清哪天也会被取消支持了。相关详情可点击:The future of Internet Explorer on Windows 10 is in Microsoft Edge Internet Explorer 11 desktop app retirement FAQ 查看。

IE诞生于1995年,是Windows系统默认的免费网页浏览器,微软利用系统捆绑的方式很快就击败了当时收费的竞争对手Netscape。在巅峰时期,IE占据了全球桌面浏览器市场90%以上的份额,直到2013年前后谷歌浏览器逐渐成为主流。在这近20年的时间里,虽然中途有Firefox浏览器最高时抢占了约30%市场份额,但是当时不管哪个网站的发布都得把兼容IE作为重头戏进行测试。而在互联网发展的历史进程中,浏览器的功能开始时还比较简单,为了弥补浏览器自身功能的不足和提高网页中的交互体验,浏览器开发商都提供了非常开放的插件开发接口给第三方调用,其中以IE中的ActiveX控件和非IE中的NPAPI插件最为典型。第三方公司基于浏览器的插件开发接口开发了各种各样的控件或插件,典型如金融行业网银系统的安全及读卡等控件、多媒体领域的Flash Player等网页播放器,工业设计领域的dwg/dxf等图纸查看控件,因此各大下载站点类别中还单独增加了浏览器插件软件。而美国谷歌公司的Chrome浏览器为了抢占IE的用户,基于IE开发接口发布了Chrome Frame插件可将IE网页改成Chromium内核渲染显示。为简化各浏览器的插件开发,国外还诞生了非常有名的跨浏览器的开源插件框FireBreath,底层实现采用的是ActiveX控件和NPAPI插件技术,曾经流行的Java AppletUnity网页游戏引擎底层实现同样如此,有几年时间基于这两个开发的网页游戏不仅多,还很火爆,全民半夜网络偷菜成为一景。而RIA(丰富型互联网应用程序)曾经也非常受企业欢迎,AdobeFlex和微软的Silverlight作为RIA开发的两个典型代表由于门槛低、开发便捷等优势在企业信息化领域得到了广泛使用,其实现同样依赖ActiveX控件和NPAPI插件技术

然而,这些浏览器的控件或插件是否安全、是否稳定好用,完全取决于其开发商,因此时常被别有用心的人或公司利用来散发病毒、植入木马或偷取敏感信息,导致联网操作越来越不安全,浏览器本身也经常因此失去响应或崩溃。IE浏览器不得已增加了多种所谓的安全设置来限制运行ActiveX控件,这又导致体验差、实施维护难,因为大多数电脑用户也不懂得如何修改设置来确保正常运行这些ActiveX控件。如下图所示:

而谷歌公司在2015年索性宣布在其后发布的Chrome浏览器直接取消NPAPI插件的运行支持,随后Firefox新版本浏览器也跟随Chrome不再支持NPAPI插件的运行,从此所有使用了NPAPI插件技术的老网站再也无法在ChromeFirefoxOpera等高版本浏览器中运行,老网站提供商大多数就只能退而求其次,需要时只能让用户启动IE来访问。这不,时至今日即使是最有钱的金融行业各大银行,也没有解决其网银系统在ChromeFirefox等高版本浏览器中的使用问题。当用户在这些浏览器中使用遇到兼容性问题时,也只能无奈的告诉用户,请使用IE浏览器,囧。然而现在微软平地一声雷,突然宣告IE即将寿终正寝,比如大多属于公共服务的银行、工商、税务、教育等老网站及OAERP等企业信息化系统还不得不继续提供服务,这就面临再无合适浏览器可用的窘境,现在是迫切需要一个具有良好兼容性、稳定可行的主流技术方案来彻底解决此问题的时候了。

二、     现有方案

结合当前各方面的信息,现有解决方案大体上有如下几类:

1.       以不变应万变方案,继续当鸵鸟,不升级操作系统和浏览器版本,避免无法使用的情况出现。虽然说这样也不是不可以,但会面临巨大的安全风险,因为使用的陈旧操作系统如Windows 7或低版本浏览器被发现和公开的漏洞越来越多且无法修复,随时可能被攻击或被利用导致业务系统停止运行和丢失敏感数据。况且此方案只适用于企业内部电脑数量少且固定的场景。对于类似网银这样为公众服务的网站或终端请求电脑数量多又经常变动的网站,用户的电脑操作系统和浏览器版本往往是不可控的,只能尽量主动去适配用户的电脑环境确保可用,否则每人一口唾沫也会把客服人员淹死。或许你会说让用户全部切换用手机APP或传统桌面客户端就行了,不再提供桌面网页版,暂且不说这种躲猫猫的懒政行为会对企业形象造成巨大伤害,企业网银的桌面网页版总不能也取消支持吧,因为在企业内网中使用桌面电脑的比例比较高,移动端由于屏幕大小所限或安全因素考虑,始终还是少数,而传统桌面客户端开发、部署、维护等又是个大麻烦。还有就是业务系统所用的电脑,时间长了可能坏掉或需要增加数量来使用,而这些新购电脑往往安装的是当前主流的操作系统,说不定哪天就无法降级安装老版系统来使用了。在20211月份就发生了一起因新购电脑自动安装了被Adobe公司突然停用的Flash Player软件版本导致大连车务段的现在车系统无法正常使用的事故,引起了广泛的舆论关注和网民的群嘲,幸运的是这些新购电脑还能安装旧版系统降级使用,但问题并未得到根本解决。

2.       采用浏览器扩展方案,比如ChromeEdge等浏览器上的扩展程序商店中,可以下载安装国外开发商提供的IE Tab,但其商业用途是收费的。通过此扩展程序,可以在浏览器标签页中把某个网页整体用IE内核渲染显示,据统计这是在Chrome程序商店中付费用户最多的扩展,可见需求还挺强烈。不过由于国内的特殊网络环境,往往无法直接在线下载完成安装,对普通电脑用户来说这步就太难了。况且商业用途的话,企业内网常常是和外网阻断的,实施部署非常麻烦,而且网页需要切换到IE内核渲染时还需要用户手工点击一下,体验还是差了一些,也无法满足国内自主可控的要求。其售价也不低,因为是国外开发商,沟通交流存在障碍不说,采购流程也是漫长又繁琐的。好处是不需要修改网站代码,可支持主流版本的浏览器使用。

3.       双内核浏览器方案,国产典型的如360QQ等浏览器,需要用IE内核来渲染的网页,可在地址栏右侧手工点击切换内核的闪电图标来完成重新加载显示。此方案虽然是免费的,不过代价是终端电脑用户可能会时常收到广告弹窗,防不胜防又无可奈何。这些浏览器往往也非常臃肿,因为夹带了不少和开发商利益相关的私货功能,另外其内置的Chromium内核版本往往不是最新的,也存在潜在的安全漏洞风险。最大的问题是这些浏览器在整个桌面浏览器的市场份额占比低,无法保证70%左右市场份额的Chrome浏览器可正常使用。此方案好处也是不需要修改网站代码,成本低。

4.       微软官方建议的方案,就是EdgeIE模式。笔者作为这方面的专业人士,在Edge最新的大众90版本上根据网上的相关教程也没实践出如何让某个网站用IE模式来渲染显示,诸位看官可出手试试,^_^。其复杂的设置如下图所示:

  这个Chromium内核的Edge浏览器,在微软重金推广之下,目前市场占有率也还仅仅是个位数,或许正如微软自家网页翻译服务自动译为“边缘”浏览器的意思一直这样了,想要作为主要技术方案来实施还是太勉为其难,而且Edge只能模拟IE 11,说是差不多到2029年也要取消IE模式,而在64位系统上EdgeIE模式能否加载32位的ActiveX控件也是未知数,感觉就是不想让你用起来IE模式,微软为了让客户改用Edge也是无所不用其极啊。

5.       彻底改造方案,就是将无法在Chrome等浏览器中兼容运行的程序模块,比如ActiveX控件实现的功能改用比如HTML5WebGLWebAssembly等新技术重写。然而理想是好的,现实确是非常无奈的,由于Chrome等浏览器越来越收紧其开发接口,太多想要实现的功能很难做到。即使能实现,很可能功能实现不全,另外投入大、周期长,前端网页代码需要同步调整,运行性能也是很大的问题。就拿摄像头的RTSP实时视频流播放来说,IE中调用ActiveX控件来播放延迟在毫秒级,而在Chrome中只能采用转码方案播放延迟在秒级,相差数倍,往往无法满足安防行业的要求。此外还普遍存在ActiveX控件的调用方和ActiveX控件的开发方不是一家的情况,调用方想要实现替代ActiveX控件功能更是难上加难,而想要开发方公司提供替代组件往往也不可行,开发方失联或已经关门歇业也不是啥稀罕事。

三、     新方案

综合对比上述的各种方案,您会发现没有一个方案是可以令大家满意的。想要实现一个低成本、兼容性好、高性能、易于实施的自主可控解决方案,需要另辟蹊径。这个问题的根源还是因为Chromium等内核的浏览器不再支持DLLActiveX控件等原生程序的运行,新提供的PPAPI插件技术又因为太多限制迄今为止成功案例极少,很快会被取消支持。所以突破点就在于是否能在主流的ChromeFirefox等浏览器之上实现一个通用的外接框架来支持这些原生程序的内嵌网页运行,并且可以自动响应浏览器的各种操作如窗口缩放、窗口移动、窗口关闭、网页滚动、标签页切换等。成都佐罗软件有限公司工程师依靠二十年的技术积累并经过数年技术攻关发布了成熟的半开源国产中间件软件pluginok(https://codechina.csdn.net/zorrosoft/pluginok),正好满足此需求,而且兼容性很好,是一个跨浏览器的原生小程序系统,同时提供了前端可自动安装、升级小程序的可控机制,重点还引入了调用方权限验证机制,可确保这些小程序的运行安全。这一整套技术方案具有较强的创新性和实用性,还申请了软件发现专利保护。已经有不少公司采用,有的还是上市公司,运行效果完全和以前NPAPI插件实现的一样。下面是其实现原理图:

pluginok在浏览器之外再搭建了一个和操作系统交互的通道用于支持DLLActiveX控件等原生程序的运行,完全不依赖浏览器自身的开发接口,这样就很好规避了浏览器升级可能造成技术方案失效的风险。而在浏览器中通过HTML5标准中的Web Socket技术和这个pluginok中间件及启动的原生小程序通讯,实现双向的命令请求和反馈机制。此方案的难点是要让外接的程序能够很好的模拟运行在网页中,实现内嵌网页运行的真实体验,可喜的是我们看到pluginok实现的效果令人满意,不仅仅支持有交互界面的窗口程序可内嵌运行,也可以对各种硬件设备的驱动DLL进行调用。开发商还发布了VLC网页播放小程序、桌面微软Office及金山WPS在线编辑系列小程序等,可以把WordExcel等程序窗口直接完整内嵌到Chrome网页中运行,另外还发布了PCL网页渲染小程序、AutoCAD网页小程序及Solidworks小程序,为工业互联网的蓬勃发展贡献了自己的力量。pluginok中间件的问世不仅仅是为解决老网站兼容运行的问题,而且是基于浏览器搭建了一个类似微信小程序那样的小程序生态系统,用于扩展浏览器的功能,让浏览器成为各种信息化系统集成的最佳容器,可彻底解决B/S系统的各种痛点和难点,让传统的C/S桌面程序迁移到浏览器中运行再无障碍。

具体到兼容老网站的方法,基于这个pluginok中间件提供了两种方案:第一种就是pluginok中间件搭配其官方发布的IE控件小程序,可以在Chrome等浏览器网页中通过脚本请求实现局部加载IE内核渲染的网页,成本低,前端改造小,部署可实现自主可控,这就比IE Tab扩展插件好太多了,当然缺点也是有的,这就是IE浏览器自身带来的了,加载运行时弹警告体验差、稳定性差、内存占用高,不想太折腾的老网站建议采用。第二种方案属于彻底改造方案,彻底抛弃IE内核,将原来的ActiveX控件或DLL等程序模块,基于pluginok中间件的二次开发接口封装为一个独立进程的小程序来运行。此方案前端改造大些,成本相对高,不过体验好,性能高,内存占用低,适合新开工项目采用。这两种方案都可以直接复用以前的DLLActiveX控件,无需其源码,这就大大节省了开发成本。第一种方案只需要修改网站前端代码,第二种同时还需要开发一个小程序,不过这个开发还是比较容易的,看介绍提供的是COM组件的友好接口,也可以委托开发,只是多一点成本,至少技术上是完全没问题的。

四、     总结

一个好的技术实施方案,首先是要满足客户的刚性需求,其次是尽量降低采购、开发、实施及维护的总成本,再次是要有良好的兼容性和稳定性,最后需尽量确保技术方案不能因为操作系统或浏览器的升级而失效。本文基于当前最新的技术信息和实践经验,给大家提供了基于pluginok中间件的两种新方案来解决老网站在Chrome等浏览器中的兼容使用问题,尤其适用于少改动以避免影响现有业务系统运行的场景,以供大家技术选型参考。

近期服务客户部分名单

感谢以上客户信任我们选择了PluginOK中间件软件及相关小程序,后续也将获得我们优质的售后服务!

说明:以上名单纯属随机排列,无先后之分。

PluginOK中间件版本及授权类型说明

一、 概述

PluginOK中间件为满足客户各种业务场景的需要以是否限制终端电脑使用数量来区分,提供网络版单机版授权类型,网络版可配置为SAAS服务模式;从功能复杂度和实现效果来区分,只支持DLL及弹窗小程序的是标准版支持交互窗口内嵌网页运行效果的则为高级版以上可组合成4种版本授权,分别是单机标准版、单机高级版,网络标准版,网络高级版PluginOK中间件之上可以运行本公司发布的各种小程序,也可以运行客户自行开发的小程序,根据业务系统的需要可对这些小程序进行组合授权,为了确保中间件及小程序的运行安全,未授权的小程序,是不允许被启动运行的。

二、 详情

网络版授权费用相对较低,但需绑定某个服务器使用,终端电脑使用数量受限默认报价提供100个电脑终端使用权限;而单机版授权费用高,终端电脑使用数量不受限。简单说,项目类需求建议采购网络版授权,产品类建议采用单机版授权如需支持内嵌网页运行效果则需要购买高级版授权PluginOK中间件作为跨浏览器的原生小程序系统,是支持运行各种各样小程序中间件本身的授权只需要购买一次,当需要授权运行多个小程序时,只需增加具体小程序的费用即可。此外本公司为满足大多数客户的实际需求,已针对多个典型应用场景分别开发了对应的小程序版本,如文件操作小程序、IE控件小程序、VLC网页低延迟播放小程序、桌面Office网页在线编辑小程序、Autodesk二维工程图小程序Solidworks三维工程图小程序、点云数据网页渲染PCL小程序等,这些官方小程序一般不提供单机版授权除非是HTTPS网站绑定指定子域名的SSL证书来使用。第三方基于单机版开发小程序时,如主要功能和上述小程序重叠时,仅限于第三方系统使用,不得搭配PluginOK中间件授权再对外进行转售

三、 单机硬件版

由于单机版一般是不限制终端电脑使用数量的,授权价格相对网络版来说是贵一些的,因此针对部分能够提供设备唯一编号接口的情形,本公司特别推出单机硬件版授权模式,授权费用标准向网络版看齐。给实施现场分发程序包进行安装时,需提前把涉及设备的唯一编号提供给本公司制作授权文件,此类设备对应的小程序开发必须委托给本公司进行,并且不提供小程序的源代码。

四、 如何选择

首先,需要确认是只需购买标准版授权,还是需要购买高级版授权;其次,根据现场需求,统计需安装PluginOK中间件的终端电脑数量和了解网络是否畅通;再次,结合本公司的报价和贵公司准备投入的经费来匹配对应版本的授权。PluginOK中间件提供了按年付费的授权模式,也提供长期授权模式(100),如客户现场是内网并对稳定性要求高,建议购买长期授权。如需要基于本公司的SDK开发自己的内嵌网页小程序类型,可先购买一年的授权费用进行开发,到可实际上线发布运行时,再补交对应年限的授权费用获得长期授权。如还有疑问,请添加微信(ZorroSoft)做进一步沟通。

在Chrome、Firefox等高版本浏览器中实现在线编辑、审阅Office文档新方案

一、背景

        在IE、Chrome 45及Firefox 53以下版本的浏览器网页中,可直接或间接调用微软免费开源的ActiveX控件DsoFramer即可嵌入本地安装的Office软件实现在线编辑或审阅Office文档。然而好景不长,从2015年开始Chrome、Firefox等新生代浏览器先后取消了对NPAPI插件的支持,在这些浏览器的后续版本中如何实现就成为了技术难题。IE浏览器又因各种问题导致其不断被用户抛弃,其市场份额已降到前端主流框架直接放弃兼容的地步。而随着Windows系统及Office软件的不断升级,DsoFramer的稳定性和兼容性问题越来越多,不支持64位浏览器不说,也不支持金山WPS及开源的LibreOffice等办公软件,要命的是2008年以来微软再无升级版发布,导致其用于商业用途具有很大风险,除非自己有研发能力解决这些问题。虽然随后有点聚WebOffice控件模仿DsoFramer接力举起免费的大旗,为其收费的电子印章产品导入客户,然而依然无法克服ActiveX控件固有的缺陷,只能在32位的IE浏览器中使用不说,往往还需要修改终端电脑IE的默认安全设置,实施成本高、加载运行时弹警告导致用户体验差,这不现在点聚WebOffice的官方网页和交流论坛也都没了踪影,不再继续维护升级,因为没开放源代码,第三方也无法修改其缺陷,其客户再次被抛弃了。

        随着SAAS模式的兴起,纯网页实现的在线编辑或审阅Office文档成为了大家重点发力的方向,包括微软、金山、谷歌、阿里巴巴、腾讯、字节跳动等巨头在内的诸多公司纷纷发布了自己的在线Office服务并不断拓展其功能,对传统OA厂家都造成了一定威胁。经过多年的发展,虽然这些在线文档服务在多人协作分享、跨平台、使用成本及便捷性、维护升级等方面具有优势,但存在的问题也着实不少。相对于桌面版Office来说,在线Office服务存在一些功能缺失,需网络随时在线方可用,并且不能保证完全兼容桌面版生成的文档、文档内容复杂或表格记录大时打开缓慢甚至直接卡死,多文档同时编辑或嵌套内容难,版式文档原样呈现或打印效果有时无法保证一致性,私密性、安全性不够,在线服务器压力大,最关键的是其开放能力不足很难整合到OA、CRM、ERP、企业网盘等系统作为子模块使用。另外,不少企业由于历史的原因都已购置了桌面版Office的长期使用授权,也整合到了自己的各种业务系统中使用,也就很难再每年付费切换到在线Office版使用,毕竟还面临要改变用户使用习惯的难题。所以最好的解决办法还是在原来的桌面版Office软件之上,通过技术手段让其可顺畅运行在Chrome、Firefox、Edge、360、Opera、QQ等主流版本浏览器中。

二、现有方案

        实现微软Office、金山WPS等桌面软件嵌入浏览器网页实现在线编辑或审阅doc、docx、xls、xlsx、ppt、pptx、wps、et等办公文档,大体上有如下几个方案:

  • 浏览器插件方案

        此方案目前主要适用于IE浏览器,网页中直接运行ActiveX控件调用桌面Office软件的自动化接口来实现。前述章节提到的免费DsoFramer及点聚WebOffice控件如此,收费的重庆软航NTKO Office文档控件、北京卓正PageOffice、广州华尔太WebOffice控件也是如此。而在Chrome 45、Firefox 53以下版本的浏览器中,收费的有江西金格iWebOffice智能文档控件在NPAPI插件中再调用ActiveX控件来请求桌面Office软件的自动化接口。这些商业收费控件,自然也为满足OA等系统的需求做了一些兼容性处理,如兼容更高版本的Windows系统、微软Office、金山WPS及64位浏览器,功能扩展如智能填报内容,文档加密、版本管理、拆分合并,痕迹保留等。2015年开始在非IE浏览器取消NPAPI插件支持后的技术突围过程中,江西金格iWebOffice智能文档控件表现相对突出,其基于Chrome浏览器PPAPI可信插件技术发布的新版可用于兼容44以上版本,并通过在系统驱动层拦截并修改浏览器启动参数解决了PPAPI可信插件必须通过命令行启动浏览器才支持的技术难题,因此其销售价格非常昂贵。然而采用系统驱动的底层技术方案可能导致操作系统蓝屏死机不说,微软对系统驱动程序管理越来越严格,每年的数字证书费用也是一笔不小的开支,况且不少单位的等级保护要求是不允许用系统服务或驱动程序的。另外PPAPI插件并未得到Firefox浏览器的支持,只是一个过渡技术方案而已,这不Chrome在2021年初已经取消了对Flash Player PPAPI插件的支持,也宣布了2021年6月终止对 NaCl、PNaCl 和 PPAPI插件的支持,这就彻底宣告了浏览器插件模式即将寿终正寝。

  • 特定浏览器方案

        为了应对Chrome、Firefox等浏览器关闭插件接口后的技术挑战,又希望保证原有业务系统的正常运行,一些实力较弱的公司只好推荐客户继续使用面临安全漏洞威胁的低版本Chrome浏览器,或者推荐使用双内核的国产360安全浏览器并要求切换到IE内核使用。实力稍强一点的公司基于Chromium低版本的内核开发特定版浏览器来确保NPAPI插件可以继续使用,用户无法享受高版本浏览器的功能不说,低版本内核存在的安全漏洞和程序BUG也无法得到修复。然而企业信息化系统往往是非常复杂的,对浏览器的要求比较高,很可能不支持这些特定版的浏览器,所以不能因为Office文档控件只能在这些特定浏览器上运行而导致OA等系统也跟着受到限制。

  • 外接程序方案

        重庆软航NTKO Office文档控件、北京卓正PageOffice、广州华尔太WebOffice控件等在NPAPI插件禁用后,纷纷采用浏览器外部协议(URL Procotol)方式来启动独立的Exe外接程序,而这个独立程序会内嵌一个IE内核用来支持ActiveX控件的加载运行,也号称兼容Chrome和Firefox等高版本浏览器运行了。这种技术实现导致在网页中每次启动Office控件时,都会弹出一个不胜其烦的确认对话框让最终用户选择,如下图所示:

用户使用体验很差,这些弹出的独立进程窗口和浏览器原来的网页窗口是完全分离的,还涉及到两个窗口之间的数据传递和控制问题,增加了系统复杂性。如果用户提前启动了Word、Excel等程序使用,往往还会导致其控件在打开文档时异常,对商业用途的客户来说这种技术方案基本上是不可接受的。

  • 双内核方案

        此方案主要是依托Chrome等浏览器上的扩展程序IETab来实现,商业用途是需要付费使用的。其原理是通过在Chrome标签页中加载一个IE内核渲染的网页进行覆盖显示,这个网页再调用比如DsoFramer控件实现Office文档的编辑。由于Chrome的扩展程序必须通过谷歌或微软应用商店进行安装,导致此方案存在大规模自主可控部署难问题。而且IETab实现的效果是对整个网页生效,无法在Chrome内核网页中再实现局部加载IE内核网页来显示,况且IE对运行和下载ActiveX控件常弹出警告,用户体验很差,即使通过修改IE的默认安全设置来减少弹窗,然而这个修改设置过程也需要专业的技术人员才能完成,大幅度增加了实施成本。

三、改进方案

        通过上述总结的现有技术方案可以看出,想要在当前主流版本的Chrome、Firefox、Edge等浏览器网页中内嵌桌面Office软件实现文档或表格在线编辑等功能,核心就在于如何在各浏览器中实现一个统一的不依赖浏览器自身扩展技术的外接系统,同时必须对各品牌及各版本的浏览器有比较好的兼容能力才具有较大的实用价值。所以改进方案就是在网页中指定位置和大小,模拟实现一个内嵌到网页中显示的窗口,在这个窗口中再调用桌面Office软件的自动化接口实现doc、xls、ppt等文档的操作。前端还必须可对这个窗口进行实时控制,而且窗口必须跟随浏览器的移动和缩放、网页滚动、标签页切换、关闭等操作进行自动联动。这个窗口的宿主进程同时提供Web Socket的服务端和JSON打包命令的解析执行模块,前端就可以通过Web Socket连接后发送JSON打包的控制命令实现控制此窗口的动作。此方案可以说是上述外接程序方案的升级版,关键差异在于此方案可实现内嵌Word、Excel、PowerPoint、WPS文字、WPS表格等程序窗口到网页指定区域运行的效果,而且抛弃了通过IE内核来加载ActiveX控件的方案,解决了用户体验差、加载缓慢和内存占用高的问题。另外启动这个外接程序是通过Web Socket连接实现的,也解决了每次启动都会弹提示的烦恼问题,还有就是要提供类似ActiveX控件的自动升级替代方案,可实现静默自动升级,并额外增加了调用验证机制确保外接程序的安全。成都佐罗软件有限公司发明的此方案早已申请了软件发明专利保护,而且对应实现的软件产品已经发布半年有余,这就是跨浏览器的原生小程序软件系统—PluginOK中间件(https://codechina.csdn.net/zorrosoft/pluginok),自发布以来成功应用到电力、医疗、交通、安防、保险、工业设计等行业客户,获得了一致好评。其技术原理图如下:

        微软Office网页小程序(http://zorrosoft.com/Files/msofficeapplet.txt )和金山WPS网页小程序(http://zorrosoft.com/Files/WPSOfficeapplet.txt )都提供了丰富的二次开发接口,并可根据自己需要进行二次开发。由于这个改进方案提供的Office网页控件接口和老方案的差异比较大,所以比较适合应用在新项目和新产品的中。那么对于哪些已经调用了微软DsoFramer,点聚WebOffice、NTKO Office等文档控件的信息化系统,是否有代价比较小的改造方案的升级方案呢?答案自然是肯定的,可以借助PluginOK中间件之上的IE控件小程序,动态实现双内核的运行效果,类似现有方案中的双内核方式,但解决了分发和在线升级的难题,同时可实现在Chrome网页中局部加载显示的效果,用户体验也得到了大幅度提升。无需改变这些文档控件的调用方式,只需要在网页中判断如果遇到的是非IE浏览器时,请求启动IE控件小程序加载即可。这里是实现的效果展示视频:https://www.bilibili.com/video/BV1zp4y1n7R6/

四、总结

        一个好的技术实施方案,首先是要满足客户的刚性需求,其次是尽量降低采购、开发、实施及维护的总成本,再次是要有良好的兼容性和稳定性,最后需尽量确保技术方案不能因为浏览器的升级而失效。本文基于当前最新的技术信息和实践经验,给大家提供了PluginOK中间件搭配Office网页小程序这样一个稳定可靠、体验好、兼容性佳的桌面Office文档控件技术方案,尤其适合在内网处理复杂文档和数据量大的表格场景,以供大家技术选型参考。如您还有问题,欢迎随时加微信沟通:ZorroSoft

PluginOK中间件产品介绍

     

        PluginOK中间件是一个实现浏览器与桌面程序之间可双向调用的强兼容、高性能、安全可控、低成本、轻量级、易集成、可扩展、跨浏览器的原生小程序系统。通过此中间件可实现在网页中无障碍操作终端电脑连接的各种硬件设备、调用操作系统API及本地DLL功能,可彻底解决ActiveX控件及桌面自动化程序(如微软Office、金山WPS、AutoCAD、Solidworks等)在Chrome、Edge、360、Firefox、IE等浏览器中的嵌入使用问题,是开发丰富型、高性能、高安全及实时通信互联网应用的首选,是浏览器进行功能扩展的秘密武器,也是采用了微软Silverlight和Adobe Flex等RIA技术的ERP、CRM、PDM等系统兼容Chrome等最新版浏览器的最佳产品。PluginOK中间件提供的前端集成接口语言无关,网页中只需使用简单的JS脚本即可完成与B/S系统的对接,让浏览器成为各种信息化系统集成的最佳容器,彻底解决B/S系统的各种痛点和难点,让桌面程序迁移到浏览器中运行从此再无障碍。

        针对各种应用场景,PluginOK中间件之上官方发布可用的典型原生小程序如下:

  • IE控件小程序和IE标签页小程序,可将原来只能在IE浏览器中运行的网页直接内嵌到Chrome等浏览器界面中显示,可指定IE内核特定版本,还可设置在网页显示区中局部加载,实现在同一网页中的双内核网页融为一体的渲染显示效果。让加载了ActiveX控件、Java Applet、Silverlight、Flex的网页无需做任何改变即可在Chrome等浏览器中正常显示。其中IE标签页小程序对标IETab插件,无需手工切换显示,国产自主可控、便捷部署和升级,需要时可开放小程序源代码确保信息安全。
  • VLC网页播放小程序,可实现在Chrome、Edge、Firefox等浏览器中低延迟稳定播放多路海康、大华RTSP流,尤其是在播放高清或H.265编码流时不卡顿、不花屏、首屏内容显示快,和转流方案相比,延迟可控制在数百毫秒级,可节省大量服务器和带宽成本。终端电脑只需一次性部署VLC桌面播放程序、PluginOK中间件和VLC网页播放小程序的集成包,以后全部可在网页中实现静默自动升级。是各种信息化系统集成摄像头监控画面的首先组件,也可购买小程序源代码定制多分屏播放风格和更多功能。
  • Office网页小程序,可实现将本地安装的微软Office软件或金山WPS软件直接内嵌到网页中运行,实现在网页中在线编辑、审阅、签章各类办公文档(doc/docx、xls/xlsx、ppt/pptx、pdf等),是OA、文档管理、网盘等系统的福音,相对于云端技术方案(服务器先解析文档格式后在网页中再渲染内容),Office网页小程序具有无可匹敌的格式兼容性和最佳运行性能,并且保持了原有的用户使用习惯,让原先购买了Office软件授权的投资不至于因为切换到云端技术方案而浪费。目前市场还存在的一些Office网页控件产品,要么只兼容IE和低版本的Chrome浏览器,要么是采用了PPAPI插件技术的方案,而谷歌公司已经官方宣布,将在2021年6月停止PPAPI的支持,届时Office网页小程序将成为Office网页控件的不二之选。作为OA等开发商,是不能被动等到PPAPI彻底停用才来想办法解决问题的,为了保证业务系统的平滑过渡,需尽快启动接入Office网页小程序的事宜才是上策。
  • Autodesk网页小程序,可实现dwg、dxf等工程图在网页中的在线编辑、查看、审图等功能,搭配文件操作小程序还可实现工程图下载后自动打开编辑、保存后自动上传服务器实现服务器端的版本管理。除在线编辑需要启动本地AudoCAD软件来进行外,在线查看和审图等只需要安装免费的DWG True View及Design Review软件即可进行。此小程序也为在网页中实现3D设计图和GIS信息在网页中编辑或展示提供了良好的示范,为工业互联网中的应用高效运行提供强大支撑。
  • Solidworks网页小程序,可实现xt、step、sldprt等三维工程图在网页中的在线编辑、查看等功能,搭配文件操作小程序还可实现工程图下载后自动打开编辑、保存后自动上传服务器实现服务器端的版本管理。除在线编辑需要启动本地Solidworks软件来进行外,在线查看等只需要安装eDrawings软件即可进行,为制造业PDM等系统提供各类工程图文档网页端渲染提供强大支撑。
  • 点云数据网页渲染PCL小程序,可实现点云数据在网页中的在线渲染查看等功能,前端还可调用小程序提供的开发接口实现更丰富的功能。此小程序调用PCL点云库实现,底层调用OpenGL原生支持,为渲染效果和性能提供了根本保障,此小程序建议运行在Windows 7及以上版本的64位系统上。

        PluginOK中间件还提供了强大友好的二次开发接口,客户可根据自己的需要将自身业务需要的DLL和OCX等基于PluginOK SDK开发成对应的小程序,从而可运行到Chrome等各版本浏览器中,无需对DLL和OCX进行重新开发或修改,以最小代价实现业务系统的平稳升级。在信息化系统的开发过程中,往往需要接入多种设备或控件,或者因为系统A只能运行在IE而B系统只能运行在Chrome等导致体验差的问题借助PluginOK中间件可迎刃而解。随着PluginOK中间件之上运行的原生小程序不断丰富,也为尽快满足客户需要的系统扩展功能提供更强大的支撑。

        PluginOK中间件为商业用途而生,所有小程序都需要经过严格测试和数字签名才在客户现场部署实施,而且引入了调用方权限验证机制和时效机制,未经授权的小程序是不可以在正式版环境中运行的,每个小程序都独立于浏览器进程而运行,不会影响浏览器的稳定性,也就不会引发浏览器厂家的封杀。PluginOK中间件还提供了网页中可便捷请求的静默升级机制,无需终端电脑用户干预,大幅度降低了系统的维护升级成本。

        PluginOK中间件高级版所支持的网页中内嵌窗口小程序运行的技术方案,2019年就申请了中国大陆软件发明专利保护,具有无与伦比的技术先进性,而且采购无专利保护的产品是存在侵权风险的。由于PluginOK中间件不依赖任何浏览器本身的插件开发技术,所以其技术方案也不会因为浏览器的升级导致后续无法使用的现象发生,稳定可靠对信息化系统来说是至关重要的。此外PluginOK中间件最低可在Windows XP系统中运行,也兼容最新版本的Windows 10系统,还对Chrome、Edge、360、Firefox、IE、Opera、QQ、搜狗等各版本的浏览器做了全面兼容处理,其出色的兼容能力大幅度扩展了原有信息化系统的兼容性。自PluginOK中间件高级版发布一年以来,经过多个版本的迭代开发和电力、交通、医疗、保险等行业客户现场的成功实施,获得包括一些上市公司的采购或OEM合作支持,已经非常稳定和成熟,是目前市场上此领域唯一成熟的商用中间件软件产品。

在Chrome、Edge等最新版浏览器中继续使用Flash Player方案

一、背景

        最近大连车务段在其公众号发表了题为《全力攻关一昼夜,确保运输三十站》的文章,迅速在网络上引发了群嘲,面对舆论压力只好自行删除了此文。起因是其现在车子系统在浏览器中运行的网页代码依赖Flash Player控件的运行,而其开发商Adobe公司呢,完全没考虑商用业务系统的风险做了一个骚操作,在32后的版本中加入了“定时炸弹”,从2021年1月12日(美国时间)开始禁止Flash内容在Flash Player中运行,而Flash Player在Windows 8及以上版本的操作系统中一直是内置自动更新的,从而引发了现在车子系统的故障。按理说你Adobe公司不再维护Flash Player也就罢了,用户继续使用引发的风险自己承担,也没人会来追究你的责任,非要整这么一个定时炸弹在软件中,这和植入了木马病毒又有啥差别呢?可能很多人在说,3年前Adobe公司就公告了这个时间点会停止更新和分发Flash Player,相信大家也绝不会想到Adobe公司会植入这个定时炸弹。而大连车务段遇到的问题绝不是孤例,只是并非所有单位都在公众号发个表扬稿罢了。

        Flash Player从1996年诞生开始,逐步成为一种广泛使用的多媒体程序播放器,因为Adobe大力推广其Flex作为RIA(因特网应用程序)的框架,第三方因此开发创造出众多丰富型互联网应用程序,最典型的如曾经火热一时的网页游戏,进一步丰富了Flash Player的使用场景。有数据统计,Flash Player曾经达到13亿台电脑安装使用,装机率超过90%。正因为如此,在数年前开发的各种业务系统,包括企事业单位的网站,或多或少也都依赖它才能正常运行。

        然而互联网技术的更新换代一直是非常快的,因为Adobe一系列失误导致Flash Player错失了在移动平台的发展良机,漏洞太多加上HTML5、WebGL、WebAssembly等技术的不断成熟,当前主流的Chrome、Edge等浏览器于2021年1月22日左右发布的88版也纷纷对Flash Player痛下杀手,取消了其PPAPI插件的运行支持,微软也来补刀推出可选更新 KB4577586直接卸载原系统集成的Flash Player版本。对于那些依赖Flash Player的网站和业务系统,如何保证继续正常运行成为了难题。

二、现有方案

        虽然3年前 Adobe就建议开发者将Flash内容及程序移植到 HTML5、WebGL 以及 WebAssembly,但客观现实是当初开发Flash相关内容和程序的公司可能都已经倒闭了,或者因为迁移成本过大、或者体制原因无法立项缺乏经费、或者对新技术储备不足等迟迟未做改造,比如咱们的CCTV官网就还有很多视频还需要Flash Player来播放,所以只能从浏览器端想办法了。而想要在浏览器中继续正常使用Flash Player,目前有以下几个可选的方案:

  • 回退旧版本方案

        这也是大连车务段采用的保守方案,卸载有时间炸弹逻辑的版本,将Flash Player回退到29版(无锁区及广告骚扰问题)使用,此方案虽然可用了,但不可避免的因为使用的是旧版本,其中存在已曝光的漏洞还是存在很大安全风险的,另外也只能在Chrome、Edge等浏览器87及以下版本及IE浏览器中加载使用。

  • 特有浏览器方案

        此方案也就是国产浏览器方案了,如360极速及QQ浏览器等,这些浏览器一般都是双内核,其中的Chromium内核版本一般都比较低,所以还可以继续加载Flash Player来使用,啥时候这些国产浏览器升级内核到88及以上版本,就彻底不支持了。典型的如4399网页游戏网站,也是推荐用户用国产浏览器搭配Flash Player中国区版(解除了时间炸弹但会收集你上网习惯来针对性弹广告)来使用(当然也可以回退版本,不过对小白个人用户来说是不知道如何操作的)。另外Adobe官方对企业用户想要继续使用Flash Player的解决方案说明:Update for Enterprise Customers Using Adobe Flash Player,推荐的第三方合作方叫HARMAN,据了解给出的方案就是提供一个内置了Flash Player的浏览器,一年五万刀费用,其实也是专有浏览器方案,不能在主流的Chrome、Edge、Firefox等浏览器中使用。

  • 替代技术方案

        在Github上有个开源的项目,https://github.com/ruffle-rs/ruffle,是一个用 Rust 语言开发的 Adobe Flash Player 模拟器,通过WASM技术实现在网页播放支持。但Ruffle并非完美无缺,当前它并不能保证完美兼容所有的Flash组件,有时候会遇到出错的情况,另外虽然作为浏览器的扩展可在Chrome等浏览器中调用,不过并未上架浏览器官方商店,只能手工部署安装,对商业用户来说并不友好。由于不是原生官方支持的,其兼容性、稳定性及播放性能都可能存在问题,后续能否长期更新维护也是未知数。

三、改进方案

        从现有方案可以看出,想要完美解决问题,需要同时解决时间炸弹问题(32.0.0.371后的版本加入了时间炸弹的问题)、浏览器全兼容运行问题(Chrome、Edge等88版移除了Flash Player运行支持),在中国大陆地区出的特供版虽然无时间炸弹问题,但因为其收集电脑上网信息并针对性弹出广告,广大用户早就怨声载道,自然也不能用在商业环境中。而国际版从30.0.0.113开始的版本就加入了锁区运行限制,就是国际版正常不能在中国大陆地区的电脑上正常运行。所以对最新的国际版通过修改其控件特定位置的字节码从而解除其在锁区问题及时间炸弹问题。而想要兼容Chrome、Edge等88版及以后更高版浏览器的运行,目前全网上都还没有一个成熟的解决方案。本公司的拳头产品PluginOK中间件(https://codechina.csdn.net/zorrosoft/pluginok)是一个跨浏览器的原生小程序系统,完全可以用来解决此问题。借助PluginOK中间件,有两种办法可以让Flash Player继续运行在Chrome、Edge等最新版浏览器中:

  • PluginOK中间件搭配IE控件小程序(https://codechina.csdn.net/zorrosoft/pluginok/-/blob/master/Bin/IEApplet.txt),让Chrome、Edge、Firefox等浏览器变成双内核方案,而且还可以指定IE内核运行的版本,这种方案尤其适合那些以前只兼容IE低版本浏览器的网站,只需要对网站做简单改造,通过JS脚本连接Web Socket侦听端口,然后通过JSON组包发送命令即可,前端还可以与IE控件小程序互操作。此方案由于借助了IE内核,内存占用会高一些,可能会遇到IE网页加载ActiveX控件警告问题。
  • PluginOK中间件搭配Flash Player网页播放小程序(https://codechina.csdn.net/zorrosoft/pluginok/-/blob/master/Bin/FlashPlayerApplet.txt),此方案完全甩开IE内核来加载Flash Player的ActiveX控件,运行性能比第一种方案好,内存占用低、体验也更好,不过网站改造这块更多一些,不过是一劳永逸的解决办法,如果是新项目要兼容Flash Player的运行,建议用此方案。

针对以上两个方案,也有体验版程序包可以下载:http://zorrosoft.com/Files/PluginOKFlash.zip,需要的朋友可以试试,如遇到问题,可以加微信ZorroSoft咨询。

        这里虽然解决的是Adobe Flash Player的问题,微软的Silverlight也将在2021年10月12日到达支持结束,当初Silverlight可是和Adobe Flex同台竞技的火热程序框架,使用了Silverlight的各种业务系统也非常多,而且只支持IE浏览器。借助PluginOK中间件,还可以将使用了Silverlight的业务系统兼容到Chrome等浏览器运行,也是一箭双雕了。

四、总结

        一个好的技术实施方案,首先是要满足客户的刚性需求,其次是尽量降低开发、实施及运营的总成本,再次是是良好的兼容性和稳定性,最后需尽量确保技术方案不能因为浏览器的升级而失效。本文基于当前最新的技术信息和实践经验,提供了这样一个稳定可靠、兼容性好的低成本半开源技术方案,以供大家选型参考。

在Chrome、Firefox等高版本浏览器中实现低延迟播放海康、大华RTSP

一、背景

        现在到处是摄像头的时代,随着带宽的不断提速和智能手机的普及催生出火热的网络直播行业,新冠病毒的大流行又使网络视频会议系统成为商务会议的必然选择,因此RTSP实时视频流播放及处理不再局限于安防行业。在如道路、工厂、楼宇、学校、港口、农场、景区等场景实施的信息化系统中,已基本全采用B/S架构,迫切需要在浏览器中嵌入多路摄像头RTSP流的超低延迟(小于500毫秒)播放功能,而在IE及Chrome 49以下版本等浏览器中,采用ActiveX控件或NPAPI插件即可实现。然而美好总是短暂的,从2015年开始Chrome及Firefox等浏览器纷纷取消了NPAPI插件的支持,而IE又在与Chrome及Firefox等浏览器竞争的过程中不断被用户抛弃,到现在市场份额已降到可怜的个位数。微软在几经折腾后,索性也拥抱Chromium内核推出Edge新版来杀死自己的IE,以挽救自己在浏览器这块岌岌可危的江湖地位。

        在Chrome、Edge、Firefox等当前主流的高版本浏览器中,即使是HTML5标准的Video也并未对RTSP流播放提供原生支持,从而导致如何在当前主流的浏览器中实现低延迟、低成本并可同时播放多路RTSP成为了一个重大技术难题。这几年国内外的技术专家经过不断研究总结,形成一些闭源或开源、收费或免费的方案,但多数时候无法完全满足客户的实际需求。

二、现有方案

在浏览器中实现播放RTSP实时视频流,大体上有如下几个方案:

  • 浏览器插件方案

        此方案主要适用于在IE及Chrome 49以下版本的浏览器,在2015年前是绝对主流的选择。使用ActiveX播放控件或NPAPI播放插件实际调用的是本地原生程序进行直接播放,从而可充分利用本机的硬件加速能力,可实现满意的多路低成本、低延迟播放效果。一般使用VLC这个免费开源的跨平台多媒体播放器,IE、Chrome、Firefox等浏览器分别有对应的播放插件,对移动端支持也非常好。此方案非常灵活,可以方便的对接各品牌的视频流,也可以很容易实现截图和录像功能。缺点是需要额外安装VLC软件,对个别明确规定不能用插件的场景不太适用。摄像头厂家一般也会提供适配的播放插件,比如海康威视提供的播放控件,是和自己的DSS系统捆绑使用的。

  • 先转码再转流方案

        此方案需要架设一个或多个视频流转码服务器,先在服务器上对RTSP流用ffmpeg进行转码串流成RTMP,然后前端使用VideoJS再调用Adobe Flash Player进行播放,然而2020年底开始基于Chromium内核的所有浏览器就彻底取消对Adobe Flash Player的支持,VideoJS失效。不过幸好还有开源的替代播放方案flv.js(https://github.com/bilibili/flv.js)工作原理是要求在服务端先把RTSP视频流转换为flv后用Web Socket或WebRTC推送到前端,前端收到后再转换为Video所支持的MP4后播放,这就导致RTSP视频流,需要经过2次转码才播放,画面延迟时间大幅度增加,保守估计延迟至少也是2-3秒级别了。况且如果有多路视频流时,服务器端转码和转流对CPU、内存、网络带宽的压力大幅度增加,长期使用成本很高。此方案要求浏览器支持流媒体扩展特性(MSE),且无法利用本机硬件加速实现解码和渲染。优点是可兼容移动端网页播放。

        此方案在国内有TSINGSEE的免插件EasyPlayer RTSP播放器,项目地址是https://github.com/tsingsee/EasyPlayer和linkingvision的免插件播放器H5stream,项目地址是https://github.com/linkingvision/h5stream等。

  • 先转流再转码方案

        此方案的典型代表是Streamedian公司的免插件播放器Html5 RTSP Player,项目地址https://github.com/Streamedian/html5_rtsp_player。此方案需要架设一个Web Socket的视频流转发服务器,前端连接到此服务器后,服务端不断把RTSP视频流通过Web Socket不断转发给前端的JS处理库,JS处理库再把视频流转换为Video所支持的MP4后播放。此方案不支持IE浏览器,最大的问题是画面延迟达数秒,首屏内容显示慢,而且无法利用本机硬件加速实现解码和渲染,CPU占用高,播放时有卡顿现象,体验比较差。另外无法实现本地自动截图、录像等操作。此方案同样要求浏览器支持流媒体扩展特性(MSE),对延迟不敏感的单源播放尚可,多路播放就只能洗洗睡了,另外根据一些用户的反馈,对各品牌摄像头的兼容性也不太友好,作为商业用途使用是不可行的。

  • 扩展程序方案

        此方案典型代表是基于Chrome浏览器的Native Client(NaCl)和Portable Native Client(PNaCl)技术实现开源播放器VXG RTSP Player,项目地址是https://github.com/VideoExpertsGroup/Chrome.RTSP.Player。此方案很显然不适用于IE和Firefox等浏览器,也不适用于49版以前的Chrome 浏览器。VXG RTSP Player是Chrome浏览器的扩展程序,对国内客户来说,由于谷歌服务器在墙外,想要大规模自主可控部署是不现实的。另外最关键的是谷歌已官方宣布,2021年6月终止对NaCl,PNaCl和PPAPI API的支持,因而此方案也无继续探讨的必要。

  • 双内核方案

        此方案典型实现是采用Chrome浏览器上的扩展程序IETab来实现,官方网站是https://www.ietab.net,通过在Chrome标签页界面覆盖加载显示一个IE内核渲染的网页,此网页再调用比如VLC的开源ActiveX多媒体播放控件实现。此方案和方案4一样,存在大规模自主可控部署难问题。另外和上面的浏览器插件方案类似,需要在播放终端电脑中下载运行IEHelpTab.exe客户端程序,对一些高安全要求无插件播放的场景来说不适用。最大的问题是在Chrome网页中对播放控件的控制很难实现,只有网页和播放控件都是在IE内核环境下才可以,而IE对当前一些新技术和前端主流框架的兼容已经不行了,况且IE对运行和下载安装ActiveX控件经常弹出警告,用户体验很差。

  • Wasm方案

        此方案采用的是高版本浏览器所支持的一种方便把更复杂的原生应用直接搬进 Web 的标准技术,然而对浏览器的兼容存在很大问题,IE肯定是不支持的,低版本的Chrome及Firefox等浏览器也不支持Wasm,具体兼容性可看这里https://caniuse.com/wasm。实现的基本思路就是把RTSP视频流通过ffmpeg的Wasm版软解码成Video所支持的MP4后播放,由于Wasm不支持硬件解码,对多路同时播放来说,CPU和内存占用会比较高,性能有很大瓶颈。此方案有时应用在需要支持H265编码的场景,同样要求浏览器支持流媒体扩展特性(MSE)。由于存在诸多兼容性问题,此方案实际应用的案例较少。

三、改进方案

        通过上述总结的现有技术方案可以看出,想要在浏览器中实现低延迟、低成本的多路RTSP同时播放,只有做到不转码直接播放和充分利用终端的硬件加速这两个核心要求才能办到,这就只能采用插件方案。核心就在于如何在浏览器中实现一个统一的不依赖浏览器本身扩展技术的插件系统,同时必须让改进方案对各品牌及各版本浏览器有比较好的兼容能力才具有较大的实用价值。所以改进方案基本思路就是要在浏览器网页中指定位置和大小,实现一个内嵌到网页中显示的播放窗口,这个内嵌播放窗口前端还必须可对其进行控制,而且播放窗口必须跟随浏览器窗口的移动和缩放、网页滚动、标签页切换、关闭等操作进行自动联动。这就要求播放窗口必须是本地程序,最好用高性能的C++语言来实现,这样还可充分利用终端的硬件加速能力。这个播放窗口同时提供Web Socket的服务端和JSON打包的命令解析执行模块,前端就可以通过Web Socket连接后发送JSON打包的控制命令实现控制播放窗口。

        目前本公司经过攻城狮的艰苦技术攻关,成功研发出采用此思路实现的VLC网页播放小程序软件并成功在一些客户现场实施,此小程序基于PluginOK中间件(https://github.com/wangzuohuai/WebRunLocal),提供了一个统一的不依赖浏览器本身扩展技术的插件系统,能实现当前主流浏览器的全兼容,包括低版本的Chrome和IE浏览器;而且对插件的下载和安装提供了类似ActiveX控件的机制,去掉了一些影响用户体验的告警并附加了调用方安全验证机制。而这个播放窗口程序也提供了比较好的范例实现,其具体调用方法可以参考这里的说明:VLC网页小程序开发接口,难能可贵的是在这个播放窗口还直接实现了多路RTSP的同时播放支持,可点选切换播放窗口焦点和全屏播放。据了解,此方案已经成功在多个客户现场完成实施并取得了良好的效果,获得了客户的一致好评,毕竟能实现低延迟、低成本的同时播放是硬道理。下面是播放效果视频展示:

VLC网页播放小程序效果演示

某视频监控大厂最近也发布了此思路实现的版本,不过经过测试发现,不支持Firefox高版本浏览器不说,其播放窗口程序框架采用的是臃肿的QT来实现的,看上去播放窗口只是模拟显示的效果而不是真正内嵌到浏览器窗口中的,导致和浏览器的联动效果比较差,插件包也很大,为提供前端自动升级和安全调用机制。另外想用此播放插件还必须购买其DSS系统,而这套DSS系统的售价不菲,对非安防行业客户来说性价比很低。

对于个别客户要求免插件的要求,主要还是因为安全原因。其实那些所谓免插件的实现方案中,也是需要浏览器从服务器下载JS版播放器的,而插件版下载的是本地程序播放器,只需要保证下载到本地的播放器程序是安全的即可,必要的话可开放源代码来打消客户对安全的顾虑。另外原因就是需要额外下载插件程序导致部署和升级麻烦,为了超低延迟的播放效果,这个是必要的代价,况且前文提到的PluginOK中间件提供了播放插件的自动安装和升级机制,这样就大大降低了部署和升级的压力,效果比IE中的ActiveX控件更好。

四、总结

        一个好的技术实施方案,首先是要满足客户的需求,其次是尽量降低开发、实施及运营的总成本,再次是是良好的兼容性和可靠性,最后需尽量确保技术方案不能因为浏览器的升级而失效。本文基于当前最新的技术信息和实践经验,提供了这样一个稳定可靠、兼容性好、低延迟又可同时播放多路RTSP的低成本技术方案,以供大家参考。如还有疑问,欢迎加微信咨询:ZorroSoft

PluginOK中间件的小程序家族不断壮大

        在大家喜迎国庆&中秋佳节的日子里,佐罗软件的工程师们为了满足客户的需求在加班加点,终于在节后第一天正式发布了中间件的更新版,同时发布了VLC多媒体播放器(最棒的开源播放器,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议)的网页内嵌小程序,可支持多路的RTSP实时视频流同时播放,是目前网页中播放RTSP流实现超低延迟(500毫秒以下)的最佳技术方案,而且支持连续截图保存,图片格式支持png、jpg及bmp。小程序中对VLC ActiveX控件中绝大多数属性和方法进行了封装,前端JS脚本可进行调用,小程序运行效果图如下:

        本次更新同时发布了点聚电子签章控件的网页内嵌小程序,此小程序基于HWPostil.ocx控件(3.1版) (此控件版权归北京点聚信息技术有限公司所有)开发。小程序中对其OCX的绝大多数属性和方法进行了封装,前端JS脚本可调用这些封装的功能。以上两个网页内嵌小程序需要PluginOK高级版授权才可运行,最低可用在Chrome 41、Firefox 52、Edge 80(Chromium内核)、360极速/安全、IE 8、Oprea 36、QQ等浏览器,也兼容运行于这些浏览器的最新版本。点聚电子签章小程序运行效果如下:

        为了更好的配合B/S信息化系统的运行,这次还发布了文件操作小程序,提供本地文件HTTP协议的上传与下载、本地图像文件的旋转与缩放、本地文件及目录操作、本地exe程序启动运行等服务,此小程序可在PluginOK标准版中调用。

       自从2019年PluginOK中间件发布以来,已陆续发布了PluginOK标准版可用的串口操作小程序、方正高拍仪及扫描仪等的弹窗小程序,PluginOK高级版可用的IE控件、新标签及Flash Player内嵌小程序。其中IE控件和新标签小程序实现了可程序驱动的双核浏览器效果,为原来运行于IE中的大量ActiveX控件迁移到Chrome等浏览器运行提供了简洁的迁移方案,只需要在前端对接PluginOK中间件和IE控件小程序即可,尤其适合老项目兼容运行于Chrome等浏览器时使用。由于IE控件小程序调用的是IE的ActiveX控件,所以内存占用会大一些,并且在安装和加载ActiveX控件运行时可能有一些提示或警告,运行速度偏慢,用户体验欠佳。对于新项目及追求极致用户体验的客户,推荐基于PluginOK中间件的内嵌网页小程序开发接口,在ActiveX控件基础之上开发其内嵌小程序的封装版,彻底弃用IE内核,此方案内存占用低、运行效率高、用户体验佳,不过开发成本相对A方案高一点,前端改动会多一些。Flash Player网页内嵌小程序,基于Adobe公司的Flash Player ActiveX控件实现,是Chrome于2020年底彻底禁用Flash Player PPAPI插件后的最佳替代技术方案,欢迎网页游戏开发商、在线教育机构、各类视频网站及系统集成商尽快与我们联系升级依赖Flash技术的网站。

下面是成都佐罗软件有限公司官方发布的各类小程序安装、使用和调用接口:

VLC多媒体播放器网页内嵌小程序

IE控件网页内嵌小程序

点聚电子签章网页内嵌小程序

Flash Player网页内嵌小程序

文件操作小程序

串口操作小程序

标准版范例小程序

        PluginOK支持真正内嵌网页运行的高级版发布以来,已获得不少上市公司的采购合同,他们的选择是本公司实力的最好证明,^_^

        友情提醒:PluginOK中间件是此领域全球唯一实现商用的成熟中间件,技术实现方案于2019年就申请了软件发明专利保护,请大家注意识别仿冒或抄袭者,使用这些冒牌货不仅仅是产品不成熟对您造成巨大损失不说,还有侵犯我们知识产权的巨大风险!

PluginOK浏览器小程序(Browser Applet)闪亮登场

       2017 年 1 月 9 日,微信小程序横空出世。随后,支付宝小程序、今日头条小程序、百度智能小程序、360小程序等纷纷推出,自此国内软件功能扩展领域进入到了小程序时代,小程序为丰富其宿主软件的功能和使用场景,做出了不少贡献,迄今依然是程序开发的一个热门分支,这股热潮甚至吹到了海外。这些小程序,都依赖其自身移动端超级App或PC端浏览器及其后台服务器提供支撑才能正常运行,一荣俱荣、一损俱损。

        浏览器作为互联网最核心的终端软件入口,有没有浏览器小程序呢?其实是有的,且听我娓娓道来。在2015年之前,其实就有类似当前时髦的小程序类型,只不过叫JAVA Applet。浏览器发展初期,因为自身功能较弱,所以提供了非常丰富的功能扩展开发接口,如以IE支持的ActiveX控件和Chorme/Firefox等支持的NPAPI插件为代表的浏览器插件技术,供第三方开发运行在浏览器之上的各类应用,这些插件应用,也可以说是小程序的鼻祖。随着互联网的高速发展,在TO B市场,基于浏览器的B/S(浏览器/服务器架构)信息化系统因为开发测试成本低、部署升级也容易、无需单独安装即可用,所以纷切把传统的C/S (客户端/服务器)系统纷换到B/S架构。那些无法在浏览器中直接实现的功能,又开发出了各式各样的浏览器插件来配合网页运行,甚至基于浏览器插件技术的JAVA Applet和Flash中间层的上层应用也多如牛毛,如曾经红火的网页游戏,因此又有力推动了互联网的更快发展和企业信息化系统的快速建设与使用,因此赢得了客户的信赖,培养了用户一切以浏览器为中心的使用习惯,甚至一度有浏览器将取代操作系统的说法。

        然而好景不长,曾经处于市场垄断地位的IE浏览器,因为微软对其不思进取而无法及时响应互联网的发展需求,不断被用户抛弃使用。而Chrome在成为主流浏览器之际,包括Firefox在内的浏览器于2015年以NPAPI插件不安全、不稳定原因先后痛下杀手,封杀了插件技术作为扩展浏览器功能的通道,依赖插件技术的浏览器小程序前途从此暗淡。这次对NPAPI插件的封杀,虽然名义上保护了大量个人用户,但也直接导致了依赖插件技术的企业信息化系统不能在升级后的浏览器中正常运行,JAVA Applet也因此退出历史舞台,国内有金主之称的银行的在线网银系统,也只能告诉用户继续使用体验差的IE浏览器或未升级版本的Chrome浏览器来访问。虽然Chrome还提供了PPAPI的插件技术作为替代方案,但其限制极其严格,根本无法满足企业用户的需求,加上Firefox等浏览器也不支持,也就成了鸡肋。这不Flash Player的 PPAPI插件,谷歌宣布在Chrome浏览器中2020年底彻底寿终正寝。

        为了能在Chrome等升级后的浏览器中继续加载有ActiveX控件的网页,奇虎公司率先推出了同时集成Chromium和IE内核的浏览器满足了部分用户需求,又在小程序的热潮来临之时,发布了依托于360浏览器的小程序号称打造PC端的小程序生态,其桌面浏览器的中国区市场份额内部人士自称3成左右。然而根据调查统计机构 Netmarketshare 发布的 2020 年 7 月桌面浏览器全球市场份额报告显示,谷歌Chrome的市场份额首次占据超过70%的市场份额,微软采用Chromium内核的Edge浏览器从7.86%微升至8.07%,Mozilla Firefox也从7.23%上升至7.58%。360小程序依托在不占主流市场份额的浏览器之上,是难有大作为的,况且微软开始发力直接在操作系统层面及其它各渠道砸重金推广Edge浏览器,势必会对360浏览器的市场份额造成不小的压力。

        2015年到现在整整5年时间过去了,作为替代ActiveX和NPAPI的浏览器插件技术,在浏览器开发商不断收紧其扩展接口的大趋势及无统一技术标准的现实之下,几乎变成了不可能,这也导致开发依赖插件技术的浏览器小程序,成了空中楼阁。然而就有人不信邪,这不,成都佐罗软件有限公司的创始人,曾经作为新浪微博手机客户端的技术负责人,对钻研技术如痴如醉。作为大龄程序员,继续带领团队钻研并保持全身心投入研发,数载春秋,甚至在卖掉一套房子才勉强维持团队生存的困难时期之后,终于在2020年7月13号,发布了跨浏览器的小程序系统—PlguinOK(牛插)中间件产品,成为替代ActiveX控件和NPAPI插件的浏览器功能扩展利器。依托PlguinOK中间件,针对不同的业务使用场景可以开发以下三种类型的浏览器小程序:

1)、无界面交互的无窗口小程序(dll),实现为进程内COM组件,可用于封装各种硬件设备的驱动库及Windows API等,此类型小程序和PluginOK运行于同一服务进程,拥有较高的系统访问权限,一般不能访问当前桌面登录用户的注册表及相关配置;

2)、 有界面交互的弹窗小程序(exe),此类型小程序是普通的Win32执行程序,主要是封装打印机、扫描仪、高拍仪等的驱动控件给前端调用,以弹出类似网页新窗口的形式运行,权限和普通桌面应用一样;

3)、 有界面交互的内嵌网页窗口小程序(exe),此类型小程序也是普通的Win32执行程序,主要是封装如视频播放、办公软件的ActiveX控件给前端以内嵌网页的形式运行,体验效果和原ActiveX控件及NPAPI插件一致。

        这个中间件的发布,给广大企业用户带来了福音,尤其是各类硬件厂家、办公及文档管理等信息化集成商、工业软件开发商等,终于可以让原有业务完美支持高版本的Chrome、Firefox、Edge等浏览器了。在中间件发布的同时,为了示范浏览器小程序的开发,同时提供了C++及C#语言的无窗口和弹窗小程序的范例代码。而内嵌网页窗口的小程序范例,提供了Flash Player、IE控件和新标签小程序案例,其中Flash Player可以用来替换官方发布的Flash Player PPAPI插件,避免2021开始无法使用的尴尬事情发生。IE小程序,可以在Chrome中实现程序驱动的双内核浏览器,让信息化系统开发商来决定哪些网页需要用IE的哪个版本内核来加载,一切都是自动的。这明显区别于目前市场上的其它双核浏览器,是用户手工来决定哪些网页用IE加载。

现在让我们来看看这个浏览器小程序系统都有啥特色吧。

       首先,此中间件采用了全球领先的创新思路来突破了现有浏览器的局限,让中国人在浏览器领域实现了重大技术创新,而不是仅仅用开源的Chromium内核来做个浏览器的外壳。此项独创技术,也申请了软件发明专利保护,避免模仿滥用,以确保长久的生命力。作为跨浏览器的功能扩展小程序系统,完全不依赖任何浏览器的扩展接口,所以才能对Chrome、Edge、Firefox、IE、360、Oprea、QQ、搜狗等浏览器实现统一的兼容运行,彻底规避各个浏览器升级带来的潜在风险;

        其次,功能强大,通过此中间件可实现网页前端脚本无障碍操作本地电脑的各种硬件、调用本地系统API及各种DLL函数,大量已成熟的ActiveX控件及自动化程序(如微软和金山的办公软件、AutoCAD工业软件等)都可以继续实现内嵌到网页中继续运行,让浏览器几乎无所不能;

        此外,优异的兼容能力,不仅仅体现在对众多浏览器之上的兼容运行,不管是32位还是64位的系统或浏览器都可正常工作,操作系统最低还可在Windows XP系统中运行,Windows 10系统最新版自然也毫无压力,服务器系统最低可支持Windows Server 2008。随着屏幕越来越大,分辨率越来越高,系统桌面经常会使用125%、150%等比例显示放大运行,PluginOK中间件也进行了兼容处理。

        最后,大家必然有这样的疑问,既然因为安全和不稳定原因浏览器取消了原来的插件技术支持,谷歌、微软等公司会不会对PluginOK这样的小程序系统进行封杀呢?答案是不太可能,首先这个中间件的应用场景主要在企业领域,开发的小程序都是需要经过严格测试才会部署到企业的IT网络中,企业客户是不允许小程序有病毒或木马等特征功能的;其次PluginOK对小程序的运行权限进行了严格限制,PluginOK只允许经过授权的小程序方可运行;再次,小程序的运行是独立于浏览器进程之外的,不会导致浏览器不安全或不稳定的情况发生,对浏览器本身无危害,反而大大扩展了浏览器的应用场景,让浏览器离替代操作系统的梦想更进一步,没有封杀的理由;最后,PluginOK的小程序,是不需要依托浏览器开发商的服务器来发行的,自然无需对这些小程序的运行结果负责。那么小程序如何分发呢?在PluginOK的架构里,企业有完全自主可控的权利,只需要在开发阶段到PluginOK的发行商那里去登记注册获得授权,即可自行在企业网络中进行发布和使用,是无需连接外部网络的。

运行在PluginOK中间件上的Office小程序演示

在谷歌Chrome等浏览器网页中可直接内嵌金山WPS或微软Word本地程序实现Office文档在线编辑的演示视频,而且网页和此Office小程序可相互操作,真正实现网页和本地程序的无缝集成,给客户最好的使用体验!

此特技已申请软件发明专利,可以集成到所有需要在浏览器中在线编辑办公文档的B/S信息化系统中,欢迎大家来电合作!