- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java NIO通信框架在电信领域的实践
作者?李林锋?发布于 2015年5月17日?|?12?讨论
? 分享到:微博微信FacebookTwitter有道云笔记邮件分享
? 稍后阅读
? 我的阅读清单
1. 华为电信软件技术架构演进
1.1. 电信软件
从广义上看电信软件的范围非常广,细分实际可以分为两大类:系统软件和业务应用软件。
系统软件包括路由器底层的信令机软件、手机操作系统等,业务应用软件主要包括客户关系管理CRM、网上营业厅、融合计费OCS和各类消息网关,例如短信网关、彩信网关等。
本文重点介绍电信业务应用软件的技术变迁历史,以及华为电信软件架构演进和Java NIO框架在技术变迁中起到的关键作用。
1.2. 华为电信软件的技术演进史
1.2.1. C和C++主导的第一代架构
在2005年之前,华为软件公司的核心系统主要以C和C++进行开发,由于C和C++开源框架非常少,加之那个时代开源社区并不成熟,大部分的系统都采用自研开发,包括协议栈、系统调度、数据访问层和日志。
大多数的软件都运行在服务端,对外提供高性能、低时延和高并发的系统调用,协议栈大多数都采用电信私有协议栈,对于部分有前台管理Portal的系统,往往基于原生的HTML或者Struts等WEB框架开发,通过HTTP协议与后端进行交互,它的逻辑架构图如下:
图1-1 华为电信软件V1版逻辑架构图
在那个时代,电信软件绝大多数都部署在高性能的小机中,处理各种信令、电信私有协议的接入和解析、复杂业务逻辑处理,系统对处理性能、时延、多核处理的要求非常高。当时Java主流版本还是JDK 1.4.2(1.4.X),它在传统的Web应用、电子商务网站和政企系统中得到了比较广泛的应用,但是在电信领域并没有大的应用,主要原因如下:
1) 在JDK1.5之前的早期版本中,Java在多线程编程、并行处理等方面能力很差,无法在电信软件服务器端使用;
2) JDK 1.4.X对非阻塞I/O的支持并不好,相关NIO编程的可参考资料和开源框架很少,传统的阻塞I/O模型在电信高性能、高可靠场景中力不从心;
3) 业界很少有Java高性能服务端处理成功的案例,大家普遍对Java 支持电信级应用场景持怀疑态度;
4) 那个时代电信领域的开发者都是C/C++出身,大家对新技术和语言有种天生的排斥。
2005年之后,随着Java在各领域的快速普及和应用,以及基于Java的各种开源框架井喷式增长,华为越来越多的产品开始尝试切换到Java进行开发,主流架构随即演进到了以Java为主的V2版本。
1.2.2. Spring + Struts + Tomcat 的第二代架构
2005年-2008年间,华为电信软件大多数产品线都切换到Java语言进行新产品的设计和开发,当时随着Struts的MVC模式以及Spring对J2EE复杂企业应用对象生命周期的配置式管理的流行,华为电信软件绝大多数产品采用基于Spring + Struts + Tomcat模式进行开发,数据访问中间件主要采用iBatis和Hibernate,它的逻辑架构如下所示:?
图1-2 华为电信软件V2 MVC版逻辑架构图
切换到以Spring + J2EE容器为基础技术框架之后,应用开发的难度迅速降低,开发效率获得了极大提升。短短1-2年时间,公司大多数以C/C++的项目切换到了Java语言和V2 架构上。
1.2.3. 以SOA为中心的第三代架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。
随着电信业务的快速发展,电信原有系统和新建设系统之间存在语言、协议、运行环境等诸多差异。如何整合异构系统,实现高效企业集成,也是一个巨大的挑战,此时,企业服务总线(ESB)是个不错的选择。
为了满足电信业务的需求,华为软件研发了SOA中间件,它的逻辑架构图如下:
图1-3 以SOA服务化为核心的V3架构
SOA是一种粗粒度、松耦合的以服务为中心的架构,接口之间通过定义明确的协议和接口进行通信。SOA帮助工程师们站在一个新的高度理解企业级架构中各种组件的开发和部署形式,它可以帮助企业系统架构师以更迅速、可靠和可重用的形式规划整个业务系统。相比于传统的垂直架构,SOA能够更加从容的应对复杂企业系统集成和需求的快速变化。
1.2.4. 以分布式、云化为核心的第四代架构
随着业务的不断发展,硬件成本的下降,基于X86架构的廉价硬件 + 分布式软件的模式在互联网行业得到了大规模应用,分布式架构日趋成熟。
从运营商业务看,尽管高性能的小机仍然是标配,但是运营商业务向数字化转型和云化降成本逐渐成为一种趋势。
传统SOA架构中的一些缺陷逐步暴露,例如企业集成总线ES
文档评论(0)