专利名称:数据服务请求应答方法和数据服务协议栈的制作方法
技术领域:
本发明涉及通信领域中业务运营支撑技术,具体地,涉及数据服务请求应答的方法及数据服务协议栈。
背景技术:
目前很多大型企业,如通信、金融等行业的企业都已经开始实施SOA (Service-Oriented Architecture,面向服务架构)。SOA提供了一种构建IT组织的标准和方法,通过建立可组合、可重用的服务体系来减少IT业务冗余,并加快项目开发的进程,SOA体系能够使IT部门效率更高、开发周期更短、项目分发更快,在协助IT技术和业务整合方面有着较高的价值。SOA实施过程中的关键内容之一在于数据服务的实现,数据服务作为应用与数据解耦的技术,可实现软件的高内聚、松耦合,可以提高软件的复用度。现有业界在数据服务的实现方面主要有EJB、C0RBA、DC0M和Web Service等技术,其中比较流行的是Web Service。Web Service使用标准的、规范的XML描述接口,来描述与服务进行交互所需要的全部细节,包括消息格式、传输协议和服务位置;而在对外的接口中隐藏了服务实现的细节,仅提供一系列可执行的操作,该操作独立于软硬件平台和编写服务所用的编程语言。Web Service的体系结构主要基于服务注册中心、服务请求者(即服务请求方)和服务提供者(即服务提供方)三种角色之间的交互,如图1所示。三种角色的交互主要涉及发布、查找和绑定操作,服务提供者定义Web服务的服务描述并把它发布到服务注册中心,服务请求者使用查找操作从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定并调用Web服务。申请号为201010616910.4的中国专利申请介绍了一种Web Service服务的管理方法和系统,包括:网络服务器获取客户端发送的用户身份认证请求;所述用户身份认证请求包括:用户数字证书和用户身份认证信息;所述网络服务器将其获取到的用户身份认证请求转发给认证中心,以便所述认证中心对所述网络服务器以及用户身份进行认证;当所述认证中心完成认证后,所述网络服务器接收所述认证中心返回的认证结果;根据所述认证结果,所述网络服务器为所述客户端提供网络服务。本专利申请能够提高Web Service的安全性,还能有效的解决验证数字证书的使用者和所有者是否是同一实体的问题。申请号为200910167170.8的中国专利申请公开了一种提供数据服务的处理系统及方法,包括:在接收到用户的提供数据服务的业务请求后,在需要调用外部接口时,基于调用外部接口的位置将业务拆分为初始逻辑业务和后续逻辑业务;对初始逻辑业务进行处理,并向反向代理服务器返回分段响应处理结果;反向代理服务器根据分段响应结果的请求调用外部接口 ;在调用的外部接口返回响应结果后,将分段响应结果与调用外部接口返回的响应结果整合成提供给用户的数据服务结果;向用户返回数据服务结果。本专利申请可以避免前端逻辑被阻塞,使得前端服务能够连续处理新请求而不用浪费时间在等待外部服务请求的响应上。
总体来说,上述现有方案虽然可以一定程度上解决Web Service数据服务的实现问题,但主要针对服务接口层面实现,并不能深入到数据服务的内部实现细节进行规范说明,使数据服务的内部实现不能得到充分的解耦和复用,导致数据服务的内部实现比较复杂,影响数据服务的实现效率。
发明内容
本发明的目的是针对现有技术中数据服务的实现效率较低的缺陷,提出一种数据服务请求应答方法及数据服务协议栈。为实现上述目的,根据本发明的一个方面,提供了 一种数据服务请求方法。根据本发明实施例的数据服务请求方法,包括:服务请求方通过数据服务协议栈的表示层、会话层、服务层和接口层将服务指标参数封装到SOAP数据包或HTTP数据包;服务请求方将封装后的SOAP数据包或HTTP数据包发送给服务提供方,以使服务提供方将SOAP数据包或HTTP数据包进行解析处理后获得服务查询指令,自数据库中获取服务数据。在上述技术方案中,服务提供方将SOAP数据包或HTTP数据包进行解析后获得服务查询指令,自数据库中获取服务数据的步骤包括:服务提供方通过数据服务协议栈的接口层、服务层、会话层和表示层对SOAP数据包或HTTP数据包进行解析后获得服务指标参数;服务提供方通过数据服务协议栈的模型映射层和连接层根据服务指标参数组成服务查询指令提交到数据库中执行,自数据库中获取服务数据。在上述技术方案中,将服务指标参数封装到SOAP数据包或HTTP数据包的步骤包括:将服务指标参数通过数据服务协议栈的表示层封装成可扩展标记语言数据,根据服务的交互类型通过数据服务协议栈的会话层发起会话请求;通过数据服务协议栈的服务层将可扩展标记语言数据封装到SOAP数据包或HTTP数据包的包体中;通过数据服务协议栈的接口层对SOAP数据包或HTTP数据包的包头进行服务版本、路由、请求源和认证鉴权的封装操作。在上述技术方案中,在将服务指标参数封装到SOAP数据包或HTTP数据包的步骤与将封装后的SOAP数据包或HTTP数据包发送给服务提供方的步骤之间还包括:通过数据服务协议栈的接口层对SOAP数据包或HTTP数据包进行数字签名的操作。在上述技术方案中,对SOAP数据包或HTTP数据包进行解析后获得服务指标参数的步骤包括:通过数据服务协议栈的接口层对SOAP数据包或HTTP数据包进行数字签名认证和数据解密;通过数据服务协议栈的接口层对SOAP数据包或HTTP数据包的包头进行解析,进行认证鉴权、请求源、路由和服务版本的控制操作,获取SOAP数据包或HTTP数据包的包体;通过数据服务协议栈的服务层对SOAP数据包或HTTP数据包的包体进行解析,获取可扩展标记语言数据;通过数据服务协议栈的会话层,获知服务的交互类型,根据服务的交互类型将可扩展标记语言数据转发至数据服务协议栈的表示层;通过数据服务协议栈的表示层对可扩展标记语言数据进行解析,获取服务指标参数。在上述技术方案中,根据服务指标参数组成服务查询指令提交到数据库中执行,自数据库中获取服务数据的步骤具体包括:通过数据服务协议栈的模型映射层将服务指标参数组装成服务查询指令;通过数据服务协议栈的连接层将服务查询指令提交到数据库中执行,自数据库中获取服务数据。为实现上述目的,根据本发明的一个方面,提供了 一种数据服务应答方法。根据本发明实施例的数据服务应答方法,包括:服务提供方通过数据服务协议栈的连接层自数据库中获取服务数据,通过数据服务协议栈的模型映射层、表示层、会话层、服务层和接口层将服务数据封装成SOAP数据包或HTTP数据包;服务提供方将封装后的SOAP数据包或HTTP数据包发送给服务请求方,以使服务请求方通过数据服务协议栈的接口层、服务层、会话层和表示层对SOAP数据包或HTTP数据包进行解析后,获取服务数据。在上述技术方案中,将服务数据封装成SOAP数据包或HTTP数据包的步骤包括:将服务数据通过数据服务协议栈的模型映射层转换为关系型数据,并将该关系型数据通过数据服务协议栈的表示层封装成可扩展标记语言数据;通过数据服务协议栈的会话层,获知服务的交互类型,根据服务的交互类型将可扩展标记语言数据转发至数据服务协议栈的服务层;将可扩展标记语言数据通过数据服务协议栈的服务层封装到SOAP数据包或HTTP数据包的包体中;通过数据服务协议栈的接口层对SOAP数据包或HTTP数据包的包头进行应答结果、应答时间、应答编码和应答描述的控制信息的封装操作。为实现上述目的,根据本发明的另一个方面,提供了一种数据服务请求数据服务协议栈。根据本发明实施例的数据服务协议栈,包括:表示层,用于将服务指标参数封装成可扩展标记语言数据,对可扩展标记语言数据进行解析,获取服务指标参数;会话层,用于根据服务的交互类型发起会话请求,获知服务的交互类型,根据服务的交互类型将可扩展标记语言数据转发至表示层;服务层,用于将可扩展标记语言数据封装到SOAP数据包或HTTP数据包的包体中,对SOAP数据包或HTTP数据包的包体进行解析,获取可扩展标记语言数据;接口层,用于对SOAP数据包或HTTP数据包的包头进行服务版本、路由、请求源和认证鉴权的封装操作,对SOAP数据包或HTTP数据包的包头进行解析,进行认证鉴权、请求源、路由和服务版本的控制操作,获取SOAP数据包或HTTP数据包的包体;模型映射层,用于将服务指标参数组装成服务查询指令;连接层,用于将服务查询指令提交到数据库中执行,自数据库中获取服务数据。在上述技术方案中,协议栈还包括:接口层,还用于对SOAP数据包或HTTP数据包进行数字签名的操作,对SOAP数据包或HTTP数据包进行数字签名认证和数据解密。在上述技术方案中,协议栈还包括:接口层,还用于将数据服务对外发布,提供给服务请求方调用,并且通过企业服务总线控制数据服务的访问,实现数据服务的集成和统一控制。
在上述技术方案中,协议栈还包括:模型映射层,还用于实现数据服务的数据模型与数据库数据模型的映射。为实现上述目的,根据本发明的另一个方面,提供了 一种数据服务协议栈。根据本发明实施例的数据服务协议栈,包括:连接层,用于自数据库中获取服务数据;模型映射层,用于将服务数据转换为关系型数据;表示层,用于将关系型数据封装成可扩展标记语言数据;会话层,用于获知服务的交互类型,根据服务的交互类型将可扩展标记语言数据转发至服务层;服务层,用于将可扩展标记语言数据封装到SOAP数据包或HTTP数据包的包体中;接口层,用于对SOAP数据包或HTTP数据包的包头进行应答结果、应答时间、应答编码和应答描述的控制信息的封装操作。本发明各实施例的数据服务请求应答方法及数据服务协议栈,不仅可以实现应用与数据的解耦,还可以实现数据服务内部的解耦,使数据服务的内部实现细节更加简单、高效、清晰、灵活和可扩展。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1为根据现有技术中的服务注册中心、服务请求方和服务提供方交互关系示意图;图2为本发明的数据服务协议栈的结构示意图;图3为本发明的连接层中数据源数据格式示意图;图4为本发明的LSQL的数据格式示意图;图5为本发明的SQL的数据格式示意图;图6为根据本发明模型映射层中关系型数据格式示意图;图7为根据本发明表示层的XML数据表示方式示意图;图8为根据本发明表示层的CSV数据表示方式示意图;图9为根据本发明表示层的Excel文件类型的数据示意图;图10为根据本发明会话层的在线请求-同步响应方式的示意图;图11为根据本发明会话层的在线请求-异步响应方式的示意图;图12为根据本发明会话层的发布-订阅方式的示意图;图13为根据本发明服务层的封装了请求消息体的SOAP请求报文数据格式示意图14为根据本发明服务层的封装了应答消息体的SOAP应答报文数据格式示意图;图15为根据本发明接口层的加入服务版本后的SOAP请求报文数据格式示意图;图16为根据本发明接口层的加入服务路由后的SOAP请求报文数据格式示意图;图17为根据本发明接口层的加入请求时间后的SOAP请求报文数据格式示意图;图18为根据本发明接口层的加入短连接认证信息后的SOAP请求报文数据格式示意图;图19为根据本发明接口层的加入长连接认证信息后的SOAP请求报文数据格式示意图;图20为根据本发明接口层的加入可靠请求源信息后的SOAP请求报文数据格式示意图;图21为根据本发明接口层的进行数字签名后的SOAP请求报文数据格式示意图;图22为根据本发明接口层的加入控制信息后的SOAP应答报文数据格式示意图;图23为根据本发明服务请求方向服务提供方发起服务请求的流程示意图;图24为根据本发明步骤102中KPI指标参数的数据格式示意图;图25为根据本发明步骤104中XML格式数据的数据格式示意图;图26为根据本发明步骤108中SOAP数据格式示意图;图27为本发明发起服务请求方法实施例中步骤110封装后的数据格式示意图;图28为本发明发起服务请求方法实施例中步骤112数字签名后的数据格式示意图;图29为根据本发明服务提供方对服务请求方发起的服务请求进行服务应答的流程不意图;图30为根据本发明步骤202中数据源数据格式示意图;图31为根据本发明步骤204中关系型数据格式示意图;图32为根据本发明步骤206中封装后XML数据格式示意图;图33为本发明进行服务应答方法实施例中步骤210封装后的数据格式示意图;图34为本发明进行服务应答方法实施例中步骤212封装后的SOAP数据包示意图。
具体实施例方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。现有的Web Service数据服务实现的技术方案,主要针对服务接口层面的实现,并不能深入到数据服务的内部实现细节进行规范说明,使数据服务的内部实现不能得到充分的解耦和复用,导致数据服务的内部实现比较复杂,影响数据服务的实现效率。本发明公开数据服务请求应答方法和数据服务协议栈,可以较好的解决上述问题,除了可以实现应用与数据的解耦,还可以实现数据服务内部实现的解耦,使数据服务的内部实现细节更加简单、高效、清晰、灵活、可扩展。如图2所示,本发明的数据服务协议栈共划分为六层,自上而下依次是连接层、模型映射层、表示层、会话层、服务层和接口层;本发明的数据服务协议栈共分为两部分:月艮务请求方部分和服务提供方部分,服务请求方部分自上而下由表示层、会话层、服务层和接口层组成,服务提供方部分自上而下由连接层、模型映射层、表示层、会话层、服务层和接口层组成;其中,服务请求方部分与服务提供方部分中的表示层、会话层、服务层和接口层的结构和功能都相同。数据服务便是由数据源数据,经过数据服务协议栈中连接层到接口层的逐层封装而成。1、连接层连接层用来实现数据服务对各种数据源的连接,以及数据源数据的操作,从而获取数据服务所需要的数据源数据。连接层通过数据源连接技术,例如JDBC、0DBC、FTP和SOAP等来实现对各种数据源的连接,并从数据源(即数据库)取得数据源数据。连接层从数据源取得数据后,以比特流形式的数据格式存在,如图3所示。2、模型映射层模型映射层用来实现数据服务的数据模型与数据源数据模型的映射,将数据服务的数据模型的查询语句转换为可执行的数据源的数据模型的查询语句,以及将连接层的数据源数据转换为关系型数据。模型映射层为表示层提供的数据服务的数据模型的查询语句接口,主要可以采用标准的SQL或者LSQL(LSQL为中国移动经营分析系统数据仓库逻辑查询语言CMCC-LSQL)来实现。其中,SQL无法屏蔽数据库和数据模型之间的差异,因此主要适用于速度要求较高,数据模型差异不大的应用场景;而LSQL主要适用于速度要求不高,数据模型差异较大的应用场景。LSQL的数据格式如图4所示。SQL的数据格式如图5所示。如果是SQL,则直接提交给连接层执行,如果是LSQL,则需要经过模型映射后转换为可执行的物理SQL,再提交给连接层执行。连接层通过连接技术将SQL提交数据库执行,并将获取的数据源数据,返回给模型映射层,模型映射层为了方便表示层的数据表示,将数据源数据转换为关系型数据,关系型数据格式如图6所示。3、表示层表示层用来表示数据服务交互过程中的数据,实现将模型映射层中的关系型数据表示为数据服务交互过程中所需要的数据格式。数据表示方式主要包括:XML、CSV和二进制的方式,在不同的数据服务交互过程中,数据的表示方式可能不同,如:在“在线请求-同步响应”的数据服务交互方式中采用XML作为数据的表示方式;在“在线请求-异步响应”和“发布-订阅”交互方式中的数据服务控制信息采用XML,而应答的数据内容采用CSV数据表示方式;在对数据格式有特殊要求的需求场合,可以采用二进制流的数据表示方式。XML的数据表示方式如图7所示,CSV的数据表示方式如图8所示。二进制流数据表示方式主要是根据具体应用的需要或者用户的要求,生成相应文件类型的数据,如Excel文件类型的数据,如图9所示。4、会话层
会话层是服务请求方与服务提供方进行交互会话的场所,会话层通过不同的交互方式来表示数据服务的交互过程。会话层的数据交互方式有“在线请求-同步响应方式”、“在线请求-异步响应方式”和“发布-订阅方式”。该三种交互方式(即会话协商方式)的选择主要由数据的服务提供方决定,服务提供方根据自身数据量、实时性要求等特点,在数据服务开发时确定采用何种数据交互方式。具体说明如下:(I)在线请求-同步响应方式在线请求-同步响应方式是指服务请求方向服务提供方发送数据请求,并进入阻塞状态,等待服务提供方的响应数据返回。服务提供方在接收到数据请求后,进行一系列的业务处理获取响应数据,并将响应数据回复给服务请求方。服务请求方在接收到响应数据后,中止阻塞状态继续运行。具体在线请求-同步响应方式的数据交互流程如图10所示。该方式适用于响应速度比较快,且数据量比较小的场合。由于发送数据请求的服务请求方需要阻塞运行,因此如果响应的速度比较慢,会造成服务请求方长时间阻塞不能运行,很可能会影响到服务请求方应用的正常运行;同样,如果传输的数据量比较大,那么传输的过程中请求数据的服务也需要等待,造成等待时间过长。(2)在线请求-异步响应方式在线请求-异步响应方式是指服务请求方调用服务提供方的“准备数据方法”,向服务提供方发送数据请求。服务提供方在接收到数据请求后,返回请求成功标志、数据准备的预估处理时间、建议定期查询数据准备情况的时间间隔和数据的获取方式等消息。服务请求方在获得上述消息后可继续运行,不需要长时间处于阻塞状态。服务提供方在返回上述消息后进行一系列的业务处理以准备数据。服务请求方在数据准备的预估处理时间到达后,按照建议定期查询数据准备情况的时间间隔,服务请求方向服务提供方发送查询数据准备情况的请求。如果数据未准备完毕,服务提供方返回数据未准备完毕的消息,服务请求方则在建议的时间间隔后继续查询;如果数据准备完毕,服务提供方返回包含何时何地如何获取数据的消息。服务请求方即可以按照给定的时间到给定的地点(FTP或HTTP地址)在给定的有效期内自行决定何时使用给定的方式(FTP或HTTP协议)取得数据。具体在线请求-异步响应方式的数据交互流程如图11所示。该方式适用于被请求的数据量产生时间比较长,或者数据量较大的场合。因为采用异步方式,不需要长时间的等待与阻塞,服务请求方可以正常运行其它功能,仅需要在接到数据准备完毕的信号之后再处理请求的数据。(3)发布-订阅方式发布-订阅方式是指服务请求方向服务提供方的“注册方法”注册请求数据的要求和通知服务。服务提供方在接到服务请求方的注册消息后,返回请求成功的标志。服务请求方在获得上述注册消息后,可以继续运行而不需要长时间处于阻塞状态,服务提供方在返回上述注册消息后,进行一系列的业务处理以准备数据。当数据准备完毕,服务提供方调用服务请求方注册的通知服务,告知服务请求方数据准备情况和相关的获取信息。服务请求方回复成功或失败的标志,服务请求方即可以按照给定的时间到给定的地点(FTP或HTTP地址)在给定的有效期内自行决定何时使用给定的方式(FTP或HTTP协议)取得数据,从而实现数据的触发式交互。具体发布-订阅方式的交互流程如图12所示。
该方式适用于触发性传输各种数据量的数据封装服务,由于发布-订阅方式本质上是异步响应方式,因此服务请求方不需要长时间的等待与阻塞,可以正常运行其它功能。5、服务层服务层主要通过服务实现技术对表示层的数据做进一步的封装,把数据内容的消息体封装到数据服务的报文体中,并实现具体的数据服务。服务层数据服务的实现主要采用Web Service技术,其中Web Service的服务提供方可以通过SOAP或者REST架构来实现。基于SOAP实现的数据服务,主要将表示层的数据内容消息体封装到SOAP协议的Body中,而基于REST实现的数据服务,主要将消息体封装到HTTP协议的报文体中。下面主要介绍基于SOAP的实现方式:5.1请求消息体封装将表示层请求数据内容的消息体封装成SOAP请求报文的数据格式如图13所示。5.2应答消息体封装将表示层应答数据内容的消息体封装成SOAP应答报文的数据格式如图14所示。6、接口层接口层是在服务层的基础上,实现对数据服务消息头的安全、版本、路由和控制信息等的进一步封装,并将数据服务对外发布,提供给服务请求方调用,同时通过ESB (Enterprise Service Bus,即企业服务总线)技术来控制数据服务的访问,实现数据服务的集成和统一控制。基于SOAP实现的数据服务,主要将消息头封装到SOAP协议的Header中;而基于REST实现的数据服务,主要将消息头封装到HTTP协议报文头的自定义变量HeaderReq中。下面主要介绍基于SOAP的实现方式:6.1请求消息头封装6.1.1服务版本服务版本用于控制服务请求方对不同版本的数据服务的访问。在服务层SOAP请求报文的基础上,封装了服务版本消息头的请求报文数据格式如图15所示。6.1.2服务路由服务路由是将服务请求方的请求按照一定的路由规则发送到相应的服务提供方,主要应用于服务提供方进行分地区、分库等集群部署的情况。例如:可以根据地区的路由信息,将服务请求发送到该地区所在的数据服务服务器。在服务层SOAP请求报文的基础上,封装了服务路由消息头的请求报文数据格式如图16所示。6.1.3请求时间 请求时间用来标识本次数据服务访问的时间,作为访问日志的主要内容,方便日后的日志追S示排查。在服务层SOAP请求报文的基础上,封装了请求时间消息头的请求报文数据格式如图17所示。6.1.4认证鉴权认证鉴权用来对服务请求方是否合法进行鉴别和确认。通过认证鉴权,可以使服务提供方确认服务请求方的身份,确定是否有该服务的访问权限。认证鉴权主要有以下两种方式:(I)短连接认证短连接认证方式主要适用于外部系统对数据服务的访问,外部系统对数据服务的访问效率一般不会太高,但安全性相对较高,因此服务请求方每次请求时都要提供用户名、密码等校验信息来进行认证鉴权。在服务层SOAP请求报文的基础上,封装了短连接认证信息的请求报文数据格式如图18所示。(2)长连接认证长连接认证方式主要适用于系统内部应用对数据服务的访问,内部应用对数据服务的访问效率一般会比较高,安全性也比较可靠,因此服务请求方只需在首次访问服务提供方的用户认证服务时,提供用户名、密码认证信息,经过认证通过后,服务提供方为服务请求方生成唯一的令牌信息,服务请求方在令牌的有效期内,无需每次请求都提供用户名、密码等校验信息。在服务层SOAP请求报文的基础上,封装了长连接认证信息的请求报文数据格式如图19所示。6.1.5可靠请求源可靠请求源用来控制某个请求来源是否需要安全校验功能,对于受信任的系统,允许用户不经过安全校验,就能访问数据服务,可以减少受信任系统的开发工作。在服务层SOAP请求报文的基础上,封装了可靠请求源信息的请求报文数据格式如图20所示。6.1.6数字签名数字签名是基于非对称加密技术的安全机制,通过数字签名技术可以保障数据或业务流量信息的机密性,以及预防客户端的抵赖行为。对SOAP请求报文进行数字签名后的数据格式如图21所示。6.2应答消息头封装应答消息头中主要封装了数据服务的应答时间、应答结果、应答错误编码、应答错误信息等控制信息内容,作为服务请求方对应答成功或者失败的判断依据,以及失败原因的分析。在服务层SOAP应答报文的基础上,封装了控制信息的应答报文数据格式如图22所示。方法实施例下面以在线请求-同步响应交互方式的“关键指标监控”应用场景为例,来说明数据服务协议栈在服务请求和服务应答过程中,进行协议包封装及解析的流程。服务请求流程“关键指标监控”应用通过服务请求方向服务提供方发起服务请求时,数据服务协议栈进行协议包封装及解析的流程,如图23所示。具体流程步骤如下:步骤102 关键指标监控”应用通过服务请求方的界面输入KPI指标参数,向服务提供方发起应用请求,KPI指标参数如图24所示;
步骤104:服务请求方将KPI指标参数通过数据服务协议栈的表示层,封装到XML(Extensible Markup Language,可扩展标记语言)中,封装后的XML格式数据如图25所示。步骤106:服务请求方根据服务的交互方式,通过数据服务协议栈的会话层发起在线请求-同步响应方式的会话;步骤108:服务请求方通过数据服务协议栈的服务层,将XML数据封装到SOAP数据包的包体中,封装后的SOAP数据格式如图26所示。步骤110:服务请求方通过数据服务协议栈的接口层,对SOAP数据包的包头,进行服务版本、路由、请求源和认证鉴权等封装操作,封装后的数据格式如图27所示;步骤112:服务请求方通过数据服务协议栈的接口层,对SOAP数据包进行数字签名操作,签名后的数据格式如图28所示;步骤114:服务请求方将封装完成后的SOAP数据包,以在线请求-同步响应方式,通过HTTP通道发送给服务提供方;步骤116:服务提供方接收到服务请求后,通过数据服务协议栈的接口层进行SOAP数据包的数字签名认证和数据解密,并对SOAP数据包的包头进行解析,进行认证鉴权、请求源、路由和版本等控制,然后获取SOAP数据包的包体发送给数据服务协议栈的服
务层;步骤118:服务提供方通过数据服务协议栈的服务层,对SOAP数据包的包体进行解析,获取服务数据请求内容的XML数据;步骤120:服务提供方通过数据服务协议栈的会话层,获知目前的交互方式为在线请求-同步响应方式后,通过同步方式将请求的XML数据转发给数据服务协议栈的表示层;步骤122:服务提供方通过表示层,对XML数据进行解析,获取服务请求的KPI参数;步骤124:服务提供方通过数据服务协议栈的模型映射层,将KPI指标参数组装成KPI信息查询的SQL语句;步骤126:服务提供方通过数据服务协议栈的连接层,将SQL语句通过JDBC连接技术,提交到数据库中执行,自数据库中获取服务数据(即数据源数据)。服务应答流程服务提供方对“关键指标监控”应用发起的服务请求进行服务应答时,数据服务协议进行数据包的封装及解析的流程,如图29所示。具体流程步骤如下:步骤202:服务提供方通过数据服务协议栈的连接层,自数据库中获取到服务数据(即数据源数据),数据源数据格式如图30所示。步骤204:服务提供方通过数据服务协议栈的模型映射层,将数据源数据转换为关系型数据,方便数据服务协议栈的表示层的封装,转换后的关系型数据如图31所示。步骤206:服务提供方通过数据服务协议栈的表示层,将模型映射层中的关系型数据封装到XML中,封装后的XML数据格式如图32所示。步骤208:服务提供方通过数据服务协议栈的会话层,判断本次交互为在线请求-同步响应的方式,将XML数据转发给数据服务协议栈的服务层;步骤210:服务提供方通过数据服务协议栈的服务层,将XML数据封装到SOAP数据包的包体中,封装后的数据格式如图33所示;步骤212:服务提供方通过数据服务协议栈的接口层,对SOAP数据包的包头,进行应答结果、应答时间、应答编码和应答描述等控制信息的封装,并将SOAP数据包发送给服务请求方,封装后的SOAP数据包如图34所示;步骤214:服务请求方依次通过接口层、服务层、会话层、表示层对SOAP数据包进行解析,最终获取到数据源数据,并通过“关键指标监控”应用展现出来。本发明的数据请求应答方法,不仅可以实现应用与数据的解耦,还可以实现数据服务内部的解耦,使数据服务的内部实现细节更加简单、高效、清晰、灵活和可扩展。协议栈实施例根据本发明实施例,提供了一种数据服务协议栈。本实施例包括:表示层,用于将服务指标参数封装成可扩展标记语言数据,对可扩展标记语言数据进行解析,获取服务指标参数;会话层,用于根据服务的交互类型发起会话请求,获知服务的交互类型,根据服务的交互类型将可扩展标记语言数据转发至表示层;服务层,用于将可扩展标记语言数据封装到SOAP数据包或HTTP数据包的包体中,对SOAP数据包或HTTP数据包的包体进行解析,获取可扩展标记语言数据;接口层,用于对SOAP数据包或HTTP数据包的包头进行服务版本、路由、请求源和认证鉴权的封装操作,对SOAP数据包或HTTP数据包的包头进行解析,进行认证鉴权、请求源、路由和服务版本的控制操作,获取SOAP数据包或HTTP数据包的包体;模型映射层,用于将服务指标参数组装成服务查询指令;连接层,用于将服务查询指令提交到数据库中执行,自数据库中获取服务数据。其中:接口层,还用于对SOAP数据包或HTTP数据包进行数字签名的操作,对SOAP数据包或HTTP数据包进行数字签名认证和数据解密。其中:接口层,还用于将数据服务对外发布,提供给服务请求方调用,并且通过企业服务总线控制数据服务的访问,实现数据服务的集成和统一控制。其中:模型映射层,还用于实现数据服务的数据模型与数据库数据模型的映射。根据本发明实施例,提供了一种数据服务协议栈。本实施例包括:连接层,用于自数据库中获取服务数据;模型映射层,用于将服务数据转换为关系型数据;表示层,用于将关系型数据封装成可扩展标记语言数据;会话层,用于获知服务的交互类型,根据服务的交互类型将可扩展标记语言数据转发至服务层;服务层,用于将可扩展标记语言数据封装到SOAP数据包或HTTP数据包的包体中;
接口层,用于对SOAP数据包或HTTP数据包的包头进行应答结果、应答时间、应答编码和应答描述的控制信息的封装操作。本发明的数据服务协议栈,不仅可以实现应用与数据的解耦,还可以实现数据服务内部的解耦,使数据服务的内部实现细节更加简单、高效、清晰、灵活和可扩展。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据服务请求方法,其特征在于,包括: 服务请求方通过数据服务协议栈的表示层、会话层、服务层和接口层将服务指标参数封装到SOAP数据包或HTTP数据包; 服务请求方将封装后的SOAP数据包或HTTP数据包发送给服务提供方,以使服务提供方将所述SOAP数据包或HTTP数据包进行解析处理后获得服务查询指令,自数据库中获取服务数据。
2.根据权利要求1所述的方法,其特征在于,服务提供方将所述SOAP数据包或HTTP数据包进行解析后获得服务查询指令,自数据库中获取服务数据的步骤包括: 服务提供方通过数据服务协议栈的接口层、服务层、会话层和表示层对所述SOAP数据包或HTTP数据包进行解析后获得所述服务指标参数; 服务提供方通过数据服务协议栈的模型映射层和连接层根据所述服务指标参数组成服务查询指令提交到数据库中执行,自数据库中获取服务数据。
3.根据权利要求1所述的方法,其特征在于,将服务指标参数封装到SOAP数据包或HTTP数据包的步骤包括: 将服务指标参数通过数据服务协议栈的表示层封装成可扩展标记语言数据,根据服务的交互类型通过数据服务协议栈的会话层发起会话请求; 通过数据服务协议栈的服务层将可扩展标记语言数据封装到SOAP数据包或HTTP数据包的包体中; 通过数据服务协议栈的接口层对SOAP数据包或HTTP数据包的包头进行服务版本、路由、请求源和认证鉴权的封装操作。
4.根据权利要求1所述的方法,其特征在于,在将服务指标参数封装到SOAP数据包或HTTP数据包的步骤与将封装后的SOAP数据包或HTTP数据包发送给服务提供方的步骤之间还包括: 通过数据服务协议栈的接口层对所述SOAP数据包或HTTP数据包进行数字签名的操作。
5.根据权利要求4所述的方法,其特征在于,对所述SOAP数据包或HTTP数据包进行解析后获得所述服务指标参数的步骤包括: 通过数据服务协议栈的接口层对SOAP数据包或HTTP数据包进行数字签名认证和数据解密; 通过数据服务协议栈的接口层对SOAP数据包或HTTP数据包的包头进行解析,进行认证鉴权、请求源、路由和服务版本的控制操作,获取SOAP数据包或HTTP数据包的包体;通过数据服务协议栈的服务层对SOAP数据包或HTTP数据包的包体进行解析,获取所述可扩展标记语言数据; 通过数据服务协议栈的会话层,获知服务的交互类型,根据服务的交互类型将所述可扩展标记语言数据转发至数据服务协议栈的表示层; 通过数据服务协议栈的表示层对所述可扩展标记语言数据进行解析,获取服务指标参数。
6.根据权利要求2所述的方法,其特征在于,根据所述服务指标参数组成服务查询指令提交到数据库中执行,自数据库中获取服务数据的步骤具体包括:通过数据服务协议栈的模型映射层将服务指标参数组装成服务查询指令; 通过数据服务协议栈的连接层将所述服务查询指令提交到数据库中执行,自数据库中获取服务数据。
7.一种数据服务应答方法,其特征在于,包括: 服务提供方通过数据服务协议栈的连接层自数据库中获取服务数据,通过数据服务协议栈的模型映射层、表示层、会话层、服务层和接口层将所述服务数据封装成SOAP数据包或HTTP数据包; 服务提供方将封装后的SOAP数据包或HTTP数据包发送给服务请求方,以使服务请求方通过数据服务协议栈的接口层、服务层、会话层和表示层对所述SOAP数据包或HTTP数据包进行解析后,获取所述服务数据。
8.根据权利要求7所述的方法,其特征在于,将服务数据封装成SOAP数据包或HTTP数据包的步骤包括: 将所述服务数据通过数据服务协议栈的模型映射层转换为关系型数据,并将该关系型数据通过数据服务协议栈的表示层封装成可扩展标记语言数据; 通过数据服务协议栈的会话层,获知服务的交互类型,根据服务的交互类型将所述可扩展标记语言数据转发至数据服务协议栈的服务层; 将所述可扩展标记语言数据通过数据服务协议栈的服务层封装到SOAP数据包或HTTP数据包的包体中; 通过数据服务协议栈的接口层对所述SOAP数据包或HTTP数据包的包头进行应答结果、应答时间、应答编码和应答描述的控制信息的封装操作。
9.一种数据服务协议栈,其特征在于,包括: 表示层,用于将服务指标参数封装成可扩展标记语言数据,对可扩展标记语言数据进行解析,获取服务指标参数; 会话层,用于根据服务的交互类型发起会话请求,获知服务的交互类型,根据服务的交互类型将所述可扩展标记语言数据转发至表示层; 服务层,用于将可扩展标记语言数据封装到SOAP数据包或HTTP数据包的包体中,对SOAP数据包或HTTP数据包的包体进行解析,获取所述可扩展标记语言数据; 接口层,用于对SOAP数据包或HTTP数据包的包头进行服务版本、路由、请求源和认证鉴权的封装操作,对SOAP数据包或HTTP数据包的包头进行解析,进行认证鉴权、请求源、路由和服务版本的控制操作,获取SOAP数据包或HTTP数据包的包体; 模型映射层,用于将服务指标参数组装成服务查询指令; 连接层,用于将所述服务查询指令提交到数据库中执行,自数据库中获取服务数据。
10.根据权利要求9所述的协议栈,其特征在于,还包括: 接口层,还用于对所述SOAP数据包或HTTP数据包进行数字签名的操作,对SOAP数据包或HTTP数据包进行数字签名认证和数据解密。
11.根据权利要求9所述的协议栈,其特征在于,还包括: 接口层,还用于将数据服务对外发布,提供给服务请求方调用,并且通过企业服务总线控制数据服务的访问,实现数据服务的集成和统一控制。
12.根据权利要求9所述的协议栈,其特征在于,还包括:模型映射层,还用于实现数据服务的数据模型与数据库数据模型的映射。
13.一种数据服务协议栈,其特征在于,包括: 连接层,用于自数据库中获取服务数据; 模型映射层,用于将所述服务数据转换为关系型数据; 表示层,用于将所述关系型数据封装成可扩展标记语言数据; 会话层,用于获知服务的交互类型,根据服务的交互类型将所述可扩展标记语言数据转发至服务层; 服务层,用于将所述可扩展标记语言数据封装到SOAP数据包或HTTP数据包的包体中; 接口层,用于对所述SOAP数据包或HTTP数据包的包头进行应答结果、应答时间、应答编码和应答描述的控制信息的封装`操作。
全文摘要
本发明公开了一种数据服务请求应答方法及数据服务协议栈,其中,该方法包括服务请求方将服务指标参数封装到SOAP数据包;服务请求方将封装后的SOAP数据包发送给服务提供方,以使服务提供方将SOAP数据包或HTTP数据包进行解析处理后获得服务查询指令,自数据库中获取服务数据。本发明不仅可以实现应用与数据的解耦,还可以实现数据服务内部的解耦,使数据服务的内部实现细节更加简单、高效、清晰、灵活和可扩展。
文档编号H04L29/06GK103117983SQ201110362878
公开日2013年5月22日 申请日期2011年11月16日 优先权日2011年11月16日
发明者何鸿凌, 陶涛, 梁键, 郑培强, 汪钦堤, 肖万明, 王敏 申请人:中国移动通信集团公司, 福建新大陆软件工程有限公司