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

文档序号:8339415阅读:来源:国知局
象以及各服务对应的接口名称;以及通知所有已有组件所述新组件的各创建对象,以使需要调用所述新组件的已有组件根据所述新组件的各创建对象,建立与所述新组件之间的调用关系。
[0038]作为再一种处理方式,所述处理模块还用于:
[0039]接收用于指示删除所述客户端中已有组件的指令,并确定待删除组件所实现的各服务对应的接口名称;根据所述待删除组件的各服务对应的接口名称,确定用于创建所述待删除组件的各服务的实例的创建对象;以及指示所述待删除组件的各创建对象清除自身所创建的所有实例,且,通知除所述待删除组件之外的已有组件释放与所述待删除组件的各创建对象相关的资源。
[0040]在实施中,所述客户端还包括:
[0041]存储模块,用于存储有所述已有组件所实现的各服务对应的接口名称和用于创建所述已有组件所实现的各服务的实例的创建对象,以及所述新组件所实现的各服务对应的接口名称和用于创建所述新组件所实现的各服务的实例的创建对象;其中,每个组件被加载后,将用于创建该组件所实现的各服务的实例的创建对象以及各服务对应的接口名称注册到客户端,所述组件包括客户端的已有组件和所述新组件。
【附图说明】
[0042]图1为本发明实施例提供的一种客户端进行升级的方法示意图;
[0043]图2为本发明实施例提供的客户端中的已有组件进行升级的方法示意图;
[0044]图3为本发明实施例提供的在客户端中增加新组件的方法示意图;
[0045]图4为本发明实施例提供的删除客户端中已有组件的方法示意图;
[0046]图5为本发明实施例提供的一种客户端的示意图。
【具体实施方式】
[0047]本发明实施例提供的客户端以及该客户端进行升级的方法,优选适用于采用C/S结构的客户端,当然也适用于采用其他结构的客户端。本发明实施例中,客户端采用组件化,该客户端包括多个组件,每个组件类似于一个应用程序,可以独立运行使用,也可以在运行时与其他组件连接起来构成一个应用程序;每个组件可以实现多个服务(即组件实现的服务是指该组件向用户所提供的服务),其中,每个服务对应一个接口,可以通过与每个服务对应的接口调用相应的服务,且每个服务绑定一个用于创建该服务的实例的创建对象,该创建对象能够在客户端创建用于实现该服务的所有实例;一般情况下,一个组件对应一个服务。客户端按照每个组件实现的每个服务对应的接口名称,来调用该服务的创建对象,根据该服务对应的接口名称加载该组件的相应服务,各组件之间相互调用时,也是根据接口名称来查询是否有自身需要调用的服务。
[0048]在实施中,客户端中的每个已有组件都会将用于创建该已有组件所实现的各服务的实例的创建对象以及各服务对应的接口名称,注册到客户端(即客户端系统),这样客户端就能够获取每个已有组件所实现的各服务的创建对象以及各服务对应的接口名称;
[0049]新组件被加载后,也会将用于创建该新组件所实现的各服务的实例的创建对象以及该服务的接口名称注册到客户端(即客户端系统),这样客户端就能够获取该新组件所所实现的各服务的创建对象以及各服务对应的接口名称。
[0050]相应的,客户端中存储有已有组件所实现的各服务对应的接口名称和用于创建已有组件所实现的各服务的实例的创建对象,以及新组件所实现的各服务对应的接口名称和用于创建新组件所实现的各服务的实例的创建对象。
[0051]具体的,每个组件(包括已有组件和新组件)的每个服务对应的接口名称与用于创建该服务的实例的创建对象一一对应,即一个接口名称对应一个创建对象。
[0052]进一步,客户端可以获取各组件(包括已有组件和新组件)所实现的各服务的创建对象,并将各组件的各创建对象通知给已有组件,尤其是与该组件相关联的已有组件(如订阅了该组件的任一服务的组件),以使已有组件获知自身所需要的服务已经被某个组件实现了,然后,已有组件就可以根据客户端通知的创建对象创建所需的实例,以建立组件间的关系。
[0053]下面结合说明书附图对本发明实施例作进一步详细描述。
[0054]参见图1所示,本发明实施例提供了一种客户端进行升级的方法,在客户端运行过程中,该方法包括以下步骤:
[0055]步骤11、客户端加载新组件,并判断新组件是对该客户端的已有组件的更新或是该客户端的新增组件。
[0056]具体的,在新组件相关的文件下载到客户端后,客户端加载该新组件,并判断该新组件是对该客户端的已有组件的更新或是该客户端的新增组件;
[0057]由于每个组件(包括客户端的已有组件以及新组件)均具有相应的组件信息,该组件信息至少包括:该组件所实现的接口、该组件的编号以及该组件的版本信息。新组件被加载时,客户端可以根据该新组件对应的组件信息以及该客户端中已有组件对应的组件信息,判断新组件是对该客户端的已有组件的更新或是该客户端的新增组件;具体为:
[0058]若新组件的编号与该客户端中任一已有组件的编号相同且版本信息不同(即新组件的版本信息高于该已有组件的版本信息),则客户端判定该新组件是对该客户端的已有组件的更新;
[0059]若新组件的编号与该客户端中所有已有组件的编号均不相同,则客户端判定该新组件是该客户端的新增组件,即对该客户端系统功能的扩展。
[0060]步骤12、客户端根据判断结果,对新组件以及与该新组件相关的已有组件进行相应处理,以完成该客户端的升级过程。
[0061]本发明实施例中,在运行过程中,客户端加载新组件,判断新组件是对客户端的已有组件的更新或是客户端的新增组件,并根据判断结果,对新组件以及与该新组件相关的已有组件进行相应处理,以完成该客户端的升级过程,从而在不需要关闭和重启客户端的情况下,能够完成客户端的升级过程,提高了用户体验。
[0062]作为一种处理方式,步骤11中,若判断结果为新组件是对客户端的已有组件的更新,则客户端将该已有组件确定为待升级组件,进一步,参见图2所示,步骤12中,客户端执行如下处理过程:
[0063]步骤121A、客户端根据待升级组件所实现的各服务对应的接口,分别确定用于创建待升级组件的各服务的实例的创建对象。
[0064]由于客户端中的每个已有组件已将自身所实现的各服务的创建对象以及对应的接口名称注册到了客户端,优选的,客户端中存储有各已有组件所实现的各服务的创建对象以及对应的接口名称。
[0065]本步骤中,客户端根据待升级组件所实现的各服务的接口名称,获取用于创建待升级组件所实现的各服务的实例的创建对象。
[0066]步骤122A、客户端指示待升级组件的各创建对象清除自身所创建的所有实例,且客户端通知除该待升级组件之外的已有组件释放与待升级组件的各创建对象相关的资源。
[0067]本步骤中,客户端先指示待升级组件的各创建对象清除自身所创建的所有实例,在确定该待升级组件的各创建对象完成自我销毁后,客户端再通知除该待升级组件之外的已有组件释放与待升级组件的各创建对象相关的资源;或者,
[0068]客户端先通知除该待升级组件之外的已有组件释放与待升级组件的各创建对象相关的资源,再指示待升级组件的各创建对象清除自身所创建的所有实例,以完成该待升级组件的各创建对象完成自我销毁。
[0069]本步骤中,优选的,待升级组件的各创建对象清除完所创建的所有实例后,待升级组件撤销对客户端(即客户端系统)的注册,即待升级组件通知客户端删除待升级组件已注册的各创建对象。
[0070]进一步,本步骤还包括:客户端删除自身存储的待升级组件已注册的各创建对象。
[0071]该方式下,由于新组件是对该待升级组件的更新,因此,客户端仅需要删除该待升级组件已注册的各创建对象,不需要删除该待升级组件已注册的接口名称,此时,该待升级组件已注册的接口名称
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1