CN101192937A - 一种可热部署的方法及其系统 - Google Patents
一种可热部署的方法及其系统 Download PDFInfo
- Publication number
- CN101192937A CN101192937A CNA2006101238830A CN200610123883A CN101192937A CN 101192937 A CN101192937 A CN 101192937A CN A2006101238830 A CNA2006101238830 A CN A2006101238830A CN 200610123883 A CN200610123883 A CN 200610123883A CN 101192937 A CN101192937 A CN 101192937A
- Authority
- CN
- China
- Prior art keywords
- module
- web
- request
- service
- model layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种实现热部署的方法,所述方法包括下列步骤:a.开放式服务网关接收服务请求;b.调用所述开放式服务网关中与所述服务请求对应的一个或多个业务逻辑模块,所述业务逻辑模块加载于所述开放式服务网关的各个子模块中;c.根据所述服务请求对所述的一个或多个子模块进行处理。本发明还同时公开了一种可热部署的系统。实施本发明,能够将开放式服务网关和J2EE很好地结合起来,实现了不重启Web应用的情况下的热部署,适合轻量级的Web应用,而且适合大型的企业级的J2EE的需要。
Description
技术领域
本发明涉及Web应用服务器的热部署,更具体地说,涉及一种实现热部署的方法及其系统。
背景技术
目前,在企业级的基于浏览器/服务器(Browser/Server,简称B/S)架构的平台中,由于服务端需要一天24小时不停地工作,停止非常少的一段时间可能会带来巨大的损失。而由于种种原因,服务端需要进行各种各样的升级以及打补丁。因此,如何在不影响服务端工作的情况下进行热部署、升级显得非常重要。
现在多数的Web服务器,每个Web服务器中可以包含很多Web应用,在Web应用改变的时候,可以仅仅重启Web应用,而不需要将Web服务器重新启动。但是,在真正的企业级应用中,由于Web应用往往比较大,所以一个Web服务器中经常只有一个Web应用,重新启动Web应用所消耗的时间与重新启动Web服务器所消耗的时间相差无几。因此,如何解决在不重启Web应用的情况下的热部署就是关键的问题所在。
但在当前的B/S架构中,基于Java的Web应用系统一般采用模型、视图、控制(model view control,简称MVC)模式。而且,绝大多数企业级的B/S架构都是基于MVC的,在基于MVC的B/S机构中,由于控制层基本不会发生变化,视图层的改变是不需要重启服务的。因此,热部署的主要工作在于解决如何使得多变的模型层在不重启服务器的情况下进行更新这个问题。目前解决该问题所采用的方法一般是通过Java管理扩展(Java Managementextensions,简称JMX)对Java应用程序进行管理控制。
JMX是SUN公司提出的一套为应用程序植入管理功能的框架,其定义了完整的框架体系、设计模式、应用程序接口(Application Program Interface,简称API)、基于网络的管理和监控服务等,通过这些用户可以对任何Java应用程序实现管理控制,从而实现在不重启Web应用的情况下的热部署。
由于JMX所提供的许多服务是针对分布式环境,因此虽然利用JMX可以实现热部署的目的,但是由于JMX是一个整体架构,侵入性较高,并不非常适合轻量级的Web应用。而且由于其是基于分布式的设计,会导致其配置使用相对比较复杂,使用较为繁琐,因而开发成本较高。
于是,可以采取第二种的集群或备份服务的方法,解决不重启Web应用的情况下的热部署问题。由于在企业级的B/S架构服务端中,往往是多台服务器进行集群服务,这样在系统升级或打补丁的时候就可以在一台服务器上进行,其他的服务器还在工作,对外表现为热部署,但是就一台服务器来说服务器仍然需要重启。
另一种可能的方法就是使用Web服务的备份,即将升级前的服务备份,并同时对外提供服务,等升级完毕后再切换到升级后的Web服务,从而对外表现为热部署。但是,这种方法并不是真正意义上的热部署,仅仅是采用了备份的方法。在备份和转换过程中,必然导致效率、正确率低等问题。
由于开放式服务网关(Open Service Gateway Initiative,简称OSGi)规范为网络服务定义了一个标准的、面向组件的计算环境。将OSGi服务平台添加到一个网络设备中,可以为其增加在网络的任何地方管理组件的生命周期的能力。软件组件可以从运行中被安装、升级或者移除而不需要中断设备的操作,软件组件可以动态地发现和使用其他库或者应用程序。所以,还可以采取第三种的OSGi架构的方法,解决不重启Web应用的情况下的热部署问题。其实现过程如下:
OSGi规范提供了一个称之为应用服务(Http Server)的可选择的服务,其主要功能就是将Java企业版本(Java Enterprise Edition,简称JavaEE)的Servlet组件、资源文件以及Web容器本身,作为服务注册到OSGi服务上,从而实现热部署。
Http Service服务的架构描述如图1所示。首先,需要在开放式服务网关框架上注册应用服务。然后,需要一个Web容器响应相应的Web请求。最后,需要将Web应用的组件,主要包括Servlet和Web静态资源文件等通过应用服务注册到开放式服务网关框架上。
由于应用服务改表了Servlet注册查找方式,使得其与J2EE(Java 2Enterprise Edition,简称J2EE)规范并不能兼容。所以现有的Web容器必须经过相应的改造才可以使用这种服务,必然导致开发成本的增加,而且由于将Web容器注册到开放式服务网关服务使得Web容器必须依赖与开放式服务网关服务Web容器无法独立启动。基于上述原因,导致之前开发的J2EE应用无法集成到HttpService的架构,只能重新改写,同样导致开发成本的增加。
另外,由于Http Service不只将Servlet注册到开放式服务网关服务上,而且注册了资源文件,使得其注册服务变得比较复杂,在Servlet和资源文件较多的情况下开发效率和执行效率都比较差,因此无法适合大型的J2EE的需求。这种架构在嵌入式的基于Web的管理方面将有很大的优势,但是不适合大型的企业级的J2EE的需要。
再者,由于开放式服务网关的架构最早是由电器设备厂商提出的,所以其考虑的企业级的J2EE的应用较少。结合上述的原因,可见Http Service不适合在企业级的J2EE应用中使用。
发明内容
本发明要解决的技术问题在于提供一种可热部署的Web应用的方法及其系统实现了不重启Web应用的情况下的热部署。
本发明解决其技术问题所采用的技术方案是:提供一种实现热部署的方法,所述方法包括下列步骤:
a、开放式服务网关接收服务请求;
b、调用所述开放式服务网关中与所述服务请求对应的一个或多个业务逻辑模块,所述业务逻辑模块加载于所述开放式服务网关的各个子模块中;
c、根据所述服务请求对所述的一个或多个子模块进行处理。
本发明所述的方法中,在执行所述步骤a之前包括下列步骤:
a01、在Web服务端的Web应用上加载所述开放式服务网关;
a02、将所述业务逻辑模块作为Web模型层在所述开放式服务网关中装载;及
a03、所述业务逻辑模块对外提供的服务作为服务注册到所述开放式服务网关中。
本发明所述的方法中,所述步骤a具体包括:
a1、所述Web服务端的Web视图层将接收到的服务请求转发给所述Web服务端的Web控制层;
a2、所述Web控制层将接收到的用户请求转发给所述开放式服务网关。
本发明所述的方法中,所述步骤b具体包括:
将所述业务逻辑模块包含至少一个以上的Web模型层模块并注册到所述开放式服务网关上,每个所述Web模型层模块作为所述开放式服务网关的一个子模块。
本发明所述的方法中,所述步骤c具体包括:
由所述Web模型层中相应的所述Web模型层模块对所述用户请求进行处理。
本发明所述的方法中,所述Web模型层模块通过所述开放式服务网关的消息传递模块与其他的非Web模型层模块进行通信。
本发明所述的方法中,启动所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的启动所述Web模型层模块的请求后,通知所述开放式服务网关启动对应的子模块,启动成功后,所述模块热部署服务重新加载相关的配置、资源文件。
本发明所述的方法中,停止所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的停止所述Web模型层模块的请求后,通知所述开放式服务网关停止对应的子模块,停止成功后,所述模块热部署服务重新加载相关的配置、资源文件。
本发明所述的方法中,部署新的所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的指定安装新的所述Web模型层模块的请求后,通知所述开放式服务网关安装并启动对应的子模块并设置启动的级别,启动成功后,所述模块热部署服务重新加载新添加的相关的配置、资源文件。
本发明所述的方法中,更新所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的指定安装新的所述Web模型层模块的请求后,若更新子模块,则通知所述开放式服务网关安装并启动对应的子模块,启动成功后,所述模块热部署服务重新加载新添加的相关的配置、资源文件;若更新资源、配置文件或静态文件,则进行文件的复制和重新加载配置文件的操作。
本发明所述的方法中,卸载所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的卸载所述Web模型层模块的请求后,通知所述开放式服务网关卸载对应的子模块,卸载成功后,所述模块热部署服务重新加载相关的配置、资源文件并删除所述Web模型层模块相关的静态文件。
本发明所述的方法中,所述Web模型层模块之间的调用采用基于声明服务的懒加载机制。
本发明还同时公开了一种可热部署的系统,所述系统包括:
请求单元,用于接收用户的服务请求,并将所述服务请求进行转发;
开放式服务网关,用于接收所述服务请求,该开放式服务网关包含多个子模块,所述每个子模块加载有一个业务逻辑模块,所述开放式服务网关根据接收的所述服务请求,调用与所述服务请求对应的一个子模块进行处理。
本发明所述的系统中,所述开放式服务网关还包括消息传递模块,所述业务逻辑模块通过消息传递模块与其他的非业务逻辑模块进行通信。
本发明所述的系统中,所述请求单元包括:视图单元和控制单元,所述视图单元用于用户将服务请求通过web界面发出,所述控制单元用于接收所述服务请求并将所述服务请求进行控制转发。
实施本发明的可热部署的Web应用的方法及其系统,具有以下有益效果:能够将开放式服务网关和J2EE很好地结合起来,实现了不重启Web应用的情况下的热部署,适合轻量级的Web应用,而且适合大型的企业级的J2EE的需要。
仅仅对于MVC架构的模型层在开放式服务网关上进行注册,所以减少了服务的注册量,降低了服务的查找时间,并减少了内存的使用量,使得此热部署架构相对于其他的热部署架构,比如开放式服务网关的Http Service来说热部署更加方便、高效。
对开放式服务网关的封装使用,服务的加载、查找由框架负责完成,使得热部署对于模块的开发人员透明。
基于MVC架构,模型、视图、控制层分离,由于现有的J2EE架构基本上都是基于MVC的,所以此模型具有与现有的J2EE MVC架构具有挂接的能力。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是传统的开放式服务网关框架的架构图;
图2是传统的基于MVC的Web服务端的架构图;
图3是传统的Web应用类加载器加载模块的示意图;
图4是本发明所述可热部署的系统的架构图;
图5是本发明的Web应用类加载器加载模块的示意图;
图6是本发明的热部署的模块启动的流程图;
图7是本发明的热部署的模块停止的流程图;
图8是本发明的热部署的部署新模块的流程图;
图9是本发明的热部署的模块更新的流程图;
图10是本发明的热部署的卸载模块的流程图;
图11是本发明的服务端与客户端进行信息交互的流程图;
具体实施方式
本发明的技术方案主要是将开放式服务网关架构置于B/S架构服务器端,并将B/S架构服务器端MVC架构的模型层置于开放式服务网关架构的各个子模块(Bundle)中,使得MVC架构的控制层和视图层可以使用位于OSGi架构中的模型层,从而将开放式服务网关和J2EE很好地结合起来,实现了在不重启Web应用的情况下的热部署。
为使本发明的目的、技术方案及优点更加清楚明白,以下通过具体实施例并参见附图,对本发明进行详细说明。
图2示出的是传统的基于MVC的Web服务端的架构图,如图所示。在当前的B/S架构中,基于Java的Web应用系统一般采用MVC架构模式,传统的基于MVC的Web服务端,分为如下几个层次:
视图层:为用户交互界面,也就是Web的界面。视图层一般都是静态的文本文件或JSP(Java Server Page,简称JSP)页面,根据JavaEE的规范,如果它们被修改,则不需要重新启动Web应用就可以生效。
控制层:可以理解为从用户接收请求,将模型层与视图层匹配在一起,共同完成用户的请求。由于这部分与业务逻辑无关,仅仅是对视图层请求的转发到相应的模型层处理,因此控制层的变化仅仅在转发的配置上,转发规则上基本不会发生变化。如果转发的配置发生改变,只需要重新加载一下配置文件就可以完成,而不需要重启Web应用。
模型层:模型层也就是业务流程/状态的处理以及业务规则的制定,是业务逻辑模块,也是用户需求变化最大的模块。在传统的Web服务端,所有的模型层都被加载到同一个Web应用的类加载器中(如图3所示)。因此,如果要更新已加载的类,必须重新启动Web应用的类加载器,这就导致了添加、更新、删除模块必须要重新启动Web应用。
图4示出的是本发明所述可热部署的系统的架构图,如图所示。本发明所述的热部署的系统,包括请求单元和开放式服务网关。请求单元用于接收用户的服务请求,并将服务请求进行转发;开放式服务网关用于接收服务请求,该开放式服务网关包含多个子模块,每个子模块加载有一个业务逻辑模块(即图中的Web模型层模块),开放式服务网关根据接收的服务请求,调用与服务请求对应的一个子模块进行处理。开放式服务网关还包括消息传递模块,业务逻辑模块通过消息传递模块与其他的非业务逻辑模块进行通信。
其中,请求单元包括视图单元(即图中的Web视图层)和控制单元(即图中的Web控制层),所述视图单元用于用户将服务请求通过web界面发出,所述控制单元用于接收所述服务请求并将所述服务请求进行控制转发。
由上述可知,由于模型层与Web应用的类加载器绑定,所以如果模型层发生改变,则需要重新启动Web应用才可以完成更新。因此,本发明在传统的基于MVC的Web服务器端基础上,将开放式服务网关架构置于B/S架构服务器端,并将B/S架构服务器端MVC架构的模型层置于开放式服务网关架构的各个子模块中,解决了当模型层发生改变,而不需要重新启动Web应用即可完成更新的问题,其具体实现热部署的方法如下:
首先,在Web应用上加载开放式服务网关;然后,将Web服务的一个或多个业务逻辑模块作为Web应用的模型层,并作为开放式服务网关的子模块在开放式服务网关服务器中装载,业务逻辑模块对外提供的服务作为服务注册到开放式服务网关服务器中以供Web应用和其它业务逻辑模块使用。由于在Web应用的层次上加载了开放式服务网关,所以可以在Web应用的层次上调用所有注册到开放式服务网关的服务。
而且,由于在Web应用的层次上加载了开放式服务网关,将传统的Web应用的模型层分为一个以上的Web模型层模块并注册到开放式服务网关上。所以,在新的基于开放式服务网关的可热部署的轻量级网管服务端模型中,Web应用类加载器中加载了开放式服务网关,而开放式服务网关则具有自己的子类加载器来加载各个模块。开放式服务网关提供了一套注册的机制,可以将模块类加载器加载的类注册到开放式服务网关架构中。这样,在Web应用类加载器加载的Web的视图层和控制层时,就可以使用模块加载类。由于模块具有自己的类加载器,在某个模块发生变化的时候,仅仅需要重新启动模块自身的类加载器即可,从而避免重新启动Web应用的类加载器,因而使得模块的热部署得以实现(如图5所示)。
因此,利用开放式服务网关规范提供的机制,当对某个Web模型层模块进行修改的时候,仅仅重新启动相应的模块就可以实现,从而实现了每个模型层的动态的添加、修改、删除(热部署)。在这种情况下,由于各个Web模型层模块处于自己的空间内,所以通信和消息传递的时候需要借助开放式服务网关架构和其他的非Web相关的模块,例如消息传递模块等。在具体的实施上,可以将每个Web模型层模块作为开放式服务网关的一个子模块,注册到开放式服务网关架构上,从而利用开放式服务网关提供的子模块的热部署的机制实现了Web应用程序的热部署。
Web模型层模块的热部署包括模块的启动、模块的停止、部署新的模块、模块的热升级和模块的热卸载。
其中,本发明的热部署的模块启动的流程图如图6所示。用户可能由于某些原因需要停止某模块的服务,但是并不卸载该模块,此时用户可以再次启动该模块。具体流程为:首先用户通过相应的管理用户界面(例如通过图形用户界面的接口、或者也可以通过命令行,这里采用的请求形式不限)发出启动模块的请求,模块热部署服务收到请求后,通知开放式服务网关服务启动对应的子模块,启动成功后,模块热部署服务重新加载相关的Web配置、资源文件。模块启动成功后,该模块就可以对外正常使用。
其中,本发明的热部署的模块停止流程图如图7所示。用户可能由于某些原因需要停止某模块的服务,但是并不卸载该模块,此时用户可以停止该模块。具体流程为:首先用户通过相应的管理用户界面(例如通过图形用户界面的接口、或者也可以通过命令行,这里采用的请求形式不限)发出停止模块的请求,模块热部署服务收到请求后,通知开放式服务网关服务停止对应的子模块,停止成功后,模块热部署服务重新加载相关的Web配置、资源文件。模块停止成功后,该模块就可以停止对外服务。
其中,本发明的热部署的部署新模块的流程图如图8所示。由于业务需要,用户往往需要添加新的模块以提供新的服务,具体流程为:用户在部署新模块的时候,首先通过相应的管理用户界面(例如通过图形用户界面的接口、或者也可以通过命令行,这里采用的请求形式不限)指定安装模块所必须的相关文件信息,例如Web配置、资源文件、对应服务的包(如Jar包)等等。模块热部署服务收到需要安装新模块的请求后,更新相关文件并通知开放式服务网关服务安装并启动对应的子模块,同时设置启动的级别。启动成功后,模块热部署服务重新加载新添加相关的Web配置、资源文件。模块部署成功后,通知用户安装新模块完成,此时该模块就可以对外正常使用。
其中,本发明的热部署的模块更新的流程图如图9所示。由于业务需要,用户往往需要在已有的模块中添加新的业务或对已有的业务进行更改,这种情况比较普遍,具体流程为:用户在更新模块的时候,首先通过相应的管理用户界面(例如通过图形用户界面的接口、或者也可以通过命令行,这里采用的请求形式不限)指定更新模块所必须的相关文件信息,例如Web配置、资源文件,对应服务的包(如Jar包)等等。模块热部署服务收到更新模块的请求后,通知开放式服务网关服务更新该模块的相关文件,并更新对应的Bundle。更新成功后,模块热部署服务重新加载新添加的相关的Web配置、资源文件。如果仅仅更新了新资源、配置文件或静态文件,则进行文件的复制和重新加载配置文件的操作。模块更新成功后,通知用户安装新模块完成,此时该模块就可以对外正常使用。
其中,本发明的热部署的卸载模块的流程图如图10所示。由于业务的发展,可能有些业务已经过时,并不需要再继续使用,因此需要对已有的模块进行卸载,具体流程为:用户需要卸载某一指定的模块时,首先通过相应的管理用户界面(例如通过图形用户界面的接口、或者也可以通过命令行,这里采用的请求形式不限)指定安装所要卸载的模块。模块热部署服务收到卸载模块的请求后,通知开放式服务网关服务卸载对应的子模块。开放式服务网关子模块卸载成功后,模块热部署服务重新加载相关的Web配置、资源文件并删除该模块相关的静态文件。模块卸载成功后,通知用户模块卸载完成。此时该模块不可以使用,用户无法再次启动该模块,如果以后需要再次使用该模块,则只能进行模块的新部署。
上述中,模块间的调用采用了基于声明服务(Declarative Services)的机制。服务提供者发布服务是基于声明式的,服务的产生、加载式通过配置文件决定,而非程序写定。并且采用了懒加载(Lazy load)的机制,即如果发布的服务没有模块调用,则不生成相应的真正的服务,直到至少有一个模块调用,才产生真正的服务。由此可知,实施本发明使得服务的发布、使用更为灵活,并且由于使用了懒加载的机制,减少了系统启动时消耗的时间和减少了内存的使用。
服务的使用者在发布模块的时候并不需要检查其依赖服务的存在性,只有服务的使用者真正使用依赖的服务或程序框架检测时才会去检查依赖服务是否存在,如果存在,则服务使用者正常处理;如果服务不存在,则由运行期的异常控制,使得依赖该服务的部分应用不可以使用,并通知用户或系统做相应的处理。这里可以采用不同的策略,可以采用模块检测相应依赖的服务是否存在,并且屏蔽对用户暂时不可以使用的功能,也可以提示用户安装所依赖的模块,但并不对功能进行屏蔽。
以下是本发明中的客户端访问服务端的工作流程,如图11示出的服务端与客户端进行信息交互的流程图。当客户端的用户请求一个特定地址的访问,首先需要通过过滤器判断其是否具有访问相应URL(Uniform ResourceLocator,简称URL)的权限,如果没有则返回错误页面,如果具有相应的权限,则接受URL请求并将该请求转发到转发控制器处理(这部分流程不是确定的,安全的判断可以不通过过滤器来处理,而把它放在转发控制器中处理,但在过滤器中处理是较为通用的方法)。转发控制器根据用户访问请求的地址,在开放式服务网关服务中查找处理该请求地址的服务名,如果查找失败,则进行相应的错误处理;如果查找成功,则取得相应的服务,并由该服务处理用户的业务请求,处理用户的请求完毕后,仍旧交由转发控制器处理,然后由转发控制器根据查找返回的页面将处理的结果转发到相应的结果页面,并显示给用户。
综上所述,由于本发明是基于MVC架构,使得模型层、视图层以及控制层分离,对于开发人员是透明的,熟悉MVC架构的开发人员不需要或仅仅需要很少的培训就可以使用,从而也使得热部署更加方便、高效。
Claims (15)
1.一种实现热部署的方法,其特征在于,所述方法包括下列步骤:
a、开放式服务网关接收服务请求;
b、调用所述开放式服务网关中与所述服务请求对应的一个或多个业务逻辑模块,所述业务逻辑模块加载于所述开放式服务网关的各个子模块中;
c、根据所述服务请求对所述的一个或多个子模块进行处理。
2.根据权利要求1所述的方法,其特征在于,在执行所述步骤a之前包括下列步骤:
a01、在Web服务端的Web应用上加载所述开放式服务网关;
a02、将所述业务逻辑模块作为Web模型层在所述开放式服务网关中装载;及
a03、所述业务逻辑模块对外提供的服务作为服务注册到所述开放式服务网关中。
3.根据权利要求2所述的方法,其特征在于,所述步骤a具体包括:
a1、所述Web服务端的Web视图层将接收到的服务请求转发给所述Web服务端的Web控制层;
a2、所述Web控制层将接收到的用户请求转发给所述开放式服务网关。
4.根据权利要求2所述的方法,其特征在于,所述步骤b具体包括:
将所述业务逻辑模块包含至少一个以上的Web模型层模块并注册到所述开放式服务网关上,每个所述Web模型层模块作为所述开放式服务网关的一个子模块。
5.根据权利要求2所述的方法,其特征在于,所述步骤c具体包括:
由所述Web模型层中相应的所述Web模型层模块对所述用户请求进行处理。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述Web模型层模块通过所述开放式服务网关的消息传递模块与其他的非Web模型层模块进行通信。
7.根据权利要求6所述的方法,其特征在于,启动所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的启动所述Web模型层模块的请求后,通知所述开放式服务网关启动对应的子模块,启动成功后,所述模块热部署服务重新加载相关的配置、资源文件。
8.根据权利要求6所述的方法,其特征在于,停止所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的停止所述Web模型层模块的请求后,通知所述开放式服务网关停止对应的子模块,停止成功后,所述模块热部署服务重新加载相关的配置、资源文件。
9.根据权利要求6所述的方法,其特征在于,部署新的所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的指定安装新的所述Web模型层模块的请求后,通知所述开放式服务网关安装并启动对应的子模块并设置启动的级别,启动成功后,所述模块热部署服务重新加载新添加的相关的配置、资源文件。
10.根据权利要求6所述的方法,其特征在于,更新所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的指定安装新的所述Web模型层模块的请求后,若更新子模块,则通知所述开放式服务网关安装并启动对应的子模块,启动成功后,所述模块热部署服务重新加载新添加的相关的配置、资源文件;若更新资源、配置文件或静态文件,则进行文件的复制和重新加载配置文件的操作。
11.根据权利要求6所述的方法,其特征在于,卸载所述Web模型层模块的步骤具体包括:
模块热部署服务接受到用户的卸载所述Web模型层模块的请求后,通知所述开放式服务网关卸载对应的子模块,卸载成功后,所述模块热部署服务重新加载相关的配置、资源文件并删除所述Web模型层模块相关的静态文件。
12.根据权利要求7-11任一项所述的方法,其特征在于,所述Web模型层模块之间的调用采用基于声明服务的懒加载机制。
13.一种可热部署的系统,其特征在于,所述系统包括:
请求单元,用于接收用户的服务请求,并将所述服务请求进行转发;
开放式服务网关,用于接收所述服务请求,该开放式服务网关包含多个子模块,所述每个子模块加载有一个业务逻辑模块,所述开放式服务网关根据接收的所述服务请求,调用与所述服务请求对应的一个子模块进行处理。
14.根据权利要求13所述的系统,其特征在于,所述开放式服务网关还包括消息传递模块,所述业务逻辑模块通过消息传递模块与其他的非业务逻辑模块进行通信。
15.根据权利要求13所述的系统,其特征在于,所述请求单元包括:视图单元和控制单元,所述视图单元用于用户将服务请求通过web界面发出,所述控制单元用于接收所述服务请求并将所述服务请求进行控制转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610123883A CN101192937B (zh) | 2006-11-24 | 2006-11-24 | 一种可热部署的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610123883A CN101192937B (zh) | 2006-11-24 | 2006-11-24 | 一种可热部署的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101192937A true CN101192937A (zh) | 2008-06-04 |
CN101192937B CN101192937B (zh) | 2010-05-12 |
Family
ID=39487711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610123883A Active CN101192937B (zh) | 2006-11-24 | 2006-11-24 | 一种可热部署的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101192937B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103380593A (zh) * | 2012-12-22 | 2013-10-30 | 华为技术有限公司 | 一种在系统升级过程中对业务进行处理的方法、装置和设备 |
CN103473300A (zh) * | 2013-09-09 | 2013-12-25 | 北京思特奇信息技术股份有限公司 | 一种功能代码文件的自动发布方法及系统 |
CN103677845A (zh) * | 2013-12-24 | 2014-03-26 | 广联达软件股份有限公司 | 一种网站应用部署方法 |
US8762983B2 (en) | 2010-02-26 | 2014-06-24 | Alibaba Group Holding Limited | Hot deployment of software |
CN104182241A (zh) * | 2013-05-24 | 2014-12-03 | 华为终端有限公司 | 一种网页应用程序更新方法及通信设备 |
CN105278962A (zh) * | 2015-11-04 | 2016-01-27 | 北京星网锐捷网络技术有限公司 | 应用程序及数据库的热部署方法及装置 |
CN105955714A (zh) * | 2016-04-15 | 2016-09-21 | 北京海尔广科数字技术有限公司 | 混合开发前端mvc框架实现方法和系统 |
CN106506197A (zh) * | 2016-10-19 | 2017-03-15 | 北京邦天信息技术有限公司 | 一种管理核心业务平台的方法和装置 |
CN106656638A (zh) * | 2017-02-24 | 2017-05-10 | 济南浪潮高新科技投资发展有限公司 | 一种设备热部署的方法 |
CN106844428A (zh) * | 2016-12-12 | 2017-06-13 | 安徽四创电子股份有限公司 | 一种基于RESTful接口的前端MVC管理平台设计方法 |
CN106888244A (zh) * | 2016-06-02 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种业务处理方法及装置 |
CN107239350A (zh) * | 2016-03-28 | 2017-10-10 | 中国电信股份有限公司 | 用于调用网关能力的方法和系统 |
CN107743145A (zh) * | 2017-10-31 | 2018-02-27 | 山东开创云软件有限公司 | 一种基于java web的热部署实现方法 |
CN107959718A (zh) * | 2017-11-17 | 2018-04-24 | 西北工业大学 | 一种云计算环境下企业级应用软件的微服务架构 |
CN108616597A (zh) * | 2018-05-09 | 2018-10-02 | 四川华创世纪科技有限公司 | 一种实现服务永不中断的分布式运行方法 |
CN109274731A (zh) * | 2018-09-04 | 2019-01-25 | 北京京东金融科技控股有限公司 | 基于多租户技术的web服务的部署、调用方法和装置 |
CN109660618A (zh) * | 2015-03-27 | 2019-04-19 | 林胜雄 | 一种多重分流策略的负载平衡分流器及其方法 |
CN109800013A (zh) * | 2019-01-25 | 2019-05-24 | 上海创景信息科技有限公司 | 服务器应用功能热扩展的方法和系统及可读存储介质 |
CN110995494A (zh) * | 2019-12-10 | 2020-04-10 | 成都九洲电子信息系统股份有限公司 | 热部署包制作及利用热部署包对服务器进行升级的方法 |
CN111949286A (zh) * | 2019-05-14 | 2020-11-17 | 中国移动通信有限公司研究院 | 一种升级方法、装置、设备及计算机可读存储介质 |
CN112035174A (zh) * | 2019-05-16 | 2020-12-04 | 杭州海康威视数字技术股份有限公司 | 运行web服务的方法、装置及计算机存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7325047B2 (en) * | 2001-05-23 | 2008-01-29 | International Business Machines Corporation | Dynamic undeployment of services in a computing network |
CN100353713C (zh) * | 2005-12-26 | 2007-12-05 | 北京航空航天大学 | 可信的远程服务热部署方法 |
-
2006
- 2006-11-24 CN CN200610123883A patent/CN101192937B/zh active Active
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762983B2 (en) | 2010-02-26 | 2014-06-24 | Alibaba Group Holding Limited | Hot deployment of software |
CN103380593A (zh) * | 2012-12-22 | 2013-10-30 | 华为技术有限公司 | 一种在系统升级过程中对业务进行处理的方法、装置和设备 |
WO2014094315A1 (zh) * | 2012-12-22 | 2014-06-26 | 华为技术有限公司 | 在系统升级过程中对业务进行处理的方法、装置和设备 |
CN103380593B (zh) * | 2012-12-22 | 2016-03-09 | 华为技术有限公司 | 一种在系统升级过程中对业务进行处理的方法、装置和设备 |
CN104182241A (zh) * | 2013-05-24 | 2014-12-03 | 华为终端有限公司 | 一种网页应用程序更新方法及通信设备 |
CN103473300A (zh) * | 2013-09-09 | 2013-12-25 | 北京思特奇信息技术股份有限公司 | 一种功能代码文件的自动发布方法及系统 |
CN103677845A (zh) * | 2013-12-24 | 2014-03-26 | 广联达软件股份有限公司 | 一种网站应用部署方法 |
CN103677845B (zh) * | 2013-12-24 | 2017-02-15 | 广联达软件股份有限公司 | 一种网站应用部署方法 |
CN109660618A (zh) * | 2015-03-27 | 2019-04-19 | 林胜雄 | 一种多重分流策略的负载平衡分流器及其方法 |
CN105278962A (zh) * | 2015-11-04 | 2016-01-27 | 北京星网锐捷网络技术有限公司 | 应用程序及数据库的热部署方法及装置 |
CN107239350A (zh) * | 2016-03-28 | 2017-10-10 | 中国电信股份有限公司 | 用于调用网关能力的方法和系统 |
CN107239350B (zh) * | 2016-03-28 | 2020-07-07 | 中国电信股份有限公司 | 用于调用网关能力的方法和系统 |
CN105955714A (zh) * | 2016-04-15 | 2016-09-21 | 北京海尔广科数字技术有限公司 | 混合开发前端mvc框架实现方法和系统 |
CN106888244A (zh) * | 2016-06-02 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种业务处理方法及装置 |
CN106506197A (zh) * | 2016-10-19 | 2017-03-15 | 北京邦天信息技术有限公司 | 一种管理核心业务平台的方法和装置 |
CN106506197B (zh) * | 2016-10-19 | 2022-04-15 | 北京邦天信息技术有限公司 | 一种管理核心业务平台的方法和装置 |
CN106844428A (zh) * | 2016-12-12 | 2017-06-13 | 安徽四创电子股份有限公司 | 一种基于RESTful接口的前端MVC管理平台设计方法 |
CN106656638A (zh) * | 2017-02-24 | 2017-05-10 | 济南浪潮高新科技投资发展有限公司 | 一种设备热部署的方法 |
CN107743145A (zh) * | 2017-10-31 | 2018-02-27 | 山东开创云软件有限公司 | 一种基于java web的热部署实现方法 |
CN107959718B (zh) * | 2017-11-17 | 2020-10-02 | 西北工业大学 | 一种云计算环境下企业级应用软件的微服务架构 |
CN107959718A (zh) * | 2017-11-17 | 2018-04-24 | 西北工业大学 | 一种云计算环境下企业级应用软件的微服务架构 |
CN108616597A (zh) * | 2018-05-09 | 2018-10-02 | 四川华创世纪科技有限公司 | 一种实现服务永不中断的分布式运行方法 |
CN108616597B (zh) * | 2018-05-09 | 2021-06-15 | 四川华创世纪科技有限公司 | 一种实现服务永不中断的分布式运行方法 |
CN109274731A (zh) * | 2018-09-04 | 2019-01-25 | 北京京东金融科技控股有限公司 | 基于多租户技术的web服务的部署、调用方法和装置 |
CN109274731B (zh) * | 2018-09-04 | 2020-07-31 | 京东数字科技控股有限公司 | 基于多租户技术的web服务的部署、调用方法和装置 |
CN109800013A (zh) * | 2019-01-25 | 2019-05-24 | 上海创景信息科技有限公司 | 服务器应用功能热扩展的方法和系统及可读存储介质 |
CN109800013B (zh) * | 2019-01-25 | 2022-04-19 | 上海创景信息科技有限公司 | 服务器应用功能热扩展的方法和系统及可读存储介质 |
CN111949286A (zh) * | 2019-05-14 | 2020-11-17 | 中国移动通信有限公司研究院 | 一种升级方法、装置、设备及计算机可读存储介质 |
CN112035174A (zh) * | 2019-05-16 | 2020-12-04 | 杭州海康威视数字技术股份有限公司 | 运行web服务的方法、装置及计算机存储介质 |
CN110995494A (zh) * | 2019-12-10 | 2020-04-10 | 成都九洲电子信息系统股份有限公司 | 热部署包制作及利用热部署包对服务器进行升级的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101192937B (zh) | 2010-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101192937B (zh) | 一种可热部署的方法及其系统 | |
CN1157654C (zh) | 在应用程序模块不工作时自动卸载的方法和装置 | |
US6996818B2 (en) | Update system for facilitating software update and data conversion in an electronic device | |
CN100580633C (zh) | 一种维护计算装置中的应用程序的方法 | |
US7171661B1 (en) | Realtime configuration updates and software distribution to active client positions | |
TW459202B (en) | Transparent loading of resources from read-only memory for an application program | |
US20060277537A1 (en) | Deployment of containers and container extensions in a modular code runtime platform through a runtime platform extension point | |
US20060253548A1 (en) | Method and system for hosting and executing a component application | |
CN105094922A (zh) | 应用程序免安装运行控制方法及其装置 | |
CN102360308A (zh) | 组件的分布式部署系统和方法 | |
US8087035B2 (en) | Web container extension architecture | |
US8924947B2 (en) | Direct deployment of static content | |
CN101521600B (zh) | 一种网关设备中业务控制方法和网关设备 | |
CN101221498B (zh) | 一种对业务模块进行管理的系统及方法 | |
CN103026338A (zh) | 用于执行综合服务的系统、方法和设备 | |
CN100442897C (zh) | 终端与服务器通信的方法、系统和装置 | |
EP2097848A2 (en) | Method, system and computer program for monitoring components in a service framework | |
CN101179414A (zh) | 一种在上级网管中集成下级网管功能的方法 | |
CN101236510B (zh) | 一种ejb集群的失败恢复处理方法及系统 | |
CN102200918A (zh) | 服务器部署应用程序的方法及装置 | |
CN100428151C (zh) | 大规模并发联机交易中基于版本的c/c++组件热插拔方法 | |
CN110389791B (zh) | 组件调度方法、装置、设备及存储介质 | |
CN103064676A (zh) | 一种对开放服务网关中组件的控制方法 | |
CN108228192A (zh) | 一种面向服务的机载软件的动态管理的实现方法 | |
CN101894031A (zh) | 普适服务的动态更新方法及其更新系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |