本文作者:kaifamei

一种分布式系统自动升级的方法

更新时间:2023-09-09 11:55:50 人在看 0条评论

一种分布式系统自动升级的方法

2023年9月9日发(作者:关于离职申请书范文(精选20篇))

北京已有三所高校出现疫情-

计算机系统应用 201 0年第1 9卷第1 0期 一种分布式系统自动升级的方法① 2.山东新华书店集团科技公司山东济南250002) 赵 珂1 郑尚辉2 沈洪骥2(1.山东教育学院计算机科学与技术系山东济南25001 3: 摘要: 介绍了利用PowerBuilder提供的技术实现版本控制以及自动升级版本功能的方法,给出了自动升级流程 和关键技术的实现,提出的升级方案由于基于WebService,所以具有普遍}生,能够适合分布式系统架构 下开发的软件的自动升级。目前该自动升级功能已在书店的物流信息管理平台中得到良好的应用。 关键词:PowerBuilder:Web Service:分布式系统:自动升级 An Approach for Auto-Update Distributional System ZHAO Ke ,ZHENG Shang-Hui ,SHEN Hong—Ji (1.Department ofComputer,Shandong Education Institute,Jinan 250013,China; 2.Technology Company,Shandong Xinhua Bookstore,Jinan 250002,China) Abstract:Available technology has been used on a program that contains all automatic upgrade feature called PowerBuilder version contro1.This paper presents the upgraded program,since it is based on Web Service, it is suitable for a distributional system developed under the framework of automatic upgrades.At present, the automatic update feature has been used in bookstores as a dependable and logistical information management platform. Keywords:PowerBuilder;Web service;distributional system;auto—update keyword 1 引言 在分布式系统的开发中,一个困扰开发者的问题 就是如何保持客户端软件的一致性,即开发方对系统 的客户端软件进行了修改和补充,也就是系统的版本 发生了改变,那么就要对客户端软件进行更新,防止 出现新老版本不统一的问题【1.2】。如果要开发方亲自对 包装、发运的自动化和退货配送一体化。该平台采用 了分布式应用程序体系结构,中间层服务Web Service完成绝大多数的数据处理和数据库访问,客户 端通过调用运行在服务器上的组件或对象的方法,来 使用服务器提供的服务。版本检测与版本功能属于物 流信息管理平台的一个子模块,用来处理由于业务的 每一个客户端的软件进行版本更新的话,势必增加开 发方的负担。如果系统能够自动进行版本检测与版本 变化所进行的程序改动的更新。 2.2设计思路 用户登陆物流信息管理平台时触发自动升级程 序,客户端获取服务器端升级文件的版本号,当服务 器端版本比客户端版本高时,获得一个最新版本的客 更新功能,那么将给用户和开发方都带来极大的方便。 本文主要介绍了powerbuilderl 1实现分布式系统的 版本检测与版本自动更新功能【3】。 户端文件列表(有版本等信息),然后和本地的文件列表 2设计思路及关键技术 2.1应用背景 对比,得到一个需要更新的文件列表,然后对这个需 要更新得列表中的文件逐个更新,替换掉客户端原来 的文件,最后重新启动客户端。替换成功后,则更新 书店物流信息管理平台实现了教材到货、配发、 ①收稿时间:201 0—01-25:收到修改稿时间:201 0—03—24 2 1 4经验交流Experiences Exchange 201 0年第1 9卷第1 0期 计算机系统应用 一检 本地版本号,使软件版本保持同步。因此,当进行维 护时,只需替换修改过的文件列表即可,无需全部文 件替换,这样网络传输代价会小很多,自动升级的效 率也会较高。 2_3关键技术 2.3.1 Web Service分布式计算模式 ’ 分布式计算方式提供了一种将应用程序的用户界 面部件与应用程序所需的业务逻辑进行分离的自然途 径。通过把业务逻辑集中在中间层服务器上,可以降 低客户端的工作负载,控制对敏感信息的访问。 上 一器一~ 客户端的版本号在pb程序中的本地文件存储, 开发人员修改应用程序的某些功能并且更新本地文件 的版本号,编译为可执行文件及pb动态库文件,然 后修改文件成功上传至服务器。服务器端的文件版本 Web Service是目前程序设计领域中的一项新技 术,是一个崭新的分布式计算模式。Web Service是 号通过在系统的数据库中建立t_version表update 字段进行控制。表结构如下: 表1 t_version字段说明 字段名称 类型 含义 VerS10n Varchar2(4) 版本号 filename Varchar2(2 S 5) 文件名 path Varchar2(1 024) 路径 对自动升级程序处理流程设计如下: (1)将需要升级的文件上传存储在服务器上。 (2)用户登陆物流信息管理平台时触发自动升级 程序,检查程序中客户端版本号是否比服务器端对应 文件的版本号小。如果小就意味着需要更新,将获取 可升级文件列表并启动自动下载程序,下载完成后替 换客户端对应的文件。 (3)如果下载成功即关闭自动升级程序,并重新启 动客户端应用程序。 登坚! 矍 型查)l 义r列表中还有文件] 备份文件 ——生—、 下簸文{牛 【列表中没有文件】 ,—L f不需要升擐】 解 文件 启动 图1 系统活动图 指在Internet/Intranet上描述、发布、查和调用的 自包含的组件技术及相关的协议和标准,它逻辑性的 为其他应用程序提供数据与服务【4.5】。各应用程序通过 网络协议和规定的一些标准数据格式(HTTP,XML, SCIAP)来访问Web Service,通过Web Service内部 执行得到所需结果。一旦部署以后,其他Web Service 应用程序可以发现并调用它部署的服务。 2.3.2压缩和解压技术 为了节省空间、提高升级速度,减少客户端动态 升级系统与服务器之间的数据流量,采用了压缩和解 压算法。中间层服务将服务器端升级程序文件压缩成 通用的.zip文件,客户端程序下载自动识别,解压。 WebSemice中自己定义的将下载文件压缩的服务 of_download—file(string as—file—name,ref blob ablb—data,ref string as—errorbuffer)o 功能:将需要下载的文件(不包含路径)as— ifle—name压缩成二进制数据ablb—data,首先判断 文件是否存在,如果存在的话,实例化文件流,读取 文件到二进制数组中,调用of_compress方法进行内 存压缩: n_zipclass Inv_zip Inv_zip.of_compress(ablb—data,Ibl—temp) 3动升级的实现 该实现方法主要包括3个过程:一是开发人员或 维护人员将要升级的文件通过SVN版本控制软件上 传到服务器中,并且把文件新版本号等信息存入 version表;二是用户进入主程序前的版本检测;三 是用户进入主程序前的版本自动更新。 3.1程序上传 PB编译应用程序后生成动态库的形式,包括PBD 和DLL,动态库中包含了相应PB库文件中所有编译 好的代码【6】。将系统按照功能划分成不同的模块,每 Experiences Exchange经验交流215 计算机系统应用 201 0年第1 9卷第1 0期 一个模块对应于一个PB应用库文件,不但容易划分应 用程序,方便了应用程序的管理工作,而且增加了系 //把旧版本文件move到旧版本目录,下载新版 本文件move到本地正式的程序目录下 For i:1 t0 li_down—count 统的可维护性。开发人员修改了应用程序的某些功能 后无须重新发布整个应用程序或其他文件,只需发布 Is—filename=as—app—update—filename[i】 FileMove(Is—pro—file—path —包含该功能的动态库即可,将要升级的动态库文件通 过SVN上传发布到服务器中。 3.2版本检测 +’\’ + Is—filename,Is—filebak—path十’\。+Is—filename) ….//省略解压缩处理 用户登录系统时会自动校验版本号,用户程序的 li_sts:FileMove(Is—save—file—path+‘\。+ 版本检测过程如下:登陆系统时,客户端启动,通过 函数of_getversion()得到客户端本地文件的版本号, 服务器端则是通过调用WebService中自己定义的 of_get—server—version服务来实现。检查服务器端 版本号是否高于本地版本号,如果高于则启动版本自 动更新程序upp—version.exe。 3.3版本下载 版本下载是版本检测与版本自动更新的重要环 节,版本下载更新的顺序是:备份压缩文件一下载文 件一解压文件一更新文件。 根据升级文件程序列表,将本地需要升级的程 序文件通过SVN存放在在服务器的指定目录中,客 户端创建旧版本备份目录以及新版本下载备份目录 (创建的时候清除之前目录中存在的文件),调用文件 传输(webservice中定义的of_download—file服 务)将指定的压缩文件下载到本地新版本下载备份 目录中,每下载一个文件,调用解压缩模块对文件 进行格式校验,进行解压缩,并调整升级显示进度, 下载成功后,将本地正式程序的旧版本移动到旧版 本备份目录中,并将新版本下载备份目录中的程序 复制到本地正式程序中。如升级不成功,则利用已 备份的旧版本文件进行恢复操作。以上任何步骤出 错,则调用异常处理进行处理,退出动态升级系统。 以如何使用服务器端的文件替换本地的文件为例, 说明其程序实现过程。 //下载新程序到本地临时目录, Inv—file.of_filewrite定义的中间层服务 Inv_file.of_filewrite(Is.save—file—path+”\” +as—app—update—filename[i],Ibl—file—source) 216经验交流Experiences Exchange Is—filename,Is—pro—file—path+。\。+Is—filename) lF li_sts<>Success Then gotoError() End IF Next //更新成功后,启动客户端 MessageBox(”提示”,”文件更新成功”) Run(Is—pro—file—path+”\物流信息管理系 统.exe”) 4结语 自动升级功能已成为目前软件系统不可缺少的功 能,本文以分布式系统的开发模式为研究对象,提出 具体的设计方案及实现方法,对软件系统的自动升级 功能的研制与开发,具有实用的参考价值。 参考,.J毫 1杨继家,张丽静,张晓蕾.面向C/S模式下的客户端 软件自动升级的实现.微计算机应用,2005,14(3):290 —293. 2乌云高娃.动态升级在MIS系统中的实现与应用.计 算机工程与设计,2005,12(10):2854—2856. 3叶利华,陶宏才,梁田.基于COM的软件在线升级技 术.成都信息工程学院学报,2005,18(1):73—75. 4柴晓路,梁宇奇.Web Services技术、架构和应用.北京: 电子工业出版社,2003.4—98. 5王莉莉,王力生.Web Service技术下的企业应用集成. 计算机与现代化,2003,13(4):39—41. 6陈永强.PowerBuilder编程技术全接触.北京:清华大 学出版社,2007.5—216. 

潮湿的近义词是什么-


文章投稿或转载声明

本文链接:https://www.en369.cn/fanwen/xinxi-1-919846-0.html

来源:范文频道-369作文网版权所有,转载请保留出处。本站文章发布于 2023-09-09 11:55:50

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论