论文部分内容阅读
2G移动网络为了实现交换与控制的分离,引入移动智能网作为增值业务的开发与运行平台,而3G移动网络为了提供更为开放的业务开发模式,引入应用服务器作为主要的电信业务运行平台。现有的电信业务开发模式主要有基于API(ApplicationProgramming Interface)的开发模式和基于脚本的开发模式两种。基于API的开发模式是目前市场上的主流,其功能完善,允许业务开发者使用程序完全控制应用服务器,以实现各种灵活的业务,但其使用复杂,业务开发周期长;基于脚本的开发模式使用简单,开发效率高,但是受限于脚本本身的功能,无法满足全部电信业务的功能需求。本文综合了基于API的开发模式和基于脚本的开发模式的优点,提出一种新的基于电信应用框架的开发模式,并实现了一套可适用于3G应用服务器的电信应用框架—XJoin。XJoin电信应用框架是为基于应用服务器的电信业务专门设计的,包含了核心业务逻辑与通用工具的应用框架。它采用基于构件的事件驱动的体系架构,由容器路由构件、业务加载构件、协议相关构件以及业务组件构件四种构件组成。XJoin实现了基于电信应用框架的开发模式,这种开发模式使用独创的基于XML的XSDL(XJoin ServiceDevelopping Language)脚本语言搭建电信业务逻辑的骨架,允许业务开发者使用XJoin电信应用框架内的通用构件或者自己扩充的Java代码来丰富电信业务逻辑的细节。XSDL脚本为IMR(InteractiveMulti-media Response)业务专门设计了一套语法,将放音、收号、跳转等基本操作封装起来,支持使用简单的脚本灵活的实现具体的IMR业务。XJoin还实现了一套可通用于各种电信业务的基于会话的树状结构的状态管理机制。XJoin电信应用框架采用的关键技术包括事件路由算法,业务热部署和在线升级的实现,以及新的DWR(Dynamic Weighted Random)负载均衡算法。事件路由算法包括内部事件路由算法和外部事件路由算法两种,都是对基于树的增加、查找、遍历算法进行优化。业务热部署和在线升级功能利用了Java的类加载器机制,实现了可以运行时动态加载和卸载类的加载器,并使用旧业务逻辑和新业务逻辑同时运行一段时间的策略来实现无呼损的业务升级。DWR负载均衡算法设计了一种哈希权值随机算法进行负载的分发,并设计了动态负载统计和反馈算法来实现负载的动态调整,性能良好且计算简单。针对XJoin电信应用框架进行了多方面的测试。业务开发量对比测试结果表明XJoin可以降低电信业务的开发和维护成本,性能对比测试结果表明XJoin可以提高电信业务的性能,事件路由算法的优化对比测试表明事件路由算法的优化对改善XJoin的性能起到了重要作用,负载均衡测试结果表明XJoin可以有效保证电信应用服务器集群的负载均衡。文章最后给出了关于电信应用框架的结论,介绍了XJoin的商用情况和基于XJoin的业务开发情况,并指出了在软件架构、XSDL脚本语言以及DWR算法方面需要进一步研究的方向。