CN100344098C - 一种智能业务的实现方法 - Google Patents
一种智能业务的实现方法 Download PDFInfo
- Publication number
- CN100344098C CN100344098C CNB2003101251545A CN200310125154A CN100344098C CN 100344098 C CN100344098 C CN 100344098C CN B2003101251545 A CNB2003101251545 A CN B2003101251545A CN 200310125154 A CN200310125154 A CN 200310125154A CN 100344098 C CN100344098 C CN 100344098C
- Authority
- CN
- China
- Prior art keywords
- sib
- service
- dynamic link
- link library
- function
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种智能业务的实现方法,该方法提出一个全新的SIB,该SIB能够调用通过动态链接库生成智能业务逻辑模块;在智能业务开发时,将该SIB作为普通SIB和其他SIB一起供用户选择,如果业务中使用了该SIB,则业务逻辑执行到该SIB时,就能够根据该SIB设置的相关信息获得对应的动态链接库句柄并调用对应的智能业务逻辑模块。本发明的这种智能业务的实现方法,通过动态链接库替换复杂的业务逻辑,具有良好的通用性,能够扩大业务功能范围,提高业务性能、方便业务开发,同时,通过动态链接库的在线升级方便了业务功能的在线升级。
Description
技术领域
本发明涉及智能网技术领域,特别涉及一种智能业务的实现方法。
背景技术
智能网中,由业务控制功能(SCF)存储智能业务逻辑和执行智能业务。根据国际电信联盟Q系列建议,智能网的SCF中包含了业务逻辑库,所有智能业务逻辑存储在业务逻辑库中。业务逻辑库中定义着每个智能业务,如200业务、300业务等业务的逻辑步骤。在智能业务呼叫处理过程中,SCF中业务逻辑执行管理模块中的业务逻辑处理程序实例对业务逻辑库中对应的业务逻辑,如200业务的逻辑步骤进行解释,调用功能程序库中对应的功能程序进行业务处理。
业务逻辑库中的每个业务逻辑是通过业务生成环境(SCE)的图形界面定义的,SCE上提供“算法”、“比较”、“连接”等多种业务独立构件(SIB)。通过SIB,可以实现一些逻辑处理,但是每个SIB只能提供有限的逻辑处理能力,例如,算法SIB界面上如果只提供“加”、“减”、“乘”、“除”功能,而一个业务如果要求使用乘方的功能,就需要修改SCF/SCE中算法SIB的实现,添加乘方功能,或者通过一个循环,多次使用算法SIB中的乘法功能。
目前,智能业务逻辑也可简称智能业务的生成过程包括以下步骤:
步骤1,在SCE上选择实现智能业务需要的“算法”、“比较”、“连接”等多种业务独立构件(SIB)。
步骤2,SCE将选择的SIB生成业务。即生成一种SCF能够识别的格式,如内部二进制格式,文本脚本格式,XML格式的智能业务逻辑文件。由业务管理系统(SMS)将生成的智能业务逻辑文件加载到SCP的业务逻辑库中。
参见图1,图1为现有技术一个简单的智能业务逻辑的示意图。该智能业务逻辑包含了9个SIB:基本呼叫处理SIB 101、开始SIB 102、配置事件检测点(EDP)SIB 103、算法1SIB 104、算法2SIB 105、算法3SIB 106、比较SIB 107、业务数据管理SIB 108和连接SIB 109。其中,算法2SIB 105、算法3SIB 106和比较SIB 107 3个SIB要实现x=y^100。
通过SCE将图1所示的业务逻辑生成SCP可识别的执行文件(如myservice.bin),加载到SCP平台。当智能呼叫触发此业务逻辑时,SCP根据该业务逻辑文件中定义的逻辑步骤一步步执行,完成呼叫处理功能,从而实现该智能业务。具体地说,就是从开始SIB 102开始执行,并根据箭头方向一个个SIB依次执行,在比较SIB 107中只要发现z小于等于100,就回到算法SIB(x=x*y)重新执行,形成100次循环,达到x=y^100的目的。由于SCF执行时要在这3个SIB上循环100次,每执行一个SIB都要经过一次SCF内部的消息调度,因此该业务逻辑执行起来相当费时。
由此可见,现有技术生成智能业务的方法有以下的缺点:
1、功能受限:内部二进制、文本脚本和XML格式都属于解释性的逻辑表示,如果要做复杂的逻辑处理,如组合条件循环,取对数等,逻辑表示就非常复杂,有些功能根本无法实现,只能扩展功能定义,在SCF中添加新的功能函数,这样又涉及SCF平台升级的问题。
2、性能低下:由于SCF需要对业务文件进行解释,并且每个SIB只能实现有限的功能,所以,一个简单的功能需要通过多次解释、多次SIB调度才能完成,性能方面肯定无法与C程序等通过专业编译器编译后的代码相比。
3、不具有通用性:业务文件无法象C程序、C动态库一样具有通用性,可以由普通程序调用,只能在配套的SCF平台版本上运行;不象C语音那样是软件开发的标准语言,绝大部分普通程序员都能开发,而只能由经过专门培训的程序员开发。
发明内容
有鉴于此,本发明的一个主要目的在于提供一种智能业务的实现方法,该方法能够克服现有业务开发方法所产生的业务功能受限、性能低下以及不具有通用性等缺陷。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种智能业务的实现方法,该方法包括以下步骤:
1)设置用于调用使用动态链接库生成的智能业务逻辑模块的专用SIB;
2)根据业务需要,在SCE上生成业务时,选择使用所述专用SIB,并生成业务逻辑文件;
3)将步骤2)生成的业务逻辑文件加载到业务控制节点SCP上;当业务逻辑文件中包含一个或多个所述专用SIB时,将该业务中包含的所有所述专用SIB使用的所有动态链接库都加载到业务控制节点SCP上。
其中,所述用于调用所述智能业务逻辑模块的SIB可以定义为外部逻辑SIB;所述智能业务逻辑模块包含一个或多个链接库函数;
步骤2)所述的在业务中使用所述专用SIB的方法可以为:通过外部逻辑SIB的SIB界面设置要调用的动态链接库链接名称、链接库函数名称、接口参数信息。
所述的外部逻辑SIB的SIB界面指定的接口参数必须满足所调用的链接库函数的接口参数要求。
该方法可以进一步包括:如果将新版本的动态链接库加载到SCP中,并且通过业务管理系统SMS或外部工具向SCP发送在线刷新动态链接库指令,则SCP根据该指令在线刷新对应的动态库。
所述在线刷新过程中,如果SCP打开新版本的动态链接库失败,则可以继续使用原版本的动态链接库。
该方法进一步包括:在进行呼叫处理时,可以按照业务逻辑文件中各个SIB的顺序一步步执行,当遇到外部逻辑SIB时,打开要调用的动态链接库,根据该SIB设置的相关信息获得对应的动态链接库句柄并调用对应的智能业务逻辑模块。
该方法可以进一步包括:调用动态链接库前,对接口参数进行校验,判断接口参数类型与链接库函数原型是否匹配;如果匹配,则根据业务指定的接口参数类型,分别给各个接口参数赋值或申请空间;否则,通过SIB缺省错误出口结束调用动态链接库。
该方法可以进一步包括:如果正确调用链接库函数或调用链接库函数时返回错误,则通过SIB的正常出口结束任务;
如果外部逻辑SIB内部处理时发生了非调用链接库函数错误,则通过SIB的缺省错误出口结束任务。
由本发明的技术方案可见,本发明的这种智能业务的实现方法,提出一个全新的SIB,该SIB能够调用使用动态链接库生成智能业务的部分逻辑模块;业务开发时,将该SIB作为普通SIB和其他SIB一起供用户选择,如果选择了该SIB则将所述的外部动态链接库和业务逻辑文件一起存储到SCP上;业务逻辑执行到该SIB时,根据该SIB调用使用该动态链接库生成的逻辑模块。本发明通过动态链接库替换复杂的业务逻辑,具有较好的通用性,能够扩大业务功能范围,提高业务性能、方便业务开发,同时方便了业务功能的在线升级。
附图说明
图1为现有技术一个简单的智能业务逻辑的示意图;
图2为本发明一个较佳实施例的智能业务逻辑的实现过程示意图;
图3为图2所示实施例动态链接库在线刷新示意图;
图4为利用本发明生成的一个简单的智能业务逻辑的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
本发明的这种智能业务的实现方法提出一个全新的SIB,该SIB能够调用通过动态链接库生成智能业务逻辑模块;在智能业务开发时,将该SIB作为普通SIB和其他SIB一起供用户选择,如果业务中使用了该SIB,则业务逻辑执行到该SIB时,就能够根据该SIB设置的相关信息获得对应的动态链接库句柄并调用对应的智能业务逻辑模块。本发明利用动态链接库实现业务,本发明采用的动态链接库必须采用与SCF进程的编译环境相兼容的编译环境进行编译,包括操作系统、编译器等,本发明中,业务指定的接口参数个数及类型满足动态链接库函数的接口参数要求,该动态链接库函数就能够被外部逻辑SIB正确调用。
参见图2,图2为本发明一个较佳实施例的智能业务逻辑的实现过程示意图。该实施例的智能业务部分逻辑模块是通过C/C++语言开发的其包含一个或多个动态链接库函数,其智能业务逻辑的生成及实现过程包括以下步骤:
步骤201,通过C/C++等语言开发动态链接库函数,并通过C/C++等编译器对该动态链接库函数进行优化,封装成适合SCP的操作系统的动态库。
步骤202,在SCE上,根据步骤201所生成的动态链接库函数,在外部逻辑SIB界面指定要调用的动态链接库链接名称、动态链接库函数名称、接口参数信息,每个接口参数类型支持任意类型的指针、整型值和字符串、并指定接收返回值和错误号的变量名称等信息。
步骤203,通过业务管理系统SMS将生成的业务逻辑文件加载到业务控制节点SCP上;当业务逻辑文件中包含外部逻辑SIB时,将该外部逻辑SIB使用的动态链接库也加载到业务控制节点SCP上。
步骤204-205,在SCP在进行呼叫处理时,当业务逻辑执行到外部逻辑SIB时,先对接口参数进行校验,判断接口参数类型是否满足动态链接库函数原型的要求;如果满足,则根据业务指定的接口参数类型,分别根据业务指定的接口参数的类型和数据源,对于输入参数,获得各个接口参数的值,对于输出参数,申请保存输出数据的内存空间。检查本进程是否已经打开要调用的动态库,如果未打开,则打开它。对应的动态链接库打开后,根据该SIB设置的相关信息获得对应的动态链接库句柄并调用对应的链接库函数。
步骤206,执行动态链接库函数,动态链接库函数进行处理,实现该函数的功能。执行结束后,动态链接库函数向SCP中的业务控制功能(SCF)输出指定的输出参数并返回函数返回执行结果、错误号、输出参数。
正确调用动态库函数或调用动态库函数时返回错误,通过SIB的正常出口结束任务;SIB内部处理时发生了除了调用动态库函数错误的其它一些异常时通过SIB的缺省错误出口结束任务。
本发明中,通过动态链接库开发的智能业务的一部分逻辑模块,支持对动态链接库的在线刷新,对业务功能的在线升级将起到很大的作用。参见图3,图3为图2所示实施例动态链接库在线刷新示意图。动态链接库在线刷新可通过SMS向SCP发送刷新指令来触发,主要过程包括以下步骤:
步骤1,在动态库刷新之前,SMS将新版本的动态库文件放到与旧版本的动态库文件相同的目录下,新版本动态库文件名和旧版本动态库文件名可以通过版本信息区分。这里,业务在外部逻辑SIB界面指定动态库名称时不包括版本信息。
步骤2,SMS向SCP发指令要求SCP进行动态链接库刷新,刷新一个动态库时,指令中指示动态库文件名;刷新所有动态库时,消息参数中指定要刷新所有动态库。指令中指示刷新某个SCF进程或刷新所有SCF进程。
步骤3,SCF收到动态库在线刷新指令后,关闭对应的动态链接库,并打开指定版本的动态库,或刷新指令中不带版本信息时,打开最新版本的动态库,如果打开新的动态库失败,则继续使用原来的动态库。
图4为利用本发明生成的一个简单的智能业务逻辑的示意图。图4所示的智能业务逻辑实际与图1所示智能业务逻辑的功能是相同的。但是其中只包含了基本呼叫处理SIB 401、开始SIB 402、配置EDP事件SIB 403、外部逻辑SIB 404和连接SIB 405,5个SIB。其中,1个外部逻辑SIB不需要执行循环,即可实现x=y^100。由于对外部逻辑SIB 404只要经过一次SCF内部的消息调度即可实现,因此该业务逻辑简单,执行方便。
本实施例中,通过C/C++语言开发的动态链接库函数,能够实现C/C++代码所能实现的所有功能,解决了功能受限的缺陷;通过C/C++编译器优化后的程序,基本上是目前已知的执行最快的程序之一,所以解决了性能问题;C/C++动态链接库可以在与编译环境兼容的操作系统中被任意程序调用运行,普通程序员都了解如何使用C/C++编程,所以,解决了通用性问题。
由上述的实施例可见,本发明的这种智能业务的生成方法,通过动态链接库替换复杂的业务逻辑,具有良好的通用性,能够扩大业务功能范围,提高业务性能、方便业务开发,同时通过对动态链接库的在线刷新方便了业务功能的在线升级。
Claims (8)
1、一种智能业务的实现方法,其特征在于,该方法包括以下步骤:
1)设置用于调用使用动态链接库生成的智能业务逻辑模块的专用SIB;
2)根据业务需要,在SCE上生成业务时,选择使用所述专用SIB,并生成业务逻辑文件;
3)将步骤2)生成的业务逻辑文件加载到业务控制节点SCP上;当业务逻辑文件中包含一个或多个所述专用SIB时,将该业务中包含的所有所述专用SIB使用的所有动态链接库都加载到业务控制节点SCP上。
2、如权利要求1所述的方法,其特征在于,所述用于调用所述智能业务逻辑模块的SIB为外部逻辑SIB;所述智能业务逻辑模块包含一个或多个链接库函数;
步骤2)所述的在业务中使用所述专用SIB的方法为:通过外部逻辑SIB的SIB界面设置要调用的动态链接库链接名称、链接库函数名称、接口参数信息。
3、如权利要求2所述的方法,其特征在于:所述的外部逻辑SIB的SIB界面指定的接口参数满足所调用的链接库函数的接口参数要求。
4、如权利要求1所述的方法,其特征在于,该方法进一步包括:如果将新版本的动态链接库加载到SCP中,并且通过业务管理系统SMS或外部工具向SCP发送在线刷新动态链接库指令,则SCP根据该指令在线刷新对应的动态库。
5、如权利要求4所述的方法,其特征在于,所述在线刷新过程中,如果SCP打开新版本的动态链接库失败,则继续使用原版本的动态链接库。
6、如权利要求2所述的方法,其特征在于,该方法进一步包括:在进行呼叫处理时,按照业务逻辑文件中各个SIB的顺序一步步执行,当遇到外部逻辑SIB时,打开要调用的动态链接库,根据该SIB设置的相关信息获得对应的动态链接库句柄并调用对应的智能业务逻辑模块。
7、如权利要求6所述的方法,其特征在于,该方法进一步包括:调用动态链接库前,对接口参数进行校验,判断接口参数类型与链接库函数的函数原型是否匹配;如果匹配,则根据业务指定的接口参数类型,分别给各个接口参数赋值或申请空间;否则,通过SIB缺省错误出口结束调用动态链接库。
8、如权利要求6所述的方法,其特征在于,该方法进一步包括:如果正确调用链接库函数或调用链接库函数时返回错误,则通过SIB的正常出口结束任务;
如果外部逻辑SIB内部处理时发生了非调用链接库函数错误,则通过SIB的缺省错误出口结束任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101251545A CN100344098C (zh) | 2003-12-26 | 2003-12-26 | 一种智能业务的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101251545A CN100344098C (zh) | 2003-12-26 | 2003-12-26 | 一种智能业务的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1635737A CN1635737A (zh) | 2005-07-06 |
CN100344098C true CN100344098C (zh) | 2007-10-17 |
Family
ID=34845109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101251545A Expired - Fee Related CN100344098C (zh) | 2003-12-26 | 2003-12-26 | 一种智能业务的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100344098C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852366B (zh) * | 2005-10-10 | 2010-05-05 | 华为技术有限公司 | 一种为用户同时提供多种业务的方法 |
CN100536479C (zh) * | 2006-10-10 | 2009-09-02 | 华为技术有限公司 | 业务创建系统及方法 |
CN101227629B (zh) * | 2008-01-29 | 2010-06-02 | 中兴通讯股份有限公司 | 支持可扩展标记语言数据接口的实现方法 |
CN101277265B (zh) * | 2008-05-07 | 2011-05-04 | 浙江大学 | 一种无线传感网络中加速加载elf文件的方法 |
CN111651156A (zh) * | 2020-06-04 | 2020-09-11 | 广州鲁邦通物联网科技有限公司 | 一种适配多种开发语言的软件开发工具包和调用方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5894574A (en) * | 1996-05-03 | 1999-04-13 | Alcatel Usa Sourcing, L.P. | Apparatus and method for SIB-based global title translation services |
CN1256766A (zh) * | 1997-05-16 | 2000-06-14 | 诺基亚网络有限公司 | 业务独立积木式组件的实现 |
CN1310539A (zh) * | 2001-03-16 | 2001-08-29 | 巨龙信息技术有限责任公司 | 一种基于业务独立模块的电信业务开发方法 |
-
2003
- 2003-12-26 CN CNB2003101251545A patent/CN100344098C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5894574A (en) * | 1996-05-03 | 1999-04-13 | Alcatel Usa Sourcing, L.P. | Apparatus and method for SIB-based global title translation services |
CN1256766A (zh) * | 1997-05-16 | 2000-06-14 | 诺基亚网络有限公司 | 业务独立积木式组件的实现 |
CN1310539A (zh) * | 2001-03-16 | 2001-08-29 | 巨龙信息技术有限责任公司 | 一种基于业务独立模块的电信业务开发方法 |
Non-Patent Citations (3)
Title |
---|
基于CAMEL2协议的移动智能网中SIB的设计 鄢於松 王晶 廖建新 陈行益,计算机工程与应用 2003 * |
基于CORBA的智能网业务生成环境设计 张佳浩 刘青,华中科技大学学报(自然科学版),第30卷第6期 2002 * |
智能网SCE分布式结构方案的研究 杨凌云 王红熳 杨放春,计算机与通信,第12期 1999 * |
Also Published As
Publication number | Publication date |
---|---|
CN1635737A (zh) | 2005-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10795660B1 (en) | Live code updates | |
US6272674B1 (en) | Method and apparatus for loading a Java application program | |
US8887131B2 (en) | Optimized code generation by eliminating unused virtual function | |
US5586328A (en) | Module dependency based incremental compiler and method | |
US6182277B1 (en) | Methods and apparatus for declarative programming techniques in an object oriented environment | |
Baker et al. | Runtime aspect weaving through metaprogramming | |
US7814472B2 (en) | System and method for shared code-sourcing in a Java Virtual Machine environment | |
US8001518B2 (en) | Configuring a shared library to accommodate relocatable data in a pervasive device | |
US20040003377A1 (en) | Converting byte code instructions to a new instruction set | |
CN111104120A (zh) | 神经网络编译方法、系统及相应异构计算平台 | |
US20020174418A1 (en) | Constant return optimization transforming indirect calls to data fetches | |
US7584452B1 (en) | System and method for controlling the visibility and use of data in a programming environment | |
AU757152B2 (en) | Language manager interface | |
CN100344098C (zh) | 一种智能业务的实现方法 | |
US20020062478A1 (en) | Compiler for compiling source programs in an object-oriented programming language | |
US20060130009A1 (en) | Dynamically configurable model-to-model transformation engine | |
CN105393216B (zh) | 运行时内存调节 | |
WO2022046198A1 (en) | Thread-local return structure for asynchronous state machine | |
US6311227B1 (en) | Procedure calling method | |
Tack et al. | Generic pickling and minimization | |
Korfhage et al. | Hermes language experiences | |
Squyres et al. | The design and evolution of the MPI-2 C++ interface | |
Stirewalt et al. | Automated invariant maintenance via OCL compilation | |
KR100703285B1 (ko) | 메시르를 이용한 교환 시스템의 동적 서비스를 지원하는방법 | |
Cunei et al. | PolyD: a flexible dispatching framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071017 Termination date: 20121226 |