APP下载

基于C/S架构客户端嵌入B/S架构系统的设计与实现

2017-09-14四川中电启明星信息技术有限公司张海宾

电子世界 2017年17期
关键词:内核浏览器客户端

四川中电启明星信息技术有限公司 张海宾

基于C/S架构客户端嵌入B/S架构系统的设计与实现

四川中电启明星信息技术有限公司 张海宾

针对B/S架构的Web应用程序对用户个性化的操作系统环境的访问权限较低的需求,提出基于C/S架构的客户端嵌入浏览器的系统的设计方案。结合C/S架构客户端、B/S架构Web应用的信息交互的特点,探讨客户端系统的开发方法。介绍了系统架构设计与客户端设计,然后采用Java技术开发出Web服务器端软件、C++应用程序开发框架QT开发PC客户端软件。基于C/S架构客户端嵌入浏览器的系统已经完成,结果表明解决问题的措施可行,系统为用户提供了便利。

C/S架构;B/S架构; QWebkit;NW.js;Electron;XP SP2

1 引言

C/S架构客户端应用从Windows诞生以来,一直占领着用户的桌面。随着90年代末期互联网的爆发使得Web应用成为了主流,它的轻量级、易用性、用户交互界面更友好,使得它逐渐取代了客户端在用户桌面的地位,目前互联网公司及企业内部建立的业务系统都是以Web应用为主,它对用户环境的要求更低,依赖性更小,它主要依赖于用户使用的浏览器,浏览器的局限性是当需要调用用户操作系统的功能时,如:获取CPU使用情况、获取用户操作系统环境信息、用户软件安装情况、访问用户注册表信息等功能时,浏览器则无权去获取这些信息。

目前国内优秀的平台类系统普遍采用客户端模式,其客户端应用均采用C++语言进行开发,如国内的360(C++)、迅雷(Microsoft Visual C++开发、BLOT界面引擎)、腾讯的QQ(Microsoft Visual C++开发)、国外的OICQ(C++)等软件,其产品中均集成了Webkit或Chrome内核浏览器的完成部分B/S架构的重要功能,如:QQ秀、360的软件管理,并且已经得到了广泛的应用。

表1 C/S架构、B/S架构优缺点对比

2 系统目标和需求分析

本文从浏览器自动化入手,研究基于C/S架构客户端嵌入B/S架构的业务系统的相关开发技术,旨在提高浏览器在客户端运行时提高权限;实现B/S架构的业务系统通过C/S架构客户端嵌入的浏览器进行通信,实现B/S架构业务系统能够达到C/S架构客户端的用户体验效果,根据需求,对系统进行分析,由以下工作组成:

(1)C/S架构客户端操作系统最低支持操作系统版本 XP SP2。

(2)支持使用客户端本地安装的IE或客户端内置的Chrome内核浏览器打开业务系统集成的系统。

(3)实现用户登录状态与原有运行IE的 用户状态隔离。

(4)支持使用Chrome内核浏览器加载业务系统。

(5)获取用户本地安装软件信息,获取客户端的CPU、磁盘占用情况。

3 系统的架构设计

图1 统一工作台系统架构图

系统架构采用C/S架构客户端嵌入B/S架构的业务系统。业务系统主页采用客户端嵌入的Chrome内核浏览器呈现,业务系统通过Chrome内核浏览器定义的Javascript对象进行通信,来进行信息交互。

图2 统一工作台系统开发框架

系统开发框架客户端采用C++应用程序开发框架QT进行开发,多分辨率支持,支持Windows XP SP2,相较传统WinForm技术,界面设计更美观,IE浏览器自动化采用微软COM对象提供的接口、Chrome内核浏览器采用QT开发框架的QWebkit组件。B/S服务器端业务系统采用Java语言的SSH框架进行开发,后台数据库采用Oracle数据库。

图3 软件功能结构图

4 系统核心功能的实现

4.1 IE浏览器的创建与控制

随着互联网应用的发展,浏览器的市场占有率也在不断发生变化,Chrome浏览器后来居上,市场占有率不断增加,但是IE有着悠久的历史,众多企业内部系统都以支持IE为标准建成,还有很多插件仅支持特定版本的IE,限于以上需求在此采用IE COM对象使用用户本地IE浏览器访问业务系统。“InternetExplorer.Application”是微软为开发者提供的InternetExplorer对象,可以通过它来自动化控制Windows Internet Explorer的实例,该对象提供了以下接口:

通过调用以上接口,实现对IE的自动化控制,完成IE的自动跳转、自动打开新窗口、自动填写表单等系统需要的功能。

4.2 Chrome内核浏览器的集成

B/S系统的前端页面为单页面应用程序,采用HTML5开发,交互性较强,鉴于IE低版本对HTML5支持较差,所以采用Chrome内核浏览器。Chrome浏览器最早是Google基于开源项目WebKit的分支Blink进行的继续开发的,QWebkit是QT封装的Webkit内核浏览器组件,为调用者提供了丰富的调用接口。

对于目前比较成熟客户端内嵌浏览器的开发框架NW.js、Electron都是基于Chrome内核的浏览器进行开发,但它们都存在不支持Windows XP操作系统,基于本项目的需求,故未采用以上开发框架进行开发。

本项目采用的是QWebkit组件,进行的开发,同时对该组件一些不完善的接口进行在封装和完善,使其对HTML5的支持更好。

4.3 C/S客户端与B/S业务系统通信

C/S客户端与B/S业务系统需要进行信息交互,如客户端版本信息、客户电脑配置信息、客户端运行资源占用情况、客户机软件安装情况、调用客户机器安装软件等等,均需要C/S客户端与B/S业务系统进行信息交互。信息交互的实现方式采用客户端定义 Javascript全局对象,B/S架构业务系统通过调用该对象定义的方法,向客户端传递消息。客户端可以通过直接调用B/S业务系统的Javascript方法向业务系统传递消息,业务系统收到消息后执行相应处理。

C/S发送消息到B/S,消息内容如下:

(1)发送客户机本地软件安装列表;

(2)发送客户端当前版本信息;

(3)发送登录用户信息;

(4)发送用户退出信息;

(5)发送客户机安装的操作系统信息、客户端资源占用信息CPU、磁盘等。

B/S发送消息到C/S,消息内容如下:

(1)发送打开某个本机已安装软件信息;

(2)发送设置客户端开机自启动信息;

(3)发送使用IE打开业务系统信息;

(4)发送使用Chrome打开业务系统信息;

(5)发送使用IE跳转到指定URL信息。

5 结论

针对B/S架构的Web应用程序对用户个性化的操作系统环境的访问权限较低的需求,结合IE自动化、Chrome内核浏览器封装技术,本文设计并实现基于C/S架构客户端嵌入B/S架构系统。系统采用C++应用程序开发框架QT开发C/S架构客户端,Java开发B/S架构业务系统,使用操作系统IE COM对象实现IE自动化,使用Chrome内核浏览器展现业务系统并实现C/S与B/S通信。系统上线后测试后发现整个系统运行流畅,在实际应用过程中可以有效地提高B/S业务系统的用户体验,功能满足用户提出的开发需求。

[1]https://msdn.microsoft.com/zh-cn/library/aa752084(v=vs.85).aspx.

[2]http://www.awesomium.com/support.

猜你喜欢

内核浏览器客户端
强化『高新』内核 打造农业『硅谷』
如何看待传统媒体新闻客户端的“断舍离”?
反浏览器指纹追踪
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
微生物内核 生态型农资
环球浏览器
客户端空间数据缓存策略