专利名称:一种跨两个中间件的系统及其编译方法
技术领域:
本发明涉及一种跨两个中间件的系统及其编译方法,为软件系统各服务提供统一接口调用格式,属于软件服务领域。
背景技术:
最初我们的后台服务都是运行在TUXEDO上,随着广电业务的发展,移植到T0NGEASY上,同时兼容TUXED0,于是服务内出现了很多为了兼容不得不写的代码,给开发工作带来一定的负担,我们需要一种方法来屏蔽中间件平台差异。
发明内容
本发明所要解决的技术问题是,针对现有技术的不足,提供一种可屏蔽平台差异的跨两个中间件的系统编译方法。本发明解决上述技术问题的技术方案如下一种跨两个中间件的系统编译方法,具体步骤如下步骤1:封装模块将文件中存在中间件差异的中间件代码,封装在头文件中;步骤2 :替换模块调用封装模块发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量;步骤3 :编译模块开始预编译,解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。本发明的有益效果是本发明所述的方法采用宏定义的方式,将服务长/短数据库连接、服务声明、参数输入、输出等采用宏定义的方式包装,这样开发人员则不必关心中间件平台差异,只编写和关注具体的程序逻辑实现代码即可;屏蔽平台差异,不仅减少了开发人员的工作量,也使程序变得更加稳定,给系统提供了一个稳定保障。在上述技术方案的基础上,本发明还可以做如下改进。进一步,所述步骤I中封装模块用于定义文件中的头文件,在头文件中使用预编译宏定义的方式,将存在中间件差异的中间件代码,封装在头文件中。进一步,所述步骤3中预编译中间件的过程根据中间件的不同,进行预编译不同的中间件下的代码。进一步,不同中间件之间差异的代码,主要体现在数据库连接方式、服务的声明方式、服务输入参数获取方式、服务输出参数打包方式。本发明所要解决的另一个技术问题是,针对现有技术的不足,提供一种可屏蔽平台差异的跨两个中间件的系统。本发明解决上述技术问题的技术方案如下一种跨两个中间件的系统,包括封装模块、替换模块和编译模块;所述封装模块用于将文件中存在中间件差异的中间件代码,封装在头文件中;所述替换模块调用封装模块发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量,并将替换后的服务程序文件发送至编译模块;所述编译模块接收从替换模块发送至的服务程序文件,并解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。本发明的有益效果是本发明所述的系统采用宏定义的方式,将服务长/短数据库连接、服务声明、参数输入、输出等采用宏定义的方式包装,这样开发人员则不必关心中间件平台差异,只编写和关注具体的程序逻辑实现代码即可;屏蔽平台差异,不仅减少了开发人员的工作量,也使程序变得更加稳定,给系统提供了一个稳定保障。在上述技术方案的基础上,本发明还可以做如下改进。进一步,所述封装模块用于定义文件中的头文件,在头文件中使用预编译宏定义的方式,将存在中间件差异的中间件代码,封装在头文件中。 进一步,所述编译模块根据中间件的不同,进行预编译不同的中间件下的代码。进一步,不同中间件之间差异的代码,主要体现在数据库连接方式、服务的声明方式、服务输入参数获取方式、服务输出参数打包方式。
图1为本发明具体实施例1所述一种跨两个中间件的系统编译方法流程图;图2为本发明具体实施例2所述一种跨两个中间件的系统编译方法编译图;图3为本发明具体实施例3所述的一种跨两个中间件的系统的结构图。附图中,各标号所代表的部件列表如下1、封装模块,2、替换模块,3、编译模块。
具体实施例方式以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。如图1所示,本发明具体实施例1所述方法一种跨两个中间件的系统编译方法,具体步骤如下步骤1:封装模块将文件中存在中间件差异的中间件代码,封装在头文件中;步骤2 :替换模块调用封装模块发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量;步骤3 :编译模块开始预编译,解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。所述步骤I中封装模块用于定义文件中的头文件,在头文件中使用预编译宏定义的方式,将存在中间件差异的中间件代码,封装在头文件中。所述步骤3中预编译中间件的过程根据中间件的不同,进行预编译不同的中间件下的代码。不同中间件之间差异的代码,主要体现在数据库连接方式、服务的声明方式、月艮务输入参数获取方式、服务输出参数打包方式。如图2所示,本方法具体实施例2实现了不同中间件下服务程序的兼容,目前在TUXED0/T0NGEASY两种中间件服务程序中得到实施验证。实施方式
1、定义公共的头文件pub_server. h,在头文件使用预编译宏定义的方式,将不同中间件差异的代码,封装成统一的宏定义变量DBL0NGC0NNECT :数据库连接方式DECLARE_SERVICE :服务的声明BEGIN_SERVICE :服务输入参数获取方式ADD_VALUE32 :服务输出参数打包方式2、编写某一服务 R1052. cpa)在服务中,定义数据库连接方式的代码,使用宏定义DBL0NGC0NNECT。b)服务的声明使用宏定义DECLARE_SERVICE:DECLARE_SERVICE(sl052Cfm)c )服务输入参数获取,使用BEGIN_SERVICE();d )服务输出参数打包,使用ADD_VALUE32 (O, sEffDate);ADD_VALUE32(I, sExpDate);3、编译服务R1052.Cp,则会根据中间件的不同,把程序中使用的预编译宏定义变量转换成各自中间件下的代码,完成程序的兼容。如图3所示,为本发明具体实施例3所述的一种跨两个中间件的系统,包括封装模块1、替换模块2和编译模块3 ;所述封装模块I用于将文件中存在中间件差异的中间件代码,封装在头文件中;所述替换模块2调用封装模块I发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量,并将替换后的服务程序文件发送至编译模块3 ;所述编译模块3接收从替换模块2发送至的服务程序文件,并解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。所述封装模块I用于定义文件中的头文件,在头文件中使用预编译宏定义的方式,将存在中间件差异的中间件代码,封装在头文件中。所述编译模块3根据中间件的不同,进行预编译不同的中间件下的代码。不同中间件之间差异的代码,主要体现在数据库连接方式、服务的声明方式、月艮务输入参数获取方式、服务输出参数打包方式。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种跨两个中间件的系统编译方法,其特征在于,具体步骤如下步骤1:封装模块将文件中存在中间件差异的中间件代码,封装在头文件中;步骤2 :替换模块调用封装模块发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量;步骤3 :编译模块开始预编译,解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。
2.根据权利要求1所述一种跨两个中间件的系统编译方法,其特征在于,所述步骤I中封装模块用于定义文件中的头文件,在头文件中使用预编译宏定义的方式,将存在中间件差异的中间件代码,封装在头文件中。
3.根据权利要求2所述一种跨两个中间件的系统编译方法,其特征在于,所述步骤3中编译模块预编译中间件的过程根据中间件的不同,进行预编译不同的中间件下的代码。
4.根据权利要求1-3任一项所述一种跨两个中间件的系统编译方法,其特征在于,不同中间件之间差异的代码,体现在数据库连接方式、服务的声明方式、服务输入参数获取方式、服务输出参数打包方式。
5.一种跨两个中间件的系统,其特征在于,包括封装模块、替换模块和编译模块;所述封装模块用于将文件中存在中间件差异的中间件代码,封装在头文件中;所述替换模块调用封装模块发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量,并将替换后的服务程序文件发送至编译模块;所述编译模块接收从替换模块发送至的服务程序文件,并解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。
6.根据权利要求5所述一种跨两个中间件的系统,其特征在于,所述封装模块用于定义文件中的头文件,在头文件中使用预编译宏定义的方式,将存在中间件差异的中间件代码,封装在头文件中。
7.根据权利要求6所述一种跨两个中间件的系统,其特征在于,所述编译模块根据中间件的不同,进行预编译不同的中间件下的代码。
8.根据权利要求5-7任一项所述一种跨两个中间件的系统,其特征在于,不同中间件之间差异的代码,体现在数据库连接方式、服务的声明方式、服务输入参数获取方式、服务输出参数打包方式。
全文摘要
本发明涉及一种跨两个中间件的系统及其编译方法,其编译方法,具体步骤如下步骤1封装模块将文件中存在中间件差异的中间件代码,封装在头文件中;步骤2替换模块调用封装模块发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量;步骤3编译模块开始预编译,解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。本发明所述的方法采用宏定义的方式,将服务长/短数据库连接、服务声明、参数输入、输出等采用宏定义的方式包装,这样开发人员则不必关心中间件平台差异;屏蔽平台差异,不仅减少了开发人员的工作量,也使程序变得更加稳定,给系统提供了一个稳定保障。
文档编号G06F9/44GK103019686SQ20121047366
公开日2013年4月3日 申请日期2012年11月20日 优先权日2012年11月20日
发明者尹永兴, 鹿林安, 檀敬庭 申请人:北京思特奇信息技术股份有限公司