一种数据服务封装的装置及方法

文档序号:7983278阅读:407来源:国知局
专利名称:一种数据服务封装的装置及方法
技术领域
本发明涉及软件开发领域,具体来说,指一种数据服务封装的装置及方法。
背景技术
目前很多大型企业如通信、金融等行业的企业都已经开始实施SOA (service-oriented arcnitecture)。SOA提供了一种构建IT组织的标准和方法,通过建立可组合、可重用的服务体系来減少IT业务冗余,并加快项目开发的进程,这种体系能够使得IT部门效率更高、开发周期更短、项目分发更快,在帮助IT技术和业务整合方面有着深远的意义。而SOA实施的主要内容之一是将现有的各种数据资源,统ー以服务的形式进行封装和接入,方便资源的访问、共享和管理。因此如何能够高效的实现数据资源的服务封装便成为问题的关键。当前包括商业的Microsoft、IBM、oracle公司,以及开源的Apache组织等都推出了服务的实现方案,例如WCF、AXIS和CXF等Web服务产品,都可以用于进行数据服务的封装。同时针对数据服务封装技术的研究也在持续着,如ー篇申请号为“200910200014.7”的中国专利申请文件中介绍了ー种基于数据仓库的数据封装装置及业务数据获取方法。该发明用以解决业务应用软件和业务数据的耦合度较高的问题,同时提升业务数据的安全性。数据封装装置包括:数据封装应用插件模块,用于在接收到数据服务请求时发起服务调用请求,以及根据服务调用结果得到业务数据并返回;数据服务管理模块,用于根据服务调用请求调用相应的数据服务,根据数据服务的配置信息调用对应的协议插件,将服务调用请求进行协议转换,并调用数据服务对应的数据逻辑封装模块,以及使用调用的协议插件对业务数据进行编码,并返回服务调用結果;数据逻辑封装模块,用于将数据请求进行解析和处理,到数据仓库中获取业务数据,并将业务数据返回给数据服务管理模块。在ー篇申请号为“201010610308.X”的中国专利申请文件中介绍了ー种基于SOA的业务数据的服务封装方法及集成系统。该发明提供了一种基于SOA的业务数据的服务封装方法,其包括以下步骤:1)构建ー SOA集成开发系统平台;2)在所述的的业务层设置ー数据交换网关;3)将多数个第三方业务系统软件设置在资源层,通过所述数据交换网关对其业务数据封装为WEB服务,并设置在服务层;4)将多数个第三方业务系统软件的数据库系统设置在资源层,通过数据总线与所述全局数据服务器连接并交互通讯;5)在所述应用层设置一集成门户网站,该门户中集成有各第三方业务系统软件的登录链接。本发明还提供了一种实现上述方法的集成系统。本发明高效规范,可广泛适用于各种企业协同管理系统的开发。商业公司虽然提供了比较完整的服务实现方案,可以快速的实现服务接ロ的封装,但针对服务内部实现细节的封装,还是要交由开发人员自行编写代码来实现,导致服务内部的封装实现不统一,不规范,代码内部的耦合度较高,没法充分复用,实现比较复杂,月艮务的封装效率比较低下。开源组织的服务实现方案跟商业公司存在着相同的问题,主要着重于服务接ロ的封装,而忽略了服务的内部细节。申请号为“201010616910.4”的中国专利申请文件中介绍了ー种基于数据仓库的数据封装装置及业务数据获取方法。该发明主要针对数据仓库,用以解决业务应用软件和业务数据的耦合度较高的问题,但并不能用来提升数据服务的封装效率。申请号为“201010610308.X”的中国专利申请文件中介绍了ー种基于SOA的业务数据的服务封装方法及集成系统。该发明主要提供了比较完整的SOA相关方案,适用于各种企业协同管理系统的开发,但并不能用于解决数据服务本身的封装效率问题。总体来说,现有方案里然可以一定程度上解决数据服务的封装问题,但主要针对服务接ロ层面的封装,并不能解决数据服务内部的封装问题,也没有针对数据服务内部实现的封装工具,使得服务内部的封装实现不统一,不规范,代码内部的耦合度较高,没法充分复用,实现比较复杂,服务的封装效率比较低下。

发明内容
本申请针对现有技术的缺点,提供了一种数据服务封装的装置及其方法,其能够简化数据服务的实现,降低数据服务内部代码的耦合度,提升数据服务的封装效率。本发明提供了一种数据服务封装的方法,包括:A、对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求參数;B、根据所述数据服务请求參数形成数据服务信息查询指令;C、基于所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据;D、将所述数据源数据转换成关系型数据;将所述关系型数据封装到应答数据中;选择所述数据服务的会话模式;将所述应答数据封装到数据服务应答数据包的包体中;E、对所述数据服务应答数据包的包头进行控制信息的封装操作。本发明采取了上述技术方案以后,其规范了数据服务接ロ及数据服务封装内部实现的细节,其降低了数据服务内部代码的耦合度,提高代码的复用度,降低数据服务的开发工作量,提升数据服务的封装效率,弥补了现有业界在对数据服务接口和数据服务内部实现细节的空白。此外,本发明还提供了一种数据服务封装的装置,包括:模型映射层封装模块,用于对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求參数;根据所述数据服务请求參数形成数据服务信息查询指令;连接层封装模块,用于根据所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据;所述模型映射层封装模块,还用于将所述数据源数据转换成关系型数据;表示层封装模块,用于将该关系型数据封装到应答数据中;
会话层封装模块,用于根据所述数据服务选择服务会话模式;服务层封装模块,用于将所述应答数据封装到数据服务应答数据包的包体中;接ロ层封装模块,用于对所述数据服务应答数据包的包头进行控制信息的封装操作。本发明采取来的数据服务封装装置,能够根据数据服务的生成流程进行封装,进而简化了数据服务的实现,降低数据服务内部代码的耦合度,提高代码的复用度,降低数据服务的开发工作量,提升数据服务的封装效率。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。


下面结合附图对本发明进行详细的描述,以使得本发明的上述优点更加明确。图1是本发明数据服务的数据服务协议栈的流程示意图;图2是本发明数据服务封装的方法的流程示意图;图3是本发明数据服务封装的參数配置的流程示意图;图4是本发明数据服务封装的配置装置的示意图;图5是本发明的配置装置的接ロ层配置模块的示意图;图6是本发明数据服务封装的装置的结构示意图。
具体实施例方式以下结合附图和具体实施例对本发明进行详细的描述。现有数据服务封装的实现方案,主要针对服务接ロ层面的封装,并不能解决数据服务内部的封装问题,也没有针对数据服务内部实现的封装工具,使得服务内部的封装实现不统一,不规范,代码内部的耦合度较高,没法充分复用,实现比较复杂,服务的封装效率比较低下。本发明公开的数据服务封装的方法和装置,可以较好的解决上述问题,除了可以实现应用与数据的解耦,还可以实现数据服务内部实现的解耦,使数据服务的内部实现细节更加简单、高效、清晰、灵活、可扩展。为了较为清晰地对本发明进行描述,需要对本发明的数据服务协议栈进行介绍,在此,主要以数据服务提供方为例,如图1所示,所述服务提供方的数据服务协议栈共划分为六层,自上而下依次是连接层、模型映射层、表示层、会话层、服务层和接ロ层;而数据服务便是由具体数据源数据,经过数据服务协议栈中连接层到接ロ层的逐层封装而成。其中,所述数据服务协议栈的各层的功能如下:1、连接层连接层用来实现数据服务对各种数据源的连接,以及数据源数据的操作,从而获取数据服务所需要的数据源数据。其中,连接层通过数据源连接技术,例如JDBC、ODBC、FTP和SOAP等来实现对各种数据源的连接,并从数据源(即数据库)取得数据源数据。连接层从数据源取得数据后,以比特流形式的数据格式存在,如图3所示。2、模型映射层模型映射层用来实现数据服务的数据模型与数据源数据模型的映射,将数据服务的数据模型的查询语句转换为可执行的数据源的数据模型的查询语句,以及将连接层的数据源数据转换为关系型数据。模型映射层为表示层提供的数据服务的数据模型的查询语句接ロ,主要可以采用标准的SQL或者LSQL(LSQL为中国移动经营分析系统数据仓库逻辑查询语言CMCC-LSQL)来实现。其中,SQL无法屏蔽数据库和数据模型之间的差异,因此主要适用于速度要求较高,数据模型差异不大的应用场景;而LSQL主要适用于速度要求不高,数据模型差异较大的应用场景。LSQL的数据格式如下:
SELECT[客户.客户积分]FROM[客户]WHERE[客户.客户编码]=’ 200000001,SQL的数据格式如下:
SELECT CUS—POINT FROM CUSTOMER—INFO WHERE CUS—ID =, 200000001’如果是SQL,则直接提交给连接层执行,如果是LSQL,则需要经过模型映射后转换为可执行的物理SQL,再提交给连接层执行。连接层通过连接技术将SQL提交数据库执行,并将获取的数据源数据,返回给模型映射层,模型映射层为了方便表示层的数据表示,将数据源数据转换为关系型数据。3、表不层表示层用来表示数据服务交互过程中的数据,实现将模型映射层中的关系型数据表示为数据服务交互过程中所需要的数据格式。数据表示方式主要包括:XML、CSV和ニ进制的方式,在不同的数据服务交互过程中,数据的表示方式可能不同,如:在“在线请求-同步响应”的数据服务交互方式中采用XML作为数据的表示方式;在“在线请求-异步响应”和“发布-订阅”交互方式中的数据服务控制信息采用XML,而应答的数据内容采用CSV数据表示方式;在对数据格式有特殊要求的需求场合,可以采用ニ进制流的数据表示方式。ニ进制流数据表示方式主要是根据具体应用的需要或者用户的要求,生成相应文件类型的数据,如Excel文件类型的数据。4、会话层会话层是服务请求方与服务提供方进行交互会话的场所,会话层通过不同的交互方式来表示数据服务的交互过程。会话层的数据交互方式有“在线请求-同步响应方式”、“在线请求-异步响应方式”和“发布-订阅方式”。 该三种交互方式(即会话协商方式)的选择主要由数据的服务提供方决定,服务提供方根据自身数据量、实时性要求等特点,在数据服务开发时确定采用何种数据交互方式。具体说明如下:(I)在线请求-同步响应方式在线请求-同步响应方式是指服务请求方向服务提供方发送数据请求,并进入阻塞状态,等待服务提供方的响应数据返回。服务提供方在接收到数据请求后,进行一系列的业务处理获取响应数据,并将响应数据回复给服务请求方。服务请求方在接收到响应数据后,中止阻塞状态继续运行。该方式适用于响应速度比较快,且数据量比较小的场合。由于发送数据请求的服务请求方需要阻塞运行,因此如果响应的速度比较慢,会造成服务请求方长时间阻塞不能运行,很可能会影响到服务请求方应用的正常运行;同样,如果传输的数据量比较大,那么传输的过程中请求数据的服务也需要等待,造成等待时间过长。(2)在线请求-异步响应方式在线请求-异步响应方式是指服务请求方调用服务提供方的“准备数据方法”,向服务提供方发送数据请求。服务提供方在接收到数据请求后,返回请求成功标志、数据准备的预估处理时间、建议定期查询数据准备情况的时间间隔和数据的获取方式等消息。服务请求方在获得上述消息后可继续运行,不需要长时间处于阻塞状态。服务提供方在返回上述消息后进行一系列的业务处理以准备数据。服务请求方在数据准备的预估处理时间到达后,按照建议定期查询数据准备情况的时间间隔,服务请求方向服务提供方发送查询数据准备情况的请求。如果数据未准备完毕,服务提供方返回数据未准备完毕的消息,服务请求方则在建议的时间间隔后继续查询;如果数据准备完毕,服务提供方返回包含何时何地如何获取数据的消息。服务请求方即可以按照给定的时间到给定的地点(FTP或HTTP地址)在给定的有效期内自行决定何时使用给定的方式(FTP或HTTP协议)取得数据。该方式适用于被请求的数据量产生时间比较长,或者数据量较大的场合。因为采用异步方式,不需要长时间的等待与阻塞,服务请求方可以正常运行其它功能,仅需要在接到数据准备完毕的信号之后再处理请求的数据。(3)发布-订阅方式发布-订阅方式是指服务请求方向服务提供方的“注册方法”注册请求数据的要求和通知服务。服务提供方在接到服务请求方的注册消息后,返回请求成功的标志。服务请求方在获得上述注册消息后,可以继续运行而不需要长时间处于阻塞状态,服务提供方在返回上述注册消息后,进行一系列的业务处理以准备数据。当数据准备完毕,服务提供方调用服务请求方注册的通知服务,告知服务请求方数据准备情况和相关的获取信息。服务请求方回复成功或失败的标志,服务请求方即可以按照给定的时间到给定的地点(FTP或HTTP地址)在给定的有效期内自行决定何时使用给定的方式(FTP或HTTP协议)取得数据,从而实现数据的触发式交互。该方式适用于触发性传输各种数据量的数据封装服务,由于发布-订阅方式本质上是异步响应方式,因此服务请求方不需要长时间的等待与阻塞,可以正常运行其它功能。5、服务层服务层主要通过服务实现技术对表示层的数据做进一歩的封装,把数据内容的消息体封装到数据服务的报文体中,并实现具体的数据服务。服务层数据服务的实现主要采用Web Service技术,其中Web Service的服务提供方可以通过SOAP或者REST架构来实现。基于SOAP实现的数据服务,主要将表示层的数据内容消息体封装到SOAP协议的Body中,而基于REST实现的数据服务,主要将消息体封装到HTTP协议的报文体中。6、接ロ层接ロ层是在服务层的基础上,实现对数据服务消息头的安全、版本、路由和控制信息等的进ー步封装,并将数据服务对外发布,提供给服务请求方调用,同时通过服务接入网关来控制数据服务的访问,实现数据服务的集成和统ー控制。其中,服务接入网关用于解决数据服务接入网络的安全问题,可以独立部署,统ー负责数据服务的请求接入。对数据服务的访问,只能通过服务接入网关,起到网络隔离的作用,保障了数据服务内部网络的安全,提升了数据服务的对外开放能力,也増加了系统部署的灵活性。服务管理接收服务接入网关转发的服务访问请求,对数据服务的访问进行安全、版本、路由、负载分摊等控制。安全管理主要用来保障服务访问和服务交换数据的安全。服务安全管理包括信息交換安全、认证鉴权、权限管理和可靠请求源管理等功能。根据本发明的具体数据源数据通过连接层、模型映射层、表示层、会话层、服务层和接ロ层最终形成数据服务,能够实现应用与数据的解耦,还可以实现数据服务内部实现的解耦,使数据服务的内部实现细节更加简单、高效、清晰、灵活、可扩展。
_2] 方法实施例一:以下对本发明的具体数据服务封装的方法进行详细描述;其中,如图2所示,根据本发明,所述方法具体包括下列步骤:SlOl:对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求參数;根据本发明,数据服务请求方发起的数据服务请求被发送到数据提供方处,数据提供方根据所述的数据服务请求,对所述数据服务请求进行信息,并获取到具体的数据服务请求參数;例如,以KPI服务为例,所述KPI服务的请求报文具体如下表所示,该请求报文包括:服务鉴权信息、请求数据源信息、服务版本号信息、路由信息、KPI请求參数。
权利要求
1.一种数据服务封装的方法,包括: A、对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求參数; B、根据所述数据服务请求參数形成数据服务信息查询指令; C、基于所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据; D、将所述数据源数据转换成关系型数据;将所述关系型数据封装到应答数据中;选择所述数据服务的会话模式;将所述应答数据封装到数据服务应答数据包的包体中; E、对所述数据服务应答数据包的包头进行控制信息的封装操作。
2.根据权利要求1所述的数据服务封装的方法,其特征在于,步骤B中,具体包括: 将所述数据服务请求參数转换成SQL格式的数据服务信息查询指令。
3.根据权利要求2所述的数据服务封装的方法,其特征在于,步骤C中,具体包括: 根据所述SQL格式的数据服务信息查询指令发起对具体数据源的数据源数据获取请求; 基于所述查询指令从所述数据服务所对应的数据源中获取到数据源数据。
4.根据权利要求1所述的数据服务封装的方法,其特征在于,步骤D中,具体包括: 将所述数据源数据转换成关系型数据;将该关系型数据封装到XML或CSV或者ニ进制格式的应答数据中; 选择所述数据服务的会话模式; 将所述XML或CSV或者ニ进制格式的应答数据封装到SOAP或REST格式的数据服务应答数据包的包体中。
5.根据权利要求4所述的数据服务封装的方法,其特征在于,步骤E中,进ー步具体包括: 将包括数据服务的访问鉴权信息、路由、负载分摊和请求数据源信息的控制信息封装到数据服务数据数据包的包头中;封装成功后返回给数据服务请求方。
6.一种数据服务封装的装置,包括: 模型映射层封装模块,用于对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求參数; 根据所述数据服务请求參数形成数据服务信息查询指令; 连接层封装模块,用于根据所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据; 所述模型映射层封装模块,还用于将所述数据源数据转换成关系型数据; 表示层封装模块,用于将该关系型数据封装到应答数据中; 会话层封装模块,用于根据所述数据服务选择服务会话模式; 服务层封装模块,用于将所述应答数据封装到数据服务应答数据包的包体中; 接ロ层封装模块,用于对所述数据服务应答数据包的包头进行控制信息的封装操作。
7.根据权利要求6所述的数据服务封装的装置,其特征在于,所述模型映射层封装模块,具体包括: SQL解析単元,用于将所述数据服务请求參数转换成SQL格式的数据服务信息查询指令。
8.根据权利要求7所述的数据服务封装的装置,其特征在于,所述模型映射层封装模块,还包括: 数据查询単元,用于根据所述SQL格式的数据服务信息查询指令和所述数据源的访问參数发起对具体数据源的数据源数据获取请求; 基于所述查询指令和访问參数从具体的数据源中获取到数据源数据。
9.根据权利要求6或7所述的数据服务封装的装置,其特征在干,所述表示层封装模块,包括格式封装単元,用于将该关系型数据封装到XML或CSV或者ニ进制格式的应答数据中; 所述服务层封装模块,包括数据包封装単元,用于将所述XML或CSV或者ニ进制格式的应答数据封装到SOAP或REST格式的数据服务应答数据包的包体中。
10.根据权利要求9所述的数据服务封装的装置,其特征在干,所述接ロ层封装模块,包括: 信息封装単元,用于将包括数据服务的访问鉴权信息、路由、负载分摊和请求数据源信息的控制信息封装到数据服务应答数据数据包的包头中; 信息发送单元,用于将所述数据服务应答数据数据包发送给数据服务请求方。
全文摘要
本发明公开了一种数据服务封装的方法和装置,具体包括A、对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求参数;B、根据所述数据服务请求参数形成数据服务信息查询指令;C、基于所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据;D、将所述数据源数据转换成关系型数据;将所述关系型数据封装到应答数据中;选择所述数据服务的会话模式;将所述应答数据封装到数据服务应答数据包的包体中;E、对所述数据服务应答数据包的包头进行控制信息的封装操作。本发明可以简化数据服务的实现,降低数据服务内部代码的耦合度。
文档编号H04L29/08GK103139234SQ201110375778
公开日2013年6月5日 申请日期2011年11月23日 优先权日2011年11月23日
发明者何鸿凌, 陶涛, 梁键, 郑培强, 汪钦堤, 肖万明, 王敏 申请人:中国移动通信集团公司, 福建新大陆软件工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1