一种政企云平台中的能力开放管控服务平台的制作方法

文档序号:10515697阅读:235来源:国知局
一种政企云平台中的能力开放管控服务平台的制作方法
【专利摘要】一种政企云平台中的能力开放管控服务平台,服务提供方将自己要对外开放的服务接口注册到平台中并配置相关调用策略,平台对其接口进行鉴权控制、调用统计及计费,并提供负载均衡能力,服务提供方可以将自己提供的一种或多种接口进行打包,平台将这种接口包称之为能力,能力是服务调用方进行订购的最小单元,服务调用方平台,根据自己的需求查找相应的服务能力进行订购,平台管理员审批通过后即可按照平台提供的调用规范进行开发;平台机会记录所有接口每次的调用日志并按照计费策略进行计费,并以表格和图标的形式给出账单及调用明细。本发明服务调用方提供高效可靠的服务接口,为服务提供方提供了简单易配的负载均衡能力,集成了鉴权、计费、日志记录。
【专利说明】
一种政企云平台中的能力开放管控服务平台
技术领域
[0001]本发明涉及云计算技术领域,具体涉及一种政企云平台中的能力开放管控服务平台O
【背景技术】
[0002]现有的类似平台,仅是作为一个代理层,将服务调用方的调用请求转发至服务提供方的服务接口上,没有做高可靠的负载均衡处理也没有对调用方的身份进行认证,没有配置调用策略和计费策略,甚至没有进行计费。并且现在的类似平台没有对服务提供者所提供的服务进行规范化管理,导致各个服务提供方都有自己的标准,提供的接口形式千差万别。
[0003]针对以上问题,迫切需要对服务提供方进行规范化约束,使得各个服务提供方提供的服务都遵循统一的标准。

【发明内容】

[0004]本发明要解决的技术问题是:本发明提供一种政企云平台中的能力开放管控服务平台,支持对调用方的身份进行认证,未订购或者欠费的调用方将被限制调用服务接口,并且本发明对服务提供方提供的服务做了高可靠性的负载均衡,并能提供一下服务:
1、为服务提供方提供一套切实可依的接口规范;
2、对服务调用方进行鉴权认证及计费处理;
3、提供灵活机制,为每个服务接口配置独立的调用策略及计费策略;
4、为每个服务接口附加高可靠性的负载均衡处理。
[0005]本发明所采用的技术方案为:
一种政企云平台中的能力开放管控服务平台,服务提供方将自己要对外开放的服务接口注册到平台中并配置相关调用策略,平台对其接口进行鉴权控制、调用统计及计费,并提供负载均衡能力,服务提供方可以将自己提供的一种或多种接口进行打包,平台将这种接口包称之为能力,能力是服务调用方进行订购的最小单元,服务调用方平台,根据自己的需求查找相应的服务能力进行订购,平台管理员审批通过后即可按照平台提供的调用规范进行开发;平台机会记录所有接口每次的调用日志并按照计费策略进行计费,并以表格和图标的形式给出账单及调用明细。
[0006]所述平台包括3个部分:服务容器、管控前台、管控后台,其中:
服务容器对外提供统一的代理入口,支持http、https、webservice方式的服务接口接入,服务容器对请求消息及响应消息进行透传,通过服务路由器和一系列的拦截器进行鉴权、计费和记录日志;服务容器集成了负载均衡功能,服务提供方提供多个服务源,并配置各个服务源的权重,服务容器根据所配权重实现负载均衡的功能。
[0007]管控前台为用户提供可视化的管理页面,包括对服务接口的注册及能力生命周期的管理,能力订阅、日志查询及统计报表、系统管理等功能; 管控前台与管控后台通过dubbo服务进行数据通信。
[0008]平台支持Http、Https及Websevice协议的接口。
[0009]Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,就是远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)。
[00?0] 所述服务容器采用Apache Camel 2.15 + Spring.3.2 + Dubbo框架,数据库采用my sq 15,Came I用来实现消息的路由,对系统的各个模块进行解親。
[0011]Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和处理的引擎,提供企业集成模式的Java对象的实现,通过应用程序接口或称为陈述式的Java领域特定语言(DSL)来配置路由和处理的规则。其核心的思想就是从一个from源头得到数据,通过processor处理,再发到一个to的目的。
[0012]Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。
[0013]MySQL是一个关系型数据库,由瑞典MySQL AB公司开发,目前属于Oracle旗下公司。MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relat1nal Database Management System,关系数据库管理系统)应用软件之一。
[0014]所述服务容器涉及的所有服务采用统一入口,入口的协议为http,支持GET、P0ST、PUT、DELET方式;服务容器结构包括集中代理层、参数解析器模块,其中:
集中代理层拦截所有的用户请求,然后将整个请求报文向下传递至参数解析模块;参数解析器模块从请求对象(request)中解析出消息头(header )部分有用信息,并读取消息体(body)信息,然后将消息传递至认证服务进行身份及权限认证。
[00?5] 所述集中代理层采用一个Spr ingMVC实现一个HTTP服务,分别实现doGet、doPost、doPut、doDelete方法,然后将请求对象向下传递至参数解析器模块。
[0016]Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的Spring Web框架还可以是Struts这样的Web框架。
[0017]所述参数解析器模块通过定义一个ParamAnalyser类,从请求对象中读取消息头和消息体,然后将消息头和消息体封装成一个R e qM e s s a g e对象,R e qM e s s a g e将消息头中Capaci tyCode、ApiCode、SICode、SIGN、charset字段进行显式的封装,并将消息头中的所有字段保存至map,对UrL中参数串和body内容进行显式封装。
[0018]所述认证通过从上个节点读取ReqMessage,然后进行认证,认证包含以下2部分:
1)根据SICode和SIGN对消费者的身份和请求数据的合法性(是否被篡改)进行认证;
2)根据SICode、CapacityCode和APICode进行用户订购信息认证,判断用户是否订购了该能力,该API是否包含在该能力下;
认证成功则将ReqMessage继续向下传递至下一个处理节点;
认证失败则构造失败消息返回调用者。
[0019]所述认证实现过程如下:
定义AuthServi ce类,从ReqMes sage 中读取SI Code、Capaci tyCode、APICode、SIGN字段的内容,然后根首先进行消费者身份和数据合法性认证,步骤如下:
1)SIGN字段还原:
首先使用base64进行解码,然后查询出SICode对应的sicretcode,对其进行SHA解密,最后得到串S;然后构造如下串:
${ CapacityCode } + “\n” +
${ ApiCode } + “\n” +
${ SICode } + “\n” +
${ Timestamp } + “\n” +
${HTTPMethod} + “\n” +
URLEncode(${URL中之后的请求串}) +,,\n” +
${消息体}
其中 URLEncode 函数是指将字符串转换为 applicat1n/x-www-form-ur I encodedMIME格式,编码方式采用UTF-8;最后将得到的串S’和S进行比照,若两串相同,则说明用户身份合法并且信息没有被篡改;
否则说明用户身份不合法或者信息被篡改,丢弃本次请求,并给消费方发送响应消息: http header部分:
Result=-2
Result Info=认证失败 http Body部分保留为空。
[0020]对消费方访问频率的控制通过访问频次控制器实现,通过配置文件配置一个频次阀值(默认在inspur.properties文件中增加一个call_ frequency变量来表示),以分钟为单位,对同一消费方,token(记号)相同的请求频次进行计算,若超过阀值则直接对消费方进行响应,http header部分:
Result=-8
ResultInf ο=访问频率过高,请稍后访问 http Body部分保留为空。
[0021 ] 返回响应消息之前需要经过日志拦截器进行日志记录
所述访问频次控制器通过定义一个CalIControler类,读取cal 1_ frequency的值η,为每一个token建立一个队列用来顺序保存最近访问日期,队列长度设为η,当队列溢出时,自动淘汰队列末尾的元素;接收到消费方请求时,首先判断队列首尾元素的时间差值是否大于I分钟,若大于则说明超速,否则认为正常。
[0022]所述管控前台功能模块包括服务接口管理、能力管理、能力订购、平台规范、能力审批、服务审批。
[0023]前台技术采用bootstrap+Jquery0
[0024]ootstrap,来自Twitter,是目前最受欢迎的前端框架。Bootstrap是基于HTML、CSS,JAVASCRIPT的,它简洁灵活,使得Web开发更加快捷。它由Twitter的设计师MarkOtto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。
[°°25] jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作。
[0026]所述管控后台采用Spring+mybatis+dubbo技术,
消费者提交认证时,需要在http header部分加入自定义参数:
CapacityCode=KpiSearch
ApiCode=irms
SICode=JKL201409890
APPKey=ADD89swdAD
SIGN=dasdasdasdadadadlI122121AAAAAAAAAAADTimestamp=20150101100000
其中Capaci tyCode是能力标识,ApiCode是API的标识。SI Code是Si厂商的编码。APPKey是APP的标识。T ime s tamp是请求的时间戳,用于防止rep I ay攻击,本次请求签名的有效时间为该时间戳+10分钟。SIGN是签名信息。
[0027]本发明的有益效果为:
本发明服务调用方提供高效可靠的服务接口,为服务提供方提供了简单易配的负载均衡能力,集成了鉴权、计费、日志记录节省了服务提供方这些模块的开发工作。
【附图说明】
[0028]图1为本发明所述平台结构框图。
【具体实施方式】
[0029]下面结合说明书附图,通过【具体实施方式】对本发明进一步说明:
实施例1:
如图1所示,一种政企云平台中的能力开放管控服务平台,所述平台包括3个部分:服务容器、管控前台、管控后台,其中:
服务容器对外提供统一的代理入口,支持http、https、webservice方式的服务接口接入,服务容器对请求消息及响应消息进行透传,通过服务路由器和一系列的拦截器进行鉴权、计费和记录日志;服务容器集成了负载均衡功能,服务提供方提供多个服务源,并配置各个服务源的权重,服务容器根据所配权重实现负载均衡的功能。
[0030]管控前台为用户提供可视化的管理页面,包括对服务接口的注册及能力生命周期的管理,能力订阅、日志查询及统计报表、系统管理等功能;
管控前台与管控后台通过dubbo服务进行数据通信。
[0031]实施例2:
在实施例1的基础上,本实施例所述服务容器采用Apache Camel 2.15 + Spring.3.2+ Dubbo框架,数据库采用my sql 5,Came I用来实现消息的路由,对系统的各个模块进行解親。
[0032]所述服务容器涉及的所有服务采用统一入口,入口的协议为http,支持GET、P0ST、PUT、DELET方式;服务容器结构包括集中代理层、参数解析器模块,其中:
集中代理层拦截所有的用户请求,然后将整个请求报文向下传递至参数解析模块; 参数解析器模块从请求对象(request)中解析出消息头(header )部分有用信息,并读取消息体(body)信息,然后将消息传递至认证服务进行身份及权限认证。
[0033]实施例3:
在实施例2的基础上,本实施例所述集中代理层采用一个SpringMVC实现一个HTTP服务,分别实现doGet、doPost、doPut、doDelete方法,然后将请求对象向下传递至参数解析器模块。
[0034]实施例4:
在实施例2的基础上,本实施例所述参数解析器模块通过定义一个ParamAnalyser类,从请求对象中读取消息头和消息体,然后将消息头和消息体封装成一个ReqMessage对象,ReqMessage将消息头中 Capaci tyCode、ApiCode、SICode、SIGN、char set字段进行显式的封装,并将消息头中的所有字段保存至map,对UrL中参数串和body内容进行显式封装。
[0035]实施例5:
在实施例4的基础上,本实施例所述认证通过从上个节点读取ReqMessage,然后进行认证,认证包含以下2部分:
1)根据SICode和SIGN对消费者的身份和请求数据的合法性(是否被篡改)进行认证;
2)根据SICode、CapacityCode和APICode进行用户订购信息认证,判断用户是否订购了该能力,该API是否包含在该能力下;
认证成功则将ReqMessage继续向下传递至下一个处理节点;
认证失败则构造失败消息返回调用者。
[0036]实施例6:
在实施例5的基础上,本实施例所述认证实现过程如下:
定义AuthServi ce类,从ReqMes sage 中读取SI Code、Capaci tyCode、APICode、SIGN字段的内容,然后根首先进行消费者身份和数据合法性认证,步骤如下:
1)SIGN字段还原:
首先使用base64进行解码,然后查询出SICode对应的sicretcode,对其进行SHA解密,最后得到串S;然后构造如下串:
${ CapacityCode } + “\n” +
${ ApiCode } + “\n” +
${ SICode } + “\n” +
${ Timestamp } + “\n” +
${HTTPMethod} + “\n” +
URLEncode(${URL中之后的请求串}) +,,\n” +
${消息体}
其中 URLEncode 函数是指将字符串转换为 applicat1n/x-www-form-ur I encodedMIME格式,编码方式采用UTF-8;最后将得到的串S’和S进行比照,若两串相同,则说明用户身份合法并且信息没有被篡改;
否则说明用户身份不合法或者信息被篡改,丢弃本次请求,并给消费方发送响应消息: http header部分:
Result=-2Result Inf ο=认证失败http Body部分保留为空。
[0037]实施例7:
在实施例6的基础上,本实施例对消费方访问频率的控制通过访问频次控制器实现,通过配置文件配置一个频次阀值(默认在inspur, properties文件中增加一个cal 1_frequency变量来表示),以分钟为单位,对同一消费方(token相同)的请求频次进行计算,若超过阀值则直接对消费方进行响应,http header部分:
Result=-8
ResultInfο=访问频率过高,请稍后访问 http Body部分保留为空
返回响应消息之前需要经过日志拦截器进行日志记录。
[0038]实施例8:
在实施例7的基础上,本实施例所述访问频次控制器通过定义一个Cal IControler类,读取call_ frequency的值n,为每一个token建立一个队列用来顺序保存最近访问日期,队列长度设为n,当队列溢出时,自动淘汰队列末尾的元素;接收到消费方请求时,首先判断队列首尾元素的时间差值是否大于I分钟,若大于则说明超速,否则认为正常。
[0039]实施例9:
在任一实施例1-8的基础上,本实施例所述管控前台功能模块包括服务接口管理、能力管理、能力订购、平台规范、能力审批、服务审批。
[0040]前台技术采用bootstrap +Jquery技术。
[0041]实施例10:
在任一实施例6-8的基础上,本实施例所述管控后台采用Spring+mybatis+dubbo技术,
消费者提交认证时,需要在http header部分加入自定义参数:
CapacityCode=KpiSearch
ApiCode=irms
SICode=JKL201409890
APPKey=ADD89swdAD
SIGN=dasdasdasdadadadlll22121AAAAAAAAAAAD
Timestamp=20150101100000
其中Capaci tyCode是能力标识,ApiCode是API的标识Code是Si厂商的编码。APPKey是APP的标识c^Timestamp是请求的时间戳,用于防止replay攻击,本次请求签名的有效时间为该时间戳+10分钟。SIGN是签名信息,签名信息的生成规则如下:
1、首先构造签名之前的串如下:
${ CapacityCode } + “\n” +
${ ApiCode } + “\n” +
${ SICode } + “\n” +
${ Timestamp } + “\n” +
${HTTPMethod} + “\n” +
URLEncode(${URL中之后的请求串}) +,,\n” + ${消息体}
URLEncode函数是指将字符串转换为 applicat1n/x-www-form-urlencoded MIME 格式。编码方式采用UTF-8。
[0042 ] 需要注意的是如果URL中的参数串存在中文,则需要进行2次URLEncode编码。
[0043]2、然后使用能力平台提供的密钥进行SHA加密,最后进行base64编码生成最终的签名串。
[0044]返回响应消息时,http head部分添加自定义参数:
Timestamp=20150101100000
Result:。
ResultInfo:%7BurI%3A%2 2h11p%3A//news.baidu.com/%2 2%2Cword%3A%2 2%2 2%7D其中Result是状态码,0表示成功,其他表示失败,Result Info是状态描述。Timestamp是响应的时间戳
消息体则是对提供方响应消息的透传。
[0045]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【主权项】
1.一种政企云平台中的能力开放管控服务平台,其特征在于:服务提供方将自己要对外开放的服务接口注册到平台中并配置相关调用策略,平台对其接口进行鉴权控制、调用统计及计费,并提供负载均衡能力;服务提供方能够将自己提供的一种或多种接口进行打包,平台将这种接口包称之为能力,能力是服务调用方进行订购的最小单元;服务调用方平台,根据自己的需求查找相应的服务能力进行订购,平台管理员审批通过后即可按照平台提供的调用规范进行开发;平台机会记录所有接口每次的调用日志并按照计费策略进行计费,并以表格和图标的形式给出账单及调用明细;所述平台包括3个部分:服务容器、管控前台、管控后台,其中: 服务容器对外提供统一的代理入口,服务容器对请求消息及响应消息进行透传,通过服务路由器和一系列的拦截器进行鉴权、计费和记录日志; 管控前台为用户提供可视化的管理页面,包括对服务接口的注册及能力生命周期的管理,能力订阅、日志查询及统计报表、系统管理功能; 管控前台与管控后台通过dubbo服务进行数据通信。2.根据权利要求1所述的一种政企云平台中的能力开放管控服务平台,其特征在于:所述服务容器涉及的所有服务采用统一入口,入口的协议为http,支持GET、POST、PUT、DELET方式;服务容器结构包括集中代理层、参数解析器模块,其中: 集中代理层拦截所有的用户请求,然后将整个请求报文向下传递至参数解析模块; 参数解析器模块从请求对象中解析出消息头部分有用信息,并读取消息体信息,然后将消息传递至认证服务进行身份及权限认证。3.根据权利要求2所述的一种政企云平台中的能力开放管控服务平台,其特征在于:所述集中代理层采用一个SpringMVC实现一个HTTP服务,分别实现doGet、doPost、doPut、doDelete方法,然后将请求对象向下传递至参数解析器模块。4.根据权利要求2所述的一种政企云平台中的能力开放管控服务平台,其特征在于:所述参数解析器模块通过定义一个ParamAnalyser类,从request对象读取消息头和消息体,然后将消息头和消息体封装成一个Re qMe s sage对象,ReqMe s sage将消息头中Capaci tyCode、ApiCode、SICode、SIGN、charset字段进行显式的封装,并将消息头中的所有字段保存至map,对UrL中参数串和body内容进行显式封装。5.根据权利要求4所述的一种政企云平台中的能力开放管控服务平台,其特征在于:所述认证过程通过读取ReqMessage,然后进行认证,认证包含以下2部分: 1)根据SICode和SIGN对消费者的身份和请求数据的合法性进行认证; 2)根据SICode、CapacityCode和APICode进行用户订购信息认证,判断用户是否订购了该能力,改API是否包含在该能力下; 认证成功则将ReqMessage继续向下传递至下一个处理节点; 认证失败则构造失败消息返回调用者。6.根据权利要求5所述的一种政企云平台中的能力开放管控服务平台,其特征在于,所述认证过程实现过程如下: 定义 AuthServi ce 类,从ReqMe s sage 中读取SI Code、Capaci tyCode、API Code、SIGN字段的内容,然后根首先进行消费者身份和数据合法性认证,步骤如下: 1)SIGN字段还原: 首先使用base64进行解码,然后查询出SICode对应的si eretcode,对其进行SHA解密,最后得到串S,然后构造如下串: ${ CapacityCode } + “\n” + ${ ApiCode } + “\n” + ${ SICode } + “\n” + ${ Timestamp } + “\n,,+ ${HTTPMethod} + “\n” + URLEncode(${URL中之后的请求串}) +,,\n” + ${消息体} 其中 URLEncode 函数是指将字符串转换为 appl icat1n/x-www-form-ur I encodedMIME格式,编码方式采用UTF-8;最后将得到的串S’和S进行比照,若两串相同,则说明用户身份合法并且信息没有被篡改; 否则说明用户身份不合法或者信息被篡改,丢弃本次请求,并给消费方发送响应消息: http header部分: Result=-2 Result Inf ο=认证失败 http Body部分保留为空。7.根据权利要求6所述的一种政企云平台中的能力开放管控服务平台,其特征在于:对消费方访问频率的控制通过访问频次控制器实现,通过配置文件配置一个频次阀值,以分钟为单位,对同一消费方token相同的请求频次进行计算,若超过阀值则直接对消费方进行响应,http header部分: Result=-8 Resul t Inf ο=访问频率过高,请稍后访问 http Body部分保留为空 返回响应消息之前需要经过日志拦截器进行日志记录。8.根据权利要求7所述的一种政企云平台中的能力开放管控服务平台,其特征在于:所述访问频次控制器通过定义一个CalIControler类,读取cal 1_ frequency的值η,为每一个token建立一个队列用来顺序保存最近访问日期,队列长度设为η,当队列溢出时,自动淘汰队列末尾的元素;接收到消费方请求时,首先判断队列首尾元素的时间差值是否大于I分钟,若大于则说明超速,否则认为正常。9.根据权利要求1-8任一所述的一种政企云平台中的能力开放管控服务平台,其特征在于:所述管控前台功能模块包括服务接口管理、能力管理、能力订购、平台规范、能力审批、服务审批。10.根据权利要求6-8任一所述的一种政企云平台中的能力开放管控服务平台,其特征在于:消费者提交认证时需要在http header部分加入自定义参数: CapacityCode=KpiSearch ApiCode=irms SICode=JKL201409890 APPKey=ADD89swdAD SIGN=dasdasdasdadadadlll22121AAAAAAAAAAAD Timestamp=20150101100000 其中Capaci tyCode是能力标识,Api Code是API的标识,SI Code是Si厂商的编码,APPKey是APP的标识,Timestamp是请求的时间戳,用于防止replay攻击,SIGN是签名信息。
【文档编号】H04L29/06GK105872051SQ201610194692
【公开日】2016年8月17日
【申请日】2016年3月31日
【发明人】张仁斌
【申请人】浪潮通信信息系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1