说说以前的一个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聊天程序结合了Java的后端处理能力、WebSocket的实时通信特性以及Web技术的便捷交互,提供了一个高效、实时的在线聊天环境。开发者需要掌握Java服务器编程、WebSocket协议、前端开发以及网络安全...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库在Visual C++ 6.0环境下实现一个简单的Web服务器程序。MFC是微软为C++开发人员提供的一套面向对象的类库,它封装了Windows API,使得Windows...
而"如何使自己的程序自动更新(在线更新)"可能是相关的文档或教程,建议阅读以获取更深入的理解。 以上是C++实现程序在线自动更新的基本流程和关键技术点。实际应用时,可能需要根据具体的平台、安全需求和用户体验...
【标题】"Web程序设计-ASP.NET实用网站开发PPT" 涵盖了ASP.NET技术在构建Web应用程序中的实际应用。这是一套完整的教学资源,由沈世根编著的《Web程序设计-ASP.NET实用网站开发(第2版)》的配套课件。 【描述】"Web...
标题《Java Web程序设计教程》与描述《Java Web程序设计教程 Java Web程序设计教程》中的知识点主要涵盖了Java Web应用开发领域的核心技术与实践。本书作为21世纪高等学校计算机规划教材,由范立锋与林果园共同编著...
《Web程序设计电子教案》与《Web程序设计实验手册》是学习Web开发的重要参考资料,尤其适合初学者和希望深入理解Web技术的学员。这两份资料提供了全面、详细的Web开发知识,涵盖从基础到进阶的各种主题。 Web程序...
"Web程序实现桌面提醒" 在Web程序中,实现桌面提醒是一个非常有用的功能,对用户来说可以非常方便最新的信息。本文将介绍如何在Web程序中实现桌面提醒,包括Popup的特性、创建Popup、显示多个Popup、知道有新帖子等...
《Java Web程序设计任务教程》是一本专注于Java Web开发实践的书籍,由中国工信出版社出版,由传智播客旗下的高端教育品牌“黑马程序员”精心编著。这本书旨在帮助读者掌握Java Web开发的核心技术和实践方法,通过一...
在`WEB程序设计大作业`中,可能需要编写JavaScript代码来响应用户的点击事件,更新DOM(文档对象模型),或者实现页面间的局部刷新,提升用户体验。JavaScript代码可以放在HTML文件的`<script>`标签内,也可以放在...
在本项目中,我们将设计一个基于Web的程序,允许用户执行复数的加法、减法、乘法和除法运算。复数是由实部和虚部组成的数学对象,其形式为a + bi,其中a是实部,b是虚部,i是虚数单位,满足i² = -1。在Web开发中,...
本文将深入探讨"Web安装程序安装程序类"这一主题,特别是针对描述中提到的数据库安装、IIS站点创建和web.config文件更新。 首先,我们来看数据库安装。在Web应用程序中,数据库通常用来存储用户信息、应用设置等...
在当今数字化时代,Web程序扮演着至关重要的角色,它们为用户提供各种在线服务,从简单的信息展示到复杂的业务处理。与此同时,单片机作为嵌入式系统的核心组件,广泛应用于物联网、智能家居、工业自动化等领域。将...
【WEB程序设计——旅游网站】是一个综合性的项目,旨在教授如何使用C#和ASP.NET技术构建一个功能完备的在线旅游服务平台。这个项目涵盖了多种关键的Web开发知识点,包括动态网页生成、用户认证与授权、数据库交互...
《深入剖析:hao123万年历Web程序》 在互联网的广阔天地中,hao123万年历作为一个实用的在线工具,深受用户喜爱。它以简洁的界面、丰富的功能,为用户提供方便的日历查询服务。本文将通过分析"纯脚本和html写的 hao...
Web应用程序是互联网上的一种软件系统,它允许用户通过Web浏览器进行交互,实现各种功能,如在线购物、社交媒体、数据管理等。深入理解Web应用程序的结构、工作原理和协议对于开发高效、安全的Web应用至关重要。 1....
在该文中深入讨论了采用基于WEB技术,并以工作流作为运行环境的电子表单的技术架构、具体实现以及该类产品的适用范围和应用价值.该文的章节结构为:第一章重点分析了基于WEB的电子表单系统的相关背景知识和市场意义;第...
通过《ASP.NET Web程序设计》-王祖俪-电子教案-4605这份教程,读者可以系统地学习并掌握ASP.NET Web开发的核心技术,从而能够独立设计和实现复杂的Web应用程序。教程中应包含丰富的实例和练习,帮助读者巩固所学知识...
【标题】:“Web程序设计课程作业” 在计算机科学与信息技术领域,Web程序设计是一门至关重要的课程,它涵盖了创建和维护交互式Web应用程序所需的技术和概念。本“Web程序设计课程作业”旨在帮助学生深入理解并实践...
实现Java Web程序的自动登录 实现Java Web程序的自动登录
"Web程序设计03"可能会涉及JavaScript的高级特性,如异步编程(Promise和async/await)、模块化(CommonJS、ES6模块)、框架和库(如React、Vue、Angular)以及AJAX(异步JavaScript和XML)用于实现页面的无刷新更新...