[发明专利]SOA架构下的多线程请求方法及系统有效
| 申请号: | 201310293394.X | 申请日: | 2013-07-12 |
| 公开(公告)号: | CN104281489B | 公开(公告)日: | 2017-11-21 |
| 发明(设计)人: | 李伟 | 申请(专利权)人: | 上海携程商务有限公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;H04L29/06 |
| 代理公司: | 上海弼兴律师事务所31283 | 代理人: | 王聪 |
| 地址: | 200335 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | soa 架构 多线程 请求 方法 系统 | ||
技术领域
本发明涉及一种SOA架构下的多线程请求方法及系统。
背景技术
随着电子商务的蓬勃发展,现在的电子商务系统越来越庞大,各系统中包含的应用错综复杂,为了方便管理这些应用关系,很多公司都开始使用面向服务的体系结构,即SOA架构。SOA架构是一类分布式系统的体系结构,它将应用程序的不同功能单元(即服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
在这种架构下,各应用通过服务进行交互,达到解耦。然而,随着服务的细分和完善,提供的服务越来越多,各应用需要调用的服务也越来越多。需要调用的服务可能是由SOA架构下的同一个子系统提供,也可能分别由不同的子系统提供。现有的SOA架构下,当一个应用需要调用多个服务时,需要逐个调用,即调用一个服务后需要等待该服务响应后,再去请求下一个服务。如果需要调用的多个服务中,某一个服务响应较慢,则其他服务的调用都需要等待,非常浪费系统资源和时间。
发明内容
本发明要解决的技术问题是为了克服现有技术中SOA架构中的一个子系统向其他子系统调用服务时采用逐个调用的方式,需要依次等待其他子系统的服务响应,应用执行的效率低下且浪费时间和系统资源的缺陷,提出一种SOA架构下的多线程请求方法及系统。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种SOA架构下的多线程请求方法,其特点在于,包括以下步骤:
S1、接收至少一子系统发出的至少一组服务请求,将该至少一组服务请求的状态分别记录为执行中;
S2、在一线程池中创建至少一个线程,该至少一个线程和执行中状态的服务请求一一对应,该至少一个线程进入一等待队列,该等待队列用于按创建时间从早到晚的顺序依次排列线程;
S3、判断该线程池中正在执行的线程数量是否小于一最大并发数,在判断结果为否的情况下重复执行S3,在判断结果为是的情况下执行S4;
S4、顺序依次选取该等待队列中的线程并执行,以使得正在执行的线程数量等于该最大并发数;
S5、判断是否有任意一组或多组的服务请求对应的线程已全部从该线程池中移除,在判断结果为否的情况下执行S3,在判断结果为是的情况下执行S6;
S6、将该任意一组或多组的服务请求的状态更改为执行完毕;
S7、将该任意一组或多组的服务请求对应的线程执行的结果分别返回至发出该任意一组或多组的服务请求的子系统,并执行S3。
在SOA架构中,各个子系统之间通过系统总线进行通信交互,各个子系统是完全独立的,每个子系统可独立承担一个方面的业务逻辑。一组服务请求对应于一个操作,即在一个子系统上的一个操作会产生一组服务请求。一组服务请求可以包括了向其他子系统发出的多个服务请求。当其他子系统响应了服务请求时,会把服务请求所需要的数据发给发出服务请求的子系统。
S1中的一组服务请求的作用即一子系统要执行的应用程序首先请求服务。然后,S2中创建线程池以及和服务请求对应的线程。由于线程池以及能够并行执行的线程数量是有限的,因而先将线程排序。S3中判断该线程池中正在执行的线程数量是否小于一最大并发数,如果判断结果为否,则重复执行这一判断,即该等待队列中的线程继续等待。该线程池内的正在执行的线程以并行方式执行,多个线程各自的执行之间没有时序性的关系。当该线程池中有线程执行完毕时,则正在执行的线程数量就会变少,而当判断结果为是时,即可并行执行的线程出现了空缺,执行S4,顺序依次选取该等待队列中的线程并执行,以达到充分利用资源的目的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海携程商务有限公司,未经上海携程商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310293394.X/2.html,转载请声明来源钻瓜专利网。





