专利名称:一种基于soa架构的服务处理方法及其系统的制作方法
技术领域:
本发明涉及通信系统业务支撑领域,尤其涉及一种基于SOA架构的服务处理方法 及其系统。
背景技术:
SOA(Service-Oriented Architecture,面向服务的体系结构)是一个组件模型, 它将应用程序的不同功能单元(称为服务)通过这些服务之间定义的良好的接口和契约 联系起来,构建在各种各样的系统中的服务通过各种接口以一种统一和通用的方式进行交 互。服务定义了与业务功能或业务数据相关的接口,以及约束这个接口的契约。服务之间 通过服务注册库和ESB (Enterprise ServiceBus,企业服务总线)来支持动态查询、定位、 路由和中介(Mediation)等交互活动,使得服务的请求者和提供者之间实现高度的解耦。目前在SOA架构下的服务协作运行中,对消息的封装可以采用HTTP (Hypertext Transfer Protocol,超文本传输协议)、JCA(J2EE ConnectorArchitecture, J2Eel 连接 架构)、SOAP (Simple Object Access Protocol,简单对象访问协议)等协议,在实际应用 中,一般利用基于HTTP协议的SOAP来封装消息,以实现标准化。SOA服务协作一般采用请 求-响应的同步模式,采用这种服务方式的业务处理可以通过流程引擎进行串接来满足系 统间业务协作的需要。如图1所示,为现有技术中SOA架构下的服务处理系统示意图,该SOA业务处理 系统采用层次化结构,包括服务请求层、服务总线层、服务组件层、信息资源层,对应上述各 层,该系统包括服务请求处理模块101、服务总线模块102、服务处理模块103和数据存储 模块104等,其中服务请求处理模块101 属于服务请求层,提供与服务请求者的交互界面,通过该 界面接收服务请求者的服务请求,并提交给服务总线模块102,以及在该系统响应完成该服 务请求后,从服务总线模块102接收返回给该服务请求者的服务响应消息,并解析出服务 响应消息中携带的处理结果后通过交互界面呈现给该服务请求者;服务总线模块102 属于服务总线层,为服务请求消息和服务响应消息提供传输 中介;服务处理模块103 属于服务组件层,主要负责业务处理,包括根据从服务总线 模块102接收到的服务请求,调用相应的服务组件执行相应的业务逻辑,执行过程中根据 需要与数据存储模块104交互;服务处理模块103还根据该服务请求的处理结果生成服务 响应,并将生成的服务响应发送给服务总线模块102 ;业务数据存储模块104,属于信息资源层,用于存储服务提供者所提供的服务数据 和服务文件资源。SOA服务协作一般采用请求-响应的同步模式。这种服务对应的业务处理可以通 过流程引擎进行串接来满足系统间业务协作的需要。如图1所示,基于SOA的服务处理流 程,包括如下步骤
步骤1、服务请求处理模块101接收到业务请求者提交的业务请求后发送给服务 总线模块102 ;步骤2、服务总线模块102将该服务请求发送给服务处理模块103 ;步骤3 4、服务处理模块103根据该服务请求调用相应的服务组件进行处理;其 间,根据服务组件提供的业务逻辑处理需要,服务处理模块103向数据存储模块104发送数 据请求,以请求获取需要处理的数据;数据存储模块104根据该数据请求返回相应的数据;步骤5、服务处理模块103针对该服务请求完成处理之后,根据处理结果生成服务 响应,并将服务响应进行SOAP封装后发送给服务总线模块102 ;步骤6、服务总线模块102将该服务响应发送给服务请求处理模块101,服务请求 处理模块101将该服务响应解析后呈现给服务请求者。现有SOA业务处理系统中,普遍采用SOAP协议对服务处理结果进行封装,SOAP协 议使用XML文件作为信息交互的载体。这种方式下,服务的处理性能主要由XML文件的封 装和解析的效率决定,比较适合于返回信息量较小、响应时间较短的服务。而在服务系统集 成的环境中,不可避免地存在系统间交互大结果集信息的需要,如果仍采用基于XML文件 的服务协作模式来处理大数据量的信息交互,将会造成服务请求者的业务请求被阻塞,服 务响应时间超时(超出服务提供者承诺的响应时间),给服务总线层造成较大压力,这是因 为XML文档的结构性强而简洁性较差,因此在处理大数据量的信息时,会使得作为数 据交换载体的XML文档数据量倍增,从而消耗更多的网络带宽,降低系统的处理性能;由于需处理的数据量巨大,对系统间交互的消息的SOAP封装和解析的工作量也 将随之增大,进一步大大降低系统的处理性能;采用XML文档方式传输非结构化数据文件的传统方法带来的I/O延时严重影响服 务协作性能,从而降低SOA服务交互性能。可见,现有SOA服务体系采用单一的服务-响应机制,受大信息量的服务的处理所 限制,难以充分发挥其高效性,例如,企业内容管理系统等类似的大信息量的企业优良资产 (如各种视音频资料、文档稿件、报表资产等)将难以纳入SOA服务体系,企业信息资产的投 资收益率也因此而受到影响。因此,需要对现有SOA架构的服务协作模式做出调整和改造, 以适应大结果集服务的处理。
发明内容
本发明实施例提供一种基于SOA架构的服务处理方法及其系统,用以解决现有 SOA服务体系由于采用单一服务-响应机制在处理大结果集时系统性能低的问题。本发明实施例提供的技术方案包括一种基于SOA的服务处理方法,包括如下步骤接收到服务请求后,根据为所述服务请求对应的服务类型默认设置的响应方式, 以及缓存的服务请求信息中与所述服务请求匹配的服务请求信息所记录的响应方式,确定 是否针对所述服务请求的结果集采用重定向响应方式;如果确定为采用重定向响应方式,则将所述服务请求处理后得到的结果集存储到 存储设备中,并将该结果集的存储位置信息携带于服务响应消息返回;
接收获取所述结果集的请求,根据所述请求中携带的所述结果集的存储位置信息 从对应存储设备获取所述结果集并返回。一种基于SOA的服务处理系统,包括服务请求处理模块、服务总线模块和服务处 理模块,其中,服务请求处理模块,用于接收服务请求;以及,接收获取所述服务请求的结果集的 请求,根据所述请求中携带的所述结果集的存储位置信息从对应存储设备获取所述结果集 并返回;服务总线模块,用于在所述服务请求处理模块接收到所述服务请求后,根据为所 述服务请求对应的服务类型默认设置的响应方式,以及缓存的服务请求信息中与所述服务 请求匹配的服务请求信息所记录的响应方式,确定是否针对所述服务请求的结果集采用重 定向响应方式;以及,将所述服务处理模块返回的服务响应消息发送给所述服务请求处理 模块;服务处理模块,用于在所述服务总线模块确定为采用重定向响应方式时,将所述 服务请求处理后得到的结果集存储到存储设备中,并将该结果集的存储位置信息携带于服 务响应消息返回。本发明的上述实施例中,在接收到服务请求后,根据为所述服务请求对应的服务 类型默认设置的响应方式,以及缓存的、与所述服务请求匹配的服务请求信息中记录的响 应方式,选择相应的响应方式,从而与现有技术相比,提供了更多响应方式的选择。当确定 为重定向方式后,将结果集存储到存储设备,从而使针对该服务请求所返回的服务响应中 不用携带结果集,服务请求者可从该存储设备获取结果集,与现有技术的服务-响应方式 相比,可减少服务响应时间,尤其对于需要返回大结果集的服务请求,通过本发明实施例的 上述响应方式,可减少服务响应时延,提高系统性能。
图1为现有技术中基于SOA的服务处理系统和服务流程示意图;图2为本发明实施例基于SOA的服务处理系统结构示意图;图3为本发明实施例基于SOA的服务处理流程示意图;图4为不同服务响应方式下的结果集与响应时间的关系示意图。
具体实施例方式下面结合附图,对本发明所提供的实施例做进一步描述。如图2所示,为本发明实施例所提供的SOA架构下的服务处理系统结构示意图, 该系统包括服务请求处理模块201 (属于服务请求层)、服务总线模块202 (属于服务总线 层)、服务处理模块203 (属于服务组件层)、数据存储模块204 (属于信息资源层)。该系统 可通过对图1所示的系统进行改造得到,即,在图1所示的系统结构基础上,对服务请求处 理模块、服务总线模块和服务处理模块的功能进行扩展,从而得到图2所示的服务处理系 统。服务总线模块202可在接收到服务请求后,根据为该服务请求对应的服务类型默 认设置的响应方式,以及缓存单元中缓存的、与该服务请求匹配的服务请求信息中记录的响应方式,确定是否针对接收到的服务请求的结果集采用重定向响应方式,并将确定出的 响应方式通知给服务处理模块203 ;服务处理模块203与数据存储设备(如图中所示的传输服务器20 存在通信接 口,可根据服务总线模块202确定出的重定向响应方式,通过该接口将对服务请求处理后 得到的结果集存储到传输服务器205中(传输服务器205可以有多个,图2仅示出了一个); 服务处理模块203还可向服务总线模块202返回结果集存储位置信息,以便服务总线模块 202将该信息通知给服务请求处理模块201 ;服务处理模块203中的服务处理单元和SOAP 封装单元的功能与图1所示的相应功能单元相同或相似;服务请求模块201与传输服务器205存在通信接口,可在接收到服务总线模块202 返回的结果集存储位置信息后,通过该接口向相应的传输服务器205发起数据访问请求, 并通过该接口接收传输服务器205返回的结果集数据,结果集获取操作可由该模块中的结 果集获取单元执行。其中,服务总线模块202中还可包括负载管理单元,用来收集传输服务器205的 负载情况,供服务处理模块203中的负载决策单元选择出负载轻的传输服务器来存储结果 集。此外,服务总线模块202中还可包括资源目录管理单元,用来对存储于传输服务器205 的结果集的资源信息进行目录管理。由于对于结果集为非结构化文件的服务(主要是直接的二进制文件交互),理论 上造成其性能下降的不再是XML文件的封装和解析,而是将二进制文件写入XML的I/O操 作。考虑文件传输的安全性和完整性,本发明实施例中,对结果集为非结构化文件的服务采 用本发明实施例提供的重定向机制进行服务响应。具体实现时,可预先为结果集为非结构 化文件的服务设置默认采用重定向机制的响应方式,服务总线模块202在判断出接收到的 服务请求为该类型的服务请求后,直接采用重定向机制进行响应。对于结果集为结构化数据的服务,本发明实施例基于对结果集大小的预测来决定 采用的服务响应机制。根据服务请求的结果集大小与响应速度之间的关系的统计以及经验 数据,可定义出基于结果集大小选择服务响应机制的策略,并可根据需要对该策略进行调 整和更新。具体实现时,可预先配置服务请求的初始化信息,即对于不同服务ID所对应的 服务类型和该类型服务所对应的SLA要求(服务请求者与服务提供者约定的服务响应时间 阈值),根据已往的统计分析和经验数据预测出返回大结果集的几率,并在返回大结果集的 几率较高时,设置该服务ID对应的服务响应机制为重定向机制,在返回大结果集的几率较 低时,设置该服务ID对应的服务响应机制为常规的服务-响应机制。当服务注册到该系 统中后,可根据该服务的服务ID所对应的初始化信息为相应的服务请求选择响应机制,后 续,当具有相同服务ID、SLA要求和请求参数的服务请求发起时,可根据服务请求的运行记 录中具有相同特性的服务请求对应的服务响应机制进行响应机制的判决。基于图2所示的SOA架构下的服务处理系统,本发明实施例所提供的服务处理流 程,如图3所示,包括如下步骤步骤301、服务请求处理模块201接收到服务请求者提交的服务请求后,将该服务 请求发送给服务总线模块202 ;该步骤中,服务请求处理模块201可通过其提供的交互式界面接收服务请求者提 交的服务请求,并根据该服务请求生成服务请求消息发送给服务总线模块202。
步骤302、服务总线模块202接到服务请求消息后,根据为该服务请求对应的服务 类型默认设置的服务响应方式,或者缓存单元中缓存的、与该服务请求匹配的服务请求信 息中记录的服务响应方式,确定针对该服务请求的服务响应方式(采用重定向响应方式或 服务-响应方式),并将确定出的响应方式以及该服务请求消息发送给服务处理模块203。该步骤中,服务总线模块202针对返回的结果集为非结构化结果集(主要是直接 的二进制文件)的服务请求,采用重定向方式返回结果集;针对结果集为结构化结果集(主 要是通过SOAP封装的XML文件)的服务请求,则需要根据缓存的、与该服务请求匹配的服 务请求信息中记录的服务响应方式,确定针对该服务请求的服务响应方式。确定出服务响应方式后,需要通知服务处理模块203,通知的方式可以是通过生成 一条通知消息进行通知,也可以在发送给服务处理模块203的服务请求消息中添加用于指 示服务响应方式的标识,如,当确定出采用重定向方式时,在服务请求消息中添加重定向响 应方式指示标识,而当确定出采用常规服务-响应方式时,则可添加服务-响应方式指示标 识或不在服务请求消息中添加响应方式指示标识。此步骤302中,服务总线模块202确定 出的服务响应方式是采用重定向方式,并在发送给服务处理模块203的请求消息中添加重 定向方式指示标识。步骤303、服务处理模块203接收到该服务请求消息后,调用相应的服务组件进行 服务处理,其间根据处理需要与数据存储模块204进行交互,以获取所需的服务数据;步骤304、服务处理模块203在完成服务处理之后,根据从服务请求消息中解析出 的重定向方式指示标识,将处理后得到的结果集进行持久化处理形成文件(例如生成结 构化的文件或非结构化的文件),然后将该文件存储于传输服务器205 ;步骤305、服务处理模块203向服务总线模块202发送重定向消息,其中携带根据 结果集所生成的文件的存储位置信息。该步骤中,服务处理模块203可将需要发送给服务总线模块202的信息封装成XML 文件,并通过重定向消息发送。重定向消息中携带的信息可包括服务ID、文件的URL地址、 文件请求方式(如FTP或HTTP),以及文件传输所使用的用户名和密码。步骤306、服务总线模块202接收到重定向消息后,根据其中携带的信息进行资源 目录发布,即,将包含有结果集数据的文件的相关信息(如文件名、存储位置等)添加到资 源目录中,以便服务请求者查询。步骤307、服务总线模块202将重定向消息发送给服务请求模块201,以便服务请 求模块201将其中包含的信息,如文件存储位置、文件访问方式等信息呈现给服务请求者, 供服务请求者根据该信息访问文件。步骤308、服务请求模块201接收服务请求者发起的文件访问请求,根据请求中携 带的文件存储位置信息从相应传输服务器205获取文件后,将其中携带的结果集数据呈现 给该服务请求者。至此,该SOA架构下的服务处理系统通过重定向机制完成了结果集的返回处理。进一步地,该流程还可包括如下步骤步骤309、服务请求模块201处理完服务请求者的文件访问请求后,向服务总线模 块202发送通知消息,以通知服务总线模块202服务请求者已经获取到服务请求处理结果。 通知消息中可携带文件相关信息(如文件名、存储位置信息)、服务标识等。
步骤310、服务总线模块202记录本次服务处理的处理结果,更新资源目录中的资 源状态(如将文件的服务状态从未完成状态更新为已完成状态),向服务请求模块201返回 响应,终止针对该服务请求的交互过程。上述流程中,当服务处理模块203完成服务处理,将处理后得到的结果集数据进 行持久化处理形成文件,并确定出该文件的存储位置之后,服务处理模块203存储该文件 的步骤以及向服务总线模块202发送重定向消息的步骤在时序上没有严格限制。上述流程的步骤304中,服务处理模块203在将文件发送给传输服务器进行存储 之前,可随机选择传输服务器或选择默认的传输服务器进行存储,还可根据各传输服务器 的负载情况从中选择负载轻的存储,从而实现资源均衡分配在各传输服务器中。各传输服 务器可定时将各自的负载情况上报给服务总线模块202,服务处理模块203可根据服务总 线模块202收集到的负载信息选择传输服务器。服务处理模块203可根据收集到的负载信 息进行存储资源排序,并定期更新发布排序结果,以方便服务处理模块203根据排序结果 选择传输服务器。负载信息可包括传输服务器的网络带宽、网络资源流量、CPU占用量、内 存空间占用量等,以及上述参数的加权求和结果。上述流程的步骤303中,服务总线模块202接收到服务请求(结果集为结构化数 据的服务请求)后,可通过查询服务请求的运行记录,或/和服务请求相关的初始化信息, 对当前的服务请求的服务响应方式进行判决。其中,服务请求运行记录可包括服务ID、服务请求参数(如数据库查询条件参 数)、SLA要求、响应方向标识(包括常规服务-响应方式标识或重定向响应方式标识);服 务请求相关的初始化信息可包括服务ID、SLA要求、默认设置的响应方式标识。服务请求 运行记录和初始化信息可缓存在服务总线模块202的缓存单元中,缓存单元大小由服务总 线的特性决定。上述通过查询服务运行记录或初始化信息,对当前的服务请求的服务响应 方式进行判决的具体过程可以是当服务请求被服务总线模块202截获时,服务总线模块202查询缓存单元,如果缓 存单元中存在与当前服务请求相同的服务ID、请求参数和SLA要求的服务运行记录,则根 据该服务运行记录中的服务响应方式标识对当前服务请求的响应机制进行判决,即采用该 服务响应方式标识所对应的服务响应方式;如果缓存单元中不存在与当前服务请求相同的服务ID、请求参数和SLA要求的服 务运行记录,则根据具体情况,可采用如下方式判决方式一如果查询到与当前服务请求相同的服务ID和SLA要求、但不同请求参数 的服务运行记录,则根据这些服务运行记录中的服务响应方式标识进行统计得到响应方式 判决结果,如,在这些服务运行记录中分别统计出采用服务-响应方式的数量(或比例)和 重定向方式的数量(或比例),取其中数量大(或所占比例高)的响应方式作为当前服务请 求的响应方式;进一步地,可将与当前服务请求的服务ID和SLA要求相同的服务请求初始 化信息中的响应方式也作为统计依据之一;统计过程还可采用加权方式,如,为初始化信息 和服务运行记录分配不同的权值进行统计;或者,将这些服务运行记录中,请求参数与当前 服务请求中的请求参数最接近的那条服务运行记录中的服务响应方式标识作为对当前服 务请求的服务响应方式的判决依据;方式二 如果查询到与当前服务请求相同的服务ID和请求参数、但不同SLA要求的服务运行记录,则根据这些服务运行记录中与当前服务请求的SLA要求最为接近的服务 运行记录中的服务响应方式标识进行服务响应方式判决;方式三对于其他不存在与当前服务请求相同的服务ID、请求参数和SLA要求的 服务运行记录的情况,则根据与当前服务请求相同的服务ID、SLA要求的服务初始化信息 中的服务响应方式标识进行响应方式判决。该方式同样适用于没有查询到与当前服务请求 相同的服务ID、SLA要求的服务运行记录的情况。上述流程的步骤302中,在进行响应方式判决过程中查询到与当前服务请求相同 的服务ID、请求参数和SLA要求的服务运行记录,则在完成响应方式判决后,可进一步更新 缓存单元中的该条服务运行记录信息,如更新其中的服务请求时间,以便在缓存空间已满 时,根据服务运行记录中的服务请求时间,删除请求时间最早的服务运行记录;如果在进行 响应方式判决过程中没能查询到与当前服务请求相同的服务ID、请求参数和SLA要求的服 务运行记录,则在完成响应判决后,可新创建一条服务运行记录,其中记录当前服务请求的 服务ID、SLA要求、请求参数,以及该当前服务请求所采用的响应方式的标识,还可包括服 务请求时间等信息,以便作为后续进行响应方式判决的依据。在本发明的另一实施例中,可预先针对服务ID、与该服务ID对应的SLA要求设置 结果集数据量阈值,其中,可为同一服务ID对应的不同SLA要求设置不同的结果集数据量 阈值。通过该结果集数据量阈值可判断结果集是否是大结果集。当服务处理模块203在处 理完该服务请求并生成结果集后,将结果集的数据量大小通知给服务总线模块202 ;服务 总线模块202可根据该服务请求的结果集数据量大小,参考预设的结果集数据量阈值,决 定是否更新缓存单元中与该服务请求匹配的服务请求信息中的响应方式标识,具体包括服务处理模块203根据该服务请求的服务ID、SLA要求查找到对应的结果集数据 量阈值,将该服务请求的结果集数据量大小与该结果集数据量阈值进行比较,如果前者超 过后者,而缓存单元中与该服务请求具有相同服务ID、SLA要求和请求参数的服务请求历 史记录中记录的是服务-响应方式标识,则将该标识更新为重定向方式标识;如果前者小 于后者,而缓存单元中与该服务请求具有相同服务ID、SLA要求和请求参数的服务请求历 史记录中记录的是重定向方式标识,则将该标识更新为服务-响应方式标识。通过以上根据实际处理结果对服务请求历史记录进行更新,可使响应方式的判决 依据根据实际情况的变化(如随着数据库中服务数据的增长,针对同一请求参数,其返回 的结果集会越来越大)及时调整,进一步提高系统性能。其中,结果集数据量阈值设定的依据,原则上在服务请求等待时间超出服务请求 者与服务提供者SLA约定的交互时间时,将结果集定义为大结果集;或者,根据特定服务请 求在常规服务-响应方式下的响应速率-结果集数据量函数曲线,以及在重定向响应方式 下的响应速率-结果集数据量函数曲线,确定出结果集数据量阈值,使该阈值介于两曲线 交叉点处对应的结果集数据量,与常规服务-响应方式下的响应速率-结果集数据量函数 曲线上SLA时间长度所对应的结果集数据量两者之间。对于给定的服务类型,其结果集结构是固定的,影响结果集大小的因素主要是结 构数,而结构数的多少又将影响响应速度。如图4所示,如果将服务响应速度t看作是结果 集结构数η的函数,现有技术中的SOAP服务-响应方式下的一特定服务请求的函数曲线为 t = f(n)(该曲线可根据已往的服务交互情况统计得到),该服务请求的函数曲线为t =g(n)为采用本发明实施例的重定向方式的函数曲线(该曲线可根据已往的服务交互情况 统计得到)。由图易知,由于XML文档传输方式的特性的影响,随着η的增大,函数f的值的 增大速度大于函数g的值的增大速度。原则上在服务请求等待时间超出服务请求者与服务提供者SLA约定的交互时间 时,将结果集定义为大结果集,即nb = n2(nb为大结果集阈值下限),此时需要采用重定向 机制。但在实际中,曲线t = f(n)与t = g(n)交点的坐标为(nl,tl),表明当结构数达到 nl时,两曲线所对应的两种技术方案具有相同的服务处理响应速度;但当结构数继续增大 时,t = g(n)对应的响应速度值将低于t = f(n)对应的响应速度值;因此,一般将用于判 定服务返回信息量大小的阈值,即结构数阈值nb定为大于的nl数值,可选择nb为(nl,n2] 之间的某一整数。即,对于某一服务ID对应的结果集为非结构化数据的服务类型来说,如 果根据经验预测其结果集中的结果数大于nb,则将该服务ID对应的初始的服务响应方式 设置为重定向方式,否则设置为服务-响应方式。本发明的上述实施例可用于提升支撑网络的服务质量上通过重定向机制的流 程改进,在服务总线的基础上依旧采用统一的IT架构,并将可能产生大信息量服务纳入到 SOA的运行和管控体系;对服务运行时每次调用交互信息量规模的动态判别和预测的流程 方法,更准确的识别和界定服务的信息量。对于运行时参数决定信息量的服务,既可以做到 信息量较小时的快速响应又可以做到大信息量的重定向及XML的优化处理。通过优化XML 的封装,能够降低网络传输压力以及封装解析的处理消耗,提高运行效率。综上所述,本发明的实施例中,一方面,对大信息量服务的处理过程中,对处理服 务所返回的业务数据和业务文件资源不进行SOAP协议的封装和解析,从而提高了系统的 服务处理性能;另一方面,通过对被请求调用的服务的信息交互方式的识别、根据服务的初 始化信息和/或运行记录对被请求调用的服务所返回的信息量大学进行预测,对被判定为 返回较大信息量的服务进行特殊处理,即,将服务返回结果先存储于传输服务器,再由传输 服务器提供给服务请求方,实现了在SOA服务系统下对大信息量服务的高效处理,提升了 SOA服务系统的服务处理性能,避免了传统处理方式中因处理大信息量服务导致的等待时 间超长,从而影响企业资源有效利用的弊端。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种基于SOA的服务处理方法,其特征在于,包括如下步骤接收到服务请求后,根据为所述服务请求对应的服务类型默认设置的响应方式,以及 缓存的服务请求信息中与所述服务请求匹配的服务请求信息所记录的响应方式,确定是否 针对所述服务请求的结果集采用重定向响应方式;如果确定为采用重定向响应方式,则将所述服务请求处理后得到的结果集存储到存储 设备中,并将该结果集的存储位置信息携带于服务响应消息返回;接收获取所述结果集的请求,根据所述请求中携带的所述结果集的存储位置信息从对 应存储设备获取所述结果集并返回。
2.如权利要求1所述的方法,其特征在于,根据为所述服务请求对应的服务类型默认 设置的响应方式,以及与所述服务请求匹配的服务请求信息所记录的响应方式,确定是否 采用重定向响应方式,具体为如果确定所述服务请求所对应的服务类型为需要返回非结构化数据结果集的服务类 型,则根据为该类型设置的重定向响应方式确定采用重定向响应方式;否则,根据与所述服 务请求匹配的服务请求信息中记录的响应方式确定是否采用重定向响应方式。
3.如权利要求1或2所述的方法,其特征在于,所述服务请求信息包括服务请求运行记 录,所述运行记录中记录有服务标识、请求参数、服务请求者与服务提供者约定的服务响应 时间阈值SLA和响应方式标识,所述响应方式标识包括重定向方式标识;根据与所述服务请求匹配的服务请求信息中记录的响应方式确定是否采用重定向响 应方式,具体为如果与所述服务请求的服务标识、请求参数和SLA对应相同的服务请求运行记录中记 录的响应方式标识为重定向方式标识,则确定采用重定向响应方式。
4.如权利要求3所述的方法,其特征在于,如果所述服务请求运行记录中没有与所述 服务请求的服务标识、请求参数和SLA对应相同的服务请求运行记录,则在与所述服务请求的服务标识、SLA对应相同的所有服务请求运行记录中,取请求参数 与所述服务请求的请求参数最接近的服务请求服务请求运行记录,并根据该服务请求运行 记录中记录的响应方式标识确定采用相应的响应方式;或者,统计与所述服务请求的服务标识、SLA对应相同的所有服务请求运行记录中,重 定向响应方式标识和服务-响应方式标识各自所占比例,并根据其中所占比例高的响应方 式标识确定采用相应的响应方式。
5.如权利要求3所述的方法,其特征在于,如果所述服务请求运行记录中没有与所述 服务请求的服务标识、请求参数和SLA对应相同的服务请求运行记录,则在与所述服务请 求的服务标识、请求参数对应相同的所有服务请求运行记录中,取SLA与所述服务请求的 SLA最接近的服务请求服务请求运行记录,并根据该服务请求运行记录中记录的响应方式 标识确定采用相应的响应方式。
6.如权利要求3所述的方法,其特征在于,所述服务请求信息还包括服务请求初始化 信息,所述初始化信息中包括服务标识、SLA和默认设置的响应方式标识;如果所述服务请求运行记录中没有与所述服务请求的服务标识、SLA对应相同的服务 请求运行记录,则根据与所述服务请求的服务标识和SLA对应相同的服务请求初始化信息 中记录的响应方式标识确定采用相应的响应方式。
7.如权利要求4、5或6所述的方法,其特征在于,确定出所述服务请求的响应方式后, 还包括将所述服务请求的服务标识、服务参数、SLA和确定出的响应方式增加到所述服务 请求运行记录中。
8.如权利要求4、5或6所述的方法,其特征在于,针对服务标识、与该服务标识对应的 SLA要求设置有对应的结果集数据量阈值;确定出所述服务请求的响应方式后,还包括根据所述服务请求的服务标识、SLA要求查找到对应的结果集数据量阈值;将所述服务请求的结果集数据量大小与该结果集数据量阈值进行比较,如果前者大于 后者,而与所述服务请求具有相同服务标识、SLA要求和请求参数的服务请求历史记录中记 录的是服务-响应方式标识,则将该标识更新为重定向方式标识;如果前者小于后者,而与 所述服务请求具有相同服务标识、SLA要求和请求参数的服务请求历史记录中记录的是重 定向方式标识,则将该标识更新为服务-响应方式标识。
9.如权利要求8所述的方法,其特征在于,结果集数据量阈值取值过程为对于设定服务标识所对应的服务请求,在其服务-响应方式下的响应时间-结果集数 据量统计曲线上,取与设定SLA时间长度对应的数据量,取该统计曲线与该服务请求的重 定向方式下的响应时间-结果集数据量统计曲线的交点所对应的数据量,从取得的两个数 据量中间取一值作为该服务标识和SLA对应的结果集数据量阈值。
10.如权利要求1所述的方法,其特征在于,将所述服务请求处理后得到的结果集存储 到存储设备,具体为根据用于存储服务请求结果集的存储设备的负载情况,选择其中负载轻的存储设备, 将所述结果集存储到选择出的存储设备上。
11.一种基于SOA的服务处理系统,其特征在于,包括服务请求处理模块、服务总线模 块和服务处理模块,其中,服务请求处理模块,用于接收服务请求;以及,接收获取所述服务请求的结果集的请 求,根据所述请求中携带的所述结果集的存储位置信息从对应存储设备获取所述结果集并 返回;服务总线模块,用于在所述服务请求处理模块接收到所述服务请求后,根据为所述服 务请求对应的服务类型默认设置的响应方式,以及缓存的服务请求信息中与所述服务请求 匹配的服务请求信息所记录的响应方式,确定是否针对所述服务请求的结果集采用重定 向响应方式;以及,将所述服务处理模块返回的服务响应消息发送给所述服务请求处理模 块;服务处理模块,用于在所述服务总线模块确定为采用重定向响应方式时,将所述服务 请求处理后得到的结果集存储到存储设备中,并将该结果集的存储位置信息携带于服务响 应消息返回。
12.如权利要求11所述的系统,其特征在于,所述服务总线模块确定是否采用重定向 响应方式时,如果确定所述服务请求所对应的服务类型为需要返回非结构化数据结果集的 服务类型,则根据为该类型设置的重定向响应方式确定采用重定向响应方式;否则,根据与 所述服务请求匹配的服务请求信息中记录的响应方式确定是否采用重定向响应方式。
13.如权利要求11或12所述的系统,其特征在于,所述服务请求信息包括服务请求运 行记录,所述运行记录中记录有服务标识、请求参数、SLA和响应方式标识,所述响应方式标识包括重定向方式标识;所述服务总线模块根据与所述服务请求匹配的服务请求信息中记录的响应方式确定 是否采用重定向响应方式时,如果与所述服务请求的服务标识、请求参数和SLA对应相同 的服务请求运行记录中记录的响应方式标识为重定向方式标识,则确定采用重定向响应方 式。
14.如权利要求13所述的系统,其特征在于,所述服务总线模块进一步用于,如果所 述服务请求运行记录中没有与所述服务请求的服务标识、请求参数和SLA对应相同的服务 请求运行记录,则在与所述服务请求的服务标识、SLA对应相同的所有服务请求运行记录 中,取请求参数与所述服务请求的请求参数最接近的服务请求运行记录,并根据该服务请 求运行记录中记录的响应方式标识确定采用相应的响应方式;或者,统计与所述服务请求 的服务标识、SLA对应相同的所有服务请求运行记录中,重定向响应方式标识和服务-响 应方式标识各自所占比例,并根据其中所占比例高的响应方式标识确定采用相应的响应方 式。
15.如权利要求13所述的系统,其特征在于,所述服务总线模块进一步用于,如果所述 服务请求运行记录中没有与所述服务请求的服务标识、请求参数和SLA对应相同的服务请 求运行记录,则在与所述服务请求的服务标识、请求参数对应相同的所有服务请求运行记 录中,取SLA与所述服务请求的SLA最接近的服务请求服务请求运行记录,并根据该服务请 求运行记录中记录的响应方式标识确定采用相应的响应方式。
16.如权利要求13所述的系统,其特征在于,所述服务请求信息还包括服务请求初始 化信息,所述初始化信息中包括服务标识、SLA和默认设置的响应方式标识;所述服务总线模块进一步用于,如果所述服务请求运行记录中没有与所述服务请求的 服务标识、SLA对应相同的服务请求运行记录,则根据与所述服务请求的服务标识和SLA对 应相同的服务请求初始化信息中记录的响应方式标识确定采用相应的响应方式。
17.如权利要求14、15或16所述的系统,其特征在于,所述服务总线模块进一步用于, 确定出所述服务请求的响应方式后,将所述服务请求的服务标识、服务参数、SLA和确定出 的响应方式增加到所述服务请求运行记录中。
18.如权利要求14、15或16所述的系统,其特征在于,针对服务标识、与该服务标识对 应的SLA要求设置有对应的结果集数据量阈值;所述服务总线模块在所述服务请求模块确定出所述服务请求的响应方式后,还用于根据所述服务请求的服务标识、SLA要求查找到对应的结果集数据量阈值;将所述服务请求的结果集数据量大小与该结果集数据量阈值进行比较,如果前者大于 后者,而与所述服务请求具有相同服务标识、SLA要求和请求参数的服务请求历史记录中记 录的是服务-响应方式标识,则将该标识更新为重定向方式标识;如果前者小于后者,而与 所述服务请求具有相同服务标识、SLA要求和请求参数的服务请求历史记录中记录的是重 定向方式标识,则将该标识更新为服务-响应方式标识。
19.如权利要求11所述的系统,其特征在于,所述服务处理模块将所述服务请求处理 后得到的结果集存储到存储设备时,根据用于存储服务请求结果集的存储设备的负载情 况,选择其中负载轻的存储设备,将所述结果集存储到选择出的存储设备上。
全文摘要
本发明公开了一种基于SOA的服务处理方法及其系统,该方法包括接收到服务请求后,根据为所述服务请求对应的服务类型默认设置的响应方式,以及缓存的服务请求信息中与所述服务请求匹配的服务请求信息所记录的响应方式,确定是否针对所述服务请求的结果集采用重定向响应方式;如果确定为采用重定向响应方式,则将所述服务请求处理后得到的结果集存储到存储设备中,并将该结果集的存储位置信息携带于服务响应消息返回;接收获取所述结果集的请求,根据所述请求中携带的所述结果集的存储位置信息从对应存储设备获取所述结果集并返回。将本发明应用于需要返回大结果集的场景,可减少服务响应时延,提高系统效率。
文档编号H04L29/08GK102075554SQ20091023840
公开日2011年5月25日 申请日期2009年11月19日 优先权日2009年11月19日
发明者丁健, 刘列明, 张达, 徐非, 李增辉, 李霞, 苗桥 申请人:中国移动通信集团北京有限公司