一种客户端以及该客户端进行升级的方法

文档序号:8339415阅读:203来源:国知局
一种客户端以及该客户端进行升级的方法
【技术领域】
[0001]本发明涉及安防技术领域,特别涉及一种客户端以及该客户端进行升级的方法。
【背景技术】
[0002]目前,安防领域中的视频监控系统常采用的结构模式包括:客户机/服务器(Client/Server, C/S)结构和浏览器/服务器(Brower/Server, B/S)结构来实现。其中,C/S结构是建立在局域网的基础上的,该结构充分利用客户端和服务器端硬件环境的优势,将任务合理分配到客户端和服务器端来实现,形成所谓两层体系结构;B/S结构是建立在广域网的基础上的,该结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(即浏览器)实现,但是主要事务逻辑在服务器端实现,形成所谓三层体系结构。
[0003]C/S结构相比于B/S结构,具有如下优点:
[0004]1、交互性强;在C/S结构中,由于安装了客户端,而客户端具有一套完整的应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
[0005]2、安全性好;由于C/S结构是配对的点对点的结构模式,采用适用于局域网、安全性比较好的网络协议,安全性可以得到较好的保证。
[0006]3、网络通信量少;由于C/S结构在逻辑上只有两层结构,网络通信量只包括Client与Server之间的通信量。
[0007]4、处理速度快;由于C/S结构在逻辑上比B/S结构少一层结构,对于相同的任务,C/S结构完成的速度比B/S结构快,更利于处理大量数据。
[0008]因此,现有的大多数视频监控系统采用C/S结构来实现,该结构安装、运行在客户端的计算机中,通过局域网与后台数据库服务器连接、共享数据,并把原始数据或处理后的数据存储在后台数据库中。
[0009]由于有些应用领域,对视频监控系统中的客户端的实时性要求较高,然而目前客户端在进行升级过程中,必须重新启动才能完成客户端的升级。以现有C/S结构中的客户端中现有功能模块进行升级为例,在下载完更新所需文件后,客户端无法在运行的情况下,把原有的功能模块替换成新的功能模块,原有的功能模块创建的实例对象在客户端系统停止运行前,是不会主动销毁的,而新的功能模块在客户端系统调用前,也不会自动生成,因此,现有C/S结构中的客户端在升级的时候,下载完升级所需的必要文件后,必须重新启动客户端才能替换原有的功能模块,由于客户端比较庞大,重新启动客户端一般需要较长时间。在重新启动期间,客户端无法正常进行监控,造成监控空白,从而可能导致客户损失。
[0010]综上所述,由于现有客户端进行升级时,必须重新启动才能完成客户端的升级,从而造成客户端的监控空白。

【发明内容】

[0011]本发明实施例提供了一种客户端以及该客户端进行升级的方法,用于解决现有客户端进行升级时,必须重新启动才能完成客户端的升级,从而造成客户端的监控空白的问题。
[0012]本发明实施例提供了一种客户端进行升级的方法,在所述客户端运行过程中,该方法包括:
[0013]客户端加载新组件,并判断所述新组件是对所述客户端的已有组件的更新或是所述客户端的新增组件;
[0014]所述客户端根据判断结果,对所述新组件以及与所述新组件相关的已有组件进行处理,以完成所述客户端的升级过程。
[0015]本发明实施例提供的方法,在客户端运行过程中,客户端加载新组件,判断新组件是对客户端的已有组件的更新或是客户端的新增组件;并根据判断结果,对新组件以及与新组件相关的已有组件进行处理,以完成客户端的升级过程,以完成该客户端的升级过程,从而在不需要关闭和重启客户端的情况下,能够完成客户端的升级过程,提高了用户体验。
[0016]作为一种处理方式,若所述新组件是对所述客户端的已有组件的更新,所述客户端将该已有组件确定为待升级组件,并执行如下处理过程:
[0017]所述客户端根据所述待升级组件所实现的各服务对应的接口,分别确定用于创建所述待升级组件的各服务的创建对象;
[0018]所述客户端指示所述待升级组件的各创建对象清除自身所创建的所有实例,且,所述客户端通知除所述待升级组件之外的已有组件释放与所述待升级组件的各创建对象相关的资源;
[0019]所述客户端获取用于创建所述新组件所实现的各服务的实例的创建对象以及各服务对应的接口名称;以及
[0020]所述客户端通知除所述待升级组件之外的已有组件所述新组件的各创建对象,以使之前调用了所述待升级组件的服务的已有组件根据所述新组件所实现的各服务的创建对象,建立与所述新组件之间的调用关系。
[0021]作为另一种处理方式,若所述新组件是所述客户端的新增组件,则客户端执行如下处理过程:
[0022]所述客户端获取用于创建所述新组件所实现的各服务的实例的创建对象以及各服务对应的接口名称;以及
[0023]所述客户端通知所有已有组件所述新组件的各创建对象,以使需要调用所述新组件的已有组件根据所述新组件的各创建对象,建立与所述新组件之间的调用关系。
[0024]作为再一种处理方式,在所述客户端运行过程中,所述方法还包括:
[0025]所述客户端获取用于创建所述新组件所实现的各服务的实例的创建对象以及各服务对应的接口名称;以及
[0026]所述客户端通知所有已有组件所述新组件的各创建对象,以使需要调用所述新组件的已有组件根据所述新组件的各创建对象,建立与所述新组件之间的调用关系。
[0027]在实施中,所述方法还包括:
[0028]所述客户端存储有所述已有组件所实现的各服务对应的接口名称和用于创建所述已有组件所实现的各服务的实例的创建对象,以及所述新组件所实现的各服务对应的接口名称和用于创建所述新组件所实现的各服务的实例的创建对象;
[0029]其中,每个组件被加载后,将用于创建该组件所实现的各服务的实例的创建对象以及各服务对应的接口名称注册到客户端,所述组件包括客户端的已有组件和所述新组件。
[0030]本发明实施例还提供了一种客户端,该客户端处于运行过程中,该客户端包括:
[0031]判断模块,用于加载新组件,并判断所述新组件是对所述客户端的已有组件的更新或是所述客户端的新增组件;
[0032]处理模块,用于根据判断结果,对所述新组件以及与所述新组件相关的已有组件进行相应处理,以完成客户端的升级过程。
[0033]本发明实施例提供的客户端,在运行过程中,加载新组件,判断新组件是对客户端的已有组件的更新或是客户端的新增组件,并根据判断结果,对新组件以及与该新组件相关的已有组件进行相应处理,以完成该客户端的升级过程,从而在不需要关闭和重启客户端的情况下,能够完成客户端的升级过程,提高了用户体验。
[0034]作为一种处理方式,若所述新组件是对所述客户端的已有组件的更新,所述处理模块将该已有组件确定为待升级组件,并执行如下处理过程:
[0035]根据所述待升级组件所实现的各服务对应的接口,分别确定用于创建所述待升级组件的各服务的创建对象;指示所述待升级组件的各创建对象清除自身所创建的所有实例,且,通知除所述待升级组件之外的已有组件释放与所述待升级组件的各创建对象相关的资源;获取用于创建所述新组件所实现的各服务的实例的创建对象以及各服务对应的接口名称;以及通知除所述待升级组件之外的已有组件所述新组件的各创建对象,以使之前调用了所述待升级组件的服务的已有组件根据所述新组件所实现的各服务的创建对象,建立与所述新组件之间的调用关系。
[0036]作为另一种处理方式,若所述新组件是所述客户端的新增组件,则所述处理模块执行如下处理过程:
[0037]获取用于创建所述新组件所实现的各服务的实例的创建对
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1