电信增值服务与主流互联网应用,后端架构如此相似。
2014-07-24 15:18
399 查看
我做了多年的电信增值服务的后端开发,如果拿它与主流互联网应用来比较,恐怕大家都会觉得这两种业务没法比,互联网应用才是高大上的技术新贵,土鳖如增值服务,没法和人家比。不过从服务端的架构上来看,这两者实在是非常相似的。
要描述一个后端服务,有以下几个关键属性:
1 接口承载形式。
可能有这么几种:HTTP(JSON、XML)、WebService、原生Socket(TCP/UDP)、RPC(Socket封装)、MQ消息。
电信增值服务通常是使用呼叫信令或者短信等数据通信方式与客户端交互,但其实后端服务不可能直接控制或响应呼叫信令和短信,它都是与通信网关交互的,通信网关才是增值服务系统中与信令、短信交互的接口,而后端服务承载的是业务逻辑。它与通信网关之间使用的协议就是前面接到的几种。这一点与互联网应用没什么区别。
从IMS体系架构上讲,我们讨论的增值服务的后台服务,实际上是IMS定义的应用服务器。应用服务器对外的接口,IMS定义为SIP,WebLogic、WebSphere都有针对IMS的应用服务器产品,它们在应用开发上与普通的JavaEE应用服务器完全一致,只是增加了SIP协议栈。青牛的后端应用并没有使用JavaEE的应用服务器,而是使用了私有的应用服务器SLEE。SLEE对外接口使用了原生Socket承载,但在功能上与IMS中的应用服务器并没有什么不同。
2 接口交互形式。
分同步、异步两种。异步又可分为轮询取结果和服务端反向通知两种形式。
增值服务对外提供的功能与普通互联网应用的功能没什么不同,社交、生活服务、购物、音视频点播等都有。限于交互手段比较单一,所以功能上比较简单,但这些交互形式都会使用。
3 接口粒度。一般来说,后端服务总是尽可能使用FACADE模式,力争把多次交互封装成一个接口,避免频繁交互带来的延迟和客户端在开发上的困难。当然最近微服务模式开始流行,但再微小的服务,它承载的也是一个完整的业务功能,从这一点上来说,它与FACADE模式并不冲突。
这一点由增值服务本身的不同业务的特点决定,各种粒度的接口都是存在的。
4 安全、事务完整性要求。
事务完整性方面,增值服务的后端服务是比较欠缺的。
从应用服务器的接口上讲,它只与接入网关打交道,不允许外界直接访问,也没有那么高的安全性要求。
5 关键技术。
这一点最有意思,我们来看看目前流行的大规模互联网应用都使用了哪些高大上的技术:
服务单元注册
青牛的云呼叫中心架构中,每个服务单元的实例都要向注册中心注册。
服务单元心跳监测
青牛的云呼叫中心架构中,每个服务单元的实例都要向注册中心汇报心跳,由注册中心来监测单元实例的存活情况。
服务单元远程控制、远程配置
青牛的IVR产品,每个单元都提供基于WEB的管理界面,可以远程控制、远程配置。
服务单元压力监测、服务质量监测
青牛的IVR产品,每个单元都提供基于WEB和SNMP的压力监测、服务质量监测功能。这也是电信级产品的基本要求。
多机房容灾
上海移动、四川移动的10086项目中,都部署了多机房实现容灾和呼叫分流。
CDN、就近接入
在增值服务的全网业务中,往往需要在热点区域部署接入网关,让用户实现就近接入。媒体文件也是部署在接入网关上的,这可以视为一种CDN方式。媒体文件同步往往是通过机房间网络完成。
请求引流
青牛的IVR产品,接入网关可以根据用户的呼叫属性如主叫号码、被叫号码进行分组,把不同分组的呼叫分配给相应的应用服务器。这样可以充分发挥不同配置的应用服务器的能力。有些应用服务器依赖的后端应用网关,比如银行的网关,只允许一台客户端接入,这时引流策略也是非常必要的。
负载均衡
运营商的交换机在把呼叫分配到青牛的接入网关时,就会在多个接入网关间进行呼叫的均衡分配。接入网关在分配呼叫到应用服务器时,也会进行有策略的均衡分配。这是电信设备的基本功能。
流量控制、过载保护、服务降级
流量控制可以在多个层次实现:运营商交换机、接入网关、SLEE。交换机可以动态打开或闭塞一部分线路,接入网关可以修改负载均衡的权重,SLEE可以配置各种业务的通道数。
SLEE支持在线的业务逻辑更新。上海移动10086项目就会在呼叫压力过大时,通过修改业务流程的方式,不提供人工座席功能,只提供IVR服务。
MQ消息
增值服务内部大量使用MQ进行通信,SLEE也支持业务流程直接访问MQ来完成业务逻辑,甚至直接触发业务流程。
缓存
有些增值业务在查询压力特别大时,也需要使用缓存技术来降低后端数据库的查询压力。
高可用方案
青牛的云呼叫中心实现了完备的高可用方案。
海量存储
青牛的云呼叫中心每天会产生大量的呼叫记录和录音文件,这些记录都要求长期保存。
会话转移
呼叫中心业务要求用户的电话在不同的座席之间转接的时候,用户的会话数据要跟随话路进行转移,不能让用户把需求和每个座席都重复一遍。
消息推送网关
增值业务经常需要向用户推送短信和话音信息,我们的网关有强大的推送能力。
AB测试、灰度发布
增值业务经常需要在线测试,AB测试、灰度发布是基本要求。
大数据分析
云呼叫中心和增值服务业务每天产生大量的用户服务记录,我们需要分析这些服务记录,提取用户特征,以便进行进一步的营销活动。
快速迭代
增值业务的特点就是小功能、快速迭代。
云服务
青牛的云呼叫中心就是一个呼叫中心的PAAS平台。
所见即所得的业务开发工具
青牛的IVR产品提供了可与微软的Visual Studio媲美的开发工具,开发人员通过鼠标拖放即可开发业务流程。开发工具同时提供模拟功能,可以直接在开发工具里运行业务流程,和模拟网关进行语音交互,甚至可以进行在线业务的远程DEBUG。
5 应用规模和系统复杂度
应用规模和系统复杂度是增值业务与大规模互联网业务最主要的区别。
没办法,我们的业务规模都不大,规模最大的云呼叫中心和移动10086项目,服务的人群也只有千万级,每天的呼叫数通常是百万级,与一线互联网公司不是一个数量级的。
增值业务通常都比较简单,系统复杂度确实与电商、支付宝等业务没法比。
综合以上的内容,增值业务与主流互联网业务虽然在应用规模和系统复杂度上有较大差距,但在系统架构、技术先进性上却非常相似。咱们大可不必妄自菲薄。
要描述一个后端服务,有以下几个关键属性:
1 接口承载形式。
可能有这么几种:HTTP(JSON、XML)、WebService、原生Socket(TCP/UDP)、RPC(Socket封装)、MQ消息。
电信增值服务通常是使用呼叫信令或者短信等数据通信方式与客户端交互,但其实后端服务不可能直接控制或响应呼叫信令和短信,它都是与通信网关交互的,通信网关才是增值服务系统中与信令、短信交互的接口,而后端服务承载的是业务逻辑。它与通信网关之间使用的协议就是前面接到的几种。这一点与互联网应用没什么区别。
从IMS体系架构上讲,我们讨论的增值服务的后台服务,实际上是IMS定义的应用服务器。应用服务器对外的接口,IMS定义为SIP,WebLogic、WebSphere都有针对IMS的应用服务器产品,它们在应用开发上与普通的JavaEE应用服务器完全一致,只是增加了SIP协议栈。青牛的后端应用并没有使用JavaEE的应用服务器,而是使用了私有的应用服务器SLEE。SLEE对外接口使用了原生Socket承载,但在功能上与IMS中的应用服务器并没有什么不同。
2 接口交互形式。
分同步、异步两种。异步又可分为轮询取结果和服务端反向通知两种形式。
增值服务对外提供的功能与普通互联网应用的功能没什么不同,社交、生活服务、购物、音视频点播等都有。限于交互手段比较单一,所以功能上比较简单,但这些交互形式都会使用。
3 接口粒度。一般来说,后端服务总是尽可能使用FACADE模式,力争把多次交互封装成一个接口,避免频繁交互带来的延迟和客户端在开发上的困难。当然最近微服务模式开始流行,但再微小的服务,它承载的也是一个完整的业务功能,从这一点上来说,它与FACADE模式并不冲突。
这一点由增值服务本身的不同业务的特点决定,各种粒度的接口都是存在的。
4 安全、事务完整性要求。
事务完整性方面,增值服务的后端服务是比较欠缺的。
从应用服务器的接口上讲,它只与接入网关打交道,不允许外界直接访问,也没有那么高的安全性要求。
5 关键技术。
这一点最有意思,我们来看看目前流行的大规模互联网应用都使用了哪些高大上的技术:
服务单元注册
青牛的云呼叫中心架构中,每个服务单元的实例都要向注册中心注册。
服务单元心跳监测
青牛的云呼叫中心架构中,每个服务单元的实例都要向注册中心汇报心跳,由注册中心来监测单元实例的存活情况。
服务单元远程控制、远程配置
青牛的IVR产品,每个单元都提供基于WEB的管理界面,可以远程控制、远程配置。
服务单元压力监测、服务质量监测
青牛的IVR产品,每个单元都提供基于WEB和SNMP的压力监测、服务质量监测功能。这也是电信级产品的基本要求。
多机房容灾
上海移动、四川移动的10086项目中,都部署了多机房实现容灾和呼叫分流。
CDN、就近接入
在增值服务的全网业务中,往往需要在热点区域部署接入网关,让用户实现就近接入。媒体文件也是部署在接入网关上的,这可以视为一种CDN方式。媒体文件同步往往是通过机房间网络完成。
请求引流
青牛的IVR产品,接入网关可以根据用户的呼叫属性如主叫号码、被叫号码进行分组,把不同分组的呼叫分配给相应的应用服务器。这样可以充分发挥不同配置的应用服务器的能力。有些应用服务器依赖的后端应用网关,比如银行的网关,只允许一台客户端接入,这时引流策略也是非常必要的。
负载均衡
运营商的交换机在把呼叫分配到青牛的接入网关时,就会在多个接入网关间进行呼叫的均衡分配。接入网关在分配呼叫到应用服务器时,也会进行有策略的均衡分配。这是电信设备的基本功能。
流量控制、过载保护、服务降级
流量控制可以在多个层次实现:运营商交换机、接入网关、SLEE。交换机可以动态打开或闭塞一部分线路,接入网关可以修改负载均衡的权重,SLEE可以配置各种业务的通道数。
SLEE支持在线的业务逻辑更新。上海移动10086项目就会在呼叫压力过大时,通过修改业务流程的方式,不提供人工座席功能,只提供IVR服务。
MQ消息
增值服务内部大量使用MQ进行通信,SLEE也支持业务流程直接访问MQ来完成业务逻辑,甚至直接触发业务流程。
缓存
有些增值业务在查询压力特别大时,也需要使用缓存技术来降低后端数据库的查询压力。
高可用方案
青牛的云呼叫中心实现了完备的高可用方案。
海量存储
青牛的云呼叫中心每天会产生大量的呼叫记录和录音文件,这些记录都要求长期保存。
会话转移
呼叫中心业务要求用户的电话在不同的座席之间转接的时候,用户的会话数据要跟随话路进行转移,不能让用户把需求和每个座席都重复一遍。
消息推送网关
增值业务经常需要向用户推送短信和话音信息,我们的网关有强大的推送能力。
AB测试、灰度发布
增值业务经常需要在线测试,AB测试、灰度发布是基本要求。
大数据分析
云呼叫中心和增值服务业务每天产生大量的用户服务记录,我们需要分析这些服务记录,提取用户特征,以便进行进一步的营销活动。
快速迭代
增值业务的特点就是小功能、快速迭代。
云服务
青牛的云呼叫中心就是一个呼叫中心的PAAS平台。
所见即所得的业务开发工具
青牛的IVR产品提供了可与微软的Visual Studio媲美的开发工具,开发人员通过鼠标拖放即可开发业务流程。开发工具同时提供模拟功能,可以直接在开发工具里运行业务流程,和模拟网关进行语音交互,甚至可以进行在线业务的远程DEBUG。
5 应用规模和系统复杂度
应用规模和系统复杂度是增值业务与大规模互联网业务最主要的区别。
没办法,我们的业务规模都不大,规模最大的云呼叫中心和移动10086项目,服务的人群也只有千万级,每天的呼叫数通常是百万级,与一线互联网公司不是一个数量级的。
增值业务通常都比较简单,系统复杂度确实与电商、支付宝等业务没法比。
综合以上的内容,增值业务与主流互联网业务虽然在应用规模和系统复杂度上有较大差距,但在系统架构、技术先进性上却非常相似。咱们大可不必妄自菲薄。
相关文章推荐
- [转]移动互联网应用技术架构简介-Restful服务
- Spring Cloud微服务架构在互联网中应用
- 移动互联网应用技术架构简介-Restful服务
- 一种互联网应用的分布式架构模式微服务应用框架的实现(gradle,dubbo,zookeeper,springmmvc)
- 一种互联网应用的分布式架构模式微服务应用框架的实现(gradle,dubbo,zookeeper,springmmvc)
- 腾讯云发布企业级微服务中间件TSF,助企业构建亿级互联网应用架构
- 腾讯云发布企业级微服务中间件TSF,助企业构建亿级互联网应用架构
- 新一代应用结构体系(二)面向服务架构
- 纪念日:服务构件环境(SCE)挑起企业级架构的栋梁,下一代的应用开发模式日渐清晰
- 纪念日:服务构件环境(SCE)挑起企业级架构的栋梁,下一代的应用开发模式日渐清晰
- 电信增值业务学习笔记9——基于智能网的增值业务实现技术和应用
- 纪念日:服务构件环境(SCE)挑起企业级架构的栋梁,下一代的应用开发模式日渐清晰
- 新一代应用结构体系(一) 面向服务的架构概述
- 基于企业服务架构的新一代企业管理应用软件
- PPC,互联网增值服务新亮点
- 电信增值应用接口向互联网站免费开放
- DotNET应用架构设计指南(第二章:设计应用程序和服务组件(2-5和3-6))已上传
- 纪念日:服务构件环境(SCE)挑起企业级架构的栋梁,下一代的应用开发模式日渐清晰
- DotNET应用架构设计指南(第二章:设计应用程序和服务组件(1-4))已上传
- 纪念日:服务构件环境(SCE)挑起企业级架构的栋梁,下一代的应用开发模式日渐清晰