`
lgcpeter
  • 浏览: 90328 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

j2ee的web应用像CS程序一样自动更新

阅读更多
cs程序的更新一般都有更新程序或补丁程序,但服务器端的J2EE很少有自动更新,大多数都由实施人员上门进行手工的更新(这样能收上门费),但给用户的感觉很不好,所以需要写一个傻瓜式的更新模块,便于不懂J2EE的系统管理员做更新.
更新程序的操作过程设计如下:
1,给系统管理员在后台提供一个开关控制各个系统的使用状态为更新状态,在线的用户强制下线,登录的用户不允许登录。这样保证数据不再有更新。备份数据和应用程序如果更新失败提供恢复策略。
2,然后上传更新包,更新包结构:a,webapps(oa;hr;cc...各个应用)与tomcat结构保持一致 b,update.sql数据库的更新语句 c,update_版本号_补丁号.jsp最后动态执行这个jsp修改配置文件和清理缓存及其它复杂情况
3,更新成功后,要求重启tomcat
4,重启后检查更新效果,然后恢复各个系统的使用状态为正常使用状态
分享到:
评论
19 楼 blareck 2009-10-28  
我觉得自动更新很有必要,客户可以省下一笔很客观的费用,而实际上你可以有更多的时间来做新的产品,或者完善产品!基本上你可以认为是用钱来买到了时间!
18 楼 lgcpeter 2009-10-28  
mntswan 写道
现在的web程序,一次更新的文件一般都比较多。

不管是自己手动替换还是让客户去手动替换都是比较麻烦的,也有替换错误的风险。

所以我们部门现在的解决的不是自动更新的需求,而是针对客户的版本,发布相关的升级包。

开发人员按照指定格式提供升级包。升级包包括升级文件和升级路径,其中升级路径在xml中定义。

实施人员或者客户之要把压缩包放到指定目录,然后在服务器运行升级程序就可以了。


现在的升级程序是基于eclipse开发的客户端程序。



我们更新的过程思路基本是一致的。不同之处在于
mntswan 写道
升级程序是基于eclipse开发的客户端程序

我现在的做法没有客户端程序,就在web应用下执行。就是简单的copy和执行更新sql,然后调用一个jsp执行其它复杂情况。
个人认为:两种方式都可行,各有优缺点。
客户端程序在容器之外:
优点--能很好的控制容器的停止和启动;
缺点--与应用分离,服务器好多没有界面无法运行,客户还需要知道学习更新的操作。
嵌在web容器中作为功能模块:
优点--与应用是整体,并且远程就可以上传更新包无需操作服务器目录。
缺点--在容器内做一些简单的jsp更新还可行,稍微复杂情况必须要求客户手工重启容器。
17 楼 lgcpeter 2009-10-28  
flyeagle 写道
我前段时间做了一个web程序的更新,在本地建立一个更新服务器,更新涉及数据库更新、程序更新,然后在客户端(也就是客户本地的服务器上)添加更新程序,在更新包中加入更新规则,客户端使用定期检测的功能,每天晚上凌晨某个时间,检测更新服务器是否有更新版本,有的话自动下载更新包,然后自动停止本地应用服务(由于涉及文件安全原因,如果文件在使用将无法更新,比如jar包覆盖,所以,只有先停止服务才行),然后依照更新规则进行更新,完了重启服务器。整个过程不需要认为的进行干预,由于涉及跨平台,所以,整个程序都是通过java实现的。

这样前提必须客户本地服务器得联网。
另外,请教一下java如何实现停止服务(包含windows和linux环境)?
16 楼 mntswan 2009-10-27  
现在的web程序,一次更新的文件一般都比较多。

不管是自己手动替换还是让客户去手动替换都是比较麻烦的,也有替换错误的风险。

所以我们部门现在的解决的不是自动更新的需求,而是针对客户的版本,发布相关的升级包。

开发人员按照指定格式提供升级包。升级包包括升级文件和升级路径,其中升级路径在xml中定义。

实施人员或者客户之要把压缩包放到指定目录,然后在服务器运行升级程序就可以了。


现在的升级程序是基于eclipse开发的客户端程序。


15 楼 flyeagle 2009-10-27  
   就算是web程序,自动更新还是非常有必要,比如,一个web程序一旦做成产品,部署在全国很多地方,每个版本都到现场去更新配置,那造价可就大了,所以,做个自动更新时非常有必要的。当然,前面说的不能上网,当然不能自动更新了,也无法做到。这样的只要下个更新包,然后程序中提供一个导入更新包,然后进行更新就行了。
14 楼 whaosoft 2009-10-27  
如果bs想cs那样挺好啊
13 楼 flyeagle 2009-10-27  
我前段时间做了一个web程序的更新,在本地建立一个更新服务器,更新涉及数据库更新、程序更新,然后在客户端(也就是客户本地的服务器上)添加更新程序,在更新包中加入更新规则,客户端使用定期检测的功能,每天晚上凌晨某个时间,检测更新服务器是否有更新版本,有的话自动下载更新包,然后自动停止本地应用服务(由于涉及文件安全原因,如果文件在使用将无法更新,比如jar包覆盖,所以,只有先停止服务才行),然后依照更新规则进行更新,完了重启服务器。整个过程不需要认为的进行干预,由于涉及跨平台,所以,整个程序都是通过java实现的。
12 楼 zhxp791008 2009-10-27  
你这不叫自动更新,还要重启服务器,用户无法使用。这个完全可以远程桌面或tomcat的管理功能远程搞定。
要真正做到动态更新,看下OSGI吧。。。
11 楼 panpanshupian 2009-10-27  
我们现在就是上门服务的,呵呵!有时间就请客户更新!
10 楼 shinkadoki 2009-10-27  
JEE中的自动更新可以做的哦,可以在服务支持中心(我们是设在自己技术机房里面),用户那边的服务器一般不会进行连接到Internet的,在通知客户网管之后,客户方回开通客户那边服务器的连接外网权限,然后由管理员运行一下升级就OK了。

如果客户那边没有限制服务器连接Internet情况下,基本上都是自动来支持中心这边自动更新的,当然……过了服务期之后,还是要上门收费的。
9 楼 smilelhh 2009-10-27  
jasspier 写道
并不是所有上门更新都是收费的,一旦用户量成千上万,就知道自动更新的重要性了。
不如用C++或者delphe写一个服务程序定期检查更新,有更新的时候提示用户,用户确定后程序停止web server开始升级过程。


我就是这么干的,效果还挺好。
我们的客户在局域 网中用,点有50多个,如果不采用自动更新,会死人的。
现在好了,只要拿出一台来做更新服务器,我们每次更新软件,只要更新一台就OK了。

8 楼 lgcpeter 2009-10-27  
moss 写道
用户的东西在自己局域网内,怎么更新?
自动更新不可能的,只能手动去更新。
我们公司的客户计算机都不连接互联网的

是要下载更新包的
7 楼 moss 2009-10-26  
用户的东西在自己局域网内,怎么更新?
自动更新不可能的,只能手动去更新。
我们公司的客户计算机都不连接互联网的
6 楼 lydawen 2009-10-26  
你所谓的自动更新,大部分C/S自动更新都是要么C需要重启,要么S重启,跟你上不上门没什么联系。
如果你要不上门,ftp+telnet吧,绝对的跨平台 --!
5 楼 lgcpeter 2009-10-26  
jasspier 写道
并不是所有上门更新都是收费的,一旦用户量成千上万,就知道自动更新的重要性了。
不如用C++或者delphe写一个服务程序定期检查更新,有更新的时候提示用户,用户确定后程序停止web server开始升级过程。

这样如何实现跨平台呢?
4 楼 jasspier 2009-10-26  
并不是所有上门更新都是收费的,一旦用户量成千上万,就知道自动更新的重要性了。
不如用C++或者delphe写一个服务程序定期检查更新,有更新的时候提示用户,用户确定后程序停止web server开始升级过程。
3 楼 lgcpeter 2009-10-26  
程序的自动更新是非常有必要的。
一方面,用户可以省去上门服务的费用,让用户放心使用;就算收上门费用,有自动更新你的上门开销也会大大减少。
另一方面,有利于项目的产品化和标准化。开发出产品可维护性好才是最重要的。
2 楼 Jacky-Q 2009-10-26  
这个东西,怎么说呢。
“老大,我搞了一个好东西!”
“什么东西?”
“自动更新。以后我们可以少挣很多上门费了!”
“-_-”
1 楼 czllfy 2009-10-26  
跟我最开始的想法一样,但是发现不好处理。

相关推荐

    基于WEB服务的应用程序设计.docx

    关键词如B/S模式、MVC开发模式、Spring、J2EE、JSP、Struts和Hibernate等,都是Web应用程序开发的核心概念和技术,它们共同构建了这个系统的骨架。 总的来说,基于WEB服务的应用程序设计涉及到了Web服务器搭建、...

    基于J2EE设计学生管理系统课程设计报告.pdf

    - 若不使用MyEclipse自带的Tomcat,需要在MyEclipse的偏好设置中添加自定义的Tomcat服务器,选择对应的Tomcat版本,并启用该服务器,以便部署和运行Web应用。 **系统功能** 学生信息管理系统的核心功能包括: - ...

    中小企业办公自动化系统的开发与应用.pdf

    此外,文档中还提到了POWERBUILDER,这是一款用于开发数据库驱动应用程序的集成开发环境(IDE),还提到了J2EE(Java 2 Platform, Enterprise Edition),它是支持企业级应用开发的平台。 6. Web技术:文档中提到了...

    基于J2EE设计学生管理系统课程设计报告.docx

    1.3 系统介绍部分指出,学生信息管理系统采用B/S(Browser/Server)架构,由后台数据库和前端应用程序两部分组成。数据库确保数据的一致性、完整性和安全性,而应用程序则需要具备用户友好的界面和丰富的功能。该...

    Oracle-Weblogic-11g-基础知识.pptx

    Oracle Tuxedo 的适用范围包括核心交易系统、首选的 Mainframe 应用替换平台、CS 三层架构的应用服务器等。 Oracle Coherence 基础知识和概念 Oracle Coherence 是一种内存中数据网格解决方案,通过提供对频繁使用...

    计算机毕业论文题目概述.pdf

    包括各种管理系统(如实验室网络管理系统、音像店租赁管理系统、班主任管理系统、办公自动化系统)、聊天系统、文件压缩与解压缩工具、银行账目管理系统等,这些都是利用Java技术构建的Web应用程序。 16. **CSCW ...

    Java容器化部署架构方案.pptx

    Java 应用程序的部署方式有多种,包括传统的 Client-Server 架构、J2EE 架构、JavaEE with Spring 架构、Microservice 架构等。Java 应用程序可以部署在应用服务器上,也可以部署在云原生环境中。 二、三个迷思困惑...

    非常经典java求职简历.docx

    - Tomcat、JBoss、WebLogic:J2EE应用服务器,用于部署和运行Java Web应用程序。 4. **项目经验**: - 成都汉易房产楼盘管理系统:使用SSH(Struts+Spring+Hibernate)框架,涉及房产资料、销售管理等多个模块,...

    《Java程序设计》课程教学大纲.docx

    此外,对于企业级应用开发,J2EE(Java 2 Platform, Enterprise Edition)和EJB(Enterprise JavaBeans)是不可忽视的,它们提供了构建分布式、多层架构应用的框架。 课程可能还会涉及一些辅助开发工具,如Eclipse...

    《Java程序设计》模拟题带答案B卷.pdf

    3. **J2EE应用文件扩展**:J2EE应用文件的扩展名是`.ear`,它是一个包含多个模块(如Web应用的`.war`文件、EJB的`.jar`文件等)的归档文件,用于部署在应用服务器上。 4. **main方法**:Java Application程序的入口...

    JAVA面试题目

    - **观察者模式**:定义了对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都会得到通知并自动更新。 - **适配器模式**:允许不兼容的接口之间的类可以一起工作。 - **装饰模式**:动态地给一...

    《Java程序设计》模拟题带答案B卷.docx

    3. **J2EE(Java 2 Platform, Enterprise Edition)**:是Java平台的企业版,用于开发和部署企业级应用程序,如Web应用、分布式服务和数据库连接。`.ear`文件是J2EE应用的归档格式,包含了多个组件(如`.war` Web...

    MVC模式的简介资料

    MVC模式(Model-View-Controller)是一种广泛应用于软件工程中的设计模式,特别是在Web应用程序开发领域。这种模式将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller),通过这种方式...

    powerbuider11 CS 转换为BS

    3. **选择现有库和应用程序对象**:在创建过程中,选择使用现有的库和应用程序对象作为项目的基础。 4. **添加所需 PBL 文件**:根据项目需求,添加所有相关的 PBL 文件。 5. **指定 PBT 文件名称**:可以自定义 PBT...

    超级有影响力霸气的Java面试题大全文档

    SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。  对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器...

    计算机毕业论文题目大全.pdf

    例如,"JSP/JAVA程序"和"ASP程序"就是利用这些技术来构建Web应用。 4. **数据库管理**: SQL Server和MySQL是两种常用的数据库管理系统。如"基于JAVA的仓库管理系统"和"基于Struts和MySQL的BBS论坛"都涉及到数据库的...

    简历中的项目经验范文.pdf

    - **职责**: 负责编写JavaBean、Servlet和Hibernate持久层,进行配置和调试,以及部署Web应用程序。同时,参与了个人办公模块的开发,如短消息和通讯录功能。 2. **客户关系管理系统(CRM)** - **开发环境**: 同样...

    IT通用面试题目.pdf

    其他如Tomcat,虽然严格来说不是一个完整的App Server,但作为一个Servlet/JSP容器,它也被广泛应用在小型和中型Java Web应用中。Tomcat具备一些App Server的功能,如JNDI、数据库连接池和事务处理等。 在面试中,...

    计算机毕业论文设计题目大全.pdf

    J2EE(Java 2 Platform, Enterprise Edition)是用于构建企业级应用程序的Java平台,如公交查询系统、音像店租赁管理系统。这些项目涉及到Servlet、JSP、EJB等组件,以及数据库连接和事务管理。 4. **J2ME手机游戏...

    韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全).pdf

    2. J2EE(Java Platform, Enterprise Edition):针对企业级应用,包含Web开发所需的技术,如Servlet、JSP、MVC模式以及各种框架如Struts、EJB、Hibernate和Spring。 3. J2ME(Java Platform, Micro Edition):...

Global site tag (gtag.js) - Google Analytics