CN103139234B - 一种数据服务封装的装置及方法 - Google Patents
一种数据服务封装的装置及方法 Download PDFInfo
- Publication number
- CN103139234B CN103139234B CN201110375778.7A CN201110375778A CN103139234B CN 103139234 B CN103139234 B CN 103139234B CN 201110375778 A CN201110375778 A CN 201110375778A CN 103139234 B CN103139234 B CN 103139234B
- Authority
- CN
- China
- Prior art keywords
- data
- services
- service
- encapsulation
- reply
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据服务封装的方法和装置,具体包括:A、对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求参数;B、根据所述数据服务请求参数形成数据服务信息查询指令;C、基于所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据;D、将所述数据源数据转换成关系型数据;将所述关系型数据封装到应答数据中;选择所述数据服务的会话模式;将所述应答数据封装到数据服务应答数据包的包体中;E、对所述数据服务应答数据包的包头进行控制信息的封装操作。本发明可以简化数据服务的实现,降低数据服务内部代码的耦合度。
Description
技术领域
本发明涉及软件开发领域,具体来说,指一种数据服务封装的装置及方法。
背景技术
目前很多大型企业如通信、金融等行业的企业都已经开始实施SOA(service-orientedarchitecture)。
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、会话层
会话层是服务请求方与服务提供方进行交互会话的场所,会话层通过不同的交互方式来表示数据服务的交互过程。
会话层的数据交互方式有“在线请求-同步响应方式”、“在线请求-异步响应方式”和“发布-订阅方式”。
该三种交互方式(即会话协商方式)的选择主要由数据的服务提供方决定,服务提供方根据自身数据量、实时性要求等特点,在数据服务开发时确定采用何种数据交互方式。具体说明如下:
(1)在线请求-同步响应方式
在线请求-同步响应方式是指服务请求方向服务提供方发送数据请求,并进入阻塞状态,等待服务提供方的响应数据返回。服务提供方在接收到数据请求后,进行一系列的业务处理获取响应数据,并将响应数据回复给服务请求方。服务请求方在接收到响应数据后,中止阻塞状态继续运行。
该方式适用于响应速度比较快,且数据量比较小的场合。由于发送数据请求的服务请求方需要阻塞运行,因此如果响应的速度比较慢,会造成服务请求方长时间阻塞不能运行,很可能会影响到服务请求方应用的正常运行;同样,如果传输的数据量比较大,那么传输的过程中请求数据的服务也需要等待,造成等待时间过长。
(2)在线请求-异步响应方式
在线请求-异步响应方式是指服务请求方调用服务提供方的“准备数据方法”,向服务提供方发送数据请求。服务提供方在接收到数据请求后,返回请求成功标志、数据准备的预估处理时间、建议定期查询数据准备情况的时间间隔和数据的获取方式等消息。服务请求方在获得上述消息后可继续运行,不需要长时间处于阻塞状态。服务提供方在返回上述消息后进行一系列的业务处理以准备数据。服务请求方在数据准备的预估处理时间到达后,按照建议定期查询数据准备情况的时间间隔,服务请求方向服务提供方发送查询数据准备情况的请求。如果数据未准备完毕,服务提供方返回数据未准备完毕的消息,服务请求方则在建议的时间间隔后继续查询;如果数据准备完毕,服务提供方返回包含何时何地如何获取数据的消息。服务请求方即可以按照给定的时间到给定的地点(FTP或HTTP地址)在给定的有效期内自行决定何时使用给定的方式(FTP或HTTP协议)取得数据。
该方式适用于被请求的数据量产生时间比较长,或者数据量较大的场合。因为采用异步方式,不需要长时间的等待与阻塞,服务请求方可以正常运行其它功能,仅需要在接到数据准备完毕的信号之后再处理请求的数据。
(3)发布-订阅方式
发布-订阅方式是指服务请求方向服务提供方的“注册方法”注册请求数据的要求和通知服务。服务提供方在接到服务请求方的注册消息后,返回请求成功的标志。服务请求方在获得上述注册消息后,可以继续运行而不需要长时间处于阻塞状态,服务提供方在返回上述注册消息后,进行一系列的业务处理以准备数据。当数据准备完毕,服务提供方调用服务请求方注册的通知服务,告知服务请求方数据准备情况和相关的获取信息。服务请求方回复成功或失败的标志,服务请求方即可以按照给定的时间到给定的地点(FTP或HTTP地址)在给定的有效期内自行决定何时使用给定的方式(FTP或HTTP协议)取得数据,从而实现数据的触发式交互。
该方式适用于触发性传输各种数据量的数据封装服务,由于发布-订阅方式本质上是异步响应方式,因此服务请求方不需要长时间的等待与阻塞,可以正常运行其它功能。
5、服务层
服务层主要通过服务实现技术对表示层的数据做进一步的封装,把数据内容的消息体封装到数据服务的报文体中,并实现具体的数据服务。
服务层数据服务的实现主要采用WebService技术,其中WebService的服务提供方可以通过SOAP或者REST架构来实现。基于SOAP实现的数据服务,主要将表示层的数据内容消息体封装到SOAP协议的Body中,而基于REST实现的数据服务,主要将消息体封装到HTTP协议的报文体中。
6、接口层
接口层是在服务层的基础上,实现对数据服务消息头的安全、版本、路由和控制信息等的进一步封装,并将数据服务对外发布,提供给服务请求方调用,同时通过服务接入网关来控制数据服务的访问,实现数据服务的集成和统一控制。
其中,服务接入网关用于解决数据服务接入网络的安全问题,可以独立部署,统一负责数据服务的请求接入。对数据服务的访问,只能通过服务接入网关,起到网络隔离的作用,保障了数据服务内部网络的安全,提升了数据服务的对外开放能力,也增加了系统部署的灵活性。
服务管理接收服务接入网关转发的服务访问请求,对数据服务的访问进行安全、版本、路由、负载分摊等控制。
安全管理主要用来保障服务访问和服务交换数据的安全。服务安全管理包括信息交换安全、认证鉴权、权限管理和可靠请求源管理等功能。
根据本发明的具体数据源数据通过连接层、模型映射层、表示层、会话层、服务层和接口层最终形成数据服务,能够实现应用与数据的解耦,还可以实现数据服务内部实现的解耦,使数据服务的内部实现细节更加简单、高效、清晰、灵活、可扩展。
方法实施例一:
以下对本发明的具体数据服务封装的方法进行详细描述;
其中,如图2所示,根据本发明,所述方法具体包括下列步骤:
S101:对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求参数;
根据本发明,数据服务请求方发起的数据服务请求被发送到数据提供方处,数据提供方根据所述的数据服务请求,对所述数据服务请求进行信息,并获取到具体的数据服务请求参数;
例如,以KPI服务为例,所述KPI服务的请求报文具体如下表所示,该请求报文包括:服务鉴权信息、请求数据源信息、服务版本号信息、路由信息、KPI请求参数。
其中,服务鉴权信息、请求数据源信息、服务版本号信息、路由信息主要是用于进行各种鉴权和访问控制,在此,所述数据服务请求参数是指KPI请求参数。
S102:根据所述数据服务请求参数形成数据服务信息查询指令;
根据本发明,需要根据预先设定的数据服务请求参数形成数据服务信息查询指令之间映射关系进行转换,具体包括:
事前对所述映射关系进行设置;例如,设置数据服务请求参数与具体查询SQL查询参数的映射关系;其中,如果是LSQL语句,则对该LSQ语句进行转换,将其转为最终的SQL语句映射;
由此,根据上述的事前配置,则在本步骤中,可以将所述数据服务请求参数形成具体的SQL格式的数据服务信息查询指令;
S103:基于所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据;
具体来说,在该实施例中,需要事前对不同的数据服务与不同的数据源之间的关系进行设置,由此,可以根据所述SQL格式的数据服务信息查询指令发起对具体数据源的数据源数据获取请求;
同时,所述具体数据源响应所述查询指令,并返回数据源数据。
一般地,数据源的属性包括下列几种:数据源的连接池类型、数据源连接地址、数据源连接协议、用户名和用户密码,且不同的数据服务,其所对应的数据源和数据源属性一般都不相同。
S104:将所述数据源数据转换成关系型数据;将该关系型数据封装到应答数据中;根据所述数据服务选择服务会话模式;将所述应答数据封装到数据服务应答数据包的包体中;
具体来说,根据本发明所提出的六层协议栈,在获取到具体数据源数据以后,按照下列的方式进行封装:
将所述数据源数据转换成关系型数据,以方便后续操作;
将该关系型数据封装到XML或CSV或者二进制格式的应答数据中;其中,XML、CSV、二进制的格式根据具体的数据服务类型而设定;
选择所述数据服务的会话模式;
其中,会话模式根据具体的数据服务的会话模式而选定,其主要反映着数据服务的交互方式;
将所述XML或CSV或者二进制格式的应答数据封装到SOAP或REST格式的数据服务应答数据包的包体中。
S105:对所述数据服务数据数据包的包头进行控制信息的封装操作。
具体来说,包括:将包括数据服务的访问鉴权信息、路由、负载分摊和请求数据源信息的控制信息封装到数据服务数据应答包的包头中;封装成功后返给数据服务请求方。
本发明在采取了上述技术方案以后,通过事前获取到对应的配置参数,进而简化了数据服务的实现过程,降低了数据服务内部代码的耦合度,提高了代码的复用度,降低了数据服务的开发工作量,进而提升了数据服务的封装效率。
方法实施例二:
在实施上述数据服务封装的方法之前,还需要对上述步骤中的具体转换关系或者操作参数进行事前开发并设置,也可以通过API接口调用的方式实现,在该配置步骤中,主要是根据不同的数据服务设置不同的配置参数。
其中,图3是本发明所述数据服务封装的参数配置流程示意图;
如图3所述,所述参数配置的具体实现步骤包括:
S201:打开数据服务封装的配置装置;
该配置装置如图5所示,具体包括连接层配置模块、模型映射层配置模块、服务层配置模块、会话层配置模块、表示层配置模块、接口层配置模块,其用于对上述步骤S101~S105中的操作步骤中针对具体的数据服务所采取的各种参数进行配置。
由此,该种数据服务封装的方法的配置方法包括下列步骤:
S202:在连接层配置模块进行数据源连接的参数配置,以实现数据服务到具体数据源的连接功能;具体来说,数据源的连接参数主要有以下几种:
数据源的连接池类型、数据源连接地址、数据源连接协议、用户名和用户密码。
例如,如果要配置到一个ORACLE数据库,则其主要需要配置的参数包括:
驱动类型=oracle10g的jdbc驱动;
驱动类型=oracle10g的jdbc驱动
连接地址=″jdbc:oracle:thin:127.0.0.1:1521:ywxx″
用户名=″web″
密码=″123789xwm″
且在上述步骤完成以后,便可以配置连接池。
其中,在该实施例,驱动类型还可以选取ODBC、FTP和SOAP等连接方式,根据具体的数据源的连接属性而设定。
S203:在模型映射层配置模块进行数据模型与SQL映射的配置,具体来说,包括下列的几种配置方式:
设置数据服务请求参数和应答参数与具体的SQL查询语句的映射关系;或者配置请求LSQL语句的逻辑模型和物理模型的映射关系,实现数据服务请求数据模型到最终SQL语句的映射;
并且,还需要设定SQL查询返回的数据源数据到具体的应答数据的映射关系。
例如,在一个实施例中,主要根据不同的服务设置不同的配置参数,例如,用于设置服务的请求参数和应答结果参数与查询SQL语句中select查询字段和查询where条件中的字段进行映射。
例如“KPI服务”的请求参数是:
KPI_ID
KPI_TIME
则对该KPI服务的应答结果参数是:
KPI_ID
KPINAME
KPI_TIME
KPI_CITY
KPI_VALUE
由此,根据上述对应关系,对应的执行SQL语句是:
SelectKPI_ID,KPI_NAME,KPI_CITY,KPI_VALUEfromkpi_total_valuewhereKPI_ID=$KPI_IDandKPI_TIME=$KPI_TIME
由此,通过上述配置进而实现以上的请求参数和应答参数,与SQL语句的映射操作的,方便最终生成可执行SQL语句,然后提交到数据库中执行,以获取到具体的数据源数据。
其中,在一个实施例中,所述数据源数据的表达格式如下:
并且,根据上述配置关系,所述数据源数据还能够转换为关系型数据;在该实施例中,所述关系型数据的表达格式如下所示。
此外,本发明在该实施例中,还需要进行下列的操作:
S204:表示层配置模块对数据源数据和具体的应答数据之间的转换关系进行事前配置;由于根据所述应答数据有XML、CSV和二进制三种不同的表示格式,因此,需要对具体的数据服务和对应的XML、CSV和二进制的表示格式进行具体的格式上的配置;
例如,以KPI服务为例,其XML格式的应答数据的结果数据的表示格式如下;
S205:会话层配置模块进行服务会话模式的配置,以便于步骤S104中进行操作,具体来说,由于所述会话模式有“在线请求-同步响应”、“在线请求-异步响应”和“发布-订阅”三种会话模式,且会话模式的不同,其数据服务的应答响应方式也不一样;
例如KPI服务是实时交互的,服务请求方需在线等待KPI服务的应答结果,因此针对该种数据服务设置其采用“在线请求-同步响应”模式,该模式的工作原理已在前进行说明,在此不进行详细说明。
S206:服务层配置模块进行数据服务包的封装的参数配置,例如,在实施例中,其需要设置具体的数据服务名称、服务协议类型、服务部署地址和服务版本号的服务参数,其中,所述服务协议类型包括SOAP或者REST;
例如,所述KPI服务需要配置的参数如下:
服务名称=KpiService
服务协议类型=SOAP
服务部署地址=/services/KpiService
服务版本号=1.0
因此,在所述服务层配置模块上配置成功后就可以生成数据服务,例如,根据该实施例,所述KPI数据服务的的SOAP格式的数据服务包(应答报文)的格式如下所示。
S207:与上述方法实施例一相对应,还需要进行控制信息的封装,以最终生成数据服务,具体来说,在该步骤之中,
在接口层配置模块中进行服务安全、路由、负载等配置,例如,进行数据服务的安全、路由和负载分摊等配置,接口层配置成功后会自动进行数据服务的注册和发布,由此,数据服务请求方便可以基于该发布的数据服务请求数据服务。
此外,该配置方法中,还可以进行下列的操作:
测试数据服务的封装是否成功,其中,如果成功,则可以看到自动生成的WSDL服务描述文档。
其中,根据本发明的一个实施例,所述接口层配置模块对外公开服务的界面如下图5所示,其中,图中的添加按钮就相当于注册,注册的功能相当于把服务层实现的数据服务对外发布,提供给服务请求方访问。
其中,进行上述封装以后,便完成了最终的数据服务封装的配置过程,数据服务封装配置完以后,服务请求方对服务的访问就要符合接口层的配置规则,例如KPI的请求报文中的请求头信息就需要包含相应的鉴权、请求源、路由等信息,以便接口层进行解析,并由此进行上述步骤S101~S105。
本发明采取了上述技术方案以后,规范了数据服务接口以及内部实现细节的封装实现,通过可配置的封装模式,简化了数据服务的实现,降低数据服务内部代码的耦合度,提高代码的复用度,降低数据服务的开发工作量,提升数据服务的封装效率,且该技术方案弥补了现有业界对于数据服务接口和数据服务内部实现细节的同时进行配置化封装处理的空白。
装置实施例一:
以下针对本发明的装置进行详细说明,其中,如图6所示,根据本发明,所述数据服务封装的装置,具体包括:
模型映射层封装模块,用于对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求参数;
根据所述数据服务请求参数形成数据服务信息查询指令;
连接层封装模块,用于根据所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据;
所述模型映射层封装模块,还用于将所述数据源数据转换成关系型数据;
表示层封装模块,用于将该关系型数据封装到应答数据中;
会话层封装模块,用于根据所述数据服务选择服务会话模式;
服务层封装模块,用于将所述应答数据封装到数据服务应答数据包的包体中;
接口层封装模块,用于对所述数据服务应答数据包的包头进行控制信息的封装操作。
并且,根据本实施例,所述模型映射层封装模块,具体包括:
SQL解析单元,用于将所述数据服务请求参数转换成SQL格式的数据服务信息查询指令。
此外,所述模型映射层封装模块,还包括:
数据查询单元,用于根据所述SQL格式的数据服务信息查询指令和所述数据源的访问参数发起对具体数据源的数据源数据获取请求;
基于所述查询指令和访问参数从具体的数据源中获取到数据源数据。
并且,所述表示层封装模块,包括格式封装单元,用于将该关系型数据封装到XML或CSV或者二进制格式的应答数据中;
所述服务层封装模块,包括数据包封装单元,用于将所述XML或CSV或者二进制格式的应答数据封装到SOAP或REST格式的数据服务应答数据包的包体中。
在优选的实施例中,所述接口层封装模块,包括:
信息封装单元,用于将包括数据服务的访问鉴权信息、路由、负载分摊和请求数据源信息的控制信息封装到数据服务应答数据数据包的包头中;
信息发送单元,用于将所述数据服务应答数据数据包发送给数据服务请求方。
本发明采取来的数据服务封装装置,能够根据数据服务的生成流程进行封装,进而简化了数据服务的实现,降低数据服务内部代码的耦合度,提高代码的复用度,降低数据服务的开发工作量,提升数据服务的封装效率。
此外,图4是本发明实施例中对于上述数据服务封装的装置进行配置的装置,其主要用于对该数据服务封装的装置的各个模块进行事前配置,例如,通过调用数据服务封装的装置的API接口进行具体操作,如图4所示,其包括了:
连接层配置模块、模型映射层配置模块、表示层配置模块、会话层配置模块、服务层配置模块和接口层配置模块,其工作原理已在方法实施例二中进行了具体描述,在此不再赘述。
本发明采取了上述技术方案以后,由于可以进行可配置的封装,由此,简化了数据服务的实现,降低数据服务内部代码的耦合度,提高代码的复用度,降低数据服务的开发工作量,提升数据服务的封装效率。
本发明采取了上述技术方案以后,规范了数据服务接口以及内部实现细节的封装实现,通过可配置的封装模式,简化了数据服务的实现,降低数据服务内部代码的耦合度,提高代码的复用度,降低数据服务的开发工作量,提升数据服务的封装效率,且该技术方案弥补了现有业界对于数据服务接口和数据服务内部实现细节的同时进行配置化封装处理的空白。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据服务封装的方法,其特征在于,包括:
步骤A、对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求参数;
步骤B、根据所述数据服务请求参数形成数据服务信息查询指令;
步骤C、基于所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据;
步骤D、将所述数据源数据转换成关系型数据;将所述关系型数据封装到应答数据中;选择所述数据服务的会话模式;将所述应答数据封装到数据服务应答数据包的包体中;
步骤E、对所述数据服务应答数据包的包头进行控制信息的封装操作;
在所述步骤A之前还包括:
在连接层配置模块进行数据源连接的参数配置,在模型映射层配置模块进行数据模型与SQL映射的配置,表示层配置模块对数据源数据和具体的应答数据之间的转换关系进行事前配置,会话层配置模块进行服务会话模式的配置,服务层配置模块进行数据服务包的封装的参数配置,在接口层配置模块中进行服务安全、路由、负载配置。
2.根据权利要求1所述的数据服务封装的方法,其特征在于,步骤B中,具体包括:
将所述数据服务请求参数转换成SQL格式的数据服务信息查询指令。
3.根据权利要求2所述的数据服务封装的方法,其特征在于,步骤C中,具体包括:
根据所述SQL格式的数据服务信息查询指令发起对具体数据源的数据源数据获取请求;
基于所述查询指令从所述数据服务所对应的数据源中获取到数据源数据。
4.根据权利要求1所述的数据服务封装的方法,其特征在于,步骤D中,具体包括:
将所述数据源数据转换成关系型数据;将该关系型数据封装到XML或CSV或者二进制格式的应答数据中;
选择所述数据服务的会话模式;
将所述XML或CSV或者二进制格式的应答数据封装到SOAP或REST格式的数据服务应答数据包的包体中。
5.根据权利要求4所述的数据服务封装的方法,其特征在于,步骤E中,进一步具体包括:
将包括数据服务的访问鉴权信息、路由、负载分摊和请求数据源信息的控制信息封装到数据服务数据数据包的包头中;封装成功后返回给数据服务请求方。
6.一种数据服务封装的装置,其特征在于,包括:
模型映射层封装模块,用于对数据服务请求方发起的数据服务请求进行解析并获取到数据服务请求参数;
根据所述数据服务请求参数形成数据服务信息查询指令;
连接层封装模块,用于根据所述数据服务信息查询指令从所述数据服务所对应的数据源中获取到数据源数据;
所述模型映射层封装模块,还用于将所述数据源数据转换成关系型数据;
表示层封装模块,用于将该关系型数据封装到应答数据中;
会话层封装模块,用于根据所述数据服务选择服务会话模式;
服务层封装模块,用于将所述应答数据封装到数据服务应答数据包的包体中;
接口层封装模块,用于对所述数据服务应答数据包的包头进行控制信息的封装操作;
所述数据服务封装装置与对数据服务封装装置进行配置的装置相连,该配置装置包括:
连接层配置模块,用于进行数据源连接的参数配置;
模型映射层配置模块,用于进行数据模型与SQL映射的配置;
表示层配置模块,用于对数据源数据和具体的应答数据之间的转换关系进行事前配置;
会话层配置模块,用于进行服务会话模式的配置;
服务层配置模块,用于进行数据服务包的封装的参数配置;
接口层配置模块,用于进行服务安全、路由、负载配置。
7.根据权利要求6所述的数据服务封装的装置,其特征在于,所述模型映射层封装模块,具体包括:
SQL解析单元,用于将所述数据服务请求参数转换成SQL格式的数据服务信息查询指令。
8.根据权利要求7所述的数据服务封装的装置,其特征在于,所述模型映射层封装模块,还包括:
数据查询单元,用于根据所述SQL格式的数据服务信息查询指令和所述数据源的访问参数发起对具体数据源的数据源数据获取请求;
基于所述查询指令和访问参数从具体的数据源中获取到数据源数据。
9.根据权利要求6或7所述的数据服务封装的装置,其特征在于,所述表示层封装模块,包括格式封装单元,用于将该关系型数据封装到XML或CSV或者二进制格式的应答数据中;
所述服务层封装模块,包括数据包封装单元,用于将所述XML或CSV或者二进制格式的应答数据封装到SOAP或REST格式的数据服务应答数据包的包体中。
10.根据权利要求9所述的数据服务封装的装置,其特征在于,所述接口层封装模块,包括:
信息封装单元,用于将包括数据服务的访问鉴权信息、路由、负载分摊和请求数据源信息的控制信息封装到数据服务应答数据数据包的包头中;
信息发送单元,用于将所述数据服务应答数据数据包发送给数据服务请求方。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110375778.7A CN103139234B (zh) | 2011-11-23 | 2011-11-23 | 一种数据服务封装的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110375778.7A CN103139234B (zh) | 2011-11-23 | 2011-11-23 | 一种数据服务封装的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103139234A CN103139234A (zh) | 2013-06-05 |
CN103139234B true CN103139234B (zh) | 2016-01-20 |
Family
ID=48498539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110375778.7A Active CN103139234B (zh) | 2011-11-23 | 2011-11-23 | 一种数据服务封装的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103139234B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6473500B2 (ja) * | 2014-09-17 | 2019-02-20 | コンヴィーダ ワイヤレス, エルエルシー | サービス層を介する第三者サービスへのアクセスを可能にするシステムおよび方法 |
CN105141452A (zh) * | 2015-08-07 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种基于cxf的高性能服务系统及方法 |
CN106686021B (zh) * | 2015-11-05 | 2021-06-29 | 北京京东尚科信息技术有限公司 | 一种服务调用方法和网关 |
CN105573970B (zh) * | 2015-12-18 | 2020-03-17 | 航天恒星科技有限公司 | 一种数据包重构方法及装置 |
CN106911692A (zh) * | 2017-02-27 | 2017-06-30 | 济南浪潮高新科技投资发展有限公司 | 一种基于WebService的海量数据传输优化方法 |
CN108255908A (zh) * | 2017-06-30 | 2018-07-06 | 勤智数码科技股份有限公司 | 一种一键式服务封装方法及系统 |
CN107295007A (zh) * | 2017-07-31 | 2017-10-24 | 浪潮天元通信信息系统有限公司 | 一种支持多种协议的服务方法、装置及系统 |
CN107798098A (zh) * | 2017-10-27 | 2018-03-13 | 链家网(北京)科技有限公司 | 一种实现动态接口字段的方法及装置 |
CN108427550B (zh) * | 2018-02-13 | 2021-09-03 | 深圳太极云软技术有限公司 | 一种Web服务生成方法、装置及设备 |
CN108989427B (zh) * | 2018-07-20 | 2019-07-16 | 北京开普云信息科技有限公司 | 一种基于多源信息聚合的公共服务系统及其构建方法 |
CN109857379B (zh) * | 2019-01-18 | 2023-09-05 | 广州九尾信息科技有限公司 | 一种数据服务封装的方法及装置 |
CN110955712A (zh) * | 2019-11-26 | 2020-04-03 | 北京天元创新科技有限公司 | 基于多数据源的开发api处理方法及装置 |
CN112445811A (zh) * | 2020-11-09 | 2021-03-05 | 广东华兴银行股份有限公司 | 基于sql配置的数据服务方法、装置、存储介质及组件 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866835A (zh) * | 2006-03-31 | 2006-11-22 | 华为技术有限公司 | 网络中数据传输的方法 |
CN101459674A (zh) * | 2008-12-30 | 2009-06-17 | 国家电网公司 | 一种服务访问方法及系统 |
CN103117983A (zh) * | 2011-11-16 | 2013-05-22 | 中国移动通信集团公司 | 数据服务请求应答方法和数据服务协议栈 |
-
2011
- 2011-11-23 CN CN201110375778.7A patent/CN103139234B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866835A (zh) * | 2006-03-31 | 2006-11-22 | 华为技术有限公司 | 网络中数据传输的方法 |
CN101459674A (zh) * | 2008-12-30 | 2009-06-17 | 国家电网公司 | 一种服务访问方法及系统 |
CN103117983A (zh) * | 2011-11-16 | 2013-05-22 | 中国移动通信集团公司 | 数据服务请求应答方法和数据服务协议栈 |
Also Published As
Publication number | Publication date |
---|---|
CN103139234A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103139234B (zh) | 一种数据服务封装的装置及方法 | |
CN103117983B (zh) | 数据服务请求应答方法和数据服务协议栈的设计方法 | |
CN112925660B (zh) | 一种工业互联的信息交互系统 | |
JP2022511008A (ja) | CoAPによるOPC UAメッセージの伝送方法及びサーバ | |
CN101808051B (zh) | 应用整合网关及其控制方法 | |
CN113268319A (zh) | 基于微服务架构的业务流程定制与分布式流程调度方法 | |
CN110022289A (zh) | 数据传输方法、装置及系统 | |
CN107133024A (zh) | 基于osgi框架的业务管理系统 | |
CN103747004A (zh) | 物联网平台通信协议的实现方法 | |
CN103268230A (zh) | 用于构建可拓展服务的云计算信息管理平台的方法 | |
CN102629939B (zh) | 电力企业服务总线实现方法及装置 | |
CN101883084A (zh) | 用于对网络服务通信进行适配的方法、适配器和适配器系统 | |
JPH10187641A (ja) | 第1のエンティティと第2のエンティティとの間のアドレスインタラクションをサポートするための方法、アドレスインタラクションのためのコンバータ、及びコンピュータシステム | |
CN105577446A (zh) | 一种轻量级嵌入式网络管理系统和方法 | |
CN101582894A (zh) | 一种用于企业信息化异构系统集成的语义网关 | |
CN106027534A (zh) | 一种基于Netty实现金融报文处理系统 | |
CN104301401A (zh) | 一种基于快速服务封装的移动应用平台 | |
CN101986614B (zh) | 一种面向物流应用的通用行业服务总线系统及其实现方法 | |
CN101339520B (zh) | 一种将ejb接入企业服务总线的方法 | |
CN103002047B (zh) | 一种rpc式web服务架构方法 | |
CN101651631B (zh) | 一种电视台全台网系统集成中消息接入的方法 | |
CN103561113B (zh) | Web Service接口的生成方法及装置 | |
WO2023208132A1 (zh) | Api转换系统及其访问请求处理方法、电子设备及介质 | |
CN113890891A (zh) | 一种能源云网的数据共享交互方法和装置 | |
CN105224594A (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 |