一系列技术使网站之间的信息互通
Open = 开放(资源类型、服务对象、展现方式)
API = 应用接口(获取数据、资源、服务,忽略具体实现过程)
所谓开放服务,指把网络上的服务能力封装成一系列 计算机易识别的数据接口开放出去, 供第三方开发者使用,即 OpenAPI(open application programming interface)[3] 。 其 实这并不是一个新概念,在计算机操作系统出现的早期就 已经存在了,但区别在于,当前的开放服务范围更广,开放 的机制也有所不同。
目前,随着信息量的爆炸式增长,基于内容的单一维度搜索已经无法准确定位用户需求,同时很难快速满足多 样的个性化需求。 很多信息之间存在关联,但是这种关系 无法通过关键词简单地表示,于是这些信息就像一个个碎
片,散落在各处,并不能被很好地利用;同时,随着 Web 2.0 应用的兴起,越来越多的系统中拥有与用户相关的信息,而 这些系统本身又是独立封闭的,于是引发了各种问题[2] 。
信息/资源碎片化: 信息与信息之间缺乏多样化的 关联组织。
应用碎片化:用户所使用的各种应用在不同的网站 上,应用之间缺乏关联,使用不便。关系碎片化:用户需要在不同的网站上注册 ID,并 在其中拥有各自独立且不同的关系。
用户碎片化:由于与用户相关的信息、应用、关系的 分裂,造成用户本身也呈现为碎片化特点。
这些碎片分布在网络中,不仅造成了大量冗余,而且 为用户的使用带来很多不便。于是,“开放平台”应运而生, 通过“打破封闭,全面开放,整合碎片”的方式,实现以“用 户”为中心的全周期、一站式服务。
三、总体架构
应用架构
应用名 |
应用定位 |
开放平台门户 |
面向互联网的开发平台门户,用于进行平台营销和推广,并提供第三方商户开发者进行 接口文档查阅 |
用户门户平台 |
平台用户平台,用户可通过此平台进行申请授权、查询等操作 |
OpenAPI网关 |
能力开发网关,将行内能力进行开放,并提供第三方应用或SDK进行调用 |
OpenAPI管理服务 |
能力开放网关的后端管理服务,供管理平台调用 |
OpenAPI管理平台 |
提供运营人员对于能力开放网关的管理平台 |
用户管理服务 |
提供用户门户平台的服务支持及提供对运营的管理支持功能 |
用户单点登录服务 |
针对于门户平台的单点登录服务,增强金融开放平台的门户扩展能力 |
内容管理服务 |
对于门户平台的内容管理服务,完成内容展示编排及对外推送 |
应用名 |
应用定位 |
开放平台门户 |
使用HTML5、VueJS、CSS3等关键技术实现纯静态的前端,并使用element ui作为主要UI组件,采用npm、webpack、babel等对于前端进行持续构建 |
用户门户平台 |
使用HTML5、VueJS、CSS3等关键技术实现纯静态的前端,并使用element ui作为主要UI组件,采用npm、webpack、babel等对于前端进行持续构建,从技术路线上与开放平台门户保持一致 |
OpenAPI 网关 |
采用RxNetty作为NIO网络通道,并设计实现基于责任链的过滤器模型,实现默认RestFul服务,技术路线与现有互金平台中的渠道网关类似 |
OpenAPI 管理服务 |
使用SpringBoot完成平台AOP和IoC控制,并集成HSF分布式框架,对于OpenAPI管理平台发布HSF服务 |
OpenAPI 管理平台 |
功能实现在互金平台的运营中心系统内,实现界面功能,调用相应管理类服务 |
用户管理服务 |
使用SpringBoot完成平台AOP和IoC控制,并集成HSF分布式框架,提供RestFul和HSF服务接口 |
用户单点登录服务 |
采用RxNetty作为NIO网络通道,并设计实现基于责任链的过滤器模型,实现默认RestFul服务,技术路线与现有互金平台中的渠道网关类似 |
内容管理服务 |
使用SpringBoot、Freemarker等架构进行开发,并集成HSF分布式框架,提供HSF服务接口 |
各平台用户管理流程
说明
层次 |
定位说明 |
接入层 |
负责实现各类接入方式,包括restful方式接入、文件方式接入、h5界面接入;三种不同的接入方式 将独立形成网关,分别为api网关、文件网关和h5网关。 |
逻辑层 |
负责网关平台核心逻辑,包括流量控制、安全控制、服务鉴权、协议转换和服务通知等。 |
服务层 |
为能力开放平台对外输出服务主体。 |
管理层 |
通过OpenAPI管理服务对于网关进行管理。 |
接入许可信息
API种类错综复杂,基于多种开源接口测试平台,例如Swagger,ApiFox等等,OpenAPI可以提供一种统一的接口 接入形式,让所有接口按照统一形式接入平台。
信息项
字段名 |
类型 |
描述 |
openid |
String |
接入用户编号,获取方式:接入申请通过后,由平台给予发放,用于标注唯一用户 |
appid |
String |
接入应用编号,获取方式:单个用户可拥有多个appId,用于标注唯一应用,由平台发放 |
appkey |
String |
应用密钥,获取方式:与appId对应的,用于数字签名使用,由平台同appId一同发放 |
token |
String |
临时许可:获取方式:用户应用登录开发平台后,由平台进行发放,有效时间 20min |
tokenurl |
String |
用户获取临时许可url:获取方式:由接入用户提供,此url为接入用户提供服务,平台收到临时许可获取请求后,将通过回调此url方式,将token信息返回接入用户, 接入用户收到token后,自行进行保存 |
接入层技术架构
API网关:负责将内部共享服务对外进行发布,提供第三方应用、H5网关和本行SDK(包括iOS SDK、Android SDK和JS SDK)进行调用,遵循OpenAPI3.0标准。
集成模式
模式 |
说明 |
适用场景 |
通过第三方应用直接调用 |
直接通过网关api进行服务调用,由第三方应用进行用户交互界面开发。 |
最为开放的模式,对于第三方应用的开发框架无依赖或干扰,集成难度最低,并且适用于第三方应用服务端进行调用。 |
通 过 JS SDK进行调用 |
第三方应用集成平台的JS SDK进行调用,简化第三方应用的开发。 |
适用于第三方应用为混编应用或者微信小程序等类似web应用,集成开放性较高, 并且与开发语言无关 |
通 过 iOS、Android SDK进行调用 |
第三方应用集成平台的原生SDK进行调用,简化第三方应用的开发,并且安全性上得到保证 |
适用于第三方应用为原生开发架构的情况下进行调用,有原生应用的关系,安全性最高 |
直接或者间接访问H5网关,将用户交互权利 移交给平台,由平台来完成该项业务的流程, 此调用方式能与其他调用方式相结合 |
适用于用户交互负责度高,并且具有较强技术和安全要求的场景之上,例如开户及绑卡流程等。 |
调用流程
通过第三方应用直接调用
第三方应用可以直接通过平台提供的OpenAPI进行调用,提供最终用户的操作界面等由第三方应用自行完成
通过JS SDK进行调用
第三方应用通过集成平台的JS SDK进行调用,简化第三方应用的开发
通过iOS、Android SDK进行调用
第三方应用通过集成平台原生SDK进行调用,简化第三方应用的开发
通过h5网关进行调用
直接或者间接通过H5网关进行调用
直接调用