背景技术
版本管理方法主要应用于实时监控系统中的web应用中,实时监控系统也叫做实时数据采集与监控系统,主要用于石油、电力及工厂自动化等行业。实时监控系统中的web应用主要是指建立web服务器,发布web文件,通过客户端IE浏览器访问web服务。要发布的web文件包含了配置文件、画面、及各种表格、声音和图片等资源文件。
实时监控系统中的web应用借助IE浏览器来运行,是典型的B/S(浏览器/服务器)结构。这种应用的好处是:
(1)这种架构采用Internet上标准的通信协议作为客户机同服务器通信的协议;这样可以使位于Internet任意位置的人都能够访问服务器;对于服务器来说,通过相应的web服务和数据库服务可以对数据进行处理;对外采用标准的通信协议,以便共享数据;
(2)在服务器上对数据进行处理,就处理的结果生成网页,以方便客户端直接下载;
(3)在客户机上对数据的处理被进一步简化,将浏览器作为客户端的应用程序,以实现对数据的显示;不再需要为客户端单独编写和安装其他类型的应用程序;这样,在客户端只需要安装一套内置浏览器的操作系统,如Windows XP或Windows 2000直接安装一套浏览器,就可以实现服务器上数据的访问;而浏览器是现在计算机的标准设备。
实时监控系统中的web应用普遍采用web服务与数据服务分离的做法,web服务只发布程序运行必备的资源文件,IE浏览器从web服务器上下载这些文件,而获取数据则要访问数据服务器。
实时监控系统web应用架构如图1所示。实时监控系统在具体工程制作中,首先必须根据现场应用建立工程,即创建画面文件、配置工程属性、设置数据源等,工程中包含的画面、图片、声音等文件往往数量巨大,画面的复杂度也特别高,如果单独开发web应用工程,不但耗时,而且效率低下。为了减少web开发的工作量,并且使web画面与客户端工程画面运行一致,在web发布中,直接采用已创建好的客户端工程文件进行web发布,只做些许的web发布配置工作。可以在应用中与客户端工程同时部署,并与客户端运行高度一致。
由于实时监控系统中的web文件数目庞大,且随客户端工程文件的改变经常重新发布,web访问中经常会出现各版本文件同时存在,频繁更新导致版本混乱,为了避免重复下载同一版本文件,老版本文件访问新工程服务的问题,版本管理显得尤为重要。并且,加载画面有小于等于0.2秒的要求,缓存画面及各种资源,并进行有效地下载控制,对于不需要下载的文件,直接应用缓存中的文件,可以大大缩短画面加载时间,满足性能指标。
由于通过web访问就可以获取web文件,而web文件与客户端工程文件相同,这样很容易导致消耗很大工作量制作的工程文件被别人轻松获取。为了保护工程制作人员的劳动成果,必须采取某种策略对web文件进行加密,保证web文件的安全性。
目前一般国内现有的web访问比较简单,基本过程(见图1)如下:
1、开启IE浏览器输入网址链接web服务器;
2、打开某画面;
3、下载某画面文件和其相关资源文件;
4、访问数据服务器。
以上部分介绍了一般实时监控系统web应用的方法和过程,从中可以看出,加载web文件不会判断是否已存在该文件,或者存在该文件,是否与要下载文件版本一致。频繁的访问文件,会导致频繁的文件下载,占据网络资源,影响性能。并且没有有效保证web文件的安全。
发明内容
本发明的目的是发明一种避免相同版本文件重复下载、使文件更新再下载、节省网络资源、提高web加载的效率、并确保对文件的安全访问、具有一定的普适性的实时监控系统中web发布文件版本的管理方法。
本发明所涉及的版本管理机制正是针对web访问中避免相同文件重复下载的方法,针对以上这些问题在大量试验和应用过程中所提出的理想的解决方案。
具体方法是通过一种版本管理机制,控制同一版本web文件重复下载,只有在初次访问或者版本不同时,才下载web文件。并且,通过一种安全管理的策略对web文件进行安全控制。该方法节省了网络资源,提高了画面加载效率,增加了web文件的安全性。具体操作流程如下:
1、根据控制访问的要求,每个要发布的文件都增加版本记录信息;
2、记录密钥、版本信息,生成版本信息记录文件;
3、开启IE浏览器输入网址链接web服务器;
4、web访问首先下载版本信息记录文件,密钥和版本记录读入变量;
5、比较新下载密钥与原来缓存密钥,判定是否全部下载;
6、打开某画面;
7、读取版本记录,根据设定的判定机制确定是否下载;
8、下载某画面文件和其相关资源文件;
8、读取密钥对加密文件进行解密加载;
9、访问数据服务。
图3给出了以上操作流程的简单描述,具体的发布和下载流程如图5和图6所示。
web访问流程如图3所示,其流程是:在web服务器中建立虚拟目录,web发布,生成文件版本记录文件,web文件发布成功,后打开IE浏览器,到客户IE浏览器进行web访问,根据访问下载对应文件,画面浏览。
本发明解决技术问题采取的技术方案是:在每次做web发布时,都创建版本记录文件,记录需要发布的文件的版本信息。版本信息包括文件名称、版本号等。客户端浏览器需要访问web服务时,首先下载版本记录文件,并读取记录信息,然后再下载其他文件,下载前需比较已存在文件版本与需要下载的该文件版本以及采用的密钥是否一致,如果一致则不予下载。而且,版本管理文件也增加了密钥的存储,以方便获取密钥对文件进行解密加载。
版本记录信息文件的存储结构如图2所示。它包括密钥和版本列表;而版本列表包括文件名、文件版本号和保留字。
Web应用包括web服务器搭建、web发布、访问web服务和数据服务四个部分,web发布文件管理的方法,是web发布和访问web服务两个方面有效结合的方法,这两部分结合在一起,体现了本发明的内容。
所述web发布,采用了增量发布的方法,也就是只发布变化更新和未曾发布的文件,并且对于某些文件采取了联动发布的机制,所谓联动发布,比如画面包含的各种资源随画面一同发布。
针对实时监控系统中web应用的特殊性,出于对工作做成果的保护,有些重要的文件不能被随意访问,这时就需要对该文件进行加密处理。所以,版本记录文件中记录了密钥,用来对加密的文件进行解密。密钥之所以存储在版本记录文件里,一是这种机制可以灵活改变密钥,增加安全性;二是,版本记录文件每次都首先下载,使密钥在解密文件之前就被程序获取,便于解密访问。在做发布之前的发布配置时,设置密钥。发布时,应用该密钥对发布文件的内容进行加密,同时将密钥存入文件版本管理文件。
增量发布要求在做web发布时进行增量检查,这里通过读入已存在的文件的版本信息,与要发布的文件的版本进行比较,如果版本相同,则不发布,不改变该文件版本记录信息;如果有不同,则重新发布,同时改变该文件版本记录信息。增量发布的好处是只发布那些变化了的文件,更新那些变化了的文件的版本记录,并不对所有文件进行发布,提高了web发布的效率,减少了web发布的时间。如果是初次发布,并不进行版本比较,直接发布并创建版本存储版本信息到版本记录文件即可。这里要注意的是,一旦密钥改变,所有的文件将会重新发布,这样做是为了保持所有web文件密钥相同,并与版本管理文件中记录的密钥一致。如果密钥有变化,更新web端文件,也可以保证客户端获取到包含新密钥的文件,保持和web服务器上文件密钥的一致性。
web发布流程如图5所示。流程是:
选择要发布文件;
点击发布按钮;
密钥是否改变?若改变,则更新版本记录文件信息;
若未改变,则判断文件是否已存在?若不存在,则更新版本记录文件信息;若已存在,则检测版本号;判断版本号是否相同?若相同,则结束;若不相同,则更新版本记录文件信息;除文件头以外文件内容加密;发布;结束。
联动发布,是在发布一种文件时,对与其应用到的资源及其它文件同时发布,并不单独发布其所需要的其它文件。这样既降低了文件发布的复杂度,又可以保证所有需要发布的文件都成功发布。
联动下载流程如图4所示。其步骤是:下载文件;是否下载相关资源判断?如是,则返回下载文件,下载该相关资源;如否,则结束。
所述访问web服务,首先要检测缓存中是否存在版本记录文件,如果不存在,程序变量存储密钥为空,然后下载文件版本管理文件,读密钥到变量,比较两个密钥值,如果不同,所有web文件全部重新下载。如果相同,则比较文件的版本号,在每次发布文件时,如果版本号不同,则重下载,都相同,则不用下载。应用版本比较判断文件是否要下载,不管缓存中版本比web服务器文件版本低,还是高,都能够有效地保证web客户端与web服务端文件的版本的一致性。密钥的检查,是为了防止新密钥打不开版本没有变化的文件。所以密钥一旦改变,所有文件也要重新下载,以保证文件加密密钥和版本管理文件中密钥的一致性。
至于下载哪些文件,都是根据用户需要才下载,比如用户打开某画面,则只下载此画面及其应用到的资源和其它文件。
文件下载判定流程图如图6所示:
检测缓存中是否存在版本管理文件;
判断文件是否已存在?若是,则密钥存储到程序变量;下载文件版本管理文件;若否,则下载文件版本管理文件;
比较密钥是否相同?若否,则下载;结束;若是,则准备下载文件;判断文件是否已存在?若否,则下载;结束;若是,则比较文件版本号;判断版本号是否一致?若是,则结束;若否,则下载;结束。
对文件的缓存管理,之所以对web访问画面加载速度快,首先得益于它的缓存机制,但是随着时间的延长,新旧文件的更替,缓存有可能会影响web服务的正常访问。考虑到web缓存清理不能影响画面运行,并且需要用户知晓,在每次web访问退出时,都弹出对话框通知使用者是否要清理缓存,如果选择清理,程序会清理掉缓存,否则,缓存保留。
本发明避免了相同版本文件重复下载,使文件更新再下载,节省网络资源,提高web加载的效率,并确保对文件的安全访问,具有一定的普适性。