专利名称:一种分布式系统中服务获取方法
技术领域:
本发明涉及一种服务获取技术,尤其涉及一种分布式系统中服务获取技术。
背景技术:
分布式系统是建立在网络之上的软件系统。在分布式系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无复本、数据存于哪个服务器以及事务在哪个服务器上执行等。中间件是基于分布式处理的软件,它是一种独立的系统软件或服务程序,分布式系统借助中间件在不同的技术之间共享资源,在分布式系统中,中间件位于客户机、服务器的操作系统之上,管理计算机资源和网络通信。由于分布式系统结构越来越复杂,系统中的量测点也越来越多,目前,是通过建立量测点、量测点对应的服务、量测点对应的服务所在服务器地址之间的对应关系,在客户端对某个或某几个量测点提出服务请求时,分别获取相应服务器地址连接相应服务器来获取服务的,这不仅需要建立庞大的关系列表,占用很大的存储空间,而且在庞大的关系列表中获取所要的服务器地址,需要的时间比较长。当关系表中的某个对应关系发生变化时,还要在庞大的关系表中进行修改,这给中间件的管理工作带来了很多不便。这就要求中间件必须具有自主管理能力,以简化系统管理成本。主要体现在:面对新的应用目标和变化的环境,能够自主诊断和恢复、自主优化。因此,在分布式系统中获取服务的过程中,要提高中间件产品的使用便利性,以更好地满足分布式系统中客户端的需要。
发明内容
本发明主要解决的技术问题是提供一种分布式系统中服务获取方法,使得简化了量测点的各服务与服务器之间的对应关系,从而在量测点数量比较庞大的系统中获取量测点的服务时,提高了查找对应服务器的速度,提高了系统的效率,同时,也大大节约了存储空间。为了解决上述技术问题,本发明提供了一种分布式系统中服务获取方法,该分布式系统中包含多个部署对象,每个部署对象包含多个量测点,其特征在于,将属于同一部署对象的各量测点对应的同一服务设置在同一服务器中,该方法包含以下步骤:为每个部署对象中的量测点分配一唯一对应资源标识,该资源标识包含该量测点所属的部署对象标识码和本量测点标识码两部分;对各部署对象对应的不同服务所在的服务器进行注册,保存部署对象、该部署对象对应的各服务、和该部署对象对应的各服务所在服务器之间的对应关系;收到客户端的服务请求时,该服务请求包含多个量测点的同一服务请求,根据服务请求中各量测点的资源标识确定该量测点所属的部署对象,获取该部署对象的该服务所在的服务器地址,并通过该地址连接相应的服务器,从该服务器获取客户端所需的服务,将多个量测点的服务结果整理合并后反馈给该客户端。作为进一步改进,对各部署对象对应的不同服务所在的服务器进行注册的步骤之前,还包含以下步骤:为同一类型服务分配同一服务标识码;在保存对应关系的步骤中,保存部署对象标识码、服务标识码、和服务器地址之间的对应关系。作为进一步改进,对各部署对象对应的不同服务所在的服务器进行注册的步骤中,在资源定位设备上对各部署对象对应的不同服务所在的服务器进行注册;在保存部署对象、该部署对象对应的各服务、和该部署对象对应的各服务所在服务器之间的对应关系的步骤中,由资源定位设备保存对应关系;在获取该部署对象的该服务所在的服务器地址的步骤中,从资源定位设备获取该部署对象对应的该服务所在的服务器地址。作为进一步改进,客户端与中间件相连;在收到客户端的服务请求时,根据服务请求中各量测点的资源标识确定该量测点所属的部署对象的步骤中,由中间件接收客户端的服务请求,根据该请求中量测点的资源标识确定该量测点所属的部署对象;在从资源定位设备获取该部署对象对应的该服务所在的服务器地址的步骤中,中间件从资源定位设备获取该部署对象的该服务所在的服务器地址;在通过该地址连接相应的服务器,从服务器获取客户端所需的服务,将多个量测点的服务结果整理合并后反馈给该客户端的步骤中,中间件通过该地址连接相应的服务器,从服务器获取客户端所需的服务,将多个量测点的服务结果整理合并后反馈给该客户端。作为进一步改进,中间件从资源定位设备获取该部署对象的该服务所在的服务器地址的步骤之后还包含以下步骤:中间件保存该部署对象标识码、服务标识码、和服务器地址之间的对应关系;中间件再次接收到属于该部署对象的量测点的该服务请求时,根据中间件保存的对应关系,连接相应的服务器。作为进一步改进,当部署对象对应的一个或多个服务由当前所在的服务器移至另一服务器时,还包含以下步骤:另一服务器开始运行时,将该服务器中新增加的部署对象对应的各服务发送到资源定位设备进行注册,资源定位设备更新该部署对象标识码、服务标识码、和服务器地址之间的对应关系。作为进一步改进,当中间件收到客户端的服务请求,根据当前保存的对应关系连接该服务请求中量测点所属部署对象对应的该服务所在服务器失败后,包含以下步骤:中间件重新向资源定位设备获取该服务请求中量测点所属部署对象对应的该服务所在的服务器地址,并按该地址连接相应的服务器;中间件更新当前保存的该部署对象标识码、服务标识码、和服务器地址之间的对应关系。本发明实施方式与现有技术相比,主要区别及其效果在于:分布式系统中包含多个部署对象,每个部署对象包含多个量测点,将属于同一部署对象的各量测点对应的同一服务设置在同一服务器中,本方法包含以下步骤:为每个部署对象中的量测点分配一唯一对应资源标识,该资源标识包含该量测点所属的部署对象标识码和本量测点标识码两部分;对各部署对象对应的不同服务所在的服务器进行注册,保存部署对象、该部署对象对应的各服务、和该部署对象对应的各服务所在服务器之间的对应关系;收到客户端的服务请求时,该服务请求包含多个量测点的同一服务请求,根据服务请求中各量测点的资源标识确定该量测点所属的部署对象,获取该部署对象的该服务所在的服务器地址,并通过该地址连接相应的服务器,从该服务器获取客户端所需的服务,将该多个量测点的服务结果整理合并后反馈给该客户端。通过该方法,使得简化了量测点的各服务与服务器之间的对应关系,从而在量测点数量比较庞大的系统中获取量测点的服务时,提高了查找对应服务器的速度,提高了系统的效率,同时,也大大节约了存储空间。当中间件收到客户端的服务请求,根据当前保存的所述对应关系连接该服务请求中量测点所属部署对象对应的该服务所在服务器失败后,中间件重新向资源定位设备获取该部署对象的该服务所在的服务器地址,并更新当前保存的对应关系;通过该方式,中间件能够自主诊断和恢复、并且自主优化内部存储结构,使得中间件能够自我管理,降低了管理成本。
图1是本发明一较佳实施方式中的分布式系统中服务获取方法的流程图;图2是本发明一较佳实施方式中的分布式系统中部署对象对应的一个或多个服务由当前所在的服务器移至另一服务器时服务获取方法的流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。本发明一较佳实施方式涉及一种分布式系统中服务获取方法,该分布式系统中包含多个部署对象,每个部署对象包含多个量测点,将属于同一部署对象的各量测点对应的同一服务设置在同一服务器中,该方法的具体流程如图1所示。步骤101中,为各部署对象中的各量测点分配一唯一对应资源标识。本实施方式中,该资源标识包含量测点所属的部署对象标识码和本量测点标识码两部分。比如,为部署对象I中的各量测点分配资源标识:部署对象1-量测点1,部署对象
1-量测点2,......,部署对象1-量测点η ;为部署对象2中的各量测点分配资源标识:部
署对象2-量测点1,部署对象2-量测点2,......,部署对象2-量测点m ;为部署对象3中
的各量测点分配资源标识:部署对象3-量测点1,部署对象3-量测点2,......,部署对象
3-量测点k。步骤102中,为同一类型服务分配同一服务标识码。举例而言,分布式系统中的部署对象包含的所有服务类型为X种,可以为这X种服务类型分配服务标识码:服务1,服务2,......,服务X。步骤103中,对各部署对象对应的不同服务所在的服务器在资源定位设备上进行注册。
步骤104中,资源定位设备保存部署对象、该部署对象对应的各服务、和该部署对象对应的各服务所在服务器之间的对应关系。需要进一步说明的是,本步骤中保存的是部署对象标识码、服务标识码、和服务器地址之间的对应关系。比如,部署对象I的服务I和服务3设置在服务器I中,服务2设置在服务器2中,则按以下对应关系保存:部署对象1、服务1、服务器I地址,部署对象1、服务2、服务器2地址,部署对象1、服务3、服务器I地址。步骤105中,中间件收到客户端的服务请求;本步骤中的服务请求包括多个量测点的同一服务请求。本实施方式中,客户端与中间件相连,中间件与各服务器相连;需要进一步说明的是,资源定位设备也可以包含在中间件内,不影响本实施方式的实施效果。步骤106中,中间件根据该请求中量测点的资源标识确定该量测点所属的部署对象。本步骤中,根据量测点的资源标识中部署对象标识码确定该量测点所属的部署对象。步骤107中,判断中间件是否保存有该部署对象对应的该服务所在的服务器地址。如果有保存,进入步骤108 ;否则,进入步骤109。步骤108中,中间件根据当前保存的对应关系获取该部署对象的该服务所在服务器的地址。步骤109中,中间件从资源定位设备获取该部署对象的该服务所在服务器的地址。步骤110中,中间件保存该部署对象标识码、服务标识码、和服务器地址之间的对
应关系。本实施方式中,中间件也可以不保存部署对象标识码、服务标识码、和服务器地址之间的对应关系,每次接收到客户端的服务请求时,都从资源定位设备获取服务器地址,不影响本实施方式的效果。步骤111中,中间件通过该地址连接该部署对象的该服务所在的服务器。本实施方式中,步骤111可以在步骤110之前,也可以在步骤110之后,不影响本实施方式的效果。步骤112中,中间件从服务器获取该部署对象的该服务,将多个量测点的服务结果整理合并后反馈给客户端。通过该方法,使得简化了量测点的各服务与服务器之间的对应关系,从而在量测点数量比较庞大的系统中获取量测点的服务时,提高了查找对应服务器的速度,提高了系统的效率,同时,也大大节约了存储空间。作为进一步改进,本实施方式中,当部署对象对应的一个或多个服务由当前所在的服务器移至另一服务器时,服务获取方法的流程图如图2所示:步骤201中,另一服务器开始运行时,将该服务器中新增加的部署对象对应的各服务发送到资源定位设备进行注册。步骤202中,资源定位设备保存更新该部署对象标识码、服务标识码、和新的服务器地址之间的对应关系。举例而言,部署对象I对应的服务3原来设置在服务器I中,后移至服务器4中,服务器4开始运行后,会把部署对象I对应的服务3,发送到资源定位设备进行注册,资源定位设备保存部署对象1、服务3、和服务器4的地址之间的对应关系。步骤203中,中间件收到客户端的属于该部署对象的量测点的该服务请求。步骤204中,中间件按当前保存的服务器地址连接该部署对象的该服务所在的服务器。步骤205中,中间件连接服务器失败,收到一出错告警信息。本实施方式中,连接服务器失败的情况还可以包括:系统网络连接失败、或系统设
备故障等。步骤206中,中间件重新向资源定位设备获取该服务请求中量测点所属部署对象对应的该服务所在的服务器地址。步骤207中,中间件更新当前保存的该部署对象标识码、服务标识码、和服务器地址之间的对应关系。步骤208中,中间件按新获取的服务器地址连接相应的服务器。本实施方式中,步骤208可以在步骤207之前,也可以在步骤207之后,不影响本实施方式的效果。步骤209中,中间件从新的服务器获取该部署对象的该服务,整理合并后反馈给客户端。举例而言,当客户端向中间件申请部署对象I的服务3时,中间件按原来保存的部署对象1、服务3、和服务器I的地址之间的对应关系,连接服务器I,这时服务器I会发送给中间件一出错告警信息,告知中间件连接错误;中间件收到信息后,会重新向资源定位设备获取部署对象I的服务3所在的服务器地址,中间件把服务器4的地址发送给中间件,中间按该地址连接服务器4,从服务器4获取部署对象I的服务3,反馈给客户端。通过本方法,中间件能够自主诊断和恢复、并且自主优化内部存储结构,使得中间件能够自我管理,降低了管理成本。虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种分布式系统中服务获取方法,所述分布式系统中包含至少两个部署对象,每个部署对象包含至少两个量测点,其特征在于,将属于同一部署对象的各量测点对应的同一服务设置在同一服务器中,所述方法包含以下步骤: 为每个所述部署对象中的量测点分配一唯一对应资源标识,该资源标识包含该量测点所属的部署对象标识码和本量测点标识码两部分; 对各部署对象对应的不同服务所在的服务器进行注册,保存所述部署对象、该部署对象对应的各服务、和该部署对象对应的各服务所在服务器之间的对应关系; 收到客户端的服务请求时,所述服务请求包含至少两个量测点的同一服务请求,根据所述服务请求中各量测点的资源标识确定该量测点所属的部署对象,获取该部署对象的该服务所在的服务器地址,并通过该地址连接相应的服务器,从所述服务器获取客户端所需的服务,将所述至少两个量测点的服务结果整理合并后反馈给该客户端。
2.根据权利要求1所述的分布式系统中服务获取方法,其特征在于,对各部署对象对应的不同服务所在的服务器进行注册的步骤之前,还包含以下步骤:为同一类型服务分配同一服务标识码; 在保存所述对应关系的步骤中,保存所述部署对象标识码、服务标识码、和服务器地址之间的对应关系。
3.根据权利要求1所述的分布式系统中服务获取方法,其特征在于,所述对各部署对象对应的不同服务所在的服务器进行注册的步骤中,在资源定位设备上对各部署对象对应的不同服务所在的服务器进行注册; 在所述保存所述部署对象、该部署对象对应的各服务、和该部署对象对应的各服务所在服务器之间的对应关系的步骤中,由所述资源定位设备保存所述对应关系; 在所述获取该部署对象的该服务所在的服务器地址的步骤中,从所述资源定位设备获取该部署对象对应的该服务所在的服务器地址。
4.根据权利要求3所述的分布式系统中服务获取方法,其特征在于,所述客户端与中间件相连; 在所述收到客户端的服务请求时,根据所述服务请求中各量测点的资源标识确定该量测点所属的部署对象的步骤中,由中间件接收客户端的服务请求,根据该请求中量测点的资源标识确定该量测点所属的部署对象; 在所述从所述资源定位设备获取该部署对象对应的该服务所在的服务器地址的步骤中,所述中间件从所述资源定位设备获取该部署对象的该服务所在的服务器地址; 在所述通过该地址连接相应的服务器,从所述服务器获取客户端所需的服务,将所述至少两个量测点的服务结果整理合并后反馈给该客户端的步骤中,所述中间件通过该地址连接相应的服务器,从所述服务器获取客户端所需的服务,将所述至少两个量测点的服务结果整理合并后反馈给该客户端。
5.根据权利要求4所述的分布式系统中服务获取方法,其特征在于,所述中间件从所述资源定位设备获取该部署对象的该服务所在的服务器地址的步骤之后还包含以下步骤: 所述中间件保存该部署对象标识码、服务标识码、和服务器地址之间的对应关系; 所述中间件再次接收到属于该部署对象的量测点的该服务请求时,根据所述中间件保存的对应关系,连接相应的服务器。
6.根据权利要求3所述的分布式系统中服务获取方法,其特征在于,当所述部署对象对应的至少一个服务由当前所在的服务器移至另一服务器时,还包含以下步骤: 所述另一服务器开始运行时,将该服务器中新增加的部署对象对应的各服务发送到资源定位设备进行注册,资源定位设备更新该部署对象标识码、服务标识码、和服务器地址之间的对应关系。
7.根据权利要求6所述的分布式系统中服务获取方法,其特征在于,当中间件收到客户端的服务请求,根据所述当前保存的对应关系连接该服务请求中量测点所属部署对象对应的该服务所在服务器失败后,包含以下步骤: 所述中间件重新向资源定位设备获取该服务请求中量测点所属部署对象对应的该服务所在的服务器地址,并按该地址连接相应的服务器; 所述中间件更新当前保存的该部署对象标识码、 服务标识码、和服务器地址之间的对应关系。
全文摘要
本发明公开了一种分布式系统中服务获取方法,为每个部署对象中的量测点分配一唯一对应资源标识,该资源标识包含该量测点所属的部署对象标识码和本量测点标识码两部分;对各部署对象对应的不同服务所在的服务器进行注册,保存部署对象、该部署对象对应的各服务、和该部署对象对应的各服务所在服务器之间的对应关系;收到客户端的服务请求时,确定该服务请求中量测点所属的部署对象,获取相应服务器地址,并通过该地址连接相应的服务器,获取客户端所需的服务,整理合并后反馈给该客户端。使得简化了量测点的各服务与服务器之间的对应关系,提高了查找对应服务器的速度,提高了系统的效率,同时,也大大节约了存储空间。
文档编号H04L29/08GK103188309SQ20111045706
公开日2013年7月3日 申请日期2011年12月30日 优先权日2011年12月30日
发明者杨云召, 俞高宇, 张晓华 申请人:上海可鲁系统软件有限公司