1.引言
软件的维护模式经历了几个阶段,都各有其发展的客观原因,也各有优缺点。
本文在对现有的软件维护模式理论的分析比较后,结合机场智能终端系统的具体项目,应用嵌入式技术、数据库技术和智能推送等技术设计和实现了基于WinCE的智能终端自动升级引擎,对该升级引擎的设计进行了详细说明。
2.软件维护
2.1 软件维护的目的
软件维护是指修正已经运行的软件系统所需要做的工作。运行程序的环境在不断变化,程序的故障也在不断发现,软件需要改正,改进,需要优化;不仅当前的版本要改变,而且仍在使用的旧版本也要维护。即将投入使用的新的版本,可能也需要修改。解决原有的问题需要花费精力,改变后的版本又可能带来新的问题;依靠个人来维护软件在大型系统中显得很不实际。由此软件科学有效地维护成为了软件工程的主要目标之一,意义重大。
2.2 软件维护模式比较
(1)Mainframe/Terminal阶段:在计算机发展的早期,计算资源非常有限,对软件的维护只需对主机进行,维护相对简单。但用户必须登录到主机才能使用计算资源。
(2)Client/Server阶段:Server接收来自Client的请求。完成像数据库这样的处理,将结果返回给Client。这种模式中,Client端软件可能出于不同的软件和硬件平台,导致运行环境和软件版本的不一致,如果让用户自已及时下载最新的 client软件,这会给用户带来不便。
(3)CORBA模式:进一步在软件的可维护性,可扩展性上作了扩展。CORBA定义了一个带有开放软件总线的分布式结构,在这一结构中,运行在不同操作系统上的对象,能够进行互操作。但CORBA模式庞大而复杂,并且技术标准更新相对较慢,影响了系统开发的效率。
可以看出传统的三种维护模式各有忧缺点,在机场智能终端系统具体的应用中,我们充分利用了三种维护模式的优点,并采用当下流行的技术尝试了一种新的软件维护模型:即结合嵌入式技术、数据库技术和智能推送等技术采用基于WinCE的智能终端自动升级模式,充分考虑软件的自动维护和升级,又照顾到实际应用中的带宽限制。客户端启动时能够完成自动升级,并且在运行中运用智能推送技术,当获取到新的版本信息,经分析处理、认定后主动实时地发送给定制版本信息的智能终端用户,实现了信息找用户,保障了软件版本的即时快速的更新。
3.智能终端自动升级
3.1 智能终端自动升级的模型
智能终端自动升级的模型如图1所示。
图1 智能终端自动升级的模型[page]
3.2 智能终端自动升级的流程
(1)在运行智能终端主程序时就启动升级模块,从服务器下载最新的版本号,如果对比当前版本号过时,则提示是否升级。
(2)在获取网络连接正常且带宽允许的情况下,确认升级。
(3)服务器接收到升级请求后,向数据库获取新旧版本的版本信息和文件信息列表,通过任意版本间版本信息的比较算法获取需要更新、删除、添加的文件列表。
(4)智能终端通过获取到的需要更新、删除、添加的文件列表下载相关的升级模块来进行软件的自动升级。
(5)显示下载进度。
(6)下载完毕后,对要注册的文件进行注册。
(7)升级完成,关闭升级模块,运行主程序。
(8)在主程序运行过程中检测、获取服务器智能推送过来的版本信息。
(9)如发现智能推送过来版本升级信息,回到第4步。
(10)关闭主程序。
4.版本信息数据库和算法的设计
4.1 版本信息数据库的设计
(1)tab_ver_all(历史版本控制表)
该表数据项说明如表一所示:
表一 历史版本控制表
列名 |
数据类型 |
长度 |
是否为空 |
意义 |
ID |
integer |
2 |
N |
标志一条记录 |
Ver_number |
verchar |
6 |
N |
智能终端软件版本号 |
Ver_date |
date |
20 |
N |
软件发布日期 |
Ver_remark |
verchar |
100 |
Y |
备注 |
(2)tab_ver_info(版本信息控制表)
该表数据项说明如表二所示:
表二 版本信息控制表
列名 |
数据类型 |
长度 |
是否为空 |
意义 |
ID |
integer |
2 |
N |
标志一条记录 |
FileName |
verchar |
20 |
N |
文件名 |
BelongVer |
verchar |
10 |
N |
所属版本,与tab_ver_info建立外键关系 |
FileVer |
verchar |
10 |
N |
文件版本 |
FileSize |
verchar |
20 |
N |
文件大小 |
ServerList |
verchar |
60 |
N |
服务器安装目录 |
ClientList |
verchar |
60 |
N |
智能终端安装目录 |
FileDate |
date |
20 |
N |
文件发布日期 |
fileRemark |
verchar |
100 |
Y |
备注 |
4.2 任意版本间版本信息比较的算法设计
4.2.1 算法设计的目的
本算法接收新旧版本号,运算后按照接口字符串协议提供给上层应用需要更新、删除、添加的文件列表字符串。
4.2.2 算法设计的思路和流程
(1)根据输入的新旧版本号查询版本信息控制表,获取到新旧版本的文件名列表。
(2)把新旧版本的文件名列表放入new()和old()两个数组中,进行第一次循环比较:相同的文件放入same()数组中,多余的文件放入del()数组中,没有的文件放入add()数组中。由此已经确定了需要删除、添加的文件名列表。
(3)再根据输入的新旧版本号和same()数组中的相同文件名查询版本信息控制表中相同文件名的文件版本号,进行第二次循环比较:文件版本号相同的文件保留,不同的则放入update()数组中,由此最终确定了需要更新的文件名列表。
(4)通过得到的三类文件名列表查询版本信息控制表获取完整包括文件名、文件大小、服务器安装目录、智能终端安装目录等文件信息。
(5)按照接口字符串协议打包生成需要更新、删除、添加的文件列表字符串提供给上层应用解包后完成软件需要更新、删除、添加文件的分发下载。[page]
算法流程图如图二:
图二 算法流程图
4.2.3 接口字符串协议
(1)"#"隔开的三段按顺序是:#更新文件信息#添加文件信息#删除文件信息#。
(2)"*"隔开的更新/添加文件信息:*文件名*文件大小*服务器安装目录*智能终端安装目录*。
(3)"*"隔开的删除文件信息:*文件名*文件大小*智能终端安装目录*。
例如:#*ssdit.exe*101KB*c:\windows\ssdit* \ssdit*#*conx.dll*1.2MB*c:\windows\syste m32*\windows\system32*#*config.ini*6KB*c:\windows*\windows*#
该算法为系统上层应用提供了调用接口,极大地提高了软件维护的效率,在系统实际运行中稳定可靠。
结束语
在机场智能终端系统的开发和维护过程中,基于WinCE的智能终端自动升级引擎得到了非常成功的应用。现在已在各大机场智能终端系统中得到成功推广,使用户软件升级更加方便快捷,也大大减少了维护人员的工作量。对于软件开发者和维护人员来说,在无线网络的环境下开发类似具有自动升级引擎功能的软件具有很强的实际借鉴意义。
参考文献:
[1] 凌小鹏,用VB创建支持断点续传的Internet传输控件[J],计算机应用研究,2000。
[2] 梅怡红,如何使客户端的应用程序自动升级[J],微电子技术,2003.2。
[3] 王志霞,文件传输协议FTP命令详解[J],黑龙江气象,2002.2。
[4] 高健,来五星,史铁林,嵌入式系统中网络通信模块的实现,微计算机信息,2006,8-2:77-79。
[5] David Hill,Brenton Webster,Edward A.Jezierski,etc.,Smart Client Architecture and Design Guide,Microsoft Corporation,June 2004.
上一篇:基于Qt/E的嵌入式GUI的研究及其移植
下一篇:基于WinCE的嵌入式系统注册表的研究
推荐阅读最新更新时间:2024-05-02 21:58
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况