网页技术开发单机软件的系统架构的制作方法

文档序号:11590055阅读:730来源:国知局

本发明涉及一种软件开发领域,具体涉及一种网页技术开发单机软件的系统架构。



背景技术:

单机版软件在客户端直接运行,能充分发挥客户端pc的处理能力,响应速度快。主要采用vb、delphi、c、c++等技术实现。但单机版的程序不能实现多人协同办公的功能,且一般受运行环境和操作系统的影响较大,要实现在多个操作系统中运行软件需要进行多次开发。

b/s(browser/server,浏览器/服务器模式)结构软件是web应用兴起后的一种新的系统结构模式。b/s软件架构将系统功能实现部分集中到服务器上,可是实现多用户同时访问,并且弱化了系统对客户端系统环境的依赖。当前b/s软件主要采用java、c#、php等技术实现。采用b/s架构的软件解决了多人协同办公的问题,又统一了客户端标准(只需要客户端安全web浏览器即可),大大降低了软件开发和维护成本。但由于b/s模式的软件的实现都在服务端,所以对服务器负载要求非常高,特别当用户并发数很高或单个业务处理周期较长的情况下问题更加明显。

单机模式和b/s模式各有优缺点,根据实际运行环境的不同,我们需要选择合适的模式开发产品。实际生产中发现在某些运行环境中我们需要将单机模式的软件转换成b/s模式,而某些运行环境也需要将b/s模式的软件转换成单机模式。但由于两种模式采用不同技术实现导致两种模式互转非常困难,需要投入昂贵的二次开发成本。

传统的单机版软件不能实现跨平台,受运行环境和操作系统的影响较大,需要针对不同的操作系统开发不同版本的软件,兼容性差、成本高。而且无法做到既能作为单机软件使用,又能与其他b/s系统结合作为模块 进行使用。



技术实现要素:

本发明提供了一种网页技术开发单机软件的系统架构,该系统架构是通过对浏览器引擎、javaweb容器深度定制整合而封装形成的一个新的系统架构。通过采用web开发技术,实现软件既可在单机上单独运行,又可在b/s模式很好集成,解决了产品在两种模式下的互转问题,并兼顾了用户体验。软件只需开发一次即可在单机和b/s等多种模式下运行,大大降低了研发和维护的成本。

具体的,本发明提出了一种网页技术开发单机软件的系统架构,该系统架构安装于单机客户端并包括一体化web运行框架,该一体化web运行框架包含封装在一起的浏览器引擎封装和web容器封装,其中,该系统架构兼容浏览器/服务器架构和单机程序。

根据一个较佳实施例,该web容器封装中内置有javascript脚本解析引擎的javaweb容器,且该浏览器引擎封装中内置有异步并行算法以实现对javascript脚本的并行解析。

根据一个较佳实施例,该javaweb容器提供有与应用程序和数据对接的应用程序编程接口。

根据一个较佳实施例,该一体化web运行框架使得单机客户端无需额外安装浏览器和web容器即可运行程序。

根据一个较佳实施例,该浏览器引擎封装中内置有开源浏览器内核。

根据一个较佳实施例,该开源浏览器内核中至少具有并行解析模块和异步渲染模块。

应当理解,本发明以上的一般性描述和以下的详细描述都是示例性和说明性的,并且旨在为如权利要求该的本发明提供进一步的解释。

附图说明

附图主要是用于提供对本发明进一步的理解。附图示出了本发明的实施例,并与本说明书一起起到解释本发明原理的作用。附图中:

图1示意性地示出了现有技术的b/s架构应用的架构。

图2示意性地示出了现有技术的单机程序架构。

图3示意性地示出了本发明的系统架构。

图4示意性地示出了根据本发明的浏览器的结构图。

具体实施方式

以下结合附图详细描述本发明的技术方案。

本发明主要是要解决同一款功能软件能够在单机和b/s模式下不用重写编码就可以互用。要实现这一目标主要需要实现两个架构设计,第一、跨平台设计;第二、跨结构设计。

所谓跨平台就是软件可以在windows、linux等多种操作系统环境下运行而不需要针对特定的操作系统重新开发软件。为了达到这一目标,本发明研究主要采用java跨平台语言作为基础开发语言,能够在不同的操作系统环境下运行。

跨结构设计,要考虑的是如何能让单机版的程序可以快速移植到b/s结构应用中。一般情况单机版的程序设计和b/s程序架构完全不同,基本无法重复利用。本研究在单机程序计中采用了虚拟b/s架构设计,能够使单机版程序和b/s程序保持一致的架构设计,做到软件功能可以在单机和b/s架构中重复利用。

图1示意性地示出了现有技术的b/s架构应用的架构。在图中我们可以看到web服务器上部署应用软件,通过用户端的请求后返回不同的html页面,并在用户端的ie、火狐等浏览器上呈现不同的内容。

图2示意性地示出了现有技术的单机程序架构。该单机程序架构一般可以单独部署在pc机上运行,但由于硬件、操作系统的不同,应用程序采用vc\vb\delphi等非跨平台语言直接调用不同操作系api实现功能。这样实现的软件往往不能在多个平台上应用,也很难移植到b/s架构中。

现在转到图3,图3示意性地示出了本发明的系统架构。如图所示,本发明的网页技术开发单机软件的系统架构300适合安装于单机客户端并包括一体化web运行框架。该一体化web运行框架包含封装在一起的浏 览器引擎封装和web容器封装。特别是,该系统架构兼容浏览器/服务器架构和单机程序。这样,该一体化web运行框架使得单机客户端无需额外安装浏览器和web容器即可运行程序。

web应用程序是服务器端应用程序。它的开发的最基本要求如下:编程模型和api,服务器端运行时支持,部署支持。部署是指在服务器上安装应用程序的过程。这一过程还包括配置应用程序组件,如指定初始化参数和指定任何数据库。

在本发明中,web容器封装中内置有javascript脚本解析引擎的javaweb容器。此外,该javaweb容器还可以提供有与应用程序和数据对接的应用程序编程接口。

javaweb容器实际上是一个java运行时(runtime),提供了javaservletapi的一个实现,并且简化了jsp网页。web容器负责初始化,调用以及管理javaservlet和javaserverpage的存活期。web容器的例子有:tomcat,resin,weblogic、websphere、jboss等,通过web容器,web应用程序可以和真正的网络服务连接起来。javaweb容器具体的工作如下:

当web服务器接到客户端http请求后,把http协议转给web容器去解析。web容器创建httpservletrequest、httpservletresponse、httpsession等对象。web容器由请求的url决定要使用哪个servlet来处理请求(事先由开发人员定义)。servlet根据请求对象(httpservletrequest)的信息决定如何处理,透过响应对象(httpservletresponse)来建立响应。web容器与web服务器沟通,web服务器将响应转换为http响应并传回客户端。

浏览器引擎是用来渲染网页内容,将网页的代码转换成最终页面展示。目前主流的浏览器引擎有trident、gecko、webkit、chromium等。各大浏览器厂商基于这些引擎开发出不同的浏览器,比如基于trident的ie浏览器,基于chromium的chrome浏览器等。网页浏览的快慢对用户体验有很大的影响,这很大程度上是由于浏览器引擎对javascript的渲染速度造成。不同浏览器引擎对javascript的解析能力不一样,比如同一网页在非ie浏 览器下显示的速度往往快于ie浏览器,在ie版本高版本下显示的速度快于ie较低版本。浏览器引擎对javascript解析能力,已经成为不同浏览器之间评测比较的一项重要指标。为了提高用户体验,该浏览器引擎封装中内置有异步并行算法以实现对javascript脚本的并行解析。另一方面,该浏览器引擎封装中可以内置有开源浏览器内核。该开源浏览器内核中至少具有并行解析模块和异步渲染模块。因此,本架构通过对浏览器引擎和javaweb容器的深度封装,使基于本架构开发的应用程序既能够实现b/s架构的应用模式,又能达到单机版软件的应用效果。

以下详细说明图3所示的系统架构的功能特色和实现原理。

第一,应用程序一次开发,b/s、单机两个版本适用,提高开发效率。基于网页技术的单机系统架构参考b/s架构理论基础,借用java跨平台的特性,在架构中封装了一个可以在本地独立运行的b/s运行环境,从而实现了在本地可以像单机版程序一样运行的b/s架构系统,并且该系统的用户体验完全是单机化操作。常规的b/s应用程序需要部署在web容器(如weblogic、tomcat等)中才能正常运行,本发明提出的单机系统架构通过对浏览器和web容器的深度封装,实现了一个一体化web运行框架,用户本地客户端环境不需要额外安装浏览器和web容器即可运行程序。由于其架构遵循b/s架构标准,所以可以非常方便地将原先基于b/s架构的应用程序移植到本单机软件系统架构中,实现从b/s架构应用到单机版应用的无缝移植,避免了部分应用软件需要同时开发b/s网络版和单机版两套应用程序的问题,从而大大节约研发成本。

第二,优化javascript脚本解析引擎,提升界面显示速度。常规b/s架构的应用程序通过web浏览器解析和渲染html文件来显示web内容,当浏览器遇到javascript脚本时需要下载脚本资源到本地才能完整显示网页内容,这种web浏览器的阻塞解析方法严重影响显示效率和用户体验。通常的javascript优化解决方法除了将<script>脚本标签放在html文件的尾部还可以采用设置<script>标签的defer属性使web浏览器下载资源时不受阻塞影响,但并不是所有的web浏览器都支持这种方式,导致应用程序在部分浏览器中取得了较好的优化效果但在其他的浏览器中却效果不明 显。本架构中内置了高效的javascript解析引擎,通过在内置浏览器中增加异步并行算法,实现对javascript脚本的并行解析,使网页渲染过程不会阻塞界面的正常显示,应用程序的容错性和显示效率都得到了很大提高。

第三,封装开源浏览器内核,进行个性化定制,实现客户端浏览器无关性。本系统架构中封装了mozilla浏览器内核,并增加了诸如并行解析、异步渲染等定制功能,不需要调用用户本地客户端浏览器,避免了b/s架构应用强烈依赖浏览器的问题,实现了应用程序的广泛适用性。例如,图4示意性地示出了根据本发明的浏览器的结构图。

综上所述,本发明优化开发资源,节约成本,不用请各种不同开发工具的人员,采用java/web开发人员普遍熟悉的javascript、html、java技术来开发,节约了开发成本,又方便于之后的维护。兼容性好,跨平台,不单可以作为单机软件单独运行,也可以非常快速的与b/s架构的软件进行集成,作为其中的一个模块来运行,一套系统多种应用场景,可谓是省时省力。

上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1