首页> 中国专利> SOA架构下多级服务总线的服务调用的动态路由方法

SOA架构下多级服务总线的服务调用的动态路由方法

摘要

本发明公开了一种在SOA架构下分布式多级服务总线的服务调用的动态路由方法,该方法使用服务目录而不是服务总线来存放服务总线的联通性信息,服务目录提供路由的最短路径计算功能,服务调用者调用服务总线时,只需提供服务代码,服务总线查询服务目录获得路由的最短路径,再根据最短路径进行路由。本发明能够使服务调用者和服务真正的松耦合,避免服务调用者和服务的紧耦合,使用服务目录而不是服务总线来存放服务总线的联通性信息。本发明具有良好的兼容性;能够为企业提供一个全局统一的服务总线联通的网状视图,便于管理。

著录项

  • 公开/公告号CN101179505A

    专利类型发明专利

  • 公开/公告日2008-05-14

    原文格式PDF

  • 申请/专利权人 江苏省电力公司;

    申请/专利号CN200710191521.X

  • 发明设计人 张德进;赵俊峰;丁一新;

    申请日2007-12-12

  • 分类号H04L12/56(20060101);H04L12/46(20060101);

  • 代理机构南京苏高专利商标事务所;

  • 代理人陈扬

  • 地址 210024 江苏省南京市上海路215号

  • 入库时间 2023-12-17 20:06:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-06-03

    专利权的转移 IPC(主分类):H04L12/56 变更前: 变更后: 登记生效日:20150513 申请日:20071212

    专利申请权、专利权的转移

  • 2009-11-18

    授权

    授权

  • 2008-07-09

    实质审查的生效

    实质审查的生效

  • 2008-05-14

    公开

    公开

说明书

技术领域

本发明涉及一种SOA架构下服务之间信息共享和协作,具体地说是一种SOA架构下分布式多级服务总线的服务调用的动态路由方法。

背景技术

服务是处理和管理数据的单元,分布在企业的各个系统中。它通过消息与其它系统或其它服务通信。消息的交换通过标准的数据交换协议进行。每个服务都有一个唯一的服务代码来标识此服务,每个服务都有一个唯一的服务地址,通常是一个URL,来指明服务所在的位置。

服务目录用于服务信息的统一管理,包括服务信息的注册、修改、删除等等,所有的服务信息都必须在服务目录中注册。服务目录中存储了服务相关的信息,包括服务的代码、描述、参数、QoS信息、服务地址等等。

服务总线提供对服务的调用,所有服务的调用者必须通过服务总线来调用服务,避免服务的调用者直接调用服务,实现调用者和服务之间的松耦合。每个服务总线都有一个唯一的总线代码。

动态路由是指服务调用者不需要知道服务的地址,他在调用服务总线时,提供服务代码,服务总线根据服务代码查询服务目录,动态得到服务地址的过程。动态路由避免了服务调用者和服务的紧耦合。

SOA即面向服务的架构可以使应用开发流水线化,SOA的核心架构问题是控制、质量和管理。

在SOA架构下,服务分布在企业的各个系统中,服务目录用于服务的统一管理,一般一个企业中只部署一个服务目录,而服务总线可以部署多个。

服务总线可以多级部署,比如省中心的系统部署一个服务总线,省中心管辖的每个地市的系统也部署一个服务总线,每个地市管辖的二级地市系统也部署一个服务总线;服务总线也可按照应用系统部署,比如财务系统部署一个服务总线,营销系统部署一个服务总线;服务总线也可根据性能要求来部署,比如为性能要求高的服务单独部署一个服务总线,其它服务使用另外一个服务总线。这样,在整个企业中,所有的服务总线形成了一个分布式、多级的架构。

服务可以绑定在某个特定的服务总线上,如果一个服务绑定在某个服务总线上,这就意味着只有这个特定的服务总线才能访问此服务,别的服务总线都不能访问此服务。比如涉及到金额、机密、敏感数据等安全级别高的服务或者不想让外部系统直接访问的服务可以绑定在特定的服务总线上,使得服务的调用者必须调用指定的服务总线,防止安全隐患。

多个服务总线之间有联通性设置,所谓联通性设置是指,如果两个服务总线是联通的,那么它们可以调用绑定在对方上服务,如果两个服务总线不是联通的,那么它们无法调用绑定在对方上的服务。联通性设置信息保存在服务总线上。

服务总线的联通性使得多个总线之间形成了一个网状的连接结构。

SOA的目标之一是实现服务的动态路由,使得服务和服务调用者之间的松耦合,对于只有单一服务总线的SOA架构来说,不存在服务总线联通性和服务绑定的问题,很容易实现服务和服务调用者之间的松耦合,但是对于分布式多级总线的SOA架构,动态路由存在以下问题:

1.服务调用者必须知道服务是否绑定了特定的服务总线,如果服务绑定在特定的总线上,调用者必须调用此特定总线才能访问到此服务。如果调用者无法直接访问此特定总线,则会产生下面第3点所描述的情况。

2.如果服务原来绑定在服务总线A上,后来改为绑定在服务总线B上,那么服务的调用者也要从调用服务总线A改成调用服务总线B,这样就造成服务调用者和服务的紧耦合。

3.在服务调用者无法直接访问服务所绑定的服务总线时,比如服务调用者与服务处在不同的VPN中或者服务调用者没有权限直接访问服务所绑定的服务总线,就需要知道多个服务总线联通关系。假定服务调用者由于网络条件的限制,只能访问服务总线A,则想要调用的服务及服务所绑定的服务总线N处在另一个VPN中,不能直接访问。由于服务总线的联通性使得多个总线之间形成了一个网状的连接结构,服务调用者必须计算从服务总线A连接到服务总线N的路由的最短路径,才能让服务总线A按照最短路径传递消息,调用绑定在服务总线N上的服务。一旦服务总线联通性发生更改,服务调用者就需要重新计算最短路径,造成服务调用者和服务总线联通性紧耦合。

4.服务总线的联通性信息存放在服务总线上,使得企业没有一个直观的总线联通图,不能一目了然,管理不方便。

发明内容

为了克服以上提及的问题而造成的服务和服务调用者的紧耦合,使得SOA失去了应有的意义,本发明的目的是提供一种新的在SOA架构下分布式多级服务总线的服务调用的动态路由方法,这种方法用服务目录而不是服务总线来存放服务总线的联通性信息,服务目录提供路由的最短路径计算,服务调用者调用服务总线时,只需提供服务代码,服务总线查询服务目录获得路由的最短路径,再根据最短路径进行路由。这种方法能够使服务调用者和服务真正的松耦合。

本发明的目的是通过以下技术方案来实现的:

一种SOA架构下分布式多级服务总线的服务调用的动态路由方法,其特征在于它包括以下步骤:

(1)服务调用者调用指定的服务总线,并输入服务代码;

(2)指定的服务总线接收到服务请求后,输入两个参数:总线代码和服务代码7,调用服务目录的最短路径计算功能;

(3)服务目录根据服务代码查询出该服务代码所绑定的服务总线的位置,然后根据总线的联通性信息,计算出指定的服务总线到所绑定服务总线的最短路径,并把最短路径返回给指定的服务总线;

(4)指定的服务总线接收到最短路径后,发现请求数据中有最短路径,则判断自己是不是此最短路径的最后一个总线,如果是,则说明所调用的服务代码绑定在自己所在的服务总线上,该服务总线把服务调用者的请求数据发送给服务调用者所在的服务代码处;如果不是,再判断最短路径中的下个总线代码,指定的服务总线在服务调用者的请求数据中加入最短路径,把最短路径和服务调用者的请求数据一起发送到最短路径中的下个服务总线,回到步骤(4),进行循环操作。

本发明中:

1.服务目录除了存放服务信息之外,还需存放服务总线的信息,服务总线的信息包括服务总线的地址,服务总线代码,服务总线的联通性信息等等。服务目录中还需存放服务和服务总线的绑定信息。服务目录提供对服务总线信息、服务和服务总线绑定信息的管理功能。

2.服务目录上提供根据总线代码和服务代码计算路由的最短路径的功能。

3.服务调用者调用服务总线时,只需提供服务代码,服务总线查询服务目录获得路由的最短路径。

4.服务总线根据最短路径进行路由。

本发明在SOA架构下,部署分布式多级服务总线时,为了避免服务调用者和服务的紧耦合,使用服务目录而不是服务总线来存放服务总线的联通性信息,服务目录提供路由的最短路径计算功能,服务调用者调用服务总线时,只需提供服务代码,服务总线根据服务代码和本总线的代码来调用服务目录的最短路径计算功能,获得路由的最短路径,再根据最短路径进行路由。

本发明实现了服务调用者和服务的松耦合;而且用服务目录存放服务总线的信息和服务绑定服务总线的信息,对整个SOA架构的调整很小,因此具有良好的兼容性;采用本发明所述的方法,能够减少服务调用者的开发量,不需要对服务做任何改动;服务目录存放服务总线的信息和服务绑定服务总线的信息,能够为企业提供一个全局统一的服务总线联通的网状视图,一目了然,便于管理。

附图说明

图1是本发明中总线联通性和服务绑定总线的示意图。

图2是本发明所述方法的流程示意图。

具体实施方式

下面结合附图和实施方式对本发明作详细说明。

图1是本发明中总线联通性和服务绑定总线的示意图。其中,服务总线A、B、C相互联通,总线C和总线D、E联通。如果有调用者想要通过服务总线B调用服务7,则路由的最短路径为总线B->总线C->总线E->服务7。

本发明的具体实现方法如下:

在图2中,假定总线联通性和服务绑定总线如图1所示,有一个服务调用者想要通过服务总线B调用服务7,过程如下

1.服务调用者调用服务总线B,输入服务代码:7。

2.服务总线B接收到服务请求后,调用服务目录的最短路径计算功能,输入两个参数:总线代码B和服务代码7。

3.因为总线的联通性信息和服务绑定总线的信息现在都保存在服务目录上,服务目录可以根据服务代码7查询出服务7绑定在服务总线E上,然后根据总线的联通性信息,计算出服务总线B到服务总线E的最短路径为总线B->总线C->总线E,它把最短路径B.C.E返回给服务总线B。最短路径中的B、C、E是总线B、总线C、总线E的总线代码,用.分隔。

4.服务总线B接收到最短路径B.C.E后,判断自己不是此最短路径的最后一个总线,再判断最短路径中的下个总线是总线C,服务总线B在服务调用者的请求数据中加入最短路径B.C.E,把最短路径和服务调用者的请求数据一起发送的服务总线C。

5.服务总线C接收到请求后,发现请求数据中有最短路径B.C.E,它判断自己不是此最短路径的最后一个总线,再判断最短路径中的下个总线是总线E,服务总线E把最短路径和服务调用者的请求数据一起发送的服务总线E。

6.服务总线E接收到请求后,发现请求数据中有最短路径B.C.E,它判断自己是此最短路径的最后一个总线,说明所调用的服务7绑定在自己即服务总线E上,服务总线E把服务调用者的请求数据发送给服务7。

由此可见,在此过程中,服务调用者只需知道服务代码,而无需关心服务是否绑定在特定的服务总线上,也不需要知道服务总线的联通性。采用这种方法,使得在SOA架构下,分布式多级总线服务调用的动态路由真正做到了服务调用者和服务的松耦合。

由于目前大多数的SOA架构都是把服务总线的联通性信息保存在服务总线上,由服务调用者自己计算路由的最短路径,从而造成服务调用者和服务的紧耦合,本发明通过由服务目录计算路由的最短路径,使得服务调用者只需知道服务代码,而无需关心服务是否绑定在特定的服务总线上,也不需要知道服务总线的联通性,真正做到了服务调用者和服务的松耦合,可以适用于所有部署分布式多级服务总线的SOA架构,具有很高的现实意义。

用服务目录存放服务总线的信息和服务绑定服务总线的信息,对整个SOA架构的调整很小,因此具有良好的兼容性。

采用本发明,能够减少服务调用者的开发量,不需要对服务做任何改动。

服务目录存放服务总线的信息和服务绑定服务总线的信息,能够为企业提供一个全局统一的服务总线联通的网状视图,一目了然,便于管理。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号