APP下载

IIP系统XJOIN框架的设计与实现*

2014-02-07张萌朱晓民

电信工程技术与标准化 2014年12期
关键词:业务流程视图消息

张萌,朱晓民

(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876; 2 东信北邮信息技术有限公司,北京 100191)

IIP系统XJOIN框架的设计与实现*

张萌1,2,朱晓民1,2

(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876; 2 东信北邮信息技术有限公司,北京 100191)

独立智能外设(IIP)系统是智能网中重要的功能实体之一,完成特殊资源功能(SRF),向智能网的终端用户提供各种的专用资源服务。现有两套IIP系统平台产品:控制节点(CN)和下一代核心业务平台——应用服务器(NCSP-AS),二者在能力上有较多重叠,但由于技术实现和开发语言上的差异,需要各自设立相关的开发和维护人员,造成了人力使用和软件维护成本的浪费。针对这一问题,本文集合原有平台能力和优点设计了新产品——媒体业务平台。该平台基于CN平台底层架构和NCSP-AS平台的业务加载模式,运用MVC设计模式,实现XJOIN框架,达到业务逻辑和平台数据的显示分离,完成两套平台业务加载模块的融合。

IIP;MVC;XJOIN

独立智能外设(IIP,Independent Intelligent Peripheral)系统充分借鉴CTI技术发展的最新成果;采用高可靠性、高性能主机系统和高性能的国外成熟资源板卡;吸收国际上软件体系结构最新思想,采用多层体系结构,实现软件系统的稳健性、易扩展性和高性能;采用完整的面向对象的思想、工具,分析、设计、实现和部署。系统具有完整的信令接口,支持多种组网方式,采用的是集中控制的分布处理方式,向智能网的终端用户提供各种的专用资源服务,系统具有完整的信令接口,支持多种组网方式,采用的是集中控制的分布处理方式,从功能角度看,本系统主要由控制节点(CN)、资源节点(RN)、信令节点和维护系统组成。

媒体业务平台CN由高性能计算机服务器构成,它集中控制并管理所有资源,是整个独立智能外设的灵魂,同时提供与SMP和网管等的接口。基于原CN、NCSP-AS两个平台的优势和特点,并充分调研电信、互联网业务模式发展的趋势,网络发展的趋势,整理出NCSP-AS在能力(业务开发、基础功能、接入协议等)、操作维护(安装部署、操作手段等)、性能、架构(可扩展行、稳定性等)等方面的需求,在新系统中得以实现。原IIP-CN构架中触发业务逻辑部分是开发人员自行开发的一种编译语言——业务逻辑程序 (SLP),业务人员学习语法并使用。但是业务开发随着IP网络协议的复杂化,SLP支持的协议存储数据字段需频繁更改底层代码,开发极其不便利,所以本论文设计开发XJOIN框架替代IIP-CN构架中的SLP,用XJOIN来处理CN中事件触发业务部分,并提供简单易懂的接口和语法规则来让业务人员进行业务逻辑开发和设计。

1 XJOIN模块的设计

1.1 XJOIN模块总体架构

图1 XJOIN模块内部结构图

XJOIN框架嵌入CN系统中,以CN后台为控制台,以CN编解码一次呼叫为模型,以业务逻辑开发的XML文档为视图的用C++语言开发的基于MVC设计模式的框架。下面从MVC设计模式的模块、视图和控制3部分介绍图1所示的XJOIN的总体架构:XjoinService模块是模块部分,用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。XJOIN的模块部分(XjoinService)提供经过协议解析,消息处理等的固定数据,如每次呼叫的主被叫号码,定制的业务等。Application标签节点是视图XML的根节点,业务逻辑的触发从Application开始执行,XML以动态链接库的方式访问它所监视的数据模型(Model),获得底层实时提供的原始数据资源。Application标签节点下面,有Event标签节点,控制器通过Event来起到不同层面间的组织作用,用于控制应用程序的流程,它处理事件并做出响应。“事件”包括用户的行为和数据模型上的改变。

1.2 XJOIN的View模块

该模块通过实现XML业务逻辑文件的读取和存储,设计View视图的数据结构。如图2所示:业务逻辑有一个根节点,标签名字为Application,Application节点包含Session和Event节点,业务一般从Application根节点的配置开始,按照树的结构,逐个配置子Session。Session节点代表一个会话,在一次业务逻辑里,可以有多方会话,会话之间可以发送请求消息。响应消息以事件的形式完成业务逻辑的执行,每个Session里面通常配置一组相关的Event及Event包含的Handler组成。Session还支持嵌套结构,一般为两层。在配置的时候,可以根据业务逻辑或者所处理的具体协议的会话关系来划分不同的Session。当触发业务逻辑根节点后,顺序执行业务逻辑会进入某个Session的Event事件,Event执行该标签内部的属性Handler,Handler有4种属性:Session、Event、Ref、Method,Session和Event构成一种Handler,这种Handler用于XML内部的标签跳转,Ref和Method构成的Handler用于调用函数动态链接库,衔接底层平台的数据处理。CN平台向外部发送呼叫请求消息,外部某个实体请求后会给CN发送响应,CN收到响应后,会触发该Session的某Event事件,比如SIP事件,一次SIP请求后,CN收到SIP响应,相应的Event标签里面的属性为Sip.message的事件被触发,执行该标签内部的Handler,依次按照逻辑流程进行。除了顺序执行的方式以外,还支持Case的分支选择,发生跳转,使业务逻辑多样化。Case节点某个Handler执行之后的一个逻辑分支,Case下通过配置一个或多个Handler来执行分支逻辑。以实现业务逻辑的多样化。

1.3 XJOIN的Controller模块

图2 XML内部结构图

XJOIN的视图部分直观反映业务逻辑的处理流程,Controller模块实现按照视图的编写,控制业务逻辑走向,Controller采用事件触发的机制控制数据流走向,被触发的事件分为3种:初始事件、外部事件和内部事件。

每个事件都由视图部分的Event节点表示。初始事件是一次业务逻辑的最初始入口,即View模块的Application节点表示,XJOIN根据IIP系统的一个自动机所携带的消息内部的业务键(ServiceKey),找到相应的Application,触发该业务逻辑,初始化业务上下文。外部事件是一次通用协议事件的触发,比如一次SIP呼叫,触发业务逻辑的一个分支,外部事件处理每次外部呼叫事件的触发。内部事件是视图内部,逻辑流程的跳转,内部逻辑跳转支持顺序,选择和分支跳转,其中内部事件用于控制程序内部分支和各个Session之间的执行顺序。

2 XJOIN框架工作流程

2.1 业务平台的工作流程

图3 业务平台工作流程

(1)如图3所示,业务平台在启动的时候加载了触发事件配置及业务流程配置,根据流程配置找到涉及到的业务处理动态链接库文件,完成动态库的加载操作,并将业务流程中的事件信息与动态链接库中的处理函数做关联。平台收到外部实体发来的首条消息后,生成自动机来保存此次呼叫的相关数据,并生成消息对应的事件交由XJOIN模块处理。(2)XJOIN模块根据事件,从业务触发事件配置中,找到该事件对应的应用名,并将该应用与自动机关联起来;之后,根据应用名从加载的流程配置中找到对应的业务流程,并从该业务流程中找到事件对应的处理函数,开始处理此消息。(3)处理函数过程中,可调用平台提供的业务API指示平台进行消息数据获取和保存,生成消息以及与发送消息等操作。(4)平台收到非首条消息后,会直接生成事件交由XJOIN处理。(5)XJOIN模块自动根据自动机对应的应用名,直接找到对应的业务流程,并从业务流程中找到事件对应的处理函数来处理。

2.2 业务发送消息基本步骤

图4 消息的处理过程

业务逻辑中有多个Session,一个Session会与外部通过多次消息传递来交互,如图4所示,XJOIN模块按照如下步骤完成Session中一次消息的发送。

(1)创建消息的内存区,内存区里的消息队列存放初始消息,根据业务View模块读取的业务流程处理消息。(2)利用平台底层提供的应用程序接口,完成消息头的组装和消息体内部参数的设置。(3)调用平台底层发送消息的接口发送消息,完成一个Session的一次收发消息交互。

3 结论

3.1 视图层和业务层分离

允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动XJOIN的模型层即可。模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。XJOIN模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。一旦正确的实现了模型,不管数据来自CN中的哪个状态机,视图能正确的显示它们。实现了构造良好的松耦合的构件,重用性高。

3.2 XJOIN模式允许用各种不同样式的视图编写业务代码

多个视图能共享一个模型,对于不同的状态机,只需要提供相应的标识和输入数据,就可以通过XJOIN的控制器,控制不同的业务流程文件来处理业务,获得相应的处理结果。由于已经将数据和业务规则从表示层分开,所以可以最大化的重用代码了。模型也有状态管理和数据持久性处理的功能。

3.3 XJOIN框架的特色

(1)IIP-CN框架的XJOIN模块可以为一个呼叫的数据在平台运行时同时建立和使用多个业务处理逻辑。变化传播机制可以确保所有相关的业务及时得到模型数据变化,从而使所有关联的业务文件和XJOIN模块的控制器做到行为同步。业务文件与控制器的可接插性,允许更换业务和控制器对象,而且可以根据需求从业务动态库里动态的打开或关闭、甚至在运行期间进行对象替换。模型的可移植性,因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对业务和控制器进行新的修改。(2)采用C++语言实现,利用动态加载技术实现代码动态编写,保证了作为后台的系统平台数据处理速度,同时可以动态生成对象,提高代码的可用程度,缩小代码编写量。(3)采用动态链接技术,静态链接使得不同的程序开发者和部门能够相对独立地开发和测试自己的程序模块,从某种意义上来讲大大促进了程序的开发效率,原先限制程序的规模也随之扩大。但是慢慢地静态链接的诸多缺点也逐步暴露出来,比如浪费内存和磁盘空间、模块更新困难等问题,使得人们不得不寻找一种更好的方式来组织程序的模块。要解决空间浪费和更新困难这两个问题最简单的办法就是把程序的模块相互划分开来,形成独立的文件,而不再将他们静态的链接在一起。简单地讲,就是不对那些组成程序的目标文件进行链接,等到程序要运行时才进行链接。

Design and implementation of IIP system XJOIN framework

ZHANG Meng, ZHU Xiao-min
(1 Beijing University of Posts and Telecommunications Networking and Switching Technology, State Key Laboratory, Beijing 100876, China; 2 EBUPT Information Technology Co., Ltd., Beijing 100191, China)

IIP system is one of the important functional entities in the intelligent network to perform a special resource function SRF and to provide terminal users in the intelligent network with a variety of special resource services. At present, there are two platform products of the IIP system: CN and the NCSP-AS. However, the two platforms with a variety of special in technologies and developing languages result in a redundancy and waste of software products as well as human resources. Therefore, a new platform product: a media service platform which combines the capacities and advantages of the two products mentioned above is in urgent need. In this paper, the writer illustrates how he uses the MVC design mode to realize the XJOIN structure based on the architecture of CN and the service load mode in NCSPAS platform, and achieve the goal of separating service logic and platform data and completing the integration of the service load module in the two platforms.

IIP; MVC; XJOIN

TN915

A

1008-5599(2014)12-0079-04

2014-11-01

国家973计划项目(编号:2013CB329102);国家自然科学基金资助项目(No. 61372120, 61271019, 61101119, 61121001);长江学者和创新团队发展计划资助(编号:IRT1049);教育部科学技术研究重点(重大)项目资助(编号:MCM20130310);北京高等学校青年英才计划项目(编号:YETP0473)。

猜你喜欢

业务流程视图消息
一张图看5G消息
企业财务管理、业务流程管理中整合ERP之探索
互联网+背景下物流公司的业务流程再造
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
建设项目全过程造价管理咨询服务的业务流程分析
基于财务业务流程再造的ERP信息系统构建探析
消息