发明内容
本发明解决的技术问题是提供一种基于服务分发网络的服务系统和服务分发方法,能够提高服务器利用率,进而降低成本。
为解决上述技术问题,本发明提供了一种基于服务分发网络的服务分发方法,所述方法包括:
复制入服务软件/组件到分发服务器后,向定位分发系统汇报;
所述定位分发系统根据所述汇报的内容,更新维护的服务软件/组件信息;
客户机向所述定位分发系统请求定位服务时,所述定位分发系统根据维护的所述服务软件/组件信息为所述客户机定位访问的分发服务器。
进一步地,所述复制入服务软件/组件到分发服务器,是从源服务器或其他已复制入软件/组件的分发服务器复制。
进一步地,复制入服务软件/组件到分发服务器后,由所述分发服务器、或者复制出所述软件/组件的源服务器或分发服务器向所述定位分发系统进行汇报;
汇报的内容包括:复制的软件/组件的信息、复制入分发服务器的信息、和/或复制出源服务器或分发服务器的信息。
进一步地,所述定位分发系统维护的所述服务软件/组件信息为服务软件/组件列表,所述服务软件/组件列表中包含各服务软件/组件所部署的分发服务器的标识或地址信息。
进一步地,所述方法还包括:
当分发服务器复制入的服务软件/组件与本分发服务器的其他服务软件/组件之间存在关联关系时,所述分发服务器向本分发服务器的所述其他服务软件/组件进行交互,以建立所述服务软件/组件间的关联关系;
当分发服务器复制入的服务软件/组件与本分发服务器之外的其他服务软件/组件之间存在关联关系时,所述分发服务器通过向所述定位分发系统查询所述服务软件/组件列表,向部署相应服务软件/组件的分发服务器进行交互,以建立所述服务软件/组件间的关联关系。
进一步地,所述方法还包括:
分发服务器向所述定位分发系统汇报本分发服务器的信息,所述本分发服务器的信息至少包括本分发服务器的IP地址信息,或者还包括本分发服务器的位置信息、和/或负载信息;
所述定位分发系统根据各分发服务器所汇报的内容,维护分发服务器列表,所述分发服务器列表中包含各分发服务器的信息。
进一步地,所述复制入服务软件/组件到分发服务器的决策,包括以下情形:
所述定位分发系统根据维护的所述分发服务器列表,决策将服务软件/组件复制入的分发服务器;
或者,所述源服务器向所述定位分发系统查询所述分发服务器列表,并决策将服务软件/组件复制入的分发服务器;
或者,分发服务器向所述定位分发系统请求复制服务软件/组件,所述定位分发系统根据所述分发服务器列表,决策复制出的源服务器或者其他分发服务器。
进一步地,根据源服务器和各分发服务器的负载信息、和/或分发服务器间距离、和/或服务质量要求,发起所述复制入服务软件/组件到分发服务器的决策。
本发明还提供了一种基于服务分发网络的服务系统,包括源服务器、分发服务器、定位分发系统,
所述源服务器用于,提供服务软件/组件;
所述分发服务器用于,从源服务器或其他分发服务器复制入服务软件/组件时、或者向其他分发服务器提供服务软件/组件时,向所述定位分发系统汇报;
所述定位分发系统用于,根据接收到的汇报的内容,更新维护的服务软件/组件信息;以及,接收到客户机定位服务的请求时,根据维护的所述服务软件/组件信息为所述客户机定位访问的分发服务器。
进一步地,所述分发服务器用于,复制入或者复制出服务软件/组件时,向所述定位分发系统汇报以下内容:复制的软件/组件的信息、复制入分发服务器的信息、和/或复制出源服务器或分发服务器的信息;
所述定位分发系统用于,采用服务软件/组件列表的方式维护所述服务软件/组件信息为,所述服务软件/组件列表中包含各服务软件/组件所部署的分发服务器的标识或地址信息。
进一步地,所述分发服务器还用于,当复制入的服务软件/组件与本分发服务器的其他服务软件/组件之间存在关联关系时,向本分发服务器的所述其他服务软件/组件进行交互,以建立所述服务软件/组件间的关联关系;
当复制入的服务软件/组件与本分发服务器之外的其他服务软件/组件之间存在关联关系时,通过向所述定位分发系统查询所述服务软件/组件列表,向部署相应服务软件/组件的分发服务器进行交互,以建立所述服务软件/组件间的关联关系。
进一步地,所述分发服务器还用于,向所述定位分发系统汇报本分发服务器的信息,所述本分发服务器的信息至少包括本分发服务器的IP地址信息,或者还包括本分发服务器的位置信息、和/或负载信息;
所述定位分发系统还用于,根据各分发服务器所汇报的内容,维护分发服务器列表,所述分发服务器列表中包含各分发服务器的信息。
进一步地,服务系统还包括所述定位分发系统中的复制决策模块,
所述复制决策模块用于,根据源服务器和各分发服务器的负载信息、和/或分发服务器间距离、和/或服务质量要求,发起所述复制入服务软件/组件到分发服务器的决策。
进一步地,所述复制决策模块用于,根据维护的所述分发服务器列表,决策将服务软件/组件复制入的分发服务器;
或者,接收分发服务器发起的复制服务软件/组件请求,并根据维护的所述分发服务器列表,决策复制出的源服务器或者其他分发服务器。
进一步地,服务系统还包括所述源服务器中的复制决策模块,
所述复制决策模块用于,根据源服务器和各分发服务器的负载信息、和/或分发服务器间距离、和/或服务质量要求,发起复制入服务软件/组件到分发服务器的决策;
且所述复制决策模块是通过向所述定位分发系统查询所述分发服务器列表,决策将服务软件/组件复制入的分发服务器。
与现有技术相比,本发明至少具有如下有益效果:
1、服务根据客户机和请求的分布自动分发,提高服务质量,降低维护和管理成本;
2、服务分发网络可供多个服务提供商的多个服务共享服务分发网络,从而可以提高服务器利用率,进一步降低成本。
具体实施方式
针对现有镜像服务器方案成本高等缺点,本发明借鉴内容分发网络的思想,提出了服务分发网络的概念:通过一个由第三方服务分发提供商或服务提供商自身建立的服务分发网络来扩展服务系统,自动化地将服务扩展部署到服务分发网络的服务器中。该服务分发网络可以让多个服务提供商的多个服务共享服务分发网络,从而可以提高服务器利用率,进一步降低成本。
具体地,本发明提出了一种基于服务分发网络的服务系统,包括:至少一个源服务器、多个分发服务器、多个客户机、服务和分发服务器定位系统(本文中也称作定位分发系统)。
源服务器提供服务软件,可复制服务软件或组件(软件的部分单元)至分发服务器。
分发服务器向服务和分发服务器定位系统汇报分发服务器的信息。
定位分发系统维护服务软件或/和组件信息,例如维护服务软件和/或组件信息列表。此外还可以维护分发服务器信息、例如维护分发服务器列表。
客户机通过服务和分发服务器定位系统定位提供服务的节点。客户机访问部署了服务软件或组件的源服务器或分发服务器,以使用服务。
其中,分发服务器向服务和分发服务器定位系统汇报的信息包括下列一种或多种:负载、部署的软件/组件、位置等。
所述服务软件或/和组件信息,包括:软件和/组件的所部署的位置,即部署在哪些分发服务器上。
此外,分发服务器也间可复制服务软件或组件。
此外,客户机也可直接访问源服务器,以使用服务。
此外,存在关联关系的服务软件/组件可通过服务和分发服务器定位系统定位软件/组件列表,定位相应的软件/组件建立连接,进行交互。定位可基于节点负载、节点间距离等因素。其中,对于某些服务,服务软件/组件可能只有一个,此时则不需与其他软件交互。
服务软件/组件最初只部署于源服务器,为了满足客户机需要,随着客户机的分布和服务请求量分布而被复制至分发服务器。
软件/组件复制的决策和发起者可以是服务和分发服务器定位系统、源服务器、缓存服务器、客户机中的一者或多者。发起复制的决策因素可以是服务器负载、节点间距离、服务质量要求(如通过时延、带宽来衡量)等。例如:复制入的分发服务器,可以考虑由客户机和服务器间距离,比如某个城市访问某服务用户很多,而该城市的服务器没有部署该服务。从哪个服务器复制,则考虑服务器间距离。
本发明还提出了一种基于服务分发网络的服务方法,适用于包含至少一个源服务器、多个分发服务器、多个客户机、服务和分发服务器定位系统,包括如下步骤:
服务软件/组件复制入分发服务器;
复制入或复制出软件/组件的服务器向服务和分发服务器定位系统汇报服务软件/组件复制成功;
服务和分发服务器定位系统更新服务软件/组件列表和信息记录。
进一步地,服务软件/组件复制入分发服务器时,可从源服务器或其他分发服务器复制。
进一步地,上述方法还包括:软件/组件复制入分发服务器后,定位相关联的软件/组件建立连接。
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
由于软件/组件的运行一般都依赖于特定的环境(操作系统、硬件平台等)。为使得软件/组件复制后仍能正常运行,可以采用EJB、CORBA、虚拟机等技术使得软件/组件复制到不同服务器后运行环境保持不变。
如图2所示,本发明实施例的基于服务分发网络的服务系统主要包括:至少一个源服务器、多个分发服务器、多个客户机、定位分发系统。
源服务器提供服务软件,可复制服务软件或组件(软件的部分单元)至分发服务器。
分发服务器用于,从源服务器或其他分发服务器复制入服务软件/组件时、或者向其他分发服务器提供服务软件/组件时,向定位分发系统汇报状态。
定位分发系统维护分发服务器列表和服务软件或/和组件列表,分别用于记录分发服务器信息、服务软件和/或组件信息。接收到客户机定位服务的请求时,根据维护的服务软件/组件列表为客户机定位访问的分发服务器。
客户机通过定位分发系统定位提供服务的节点(即部署了服务软件/组件的节点),此处的节点包括源服务器或分发服务器。客户机访问部署了服务软件或组件的分发服务器,以使用服务。
服务软件/组件最初只部署于源服务器,为了满足客户机需要,随着客户机的分布和服务请求量分布而被复制至分发服务器。例如,当某个地区或整网服务请求量上升,而该地区或整网服务能力不足时,则增加该地区或整网服务部署数。
某些软件/组件的组建需要与其存在关联关系的其他软件/组件的配合,复制到分发服务器后,可通过定位分发系统定位其他软件/组件的列表,挑选合适的软件/组件建立连接,进行交互。挑选可基于节点负载、节点间距离等因素。
进一步地,分发服务器用于,复制入或者复制出服务软件/组件时,向定位分发系统汇报以下内容:复制的软件/组件的信息、复制入分发服务器的信息、和/或复制出源服务器或分发服务器的信息;
定位分发系统用于,采用服务软件/组件列表的方式维护服务软件/组件信息为,服务软件/组件列表中包含各服务软件/组件所部署的分发服务器的标识或地址信息。
进一步地,分发服务器还用于,当复制入的服务软件/组件与本分发服务器的其他服务软件/组件之间存在关联关系时,向本分发服务器的其他服务软件/组件进行交互,以建立服务软件/组件间的关联关系;
当复制入的服务软件/组件与本分发服务器之外的其他服务软件/组件之间存在关联关系时,通过向定位分发系统查询服务软件/组件列表,向部署相应服务软件/组件的分发服务器进行交互,以建立服务软件/组件间的关联关系。
进一步地,分发服务器还用于,向定位分发系统汇报本分发服务器的信息,本分发服务器的信息至少包括本分发服务器的IP地址信息,或者还包括本分发服务器的位置信息、和/或负载信息;
定位分发系统还用于,根据各分发服务器所汇报的内容,维护分发服务器列表,分发服务器列表中包含各分发服务器的信息。
进一步地,上述的服务系统还包括定位分发系统中的复制决策模块,
复制决策模块用于,根据源服务器和各分发服务器的负载信息、和/或分发服务器间距离、和/或服务质量要求,发起复制入服务软件/组件到分发服务器的决策。
进一步地,复制决策模块用于,根据维护的分发服务器列表,决策将服务软件/组件复制入的分发服务器;
或者,接收分发服务器发起的复制服务软件/组件请求,并根据维护的分发服务器列表,决策复制出的源服务器或者其他分发服务器。
或者,上述的服务系统还包括源服务器中的复制决策模块,
复制决策模块用于,根据源服务器和各分发服务器的负载信息、和/或分发服务器间距离、和/或服务质量要求,发起复制入服务软件/组件到分发服务器的决策;
且复制决策模块是通过向定位分发系统查询分发服务器列表,决策将服务软件/组件复制入的分发服务器。
本发明中的软件/组件关联关系如图3所示。假设有某服务由A、B、C三种软件/组件协作完成,三种软件/组件运行于源服务器上。其中,A为与客户端交互的前台处理软件模块,B为业务逻辑模块,C为数据处理模块。访问服务的客户端运行于客户机上。客户端只直接与A交互来访问服务,A需要与B交互,B需要与C交互。A可以找到本服务器或其它服务器上的B进行交互。同理,B可以找到本服务器或其它服务器上的C进行交互。
图4为本发明实施例的服务分发方法的流程示意图,本实施例中,由复制入软件/组件的分发服务器汇报状态,如图4所示,该流程主要包括以下步骤:
步骤401,软件/组件从一台源服务器或分发服务器复制到一台分发服务器;
步骤402,复制入软件/组件的分发服务器向服务和分发服务器定位系统汇报新软件/组件添加到本分发服务器;
步骤403,服务和分发服务器定位系统更新软件/组件的位置信息;
步骤404,服务和分发服务器定位系统回复汇报成功响应。
图5为本发明另一实施例的服务分发的流程示意图,本实施例中,由复制出软件/组件的分发服务器汇报状态,如图5所示,该流程主要包括以下步骤:
步骤501,软件/组件从一台源服务器或分发服务器复制到一台分发服务器;
步骤502,复制出软件/组件的源服务器或分发服务器向服务和分发服务器定位系统汇报新软件/组件添加到复制入的分发服务器;
步骤503,服务和分发服务器定位系统更新软件/组件的位置信息;
步骤504,服务和分发服务器定位系统回复汇报成功响应。
以上仅为本发明的优选实施案例而已,并不用于限制本发明,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。