CN101216761A - 用于ngn业务开发的电信应用软件框架 - Google Patents
用于ngn业务开发的电信应用软件框架 Download PDFInfo
- Publication number
- CN101216761A CN101216761A CNA2007103046948A CN200710304694A CN101216761A CN 101216761 A CN101216761 A CN 101216761A CN A2007103046948 A CNA2007103046948 A CN A2007103046948A CN 200710304694 A CN200710304694 A CN 200710304694A CN 101216761 A CN101216761 A CN 101216761A
- Authority
- CN
- China
- Prior art keywords
- session
- node
- module
- service
- event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Telephonic Communication Services (AREA)
Abstract
一种用于NGN业务开发的电信应用软件框架,该装置位于应用服务器和电信业务逻辑层之间,它的功能是在通用的应用服务器的基础上,进一步扩充与电信业务相关的各种实用功能,为业务开发人员提供简单又强大的XML脚本的业务开发和参数配置方式,以及丰富、易用的电信业务资源,使得业务开发更加简化而快捷。该装置包括四个软件模块:调用业务加载模块、完成业务加载过程的容器路由模块,在加载业务的过程中、调用业务组件模块和协议相关模块进行业务逻辑的实例化和组装的业务加载模块,以及业务组件模块和协议相关模块。该装置特别适用于简化而快速地开发NGN的各种增值业务,具有非常实用的推广应用前景。
Description
技术领域
本发明涉及一种用于NGN业务开发的电信应用软件框架,属于计算机软件、特别是电信业务软件的技术领域。
背景技术
现在,下一代网络NGN(Next Generation Network)中的业务开发通常都是基于应用服务器来进行的。应用服务器的最主要功能是提供一个业务开发平台,允许业务开发人员在应用服务器的平台上开发各种各样的电信业务。
目前,用于NGN网络业务开发的应用服务器主要有两种类型:一种是采用JSLEE(JAIN业务逻辑执行环境)标准的应用服务器,另一种是采用Servlet(会话初始化协议SIP)标准的应用服务器。
采用JSLEE标准的应用服务器通常专用于开发各种面向事件的应用程序。这种应用服务器提出了业务构件块的概念,所谓业务构件块就是单个或多个功能组件。如果业务开发者采用这种应用服务器开发业务,需要开发多个包含业务逻辑的业务构件块,然后通过复杂的XML配置脚本将这些业务构件块加载到应用服务器中,组成一个完整的业务。开发业务构件块的具体办法是按照应用服务器提供的应用编程接口API来编写程序代码。
采用SIP Servlet标准的应用服务器则专用于SIP协议。BEA公司生产的WLSS(WebLogic SIP Server)应用服务器产品就是支持SIP Servlet的应用服务器。如果业务开发者使用该应用服务器开发业务,就需要开发一系列的SipServelts来处理SIP消息流和请求。它的开发途径也是参照应用服务器的具体开发说明手册来编写程序代码。
虽然上述两种应用服务器都是基于开放应用编程接口API来开发业务,但是,业务开发的技术人员必须要能够同时熟悉相关接口的规范和电信业务的协议,才能编写代码并调用这些数目众多的API,这就使得开发的难度相当大。另外,更重要的是这两种应用服务器都是面向通用的计算机网络技术领域的,不是专门面向NGN电信业务领域的,因此,这两种应用服务器中都没有包含电信领域的相关业务流程和业务逻辑。电信业务的开发人员必需自行开发与电信业务相关的全部业务逻辑,这就使得电信业务的开发过程变得更加复杂。
因此,如何对现有技术存在的上述问题进行改进,研制一种能够利用应用服务器作为基础构件,用于开发面向NGN电信业务的电信应用软件框架,以实现电信业务的快捷开发已经成为一项非常急迫的技术任务。
发明内容
有鉴于此,本发明的目的是提供一种用于NGN业务开发的电信应用软件框架,该框架以通用的应用服务器为基础构件,并在该基础上,进一步扩充电信业务的相关功能,也就是采用基于可扩展标记语言XML脚本的业务开发模式,使得业务开发者能够通过编写XML脚本来开发业务逻辑,并且可以在XML脚本中任意调用包括该框架提供的公用的核心业务逻辑模块及业务开发者自己编写的代码的各种Java代码,使得业务开发变得简化而快捷。
为了达到上述目的,本发明提供了一种用于NGN业务开发的电信应用软件框架,其特征在于:所述软件框架是以应用服务器作为基础构件,提供基于可扩展标记语言XML脚本的业务开发模式,使得业务开发人员采用编写XML脚本的方式来开发电信业务逻辑,并且能够在XML脚本中调用包括该软件框架所提供的包括公用的核心业务逻辑模块和业务开发者自己编写的代码的各种Java代码,以使业务开发更加简化而快捷;该电信应用软件框架采用Java2平台企业版的J2EE架构,包括下述四个软件功能模块:调用业务加载模块、完成业务加载过程的容器路由模块,在加载业务的过程中、调用业务组件模块和协议相关模块进行业务逻辑的实例化和组装的业务加载模块,业务组件模块和协议相关模块;其中容器路由模块对事件进行路由时,需要根据路由的结果选择调用业务组件模块和协议相关模块里的相关构件子模块。
本发明是用于NGN业务开发的电信应用软件框架,该装置位于应用服务器和电信业务逻辑之间,它的功能不是取代应用服务器,而是在通用的应用服务器的基础上,进一步扩充与电信业务相关连的各种实用功能,为业务开发人员提供简单又强大的基于XML脚本的业务开发和参数配置方式,以及丰富、易用的电信业务资源,特别适用于简化而快速地开发NGN的各种增值业务,具有非常实用的现实意义。
附图说明
图1是本发明用于NGN业务开发的电信应用软件框架与应用服务器、电信业务逻辑之间的结构关系示意图。
图2是本发明用于NGN业务开发的电信应用软件框架的结构组成示意图。
图3是本发明电信应用软件框架采用的基于树状结构管理机制中的配置文件的树状结构示意图。
图4是图3中的两个一级session合并后的树状结构示意图。
图5是本发明电信应用软件框架中的业务加载模块所提供的业务开发模式示意图。
图6是本发明的一实施例的组网结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
参见图1,本发明是位于应用服务器和电信业务逻辑之间的一种新装置-用于NGN业务开发的电信应用软件框架,该装置以应用服务器作为基础构件,提供基于XML脚本的业务开发模式,使得业务开发人员采用编写XML脚本的方式来开发电信业务逻辑,并能够在XML脚本中调用包括该软件框架所提供的公用的核心业务逻辑模块和业务开发者自己编写的代码的各种业务代码,以使业务开发更加简化而快捷。图中的实线箭头表示装置内部接口,虚线箭头表示网络接口。
参见图2,本发明电信应用软件框架的实施例采用Java2平台企业版的J2EE架构,由容器路由模块、业务加载模块、业务组件模块、协议相关模块四部分组成,它们之间的关系是:容器路由模块调用业务加载模块,完成业务加载的过程;容器路由模块的容器子模块在对事件进行路由时,需要根据路由的结果选择调用业务组件模块和协议相关模块里的相关构件子模块。业务加载模块在加载业务过程中,会调用业务组件模块和协议相关模块进行业务逻辑的实例化和组装。
下面对这四个软件功能模块的结构组成及其功能作具体说明如下:
(1)容器路由模块,包括容器子模块和路由子模块,用作该电信应用软件框架的核心控制模块;其主要功能是:负责采用基于树状结构的状态管理机制对运行时的业务实例和状态数据进行管理,以及创建和销毁这些业务实例和状态数据;负责接收应用服务器的上报事件,识别事件对应的上下文关系,并对事件进行命名、排队和其他内部处理,再把其处理后的事件路由给业务配置文件指定的业务逻辑进行后续处理;在事件处理完毕后,回调应用服务器提供的接口,给应用服务器事件返回处理结果并清除该事件所占用的资源;在业务启动时负责调用业务加载模块来完成业务加载功能。
(2)业务加载模块,包括解析子模块和加载子模块,用于在启动业务时被容器路由模块调用而完成业务加载功能;其中解析子模块的功能是:定义业务逻辑的XML脚本必须遵守的规则,即XML脚本的语法(参见实施例的XMLSchema。包括两部分内容:一是XML的命名空间和各个节点、属性的名字,二是这些节点和属性相互之间的关系,即每个节点有哪些属性和哪些子节点,子节点的数目限制是多少);将用户配置的XML脚本转化为用业务程序代码表示业务逻辑的一个树状结构;并在业务启动时,验证业务逻辑的XML脚本的正确性,如果验证结果为不正确,则向用户提示错误信息并中止业务的启动;加载子模块的功能是:将解析子模块生成的树状结构转化为真正的业务逻辑:将用户配置在XML脚本中的属于业务组件模块和协议相关模块的各个构件进行组装,再把组装后的结果放到容器路由模块中去。
(3)业务组件模块,包括多媒体自动应答IMR构件、在线状态Presence构件和XML文档管理XDM构件三个子模块,用于完成基础业务逻辑的创建功能,即对公共的业务逻辑进行抽象后,把事件和消息收发作进一步封装;上述三个构件子模块分别用于支持实现IMR、Presence和XDM三类基础业务。
该业务组件模块中的三个构件子模块的功能和配置办法分别介绍如下:
IMR构件子模块,用于包含IMR的通用能力而提供一个IMR业务的半成品,IMR业务的实质是执行下述循环:播放提示音→接收用户输入的号码→播放提示音→接收用户输入的号码......其中每次播放的提示音取决于用户输入的号码。该IMR构件子模块提供下述IMR业务功能:播放提示音、接收用户拨的号码,再返回上级菜单,执行菜单跳转及循环播放;其中播放提示音和接收用户号码是该子模块通过SIP协议控制媒体服务器执行的特定操作,菜单跳转和循环播放是由该IMR子模块内部的状态管理机制实现的,业务开发者只需在XML配置文件里配置提示音的放音规则和跳转规则。
Presence构件子模块,用于支持Presence业务的基础能力而提供一个Presence业务的半成品,即通过该Presence构件子模块,用户能够发布和修改自己的Presence状态、订阅他人的Presence状态、或得到Presence状态改变时的通知;业务开发者只需要在XML配置文件里配置在线状态的种类和订阅Presence状态的授权规则。
XDM构件子模块,用于支持XDM业务的基础能力而提供一个XDM业务的半成品,即基于超文本传输协议HTTP,以XML文本为消息体,对应用服务器上存储于数据库中的数据执行增、删、改和查询操作;业务开发者在业务逻辑中只要执行下述操作,就可用该XDM功能:一是配置不同用户访问数据的权限,二是配置数据库中的数据与XML文本中的节点的对应关系。
以上三个子模块相互独立,以可插拔组件的形式由业务加载模块根据业务配置文件来加载,也就是说,业务配置文件里用到了以上三个子模块中的某个模块,就由业务加载模块把它加载到容器路由模块里,否则,就不会加载。在相应消息到达时,由容器路由模块动态的调用相应的业务组件模块。
(4)协议相关模块,包括会话初始化协议SIP构件,承载无关的呼叫控制协议BICC构件,XML控制访问协议XCAP构件和中国移动通信互联网短信网关接口协议CMPP构件四个子模块,用于完成上述四种网络协议消息包的收发功能;业务开发者在配置文件里编写特定的XML脚本,既可调用该模块的相关功能。该协议相关模块的四个构件子模块的功能和配置方法分别介绍如下:
SIP构件子模块,用于封装对SIP协议的基本处理操作:在收到SIP请求时,只把电信业务逻辑层关心的消息头和消息体报告给电信业务逻辑层,使得电信业务逻辑层只需填写消息头和消息体就能够发送响应;电信业务逻辑层采用填写消息头和消息体信息来异步无阻塞地发送SIP消息;在SIP应答返回时,该SIP构件子模块报送响应的状态码、消息头和消息体;
BICC构件子模块,用于封装对BICC协议的基本处理操作:因BICC消息没有请求和应答之分,在收到BICC消息时,该BICC构件子模块只把业务逻辑关心的消息内容报告给电信业务逻辑层,使得电信业务逻辑层只需填写消息内容就能够向外发送BICC消息;
XCAP构件子模块,用于封装对XCAP协议的基本处理操作:在收到XCAP请求时,该XCAP构件子模块只把电信业务逻辑层关心的消息头和消息体报告给电信业务逻辑层,使得电信业务逻辑层只需填写消息头和消息体就能够发送响应;电信业务逻辑层采用填写消息头和消息体信息来发送XCAP请求,并同步返回应答;
CMPP构件子模块,用于封装对CMPP协议的基本处理操作:在收到CMPP短消息时,该CMPP构件子模块只把业务逻辑关心的消息内容报告给电信业务逻辑层,使得电信业务逻辑层只需填写消息内容就能够向外发送短消息;
上述四个模块相互独立,以可插拔组件形式由业务加载模块根据业务配置文件来选择加载;也就是说,业务配置文件里用到了以上四个模块中的某个模块,就由业务加载模块把它加载到容器路由模块里,否则,就不会加载。在相应消息到达时,由容器路由模块动态调用对应的协议相关模块的子模块。
本发明电信应用软件框架中的容器路由模块是关键模块,其主要功能是对业务运行时刻的状态执行管理功能。为了完成这个目标,本发明创建了一种基于树状结构的状态管理机制,下面详细说明它的具体内容和功能:
(1)因为业务逻辑是根据XML配置文件生成的,因此业务逻辑在运行时的结构和配置文件的结构相同。每个业务在运行时都是一棵以应用application为根节点,以会话session为节点的业务树。其中application的直接子节点称为一级session,一级session的直接子节点称为二级session。每个session都有自己要处理的一组事件类型以及对应每种事件类型的事件处理逻辑handler。而且,为了保存状态,每个session有一个存储呼叫状态等短时数据的数据集合。
(2)本发明将应用服务器上报给容器路由模块的每个消息请求以及容器路由模块内部产生的消息请求都称为事件,因此,事件有两种类型:外部事件和内部事件,外部事件是应用服务器上报给容器路由模块的消息请求,包括创建上下文的初始事件和关联上下文的非初始事件;内部事件是容器路由模块内部产生的、不带有上下文的内部消息请求。
对于某一次呼叫来说,主叫用户发起的呼叫请求就是一个初始事件。拥有共同的一级Session作为祖先节点的两个Session可以相互发送内部事件。
容器路由模块把应用服务器上报来的外部事件按照自顶向下的原则进行路由:先由application进行路由,然后依次向子节点路由,直至到达这个事件对应的handler,再按照配置文件的规则执行这些handler。
对容器路由模块产生的内部消息则以内部事件进行路由处理:第一个节点Session A要给第二个节点Session B发送内部消息时,第一个节点Session A会将内部消息发送给第一个节点Session A和第二个节点Session B的最近的共同祖先Session C,然后由该祖先节点Session C进行重新路由。
(3)本发明电信应用软件框架在业务启动的时候创建application,在收到初始事件时,由application创建一个一级session,此后这个一级Session就关联了这个初始事件所创建的上下文,以后到达的、与这个上下文有关的非初始事件都由这个一级session接收,然后路由给子节点。对于呼叫类业务来说,每一个一级session对应一次呼叫,因此,一级session的数量等同于正在进行的呼叫数量;且每个二级session对应其所归属的一级session的电话呼叫的一方。
参见图3,对上述情况作具体介绍:主叫拨号以后,application创建一个一级Session,同时该一级Session创建第一个二级主叫Session(Caller Session),在被叫振铃以后,该一级Session创建另一个二级被叫Session(Callee Session)。这样,主叫用户对应的数据存储在主叫Session里,被叫用户对应的数据则存储在被叫Session里,同主被叫都有关的数据可以存储在该一级Session里。双方挂机以后,对应该次呼叫的Session全部被销毁。
总之,本发明中的外部事件都是先由application进行路由,内部事件是直接由某个Session进行路由,然后依次向子节点路由,直至到达这个事件对应的handler,并按照配置文件的规则执行这些handler。
下面结合一个实施例的情况,描述一个Session(设为SessionA)在接收到一个事件的时候,所执行的具体路由算法:
(1)如果是内部事件,即该第一个节点Session A要给第二个节点SessionB发送内部消息,第一个节点Session A会将内部消息发送给第一个节点SessionA和第二个节点Session B的最近的共同祖先节点Session C,然后由该祖先节点Session C进行重新路由。
(2)如果事件关联有上下文,表示该事件是非初始事件,则直接从上下文里取得关联该上下文的第二个节点Session B。如果第二个节点Session B就是第一个节点SessionA,则直接在第一个节点Session A下查找该事件的Handler,如果找到Handler,则执行该Handler,否则,该事件路由失败,扔掉该事件;如果找不到Handler,则将该事件交给第二个节点Session B进行重新路由。
(3)如果事件没有关联的上下文,则尝试按照初始事件进行路由:通过第一个节点Session A对应的配置文件,查找该初始事件对应的下一跳子节点SessionC。如果没有找到下一跳子节点SessionC,则按照内部事件进行路由,通过深度优先搜索的办法,在第一个节点SessionA的所有已存在子孙节点中查找要接收该内部事件的节点Session,然后交给该节点Session进行重新路由;如果下一跳子节点SessionC就是第一个节点Session A,则直接在第一个节点SessionA下查找该事件的Handler,如果找到,则执行该Handler;否则,该事件路由失败,扔掉该事件;如果下一跳子节点SessionC在配置文件中有定义,但是还没有创建,则按照配置文件的内容创建该第一个节点Session A的下一跳子节点Session C,然后交给该子节点Session C进行重新路由。
需要特别说明的是:上述路由算法在处理会议电话业务时要做特殊处理:因为在会议电话业务中,每个一级Session表示某一个会议,其下的每个二级Session表示该会议的一个参与者。本发明电信应用软件框架在处理会议电话业务时执行以下两种特殊的路由方法:
(一)采用扩展XML配置规则来满足下述规定:当用户直接拨会议号码发起加入会议的呼叫时,本发明的电信应用软件框架不能给这个初始请求创建一个新的一级Session;而是把这个初始请求路由到一个已经存在的一级Session(表示该号码所对应的会议)上。该扩展XML配置规则是:在配置文件里的事件event节点里设置一个初始事件选择器,电信应用软件框架在收到初始事件的时候,先执行该初始事件选择器的操作,并根据这个初始事件选择器的执行结果,把初始事件重定向到一个已经存在的一级session上,以避免重新创建一级session。
(二)当用户首先呼叫多媒体交互应答IMR号码时,本发明电信应用软件框架要创建一个临时的一级Session B。用户听到系统放的提示音后,输入会议号,这时候电信应用软件框架要为用户接通会议,然后把这个一级SessionB合并到一个已经存在的、表示该用户输入号码所对应的会议一级Session A上。也就是,此时本发明电信应用软件框架支持两个一级Session的合并。这两个一级Session合并的操作步骤如下:
(1)把第二个一级Session B的二级子节点以及以该二级子节点为根节点的子树全部加入到第一个一级SessionA的子节点集合中;
(2)删除第二个一级SessionB的子节点集合;
(3)把第二个一级Session B存储的状态变量和临时数据全部并入到第一个一级Session A中;
(4)把第二个一级Session B关联的上下文关系全部转移到第一个一级Session A,使得原来由第二个一级Session B接收和处理的事件类型全部重定向到第一个一级SessionA;
(5)删除第二个一级Session B。
参见图4,该图是将上述图3中的两个一级Session(SessionA和Session B)合并后的情况示意。
参见图5,介绍本发明业务加载模块所提供的一套全新的业务开发模式,它的特点是利用XML文件配置业务逻辑,也就是将业务开发者开发编写、并符合该应用软件框架要求的XML配置文件输入到业务加载模块中的解析子模块,由解析子模块按照配置规则对该XML配置文件进行解析,并将解析后的结果送给加载子模块,加载子模块接受解析后的结果,按照这个结果生成和组装一个完整的业务逻辑,并将这个组装好的业务逻辑加载到容器路由模块里。
因此,业务开发者的主要任务是开发符合本发明应用软件框架要求的XML配置文件。该XML配置文件的配置规则描述如下::每个业务配置文件有且只有一个application根节点,用于表示一个业务,该节点设有分别标明身份和名称的id属性和name属性。其根节点设有0到多个初始上下文init-context节点和0到多个会话session节点,其中,init-context节点设有键key属性和值value属性,用于在application里存储初始变量,实现呼叫的初始化;session节点负责处理一组相关的事件,设有0到多个session子节点或0到多个事件event子节点;event节点表示该session对某个类型的事件接收并处理的操作,可以设有名称name属性、初始事件initial属性和0到多个表示该事件的处理逻辑的handler子节点。此时每个handler节点都设有关联class属性或引用ref属性,class属性指明handler节点和用户编写的业务程序代码的关联,ref属性用于直接引用该软件框架提供的通用的handler。配置的handler一共有三种类型:
第一种是顺序执行的处理逻辑handler,即连续多个handler节点配置在同一个event节点之下,表示该多个handler按照配置顺序先后执行对事件的处理操作。
第二种是选择执行的处理逻辑handler,即在一个handler节点下面配置一个或多个情况case节点,以便根据handler的执行结果来对case节点的结果result属性进行匹配,再根据匹配结果执行相应的case节点内容。
第三种是跳转执行的处理逻辑handler,即配置一个包含session属性和event属性的事件发射器eventEmitter节点,以便跳转到其他的session进行处理。
申请人已经应用本发明用于NGN业务开发的电信应用软件框架的试验模块配合应用服务器进行了实施试验,下面介绍该实施例的试验情况:
XML Schema语言是W3C组织推荐使用的XML格式的描述标准。本发明电信应用软件框架的XML文件的配置规则,用Schema表示如下:
<?xml version=″1.0″encoding=″UTF-8″?>
<!--注释:这里声明了命名空间,是http://www.ebupt.com/schema/xjoin-->
<xsd:schema xmlns=″http://www.ebupt.com/schema/xjoin″
xmlns:xsd=″http://www.w3.org/2001/XMLSchema″
xmlns:beans=″http://www.springframework.org/schema/beans″
targetNamespace=″http://www.ebupt.com/schema/xjoin″
elementFormDefault=″qualified″attributeFormDefault=″unqualified″>
<xsd:import namespace=″http://www.springframework.org/schema/beans″/>
<!--注释:这里定义一个节点类型:″sessionType″,继承自baseType,
可以有0到无限个event、session、或init-context子节点,可以有name属性-->
<xsd:complexType name=″sessionType″>
<xsd:complexContent>
<xsd:extension base=″baseType″>
<xsd:choice minOccurs=″0″maxOccurs=″unbounded″>
<xsd:element ref=″event″/>
<xsd:element ref=″session″/>
<xsd:element name=″init-context″
type=″beans:entryType″>
</xsd:element>
</xsd:choice>
<xsd:attribute name=″name″type=″xsd:string″/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!--这里定义一个节点类型:″handlerType″,继承自baseType,
可以有0到无限个″interceptor″子节点,接着是以下二选1:0到多个handlerElements中的子节点,或者是一个proxyed子节点,跟着0到多个case节点,接着是0或1个default节点。
case节点可以有result属性、ref属性、或class属性,case节点可以有0到多个handlerElements中的子节点。
-->
<xsd:complexType name=″handlerType″>
<xsd:complexContent>
<xsd:extension base=″baseType″>
<xsd:sequence>
<xsd:element name=″interceptor″
type=″interceptorType″minOccurs=″0″maxOccurs=″unbounded″/>
<xsd:choice>
<!--1:compond-->
<xsd:group ref=″handlerElements″minOccurs=″0″
maxOccurs=″unbounded″/>
<!--2:switch-->
<xsd:sequence>
<xsd:element name=″proxyed″
type=″handlerType″minOccurs=″0″maxOccurs=″1″/>
<xsd:element name=″case″minOccurs=″0″
maxOccurs=″unbounded″>
<xsd:complexType>
<xsd:group ref=″handlerElements″/>
<xsd:attribute name=″result″
use=″required″type=″xsd:string″/>
<xsd:attribute name=″class″
type=″xsd:string″/>
<xsd:attribute name=″ref″
type=″xsd:string″/>
</xsd:complexType>
</xsd:element>
<xsd:element name=″default″type=″handlerType″
minOccurs=″0″maxOccurs=″1″/>
</xsd:sequence>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name=″name″type=″xsd:string″/>
<xsd:attribute name=″proxy-ref″type=″xsd:string″/>
<xsd:attribute name=″class″type=″xsd:string″/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!--这里定义一个节点类型:″interceptorType″,继承自baseType,可以有name和class
属性-->
<xsd:complexType name=″interceptorType″>
<xsd:complexContent>
<xsd:extension base=″baseType″>
<xsd:attribute name=″name″type=″xsd:string″/>
<xsd:attribute name=″class″type=″xsd:string″/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!--这里定义一个节点类型:″baseType″,可以有id、info、ref、abstract和parent属性
可以有0到多个property子节点-->
<xsd:complexType name=″baseType″abstract=″true″>
<xsd:choice minOccurs=″0″maxOccurs=″unbounded″>
<xsd:element name=″property″type=″beans:propertyType″/>
</xsd:choice>
<xsd:attribute name=″id″type=″xsd:string″/>
<xsd:attribute name=″info″type=″xsd:string″/>
<xsd:attribute name=″ref″type=″xsd:string″/>
<xsd:attribute name=″abstract″type=″xsd:boolean″/>
<xsd:attribute name=″parent″type=″xsd:string″/>
</xsd:complexType>
<!--这里定义一个节点:″application″,该节点类型是sessionType-->
<xsd:element name=″application″type=″sessionType″></xsd:element>
<!--这里定义一个节点:″session″,该节点类型是sessionType-->
<xsd:element name=″session″type=″sessionType″></xsd:element>
<!--这里定义一个节点:″event″,继承自baseType,可以有name和initial,
sessionSelectorRef属性,可以有0到多个handlerElements中的子节点。
-->
<xsd:element name=″event″>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base=″baseType″>
<xsd:group ref=″handlerElements″/>
<xsd:attribute name=″name″type=″xsd:string″/>
<xsd:attribute name=″initial″type=″xsd:boolean″/>
<xsd:attribute name=″sessionSelectorRef″type=″xsd:string″/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<!--这里定义一个节点:″interceptor″,该节点类型是interceptorType-->
<xsd:element name=″interceptor″type=″interceptorType″/>
<!--这里定义一个节点:″handler″,节点类型是handlerType-->
<xsd:element name=″handler″type=″handlerType″/>
<!--这里定义一个节点:″eventEmitterType″,继承自baseType,可以有event和session
属性-->
<xsd:complexType name=″eventEmitterType″>
<xsd:complexContent>
<xsd:extension base=″baseType″>
<xsd:attribute name=″event″type=″xsd:string″/>
<xsd:attribute name=″session″type=″xsd:string″/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!--这里定义一个节点:″eventEmitter″,节点类型是eventEmitterType-->
<xsd:element name=″eventEmitter″type=″eventEmitterType″>
</xsd:element>
<!--这里定义一个节点:″contextType″,继承自baseType,可以有clear,copy,move,
return,和assign属性可以有0到多个case节点,参见前面的case节点说明
-->
<xsd:complexType name=″contextType″>
<xsd:complexContent>
<xsd:extension base=″baseType″>
<xsd:sequence>
<xsd:element name=″case″minOccurs=″0″
maxOccurs=″unbounded″>
<xsd:complexType>
<xsd:group ref=″handlerElements″/>
<xsd:attribute name=″result″
use=″required″ type=″xsd:string″/>
<xsd:attribute name=″class″
type=″xsd:string″/>
<xsd:attribute name=″ref″
type=″xsd:string″/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name=″clear″type=″xsd:string″/>
<xsd:attribute name=″copy″type=″xsd:string″/>
<xsd:attribute name=″move″type=″xsd:string″/>
<xsd:attribute name=″retum″type=″xsd:string″/>
<xsd:attribute name=″assign″type=″xsd:string″/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name=″context″ type=″contextType″>
</xsd:element>
<!--这里定义了handlerElements组,可以是0到多个handler、eventEmitter、context
的组合-->
<xsd:group name=″handlerElements″>
<xsd:sequence>
<xsd:choice minOccurs=″0″maxOccurs=″unbounded″>
<xsd:element ref=″handler″/>
<xsd:element ref=″eventEmitter″/>
<xsd:element ref=″context″/>
</xsd:choice>
</xsd:sequence>
</xsd:group>
</xsd:schema>
以点击拨号业务的实施例为例,详细说明本发明电信应用软件框架的使用方法和功能。
点击拨号业务的简单流程是:用户在一个网页上点击一个链接,产生一个点击事件;该点击事件通过一个Web网关报告给点击拨号应用服务器,点击拨号应用服务器先呼叫主叫用户,互通后再呼叫被叫用户,然后把主被叫接通。
试验是在一台HP DL380服务器上安装Unix操作系统和Java运行环境后,再安装应用服务器软件,以及把电信应用软件框架连同点击拨号的配置文件一起部署到应用服务器软件上,这样就将一台点击拨号应用服务器搭建成功了。该点击拨号应用服务器与媒体服务器、Web网关和软交换电话终端进行交互(其组网架构如图6所示)。
此后,申请人分别对基于通用应用服务器的点击拨号业务开发的工作量和基于本发明电信应用软件框架的点击拨号业务的开发工作量进行了比较,采用两种不同研究开发方式所完成的源程序代码数量的统计对比情况如下表所示。
基于应用服务器的点击拨号业务 | 基于本发明电信应用软件框架的点击拨号业务 | |
代码行数(不含空行、注释) | 4366 | 2159 |
配置文件行数 | 559 | 1656 |
从上述表格的对比结果可以看出,采用电信应用软件框架以后,明显地减少了业务开发的工作量。业务逻辑的程序代码大约减少到原来的1/2左右,减少的大量代码是由该应用软件框架所提供的可复用构件来支持。同时,配置文件的行数明显增多,这一方面意味着开发配置文件的工作量增加,另一方面也说明了业务的可维护性和灵活性能得到了显著的增强效果。
此外,申请人对直接基于应用服务器的点击拨号和基于电信应用框架的点击拨号两项业务逻辑程序分别进行了性能测试,两者使用的测试环境相同:惠普DL380 PC Server,Intel(R)Xeon(TM)CPU 3.00GHz(超线程),JDK1.5,为Java虚拟机分配1G的内存。且使用相同的测试用例,测试时长1200分钟,40CAPS(Call Attempt Per Second)的稳定呼叫速率,每次呼叫的通话时间是90秒,由话务量公式A=C×t计算得到的话务量为40×90=3600爱尔兰。下面是这两种研究开发方式的业务逻辑进行性能测试的数据结果表格:
基于应用服务器的点击拨号业务 | 基于本发明电信应用软件框架的点击拨号业务 | |
呼损 | 0.20% | 0.11% |
CPU占用率 | 72.5% | 73.4% |
从性能测试的结果来看,采用电信应用软件框架以后,业务的使用性能并没有降低,证明了本发明的电信应用软件框架的试验是成功的,实现了发明目的。诚然,本发明的应用软件框架在一定程度上增加了业务逻辑程序和软件的复杂性,会给CPU带来额外的开销;但是,另一方面,该应用软件框架提供了统一的经过优化处理后的业务构件,又在一定程度上提高了软件运行效率,且为今后的业务逻辑开发提供了许多可利用的资源。
Claims (10)
1.一种用于NGN业务开发的电信应用软件框架,其特征在于:所述软件框架位于应用服务器和电信业务逻辑层之间,以应用服务器为基础构件,提供基于可扩展标记语言XML脚本的业务开发模式,使得业务开发人员采用编写XML脚本的方式来开发电信业务逻辑,并且能够在XML脚本中调用包括该软件框架所提供的公用的核心业务逻辑模块和业务开发者自己编写的业务代码,以使业务开发更加简化而快捷;该电信应用软件框架包括下述四个软件功能模块:调用业务加载模块、完成业务加载过程的容器路由模块,在加载业务的过程中、调用业务组件模块和协议相关模块进行业务逻辑的实例化和组装的业务加载模块,业务组件模块和协议相关模块;其中容器路由模块对事件进行路由时,需要根据路由的结果选择调用业务组件模块和协议相关模块里的相关构件子模块。
2.根据权利要求1所述的电信应用软件框架,其特征在于:所述电信应用软件框架中的四个软件功能模块的结构组成及其功能如下:
容器路由模块,包括容器子模块和路由子模块,用作该电信应用软件框架的核心控制模块;其功能是:采用基于树状结构的状态管理机制对运行时的业务实例和状态数据进行管理,以及创建和销毁这些业务实例和状态数据;负责接收应用服务器的上报事件,识别事件对应的上下文关系,并对事件进行命名和排队的内部处理,再把其处理后的事件路由给业务配置文件指定的业务逻辑进行后续处理;在事件处理完毕后,回调应用服务器的接口,给应用服务器事件返回处理结果并清除该事件所占用的资源;在业务启动时负责调用业务加载模块来完成业务加载功能;
业务加载模块,包括解析子模块和加载子模块,用于在启动业务时被容器路由模块调用而完成业务加载功能;其中解析子模块的功能是:定义业务逻辑的XML脚本必须遵守的规则,即XML脚本的语法;将用户配置的XML脚本转化为用程序代码表示业务逻辑的一个树状结构;并在业务启动时,验证业务逻辑的XML脚本的正确性,如果验证结果为不正确,则告示用户并中止业务的启动;加载子模块的功能是:将解析子模块生成的树状结构转化为真正的业务逻辑:将用户配置在XML脚本中的属于业务组件模块和协议相关模块的各个构件进行组装,再把组装后的结果放到容器路由模块中去;
业务组件模块,包括多媒体自动应答IMR构件、在线状态Presence构件和XML文档管理XDM构件三个子模块,用于完成基础业务逻辑的创建功能,即对公共的业务逻辑进行抽象后,把事件和消息收发作进一步封装;所述三个构件子模块分别用于支持实现IMR、Presence和XDM三类基础业务;
协议相关模块,包括会话初始化协议SIP构件,承载无关的呼叫控制协议BICC构件,XML控制访问协议XCAP构件和中国移动通信互联网短信网关接口协议CMPP构件四个子模块,用于完成上述四种网络协议消息包的收发功能;业务开发者在配置文件里编写特定的XML脚本,即可调用该模块的相关功能。
3.根据权利要求2所述的电信应用软件框架,其特征在于:所述业务加载模块中的XML脚本的语法内容包括:XML的命名空间和各个节点、属性的名字,这些节点、属性相互之间的关系;即每个节点有哪些属性和哪些子节点,子节点的数目限制是多少。
4.根据权利要求2所述的电信应用软件框架,其特征在于:所述协议相关模块的四个构件子模块的功能和配置方法分别是:
SIP构件子模块,用于封装对SIP协议的基本处理操作:在收到SIP请求时,只把电信业务逻辑层关心的消息头和消息体报告给电信业务逻辑层,使得电信业务逻辑层只需填写消息头和消息体就能够发送响应;电信业务逻辑层采用填写消息头和消息体信息来异步无阻塞地发送SIP消息;在SIP应答返回时,该SIP构件子模块报送响应的状态码、消息头和消息体;
BICC构件子模块,用于封装对BICC协议的基本处理操作:因BICC消息没有请求和应答之分,在收到BICC消息时,该BICC构件子模块只把电信业务逻辑层关心的消息内容报告给电信业务逻辑层,使得电信业务逻辑层只需填写消息内容就能够向外发送BICC消息;
XCAP构件子模块,用于封装对XCAP协议的基本处理操作:在收到XCAP请求时,该XCAP构件子模块只把电信业务逻辑层关心的消息头和消息体报告给电信业务逻辑层,使得电信业务逻辑层只需填写消息头和消息体就能够发送响应,或者填写消息头和消息体信息来发送XCAP请求,并同步返回应答;
CMPP构件子模块,用于封装对CMPP协议的基本处理操作:在收到CMPP短消息时,该CMPP构件子模块只把电信业务逻辑层关心的消息内容报告给电信业务逻辑层,使得电信业务逻辑层只需填写消息内容就能够向外发送短消息;
上述各个模块相互独立,以可插拔组件形式由业务加载模块根据业务配置文件来选择加载;在相应消息到达时,由容器路由模块动态调用对应的协议相关模块的子模块。
5.根据权利要求2所述的电信应用软件框架,其特征在于:所述容器路由模块对业务运行时刻的状态执行管理功能所采用的基于树状结构的状态管理机制的具体内容和功能是:
业务逻辑在运行时的结构和其作为生成依据的XML配置文件的结构相同:每个业务在运行时都是一棵以应用application为根节点,以会话session为节点的业务树;其中application的直接子节点为一级session,一级session的直接子节点为二级session,每个session都有自己要处理的一组事件类型和对应每种事件类型的事件处理逻辑handler,且每个session有一个用于存储呼叫状态和其它短时数据的数据集合,以便保存状态数据;
容器路由模块把应用服务器上报来的每个消息请求作为外部事件,并按照自顶向下的原则,先由application进行路由,并依次向子节点路由,直至到达该事件对应的事件处理逻辑handler,再按照配置文件的规则执行这些handler;
容器路由模块能够产生内部消息并作为内部事件进行下述路由处理:第一个节点Session给第二个节点Session发送内部消息时,第一个节点Session将该内部消息发送给该两个节点Session的最近的共同祖先节点Session,然后由该祖先节点Session进行重新路由;
电信应用软件框架在业务启动时创建application,在收到初始事件时,由application创建一个一级session,此后该一级Session就关联该初始事件所创建的上下文,以后到达的、与该上下文有关的非初始事件都由该一级session接收,然后路由给子节点;对于呼叫类业务,每个一级session对应一次呼叫,则一级session数量与正在进行的呼叫数量相同;且每个二级session对应其所归属的一级session的电话呼叫的一方。
6.根据权利要求1或2或5所述的电信应用软件框架,其特征在于:所述事件有两种类型:外部事件和内部事件,外部事件是应用服务器上报给容器路由模块的消息请求,包括创建上下文的初始事件和关联上下文的非初始事件;内部事件是容器路由模块内部产生的、不带有上下文的内部消息请求。
7.根据权利要求1或2或5所述的电信应用软件框架,其特征在于:所述外部事件由application依次路由到各个节点Session,再路由到达该事件对应的handler过程中,每个节点Session在接收到一个事件时,执行以下的路由算法:
如果事件关联有上下文,表示该事件是非初始事件,则直接从上下文里取得关联该上下文的第二个节点Session;如果第二个节点Session就是第一个节点Session,则直接在第一个节点Session下查找该事件的Handler,如果找到Handler,则执行该Handler;否则,该事件路由失败,扔掉该事件;如果找不到Handler,则将该事件交给第二个节点Session进行重新路由;
如果事件没有关联的上下文,则尝试按照初始事件进行路由:通过第一个节点Session对应的配置文件,查找该初始事件对应的下一跳子节点Session;如果没有找到下一跳子节点,则按照内部事件进行路由,通过深度优先搜索的办法,在第一个节点Session的所有已存在子孙节点中查找要接收该内部事件的节点Session,然后交给该节点Session进行重新路由;如果下一跳子节点Session就是第一个节点Session,则直接在第一个节点Session下查找该事件的Handler,如果找到,则执行该Handler;否则,该事件路由失败,扔掉该事件;如果下一跳子节点Session在配置文件中有定义、但还没有创建,则按照配置文件的内容创建该第一个节点Session的下一跳子节点Session,然后交给该子节点Session进行重新路由。
8.根据权利要求7所述的电信应用软件框架,其特征在于:在会议电话业务中,每个一级Session表示某个会议,其下的每个二级Session表示该会议的一个参与者;所述路由算法在处理会议电话业务时执行以下特殊的路由方法:
通过扩展XML配置规则来满足下述规定:当用户直接拨会议号码发起加入会议的呼叫时,不给该初始请求创建一个新的一级Session,而是把该初始请求路由到一个已经存在的、表示该号码所对应的会议的一级Session上;即在配置文件的事件event节点里设置初始事件选择器,当电信应用软件框架收到初始事件时,先执行初始事件选择器的操作,并根据该选择器的执行结果,把初始事件重定向到一个已经存在的一级session上,以避免重新创建一级session;
当用户先呼叫多媒体交互应答IMR号码时,创建一个临时的第二个一级Session,用户听到系统播放的提示音后,输入会议号,这时电信应用软件框架要为用户接通会议,然后把第二个一级Session合并到一个已经存在的、表示用户输入号码所对应的会议的第一个一级Session上;所述两个一级Session合并的操作步骤如下:
(1)把第二个一级Session的二级子节点以及以该二级子节点为根节点的子树全部加入到第一个一级Session的子节点集合中;
(2)删除第二个一级Session的子节点集合;
(3)把第二个一级Session存储的状态变量和临时数据全部并入到第一个一级Session中;
(4)把第二个一级Session关联的上下文关系全部转移到第一个一级Session,使得原来由第二个一级Session接收和处理的事件类型全部重定向到第一个一级Session;
(5)删除第二个一级Session。
9.根据权利要求1所述的电信应用软件框架,其特征在于:所述业务加载模块提供的业务开发模式为:将业务开发者开发编写、并符合该框架要求的XML配置文件输入到解析子模块,由解析子模块按照配置规则对该XML配置文件进行解析,并将解析后的结果送给加载子模块,加载子模块接受解析后的结果,按照该结果生成和组装一个完整的业务逻辑,并将该组装好的业务逻辑加载到容器路由模块里;
所述XML配置文件的配置规则是:每个业务配置文件有且只有一个根节点application来表示一个业务,该节点设有分别标明身份和名称的id属性和name属性,其根节点设有0到多个初始上下文init-context节点和会话session节点,其中,init-context节点设有键key属性和值value属性,用于在application里存储初始变量,实现呼叫的初始化;session节点负责处理一组相关的事件,设有0到多个session子节点或事件event子节点;event节点表示该session对某个类型的事件接收并处理的操作,设有名称name属性、初始事件initial属性和0到多个表示该事件的处理逻辑的handler子节点,每个handler节点都设有关联class属性或引用ref属性,前者指明handler节点和用户编写的业务代码的关联,后者用于直接引用该软件框架提供的通用的handler;handler配置有三种类型:
顺序执行的处理逻辑handler,即连续多个handler节点配置在同一个event节点之下,表示该多个handler按照配置顺序先后执行对事件的处理操作;
选择执行的处理逻辑handler,即在handler节点下面配置一个或多个情况case节点,以便根据handler的执行结果来对case节点的结果result属性进行匹配,再根据匹配结果执行相应的case节点内容;
跳转执行的处理逻辑handler,即配置一个包含session属性和event属性的事件发射器eventEmitter节点,以便跳转到其他的session进行处理。
10.根据权利要求1所述的电信应用软件框架,其特征在于:所述业务组件模块中的三个构件子模块的功能和配置方法分别是:
IMR构件子模块,用于包含IMR的通用能力而提供一个IMR业务的半成品,该IMR构件子模块提供下述IMR业务功能:播放提示音、接收用户拨的号码,再根据用户拨的号码,执行菜单跳转或循环播放;其中播放提示音和接收用户号码是该子模块通过SIP协议控制媒体服务器执行的特定操作,菜单跳转和循环播放是由该IMR子模块内部的状态管理机制实现的,业务开发者只需在XML配置文件里配置放音规则和跳转规则;
Presence构件子模块,用于支持Presence业务的基础能力而提供一个Presence业务的半成品,即通过该Presence构件子模块,用户发布和修改自己的Presence状态、订阅他人的Presence状态、或得到Presence状态改变时的通知;业务开发者只需要在XML配置文件里配置在线状态的种类和订阅Presence状态的授权规则;
XDM构件子模块,用于支持XDM业务的基础能力而提供一个XDM业务的半成品,即基于超文本传输协议HTTP,以XML文本为消息体,对应用服务器上存储于数据库中的数据执行增、删、改和查询操作;业务开发者在业务逻辑中只要执行下述操作,就可用该XDM功能:配置不同用户访问数据的权限,配置数据库中的数据与XML文本中的节点的对应关系;
上述四个子模块相互独立,以可插拔组件形式由业务加载模块根据业务配置文件来选择加载;在相应消息到达时,由容器路由模块动态的调用相应的业务组件模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007103046948A CN101216761A (zh) | 2007-12-28 | 2007-12-28 | 用于ngn业务开发的电信应用软件框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007103046948A CN101216761A (zh) | 2007-12-28 | 2007-12-28 | 用于ngn业务开发的电信应用软件框架 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101216761A true CN101216761A (zh) | 2008-07-09 |
Family
ID=39623200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007103046948A Pending CN101216761A (zh) | 2007-12-28 | 2007-12-28 | 用于ngn业务开发的电信应用软件框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101216761A (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388089A (zh) * | 2005-08-09 | 2009-03-18 | 金蝶软件(中国)有限公司 | 一种工作流中业务逻辑处理的方法和装置 |
CN102082825A (zh) * | 2010-12-23 | 2011-06-01 | 山东中创软件工程股份有限公司 | 一种动态获取和展示模块数据的方法及系统 |
CN101547263B (zh) * | 2009-05-13 | 2011-06-29 | 烽火通信科技股份有限公司 | 基于xml脚本的电信业务增值服务器及实现方法 |
CN101510827B (zh) * | 2009-03-31 | 2011-08-31 | 中国人民解放军信息工程大学 | 路由交换装置、方法及在路由交换装置中更新业务的方法 |
CN102387264A (zh) * | 2010-08-27 | 2012-03-21 | 中兴通讯股份有限公司 | 呼叫控制策略的处理方法、装置及呼叫中心 |
CN102385527A (zh) * | 2010-09-01 | 2012-03-21 | 中兴通讯股份有限公司 | 一种提升业务脚本执行效率的装置及方法 |
CN102707934A (zh) * | 2011-03-28 | 2012-10-03 | 中兴通讯股份有限公司 | 一种以脚本形式表示增值业务流程的实现方法和系统 |
CN103077045A (zh) * | 2012-12-14 | 2013-05-01 | 北京思特奇信息技术股份有限公司 | 一种构建xml脚本流程引擎的方法 |
CN103197950A (zh) * | 2013-04-19 | 2013-07-10 | 中国海洋大学 | 插件虚拟机实现方法 |
CN103428180A (zh) * | 2012-05-18 | 2013-12-04 | 南京中兴力维软件有限公司 | 一种基于xml的sip协议数据传输方法及系统 |
CN105490938A (zh) * | 2016-01-29 | 2016-04-13 | 浪潮电子信息产业股份有限公司 | 一种可配置的服务器引擎的路由选择器的设计方法 |
CN106327553A (zh) * | 2015-06-19 | 2017-01-11 | 拓维信息系统股份有限公司 | 一种手机动漫快速开发系统 |
CN106685965A (zh) * | 2016-12-29 | 2017-05-17 | 河北远东通信系统工程有限公司 | 一种灵活的centrex业务实现系统 |
CN110266702A (zh) * | 2019-06-25 | 2019-09-20 | 上海电气泰雷兹交通自动化系统有限公司 | 基于XML的Wireshark用协议解析方法 |
CN110442331A (zh) * | 2019-08-11 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种自动化搭建代码框架的方法及系统 |
CN111078950A (zh) * | 2019-11-29 | 2020-04-28 | 国网福建省电力有限公司经济技术研究院 | 一种基于全业务统一数据中心的xml数据接入方法及系统 |
CN111125431A (zh) * | 2019-12-24 | 2020-05-08 | 北京酷我科技有限公司 | 一种用于推荐系统的微服务架构 |
CN111638870A (zh) * | 2020-05-14 | 2020-09-08 | 民生科技有限责任公司 | 一种基于react和redux的前端开发基础平台 |
CN111708519A (zh) * | 2020-06-12 | 2020-09-25 | 北京思特奇信息技术股份有限公司 | 一种业务组件的处理方法、装置、设备和存储介质 |
CN114584505A (zh) * | 2022-01-25 | 2022-06-03 | 威胜信息技术股份有限公司 | 一种基于发布订阅的边边通讯消息路由方法 |
CN115766865A (zh) * | 2023-01-09 | 2023-03-07 | 利尔达科技集团股份有限公司 | 一种面向5g智能终端异构平台应用服务方法及系统 |
-
2007
- 2007-12-28 CN CNA2007103046948A patent/CN101216761A/zh active Pending
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388089A (zh) * | 2005-08-09 | 2009-03-18 | 金蝶软件(中国)有限公司 | 一种工作流中业务逻辑处理的方法和装置 |
CN101510827B (zh) * | 2009-03-31 | 2011-08-31 | 中国人民解放军信息工程大学 | 路由交换装置、方法及在路由交换装置中更新业务的方法 |
CN101547263B (zh) * | 2009-05-13 | 2011-06-29 | 烽火通信科技股份有限公司 | 基于xml脚本的电信业务增值服务器及实现方法 |
CN102387264A (zh) * | 2010-08-27 | 2012-03-21 | 中兴通讯股份有限公司 | 呼叫控制策略的处理方法、装置及呼叫中心 |
CN102385527A (zh) * | 2010-09-01 | 2012-03-21 | 中兴通讯股份有限公司 | 一种提升业务脚本执行效率的装置及方法 |
CN102082825A (zh) * | 2010-12-23 | 2011-06-01 | 山东中创软件工程股份有限公司 | 一种动态获取和展示模块数据的方法及系统 |
CN102707934A (zh) * | 2011-03-28 | 2012-10-03 | 中兴通讯股份有限公司 | 一种以脚本形式表示增值业务流程的实现方法和系统 |
CN102707934B (zh) * | 2011-03-28 | 2016-06-29 | 中兴通讯股份有限公司 | 一种以脚本形式表示增值业务流程的实现方法和系统 |
CN103428180A (zh) * | 2012-05-18 | 2013-12-04 | 南京中兴力维软件有限公司 | 一种基于xml的sip协议数据传输方法及系统 |
CN103428180B (zh) * | 2012-05-18 | 2017-07-28 | 南京中兴力维软件有限公司 | 一种基于xml的sip协议数据传输方法及系统 |
CN103077045A (zh) * | 2012-12-14 | 2013-05-01 | 北京思特奇信息技术股份有限公司 | 一种构建xml脚本流程引擎的方法 |
CN103077045B (zh) * | 2012-12-14 | 2016-05-11 | 北京思特奇信息技术股份有限公司 | 一种构建xml脚本流程引擎的方法 |
CN103197950A (zh) * | 2013-04-19 | 2013-07-10 | 中国海洋大学 | 插件虚拟机实现方法 |
CN103197950B (zh) * | 2013-04-19 | 2016-08-03 | 中国海洋大学 | 插件虚拟机实现方法 |
CN106327553A (zh) * | 2015-06-19 | 2017-01-11 | 拓维信息系统股份有限公司 | 一种手机动漫快速开发系统 |
CN105490938A (zh) * | 2016-01-29 | 2016-04-13 | 浪潮电子信息产业股份有限公司 | 一种可配置的服务器引擎的路由选择器的设计方法 |
CN105490938B (zh) * | 2016-01-29 | 2019-05-14 | 浪潮电子信息产业股份有限公司 | 一种可配置的服务器引擎的路由选择器的设计方法 |
CN106685965B (zh) * | 2016-12-29 | 2019-07-02 | 河北远东通信系统工程有限公司 | 一种灵活的centrex业务实现系统 |
CN106685965A (zh) * | 2016-12-29 | 2017-05-17 | 河北远东通信系统工程有限公司 | 一种灵活的centrex业务实现系统 |
CN110266702A (zh) * | 2019-06-25 | 2019-09-20 | 上海电气泰雷兹交通自动化系统有限公司 | 基于XML的Wireshark用协议解析方法 |
CN110442331A (zh) * | 2019-08-11 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种自动化搭建代码框架的方法及系统 |
CN111078950B (zh) * | 2019-11-29 | 2022-10-04 | 国网福建省电力有限公司经济技术研究院 | 一种基于全业务统一数据中心的xml数据接入方法 |
CN111078950A (zh) * | 2019-11-29 | 2020-04-28 | 国网福建省电力有限公司经济技术研究院 | 一种基于全业务统一数据中心的xml数据接入方法及系统 |
CN111125431A (zh) * | 2019-12-24 | 2020-05-08 | 北京酷我科技有限公司 | 一种用于推荐系统的微服务架构 |
CN111125431B (zh) * | 2019-12-24 | 2024-03-26 | 北京酷我科技有限公司 | 一种用于推荐系统的微服务架构 |
CN111638870A (zh) * | 2020-05-14 | 2020-09-08 | 民生科技有限责任公司 | 一种基于react和redux的前端开发基础平台 |
CN111708519B (zh) * | 2020-06-12 | 2023-08-18 | 北京思特奇信息技术股份有限公司 | 一种业务组件的处理方法、装置、设备和存储介质 |
CN111708519A (zh) * | 2020-06-12 | 2020-09-25 | 北京思特奇信息技术股份有限公司 | 一种业务组件的处理方法、装置、设备和存储介质 |
CN114584505A (zh) * | 2022-01-25 | 2022-06-03 | 威胜信息技术股份有限公司 | 一种基于发布订阅的边边通讯消息路由方法 |
CN114584505B (zh) * | 2022-01-25 | 2024-04-09 | 威胜信息技术股份有限公司 | 一种基于发布订阅的边边通讯消息路由方法 |
CN115766865A (zh) * | 2023-01-09 | 2023-03-07 | 利尔达科技集团股份有限公司 | 一种面向5g智能终端异构平台应用服务方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101216761A (zh) | 用于ngn业务开发的电信应用软件框架 | |
US10154118B2 (en) | System and method for telephony and communication services with message-based API | |
US9479400B2 (en) | Servlet API and method for XMPP protocol | |
CN101237333B (zh) | 一种基于多网络融合的支持多种业务的通用业务平台 | |
US6711249B2 (en) | Common gateway to call control systems | |
US10127020B2 (en) | Paradigm in multimedia services creation methodology, and new service creation and service execution environments | |
CN101874383A (zh) | 用于在通信网络中提供服务交互和中介的系统、方法和计算机程序产品 | |
US8612932B2 (en) | Unified framework and method for call control and media control | |
Glitho et al. | Creating value added services in Internet telephony: an overview and a case study on a high-level service creation environment | |
CN101472242A (zh) | 一种业务聚合系统和方法 | |
US7720049B1 (en) | Semantic service broker for telecommunications networks | |
Licciardi et al. | Analysis of NGN service creation technologies | |
Manfred et al. | A telco enabled social networking and knowledge sharing | |
US7213056B2 (en) | Providing modular telephony service | |
Yuan et al. | A comparison of three programming models for telecom service composition | |
Kryvinska et al. | Conceptual framework for services creation/development environment in telecom domain | |
WO2003107691A1 (en) | Service logic context cache for signaling events | |
Bessler et al. | An orchestrated execution environment for hybrid services | |
Bo et al. | Session and media signalling for communication components‐based open multimedia conferencing Web service over IP networks | |
Femminella et al. | A software architecture for simplifying the JSLEE service design and creation | |
US9237056B2 (en) | Service assembly architecture | |
Bond et al. | A framework for converged telecom services and mashups | |
Schneps-Schneppe et al. | Telco Enabled Social Networking: Russian Experience | |
Hasanovic et al. | Dynamic languages integration path for telecom applications | |
Atanasov et al. | Mark-up Service Components |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080709 |