基于HTTP的SOA服务调用梳理方法及系统与流程

文档序号:11930639阅读:2068来源:国知局
基于HTTP的SOA服务调用梳理方法及系统与流程

本发明涉及计算机领域,具体涉及一种基于HTTP的SOA服务调用梳理方法及系统。



背景技术:

目前SOA架构越来越流行,但是对现有业务系统进行SOA梳理(即了解各个服务间的调用关系)一直是一个难题。通常情况下开发人员和软件架构师需要通过阅读SOA服务的代码进行梳理,整个过程非常地复杂耗时,特别是对于刚接手项目的人员来说,完全通读代码几乎是不可能完成的任务,对于一些大型系统往往需要至少一年的时间来完成整体SOA的梳理工作。



技术实现要素:

本发明提供一种基于HTTP的SOA服务调用梳理方法及系统,以解决现有技术中存在的上述问题。

本发明的技术方案是提供一种基于HTTP的SOA服务调用梳理方法,该方法包括:步骤A:对每个SOA服务请求者发送的HTTP请求进行自定义插桩;步骤B:根据该HTTP请求,获取该SOA服务请求者与SOA服务提供者的第一映射关系数据;步骤C:根据该第一映射关系数据,生成该SOA服务请求者与该SOA服务提供者之间的调用关系图。

可选地,对该SOA服务请求者发送的该HTTP请求增加自定义的HTTP头。

可选地,所述步骤B包括:步骤D,通过该HTTP请求,获取该 SOA服务请求者与该SOA服务提供者的IP地址、端口信息的第二映射关系数据;步骤E,通过操作系统自带的shell命令获取该IP地址、该端口信息与SOA服务进程标识符的第三映射关系数据;以及步骤F,通过该第二映射关系数据与该第三映射关系数据,获取该SOA服务请求者与该SOA服务提供者的第一映射关系数据。

可选地,该方法还包括:定期更新和存储该SOA服务进程标识符与SOA服务者的映射关系数据。

本发明还提供一种基于HTTP的SOA服务调用梳理系统,该系统包括:插桩模块,用于对每个SOA服务请求者发送的HTTP请求进行自定义插桩;网络监控模块,用于根据该HTTP请求,获取该SOA服务请求者与SOA服务提供者的第一映射关系数据;报告生成模块,用于根据该第一映射关系数据,生成该SOA服务请求者与该SOA服务提供者之间的调用关系图。

可选地,插桩模块对每个从SOA服务请求者发出的HTTP请求增加自定义的HTTP头。

可选地,网络监控模块还包括:第一映射模块,基于该HTTP请求,获取该SOA服务请求者与该SOA服务提供者的IP地址、端口信息的第二映射关系数据;第二映射模块,基于操作系统自带的shell命令获取该IP地址、该端口信息与SOA服务进程标识符的第三映射关系数据;以及第三映射模块,基于该第二映射关系与该第三映射关系,获取该SOA服务请求者与该SOA服务提供者的第一映射关系数据。

可选地,该系统还包括:数据更新模块,用于定期更新和存储该SOA服务进程标识符与SOA服务者的映射关系数据。

通过本发明提供的SOA服务调用梳理方法及系统,使得开发人员和架构师在实际工作中不仅获取数据更加准确和全面,而且大幅度释放开发人员的劳动力,减少了测试过程中耗费的时间,提高了工作效 率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明的基于HTTP的SOA服务调用梳理方法流程图;

图2为本发明的基于HTTP的SOA服务调用梳理系统示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

图1为本发明提供一种基于HTTP的SOA服务调用梳理方法流程图。如图1所示梳理方法的步骤如下:步骤A:对每个SOA服务请求者发送的HTTP请求进行自定义插桩;步骤B:根据该HTTP请求,获取该SOA服务请求者与SOA服务提供者的第一映射关系数据;步骤C:根据该第一映射关系数据,生成该SOA服务请求者与该SOA服务提供者之间的调用关系图。

可选地,对该SOA服务请求者发送的该HTTP请求增加自定义的HTTP头。

可选地,步骤B包括:步骤D,通过该HTTP请求,获取该SOA服务请求者与该SOA服务提供者的IP地址、端口信息的第二映射关系数据;步骤E,通过操作系统自带的shell命令获取该IP地址、该端口信息与SOA服务进程标识符的第三映射关系数据;以及步骤F,通过该第二映射关系数据与该第三映射关系数据,获取该SOA服务请求者 与该SOA服务提供者的第一映射关系数据。

可选地,该方法还包括:定期更新和存储该SOA服务进程标识符与SOA服务者的映射关系数据。

下面结合一个具体的实施例对本发明进行具体描述,然而值得注意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

本领域的技术人员可知,SOA服务架构实质上是服务的集合,即不同服务之间是彼此通信的,而这种通信可以是简单的数据传送,也可以是两个或更多的服务协调进行某些活动。特别是电子商务企业中的系统服务之间相互调用的情况更是频繁。

基于上述实际情况,为了方便开发人员和架构师能够及时准确获知各个服务之间的调用关系,本发明提出一种基于HTTP的SOA服务调用梳理方法。该方法的步骤如下:

S101、通过为每个从SOA服务发送的HTTP请求增加自定义的HTTP头(包含调用堆栈信息),这样便为每个SOA服务进程进行全局插桩。在本发明的实施例中,SOA服务架构为.NET平台的WCF框架,我们实现了自己的IWebRequestCreate,通过machine.config对Windows上所有.NET程序的HTTP请求插桩。此处的技术实现根据不同SOA服务的平台和编程语言会有不同。

S102、对SOA服务向服务器发送请求的数据包进行拆解,以便能够获取该SOA服务请求者与SOA服务提供者的映射关系数据。

具体来说,先根据数据包(TCP包)的端口信息分别获取发送请求的SOA服务和接收请求的SOA服务的IP地址(source ip和dest ip)和端口(source port和dest ip),由于步骤S101进行了全局插桩,在HTTP头中加入了调用堆栈信息,并且通过数据包(HTTP包)获取目的 URL地址,由此便可以获得SOA服务请求者的IP地址、端口信息、调用堆栈信息和SOA服务提供者的IP地址、端口信息、目的URL地址之间的映射关系数据。然后,通过Windows操作系统中的shell命令可以从数据库中获得IP地址和端口与SOA服务进程标识符(PID)之间的映射关系数据。特别的,对数据库中的这些SOA服务请求标识符(PID)与SOA服务提供端的映射关系数据会定期更新。值得一提的是,此处的技术实现根据不同SOA服务的平台和编程语言会有不同。

在本发明的实施例中,更新映射关系数据是通过调用IIS自带工具和数据库表来实现的。由此便可以获得SOA服务名及与SOA服务标识符(PID)的映射关系数据,最后通过上述映射关系数据可以获得SOA服务请求者与SOA服务提供者的映射关系数据。

S103、通过读取通过SOA服务请求者与SOA服务提供者的映射关系数据生成SOA服务调用关系图。

具体来说,如果被调用方(服务提供者)服务名为空,则认为是外部服务调用;如果被调用方服务名不为空,则认为是内部服务调用,上述不同服务均可用不同图形标注。

通过执行本发明提供的基于HTTP的SOA服务调用梳理方法,可以最终实现各个SOA服务之间的调用关系图,使开发人员和架构师在实际工作中不仅获取数据更加准确和全面,而且大幅度释放开发人员的劳动力,大幅缩短了测试过程中耗费的时间,提高了工作效率。

图2为本发明的基于HTTP的SOA服务调用梳理系统示意图。如图2所示,该系统包括:

插桩模块10,用于对每个SOA服务请求者发送的HTTP请求进行自定义插桩;

网络监控模块20,用于根据该HTTP请求,获取该SOA服务请求者与SOA服务提供者的第一映射关系数据;

报告生成模块30,用于根据该第一映射关系数据,生成该SOA服务请求者与该SOA服务提供者之间的调用关系图。

下面结合一个具体实施例对本发明进行具体描述,然而值得注意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

插桩模块10、网络监控模块20、报告生成模块30和数据更新模块40。其中,网络监控模块20具体包括:第一映射模块201、第二映射模块202和第三映射模块203。

通过插桩模块10对每个从SOA服务请求者发出的HTTP请求增加自定义的HTTP头(包含调用堆栈信息),这样便为每个SOA服务进程进行全局插桩。

首先,第一映射模块201根据该HTTP请求,获得该SOA服务请求者与该SOA服务提供者的IP地址、端口信息的第二映射关系数据。

其次,第二映射模块202根据Windows操作系统自带的shell命令获取该IP地址、该端口信息与SOA服务进程标识符的第三映射关系数据;其中,数据更新模块40会定期更新和存储该SOA服务进程标识符与SOA服务者的映射关系数据。第三映射模块203根据该第二映射关系与该第三映射关系,获取该SOA服务请求者与该SOA服务提供者的第一映射关系数据。由于与前述方法原理相同,故不在此赘述。

最后,报告生成模块30通过上述映射关系数据SOA服务请求者与SOA服务提供者的第一映射关系数据生成SOA服务调用关系图。

通过本发明提供的SOA服务调用梳理方法及系统,使得开发人员和架构师在实际工作中不仅获取数据更加准确和全面,而且大幅度释放开发人员的劳动力,减少了测试过程中耗费的时间,提高了工作效 率。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1