CN102075554B - 一种基于soa架构的服务处理方法及其*** - Google Patents
一种基于soa架构的服务处理方法及其*** Download PDFInfo
- Publication number
- CN102075554B CN102075554B CN2009102384043A CN200910238404A CN102075554B CN 102075554 B CN102075554 B CN 102075554B CN 2009102384043 A CN2009102384043 A CN 2009102384043A CN 200910238404 A CN200910238404 A CN 200910238404A CN 102075554 B CN102075554 B CN 102075554B
- Authority
- CN
- China
- Prior art keywords
- service request
- service
- response mode
- result set
- described service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于SOA的服务处理方法及其***,该方法包括:接收到服务请求后,根据为所述服务请求对应的服务类型默认设置的响应方式,以及缓存的服务请求信息中与所述服务请求匹配的服务请求信息所记录的响应方式,确定是否针对所述服务请求的结果集采用重定向响应方式;如果确定为采用重定向响应方式,则将所述服务请求处理后得到的结果集存储到存储设备中,并将该结果集的存储位置信息携带于服务响应消息返回;接收获取所述结果集的请求,根据所述请求中携带的所述结果集的存储位置信息从对应存储设备获取所述结果集并返回。将本发明应用于需要返回大结果集的场景,可减少服务响应时延,提高***效率。
Description
技术领域
本发明涉及通信***业务支撑领域,尤其涉及一种基于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与数据存储设备(如图中所示的传输服务器205)存在通信接口,可根据服务总线模块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看作是结果集结构数n的函数,现有技术中的SOAP服务-响应方式下的一特定服务请求的函数曲线为t=f(n)(该曲线可根据已往的服务交互情况统计得到),该服务请求的函数曲线为t=g(n)为采用本发明实施例的重定向方式的函数曲线(该曲线可根据已往的服务交互情况统计得到)。由图易知,由于XML文档传输方式的特性的影响,随着n的增大,函数f的值的增大速度大于函数g的值的增大速度。
原则上在服务请求等待时间超出服务请求者与服务提供者SLA约定的交互时间时,将结果集定义为大结果集,即nb=n2(nb为大结果集阈值下限),此时需要采用重定向机制。但在实际中,曲线t=f(n)与t=g(n)交点的坐标为(n1,t1),表明当结构数达到n1时,两曲线所对应的两种技术方案具有相同的服务处理响应速度;但当结构数继续增大时,t=g(n)对应的响应速度值将低于t=f(n)对应的响应速度值;因此,一般将用于判定服务返回信息量大小的阈值,即结构数阈值nb定为大于的n1数值,可选择nb为(n1,n2]之间的某一整数。即,对于某一服务ID对应的结果集为非结构化数据的服务类型来说,如果根据经验预测其结果集中的结果数大于nb,则将该服务ID对应的初始的服务响应方式设置为重定向方式,否则设置为服务-响应方式。
本发明的上述实施例可用于提升支撑网络的服务质量上:通过重定向机制的流程改进,在服务总线的基础上依旧采用统一的IT架构,并将可能产生大信息量服务纳入到SOA的运行和管控体系;对服务运行时每次调用交互信息量规模的动态判别和预测的流程方法,更准确的识别和界定服务的信息量。对于运行时参数决定信息量的服务,既可以做到信息量较小时的快速响应又可以做到大信息量的重定向及XML的优化处理。通过优化XML的封装,能够降低网络传输压力以及封装解析的处理消耗,提高运行效率。
综上所述,本发明的实施例中,一方面,对大信息量服务的处理过程中,对处理服务所返回的业务数据和业务文件资源不进行SOAP协议的封装和解析,从而提高了***的服务处理性能;另一方面,通过对被请求调用的服务的信息交互方式的识别、根据服务的初始化信息和/或运行记录对被请求调用的服务所返回的信息量大学进行预测,对被判定为返回较大信息量的服务进行特殊处理,即,将服务返回结果先存储于传输服务器,再由传输服务器提供给服务请求方,实现了在SOA服务***下对大信息量服务的高效处理,提升了SOA服务***的服务处理性能,避免了传统处理方式中因处理大信息量服务导致的等待时间超长,从而影响企业资源有效利用的弊端。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (19)
1.一种基于SOA的服务处理方法,其特征在于,包括如下步骤:
接收到服务请求者发送的服务请求后,根据为所述服务请求对应的服务类型默认设置的响应方式,以及缓存的服务请求信息中与所述服务请求匹配的服务请求信息所记录的响应方式,确定是否针对所述服务请求的结果集采用重定向响应方式;
如果确定为采用重定向响应方式,则将所述服务请求处理后得到的结果集存储到存储设备中,并将该结果集的存储位置信息携带于服务响应消息返回,并呈现给服务请求者;
接收服务请求者发送的获取所述结果集的请求,根据所述请求中携带的所述结果集的存储位置信息从对应存储设备获取所述结果集并返回。
2.如权利要求1所述的方法,其特征在于,根据为所述服务请求对应的服务类型默认设置的响应方式,以及与所述服务请求匹配的服务请求信息所记录的响应方式,确定是否采用重定向响应方式,具体为:
如果确定所述服务请求所对应的服务类型为需要返回非结构化数据结果集的服务类型,则根据为该类型设置的重定向响应方式确定采用重定向响应方式;否则,根据与所述服务请求匹配的服务请求信息中记录的响应方式确定是否采用重定向响应方式。
3.如权利要求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.如权利要求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所述的***,其特征在于,所述服务处理模块将所述服务请求处理后得到的结果集存储到存储设备时,根据用于存储服务请求结果集的存储设备的负载情况,选择其中负载轻的存储设备,将所述结果集存储到选择出的存储设备上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102384043A CN102075554B (zh) | 2009-11-19 | 2009-11-19 | 一种基于soa架构的服务处理方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102384043A CN102075554B (zh) | 2009-11-19 | 2009-11-19 | 一种基于soa架构的服务处理方法及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102075554A CN102075554A (zh) | 2011-05-25 |
CN102075554B true CN102075554B (zh) | 2013-07-03 |
Family
ID=44033897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102384043A Active CN102075554B (zh) | 2009-11-19 | 2009-11-19 | 一种基于soa架构的服务处理方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102075554B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11902388B2 (en) | 2013-09-28 | 2024-02-13 | Musarubra Us Llc | Service-oriented architecture |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116627B (zh) * | 2013-01-31 | 2016-05-18 | 汉柏科技有限公司 | 一种高并发soa技术访问数据库的方法和*** |
WO2015047436A1 (en) | 2013-09-28 | 2015-04-02 | Mcafee, Inc. | Efficient request-response routing over a data exchange layer |
CN104079656B (zh) * | 2014-07-07 | 2018-08-31 | 用友网络科技股份有限公司 | webService中soap消息的效率优化装置及方法 |
CN104683459B (zh) * | 2015-02-13 | 2018-05-11 | 华为技术有限公司 | 一种发送业务数据的方法和存储*** |
CN106936867B (zh) * | 2015-12-29 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 一种业务请求的响应方法及装置 |
CN106973074B (zh) * | 2016-01-13 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及*** |
CN107517139A (zh) * | 2016-06-17 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 数据处理方法及***、设备测试***及节点测试*** |
CN106254522B (zh) * | 2016-09-07 | 2019-08-30 | 努比亚技术有限公司 | 一种终端服务***、方法和终端 |
CN106357471A (zh) * | 2016-12-01 | 2017-01-25 | 合肥永君数码科技有限公司 | 一种企业服务总线*** |
CN108683722B (zh) * | 2018-05-10 | 2022-03-11 | 中国银行股份有限公司 | 一种数据传输的方法、esb平台及客户端 |
CN114079612B (zh) * | 2020-08-03 | 2024-06-04 | 阿里巴巴集团控股有限公司 | 容灾***及其管控方法、装置、设备、介质 |
CN115150030B (zh) * | 2021-03-31 | 2024-02-06 | 北京金山云网络技术有限公司 | 一种数据处理方法、装置、电子设备、存储介质及*** |
CN113344354A (zh) * | 2021-05-28 | 2021-09-03 | 广东电网有限责任公司广州供电局 | 智能电网应用场景的数据标准化处理***和处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941771A (zh) * | 2005-09-27 | 2007-04-04 | 国际商业机器公司 | 用于面向服务的体系结构应用的Web服务信息管理方法和*** |
CN101499095A (zh) * | 2009-03-11 | 2009-08-05 | 南京联创科技股份有限公司 | 用于数据共享平台的构建缓冲的方法 |
-
2009
- 2009-11-19 CN CN2009102384043A patent/CN102075554B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941771A (zh) * | 2005-09-27 | 2007-04-04 | 国际商业机器公司 | 用于面向服务的体系结构应用的Web服务信息管理方法和*** |
CN101499095A (zh) * | 2009-03-11 | 2009-08-05 | 南京联创科技股份有限公司 | 用于数据共享平台的构建缓冲的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11902388B2 (en) | 2013-09-28 | 2024-02-13 | Musarubra Us Llc | Service-oriented architecture |
Also Published As
Publication number | Publication date |
---|---|
CN102075554A (zh) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102075554B (zh) | 一种基于soa架构的服务处理方法及其*** | |
US11836533B2 (en) | Automated reconfiguration of real time data stream processing | |
CN100484119C (zh) | 用于在计算网格中创建服务实例的方法、***和装置 | |
CN202058147U (zh) | 分布式实时数据库管理*** | |
US10785322B2 (en) | Server side data cache system | |
US10498625B1 (en) | Distributed testing service | |
US8930521B2 (en) | Method, apparatus, and computer program product for enabling monitoring of a resource | |
CN109145020A (zh) | 信息查询方法、从服务器、客户端及计算机可读存储介质 | |
CN102130938B (zh) | 一种面向Web应用宿主平台的资源供给方法 | |
JP2021511588A (ja) | データクエリ方法、装置およびデバイス | |
CN109120715A (zh) | 一种云环境下动态负载均衡方法 | |
US20080141261A1 (en) | Resource Management System, Resource Information Providing Method and Program | |
CN102469126B (zh) | 一种应用调度***、方法和相关装置 | |
CN103092698A (zh) | 云计算应用自动部署***及方法 | |
CA3000422A1 (en) | Workflow service using state transfer | |
Wang et al. | Towards real-time multi-sensor information retrieval in cloud robotic system | |
CN111782692B (zh) | 一种频率控制方法及装置 | |
CN101989283A (zh) | 一种数据库性能的监控方法和装置 | |
CN102821113A (zh) | 缓存方法及*** | |
CN104737157A (zh) | 联合数据库*** | |
CN112559135B (zh) | 一种基于QoS的容器云资源的调度方法 | |
US9817698B2 (en) | Scheduling execution requests to allow partial results | |
US9851988B1 (en) | Recommending computer sizes for automatically scalable computer groups | |
CN110769018A (zh) | 一种消息推送方法及装置 | |
CN115617527A (zh) | 线程池的管理方法、配置方法、管理装置和配置装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |