说说以前的一个web程序在线更新实现,给没有实现过的人们提供一点思路,这是我一个项目的实现,也许方式不是很好,但是它实现了基本的需求。
公司的开发了一个web产品,这个web产品部署在全国很多地方有客户,但是由于后期的功能提升和bug修改,就需要对部署在客户处的web程序进行更新,但是由于部署比较分散,更新起来比较麻烦,并且由于客户有较多不懂软件,给他们提供更新包对于他们来说也不是很好,所以,需要一个自动更新的实现,以前在实现这个功能的时候,在网上找过,感觉这方面的资料和实现很少,所以就自己摸索着实现了。以下是实现思路,没什么新技术,就是一些技术的融合而已:
1、更新数据:
web程序更新存在程序更新、数据库更新、服务器更新;
程序更新涉及的主要是程序文件、配置文件更新。数据库更新涉及数据库数据、表结构更新、服务器更新,主要是服务器版本升级。
2、实现方式:
1)、本地提供更新服务器,在更新服务器上提供程序版本记录标志、程序更新包(里面含更新策略,如,更新程序文件覆盖路径、或者添加路径,数据库数据文件,表结构更新文件、服务器更新(这个正常更新应该比较少))。
2)、web产品上含有程序更新包下载功能,这个含自动或主动,所谓自动就是在程序上设置定时更新功能,程序在某个时刻自动检测服务器版本,并于本地版本进行对比,如果有更新就自动更新,如果没有,则不更新。主动更新就是需要人为的点击之后进行对比更新。
3)、在每次更新时,web程序将更新服务器上的更新包下载到本地,然后进行自动解压,之后解压包中提提供了程序文件更新策略、数据库更新策略,依照更新策略进行程序的更新。但是,由于会存在程序无法更新的情况,我的实现是,对于部署在windows上的程序更新,我使用java提供了一个exe可执行文件,直接调用这个exe程序来进行程序的更新,在更新时,先启动exe文件,然后停止web服务器,再进行程序的更新,更新完成后,直接通过exe启动web服务器,这样整个过程都不需要人进行干预。如果是非windows操作系统,使用shell(只考虑了unix家族的实现)脚本调用一个java程序来进行程序的更新操作,基本同上。
4)、在更新时,能使用本地服务器进行的更新部分,尽量使用本地服务器进行更新,如:数据库数据文件及表结构的更新,不能的才选择exe更新程序或脚本启动程序进行更新。
5)、因为在更新程序时服务器会停止,这样将影响用户的使用,所以,要尽量选择在使用较少的时候进行程序的更新操作(这是我实现这个程序最大缺点,因为如果一个服务器不能停止或者停止程序影响非常大的话,这样的更新方式将不可行,但是正常情况如果我们有程序更新也还是要停止服务器的)。
6)、如果客户无法上网或者说无法上外网的话,上面的更新策略也存在问题,这样的话就给他提供更新包,然后提供更新包存放的位置,直接运行exe或者shell脚本文件。当然这样的话对于服务器启动或停止,数据文件的更新都需要考虑好如果进行。
以上是我实现的一些方式和注意点。欢迎大家指正。因为实现没什么新技术,所以,代码就不提供了(公司产品程序)。
分享到:
相关推荐
java实现的一个web聊天程序 服务器端使用的是ServerSocket 客户端使用websocket
Web应用程序结构:原理、协议及实现 Web应用程序结构:原理、协议及实现 Web应用程序结构:原理、协议及实现
设计任意两个复数实现4则运算(复数加法、减法、乘法、除法)的Web程序。要求采用如下的设计模式: (1)JavaBea+JSP (2)JavaBean+Servlet+JSP
使用VC 6.0编写 C++ 语言 基于MFC的简单web服务器
在该文中深入讨论了采用基于WEB技术,并以工作流作为运行环境的电子表单的技术架构、具体实现以及该类产品的适用范围和应用价值.该文的章节结构为:第一章重点分析了基于WEB的电子表单系统的相关背景知识和市场意义;第...
利用VC6.0实现的一个简单的 Web Server,能够响应客户端的请求将指定目录下的 HTML文件通过指定的TCP端口发送给客户端
WEB程序设计大作业 实现多个网页的互联功能 界面漂亮 实用
基于Web的影院购票小程序的设计与实现.pdf
实现Java Web程序的自动登录 实现Java Web程序的自动登录
小程序开发 简单实现用户登录功能,服务端使用ASP.NET Web API 具体代码详细讲解见:http://www.51softs.com/aspnet/xiaochengxu-kaifa-shiyong-webapi-shixian-denglu.html
簡單實現在線安裝Web程序,在博客园里找的资料。有兴趣的朋友可以拿去看看。希望对能对你有所帮助。
web后端开发-实现Web端线上投票程序
此压缩包包含学习Web程序设计——JSP 总共10章内容。
C#实现Web服务器功能的程序设计 WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用...
Web客户端端调用带参数的exe可执行程序,js调用的方法
如何使用Ajax技术开发Web应用程序如何使用Ajax技术开发Web应用程序
通过实验熟悉和掌握常见Web程序设计的方法 熟悉FileUpload的使用方法 建立Web应用程序,实现对文件的上传,要求只能上传扩展名为.gif, .png, .bmp, .jpg的文件,如果上传非图片文件要提示出错,上传成功后要显示上传...
web前端实现189电信网站,技术有HTML5、CSS、JS、ajax