CN103019686A - 一种跨两个中间件的系统及其编译方法 - Google Patents

一种跨两个中间件的系统及其编译方法 Download PDF

Info

Publication number
CN103019686A
CN103019686A CN2012104736617A CN201210473661A CN103019686A CN 103019686 A CN103019686 A CN 103019686A CN 2012104736617 A CN2012104736617 A CN 2012104736617A CN 201210473661 A CN201210473661 A CN 201210473661A CN 103019686 A CN103019686 A CN 103019686A
Authority
CN
China
Prior art keywords
middleware
code
striding
middlewares
difference
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.)
Granted
Application number
CN2012104736617A
Other languages
English (en)
Other versions
CN103019686B (zh
Inventor
尹永兴
鹿林安
檀敬庭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201210473661.7A priority Critical patent/CN103019686B/zh
Publication of CN103019686A publication Critical patent/CN103019686A/zh
Application granted granted Critical
Publication of CN103019686B publication Critical patent/CN103019686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种跨两个中间件的系统及其编译方法,其编译方法,具体步骤如下:步骤1:封装模块将文件中存在中间件差异的中间件代码,封装在头文件中;步骤2:替换模块调用封装模块发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量;步骤3:编译模块开始预编译,解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。本发明所述的方法采用宏定义的方式,将服务长/短数据库连接、服务声明、参数输入、输出等采用宏定义的方式包装,这样开发人员则不必关心中间件平台差异;屏蔽平台差异,不仅减少了开发人员的工作量,也使程序变得更加稳定,给系统提供了一个稳定保障。

Description

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

Claims (8)

1.一种跨两个中间件的系统编译方法,其特征在于,具体步骤如下:
步骤1:封装模块将文件中存在中间件差异的中间件代码,封装在头文件中;
步骤2:替换模块调用封装模块发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量;
步骤3:编译模块开始预编译,解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。
2.根据权利要求1所述一种跨两个中间件的系统编译方法,其特征在于,所述步骤1中封装模块用于定义文件中的头文件,在头文件中使用预编译宏定义的方式,将存在中间件差异的中间件代码,封装在头文件中。
3.根据权利要求2所述一种跨两个中间件的系统编译方法,其特征在于,所述步骤3中编译模块预编译中间件的过程根据中间件的不同,进行预编译不同的中间件下的代码。
4.根据权利要求1-3任一项所述一种跨两个中间件的系统编译方法,其特征在于,不同中间件之间差异的代码,体现在:数据库连接方式、服务的声明方式、服务输入参数获取方式、服务输出参数打包方式。
5.一种跨两个中间件的系统,其特征在于,包括封装模块、替换模块和编译模块;
所述封装模块用于将文件中存在中间件差异的中间件代码,封装在头文件中;
所述替换模块调用封装模块发送至的封装后的中间件代码,将存在差异的中间件代码替换为宏定义变量,并将替换后的服务程序文件发送至编译模块;
所述编译模块接收从替换模块发送至的服务程序文件,并解析从替换模块发送至的宏定义变量,转换成可编译的中间件代码,完成跨两个中间件的系统的编译。
6.根据权利要求5所述一种跨两个中间件的系统,其特征在于,所述封装模块用于定义文件中的头文件,在头文件中使用预编译宏定义的方式,将存在中间件差异的中间件代码,封装在头文件中。
7.根据权利要求6所述一种跨两个中间件的系统,其特征在于,所述编译模块根据中间件的不同,进行预编译不同的中间件下的代码。
8.根据权利要求5-7任一项所述一种跨两个中间件的系统,其特征在于,不同中间件之间差异的代码,体现在:数据库连接方式、服务的声明方式、服务输入参数获取方式、服务输出参数打包方式。
CN201210473661.7A 2012-11-20 2012-11-20 一种跨两个中间件的系统及其编译方法 Active CN103019686B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210473661.7A CN103019686B (zh) 2012-11-20 2012-11-20 一种跨两个中间件的系统及其编译方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210473661.7A CN103019686B (zh) 2012-11-20 2012-11-20 一种跨两个中间件的系统及其编译方法

Publications (2)

Publication Number Publication Date
CN103019686A true CN103019686A (zh) 2013-04-03
CN103019686B CN103019686B (zh) 2016-11-23

Family

ID=47968325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210473661.7A Active CN103019686B (zh) 2012-11-20 2012-11-20 一种跨两个中间件的系统及其编译方法

Country Status (1)

Country Link
CN (1) CN103019686B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528171A (zh) * 2016-11-24 2017-03-22 郑州云海信息技术有限公司 一种异构计算平台子系统间的接口设计方法、装置及系统
CN106980505A (zh) * 2017-03-30 2017-07-25 广东电网有限责任公司信息中心 一种信息系统国产中间件迁移改造方法及装置
CN106980679A (zh) * 2017-03-30 2017-07-25 广东电网有限责任公司信息中心 一种信息系统国产数据库迁移改造方法及装置
CN107077365A (zh) * 2014-09-19 2017-08-18 微软技术许可有限责任公司 有选择地加载预编译的头部和/或其部分
CN108614705A (zh) * 2017-02-07 2018-10-02 腾讯科技(深圳)有限公司 一种数据编译处理方法及终端
CN113391818A (zh) * 2021-03-26 2021-09-14 广州海量数据库技术有限公司 一种编译文件的生成方法以及装置
CN114527983A (zh) * 2020-11-23 2022-05-24 中移互联网有限公司 一种基于中间件的接口适配方法、装置及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487713B1 (en) * 1999-09-24 2002-11-26 Phoenix Technologies Ltd. Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation
CN1873626A (zh) * 2005-06-01 2006-12-06 中兴通讯股份有限公司 一种自动生成桩和驱动函数的单元测试系统及方法
CN1964526A (zh) * 2005-11-09 2007-05-16 中兴通讯股份有限公司 一种智能加载手机硬件驱动程序的方法
CN101119522A (zh) * 2007-08-22 2008-02-06 中兴通讯股份有限公司 一种模拟at命令上报的方法
CN101515239A (zh) * 2009-04-08 2009-08-26 南京航空航天大学 X86飞控计算机快速启动方法
CN101593164A (zh) * 2009-07-13 2009-12-02 中国船舶重工集团公司第七○九研究所 基于嵌入式Linux的从USB HID装置及固件实现方法
CN102395051A (zh) * 2011-11-07 2012-03-28 上海网达软件有限公司 一种视频播放器系统及其开发、安装运行方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487713B1 (en) * 1999-09-24 2002-11-26 Phoenix Technologies Ltd. Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation
CN1873626A (zh) * 2005-06-01 2006-12-06 中兴通讯股份有限公司 一种自动生成桩和驱动函数的单元测试系统及方法
CN1964526A (zh) * 2005-11-09 2007-05-16 中兴通讯股份有限公司 一种智能加载手机硬件驱动程序的方法
CN101119522A (zh) * 2007-08-22 2008-02-06 中兴通讯股份有限公司 一种模拟at命令上报的方法
CN101515239A (zh) * 2009-04-08 2009-08-26 南京航空航天大学 X86飞控计算机快速启动方法
CN101593164A (zh) * 2009-07-13 2009-12-02 中国船舶重工集团公司第七○九研究所 基于嵌入式Linux的从USB HID装置及固件实现方法
CN102395051A (zh) * 2011-11-07 2012-03-28 上海网达软件有限公司 一种视频播放器系统及其开发、安装运行方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107077365A (zh) * 2014-09-19 2017-08-18 微软技术许可有限责任公司 有选择地加载预编译的头部和/或其部分
CN106528171A (zh) * 2016-11-24 2017-03-22 郑州云海信息技术有限公司 一种异构计算平台子系统间的接口设计方法、装置及系统
CN106528171B (zh) * 2016-11-24 2019-09-24 郑州云海信息技术有限公司 一种异构计算平台子系统间的接口设计方法、装置及系统
CN108614705A (zh) * 2017-02-07 2018-10-02 腾讯科技(深圳)有限公司 一种数据编译处理方法及终端
CN108614705B (zh) * 2017-02-07 2022-06-03 腾讯科技(深圳)有限公司 一种数据编译处理方法及终端
CN106980505A (zh) * 2017-03-30 2017-07-25 广东电网有限责任公司信息中心 一种信息系统国产中间件迁移改造方法及装置
CN106980679A (zh) * 2017-03-30 2017-07-25 广东电网有限责任公司信息中心 一种信息系统国产数据库迁移改造方法及装置
CN114527983A (zh) * 2020-11-23 2022-05-24 中移互联网有限公司 一种基于中间件的接口适配方法、装置及电子设备
CN113391818A (zh) * 2021-03-26 2021-09-14 广州海量数据库技术有限公司 一种编译文件的生成方法以及装置

Also Published As

Publication number Publication date
CN103019686B (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN103019686A (zh) 一种跨两个中间件的系统及其编译方法
CN109710215B (zh) 分布式流计算的可视化流程处理引擎及其使用方法
CA2939400C (en) Systems and methods for controlling branch latency within computing applications
US10838743B2 (en) Systems and methods for processing extensible markup language data during runtime
CN110633076B (zh) 一种自动生成Solidity智能合约Java客户端程序的方法
CN101593127A (zh) 一种数字电视中间件系统的跨平台Jave虚拟机
CN103729184A (zh) 一种软件组件组合构建方法
US20120167065A1 (en) Compiler compiler system with syntax-controlled runtime and binary application programming interfaces
CN101185116A (zh) 在软件程序中使用强数据类型表示语音识别语法
CN103092594A (zh) 模型转换方法及装置
US20100088274A1 (en) System and method for synchronizing a repository with a declarative defintion
CN115639980A (zh) 一种低代码平台可拖拽的前端逻辑编排方法及装置
CN110489088A (zh) 一种跨平台的小程序开发方法
CN111008020A (zh) 将逻辑表达式解析为通用查询语句的方法
CN104991810B (zh) 自动添加apk到安卓系统中的方法及处理系统
Martinez et al. Recovering sequence diagrams from object-oriented code: An ADM approach
US20060090155A1 (en) Methods and apparatus for message oriented invocation
CN103092866A (zh) 数据监控方法及监控装置
CN106681781B (zh) 实时计算业务的实现方法和系统
CN110262830A (zh) 一种移动端基于应用二次开发的方法
CN116841559A (zh) 代码转换方法、装置、设备、介质和程序产品
WO2012129864A1 (zh) 一种以脚本形式表示增值业务流程的实现方法和系统
KR101416096B1 (ko) 하이브리드 웹 어플리케이션 개발을 위한 호환성 높은 플러그인 시스템
CN202143092U (zh) 报文处理系统
CN103051946A (zh) 基于Android系统的通用RTSP流播放器

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