业务支撑能力开放平台的设计与实现*李文明,崔俊交,贾宏举(中移(苏州)软件技术有限公司/中国移动苏州研发中心,苏州 215163)摘 要 在移动互联网时代,电信运营商面临来自互联网运营商的业务冲击,通过剖析运营商能力开放遇到的安全性、性能等挑战,梳理了能力发布、能力封装等全生命周期流程,并从系统架构、门户及能力集成管控等方面提出了能力开放平台的建设方案。
最后介绍了中移(苏州)软件技术有限公司能力开放平台的系统架构及关键技术方案,该平台能够有效地支撑运营商业务能力开放给开发者,从而实现吸引合作伙伴入驻,开发创新的应用,持续挖掘潜在业务价值,形成开放共赢的生态链。
关键词 能力开放平台;API;SSB中图分类号TP393 文献标识码 A 文章编号1008-5599(2017)07-0031-061 引言移动互联网与电子商务的发展对于传统产品销售模式与渠道已经产生了深刻的影响,从移动提供的服务与产品角度看,互联网化以及大数据的发展使得移动运营商在产品创新方面有了更大的空间。
比如将移动自有的内容、信息和数据打包成商品,在一定安全管控要求的前提下,以在线服务的形式在互联网进行销售,从而进一步拓展移动服务与产品的范围。
不仅运营商,互联网厂商也采取能力开放提升其业务价值。
比如,阿里巴巴和腾讯先后构建了能力开放平台开放业务能力,吸引合作伙伴入驻,提升企业价值。
总的来看,能力开放已成为进一步发展的必然趋势。
将业务支撑系统核心能力开放给个人和企业开发者,将会引入对业务支撑系统能力创造性的二次开发和整合,从而提升业务支撑能力与技术的活力。
2 运营商能力开放的现状与挑战2.1 能力开放的现状随着业务的快速发展以及数字化服务转型的需要,运营商与产业链上下游合作伙伴的开放合作越来越多,对业务支撑系统提出了诸多开放内部接口给合作伙伴进行调用的要求。
业务支撑系统开放的接口往往基于烟囱式建设,缺乏统一的规划,在接口开放的粒度、开放的协议标准、合作伙伴调用流程、调用方式、安全管控、异常处理等方面均存在较大差异,给合作伙伴进行接口调用和业务接入带来了很大的挑战,存在的突出问题包括业务上线时间慢、周期长、错误定位难、以及接口性能差等,完全不能适应互联网时代“敏捷、安全、可靠、易用”的系统建设要求。
基于以上背景,业务支撑系统能力开放平台的设计目标是实现业务支撑系统服务的统一接入、注册、编排、收稿日期:2017-06-21* 中国移动集团级一类科技创新成果,原成果名称为《能力开放平台产品研发》。
封装、适配和调度,对接全网渠道,开放标准化能力,以互联网级的Open API服务,为业务的融合创新和快速发展提供高效的支撑。
2.2 能力开放的挑战2.2.1 安全性问题运营商在把能力开放给外部使用时,首先要确保能力使用的安全,防止外部的恶意访问对业务造成影响,特别是涉及交易方面的服务,更是要全面考虑安全性。
为确保安全,需要考虑在通信链路的建立、通信数据的加密、数据的完整性、不可抵赖性等方面。
2.2.2 性能问题作为API的入口,所有的请求都会经过平台网关进行转发,因此对平台网关的访问压力是巨大的,有的网站甚至达到每分钟上千万的访问量。
因此,能力开放平台需要具备高性能的系统能力,能够灵活、稳定地应对高访问压力。
2.2.3 扩展性问题一些非功能性的问题,例如日志、安全、负载均衡策略、鉴权策略等,这些插件会随着业务规模等的变化进行不断的强化与调整。
这就需要网关层提供这样一种可扩展的机制,使得可以灵活地进行这些调整和变化,而不用频繁地对网关层进行改动,确保网关层的稳定性。
3 能力开放平台的设计3.1 流程设计能力是顺利完成某一业务功能所必需的服务集合,逻辑上能力由多个服务组合而成,如合约机办理能力包括用户鉴权服务和合约办理服务。
能力按照类别可分为校验类能力、查询类能力、受理类能力等,具体开放给合作伙伴的能力根据业务需要进行封装开放,如业务办理资格校验能力、流量余额查询能力、月账单查询能力、充值缴费能力等。
合作伙伴注册审批后通过申请应用并关联能力获得调用能力开放平台中能力的权限。
(1)制定能力的生命周期管理流程:包括能力发布、能力变更、能力注销、能力使用。
(2)能力使用流程:合作伙伴选择能力→沙箱环境测试→合作伙伴申请能力→管理员审批能力→合作伙伴调用能力。
(3)制定合作伙伴的生命周期管理流程:包括合作伙伴申请、变更、注销等。
(4)合作伙伴使用整体流程:合作伙伴申请→审批资格→创建应用→关联能力→测试能力→申请能力→审批资格→正式调用能力。
3.2 平台设计3.2.1 能力开放平台总体架构能力开放平台是对所开放的业务能力进行统一管控,开放运营商的业支能力(查询、校验、办理等)、网络能力(语音、流量、短信)和大数据能力(数据分析、分属存储)给第三方系统或移动内部系统使用,实现能力开放的标准化,高安全性及可控性。
能力开放平台包括能力开放网关、服务调度总线、监控管理3部分组成,功能框架图如图1所示。
3.2.2 能力开放网关能力开放网关包含的核心模块以及其功能说明如表1所示。
3.2.3 服务调度总线服务调度总线是在传统ESB基础之上,添加完善的服务管理能力后打造的一个ESB集成套件,其主要定位是对接南向服务,实现运行态高效的服务调用和管理态完善的服务管控。
服务调度总线模式及功能说明如表2所示。
3.2.4 监控管理监控管理提供系统级公共管理功能,如表3所示。
4 能力开放平台的实现4.1 平台的系统架构根据能力开放平台的设计思路及要求,完成了能力开放平台的开发,其系统架构图如图2所示。
能力开放平台整体系统采用分层模式架构:展现层:提供门户服务,包括开发者门户和运营者门户;应用服务层:负责能力开放网关的所有功能支撑;服务集成调度层:使用SSB 作为系统核心,负责服务集成及调用等多种功能;异构数据服务层:同时提供关系型数据库和NoSQL内存数据库存储相应数据,并采用消息队列组件完成能力的异步调用;系统平台服务层:提供日志系统、配置管理及系统监控功能。
日志系统记录能力调用记录,并结合图形化界面供运营者分析。
4.2 关键技术方案4.2.1 安全管控采用数字签名技术对关键业务数据进行数字签名,图1 能力开放平台功能架构图 模块功能说明门户门户包括运营管理门户和合作伙伴门户。
运营管理门户为运营者提供运营管理工作,包括合作伙伴管理、应用管理、能力管理、运营管理、监控管理、日志管理、统计管理等功能;合作伙伴门户为合作伙伴提供注册,申请能力,购买能力及对应用进行管理等功能,帮助合作伙伴一站式接入并使用能力能力服务能力服务是指能力开放平台对能力的管理,包括对能力的全生命周期管理,包括能力的发布、启停、注销及申请使用等、能力统计、能力目录维护、能力订阅周期管理等功能能力运营能力运营是运营管理人员对能力进行持续运营的过程,主要包括流量控制、配额控制及分角色的权限管理 应用管控应用是合作伙伴进行能力调用的实体,应用管控提供应用全生命周期管理,包括申请、审批、发布、暂停、注销等流程,同时提供应用沙箱测试功能,提高应用接入的效率和能力调用的准确性能力管控能力管控主要包括业务流程编排和流程监控。
业务流程编排支持长流程下的业务流程编排,实现能力之间以串行、并行、分支等逻辑进行组合编排;流程监控是系统对合作伙伴调用业务流程的状态进行监控,当调用失败或没有按照既定的规则顺序进行调用时给予提示能力API 网关能力API 网关提供能力调用运行时的支持,包括接入认证、能力鉴权、报文解析、沙箱路由等功能,提供全面的安全机制、路由机制、容错机制。
系统同时支持异步调用,极大的提高系统整体吞吐率,提高系统在大并发下的性能表现表1 核心模块及功能说明防止业务数据被篡改和抵赖,保证业务操作可追溯。
主要分为关键业务操作数据签名和第三方平台消息签名。
关键业务操作数据签名要求为运营者签发数字证书,在运营者操作过程中,使用证书对预先设定的关键业务操作进行数字签名。
第三方平台消息签名要求能力开放平台存储能力调用消息的数字签名值。
4.2.2 高性能在高性能方面,采用分布式缓存,SSB(企业服务总线)采用SEDA 架构。
SEDA 架构是一种基于事件的并发模型的架构,大大增加了系统的吞吐量,其核模块功能说明服务调用服务接入,由服务提供者在服务调度总线中注册其提供的服务,包括服务的基本属性,如出入参及协议格式等,服务调度总线对服务的生命周期进行管理;服务编排,注册的服务为原子服务,一个或多个原子服务经过一定逻辑的编排可以形成组合服务;协议转换,服务调度总线能够对服务的协议进行转,以适配合作伙伴与南向服务提供者不同协议之间的调用服务管控服务管理,服务全生命周期管理,多地址管理,安全管理;心跳检测,服务调度总线能够对系统中注册的服务定时发送报文探测服务的状态,保障服务的可用性;服务编排可视化,服务调度总线能够实现对原子服务的编排,并以可视化流程图的形式在页面上进行展示表2 服务调度总线模块及功能说明模块功能说明系统管理日志查询,系统使用ELK 实现能力的调用日志及用户的操作日志存储及查询的功能,支持按时间、关键字段组合筛选查询;用户管理,对系统中的用户进行管理,设置不同用户所属的角色,对每个角色定义其权限,达到对系统中每一个用户管控的目的安全控制传输安全,第三方应用在调用能力开放平台时需要经过加密传输和数字签名,防止业务数据被篡改;身份认证,部分能力的调用需要经过用户的授权,系统支持OAuth 的方式实现用户的身份认证表3 监控管理提供系统级公共管理功能图2 能力开放平台系统架构图心思想是:把一个请求处理过程分成几个Stage,每个Stage可由不同的Handle进行处理,不同资源消耗的Stage使用不同数量的线程来处理,Handle之间采用异步通讯的模式。
另外,日志采用异步处理的方式。
4.2.3 高扩展性在高扩展性方面,采用分布式系统,支持系统水平扩展和垂直扩展。
4.2.4 企业服务总线能力开放平台采用以开源软件Apache Camel为核心,结合多种开源技术,自主研发了企业服务总线技术。
该技术提供了网络中最基本的链接中枢,是构筑企业神经系统的必要元素。
它可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。
能力开放平台SSB组件以企业服务总线为核心,在其基础之上封装了完善的服务管理能力,实现了服务集成与服务管理的无缝整合。
4.2.5 分布式缓存能力调度中心根据系统高并发,数据量大的系统特性,采用了(Key-Value)类型的NoSQL数据库,将用户会话、授权信息、能力配额等数据存储于NoSQL数据库中。
NoSQL数据库以开源的KV数据库Redis为核心,结合Redis的本身特性,将其同时作为能力调度中心的分布式缓存使用。