一种构建xml脚本流程引擎的方法

文档序号:6384284阅读:246来源:国知局
专利名称:一种构建xml脚本流程引擎的方法
技术领域
本发明涉及电信行业业务处理技术领域,特别是涉及一种构建XML脚本流程引擎的方法。
背景技术
随着市场对业务的需求变化越来越快,通过编码测试上线传统的方式已经很难满足客户抓住热点快速响应的需求。因此,如何能快速的开发出客户提出的业务场景,像微软的ViSiO —样通过画流程图生成业务流程所需要的代码,是现有技术中有待迫切解决的一项技术问题。本发明即是基于这点,通过XML脚本流程引擎来自动快速地生成需要的代码,为客户快速地开发出需要的业务场景。

发明内容
本发明所要解决的技术问题是提供一种构建XML脚本流程引擎的方法,用于解决现有技术中开发业务场景不够快速的问题。本发明解决上述技术问题的技术方案如下一种构建XML脚本流程引擎的方法,包括步骤I,采用XML格式配置业务流程的脚本;步骤2,读取全部脚本,并将脚本存入脚本容器;步骤3,获取脚本中所述类型的构件模块,并将动态库模块中与相应构件模块对应的功能函数读入至该构件模块中,再将构件模块存入脚本中对应的构件容器中;步骤4,从脚本容器中读取第一个脚本,执行该脚本中的开始构件模块,并获取开始构件模块的下一个构件模块;步骤5,执行该构件模块,并进入相应的构件容器中执行业务流程;步骤6,获取该构件模块的下一个构件模块,重复执行步骤5,直到执行到退出构件模块。在上述技术方案的基础上,本发明还可以做如下改进。进一步,所述步骤I中配置的脚本结构包括脚本名、构件模块、开始构件模块编号和构件容器。进一步,所述步骤2中读取全部脚本具体包括步骤21,将脚本存储目录、动态库存储目录、日志存放目录和动态库文件配置成基本配置文件,并存储进后台系统;步骤22,根据基本配置文件中的脚本存储目录读取全部脚本。进一步,所述步骤2中将脚本存入脚本容器具体包括每一个脚本对应有唯一的编号,将脚本按编号顺序依次存入脚本容器中。进一步,所述步骤3中的构件模块包括开始构件模块、退出构件模块、结束构件模块和/或复合构件模块。
进一步,所述步骤3中脚本中的每一个构件模块对应有唯一的编号。进一步,所述步骤5还包括步骤51,若该构件模块为退出构件模块,则结束构建XML脚本流程引擎;步骤52,若该构件模块为结束构件模块或复合构件模块,则获取下一个脚本,并返回执行步骤4。本发明的有益效果是本发明通过XML脚本流程引擎自动快速地生成需要的代码,快速地为开发出客户提出的业务场景。通过本发明,对技术人员来说能更加专注技术实现,而不必关注业务的逻辑;对业务人员以及维护人员来说,可以更加清楚的关注业务的逻辑性是否合理与正确,而不必钻入代码中看代码。通过该引擎还可以更加方便的管理技术的积累,减少重复工作。


图1为本发明所述构建XML脚本流程引擎的流程示意图。
具体实施例方式以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。如图1所示,实施例一是一种构建XML脚本流程引擎的方法,包括步骤1,采用XML格式配置业务流程的脚本。其中,配置的脚本结构包括脚本名、构件模块、开始构件模块编号和构件容器。步骤2,读取全部脚本,并将脚本存入脚本容器。其中,读取全部脚本具体包括步骤21,将脚本存储目录、动态库存储目录、日志存放目录和动态库文件配置成基本配置文件,并存储进后台系统;步骤22,根据基本配置文件中的脚本存储目录读取全部脚本。而步骤2中将脚本存入脚本容器具体包括每一个脚本对应有唯一的编号,将脚本按编号顺序依次存入脚本容器中。步骤3,获取脚本中所有类型的构件模块,并将动态库模块中与相应构件模块对应的功能函数读入至该构件模块中,再将构件模块存入脚本中对应的构件容器中。这里的构件模块包括开始构件模块、退出构件模块、结束构件模块和/或复合构件模块等,且每一个构件模块对应有唯一的编号。步骤4,从脚本容器中读取第一个脚本,执行该脚本中的开始构件模块,并获取开始构件模块的下一个构件模块。步骤5,执行该构件模块,并进入相应的构件容器中执行业务流程。除此以外,步骤5还包括步骤51,若该构件模块为退出构件模块,则结束构建XML脚本流程引擎;步骤52,若该构件模块为结束构件模块或复合构件模块,则获取下一个脚本,并返回执行步骤4。步骤6,获取该构件模块的下一个构件模块,重复执行步骤5,直到执行到退出构件模块。在实际应用中,构件模块是以XML中构件的形式实现,代表系统中的一部分物理实施,包括软件代码(源代码、二进制代码或可执行代码)或其等价物(如脚本或命令文件)
坐寸ο脚本容器中第一个脚本是名为ma in. xml的脚本,根据该脚本的开始构件执行,然后获取该构件的下一个构件或脚本,进入脚本与构件的容器中执行业务流程。以main, xml脚本为例,实施例一中构建的XML脚本流程引擎的重要的结构体声明如下一、构件的每个参数声明
struct -sib-para {string ParaName;string ParaValue;
Uchar DataType;
Uchar ParaType;
— sib-para () {
ParaName. clear ();
ParaValue. clear ();
DataType = SEE_DATATYPE_UNKNOWN;
ParaType = SEE_PARATYPE_UNKNOWN;
}};构件里的每一个参数说明,包含参数名称,参数值,数据类型,参数类型。其中数据类型有整形、字符形、字符串形等,参数类型有常量与变量两种类型。二、构件的声明如下typedef struct _sib{
Uchar Sno; //在脚本中的序号chdr SibNo[LEN—SIB—NO+1];//构件编号,每个构件唯一string SIbName; //构件名称
string SibFunction;
Uchar ExI tNura; //出口数量,比如成功,失败,异常出口等Uchar InputNum; / /入参数量Uchar OutputNiim; //出参数量
Uchar ExitNo [SIB_PARA—NUM];//出 口对应的构件struct —sib-para Input [SIB—PARA—NUM]; //入参参数struct —sib-para Output [SIB-PARA-NUM]; //出参参数一sib () {
Sno = 0;
Exi t Num = 0;
InputNum = 0;
OutputNum = 0;
iuemset (ExitNo, 0, sizeof (ExitNo));meniset (SibNo, 0, sizeof (SibNo));
}
} sib;三、脚本结构体声明如下typedef struct -script {char Sname[LEN-SCRIPT-NAME+1];
Ushort SrecordNum;
Ushort StartSibSeq;map<Uint,sib> SibRecord;
-script () {
memset (Snarae, 0x00, s izeof (Sname));
SrecordNum = OStartSibSeq = 0;
}
} script;
//脚本结构:包含脚本名,多少个构件,开始构件的编号,构件容器。四、全局数据结构体声明如下
struct -WorkData{map<string, Int> glntData;map<string, float〉 gFloatData;map<string,string〉 gStringData;
};五、引擎用到的结构体如下
typedef struct -SeeData{
Uchar gSeeState;
Uchar gSeeDebugState;
Uint gNextSibNo;Uchar gNextNO [11];string gScriptName;string gProcessName;s ib *gSib;see—cfg *gcfg;see—dll *gDlI;struct -WorkData gWorkData;map<string, script〉gScript;
int (*See-Process-Script) (struct —SeeData &gSeeData);struct -SeeData *SeeDataNext;
-SeeData () {
gSeeState =SEE—PROCESS—PRE;gSeeDebugState = 0x00;gNextSibNo = 0;gSib = NULL;gDll=冊 LL;
See-Process-Script = NULL;
SeeDataNext = NULL;
}
}SeeData;SeeData为引擎所用到的全局结构体。引擎首先将脚本以及脚本里的构件进行解析,然后根据构件容器中的构件,将用到的函数从动态库中读入到功能函数的容器中。然后根据第一个脚本中的开始构件进行运行,进入到一个运行构件、找下一个构件、运行下一个构件这样一个循环体系中直到运行到退出构件。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种构建XML可扩展标记语言脚本流程引擎的方法,其特征在于,包括:步骤1,采用XML格式配置业务流程的脚本;步骤2,读取全部脚本,并将脚本存入脚本容器;步骤3,获取脚本中所有类型的构件模块,并将动态库模块中与相应构件模块对应的功能函数读入至该构件模块中,再将构件模块存入脚本中对应的构件容器中;步骤4,从脚本容器中读取第一个脚本,执行该脚本中的开始构件模块,并获取开始构件模块的下一个构件模块;步骤5,执行该构件模块,并进入相应的构件容器中执行业务流程;步骤6,获取该构件模块的下一个构件模块,重复执行步骤5,直到执行到退出构件模块。
2.根据权利要求1所述的方法,其特征在于,所述步骤I中配置的脚本结构包括脚本名、构件模块、开始构件模块编号和构件容器。
3.根据权利要求1所述的方法,其特征在于,所述步骤2中读取全部脚本具体包括:步骤21,将脚本存储目录、动态库存储目录、日志存放目录和动态库文件配置成基本配置文件,并存储进后台系统;步骤22,根据基本配置文件中的脚本存储目录读取全部脚本。
4.根据权利要求1所述的方法,其特征在于,所述步骤2中将脚本存入脚本容器具体包括:每一个脚本对应有唯一的编号,将脚本按编号顺序依次存入脚本容器中。
5.根据权利要求1所述的方法,其特征在于,所述步骤3中的构件模块包括开始构件模块、退出构件模块、结束构件模块和/或复合构件模块。
6.根据权利要求1所述的方法,其特征在于,所述步骤3中:脚本中的每一个构件模块对应有唯一的编号。
7.根据权利要求1所述的方法,其特征在于,所述步骤5还包括:步骤51,若该构件模块为退出构件模块,则结束构建XML脚本流程引擎;步骤52,若该构件模块为结束构件模块或复合构件模块,则获取下一个脚本,并返回执行步骤4。
全文摘要
本发明涉及一种构建XML脚本流程引擎的方法,包括步骤1,采用XML格式配置业务流程的脚本;步骤2,读取全部脚本,并将脚本存入脚本容器;步骤3,获取脚本中所有类型的构件模块,并将动态库模块中与构件模块相对应的功能函数读入至该构件模块中,再将构件模块存入脚本中对应的构件容器中;步骤4,从脚本容器中读取第一个脚本,执行该脚本中的开始构件模块,并获取开始构件模块的下一个构件模块;步骤5,执行该构件模块,并进入相应的构件容器中执行业务流程;步骤6,获取该构件模块的下一个构件模块,重复执行步骤5,直到执行到退出构件模块。本发明通过XML脚本流程引擎自动快速地生成所需代码,快速地开发客户提出的业务场景。
文档编号G06F9/445GK103077045SQ20121054416
公开日2013年5月1日 申请日期2012年12月14日 优先权日2012年12月14日
发明者谢元胜 申请人:北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1